summaryrefslogtreecommitdiff
path: root/media-gfx/transfig
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/transfig')
-rw-r--r--media-gfx/transfig/Manifest21
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5-solaris.patch12
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5c-maxfontsize.patch44
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5d-MAXWIDTH.patch19
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5d-fig2mpdf-r1.patch1425
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5d-leadspace.patch19
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5d-libpng-1.5.patch39
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5d-precision.patch45
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5e-fprintf_format_warnings.patch55
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5e-man-hyphen.patch530
-rw-r--r--media-gfx/transfig/files/transfig-3.2.5e-typos.patch25
-rw-r--r--media-gfx/transfig/files/transfig-ru_RU.CP1251.ps298
-rw-r--r--media-gfx/transfig/files/transfig-ru_RU.KOI8-R.ps298
-rw-r--r--media-gfx/transfig/files/transfig-uk_UA.KOI8-U.ps298
-rw-r--r--media-gfx/transfig/metadata.xml7
-rw-r--r--media-gfx/transfig/transfig-3.2.5d-r1.ebuild94
-rw-r--r--media-gfx/transfig/transfig-3.2.5e.ebuild93
17 files changed, 3322 insertions, 0 deletions
diff --git a/media-gfx/transfig/Manifest b/media-gfx/transfig/Manifest
new file mode 100644
index 000000000000..d34481bb2cd1
--- /dev/null
+++ b/media-gfx/transfig/Manifest
@@ -0,0 +1,21 @@
+AUX transfig-3.2.5-solaris.patch 263 SHA256 ef80b926734637eea2cf55c35746d5c1f405ddcbcce989136d223d79668fa995 SHA512 ea76ae31b050a80bf8321a554d0d5c0f1a300cc27b063b5cda6194c465757f7fd00916fee08d69369740a59850fa978a700e7c780911db5fcf04a1c23818f8f2 WHIRLPOOL 69b897dda43c1d56c35b1c0476c93b953bdf3dbcc61717d991f415c6d8ffd93a3e4bb94c086635ad706a5d1d33a4902fca62e015819c4012f19d670ca4c6cabc
+AUX transfig-3.2.5c-maxfontsize.patch 1956 SHA256 b3f1ff76e940a7912f7617a62355d1cc0aec6cc793da1d2472fb3dcb4c2744c6 SHA512 f135d99d69988d5d4f0ab803ece9d2d88e1ef2e0605887328a92d3cbca561dc20869dbd8f6aa3eee9e59d74786eafcd3552e2076bff46b1c8002724c94a6247a WHIRLPOOL 0e6fe8b9164e771f447b454dda148f54234571a977fadee1b4c733e45c6d9d430e03b88ae6ff55b76fd3e1028cf4530f6ab5d85b42569bf95ee62a51923aa371
+AUX transfig-3.2.5d-MAXWIDTH.patch 637 SHA256 0a9ea3f1aabf2110e348e8cd789bd9863b3f9ec5ce729041b491d13beca71df4 SHA512 fe5d4afca4b57e6cde61f91d6ddf4be4ed83fee2ecb07c796ad95c8a5a96a19592abec0b520505030e0d00bd1bb1192bb90a9f0f0c95eb3f6c70266e598492a6 WHIRLPOOL eab17b7e3a03421a1b7f191e5ea01bec7e0804c47a1318089250922c8a5b6e0d0be562c503c622ed05d61f0b1f8aa22883e9f6c9fa0c31ab607a7c290ea49541
+AUX transfig-3.2.5d-fig2mpdf-r1.patch 41613 SHA256 13360b2bd5916b459b3b1debf18f66fbe8abead874b2eea1c77e09ffa404a85a SHA512 cac4ce672f1c9ba0f97243d8e550e9191676006f8ad6a3584a48e3f557af1e2ade1584f652fe812bf07250ad0e56fffd8f2d63b4827921e98a120ef635c62fc2 WHIRLPOOL 7467996c4b2ef5a1730d7595df6227b133c561793e327bf3bbf14b295c8cd2167cb94a002ba3711973adab38fa4d54dc380d8774ed15aa81e4b2a21deb6f94ae
+AUX transfig-3.2.5d-leadspace.patch 725 SHA256 dbb22b727835186d5c9422decf130cf2b292b7fde288aa212b9e52144de4f79f SHA512 70b3f171f028febee8689bcbca66d67de524c734bd09a978eae40b9c15ade06d884380e77dccd69518a2af286e4f3033b1aedd188871b4a5c701e020fc2607d5 WHIRLPOOL a14b46505dc2f2ccb6ce15dca16f3b0ff9f10b3c544302d691341dc83529d3736769b56a5b8d42e95e7a084dc2ad3b934f3b393cbc4430f7870daae3c27b6357
+AUX transfig-3.2.5d-libpng-1.5.patch 1449 SHA256 8621fc408f700225ff9498f0743afabb135c729b244a2bcafd3418692d2a4230 SHA512 66c0018a62a22cec02df59ac80326e0d77399190b66a7df125886bb76d1e682655ef1a498e940b7ab0a5e12e2156dc98b3d88a5d81513a47154ebf4c62ba02dc WHIRLPOOL cccf802ab472fb76ed4f1e306a60560927bdcca647f339da3038790664092e41a61f1a6fdc17aee00833f474c66e43ea8d83ef4d0a9f8afc1fdca53f42a7d955
+AUX transfig-3.2.5d-precision.patch 1633 SHA256 e2d4c992e438df5271d462cae48c5472a485517fb4093577c4461b6f97e45bb0 SHA512 8ed38b2f295da48a56049368f0643b8e1c26d06c3a340c81999e67608ec70854d72703ae81be89006efb54a0a9a4145b71100c4dc48d9602dd1cb86545cf2763 WHIRLPOOL dc27333136aeeb83082d2e857dba2086ddd0f80ebfda24447bd8e6290ce069daa8db0ad9d6ff6ec1e07ecd021526a457d7fdd68038512bdb3103136677396bad
+AUX transfig-3.2.5e-fprintf_format_warnings.patch 1463 SHA256 359845d2da3b7273d8e85d7a4fe8b9ec39b0cdfea02fb2da3276b353c937d6d1 SHA512 28d85316b96d371fb1c8459ebcccf5f482f66c94edc7b11830007c10d7fb0d444430af36f951bde1c49f4b313fce4585454913bce179814de20154bf755647cf WHIRLPOOL d0a58d5664123c22e4b325d6ccd32985a6bc52cdee2deb97e25c221dbe9e38835474899990e3badd7de426a840d15963138a0728f2a5a90b635c120eebc6a902
+AUX transfig-3.2.5e-man-hyphen.patch 16349 SHA256 85d64fcc42bf0e1c14ac4a621535e1a778e9164f840f2c2d077c5d42fadc0266 SHA512 61a0ee8b5e91929806d1255cf18e4431142c59855285c381fb983241ebda8b6c4c9186a152f1cd448190cb144ffb8a5c7d8b8d7d17c789909edebdb0bd71ab32 WHIRLPOOL b8ddbf572c6d317d9fcc549f7cf725740ede1887e0de32e14c3cdd284d3188fffcb8ff62c1f401681a2ac26221a6e8e264d5aca2e8a7e4b0f0e96760a37624e8
+AUX transfig-3.2.5e-typos.patch 801 SHA256 755994323cff774c7f6e48834a98048998fdabd44de9ce152cf2035fd0cc5e86 SHA512 2cdc36f2361a2606164688d18ae8a2e23debb6d16b656bf0f3762d52a2a6175c7b279bb6ee3226f3f884ca043b03ce39aec9870800890eff017f6734486c3707 WHIRLPOOL 0f7dff1b45a789e03f83027ae49ffc1fdb14619c2b396d5f0c537de58f17dd90036697e81c654da4638cba4bafd94bf96b74c132c2cb5ab2932b330959ef9c02
+AUX transfig-ru_RU.CP1251.ps 6079 SHA256 8b3ce8f098776fb8ed1623903fe4af70e439d708e6b58444c72023c2b4d45a3c SHA512 aba314ed3ec3ff2f2b07c97195d1059c0c64f6c5dbfeb41b93bc0d3bb77becffffbaae8aecf552d27f3fc337d23e150601c0dd703997bba9fc18b154c89ddda1 WHIRLPOOL 4c4cc3c24d8b6f84533262abc795fc47ea7e848447b6ea72c8fcb98d3673523d90baaf04731f3ff40f78143a0492763bd7258247690d1cd560d2736290e3165e
+AUX transfig-ru_RU.KOI8-R.ps 6015 SHA256 af71380057217460eb476e9a6800e3c7bbe22db44420d0d5d6939bd3321a4c86 SHA512 1222403ca7fa7e1a796e46e9693237d9a7afa8889e66af17b5c705f0383ab32382a21a499059f0fef5b6a3640385f74da77e5d1a8e4406ef1c635e48a551885d WHIRLPOOL 6c661b755be14a959d62f2f7fbe9e6fad8d335bc8fa32686b5b1042dd5057b45025303f1f8fe493b7783e888f6d3b0a78249d381846a6903c9f55dba79f33f94
+AUX transfig-uk_UA.KOI8-U.ps 6023 SHA256 b71427fb5e938ee285aea7290af41bcfc1f6820520f5ca7a2746dd51c00b5eee SHA512 e7dd914414594e27e38905c114e9ce86a29a551facadf08ba8beb7087e5e30e400a3e3cc4472d31dce3b2f0cf1b864806915c71efd76b518d3a815a98bb2d020 WHIRLPOOL eb1f5579de8c4845db836a4cb418bf9205a47d2c938626ff6b4a4bf59241c833d6967d5b40c32fdaf6965fabb62090a596586be0b272dc6636aec2d13e46eaec
+DIST fig2mpdf-1.1.2.tar.bz2 191438 SHA256 35f02293592244d5ff4a7a60e00023696c05dec855495871226c67669ba4daf3 SHA512 36dea40008371386b47a4451e2f311cc2540ab063e3b61e628a535775d62a8840c5cc20c37b80465184bf041c6e583aaf3e5156079e72211d0a87ff3346d2980 WHIRLPOOL 73f98e0c8f26a0a9f5a06ba38169a107587dd09ecce69c69d251d46274697db7a1923479030693bf9079705820ce67b3df62d0de54492039acd0ac71f4f22fa7
+DIST transfig.3.2.5d.tar.gz 497451 SHA256 ae81214177fb05f91f6e43b0b42633b6e0024570cbc6591a3858e12100ce8aaa SHA512 6e9b9551bf3bff7a94d6a0d8bac336c36b2721f9babc4cf38472737ac737afd27f93dcb012e510d6c439c6aaeed95ba03b19508b4229386915c0dc0751daac10 WHIRLPOOL ca503a9ba228f54d20a6771dfca9dd0e6bb127618db8bc94bf1a62149e007627786fe2eee8f15a47723781d8381950cfac97264b5846550f7c669a8d8c82a1f2
+DIST transfig.3.2.5e.tar.gz 531256 SHA256 8ec5a8f13254dd155622ed3ee0fda1382b1e2b5882d83b9aca1871f12a3e7744 SHA512 ed1379f1112514d90a4b3eecd3222baad311d804b5090e8e66867ec299e4f9a5f8d83ef8939aa6ecaa85a18143b8fb9b97f78e078ac5eeb934a158c55de6bb1e WHIRLPOOL a781dd6fd85ff7ff12219444a8fbc91fc8c7f6fe1b4628cc1fd6bb3feae29392edc62a8f3a4db0945bdf2e67a67af7046864826024acdbaa8a8581a873cdb82f
+EBUILD transfig-3.2.5d-r1.ebuild 2701 SHA256 9be7d58284c642cdc319296cc520e19aac33392e5dfb20b141d67ccdd94a27fe SHA512 fc31324d34c7fad3f117018162abc8d945efceb819ad7572df9368d00d6d4c77cd47114a4a915c0dcb41cf70f18db7e21ef4126b298fae05c31fdf422c718cc7 WHIRLPOOL d7de72d5d97e449401c70ad8ca5e17fc71e7035441065dd0605c0e5850d09ac76d7e33407d7734bfad0d309c50e85758f986902075b386d523edca51c4f2b206
+EBUILD transfig-3.2.5e.ebuild 2702 SHA256 80b07c142896fbf0b47a36520786a0dedf9a8d98851206c1701a500feb776014 SHA512 1ce1d7e1473553ccf7bee8a5e8b2e677da6c2347b6a272528e6596cabea100ab2d9565d8954473e812d561fd2da24779d8bc7fd8c64584a3369386c09661043b WHIRLPOOL 3de68fc233d35f2607fdc1735992b8540ba92e64c164bf655e9c634648397b93b0b5997bc83939a58cfa4ee12f03b6cf93c1d5c84d9a7570e0f738817d1ae536
+MISC ChangeLog 2938 SHA256 6403e9d91d7ce6cafd604d5397bf606d26d279ab2fb0fa52dccb13827ea4d90d SHA512 7dca29c5c4796e1780441376b73373f0a6881b6829dc2198c038de23c4480cc815d62eb0cfe912c9c856282b13c89d793e36c69d414f5cb9305d532262f50ce6 WHIRLPOOL 61a5715ce41e7aaec78b9ad8d0a10679d0ec3e6c21315240b70cdf81997bbac4da495e0761516e29dd11bb75935b67d69ea8647043745e1451d12c80448fc486
+MISC ChangeLog-2015 12854 SHA256 df42b41e6259d566fa4f7ba91f8d09f88881f39d3b05740a2046e927ac12bb05 SHA512 9474319e26af282a9d52befb8dc569b6464efd8bb704cf986d8d85a7f3cdcbbd64569c9e8ded50510d9868438b6ca26547818581da08993d3b378f39bfc15419 WHIRLPOOL 1ee16d1fcd5f8199e1a96988d7b9bdb980e3ee23a592ceedcc20f069ec36409a579198af1ab4aecdd107846ba7f7caa7f15180fc0d708bbaca4c388f86996d81
+MISC metadata.xml 212 SHA256 00d100e8d1bbfee4c0e3dcd7695c183150d06133fddd672e246c21bc02c4c8d7 SHA512 05c3af7b4c872998a64d3d6dce356ad1bfeb67f4ec845e82e022a89c96945ba5fe8848df48b8736feb39bd4d9a7d6714f0895a9c824e3c67d903ea3da1ca0f22 WHIRLPOOL 1fd2058c94f0e8891205ed1e106759e99c8bd0f765618fc2fc801e566241b062a1219f5044b8b7ed1299b28a189846c2d125ea86b71f72e9fa403ad3f0dea4b3
diff --git a/media-gfx/transfig/files/transfig-3.2.5-solaris.patch b/media-gfx/transfig/files/transfig-3.2.5-solaris.patch
new file mode 100644
index 000000000000..680a0591f1cf
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5-solaris.patch
@@ -0,0 +1,12 @@
+Fixes complation error on both Darwin and Solaris
+
+--- fig2dev/fig2dev.h
++++ fig2dev/fig2dev.h
+@@ -20,6 +20,7 @@
+ #include "patchlevel.h"
+ #include <math.h>
+ #include <sys/file.h>
++#include <sys/stat.h>
+ #include <signal.h>
+ #include <string.h>
+ #include <pwd.h>
diff --git a/media-gfx/transfig/files/transfig-3.2.5c-maxfontsize.patch b/media-gfx/transfig/files/transfig-3.2.5c-maxfontsize.patch
new file mode 100644
index 000000000000..9ce105fe9355
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5c-maxfontsize.patch
@@ -0,0 +1,44 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 09_maxfontsize.dpatch by Roland Rosenfeld <roland@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: For fonts >=42pt use the given font size in TeX instead of
+## DP: restricting this to 42pt. This allows to create posters using
+## DP: \usepackage{type1cm}. See
+## DP: http://linuxgazette.vlsm.org/issue96/artime.html and Bug#343139
+
+@DPATCH@
+diff -urNad transfig~/LATEX.AND.XFIG transfig/LATEX.AND.XFIG
+--- transfig~/LATEX.AND.XFIG
++++ transfig/LATEX.AND.XFIG
+@@ -55,7 +55,7 @@
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LaTeX Preamble %%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+-\documentstyle[12pt,bezier,amstex]{article} % include bezier curves
++\documentclass[12pt,bezier,amstex]{article} % include bezier curves
+ \renewcommand\baselinestretch{1.0} % single space
+ \pagestyle{empty} % no headers and page numbers
+ \oddsidemargin -10 true pt % Left margin on odd-numbered pages.
+@@ -72,7 +72,9 @@
+ \usepackage{epsfig}
+
+ \usepackage{graphicx} % Graphics package
+-
++
++\usepackage{type1cm} % Necessary for fonts bigger than 42pt
++
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Document Beginning %%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+diff -urNad transfig~/fig2dev/dev/texfonts.h transfig/fig2dev/dev/texfonts.h
+--- transfig~/fig2dev/dev/texfonts.h
++++ transfig/fig2dev/dev/texfonts.h
+@@ -86,6 +86,7 @@
+
+ #define TEXFONTSIZE(S) (texfontsizes[((S) <= MAXFONTSIZE) ? (int)(round(S))\
+ : (MAXFONTSIZE-1)])
++#define TEXFONTSIZE(S) (((S) <= MAXFONTSIZE) ? texfontsizes[(int)(round(S))] : (S))
+ #define TEXFONTMAG(T) TEXFONTSIZE(T->size*(rigid_text(T) ? 1.0 : fontmag))
+
+ void setfigfont( F_text *text ); /* genepic.c */
diff --git a/media-gfx/transfig/files/transfig-3.2.5d-MAXWIDTH.patch b/media-gfx/transfig/files/transfig-3.2.5d-MAXWIDTH.patch
new file mode 100644
index 000000000000..3ac14818655a
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5d-MAXWIDTH.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 23_MAXWIDTH.dpatch by Roland Rosenfeld <roland@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Increasese MAXWIDTH of embedded images from 8K to 16K (Closes: #610466)
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/dev/psencode.c transfig/fig2dev/dev/psencode.c
+--- transfig~/fig2dev/dev/psencode.c
++++ transfig/fig2dev/dev/psencode.c
+@@ -18,7 +18,7 @@
+
+ #include "fig2dev.h"
+
+-#define MAXWIDTH 8192
++#define MAXWIDTH 16384
+
+ #define put_string nc=strlen(s); for(i=0;i<nc;i++) (putc((s[i]),tfp)); Nbyte += nc
+
diff --git a/media-gfx/transfig/files/transfig-3.2.5d-fig2mpdf-r1.patch b/media-gfx/transfig/files/transfig-3.2.5d-fig2mpdf-r1.patch
new file mode 100644
index 000000000000..879b4471254c
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5d-fig2mpdf-r1.patch
@@ -0,0 +1,1425 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 14_fig2mpdf.dpatch by Michael Pfeiffer <p3fff@web.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+
+## DP: creating multilayered or singlelayer PDF or EPS figures for
+## DP: including into LaTeX documents.
+## DP: http://p3f.gmxhome.de/fig2mpdf/fig2mpdf.html
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/doc/fig2dev.1 transfig/doc/fig2dev.1
+--- transfig~/doc/fig2dev.1
++++ transfig/doc/fig2dev.1
+@@ -53,8 +53,8 @@
+ \fBbox, cgm, epic, eepic, eepicemu, emf, eps, gbx (Gerber beta driver), gif, ibmgl, jpeg,
+ latex, map (HTML image map), mf (MetaFont),
+ mp (MetaPost), mmp (Multi-MetaPost),
+-pcx, pdf, pdftex, pdftex_t, pic, pictex, png, ppm, ps,
+-pstex, pstex_t, pstricks, ptk (Perl/tk),
++pcx, pdf, pdftex, pdftex_t, pdftex_p, pic, pictex, png, ppm, ps,
++pstex, pstex_t, pstex_p, pstricks, ptk (Perl/tk),
+ shape (LaTeX shaped paragraphs), sld (AutoCad slide format),
+ svg (beta driver), textyl,
+ tiff, tk (tcl/tk), tpic, xbm and
+@@ -1062,6 +1062,62 @@
+ font. Option 1 sets LaTeX font size only. Option 2 issues no font
+ commands at all.
+
++.SH PSTEX_P and PDFTEX_P OPTIONS
++The \fBpstex_p\fR language has the same intention as
++the combination of \fBpstex\fR and \fBpstex_t\fR.
++The only reason to use \fBpstex_p\fR is that you have partially overlayed texts.
++\fBpstex_p\fR splits the Fig file concerning the depths of existing texts. Because
++of it's necessary to get the resulting size of the figure for the pdf document
++you have to specify the target document format
++(i.e. using \fBpstex_p\fR rsp. \fBpdftex_p\fR).
++.br
++Two files results by using this language:
++.br
++.HP +.3i
++1) A bash script for creating and removing the necessary graphics files.
++Extension: \fB.create\fR
++.HP +.3i
++.HP +.3i
++2) The latex code which includes all graphics files and special texts. Content is
++put to stdout.
++
++.TP
++The \fBpstex_p\fR driver has the following special options:
++
++.TP
++.B \-p basename
++specifies the basename of the files to be created (see (1) above). This option
++is mandatory.
++.TP
++.B "\-d dmag"
++Set a separate magnification for the length of line dashes to
++.I dmag.
++.TP
++.B \-E num
++Set encoding for latex text translation (0 no translation, 1 ISO-8859-1, 2 ISO-8859-2)
++.TP
++.B "\-l lwidth"
++Sets the threshold between LaTeX thin and thick lines to
++.I lwidth
++pixels.
++LaTeX supports only two different line width: \\thinlines and \\thicklines.
++Lines of width greater than
++.I lwidth
++pixels are drawn as \\thicklines.
++Also affects the size of dots in dotted line style.
++The default is 1.
++.TP
++.B \-v
++Verbose mode.
++.TP
++.B \-F
++Don't set the font face, series, and style; only set it's size and the
++baselineskip. By default, fig2dev sets all 5 font parameters when it
++puts some text. The disadvantage is that you can't set the font from your
++LaTeX document. With this option on, you can set the font from your LaTeX
++document (like "\fB\\sfshape \\input picture.eepic\fR").
++
++
+ .SH TK and PTK OPTIONS (tcl/tk and Perl/tk)
+ .TP
+ .B \-l dummy_arg
+@@ -1107,6 +1163,13 @@
+ .PP
+ Rotated text is only supported in the IBM-GL (HP/GL) and PostScript (including eps)
+ languages.
++.PP
++In \fBpdftex_p\fR language \fIfig2dev\fR can not determine the exact sizes of
++the special texts set by pdflatex afterwards. If these texts are bigger than
++expected the calculated bounding box might be too small so that some texts passes
++over the figure boundaries. If this happen you have to put an invisible
++rectangle (line width 0) around the text or the entire figure.
++
+ .SH COPYRIGHT
+ Copyright (c) 1991 Micah Beck
+ .br
+@@ -1187,3 +1250,7 @@
+ The GBX (Gerber) driver was written by
+ .br
+ Edward Grace (ej.grace@imperial.ac.uk).
++.sp
++The PSTEX_P and PDFTEX_P drivers (overlayed LaTeX texts) was written by
++.br
++Michael Pfeiffer (p3f@gmx.de)
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/dev/genpstex.c transfig/fig2dev/dev/genpstex.c
+--- transfig~/fig2dev/dev/genpstex.c
++++ transfig/fig2dev/dev/genpstex.c
+@@ -70,7 +70,307 @@
+ genps_end ();
+
+ static char pstex_file[1000] = "";
++static int iObjectsRead = 0;
++static int iTextRead = 0;
++static int iObjectsFileNumber = 0;
++static int iStartDepth;
++static int iLastDepth;
++static FILE * ptCreateFile;
++static char szFileName[1000];
++static int iLength;
++static int iPdfOutputs = 0;
++
++#ifdef never
++static double unitlength;
++static double dash_mag = 1.0;
++
++static int (*translate_coordinates)() = NULL;
++static int (*translate_coordinates_d)() = NULL;
++#else
++extern double unitlength;
++extern double dash_mag;
++
++extern int (*translate_coordinates)();
++extern int (*translate_coordinates_d)();
++#endif
++
++#define TOP 840
++#define SWAP(x,y) {tmp=x; x=y; y=tmp;}
++#define TRANS(x,y) (*translate_coordinates)(&x,&y)
++#define TRANS2(x1,y1,x2,y2) (*translate_coordinates)(&x1,&y1); \
++ (*translate_coordinates)(&x2,&y2)
++#define TRANSD(x,y) (*translate_coordinates_d)(&x,&y)
++
++static void genpstex_p_finalize_objects(int depth);
++
++/*************************************************************************
++ *************************************************************************/
++static
++translate2(xp, yp)
++ int *xp, *yp;
++{
++ *xp = *xp + 1;
++ *yp = (double)(TOP - *yp -1);
++ }
++
++static
++translate1_d(xp, yp)
++ double *xp, *yp;
++{
++ *xp = *xp + 1.0;
++ *yp = *yp + 1.0;
++ }
++
++static
++translate2_d(xp, yp)
++ double *xp, *yp;
++{
++ *xp = *xp + 1.0;
++ *yp = (double)TOP - *yp -1.0;
++ }
++
++/*************************************************************************
++ *************************************************************************/
++void genpstex_p_option(opt, optarg)
++char opt, *optarg;
++{
++ if (opt == 'p')
++ {
++ strcpy(pstex_file, optarg);
++ }
++ else
++ genlatex_option(opt, optarg);
++}
++
++
++/*************************************************************************
++ *************************************************************************/
++void genpstex_p_start(objects)
++ F_compound *objects;
++{
++ int tmp;
++ struct stat tStat;
++ long lUnitLength;
++
++ if (*pstex_file == '\0')
++ {
++ put_msg("Argument -p is mandatory to pstex_p.");
++ exit(1);
++ }
++
++ strncpy(szFileName, pstex_file, 900);
++ iLength = strlen(szFileName);
++
++ sprintf(szFileName + iLength, ".create");
++ ptCreateFile = fopen (szFileName, "wb");
++
++ if ( ! ptCreateFile)
++ {
++ put_msg("Couldn't open %s for writing", szFileName);
++ exit(1);
++ }
++ fstat(fileno(ptCreateFile), & tStat);
++ fchmod (fileno(ptCreateFile), tStat.st_mode | ((tStat.st_mode & (S_IRUSR | S_IRGRP | S_IROTH)) >> 2));
++ fprintf(ptCreateFile, "#!/bin/bash\n\n", szFileName);
++
++ fprintf(ptCreateFile, "while getopts \"r\" Option\n");
++ fprintf(ptCreateFile, "do\n");
++ fprintf(ptCreateFile, " case $Option in\n");
++ fprintf(ptCreateFile, " r) iOptRemove=1;;\n");
++ fprintf(ptCreateFile, " *) echo \"illegal option -$Option\"\n");
++ fprintf(ptCreateFile, " esac\n");
++ fprintf(ptCreateFile, "done\n");
++ fprintf(ptCreateFile, "shift $(($OPTIND - 1))\n");
++
++ texfontsizes[0] = texfontsizes[1] =
++ TEXFONTSIZE(font_size != 0.0? font_size : DEFAULT_FONT_SIZE);
++
++ unitlength = mag/ppi;
++ dash_mag /= unitlength*80.0;
++
++ translate_coordinates = translate2;
++ translate_coordinates_d = translate2_d;
++
++ TRANS2(llx, lly, urx, ury);
++ if (llx > urx) SWAP(llx, urx)
++ if (lly > ury) SWAP(lly, ury)
++
++ /* LaTeX start */
++
++ /* print any whole-figure comments prefixed with "%" */
++ if (objects->comments) {
++ fprintf(tfp,"%%\n");
++ print_comments("% ",objects->comments, "");
++ fprintf(tfp,"%%\n");
++ }
++
++ lUnitLength = (long) (round(4736286.72*unitlength));
++ fprintf(tfp, "\\setlength{\\unitlength}{%lisp}%%\n",
++ lUnitLength);
++ /* define the SetFigFont macro */
++ define_setfigfont(tfp);
++
++ sprintf(szFileName + iLength, ".size");
++ fprintf(ptCreateFile, "if [ \"$iOptRemove\" == \"\" ]; then\n");
++ if (iPdfOutputs)
++ fprintf(ptCreateFile, " echo \"\\setlength\\pdfpagewidth{%3.2fpt}\\setlength\\pdfpageheight{%3.2fpt}\" > %s\n",
++ (float) lUnitLength / 65536 * (urx - llx), (float) lUnitLength / 65536 * (ury - lly), szFileName);
++ else
++ fprintf(ptCreateFile, "echo -n\"\" > %s\n", szFileName);
++ fprintf(ptCreateFile, "else\n rm -f %s\nfi\n", szFileName);
++}
++
++/*************************************************************************
++ *************************************************************************/
++void genpdftex_p_start(objects)
++ F_compound *objects;
++{
++ iPdfOutputs = 1;
++ genpstex_p_start(objects);
++}
++
++
++/*************************************************************************
++ *************************************************************************/
++int genpstex_p_end()
++{
++ if (iTextRead)
++ {
++ fprintf(tfp, "\\end{picture}%%\n");
++ iTextRead = 0;
++ }
++ if (iObjectsRead)
++ {
++ genpstex_p_finalize_objects(iLastDepth);
++ iObjectsRead = 0;
++ }
++
++ /* LaTeX ending */
++ fprintf(tfp, "\\begin{picture}(%d,%d)\n", urx-llx, ury-lly);
++ fprintf(tfp, "\\end{picture}%%\n");
++
++ fclose(ptCreateFile);
++
++ /* all ok */
++ return 0;
++}
++
++
++/*************************************************************************
++ *************************************************************************/
++void genpstex_p_finalize_objects(depth)
++int depth;
++{
++ char szFileName[1000];
++ int iLength;
++
++ strncpy(szFileName, pstex_file, 900);
++ iLength = strlen(szFileName);
++
++
++ sprintf(szFileName + iLength, "%03d", iObjectsFileNumber++);
++ fprintf(ptCreateFile, "if [ \"$iOptRemove\" == \"\" ]; then\n");
++ if (iPdfOutputs)
++ {
++ fprintf(ptCreateFile, " %s -L pstex -D +%d,%d %s", prog, depth, iStartDepth, from, szFileName);
++ fprintf(ptCreateFile, " | epstopdf -f > %s.pdf\n", szFileName, szFileName);
++ }
++ else
++ fprintf(ptCreateFile, "%s -L pstex -D +%d,%d %s %s.eps\n", prog, depth, iStartDepth, from, szFileName);
++ fprintf(ptCreateFile, "else\n rm -f %s.", szFileName);
++ if (iPdfOutputs)
++ fprintf(ptCreateFile, "pdf");
++ else
++ fprintf(ptCreateFile, "eps");
++ fprintf(ptCreateFile, "\nfi\n");
++
++ fprintf(tfp, "\\begin{picture}(0,0)%%\n");
++/* newer includegraphics directive suggested by Stephen Harker 1/13/99 */
++#if defined(LATEX2E_GRAPHICS)
++# if defined(EPSFIG)
++ fprintf(tfp, "\\epsfig{file=%s.eps}%%\n",szFileName);
++# else
++ fprintf(tfp, "\\includegraphics{%s}%%\n",szFileName);
++# endif
++#else
++ fprintf(tfp, "\\special{psfile=%s.eps}%%\n",szFileName);
++#endif
++ fprintf(tfp, "\\end{picture}%%\n");
++}
++
++/*************************************************************************
++ *************************************************************************/
++void genpstex_p_object(depth)
++int depth;
++{
++ if (iTextRead)
++ {
++ fprintf(tfp, "\\end{picture}%%\n");
++ iTextRead = 0;
++ }
++ if (iObjectsRead == 0)
++ {
++ iStartDepth = depth;
++ iObjectsRead = 1;
++ }
++ iLastDepth = depth;
++
++}
+
++void genpstex_p_arc(obj)
++F_arc *obj;
++{
++ genpstex_p_object(obj->depth);
++}
++
++
++void genpstex_p_ellipse(obj)
++F_ellipse *obj;
++{
++ genpstex_p_object(obj->depth);
++}
++
++void genpstex_p_line(obj)
++F_line *obj;
++{
++ genpstex_p_object(obj->depth);
++}
++
++void genpstex_p_spline(obj)
++F_spline *obj;
++{
++ genpstex_p_object(obj->depth);
++}
++
++
++
++/*************************************************************************
++ *************************************************************************/
++void genpstex_p_text(t)
++F_text *t;
++{
++
++ if (!special_text(t))
++ genpstex_p_object(t->depth);
++ else
++ {
++ if (iObjectsRead)
++ {
++ genpstex_p_finalize_objects(iLastDepth);
++ iObjectsRead = 0;
++ }
++ if (iTextRead == 0)
++ {
++ fprintf(tfp, "\\begin{picture}(0,0)(%d,%d)\n", llx, lly);
++ iTextRead = 1;
++ }
++ genlatex_text(t);
++ }
++
++}
++
++/*************************************************************************
++ *************************************************************************/
+ void genpstex_t_option(opt, optarg)
+ char opt, *optarg;
+ {
+@@ -112,6 +412,8 @@
+ else genlatex_text(t);
+ }
+
++/*************************************************************************
++ *************************************************************************/
+ void genpstex_text(t)
+ F_text *t;
+ {
+@@ -128,6 +430,32 @@
+ genlatex_option(opt, optarg);
+ }
+
++struct driver dev_pstex_p = {
++ genpstex_p_option,
++ genpstex_p_start,
++ gendev_null,
++ genpstex_p_arc,
++ genpstex_p_ellipse,
++ genpstex_p_line,
++ genpstex_p_spline,
++ genpstex_p_text,
++ genpstex_p_end,
++ INCLUDE_TEXT
++};
++
++struct driver dev_pdftex_p = {
++ genpstex_p_option,
++ genpdftex_p_start,
++ gendev_null,
++ genpstex_p_arc,
++ genpstex_p_ellipse,
++ genpstex_p_line,
++ genpstex_p_spline,
++ genpstex_p_text,
++ genpstex_p_end,
++ INCLUDE_TEXT
++};
++
+ struct driver dev_pstex_t = {
+ genpstex_t_option,
+ genpstex_t_start,
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/drivers.h transfig/fig2dev/drivers.h
+--- transfig~/fig2dev/drivers.h
++++ transfig/fig2dev/drivers.h
+@@ -30,8 +30,10 @@
+ extern struct driver dev_pdf;
+ extern struct driver dev_pdftex;
+ extern struct driver dev_pdftex_t;
++extern struct driver dev_pdftex_p;
+ extern struct driver dev_pstex;
+ extern struct driver dev_pstex_t;
++extern struct driver dev_pstex_p;
+ extern struct driver dev_pstricks;
+ extern struct driver dev_textyl;
+ extern struct driver dev_tk;
+@@ -75,6 +77,7 @@
+ {"pdf", &dev_pdf},
+ {"pdftex", &dev_pdftex},
+ {"pdftex_t", &dev_pdftex_t},
++ {"pdftex_p", &dev_pdftex_p},
+ {"pic", &dev_pic},
+ {"pictex", &dev_pictex},
+ {"png", &dev_bitmaps},
+@@ -82,6 +85,7 @@
+ {"ps", &dev_ps},
+ {"pstex", &dev_pstex},
+ {"pstex_t", &dev_pstex_t},
++ {"pstex_p", &dev_pstex_p},
+ {"pstricks", &dev_pstricks},
+ {"ptk", &dev_ptk},
+ {"shape", &dev_shape},
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/fig2dev.c transfig/fig2dev/fig2dev.c
+--- transfig~/fig2dev/fig2dev.c
++++ transfig/fig2dev/fig2dev.c
+@@ -651,6 +651,18 @@
+ #endif /* NFSS */
+ printf(" -p name name of the PostScript file to be overlaid\n");
+
++ printf("PSTEX_P and PDFTEX_P Options:\n");
++ printf(" -p name basename of the files to be created\n");
++#ifdef NFSS
++ printf(" -F don't set font family/series/shape, so you can\n");
++ printf(" set it from latex\n");
++#endif /* NFSS */
++ printf(" -d dmag set separate magnification for length of line dashes to dmag\n");
++ printf(" -E num set encoding for text translation (0 no translation,\n");
++ printf(" 1 ISO-8859-1, 2 ISO-8859-2)\n");
++ printf(" -l lwidth set threshold between thin and thick lines to lwidth\n");
++ printf(" -v verbose mode\n");
++
+ printf("SHAPE (ShapePar driver) Options:\n");
+ printf(" -n name Set basename of the macro (e.g. \"face\" gives faceshape and facepar)\n");
+ printf("Tcl/Tk (tk) and Perl/Tk (ptk) Options:\n");
+@@ -778,6 +790,12 @@
+ int rec_comp(r1, r2)
+ struct obj_rec *r1, *r2;
+ {
++ if (r2->depth == r1->depth)
++ {
++ if ((r1->gendev == dev->text) ^ (r2->gendev == dev->text))
++ return ((r1->gendev == dev->text) * 2 - 1);
++ return (0);
++ }
+ return (r2->depth - r1->depth);
+ }
+
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2mpdf/copyright.txt transfig/fig2mpdf/copyright.txt
+--- transfig~/fig2mpdf/copyright.txt
++++ transfig/fig2mpdf/copyright.txt
+@@ -0,0 +1,25 @@
++The following files contain copyright and license info for
++the code they contain:
++fig2mpdf, fig2mpdf.1, transfig.3.2.4.patch, transfig-3.2.5-alpha7.patch
++
++-- fig2mpdf copyright begins here --
++
++ fig2mpdf/pdftex_p and pstex_p driver of fig2dev
++ Copyright (C) 2006 Michael Pfeiffer -- p3fff@web.de
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++ (Author's note: the license is in the file gpl.txt, which is included
++ in the archive.)
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2mpdf/fig2mpdf transfig/fig2mpdf/fig2mpdf
+--- transfig~/fig2mpdf/fig2mpdf
++++ transfig/fig2mpdf/fig2mpdf
+@@ -0,0 +1,653 @@
++#!/bin/sh
++
++unset POSIXLY_CORRECT
++
++gawk '
++#########################################################################
++#########################################################################
++BEGIN {
++
++ cmdGawk = "gawk";
++ cmdCat = "cat";
++ cmdLess = "less";
++ cmdRm = "rm"
++ cmdMv = "mv"
++ cmdLatex = "latex";
++ cmdPdftex = "pdflatex";
++ cmdEpsToPdf = "epstopdf";
++ cmdDvips = "dvips";
++ cmdFig2dev = "fig2dev";
++ cmdTouch = "touch";
++
++ szVersion = "1.1.2";
++ iError = 0;
++ iGapWidth = 1;
++
++
++ # get the options
++ szOptString = "&l%e&m$p%i%I$s$H$g%G%v%V%d";
++ getopt(szOptString);
++
++ if (aOptions["d"])
++ {
++ aOptions["v"] = "-";
++ for (iI = 0; iI < ARGC; iI++)
++ printf("ARGV[%d]=%s\n", iI, ARGV[iI]);
++
++ iDim = split(szOptString, aOpts, "[$%&]");
++ for (iI = 2; iI <= iDim; iI++)
++ debug("aOptions[%s] = >%s<\n", aOpts[iI], aOptions[aOpts[iI]]);
++ }
++
++
++
++ if (aOptions["V"] != "")
++ {
++ printf("fig2mpdf: version %s\n", szVersion);
++ iError = 1;
++ exit(0);
++ }
++
++ szTmpPrefix = "_fig2mpdf"
++
++ iLine = -1;
++ iInString = 0;
++ iDepths = 1;
++
++ iInvalidDepth = -2
++ iAdminDepth = 2000
++
++ szBase = ARGV[1];
++ szOrigFile = ARGV[1];
++ szOrigPath = ARGV[1];
++
++ # set default switch state
++ iDoMultiLayer = 0;
++ iDoLatex = 0;
++ iDoPdftex = 1;
++ iIncludeLowestRange = 1;
++
++ # set iDoLatex and iDoMultiLayer concerning the given suffix
++ match(szBase, /\.[^\.\/]+$/);
++ if (RLENGTH != -1)
++ {
++ szSuffix = substr(szBase, RSTART);
++ if (szSuffix == ".lfig")
++ iDoLatex = 1;
++ else if (szSuffix == ".mfig")
++ iDoMultiLayer = 1;
++ else if ((szSuffix == ".mlfig") || (szSuffix == ".lmfig"))
++ {
++ iDoLatex = 1;
++ iDoMultiLayer = 1;
++ }
++ }
++
++ ################################
++ # evalutate options
++
++ # set toggle latex
++ if (aOptions["l"] == "-")
++ iDoLatex = 1;
++ if (aOptions["l"] == "+")
++ iDoLatex = 0;
++
++ # set multilayer flag
++ if (aOptions["m"] == "-")
++ iDoMultiLayer = 1;
++ if (aOptions["m"] == "+")
++ iDoMultiLayer = 0;
++
++ # set toggle pdftex
++ if (aOptions["e"] == "-")
++ iDoPdftex = 0;
++
++ # evaluate do not include lowest layer in all figs
++ iIncludeLowestRange = (aOptions["i"] == "-");
++
++ # evaluate include all lower ranges in the sub figs
++ iIncludeAllLowerRanges = (aOptions["I"] != "-");
++
++ # check consistencies
++ # if there are ranges given -> do multilayer
++ if (aOptions["p"] != "")
++ iDoMultiLayer = 1;
++
++
++ if (aOptions["g"] != "")
++ {
++ if ( ! match (aOptions["g"], /^[0-9]+$/))
++ usage();
++
++ iGapWidth = aOptions["g"] + 1;
++ }
++
++ # get the basename of the source
++ gsub(/\.[^\/]+$/, "", szBase);
++ gsub(/^.*\//, "", szBase);
++
++ # get the path to the original
++ gsub(/[^\/]+$/, "", szOrigPath);
++}
++#########################################################################
++#########################################################################
++
++( iInString != 0) {
++ aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
++ iInString = (match($0, "\\\\001$") == 0);
++ iSubLine++;
++ next;
++}
++
++/^[135][ ]/ {
++ iCmd = $1;
++ iSubCmd = -1;
++ iSubLine = 0;
++ aiDepth[++iLine] = fnGetDepth($1);
++ aszLine[iLine] = $0;
++ next;
++}
++
++/^[2][ ]/ {
++ iCmd = $1;
++ iSubCmd = $2;
++ iSubLine = 0;
++ aiDepth[++iLine] = fnGetDepth($1);
++ aszLine[iLine] = $0;
++ next;
++}
++
++
++/^[4][ ]/ {
++ iCmd = $1;
++ iSubCmd = $2;
++ iSubLine = 0;
++ aiDepth[++iLine] = fnGetDepth($1);
++ aszLine[iLine] = $0;
++ iInString = (match($0, "\\\\001$") == 0);
++ next;
++}
++
++/^(6[ ])|(-6)/ {
++ iCmd = $1;
++ iSubCmd = -1;
++ iSubLine = 0;
++ next;
++}
++
++/^[^ ]/ {
++ iCmd = -1;
++ aiDepth[++iLine] = fnGetDepth("A");
++ iSubLine = 0;
++ aszLine[iLine] = $0;
++ next;
++}
++
++/^[ ]/ {
++ iSubLine++;
++ if ((iCmd == 2) && (iSubCmd == 5) && (iSubLine == 1))
++ {
++ if (match($0, "^\t[01] "))
++ {
++ szFileName = substr($0, RSTART + RLENGTH);
++ if ( ! match(szFileName, /^\//))
++ szFileName = sprintf("%s%s", szOrigPath, szFileName);
++ aszLine[iLine] = sprintf("%s\n\t%s %s", aszLine[iLine], $1, szFileName);
++ }
++ else
++ aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
++ }
++ else
++ aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
++}
++
++
++END {
++ iLine++;
++ iLowestLayer = 0;
++ iFirstRange = 0;
++
++ if (iError == 0)
++ {
++
++
++ if (iDoMultiLayer)
++ {
++ asort(aiDepths, aiSortedDepth);
++
++ # check for ranges as options
++ if (aOptions["p"] != "")
++ {
++ # we have explicit ranges
++ gsub(/-/, ":", aOptions["p"]);
++ iRanges = split(aOptions["p"], aszRanges, ",");
++ }
++ else
++ {
++ if (iDepths < 4)
++ {
++ iRanges = 1;
++ aszRanges[1] = "1:999";
++ }
++ else
++ {
++ iRanges = 0;
++ iLastRange = aiSortedDepth[iDepths - 2] + 0;
++ iRangeStart = iLastRange;
++ for (iI = iDepths - 3; iI > 0; iI--)
++ {
++ aiSortedDepth[iI] += 0;
++ if ((aiSortedDepth[iI] < iLastRange - iGapWidth) || (iI == 1))
++ {
++ if (aiSortedDepth[iI] >= iLastRange - iGapWidth)
++ iLastRange = aiSortedDepth[iI];
++
++ if (iLastRange != iRangeStart)
++ aszRanges[++iRanges] = sprintf("%d:%d", iLastRange, iRangeStart);
++ else
++ aszRanges[++iRanges] = sprintf("%d", iRangeStart);
++ iRangeStart = aiSortedDepth[iI];
++
++ if ((iI == 1) && (aiSortedDepth[iI] < iLastRange - iGapWidth))
++ aszRanges[++iRanges] = sprintf("%d", aiSortedDepth[iI]);
++ }
++ iLastRange = aiSortedDepth[iI];
++ }
++ }
++ }
++
++
++ # check for a multilayer file with only one range
++ if ((iRanges == 1) && iIncludeLowestRange)
++ {
++ iIncludeLowestRange = 0;
++ }
++
++ szInitRangeList = " -D ";
++ szSep = "";
++
++ if (iIncludeLowestRange)
++ {
++ szInitRangeList = sprintf("%s+%s", szInitRangeList, aszRanges[1]);
++ szSep = ",";
++ }
++ szRangeList = szInitRangeList;
++
++ # step through the ranges
++ for (iI = iIncludeLowestRange; iI < iRanges; iI++)
++ {
++ szFileBase = sprintf("%s-%d", szBase, iI - iIncludeLowestRange);
++
++ if (aOptions["I"])
++ {
++ szRangeList = sprintf("%s%s+%s", szRangeList, szSep, aszRanges[iI + 1]);
++ szSep = ",";
++ }
++ else
++ szRangeList = sprintf("%s%s+%s", szInitRangeList, szSep, aszRanges[iI + 1]);
++
++
++ if (iDoLatex)
++ szTargetFile = fnDoTexFig(szFileBase, szOrigFile, szRangeList, (iDoPdftex != 0));
++ else
++ szTargetFile = fnDoNormalFig(szFileBase, szOrigFile, szRangeList, (iDoPdftex != 0));
++
++
++ if (aOptions["G"])
++ {
++ match(szTargetFile, /\.[^.]*$/);
++ szCommand = sprintf("%s %s %s.page%d%s", cmdMv, szTargetFile, szBase, iI - iIncludeLowestRange, substr(szTargetFile, RSTART, RLENGTH));
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++ }
++ }
++ else
++ {
++ szRangeList = "";
++
++ if (iDoLatex)
++ szTargetFile = fnDoTexFig(szBase, szOrigFile, szRangeList, (iDoPdftex != 0));
++ else
++ szTargetFile = fnDoNormalFig(szBase, szOrigFile, szRangeList, (iDoPdftex != 0));
++ }
++ }
++}
++
++
++
++#########################################################################
++#########################################################################
++function debug(str, arg0, arg1, arg2, arg3, arg4)
++{
++ if (aOptions["v"])
++ printf (str, arg0, arg1, arg2, arg3, arg4);
++}
++
++#########################################################################
++#########################################################################
++function fnGetDepth (iControl)
++{
++
++ if (iControl == 1)
++ {
++ iReturn = sprintf("%04d", $7);
++ }
++ else if (iControl == 2)
++ {
++ iReturn = sprintf("%04d", $7);
++ }
++ else if (iControl == 3)
++ {
++ iReturn = sprintf("%04d", $7);
++ }
++ else if (iControl == 4)
++ {
++ iReturn = sprintf("%04d", $4);
++ }
++ else if (iControl == 5)
++ {
++ iReturn = sprintf("%04d", $7);
++ }
++ else if ((iControl == 6) || (iControl == -6))
++ {
++ iReturn = sprintf("%04d", iInvalidDepth);
++ }
++ else
++ {
++ iReturn = sprintf("%04d", iAdminDepth);
++ }
++
++ if (iReturn >= 0)
++ {
++ if (ahDepths[iReturn] == 0)
++ {
++ ahDepths[iReturn] = 1;
++ aiDepths[iDepths++] = iReturn;
++ }
++ }
++
++ return (iReturn);
++
++}
++
++#########################################################################
++#########################################################################
++function fnDoNormalFig(szFileNameBase, szFigFile, szRangeList, iPdf,
++ szEpsFile, szPdfFile, szTargetFile, szCommand)
++{
++
++ debug("FileNameBase >%s< FigFile >%s< Pdf:%d\n", szFileNameBase, szFigFile, iPdf);
++
++ if (iPdf)
++ szEpsFile = sprintf("%s%s.eps", szTmpPrefix, szFileNameBase);
++ else
++ {
++ szEpsFile = sprintf("%s.eps", szFileNameBase);
++ szTargetFile = szEpsFile;
++ }
++
++ szCommand = sprintf("%s -L eps %s %s %s 2> /dev/null", cmdFig2dev, szRangeList, szFigFile, szEpsFile);
++ debug("%s\n", szCommand);
++ system(szCommand);
++
++ if (iPdf)
++ {
++ szPdfFile = sprintf("%s.pdf", szFileNameBase);
++ szTargetFile = szPdfFile;
++ szCommand = sprintf("%s --outfile=%s %s", cmdEpsToPdf, szPdfFile, szEpsFile);
++ debug("%s\n", szCommand);
++ system(szCommand);
++
++
++ if ( ! aOptions["d"])
++ {
++ szCommand = sprintf("%s -f %s", cmdRm, szEpsFile);
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++ }
++
++
++ return (szTargetFile);
++}
++
++
++#########################################################################
++#########################################################################
++function fnDoTexFig(szFileNameBase, szFigFile, szRangeList, iPdf,
++ szEpsFile, szPdfFile, szTexDoc, szTexPdf, szTexLog, szTexAux, szTexInp, szTmpPs, szTmpPdf, szTexSiz, szTmpEps, szCommand, szHeader)
++{
++
++ debug("FileNameBase >%s< FigFile >%s< Pdf:%d\n", szFileNameBase, szFigFile, iPdf);
++
++ szEpsFile = sprintf("%s.eps", szFileNameBase);
++ szPdfFile = sprintf("%s.pdf", szFileNameBase);
++ szTexDoc = sprintf("%s%s_doc.tex", szTmpPrefix, szFileNameBase);
++ szTexPdf = sprintf("%s%s_doc.pdf", szTmpPrefix, szFileNameBase);
++ szTexDvi = sprintf("%s%s_doc.dvi", szTmpPrefix, szFileNameBase);
++ szTexLog = sprintf("%s%s_doc.log", szTmpPrefix, szFileNameBase);
++ szTexAux = sprintf("%s%s_doc.aux", szTmpPrefix, szFileNameBase);
++ szTexInpPref = sprintf("%s%s_inp", szTmpPrefix, szFileNameBase);
++ szTexInp = sprintf("%s.tex", szTexInpPref);
++ szTexCreator = sprintf("%s.create", szTexInpPref);
++ szTexSiz = sprintf("%s.size", szTexInpPref);
++
++ if (iPdf)
++ szCommand = sprintf("%s -L pdftex_p %s -p %s %s %s", cmdFig2dev, szRangeList, szTexInpPref, szFigFile, szTexInp);
++ else
++ szCommand = sprintf("%s -L pstex_p %s -p %s %s %s", cmdFig2dev, szRangeList, szTexInpPref, szFigFile, szTexInp);
++ debug("%s\n", szCommand);
++ system(szCommand);
++
++ szCommand = sprintf("./%s", szTexCreator);
++ debug("%s\n", szCommand);
++ system(szCommand);
++
++ # check if there is an own hederfile to include
++ if (aOptions["s"] == "")
++ aOptions["s"] = "times";
++
++ if (aOptions["H"] == "")
++ {
++ szHeader = sprintf("\\documentclass{article}\n\
++\\usepackage{german,amssymb,amsmath}\n\
++\\usepackage{%s}", aOptions["s"]);
++ }
++ else
++ szHeader = sprintf("\\input{%s}\n", aOptions["H"]);
++
++ szHeader = sprintf("%s\n\
++\\usepackage{color}\n\
++\\usepackage{ifpdf}\n\
++\\setlength{\\textwidth}{100cm}\n\
++\\setlength{\\textheight}{100cm}\n\
++\\setlength{\\topmargin}{-1in}\n\
++\\setlength{\\headsep}{0pt}\n\
++\\setlength{\\headheight}{0pt}\n\
++\\setlength{\\oddsidemargin}{-1in}\n\
++\\parindent=0cm\n\
++\\ifpdf\n\
++\\usepackage[pdftex]{graphicx}\n\
++\\DeclareGraphicsExtensions{.pdf,.png,.jpg}\n\
++\\usepackage{epsfig}\n\
++\\input{%s}\n\
++\\else\n\
++\\usepackage{graphicx}\n\
++\\usepackage{epsfig}\n\
++\\fi\n\
++", szHeader, szTexSiz);
++
++ szCommand = sprintf("%s > %s << EOF\n\
++%s\\begin{document}\n\
++\\pagestyle{empty}\n\
++\\input{%s}\n\
++\\end{document}\n\
++EOF", cmdCat, szTexDoc, szHeader, szTexInp);
++ if (aOptions["d"] != "")
++ debug("%s\n", szCommand);
++ system(szCommand);
++
++ if (iPdf)
++ {
++
++ szCommand = sprintf("%s -interaction batchmode %s", cmdPdftex, szTexDoc);
++ debug("%s\n", szCommand);
++ iReturn = system(szCommand);
++
++ if (iReturn)
++ {
++ szCommand = sprintf("%s %s | %s +G", cmdCat, szTexLog, cmdLess);
++ system (szCommand);
++ }
++ else
++ {
++ szCommand = sprintf("%s %s %s", cmdMv, szTexPdf, szPdfFile);
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++
++ }
++ else
++ {
++ szCommand = sprintf("%s -interaction batchmode %s", cmdLatex, szTexDoc);
++ debug("%s\n", szCommand);
++ iReturn = system(szCommand);
++ if (iReturn)
++ {
++ szCommand = sprintf("%s %s | %s +G", cmdCat, szTexLog, cmdLess);
++ system (szCommand);
++ }
++ else
++ {
++ szCommand = sprintf("%s -q -E %s -o %s 2>&1 > /dev/null", cmdDvips, szTexDvi, szEpsFile);
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++ }
++
++ if ( ! aOptions["d"])
++ {
++ szCommand = sprintf("./%s -r", szTexCreator);
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++
++ if ( ! aOptions["d"])
++ {
++ szCommand = sprintf("%s -f %s %s %s %s %s %s %s", cmdRm, szTexDoc, szTexLog, szTexAux, szTexDvi, szTexInp, szTexCreator, szTexPdf);
++ debug("%s\n", szCommand);
++ system(szCommand);
++ }
++
++ if (iPdf)
++ return (szPdfFile);
++ else
++ return (szEpsFile);
++}
++
++
++#########################################################################
++#########################################################################
++function getopt(sOptions, n, m, fHuntParam, iSearchMinus, iSPos, iCLen, iHuntSwitches, szSwChar, szOptChar) {
++# Options: Flagoptions: %f
++# Parameter: $p
++
++ n = 1; # index in argv
++ m = 1; # processed entries in argv finally it points to the firs$
++ iSearchMinus = 1; # indicate that a switch leading sign minus is expected
++
++ # check for initial -- to separate the gawk switches from the script switches
++ if (ARGV[n] == "--")
++ n++;
++
++
++ while (n < ARGC)
++ {
++ iHuntSwitches = 0;
++ iCLen = length(ARGV[n]);
++
++ szSwChar = substr(ARGV[n], 1, 1);
++ if ((szSwChar == "-") || (szSwChar == "+"))
++ {
++ if ((iSearchMinus == 0) || fHuntParam)
++ usage();
++ iHuntSwitches = 1;
++ iSPos = 2;
++ fHuntParam = 0;
++ }
++ else
++ {
++ iSPos = 1;
++
++ if (fHuntParam == 0)
++ iSearchMinus = 0;
++ }
++
++ while (iSPos <= iCLen)
++ {
++ if (iHuntSwitches)
++ {
++ szOptChar = substr(ARGV[n], iSPos, 1);
++ iOPos = index(sOptions, szOptChar);
++ if (iOPos == 0)
++ {
++ printf("unknown option \"%s\"\n", szOptChar);
++ usage();
++ }
++ if ((substr(sOptions, iOPos - 1, 1) == "&") || ((substr(sOptions, iOPos - 1, 1) == "%") && (szSwChar == "-")))
++ {
++ aOptions[szOptChar] = szSwChar;
++ iSPos = iSPos + 1;
++ }
++ else if ((substr(sOptions, iOPos - 1, 1) == "$") && (szSwChar == "-"))
++ {
++ fHuntParam = 1;
++ iHuntSwitches = 0;
++ iSPos = iSPos + 1;
++ }
++ else
++ usage();
++
++ }
++ else if (fHuntParam)
++ {
++ fHuntParam = 0;
++ aOptions[szOptChar] = substr(ARGV[n], iSPos, iCLen + 1 - iSPos);
++ iSPos = iCLen + 1;
++ }
++ else
++ {
++ ARGV[m++] = ARGV[n];
++ iSPos = iCLen + 1;
++ }
++ }
++ n = n + 1;
++ }
++ ARGC = m;
++}
++
++
++#########################################################################
++#########################################################################
++function usage() {
++ print "usage: fig2mpdf [-|+lm] [-eiIGvV] [-p <ranges>] [-g <gapwidth>] [-s <style>] [-H <headerfile>] file\n\
++\n\
++ -|+l set|reset latex call\n\
++ -e create an eps file instead of a pdf\n\
++ -|+m set|reset multilayer creation\n\
++ -p <ranges> colon separated list of layer ranges a-b,c,d-e,...\n\
++ -i do include the deepest range in all figures\n\
++ (the one with the higest level number)\n\
++ -I include all lower ranges (pyramide mode)\n\
++ -g <gap> set layer gapwidth for automatically detecting ranges (default:0)\n\
++ -s <style> replace \\usepackage{times} by \\usepackage{<style>} in the latex commands\n\
++ -H <header> use file <header> for creating tex documents (only\n\
++ \\begin{document}...\\end{document} is set by fig2mpdf)\n\
++ -G name multilayer files in PGF file name format <name>.page<no>.<ext>\n\
++ -v be verbose\n\
++ -V print out the version of fig2mpdf\n";
++ exit 1;
++}
++' -- $*
++
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2mpdf/fig2mpdf.1 transfig/fig2mpdf/fig2mpdf.1
+--- transfig~/fig2mpdf/fig2mpdf.1
++++ transfig/fig2mpdf/fig2mpdf.1
+@@ -0,0 +1,208 @@
++.TH fig2mpdf 1 "Jun 2006" "" "Including xfig figures into LaTeX documents"
++.SH NAME
++fig2mpdf \- creation of multilayer pdf or eps figures from fig files using latex for typesetting
++.SH SYNOPSIS
++.B fig2mpdf
++[\fIOPTION\fR]... \fIFILE\fR
++.SH DESCRIPTION
++.PP
++This tool can create pdf or eps figures using fig files as source. For beamer
++presentations, for example, you can use the multilayer mode to create
++multiple figures that can be overlayed to get a dynamic figure. For
++proper appearance you can use latex to typeset some or all texts,
++possibly containing formulas.
++
++The default interpretation of the given fig \fIFILE\fR depends on its suffix.
++.TP
++\fIfig\fR
++Normal conversion of a fig file. All texts are interpreted as postscript
++texts and all elements of the figure are included in the resulting figure.
++.TP
++\fIlfig\fR
++LaTeX interpretation of the file. All texts of the input file that have the
++special bit set are typeset by pdflatex resp. latex (see: Option \fB\-|+l\fR).
++.TP
++\fImfig\fR
++Multilayer file interpretation. Depending on the used depths of the
++figure it is split into multiple parts. For each part an output file is
++created (see: section \fBMultiLayerOutput\fR).
++.TP
++\fImlfig\fR or \fIlmfig\fR
++Combination of multilayer and LaTeX interpretation of the input (see: Suffix
++\fIlfig\fR and \fImfig\fR).
++.PP
++The default interpretation of the input can be changed by using the options below.
++.SH OPTIONS
++.PP
++.TP
++\fB\-e\fR
++produce an eps output file. Instead of creating a pdf file (the default)
++an eps figure is produced.
++.TP
++\fB\-|+l\fR
++force calling (pdf)latex (-) or do not use (pdf)latex (+) for
++typesetting the text marked with the special flag. With this option you
++can change the default behavior given by the input file suffix.
++.TP
++\fB\-|+m\fR
++force set (-) or unset (+) the multilayer interpretation (see:
++\fBMultiLayerOutput\fR below) which was previously set by the input
++file suffix.
++.TP
++\fB\-p\fR \fIranges\fR
++explicitly set the ranges of depths for splitting the input figure in
++multilayer mode. \fIranges\fR is a colon separated list of ranges of
++the form \fIupper-lower\fR or \fIdepth\fR where \fIupper\fR is the
++top and \fIlower\fR the bottom depth in the range. If you use the
++\fIdepth\fR form the range consist of just that depth.
++.TP
++\fB\-i\fR
++include the the bottommost range (that is, the one with the highest depth) into
++all output figures. This is for compatibility to older versions of this
++tool.
++.TP
++\fB\-I\fR
++turn on pyramid mode. The figure of a corresponding range in multilayer
++mode includes all lower ranges too.
++.TP
++\fB\-g\fR \fIgapwidth\fR
++set the allowed gapwidth between two used depths to decide if these
++depths should be grouped together in one range. With this option you get
++more flexibility to insert objects with new depths. The default width is
++zero (no gap = consecutively numbered depths are grouped together).
++.TP
++\fB\-s\fR \fIstyle\fR
++replace the default style for selecting a font family in LaTeX mode.
++If this option is omitted the style `times' is set by default.
++.TP
++\fB\-H\fR \fIheader\fR
++replace the default header sequence for creating temporary
++LaTeX documents in LaTeX mode. To get maximum flexibility you can
++set the entire document header in the file \fIheader\fR (see:
++\fBCustomized Headers\fR below).
++.TP
++\fB\-G\fR
++in multilayer mode change the default output file pattern to the PDF
++format which is <name>.page<no>.<ext>
++.TP
++\fB\-v\fR
++be verbose and print out all executed commands
++.TP
++\fB\-V\fR
++print out the version of \fBfig2mpdf\fR
++.PP
++.SH "MultiLayerOutput"
++In xfig you can assign an individual depth to all objects of the
++figure. These depths are normally used to determine the order of
++printing the objects. \fBfig2mpdf\fR uses these depths to group the
++objects into ranges in automatic mode (if the ranges option is
++omitted). In the list of used depths, consecutively numbered depths are
++grouped into one range. That is, all gaps between used depths are used
++to logically split the figure. With \fB\-g\fR you can set the
++gapwidth which doesn't split the figure (default: zero).
++.PP
++The resulting list of ranges determines the number of output files. In
++default mode all objects with depths assigned to one range are
++collected and put into the corresponding output file. The contents of
++the output files can be changed with the two Options \fB\-i\fR and
++\fB\-I\fR.
++.PP
++The \fB\-i\fR option reduces the number of output files by one. The
++bottommost range, that is the range which consist of the highest depths
++of the figure, is included into all output files.
++.PP
++In pyramid mode, activated by the option \fB\-I\fR, the output files
++contain additionally all lower ranges. With this mode you can
++get stand alone figures that don't have to be overlayed to have
++meaningful content.
++.PP
++\fBExample 1\fR
++.PD 0
++.PP
++Assume that you have a fig file \fIfoo.fig\fR which contains the three ranges
++.IR "230-233",
++.IR "455-460"
++and
++.IR "499-500".
++.PD
++.PP
++With no options set you get three output files, one per range. But if you
++set the \fB\-i\fR option you get the following two files where the
++bottommost range is included in both of the files:
++.PD 0
++.PP
++ \fIfoo-0.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
++.PP
++ \fIfoo-1.pdf\fR with ranges \fI230-233\fR and \fI499-500\fR.
++.PD
++.PP
++\fBExample 2\fR
++.PD 0
++.PP
++The pyramid mode, activated by the option \fB\-I\fR, will produce the
++following files from the source file of \fBExample 1\fR:
++.PP
++ \fIfoo-0.pdf\fR with ranges \fI499-500\fR
++.PP
++ \fIfoo-1.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
++.PP
++ \fIfoo-2.pdf\fR with ranges \fI230-233\fR, \fI455-460\fR and \fI499-500\fR.
++.PD
++.PP
++\fBExample 3\fR
++.PD 0
++.PP
++If both options are set you will get just two files with the following
++contents:
++.PP
++ \fIfoo-0.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
++.PP
++ \fIfoo-1.pdf\fR with ranges \fI230-233\fR, \fI455-460\fR and \fI499-500\fR.
++.PD
++.PP
++.SH "Customized Headers"
++For various reasons you might want to change the standard latex generation,
++e.g., if you want to change the default font family. The following
++example represents a valid header file.
++
++The usage of this example file changes the font family to sans serif
++and adds an additional search path for includegraphics to the `figures'
++subdirectory.
++
++.PD 0
++ \\documentclass{article}
++.PP
++ \\usepackage{german,amssymb,amsmath}
++.PP
++ \\renewcommand{\\familydefault}{\\sfdefault}
++.PP
++ \\AtBeginDocument{\\graphicspath{{figures/}}}
++.PD
++
++The following packages are generally used: \fBcolor\fR, \fBgraphicx\fR and \fBepsfig\fR.
++.SH "Tex errors"
++Sometimes it might happen that latex generates an error while processing
++your special texts. To keep you informed about the occurrence of that
++error and about what has happened, in this case the log file is shown
++by invoking a less command.
++.SH "Files"
++In single layer mode for the resulting files the suffix fig is replaced
++by pdf (resp. eps) (i.e. foo.fig -> foo.pdf).
++.PP
++.PD 0
++In multilayer mode the base name of the source fig files is extended
++by '-<range>' and the suffix is set to pdf (resp. eps).
++.PP
++(i.e., foo.fig -> foo-0.pdf, foo-1.pdf, foo-2.pdf, ...
++.PP
++ or foo.fig -> foo.page0.pdf, foo.page1.pdf, foo.page2.pdf, ...
++.PP
++ if the option \fB\-G\fR is set).
++.PD
++.SH "SEE ALSO"
++.IR xfig(1)
++.IR fig2dev(1)
++.IR gawk(1)
++.IR pdflatex(1)
++.IR latex(1)
++.IR dvips(1)
diff --git a/media-gfx/transfig/files/transfig-3.2.5d-leadspace.patch b/media-gfx/transfig/files/transfig-3.2.5d-leadspace.patch
new file mode 100644
index 000000000000..d222cf6590e6
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5d-leadspace.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 25_PIC_leadspace.dpatch by Roger Leigh <rleigh@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Avoid wrong leading spaces in PIC text (Closes: #611977).
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/dev/genpic.c transfig/fig2dev/dev/genpic.c
+--- transfig~/fig2dev/dev/genpic.c
++++ transfig/fig2dev/dev/genpic.c
+@@ -443,7 +443,7 @@
+ size = PICFONTMAG(t);
+ if (!OptNoUnps) {
+ unpsfont(t);
+- fprintf(tfp, "\"\\s%d\\f%s ", size, PICFONT(t->font));
++ fprintf(tfp, "\"\\s%d\\f%s", size, PICFONT(t->font));
+ } else {
+ fprintf(tfp, ".ps\n.ps %d\n", size );
+ fprintf(tfp, ".ft\n.ft %s\n", PICPSFONT(t) );
diff --git a/media-gfx/transfig/files/transfig-3.2.5d-libpng-1.5.patch b/media-gfx/transfig/files/transfig-3.2.5d-libpng-1.5.patch
new file mode 100644
index 000000000000..e6f15e43e93c
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5d-libpng-1.5.patch
@@ -0,0 +1,39 @@
+http://bugs.gentoo.org/show_bug.cgi?id=356751
+
+Index: transfig.3.2.5d/fig2dev/dev/readpng.c
+===================================================================
+--- transfig.3.2.5d.orig/fig2dev/dev/readpng.c
++++ transfig.3.2.5d/fig2dev/dev/readpng.c
+@@ -62,7 +62,7 @@ read_png(file,filetype,pic,llx,lly)
+ }
+
+ /* set long jump here */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* if we get here there was a problem reading the file */
+ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ return 0;
+@@ -78,15 +78,17 @@ read_png(file,filetype,pic,llx,lly)
+ png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
+ &interlace_type, &compression_type, &filter_type);
+
+- if (info_ptr->valid & PNG_INFO_gAMA)
+- png_set_gamma(png_ptr, 2.2, info_ptr->gamma);
+- else
+- png_set_gamma(png_ptr, 2.2, 0.45);
++ png_fixed_point gamma = 0.45;
++ png_get_gAMA_fixed(png_ptr,info_ptr,&gamma);
++ png_set_gamma(png_ptr, 2.2, gamma);
+
+- if (info_ptr->valid & PNG_INFO_bKGD)
++ if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
+ /* set the background to the one supplied */
+- png_set_background(png_ptr, &info_ptr->background,
++ png_color_16p background;
++ png_get_bKGD(png_ptr,info_ptr,&background);
++ png_set_background(png_ptr, background,
+ PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
++ }
+ else {
+ /* blend the canvas background using the alpha channel */
+ if (bgspec) {
diff --git a/media-gfx/transfig/files/transfig-3.2.5d-precision.patch b/media-gfx/transfig/files/transfig-3.2.5d-precision.patch
new file mode 100644
index 000000000000..227f19cfe71b
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5d-precision.patch
@@ -0,0 +1,45 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 24_PIC_precision.dpatch by Roger Leigh <rleigh@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Change the precision of PIC floating point output from %.2f to %.3f.
+## DP: (Closes: #611948)
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' transfig~/fig2dev/dev/genpic.c transfig/fig2dev/dev/genpic.c
+--- transfig~/fig2dev/dev/genpic.c
++++ transfig/fig2dev/dev/genpic.c
+@@ -229,9 +229,9 @@
+
+ /* Should have a #define somewhere for the # of fill patterns */
+ if (l->fill_style != UNFILLED)
+- fprintf(tfp, " fill %.2f", ((double) l->fill_style ) / (double) BLACK_FILL);
++ fprintf(tfp, " fill %.3f", ((double) l->fill_style ) / (double) BLACK_FILL);
+
+- fprintf(tfp, " with .sw at (%.2f,%.2f) ",
++ fprintf(tfp, " with .sw at (%.3f,%.3f) ",
+ minx / ppi, convy(maxy / ppi));
+
+ width = (maxx - minx) / ppi;
+@@ -239,10 +239,10 @@
+ height = convy(maxy / ppi) - convy(miny / ppi);
+ if (height < 0.0) height = -height;
+
+- fprintf(tfp, "width %.2f height %.2f", width, height);
++ fprintf(tfp, "width %.3f height %.3f", width, height);
+
+ if (OptArcBox && l->type == T_ARC_BOX)
+- fprintf(tfp, " rad %.2f", l->radius/ppi);
++ fprintf(tfp, " rad %.3f", l->radius/ppi);
+
+ AddThickness();
+
+@@ -411,7 +411,7 @@
+ 2 * e->radiuses.x/ppi, 2 * e->radiuses.y/ppi);
+
+ if ( OptEllipseFill && e->fill_style != UNFILLED)
+- fprintf(tfp, " fill %.2f", (double)e->fill_style / (double) BLACK_FILL);
++ fprintf(tfp, " fill %.3f", (double)e->fill_style / (double) BLACK_FILL);
+
+ AddThickness();
+
diff --git a/media-gfx/transfig/files/transfig-3.2.5e-fprintf_format_warnings.patch b/media-gfx/transfig/files/transfig-3.2.5e-fprintf_format_warnings.patch
new file mode 100644
index 000000000000..6b3f8a7d870d
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5e-fprintf_format_warnings.patch
@@ -0,0 +1,55 @@
+Author: Roland Rosenfeld <roland@debian.org>
+Description: Add a format string to fprintf()/sprintf() call instead
+ of directly printing out Err_Mem. This is needed by harding options.
+
+--- a/fig2dev/trans_spline.c
++++ b/fig2dev/trans_spline.c
+@@ -648,7 +648,7 @@
+ F_control *cp;
+
+ if ((cp = (F_control *) malloc(CONTROL_SIZE)) == NULL)
+- fprintf(stderr,Err_mem);
++ fprintf(stderr, "%s", Err_mem);
+ return cp;
+ }
+
+@@ -659,7 +659,7 @@
+ F_line *l;
+
+ if ((l = (F_line *) malloc(LINOBJ_SIZE)) == NULL)
+- fprintf(stderr,Err_mem);
++ fprintf(stderr, "%s", Err_mem);
+ l->pic = NULL;
+ l->next = NULL;
+ l->for_arrow = NULL;
+--- a/fig2dev/dev/gencgm.c
++++ b/fig2dev/dev/gencgm.c
+@@ -139,7 +139,7 @@
+
+ if (from) {
+ figname = malloc(strlen(from)+1);
+- sprintf(figname, from);
++ sprintf(figname, "%s", from);
+ p = strrchr(figname, '/');
+ if (p)
+ figname = p+1; /* remove path from name for comment in file */
+--- a/fig2dev/dev/genmp.c
++++ b/fig2dev/dev/genmp.c
+@@ -1150,7 +1150,7 @@
+ }
+ } else {
+ /* special text in latex mode: just write the text. */
+- fprintf(tfp, t->cstring);
++ fprintf(tfp, "%s", t->cstring);
+ }
+ fprintf(tfp," etex;\n");
+
+@@ -1164,7 +1164,7 @@
+
+ fprintf(tfp," picture q;\n");
+ fprintf(tfp," q=thelabel.urt(\"");
+- fprintf(tfp, t->cstring);
++ fprintf(tfp, "%s", t->cstring);
+ fprintf(tfp, "\" infont ");
+ if (t->font<0) {
+ fprintf(tfp, "defaultfont");
diff --git a/media-gfx/transfig/files/transfig-3.2.5e-man-hyphen.patch b/media-gfx/transfig/files/transfig-3.2.5e-man-hyphen.patch
new file mode 100644
index 000000000000..bb79ec82c92c
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5e-man-hyphen.patch
@@ -0,0 +1,530 @@
+Author: Roland Rosenfeld <roland@debian.org>
+Description: Escape hyphen '-' in man pages
+
+--- a/doc/fig2dev.1
++++ b/doc/fig2dev.1
+@@ -63,9 +63,9 @@
+ Notes:
+ .br
+ .I dvips
+-and
++ and
+ .I xdvi
+-must be compiled with the tpic support (-DTPIC) for epic, eepic and tpic to work.
++must be compiled with the tpic support (\-DTPIC) for epic, eepic and tpic to work.
+ .br
+ You must have ghostscript and ps2pdf, which comes with the ghostscript distribution
+ to get the pdf output and the bitmap formats (png, jpeg, etc.), and the netpbm (pbmplus)
+@@ -81,16 +81,16 @@
+
+ .TP
+ .B "\-D +/-rangelist"
+-With +rangelist, keep only those depths in the list. With -rangelist, keep all
++With +rangelist, keep only those depths in the list. With \-rangelist, keep all
+ depths except those in the list. The rangelist may be a list of comma-separated
+-numbers or ranges separated by colon (:). For example, -D +10,40,55:70,80
++numbers or ranges separated by colon (:). For example, \-D +10,40,55:70,80
+ means keep only layers 10, 40, 55 \fBthrough\fR 70, and 80.
+
+ .TP
+-.B -K
+-The selection of the depths with the '-D +/-rangelist' option does normally not
++.B \-K
++The selection of the depths with the '\-D +/\-rangelist' option does normally not
+ affect the calcualtion of the bounding box. Thus the generated document might
+-have a much larger bounding box than necessary. If -K is given then the
++have a much larger bounding box than necessary. If \-K is given then the
+ bounding box is adjusted to include only those objects in the selected depths.
+
+ .TP
+@@ -107,10 +107,10 @@
+ .TP
+ .B "\-G minor[:major][:unit]"
+ Draws a grid on the page. Specify thin, or thin and thick line
+-spacing in one of several units. For example, "-G .25:1cm" draws a thin,
++spacing in one of several units. For example, "\-G .25:1cm" draws a thin,
+ gray line every .25 cm and a thicker gray line every 1 cm. Specifying
+-"-G 1in" draws a thin line every 1 inch.
+-Fractions may be used, e.g. "-G 1/16:1/2in" will draw a thin line every
++"\-G 1in" draws a thin line every 1 inch.
++Fractions may be used, e.g. "\-G 1/16:1/2in" will draw a thin line every
+ 1/16 inch (0.0625 inch) and a thick line every 1/2 inch.
+ .br
+ Allowable units are: i, in, inch, f, ft, feet, c, cm, mm, and m.
+@@ -126,7 +126,7 @@
+ Set the magnification at which the figure is rendered to
+ .I mag.
+ The default is 1.0.
+-This may not be used with the maxdimension option (-Z).
++This may not be used with the maxdimension option (\-Z).
+
+ .TP
+ .B "\-s size"
+@@ -141,7 +141,7 @@
+ .I maxdimension
+ inches or cm, depending on whether the figure was saved with
+ imperial or metric units.
+-This may not be used with the magnification option (-m).
++This may not be used with the magnification option (\-m).
+
+ .TP
+ .I other options
+@@ -157,7 +157,7 @@
+ something that they won't do with EPS files that have an ASCII preview.
+ .TP
+ .B "\-b dummyarg"
+-Generate binary output (dummy argument required after the "-b").
++Generate binary output (dummy argument required after the "\-b").
+
+ .TP
+ .B \-r
+@@ -335,7 +335,7 @@
+ file.
+ The table must have 21 entries - one for each of the area fill patterns.
+ Each entry consists of 5 numbers which specify the
+-1.) pattern number (-1 - 6),
++1.) pattern number (\-1 - 6),
+ 2.) pattern length (inches),
+ 3.) fill type (1 - 5),
+ 4.) fill spacing (inches) and
+@@ -390,7 +390,7 @@
+ .TP
+ .B \-F
+ Use correct font sizes (points, 1/72 inch) instead of the traditional size that xfig/fig2dev uses,
+-which is (1/80 inch). The corresponding xfig command-line option is -correct_font_size.
++which is (1/80 inch). The corresponding xfig command-line option is \-correct_font_size.
+
+ .TP
+ .B \-g color
+@@ -403,13 +403,13 @@
+ Convert all colors to grayscale.
+
+ .TP
+-.B -S smoothfactor
++.B \-S smoothfactor
+ This will smooth the output by passing
+ .I smoothfactor
+ to ghostscript in the
+-.I -dTextAlphaBits
++.I \-dTextAlphaBits
+ and
+-.I -dGraphicsAlphaBits
++.I \-dGraphicsAlphaBits
+ options to improve font rendering and graphic smoothing.
+ A value of 2 for
+ .I smoothfactor
+@@ -418,7 +418,7 @@
+ .SH GIF OPTIONS
+
+ .TP
+-.B -t color
++.B \-t color
+ Use
+ .I color
+ for the transparent color in the GIF file. This must be specified
+@@ -428,7 +428,7 @@
+
+ .SH JPEG OPTIONS
+ .TP
+-.B -q image_quality
++.B \-q image_quality
+ use the integer value
+ .I image_quality
+ for the JPEG "Quality" factor. Valid values are 0-100, with the default being 75.
+@@ -495,7 +495,7 @@
+ .I fig2dev
+ scales the figure by 1/8 before generating METAFONT code.
+ The magnification can be further changed with the
+-.B -m
++.B \-m
+ option or by giving magnification options to
+ .B mf.
+ .LP
+@@ -506,33 +506,33 @@
+ under the subdirectory: graphics/mfpic
+
+ .TP
+-.B -C code
++.B \-C code
+ specifies the starting METAFONT font code. The default is 32.
+ .TP
+-.B -n name
++.B \-n name
+ specifies the name to use in the output file.
+ .TP
+-.B -p pen_magnification
++.B \-p pen_magnification
+ specifies how much the line width should be magnified compared to the
+ original figure. The default is 1.
+ .TP
+-.B -t top
++.B \-t top
+ specifies the top of the whole coordinate system. The default is
+ .B ypos.
+ .TP
+-.B -x xmin
++.B \-x xmin
+ specifies the minimum x coordinate value of the figure (inches). The
+ default is 0.
+ .TP
+-.B -y ymin
++.B \-y ymin
+ specifies the minumum y coordinate value of the figure (inches). The
+ default is 0.
+ .TP
+-.B -X xmax
++.B \-X xmax
+ specifies the maximum x coordinate value of the figure (inches). The
+ default is 8.
+ .TP
+-.B -Y ymax
++.B \-Y ymax
+ specifies the maximum y coordinate value of the figure (inches). The
+ default is 8.
+
+@@ -546,7 +546,7 @@
+ Include file content as additional header.
+
+ .TP
+-.B -o
++.B \-o
+ Old mode (no latex).
+
+ .TP
+@@ -597,15 +597,15 @@
+ Set encoding for latex text translation (0 no translation, 1 ISO-8859-1, 2 ISO-8859-2)
+
+ .SH GBX OPTIONS (Gerber, RS-247-X)
+-Typically you will wish to set the y scale to -1. See
+-.B -g
++Typically you will wish to set the y scale to \-1. See
++.B \-g
+ for more information.
+ .TP
+-.B -d [mm|in]
++.B \-d [mm|in]
+ Output dimensions should be assumed to be millimeters (mm) or inches
+ (in). The default is millimeters.
+ .TP
+-.B -p [pos|neg]
++.B \-p [pos|neg]
+ Select the image polarity. For positive images lines drawn in the fig
+ file will generate lines of material. For negative images lines drawn
+ in the fig file will result in removed material. Consider etching a
+@@ -613,29 +613,29 @@
+ choosing 'neg' will result in these lines being etched through the
+ chrome, leaving transparent lines.
+ .TP
+-.B -g <x scale>x<y scale>+<x offset>+<y offset>
++.B \-g <x scale>x<y scale>+<x offset>+<y offset>
+ This controls the geometry of the output, scaling the dimensions as
+ shown and applying the given offset. Typically you will wish to set
+-the y scale to -1, mirroring about the x axis. This is because Gerber
++the y scale to \-1, mirroring about the x axis. This is because Gerber
+ assumes the origin to be bottom left, while xfig selects top left.
+ .TP
+-.B -f <n digits>.<n digits>
++.B \-f <n digits>.<n digits>
+ This controls the number of digits of precision before and after the
+-implied decimal point. With -f 5.3 the following number 12345678
+-corresponds to 12345.678. Whereas with -f 3.5 it corresponds to
++implied decimal point. With \-f 5.3 the following number 12345678
++corresponds to 12345.678. Whereas with \-f 3.5 it corresponds to
+ 123.45678. The default is for 3 places before the decimal point and 5
+ after. This corresponds, to a range of 0 to 1m in 10 micron
+ increments.
+ .TP
+-.B -i [on|off]
++.B \-i [on|off]
+ Controls the output of comments describing the type of objects being
+ output. The text appears as comments starting with ## on each line in
+ the output file. By default this is on.
+
+ .SH POSTSCRIPT, ENCAPSULATED POSTSCRIPT (EPS), and PDF OPTIONS
+ With PostScript, xfig can be used to create multiple page figures
+-Specify the -M option to produce a multi-page output.
+-For posters, add -O to overlap the pages slightly to get around the problem of
++Specify the \-M option to produce a multi-page output.
++For posters, add \-O to overlap the pages slightly to get around the problem of
+ the unprintable area in most printers, then cut and paste the pages together.
+ Due to memory limitations of most laser printers, the figure should not
+ have large imported images (bitmaps). Great for text with very big letters.
+@@ -658,7 +658,7 @@
+ .LP
+ The EPS driver has the following two special options:
+ .TP
+-.B -B 'Wx [Wy X0 Y0]'
++.B \-B 'Wx [Wy X0 Y0]'
+ This specifies that the bounding box of the EPS file should have the
+ width Wx and the height Wy.
+ Note that it doesn't scale the figure to this size, it merely sets the bounding box.
+@@ -667,13 +667,13 @@
+ screen (0,0) (upper-left).
+ Wx, Wy, X0 and Y0 are interpreted in centimeters or inches depending on the measure
+ given in the fig-file.
+-Remember to put either quotes (") or apostrophes (') to group the arguments to -B.
++Remember to put either quotes (") or apostrophes (') to group the arguments to \-B.
+ .TP
+-.B -R 'Wx [Wy X0 Y0]'
+-Same as the -B option except that X0 and Y0 is relative to the lower
++.B \-R 'Wx [Wy X0 Y0]'
++Same as the \-B option except that X0 and Y0 is relative to the lower
+ left corner of the
+ .B figure.
+-Remember to put either quotes (") or apostrophes (') to group the arguments to -R.
++Remember to put either quotes (") or apostrophes (') to group the arguments to \-R.
+ .LP
+ The PDF driver uses all the PostScript options.
+ .LP
+@@ -697,106 +697,106 @@
+ In addition, there are 16 patterns such as bricks, diagonal lines,
+ crosshatch, etc.
+ .TP
+-.B -A
++.B \-A
+ Add an ASCII (EPSI) preview.
+ .TP
+-.B -b borderwidth
++.B \-b borderwidth
+ Make blank border around figure of width
+ .I borderwidth.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+
+ .TP
+-.B -C dummy_arg
++.B \-C dummy_arg
+ Add a color *binary* TIFF preview for Microsoft products that need a binary preview.
+-See also -T (monochrome preview). A dummy argument must be supplied for historical reasons.
++See also \-T (monochrome preview). A dummy argument must be supplied for historical reasons.
+ .TP
+-.B -c
++.B \-c
+ option centers the figure on the page.
+ The centering may not be accurate if there are texts in the
+ .I fig_file
+ that extends too far to the right of other objects.
+ .TP
+-.B -e
++.B \-e
+ option puts the figure against the edge (not centered) of the page.
+-Not availble in EPS.
++Not available in EPS.
+
+ .TP
+-.B -F
++.B \-F
+ Use correct font sizes (points) instead of the traditional size that xfig/fig2dev uses,
+-which is 1/80 inch. The corresponding xfig command-line option is -correct_font_size.
++which is 1/80 inch. The corresponding xfig command-line option is \-correct_font_size.
+
+ .TP
+-.B -g color
++.B \-g color
+ Use
+ .I color
+ for the background.
+ .TP
+-.B -l dummy_arg
++.B \-l dummy_arg
+ Generate figure in landscape mode. The dummy argument is ignored,
+ but must appear on the command line for reasons of compatibility.
+ This option will override the orientation specification in the
+ file (for file versions 3.0 and higher).
+ .br
+-Not availble in EPS.
++Not available in EPS.
+ .TP
+-.B -M
++.B \-M
+ Generate multiple pages if figure exceeds paper size.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+ .TP
+ .B \-N
+ Convert all colors to grayscale.
+
+ .TP
+-.B -n name
++.B \-n name
+ Set the Title part of the PostScript output to
+ .I name.
+ This is useful when the input to
+ .I fig2dev
+ comes from standard input.
+ .TP
+-.B -O
++.B \-O
+ When used with \fB-M\fR,
+ overlaps the pages slightly to get around the problem of
+ the unprintable area in most printers.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+ .TP
+-.B -p dummy_arg
++.B \-p dummy_arg
+ Generate figure in portrait mode. The dummy argument is ignored,
+ but must appear on the command line for reasons of compatibility.
+ This option will override the orientation specification in the
+ file (for file versions 3.0 and higher).
+ This is the default for Fig files of version 2.1 or lower.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+
+ .TP
+-.B -T
++.B \-T
+ Add a monochrome *binary* TIFF preview for Microsoft products that need a binary preview.
+-See also -C (color preview).
++See also \-C (color preview).
+ .TP
+ .TP
+-.B -x offset
++.B \-x offset
+ shift the figure in the X direction by
+ .I offset
+ units (1/72 inch).
+ A negative value shifts the figure to the left and a positive value to the right.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+ .TP
+-.B -y offset
++.B \-y offset
+ shift the figure in the Y direction by
+ .I offset
+ units (1/72 inch).
+ A negative value shifts the figure up and a positive value down.
+ .br
+-Not availble in EPS.
++Not available in EPS.
+ .TP
+-.B -z papersize
++.B \-z papersize
+ Sets the papersize.
+-Not availble in EPS.
++Not available in EPS.
+ .br
+ Available paper sizes are:
+ .nf
+@@ -839,17 +839,17 @@
+ special text.
+
+ .TP
+-.B -F
++.B \-F
+ Use correct font sizes (points) instead of the traditional size that xfig/fig2dev uses,
+-which is 1/80 inch. The corresponding xfig command-line option is -correct_font_size.
++which is 1/80 inch. The corresponding xfig command-line option is \-correct_font_size.
+
+ .TP
+-.B -g color
++.B \-g color
+ Use
+ .I color
+ for the background.
+ .TP
+-.B -n name
++.B \-n name
+ sets the Title part of the PostScript output to
+ .I name.
+ This is useful when the input to
+@@ -876,7 +876,7 @@
+ LaTeX document. With this option on, you can set the font from your LaTeX
+ document (like "\fB\\sfshape \\input picture.eepic\fR").
+ .TP
+-.B -p file
++.B \-p file
+ specifies the name of the PostScript file to be overlaid.
+ If not set or its value is null then no PS file will be inserted.
+
+@@ -977,7 +977,7 @@
+ .TP
+ .B \-P
+ Shorthand for
+-.B -n 3
++.B \-n 3
+ .
+
+ .TP
+@@ -992,7 +992,7 @@
+ directory! Don't put your stuff here. The
+ .B includegraphics
+ commands in the output file refer to this directory. Even
+-if the -p option is not used,
++if the \-p option is not used,
+ .B includegrpahics
+ commands follow this convention with the default directory
+ .I "\./eps".
+@@ -1064,26 +1064,26 @@
+
+ .SH TK and PTK OPTIONS (tcl/tk and Perl/tk)
+ .TP
+-.B -l dummy_arg
++.B \-l dummy_arg
+ Generate figure in landscape mode. The dummy argument is ignored,
+ but must appear on the command line for reasons of compatibility.
+ This option will override the orientation specification in the
+ file (for file versions 3.0 and higher).
+ .TP
+-.B -p dummy_arg
++.B \-p dummy_arg
+ Generate figure in portrait mode. The dummy argument is ignored,
+ but must appear on the command line for reasons of compatibility.
+ This option will override the orientation specification in the
+ file (for file versions 3.0 and higher).
+ This is the default for Fig files of version 2.1 or lower.
+ .TP
+-.B -P
++.B \-P
+ Generate canvas of full page size instead of using the bounding box
+ of the figure's objects. The default is to use only the bounding box.
+ .TP
+-.B -z papersize
++.B \-z papersize
+ Sets the papersize. See the POSTSCRIPT OPTIONS for available paper sizes.
+-This is only used when the -P option (use full page) is used.
++This is only used when the \-P option (use full page) is used.
+
+ .SH "SEE ALSO"
+ [x]fig(1),
+--- a/doc/transfig.1
++++ b/doc/transfig.1
+@@ -3,11 +3,11 @@
+ transfig \- creates a makefile for portable LaTeX figures
+ .SH SYNOPSIS
+ .B transfig
+-[ -L \fIlanguage\fR ]
+-[ -M \fImakefile\fR ]
+-[ -T \fItexfile\fR ]
+-[ -I \fImacrofile\fR ]
+-[ -V ]
++[ \-L \fIlanguage\fR ]
++[ \-M \fImakefile\fR ]
++[ \-T \fItexfile\fR ]
++[ \-I \fImacrofile\fR ]
++[ \-V ]
+ [ \fIcontrol_specs\fR figfile ... ]
+ .SH DESCRIPTION
+ .I Transfig
+@@ -76,13 +76,13 @@
+ is the default.
+ .PP
+ The names of the makefile and TeX macro file can be set with the
+--M and -T options.
++\-M and \-T options.
+ The default names are "Makefile" and "transfig.tex", respectively.
+ If there is already an existing \fImakefile\fR in the directory, transfig
+ first renames it to \fImakefile~\fR. The same holds for any existing TeX macro file.
+-If the -I option is specified, then a command to read in \fImacrofile\fR is
++If the \-I option is specified, then a command to read in \fImacrofile\fR is
+ inserted into the TeX macro file.
+-If the -V option is specified, the program version number is printed only.
++If the \-V option is specified, the program version number is printed only.
+ .PP
+ Control specifiers are
+ .TP
diff --git a/media-gfx/transfig/files/transfig-3.2.5e-typos.patch b/media-gfx/transfig/files/transfig-3.2.5e-typos.patch
new file mode 100644
index 000000000000..0a0e5cd60b1e
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-3.2.5e-typos.patch
@@ -0,0 +1,25 @@
+Author: Roland Rosenfeld <roland@debian.org>
+Description: Fix some spelling errors in the binaries
+
+--- a/fig2dev/dev/readgif.c
++++ b/fig2dev/dev/readgif.c
+@@ -151,7 +151,7 @@
+
+ if (c == '!') { /* Extension */
+ if (! ReadOK(file,&c,1))
+- fprintf(stderr,"GIF read error on extention function code\n");
++ fprintf(stderr,"GIF read error on extension function code\n");
+ (void) DoGIFextension(file, c);
+ continue;
+ }
+--- a/fig2dev/read.c
++++ b/fig2dev/read.c
+@@ -109,7 +109,7 @@
+ /* Format error; relevant error message is already delivered */
+ }
+ else
+- put_msg("File \"%s\" is not accessable; %s", file, strerror(err));
++ put_msg("File \"%s\" is not accessible; %s", file, strerror(err));
+ }
+
+ /**********************************************************
diff --git a/media-gfx/transfig/files/transfig-ru_RU.CP1251.ps b/media-gfx/transfig/files/transfig-ru_RU.CP1251.ps
new file mode 100644
index 000000000000..f8c142a642b2
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-ru_RU.CP1251.ps
@@ -0,0 +1,298 @@
+%% Begining of ru_RU.CP1251.ps
+%%
+%% Author: Yura Zotov <yz@altlinux.ru>
+%% based on cs_CZ.ps made by Radim Gelner <radim.gelner@suse.cz>
+%%
+%%BeginResource: encoding ISOLatin2Encoding
+
+/isol2vec [
+10#0 /.notdef
+10#1 /.notdef
+10#2 /.notdef
+10#3 /.notdef
+10#4 /.notdef
+10#5 /.notdef
+10#6 /.notdef
+10#7 /.notdef
+10#8 /.notdef
+10#9 /.notdef
+10#10 /.notdef
+10#11 /.notdef
+10#12 /.notdef
+10#13 /.notdef
+10#14 /.notdef
+10#15 /.notdef
+10#16 /.notdef
+10#17 /.notdef
+10#18 /.notdef
+10#19 /.notdef
+10#20 /.notdef
+10#21 /.notdef
+10#22 /.notdef
+10#23 /.notdef
+10#24 /.notdef
+10#25 /.notdef
+10#26 /.notdef
+10#27 /.notdef
+10#28 /.notdef
+10#29 /.notdef
+10#30 /.notdef
+10#31 /.notdef
+10#32 /space
+10#33 /exclam
+10#34 /quotedbl
+10#35 /numbersign
+10#36 /dollar
+10#37 /percent
+10#38 /ampersand
+10#39 /quoteright
+10#40 /parenleft
+10#41 /parenright
+10#42 /asterisk
+10#43 /plus
+10#44 /comma
+10#45 /hyphen
+10#46 /period
+10#47 /slash
+10#48 /zero
+10#49 /one
+10#50 /two
+10#51 /three
+10#52 /four
+10#53 /five
+10#54 /six
+10#55 /seven
+10#56 /eight
+10#57 /nine
+10#58 /colon
+10#59 /semicolon
+10#60 /less
+10#61 /equal
+10#62 /greater
+10#63 /question
+10#64 /at
+10#65 /A
+10#66 /B
+10#67 /C
+10#68 /D
+10#69 /E
+10#70 /F
+10#71 /G
+10#72 /H
+10#73 /I
+10#74 /J
+10#75 /K
+10#76 /L
+10#77 /M
+10#78 /N
+10#79 /O
+10#80 /P
+10#81 /Q
+10#82 /R
+10#83 /S
+10#84 /T
+10#85 /U
+10#86 /V
+10#87 /W
+10#88 /X
+10#89 /Y
+10#90 /Z
+10#91 /bracketleft
+10#92 /backslash
+10#93 /bracketright
+10#94 /asciicircum
+10#95 /underscore
+10#96 /quoteleft
+10#97 /a
+10#98 /b
+10#99 /c
+10#100 /d
+10#101 /e
+10#102 /f
+10#103 /g
+10#104 /h
+10#105 /i
+10#106 /j
+10#107 /k
+10#108 /l
+10#109 /m
+10#110 /n
+10#111 /o
+10#112 /p
+10#113 /q
+10#114 /r
+10#115 /s
+10#116 /t
+10#117 /u
+10#118 /v
+10#119 /w
+10#120 /x
+10#121 /y
+10#122 /z
+10#123 /braceleft
+10#124 /bar
+10#125 /braceright
+10#126 /asciitilde
+10#127 /.notdef
+10#128 /afii10051
+10#129 /afii10052
+10#130 /quotesinglbase
+10#131 /afii10100
+10#132 /quotedblbase
+10#133 /ellipsis
+10#134 /dagger
+10#135 /daggerdbl
+10#136 /Euro
+10#137 /perthousand
+10#138 /afii10058
+10#139 /guilsinglleft
+10#140 /afii10059
+10#141 /afii10061
+10#142 /afii10060
+10#143 /afii10145
+10#144 /afii10099
+10#145 /quoteleft
+10#146 /quoteright
+10#147 /quotedblleft
+10#148 /quotedblright
+10#149 /bullet
+10#150 /endash
+10#151 /emdash
+10#152 /tilde
+10#153 /trademark
+10#154 /afii10106
+10#155 /guilsinglright
+10#156 /afii10107
+10#157 /afii10109
+10#158 /afii10108
+10#159 /afii10193
+10#160 /.notdef
+10#161 /afii10062
+10#162 /afii10110
+10#163 /afii10057
+10#164 /currency
+10#165 /afii10050
+10#166 /brokenbar
+10#167 /section
+10#168 /afii10023
+10#169 /copyright
+10#170 /afii10053
+10#171 /guillemotleft
+10#172 /logicalnot
+10#173 /hyphen
+10#174 /registered
+10#175 /afii10056
+10#176 /degree
+10#177 /plusminus
+10#178 /afii10055
+10#179 /afii10103
+10#180 /afii10098
+10#181 /mu
+10#182 /paragraph
+10#183 /periodcentered
+10#184 /afii10071
+10#185 /afii61352
+10#186 /afii10101
+10#187 /guillemotright
+10#188 /afii10105
+10#189 /afii10054
+10#190 /afii10102
+10#191 /afii10104
+10#192 /afii10017
+10#193 /afii10018
+10#194 /afii10019
+10#195 /afii10020
+10#196 /afii10021
+10#197 /afii10022
+10#198 /afii10024
+10#199 /afii10025
+10#200 /afii10026
+10#201 /afii10027
+10#202 /afii10028
+10#203 /afii10029
+10#204 /afii10030
+10#205 /afii10031
+10#206 /afii10032
+10#207 /afii10033
+10#208 /afii10034
+10#209 /afii10035
+10#210 /afii10036
+10#211 /afii10037
+10#212 /afii10038
+10#213 /afii10039
+10#214 /afii10040
+10#215 /afii10041
+10#216 /afii10042
+10#217 /afii10043
+10#218 /afii10044
+10#219 /afii10045
+10#220 /afii10046
+10#221 /afii10047
+10#222 /afii10048
+10#223 /afii10049
+10#224 /afii10065
+10#225 /afii10066
+10#226 /afii10067
+10#227 /afii10068
+10#228 /afii10069
+10#229 /afii10070
+10#230 /afii10072
+10#231 /afii10073
+10#232 /afii10074
+10#233 /afii10075
+10#234 /afii10076
+10#235 /afii10077
+10#236 /afii10078
+10#237 /afii10079
+10#238 /afii10080
+10#239 /afii10081
+10#240 /afii10082
+10#241 /afii10083
+10#242 /afii10084
+10#243 /afii10085
+10#244 /afii10086
+10#245 /afii10087
+10#246 /afii10088
+10#247 /afii10089
+10#248 /afii10090
+10#249 /afii10091
+10#250 /afii10092
+10#251 /afii10093
+10#252 /afii10094
+10#253 /afii10095
+10#254 /afii10096
+10#255 /afii10097] def
+%%EndResource
+/Times-Roman /Times-Roman-iso isol2vec ReEncode
+/Times-Italic /Times-Italic-iso isol2vec ReEncode
+/Times-Bold /Times-Bold-iso isol2vec ReEncode
+/Times-BoldItalic /Times-BoldItalic-iso isol2vec ReEncode
+/AvantGarde-Book /AvantGarde-Book-iso isol2vec ReEncode
+/AvantGarde-BookOblique /AvantGarde-BookOblique-iso isol2vec ReEncode
+/AvantGarde-Demi /AvantGarde-Demi-iso isol2vec ReEncode
+/AvantGarde-DemiOblique /AvantGarde-DemiOblique-iso isol2vec ReEncode
+/Bookman-Light /Bookman-Light-iso isol2vec ReEncode
+/Bookman-LightItalic /Bookman-LightItalic-iso isol2vec ReEncode
+/Bookman-Demi /Bookman-Demi-iso isol2vec ReEncode
+/Bookman-DemiItalic /Bookman-DemiItalic-iso isol2vec ReEncode
+/Courier /Courier-iso isol2vec ReEncode
+/Courier-Oblique /Courier-Oblique-iso isol2vec ReEncode
+/Courier-Bold /Courier-Bold-iso isol2vec ReEncode
+/Courier-BoldOblique /Courier-BoldOblique-iso isol2vec ReEncode
+/Helvetica /Helvetica-iso isol2vec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique-iso isol2vec ReEncode
+/Helvetica-Bold /Helvetica-Bold-iso isol2vec ReEncode
+/Helvetica-BoldOblique /Helvetica-BoldOblique-iso isol2vec ReEncode
+/Helvetica-Narrow /Helvetica-Narrow-iso isol2vec ReEncode
+/Helvetica-Narrow-Oblique /Helvetica-Narrow-Oblique-iso isol2vec ReEncode
+/Helvetica-Narrow-Bold /Helvetica-Narrow-Bold-iso isol2vec ReEncode
+/Helvetica-Narrow-BoldOblique /Helvetica-Narrow-BoldOblique-iso isol2vec ReEncode
+/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman-iso isol2vec ReEncode
+/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic-iso isol2vec ReEncode
+/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold-iso isol2vec ReEncode
+/NewCenturySchlbk-BoldItalic /NewCenturySchlbk-BoldItalic-iso isol2vec ReEncode
+/Palatino-Roman /Palatino-Roman-iso isol2vec ReEncode
+/Palatino-Italic /Palatino-Italic-iso isol2vec ReEncode
+/Palatino-Bold /Palatino-Bold-iso isol2vec ReEncode
+/Palatino-BoldItalic /Palatino-BoldItalic-iso isol2vec ReEncode
+%% End of ru_RU.CP1251.ps
diff --git a/media-gfx/transfig/files/transfig-ru_RU.KOI8-R.ps b/media-gfx/transfig/files/transfig-ru_RU.KOI8-R.ps
new file mode 100644
index 000000000000..1bda0b26a602
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-ru_RU.KOI8-R.ps
@@ -0,0 +1,298 @@
+%% Begining of ru_RU.KOI8-R.ps
+%%
+%% Author: Yura Zotov <yz@altlinux.ru>
+%% based on cs_CZ.ps made by Radim Gelner <radim.gelner@suse.cz>
+%%
+%%BeginResource: encoding ISOLatin2Encoding
+
+/isol2vec [
+10#0 /.notdef
+10#1 /.notdef
+10#2 /.notdef
+10#3 /.notdef
+10#4 /.notdef
+10#5 /.notdef
+10#6 /.notdef
+10#7 /.notdef
+10#8 /.notdef
+10#9 /.notdef
+10#10 /.notdef
+10#11 /.notdef
+10#12 /.notdef
+10#13 /.notdef
+10#14 /.notdef
+10#15 /.notdef
+10#16 /.notdef
+10#17 /.notdef
+10#18 /.notdef
+10#19 /.notdef
+10#20 /.notdef
+10#21 /.notdef
+10#22 /.notdef
+10#23 /.notdef
+10#24 /.notdef
+10#25 /.notdef
+10#26 /.notdef
+10#27 /.notdef
+10#28 /.notdef
+10#29 /.notdef
+10#30 /.notdef
+10#31 /.notdef
+10#32 /space
+10#33 /exclam
+10#34 /quotedbl
+10#35 /numbersign
+10#36 /dollar
+10#37 /percent
+10#38 /ampersand
+10#39 /quotesingle
+10#40 /parenleft
+10#41 /parenright
+10#42 /asterisk
+10#43 /plus
+10#44 /comma
+10#45 /hyphen
+10#46 /period
+10#47 /slash
+10#48 /zero
+10#49 /one
+10#50 /two
+10#51 /three
+10#52 /four
+10#53 /five
+10#54 /six
+10#55 /seven
+10#56 /eight
+10#57 /nine
+10#58 /colon
+10#59 /semicolon
+10#60 /less
+10#61 /equal
+10#62 /greater
+10#63 /question
+10#64 /at
+10#65 /A
+10#66 /B
+10#67 /C
+10#68 /D
+10#69 /E
+10#70 /F
+10#71 /G
+10#72 /H
+10#73 /I
+10#74 /J
+10#75 /K
+10#76 /L
+10#77 /M
+10#78 /N
+10#79 /O
+10#80 /P
+10#81 /Q
+10#82 /R
+10#83 /S
+10#84 /T
+10#85 /U
+10#86 /V
+10#87 /W
+10#88 /X
+10#89 /Y
+10#90 /Z
+10#91 /bracketleft
+10#92 /backslash
+10#93 /bracketright
+10#94 /asciicircum
+10#95 /underscore
+10#96 /grave
+10#97 /a
+10#98 /b
+10#99 /c
+10#100 /d
+10#101 /e
+10#102 /f
+10#103 /g
+10#104 /h
+10#105 /i
+10#106 /j
+10#107 /k
+10#108 /l
+10#109 /m
+10#110 /n
+10#111 /o
+10#112 /p
+10#113 /q
+10#114 /r
+10#115 /s
+10#116 /t
+10#117 /u
+10#118 /v
+10#119 /w
+10#120 /x
+10#121 /y
+10#122 /z
+10#123 /braceleft
+10#124 /bar
+10#125 /braceright
+10#126 /asciitilde
+10#127 /.notdef
+10#128 /SF100000
+10#129 /SF110000
+10#130 /SF010000
+10#131 /SF030000
+10#132 /SF020000
+10#133 /SF040000
+10#134 /SF080000
+10#135 /SF090000
+10#136 /SF060000
+10#137 /SF070000
+10#138 /SF050000
+10#139 /upblock
+10#140 /dnblock
+10#141 /block
+10#142 /lfblock
+10#143 /rtblock
+10#144 /ltshade
+10#145 /shade
+10#146 /dkshade
+10#147 /integraltp
+10#148 /filledbox
+10#149 /uni2219
+10#150 /radical
+10#151 /approxequal
+10#152 /lessequal
+10#153 /greaterequal
+10#154 /uni00A0
+10#155 /integralbt
+10#156 /degree
+10#157 /twosuperior
+10#158 /periodcentered
+10#159 /divide
+10#160 /SF430000
+10#161 /SF240000
+10#162 /SF510000
+10#163 /afii10071
+10#164 /SF520000
+10#165 /SF390000
+10#166 /SF220000
+10#167 /SF210000
+10#168 /SF250000
+10#169 /SF500000
+10#170 /SF490000
+10#171 /SF380000
+10#172 /SF280000
+10#173 /SF270000
+10#174 /SF260000
+10#175 /SF360000
+10#176 /SF370000
+10#177 /SF420000
+10#178 /SF190000
+10#179 /afii10023
+10#180 /SF200000
+10#181 /SF230000
+10#182 /SF470000
+10#183 /SF480000
+10#184 /SF410000
+10#185 /SF450000
+10#186 /SF460000
+10#187 /SF400000
+10#188 /SF540000
+10#189 /SF530000
+10#190 /SF440000
+10#191 /copyright
+10#192 /afii10096
+10#193 /afii10065
+10#194 /afii10066
+10#195 /afii10088
+10#196 /afii10069
+10#197 /afii10070
+10#198 /afii10086
+10#199 /afii10068
+10#200 /afii10087
+10#201 /afii10074
+10#202 /afii10075
+10#203 /afii10076
+10#204 /afii10077
+10#205 /afii10078
+10#206 /afii10079
+10#207 /afii10080
+10#208 /afii10081
+10#209 /afii10097
+10#210 /afii10082
+10#211 /afii10083
+10#212 /afii10084
+10#213 /afii10085
+10#214 /afii10072
+10#215 /afii10067
+10#216 /afii10094
+10#217 /afii10093
+10#218 /afii10073
+10#219 /afii10090
+10#220 /afii10095
+10#221 /afii10091
+10#222 /afii10089
+10#223 /afii10092
+10#224 /afii10048
+10#225 /afii10017
+10#226 /afii10018
+10#227 /afii10040
+10#228 /afii10021
+10#229 /afii10022
+10#230 /afii10038
+10#231 /afii10020
+10#232 /afii10039
+10#233 /afii10026
+10#234 /afii10027
+10#235 /afii10028
+10#236 /afii10029
+10#237 /afii10030
+10#238 /afii10031
+10#239 /afii10032
+10#240 /afii10033
+10#241 /afii10049
+10#242 /afii10034
+10#243 /afii10035
+10#244 /afii10036
+10#245 /afii10037
+10#246 /afii10024
+10#247 /afii10019
+10#248 /afii10046
+10#249 /afii10045
+10#250 /afii10025
+10#251 /afii10042
+10#252 /afii10047
+10#253 /afii10043
+10#254 /afii10041
+10#255 /afii10044] def
+%%EndResource
+/Times-Roman /Times-Roman-iso isol2vec ReEncode
+/Times-Italic /Times-Italic-iso isol2vec ReEncode
+/Times-Bold /Times-Bold-iso isol2vec ReEncode
+/Times-BoldItalic /Times-BoldItalic-iso isol2vec ReEncode
+/AvantGarde-Book /AvantGarde-Book-iso isol2vec ReEncode
+/AvantGarde-BookOblique /AvantGarde-BookOblique-iso isol2vec ReEncode
+/AvantGarde-Demi /AvantGarde-Demi-iso isol2vec ReEncode
+/AvantGarde-DemiOblique /AvantGarde-DemiOblique-iso isol2vec ReEncode
+/Bookman-Light /Bookman-Light-iso isol2vec ReEncode
+/Bookman-LightItalic /Bookman-LightItalic-iso isol2vec ReEncode
+/Bookman-Demi /Bookman-Demi-iso isol2vec ReEncode
+/Bookman-DemiItalic /Bookman-DemiItalic-iso isol2vec ReEncode
+/Courier /Courier-iso isol2vec ReEncode
+/Courier-Oblique /Courier-Oblique-iso isol2vec ReEncode
+/Courier-Bold /Courier-Bold-iso isol2vec ReEncode
+/Courier-BoldOblique /Courier-BoldOblique-iso isol2vec ReEncode
+/Helvetica /Helvetica-iso isol2vec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique-iso isol2vec ReEncode
+/Helvetica-Bold /Helvetica-Bold-iso isol2vec ReEncode
+/Helvetica-BoldOblique /Helvetica-BoldOblique-iso isol2vec ReEncode
+/Helvetica-Narrow /Helvetica-Narrow-iso isol2vec ReEncode
+/Helvetica-Narrow-Oblique /Helvetica-Narrow-Oblique-iso isol2vec ReEncode
+/Helvetica-Narrow-Bold /Helvetica-Narrow-Bold-iso isol2vec ReEncode
+/Helvetica-Narrow-BoldOblique /Helvetica-Narrow-BoldOblique-iso isol2vec ReEncode
+/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman-iso isol2vec ReEncode
+/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic-iso isol2vec ReEncode
+/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold-iso isol2vec ReEncode
+/NewCenturySchlbk-BoldItalic /NewCenturySchlbk-BoldItalic-iso isol2vec ReEncode
+/Palatino-Roman /Palatino-Roman-iso isol2vec ReEncode
+/Palatino-Italic /Palatino-Italic-iso isol2vec ReEncode
+/Palatino-Bold /Palatino-Bold-iso isol2vec ReEncode
+/Palatino-BoldItalic /Palatino-BoldItalic-iso isol2vec ReEncode
+%% End of ru_RU.KOI8-R.ps
diff --git a/media-gfx/transfig/files/transfig-uk_UA.KOI8-U.ps b/media-gfx/transfig/files/transfig-uk_UA.KOI8-U.ps
new file mode 100644
index 000000000000..8803c72e4697
--- /dev/null
+++ b/media-gfx/transfig/files/transfig-uk_UA.KOI8-U.ps
@@ -0,0 +1,298 @@
+%% Begining of uk_UA.KOI8-U.ps
+%%
+%% Author: Yura Zotov <yz@altlinux.ru>
+%% based on cs_CZ.ps made by Radim Gelner <radim.gelner@suse.cz>
+%%
+%%BeginResource: encoding ISOLatin2Encoding
+
+/isol2vec [
+10#0 /.notdef
+10#1 /.notdef
+10#2 /.notdef
+10#3 /.notdef
+10#4 /.notdef
+10#5 /.notdef
+10#6 /.notdef
+10#7 /.notdef
+10#8 /.notdef
+10#9 /.notdef
+10#10 /.notdef
+10#11 /.notdef
+10#12 /.notdef
+10#13 /.notdef
+10#14 /.notdef
+10#15 /.notdef
+10#16 /.notdef
+10#17 /.notdef
+10#18 /.notdef
+10#19 /.notdef
+10#20 /.notdef
+10#21 /.notdef
+10#22 /.notdef
+10#23 /.notdef
+10#24 /.notdef
+10#25 /.notdef
+10#26 /.notdef
+10#27 /.notdef
+10#28 /.notdef
+10#29 /.notdef
+10#30 /.notdef
+10#31 /.notdef
+10#32 /space
+10#33 /exclam
+10#34 /quotedbl
+10#35 /numbersign
+10#36 /dollar
+10#37 /percent
+10#38 /ampersand
+10#39 /quotesingle
+10#40 /parenleft
+10#41 /parenright
+10#42 /asterisk
+10#43 /plus
+10#44 /comma
+10#45 /hyphen
+10#46 /period
+10#47 /slash
+10#48 /zero
+10#49 /one
+10#50 /two
+10#51 /three
+10#52 /four
+10#53 /five
+10#54 /six
+10#55 /seven
+10#56 /eight
+10#57 /nine
+10#58 /colon
+10#59 /semicolon
+10#60 /less
+10#61 /equal
+10#62 /greater
+10#63 /question
+10#64 /at
+10#65 /A
+10#66 /B
+10#67 /C
+10#68 /D
+10#69 /E
+10#70 /F
+10#71 /G
+10#72 /H
+10#73 /I
+10#74 /J
+10#75 /K
+10#76 /L
+10#77 /M
+10#78 /N
+10#79 /O
+10#80 /P
+10#81 /Q
+10#82 /R
+10#83 /S
+10#84 /T
+10#85 /U
+10#86 /V
+10#87 /W
+10#88 /X
+10#89 /Y
+10#90 /Z
+10#91 /bracketleft
+10#92 /backslash
+10#93 /bracketright
+10#94 /asciicircum
+10#95 /underscore
+10#96 /grave
+10#97 /a
+10#98 /b
+10#99 /c
+10#100 /d
+10#101 /e
+10#102 /f
+10#103 /g
+10#104 /h
+10#105 /i
+10#106 /j
+10#107 /k
+10#108 /l
+10#109 /m
+10#110 /n
+10#111 /o
+10#112 /p
+10#113 /q
+10#114 /r
+10#115 /s
+10#116 /t
+10#117 /u
+10#118 /v
+10#119 /w
+10#120 /x
+10#121 /y
+10#122 /z
+10#123 /braceleft
+10#124 /bar
+10#125 /braceright
+10#126 /asciitilde
+10#127 /.notdef
+10#128 /SF100000
+10#129 /SF110000
+10#130 /SF010000
+10#131 /SF030000
+10#132 /SF020000
+10#133 /SF040000
+10#134 /SF080000
+10#135 /SF090000
+10#136 /SF060000
+10#137 /SF070000
+10#138 /SF050000
+10#139 /upblock
+10#140 /dnblock
+10#141 /block
+10#142 /lfblock
+10#143 /rtblock
+10#144 /ltshade
+10#145 /shade
+10#146 /dkshade
+10#147 /integraltp
+10#148 /filledbox
+10#149 /uni2219
+10#150 /radical
+10#151 /approxequal
+10#152 /lessequal
+10#153 /greaterequal
+10#154 /uni00A0
+10#155 /integralbt
+10#156 /degree
+10#157 /twosuperior
+10#158 /periodcentered
+10#159 /divide
+10#160 /SF430000
+10#161 /SF240000
+10#162 /SF510000
+10#163 /afii10071
+10#164 /afii10101
+10#165 /SF390000
+10#166 /afii10103
+10#167 /afii10104
+10#168 /SF250000
+10#169 /SF500000
+10#170 /SF490000
+10#171 /SF380000
+10#172 /SF280000
+10#173 /afii10098
+10#174 /SF260000
+10#175 /SF360000
+10#176 /SF370000
+10#177 /SF420000
+10#178 /SF190000
+10#179 /afii10023
+10#180 /afii10053
+10#181 /SF230000
+10#182 /afii10055
+10#183 /afii10056
+10#184 /SF410000
+10#185 /SF450000
+10#186 /SF460000
+10#187 /SF400000
+10#188 /SF540000
+10#189 /afii10050
+10#190 /SF440000
+10#191 /copyright
+10#192 /afii10096
+10#193 /afii10065
+10#194 /afii10066
+10#195 /afii10088
+10#196 /afii10069
+10#197 /afii10070
+10#198 /afii10086
+10#199 /afii10068
+10#200 /afii10087
+10#201 /afii10074
+10#202 /afii10075
+10#203 /afii10076
+10#204 /afii10077
+10#205 /afii10078
+10#206 /afii10079
+10#207 /afii10080
+10#208 /afii10081
+10#209 /afii10097
+10#210 /afii10082
+10#211 /afii10083
+10#212 /afii10084
+10#213 /afii10085
+10#214 /afii10072
+10#215 /afii10067
+10#216 /afii10094
+10#217 /afii10093
+10#218 /afii10073
+10#219 /afii10090
+10#220 /afii10095
+10#221 /afii10091
+10#222 /afii10089
+10#223 /afii10092
+10#224 /afii10048
+10#225 /afii10017
+10#226 /afii10018
+10#227 /afii10040
+10#228 /afii10021
+10#229 /afii10022
+10#230 /afii10038
+10#231 /afii10020
+10#232 /afii10039
+10#233 /afii10026
+10#234 /afii10027
+10#235 /afii10028
+10#236 /afii10029
+10#237 /afii10030
+10#238 /afii10031
+10#239 /afii10032
+10#240 /afii10033
+10#241 /afii10049
+10#242 /afii10034
+10#243 /afii10035
+10#244 /afii10036
+10#245 /afii10037
+10#246 /afii10024
+10#247 /afii10019
+10#248 /afii10046
+10#249 /afii10045
+10#250 /afii10025
+10#251 /afii10042
+10#252 /afii10047
+10#253 /afii10043
+10#254 /afii10041
+10#255 /afii10044] def
+%%EndResource
+/Times-Roman /Times-Roman-iso isol2vec ReEncode
+/Times-Italic /Times-Italic-iso isol2vec ReEncode
+/Times-Bold /Times-Bold-iso isol2vec ReEncode
+/Times-BoldItalic /Times-BoldItalic-iso isol2vec ReEncode
+/AvantGarde-Book /AvantGarde-Book-iso isol2vec ReEncode
+/AvantGarde-BookOblique /AvantGarde-BookOblique-iso isol2vec ReEncode
+/AvantGarde-Demi /AvantGarde-Demi-iso isol2vec ReEncode
+/AvantGarde-DemiOblique /AvantGarde-DemiOblique-iso isol2vec ReEncode
+/Bookman-Light /Bookman-Light-iso isol2vec ReEncode
+/Bookman-LightItalic /Bookman-LightItalic-iso isol2vec ReEncode
+/Bookman-Demi /Bookman-Demi-iso isol2vec ReEncode
+/Bookman-DemiItalic /Bookman-DemiItalic-iso isol2vec ReEncode
+/Courier /Courier-iso isol2vec ReEncode
+/Courier-Oblique /Courier-Oblique-iso isol2vec ReEncode
+/Courier-Bold /Courier-Bold-iso isol2vec ReEncode
+/Courier-BoldOblique /Courier-BoldOblique-iso isol2vec ReEncode
+/Helvetica /Helvetica-iso isol2vec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique-iso isol2vec ReEncode
+/Helvetica-Bold /Helvetica-Bold-iso isol2vec ReEncode
+/Helvetica-BoldOblique /Helvetica-BoldOblique-iso isol2vec ReEncode
+/Helvetica-Narrow /Helvetica-Narrow-iso isol2vec ReEncode
+/Helvetica-Narrow-Oblique /Helvetica-Narrow-Oblique-iso isol2vec ReEncode
+/Helvetica-Narrow-Bold /Helvetica-Narrow-Bold-iso isol2vec ReEncode
+/Helvetica-Narrow-BoldOblique /Helvetica-Narrow-BoldOblique-iso isol2vec ReEncode
+/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman-iso isol2vec ReEncode
+/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic-iso isol2vec ReEncode
+/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold-iso isol2vec ReEncode
+/NewCenturySchlbk-BoldItalic /NewCenturySchlbk-BoldItalic-iso isol2vec ReEncode
+/Palatino-Roman /Palatino-Roman-iso isol2vec ReEncode
+/Palatino-Italic /Palatino-Italic-iso isol2vec ReEncode
+/Palatino-Bold /Palatino-Bold-iso isol2vec ReEncode
+/Palatino-BoldItalic /Palatino-BoldItalic-iso isol2vec ReEncode
+%% End of uk_UA.KOI8-U.ps
diff --git a/media-gfx/transfig/metadata.xml b/media-gfx/transfig/metadata.xml
new file mode 100644
index 000000000000..327363b300a4
--- /dev/null
+++ b/media-gfx/transfig/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <remote-id type="sourceforge">mcj</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-gfx/transfig/transfig-3.2.5d-r1.ebuild b/media-gfx/transfig/transfig-3.2.5d-r1.ebuild
new file mode 100644
index 000000000000..aee8e3b95999
--- /dev/null
+++ b/media-gfx/transfig/transfig-3.2.5d-r1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit toolchain-funcs eutils flag-o-matic multilib
+
+MY_P=${PN}.${PV}
+
+DESCRIPTION="A set of tools for creating TeX documents with graphics"
+HOMEPAGE="http://www.xfig.org/"
+SRC_URI="mirror://sourceforge/mcj/${MY_P}.tar.gz
+ mirror://gentoo/fig2mpdf-1.1.2.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="x11-libs/libXpm
+ virtual/jpeg
+ media-libs/libpng
+ x11-apps/rgb"
+DEPEND="${RDEPEND}
+ x11-misc/imake
+ app-text/rman"
+
+S=${WORKDIR}/${MY_P}
+
+sed_Imakefile() {
+ # see fig2dev/Imakefile for details
+ vars2subs="BINDIR=${EPREFIX}/usr/bin
+ MANDIR=${EPREFIX}/usr/share/man/man\$\(MANSUFFIX\)
+ XFIGLIBDIR=${EPREFIX}/usr/share/xfig
+ PNGINC=-I${EPREFIX}/usr/include/X11
+ XPMINC=-I${EPREFIX}/usr/include/X11
+ USEINLINE=-DUSE_INLINE
+ RGB=${EPREFIX}/usr/share/X11/rgb.txt
+ FIG2DEV_LIBDIR=${EPREFIX}/usr/share/fig2dev"
+
+ for variable in ${vars2subs} ; do
+ varname=${variable%%=*}
+ varval=${variable##*=}
+ sed -i "s:^\(XCOMM\)*[[:space:]]*${varname}[[:space:]]*=.*$:${varname} = ${varval}:" "$@"
+ done
+}
+
+src_prepare() {
+ find . -type f -exec chmod a-x '{}' \;
+ find . -name Makefile -delete
+ epatch "${FILESDIR}"/${P}-fig2mpdf-r1.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5c-maxfontsize.patch
+ epatch "${FILESDIR}"/${P}-leadspace.patch
+ epatch "${FILESDIR}"/${P}-precision.patch
+ epatch "${FILESDIR}"/${P}-MAXWIDTH.patch
+ epatch "${FILESDIR}"/${P}-libpng-1.5.patch #356751
+ epatch "${FILESDIR}"/${PN}-3.2.5-solaris.patch
+
+ sed -e 's:-L$(ZLIBDIR) -lz::' \
+ -e 's: -lX11::' \
+ -i fig2dev/Imakefile || die
+ sed_Imakefile fig2dev/Imakefile fig2dev/dev/Imakefile
+}
+
+src_compile() {
+ xmkmf || die "xmkmf failed"
+ emake Makefiles
+
+ emake CC="$(tc-getCC)" LOCAL_LDFLAGS="${LDFLAGS}" CDEBUGFLAGS="${CFLAGS}" \
+ USRLIBDIR="${EPREFIX}/usr/$(get_libdir)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" \
+ ${transfig_conf} install install.man
+
+ dobin "${WORKDIR}/fig2mpdf/fig2mpdf"
+ doman "${WORKDIR}/fig2mpdf/fig2mpdf.1"
+
+ insinto /usr/share/fig2dev/
+ newins "${FILESDIR}/transfig-ru_RU.CP1251.ps" ru_RU.CP1251.ps
+ newins "${FILESDIR}/transfig-ru_RU.KOI8-R.ps" ru_RU.KOI8-R.ps
+ newins "${FILESDIR}/transfig-uk_UA.KOI8-U.ps" uk_UA.KOI8-U.ps
+
+ dohtml "${WORKDIR}/fig2mpdf/doc/"* || die
+
+ mv "${ED}"/usr/bin/fig2ps2tex{.sh,} || die #338295
+
+ dodoc README CHANGES LATEX.AND.XFIG NOTES
+}
+
+pkg_postinst() {
+ elog "Note, that defaults are changed and now if you don't want to ship"
+ elog "personal information into output files, use fig2dev with -a option."
+}
diff --git a/media-gfx/transfig/transfig-3.2.5e.ebuild b/media-gfx/transfig/transfig-3.2.5e.ebuild
new file mode 100644
index 000000000000..f82b26b8a09e
--- /dev/null
+++ b/media-gfx/transfig/transfig-3.2.5e.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit toolchain-funcs eutils flag-o-matic multilib
+
+MY_P=${PN}.${PV}
+
+DESCRIPTION="A set of tools for creating TeX documents with graphics"
+HOMEPAGE="http://www.xfig.org/"
+SRC_URI="mirror://sourceforge/mcj/${MY_P}.tar.gz
+ mirror://gentoo/fig2mpdf-1.1.2.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="x11-libs/libXpm
+ virtual/jpeg
+ media-libs/libpng
+ x11-apps/rgb"
+DEPEND="${RDEPEND}
+ x11-misc/imake
+ app-text/rman"
+
+S=${WORKDIR}/${MY_P}
+
+sed_Imakefile() {
+ # see fig2dev/Imakefile for details
+ vars2subs="BINDIR=${EPREFIX}/usr/bin
+ MANDIR=${EPREFIX}/usr/share/man/man\$\(MANSUFFIX\)
+ XFIGLIBDIR=${EPREFIX}/usr/share/xfig
+ PNGINC=-I${EPREFIX}/usr/include/X11
+ XPMINC=-I${EPREFIX}/usr/include/X11
+ USEINLINE=-DUSE_INLINE
+ RGB=${EPREFIX}/usr/share/X11/rgb.txt
+ FIG2DEV_LIBDIR=${EPREFIX}/usr/share/fig2dev"
+
+ for variable in ${vars2subs} ; do
+ varname=${variable%%=*}
+ varval=${variable##*=}
+ sed -i "s:^\(XCOMM\)*[[:space:]]*${varname}[[:space:]]*=.*$:${varname} = ${varval}:" "$@"
+ done
+}
+
+src_prepare() {
+ find . -type f -exec chmod a-x '{}' \;
+ find . -name Makefile -delete
+ epatch "${FILESDIR}"/${PN}-3.2.5d-fig2mpdf-r1.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5c-maxfontsize.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5-solaris.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5e-typos.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5e-man-hyphen.patch
+ epatch "${FILESDIR}"/${PN}-3.2.5e-fprintf_format_warnings.patch
+
+ sed -e 's:-L$(ZLIBDIR) -lz::' \
+ -e 's: -lX11::' \
+ -i fig2dev/Imakefile || die
+ sed_Imakefile fig2dev/Imakefile fig2dev/dev/Imakefile
+}
+
+src_compile() {
+ xmkmf || die "xmkmf failed"
+ emake Makefiles
+
+ emake CC="$(tc-getCC)" LOCAL_LDFLAGS="${LDFLAGS}" CDEBUGFLAGS="${CFLAGS}" \
+ USRLIBDIR="${EPREFIX}/usr/$(get_libdir)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" \
+ ${transfig_conf} install install.man
+
+ dobin "${WORKDIR}/fig2mpdf/fig2mpdf"
+ doman "${WORKDIR}/fig2mpdf/fig2mpdf.1"
+
+ insinto /usr/share/fig2dev/
+ newins "${FILESDIR}/transfig-ru_RU.CP1251.ps" ru_RU.CP1251.ps
+ newins "${FILESDIR}/transfig-ru_RU.KOI8-R.ps" ru_RU.KOI8-R.ps
+ newins "${FILESDIR}/transfig-uk_UA.KOI8-U.ps" uk_UA.KOI8-U.ps
+
+ dohtml "${WORKDIR}/fig2mpdf/doc/"* || die
+
+ mv "${ED}"/usr/bin/fig2ps2tex{.sh,} || die #338295
+
+ dodoc README CHANGES LATEX.AND.XFIG NOTES
+}
+
+pkg_postinst() {
+ elog "Note, that defaults are changed and now if you don't want to ship"
+ elog "personal information into output files, use fig2dev with -a option."
+}