summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/inkscape/Manifest52
-rw-r--r--media-gfx/inkscape/NOTES1
-rw-r--r--media-gfx/inkscape/files/digest-inkscape-0.44_pre109361
-rw-r--r--media-gfx/inkscape/files/digest-inkscape-0.44_pre112571
-rw-r--r--media-gfx/inkscape/files/digest-inkscape-0.44_pre113751
-rw-r--r--media-gfx/inkscape/files/digest-inkscape-0.44_pre114871
-rw-r--r--media-gfx/inkscape/files/inkscape-0.41_gnome-print.patch16
-rw-r--r--media-gfx/inkscape/files/inkscape-0.44-gcc41.patch26
-rw-r--r--media-gfx/inkscape/files/inkscape-20050326.psfix.patch1245
-rw-r--r--media-gfx/inkscape/files/inkscape-epsout.patch33
-rw-r--r--media-gfx/inkscape/files/inkscape-landscape.patch14
-rw-r--r--media-gfx/inkscape/inkscape-0.44_pre10936.ebuild66
-rw-r--r--media-gfx/inkscape/inkscape-0.44_pre11257.ebuild66
-rw-r--r--media-gfx/inkscape/inkscape-0.44_pre11375.ebuild66
-rw-r--r--media-gfx/inkscape/inkscape-0.44_pre11487.ebuild82
15 files changed, 1671 insertions, 0 deletions
diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
new file mode 100644
index 0000000..0b1fda5
--- /dev/null
+++ b/media-gfx/inkscape/Manifest
@@ -0,0 +1,52 @@
+AUX inkscape-0.41_gnome-print.patch 404 RMD160 a5132cb26d889c82bbf42e715ede39c66650e710 SHA1 0b06333a46041039be43c8aa26777731304b9d1e SHA256 89f5bd446a96c9a4b4865a01cd6d87bbb1cf8078705d0d01c75180f2caf2e048
+MD5 2a6db3de949e36fe3ec3ecbca9c26f3e files/inkscape-0.41_gnome-print.patch 404
+RMD160 a5132cb26d889c82bbf42e715ede39c66650e710 files/inkscape-0.41_gnome-print.patch 404
+SHA256 89f5bd446a96c9a4b4865a01cd6d87bbb1cf8078705d0d01c75180f2caf2e048 files/inkscape-0.41_gnome-print.patch 404
+AUX inkscape-0.44-gcc41.patch 803 RMD160 0394eeadb24671d603dec17b3388021d98a0539e SHA1 42586de7cc9799af926469c63a1be8807d1d0157 SHA256 4a7c68f7db7590c14cf4ee2d801bed01df5b987c414af481053fc3a3a6438354
+MD5 ed6730ae7d06e5b2efdd909441507899 files/inkscape-0.44-gcc41.patch 803
+RMD160 0394eeadb24671d603dec17b3388021d98a0539e files/inkscape-0.44-gcc41.patch 803
+SHA256 4a7c68f7db7590c14cf4ee2d801bed01df5b987c414af481053fc3a3a6438354 files/inkscape-0.44-gcc41.patch 803
+AUX inkscape-20050326.psfix.patch 41224 RMD160 cc9a44c3cabda30ca31dccf5cb42b4c2087ffc9b SHA1 4bd3aa96f8b886b25b92bb914fd11289cf03ac37 SHA256 defff82478298e7e260fd92f6829034d775aaf1201d6e28f3145b5c703c87bab
+MD5 7444b2fe41a0ceae5dbd76f9a840d842 files/inkscape-20050326.psfix.patch 41224
+RMD160 cc9a44c3cabda30ca31dccf5cb42b4c2087ffc9b files/inkscape-20050326.psfix.patch 41224
+SHA256 defff82478298e7e260fd92f6829034d775aaf1201d6e28f3145b5c703c87bab files/inkscape-20050326.psfix.patch 41224
+AUX inkscape-epsout.patch 1449 RMD160 ee467b8646301698a5b8ae60cb2d544e337bf681 SHA1 4ce73e237263c159524bd758b94c8fa0a70e576f SHA256 a291a979318cc3925bb208ba9aa8c823b058c8e3071eeaba85b8d1fb2fc486a6
+MD5 ff2645222f582b030b024246a77db6ca files/inkscape-epsout.patch 1449
+RMD160 ee467b8646301698a5b8ae60cb2d544e337bf681 files/inkscape-epsout.patch 1449
+SHA256 a291a979318cc3925bb208ba9aa8c823b058c8e3071eeaba85b8d1fb2fc486a6 files/inkscape-epsout.patch 1449
+AUX inkscape-landscape.patch 592 RMD160 00fdf7f577d9085d6056742009fcfd40f548f2e1 SHA1 50ceb5bdfce4dc2a399e33c9590efeb3164021e7 SHA256 ffd3fdf9faf6ed00e7c7a128e72c7204ffba61223fa29dacd35e1b606f0a51ee
+MD5 f3d3caa0f5c23423ec110d6686097af4 files/inkscape-landscape.patch 592
+RMD160 00fdf7f577d9085d6056742009fcfd40f548f2e1 files/inkscape-landscape.patch 592
+SHA256 ffd3fdf9faf6ed00e7c7a128e72c7204ffba61223fa29dacd35e1b606f0a51ee files/inkscape-landscape.patch 592
+EBUILD inkscape-0.44_pre10936.ebuild 1675 RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 SHA1 e515da586194a8cb3519754982ba9e6db13088ae SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4
+MD5 d3a46e4926290306c66d54c379d1928c inkscape-0.44_pre10936.ebuild 1675
+RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 inkscape-0.44_pre10936.ebuild 1675
+SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4 inkscape-0.44_pre10936.ebuild 1675
+EBUILD inkscape-0.44_pre11257.ebuild 1675 RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 SHA1 e515da586194a8cb3519754982ba9e6db13088ae SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4
+MD5 d3a46e4926290306c66d54c379d1928c inkscape-0.44_pre11257.ebuild 1675
+RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 inkscape-0.44_pre11257.ebuild 1675
+SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4 inkscape-0.44_pre11257.ebuild 1675
+EBUILD inkscape-0.44_pre11375.ebuild 1675 RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 SHA1 e515da586194a8cb3519754982ba9e6db13088ae SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4
+MD5 d3a46e4926290306c66d54c379d1928c inkscape-0.44_pre11375.ebuild 1675
+RMD160 abf2e56848e8e4ee5ab33ba033e943078ad89e32 inkscape-0.44_pre11375.ebuild 1675
+SHA256 94e61642a318cdecb04d8c0d9cabfbe6a45f2f769963db67e56533b1988fd8c4 inkscape-0.44_pre11375.ebuild 1675
+EBUILD inkscape-0.44_pre11487.ebuild 2286 RMD160 94c5d9a09c072dc3ea487bbad741502902a202ab SHA1 1a964b34d3ec7e596c5d9ddb5f4603371beee7c3 SHA256 68da012fdb47d91526e7e5794f2d17418e720aa82217bfe32757d5fbe585eb2f
+MD5 9c2fdef8519b67b06dacacb5e23b1ff1 inkscape-0.44_pre11487.ebuild 2286
+RMD160 94c5d9a09c072dc3ea487bbad741502902a202ab inkscape-0.44_pre11487.ebuild 2286
+SHA256 68da012fdb47d91526e7e5794f2d17418e720aa82217bfe32757d5fbe585eb2f inkscape-0.44_pre11487.ebuild 2286
+MISC NOTES 56 RMD160 d48096e40f8f09e4901631591be3ba9efdefb62b SHA1 f1764ab40c496936f46f560625046181eb64fef1 SHA256 c630b8873c8eafc186770124e61c71f71428440c6a2e95dc86c158fd4a49d778
+MD5 b8454227cdf8a9e6f8cdebb95d7289f8 NOTES 56
+RMD160 d48096e40f8f09e4901631591be3ba9efdefb62b NOTES 56
+SHA256 c630b8873c8eafc186770124e61c71f71428440c6a2e95dc86c158fd4a49d778 NOTES 56
+MD5 68b329da9893e34099c7d8ad5cb9c940 files/digest-inkscape-0.44_pre10936 1
+RMD160 c0da025038ed83c687ddc430da9846ecb97f3998 files/digest-inkscape-0.44_pre10936 1
+SHA256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b files/digest-inkscape-0.44_pre10936 1
+MD5 68b329da9893e34099c7d8ad5cb9c940 files/digest-inkscape-0.44_pre11257 1
+RMD160 c0da025038ed83c687ddc430da9846ecb97f3998 files/digest-inkscape-0.44_pre11257 1
+SHA256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b files/digest-inkscape-0.44_pre11257 1
+MD5 68b329da9893e34099c7d8ad5cb9c940 files/digest-inkscape-0.44_pre11375 1
+RMD160 c0da025038ed83c687ddc430da9846ecb97f3998 files/digest-inkscape-0.44_pre11375 1
+SHA256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b files/digest-inkscape-0.44_pre11375 1
+MD5 68b329da9893e34099c7d8ad5cb9c940 files/digest-inkscape-0.44_pre11487 1
+RMD160 c0da025038ed83c687ddc430da9846ecb97f3998 files/digest-inkscape-0.44_pre11487 1
+SHA256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b files/digest-inkscape-0.44_pre11487 1
diff --git a/media-gfx/inkscape/NOTES b/media-gfx/inkscape/NOTES
new file mode 100644
index 0000000..a50d417
--- /dev/null
+++ b/media-gfx/inkscape/NOTES
@@ -0,0 +1 @@
+I like to run the bleeding edge. These are svn ebuilds.
diff --git a/media-gfx/inkscape/files/digest-inkscape-0.44_pre10936 b/media-gfx/inkscape/files/digest-inkscape-0.44_pre10936
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/media-gfx/inkscape/files/digest-inkscape-0.44_pre10936
@@ -0,0 +1 @@
+
diff --git a/media-gfx/inkscape/files/digest-inkscape-0.44_pre11257 b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11257
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11257
@@ -0,0 +1 @@
+
diff --git a/media-gfx/inkscape/files/digest-inkscape-0.44_pre11375 b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11375
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11375
@@ -0,0 +1 @@
+
diff --git a/media-gfx/inkscape/files/digest-inkscape-0.44_pre11487 b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11487
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/media-gfx/inkscape/files/digest-inkscape-0.44_pre11487
@@ -0,0 +1 @@
+
diff --git a/media-gfx/inkscape/files/inkscape-0.41_gnome-print.patch b/media-gfx/inkscape/files/inkscape-0.41_gnome-print.patch
new file mode 100644
index 0000000..10fa49a
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.41_gnome-print.patch
@@ -0,0 +1,16 @@
+--- src/extension/internal/gnome.cpp
++++ src/extension/internal/gnome.cpp
+@@ -183,6 +183,13 @@
+ return 0;
+ }
+
++unsigned int PrintGNOME::comment (Inkscape::Extension::Print * module,
++ const char * comment)
++{
++ // ignore comment
++ return 0;
++}
++
+ unsigned int
+ PrintGNOME::fill(Inkscape::Extension::Print *mod,
+ NRBPath const *bpath, NRMatrix const *ctm, SPStyle const *style,
diff --git a/media-gfx/inkscape/files/inkscape-0.44-gcc41.patch b/media-gfx/inkscape/files/inkscape-0.44-gcc41.patch
new file mode 100644
index 0000000..d4fc49a
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-0.44-gcc41.patch
@@ -0,0 +1,26 @@
+Index: src/dom/uri.h
+===================================================================
+--- src/dom/uri.h (revision 11487)
++++ src/dom/uri.h (working copy)
+@@ -87,7 +87,7 @@
+ /**
+ * Assignment
+ */
+- URI &URI::operator=(const URI &other);
++ URI &operator=(const URI &other);
+
+ /**
+ *
+Index: src/document.h
+===================================================================
+--- src/document.h (revision 11487)
++++ src/document.h (working copy)
+@@ -125,7 +125,7 @@
+ sigc::connection _selection_changed_connection;
+ sigc::connection _desktop_activated_connection;
+
+- void SPDocument::fitToRect(NRRect const & rect);
++ void fitToRect(NRRect const & rect);
+ };
+
+ SPDocument *sp_document_new (const gchar *uri, unsigned int keepalive, bool make_new = false);
diff --git a/media-gfx/inkscape/files/inkscape-20050326.psfix.patch b/media-gfx/inkscape/files/inkscape-20050326.psfix.patch
new file mode 100644
index 0000000..061a526
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-20050326.psfix.patch
@@ -0,0 +1,1245 @@
+diff -urN inkscape-20050326-2100.orig/src/.kdbgrc.inkscape inkscape-20050326-2100/src/.kdbgrc.inkscape
+--- inkscape-20050326-2100.orig/src/.kdbgrc.inkscape 1970-01-01 01:00:00.000000000 +0100
++++ inkscape-20050326-2100/src/.kdbgrc.inkscape 2005-03-29 15:06:43.000000000 +0200
+@@ -0,0 +1,27 @@
++[Breakpoint 0]
++Enabled=true
++File=ps.cpp
++Line=298
++Temporary=false
++
++[Breakpoint 1]
++Enabled=true
++File=ps.cpp
++Line=249
++Temporary=false
++
++[General]
++DebuggerCmdStr=
++DriverName=GDB
++FileVersion=1
++OptionsSelected=
++ProgramArgs=--print \\>/tmp/foo.eps /home/pauldv/data/thesis/Chapter4/modelOverview.svg
++TTYLevel=7
++WorkingDirectory=
++
++[Memory]
++ColumnWidths=80,0
++NumExprs=0
++
++[Watches]
++Expr0=&fn[strlen(fn)-4]
+diff -urN inkscape-20050326-2100.orig/src/extension/internal/Makefile_insert inkscape-20050326-2100/src/extension/internal/Makefile_insert
+--- inkscape-20050326-2100.orig/src/extension/internal/Makefile_insert 2005-03-27 07:01:06.000000000 +0200
++++ inkscape-20050326-2100/src/extension/internal/Makefile_insert 2005-03-29 13:59:42.000000000 +0200
+@@ -16,6 +16,8 @@
+ extension/internal/svg.cpp \
+ extension/internal/svgz.h \
+ extension/internal/svgz.cpp \
++ extension/internal/pstree.h \
++ extension/internal/pstree.cpp \
+ extension/internal/ps.h \
+ extension/internal/ps.cpp \
+ extension/internal/ps-out.h \
+diff -urN inkscape-20050326-2100.orig/src/extension/internal/ps.cpp inkscape-20050326-2100/src/extension/internal/ps.cpp
+--- inkscape-20050326-2100.orig/src/extension/internal/ps.cpp 2005-03-27 07:01:06.000000000 +0200
++++ inkscape-20050326-2100/src/extension/internal/ps.cpp 2005-03-29 15:04:51.000000000 +0200
+@@ -74,6 +74,9 @@
+
+ #include "io/sys.h"
+
++using namespace std;
++using namespace Inkscape::Extension::Internal::PS;
++
+ namespace Inkscape {
+ namespace Extension {
+ namespace Internal {
+@@ -81,7 +84,8 @@
+ PrintPS::PrintPS() :
+ _stream(NULL),
+ _dpi(72),
+- _bitmap(false)
++ _bitmap(false),
++ _tree(0)
+ {
+ }
+
+@@ -239,13 +243,14 @@
+ unsigned int
+ PrintPS::begin(Inkscape::Extension::Print *mod, SPDocument *doc)
+ {
+- Inkscape::SVGOStringStream os;
+ int res;
+ FILE *osf, *osp;
+ const gchar * fn;
+
+ fn = mod->get_param_string("destination");
+
++ _tree.reset(new PSTree());
++
+ osf = NULL;
+ osp = NULL;
+
+@@ -256,6 +261,8 @@
+ -1, &bytesRead, &bytesWritten, &error);
+ fn = local_fn;
+
++ bool overridePageBB = false;
++
+ /* TODO: Replace the below fprintf's with something that does the right thing whether in
+ * gui or batch mode (e.g. --print=blah). Consider throwing an exception: currently one of
+ * the callers (sp_print_document_to_file, "ret = mod->begin(doc)") wrongly ignores the
+@@ -287,6 +294,12 @@
+ return 0;
+ }
+ _stream = osf;
++
++ // Hack to allow export to eps
++ if (strcasecmp(".eps",&fn[strlen(fn)-4])==0) {
++ overridePageBB=true;
++ }
++
+ } else {
+ gchar *qn;
+ /* put cwd stuff in here */
+@@ -316,6 +329,7 @@
+ #endif
+ }
+
++ // Don't put this in the tree to have sane error handling
+ res = fprintf(_stream, "%%!PS-Adobe-3.0\n");
+ /* flush this to test output stream as early as possible */
+ if (fflush(_stream)) {
+@@ -341,7 +355,7 @@
+ bool pageLandscape;
+ pageBoundingBox = mod->get_param_bool("pageBoundingBox");
+ // printf("Page Bounding Box: %s\n", pageBoundingBox ? "TRUE" : "FALSE");
+- if (pageBoundingBox) {
++ if (pageBoundingBox && (! overridePageBB )) {
+ d.x0 = d.y0 = 0;
+ d.x1 = ceil(_width);
+ d.y1 = ceil(_height);
+@@ -356,14 +370,13 @@
+ }
+
+ if (res >= 0) {
+-
+- os << "%%Creator: " << PACKAGE_STRING << "\n";
++ *_tree << "%%Creator: " << PACKAGE_STRING << "\n";
+ // This will become problematic if inkscape gains the
+ // ability to handle multi paged documents. If this is
+ // the case the %%Orientation: comments should be
+ // renamed to %%PageOrientation: and moved to the
+ // respective pages.
+- os << "%%Pages: 1\n";
++ *_tree << "%%Pages: 1\n";
+
+ // 2004 Dec 10, BFC:
+ // The point of the following code is (1) to do the thing that's expected by users
+@@ -383,8 +396,8 @@
+ }
+
+ if (pageLandscape) {
+- os << "%%Orientation: Landscape\n";
+- os << "%%BoundingBox: " << (int) (_height - d.y1) << " "
++ *_tree << "%%Orientation: Landscape\n";
++ *_tree << "%%BoundingBox: " << (int) (_height - d.y1) << " "
+ << (int) d.x0 << " "
+ << (int) ceil(_height - d.y0) << " "
+ << (int) ceil(d.x1) << "\n";
+@@ -395,44 +408,44 @@
+ // FIXME: I couldn't find HiResBoundingBox in the PS
+ // reference manual, so I guess we should skip
+ // it.
+- os << "%%HiResBoundingBox: " << (_height - d.y1) << " "
+- << d.x0 << " "
+- << (_height - d.y0) << " "
+- << d.x1 << "\n";
++ *_tree << "%%HiResBoundingBox: " << (_height - d.y1) << " "
++ << d.x0 << " "
++ << (_height - d.y0) << " "
++ << d.x1 << "\n";
+ } else {
+- os << "%%Orientation: Portrait\n";
+- os << "%%BoundingBox: " << (int) d.x0 << " "
++ *_tree << "%%Orientation: Portrait\n";
++ *_tree << "%%BoundingBox: " << (int) d.x0 << " "
+ << (int) d.y0 << " "
+ << (int) ceil(d.x1) << " "
+ << (int) ceil(d.y1) << "\n";
+- os << "%%HiResBoundingBox: " << d.x0 << " "
++ *_tree << "%%HiResBoundingBox: " << d.x0 << " "
+ << d.y0 << " "
+ << d.x1 << " "
+ << d.y1 << "\n";
+ }
+
+- os << "%%EndComments\n";
++ *_tree << "%%EndComments\n";
+ // This will become problematic if we print multi paged documents:
+- os << "%%Page: 1 1\n";
++ *_tree << "%%Page: 1 1\n";
+
+ if (pageLandscape) {
+- os << "90 rotate\n";
++ *_tree << "90 rotate\n";
+ if (_bitmap) {
+- os << "0 " << (int) -ceil(_height) << " translate\n";
++ *_tree << "0 " << (int) -ceil(_height) << " translate\n";
+ }
+ } else {
+ if (!_bitmap) {
+- os << "0 " << (int) ceil(_height) << " translate\n";
++ *_tree << "0 " << (int) ceil(_height) << " translate\n";
+ }
+ }
+
+ if (!_bitmap) {
+- os << PT_PER_PX << " " << -PT_PER_PX << " scale\n";
++ *_tree << PT_PER_PX << " " << -PT_PER_PX << " scale\n";
+ // from now on we can output px, but they will be treated as pt
+ }
+ }
+
+- return fprintf(_stream, "%s", os.str().c_str());
++ return 0; // wait with printing until finish;
+ }
+
+ unsigned int
+@@ -505,14 +518,18 @@
+ nr_free(px);
+ }
+
+- res = fprintf(_stream, "showpage\n");
++ *_tree << "showpage\n";
++
++ string s = _tree->str();
+
++ res=fprintf(_stream,"%s",s.c_str());
+ /* Flush stream to be sure. */
+ (void) fflush(_stream);
+
+ /* fixme: should really use pclose for popen'd streams */
+ fclose(_stream);
+ _stream = 0;
++ _tree.release();
+
+ return res;
+ }
+@@ -523,15 +540,15 @@
+ if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
+ if (_bitmap) return 0;
+
+- Inkscape::SVGOStringStream os;
+- os << "gsave [" << transform->c[0] << " "
++ _tree->gsave();
++ *_tree << "[" << transform->c[0] << " "
+ << transform->c[1] << " "
+ << transform->c[2] << " "
+ << transform->c[3] << " "
+ << transform->c[4] << " "
+ << transform->c[5] << "] concat\n";
+
+- return fprintf(_stream, "%s", os.str().c_str());
++ return 0;
+ }
+
+ unsigned int
+@@ -539,8 +556,9 @@
+ {
+ if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
+ if (_bitmap) return 0;
++ _tree->grestore();
+
+- return fprintf(_stream, "grestore\n");
++ return 0;
+ }
+
+ unsigned int
+@@ -549,108 +567,109 @@
+ if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
+ if (_bitmap) return 0;
+
+- return fprintf(_stream, "%%! %s\n",comment);
++ *_tree << "%%! %s" << comment << "\n";
++ return 0;
+ }
+
+ void
+-PrintPS::print_fill_style(SVGOStringStream &os, const SPStyle *style)
++PrintPS::print_fill_style(const SPStyle *style)
+ {
+ g_return_if_fail(style->fill.type == SP_PAINT_TYPE_COLOR || SP_IS_GRADIENT (SP_STYLE_FILL_SERVER (style)));
+-
++
+ if (style->fill.type == SP_PAINT_TYPE_COLOR)
+ {
+ float rgb[3];
+ sp_color_get_rgb_floatv(&style->fill.value.color, rgb);
+
+- os << rgb[0] << " " << rgb[1] << " " << rgb[2] << " setrgbcolor\n";
++ *_tree << rgb[0] << " " << rgb[1] << " " << rgb[2] << " setrgbcolor\n";
+ } else if (SP_IS_GRADIENT (SP_STYLE_FILL_SERVER (style))) {
+ if (SP_IS_LINEARGRADIENT (SP_STYLE_FILL_SERVER (style))) {
+ SPLinearGradient *lg=SP_LINEARGRADIENT(SP_STYLE_FILL_SERVER (style));
+- os << "<<\n/ShadingType 2\n/ColorSpace /DeviceRGB\n";
+- os << "/Coords [" << lg->x1.computed << " " << lg->y1.computed << " " << lg->x2.computed << " " << lg->y2.computed <<"]\n";
+- os << "/Extend [true true]\n";
+- os << "/Domain [0 1]\n";
+- os << "/Function <<\n/FunctionType 3\n/Functions\n[\n";
++ *_tree << "<<\n/ShadingType 2\n/ColorSpace /DeviceRGB\n";
++ *_tree << "/Coords [" << lg->x1.computed << " " << lg->y1.computed << " " << lg->x2.computed << " " << lg->y2.computed <<"]\n";
++ *_tree << "/Extend [true true]\n";
++ *_tree << "/Domain [0 1]\n";
++ *_tree << "/Function <<\n/FunctionType 3\n/Functions\n[\n";
+ for (gint i=0;unsigned(i)<lg->vector.stops.size()-1;i++) {
+ float rgb[3];
+ sp_color_get_rgb_floatv(&lg->vector.stops[i].color, rgb);
+- os << "<<\n/FunctionType 2\n/Domain [0 1]\n";
+- os << "/C0 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
++ *_tree << "<<\n/FunctionType 2\n/Domain [0 1]\n";
++ *_tree << "/C0 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
+ sp_color_get_rgb_floatv(&lg->vector.stops[i+1].color, rgb);
+- os << "/C1 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
+- os << "/N 1\n>>\n";
++ *_tree << "/C1 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
++ *_tree << "/N 1\n>>\n";
+ }
+- os << "]\n/Domain [0 1]\n";
+- os << "/Bounds [ ";
++ *_tree << "]\n/Domain [0 1]\n";
++ *_tree << "/Bounds [ ";
+ for (gint i=0;unsigned(i)<lg->vector.stops.size()-2;i++) {
+- os << lg->vector.stops[i+1].offset <<" ";
++ *_tree << lg->vector.stops[i+1].offset <<" ";
+ }
+- os << "]\n";
+- os << "/Encode [ ";
++ *_tree << "]\n";
++ *_tree << "/Encode [ ";
+ for (gint i=0;unsigned(i)<lg->vector.stops.size()-1;i++) {
+- os << "0 1 ";
++ *_tree << "0 1 ";
+ }
+- os << "]\n";
+- os << ">>\n>>\n";
++ *_tree << "]\n";
++ *_tree << ">>\n>>\n";
+ } else if (SP_IS_RADIALGRADIENT (SP_STYLE_FILL_SERVER (style))) {
+ SPRadialGradient *rg=SP_RADIALGRADIENT(SP_STYLE_FILL_SERVER (style));
+- os << "<<\n/ShadingType 3\n/ColorSpace /DeviceRGB\n";
+- os << "/Coords ["<<rg->fx.computed<<" "<<rg->fy.computed<<" 0 "<<rg->cx.computed<<" "<<rg->cy.computed<<" "<<rg->r.computed<<"]\n";
+- os << "/Extend [true true]\n";
+- os << "/Domain [0 1]\n";
+- os << "/Function <<\n/FunctionType 3\n/Functions\n[\n";
++ *_tree << "<<\n/ShadingType 3\n/ColorSpace /DeviceRGB\n";
++ *_tree << "/Coords ["<<rg->fx.computed<<" "<<rg->fy.computed<<" 0 "<<rg->cx.computed<<" "<<rg->cy.computed<<" "<<rg->r.computed<<"]\n";
++ *_tree << "/Extend [true true]\n";
++ *_tree << "/Domain [0 1]\n";
++ *_tree << "/Function <<\n/FunctionType 3\n/Functions\n[\n";
+ for (gint i=0;unsigned(i)<rg->vector.stops.size()-1;i++) {
+ float rgb[3];
+ sp_color_get_rgb_floatv(&rg->vector.stops[i].color, rgb);
+- os << "<<\n/FunctionType 2\n/Domain [0 1]\n";
+- os << "/C0 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
++ *_tree << "<<\n/FunctionType 2\n/Domain [0 1]\n";
++ *_tree << "/C0 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
+ sp_color_get_rgb_floatv(&rg->vector.stops[i+1].color, rgb);
+- os << "/C1 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
+- os << "/N 1\n>>\n";
++ *_tree << "/C1 [" << rgb[0] << " " << rgb[1] << " " << rgb[2] << "]\n";
++ *_tree << "/N 1\n>>\n";
+ }
+- os << "]\n/Domain [0 1]\n";
+- os << "/Bounds [ ";
++ *_tree << "]\n/Domain [0 1]\n";
++ *_tree << "/Bounds [ ";
+ for (gint i=0;unsigned(i)<rg->vector.stops.size()-2;i++) {
+- os << rg->vector.stops[i+1].offset <<" ";
++ *_tree << rg->vector.stops[i+1].offset <<" ";
+ }
+- os << "]\n";
+- os << "/Encode [ ";
++ *_tree << "]\n";
++ *_tree << "/Encode [ ";
+ for (gint i=0;unsigned(i)<rg->vector.stops.size()-1;i++) {
+- os << "0 1 ";
++ *_tree << "0 1 ";
+ }
+- os << "]\n";
+- os << ">>\n>>\n";
++ *_tree << "]\n";
++ *_tree << ">>\n>>\n";
+ }
+ }
+ }
+
+ void
+-PrintPS::print_stroke_style(SVGOStringStream &os, const SPStyle *style)
++PrintPS::print_stroke_style(const SPStyle *style)
+ {
+ float rgb[3];
+ sp_color_get_rgb_floatv(&style->stroke.value.color, rgb);
+
+- os << rgb[0] << " " << rgb[1] << " " << rgb[2] << " setrgbcolor\n";
++ *_tree << rgb[0] << " " << rgb[1] << " " << rgb[2] << " setrgbcolor\n";
+
+ if (style->stroke_dasharray_set &&
+ style->stroke_dash.n_dash &&
+ style->stroke_dash.dash) {
+ int i;
+- os << "[";
++ *_tree << "[";
+ for (i = 0; i < style->stroke_dash.n_dash; i++) {
+ if ((i)) {
+- os << " ";
++ *_tree << " ";
+ }
+- os << style->stroke_dash.dash[i];
++ *_tree << style->stroke_dash.dash[i];
+ }
+- os << "] " << style->stroke_dash.offset << " setdash\n";
++ *_tree << "] " << style->stroke_dash.offset << " setdash\n";
+ } else {
+- os << "[] 0 setdash\n";
++ *_tree << "[] 0 setdash\n";
+ }
+
+- os << style->stroke_width.computed << " setlinewidth\n";
+- os << style->stroke_linejoin.computed << " setlinejoin\n";
+- os << style->stroke_linecap.computed << " setlinecap\n";
++ *_tree << style->stroke_width.computed << " setlinewidth\n";
++ *_tree << style->stroke_linejoin.computed << " setlinejoin\n";
++ *_tree << style->stroke_linecap.computed << " setlinecap\n";
+ }
+
+
+@@ -662,52 +681,53 @@
+ if (_bitmap) return 0;
+
+ if (style->fill.type == SP_PAINT_TYPE_COLOR || SP_IS_GRADIENT (SP_STYLE_FILL_SERVER (style))) {
+- Inkscape::SVGOStringStream os;
+
+- os << "gsave\n";
++ _tree->gsave();
+
+- print_fill_style(os, style);
++ print_fill_style(style);
+
+- print_bpath(os, bpath->path);
++ print_bpath(bpath->path);
+
+ if (style->fill_rule.value == SP_WIND_RULE_EVENODD) {
+ if (style->fill.type == SP_PAINT_TYPE_COLOR) {
+- os << "eofill\n";
++ *_tree << "eofill\n";
+ } else if (SP_IS_GRADIENT (SP_STYLE_FILL_SERVER (style))) {
+ SPGradient *g=SP_GRADIENT(SP_STYLE_FILL_SERVER (style));
+- os << "eoclip\n";
++ *_tree << "eoclip\n";
+ if (g->gradientTransform_set) {
+- os << "gsave [" << g->gradientTransform[0] << " " << g->gradientTransform[1]
+- << " " << g->gradientTransform[2] << " " << g->gradientTransform[3]
+- << " " << g->gradientTransform[4] << " " << g->gradientTransform[5] << "] concat\n";
++ _tree->gsave();
++ *_tree << "[" << g->gradientTransform[0] << " " << g->gradientTransform[1]
++ << " " << g->gradientTransform[2] << " " << g->gradientTransform[3]
++ << " " << g->gradientTransform[4] << " " << g->gradientTransform[5] << "] concat\n";
+ }
+- os << "shfill\n";
++ *_tree << "shfill\n";
+ if (g->gradientTransform_set) {
+- os << "grestore\n";
++ _tree->grestore();
+ }
+ }
+ } else {
+ if (style->fill.type == SP_PAINT_TYPE_COLOR) {
+- os << "fill\n";
++ *_tree << "fill\n";
+ } else if (SP_IS_GRADIENT (SP_STYLE_FILL_SERVER (style))) {
+ SPGradient *g=SP_GRADIENT(SP_STYLE_FILL_SERVER (style));
+- os << "clip\n";
++ *_tree << "clip\n";
+ if (g->gradientTransform_set) {
+- os << "gsave [" << g->gradientTransform[0] << " " << g->gradientTransform[1]
+- << " " << g->gradientTransform[2] << " " << g->gradientTransform[3]
+- << " " << g->gradientTransform[4] << " " << g->gradientTransform[5] << "] concat\n";
++ _tree->gsave();
++ *_tree << "[" << g->gradientTransform[0] << " " << g->gradientTransform[1]
++ << " " << g->gradientTransform[2] << " " << g->gradientTransform[3]
++ << " " << g->gradientTransform[4] << " " << g->gradientTransform[5] << "] concat\n";
+ }
+- os << "shfill\n";
++ *_tree << "shfill\n";
+ if (g->gradientTransform_set) {
+- os << "grestore\n";
++ _tree->grestore();
+ }
+ }
+ }
+
+- os << "grestore\n";
++ _tree->grestore();
+
+- fprintf(_stream, "%s", os.str().c_str());
+- }
++// fprintf(_stream, "%s", os.str().c_str());
++ }
+
+ return 0;
+ }
+@@ -721,15 +741,11 @@
+ if (_bitmap) return 0;
+
+ if (style->stroke.type == SP_PAINT_TYPE_COLOR) {
+- Inkscape::SVGOStringStream os;
+-
+- print_stroke_style(os, style);
+-
+- print_bpath(os, bpath->path);
++ print_stroke_style(style);
+
+- os << "stroke\n";
++ print_bpath(bpath->path);
+
+- fprintf(_stream, "%s", os.str().c_str());
++ *_tree << "stroke\n";
+ }
+
+ return 0;
+@@ -743,49 +759,25 @@
+ if (_bitmap) return 0;
+
+ return print_image(_stream, px, w, h, rs, transform);
+-#if 0
+- fprintf(_stream, "gsave\n");
+- fprintf(_stream, "/rowdata %d string def\n", 3 * w);
+- fprintf(_stream, "[%g %g %g %g %g %g] concat\n",
+- transform->c[0],
+- transform->c[1],
+- transform->c[2],
+- transform->c[3],
+- transform->c[4],
+- transform->c[5]);
+- fprintf(_stream, "%d %d 8 [%d 0 0 -%d 0 %d]\n", w, h, w, h, h);
+- fprintf(_stream, "{currentfile rowdata readhexstring pop}\n");
+- fprintf(_stream, "false 3 colorimage\n");
+-
+- for (unsigned int r = 0; r < h; r++) {
+- guchar *s;
+- unsigned int c0, c1, c;
+- s = px + r * rs;
+- for (c0 = 0; c0 < w; c0 += 24) {
+- c1 = MIN(w, c0 + 24);
+- for (c = c0; c < c1; c++) {
+- static const char xtab[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+- fputc(xtab[s[0] >> 4], _stream);
+- fputc(xtab[s[0] & 0xf], _stream);
+- fputc(xtab[s[1] >> 4], _stream);
+- fputc(xtab[s[1] & 0xf], _stream);
+- fputc(xtab[s[2] >> 4], _stream);
+- fputc(xtab[s[2] & 0xf], _stream);
+- s += 4;
+- }
+- fputs("\n", _stream);
+- }
+- }
+-
+- fprintf(_stream, "grestore\n");
+-
+- return 0;
+-#endif
+ }
+
+-const char *
++const string
+ PrintPS::PSFontName(const SPStyle *style)
+ {
++
++ gchar *fname=style->text->font_family.value;
++
++ // Just pass the standard adobe font names
++ if(strcasecmp(fname, "helvetica")==0){
++ return "Helvetica";
++ } else if (strcasecmp(fname, "times")==0) {
++ return "Times";
++ } else if (strcasecmp(fname, "courier")==0) {
++ return "Courier";
++ } else if (strcasecmp(fname, "symbol")==0) {
++ return "Symbol";
++ }
++
+ font_instance *tf = (font_factory::Default())->Face(style->text->font_family.value, font_style_to_pos(*style));
+
+ char const *n;
+@@ -809,7 +801,8 @@
+ (i) ? "Italic" : ((o) ? "Oblique" : "") );
+ }
+
+- return g_strdup(n);
++ string s(n);
++ return s;
+ }
+
+
+@@ -820,45 +813,46 @@
+ if (!_stream) return 0; // XXX: fixme, returning -1 as unsigned.
+ if (_bitmap) return 0;
+
+- Inkscape::SVGOStringStream os;
+-
+ // Escape chars
+- // FlowResOut feeds us text char by char
+- if (!strcmp(text, "(")) {
+- text = "\\(";
+- } else if (!strcmp(text, ")")) {
+- text = "\\)";
+- } else if (!strcmp(text, "\\")) {
+- text = "\\\\";
++ // FlowResOut does no longer work char by char
++ string ntext;
++ const char *c=text;
++ while (*c!='\0') {
++ if (*c=='(') {
++ ntext+="\\(";
++ } else if (*c==')') {
++ ntext+="\\)";
++ } else if (*c=='\\') {
++ ntext+="\\\\";
++ } else {
++ ntext+=*c;
++ }
++ c++;
+ }
+
+ // set font
+- const char *fn = PSFontName(style);
+- os << "/" << fn << " findfont\n";
+- os << style->font_size.computed << " scalefont\n";
+- os << "setfont\n";
+- g_free((void *) fn);
++ const string fn = PSFontName(style);
++
++ _tree->setFont(fn,style->font_size.computed);
+
+ if (style->fill.type == SP_PAINT_TYPE_COLOR) {
+ // set fill style
+- print_fill_style(os, style);
++ print_fill_style(style);
+ // paint fill
+- os << "newpath\n";
+- os << p[NR::X] << " " << p[NR::Y] << " moveto\n";
+- os << "(" << text << ") show\n";
++ *_tree << "newpath\n";
++ *_tree << p[NR::X] << " " << p[NR::Y] << " moveto\n";
++ *_tree << "(" << ntext << ") show\n";
+ }
+
+ if (style->stroke.type == SP_PAINT_TYPE_COLOR) {
+ // set stroke style
+- print_stroke_style(os, style);
++ print_stroke_style(style);
+ // paint stroke
+- os << "newpath\n";
+- os << p[NR::X] << " " << p[NR::Y] << " moveto\n";
+- os << "(" << text << ") false charpath stroke\n";
++ *_tree << "newpath\n";
++ *_tree << p[NR::X] << " " << p[NR::Y] << " moveto\n";
++ *_tree << "(" << ntext << ") false charpath stroke\n";
+ }
+
+- fprintf(_stream, "%s", os.str().c_str());
+-
+ return 0;
+ }
+
+@@ -867,33 +861,33 @@
+ /* PostScript helpers */
+
+ void
+-PrintPS::print_bpath(SVGOStringStream &os, const NArtBpath *bp)
++PrintPS::print_bpath(const NArtBpath *bp)
+ {
+ unsigned int closed;
+
+- os << "newpath\n";
++ *_tree << "newpath\n";
+ closed = FALSE;
+ while (bp->code != NR_END) {
+ switch (bp->code) {
+ case NR_MOVETO:
+ if (closed) {
+- os << "closepath\n";
++ *_tree << "closepath\n";
+ }
+ closed = TRUE;
+- os << bp->x3 << " " << bp->y3 << " moveto\n";
++ *_tree << bp->x3 << " " << bp->y3 << " moveto\n";
+ break;
+ case NR_MOVETO_OPEN:
+ if (closed) {
+- os << "closepath\n";
++ *_tree << "closepath\n";
+ }
+ closed = FALSE;
+- os << bp->x3 << " " << bp->y3 << " moveto\n";
++ *_tree << bp->x3 << " " << bp->y3 << " moveto\n";
+ break;
+ case NR_LINETO:
+- os << bp->x3 << " " << bp->y3 << " lineto\n";
++ *_tree << bp->x3 << " " << bp->y3 << " lineto\n";
+ break;
+ case NR_CURVETO:
+- os << bp->x1 << " " << bp->y1 << " "
++ *_tree << bp->x1 << " " << bp->y1 << " "
+ << bp->x2 << " " << bp->y2 << " "
+ << bp->x3 << " " << bp->y3 << " curveto\n";
+ break;
+@@ -903,7 +897,7 @@
+ bp += 1;
+ }
+ if (closed) {
+- os << "closepath\n";
++ *_tree << "closepath\n";
+ }
+ }
+
+@@ -1002,8 +996,9 @@
+ }
+
+ void
+-PrintPS::ascii85_flush(SVGOStringStream &os)
++PrintPS::ascii85_flush()
+ {
++ string s;
+ char c[5];
+ int i;
+ gboolean zero_case = (ascii85_buf == 0);
+@@ -1017,31 +1012,32 @@
+ * at end of data. */
+ if (zero_case && (ascii85_len == 4)) {
+ if (ascii85_linewidth >= max_linewidth) {
+- os << '\n';
++ s += '\n';
+ ascii85_linewidth = 0;
+ }
+- os << 'z';
++ s += 'z';
+ ascii85_linewidth++;
+ } else {
+ for (i=0; i < ascii85_len+1; i++) {
+ if ((ascii85_linewidth >= max_linewidth) && (c[i] != '%')) {
+- os << '\n';
++ s += '\n';
+ ascii85_linewidth = 0;
+ }
+- os << c[i];
++ s+= c[i];
+ ascii85_linewidth++;
+ }
+ }
+
+ ascii85_len = 0;
+ ascii85_buf = 0;
++ *_tree << s;
+ }
+
+ inline void
+-PrintPS::ascii85_out(guchar byte, SVGOStringStream &os)
++PrintPS::ascii85_out(guchar byte)
+ {
+ if (ascii85_len == 4)
+- ascii85_flush(os);
++ ascii85_flush();
+
+ ascii85_buf <<= 8;
+ ascii85_buf |= byte;
+@@ -1049,24 +1045,24 @@
+ }
+
+ void
+-PrintPS::ascii85_nout(int n, guchar *uptr, SVGOStringStream &os)
++PrintPS::ascii85_nout(int n, guchar *uptr)
+ {
+ while (n-- > 0) {
+- ascii85_out(*uptr, os);
++ ascii85_out(*uptr);
+ uptr++;
+ }
+ }
+
+ void
+-PrintPS::ascii85_done(SVGOStringStream &os)
++PrintPS::ascii85_done()
+ {
+ if (ascii85_len) {
+ /* zero any unfilled buffer portion, then flush */
+ ascii85_buf <<= (8 * (4-ascii85_len));
+- ascii85_flush(os);
++ ascii85_flush();
+ }
+
+- os << "~>\n";
++ *_tree << "~>\n";
+ }
+
+ unsigned int
+@@ -1076,35 +1072,34 @@
+ unsigned int i, j;
+ /* gchar *data, *src; */
+ guchar *packb = NULL, *plane = NULL;
+- Inkscape::SVGOStringStream os;
+
+- os << "gsave\n";
+- os << "[" << transform->c[0] << " "
++ _tree->gsave();
++ *_tree << "[" << transform->c[0] << " "
+ << transform->c[1] << " "
+ << transform->c[2] << " "
+ << transform->c[3] << " "
+ << transform->c[4] << " "
+ << transform->c[5] << "] concat\n";
+- os << width << " " << height << " 8 ["
++ *_tree << width << " " << height << " 8 ["
+ << width << " 0 0 -" << height << " 0 " << height << "]\n";
+
+
+ /* Write read image procedure */
+- os << "% Strings to hold RGB-samples per scanline\n";
+- os << "/rstr " << width << " string def\n";
+- os << "/gstr " << width << " string def\n";
+- os << "/bstr " << width << " string def\n";
+- os << "{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}\n";
+- os << "{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}\n";
+- os << "{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}\n";
+- os << "true 3\n";
++ *_tree << "% Strings to hold RGB-samples per scanline\n";
++ *_tree << "/rstr " << width << " string def\n";
++ *_tree << "/gstr " << width << " string def\n";
++ *_tree << "/bstr " << width << " string def\n";
++ *_tree << "{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}\n";
++ *_tree << "{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}\n";
++ *_tree << "{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}\n";
++ *_tree << "true 3\n";
+
+ /* Allocate buffer for packbits data. Worst case: Less than 1% increase */
+ packb = (guchar *)g_malloc((width * 105)/100+2);
+ plane = (guchar *)g_malloc(width);
+
+ /* ps_begin_data(ofp); */
+- os << "colorimage\n";
++ *_tree << "colorimage\n";
+
+ #define GET_RGB_TILE(begin) \
+ {int scan_lines; \
+@@ -1131,31 +1126,17 @@
+ compress_packbits(width, plane, &nout, packb);
+
+ ascii85_init();
+- ascii85_nout(nout, packb, os);
+- ascii85_out(128, os); /* Write EOD of RunLengthDecode filter */
+- ascii85_done(os);
++ ascii85_nout(nout, packb);
++ ascii85_out(128); /* Write EOD of RunLengthDecode filter */
++ ascii85_done();
+ }
+ }
+ /* ps_end_data(ofp); */
+
+-#if 0
+- fprintf(ofp, "showpage\n");
+- g_free(data);
+-#endif
+-
+ g_free(packb);
+ g_free(plane);
+
+-#if 0
+- if (ferror(ofp)) {
+- g_message(_("write error occurred"));
+- return (FALSE);
+- }
+-#endif
+-
+- os << "grestore\n";
+-
+- fprintf(ofp, "%s", os.str().c_str());
++ _tree->grestore();
+
+ return 0;
+ #undef GET_RGB_TILE
+diff -urN inkscape-20050326-2100.orig/src/extension/internal/ps.h inkscape-20050326-2100/src/extension/internal/ps.h
+--- inkscape-20050326-2100.orig/src/extension/internal/ps.h 2005-03-27 07:01:06.000000000 +0200
++++ inkscape-20050326-2100/src/extension/internal/ps.h 2005-03-29 13:59:42.000000000 +0200
+@@ -5,8 +5,8 @@
+ * This is the internal module used to do Postscript Printing
+ *
+ * Author:
+- * Lauris Kaplinski <lauris@kaplinski.com>
+- * Ted Gould <ted@gould.cx>
++ * Lauris Kaplinski <lauris@kaplinski.com>
++ * Ted Gould <ted@gould.cx>
+ *
+ * Lauris: This code is in the public domain
+ * Ted: This code is under the GNU GPL
+@@ -19,6 +19,9 @@
+ #include <libnr/nr-path.h>
+
+ #include "svg/stringstream.h"
++#include <string>
++#include <memory>
++#include "pstree.h"
+
+ namespace Inkscape {
+ namespace Extension {
+@@ -30,58 +33,58 @@
+ FILE * _stream;
+ unsigned short _dpi;
+ bool _bitmap;
++ std::auto_ptr<Inkscape::Extension::Internal::PS::PSTree> _tree;
+
+- void print_bpath (SVGOStringStream &os, const NArtBpath *bp);
++ void print_bpath (const NArtBpath *bp);
+
+- void PrintPS::print_fill_style (SVGOStringStream &os, const SPStyle *style);
+- void PrintPS::print_stroke_style (SVGOStringStream &os, const SPStyle *style);
++ void PrintPS::print_fill_style (const SPStyle *style);
++ void PrintPS::print_stroke_style (const SPStyle *style);
+
+- const char* PrintPS::PSFontName (const SPStyle *style);
+-
+- unsigned int print_image (FILE *ofp, guchar *px, unsigned int width, unsigned int height, unsigned int rs,
+- const NRMatrix *transform);
+- void compress_packbits (int nin, guchar *src, int *nout, guchar *dst);
+-
+- /* ASCII 85 variables */
+- guint32 ascii85_buf;
+- int ascii85_len;
+- int ascii85_linewidth;
+- /* ASCII 85 Functions */
+- void ascii85_init (void);
+- void ascii85_flush (SVGOStringStream &os);
+- inline void ascii85_out (guchar byte, SVGOStringStream &os);
+- void ascii85_nout (int n, guchar *uptr, SVGOStringStream &os);
+- void ascii85_done (SVGOStringStream &os);
++ const std::string PrintPS::PSFontName (const SPStyle *style);
+
++ unsigned int print_image (FILE *ofp, guchar *px, unsigned int width, unsigned int height, unsigned int rs,
++ const NRMatrix *transform);
++ void compress_packbits (int nin, guchar *src, int *nout, guchar *dst);
++
++ /* ASCII 85 variables */
++ guint32 ascii85_buf;
++ int ascii85_len;
++ int ascii85_linewidth;
++ /* ASCII 85 Functions */
++ void ascii85_init (void);
++ void ascii85_flush ();
++ inline void ascii85_out (guchar byte);
++ void ascii85_nout (int n, guchar *uptr);
++ void ascii85_done ();
+
+ public:
+- PrintPS (void);
+- virtual ~PrintPS (void);
++ PrintPS (void);
++ virtual ~PrintPS (void);
+
+- /* Print functions */
+- virtual unsigned int setup (Inkscape::Extension::Print * module);
+- /*
+- virtual unsigned int set_preview (Inkscape::Extension::Print * module);
+- */
+-
+- virtual unsigned int begin (Inkscape::Extension::Print * module, SPDocument *doc);
+- virtual unsigned int finish (Inkscape::Extension::Print * module);
+-
+- /* Rendering methods */
+- virtual unsigned int bind (Inkscape::Extension::Print * module, const NRMatrix *transform, float opacity);
+- virtual unsigned int release (Inkscape::Extension::Print * module);
+- virtual unsigned int comment (Inkscape::Extension::Print * module, const char * comment);
+- virtual unsigned int fill (Inkscape::Extension::Print * module, const NRBPath *bpath, const NRMatrix *ctm, const SPStyle *style,
+- const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
+- virtual unsigned int stroke (Inkscape::Extension::Print * module, const NRBPath *bpath, const NRMatrix *transform, const SPStyle *style,
+- const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
+- virtual unsigned int image (Inkscape::Extension::Print * module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs,
+- const NRMatrix *transform, const SPStyle *style);
++ /* Print functions */
++ virtual unsigned int setup (Inkscape::Extension::Print * module);
++ /*
++ virtual unsigned int set_preview (Inkscape::Extension::Print * module);
++ */
++
++ virtual unsigned int begin (Inkscape::Extension::Print * module, SPDocument *doc);
++ virtual unsigned int finish (Inkscape::Extension::Print * module);
++
++ /* Rendering methods */
++ virtual unsigned int bind (Inkscape::Extension::Print * module, const NRMatrix *transform, float opacity);
++ virtual unsigned int release (Inkscape::Extension::Print * module);
++ virtual unsigned int comment (Inkscape::Extension::Print * module, const char * comment);
++ virtual unsigned int fill (Inkscape::Extension::Print * module, const NRBPath *bpath, const NRMatrix *ctm, const SPStyle *style,
++ const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
++ virtual unsigned int stroke (Inkscape::Extension::Print * module, const NRBPath *bpath, const NRMatrix *transform, const SPStyle *style,
++ const NRRect *pbox, const NRRect *dbox, const NRRect *bbox);
++ virtual unsigned int image (Inkscape::Extension::Print * module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs,
++ const NRMatrix *transform, const SPStyle *style);
+ virtual unsigned int text (Inkscape::Extension::Print *module, const char *text,
+- NR::Point p, const SPStyle *style);
++ NR::Point p, const SPStyle *style);
+
+- bool textToPath (Inkscape::Extension::Print * ext);
+- static void init (void);
++ bool textToPath (Inkscape::Extension::Print * ext);
++ static void init (void);
+ };
+
+ } /* namespace Internal */
+diff -urN inkscape-20050326-2100.orig/src/extension/internal/pstree.cpp inkscape-20050326-2100/src/extension/internal/pstree.cpp
+--- inkscape-20050326-2100.orig/src/extension/internal/pstree.cpp 1970-01-01 01:00:00.000000000 +0100
++++ inkscape-20050326-2100/src/extension/internal/pstree.cpp 2005-03-29 13:59:42.000000000 +0200
+@@ -0,0 +1,137 @@
++//
++// C++ Implementation: pstree
++//
++// Description:
++//
++//
++// Author: Paul de Vrieze <pauldv@cs.ru.nl>, (C) 2005
++//
++// Copyright: See COPYING file that comes with this distribution
++//
++//
++#include "pstree.h"
++#include <sstream>
++
++namespace Inkscape {
++
++namespace Extension {
++
++namespace Internal {
++
++namespace PS {
++
++using namespace std;
++
++PSTree::PSTree() : PSBlock(0)
++{
++ _current = this;
++}
++
++PSTree& PSTree::put (const string &s) {
++ _current->addElem(new MiscPSElem(s));
++ return *this;
++}
++
++PSTree& PSTree::operator<<(const std::string &s){
++ return put(s);
++}
++
++PSTree& PSTree::operator<<(int i){
++ std::ostringstream s;
++ s<< i;
++ return put(s.str());
++}
++
++PSTree& PSTree::operator<<(unsigned int i){
++ std::ostringstream s;
++ s<< i;
++ return put(s.str());
++}
++
++PSTree& PSTree::operator<<(float f){
++ ostringstream s;
++ s.imbue(std::locale::classic());
++ s.setf(std::ios::showpoint);
++ s.precision(8);
++ s<< f;
++ return put(s.str());
++}
++
++PSTree& PSTree::operator<<(double d){
++ ostringstream s;
++ s.imbue(std::locale::classic());
++ s.setf(std::ios::showpoint);
++ s.precision(8);
++ s<< d;
++ return put(s.str());
++}
++
++PSTree& PSTree::grestore() {
++ _current=_current->parent();
++ put("grestore\n");
++ return *this;
++}
++
++PSTree& PSTree::gsave() {
++ PSBlock *nb = new PSBlock(_current);
++ _current->addElem(nb);
++ _current=nb;
++ put("gsave\n");
++ return *this;
++}
++
++bool hasFont(const PSBlock *obj, const PSFontMetric &metr) {
++ if (obj==0) { return false; }
++ if (obj->font().size() >=0) {
++ return (obj->font()==metr);
++ }
++ return hasFont(obj->parent(),metr);
++}
++
++PSTree &PSTree::setFont(const string &name, const float &size) {
++ PSFontMetric metr(name,size);
++ if (! hasFont(_current, metr)) {
++ *this << "/" <<name << " findfont\n";
++ *this << size << " scalefont\n";
++ *this << "setfont\n";
++ _current->setFont(metr);
++ }
++ return *this;
++}
++
++string PSBlock::str() {
++ string s;
++ for(vector<PSElem*>::iterator it=_elems.begin(); it !=_elems.end(); it++){
++ s += (*it)->str();
++ }
++ return s;
++}
++
++void PSBlock::addElem(PSElem *elem){
++ _elems.push_back(elem);
++}
++
++PSBlock::~PSBlock(){
++ while (! _elems.empty()) {
++ delete _elems[0];
++ }
++}
++
++PSFontMetric::PSFontMetric(const std::string s, const float f)
++ : _fontname(s), _computedsize(f) { }
++
++bool PSFontMetric::operator==(const PSFontMetric &m) const {
++ return (_computedsize==m._computedsize) && (_fontname==m._fontname);
++}
++
++bool PSFontMetric::operator!=(const PSFontMetric &m) const {
++ return (_fontname!=m._fontname) || (_computedsize!=m._computedsize);
++}
++
++} // Namespace PS
++
++}
++
++}
++
++}
+diff -urN inkscape-20050326-2100.orig/src/extension/internal/pstree.h inkscape-20050326-2100/src/extension/internal/pstree.h
+--- inkscape-20050326-2100.orig/src/extension/internal/pstree.h 1970-01-01 01:00:00.000000000 +0100
++++ inkscape-20050326-2100/src/extension/internal/pstree.h 2005-03-29 13:59:42.000000000 +0200
+@@ -0,0 +1,103 @@
++//
++// C++ Interface: pstree
++//
++// Description:
++//
++//
++// Author: Paul de Vrieze <pauldv@cs.ru.nl>, (C) 2005
++//
++// Copyright: See COPYING file that comes with this distribution
++//
++//
++#ifndef INKSCAPE_EXTENSION_INTERNAL_PSPSTREE_H
++#define INKSCAPE_EXTENSION_INTERNAL_PSPSTREE_H
++
++#include <vector>
++#include <string>
++
++namespace Inkscape {
++
++namespace Extension {
++
++namespace Internal {
++
++namespace PS {
++
++/**
++ * An utterance of postscript
++ */
++class PSElem{
++public:
++ virtual std::string str() = 0;
++};
++
++class MiscPSElem : public PSElem {
++ std::string _value;
++public:
++ MiscPSElem(const std::string value) : _value(value) {};
++ virtual std::string str() { return _value; };
++ virtual ~MiscPSElem() {};
++};
++
++
++class PSFontMetric {
++ private:
++ std::string _fontname;
++ float _computedsize;
++
++ public:
++ PSFontMetric(const std::string s="", const float f=-1);
++ bool operator==(const PSFontMetric&) const;
++ bool operator!=(const PSFontMetric&) const;
++ std::string fontname() const { return _fontname; };
++ float size() const { return _computedsize; };
++};
++
++
++class PSBlock : public PSElem{
++private:
++ std::vector<PSElem *> _elems;
++ PSBlock *_parent;
++ PSFontMetric _font;
++public:
++ PSBlock(PSBlock *parent) : _parent(parent) {};
++ void addElem(PSElem *elem);
++ virtual std::string str();
++ virtual ~PSBlock();
++ PSBlock *parent() const { return _parent; };
++ void setFont(const PSFontMetric &font){ _font=font; };
++ const PSFontMetric &font() const { return _font; }
++};
++
++/**
++ * @author Paul de Vrieze
++ */
++class PSTree : public PSBlock{
++private:
++ PSBlock *_current;
++public:
++ PSTree();
++// virtual ~PSTree();
++ PSTree& put (const std::string &s);
++ PSTree &operator<<(const std::string &s);
++ PSTree &operator<<(int i);
++ PSTree &operator<<(unsigned int i);
++ PSTree &operator<<(float f);
++ PSTree &operator<<(double d);
++ PSTree &grestore();
++ PSTree &gsave();
++ PSTree &setFont(const std::string &name, const float &size);
++// PSTree &operator<<(const char * s);
++};
++
++//PSTree &operator<< (PSTree &tree, const std::string &s);
++
++}
++
++}
++
++}
++
++}
++
++#endif
diff --git a/media-gfx/inkscape/files/inkscape-epsout.patch b/media-gfx/inkscape/files/inkscape-epsout.patch
new file mode 100644
index 0000000..176193d
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-epsout.patch
@@ -0,0 +1,33 @@
+diff -urN inkscape-20050426-1320.orig/src/extension/internal/ps.cpp inkscape-20050426-1320/src/extension/internal/ps.cpp
+--- inkscape-20050426-1320.orig/src/extension/internal/ps.cpp 2005-04-26 22:20:34.000000000 +0200
++++ inkscape-20050426-1320/src/extension/internal/ps.cpp 2005-04-27 20:57:34.179458518 +0200
+@@ -259,6 +259,8 @@
+ -1, &bytesRead, &bytesWritten, &error);
+ fn = local_fn;
+
++ bool overridePageBB = false;
++
+ /* TODO: Replace the below fprintf's with something that does the right thing whether in
+ * gui or batch mode (e.g. --print=blah). Consider throwing an exception: currently one of
+ * the callers (sp_print_document_to_file, "ret = mod->begin(doc)") wrongly ignores the
+@@ -290,6 +292,11 @@
+ return 0;
+ }
+ _stream = osf;
++
++ // Hack to allow export to eps
++ if (strcasecmp(".eps",&fn[strlen(fn)-4])==0) {
++ overridePageBB=true;
++ }
+ } else {
+ gchar *qn;
+ /* put cwd stuff in here */
+@@ -344,7 +351,7 @@
+ bool pageLandscape;
+ pageBoundingBox = mod->get_param_bool("pageBoundingBox");
+ // printf("Page Bounding Box: %s\n", pageBoundingBox ? "TRUE" : "FALSE");
+- if (pageBoundingBox) {
++ if (pageBoundingBox && (! overridePageBB )) {
+ d.x0 = d.y0 = 0;
+ d.x1 = ceil(_width);
+ d.y1 = ceil(_height);
diff --git a/media-gfx/inkscape/files/inkscape-landscape.patch b/media-gfx/inkscape/files/inkscape-landscape.patch
new file mode 100644
index 0000000..d71e012
--- /dev/null
+++ b/media-gfx/inkscape/files/inkscape-landscape.patch
@@ -0,0 +1,14 @@
+diff -urN inkscape.orig/src/extension/internal/ps.cpp inkscape/src/extension/internal/ps.cpp
+--- inkscape.orig/src/extension/internal/ps.cpp 2004-11-17 13:33:42.186628224 +0100
++++ inkscape/src/extension/internal/ps.cpp 2004-11-17 13:34:38.167117896 +0100
+@@ -354,7 +354,9 @@
+ // respective pages.
+ os << "%%Pages: 1\n";
+
+- pageLandscape = (d.x1 - d.x0 > d.y1 - d.y0) ? true : false;
++ // Disable this, just allways be upright
++ // pageLandscape = (d.x1 - d.x0 > d.y1 - d.y0) ? true : false;
++ pageLandscape = false;
+
+ if (pageLandscape) {
+ os << "%%Orientation: Landscape\n";
diff --git a/media-gfx/inkscape/inkscape-0.44_pre10936.ebuild b/media-gfx/inkscape/inkscape-0.44_pre10936.ebuild
new file mode 100644
index 0000000..b4ef151
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.44_pre10936.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /home/cvsroot/gentoo-x86/media-gfx/inkscape/inkscape-0.37.ebuild,v 1.4 2004/02/22 17:29:09 brad_mssw Exp $
+
+inherit eutils gnome2 subversion
+
+PREVER="${PV/*_pre/}"
+MV="${PREVER}"
+MP="$PN-$MV"
+DESCRIPTION="A SVG based generic vector-drawing program"
+HOMEPAGE="http://www.inkscape.org/"
+SRC_URI=""
+ESVN_REPO_URI="https://svn.sourceforge.net/svnroot/inkscape/inkscape/trunk"
+ESVN_OPTIONS="-r${PREVER}"
+S=${WORKDIR}/${MP}
+
+#ECVS_SERVER=cvs.sourceforge.net/cvsroot/inkscape
+#ECVS_MODULE=inkscape
+#ECVS_UP_OPTS="-dP -D ${PREVER}"
+#ECVS_CO_OPTS="-D ${PREVER}"
+
+SLOT="0"
+LICENSE="GPL-2 LGPL-2.1"
+KEYWORDS="~x86 ~amd64"
+IUSE="mmx doc python perl"
+RESTRICT="nomirror"
+
+MYDEPEND=">=x11-libs/gtk+-2.2.4
+ >=media-libs/libart_lgpl-2.3.16
+ >=dev-libs/libxml2-2.6.4
+ virtual/xft
+ media-libs/fontconfig
+ >=dev-util/intltool-0.22
+ dev-libs/popt
+ sys-libs/zlib
+ >=media-libs/libpng-1.2
+ >=dev-libs/boehm-gc-6.4
+ x11-libs/pango
+ app-text/gtkspell
+ >=dev-libs/libsigc++-2.0.3
+ >=dev-cpp/gtkmm-2.4
+ >=sys-devel/gcc-3.0"
+
+RDEPEND="${MYDEPEND}
+ >=media-gfx/pstoedit-3.33
+ >=media-gfx/skencil-0.6.16"
+
+DEPEND="${MYDEPEND}
+ sys-devel/gettext
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.29"
+
+G2CONF="${G2CONF} --with-xft --with-popt --with-inkjar"
+use mmx || G2CONF="${G2CONF} --disable-mmx"
+G2CONF="${G2CONF} $(use_with perl)"
+G2CONF="${G2CONF} $(use_with python)"
+
+src_unpack() {
+# unpack ${A}
+ subversion_src_unpack
+ cd ${S}
+ epatch ${FILESDIR}/inkscape-epsout.patch
+ sh autogen.sh || die "failed to create configure"
+}
+
+DOCS="AUTHORS COPYING ChangeLog HACKING NEWS README"
diff --git a/media-gfx/inkscape/inkscape-0.44_pre11257.ebuild b/media-gfx/inkscape/inkscape-0.44_pre11257.ebuild
new file mode 100644
index 0000000..b4ef151
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.44_pre11257.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /home/cvsroot/gentoo-x86/media-gfx/inkscape/inkscape-0.37.ebuild,v 1.4 2004/02/22 17:29:09 brad_mssw Exp $
+
+inherit eutils gnome2 subversion
+
+PREVER="${PV/*_pre/}"
+MV="${PREVER}"
+MP="$PN-$MV"
+DESCRIPTION="A SVG based generic vector-drawing program"
+HOMEPAGE="http://www.inkscape.org/"
+SRC_URI=""
+ESVN_REPO_URI="https://svn.sourceforge.net/svnroot/inkscape/inkscape/trunk"
+ESVN_OPTIONS="-r${PREVER}"
+S=${WORKDIR}/${MP}
+
+#ECVS_SERVER=cvs.sourceforge.net/cvsroot/inkscape
+#ECVS_MODULE=inkscape
+#ECVS_UP_OPTS="-dP -D ${PREVER}"
+#ECVS_CO_OPTS="-D ${PREVER}"
+
+SLOT="0"
+LICENSE="GPL-2 LGPL-2.1"
+KEYWORDS="~x86 ~amd64"
+IUSE="mmx doc python perl"
+RESTRICT="nomirror"
+
+MYDEPEND=">=x11-libs/gtk+-2.2.4
+ >=media-libs/libart_lgpl-2.3.16
+ >=dev-libs/libxml2-2.6.4
+ virtual/xft
+ media-libs/fontconfig
+ >=dev-util/intltool-0.22
+ dev-libs/popt
+ sys-libs/zlib
+ >=media-libs/libpng-1.2
+ >=dev-libs/boehm-gc-6.4
+ x11-libs/pango
+ app-text/gtkspell
+ >=dev-libs/libsigc++-2.0.3
+ >=dev-cpp/gtkmm-2.4
+ >=sys-devel/gcc-3.0"
+
+RDEPEND="${MYDEPEND}
+ >=media-gfx/pstoedit-3.33
+ >=media-gfx/skencil-0.6.16"
+
+DEPEND="${MYDEPEND}
+ sys-devel/gettext
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.29"
+
+G2CONF="${G2CONF} --with-xft --with-popt --with-inkjar"
+use mmx || G2CONF="${G2CONF} --disable-mmx"
+G2CONF="${G2CONF} $(use_with perl)"
+G2CONF="${G2CONF} $(use_with python)"
+
+src_unpack() {
+# unpack ${A}
+ subversion_src_unpack
+ cd ${S}
+ epatch ${FILESDIR}/inkscape-epsout.patch
+ sh autogen.sh || die "failed to create configure"
+}
+
+DOCS="AUTHORS COPYING ChangeLog HACKING NEWS README"
diff --git a/media-gfx/inkscape/inkscape-0.44_pre11375.ebuild b/media-gfx/inkscape/inkscape-0.44_pre11375.ebuild
new file mode 100644
index 0000000..b4ef151
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.44_pre11375.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /home/cvsroot/gentoo-x86/media-gfx/inkscape/inkscape-0.37.ebuild,v 1.4 2004/02/22 17:29:09 brad_mssw Exp $
+
+inherit eutils gnome2 subversion
+
+PREVER="${PV/*_pre/}"
+MV="${PREVER}"
+MP="$PN-$MV"
+DESCRIPTION="A SVG based generic vector-drawing program"
+HOMEPAGE="http://www.inkscape.org/"
+SRC_URI=""
+ESVN_REPO_URI="https://svn.sourceforge.net/svnroot/inkscape/inkscape/trunk"
+ESVN_OPTIONS="-r${PREVER}"
+S=${WORKDIR}/${MP}
+
+#ECVS_SERVER=cvs.sourceforge.net/cvsroot/inkscape
+#ECVS_MODULE=inkscape
+#ECVS_UP_OPTS="-dP -D ${PREVER}"
+#ECVS_CO_OPTS="-D ${PREVER}"
+
+SLOT="0"
+LICENSE="GPL-2 LGPL-2.1"
+KEYWORDS="~x86 ~amd64"
+IUSE="mmx doc python perl"
+RESTRICT="nomirror"
+
+MYDEPEND=">=x11-libs/gtk+-2.2.4
+ >=media-libs/libart_lgpl-2.3.16
+ >=dev-libs/libxml2-2.6.4
+ virtual/xft
+ media-libs/fontconfig
+ >=dev-util/intltool-0.22
+ dev-libs/popt
+ sys-libs/zlib
+ >=media-libs/libpng-1.2
+ >=dev-libs/boehm-gc-6.4
+ x11-libs/pango
+ app-text/gtkspell
+ >=dev-libs/libsigc++-2.0.3
+ >=dev-cpp/gtkmm-2.4
+ >=sys-devel/gcc-3.0"
+
+RDEPEND="${MYDEPEND}
+ >=media-gfx/pstoedit-3.33
+ >=media-gfx/skencil-0.6.16"
+
+DEPEND="${MYDEPEND}
+ sys-devel/gettext
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.29"
+
+G2CONF="${G2CONF} --with-xft --with-popt --with-inkjar"
+use mmx || G2CONF="${G2CONF} --disable-mmx"
+G2CONF="${G2CONF} $(use_with perl)"
+G2CONF="${G2CONF} $(use_with python)"
+
+src_unpack() {
+# unpack ${A}
+ subversion_src_unpack
+ cd ${S}
+ epatch ${FILESDIR}/inkscape-epsout.patch
+ sh autogen.sh || die "failed to create configure"
+}
+
+DOCS="AUTHORS COPYING ChangeLog HACKING NEWS README"
diff --git a/media-gfx/inkscape/inkscape-0.44_pre11487.ebuild b/media-gfx/inkscape/inkscape-0.44_pre11487.ebuild
new file mode 100644
index 0000000..39108b1
--- /dev/null
+++ b/media-gfx/inkscape/inkscape-0.44_pre11487.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /home/cvsroot/gentoo-x86/media-gfx/inkscape/inkscape-0.37.ebuild,v 1.4 2004/02/22 17:29:09 brad_mssw Exp $
+
+inherit eutils gnome2 subversion
+
+PREVER="${PV/*_pre/}"
+MV="${PREVER}"
+MP="$PN-$MV"
+DESCRIPTION="A SVG based generic vector-drawing program"
+HOMEPAGE="http://www.inkscape.org/"
+SRC_URI=""
+ESVN_REPO_URI="https://svn.sourceforge.net/svnroot/inkscape/inkscape/trunk"
+ESVN_OPTIONS="-r${PREVER}"
+S=${WORKDIR}/${MP}
+
+#ECVS_SERVER=cvs.sourceforge.net/cvsroot/inkscape
+#ECVS_MODULE=inkscape
+#ECVS_UP_OPTS="-dP -D ${PREVER}"
+#ECVS_CO_OPTS="-D ${PREVER}"
+
+SLOT="0"
+LICENSE="GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="gnome mmx perl python bonobo inkjar jabber doc plugin effects spell"
+RESTRICT="nomirror"
+
+MYDEPEND=">=x11-libs/gtk+-2.4.1
+ >=dev-libs/glib-2.6.5
+ >=media-libs/libart_lgpl-2.3.16
+ >=dev-libs/libxml2-2.6.20
+ >=x11-libs/pango-1.4.0
+ >=dev-libs/libxslt-1.0.15
+ dev-perl/XML-Parser
+ virtual/xft
+ dev-libs/popt
+ media-libs/fontconfig
+ sys-libs/zlib
+ >=media-libs/libpng-1.2
+ >=sys-devel/gcc-3
+ >=dev-libs/libsigc++-2.0.3
+ >=dev-cpp/gtkmm-2.4
+ dev-cpp/glibmm
+ gnome? ( >=gnome-base/libgnomeprint-2.2
+ >=gnome-base/libgnomeprintui-2.2 )
+ >=dev-libs/boehm-gc-6.4
+ perl? ( dev-lang/perl )
+ python? ( dev-lang/python )
+ plugin? ( media-libs/libwmf
+ app-office/dia )
+ effects? ( dev-python/pyxml
+ dev-perl/XML-XQL )
+ spell? ( app-text/gtkspell )
+ jabber? ( >=net-libs/loudmouth-1.0 )"
+
+RDEPEND="${MYDEPEND}
+ !amd64? ( plugin? ( >=media-gfx/pstoedit-3.33 )
+ >=media-gfx/skencil-0.6.16 )"
+
+DEPEND="${MYDEPEND}
+ sys-devel/gettext
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.29"
+
+G2CONF="${G2CONF} --with-xft"
+use mmx || G2CONF="${G2CONF} --disable-mmx"
+use inkjar || G2CONF="${G2CONF} --without-inkjar"
+use gnome && G2CONF="${G2CONF} --with-gnome-print"
+G2CONF="${G2CONF} $(use_with perl)"
+G2CONF="${G2CONF} $(use_with python)"
+use jabber && G2CONF="${G2CONF} --enable-inkboard"
+
+src_unpack() {
+# unpack ${A}
+ subversion_src_unpack
+ cd ${S}
+ epatch ${FILESDIR}/inkscape-epsout.patch
+ epatch ${FILESDIR}/inkscape-0.44-gcc41.patch
+ sh autogen.sh || die "failed to create configure"
+}
+
+DOCS="AUTHORS COPYING ChangeLog HACKING NEWS README"