aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MOVED5
-rw-r--r--print/Makefile5
-rw-r--r--print/ghostscript7-commfont/Makefile41
-rw-r--r--print/ghostscript7-commfont/files/Makefile.in141
-rw-r--r--print/ghostscript7-commfont/files/pkg-message.in13
-rw-r--r--print/ghostscript7-commfont/files/template.cidfont.in10
-rw-r--r--print/ghostscript7-commfont/files/template.font.in12
-rw-r--r--print/ghostscript7-commfont/files/template.ttcidfont.in10
-rw-r--r--print/ghostscript7-commfont/pkg-descr2
-rw-r--r--print/ghostscript7-commfont/pkg-plist997
-rw-r--r--print/ghostscript7-jpnfont/Makefile26
-rw-r--r--print/ghostscript7-jpnfont/pkg-descr1
-rw-r--r--print/ghostscript7-korfont/Makefile26
-rw-r--r--print/ghostscript7-korfont/pkg-descr1
-rw-r--r--print/ghostscript7-nox11/Makefile8
-rw-r--r--print/ghostscript7/Makefile154
-rw-r--r--print/ghostscript7/Makefile.drivers777
-rw-r--r--print/ghostscript7/distinfo38
-rw-r--r--print/ghostscript7/files/Makefile.alps22
-rw-r--r--print/ghostscript7/files/Makefile.bj10v21
-rw-r--r--print/ghostscript7/files/Makefile.bjc25023
-rw-r--r--print/ghostscript7/files/Makefile.cdj88012
-rw-r--r--print/ghostscript7/files/Makefile.cdj97012
-rw-r--r--print/ghostscript7/files/Makefile.cpca12
-rw-r--r--print/ghostscript7/files/Makefile.dmprt28
-rw-r--r--print/ghostscript7/files/Makefile.drivers_post259
-rw-r--r--print/ghostscript7/files/Makefile.epag38
-rw-r--r--print/ghostscript7/files/Makefile.eplaser27
-rw-r--r--print/ghostscript7/files/Makefile.gdi18
-rw-r--r--print/ghostscript7/files/Makefile.gprint43
-rw-r--r--print/ghostscript7/files/Makefile.lex700019
-rw-r--r--print/ghostscript7/files/Makefile.lips28
-rw-r--r--print/ghostscript7/files/Makefile.lx500012
-rw-r--r--print/ghostscript7/files/Makefile.lxm320023
-rw-r--r--print/ghostscript7/files/Makefile.md2k24
-rw-r--r--print/ghostscript7/files/Makefile.mjc27
-rw-r--r--print/ghostscript7/files/Makefile.pcl339
-rw-r--r--print/ghostscript7/files/bjc250.contrib.mak31
-rw-r--r--print/ghostscript7/files/cdj850.contrib.mak21
-rw-r--r--print/ghostscript7/files/epag.contrib.mak8
-rw-r--r--print/ghostscript7/files/lex7000.contrib.mak21
-rw-r--r--print/ghostscript7/files/lqx70ch.upp26
-rw-r--r--print/ghostscript7/files/lqx70cl.upp26
-rw-r--r--print/ghostscript7/files/lqx70cm.upp25
-rw-r--r--print/ghostscript7/files/lx5000.contrib.mak11
-rw-r--r--print/ghostscript7/files/lxm3200.contrib.mak10
-rw-r--r--print/ghostscript7/files/patch-alps:gdevalps.mak25
-rw-r--r--print/ghostscript7/files/patch-eplaser:gdevescv.c84
-rw-r--r--print/ghostscript7/files/patch-eplaser:gdevesmv.c84
-rw-r--r--print/ghostscript7/files/patch-gdev10v:gdev10v.mak22
-rw-r--r--print/ghostscript7/files/patch-lib:gs_cidfn.ps51
-rw-r--r--print/ghostscript7/files/patch-lib:gs_init.ps27
-rw-r--r--print/ghostscript7/files/patch-lib:gs_res.ps13
-rw-r--r--print/ghostscript7/files/patch-lib:gs_setpd.ps98
-rw-r--r--print/ghostscript7/files/patch-lib:gs_statd.ps23
-rw-r--r--print/ghostscript7/files/patch-lib:gs_ttf.ps198
-rw-r--r--print/ghostscript7/files/patch-lib:pj-gs.sh.CAN-2004-096740
-rw-r--r--print/ghostscript7/files/patch-lib:ps2epsi.CAN-2004-096712
-rw-r--r--print/ghostscript7/files/patch-lib:ps2pdfwr173
-rw-r--r--print/ghostscript7/files/patch-lib:pv.sh.CAN-2004-096716
-rw-r--r--print/ghostscript7/files/patch-lib:sysvlp.sh.CAN-2004-096729
-rw-r--r--print/ghostscript7/files/patch-lips:gdevl4r.c97
-rw-r--r--print/ghostscript7/files/patch-lips:gdevl4v.c154
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlips.c18
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlips.h17
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlips.mak61
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlprn.h16
-rw-r--r--print/ghostscript7/files/patch-md2k:gdevmd2k.mak19
-rw-r--r--print/ghostscript7/files/patch-mjc:gdevmjc.c335
-rw-r--r--print/ghostscript7/files/patch-mjc:gdevmjc.mak43
-rw-r--r--print/ghostscript7/files/patch-pcl3-src-contrib.mak-7.00.add70
-rw-r--r--print/ghostscript7/files/patch-src-Makefile.in97
-rw-r--r--print/ghostscript7/files/patch-src-contrib.mak7
-rw-r--r--print/ghostscript7/files/patch-src-cpca_gdev.mak15
-rw-r--r--print/ghostscript7/files/patch-src-gdevijs.c659
-rw-r--r--print/ghostscript7/files/patch-src-gdevpng.c11
-rw-r--r--print/ghostscript7/files/patch-src-gsalloc.c11
-rw-r--r--print/ghostscript7/files/patch-src-gxclrast.c15
-rw-r--r--print/ghostscript7/files/patch-src-gxfixed.h46
-rw-r--r--print/ghostscript7/files/patch-src-ibnum.c49
-rw-r--r--print/ghostscript7/files/patch-src-ibnum.h11
-rw-r--r--print/ghostscript7/files/patch-src-icclib.mak11
-rw-r--r--print/ghostscript7/files/patch-src-idebug.c11
-rw-r--r--print/ghostscript7/files/patch-src-idparam.c21
-rw-r--r--print/ghostscript7/files/patch-src-ijs.mak20
-rw-r--r--print/ghostscript7/files/patch-src-int.mak24
-rw-r--r--print/ghostscript7/files/patch-src-iparam.c33
-rw-r--r--print/ghostscript7/files/patch-src-iref.h11
-rw-r--r--print/ghostscript7/files/patch-src-iscan.c11
-rw-r--r--print/ghostscript7/files/patch-src-iscanbin.c83
-rw-r--r--print/ghostscript7/files/patch-src-iscannum.c203
-rw-r--r--print/ghostscript7/files/patch-src-iutil.c11
-rw-r--r--print/ghostscript7/files/patch-src-lib.mak29
-rw-r--r--print/ghostscript7/files/patch-src-png_.h9
-rw-r--r--print/ghostscript7/files/patch-src-unixinst.mak117
-rw-r--r--print/ghostscript7/files/patch-src-zarith.c48
-rw-r--r--print/ghostscript7/files/patch-src-zcontrol.c20
-rw-r--r--print/ghostscript7/files/patch-src-zdict.c29
-rw-r--r--print/ghostscript7/files/patch-src-zdps.c25
-rw-r--r--print/ghostscript7/files/patch-src-zfunc4.c13
-rw-r--r--print/ghostscript7/files/patch-src-zgeneric.c20
-rw-r--r--print/ghostscript7/files/patch-src-ziodev.c11
-rw-r--r--print/ghostscript7/files/patch-src-zmath.c18
-rw-r--r--print/ghostscript7/files/patch-src-zstack.c11
-rw-r--r--print/ghostscript7/files/patch-src-ztype.c34
-rw-r--r--print/ghostscript7/files/patch-src:dmp_site.ps10
-rw-r--r--print/ghostscript7/files/patch-src:dviprlib.c13
-rw-r--r--print/ghostscript7/files/patch-src:gdevdmpr.c11
-rw-r--r--print/ghostscript7/files/patch-src:gdevdmpr.mak21
-rw-r--r--print/ghostscript7/files/patch-src:gdevgdi.c983
-rw-r--r--print/ghostscript7/files/patch-src:gdevlbp8.c70
-rw-r--r--print/ghostscript7/files/patch-src:gdevpdff.c59
-rw-r--r--print/ghostscript7/files/patch-src:gdevpdff.h37
-rw-r--r--print/ghostscript7/files/patch-src:gdevpdfs.c41
-rw-r--r--print/ghostscript7/files/patch-src:gdevpdfw.c60
-rw-r--r--print/ghostscript7/files/patch-src:genarch.c34
-rw-r--r--print/ghostscript7/files/patch-src:gxobj.h17
-rw-r--r--print/ghostscript7/files/patch-src:smartgdi-contrib.mak16
-rw-r--r--print/ghostscript7/files/patch-src:unix-dll.mak76
-rw-r--r--print/ghostscript7/files/patch-src:unix-gcc.mak133
-rw-r--r--print/ghostscript7/files/patch-src:zmedia2.c25
-rw-r--r--print/ghostscript7/files/patch-src_cpca_mk_cmd.c270
-rw-r--r--print/ghostscript7/files/patch-src_gdevhl12.c11
-rw-r--r--print/ghostscript7/files/stc740ih.upp60
-rw-r--r--print/ghostscript7/files/stc740p.upp36
-rw-r--r--print/ghostscript7/files/stc740pl.upp32
-rw-r--r--print/ghostscript7/files/stp.contrib.mak14
-rw-r--r--print/ghostscript7/pkg-descr24
-rw-r--r--print/ghostscript7/pkg-message4
-rw-r--r--print/ghostscript7/pkg-plist370
130 files changed, 9024 insertions, 5 deletions
diff --git a/MOVED b/MOVED
index 006bb752371c..e1a552b05041 100644
--- a/MOVED
+++ b/MOVED
@@ -6979,11 +6979,6 @@ sysutils/boxbackup||2014-09-01|Not staged
www/webcalendar-devel|www/webcalendar|2014-09-04|Removed, use www/webcalendar instead
devel/ruby-memoize||2014-09-06|Has expired: RubyForge shutdown May 15 2014
www/oops||2014-09-06|Development stops long ago, domain has been expired
-print/ghostscript7||2014-09-06|Not staged
-print/ghostscript7-commfont||2014-09-06|Not staged
-print/ghostscript7-jpnfont||2014-09-06|Not staged
-print/ghostscript7-korfont||2014-09-06|Not staged
-print/ghostscript7-nox11||2014-09-06|Not staged
net/freeswitch-core-devel||2014-09-06|Not staged
net/freeswitch-devel||2014-09-06|Not staged
audio/freeswitch-sounds||2014-09-06|Not staged
diff --git a/print/Makefile b/print/Makefile
index 005f3ce2a74e..8fa0a657ad98 100644
--- a/print/Makefile
+++ b/print/Makefile
@@ -63,6 +63,11 @@
SUBDIR += frescobaldi
SUBDIR += ft2demos
SUBDIR += ggv
+ SUBDIR += ghostscript7
+ SUBDIR += ghostscript7-commfont
+ SUBDIR += ghostscript7-jpnfont
+ SUBDIR += ghostscript7-korfont
+ SUBDIR += ghostscript7-nox11
SUBDIR += ghostscript8
SUBDIR += ghostscript8-nox11
SUBDIR += ghostscript9
diff --git a/print/ghostscript7-commfont/Makefile b/print/ghostscript7-commfont/Makefile
new file mode 100644
index 000000000000..63f88ddeca4f
--- /dev/null
+++ b/print/ghostscript7-commfont/Makefile
@@ -0,0 +1,41 @@
+# Created by: Tomokatsu SAITO <saito@a2z.co.jp>
+# $FreeBSD$
+
+PORTNAME= ghostscript
+PORTVERSION= 7.07
+PORTREVISION= 13
+CATEGORIES= print
+MASTER_SITES= # empty
+PKGNAMESUFFIX= 7-commfont
+DISTFILES= # empty
+
+MAINTAINER= hrs@FreeBSD.org
+COMMENT= Common files for Ghostscript 7.x CJK font support
+
+BUILD_DEPENDS= ${CMAPDIR}/ac15/cid2code.txt:${PORTSDIR}/print/adobe-cmaps
+RUN_DEPENDS= ${CMAPDIR}/ac15/cid2code.txt:${PORTSDIR}/print/adobe-cmaps
+
+NO_WRKSUBDIR= yes
+SUB_FILES= pkg-message \
+ Makefile template.cidfont template.ttcidfont template.font
+SUB_LIST= PORTVERSION="${PORTVERSION}" GS_RESDIR="${GS_RESDIR}"
+PLIST_SUB= GS_RESDIR="${GS_RESDIR}"
+PKGMESSAGE= ${WRKDIR}/pkg-message
+DEPENDS_ARGS+= -DA4
+# set these forcibly
+USE_GHOSTSCRIPT_RUN=7
+
+CONFLICTS_INSTALL= \
+ ghostscript8-[0-9]* \
+ ghostscript8-nox11-[0-9]* \
+ ghostscript9-[0-9]* \
+ ghostscript9-nox11-[0-9]* \
+ ghostscript9-agpl-[0-9]* \
+ ghostscript9-agpl-nox11-[0-9]*
+
+CMAPDIR?= ${LOCALBASE}/share/fonts/adobe-cmaps
+GS_RESDIR?= share/ghostscript/Resource
+
+post-extract: apply-slist
+
+.include <bsd.port.mk>
diff --git a/print/ghostscript7-commfont/files/Makefile.in b/print/ghostscript7-commfont/files/Makefile.in
new file mode 100644
index 000000000000..1c539a9a3ab3
--- /dev/null
+++ b/print/ghostscript7-commfont/files/Makefile.in
@@ -0,0 +1,141 @@
+# $FreeBSD$
+
+.MAKE.FreeBSD_UL=yes
+PREFIX?= /usr/local
+LOCALBASE?= /usr/local
+CMAPDIR?= ${LOCALBASE}/share/fonts/adobe-cmaps
+CIDFONTDIR?= ${LOCALBASE}/share/fonts/CIDFont
+GS_FONTDIR?= ${LOCALBASE}/share/ghostscript/fonts
+GS_RESFONTDIR?= ${LOCALBASE}/share/ghostscript/Resource/Font
+GS_RESCIDFONTDIR?= ${LOCALBASE}/share/ghostscript/Resource/CIDFont
+GS_RESCMAPDIR?= ${LOCALBASE}/share/ghostscript/Resource/CMap
+
+INSTALL_DATA?= install -m 444
+MKDIR?= mkdir -p
+LN?= ln
+FIND?= find
+AWK?= awk
+R?= 
+PROGRESS?= BEGIN { mark[0]=\"|\"; mark[1]=\"|\"; mark[2]=\"/\"; mark[3]=\"/\"; mark[4]=\"-\"; mark[5]=\"-\"; mark[6]=\"\\\\\"; mark[7]=\"\\\\\"; line = 0; } { line = (line + 1) % 8; printf(\"Generating virtual fonts...%s${R}\n\", mark[line]); }
+
+TEMPLATES_TTF= cs.serif cs.sansserif \
+ ct.serif cs.sansserif \
+ ja.serif ja.sansserif
+TEMPLATES_CID= ko.serif ko.sansserif
+
+CS.CMAPS= ac15
+
+CS.SERIF.GENERIC= STSong-Light
+CS.SERIF.GENERIC_SUBST= STSong-Light
+CS.SERIF= STSong-Light
+
+CS.SANSSERIF.GENERIC= STHeiti-Regular
+CS.SANSSERIF.GENERIC_SUBST= STHeiti-Regular
+CS.SANSSERIF= STHeiti-Regular
+
+CT.CMAPS= ag15
+
+CT.SERIF.GENERIC= MSung-Light
+CT.SERIF.GENERIC_SUBST= MSung-Light
+CT.SERIF= MSung-Light
+
+CT.SANSSERIF.GENERIC= MHei-Medium
+CT.SANSSERIF.GENERIC_SUBST= MHei-Medium
+CT.SANSSERIF= MHei-Medium
+
+JA.CMAPS= aj16 aj20
+
+JA.SERIF.GENERIC= Ryumin-Light
+JA.SERIF.GENERIC_SUBST= Ryumin-Light.gs7
+JA.SERIF= Ryumin-Light \
+ FutoMinA101-Bold \
+ HeiseiMin-W3
+
+JA.SANSSERIF.GENERIC= GothicBBB-Medium
+JA.SANSSERIF.GENERIC_SUBST= GothicBBB-Medium.gs7
+JA.SANSSERIF= GothicBBB-Medium \
+ FutoGoB101-Bold \
+ HeiseiKakuGo-W5 \
+ HGSSoeiKakugothicUB \
+ HGPSoeiKakugothicUB
+
+KO.CMAPS= ak12
+
+KO.SERIF.GENERIC= HYSMyeongJo-Medium
+KO.SERIF.GENERIC_SUBST= Munhwa-Regular
+KO.SERIF= HYSMyeongJo-Medium
+
+KO.SANSSERIF.GENERIC= HYGoThic-Medium
+KO.SANSSERIF.GENERIC_SUBST= MunhwaGothic-Regular
+KO.SANSSERIF= HYGoThic-Medium
+
+all:
+ @${MKDIR} CIDFont Font
+.for T in ${TEMPLATES_TTF}
+ @for F in ${${T:tu}}; do \
+ echo "Generating CIDFont/$${F}"; \
+ sed -e "s,%%FONTNAME%%,$$F,g" \
+ -e "s,%%GS_FONTDIR%%,${GS_FONTDIR}," \
+ -e "s,%%GENERICFONTNAME%%,${${T:tu}.GENERIC}," \
+ -e "s,%%GENERICFONTNAME_SUBST%%,${${T:tu}.GENERIC_SUBST}," \
+ < template.ttcidfont > CIDFont/$${F}; \
+ for D in ${${T:tu:C/\.[^.]*$//}.CMAPS}; do \
+ if [ -d ${CMAPDIR}/$${D}/CMap ]; then \
+ CMAPS=`cd ${CMAPDIR}/$${D}/CMap; echo *`; \
+ elif [ -r ${CMAPDIR}/$${D} ]; then \
+ CMAPS=`basename $${D}`; \
+ else \
+ echo "$${D}: not found"; exit 1; \
+ fi; \
+ for C in $${CMAPS}; do \
+ echo "Generating Font/$${F}-$${C}"; \
+ sed -e "s,%%FONTNAME%%,$$F,g" \
+ -e "s,%%GS_FONTDIR%%,${GS_FONTDIR}," \
+ -e "s,%%CMAPNAME%%,$${C}," \
+ -e "s,%%GENERICFONTNAME%%,${${T:tu}.GENERIC}," \
+ -e "s,%%GENERICFONTNAME_SUBST%%,${${T:tu}.GENERIC_SUBST}," \
+ < template.font > Font/$${F}-$${C}; \
+ done; \
+ done; \
+ done | awk "${PROGRESS}"
+.endfor
+.for T in ${TEMPLATES_CID}
+ @for F in ${${T:tu}}; do \
+ echo "Generating CIDFont/$${F}"; \
+ sed -e "s,%%FONTNAME%%,$$F,g" \
+ -e "s,%%GS_FONTDIR%%,${GS_FONTDIR}," \
+ -e "s,%%GENERICFONTNAME%%,${${T:tu}.GENERIC}," \
+ -e "s,%%GENERICFONTNAME_SUBST%%,${${T:tu}.GENERIC_SUBST}," \
+ < template.cidfont > CIDFont/$${F}; \
+ for D in ${${T:tu:C/\.[^.]*$//}.CMAPS}; do \
+ if [ -d ${CMAPDIR}/$${D}/CMap ]; then \
+ CMAPS=`cd ${CMAPDIR}/$${D}/CMap; echo *`; \
+ elif [ -r ${CMAPDIR}/$${D} ]; then \
+ CMAPS=`basename $${D}`; \
+ else \
+ echo "$${D}: not found"; exit 1; \
+ fi; \
+ for C in $${CMAPS}; do \
+ echo "Generating Font/$${F}-$${C}"; \
+ sed -e "s,%%FONTNAME%%,$$F,g" \
+ -e "s,%%GS_FONTDIR%%,${GS_FONTDIR}," \
+ -e "s,%%CMAPNAME%%,$${C}," \
+ -e "s,%%GENERICFONTNAME%%,${${T:tu}.GENERIC}," \
+ -e "s,%%GENERICFONTNAME_SUBST%%,${${T:tu}.GENERIC_SUBST}," \
+ < template.font > Font/$${F}-$${C}; \
+ done; \
+ done; \
+ done | awk "${PROGRESS}"
+.endfor
+ @echo "Generating virtual fonts...done."
+
+install:
+ ${MKDIR} ${DESTDIR}${GS_RESCIDFONTDIR}
+ ${INSTALL_DATA} CIDFont/* ${DESTDIR}${GS_RESCIDFONTDIR}
+ ${MKDIR} ${DESTDIR}${GS_RESFONTDIR}
+ ${INSTALL_DATA} Font/* ${DESTDIR}${GS_RESFONTDIR}
+ ${MKDIR} ${DESTDIR}${GS_RESCMAPDIR}
+ cd ${DESTDIR}${GS_RESCMAPDIR} && ${LN} -s -f `${FIND} ${CMAPDIR} -type f` .
+.for T in ${TEMPLATES_CID}
+ cd ${DESTDIR}${GS_RESCIDFONTDIR} && ${LN} -s -f ${CIDFONTDIR}/${${T:tu}.GENERIC_SUBST} ${${T:tu}.GENERIC_SUBST}
+.endfor
diff --git a/print/ghostscript7-commfont/files/pkg-message.in b/print/ghostscript7-commfont/files/pkg-message.in
new file mode 100644
index 000000000000..34170fbf1815
--- /dev/null
+++ b/print/ghostscript7-commfont/files/pkg-message.in
@@ -0,0 +1,13 @@
+=== NOTE ===
+
+The CJK font selection will be performed in the following order:
+
+ 1. %%PREFIX%%/%%GS_RESDIR%%/Font/<fontname>
+
+ 2. %%PREFIX%%/%%GS_RESDIR%%/CIDFont/<fontname>
+
+ 3. %%PREFIX%%/share/ghostscript/%%PORTVERSION%%/lib/CIDFnmap
+
+So, to use CIDFnmap you have to make sure that there is no font file that
+has the same name as you want to customize in Resource/Font and
+Resource/CIDFont.
diff --git a/print/ghostscript7-commfont/files/template.cidfont.in b/print/ghostscript7-commfont/files/template.cidfont.in
new file mode 100644
index 000000000000..5d9dab648773
--- /dev/null
+++ b/print/ghostscript7-commfont/files/template.cidfont.in
@@ -0,0 +1,10 @@
+%!PS-Adobe-3.0 Resource-CIDFont
+%%Creator: $FreeBSD$
+%%BeginResource: CIDFont (%%FONTNAME%%)
+
+(%%FONTNAME%%)
+(%%GENERICFONTNAME_SUBST%%) /CIDFont findresource
+/CIDFont defineresource pop
+
+%%EndResource
+%%EOF
diff --git a/print/ghostscript7-commfont/files/template.font.in b/print/ghostscript7-commfont/files/template.font.in
new file mode 100644
index 000000000000..56a68caec658
--- /dev/null
+++ b/print/ghostscript7-commfont/files/template.font.in
@@ -0,0 +1,12 @@
+%!PS-Adobe-3.0 Resource-Font
+%%Creator: $FreeBSD$
+%%DocumentNeededResources: %%CMAPNAME%% (CMap)
+%%IncludeResource: %%CMAPNAME%% (CMap)
+%%BeginResource: Font (%%FONTNAME%%-%%CMAPNAME%%)
+(%%FONTNAME%%-%%CMAPNAME%%)
+(%%CMAPNAME%%) /CMap findresource
+[(%%GENERICFONTNAME%%) /CIDFont findresource]
+composefont
+pop
+%%EndResource
+%%EOF
diff --git a/print/ghostscript7-commfont/files/template.ttcidfont.in b/print/ghostscript7-commfont/files/template.ttcidfont.in
new file mode 100644
index 000000000000..bc10770f819f
--- /dev/null
+++ b/print/ghostscript7-commfont/files/template.ttcidfont.in
@@ -0,0 +1,10 @@
+%!PS-Adobe-3.0 Resource-CIDFont
+%%Creator: $FreeBSD$
+%%BeginResource: CIDFont (%%FONTNAME%%)
+
+(%%FONTNAME%%)
+(%%GENERICFONTNAME_SUBST%%) findlibfile pop pop .openttcidfont
+/CIDFont defineresource pop
+
+%%EndResource
+%%EOF
diff --git a/print/ghostscript7-commfont/pkg-descr b/print/ghostscript7-commfont/pkg-descr
new file mode 100644
index 000000000000..d3d9d5b79923
--- /dev/null
+++ b/print/ghostscript7-commfont/pkg-descr
@@ -0,0 +1,2 @@
+This is a virtual CJK font set for Ghostscript 7.x. These virtual fonts
+call several TrueType Japanese/Korean/Chinese fonts as the real instances.
diff --git a/print/ghostscript7-commfont/pkg-plist b/print/ghostscript7-commfont/pkg-plist
new file mode 100644
index 000000000000..648db9daba73
--- /dev/null
+++ b/print/ghostscript7-commfont/pkg-plist
@@ -0,0 +1,997 @@
+%%GS_RESDIR%%/CIDFont/FutoGoB101-Bold
+%%GS_RESDIR%%/CIDFont/FutoMinA101-Bold
+%%GS_RESDIR%%/CIDFont/GothicBBB-Medium
+%%GS_RESDIR%%/CIDFont/HGPSoeiKakugothicUB
+%%GS_RESDIR%%/CIDFont/HGSSoeiKakugothicUB
+%%GS_RESDIR%%/CIDFont/HYGoThic-Medium
+%%GS_RESDIR%%/CIDFont/HYSMyeongJo-Medium
+%%GS_RESDIR%%/CIDFont/HeiseiKakuGo-W5
+%%GS_RESDIR%%/CIDFont/HeiseiMin-W3
+%%GS_RESDIR%%/CIDFont/MSung-Light
+%%GS_RESDIR%%/CIDFont/Ryumin-Light
+%%GS_RESDIR%%/CIDFont/STHeiti-Regular
+%%GS_RESDIR%%/CIDFont/STSong-Light
+%%GS_RESDIR%%/CIDFont/Munhwa-Regular
+%%GS_RESDIR%%/CIDFont/MunhwaGothic-Regular
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-EUC-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-EUC-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Add-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Add-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Add-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Add-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-EUC-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-EUC-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Ext-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Ext-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hankaku
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hiragana
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hojo-EUC-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hojo-EUC-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hojo-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Hojo-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Katakana
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-NWP-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-NWP-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-RKSJ-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-RKSJ-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-Roman
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-V
+%%GS_RESDIR%%/Font/FutoGoB101-Bold-WP-Symbol
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-EUC-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-EUC-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Add-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Add-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Add-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Add-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-EUC-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-EUC-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Ext-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Ext-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hankaku
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hiragana
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hojo-EUC-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hojo-EUC-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hojo-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Hojo-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Katakana
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-NWP-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-NWP-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-RKSJ-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-RKSJ-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-Roman
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-V
+%%GS_RESDIR%%/Font/FutoMinA101-Bold-WP-Symbol
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-EUC-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-EUC-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/GothicBBB-Medium-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Add-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Add-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Add-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Add-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/GothicBBB-Medium-EUC-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-EUC-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Ext-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Ext-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hankaku
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hiragana
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hojo-EUC-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hojo-EUC-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hojo-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Hojo-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Katakana
+%%GS_RESDIR%%/Font/GothicBBB-Medium-NWP-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-NWP-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-RKSJ-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-RKSJ-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-Roman
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/GothicBBB-Medium-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-V
+%%GS_RESDIR%%/Font/GothicBBB-Medium-WP-Symbol
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-EUC-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-EUC-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Add-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Add-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Add-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Add-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-EUC-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-EUC-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Ext-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Ext-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hankaku
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hiragana
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hojo-EUC-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hojo-EUC-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hojo-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Hojo-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Katakana
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-NWP-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-NWP-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-RKSJ-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-RKSJ-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-Roman
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-V
+%%GS_RESDIR%%/Font/HGPSoeiKakugothicUB-WP-Symbol
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-EUC-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-EUC-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Add-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Add-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Add-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Add-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-EUC-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-EUC-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Ext-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Ext-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hankaku
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hiragana
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hojo-EUC-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hojo-EUC-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hojo-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Hojo-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Katakana
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-NWP-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-NWP-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-RKSJ-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-RKSJ-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-Roman
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-V
+%%GS_RESDIR%%/Font/HGSSoeiKakugothicUB-WP-Symbol
+%%GS_RESDIR%%/Font/HYGoThic-Medium-Adobe-Korea1-0
+%%GS_RESDIR%%/Font/HYGoThic-Medium-Adobe-Korea1-1
+%%GS_RESDIR%%/Font/HYGoThic-Medium-Adobe-Korea1-2
+%%GS_RESDIR%%/Font/HYGoThic-Medium-Adobe-Korea1-UCS2
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-EUC-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-EUC-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-Johab-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-Johab-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSC-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCms-UHC-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCms-UHC-HW-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCms-UHC-HW-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCms-UHC-UCS2
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCms-UHC-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCpc-EUC-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCpc-EUC-UCS2
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCpc-EUC-UCS2C
+%%GS_RESDIR%%/Font/HYGoThic-Medium-KSCpc-EUC-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UCS2-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UCS2-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF16-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF16-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF32-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF32-V
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF8-H
+%%GS_RESDIR%%/Font/HYGoThic-Medium-UniKS-UTF8-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-Adobe-Korea1-0
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-Adobe-Korea1-1
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-Adobe-Korea1-2
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-Adobe-Korea1-UCS2
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-EUC-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-EUC-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-Johab-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-Johab-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSC-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCms-UHC-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCms-UHC-HW-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCms-UHC-HW-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCms-UHC-UCS2
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCms-UHC-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCpc-EUC-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCpc-EUC-UCS2
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCpc-EUC-UCS2C
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-KSCpc-EUC-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UCS2-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UCS2-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF16-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF16-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF32-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF32-V
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF8-H
+%%GS_RESDIR%%/Font/HYSMyeongJo-Medium-UniKS-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-EUC-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-EUC-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Add-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Add-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Add-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Add-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-EUC-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-EUC-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Ext-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Ext-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hankaku
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hiragana
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hojo-EUC-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hojo-EUC-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hojo-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Hojo-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Katakana
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-NWP-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-NWP-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-Roman
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-V
+%%GS_RESDIR%%/Font/HeiseiKakuGo-W5-WP-Symbol
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-EUC-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-EUC-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/HeiseiMin-W3-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Add-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Add-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Add-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Add-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/HeiseiMin-W3-EUC-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-EUC-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Ext-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Ext-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hankaku
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hiragana
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hojo-EUC-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hojo-EUC-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hojo-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Hojo-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Katakana
+%%GS_RESDIR%%/Font/HeiseiMin-W3-NWP-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-NWP-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-RKSJ-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-RKSJ-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-Roman
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/HeiseiMin-W3-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-V
+%%GS_RESDIR%%/Font/HeiseiMin-W3-WP-Symbol
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-0
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-1
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-2
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-3
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-4
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-5
+%%GS_RESDIR%%/Font/MSung-Light-Adobe-GB1-UCS2
+%%GS_RESDIR%%/Font/MSung-Light-GB-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GB-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-GB-H
+%%GS_RESDIR%%/Font/MSung-Light-GB-V
+%%GS_RESDIR%%/Font/MSung-Light-GBK-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GBK-EUC-UCS2
+%%GS_RESDIR%%/Font/MSung-Light-GBK-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-GBK2K-H
+%%GS_RESDIR%%/Font/MSung-Light-GBK2K-V
+%%GS_RESDIR%%/Font/MSung-Light-GBKp-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GBKp-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-GBT-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GBT-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-GBT-H
+%%GS_RESDIR%%/Font/MSung-Light-GBT-V
+%%GS_RESDIR%%/Font/MSung-Light-GBTpc-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GBTpc-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-GBpc-EUC-H
+%%GS_RESDIR%%/Font/MSung-Light-GBpc-EUC-UCS2
+%%GS_RESDIR%%/Font/MSung-Light-GBpc-EUC-UCS2C
+%%GS_RESDIR%%/Font/MSung-Light-GBpc-EUC-V
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UCS2-H
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UCS2-V
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF16-H
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF16-V
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF32-H
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF32-V
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF8-H
+%%GS_RESDIR%%/Font/MSung-Light-UniGB-UTF8-V
+%%GS_RESDIR%%/Font/Ryumin-Light-78-EUC-H
+%%GS_RESDIR%%/Font/Ryumin-Light-78-EUC-V
+%%GS_RESDIR%%/Font/Ryumin-Light-78-H
+%%GS_RESDIR%%/Font/Ryumin-Light-78-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-78-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-78-V
+%%GS_RESDIR%%/Font/Ryumin-Light-78ms-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-78ms-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-83pv-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-90ms-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-90ms-RKSJ-UCS2
+%%GS_RESDIR%%/Font/Ryumin-Light-90ms-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-90msp-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-90msp-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-90pv-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-90pv-RKSJ-UCS2
+%%GS_RESDIR%%/Font/Ryumin-Light-90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/Font/Ryumin-Light-90pv-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Add-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Add-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Add-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Add-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-0
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-1
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-2
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-3
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-4
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-5
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-6
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan1-UCS2
+%%GS_RESDIR%%/Font/Ryumin-Light-Adobe-Japan2-0
+%%GS_RESDIR%%/Font/Ryumin-Light-EUC-H
+%%GS_RESDIR%%/Font/Ryumin-Light-EUC-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Ext-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Ext-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Ext-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Ext-V
+%%GS_RESDIR%%/Font/Ryumin-Light-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Hankaku
+%%GS_RESDIR%%/Font/Ryumin-Light-Hiragana
+%%GS_RESDIR%%/Font/Ryumin-Light-Hojo-EUC-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Hojo-EUC-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Hojo-H
+%%GS_RESDIR%%/Font/Ryumin-Light-Hojo-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Katakana
+%%GS_RESDIR%%/Font/Ryumin-Light-NWP-H
+%%GS_RESDIR%%/Font/Ryumin-Light-NWP-V
+%%GS_RESDIR%%/Font/Ryumin-Light-RKSJ-H
+%%GS_RESDIR%%/Font/Ryumin-Light-RKSJ-V
+%%GS_RESDIR%%/Font/Ryumin-Light-Roman
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UCS2-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UCS2-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF16-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF16-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF32-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF32-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF8-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniHojo-UTF8-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UCS2-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UCS2-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF16-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF16-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF32-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF32-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF8-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJIS-UTF8-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJISPro-UCS2-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJISPro-UTF8-V
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJISX0213-UTF32-H
+%%GS_RESDIR%%/Font/Ryumin-Light-UniJISX0213-UTF32-V
+%%GS_RESDIR%%/Font/Ryumin-Light-V
+%%GS_RESDIR%%/Font/Ryumin-Light-WP-Symbol
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-0
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-1
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-2
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-3
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-4
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-5
+%%GS_RESDIR%%/Font/STHeiti-Regular-Adobe-CNS1-UCS2
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5pc-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5pc-UCS2
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5pc-UCS2C
+%%GS_RESDIR%%/Font/STHeiti-Regular-B5pc-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS-EUC-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS-EUC-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS1-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS1-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS2-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-CNS2-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-ETHK-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-ETHK-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-ETen-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-ETen-B5-UCS2
+%%GS_RESDIR%%/Font/STHeiti-Regular-ETen-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKdla-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKdla-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKdlb-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKdlb-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKgccs-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKgccs-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKm314-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKm314-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKm471-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKm471-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKscs-B5-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-HKscs-B5-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UCS2-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UCS2-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF16-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF16-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF32-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF32-V
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF8-H
+%%GS_RESDIR%%/Font/STHeiti-Regular-UniCNS-UTF8-V
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-0
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-1
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-2
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-3
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-4
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-5
+%%GS_RESDIR%%/Font/STSong-Light-Adobe-CNS1-UCS2
+%%GS_RESDIR%%/Font/STSong-Light-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-B5pc-H
+%%GS_RESDIR%%/Font/STSong-Light-B5pc-UCS2
+%%GS_RESDIR%%/Font/STSong-Light-B5pc-UCS2C
+%%GS_RESDIR%%/Font/STSong-Light-B5pc-V
+%%GS_RESDIR%%/Font/STSong-Light-CNS-EUC-H
+%%GS_RESDIR%%/Font/STSong-Light-CNS-EUC-V
+%%GS_RESDIR%%/Font/STSong-Light-CNS1-H
+%%GS_RESDIR%%/Font/STSong-Light-CNS1-V
+%%GS_RESDIR%%/Font/STSong-Light-CNS2-H
+%%GS_RESDIR%%/Font/STSong-Light-CNS2-V
+%%GS_RESDIR%%/Font/STSong-Light-ETHK-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-ETHK-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-ETen-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-ETen-B5-UCS2
+%%GS_RESDIR%%/Font/STSong-Light-ETen-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKdla-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKdla-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKdlb-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKdlb-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKgccs-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKgccs-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKm314-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKm314-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKm471-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKm471-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-HKscs-B5-H
+%%GS_RESDIR%%/Font/STSong-Light-HKscs-B5-V
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UCS2-H
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UCS2-V
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF16-H
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF16-V
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF32-H
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF32-V
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF8-H
+%%GS_RESDIR%%/Font/STSong-Light-UniCNS-UTF8-V
+%%GS_RESDIR%%/CMap/78-EUC-H
+%%GS_RESDIR%%/CMap/78-EUC-V
+%%GS_RESDIR%%/CMap/78-H
+%%GS_RESDIR%%/CMap/78-RKSJ-H
+%%GS_RESDIR%%/CMap/78-RKSJ-V
+%%GS_RESDIR%%/CMap/78-V
+%%GS_RESDIR%%/CMap/78ms-RKSJ-H
+%%GS_RESDIR%%/CMap/78ms-RKSJ-V
+%%GS_RESDIR%%/CMap/83pv-RKSJ-H
+%%GS_RESDIR%%/CMap/90ms-RKSJ-H
+%%GS_RESDIR%%/CMap/90ms-RKSJ-UCS2
+%%GS_RESDIR%%/CMap/90ms-RKSJ-V
+%%GS_RESDIR%%/CMap/90msp-RKSJ-H
+%%GS_RESDIR%%/CMap/90msp-RKSJ-V
+%%GS_RESDIR%%/CMap/90pv-RKSJ-H
+%%GS_RESDIR%%/CMap/90pv-RKSJ-UCS2
+%%GS_RESDIR%%/CMap/90pv-RKSJ-UCS2C
+%%GS_RESDIR%%/CMap/90pv-RKSJ-V
+%%GS_RESDIR%%/CMap/Add-H
+%%GS_RESDIR%%/CMap/Add-RKSJ-H
+%%GS_RESDIR%%/CMap/Add-RKSJ-V
+%%GS_RESDIR%%/CMap/Add-V
+%%GS_RESDIR%%/CMap/Adobe-CNS1-0
+%%GS_RESDIR%%/CMap/Adobe-CNS1-1
+%%GS_RESDIR%%/CMap/Adobe-CNS1-2
+%%GS_RESDIR%%/CMap/Adobe-CNS1-3
+%%GS_RESDIR%%/CMap/Adobe-CNS1-4
+%%GS_RESDIR%%/CMap/Adobe-CNS1-5
+%%GS_RESDIR%%/CMap/Adobe-CNS1-UCS2
+%%GS_RESDIR%%/CMap/Adobe-GB1-0
+%%GS_RESDIR%%/CMap/Adobe-GB1-1
+%%GS_RESDIR%%/CMap/Adobe-GB1-2
+%%GS_RESDIR%%/CMap/Adobe-GB1-3
+%%GS_RESDIR%%/CMap/Adobe-GB1-4
+%%GS_RESDIR%%/CMap/Adobe-GB1-5
+%%GS_RESDIR%%/CMap/Adobe-GB1-UCS2
+%%GS_RESDIR%%/CMap/Adobe-Japan1-0
+%%GS_RESDIR%%/CMap/Adobe-Japan1-1
+%%GS_RESDIR%%/CMap/Adobe-Japan1-2
+%%GS_RESDIR%%/CMap/Adobe-Japan1-3
+%%GS_RESDIR%%/CMap/Adobe-Japan1-4
+%%GS_RESDIR%%/CMap/Adobe-Japan1-5
+%%GS_RESDIR%%/CMap/Adobe-Japan1-6
+%%GS_RESDIR%%/CMap/Adobe-Japan1-UCS2
+%%GS_RESDIR%%/CMap/Adobe-Japan2-0
+%%GS_RESDIR%%/CMap/Adobe-Korea1-0
+%%GS_RESDIR%%/CMap/Adobe-Korea1-1
+%%GS_RESDIR%%/CMap/Adobe-Korea1-2
+%%GS_RESDIR%%/CMap/Adobe-Korea1-UCS2
+%%GS_RESDIR%%/CMap/B5-H
+%%GS_RESDIR%%/CMap/B5-V
+%%GS_RESDIR%%/CMap/B5pc-H
+%%GS_RESDIR%%/CMap/B5pc-UCS2
+%%GS_RESDIR%%/CMap/B5pc-UCS2C
+%%GS_RESDIR%%/CMap/B5pc-V
+%%GS_RESDIR%%/CMap/CNS-EUC-H
+%%GS_RESDIR%%/CMap/CNS-EUC-V
+%%GS_RESDIR%%/CMap/CNS01-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS02-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS03-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS04-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS05-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS06-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS07-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS1-H
+%%GS_RESDIR%%/CMap/CNS1-V
+%%GS_RESDIR%%/CMap/CNS15-RKSJ-H
+%%GS_RESDIR%%/CMap/CNS2-H
+%%GS_RESDIR%%/CMap/CNS2-V
+%%GS_RESDIR%%/CMap/ETHK-B5-H
+%%GS_RESDIR%%/CMap/ETHK-B5-V
+%%GS_RESDIR%%/CMap/ETen-B5-H
+%%GS_RESDIR%%/CMap/ETen-B5-UCS2
+%%GS_RESDIR%%/CMap/ETen-B5-V
+%%GS_RESDIR%%/CMap/EUC-H
+%%GS_RESDIR%%/CMap/EUC-V
+%%GS_RESDIR%%/CMap/Ext-H
+%%GS_RESDIR%%/CMap/Ext-RKSJ-H
+%%GS_RESDIR%%/CMap/Ext-RKSJ-V
+%%GS_RESDIR%%/CMap/Ext-V
+%%GS_RESDIR%%/CMap/GB-EUC-H
+%%GS_RESDIR%%/CMap/GB-EUC-V
+%%GS_RESDIR%%/CMap/GB-H
+%%GS_RESDIR%%/CMap/GB-RKSJ-H
+%%GS_RESDIR%%/CMap/GB-V
+%%GS_RESDIR%%/CMap/GBK-EUC-H
+%%GS_RESDIR%%/CMap/GBK-EUC-UCS2
+%%GS_RESDIR%%/CMap/GBK-EUC-V
+%%GS_RESDIR%%/CMap/GBK2K-H
+%%GS_RESDIR%%/CMap/GBK2K-V
+%%GS_RESDIR%%/CMap/GBKp-EUC-H
+%%GS_RESDIR%%/CMap/GBKp-EUC-V
+%%GS_RESDIR%%/CMap/GBT-EUC-H
+%%GS_RESDIR%%/CMap/GBT-EUC-V
+%%GS_RESDIR%%/CMap/GBT-H
+%%GS_RESDIR%%/CMap/GBT-RKSJ-H
+%%GS_RESDIR%%/CMap/GBT-V
+%%GS_RESDIR%%/CMap/GBTpc-EUC-H
+%%GS_RESDIR%%/CMap/GBTpc-EUC-V
+%%GS_RESDIR%%/CMap/GBpc-EUC-H
+%%GS_RESDIR%%/CMap/GBpc-EUC-UCS2
+%%GS_RESDIR%%/CMap/GBpc-EUC-UCS2C
+%%GS_RESDIR%%/CMap/GBpc-EUC-V
+%%GS_RESDIR%%/CMap/H
+%%GS_RESDIR%%/CMap/HK-RKSJ-H
+%%GS_RESDIR%%/CMap/HKdla-B5-H
+%%GS_RESDIR%%/CMap/HKdla-B5-V
+%%GS_RESDIR%%/CMap/HKdlb-B5-H
+%%GS_RESDIR%%/CMap/HKdlb-B5-V
+%%GS_RESDIR%%/CMap/HKgccs-B5-H
+%%GS_RESDIR%%/CMap/HKgccs-B5-V
+%%GS_RESDIR%%/CMap/HKm314-B5-H
+%%GS_RESDIR%%/CMap/HKm314-B5-V
+%%GS_RESDIR%%/CMap/HKm471-B5-H
+%%GS_RESDIR%%/CMap/HKm471-B5-V
+%%GS_RESDIR%%/CMap/HKscs-B5-H
+%%GS_RESDIR%%/CMap/HKscs-B5-V
+%%GS_RESDIR%%/CMap/Hankaku
+%%GS_RESDIR%%/CMap/Hiragana
+%%GS_RESDIR%%/CMap/Hojo-EUC-H
+%%GS_RESDIR%%/CMap/Hojo-EUC-V
+%%GS_RESDIR%%/CMap/Hojo-H
+%%GS_RESDIR%%/CMap/Hojo-RKSJ-H
+%%GS_RESDIR%%/CMap/Hojo-V
+%%GS_RESDIR%%/CMap/Identity-H
+%%GS_RESDIR%%/CMap/Identity-V
+%%GS_RESDIR%%/CMap/KSC-EUC-H
+%%GS_RESDIR%%/CMap/KSC-EUC-V
+%%GS_RESDIR%%/CMap/KSC-H
+%%GS_RESDIR%%/CMap/KSC-Johab-H
+%%GS_RESDIR%%/CMap/KSC-Johab-V
+%%GS_RESDIR%%/CMap/KSC-RKSJ-H
+%%GS_RESDIR%%/CMap/KSC-V
+%%GS_RESDIR%%/CMap/KSC2-RKSJ-H
+%%GS_RESDIR%%/CMap/KSCms-UHC-H
+%%GS_RESDIR%%/CMap/KSCms-UHC-HW-H
+%%GS_RESDIR%%/CMap/KSCms-UHC-HW-V
+%%GS_RESDIR%%/CMap/KSCms-UHC-UCS2
+%%GS_RESDIR%%/CMap/KSCms-UHC-V
+%%GS_RESDIR%%/CMap/KSCpc-EUC-H
+%%GS_RESDIR%%/CMap/KSCpc-EUC-UCS2
+%%GS_RESDIR%%/CMap/KSCpc-EUC-UCS2C
+%%GS_RESDIR%%/CMap/KSCpc-EUC-V
+%%GS_RESDIR%%/CMap/Katakana
+%%GS_RESDIR%%/CMap/NWP-H
+%%GS_RESDIR%%/CMap/NWP-V
+%%GS_RESDIR%%/CMap/RKSJ-H
+%%GS_RESDIR%%/CMap/RKSJ-V
+%%GS_RESDIR%%/CMap/Roman
+%%GS_RESDIR%%/CMap/TCVN-RKSJ-H
+%%GS_RESDIR%%/CMap/UniCNS-UCS2-H
+%%GS_RESDIR%%/CMap/UniCNS-UCS2-V
+%%GS_RESDIR%%/CMap/UniCNS-UTF16-H
+%%GS_RESDIR%%/CMap/UniCNS-UTF16-V
+%%GS_RESDIR%%/CMap/UniCNS-UTF32-H
+%%GS_RESDIR%%/CMap/UniCNS-UTF32-V
+%%GS_RESDIR%%/CMap/UniCNS-UTF8-H
+%%GS_RESDIR%%/CMap/UniCNS-UTF8-V
+%%GS_RESDIR%%/CMap/UniGB-UCS2-H
+%%GS_RESDIR%%/CMap/UniGB-UCS2-V
+%%GS_RESDIR%%/CMap/UniGB-UTF16-H
+%%GS_RESDIR%%/CMap/UniGB-UTF16-V
+%%GS_RESDIR%%/CMap/UniGB-UTF32-H
+%%GS_RESDIR%%/CMap/UniGB-UTF32-V
+%%GS_RESDIR%%/CMap/UniGB-UTF8-H
+%%GS_RESDIR%%/CMap/UniGB-UTF8-V
+%%GS_RESDIR%%/CMap/UniHojo-UCS2-H
+%%GS_RESDIR%%/CMap/UniHojo-UCS2-V
+%%GS_RESDIR%%/CMap/UniHojo-UTF16-H
+%%GS_RESDIR%%/CMap/UniHojo-UTF16-V
+%%GS_RESDIR%%/CMap/UniHojo-UTF32-H
+%%GS_RESDIR%%/CMap/UniHojo-UTF32-V
+%%GS_RESDIR%%/CMap/UniHojo-UTF8-H
+%%GS_RESDIR%%/CMap/UniHojo-UTF8-V
+%%GS_RESDIR%%/CMap/UniJIS-UCS2-H
+%%GS_RESDIR%%/CMap/UniJIS-UCS2-HW-H
+%%GS_RESDIR%%/CMap/UniJIS-UCS2-HW-V
+%%GS_RESDIR%%/CMap/UniJIS-UCS2-V
+%%GS_RESDIR%%/CMap/UniJIS-UTF16-H
+%%GS_RESDIR%%/CMap/UniJIS-UTF16-V
+%%GS_RESDIR%%/CMap/UniJIS-UTF32-H
+%%GS_RESDIR%%/CMap/UniJIS-UTF32-V
+%%GS_RESDIR%%/CMap/UniJIS-UTF8-H
+%%GS_RESDIR%%/CMap/UniJIS-UTF8-V
+%%GS_RESDIR%%/CMap/UniJISPro-UCS2-HW-V
+%%GS_RESDIR%%/CMap/UniJISPro-UCS2-V
+%%GS_RESDIR%%/CMap/UniJISPro-UTF8-V
+%%GS_RESDIR%%/CMap/UniJISX0213-UTF32-H
+%%GS_RESDIR%%/CMap/UniJISX0213-UTF32-V
+%%GS_RESDIR%%/CMap/UniKS-UCS2-H
+%%GS_RESDIR%%/CMap/UniKS-UCS2-V
+%%GS_RESDIR%%/CMap/UniKS-UTF16-H
+%%GS_RESDIR%%/CMap/UniKS-UTF16-V
+%%GS_RESDIR%%/CMap/UniKS-UTF32-H
+%%GS_RESDIR%%/CMap/UniKS-UTF32-V
+%%GS_RESDIR%%/CMap/UniKS-UTF8-H
+%%GS_RESDIR%%/CMap/UniKS-UTF8-V
+%%GS_RESDIR%%/CMap/V
+%%GS_RESDIR%%/CMap/WP-Symbol
+%%GS_RESDIR%%/CMap/cid2code.txt
+@dirrm %%GS_RESDIR%%/Font
+@dirrm %%GS_RESDIR%%/CMap
+@dirrm %%GS_RESDIR%%/CIDFont
+@dirrm %%GS_RESDIR%%
diff --git a/print/ghostscript7-jpnfont/Makefile b/print/ghostscript7-jpnfont/Makefile
new file mode 100644
index 000000000000..5008cf40c039
--- /dev/null
+++ b/print/ghostscript7-jpnfont/Makefile
@@ -0,0 +1,26 @@
+# Created by: Mita Yoshio <mita@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ghostscript
+PORTVERSION= 7.07
+PORTREVISION= 12
+CATEGORIES= print japanese
+MASTER_SITES= # empty
+PKGNAMESUFFIX= 7-jpnfont
+DISTFILES= # empty
+
+MAINTAINER= hrs@FreeBSD.org
+COMMENT= Japanese font support for Ghostscript 7.x
+
+RUN_DEPENDS= ${LOCALBASE}/share/fonts/std.ja_JP/Ryumin-Light.gs7:${PORTSDIR}/japanese/font-std \
+ ${LOCALBASE}/share/ghostscript/Resource/CIDFont/Ryumin-Light:${PORTSDIR}/print/ghostscript7-commfont
+
+# set these forcibly
+USE_GHOSTSCRIPT_RUN= 7
+NO_BUILD= yes
+DEPENDS_ARGS+= -DA4
+
+do-install:
+ @${DO_NADA}
+
+.include <bsd.port.mk>
diff --git a/print/ghostscript7-jpnfont/pkg-descr b/print/ghostscript7-jpnfont/pkg-descr
new file mode 100644
index 000000000000..cd4b7df2fb2d
--- /dev/null
+++ b/print/ghostscript7-jpnfont/pkg-descr
@@ -0,0 +1 @@
+This is a meta package to add Japanese font support to Ghostscript 7.x.
diff --git a/print/ghostscript7-korfont/Makefile b/print/ghostscript7-korfont/Makefile
new file mode 100644
index 000000000000..6a3751cb5413
--- /dev/null
+++ b/print/ghostscript7-korfont/Makefile
@@ -0,0 +1,26 @@
+# Created by: Mita Yoshio <mita@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ghostscript
+PORTVERSION= 7.07
+PORTREVISION= 8
+CATEGORIES= print korean
+MASTER_SITES= # empty
+PKGNAMESUFFIX= 7-korfont
+DISTFILES= # empty
+
+MAINTAINER= hrs@FreeBSD.org
+COMMENT= Korean font support for Ghostscript 7.x
+
+RUN_DEPENDS= ${LOCALBASE}/share/fonts/CIDFont/Munhwa-Regular:${PORTSDIR}/korean/munhwafonts-cid \
+ ${LOCALBASE}/share/ghostscript/Resource/CIDFont/HYSMyeongJo-Medium:${PORTSDIR}/print/ghostscript7-commfont
+
+# set these forcibly
+USE_GHOSTSCRIPT_RUN= 7
+NO_BUILD= yes
+DEPENDS_ARGS+= -DA4
+
+do-install:
+ @${DO_NADA}
+
+.include <bsd.port.mk>
diff --git a/print/ghostscript7-korfont/pkg-descr b/print/ghostscript7-korfont/pkg-descr
new file mode 100644
index 000000000000..a3ff2ece3905
--- /dev/null
+++ b/print/ghostscript7-korfont/pkg-descr
@@ -0,0 +1 @@
+This is a meta package to add Korean font support to Ghostscript 7.x.
diff --git a/print/ghostscript7-nox11/Makefile b/print/ghostscript7-nox11/Makefile
new file mode 100644
index 000000000000..0d4a87498e3a
--- /dev/null
+++ b/print/ghostscript7-nox11/Makefile
@@ -0,0 +1,8 @@
+# Created by: Nik Clayton <nik@FreeBSD.org>
+# $FreeBSD$
+
+WITHOUT_X11= yes
+
+MASTERDIR= ${.CURDIR}/../ghostscript7
+
+.include "${MASTERDIR}/Makefile"
diff --git a/print/ghostscript7/Makefile b/print/ghostscript7/Makefile
new file mode 100644
index 000000000000..9dbe16447f01
--- /dev/null
+++ b/print/ghostscript7/Makefile
@@ -0,0 +1,154 @@
+# Created by: Andreas Klemm <andreas@klemm.gtn.com>
+# $FreeBSD$
+
+PORTNAME= ghostscript
+PORTVERSION= 7.07
+PORTREVISION= 30
+CATEGORIES= print
+MASTER_SITES= SF/ghostscript/gnu-gs/${PORTVERSION}:gs_srcs \
+ ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/gs${PORTVERSION:S/.//}/:gs_srcs \
+ ${MASTER_SITE_PORTS_JP:S/$/:ports_jp,ports_jp_gs/}
+MASTER_SITE_SUBDIR= \
+ ghostscript/:gs_srcs \
+ ./:ports_jp
+PKGNAMESUFFIX= 7
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:gs_srcs
+DIST_SUBDIR= ${PORTNAME}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= hrs@FreeBSD.org
+COMMENT= Ghostscript 7.x PostScript interpreter
+
+LICENSE= GPLv2
+
+LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg \
+ libpng15.so:${PORTSDIR}/graphics/png
+RUN_DEPENDS= ${LOCALBASE}/share/ghostscript/fonts/a010013l.pfb:${PORTSDIR}/print/gsfonts
+
+CONFLICTS_INSTALL= \
+ gambc-[0-9]* \
+ ghostscript[89]-[0-9]* \
+ ghostscript[89]-nox11-[0-9]* \
+ ghostscript9-agpl-[0-9]* \
+ ghostscript9-agpl-nox11-[0-9]*
+
+USES= tar:bzip2 gmake shebangfix
+USE_LDCONFIG= yes
+SHEBANG_FILES= lib/fixmswrd.pl
+WANT_GNOME= yes
+# normazile WRKSRC so things like cups-pstoraster may work
+WRKSRC= ${WRKDIR}/${PORTNAME}
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= ${MAKE_ENV}
+CONFIGURE_ARGS= --disable-compile-inits \
+ --with-ijs
+MAKE_ENV= CFLAGS_STANDARD="${CFLAGS}" \
+ XCFLAGS="${XCFLAGS}" XLDFLAGS="${XLDFLAGS}" \
+ EXTRALIBS="${EXTRALIBS}"
+CPPFLAGS+= -fPIC -DUPD_SIGNAL=0 -I. -I${WRKSRC}/gimp-print \
+ -I${LOCALBASE}/include/libpng -I${LOCALBASE}/include \
+ -I${LOCALBASE}/include/libpng15
+LDFLAGS+= ${XLDFLAGS}
+XCFLAGS= ${PTHREAD_CFLAGS}
+XLDFLAGS= -L${LOCALBASE}/lib -L${WRKSRC}/gimp-print ${PTHREAD_LIBS}
+PLIST_SUB= GS_VERSION="${PORTVERSION}"
+
+OPTIONS_DEFINE= X11 DOCS A4SIZE
+OPTIONS_DEFAULT=X11 DOCS A4SIZE
+NO_OPTIONS_SORT=yes
+X11_USE= GNOME=gtk12
+X11_MAKE_ENV= GS_SHLIB_VER="${SHLIB_VER}"
+A4SIZE_DESC= Set A4 (not Letter) as the default paper size
+
+post-extract-all:
+ ${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
+
+post-extract: post-extract-all
+
+.include "Makefile.drivers"
+.include <bsd.port.options.mk>
+
+MASTERDIR?= ${.CURDIR}
+.include "${MASTERDIR}/files/Makefile.drivers_post"
+
+.for D in ${OPTIONS_DEFINE:MGS_*:S/^GS_//} \
+ ${OPTIONS_MULTI_X11:MGS_*:S/^GS_//} \
+ ${OPTIONS_GROUP_SVGALIB:MGS_*:S/^GS_//}
+.if ${PORT_OPTIONS:MGS_${D}}
+PLIST_SUB+= GS_${D}=""
+.else
+PLIST_SUB+= GS_${D}="@comment "
+.endif
+.endfor
+
+.if ${PORT_OPTIONS:MA4SIZE}
+XCFLAGS+= -DA4
+.endif
+
+# contributed uniprint profiles
+CONTRIB_UPP= lqx70ch.upp lqx70cl.upp lqx70cm.upp \
+ stc740ih.upp stc740p.upp stc740pl.upp
+
+.if ${PORT_OPTIONS:MX11}
+SHLIB_VER= 1
+PLIST_SUB+= SHLIB="" X11="" SHLIB_VER="${SHLIB_VER}"
+ALL_TARGET= so
+INSTALL_TARGET= soinstall
+.if ${PORT_OPTIONS:MGS_pcl3}
+ALL_TARGET+= pcl3opts
+.endif
+.else
+ALL_TARGET= all
+PLIST_SUB+= SHLIB="@comment " X11="@comment "
+.endif
+
+post-patch:
+ ${REINPLACE_CMD} -e 's|^DEVICE_DEVS|#DEVICE_DEVS|g' \
+ ${WRKSRC}/src/unix-gcc.mak
+ ${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|g' \
+ ${WRKSRC}/lib/gs_res.ps
+
+pre-build-drivers.mak:
+ @${ECHO_CMD} '# automatically generated' > ${WRKSRC}/src/drivers.mak
+.for N in ${DEVS_LIST}
+ @${ECHO_CMD} 'DEVICE_${N}=' >> ${WRKSRC}/src/drivers.mak
+.endfor
+.for D in ${OPTIONS_DEFINE:MGS_*:S/^GS_//} \
+ ${OPTIONS_MULTI_X11:MGS_*:S/^GS_//} \
+ ${OPTIONS_GROUP_SVGALIB:MGS_*:S/^GS_//}
+.for N in ${DEVS_LIST}
+.if ${PORT_OPTIONS:MGS_${D}}
+.if !defined(OPTIONS_UNSET) || !${OPTIONS_UNSET:MGS_${D}}
+.for X in ${DEVICE_${N}:M${D}.dev}
+ @${ECHO_CMD} 'DEVICE_${N}+= $$(DD)${D}.dev' >> ${WRKSRC}/src/drivers.mak
+.endfor
+.endif
+.endif
+.endfor
+.endfor
+
+pre-build-contrib_extra.mak:
+ ${CAT} /dev/null ${EXTRADEVMKFILE} > ${WRKSRC}/src/contrib_extra.mak
+
+pre-build-all:
+ ${MKDIR} ${WRKSRC}/obj ${WRKSRC}/bin
+
+pre-build: pre-build-all pre-build-drivers.mak pre-build-contrib_extra.mak
+
+pre-su-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+
+post-install-docs:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+
+post-install:
+.if ${PORT_OPTIONS:MX11}
+ ${LN} -sf gsc ${STAGEDIR}${PREFIX}/bin/gs
+.endif
+ cd ${FILESDIR} \
+ && ${INSTALL_DATA} ${CONTRIB_UPP} \
+ ${STAGEDIR}${DATADIR}/${PORTVERSION}/lib
+
+post-install: post-install-docs
+
+.include <bsd.port.mk>
diff --git a/print/ghostscript7/Makefile.drivers b/print/ghostscript7/Makefile.drivers
new file mode 100644
index 000000000000..a9703ad24180
--- /dev/null
+++ b/print/ghostscript7/Makefile.drivers
@@ -0,0 +1,777 @@
+# $FreeBSD$
+
+OPTIONS_X11= \
+ GS_x11 \
+ GS_x11alpha \
+ GS_x11cmyk \
+ GS_x11cmyk2 \
+ GS_x11cmyk4 \
+ GS_x11cmyk8 \
+ GS_x11gray2 \
+ GS_x11gray4 \
+ GS_x11mono \
+ GS_x11rg16x \
+ GS_x11rg32x
+OPTIONS_MULTI= X11
+OPTIONS_MULTI_X11= ${OPTIONS_X11}
+
+OPTIONS_SVGALIB= \
+ GS_lvga256 \
+ GS_vgalib
+OPTIONS_GROUP= SVGALIB
+OPTIONS_GROUP_SVGALIB= ${OPTIONS_SVGALIB}
+
+OPTIONS_DEFINE+= \
+ GS_md2k \
+ GS_md5k \
+ GS_md50Mono \
+ GS_md50Eco \
+ GS_md1xMono \
+ GS_appledmp \
+ GS_iwhi \
+ GS_iwlo \
+ GS_iwlq \
+ GS_hl7x0 \
+ GS_hl1240 \
+ GS_hl1250 \
+ GS_bj10e \
+ GS_bj10v \
+ GS_bj10vh \
+ GS_bj200 \
+ GS_bjc600 \
+ GS_bjc800 \
+ GS_bjccmyk \
+ GS_bjccolor \
+ GS_bjcgray \
+ GS_bjcmono \
+ GS_lbp8 \
+ GS_lbp1310 \
+ GS_lbp1510 \
+ GS_lbp1610 \
+ GS_lbp1710 \
+ GS_lbp1810 \
+ GS_lbp1910 \
+ GS_lips2p \
+ GS_lips3 \
+ GS_lips4 \
+ GS_bjc880j \
+ GS_lips4v \
+ GS_m8510 \
+ GS_coslw2p \
+ GS_coslwxl \
+ GS_stp \
+ GS_uniprint \
+ GS_dmprt \
+ GS_lj250 \
+ GS_declj250 \
+ GS_ap3250 \
+ GS_epson \
+ GS_eps9mid \
+ GS_eps9high \
+ GS_lp8000 \
+ GS_epag \
+ GS_escpage \
+ GS_lp2000 \
+ GS_alc8600 \
+ GS_alc8500 \
+ GS_alc2000 \
+ GS_alc4000 \
+ GS_alc1900 \
+ GS_alc4100 \
+ GS_lp9800c \
+ GS_lp9000c \
+ GS_lp9500c \
+ GS_lp8800c \
+ GS_lp8300c \
+ GS_lp8500c \
+ GS_lp3000c \
+ GS_lp8200c \
+ GS_lp8000c \
+ GS_epl6100 \
+ GS_epl5900 \
+ GS_epl5800 \
+ GS_epl2050 \
+ GS_epl2050p \
+ GS_epl2120 \
+ GS_epl2500 \
+ GS_epl2750 \
+ GS_lp9000b \
+ GS_lp2500 \
+ GS_lp9100 \
+ GS_lp7900 \
+ GS_lp7500 \
+ GS_lp2400 \
+ GS_lp2200 \
+ GS_lp9400 \
+ GS_lp8900 \
+ GS_lp8700 \
+ GS_lp8100 \
+ GS_lp7700 \
+ GS_lp8600f \
+ GS_lp8400f \
+ GS_lp8300f \
+ GS_lp1900 \
+ GS_lp9600s \
+ GS_lp9300 \
+ GS_lp9600 \
+ GS_lp8600 \
+ GS_lp1800 \
+ GS_lq850 \
+ GS_epsonc \
+ GS_mjc180 \
+ GS_mjc360 \
+ GS_mjc720 \
+ GS_mj500c \
+ GS_st800 \
+ GS_stcolor \
+ GS_photoex \
+ GS_lp2563 \
+ GS_dnj650c \
+ GS_deskjet \
+ GS_djet500 \
+ GS_cdeskjet \
+ GS_djet500c \
+ GS_cdjcolor \
+ GS_cdjmono \
+ GS_cdj500 \
+ GS_cdj550 \
+ GS_cdj670 \
+ GS_cdj850 \
+ GS_cdj880 \
+ GS_cdj890 \
+ GS_cdj1600 \
+ GS_cdj970 \
+ GS_laserjet \
+ GS_ljetplus \
+ GS_ljet2p \
+ GS_ljet3 \
+ GS_ljet3d \
+ GS_ljet4 \
+ GS_ljet4d \
+ GS_lj4dith \
+ GS_cljet5 \
+ GS_cljet5c \
+ GS_cljet5pr \
+ GS_lj5mono \
+ GS_lj5gray \
+ GS_pj \
+ GS_pjetxl \
+ GS_pjxl \
+ GS_paintjet \
+ GS_pjxl300 \
+ GS_pxlmono \
+ GS_pxlcolor \
+ GS_pcl3 \
+ GS_ijs \
+ GS_ibmpro \
+ GS_jetp3852 \
+ GS_imagen \
+ GS_fs600 \
+ GS_lxm5700m \
+ GS_lxm3200 \
+ GS_lx5000 \
+ GS_lex2050 \
+ GS_lex3200 \
+ GS_lex5700 \
+ GS_lex7000 \
+ GS_cp50 \
+ GS_necp6 \
+ GS_npdl \
+ GS_oce9050 \
+ GS_oki182 \
+ GS_okiibm \
+ GS_atx23 \
+ GS_atx24 \
+ GS_atx38 \
+ GS_r4081 \
+ GS_rpdl \
+ GS_gdi \
+ GS_sj48 \
+ GS_t4693d2 \
+ GS_t4693d4 \
+ GS_t4693d8 \
+ GS_tek4696 \
+ GS_bmpmono \
+ GS_bmpgray \
+ GS_bmp16 \
+ GS_bmp256 \
+ GS_bmp16m \
+ GS_bmp32b \
+ GS_bmpsep1 \
+ GS_bmpsep8 \
+ GS_ccr \
+ GS_cgmmono \
+ GS_cgm8 \
+ GS_cgm24 \
+ GS_cif \
+ GS_dfaxhigh \
+ GS_dfaxlow \
+ GS_faxg3 \
+ GS_faxg32d \
+ GS_faxg4 \
+ GS_miff24 \
+ GS_inferno \
+ GS_jpeg \
+ GS_jpeggray \
+ GS_mgrmono \
+ GS_mgrgray2 \
+ GS_mgrgray4 \
+ GS_mgrgray8 \
+ GS_mgr4 \
+ GS_mgr8 \
+ GS_pcxmono \
+ GS_pcxgray \
+ GS_pcx16 \
+ GS_pcx256 \
+ GS_pcx24b \
+ GS_pcxcmyk \
+ GS_pdfwrite \
+ GS_bit \
+ GS_bitrgb \
+ GS_bitcmyk \
+ GS_plan9bm \
+ GS_pam \
+ GS_pbm \
+ GS_pbmraw \
+ GS_pgm \
+ GS_pgmraw \
+ GS_pgnm \
+ GS_pgnmraw \
+ GS_pnm \
+ GS_pnmraw \
+ GS_ppm \
+ GS_ppmraw \
+ GS_pkm \
+ GS_pkmraw \
+ GS_pksm \
+ GS_pksmraw \
+ GS_pngmono \
+ GS_pnggray \
+ GS_png16 \
+ GS_png256 \
+ GS_png16m \
+ GS_pngalpha \
+ GS_psmono \
+ GS_psgray \
+ GS_psrgb \
+ GS_pswrite \
+ GS_epswrite \
+ GS_sgirgb \
+ GS_sunhmono \
+ GS_tiffcrle \
+ GS_tiffg3 \
+ GS_tiffg32d \
+ GS_tiffg4 \
+ GS_tiff12nc \
+ GS_tiff24nc \
+ GS_tifflzw \
+ GS_tiffpack \
+ GS_bbox
+
+OPTIONS_DEFAULT+= \
+ ${OPTIONS_X11} \
+ ${OPTIONS_SVGALIB} \
+ GS_md2k \
+ GS_md5k \
+ GS_md50Mono \
+ GS_md50Eco \
+ GS_md1xMono \
+ GS_appledmp \
+ GS_iwhi \
+ GS_iwlo \
+ GS_iwlq \
+ GS_hl7x0 \
+ GS_hl1240 \
+ GS_hl1250 \
+ GS_bj10e \
+ GS_bj10v \
+ GS_bj10vh \
+ GS_bj200 \
+ GS_bjc600 \
+ GS_bjc800 \
+ GS_bjccmyk \
+ GS_bjccolor \
+ GS_bjcgray \
+ GS_bjcmono \
+ GS_lbp8 \
+ GS_lbp1310 \
+ GS_lbp1510 \
+ GS_lbp1610 \
+ GS_lbp1710 \
+ GS_lbp1810 \
+ GS_lbp1910 \
+ GS_lips2p \
+ GS_lips3 \
+ GS_lips4 \
+ GS_bjc880j \
+ GS_lips4v \
+ GS_m8510 \
+ GS_coslw2p \
+ GS_coslwxl \
+ GS_stp \
+ GS_uniprint \
+ GS_dmprt \
+ GS_lj250 \
+ GS_declj250 \
+ GS_ap3250 \
+ GS_epson \
+ GS_eps9mid \
+ GS_eps9high \
+ GS_lp8000 \
+ GS_epag \
+ GS_escpage \
+ GS_lp2000 \
+ GS_alc8600 \
+ GS_alc8500 \
+ GS_alc2000 \
+ GS_alc4000 \
+ GS_alc1900 \
+ GS_alc4100 \
+ GS_lp9800c \
+ GS_lp9000c \
+ GS_lp9500c \
+ GS_lp8800c \
+ GS_lp8300c \
+ GS_lp8500c \
+ GS_lp3000c \
+ GS_lp8200c \
+ GS_lp8000c \
+ GS_epl6100 \
+ GS_epl5900 \
+ GS_epl5800 \
+ GS_epl2050 \
+ GS_epl2050p \
+ GS_epl2120 \
+ GS_epl2500 \
+ GS_epl2750 \
+ GS_lp9000b \
+ GS_lp2500 \
+ GS_lp9100 \
+ GS_lp7900 \
+ GS_lp7500 \
+ GS_lp2400 \
+ GS_lp2200 \
+ GS_lp9400 \
+ GS_lp8900 \
+ GS_lp8700 \
+ GS_lp8100 \
+ GS_lp7700 \
+ GS_lp8600f \
+ GS_lp8400f \
+ GS_lp8300f \
+ GS_lp1900 \
+ GS_lp9600s \
+ GS_lp9300 \
+ GS_lp9600 \
+ GS_lp8600 \
+ GS_lp1800 \
+ GS_lq850 \
+ GS_epsonc \
+ GS_mjc180 \
+ GS_mjc360 \
+ GS_mjc720 \
+ GS_mj500c \
+ GS_st800 \
+ GS_stcolor \
+ GS_photoex \
+ GS_lp2563 \
+ GS_dnj650c \
+ GS_deskjet \
+ GS_djet500 \
+ GS_cdeskjet \
+ GS_djet500c \
+ GS_cdjcolor \
+ GS_cdjmono \
+ GS_cdj500 \
+ GS_cdj550 \
+ GS_cdj670 \
+ GS_cdj850 \
+ GS_cdj880 \
+ GS_cdj890 \
+ GS_cdj1600 \
+ GS_cdj970 \
+ GS_laserjet \
+ GS_ljetplus \
+ GS_ljet2p \
+ GS_ljet3 \
+ GS_ljet3d \
+ GS_ljet4 \
+ GS_ljet4d \
+ GS_lj4dith \
+ GS_cljet5 \
+ GS_cljet5c \
+ GS_cljet5pr \
+ GS_lj5mono \
+ GS_lj5gray \
+ GS_pj \
+ GS_pjetxl \
+ GS_pjxl \
+ GS_paintjet \
+ GS_pjxl300 \
+ GS_pxlmono \
+ GS_pxlcolor \
+ GS_pcl3 \
+ GS_ijs \
+ GS_ibmpro \
+ GS_jetp3852 \
+ GS_imagen \
+ GS_fs600 \
+ GS_lxm5700m \
+ GS_lxm3200 \
+ GS_lx5000 \
+ GS_lex2050 \
+ GS_lex3200 \
+ GS_lex5700 \
+ GS_lex7000 \
+ GS_cp50 \
+ GS_necp6 \
+ GS_npdl \
+ GS_oce9050 \
+ GS_oki182 \
+ GS_okiibm \
+ GS_atx23 \
+ GS_atx24 \
+ GS_atx38 \
+ GS_r4081 \
+ GS_rpdl \
+ GS_gdi \
+ GS_sj48 \
+ GS_t4693d2 \
+ GS_t4693d4 \
+ GS_t4693d8 \
+ GS_tek4696 \
+ GS_bmpmono \
+ GS_bmpgray \
+ GS_bmp16 \
+ GS_bmp256 \
+ GS_bmp16m \
+ GS_bmp32b \
+ GS_bmpsep1 \
+ GS_bmpsep8 \
+ GS_ccr \
+ GS_cgmmono \
+ GS_cgm8 \
+ GS_cgm24 \
+ GS_cif \
+ GS_dfaxhigh \
+ GS_dfaxlow \
+ GS_faxg3 \
+ GS_faxg32d \
+ GS_faxg4 \
+ GS_miff24 \
+ GS_inferno \
+ GS_jpeg \
+ GS_jpeggray \
+ GS_mgrmono \
+ GS_mgrgray2 \
+ GS_mgrgray4 \
+ GS_mgrgray8 \
+ GS_mgr4 \
+ GS_mgr8 \
+ GS_pcxmono \
+ GS_pcxgray \
+ GS_pcx16 \
+ GS_pcx256 \
+ GS_pcx24b \
+ GS_pcxcmyk \
+ GS_pdfwrite \
+ GS_bit \
+ GS_bitrgb \
+ GS_bitcmyk \
+ GS_plan9bm \
+ GS_pam \
+ GS_pbm \
+ GS_pbmraw \
+ GS_pgm \
+ GS_pgmraw \
+ GS_pgnm \
+ GS_pgnmraw \
+ GS_pnm \
+ GS_pnmraw \
+ GS_ppm \
+ GS_ppmraw \
+ GS_pkm \
+ GS_pkmraw \
+ GS_pksm \
+ GS_pksmraw \
+ GS_pngmono \
+ GS_pnggray \
+ GS_png16 \
+ GS_png256 \
+ GS_png16m \
+ GS_pngalpha \
+ GS_psmono \
+ GS_psgray \
+ GS_psrgb \
+ GS_pswrite \
+ GS_epswrite \
+ GS_sgirgb \
+ GS_sunhmono \
+ GS_tiffcrle \
+ GS_tiffg3 \
+ GS_tiffg32d \
+ GS_tiffg4 \
+ GS_tiff12nc \
+ GS_tiff24nc \
+ GS_tifflzw \
+ GS_tiffpack \
+ GS_bbox
+
+GS_x11_DESC= D: X Window System version 11, release >=4
+GS_x11alpha_DESC= D: X Window System masquer. alpha capability
+GS_x11cmyk_DESC= D: X Window System masquer. 1bit/plane CMYK
+GS_x11cmyk2_DESC= D: X Window System 2-bit-per-plane CMYK
+GS_x11cmyk4_DESC= D: X Window System 4-bit-per-plane CMYK
+GS_x11cmyk8_DESC= D: X Window System 8-bit-per-plane CMYK
+GS_x11gray2_DESC= D: X Window System 2-bit gray-scale
+GS_x11gray4_DESC= D: X Window System 4-bit gray-scale
+GS_x11mono_DESC= D: X Window System masquer. black-and-white
+GS_x11rg16x_DESC= D: X Window System G5/B5/R6 pixel layout
+GS_x11rg32x_DESC= D: X Window System G11/B10/R11 pixel layout
+GS_lvga256_DESC= D: SVGAlib, 256-color VGA modes
+GS_vgalib_DESC= D: SVGAlib, 16-color VGA modes
+GS_md2k_DESC= D: ALPS MD-2000/2010/4000/1300/1500/5000
+GS_md5k_DESC= D: ALPS MD-5000 Eco Mode
+GS_md50Mono_DESC= D: ALPS MD-5000 Monochrome
+GS_md50Eco_DESC= D: ALPS MD-5000 Eco Mode
+GS_md1xMono_DESC= D: ALPS MD-1x00 Monochrome
+GS_appledmp_DESC= D: Apple Dot Matrix Printer/Imagewriter
+GS_iwhi_DESC= D: Apple Imagewriter, high-resolution mode
+GS_iwlo_DESC= D: Apple Imagewriter, low-resolution mode
+GS_iwlq_DESC= D: Apple Imagewriter LQ in 320x216dpi mode
+GS_hl7x0_DESC= D: Brother HL-720/730/760(=PCL), MFC6550MC
+GS_hl1240_DESC= D: Brother HL-1030/1240
+GS_hl1250_DESC= D: Brother HL-1050/1070/1250/1270N
+GS_bj10e_DESC= D: Canon BJ-10e
+GS_bj10v_DESC= D: Canon BJ-10v
+GS_bj10vh_DESC= D: Canon BJ-10v, high-mergin
+GS_bj200_DESC= D: Canon BJ-200/BJC-240(mono)
+GS_bjc600_DESC= D: Canon BJC-600/4xxx/70, StyleWriter 2x00
+GS_bjc800_DESC= D: Canon BJC-240/800
+GS_bjccmyk_DESC= D: Canon BJC-210/240/250/265/1000
+GS_bjccolor_DESC= D: Canon BJC-210/240/250/265/1000 truecolor
+GS_bjcgray_DESC= D: Canon BJC-210/240/250/265/1000 grayscale
+GS_bjcmono_DESC= D: Canon BJC-210/240/250/265/1000 monochrome
+GS_lbp8_DESC= D: Canon LBP-8II
+GS_lbp1310_DESC= D: Canon LBP-1310
+GS_lbp1510_DESC= D: Canon LBP-1510
+GS_lbp1610_DESC= D: Canon LBP-1610
+GS_lbp1710_DESC= D: Canon LBP-1710
+GS_lbp1810_DESC= D: Canon LBP-1810
+GS_lbp1910_DESC= D: Canon LBP-1910
+GS_lips2p_DESC= D: Canon LIPS II+
+GS_lips3_DESC= D: Canon LIPS III
+GS_lips4_DESC= D: Canon LIPS IV
+GS_bjc880j_DESC= D: Canon LIPS IVc, BJC-680J/880J
+GS_lips4v_DESC= D: Canon LIPS IV, vector output mode
+GS_m8510_DESC= D: C.Itoh M8510 printer
+GS_coslw2p_DESC= D: CoStar LabelWriter II II/Plus
+GS_coslwxl_DESC= D: CoStar LabelWriter XL
+GS_stp_DESC= D: Configurable Canon/Epson/Lexmark/HP driver
+GS_uniprint_DESC= D: Configurable ESC/P,ESC/P2,HP-RTL/PCL,P2X
+GS_dmprt_DESC= D: Configurable dot matrix printer driver
+GS_lj250_DESC= D: DEC LJ250 Companion color printer
+GS_declj250_DESC= D: DEC LJ250 driver (alternate)
+GS_ap3250_DESC= D: Epson ActionPrinter 3250
+GS_epson_DESC= D: Epson dot matrix, 9/24-pin
+GS_eps9mid_DESC= D: Epson 9-pin, interleaved lines, medium res
+GS_eps9high_DESC= D: Epson 9-pin, interleaved lines, triple res
+GS_lp8000_DESC= D: Epson LP-8000 line printer
+GS_epag_DESC= D: Epson ESC/Page laser printer (generic)
+GS_escpage_DESC= D: Epson ESC/Page laser printer (generic)
+GS_lp2000_DESC= D: Epson LP-2000/3000/7000/7000G laser printer
+GS_alc8600_DESC= D: Epson AL-C8600 color laser printer
+GS_alc8500_DESC= D: Epson AL-C8500 color laser printer
+GS_alc2000_DESC= D: Epson AL-C2000 color laser printer
+GS_alc4000_DESC= D: Epson AL-C4000 color laser printer
+GS_alc1900_DESC= D: Epson AL-C1900 color laser printer
+GS_alc4100_DESC= D: Epson AL-C4100 color laser printer
+GS_lp9800c_DESC= D: Epson LP-9800C color laser printer
+GS_lp9000c_DESC= D: Epson LP-9000C color laser printer
+GS_lp9500c_DESC= D: Epson LP-9500C color laser printer
+GS_lp8800c_DESC= D: Epson LP-8800C color laser printer
+GS_lp8300c_DESC= D: Epson LP-8300C color laser printer
+GS_lp8500c_DESC= D: Epson LP-8500C color laser printer
+GS_lp3000c_DESC= D: Epson LP-3000C color laser printer
+GS_lp8200c_DESC= D: Epson LP-8200C color laser printer
+GS_lp8000c_DESC= D: Epson LP-8000C color laser printer
+GS_epl6100_DESC= D: Epson EPL-6100 laser printer
+GS_epl5900_DESC= D: Epson EPL-5900 laser printer
+GS_epl5800_DESC= D: Epson EPL-5800 laser printer
+GS_epl2050_DESC= D: Epson EPL-N2050 laser printer
+GS_epl2050p_DESC= D: Epson EPL-N2050+ laser printer
+GS_epl2120_DESC= D: Epson EPL-N2120 laser printer
+GS_epl2500_DESC= D: Epson EPL-N2500 laser printer
+GS_epl2750_DESC= D: Epson EPL-N2750 laser printer
+GS_lp9000b_DESC= D: Epson LP-9000B laser printer
+GS_lp2500_DESC= D: Epson LP-2500 laser printer
+GS_lp9100_DESC= D: Epson LP-9100(R) laser printer
+GS_lp7900_DESC= D: Epson LP-7900(R) laser printer
+GS_lp7500_DESC= D: Epson LP-7500(R) laser printer
+GS_lp2400_DESC= D: Epson LP-2400 laser printer
+GS_lp2200_DESC= D: Epson LP-2200 laser printer
+GS_lp9400_DESC= D: Epson LP-9400(R) laser printer
+GS_lp8900_DESC= D: Epson LP-8900(R) laser printer
+GS_lp8700_DESC= D: Epson LP-8700(R) laser printer
+GS_lp8100_DESC= D: Epson LP-8100(R) laser printer
+GS_lp7700_DESC= D: Epson LP-7700(R) laser printer
+GS_lp8600f_DESC= D: Epson LP-8600FX(N) laser printer
+GS_lp8400f_DESC= D: Epson LP-8400FX(N) laser printer
+GS_lp8300f_DESC= D: Epson LP-8300F laser printer
+GS_lp1900_DESC= D: Epson LP-1900(N) laser printer
+GS_lp9600s_DESC= D: Epson LP-9600S laser printer
+GS_lp9300_DESC= D: Epson LP-9300 laser printer
+GS_lp9600_DESC= D: Epson LP-9600 laser printer
+GS_lp8600_DESC= D: Epson LP-8600FX(N) laser printer
+GS_lp1800_DESC= D: Epson LP-1800 laser printer
+GS_lq850_DESC= D: Epson LQ-850 (360x360, emul on Canon BJ300)
+GS_epsonc_DESC= D: Epson LQ-2550, Fujitsu 3400/2400/1200 color
+GS_mjc180_DESC= D: Epson MachJet series 180dpi, CMYK
+GS_mjc360_DESC= D: Epson MachJet series 360dpi, CMYK
+GS_mjc720_DESC= D: Epson MachJet series 720dpi, CMYK
+GS_mj500c_DESC= D: Epson MachJet MJ-500C 360dpi, CMY/mono
+GS_st800_DESC= D: Epson Stylus 800 printer
+GS_stcolor_DESC= D: Epson Stylus Color and II/IIs/1500
+GS_photoex_DESC= D: Epson Stylus Color Photo/Photo EX/Photo 700
+GS_lp2563_DESC= D: HP 2563B line printer
+GS_dnj650c_DESC= D: HP DesignJet 650C
+GS_deskjet_DESC= D: HP DeskJet and DeskJet Plus
+GS_djet500_DESC= D: HP DeskJet 500 (for DeskJet 600 use -r600)
+GS_cdeskjet_DESC= D: HP DeskJet 500C (1b/px)
+GS_djet500c_DESC= D: HP DeskJet 500C (alternative)
+GS_cdjcolor_DESC= D: HP DeskJet 500C/540C (24b/px)
+GS_cdjmono_DESC= D: HP DeskJet 500/510/520/540C (mono)
+GS_cdj500_DESC= D: HP DeskJet 500/540C (same as cdjcolor)
+GS_cdj550_DESC= D: HP DeskJet 550C/560C/660C/660Cse
+GS_cdj670_DESC= D: HP DeskJet 670/690
+GS_cdj850_DESC= D: HP DeskJet 850/855/870/1100
+GS_cdj880_DESC= D: HP DeskJet 880
+GS_cdj890_DESC= D: HP DeskJet 890
+GS_cdj1600_DESC= D: HP DeskJet 1600
+GS_cdj970_DESC= D: HP DeskJet 970CXi
+GS_laserjet_DESC= D: HP LaserJet
+GS_ljetplus_DESC= D: HP LaserJet Plus
+GS_ljet2p_DESC= D: HP LaserJet IId/IIp/III* (TIFF compression)
+GS_ljet3_DESC= D: HP LaserJet III* (Delta Row compression)
+GS_ljet3d_DESC= D: HP LaserJet IIID (duplex capability)
+GS_ljet4_DESC= D: HP LaserJet 4/5L/5P (not real LJ5), 600dpi
+GS_ljet4d_DESC= D: HP LaserJet 4 (duplex + 600dpi)
+GS_lj4dith_DESC= D: HP LaserJet 4 (Floyd-Steinberg dithering)
+GS_cljet5_DESC= D: HP LaserJet 5/5M Color (new)
+GS_cljet5c_DESC= D: HP LaserJet 5/5M Color Simple
+GS_cljet5pr_DESC= D: HP LaserJet 5/5M Color (old)
+GS_lj5mono_DESC= D: HP LaserJet 5/6 (PCL5/PCL XL), bitmap
+GS_lj5gray_DESC= D: HP LaserJet 5/6 gray-scale bitmap
+GS_pj_DESC= D: HP PaintJet XL driver
+GS_pjetxl_DESC= D: HP PaintJet XL driver (alternate)
+GS_pjxl_DESC= D: HP PaintJet XL color printer
+GS_paintjet_DESC= D: HP PaintJet color printer (alternate)
+GS_pjxl300_DESC= D: HP PaintJet XL300, DeskJet 1200C, CopyJet
+GS_pxlmono_DESC= D: HP PCL XL mono (LaserJet 5/6 family)
+GS_pxlcolor_DESC= D: HP PCL XL color (Color LaserJet 4500/5000)
+GS_pcl3_DESC= D: HP PCL 3+ (generic)
+GS_ijs_DESC= D: HP Inkjet and other raster devices
+GS_ibmpro_DESC= D: IBM 9-pin Proprinter
+GS_jetp3852_DESC= D: IBM Jetprinter ink-jet color (Model #3852)
+GS_imagen_DESC= D: Imagen ImPress printers
+GS_fs600_DESC= D: Kyocera FS-600 (600 dpi)
+GS_lxm5700m_DESC= D: Lexmark 5700 monotone
+GS_lxm3200_DESC= D: Lexmark 3200/Z12/Z22/Z31/Z32
+GS_lx5000_DESC= D: Lexmark 5000/Z51/Z82
+GS_lex2050_DESC= D: Lexmark 2050
+GS_lex3200_DESC= D: Lexmark 3200
+GS_lex5700_DESC= D: Lexmark 5700
+GS_lex7000_DESC= D: Lexmark 7000
+GS_cp50_DESC= D: Mitsubishi CP50 color
+GS_necp6_DESC= D: NEC PinWriter P6/P6+/P60 (360x360)
+GS_npdl_DESC= D: NEC Printer Description Language
+GS_oce9050_DESC= D: OCE 9050 printer
+GS_oki182_DESC= D: Okidata MicroLine 182
+GS_okiibm_DESC= D: Okidata MicroLine IBM-compatible printers
+GS_atx23_DESC= D: Practical Automation ATX-23
+GS_atx24_DESC= D: Practical Automation ATX-24
+GS_atx38_DESC= D: Practical Automation ATX-38
+GS_r4081_DESC= D: Ricoh 4081 laser printer
+GS_rpdl_DESC= D: Ricoh Printer Description Language
+GS_gdi_DESC= D: Samsung SmartGDI laser printer
+GS_sj48_DESC= D: StarJet 48 inkjet printer
+GS_t4693d2_DESC= D: Tektronix 4693d color, 2b/RGB
+GS_t4693d4_DESC= D: Tektronix 4693d color, 4b/RGB
+GS_t4693d8_DESC= D: Tektronix 4693d color, 8b/RGB
+GS_tek4696_DESC= D: Tektronix 4695/4696 inkjet plotter
+GS_bmpmono_DESC= D: BMP Monochrome
+GS_bmpgray_DESC= D: BMP 8-bit gray
+GS_bmp16_DESC= D: BMP 4-bit EGA/VGA
+GS_bmp256_DESC= D: BMP 8-bit 256-color
+GS_bmp16m_DESC= D: BMP 24-bit
+GS_bmp32b_DESC= D: BMP 32-bit pseudo-.BMP
+GS_bmpsep1_DESC= D: BMP Separated 1-bit CMYK
+GS_bmpsep8_DESC= D: BMP Separated 8-bit CMYK
+GS_ccr_DESC= D: CalComp Raster format
+GS_cgmmono_DESC= D: CGM Monochrome -- LOW LEVEL OUTPUT ONLY
+GS_cgm8_DESC= D: CGM 8-bit 256-color -- DITTO
+GS_cgm24_DESC= D: CGM 24-bit color -- DITTO
+GS_cif_DESC= D: CIF file format for VLSI
+GS_dfaxhigh_DESC= D: DigiBoard, DigiFAX (high res)
+GS_dfaxlow_DESC= D: DigiFAX (normal res)
+GS_faxg3_DESC= D: Group 3 FAX (EOL + no header/EOD)
+GS_faxg32d_DESC= D: Group 3 2-D FAX (EOL + no header/EOD)
+GS_faxg4_DESC= D: Group 4 FAX (EOL + no header/EOD)
+GS_miff24_DESC= D: ImageMagick MIFF, 24-bit direct color, RLE
+GS_inferno_DESC= D: Inferno bitmaps
+GS_jpeg_DESC= D: JPEG format, RGB output
+GS_jpeggray_DESC= D: JPEG format, gray output
+GS_mgrmono_DESC= D: MGR devices 1-bit monochrome
+GS_mgrgray2_DESC= D: MGR devices 2-bit gray scale
+GS_mgrgray4_DESC= D: MGR devices 4-bit gray scale
+GS_mgrgray8_DESC= D: MGR devices 8-bit gray scale
+GS_mgr4_DESC= D: MGR devices 4-bit (VGA) color
+GS_mgr8_DESC= D: MGR devices 8-bit color
+GS_pcxmono_DESC= D: PCX, 1-bit monochrome
+GS_pcxgray_DESC= D: PCX, 8-bit gray scale
+GS_pcx16_DESC= D: PCX, 4-bit planar EGA/VGA color
+GS_pcx256_DESC= D: PCX, 8-bit chunky color
+GS_pcx24b_DESC= D: PCX, 24-bit color 3x8-bit planes
+GS_pcxcmyk_DESC= D: PCX, 4-bit chunky CMYK color
+GS_pdfwrite_DESC= D: Portable Document Format
+GS_bit_DESC= D: Plain bits, monochrome
+GS_bitrgb_DESC= D: Plain bits, RGB
+GS_bitcmyk_DESC= D: Plain bits, CMYK
+GS_plan9bm_DESC= D: Plan 9 bitmap format
+GS_pam_DESC= D: Portable Arbitrary Map file
+GS_pbm_DESC= D: Portable Bitmap, plain
+GS_pbmraw_DESC= D: Portable Bitmap, raw
+GS_pgm_DESC= D: Portable Graymap, plain
+GS_pgmraw_DESC= D: Portable Graymap, raw
+GS_pgnm_DESC= D: Portable Graymap, plain (PBM opt)
+GS_pgnmraw_DESC= D: Portable Graymap, raw (PBM opt)
+GS_pnm_DESC= D: Portable Pixmap, plain RGB (PGM/PBM opt)
+GS_pnmraw_DESC= D: Portable Pixmap, raw RGB (PGM/PBM opt)
+GS_ppm_DESC= D: Portable Pixmap, plain RGB
+GS_ppmraw_DESC= D: Portable Pixmap, raw RGB
+GS_pkm_DESC= D: Portable inKmap, plain (4b CMYK=>RGB)
+GS_pkmraw_DESC= D: Portable inKmap, raw (4b CMYK=>RGB)
+GS_pksm_DESC= D: Portable Separated map, plain (4b CMYK=>4p)
+GS_pksmraw_DESC= D: Portable Separated map, raw (4b CMYK=>4p)
+GS_pngmono_DESC= D: PNG (Portable Network Graphics) Mono
+GS_pnggray_DESC= D: PNG 8-bit Gray
+GS_png16_DESC= D: PNG 4-bit Color
+GS_png256_DESC= D: PNG 8-bit Color
+GS_png16m_DESC= D: PNG 24-bit Color
+GS_pngalpha_DESC= D: PNG 32-bit RGBA Color
+GS_psmono_DESC= D: PostScript (Level 1) monochrome image
+GS_psgray_DESC= D: PostScript (Level 1) 8-bit gray image
+GS_psrgb_DESC= D: PostScript (Level 2) 24-bit color image
+GS_pswrite_DESC= D: PostScript (like PostScript Distiller)
+GS_epswrite_DESC= D: Encapsulated PostScript
+GS_sgirgb_DESC= D: SGI RGB pixmap format
+GS_sunhmono_DESC= D: Harlequin variant of 1-bit Sun raster file
+GS_tiffcrle_DESC= D: TIFF CCITT RLE 1 dim (G3 FAX with no EOL)
+GS_tiffg3_DESC= D: TIFF Group 3 FAX (with EOL)
+GS_tiffg32d_DESC= D: TIFF Group 3 2-D FAX
+GS_tiffg4_DESC= D: TIFF Group 4 FAX
+GS_tiff12nc_DESC= D: TIFF 12-bit RGB, no compress
+GS_tiff24nc_DESC= D: TIFF 24-bit RGB, no compress, NeXT format
+GS_tifflzw_DESC= D: TIFF LZW, tag = 5, mono
+GS_tiffpack_DESC= D: TIFF PackBits, tag = 32773, mono
+GS_bbox_DESC= D: Bounding box output
diff --git a/print/ghostscript7/distinfo b/print/ghostscript7/distinfo
new file mode 100644
index 000000000000..469d48f2381f
--- /dev/null
+++ b/print/ghostscript7/distinfo
@@ -0,0 +1,38 @@
+SHA256 (ghostscript/ghostscript-7.07.tar.bz2) = 6d87177a2fd2f08d75dde4b0c5bf45e2b0699d645faa382306f8edbb1531fd35
+SIZE (ghostscript/ghostscript-7.07.tar.bz2) = 4138372
+SHA256 (ghostscript/dmprt-2.01.tar.gz) = c3d8245ae48893856c6b63508262afbf54a3b16c3e606ab07797f46eb9e15ce7
+SIZE (ghostscript/dmprt-2.01.tar.gz) = 44232
+SHA256 (ghostscript/epag-3.09.tar.gz) = ad10eca44c781a5851d5a8993dcd95b2e2b99392cbf2c8372a5a658f3b991b3b
+SIZE (ghostscript/epag-3.09.tar.gz) = 12858
+SHA256 (ghostscript/pcl3-3.3.tar.gz) = 20fc33c741096a88c2aa6f6a03c025cad9bb224729dfffb91673c65c367ac714
+SIZE (ghostscript/pcl3-3.3.tar.gz) = 301470
+SHA256 (ghostscript/gdevcd8.tar.gz) = f52656a951e402f3775fdf09087944dba6f7a58edff17ce350692cee101cccf9
+SIZE (ghostscript/gdevcd8.tar.gz) = 24803
+SHA256 (ghostscript/gdevdj9.c.gz) = 7657dece1c2d9af15b7599e92f3170b9aaf927d429d90e4e928d3d7052fb376f
+SIZE (ghostscript/gdevdj9.c.gz) = 20139
+SHA256 (ghostscript/gimp-print-4.2.7.tar.gz) = a6cfcbb4bf32d12a553252b98e6a6fdb5d44fe37debad4480bbc9326e2c69489
+SIZE (ghostscript/gimp-print-4.2.7.tar.gz) = 5178122
+SHA256 (ghostscript/gdevmd2k-0.2a.tar.gz) = c99d6b4cc026c78729331c99a6d9ced24960c61b356c3a61162d2268274a7e7c
+SIZE (ghostscript/gdevmd2k-0.2a.tar.gz) = 9955
+SHA256 (ghostscript/gdevalps-0.21.tar.gz) = 250f54084bc186237e24233aa3cbffcc192e14b19620876a518b38ffe9b14421
+SIZE (ghostscript/gdevalps-0.21.tar.gz) = 4452
+SHA256 (ghostscript/gdev10v.tar.gz) = 99f51fa42c9223e2c6b3658d82c790cffbf146bd8ef60c89ddba56128c7a40d3
+SIZE (ghostscript/gdev10v.tar.gz) = 6099
+SHA256 (ghostscript/gs7.05-bjc250-v0.756.diff.gz) = aeeaa041a04a3ca95b50c1c1ebc60b7a570668fd110671610c0f21dab07ddd64
+SIZE (ghostscript/gs7.05-bjc250-v0.756.diff.gz) = 16501
+SHA256 (ghostscript/canon-lips4-1.0.0-651.tgz) = e11d11fa9d8645e4102a36d293cdf42498b5fbecc966d0bd104c5aa951c08cae
+SIZE (ghostscript/canon-lips4-1.0.0-651.tgz) = 38835
+SHA256 (ghostscript/gdevlips-2.4.0.tar.gz) = 24164cdc12cb0d03512c2f04ed82fa1e901625504367b8c53cc74134ee9c3047
+SIZE (ghostscript/gdevlips-2.4.0.tar.gz) = 67683
+SHA256 (ghostscript/eplaser-3.1.4-705.tgz) = ed1ccdf6ec613eb5e028786ad59cb3060f00c2ffa8ca5792bfd219514dc69f42
+SIZE (ghostscript/eplaser-3.1.4-705.tgz) = 44523
+SHA256 (ghostscript/gdevmjc-0.8.tar.gz) = cd922677798ce85b7e06d92694bb8b0012bc5d6ed66d6982f20eed471974f05b
+SIZE (ghostscript/gdevmjc-0.8.tar.gz) = 102654
+SHA256 (ghostscript/Samsung-SmartGDI-all-GS.orig.tar.gz) = 2c8c43e2318dd8b143344235ad7ccc203a3a8c4c50419f3967f1a999a92ea430
+SIZE (ghostscript/Samsung-SmartGDI-all-GS.orig.tar.gz) = 10488
+SHA256 (ghostscript/lxm3200-tweaked-20030501.tar.gz) = 9156ca7948158102938b127b356dfcd778e79a271893f56efe7cb65a41f46380
+SIZE (ghostscript/lxm3200-tweaked-20030501.tar.gz) = 39000
+SHA256 (ghostscript/gdevlx50.c) = 668de62188819f5c27f00ab04f1b7b58ff9ff52ac16497429a0637f412112117
+SIZE (ghostscript/gdevlx50.c) = 99428
+SHA256 (ghostscript/gs6.0.lexmark7000.patch) = 509dfc02436639ce6b9f98465ec306dd2e7f9342feded043c78b0c9cf44021df
+SIZE (ghostscript/gs6.0.lexmark7000.patch) = 27361
diff --git a/print/ghostscript7/files/Makefile.alps b/print/ghostscript7/files/Makefile.alps
new file mode 100644
index 000000000000..e30c5e793912
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.alps
@@ -0,0 +1,22 @@
+# $FreeBSD$
+# ALPS - additional driver for Alps MD-5000
+
+DISTFILES+= gdevalps-0.21.tar.gz:ports_jp_gs
+EXTRADEVMKFILE+= ${WRKSRC}/alps/gdevalps.mak-5.50
+PORTDOCS+= alps
+
+post-extract-alps:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gdevalps-0.21.tar.gz
+ ${LN} -s -f gdevalps-0.2 ${WRKSRC}/alps
+
+pre-build-alps:
+ ${LN} -s -f ${WRKSRC}/alps/gdevalps.c ${WRKSRC}/src
+
+post-install-docs-alps:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/alps
+ ${INSTALL_DATA} ${WRKSRC}/alps/README.gdevalps \
+ ${STAGEDIR}${DOCSDIR}/alps
+
+post-extract: post-extract-alps
+pre-build: pre-build-alps
+post-install-docs: post-install-docs-alps
diff --git a/print/ghostscript7/files/Makefile.bj10v b/print/ghostscript7/files/Makefile.bj10v
new file mode 100644
index 000000000000..92cb7ce6e31a
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.bj10v
@@ -0,0 +1,21 @@
+# $FreeBSD$
+# for Canon BJ-10V
+
+DISTFILES+= gdev10v.tar.gz:ports_jp_gs
+EXTRADEVMKFILE+= ${WRKSRC}/gdev10v/gdev10v.mak
+PORTDOCS+= bj10v
+
+post-extract-bj10v:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gdev10v.tar.gz
+
+pre-build-bj10v:
+ ${LN} -s -f ${WRKSRC}/gdev10v/gdev10v.c ${WRKSRC}/src
+
+post-install-docs-bj10v:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/bj10v
+ ${INSTALL_DATA} ${WRKSRC}/gdev10v/gdev10v.jis \
+ ${STAGEDIR}${DOCSDIR}/bj10v
+
+post-extract: post-extract-bj10v
+pre-build: pre-build-bj10v
+post-install-docs: post-install-docs-bj10v
diff --git a/print/ghostscript7/files/Makefile.bjc250 b/print/ghostscript7/files/Makefile.bjc250
new file mode 100644
index 000000000000..222c9e289c2e
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.bjc250
@@ -0,0 +1,23 @@
+# $FreeBSD$
+# BJC250 - additional driver for Canon BJC-210/240/250/265/1000
+# http://bjc250gs.sourceforge.net/
+
+MASTER_SITES+= ${MASTER_SITE_SOURCEFORGE:S/$/:bjc250/}
+MASTER_SITE_SUBDIR+= bjc250gs/:bjc250
+DISTFILES+= gs7.05-bjc250-v0.756.diff.gz:bjc250
+EXTRADEVMKFILE+= ${FILESDIR}/bjc250.contrib.mak
+
+post-extract-bjc250:
+ ${MKDIR} ${WRKSRC}/bjc250-v0.756/src
+ ${GZCAT} ${DISTDIR}/${DIST_SUBDIR}/gs7.05-bjc250-v0.756.diff.gz | \
+ ${PATCH} -d ${WRKSRC}/bjc250-v0.756 -f -s -N -E -p1 \
+ 2>/dev/null || ${TRUE}
+ ${LN} -s -f ${WRKSRC}/bjc250-v0.756 ${WRKSRC}/bjc250
+
+pre-build-bjc250:
+ ${LN} -s -f ${WRKSRC}/bjc250-v0.756/src/gdevbjc_.[ch] \
+ ${WRKSRC}/bjc250-v0.756/src/gdevbjca.c \
+ ${WRKSRC}/src
+
+post-extract: post-extract-bjc250
+pre-build: pre-build-bjc250
diff --git a/print/ghostscript7/files/Makefile.cdj880 b/print/ghostscript7/files/Makefile.cdj880
new file mode 100644
index 000000000000..32f2df5409d7
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.cdj880
@@ -0,0 +1,12 @@
+# $FreeBSD$
+# for HP DeskJet 812C/815C/832C/880C/882C/895C
+# http://www.gelhaus.net/hp880c/
+
+MASTER_SITES+= http://www.gelhaus.net/hp880c/1.4beta/:cdj880
+DISTFILES+= gdevcd8.tar.gz:cdj880
+EXTRADEVMKFILE+= ${FILESDIR}/cdj850.contrib.mak
+
+post-extract-cdj880:
+ ${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${DIST_SUBDIR}/gdevcd8.tar.gz
+
+post-extract: post-extract-cdj880
diff --git a/print/ghostscript7/files/Makefile.cdj970 b/print/ghostscript7/files/Makefile.cdj970
new file mode 100644
index 000000000000..c15b6d7d5dcf
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.cdj970
@@ -0,0 +1,12 @@
+# $FreeBSD$
+# DJ970 - additional driver for HP DeskJet 970, supports duplex printing
+# http://www.harsch.net/Ghostscript/ghostscript.html
+
+MASTER_SITES+= http://www.harsch.net/Download/:cdj970
+DISTFILES+= gdevdj9.c.gz:cdj970
+
+post-extract-cdj970:
+ ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/gdevdj9.c.gz ${WRKSRC}/src
+ ${GUNZIP_CMD} ${WRKSRC}/src/gdevdj9.c.gz
+
+post-extract: post-extract-cdj970
diff --git a/print/ghostscript7/files/Makefile.cpca b/print/ghostscript7/files/Makefile.cpca
new file mode 100644
index 000000000000..e48516153ece
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.cpca
@@ -0,0 +1,12 @@
+# $FreeBSD$
+# CPCA - additional driver for Canon CPCA printers
+# http://cweb.canon.jp/open-mie/technical/index-j.html
+
+MASTER_SITES+= ${MASTER_SITE_LOCAL:S/%SUBDIR%/pav/:S/$/:cpca/}
+DISTFILES+= canon-lips4-1.0.0-651.tgz:cpca
+EXTRADEVMKFILE+=${WRKSRC}/src/cpca_gdev.mak
+
+post-extract-cpca:
+ ${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${DIST_SUBDIR}/canon-lips4-1.0.0-651.tgz
+
+post-extract: post-extract-cpca
diff --git a/print/ghostscript7/files/Makefile.dmprt b/print/ghostscript7/files/Makefile.dmprt
new file mode 100644
index 000000000000..6b099ce9f92f
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.dmprt
@@ -0,0 +1,28 @@
+# $FreeBSD$
+# DMPRT - additional driver for generic dot matrix printers
+
+DISTFILES+= dmprt-2.01.tar.gz:ports_jp_gs
+EXTRADEVMKFILE+= ${WRKSRC}/src/gdevdmpr.mak
+PORTDOCS+= dmprt
+
+post-extract-dmprt:
+ ${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${DIST_SUBDIR}/dmprt-2.01.tar.gz
+
+post-patch-dmprt:
+ ${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|g' \
+ -e 's|%%PORTVERSION%%|${PORTVERSION}|g' \
+ ${WRKSRC}/src/dmp_site.ps
+
+post-install-dmprt:
+ cd ${WRKSRC}/src \
+ && ${INSTALL_DATA} dmp_init.ps dmp_site.ps escp_24.src \
+ ${STAGEDIR}${DATADIR}/${PORTVERSION}/lib
+
+post-install-docs-dmprt:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/dmprt
+ ${INSTALL_DATA} ${WRKSRC}/src/gdevdmpr.sj ${STAGEDIR}${DOCSDIR}/dmprt
+
+post-extract: post-extract-dmprt
+post-patch: post-patch-dmprt
+post-install: post-install-dmprt
+post-install-docs: post-install-docs-dmprt
diff --git a/print/ghostscript7/files/Makefile.drivers_post b/print/ghostscript7/files/Makefile.drivers_post
new file mode 100644
index 000000000000..72c1139803cb
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.drivers_post
@@ -0,0 +1,259 @@
+# $FreeBSD$
+# pre/postprocessing driver variables
+
+# dmprt specific
+.if ${PORT_OPTIONS:MGS_dmprt}
+.include "${MASTERDIR}/files/Makefile.dmprt"
+.endif
+
+# epag specific
+.if ${PORT_OPTIONS:MGS_epag}
+.include "${MASTERDIR}/files/Makefile.epag"
+.endif
+
+# pcl3 specific
+.if ${PORT_OPTIONS:MGS_pcl3}
+.include "${MASTERDIR}/files/Makefile.pcl3"
+.endif
+
+# vgalib specific
+VGA_DEVS= lvga256 vgalib
+.undef _VGA_DEVS
+
+.for D in ${VGA_DEVS}
+.if ${PORT_OPTIONS:MGS_${D}}
+.if ${ARCH:Mamd64} || ${ARCH:Mi386}
+_VGA_DEVS+= ${D}
+.else
+OPTIONS_UNSET+= ${PORT_OPTIONS:MGS_${D}}
+.endif
+.endif
+.endfor
+
+.if defined(_VGA_DEVS)
+LIB_DEPENDS+= libvga.so:${PORTSDIR}/graphics/svgalib
+.endif
+
+# x11 specific
+X11_DEVS= x11 x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 \
+ x11gray4 x11mono x11rg16x x11rg32x
+.undef _X11_DEVS
+
+.for D in ${X11_DEVS}
+.if ${PORT_OPTIONS:MX11} && ${PORT_OPTIONS:MGS_${D}}
+_X11_DEVS+= ${D}
+.else
+PORT_OPTIONS:= ${PORT_OPTIONS:NGS_${D}}
+.endif
+.endfor
+
+.if defined(_X11_DEVS)
+USE_XORG= xt xext
+CONFIGURE_ARGS+=--with-x \
+ --x-includes=${LOCALBASE}/include \
+ --x-libraries=${LOCALBASE}/lib
+CONFLICTS_INSTALL+= ghostscript7-nox11-[0-9]*
+.else # defined(_X11_DEVS)
+PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-nox11
+CONFIGURE_ARGS+=--without-x
+CONFLICTS_INSTALL+= ghostscript7-[0-9]*
+.endif # defined(_X11_DEVS)
+
+.if ${PORT_OPTIONS:MGS_cdj670} || \
+ ${PORT_OPTIONS:MGS_cdj850} || \
+ ${PORT_OPTIONS:MGS_cdj880} || \
+ ${PORT_OPTIONS:MGS_cdj890} || \
+ ${PORT_OPTIONS:MGS_cdj1600}
+.include "${MASTERDIR}/files/Makefile.cdj880"
+.endif
+.if ${PORT_OPTIONS:MGS_cdj970}
+.include "${MASTERDIR}/files/Makefile.cdj970"
+.endif
+
+.include "${MASTERDIR}/files/Makefile.gprint"
+
+.if ${PORT_OPTIONS:MGS_md2k} || \
+ ${PORT_OPTIONS:MGS_md5k}
+.include "${MASTERDIR}/files/Makefile.md2k"
+.endif
+
+.if ${PORT_OPTIONS:MGS_md50Mono} || \
+ ${PORT_OPTIONS:MGS_md50Eco} || \
+ ${PORT_OPTIONS:MGS_md1xMono}
+.include "${MASTERDIR}/files/Makefile.alps"
+.endif
+
+.if ${PORT_OPTIONS:MGS_bj10v} || \
+ ${PORT_OPTIONS:Mbj10vh}
+.include "${MASTERDIR}/files/Makefile.bj10v"
+.endif
+
+.if ${PORT_OPTIONS:MGS_bjccmyk} || \
+ ${PORT_OPTIONS:MGS_bjccolor} || \
+ ${PORT_OPTIONS:MGS_bjcgray} || \
+ ${PORT_OPTIONS:MGS_bjcmono}
+.include "${MASTERDIR}/files/Makefile.bjc250"
+.endif
+
+.if ${PORT_OPTIONS:MGS_lbp1310} || \
+ ${PORT_OPTIONS:MGS_lbp1510} || \
+ ${PORT_OPTIONS:MGS_lbp1610} || \
+ ${PORT_OPTIONS:MGS_lbp1710} || \
+ ${PORT_OPTIONS:MGS_lbp1810} || \
+ ${PORT_OPTIONS:MGS_lbp1910}
+.include "${MASTERDIR}/files/Makefile.cpca"
+.endif
+
+.if ${PORT_OPTIONS:MGS_lips2p} || \
+ ${PORT_OPTIONS:MGS_lips3} || \
+ ${PORT_OPTIONS:MGS_lips4} || \
+ ${PORT_OPTIONS:MGS_bjc880j} || \
+ ${PORT_OPTIONS:MGS_lips4v} || \
+ ${PORT_OPTIONS:MGS_escpage} || \
+ ${PORT_OPTIONS:MGS_lp2000} || \
+ ${PORT_OPTIONS:MGS_npdl} || \
+ ${PORT_OPTIONS:MGS_rpdl}
+.include "${MASTERDIR}/files/Makefile.lips"
+.endif
+
+.if ${PORT_OPTIONS:MGS_alc8600} || \
+ ${PORT_OPTIONS:MGS_alc8500} || \
+ ${PORT_OPTIONS:MGS_alc2000} || \
+ ${PORT_OPTIONS:MGS_alc4000} || \
+ ${PORT_OPTIONS:MGS_alc1900} || \
+ ${PORT_OPTIONS:MGS_alc4100} || \
+ ${PORT_OPTIONS:MGS_lp9800c} || \
+ ${PORT_OPTIONS:MGS_lp9000c} || \
+ ${PORT_OPTIONS:MGS_lp9500c} || \
+ ${PORT_OPTIONS:MGS_lp8800c} || \
+ ${PORT_OPTIONS:MGS_lp8300c} || \
+ ${PORT_OPTIONS:MGS_lp8500c} || \
+ ${PORT_OPTIONS:MGS_lp3000c} || \
+ ${PORT_OPTIONS:MGS_lp8200c} || \
+ ${PORT_OPTIONS:MGS_lp8000c} || \
+ ${PORT_OPTIONS:MGS_epl6100} || \
+ ${PORT_OPTIONS:MGS_epl5900} || \
+ ${PORT_OPTIONS:MGS_epl5800} || \
+ ${PORT_OPTIONS:MGS_epl2050} || \
+ ${PORT_OPTIONS:MGS_epl2050p} || \
+ ${PORT_OPTIONS:MGS_epl2120} || \
+ ${PORT_OPTIONS:MGS_epl2500} || \
+ ${PORT_OPTIONS:MGS_epl2750} || \
+ ${PORT_OPTIONS:MGS_lp9000b} || \
+ ${PORT_OPTIONS:MGS_lp2500} || \
+ ${PORT_OPTIONS:MGS_lp9100} || \
+ ${PORT_OPTIONS:MGS_lp7900} || \
+ ${PORT_OPTIONS:MGS_lp7500} || \
+ ${PORT_OPTIONS:MGS_lp2400} || \
+ ${PORT_OPTIONS:MGS_lp2200} || \
+ ${PORT_OPTIONS:MGS_lp9400} || \
+ ${PORT_OPTIONS:MGS_lp8900} || \
+ ${PORT_OPTIONS:MGS_lp8700} || \
+ ${PORT_OPTIONS:MGS_lp8100} || \
+ ${PORT_OPTIONS:MGS_lp7700} || \
+ ${PORT_OPTIONS:MGS_lp8600f} || \
+ ${PORT_OPTIONS:MGS_lp8400f} || \
+ ${PORT_OPTIONS:MGS_lp8300f} || \
+ ${PORT_OPTIONS:MGS_lp1900} || \
+ ${PORT_OPTIONS:MGS_lp9600s} || \
+ ${PORT_OPTIONS:MGS_lp9300} || \
+ ${PORT_OPTIONS:MGS_lp9600} || \
+ ${PORT_OPTIONS:MGS_lp8600} || \
+ ${PORT_OPTIONS:MGS_lp1800}
+.include "${MASTERDIR}/files/Makefile.eplaser"
+.endif
+
+.if ${PORT_OPTIONS:MGS_mjc180} || \
+ ${PORT_OPTIONS:MGS_mjc360} || \
+ ${PORT_OPTIONS:MGS_mjc720} || \
+ ${PORT_OPTIONS:MGS_mj500c}
+.include "${MASTERDIR}/files/Makefile.mjc"
+.endif
+
+.if ${PORT_OPTIONS:MGS_gdi}
+.include "${MASTERDIR}/files/Makefile.gdi"
+.endif
+
+.if ${PORT_OPTIONS:MGS_lxm3200}
+.include "${MASTERDIR}/files/Makefile.lxm3200"
+.endif
+
+.if ${PORT_OPTIONS:MGS_lx5000}
+.include "${MASTERDIR}/files/Makefile.lx5000"
+.endif
+
+.if ${PORT_OPTIONS:MGS_lex2050} || \
+ ${PORT_OPTIONS:MGS_lex3200} || \
+ ${PORT_OPTIONS:MGS_lex5700} || \
+ ${PORT_OPTIONS:MGS_lex7000}
+.include "${MASTERDIR}/files/Makefile.lex7000"
+.endif
+
+# pre-defined order
+DEVS_LIST= DEVS1 DEVS2 DEVS3 DEVS4 DEVS5 DEVS6 DEVS7 DEVS8 DEVS9 \
+ DEVS10 DEVS11 DEVS12 DEVS13 DEVS14 DEVS15 DEVS16 DEVS17 DEVS18 \
+ DEVS19 DEVS20 DEVS21
+
+DEVICE_DEVS1= bmpmono.dev bmpgray.dev bmpsep1.dev bmpsep8.dev \
+ bmp16.dev bmp256.dev bmp16m.dev bmp32b.dev
+DEVICE_DEVS2=
+DEVICE_DEVS3= deskjet.dev djet500.dev laserjet.dev ljetplus.dev \
+ ljet2p.dev ljet3.dev ljet3d.dev ljet4.dev ljet4d.dev \
+ lj5mono.dev lj5gray.dev
+DEVICE_DEVS4= cdeskjet.dev cdjcolor.dev cdjmono.dev cdj550.dev pj.dev \
+ pjxl.dev pjxl300.dev
+DEVICE_DEVS5= uniprint.dev ijs.dev
+DEVICE_DEVS6= bj10e.dev bj200.dev bjc600.dev bjc800.dev
+DEVICE_DEVS7= faxg3.dev faxg32d.dev faxg4.dev
+DEVICE_DEVS8= pcxmono.dev pcxgray.dev pcx16.dev pcx256.dev pcx24b.dev \
+ pcxcmyk.dev
+DEVICE_DEVS9= pbm.dev pbmraw.dev pgm.dev pgmraw.dev pgnm.dev \
+ pgnmraw.dev pnm.dev pnmraw.dev ppm.dev ppmraw.dev pkm.dev \
+ pkmraw.dev pksm.dev pksmraw.dev
+DEVICE_DEVS10= tiffcrle.dev tiffg3.dev tiffg32d.dev tiffg4.dev \
+ tifflzw.dev tiffpack.dev
+DEVICE_DEVS11= tiff12nc.dev tiff24nc.dev
+DEVICE_DEVS12= psmono.dev psgray.dev psrgb.dev bit.dev bitrgb.dev \
+ bitcmyk.dev
+DEVICE_DEVS13= pngmono.dev pnggray.dev png16.dev png256.dev \
+ png16m.dev pngalpha.dev
+DEVICE_DEVS14= jpeg.dev jpeggray.dev
+DEVICE_DEVS15= pdfwrite.dev pswrite.dev epswrite.dev pxlmono.dev \
+ pxlcolor.dev
+DEVICE_DEVS16= bbox.dev
+DEVICE_DEVS17=
+DEVICE_DEVS18=
+DEVICE_DEVS20= cljet5.dev cljet5c.dev
+
+# DEVS19 is for this port specific
+DEVICE_DEVS19= md2k.dev md5k.dev md50Mono.dev md50Eco.dev \
+ md1xMono.dev appledmp.dev iwhi.dev iwlo.dev iwlq.dev \
+ hl7x0.dev hl1240.dev hl1250.dev bj10v.dev bj10vh.dev lbp8.dev \
+ lbp1310.dev lbp1510.dev lbp1610.dev lbp1710.dev lbp1810.dev \
+ lbp1910.dev lips2p.dev lips3.dev lips4.dev bjc880j.dev \
+ lips4v.dev m8510.dev coslw2p.dev coslwxl.dev stp.dev \
+ dmprt.dev lj250.dev declj250.dev ap3250.dev epson.dev \
+ eps9mid.dev eps9high.dev lp8000.dev epag.dev escpage.dev \
+ lp2000.dev alc8600.dev alc8500.dev alc2000.dev alc4000.dev \
+ alc1900.dev alc4100.dev lp9800c.dev lp9000c.dev lp9500c.dev \
+ lp8800c.dev lp8300c.dev lp8500c.dev lp3000c.dev lp8200c.dev \
+ lp8000c.dev epl6100.dev epl5900.dev epl5800.dev epl2050.dev \
+ epl2050p.dev epl2120.dev epl2500.dev epl2750.dev lp9000b.dev \
+ lp2500.dev lp9100.dev lp7900.dev lp7500.dev lp2400.dev \
+ lp2200.dev lp9400.dev lp8900.dev lp8700.dev lp8100.dev \
+ lp7700.dev lp8600f.dev lp8400f.dev lp8300f.dev lp1900.dev \
+ lp9600s.dev lp9300.dev lp9600.dev lp8600.dev lp1800.dev \
+ lq850.dev epsonc.dev mjc180.dev mjc360.dev mjc720.dev \
+ mj500c.dev st800.dev stcolor.dev photoex.dev lp2563.dev \
+ dnj650c.dev djet500c.dev cdj500.dev cdj670.dev cdj850.dev \
+ cdj880.dev cdj890.dev cdj1600.dev cdj970.dev lj4dith.dev \
+ cljet5pr.dev pjetxl.dev paintjet.dev pcl3.dev ibmpro.dev \
+ jetp3852.dev imagen.dev fs600.dev lxm5700m.dev lxm3200.dev \
+ lx5000.dev lex2050.dev lex3200.dev lex5700.dev lex7000.dev \
+ cp50.dev necp6.dev npdl.dev oce9050.dev oki182.dev okiibm.dev \
+ atx23.dev atx24.dev atx38.dev r4081.dev rpdl.dev gdi.dev \
+ sj48.dev t4693d2.dev t4693d4.dev t4693d8.dev tek4696.dev \
+ cgmmono.dev cgm8.dev cgm24.dev cif.dev dfaxhigh.dev \
+ dfaxlow.dev miff24.dev inferno.dev mgrmono.dev mgrgray2.dev \
+ mgrgray4.dev mgrgray8.dev mgr4.dev mgr8.dev plan9bm.dev \
+ pam.dev sgirgb.dev sunhmono.dev
diff --git a/print/ghostscript7/files/Makefile.epag b/print/ghostscript7/files/Makefile.epag
new file mode 100644
index 000000000000..c89b0092860c
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.epag
@@ -0,0 +1,38 @@
+# $FreeBSD$
+# EPAG - additional driver for Epson ESC/Page printers
+# http://www.humblesoft.com/gdevepag.html
+
+MASTER_SITES+= http://www.humblesoft.com/pub/:epag
+DISTFILES+= epag-3.09.tar.gz:epag
+EXTRADEVMKFILE+= ${FILESDIR}/epag.contrib.mak
+PORTDOCS+= epag
+
+EPAG_BASE= epag
+EPAG_SRCS= ${EPAG_BASE}-3.09.tar.gz
+EPAG_NAME= ${EPAG_SRCS:S,.tar.gz$,,}
+
+post-extract-epag:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/${EPAG_SRCS}
+ ${LN} -s -f ${EPAG_NAME} ${WRKSRC}/${EPAG_BASE}
+
+pre-build-epag:
+ cd ${WRKSRC}/epag-3.09 && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} Makefile
+ ${LN} -s -f ${WRKSRC}/epag-3.09/gdevepag.c ${WRKSRC}/src
+
+post-install-epag:
+ ${INSTALL_PROGRAM} ${WRKSRC}/epag-3.09/ert ${STAGEDIR}${PREFIX}/bin
+
+post-install-docs-epag:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/epag
+ cd ${WRKSRC}/epag-3.09 \
+ && ${INSTALL_DATA} ert.txt gdevepag.txt ChangeLog \
+ ${STAGEDIR}${DOCSDIR}/epag
+ cd ${WRKSRC}/epag-3.09 \
+ && ${INSTALL_SCRIPT} psprint gsepagif.sh \
+ ${STAGEDIR}${DOCSDIR}/epag
+
+post-extract: post-extract-epag
+pre-build: pre-build-epag
+post-install: post-install-epag
+post-install-docs: post-install-docs-epag
diff --git a/print/ghostscript7/files/Makefile.eplaser b/print/ghostscript7/files/Makefile.eplaser
new file mode 100644
index 000000000000..7a5debd2f3fe
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.eplaser
@@ -0,0 +1,27 @@
+# $FreeBSD$
+# EPLASER - additional driver for ESC/Page printers, by EPSON AVASYS Corp.
+# http://www.avasys.jp/english/linux_e/index.html
+
+MASTER_SITES+= ${MASTER_SITE_LOCAL}:eplaser
+MASTER_SITE_SUBDIR+= arved/:eplaser
+DISTFILES+= eplaser-3.1.4-705.tgz:eplaser
+EXTRADEVMKFILE+= ${WRKSRC}/eplaser/gdevescv7.mak \
+ ${WRKSRC}/eplaser/gdevesmv7.mak
+PORTDOCS+= eplaser
+
+post-extract-eplaser:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/eplaser-3.1.4-705.tgz
+ ${LN} -s -f ${WRKSRC}/eplaser-3.1.4 ${WRKSRC}/eplaser
+
+pre-build-eplaser:
+ ${LN} -s -f ${WRKSRC}/eplaser/gdevescv.[ch] \
+ ${WRKSRC}/eplaser/gdevesmv.c ${WRKSRC}/src
+
+post-install-docs-eplaser:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/eplaser
+ ${INSTALL_DATA} ${WRKSRC}/eplaser/readme-eplaser-705.euc \
+ ${STAGEDIR}${DOCSDIR}/eplaser
+
+post-extract: post-extract-eplaser
+pre-build: pre-build-eplaser
+post-install-docs: post-install-docs-eplaser
diff --git a/print/ghostscript7/files/Makefile.gdi b/print/ghostscript7/files/Makefile.gdi
new file mode 100644
index 000000000000..e18366851722
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.gdi
@@ -0,0 +1,18 @@
+# $FreeBSD$
+# GDI - additional driver for Samsung SmartGDI laser printers
+
+MASTER_SITES+= http://www.linuxprinting.org/download/printing/samsung-gdi/:gdi
+DISTFILES+= Samsung-SmartGDI-all-GS.orig.tar.gz:gdi
+EXTRADEVMKFILE+= ${WRKSRC}/src/smartgdi-contrib.mak
+PORTDOCS+= gdi
+
+post-extract-gdi:
+ ${TAR} -C ${WRKSRC}/src -xzf \
+ ${DISTDIR}/${DIST_SUBDIR}/Samsung-SmartGDI-all-GS.orig.tar.gz
+
+post-install-docs-gdi:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/gdi
+ ${INSTALL_DATA} ${WRKSRC}/src/README ${STAGEDIR}${DOCSDIR}/gdi
+
+post-extract: post-extract-gdi
+post-install-docs: post-install-docs-gdi
diff --git a/print/ghostscript7/files/Makefile.gprint b/print/ghostscript7/files/Makefile.gprint
new file mode 100644
index 000000000000..11ab9689135a
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.gprint
@@ -0,0 +1,43 @@
+# $FreeBSD$
+# Gimp-Print - very high quality driver for Epson, HPs,...
+# http://gimp-print.sourceforge.net/
+#
+# NOTE:
+# Support of stp driver interface has already been discontinued, and using
+# ijs driver with ijsgimpprint (part of print/gimp-print port) is highly
+# recommended.
+#
+# For that reason, integration of stp driver is disabled by default.
+
+MASTER_SITES+= ${MASTER_SITE_SOURCEFORGE:S/%SUBDIR%/gimp-print/:S/$/:gprint/} \
+MASTER_SITE_SUBDIR= gimp-print/:gprint
+DISTFILES+= gimp-print-4.2.7.tar.gz:gprint
+EXTRADEVMKFILE+= ${FILESDIR}/stp.contrib.mak
+
+post-extract-gprint:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gimp-print-4.2.7.tar.gz
+
+post-configure-gprint:
+ cd ${WRKSRC}/gimp-print-4.2.7 && \
+ ${SETENV} ${CONFIGURE_ENV} ${SH} ./configure \
+ --without-translated-ppds --with-ghost \
+ --without-gimp --without-samples \
+ --without-cups --without-ijs \
+ --without-user-guide --disable-escputil \
+ --disable-nls --disable-shared \
+ --prefix=${PREFIX}
+
+pre-build-gprint:
+ cd ${WRKSRC}/gimp-print-4.2.7 && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} Makefile
+ ${LN} -sf ${WRKSRC}/gimp-print-4.2.7/src/ghost/*.[ch] \
+ ${WRKSRC}/src
+ ${MKDIR} ${WRKSRC}/gimp-print
+ ${LN} -sf ${WRKSRC}/gimp-print-4.2.7/include/gimp-print \
+ ${WRKSRC}/gimp-print/gimp-print
+ ${LN} -sf ${WRKSRC}/gimp-print-4.2.7/src/main/.libs/libgimpprint.a \
+ ${WRKSRC}/gimp-print/libgimpprint.a
+
+post-extract: post-extract-gprint
+post-configure: post-configure-gprint
+pre-build: pre-build-gprint
diff --git a/print/ghostscript7/files/Makefile.lex7000 b/print/ghostscript7/files/Makefile.lex7000
new file mode 100644
index 000000000000..48377a06aff9
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.lex7000
@@ -0,0 +1,19 @@
+# $FreeBSD$
+# LEX7000 - additional driver for Lexmark 2050/3200/5700/7000
+# http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/
+
+MASTER_SITES+= ${MASTER_SITE_LOCAL:S/%SUBDIR%/pav/:S/$/:lex7000/}
+DISTFILES+= gs6.0.lexmark7000.patch:lex7000
+EXTRADEVMKFILE+= ${FILESDIR}/lex7000.contrib.mak
+
+post-extract-lex7000:
+ ${MKDIR} ${WRKSRC}/lex7000
+ ${CAT} ${DISTDIR}/${DIST_SUBDIR}/gs6.0.lexmark7000.patch | \
+ ${PATCH} -d ${WRKSRC}/lex7000 -f -s -N -E -p1 \
+ 2>/dev/null || ${TRUE}
+
+pre-build-lex7000:
+ ${LN} -s -f ${WRKSRC}/lex7000/src/gdevlx7.c ${WRKSRC}/src
+
+post-extract: post-extract-lex7000
+pre-build: pre-build-lex7000
diff --git a/print/ghostscript7/files/Makefile.lips b/print/ghostscript7/files/Makefile.lips
new file mode 100644
index 000000000000..b7af5b527184
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.lips
@@ -0,0 +1,28 @@
+# $FreeBSD$
+# LIPS - additional driver for Canon LIPS II+/III/IVc/IV printers
+# http://www.ucatv.ne.jp/~taeko/software/gs/
+
+MASTER_SITES+= http://www.ucatv.ne.jp/~taeko/software/gs/:lips
+DISTFILES+= gdevlips-2.4.0.tar.gz:lips
+EXTRADEVMKFILE+= ${WRKSRC}/gdevlips-2.4.0/gdevlips.mak
+PORTDOCS+= lips
+
+post-extract-lips:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gdevlips-2.4.0.tar.gz
+ ${LN} -s -f ${WRKSRC}/gdevlips-2.4.0 ${WRKSRC}/lips
+
+pre-build-lips:
+ ${LN} -s -f ${WRKSRC}/lips/gdevlips.[ch] \
+ ${WRKSRC}/lips/gdevlprn.[ch] ${WRKSRC}/lips/gdevl4r.c \
+ ${WRKSRC}/lips/gdevl4v.c ${WRKSRC}/lips/gdevespg.c \
+ ${WRKSRC}/lips/gdevnpdl.c ${WRKSRC}/lips/gdevrpdl.c \
+ ${WRKSRC}/src
+
+post-install-docs-lips:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/lips
+ ${INSTALL_DATA} ${WRKSRC}/gdevlips-2.4.0/Gdevlips.htm \
+ ${STAGEDIR}${DOCSDIR}/lips
+
+post-extract: post-extract-lips
+pre-build: pre-build-lips
+post-install-docs: post-install-docs-lips
diff --git a/print/ghostscript7/files/Makefile.lx5000 b/print/ghostscript7/files/Makefile.lx5000
new file mode 100644
index 000000000000..bf636d65805c
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.lx5000
@@ -0,0 +1,12 @@
+# $FreeBSD$
+# LX5000 - additional driver for Lexmark 5000/Z51/Z82
+# http://homepage.powerup.com.au/~pbwest/lexmark/lexmark.html
+
+MASTER_SITES+= ${MASTER_SITE_LOCAL:S/%SUBDIR%/pav/:S/$/:lx5000/}
+DISTFILES+= gdevlx50.c:lx5000
+EXTRADEVMKFILE+= ${FILESDIR}/lx5000.contrib.mak
+
+post-extract-lx5000:
+ ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/gdevlx50.c ${WRKSRC}/src
+
+post-extract: post-extract-lx5000
diff --git a/print/ghostscript7/files/Makefile.lxm3200 b/print/ghostscript7/files/Makefile.lxm3200
new file mode 100644
index 000000000000..b6dc37fe0dce
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.lxm3200
@@ -0,0 +1,23 @@
+# $FreeBSD$
+# LXM3200 - additional driver for Lexmark 3200/Z12/Z22/Z31/Z32
+MASTER_SITES+= http://www.linuxprinting.org/download/printing/:lxm3200
+DISTFILES+= lxm3200-tweaked-20030501.tar.gz:lxm3200
+EXTRADEVMKFILE+=${FILESDIR}/lxm3200.contrib.mak
+PORTDOCS+= lxm3200
+
+post-extract-lxm3200:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/lxm3200-tweaked-20030501.tar.gz
+ ${LN} -s -f ${WRKSRC}/lxm3200-tweaked-20030501 ${WRKSRC}/lxm3200
+
+pre-build-lxm3200:
+ ${LN} -s -f ${WRKSRC}/lxm3200/gdevlx32.c ${WRKSRC}/src
+
+post-install-docs-lxm3200:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/lxm3200
+ cd ${WRKSRC}/lxm3200-tweaked-20030501 \
+ && ${INSTALL_DATA} README RELEASE_NOTES Z12-Z31-QuickSetup \
+ ${STAGEDIR}${DOCSDIR}/lxm3200
+
+post-extract: post-extract-lxm3200
+pre-build: pre-build-lxm3200
+post-install-docs: post-install-docs-lxm3200
diff --git a/print/ghostscript7/files/Makefile.md2k b/print/ghostscript7/files/Makefile.md2k
new file mode 100644
index 000000000000..797f7d81908f
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.md2k
@@ -0,0 +1,24 @@
+# $FreeBSD$
+# MD2K - additional driver for Alps MD-2000/2010/4000/1300/1500/5000
+# http://www33.ocn.ne.jp/~higamasa/gdevmd2k/
+
+MASTER_SITES+= http://www33.ocn.ne.jp/~higamasa/gdevmd2k/:md2k
+DISTFILES+= gdevmd2k-0.2a.tar.gz:md2k
+EXTRADEVMKFILE+= ${WRKSRC}/gdevmd2k-0.2a/gdevmd2k.mak-5.50
+PORTDOCS+= md2k
+
+post-extract-md2k:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gdevmd2k-0.2a.tar.gz
+ ${LN} -s -f ${WRKSRC}/gdevmd2k-0.2a ${WRKSRC}/md2k
+
+pre-build-md2k:
+ ${LN} -s -f ${WRKSRC}/gdevmd2k-0.2a/gdevmd2k.c ${WRKSRC}/src
+
+post-install-docs-md2k:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/md2k
+ ${INSTALL_DATA} ${WRKSRC}/gdevmd2k-0.2a/README.jis \
+ ${STAGEDIR}${DOCSDIR}/md2k
+
+post-extract: post-extract-md2k
+pre-build: pre-build-md2k
+post-install-docs: post-install-docs-md2k
diff --git a/print/ghostscript7/files/Makefile.mjc b/print/ghostscript7/files/Makefile.mjc
new file mode 100644
index 000000000000..3cee725dd05b
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.mjc
@@ -0,0 +1,27 @@
+# $FreeBSD$
+# MJC - additional driver for Epson MachJet series
+
+DISTFILES+= gdevmjc-0.8.tar.gz:ports_jp
+EXTRADEVMKFILE+= ${WRKSRC}/mjc/gdevmjc.mak
+PORTDOCS+= mjc
+
+post-extract-mjc:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/gdevmjc-0.8.tar.gz
+ ${LN} -s -f ${WRKSRC}/gdevmjc-0.8 ${WRKSRC}/mjc
+
+pre-build-mjc:
+ ${LN} -s -f ${WRKSRC}/mjc/gdevmjc.c ${WRKSRC}/mjc/mjbarrie.c \
+ ${WRKSRC}/mjc/mjbksep.c ${WRKSRC}/mjc/mjespdtc.c \
+ ${WRKSRC}/mjc/mjespdtm.c ${WRKSRC}/mjc/mjespdty.c \
+ ${WRKSRC}/mjc/mjgrnsp.c ${WRKSRC}/mjc/mjgrnsp2.c \
+ ${WRKSRC}/mjc/mjhtocmy.c ${WRKSRC}/mjc/mjmtx2.c \
+ ${WRKSRC}/mjc/mjvtbl.c ${WRKSRC}/src
+
+post-install-docs-mjc:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/mjc
+ cd ${WRKSRC}/mjc && ${INSTALL_DATA} MJ700V2C.FAQ README.mjc \
+ README.mje README.noz cpem.doc ${STAGEDIR}${DOCSDIR}/mjc
+
+post-extract: post-extract-mjc
+pre-build: pre-build-mjc
+post-install-docs: post-install-docs-mjc
diff --git a/print/ghostscript7/files/Makefile.pcl3 b/print/ghostscript7/files/Makefile.pcl3
new file mode 100644
index 000000000000..e1c31f8b90dd
--- /dev/null
+++ b/print/ghostscript7/files/Makefile.pcl3
@@ -0,0 +1,39 @@
+# $FreeBSD$
+# additional driver for HP PCL3 printers, by Martin Lottermoser
+# http://home.vrweb.de/martin.lottermoser/pcl3.html
+
+MASTER_SITES+= http://home.vrweb.de/~martin.lottermoser/pcl3/dist/:pcl3
+DISTFILES+= pcl3-3.3.tar.gz:pcl3
+EXTRADEVMKFILE+= ${WRKSRC}/pcl3/src/contrib.mak-7.00.add
+PORTDOCS+= pcl3
+
+post-extract-pcl3:
+ ${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/pcl3-3.3.tar.gz
+ ${LN} -s -f ${WRKSRC}/pcl3-3.3 ${WRKSRC}/pcl3
+ ${TAR} -C ${WRKSRC}/pcl3 -xf ${WRKSRC}/pcl3/pcl3.tar
+
+post-install-pcl3:
+.if ${PORT_OPTIONS:MX11}
+ ${INSTALL_PROGRAM} ${WRKSRC}/bin/pcl3opts ${STAGEDIR}${PREFIX}/bin
+.endif
+ cd ${WRKSRC}/pcl3/doc && \
+ ${INSTALL_MAN} gs-pcl3.1 pcl3opts.1 \
+ ${STAGEDIR}${MANPREFIX}/man/man1
+ ${MKDIR} ${STAGEDIR}${DATADIR}/${PORTVERSION}/pcl3
+ cd ${WRKSRC}/pcl3 && ${INSTALL_DATA} NEWS BUGS README \
+ lib/example.mcf lib/if-pcl3 ps/calign.ps ps/dumppdd.ps \
+ ps/levels-test.ps ps/margins-A4.ps \
+ ps/margins-A4Rotated.ps ps/margins-Env10Rotated.ps \
+ ps/margins-EnvDLRotated.ps ps/margins-Letter.ps \
+ ps/margins-LetterRotated.ps \
+ ${STAGEDIR}${DATADIR}/${PORTVERSION}/pcl3
+
+post-install-docs-pcl3:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}/pcl3
+ cd ${WRKSRC}/pcl3 && ${INSTALL_DATA} NEWS doc/gs-pcl3.html \
+ doc/how-to-report.txt doc/pcl3opts.html \
+ ${STAGEDIR}${DOCSDIR}/pcl3
+
+post-extract: post-extract-pcl3
+post-install: post-install-pcl3
+post-install-docs: post-install-docs-pcl3
diff --git a/print/ghostscript7/files/bjc250.contrib.mak b/print/ghostscript7/files/bjc250.contrib.mak
new file mode 100644
index 000000000000..5c1ce77e98dc
--- /dev/null
+++ b/print/ghostscript7/files/bjc250.contrib.mak
@@ -0,0 +1,31 @@
+### ----------------- The BJC-210/240/250/250ex/265/1000 ---------------- ###
+
+###
+### For questions about the driver, mailto://szaszg@hu.inter.net
+### http://bjc250gs.sourceforge.net
+###
+
+bjc_h=$(GLSRC)gdevbjc_.h
+
+bjc_=$(GLOBJ)gdevbjc_.$(OBJ) $(GLOBJ)gdevbjca.$(OBJ)
+
+$(GLOBJ)gdevbjc_.$(OBJ) : $(GLSRC)gdevbjc_.c $(PDEVH) $(bjc_h)
+ $(GLCC) $(GLO_)gdevbjc_.$(OBJ) $(C_) $(GLSRC)gdevbjc_.c
+
+$(GLOBJ)gdevbjca.$(OBJ) : $(GLSRC)gdevbjca.c $(PDEVH) $(bjc_h)
+ $(GLCC) $(GLO_)gdevbjca.$(OBJ) $(C_) $(GLSRC)gdevbjca.c
+
+$(DD)bjcmono.dev : $(bjc_) $(DD)page.dev
+ $(SETPDEV) $(DD)bjcmono $(bjc_)
+
+$(DD)bjcgray.dev : $(bjc_) $(DD)page.dev
+ $(SETPDEV) $(DD)bjcgray $(bjc_)
+
+$(DD)bjccmyk.dev : $(bjc_) $(DD)page.dev
+ $(SETPDEV) $(DD)bjccmyk $(bjc_)
+
+$(DD)bjccolor.dev : $(bjc_) $(DD)page.dev
+ $(SETPDEV) $(DD)bjccolor $(bjc_)
+
+### -------------------- The H-P Color LaserJet 5/5M -------------------- ###
+
diff --git a/print/ghostscript7/files/cdj850.contrib.mak b/print/ghostscript7/files/cdj850.contrib.mak
new file mode 100644
index 000000000000..8faefec5fe4e
--- /dev/null
+++ b/print/ghostscript7/files/cdj850.contrib.mak
@@ -0,0 +1,21 @@
+###- cdj850 - HP 850 Driver under development -------- ###
+cdeskjet8_=$(GLOBJ)gdevcd8.$(OBJ) $(HPPCL)
+
+$(DD)cdj670.dev : $(cdeskjet8_) $(DD)page.dev
+ $(SETPDEV2) $(DD)cdj670 $(cdeskjet8_)
+
+$(DD)cdj850.dev : $(cdeskjet8_) $(DD)page.dev
+ $(SETPDEV2) $(DD)cdj850 $(cdeskjet8_)
+
+$(DD)cdj880.dev : $(cdeskjet8_) $(DD)page.dev
+ $(SETPDEV2) $(DD)cdj880 $(cdeskjet8_)
+
+$(DD)cdj890.dev : $(cdeskjet8_) $(DD)page.dev
+ $(SETPDEV2) $(DD)cdj890 $(cdeskjet8_)
+
+$(DD)cdj1600.dev : $(cdeskjet8_) $(DD)page.dev
+ $(SETPDEV2) $(DD)cdj1600 $(cdeskjet8_)
+
+$(GLOBJ)gdevcd8.$(OBJ) : $(GLSRC)gdevcd8.c $(PDEVH) $(math__h)\
+ $(gsparam_h) $(gxlum_h) $(gdevpcl_h)
+ $(GLCC) $(GLO_)gdevcd8.$(OBJ) $(C_) $(GLSRC)gdevcd8.c
diff --git a/print/ghostscript7/files/epag.contrib.mak b/print/ghostscript7/files/epag.contrib.mak
new file mode 100644
index 000000000000..2e6117ad4b51
--- /dev/null
+++ b/print/ghostscript7/files/epag.contrib.mak
@@ -0,0 +1,8 @@
+### ------- Epson ESC/Page printer device ----------------- ###
+epag_=$(GLOBJ)gdevepag.$(OBJ)
+
+$(DD)epag.dev : $(epag_) $(DD)page.dev
+ $(SETPDEV) $(DD)epag $(epag_)
+
+$(GLOBJ)gdevepag.$(OBJ): $(GLSRC)gdevepag.c $(gdevprn_h) $(PDEVH)
+ $(GLCC) $(GLO_)gdevepag.$(OBJ) $(C_) $(GLSRC)gdevepag.c
diff --git a/print/ghostscript7/files/lex7000.contrib.mak b/print/ghostscript7/files/lex7000.contrib.mak
new file mode 100644
index 000000000000..a5f1a162b785
--- /dev/null
+++ b/print/ghostscript7/files/lex7000.contrib.mak
@@ -0,0 +1,21 @@
+# ------ The Lexmark 5700 and 7000 devices ------ #
+
+lex7000_=$(GLOBJ)gdevlx7.$(OBJ)
+$(DD)lex7000.dev: $(lex7000_) $(DD)page.dev
+ $(SETPDEV) $(DD)lex7000 $(lex7000_)
+
+lex5700_=$(GLOBJ)gdevlx7.$(OBJ)
+$(DD)lex5700.dev: $(lex5700_) $(DD)page.dev
+ $(SETPDEV) $(DD)lex5700 $(lex5700_)
+
+lex3200_=$(GLOBJ)gdevlx7.$(OBJ)
+$(DD)lex3200.dev: $(lex3200_) $(DD)page.dev
+ $(SETPDEV) $(DD)lex3200 $(lex3200_)
+
+lex2050_=$(GLOBJ)gdevlx7.$(OBJ)
+$(DD)lex2050.dev: $(lex2050_) $(DD)page.dev
+ $(SETPDEV) $(DD)lex2050 $(lex2050_)
+
+$(GLOBJ)gdevlx7.$(OBJ): $(GLSRC)gdevlx7.c $(PDEVH)
+ $(GLCC) $(GLO_)gdevlx7.$(OBJ) $(C_) $(GLSRC)gdevlx7.c
+
diff --git a/print/ghostscript7/files/lqx70ch.upp b/print/ghostscript7/files/lqx70ch.upp
new file mode 100644
index 000000000000..b5d3cd49e912
--- /dev/null
+++ b/print/ghostscript7/files/lqx70ch.upp
@@ -0,0 +1,26 @@
+# $ApsCVS: src/apsfilter/uniprint/lqx70ch.upp,v 1.2 2000/04/21 18:48:00 andreas Exp $
+#
+-supModel="Epson LQ-1170 ESC/P2 Dot Matrix, 360x360DpI, Plain Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/ErrorDiffusion
+-dupOutputFormat=/EscP2
+-r360x360
+-dupMargins="{ 9.0 0.0 9.0 24.0}"
+-dupOutputPins=24
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2869 0100 01
+ 1b2855 0100 0A
+ 1b5501
+ 1b2865 0200 0002
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupEndPageCommand="(\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/lqx70cl.upp b/print/ghostscript7/files/lqx70cl.upp
new file mode 100644
index 000000000000..91fb1aa89906
--- /dev/null
+++ b/print/ghostscript7/files/lqx70cl.upp
@@ -0,0 +1,26 @@
+# $ApsCVS: src/apsfilter/uniprint/lqx70cl.upp,v 1.2 2000/04/21 18:48:00 andreas Exp $
+#
+-supModel="Epson LQ-1170 ESC/P2 Dot Matrix, 180x180DpI, Plain Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/ErrorDiffusion
+-dupOutputFormat=/EscP2
+-r180x180
+-dupMargins="{ 9.0 0.0 9.0 24.0}"
+-dupOutputPins=24
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2869 0100 01
+ 1b2855 0100 14
+ 1b5500
+ 1b2865 0200 0002
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupEndPageCommand="(\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/lqx70cm.upp b/print/ghostscript7/files/lqx70cm.upp
new file mode 100644
index 000000000000..895af73aa8d8
--- /dev/null
+++ b/print/ghostscript7/files/lqx70cm.upp
@@ -0,0 +1,25 @@
+# $ApsCVS: src/apsfilter/uniprint/lqx70cm.upp,v 1.2 2000/04/21 18:48:00 andreas Exp $
+#
+-supModel="Epson LQ-1170 ESC/P2 Dot Matrix, 360x180DpI, Plain Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/ErrorDiffusion
+-dupOutputFormat=/EscP2
+-r360x180
+-dupMargins="{ 9.0 24.0 9.0 24.0}"
+-dupOutputPins=24
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2869 0100 01
+ 1b2855 0100 14
+ 1b5501
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupEndPageCommand="(\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/lx5000.contrib.mak b/print/ghostscript7/files/lx5000.contrib.mak
new file mode 100644
index 000000000000..f22c1dbb904c
--- /dev/null
+++ b/print/ghostscript7/files/lx5000.contrib.mak
@@ -0,0 +1,11 @@
+### ----------------- LexMark 5000 printer ----------------------------- ###
+### Note: this driver was contributed by users. Please contact: ###
+### Peter B. West <p.west@uq.net.au> ###
+
+lx5000_=$(GLOBJ)gdevlx50.$(OBJ)
+$(DD)lx5000.dev: $(lx5000_)
+ $(SETPDEV) $(DD)lx5000 $(lx5000_)
+
+$(GLOBJ)gdevlx50.$(OBJ): $(GLSRC)gdevlx50.c $(PDEVH)
+ $(GLCC) $(GLO_)gdevlx50.$(OBJ) $(C_) $(GLSRC)gdevlx50.c
+
diff --git a/print/ghostscript7/files/lxm3200.contrib.mak b/print/ghostscript7/files/lxm3200.contrib.mak
new file mode 100644
index 000000000000..c670f6de111c
--- /dev/null
+++ b/print/ghostscript7/files/lxm3200.contrib.mak
@@ -0,0 +1,10 @@
+### ---------------- Lexmark 3200 device ----------------- ###
+
+lxm3200_=$(GLOBJ)gdevlx32.$(OBJ)
+
+$(DD)lxm3200.dev: $(lxm3200_) $(DD)page.dev
+ $(SETPDEV) $(DD)lxm3200 $(lxm3200_)
+
+$(GLOBJ)gdevlx32.$(OBJ): $(GLSRC)gdevlx32.c $(PDEVH) $(gsparam_h)
+ $(GLCC) $(GLO_)gdevlx32.$(OBJ) $(C_) $(GLSRC)gdevlx32.c
+
diff --git a/print/ghostscript7/files/patch-alps:gdevalps.mak b/print/ghostscript7/files/patch-alps:gdevalps.mak
new file mode 100644
index 000000000000..45144eaadcfd
--- /dev/null
+++ b/print/ghostscript7/files/patch-alps:gdevalps.mak
@@ -0,0 +1,25 @@
+--- alps/gdevalps.mak-5.50.orig Sat Jan 12 13:21:12 2002
++++ alps/gdevalps.mak-5.50 Sat Jan 12 13:23:45 2002
+@@ -2,15 +2,15 @@
+
+ alps_=$(GLOBJ)gdevalps.$(OBJ)
+
+-md50Mono.dev: $(alps_) page.dev
+- $(SETPDEV) md50Mono $(alps_)
++$(DD)md50Mono.dev: $(alps_) $(DD)page.dev
++ $(SETPDEV) $(DD)md50Mono $(alps_)
+
+-md50Eco.dev: $(alps_) page.dev
+- $(SETPDEV) md50Eco $(alps_)
++$(DD)md50Eco.dev: $(alps_) $(DD)page.dev
++ $(SETPDEV) $(DD)md50Eco $(alps_)
+
+-md1xMono.dev: $(alps_) page.dev
+- $(SETPDEV) md1xMono $(alps_)
++$(DD)md1xMono.dev: $(alps_) $(DD)page.dev
++ $(SETPDEV) $(DD)md1xMono $(alps_)
+
+-$(GLOBJ)gdevalps.$(OBJ): $(GLSRC)gdevalps.c $(PDEVH)
++$(GLOBJ)gdevalps.$(OBJ): $(GLSRC)gdevalps.c $(gdevprn_h) $(PDEVH)
+ $(GLCC) $(GLO_)gdevalps.$(OBJ) $(C_) $(GLSRC)gdevalps.c
+
diff --git a/print/ghostscript7/files/patch-eplaser:gdevescv.c b/print/ghostscript7/files/patch-eplaser:gdevescv.c
new file mode 100644
index 000000000000..ee548e3019e6
--- /dev/null
+++ b/print/ghostscript7/files/patch-eplaser:gdevescv.c
@@ -0,0 +1,84 @@
+--- eplaser/gdevescv.c.orig Mon May 17 14:25:19 2004
++++ eplaser/gdevescv.c Mon Aug 2 14:01:21 2004
+@@ -37,10 +37,6 @@
+
+ */
+
+-#include <stdlib.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+ #include "math_.h"
+ #include "gx.h"
+ #include "gserrors.h"
+@@ -62,6 +58,10 @@
+ #include "gspath.h"
+ #include "gzpath.h"
+
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++
+ /* ---------------- Device definition ---------------- */
+
+ /* Device procedures */
+@@ -342,6 +342,16 @@
+ };
+
+ /* Vector device implementation */
++#if GS_VERSION_MAJOR >= 8
++private int escv_beginpage(gx_device_vector * vdev);
++private int escv_setfillcolor(gx_device_vector * vdev, const gx_drawing_color * pdc);
++private int escv_setstrokecolor(gx_device_vector * vdev, const gx_drawing_color * pdc);
++private int escv_setdash(gx_device_vector * vdev, const float *pattern,
++ uint count, floatp offset);
++private int escv_setflat(gx_device_vector * vdev, floatp flatness);
++private int escv_setlogop(gx_device_vector * vdev, gs_logical_operation_t lop,
++ gs_logical_operation_t diff);
++#else
+ private int escv_beginpage(P1(gx_device_vector * vdev));
+ private int escv_setfillcolor(P2(gx_device_vector * vdev, const gx_drawing_color * pdc));
+ private int escv_setstrokecolor(P2(gx_device_vector * vdev, const gx_drawing_color * pdc));
+@@ -350,10 +360,25 @@
+ private int escv_setflat(P2(gx_device_vector * vdev, floatp flatness));
+ private int escv_setlogop(P3(gx_device_vector * vdev, gs_logical_operation_t lop,
+ gs_logical_operation_t diff));
++#endif
+ private int escv_vector_dorect(gx_device_vector * vdev, fixed x0, fixed y0, fixed x1,
+ fixed y1, gx_path_type_t type);
+ private int escv_vector_dopath(gx_device_vector * vdev, const gx_path * ppath,
+ gx_path_type_t type);
++#if GS_VERSION_MAJOR >= 8
++private int escv_beginpath(gx_device_vector * vdev, gx_path_type_t type);
++private int escv_moveto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x, floatp y, gx_path_type_t type);
++private int escv_lineto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x, floatp y, gx_path_type_t type);
++private int escv_curveto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x1, floatp y1, floatp x2, floatp y2,
++ floatp x3, floatp y3, gx_path_type_t type);
++private int escv_closepath(gx_device_vector * vdev, floatp x, floatp y,
++ floatp x_start, floatp y_start, gx_path_type_t type);
++
++private int escv_endpath(gx_device_vector * vdev, gx_path_type_t type);
++#else
+ private int escv_beginpath(P2(gx_device_vector * vdev, gx_path_type_t type));
+ private int escv_moveto(P6(gx_device_vector * vdev, floatp x0, floatp y0,
+ floatp x, floatp y, gx_path_type_t type));
+@@ -366,6 +391,7 @@
+ floatp x_start, floatp y_start, gx_path_type_t type));
+
+ private int escv_endpath(P2(gx_device_vector * vdev, gx_path_type_t type));
++#endif
+ private int escv_setlinewidth(gx_device_vector * vdev, floatp width);
+ private int escv_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
+ private int escv_setlinejoin(gx_device_vector * vdev, gs_line_join join);
+@@ -1671,7 +1697,7 @@
+ gs_logical_operation_t lop, const gx_clip_path * pcpath)
+ {
+ gx_device_vector const *vdev = (gx_device_vector *) dev;
+- gx_device_escv const *pdev = (gx_device_escv *) dev;
++ gx_device_escv *pdev = (gx_device_escv *) dev;
+ stream *s = gdev_vector_stream(vdev);
+
+ if (w <= 0 || h <= 0) return 0;
diff --git a/print/ghostscript7/files/patch-eplaser:gdevesmv.c b/print/ghostscript7/files/patch-eplaser:gdevesmv.c
new file mode 100644
index 000000000000..cc538bf87531
--- /dev/null
+++ b/print/ghostscript7/files/patch-eplaser:gdevesmv.c
@@ -0,0 +1,84 @@
+--- eplaser/gdevesmv.c.orig Mon May 17 14:25:19 2004
++++ eplaser/gdevesmv.c Mon Aug 2 14:00:42 2004
+@@ -34,10 +34,6 @@
+
+ */
+
+-#include <stdlib.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+ #include "math_.h"
+ #include "gx.h"
+ #include "gserrors.h"
+@@ -59,6 +55,10 @@
+ #include "gspath.h"
+ #include "gzpath.h"
+
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++
+ /* ---------------- Device definition ---------------- */
+
+ /* Device procedures */
+@@ -428,6 +428,16 @@
+
+
+ /* Vector device implementation */
++#if GS_VERSION_MAJOR >= 8
++private int esmv_beginpage(gx_device_vector * vdev);
++private int esmv_setfillcolor(gx_device_vector * vdev, const gx_drawing_color * pdc);
++private int esmv_setstrokecolor(gx_device_vector * vdev, const gx_drawing_color * pdc);
++private int esmv_setdash(gx_device_vector * vdev, const float *pattern,
++ uint count, floatp offset);
++private int esmv_setflat(gx_device_vector * vdev, floatp flatness);
++private int esmv_setlogop(gx_device_vector * vdev, gs_logical_operation_t lop,
++ gs_logical_operation_t diff);
++#else
+ private int esmv_beginpage(P1(gx_device_vector * vdev));
+ private int esmv_setfillcolor(P2(gx_device_vector * vdev, const gx_drawing_color * pdc));
+ private int esmv_setstrokecolor(P2(gx_device_vector * vdev, const gx_drawing_color * pdc));
+@@ -436,10 +446,25 @@
+ private int esmv_setflat(P2(gx_device_vector * vdev, floatp flatness));
+ private int esmv_setlogop(P3(gx_device_vector * vdev, gs_logical_operation_t lop,
+ gs_logical_operation_t diff));
++#endif
+ private int esmv_vector_dorect(gx_device_vector * vdev, fixed x0, fixed y0, fixed x1,
+ fixed y1, gx_path_type_t type);
+ private int esmv_vector_dopath(gx_device_vector * vdev, const gx_path * ppath,
+ gx_path_type_t type);
++#if GS_VERSION_MAJOR >= 8
++private int esmv_beginpath(gx_device_vector * vdev, gx_path_type_t type);
++private int esmv_moveto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x, floatp y, gx_path_type_t type);
++private int esmv_lineto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x, floatp y, gx_path_type_t type);
++private int esmv_curveto(gx_device_vector * vdev, floatp x0, floatp y0,
++ floatp x1, floatp y1, floatp x2, floatp y2,
++ floatp x3, floatp y3, gx_path_type_t type);
++private int esmv_closepath(gx_device_vector * vdev, floatp x, floatp y,
++ floatp x_start, floatp y_start, gx_path_type_t type);
++
++private int esmv_endpath(gx_device_vector * vdev, gx_path_type_t type);
++#else
+ private int esmv_beginpath(P2(gx_device_vector * vdev, gx_path_type_t type));
+ private int esmv_moveto(P6(gx_device_vector * vdev, floatp x0, floatp y0,
+ floatp x, floatp y, gx_path_type_t type));
+@@ -452,6 +477,7 @@
+ floatp x_start, floatp y_start, gx_path_type_t type));
+
+ private int esmv_endpath(P2(gx_device_vector * vdev, gx_path_type_t type));
++#endif
+ private int esmv_setlinewidth(gx_device_vector * vdev, floatp width);
+ private int esmv_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
+ private int esmv_setlinejoin(gx_device_vector * vdev, gs_line_join join);
+@@ -1771,7 +1797,7 @@
+ gs_logical_operation_t lop, const gx_clip_path * pcpath)
+ {
+ gx_device_vector const *vdev = (gx_device_vector *) dev;
+- gx_device_esmv const *pdev = (gx_device_esmv *) dev;
++ gx_device_esmv *pdev = (gx_device_esmv *) dev;
+ stream *s = gdev_vector_stream(vdev);
+ gx_color_index color = gx_dc_pure_color(pdcolor);
+ char obuf[64];
diff --git a/print/ghostscript7/files/patch-gdev10v:gdev10v.mak b/print/ghostscript7/files/patch-gdev10v:gdev10v.mak
new file mode 100644
index 000000000000..25a8317379b8
--- /dev/null
+++ b/print/ghostscript7/files/patch-gdev10v:gdev10v.mak
@@ -0,0 +1,22 @@
+--- gdev10v/gdev10v.mak.orig Thu Oct 12 11:17:50 2000
++++ gdev10v/gdev10v.mak Thu Oct 12 11:21:12 2000
+@@ -1,12 +1,13 @@
+ ### ----------------- The Canon BubbleJet BJ10v device ----------------- ###
+
+-bj10v_=gdev10v.$(OBJ) gdevprn.$(OBJ)
+-bj10v.dev: $(bj10v_)
+- $(SHP)gssetdev bj10v $(bj10v_)
+-bj10vh.dev: $(bj10v_)
+- $(SHP)gssetdev bj10vh $(bj10v_)
++bj10v_=$(GLOBJ)gdev10v.$(OBJ) $(GLOBJ)gdevprn.$(OBJ)
++$(DD)bj10v.dev: $(bj10v_) $(DD)page.dev
++ $(SETPDEV) $(DD)bj10v $(bj10v_)
++$(DD)bj10vh.dev: $(bj10v_) $(DD)page.dev
++ $(SETPDEV) $(DD)bj10vh $(bj10v_)
+
+ # Uncomment the following line if you are using MS-DOS on PC9801 series.
+
+-gdev10v.$(OBJ): gdevbj10.c $(PDEVH)
++$(GLOBJ)gdev10v.$(OBJ): $(GLSRC)gdevbj10.c $(PDEVH)
++ $(GLCC) $(GLO_)gdev10v.$(OBJ) $(C_) $(GLSRC)gdev10v.c
+ # $(CCC) -DPC9801 gdev10v.c
diff --git a/print/ghostscript7/files/patch-lib:gs_cidfn.ps b/print/ghostscript7/files/patch-lib:gs_cidfn.ps
new file mode 100644
index 000000000000..98a763bf9b23
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_cidfn.ps
@@ -0,0 +1,51 @@
+--- lib/gs_cidfn.ps.org 2003-04-12 23:02:38.000000000 +0900
++++ lib/gs_cidfn.ps 2003-09-03 07:28:28.000000000 +0900
+@@ -511,9 +511,32 @@
+
+ .loadinitialcidfonts
+
++% <fontname> <font> .RenameFontForNeverEmbed <fontname> <font'>
++/.RenameFontForNeverEmbed {
++ /DEVICE where { pop DEVICE (pdfwrite) eq {
++ currentdistillerparams /NeverEmbed get {
++ 2 index eq {
++ (*** unembeddable CIDFont: ) print 1 index == flush
++ dup length 1 add dict copy
++ dup /FID undef
++ dup /.orig_CIDFontName 1 index /CIDFontName get put
++ dup /CIDFontName 3 index dup type /stringtype eq {
++ dup rcheck {
++ dup length string 0 1 2 index length 1 sub {
++ 2 index 1 index get 3 copy put pop pop
++ } for exch pop
++ } if
++ } if put
++ dup /FontName 1 index /CIDFontName get put
++ } if
++ } forall
++ } if } if
++} bind def
++
+ /CIDFontmapHandler <<
+ /nametype {
+ /CIDFont findresource
++ .RenameFontForNeverEmbed
+ /CIDFont defineresource pop
+ } bind
+ /stringtype {
+@@ -528,6 +551,7 @@
+ pop pop
+ } {
+ % Give a name different from the name defined in the file
++ .RenameFontForNeverEmbed
+ /CIDFont defineresource pop
+ } ifelse
+ } {
+@@ -546,6 +570,7 @@
+ 3 -1 roll put
+ % Expand array
+ aload pop .loadcjkvttcidfont
++ .RenameFontForNeverEmbed
+ /CIDFont defineresource pop
+ } {
+ /undefinedresource signalerror
diff --git a/print/ghostscript7/files/patch-lib:gs_init.ps b/print/ghostscript7/files/patch-lib:gs_init.ps
new file mode 100644
index 000000000000..143fa1a1d673
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_init.ps
@@ -0,0 +1,27 @@
+--- lib/gs_init.ps.orig Sat Jan 22 13:15:37 2005
++++ lib/gs_init.ps Sat Jan 22 13:15:05 2005
+@@ -119,6 +119,7 @@
+ currentdict /NOFONTPATH known /NOFONTPATH exch def
+ currentdict /NOGC known /NOGC exch def
+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+ currentdict /NOPAGEPROMPT known /NOPAGEPROMPT exch def
+ currentdict /NOPAUSE known /NOPAUSE exch def
+ currentdict /NOPLATFONTS known /NOPLATFONTS exch def
+@@ -1274,7 +1275,7 @@
+ % Set the default screen and BG/UCR.
+ /.setdefaultbgucr {
+ systemdict /setblackgeneration known {
+- { pop 0 } dup setblackgeneration setundercolorremoval
++ {} dup setblackgeneration setundercolorremoval
+ } if
+ } bind def
+ /.useloresscreen { % - .useloresscreen <bool>
+@@ -1883,3 +1884,7 @@
+ userdict /AGM_preserve_spots false put
+
+ % The interpreter will run the initial procedure (start).
++
++% unofficial patch:
++% make it possible to print from within acroread pdf viewer
++/Default currenthalftone /Halftone defineresource pop
diff --git a/print/ghostscript7/files/patch-lib:gs_res.ps b/print/ghostscript7/files/patch-lib:gs_res.ps
new file mode 100644
index 000000000000..2e5169720649
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_res.ps
@@ -0,0 +1,13 @@
+--- lib/gs_res.ps.orig Mon Jul 16 01:09:41 2001
++++ lib/gs_res.ps Fri Feb 8 07:12:09 2002
+@@ -248,8 +248,8 @@
+ /pssystemparams 10 dict readonly def
+ } if
+ pssystemparams begin
+- /FontResourceDir (/Resource/Font/) readonly .forcedef % pssys'params is r-o
+- /GenericResourceDir (/Resource/) readonly .forcedef % pssys'params is r-o
++ /FontResourceDir (%%DATADIR%%/Resource/Font/) readonly .forcedef % pssys'params is r-o
++ /GenericResourceDir (%%DATADIR%%/Resource/) readonly .forcedef % pssys'params is r-o
+ /GenericResourcePathSep (/) readonly .forcedef % pssys'params is r-o
+ end
+ end
diff --git a/print/ghostscript7/files/patch-lib:gs_setpd.ps b/print/ghostscript7/files/patch-lib:gs_setpd.ps
new file mode 100644
index 000000000000..1e9444732d86
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_setpd.ps
@@ -0,0 +1,98 @@
+--- lib/gs_setpd.ps.orig Sat Apr 12 16:02:38 2003
++++ lib/gs_setpd.ps Sat Jan 22 13:15:05 2005
+@@ -324,21 +324,42 @@
+ } bind
+ .dicttomark readonly def
+
+-% Define the keys used in input attribute matching.
+-/.inputattrkeys [
+- /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
+- % The following are documented in Adobe's supplement for v2017.
+- /LeadingEdge /MediaClass
+-] readonly def
+-% Define other keys used in media selection.
+-/.inputselectionkeys [
+- /MediaPosition /Orientation
+-] readonly def
+-
+-% Define the keys used in output attribute matching.
+-/.outputattrkeys [
+- /OutputType
+-] readonly def
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
++% selection policies for setpagedevice. This is used by CUPS to support
++% the standard Adobe media attributes.
++NOMEDIAATTRS {
++ % Define only PageSize for input attribute matching.
++ /.inputattrkeys [
++ /PageSize
++ ] readonly def
++ % Define no other keys used in media selection.
++ /.inputselectionkeys [
++ /noInputSelectionsKeys
++ ] readonly def
++
++ % Define no keys used in output attribute matching.
++ /.outputattrkeys [
++ /noOutputAttrKeys
++ ] readonly def
++} {
++ % Define the keys used in input attribute matching.
++ /.inputattrkeys [
++ /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
++ % The following are documented in Adobe's supplement for v2017.
++ /LeadingEdge /MediaClass
++ ] readonly def
++ % Define other keys used in media selection.
++ /.inputselectionkeys [
++ /MediaPosition /Orientation
++ ] readonly def
++
++ % Define the keys used in output attribute matching.
++ /.outputattrkeys [
++ /OutputType
++ ] readonly def
++} ifelse
+
+ % Define all the parameters that should always be copied to the merged
+ % dictionary.
+@@ -367,7 +388,13 @@
+ /PageSize false % obsolete alias for .MediaSize
+ /InputAttributes false
+ .inputattrkeys
+- { dup /PageSize eq
++ % M. Sweet, Easy Software Products:
++ %
++ % Treat LeadingEdge like PageSize so that a common Ghostscript driver
++ % doesn't need the NOMEDIAATTRS definition.
++ %
++ % { dup /PageSize eq
++ { dup dup /PageSize eq exch /LeadingEdge eq or
+ { pop }
+ { { 2 index /InputAttributes .knownget { null eq } { true } ifelse } }
+ ifelse
+@@ -442,11 +469,22 @@
+ % They are expected to consume the top 2 operands.
+ % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
+ % the same as 0, i.e., we signal an error.
++%
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
++% selection policies for setpagedevice. This is used by CUPS to support
++% the standard Adobe media attributes.
+ 0 { % Set errorinfo and signal a configurationerror.
++ NOMEDIAATTRS {
++ % NOMEDIAATTRS means that the default policy is 7...
++ pop 2 index exch 7 put
++ } {
+ pop dup 4 index exch get 2 array astore
+ $error /errorinfo 3 -1 roll put
+ cleartomark
+ /setpagedevice load /configurationerror signalerror
++ } ifelse
+ } bind
+ 1 { % Roll back the failed request to its previous status.
+ DEBUG { (Rolling back.) = pstack flush } if
diff --git a/print/ghostscript7/files/patch-lib:gs_statd.ps b/print/ghostscript7/files/patch-lib:gs_statd.ps
new file mode 100644
index 000000000000..e540215a0a70
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_statd.ps
@@ -0,0 +1,23 @@
+--- lib/gs_statd.ps.orig Thu Jul 18 19:43:42 2002
++++ lib/gs_statd.ps Fri Dec 6 05:32:56 2002
+@@ -105,6 +105,12 @@
+ /flsa {612 936 //.setpagesize exec} bind def % U.S. foolscap
+ /flse {612 936 //.setpagesize exec} bind def % European foolscap
+ /halfletter {396 612 //.setpagesize exec} bind def
++ /postcard {284 419 //.setpagesize exec} bind def
++ /dbl_postcard {419 568 //.setpagesize exec} bind def
++ /Executive {522 756 //.setpagesize exec} bind def
++ /jenv_you4 {298 666 //.setpagesize exec} bind def
++ /jenv_you2 {324 460 //.setpagesize exec} bind def
++ /jenv_kaku2 {682 942 //.setpagesize exec} bind def
+ % /tabloid {792 1224 //.setpagesize exec} bind def % 11x17 portrait
+ % /csheet {1224 1584 //.setpagesize exec} bind def % ANSI C 17x22
+ % /dsheet {1584 2448 //.setpagesize exec} bind def % ANSI D 22x34
+@@ -121,6 +127,7 @@
+ { /letter /note %do not change this line, needed by 'setpagetype'
+ /legal /lettersmall
+ /11x17 /ledger
++ /postcard /dbl_postcard /Executive /jenv_you4 /jenv_you2 /jenv_kaku2
+ /a4small /a3 /a4
+ STRICT { (%END SIZES) .skipeof } if
+ /a0 /a1 /a2 /a5 /a6 /a7 /a8 /a9 /a10
diff --git a/print/ghostscript7/files/patch-lib:gs_ttf.ps b/print/ghostscript7/files/patch-lib:gs_ttf.ps
new file mode 100644
index 000000000000..669b71760672
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:gs_ttf.ps
@@ -0,0 +1,198 @@
+--- lib/gs_ttf.ps.orig Sat Apr 12 23:02:38 2003
++++ lib/gs_ttf.ps Sat Jan 10 00:51:05 2004
+@@ -575,7 +575,7 @@
+ (maxp) 1 index
+ (name) 1 index
+ (OS/2) 1 index
+- (post) 1 index
++ (post) { .readbigtable }
+ (vhea) 1 index
+ % Big tables
+ (glyf) { .readbigtable }
+@@ -918,10 +918,17 @@
+ DEBUG { (fontname ) print fontname = } if
+ % Stack: ... /FontInfo mark key1 value1 ...
+ post null ne {
+- /ItalicAngle post 4 gets32 65536.0 div
+- /isFixedPitch post 12 getu32 0 ne
+- /UnderlinePosition post 8 gets16 upem div
+- /UnderlineThickness post 10 gets16 upem div
++ post type /arraytype eq {
++ % this post table is a big table. /post should be [(...) ...]
++ % data we actually need here should be first one in array.
++ /posttable post 1 get def
++ } {
++ /posttable post def
++ } ifelse
++ /ItalicAngle posttable 4 gets32 65536.0 div
++ /isFixedPitch posttable 12 getu32 0 ne
++ /UnderlinePosition posttable 8 gets16 upem div
++ /UnderlineThickness posttable 10 gets16 upem div
+ } if
+ counttomark 0 ne { .dicttomark } { pop pop } ifelse
+ /XUID [orgXUID 42 curxuid]
+@@ -1097,9 +1104,26 @@
+ % 4 2 Offset Coverage(--)
+ % 6 2 uint16 GlyphCount
+ % 8 2 GlyphID Substitute(vertically oriented glyphs)
+-% -- 2 uint16 SubstFormat
+-% +2 2 uint16 GlyphCount(same as above GlyphCount)
+-% +4 2 GlyphID GlyphArray(horizontally oriented glyphs)
++%
++% [Coverage Format 1, Individual glyph indices]
++% Index Size Type Name of Entry
++% -----------------------------------
++% 0 2 uint16 CoverageFormat (Format identifier-format = 1)
++% 2 2 uint16 GlyphCount (same as above GlyphCount)
++% 4 2 GlyphID GlyphArray (horizontally oriented glyphs)
++%
++% [Coverage Format 2, Range of glyphs
++% Index Size Type Name of Entry
++% -----------------------------------
++% 0 2 uint16 CoverageFormat (Format identifier-format = 2)
++% 2 2 uint16 RangeCount
++% 4 2 struct RangeRecord[RangeCount]
++% [RangeRecord]
++% Index Size Type Name of Entry
++% -----------------------------------
++% 0 2 GlyphID First GlyphID in the range
++% 2 2 GlyphID Last GlyphID in the range
++% 4 2 uint16 Coverage Index of first GlpyhID in range
+ % -----------------------------------
+ % References
+ % 1. http://www.microsoft.com/typography/OTSPEC/gsub.htm
+@@ -1110,50 +1134,101 @@
+ /gsubh2v null def
+ tabdict /GSUB .knownget { % if
+ dup /gsubver exch 0 getu32 def
+- %dup /gsubosl exch 4 getu16 12 add def
+- %dup /gsubofl exch 6 getu16 12 add def
+- dup /gsuboll exch 8 getu16 12 add def
++ %dup /gsubosl exch 4 getu16 def
++ %dup /gsubofl exch 6 getu16 def
++ dup /gsuboll exch 8 getu16 def
+ DEBUG {
+ (gsubver: ) print gsubver =
+ %(gsubosl: ) print gsubosl =
+ %(gsubofl: ) print gsubofl =
+ (gsuboll: ) print gsuboll =
+ } if
+- dup /gsubfmt exch gsuboll 0 add getu16 def
++ % /gsuboll should be pointed out the LookupList table, but not Lookup table.
++ % so this is wrong:
++ % dup /gsubfmt exch gsuboll 0 add getu16 def
++ dup /gsublc exch gsuboll 0 add getu16 def
+ DEBUG {
+- (gsubfmt: ) print gsubfmt =
++ (gsublc: ) print gsublc =
+ } if
+-% gsubver 16#00010000 eq { % ifelse
+- gsubfmt 2 eq { % ifelse
+- dup /gsubocv exch gsuboll 2 add getu16 def
+- dup /gsubglc exch gsuboll 4 add getu16 def
+- % hacked by suzuki toshiya at 2001/3/6
+- %dup /gsubvog exch gsuboll 6 add gsubglc getinterval def
+- %dup /gsubhog exch gsuboll gsubocv add 4 add gsubglc getinterval def
+- dup /gsubvog exch gsuboll 6 add gsubglc 2 mul getinterval def
+- dup /gsubhog exch gsuboll gsubocv add 4 add gsubglc 2 mul getinterval def
++ gsublc 0 ne {
++ 0 1 gsublc 1 sub {
++ 2 mul /gsubolt exch 2 index exch gsuboll 2 add add getu16 gsuboll add def
++ dup /gsubltype exch gsubolt 0 add getu16 def
++ dup /gsublflag exch gsubolt 2 add getu16 def
++ dup /gsubsubc exch gsubolt 4 add getu16 def
+ DEBUG {
+- (gsubocv: ) print gsubocv =
+- (gsubglc: ) print gsubglc =
+-
+- (gsubhog->gsubvog ) =
+- 0 2 gsubhog length 2 sub { % for
+- dup
+- gsubhog exch getu16 =only
+- (->) =only
+- gsubvog exch getu16 =
++ (gsubolt: ) print gsubolt =
++ (gsubltype: ) print gsubltype =
++ (gsublflag: ) print gsublflag =
++ (gsubsubc: ) print gsubsubc =
++ } if
++ gsubsubc 0 ne {
++ 0 1 gsubsubc 1 sub {
++ 2 mul /gsubost exch 2 index exch gsubolt 6 add add getu16 gsubolt add def
++ dup /substfmt exch gsubost 0 add getu16 def
++ DEBUG {
++ (gsubost: ) print gsubost =
++ (substfmt: ) print substfmt =
++ } if
++% gsubver 16#00010000 eq { % ifelse
++ gsubltype 1 eq substfmt 2 eq and { % ifelse
++ dup /gsubocv exch gsubost 2 add getu16 def
++ dup /gsubglc exch gsubost 4 add getu16 def
++ % hacked by suzuki toshiya at 2001/3/6
++ %dup /gsubvog exch gsubost 6 add gsubglc getinterval def
++ %dup /gsubhog exch gsubost gsubocv add 4 add gsubglc getinterval def
++ dup /gsubvog exch gsubost 6 add gsubglc 2 mul getinterval def
++ dup /cvfmt exch gsubost gsubocv add 0 add getu16 def
++ dup /cvglc exch gsubost gsubocv add 2 add getu16 def
++ dup /gsubhog exch gsubost gsubocv add 4 add cvglc 2 mul getinterval def
++ DEBUG {
++ (gsubocv: ) print gsubocv =
++ (gsubglc: ) print gsubglc =
++ (cvfmt: ) print cvfmt =
++
++ (gsubhog->gsubvog ) =
++ 0 2 gsubhog length 2 sub { % for
++ dup
++ gsubhog exch getu16 =only
++ (->) =only
++ gsubvog exch getu16 =
++ } for
++ } if
++ cvfmt 1 eq {
++ /gsubh2v << 0 2 gsubhog length 2 sub {
++ dup gsubhog exch getu16
++ exch gsubvog exch getu16
++ } for >> def
++ } {
++ cvfmt 2 eq {
++ /gsubh2v << 0 6 gsubhog length 6 sub {
++ dup 0 add /fgid exch gsubhog exch getu16 def
++ dup 2 add /lgid exch gsubhog exch getu16 def
++ 4 add /cvidx exch gsubhog exch getu16 def
++ DEBUG {
++ (fgid: ) print fgid =
++ (lgid: ) print lgid =
++ (cvidx: ) print cvidx =
++ } if
++ fgid 1 lgid {
++ dup cvidx add fgid sub
++ exch gsubvog exch getu16
++ } for
++ } for >> def
++ } {
++ %(UNKNWON COVERAGE FORMAT.) = flush
++ } ifelse
++ } ifelse
++ } {
++ %(UNKNOWN GSUB FORMAT.) = flush
++ } ifelse
++% } {
++% (ILLEGAL GSUB VERSION.) = flush
++% } ifelse
+ } for
+ } if
+- /gsubh2v << 0 2 gsubhog length 2 sub {
+- dup gsubhog exch getu16
+- exch gsubvog exch getu16
+- } for >> def
+- } {
+- %(UNKNOWN GSUB FORMAT.) = flush
+- } ifelse
+-% } {
+-% (ILLEGAL GSUB VERSION.) = flush
+-% } ifelse
++ } for
++ } if
+ pop
+ } if
+ } bind def
diff --git a/print/ghostscript7/files/patch-lib:pj-gs.sh.CAN-2004-0967 b/print/ghostscript7/files/patch-lib:pj-gs.sh.CAN-2004-0967
new file mode 100644
index 000000000000..9d4a0850f191
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:pj-gs.sh.CAN-2004-0967
@@ -0,0 +1,40 @@
+--- lib/pj-gs.sh.orig Thu Mar 9 17:40:40 2000
++++ lib/pj-gs.sh Mon Nov 28 02:22:20 2005
+@@ -241,6 +241,7 @@
+ then
+ /usr/lib/lprcat $Nofilter $Nolabel $file PCL1 $user $dev
+ else
++ TEMPFILE=`mktemp -t pjXXXXXX` || exit 1
+ type=`file $file | sed 's/^[^:]*..//'`
+ case "$type" in
+ postscript*)
+@@ -251,22 +252,22 @@
+ #
+ # gs -q -sDEVICE=paintjet -r180 -sOutputFile=- -dDISKFONTS -dNOPAUSE - < $file 2>/tmp/sh$$
+
+- gs -q -sDEVICE=paintjet -r180 -sOutputFile=/tmp/pj$$ -dDISKFONTS -dNOPAUSE - < $file 1>2
+- cat /tmp/pj$$
+- rm /tmp/pj$$
++ gs -q -sDEVICE=paintjet -r180 -sOutputFile=$TEMPFILE -dDISKFONTS -dNOPAUSE - < $file 1>2
++ cat $TEMPFILE
++ rm $TEMPFILE
+ needff=
+ ;;
+- *) cat "$file" 2>/tmp/sh$$
++ *) cat "$file" 2>$TEMPFILE
+ needff=1
+ ;;
+ esac
+
+- if [ -s /tmp/sh$$ ]
++ if [ -s $TEMPFILE ]
+ then
+ # cat /tmp/sh$$ # output any errors
+- cat /tmp/sh$$ 1>2 # output any errors
++ cat $TEMPFILE 1>2 # output any errors
+ fi
+- rm -f /tmp/sh$$
++ rm -f $TEMPFILE
+ if [ $needff ]; then echo "\014\r\c"; fi
+ fi
+
diff --git a/print/ghostscript7/files/patch-lib:ps2epsi.CAN-2004-0967 b/print/ghostscript7/files/patch-lib:ps2epsi.CAN-2004-0967
new file mode 100644
index 000000000000..33636efcaef2
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:ps2epsi.CAN-2004-0967
@@ -0,0 +1,12 @@
+--- lib/ps2epsi.orig Mon Nov 28 02:17:38 2005
++++ lib/ps2epsi Mon Nov 28 02:17:45 2005
+@@ -1,7 +1,8 @@
+ #!/bin/sh
+ # $Id: ps2epsi,v 1.7.2.1 2002/04/22 20:18:24 giles Exp $
+
+-tmpfile=/tmp/ps2epsi$$
++tmpfile=`mktemp -t ps2epsi.XXXXXX || exit 1`
++trap "rm -rf $tmpfile" 0 1 2 3 7 13 15
+
+ export outfile
+
diff --git a/print/ghostscript7/files/patch-lib:ps2pdfwr b/print/ghostscript7/files/patch-lib:ps2pdfwr
new file mode 100644
index 000000000000..ef2b946df791
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:ps2pdfwr
@@ -0,0 +1,173 @@
+--- lib/ps2pdfwr.org 2003-09-01 18:39:30.000000000 +0900
++++ lib/ps2pdfwr 2003-09-25 18:39:14.000000000 +0900
+@@ -31,6 +31,169 @@
+ outfile="$2"
+ fi
+
++[ "$NeverEmbedFontList" != "" ] || NeverEmbedFontList="
++/Courier
++/Courier-Bold
++/Courier-BoldOblique
++/Courier-Oblique
++/Helvetica
++/Helvetica-Bold
++/Helvetica-BoldOblique
++/Helvetica-Oblique
++/Symbol
++/Times-Bold
++/Times-BoldItalic
++/Times-Italic
++/Times-Roman
++/ZapfDingbats
++"
++[ "$AlwaysEmbedFontList" != "" ] || AlwaysEmbedFontList="
++/AvantGarde-Book
++/AvantGarde-BookOblique
++/AvantGarde-Demi
++/AvantGarde-DemiOblique
++/Bookman-Demi
++/Bookman-DemiItalic
++/Bookman-Light
++/Bookman-LightItalic
++/Helvetica-Narrow
++/Helvetica-Narrow-Bold
++/Helvetica-Narrow-BoldOblique
++/Helvetica-Narrow-Oblique
++/Palatino-Bold
++/Palatino-BoldItalic
++/Palatino-Italic
++/Palatino-Roman
++/ZapfChancery-MediumItalic
++
++/Arial-BoldItalicMT
++/Arial-BoldMT
++/Arial-ItalicMT
++/ArialMT
++/ArialNarrow
++/ArialNarrow-Bold
++/ArialNarrow-BoldItalic
++/ArialNarrow-Italic
++/BookmanOldStyle
++/BookmanOldStyle-Bold
++/BookmanOldStyle-BoldItalic
++/BookmanOldStyle-Italic
++/CenturyGothic
++/CenturyGothic-Bold
++/CenturyGothic-BoldItalic
++/CenturyGothic-Italic
++/CourierNewPS-BoldItalicMT
++/CourierNewPS-BoldMT
++/CourierNewPS-ItalicMT
++/CourierNewPSMT
++/NewCenturySchlbk-Bold
++/NewCenturySchlbk-BoldItalic
++/NewCenturySchlbk-Italic
++/NewCenturySchlbk-Roman
++/PalatinoLinotype-Bold
++/PalatinoLinotype-BoldItalic
++/PalatinoLinotype-Italic
++/PalatinoLinotype-Roman
++/TimesNewRomanPS-BoldItalicMT
++/TimesNewRomanPS-BoldMT
++/TimesNewRomanPS-ItalicMT
++/TimesNewRomanPSMT
++"
++[ "$NeverEmbedCIDFontList" != "" ] || NeverEmbedCIDFontList="
++/MSung-Light
++/MSung-Medium
++/MHei-Medium
++/MKai-Medium
++/STSong-Light
++/STFangsong-Light
++/STHeiti-Regular
++/STKaiti-Regular
++/Ryumin-Light
++/GothicBBB-Medium
++/HeiseiMin-W3
++/HeiseiKakuGo-W5
++/KozMin-Regular
++/HYGoThic-Medium
++/HYGungSo-Bold
++/HYKHeadLine-Bold
++/HYKHeadLine-Medium
++/HYSMyeongJo-Medium
++/HYRGoThic-Medium
++
++/MOEKai-Regular
++/MOESung-Regular
++/WadaGo-Bold
++/WadaMaruGo-Regular
++/WadaMaruGo-RegularH
++/WadaMin-Bold
++/WadaMin-Regular
++/WadaMin-RegularH
++/Munhwa-Bold
++/Munhwa-Regular
++/MunhwaGothic-Bold
++/MunhwaGothic-Regular
++/MunhwaGungSeo-Bold
++/MunhwaGungSeo-Light
++/MunhwaGungSeoHeulim-Bold
++/MunhwaGungSeoHeulim-Light
++/MunhwaHoonMin-Regular
++
++/MingLiU
++/PMingLiU
++/SimHei
++/SimSun
++/NSimSun
++/HGGothicE
++/HGGothicEPRO
++/HGGothicM
++/HGGyoshotai
++/HGMarugothicMPRO
++/HGPGothicE
++/HGPGothicM
++/HGPGyoshotai
++/HGPSoeiKakugothicUB
++/HGPSoeiKakupoptai
++/HGSGothicE
++/HGSGothicM
++/HGSGyoshotai
++/HGSSoeiKakugothicUB
++/HGSSoeiKakupoptai
++/HGSeikaishotaiPRO
++/HGSoeiKakugothicUB
++/HGSoeiKakupoptai
++/Kochi-Gothic
++/Kochi-Mincho
++/MojikumiKata-EB
++/Mona
++/MS-Mincho
++/MS-PMincho
++/MS-Gothic
++/MS-PGothic
++/MS-UIGothic
++/Batang
++/BatangChe
++/Gungsuh
++/GungsuhChe
++/Gulim
++/GulimChe
++/Dotum
++/DotumChe
++/New-Gulim
++
++/MHei-Medium-Acro
++/MSung-Light-Acro
++/STSong-Light-Acro
++/HeiseiKakuGo-W5-Acro
++/HeiseiMin-W3-Acro
++/HYGoThic-Medium-Acro
++/HYSMyeongJo-Medium-Acro
++"
++[ "$AlwaysEmbedCIDFontList" != "" ] || AlwaysEmbedCIDFontList="
++/SimSun-18030-Adobe-CNS1
++/NSimSun-18030-Adobe-CNS1
++/SimSun-18030
++/NSimSun-18030
++"
+ # We have to include the options twice because -I only takes effect if it
+ # appears before other options.
+-exec gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$outfile" $OPTIONS -c .setpdfwrite -f "$infile"
++exec gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$outfile" $OPTIONS -c ".setpdfwrite <</NeverEmbed [$NeverEmbedFontList $NeverEmbedCIDFontList] /AlwaysEmbed [$AlwaysEmbedFontList $AlwaysEmbedCIDFontList]>> setdistillerparams" -f "$infile"
diff --git a/print/ghostscript7/files/patch-lib:pv.sh.CAN-2004-0967 b/print/ghostscript7/files/patch-lib:pv.sh.CAN-2004-0967
new file mode 100644
index 000000000000..a37fc43aada9
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:pv.sh.CAN-2004-0967
@@ -0,0 +1,16 @@
+--- lib/pv.sh.orig Mon Nov 28 02:18:26 2005
++++ lib/pv.sh Mon Nov 28 02:18:59 2005
+@@ -29,9 +29,10 @@
+ PAGE=$1
+ shift
+ FILE=$1
++TEMPFILE=`mktemp -t ${FILE}XXXXXX` || exit 1
+ shift
+-trap "rm -rf $TEMPDIR/$FILE.$$.pv" 0 1 2 15
++trap "rm -rf $TEMPFILE" 0 1 2 15
+ #dvips -D$RESOLUTION -p $PAGE -n 1 $FILE $* -o $FILE.$$.pv
+-dvips -p $PAGE -n 1 $FILE $* -o $FILE.$$.pv
+-gs $FILE.$$.pv
++dvips -p $PAGE -n 1 $FILE $* -o $TEMPFILE
++gs $TEMPFILE
+ exit 0
diff --git a/print/ghostscript7/files/patch-lib:sysvlp.sh.CAN-2004-0967 b/print/ghostscript7/files/patch-lib:sysvlp.sh.CAN-2004-0967
new file mode 100644
index 000000000000..314d5d0bbe84
--- /dev/null
+++ b/print/ghostscript7/files/patch-lib:sysvlp.sh.CAN-2004-0967
@@ -0,0 +1,29 @@
+--- lib/sysvlp.sh.orig Thu Mar 9 17:40:40 2000
++++ lib/sysvlp.sh Mon Nov 28 02:22:42 2005
+@@ -27,20 +27,23 @@
+ # Brother HL-4: switch to HP laserjet II+ emulation
+ # echo "\033\015H\c"
+
++TEMPDIR=`mktemp -td sysvlp.XXXXXX` || exit 1
++
+ i=1
+ while [ $i -le $copies ]
+ do
+ for file in $files
+ do
+ $GSHOME/gs \
+- -sOUTPUTFILE=/tmp/psp$$.%02d \
++ -sOUTPUTFILE=$TEMPDIR/psp$$.%02d \
+ -sDEVICE=$DEVICE \
+ $EHANDLER $file \
+ < /dev/null >> /usr/tmp/ps_log 2>&1
+
+- cat /tmp/psp$$.* 2>> /usr/tmp/ps_log
+- rm -f /tmp/psp$$.*
++ cat $TEMPDIR/psp$$.* 2>> /usr/tmp/ps_log
++ rm -f $TEMPDIR/psp$$.*
+ done
+ i=`expr $i + 1`
+ done
++rmdir $TEMPDIR
+ exit 0
diff --git a/print/ghostscript7/files/patch-lips:gdevl4r.c b/print/ghostscript7/files/patch-lips:gdevl4r.c
new file mode 100644
index 000000000000..353ec2399a84
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevl4r.c
@@ -0,0 +1,97 @@
+--- lips/gdevl4r.c.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevl4r.c Tue Jan 13 01:28:40 2004
+@@ -53,8 +53,8 @@
+ #define lips_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
+@@ -68,8 +68,8 @@
+ #define lips4_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
+@@ -178,8 +178,13 @@
+ private int lips4c_output_page(gx_device_printer * pdev, FILE * prn_stream);
+ private int lips_delta_encode(byte * inBuff, byte * prevBuff, byte * outBuff, byte * diffBuff, int Length);
+ private int lips_byte_cat(byte * TotalBuff, byte * Buff, int TotalLen, int Len);
++#if GS_VERSION_MAJOR >= 8
++private int lips_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, lips_printer_type ptype, int numcopies);
++private int lips_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, lips_printer_type ptype, int numcopies);
++#else
+ private int lips_print_page_copies(P4(gx_device_printer * pdev, FILE * prn_stream, lips_printer_type ptype, int numcopies));
+ private int lips_print_page_copies(P4(gx_device_printer * pdev, FILE * prn_stream, lips_printer_type ptype, int numcopies));
++#endif
+ private int lips4type_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, int num_copies, int ptype);
+
+ private int
+@@ -1065,11 +1070,25 @@
+ if (paper_size == USER_SIZE) {
+ fprintf(prn_stream, "%c2 I", LIPS_CSI);
+ fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
+- width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
+ } else if (paper_size == USER_SIZE + LANDSCAPE) {
+ fprintf(prn_stream, "%c2 I", LIPS_CSI);
+ fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
+- height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
+ } else {
+ fprintf(prn_stream, "%c%dp", LIPS_CSI, paper_size);
+ }
+@@ -1078,14 +1097,28 @@
+ prev_paper_height != height) {
+ fprintf(prn_stream, "%c2 I", LIPS_CSI);
+ fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
+- width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
+ }
+ } else if (paper_size == USER_SIZE + LANDSCAPE) {
+ if (prev_paper_width != width ||
+ prev_paper_height != height) {
+ fprintf(prn_stream, "%c2 I", LIPS_CSI);
+ fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
+- height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
+ }
+ }
+ /* desired number of copies */
diff --git a/print/ghostscript7/files/patch-lips:gdevl4v.c b/print/ghostscript7/files/patch-lips:gdevl4v.c
new file mode 100644
index 000000000000..0d48309837d9
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevl4v.c
@@ -0,0 +1,154 @@
+--- lips/gdevl4v.c.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevl4v.c Tue Jan 13 01:30:38 2004
+@@ -230,41 +230,66 @@
+ };
+
+ /* Vector device implementation */
+-private int lips4v_beginpage(P1(gx_device_vector * vdev));
+-private int lips4v_setfillcolor(P2(gx_device_vector * vdev,
+- const gx_drawing_color * pdc));
+-private int lips4v_setstrokecolor(P2(gx_device_vector * vdev,
+- const gx_drawing_color * pdc));
+-private int lips4v_setdash(P4(gx_device_vector * vdev, const float *pattern,
+- uint count, floatp offset));
+-private int lips4v_setflat(P2(gx_device_vector * vdev, floatp flatness));
++#if GS_VERSION_MAJOR >= 8
++private int lips4v_beginpage(gx_device_vector * vdev);
++private int lips4v_setfillcolor(gx_device_vector * vdev,
++ const gx_drawing_color * pdc);
++private int lips4v_setstrokecolor(gx_device_vector * vdev,
++ const gx_drawing_color * pdc);
++private int lips4v_setdash(gx_device_vector * vdev, const float *pattern,
++ uint count, floatp offset);
++private int lips4v_setflat(gx_device_vector * vdev, floatp flatness);
++private int
++lips4v_setlogop(gx_device_vector * vdev, gs_logical_operation_t lop,
++ gs_logical_operation_t diff);
+ private int
+-lips4v_setlogop(P3
+
+- (gx_device_vector * vdev, gs_logical_operation_t lop,
+- gs_logical_operation_t diff));
++lips4v_beginpath(gx_device_vector * vdev, gx_path_type_t type);
++private int
++lips4v_moveto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
++ floatp y, gx_path_type_t type);
+ private int
++lips4v_lineto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
++ floatp y, gx_path_type_t type);
++private int
++lips4v_curveto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x1,
++ floatp y1, floatp x2, floatp y2, floatp x3, floatp y3,
++ gx_path_type_t type);
++lips4v_closepath(gx_device_vector * vdev, floatp x, floatp y, floatp x_start,
++ floatp y_start, gx_path_type_t type);
+
+-lips4v_beginpath(P2(gx_device_vector * vdev, gx_path_type_t type));
++private int lips4v_endpath(gx_device_vector * vdev, gx_path_type_t type);
++#else
++private int lips4v_beginpage(P1(gx_device_vector * vdev));
++private int lips4v_setfillcolor(gx_device_vector * vdev,
++ const gx_drawing_color * pdc);
++private int lips4v_setstrokecolor(gx_device_vector * vdev,
++ const gx_drawing_color * pdc);
++private int lips4v_setdash(gx_device_vector * vdev, const float *pattern,
++ uint count, floatp offset);
++private int lips4v_setflat(gx_device_vector * vdev, floatp flatness);
++private int
++lips4v_setlogop(gx_device_vector * vdev, gs_logical_operation_t lop,
++ gs_logical_operation_t diff);
++private int
++
++lips4v_beginpath(gx_device_vector * vdev, gx_path_type_t type);
+ private int
+-lips4v_moveto(P6
+- (gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
+- floatp y, gx_path_type_t type));
++lips4v_moveto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
++ floatp y, gx_path_type_t type);
+ private int
+-lips4v_lineto(P6
+- (gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
+- floatp y, gx_path_type_t type));
++lips4v_lineto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x,
++ floatp y, gx_path_type_t type);
+ private int
+-lips4v_curveto(P10
+- (gx_device_vector * vdev, floatp x0, floatp y0, floatp x1,
++lips4v_curveto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x1,
+ floatp y1, floatp x2, floatp y2, floatp x3, floatp y3,
+- gx_path_type_t type));
++ gx_path_type_t type);
+ private int
+-lips4v_closepath(P6
+- (gx_device_vector * vdev, floatp x, floatp y, floatp x_start,
+- floatp y_start, gx_path_type_t type));
++lips4v_closepath(gx_device_vector * vdev, floatp x, floatp y, floatp x_start,
++ floatp y_start, gx_path_type_t type);
+
+-private int lips4v_endpath(P2(gx_device_vector * vdev, gx_path_type_t type));
++private int lips4v_endpath(gx_device_vector * vdev, gx_path_type_t type);
++#endif
+ private int lips4v_setlinewidth(gx_device_vector * vdev, floatp width);
+ private int lips4v_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
+ private int lips4v_setlinejoin(gx_device_vector * vdev, gs_line_join join);
+@@ -758,10 +783,26 @@
+ /* 用紙サイズ */
+ if (pdev->prev_paper_size != paper_size) {
+ if (paper_size == USER_SIZE) {
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
+ lputs(s, paper);
+ } else if (paper_size == USER_SIZE + LANDSCAPE) {
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
+ lputs(s, paper);
+ } else {
+ sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
+@@ -770,12 +811,28 @@
+ } else if (paper_size == USER_SIZE) {
+ if (pdev->prev_paper_width != width ||
+ pdev->prev_paper_height != height)
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
+ lputs(s, paper);
+ } else if (paper_size == USER_SIZE + LANDSCAPE) {
+ if (pdev->prev_paper_width != width ||
+ pdev->prev_paper_height != height)
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
+ lputs(s, paper);
+ }
+ pdev->prev_paper_size = paper_size;
diff --git a/print/ghostscript7/files/patch-lips:gdevlips.c b/print/ghostscript7/files/patch-lips:gdevlips.c
new file mode 100644
index 000000000000..143fed14f0a1
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlips.c
@@ -0,0 +1,18 @@
+--- lips/gdevlips.c.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.c Tue Jan 13 01:23:47 2004
+@@ -62,7 +62,15 @@
+ height = tmp;
+ }
+ for (pt = lips_paper_table; pt->num_unit < 80; pt++)
++/* add by shige 11/06 2003 */
++#ifdef USE_LIPS_SIZE_ERROR
++ if(pt->width+LIPS_SIZE_ERROR_VALUE>=width
++ && pt->width-LIPS_SIZE_ERROR_VALUE<=width
++ && pt->height+LIPS_SIZE_ERROR_VALUE>=height
++ && pt->height-LIPS_SIZE_ERROR_VALUE<=height)
++#else
+ if (pt->width == width && pt->height == height)
++#endif
+ break;
+
+ return pt->num_unit + landscape;
diff --git a/print/ghostscript7/files/patch-lips:gdevlips.h b/print/ghostscript7/files/patch-lips:gdevlips.h
new file mode 100644
index 000000000000..eebce89cc054
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlips.h
@@ -0,0 +1,17 @@
+--- lips/gdevlips.h.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.h Tue Jan 13 01:23:47 2004
+@@ -188,6 +188,14 @@
+ bool faceup;\
+ char mediaType[LIPS_MEDIACHAR_MAX];
+
++/* added by shige 11/06 2003 */
++#define USE_LIPS_SIZE_ERROR
++#define LIPS_SIZE_ERROR_VALUE 2
++
++/* added by shige 11/09 2003 */
++#define LIPS_HEIGHT_MAX_720 11906
++#define LIPS_WIDTH_MAX_720 8419
++
+ int lips_media_selection(int width, int height);
+ int lips_packbits_encode(byte * inBuff, byte * outBuff, int Length);
+ int lips_mode3format_encode(byte * inBuff, byte * outBuff, int Length);
diff --git a/print/ghostscript7/files/patch-lips:gdevlips.mak b/print/ghostscript7/files/patch-lips:gdevlips.mak
new file mode 100644
index 000000000000..11fb154eb2c2
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlips.mak
@@ -0,0 +1,61 @@
+--- lips/gdevlips.mak.orig 2000-11-02 12:12:13.000000000 +0900
++++ lips/gdevlips.mak 2013-04-30 02:57:36.000000000 +0900
+@@ -1,17 +1,19 @@
+ # ---------------- Laser Printer devices ---------------- #
+ # $Id: gdevlips.mak $
+
++lips_opts=-DGS_VERSION_MAJOR=$(GS_VERSION_MAJOR)
++
+ $(GLOBJ)gdevlprn.$(OBJ): $(GLSRC)gdevlprn.c $(GLSRC)gdevlprn.h\
+ $(gdevprn_h) $(PDEVH)
+- $(GLCC) $(GLO_)gdevlprn.$(OBJ) $(C_) $(GLSRC)gdevlprn.c
++ $(GLCC) $(GLO_)gdevlprn.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevlprn.c
+
+ ### --- The Canon LIPS II+/III/IVc/IV printer device --- ###
+
+ lipsr_=$(GLOBJ)gdevl4r.$(OBJ) $(GLOBJ)gdevlips.$(OBJ) $(GLOBJ)gdevlprn.$(OBJ)
+-$(GLOBJ)gdevl4r.$(OBJ): $(GLSRC)gdevl4r.c $(GLSRC)gdevlips.h $(PDEVH)
+- $(GLCC) -DA4 $(GLO_)gdevl4r.$(OBJ) $(C_) $(GLSRC)gdevl4r.c
+-$(GLOBJ)gdevlips.$(OBJ): $(GLSRC)gdevlips.c
+- $(GLCC) $(GLO_)gdevlips.$(OBJ) $(C_) $(GLSRC)gdevlips.c
++$(GLOBJ)gdevl4r.$(OBJ): $(arch_h) $(GLSRC)gdevl4r.c $(GLSRC)gdevlips.h $(PDEVH)
++ $(GLCC) -DA4 $(GLO_)gdevl4r.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevl4r.c
++$(GLOBJ)gdevlips.$(OBJ): $(arch_h) $(GLSRC)gdevlips.c
++ $(GLCC) $(GLO_)gdevlips.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevlips.c
+ $(DD)lips2p.dev: $(lipsr_) $(DD)page.dev
+ $(SETPDEV) $(DD)lips2p $(lipsr_)
+ $(DD)lips3.dev: $(lipsr_) $(DD)page.dev
+@@ -29,13 +31,13 @@
+ $(GLOBJ)gdevl4v.$(OBJ): $(GLSRC)gdevl4v.c $(GLSRC)gdevlips.h $(GDEV) $(math__h)\
+ $(gscspace_h) $(gsutil_h) $(gsparam_h) $(gsmatrix_h) $(gdevvec_h)\
+ $(ghost_h) $(gzstate_h) $(igstate_h)
+- $(GLCC) -DA4 $(GLO_)gdevl4v.$(OBJ) $(C_) $(GLSRC)gdevl4v.c
++ $(GLCC) -DA4 $(GLO_)gdevl4v.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevl4v.c
+
+ ### ------- Epson ESC/Page printer device ----------------- ###
+
+ escpage_=$(GLOBJ)gdevespg.$(OBJ) $(GLOBJ)gdevlprn.$(OBJ)
+ $(GLOBJ)gdevespg.$(OBJ): $(GLSRC)gdevespg.c $(GLSRC)gdevlprn.h $(PDEVH)
+- $(GLCC) -DA4 $(GLO_)gdevespg.$(OBJ) $(C_) $(GLSRC)gdevespg.c
++ $(GLCC) -DA4 $(GLO_)gdevespg.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevespg.c
+
+ $(GLOBJ)escpage.dev: $(escpage_) $(DD)page.dev
+ $(SETPDEV) $(DD)escpage $(escpage_)
+@@ -47,7 +49,7 @@
+
+ npdl_=$(GLOBJ)gdevnpdl.$(OBJ) $(GLOBJ)gdevlprn.$(OBJ)
+ $(GLOBJ)gdevnpdl.$(OBJ): $(GLSRC)gdevnpdl.c $(GLSRC)gdevlprn.h $(PDEVH)
+- $(GLCC) -DA4 $(GLO_)gdevnpdl.$(OBJ) $(C_) $(GLSRC)gdevnpdl.c
++ $(GLCC) -DA4 $(GLO_)gdevnpdl.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevnpdl.c
+
+ $(GLOBJ)npdl.dev: $(npdl_) $(DD)page.dev
+ $(SETPDEV) $(DD)npdl $(npdl_)
+@@ -56,7 +58,7 @@
+
+ rpdl_=$(GLOBJ)gdevrpdl.$(OBJ) $(GLOBJ)gdevlprn.$(OBJ)
+ $(GLOBJ)gdevrpdl.$(OBJ): $(GLSRC)gdevrpdl.c $(GLSRC)gdevlprn.h $(PDEVH)
+- $(GLCC) -DA4 $(GLO_)gdevrpdl.$(OBJ) $(C_) $(GLSRC)gdevrpdl.c
++ $(GLCC) -DA4 $(GLO_)gdevrpdl.$(OBJ) $(C_) $(lips_opts) $(GLSRC)gdevrpdl.c
+
+ $(GLOBJ)rpdl.dev: $(rpdl_) $(DD)page.dev
+ $(SETPDEV) $(DD)rpdl $(rpdl_)
diff --git a/print/ghostscript7/files/patch-lips:gdevlprn.h b/print/ghostscript7/files/patch-lips:gdevlprn.h
new file mode 100644
index 000000000000..f692dbe410a2
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlprn.h
@@ -0,0 +1,16 @@
+--- lips/gdevlprn.h.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlprn.h Sat Sep 13 23:06:38 2003
+@@ -28,8 +28,13 @@
+
+ #include "gdevprn.h"
+
++#if GS_VERSION_MAJOR >= 8
++#define lprn_dev_proc_image_out(proc)\
++ void proc(gx_device_printer *, FILE *, int, int, int, int)
++#else
+ #define lprn_dev_proc_image_out(proc)\
+ void proc(P6(gx_device_printer *, FILE *, int, int, int, int))
++#endif
+
+ #define dev_proc_image_out(proc) lprn_dev_proc_image_out(proc)
+
diff --git a/print/ghostscript7/files/patch-md2k:gdevmd2k.mak b/print/ghostscript7/files/patch-md2k:gdevmd2k.mak
new file mode 100644
index 000000000000..b003efb81f7f
--- /dev/null
+++ b/print/ghostscript7/files/patch-md2k:gdevmd2k.mak
@@ -0,0 +1,19 @@
+--- md2k/gdevmd2k.mak-5.50.orig Sun Nov 19 18:42:20 2000
++++ md2k/gdevmd2k.mak-5.50 Sun Nov 19 18:52:14 2000
+@@ -3,11 +3,11 @@
+
+ md2k_=$(GLOBJ)gdevmd2k.$(OBJ)
+
+-md2k.dev: $(md2k_) page.dev
+- $(SETPDEV) md2k $(md2k_)
++$(DD)md2k.dev: $(md2k_) $(DD)page.dev
++ $(SETPDEV) $(DD)md2k $(md2k_)
+
+-md5k.dev: $(md2k_) page.dev
+- $(SETPDEV) md5k $(md2k_)
++$(DD)md5k.dev: $(md2k_) $(DD)page.dev
++ $(SETPDEV) $(DD)md5k $(md2k_)
+
+-$(GLOBJ)gdevmd2k.$(OBJ): gdevmd2k.c $(PDEVH) $(gsparam_h)
++$(GLOBJ)gdevmd2k.$(OBJ): $(GLSRC)gdevmd2k.c $(PDEVH) $(gsparam_h)
+ $(GLCC) $(GLO_)gdevmd2k.$(OBJ) $(C_) $(GLSRC)gdevmd2k.c
diff --git a/print/ghostscript7/files/patch-mjc:gdevmjc.c b/print/ghostscript7/files/patch-mjc:gdevmjc.c
new file mode 100644
index 000000000000..99ff0bcb245f
--- /dev/null
+++ b/print/ghostscript7/files/patch-mjc:gdevmjc.c
@@ -0,0 +1,335 @@
+--- mjc/gdevmjc.c.orig Tue May 23 19:16:52 2000
++++ mjc/gdevmjc.c Tue May 23 19:17:44 2000
+@@ -43,7 +43,8 @@
+ #include <limits.h>
+ #include "gdevprn.h"
+ #include "gdevpcl.h"
+-#include "gsprops.h"
++#include "gsparam.h"
++#include "gsstate.h"
+
+ #include "mjmtx2.c"
+ #include "mjbksep.c"
+@@ -150,7 +151,9 @@
+
+ /* Undefined macros expected to be defined in gdevpcl.h */
+ #define PAPER_SIZE_A3_NOBI 28
++#ifndef PAPER_SIZE_A2
+ #define PAPER_SIZE_A2 29
++#endif
+ #define PAPER_SIZE_B4 30
+ #define PAPER_SIZE_B5 31
+
+@@ -190,14 +193,12 @@
+ private dev_proc_print_page(mjc720_print_page);
+ private dev_proc_print_page(mj500c_print_page);
+
+-private dev_proc_get_props(mj_get_props);
+-private dev_proc_put_props(mj_put_props);
++private dev_proc_get_params(mj_get_params);
++private dev_proc_put_params(mj_put_params);
+
+ private void expand_line(P4(word*, int, int, int));
+-private int put_prop_float(P5(gs_prop_item *, float *, float, float, int));
+-private int put_prop_int(P5(gs_prop_item *, int *, int, int, int));
+-
+-private void set_bpp(P2(gx_device *, int));
++private int mj_put_param_int(P6(gs_param_list *, gs_param_name, int *, int, int, int));
++private void mj_set_bpp(P2(gx_device *, int));
+
+ private uint gdev_prn_rasterwidth(P2(const gx_device_printer *, int ));
+
+@@ -224,7 +225,7 @@
+ #define mj ((gx_device_mj *) pdev)
+
+ #define prn_hp_colour_device(procs, dev_name, x_dpi, y_dpi, bpp, print_page)\
+- prn_device_body(gx_device_printer, procs, dev_name,\
++ prn_device_body(gx_device_mj, procs, dev_name,\
+ WIDTH_10THS, HEIGHT_10THS, x_dpi, y_dpi, 0, 0, 0, 0, 0,\
+ bpp, 0, 0, 0, 0, print_page)
+
+@@ -235,9 +236,9 @@
+ }
+
+
+-#define mj_colour_procs(proc_colour_open, proc_get_props, proc_put_props) {\
++#define mj_colour_procs(proc_colour_open, proc_get_params, proc_put_params) {\
+ proc_colour_open,\
+- gdev_pcl_get_initial_matrix,\
++ gx_default_get_initial_matrix,\
+ gx_default_sync_output,\
+ gdev_prn_output_page,\
+ gdev_prn_close,\
+@@ -249,15 +250,15 @@
+ NULL, /* copy_color */\
+ NULL, /* draw_line */\
+ gx_default_get_bits,\
+- proc_get_props,\
+- proc_put_props\
++ proc_get_params,\
++ proc_put_params\
+ }
+
+ private int mjc_open(P1(gx_device *));
+ private int mj_colour_open(P1(gx_device *));
+
+ private gx_device_procs mj_procs =
+-mj_colour_procs(mjc_open, mj_get_props, mj_put_props);
++mj_colour_procs(mjc_open, mj_get_params, mj_put_params);
+
+ gx_device_mj far_data gs_mjc180_device =
+ mj_device(mj_procs, "mjc180", 180, 180, BITSPERPIXEL,
+@@ -306,14 +307,14 @@
+ static const float mj_b4[4] = { MJ700V2C_MARGINS_B4 };
+ static const float mj_b5[4] = { MJ700V2C_MARGINS_B5 };
+ static const float mj_letter[4] = { MJ700V2C_MARGINS_LETTER };
+- const float _ds *m;
++ const float *m;
+ int psize;
+
+ int paper_size;
+
+ /* Set up colour params if put_props has not already done so */
+ if (pdev->color_info.num_components == 0)
+- set_bpp(pdev, pdev->color_info.depth);
++ mj_set_bpp(pdev, pdev->color_info.depth);
+
+ paper_size = gdev_mjc_paper_size(pdev);
+ if (paper_size == PAPER_SIZE_A2 ) {
+@@ -332,10 +333,7 @@
+ m = mj_letter;
+ }
+
+- pdev->l_margin = m[0];
+- pdev->b_margin = m[1];
+- pdev->r_margin = m[2];
+- pdev->t_margin = m[3];
++ gx_device_set_margins(pdev, m, true);
+
+ switch (mj->colorcomp) {
+ case 1:
+@@ -360,80 +358,74 @@
+ * and control over the bits-per-pixel used in output rendering */
+ /* Added properties for DeskJet 5xxC */
+
+-private const gs_prop_item props_mj[] = {
+- /* Read-write properties. */
+- prop_def("Density", prt_int),
+- prop_def("Cyan", prt_int),
+- prop_def("Magenta", prt_int),
+- prop_def("Yellow", prt_int),
+- prop_def("Black", prt_int),
+- prop_def("Dither", prt_int),
+- prop_def("ColorComponent", prt_int),
+- prop_def("Direction", prt_int),
+- prop_def("MicroWeave", prt_int),
+- prop_def("DotSize", prt_int),
+-};
+-
+ private int
+-mj_get_props(gx_device *pdev, gs_prop_item *plist)
+-{ int start = gdev_prn_get_props(pdev, plist);
+- if ( plist != 0 ) {
+- register gs_prop_item *pi = plist + start;
+- memcpy(pi, props_mj, sizeof(props_mj));
+- pi[0].value.i = mj->density;
+- pi[1].value.i = mj->cyan;
+- pi[2].value.i = mj->magenta;
+- pi[3].value.i = mj->yellow;
+- pi[4].value.i = mj->black;
+- pi[5].value.i = mj->dither;
+- pi[6].value.i = mj->colorcomp;
+- pi[7].value.i = mj->direction;
+- pi[8].value.i = mj->microweave;
+- pi[9].value.i = mj->dotsize;
+- }
+- return start + sizeof(props_mj) / sizeof(gs_prop_item);
++mj_get_params(gx_device *pdev, gs_param_list *plist)
++{ int code = gdev_prn_get_params(pdev, plist);
++ if ( code < 0 ||
++ (code = param_write_int(plist, "Density", &mj->density)) < 0 ||
++ (code = param_write_int(plist, "Cyan", &mj->cyan)) < 0 ||
++ (code = param_write_int(plist, "Magenta", &mj->magenta)) < 0 ||
++ (code = param_write_int(plist, "Yellow", &mj->yellow)) < 0 ||
++ (code = param_write_int(plist, "Black", &mj->black)) < 0 ||
++ (code = param_write_int(plist, "Dither", &mj->dither)) < 0 ||
++ (code = param_write_int(plist, "ColorComponent", &mj->colorcomp)) < 0 ||
++ (code = param_write_int(plist, "Direction", &mj->direction)) < 0 ||
++ (code = param_write_int(plist, "MicroWeave", &mj->microweave)) < 0 ||
++ (code = param_write_int(plist, "DotSize", &mj->dotsize)) < 0
++ )
++ return code;
++ return code;
+ }
+
+ /* Put properties. */
+ private int
+-mj_put_props(gx_device *pdev, gs_prop_item *plist, int count)
++mj_put_params(gx_device *pdev, gs_param_list *plist)
+ {
+- static const argn = 10;
+-/* gs_prop_item *known[argn]; */
+- gs_prop_item *known[10];
+ int old_bpp = mj->color_info.depth;
+ int bpp = 0;
+ int code = 0;
+-
+- props_extract(plist, count, props_mj, argn, known, 0);
+- code = gdev_prn_put_props(pdev, plist, count);
+- if ( code < 0 ) return code;
+-
+- code = put_prop_int(known[0], &mj->density, 0, INT_MAX, code);
+- code = put_prop_int(known[1], &mj->cyan, 0, INT_MAX, code);
+- code = put_prop_int(known[2], &mj->magenta, 0, INT_MAX, code);
+- code = put_prop_int(known[3], &mj->yellow, 0, INT_MAX, code);
+- code = put_prop_int(known[4], &mj->black, 0, INT_MAX, code);
+- code = put_prop_int(known[5], &mj->dither, 0, 1, code);
+- code = put_prop_int(known[6], &mj->colorcomp, 1, 4, code);
+- code = put_prop_int(known[7], &mj->direction, 1, 2, code);
+- code = put_prop_int(known[8], &mj->microweave, 0, 1, code);
+- code = put_prop_int(known[9], &mj->dotsize, 0, 1, code);
+-
++ int density = mj->density;
++ int cyan = mj->cyan;
++ int magenta = mj->magenta;
++ int yellow = mj->yellow;
++ int black = mj->black;
++ int dither = mj->dither;
++ int colorcomp = mj->colorcomp;
++ int direction = mj->direction;
++ int microweave = mj->microweave;
++ int dotsize = mj->dotsize;
++ code = mj_put_param_int(plist, "Density", &density, 0, INT_MAX, code);
++ code = mj_put_param_int(plist, "Cyan", &cyan, 0, INT_MAX, code);
++ code = mj_put_param_int(plist, "Magenta", &magenta, 0, INT_MAX, code);
++ code = mj_put_param_int(plist, "Yellow", &yellow, 0, INT_MAX, code);
++ code = mj_put_param_int(plist, "Black", &black, 0, INT_MAX, code);
++ code = mj_put_param_int(plist, "Dither", &dither, 0, 1, code);
++ code = mj_put_param_int(plist, "ColorComponent", &colorcomp, 1, 4, code);
++ code = mj_put_param_int(plist, "Direction", &direction, 1, 2, code);
++ code = mj_put_param_int(plist, "MicroWeave", &microweave, 0, 1, code);
++ code = mj_put_param_int(plist, "DotSize", &dotsize, 0, 1, code);
++ code = mj_put_param_int(plist, "BitsPerPixel", &bpp, 1, 32, code);
+ if ( code < 0 )
+- return_error(code);
+-
+- if (bpp != 0) {
+- set_bpp(pdev, bpp);
+-
+- /* Close the device; gs_putdeviceprops will reopen it. */
++ return code;
++ mj->density = density;
++ mj->cyan = cyan;
++ mj->magenta = magenta;
++ mj->yellow = yellow;
++ mj->black = black;
++ mj->dither = dither;
++ mj->colorcomp = colorcomp;
++ mj->direction = direction;
++ mj->microweave = microweave;
++ mj->dotsize = dotsize;
++ if ( bpp != 0 ) {
++ mj_set_bpp(pdev, bpp);
++ gdev_prn_put_params(pdev, plist);
+ if ( bpp != old_bpp && pdev->is_open )
+- { int ccode = gs_closedevice(pdev);
+- if ( ccode < 0 ) return ccode;
+- }
++ return gs_closedevice(pdev);
++ return 0;
+ }
+-
+- return code;
++ else
++ return gdev_prn_put_params(pdev, plist);
+ }
+
+ /* ------ Internal routines ------ */
+@@ -1163,7 +1155,8 @@
+
+ /* Send each scan line in turn */
+ {
+- long int lend = pdev->height - (pdev->t_margin + pdev->b_margin) * y_dpi;
++ long int lend = pdev->height -
++ (dev_t_margin_points(pdev) + dev_b_margin_points(pdev));
+ int cErr, mErr, yErr, kErr;
+ int this_pass, i;
+ long int lnum;
+@@ -1685,39 +1678,25 @@
+ }
+
+ private int
+-put_prop_int(gs_prop_item *pi, int *property, int minval, int maxval, int code)
+-{
+- if ( pi == 0 )
+- return (code);
+-
+- if ( pi->value.i < minval || pi->value.i > maxval )
+- { pi->status = pv_rangecheck;
+- return (gs_error_rangecheck);
+- }
+- else
+- { *property = pi->value.i;
+- return (code ? code : 1);
+- }
+-}
+-
+-private int
+-put_prop_float(gs_prop_item *pi, float *property, float minval, float maxval, int code)
+-{
+- if ( pi == 0 )
+- return (code);
+-
+- if ( pi->value.f < minval || pi->value.f > maxval )
+- { pi->status = pv_rangecheck;
+- return (gs_error_rangecheck);
+- }
+- else
+- { *property = pi->value.f;
+- return (code ? code : 1);
+- }
++mj_put_param_int(gs_param_list *plist, gs_param_name pname, int *pvalue,
++ int minval, int maxval, int ecode)
++{ int code, value;
++ switch ( code = param_read_int(plist, pname, &value) )
++ {
++ default:
++ return code;
++ case 1:
++ return ecode;
++ case 0:
++ if ( value < minval || value > maxval )
++ param_signal_error(plist, pname, gs_error_rangecheck);
++ *pvalue = value;
++ return (ecode < 0 ? ecode : 1);
++ }
+ }
+
+ private void
+-set_bpp(gx_device *pdev, int bits_per_pixel)
++mj_set_bpp(gx_device *pdev, int bits_per_pixel)
+ { gx_device_color_info *ci = &pdev->color_info;
+ /* Only valid bits-per-pixel are 1, 3, 8, 16, 24, 32 */
+ int bpp = bits_per_pixel < 3 ? 1 : bits_per_pixel < 8 ? 3 :
+@@ -1725,9 +1704,9 @@
+ ci->num_components = ((bpp == 1) || (bpp == 8) ? 1 : 3);
+ ci->depth = ((bpp > 1) && (bpp < 8) ? 8 : bpp);
+ ci->max_gray = (bpp >= 8 ? 255 : 1);
+- ci->max_rgb = (bpp >= 8 ? 255 : bpp > 1 ? 1 : 0);
+- ci->dither_gray = (bpp >= 8 ? 5 : 2);
+- ci->dither_rgb = (bpp >= 8 ? 5 : bpp > 1 ? 2 : 0);
++ ci->max_color = (bpp >= 8 ? 255 : bpp > 1 ? 1 : 0);
++ ci->dither_grays = (bpp >= 8 ? 5 : 2);
++ ci->dither_colors = (bpp >= 8 ? 5 : bpp > 1 ? 2 : 0);
+ }
+
+ /* This returns either the number of pixels in a scan line, or the number
+@@ -1736,7 +1715,7 @@
+ gdev_prn_rasterwidth(const gx_device_printer *pdev, int pixelcount)
+ {
+ word raster_width =
+- pdev->width - pdev->x_pixels_per_inch * (pdev->l_margin + pdev->r_margin);
++ pdev->width - (pdev->HWMargins[0] + pdev->HWMargins[2]);
+ return (pixelcount ?
+ (uint)raster_width :
+ (uint)((raster_width * pdev->color_info.depth + 7) >> 3));
diff --git a/print/ghostscript7/files/patch-mjc:gdevmjc.mak b/print/ghostscript7/files/patch-mjc:gdevmjc.mak
new file mode 100644
index 000000000000..a094ea08812f
--- /dev/null
+++ b/print/ghostscript7/files/patch-mjc:gdevmjc.mak
@@ -0,0 +1,43 @@
+--- mjc/gdevmjc.mak.orig Tue May 23 19:19:13 2000
++++ mjc/gdevmjc.mak Tue May 23 19:19:40 2000
+@@ -4,25 +4,22 @@
+ # Supports MJ-700V2C, MJ-5000C, MJ-900C, MJ-800C, MJ-500C
+ #
+ ##
+-#
+-# Append this file to Makefile
+-#
+-##
+-MJCSRC = gdevmjc.c mjmtx2.c mjbksep.c mjhtocmy.c mjvtbl.c \
+- mjgrnsp.c mjgrnsp2.c mjespdtc.c mjespdtm.c mjespdty.c mjbarrie.c
++MJCSRC = $(GLSRC)gdevmjc.c $(GLSRC)mjmtx2.c $(GLSRC)mjbksep.c \
++ $(GLSRC)mjhtocmy.c $(GLSRC)mjvtbl.c $(GLSRC)mjgrnsp.c \
++ $(GLSRC)mjgrnsp2.c $(GLSRC)mjespdtc.c $(GLSRC)mjespdtm.c \
++ $(GLSRC)mjespdty.c $(GLSRC)mjbarrie.c
+
+-mj700v2c_=gdevmjc.$(OBJ) $(HPPCL)
++mj700v2c_=$(GLOBJ)gdevmjc.$(OBJ) $(HPPCL)
+
+ # To make A4 paper the default, change the second line below this to
+-gdevmjc.$(OBJ): $(MJCSRC) $(PDEVH) $(gdevpcl_h)
+- $(CCC) -DA4 gdevmjc.c
+-
+-mjc180.dev: $(mj700v2c_)
+- $(SHP)gssetdev mjc180 $(mj700v2c_)
+-mjc360.dev: $(mj700v2c_)
+- $(SHP)gssetdev mjc360 $(mj700v2c_)
+-mjc720.dev: $(mj700v2c_)
+- $(SHP)gssetdev mjc720 $(mj700v2c_)
+-mj500c.dev: $(mj700v2c_)
+- $(SHP)gssetdev mj500c $(mj700v2c_)
++$(GLOBJ)gdevmjc.$(OBJ): $(MJCSRC) $(PDEVH) $(gdevpcl_h)
++ $(GLCC) -DA4 $(GLO_)gdevmjc.$(OBJ) $(C_) $(GLSRC)gdevmjc.c
+
++$(GLOBJ)mjc180.dev: $(mj700v2c_) $(DD)page.dev
++ $(SETPDEV) $(DD)mjc180 $(mj700v2c_)
++$(GLOBJ)mjc360.dev: $(mj700v2c_) $(DD)page.dev
++ $(SETPDEV) $(DD)mjc360 $(mj700v2c_)
++$(GLOBJ)mjc720.dev: $(mj700v2c_) $(DD)page.dev
++ $(SETPDEV) $(DD)mjc720 $(mj700v2c_)
++$(GLOBJ)mj500c.dev: $(mj700v2c_) $(DD)page.dev
++ $(SETPDEV) $(DD)mj500c $(mj700v2c_)
diff --git a/print/ghostscript7/files/patch-pcl3-src-contrib.mak-7.00.add b/print/ghostscript7/files/patch-pcl3-src-contrib.mak-7.00.add
new file mode 100644
index 000000000000..23d4d923100b
--- /dev/null
+++ b/print/ghostscript7/files/patch-pcl3-src-contrib.mak-7.00.add
@@ -0,0 +1,70 @@
+--- pcl3/src/contrib.mak-7.00.add.orig 2001-08-19 19:16:29.000000000 +0900
++++ pcl3/src/contrib.mak-7.00.add 2013-04-30 02:43:04.000000000 +0900
+@@ -87,25 +87,25 @@
+
+ # Rules for individual files
+
+-$(GLOBJ)mediasize.$(OBJ): $(eprn_src)mediasize.c $(eprn_src)mediasize.h
++$(GLOBJ)mediasize.$(OBJ): $(arch_h) $(eprn_src)mediasize.c $(eprn_src)mediasize.h
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_src)mediasize.c
+
+-$(GLOBJ)gdeveprn.$(OBJ): $(eprn_src)gdeveprn.c $(eprn_headers) \
++$(GLOBJ)gdeveprn.$(OBJ): $(arch_h) $(eprn_src)gdeveprn.c $(eprn_headers) \
+ $(eprn_src)pagecount.h
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_src)gdeveprn.c
+
+-$(GLOBJ)eprnparm.$(OBJ): $(eprn_src)eprnparm.c $(eprn_headers)
++$(GLOBJ)eprnparm.$(OBJ): $(arch_h) $(eprn_src)eprnparm.c $(eprn_headers)
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_src)eprnparm.c
+
+-$(GLOBJ)eprnrend.$(OBJ): $(eprn_src)eprnrend.c $(eprn_headers)
++$(GLOBJ)eprnrend.$(OBJ): $(arch_h) $(eprn_src)eprnrend.c $(eprn_headers)
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_src)eprnrend.c
+
+-$(GLOBJ)eprnfs.$(OBJ): $(eprn_src)eprnfs.c $(eprn_headers)
++$(GLOBJ)eprnfs.$(OBJ): $(arch_h) $(eprn_src)eprnfs.c $(eprn_headers)
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_fs_options) \
+ $(eprn_src)eprnfs.c
+
+ # File also used by hpdj:
+-$(GLOBJ)pagecount.$(OBJ): $(eprn_src)pagecount.c $(eprn_src)pagecount.h
++$(GLOBJ)pagecount.$(OBJ): $(arch_h) $(eprn_src)pagecount.c $(eprn_src)pagecount.h
+ $(GLCC) $(C_) $(O_)$@ $(eprn_opts) $(eprn_src)pagecount.c
+
+ #==============================================================================
+@@ -134,21 +134,21 @@
+
+ # Rules for individual files
+
+-$(GLOBJ)pclgen.$(OBJ): $(pcl3_src)pclgen.c $(pcl3_src)pclgen.h
++$(GLOBJ)pclgen.$(OBJ): $(arch_h) $(pcl3_src)pclgen.c $(pcl3_src)pclgen.h
+ $(GLCC) $(C_) $(O_)$@ $(pcl3_opts) $(pcl3_src)pclgen.c
+
+-$(GLOBJ)pclsize.$(OBJ): $(pcl3_src)pclsize.c $(eprn_src)mediasize.h \
++$(GLOBJ)pclsize.$(OBJ): $(arch_h) $(pcl3_src)pclsize.c $(eprn_src)mediasize.h \
+ $(pcl3_src)pclsize.h $(pcl3_src)pclgen.h
+ $(GLCC) $(C_) $(O_)$@ $(pcl3_opts) $(pcl3_src)pclsize.c
+
+-$(GLOBJ)pclcap.$(OBJ): $(pcl3_src)pclcap.c $(pcl3_headers)
++$(GLOBJ)pclcap.$(OBJ): $(arch_h) $(pcl3_src)pclcap.c $(pcl3_headers)
+ $(GLCC) $(C_) $(O_)$@ $(pcl3_opts) $(pcl3_src)pclcap.c
+
+-$(GLOBJ)gdevpcl3.$(OBJ): $(pcl3_src)gdevpcl3.c $(pcl3_headers)
++$(GLOBJ)gdevpcl3.$(OBJ): $(arch_h) $(pcl3_src)gdevpcl3.c $(pcl3_headers)
+ $(GLCC) $(C_) $(O_)$@ $(pcl3_opts) $(pcl3_src)gdevpcl3.c
+
+ # File also used by hpdj:
+-$(GLOBJ)pclcomp.$(OBJ): $(pcl3_src)pclcomp.c $(pcl3_src)pclgen.h
++$(GLOBJ)pclcomp.$(OBJ): $(arch_h) $(pcl3_src)pclcomp.c $(pcl3_src)pclgen.h
+ $(GLCC) $(C_) $(O_)$@ $(pcl3_opts) $(pcl3_src)pclcomp.c
+
+ #------------------------------------------------------------------------------
+@@ -219,7 +219,7 @@
+ pcl3opts_=$(pcl3_src)pcl3opts.c $(pcl3_src)pclscan.c $(eprn_src)mediasize.c \
+ $(pcl3_src)pclsize.c
+
+-$(BINDIR)$(D)pcl3opts$(XE): $(pcl3opts_)
++$(BINDIR)$(D)pcl3opts$(XE): $(arch_h) $(pcl3opts_)
+ $(CC_) -o $@ -I$(eprn_src) $(pcl3opts_)
+ gencat $(GLOBJ)pcl3opts-en.cat $(pcl3_src)pcl3opts-en.msg
+ gencat $(GLOBJ)pcl3opts-de.cat $(pcl3_src)pcl3opts-de.msg
diff --git a/print/ghostscript7/files/patch-src-Makefile.in b/print/ghostscript7/files/patch-src-Makefile.in
new file mode 100644
index 000000000000..c14ed1451594
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-Makefile.in
@@ -0,0 +1,97 @@
+--- src/Makefile.in.orig 2003-04-30 03:33:31.000000000 +0900
++++ src/Makefile.in 2014-11-23 15:06:07.000000000 +0900
+@@ -50,8 +50,9 @@
+ # initialization files (gs_*.ps) and the fonts.
+
+ INSTALL = $(GLSRCDIR)/instcopy -c
+-INSTALL_PROGRAM = $(INSTALL) -m 755
+-INSTALL_DATA = $(INSTALL) -m 644
++INSTALL_PROGRAM = ${BSD_INSTALL_PROGRAM}
++INSTALL_SCRIPT = ${BSD_INSTALL_SCRIPT}
++INSTALL_DATA = ${BSD_INSTALL_DATA}
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+@@ -142,7 +143,7 @@
+ # some older JPEG streams that violate the standard. If the JPEG
+ # library built from local sources, the patch will be applied.
+
+-SHARE_JPEG=@SHARE_LIBJPEG@
++SHARE_JPEG=1
+ JPEG_NAME=jpeg
+
+ # Define the directory where the PNG library sources are stored,
+@@ -150,14 +151,14 @@
+ # You may need to change this if the libpng version changes.
+ # See libpng.mak for more information.
+
+-SHARE_LIBPNG=@SHARE_LIBPNG@
++SHARE_LIBPNG=1
+ PSRCDIR=@LIBPNGDIR@
+ LIBPNG_NAME=png
+
+ # Define the directory where the zlib sources are stored.
+ # See zlib.mak for more information.
+
+-SHARE_ZLIB=@SHARE_ZLIB@
++SHARE_ZLIB=1
+ ZSRCDIR=@ZLIBDIR@
+ #ZLIB_NAME=gz
+ ZLIB_NAME=z
+@@ -197,12 +198,12 @@
+ CCLD=$(CC)
+
+ # Define the general cc flags, warnings and such.
+-GCFLAGS=@GCFLAGS@
++GCFLAGS=@CPPFLAGS@ @GCFLAGS@ @CFLAGS@
+
+ # Define the added flags for standard, debugging, profiling
+ # and shared object builds.
+
+-CFLAGS_STANDARD=@OPT_CFLAGS@
++CFLAGS_STANDARD?=@OPT_CFLAGS@
+ CFLAGS_DEBUG=-g -O
+ CFLAGS_PROFILE=-pg @OPT_CFLAGS@
+ CFLAGS_SO=-fPIC
+@@ -218,7 +219,7 @@
+ # We don't include -ansi, because this gets in the way of the platform-
+ # specific stuff that <math.h> typically needs; nevertheless, we expect
+ # gcc to accept ANSI-style function prototypes and function definitions.
+-XCFLAGS=
++XCFLAGS?=
+
+ # defines from autoconf; note that we don't use these at present.
+ ACDEFS=@DEFS@
+@@ -232,9 +233,9 @@
+ # -R /usr/local/xxx/lib:/usr/local/lib
+ # giving the full path names of the shared library directories.
+ # XLDFLAGS can be set from the command line.
+-XLDFLAGS=
+
+-LDFLAGS=$(XLDFLAGS)
++LDFLAGS=@LDFLAGS@
++XLDFLAGS=$(LDFLAGS)
+
+ # Define any extra libraries to link into the executable.
+ # ISC Unix 2.2 wants -linet.
+@@ -302,10 +303,10 @@
+
+ # If POSIX sync primitives are used, also change the STDLIBS to include
+ # the pthread library.
+-#SYNC=posync
++SYNC=posync
+
+ # Default is No sync primitives since some platforms don't have it (HP-UX)
+-SYNC=nosync
++#SYNC=nosync
+
+ # programs we use
+ RM=rm -f
+@@ -410,6 +411,7 @@
+
+ # ---------------- End of platform-specific section ---------------- #
+
++include $(GLSRCDIR)/drivers.mak
+ include $(GLSRCDIR)/unixhead.mak
+ include $(GLSRCDIR)/gs.mak
+ include $(GLSRCDIR)/lib.mak
diff --git a/print/ghostscript7/files/patch-src-contrib.mak b/print/ghostscript7/files/patch-src-contrib.mak
new file mode 100644
index 000000000000..95c9c32d747a
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-contrib.mak
@@ -0,0 +1,7 @@
+--- src/contrib.mak.orig 2008-06-21 01:20:36.000000000 +0900
++++ src/contrib.mak 2008-06-21 01:21:28.000000000 +0900
+@@ -878,3 +878,4 @@
+ $(GLOBJ)gdevsunr.$(OBJ) : $(GLSRC)gdevsunr.c $(PDEVH)
+ $(GLCC) $(GLO_)gdevsunr.$(OBJ) $(C_) $(GLSRC)gdevsunr.c
+
++include $(GLSRCDIR)/contrib_extra.mak
diff --git a/print/ghostscript7/files/patch-src-cpca_gdev.mak b/print/ghostscript7/files/patch-src-cpca_gdev.mak
new file mode 100644
index 000000000000..e423c480fa43
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-cpca_gdev.mak
@@ -0,0 +1,15 @@
+--- src/cpca_gdev.mak.orig 2002-05-07 00:30:00.000000000 +0900
++++ src/cpca_gdev.mak 2013-04-30 02:22:40.000000000 +0900
+@@ -50,10 +50,10 @@
+ $(GLCC) -DA4 $(GLO_)cpca_gdevl4v.$(OBJ) $(C_) $(GLSRC)cpca_gdevl4v.c
+
+ #--- cpca_gdevlips.c ---#
+-$(GLOBJ)cpca_gdevlips.$(OBJ): $(GLSRC)cpca_gdevlips.c $(GLSRC)cpca_gdevlips.h
++$(GLOBJ)cpca_gdevlips.$(OBJ): $(GLSRC)std.h $(GLGEN)arch.h $(GLSRC)cpca_gdevlips.c $(GLSRC)cpca_gdevlips.h
+ $(GLCC) $(GLO_)cpca_gdevlips.$(OBJ) $(C_) $(GLSRC)cpca_gdevlips.c
+
+ #--- cpca_mk_cmd.c ---#
+-$(GLOBJ)cpca_mk_cmd.$(OBJ): $(GLSRC)cpca_mk_cmd.c $(GLSRC)cpca_mk.h
++$(GLOBJ)cpca_mk_cmd.$(OBJ): $(GLSRC)std.h $(GLGEN)arch.h $(GLSRC)cpca_mk_cmd.c $(GLSRC)cpca_mk.h
+ $(GLCC) -fpack-struct $(GLO_)cpca_mk_cmd.$(OBJ) $(C_) $(GLSRC)cpca_mk_cmd.c
+
diff --git a/print/ghostscript7/files/patch-src-gdevijs.c b/print/ghostscript7/files/patch-src-gdevijs.c
new file mode 100644
index 000000000000..fed73ce2599f
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-gdevijs.c
@@ -0,0 +1,659 @@
+--- src/gdevijs.c.orig Fri Jan 17 09:49:00 2003
++++ src/gdevijs.c Thu May 26 01:00:57 2005
+@@ -29,15 +29,29 @@
+ * which is a security risk, since any program can be run.
+ * You should use -dSAFER which sets .LockSafetyParams to true
+ * before opening this device.
++ *
++ * 11/26/03 David Suffield
++ * (c) 2003-2004 Copyright Hewlett-Packard Development Company, LP
++ *
++ * 1. Removed hpijs 1.0-1.0.2 workarounds, use hpijs 1.0.3 or higher.
++ * 2. Added krgb support.
++ *
++ * 02/21/05 David Suffield
++ * 1. Fixed segfault issue with 1-bit color space.
++ * 2. Fixed z-order issue with colored text on black rectangle.
++ *
+ */
+
+ #include "unistd_.h" /* for dup() */
+ #include <stdlib.h>
++#include <fcntl.h>
+ #include "gdevprn.h"
+ #include "gp.h"
+ #include "ijs.h"
+ #include "ijs_client.h"
+
++//#define KRGB_DEBUG
++
+ /* This should go into gdevprn.h, or, better yet, gdevprn should
+ acquire an API for changing resolution. */
+ int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev,
+@@ -53,6 +67,14 @@
+ private dev_proc_get_params(gsijs_get_params);
+ private dev_proc_put_params(gsijs_put_params);
+
++/* Following definitions are for krgb support. */
++private dev_proc_create_buf_device(gsijs_create_buf_device);
++private dev_proc_fill_rectangle(gsijs_fill_rectangle);
++private dev_proc_copy_mono(gsijs_copy_mono);
++private dev_proc_fill_mask(gsijs_fill_mask);
++private dev_proc_fill_path(gsijs_fill_path);
++private dev_proc_stroke_path(gsijs_stroke_path);
++
+ private const gx_device_procs gsijs_procs =
+ prn_color_params_procs(gsijs_open, gsijs_output_page, gsijs_close,
+ gx_default_rgb_map_rgb_color, gx_default_rgb_map_color_rgb,
+@@ -85,6 +107,14 @@
+
+ IjsClientCtx *ctx;
+ int ijs_version;
++
++ /* Additional parameters for krgb support. */
++ int krgb_mode; /* 0=false, 1=true */
++ int k_path; /* k plane path, 0=false, 1=true */
++ int k_width; /* k plane width in pixels */
++ int k_band_size; /* k plane buffer size in bytes, byte aligned */
++ unsigned char *k_band; /* k plane buffer */
++ gx_device_procs prn_procs; /* banding playback procedures */
+ };
+
+ #define DEFAULT_DPI 74 /* See gsijs_set_resolution() below. */
+@@ -112,7 +142,12 @@
+ FALSE, /* Tumble_set */
+
+ NULL, /* IjsClient *ctx */
+- 0 /* ijs_version */
++ 0, /* ijs_version */
++ 0, /* krgb_mode */
++ 0, /* k_path */
++ 0, /* k_width */
++ 0, /* k_band_size */
++ NULL /* k_band buffer */
+ };
+
+
+@@ -128,12 +163,254 @@
+
+ /**************************************************************************/
+
+-/* ------ Private definitions ------ */
++/* ---------------- Low-level graphic procedures ---------------- */
++
++static unsigned char xmask[] =
++{
++ 0x80, /* x=0 */
++ 0x40, /* 1 */
++ 0x20, /* 2 */
++ 0x10, /* 3 */
++ 0x08, /* 4 */
++ 0x04, /* 5 */
++ 0x02, /* 6 */
++ 0x01 /* 7 */
++};
++
++private int gsijs_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
++ gx_color_index color)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
++
++ if (ijsdev->krgb_mode && ijsdev->k_path && y >= 0 && x >= 0)
++ {
++ int raster = (ijsdev->k_width+7) >> 3;
++ register unsigned char *dest=ijsdev->k_band+(raster*y)+(x >> 3);
++ int dest_start_bit = x & 7;
++ int i,j,w1;
++
++ if (h <= 0 || w <= 0)
++ return 0;
++
++ if ((x+w) > ijsdev->k_width)
++ w1 = ijsdev->k_width - x;
++ else
++ w1 = w;
++
++ /* Note x,y orgin 0,0 is stored first byte 0 left to right. */
++
++ if (color==0x0)
++ {
++ /* Color is black, store in k plane band instead of regular band. */
++ for (j=0; j<h; j++)
++ {
++ for (i=0; i<w1; i++)
++ dest[(dest_start_bit+i)>>3] |= xmask[(dest_start_bit+i)&7];
++ dest+=raster;
++ }
++ return 0;
++ }
++ else
++ {
++ /* Color is not black, remove any k plane bits for z-order dependencies, store in regular band. */
++ for (j=0; j<h; j++)
++ {
++ for (i=0; i<w1; i++)
++ dest[(dest_start_bit+i)>>3] &= ~xmask[(dest_start_bit+i)&7];
++ dest+=raster;
++ }
++ }
++ }
++
++ return (*ijsdev->prn_procs.fill_rectangle)(dev, x, y, w, h, color);
++}
++
++private int gsijs_copy_mono(gx_device * dev, const byte * data,
++ int dx, int draster, gx_bitmap_id id,
++ int x, int y, int w, int height, gx_color_index zero, gx_color_index one)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
++
++ // if (ijsdev->krgb_mode && ijsdev->k_path && one==0x0)
++ if (ijsdev->krgb_mode && ijsdev->k_path)
++ {
++ /* Store in k plane band instead of regular band. */
++ int raster = (ijsdev->k_width+7) >> 3; /* raster width in bytes, byte aligned */
++ register unsigned char *dest=ijsdev->k_band+(raster*y)+(x >> 3);
++ register const unsigned char *scan=data+(dx >> 3);
++ int dest_start_bit = x & 7;
++ int scan_start_bit = dx & 7;
++ int i, h=height;
++
++ if (h <= 0 || w <= 0)
++ return 0;
++
++ if (one==0x0)
++ {
++ /* Color is black, store in k plane band instead of regular band. */
++ while (h-- > 0)
++ {
++ for (i=0; i<w; i++)
++ {
++ if (scan[(scan_start_bit+i)>>3] & xmask[(scan_start_bit+i)&7])
++ dest[(dest_start_bit+i)>>3] |= xmask[(dest_start_bit+i)&7];
++ }
++ scan+=draster;
++ dest+=raster;
++ }
++ return 0;
++ }
++ else
++ {
++ /* Color is not black, remove any k plane bits for z-order dependencies, store in regular band. */
++ while (h-- > 0)
++ {
++ for (i=0; i<w; i++)
++ {
++ if (scan[(scan_start_bit+i)>>3] & xmask[(scan_start_bit+i)&7])
++ dest[(dest_start_bit+i)>>3] &= ~xmask[(dest_start_bit+i)&7];
++ }
++ scan+=draster;
++ dest+=raster;
++ }
++ }
++ }
++
++ return (*ijsdev->prn_procs.copy_mono)(dev, data, dx, draster, id, x, y, w, height, zero, one);
++}
++
++/* ---------------- High-level graphic procedures ---------------- */
++
++private int gsijs_fill_mask(gx_device * dev,
++ const byte * data, int dx, int raster, gx_bitmap_id id,
++ int x, int y, int w, int h,
++ const gx_drawing_color * pdcolor, int depth,
++ gs_logical_operation_t lop, const gx_clip_path * pcpath)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
++ int code;
++
++ ijsdev->k_path = 1;
++
++ code = (*ijsdev->prn_procs.fill_mask)(dev, data, dx, raster, id, x, y, w, h, pdcolor, depth, lop, pcpath);
++
++ ijsdev->k_path = 0;
++
++ return code;
++}
++
++private int gsijs_fill_path(gx_device * dev, const gs_imager_state * pis,
++ gx_path * ppath, const gx_fill_params * params,
++ const gx_drawing_color * pdcolor,
++ const gx_clip_path * pcpath)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
++ int code;
++
++ ijsdev->k_path = 1;
++
++ code = (*ijsdev->prn_procs.fill_path)(dev, pis, ppath, params, pdcolor, pcpath);
++
++ ijsdev->k_path = 0;
++
++ return 0;
++}
++
++private int gsijs_stroke_path(gx_device * dev, const gs_imager_state * pis,
++ gx_path * ppath, const gx_stroke_params * params,
++ const gx_drawing_color * pdcolor,
++ const gx_clip_path * pcpath)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
++ int code;
++
++ ijsdev->k_path = 1;
+
+-/* Versions 1.0 through 1.0.2 of hpijs report IJS version 0.29, and
+- require some workarounds. When more up-to-date hpijs versions
+- become ubiquitous, all these workarounds should be removed. */
+-#define HPIJS_1_0_VERSION 29
++ code = (*ijsdev->prn_procs.stroke_path)(dev, pis, ppath, params, pdcolor, pcpath);
++
++ ijsdev->k_path = 0;
++
++ return code;
++}
++
++/* ---------------- krgb banding playback procedures ---------------- */
++
++private int gsijs_get_bits(gx_device_printer * pdev, int y, byte * str, byte ** actual_data)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
++ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
++ int band_height = cdev->page_info.band_params.BandHeight;
++ int band_number = y/band_height;
++ int raster = (ijsdev->k_width+7) >> 3; /* raster width in bytes, byte aligned */
++ int y1=raster*(y-(band_height*band_number));
++
++ if (y1 == 0)
++ {
++ /* First raster for band, clear k_band. Banding playback occurs on first raster. */
++ memset(ijsdev->k_band, 0, ijsdev->k_band_size);
++ }
++
++ return gdev_prn_get_bits(pdev, y, str, actual_data); /* get raster from regular band */
++}
++
++private int gsijs_k_get_bits(gx_device_printer * pdev, int y, byte ** actual_data)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
++ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
++ int band_height = cdev->page_info.band_params.BandHeight;
++ int band_number = y/band_height;
++ int raster = (ijsdev->k_width+7) >> 3; /* raster width in bytes, byte aligned */
++ int y1=raster*(y-(band_height*band_number));
++
++ *actual_data = ijsdev->k_band+y1;
++
++ return 0;
++}
++
++private int gsijs_create_buf_device(gx_device **pbdev, gx_device *target,
++ const gx_render_plane_t *render_plane, gs_memory_t *mem, bool for_band)
++{
++ gx_device_ijs *ijsdev = (gx_device_ijs *)target;
++ int n_chan = ijsdev->color_info.num_components;
++ int code = gx_default_create_buf_device(pbdev, target, render_plane, mem, for_band);
++ if (code < 0 || n_chan != 3)
++ return code;
++
++ /* Save buffer (vector) procedures so that we can hook them during banding playback. */
++ ijsdev->prn_procs = (*pbdev)->procs;
++
++ /* Replace buffer procedures with krgb procedures. */
++ set_dev_proc(*pbdev, fill_rectangle, gsijs_fill_rectangle);
++ set_dev_proc(*pbdev, copy_mono, gsijs_copy_mono);
++ set_dev_proc(*pbdev, fill_mask, gsijs_fill_mask);
++ set_dev_proc(*pbdev, fill_path, gsijs_fill_path);
++ set_dev_proc(*pbdev, stroke_path, gsijs_stroke_path);
++
++ return code;
++}
++
++/* See if IJS server supports krgb. Return value: 0=false, 1=true. */
++private int
++gsijs_set_krgb_mode(gx_device_ijs *ijsdev)
++{
++ char buf[256];
++ int n_chan = ijsdev->color_info.num_components;
++ int code;
++
++ if (n_chan != 3)
++ return 0; /* no krgb support, not RGB colorspace */
++
++ buf[0] = 0;
++ code = ijs_client_enum_param(ijsdev->ctx, 0, "ColorSpace", buf, sizeof(buf)-1);
++ if (code >= 0)
++ buf[code] = 0;
++ if (strstr(buf, "KRGB") == NULL)
++ return 0; /* no krgb support */
++
++ return 1; /* krgb is supported */
++}
++
++/* ------ Private definitions ------ */
+
+ private int
+ gsijs_parse_wxh (const char *val, int size, double *pw, double *ph)
+@@ -171,34 +448,6 @@
+ }
+
+ /**
+- * gsijs_set_generic_params_hpijs: Set generic IJS parameters.
+- *
+- * This version is specialized for hpijs 1.0 through 1.0.2, and
+- * accommodates a number of quirks.
+- **/
+-private int
+-gsijs_set_generic_params_hpijs(gx_device_ijs *ijsdev)
+-{
+- char buf[256];
+- int code = 0;
+-
+- /* IjsParams, Duplex, and Tumble get set at this point because
+- they may affect margins. */
+- if (ijsdev->IjsParams) {
+- code = gsijs_client_set_param(ijsdev, "IjsParams", ijsdev->IjsParams);
+- }
+-
+- if (code == 0 && ijsdev->Duplex_set) {
+- int duplex_val;
+-
+- duplex_val = ijsdev->Duplex ? (ijsdev->IjsTumble ? 1 : 2) : 0;
+- sprintf (buf, "%d", duplex_val);
+- code = gsijs_client_set_param(ijsdev, "Duplex", buf);
+- }
+- return code;
+-}
+-
+-/**
+ * gsijs_set_generic_params: Set generic IJS parameters.
+ **/
+ private int
+@@ -209,9 +458,6 @@
+ int i, j;
+ char *value;
+
+- if (ijsdev->ijs_version == HPIJS_1_0_VERSION)
+- return gsijs_set_generic_params_hpijs(ijsdev);
+-
+ /* Split IjsParams into separate parameters and send to ijs server */
+ value = NULL;
+ for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
+@@ -252,68 +498,6 @@
+ }
+
+ /**
+- * gsijs_set_margin_params_hpijs: Do margin negotiation with IJS server.
+- *
+- * This version is specialized for hpijs 1.0 through 1.0.2, and
+- * accommodates a number of quirks.
+- **/
+-private int
+-gsijs_set_margin_params_hpijs(gx_device_ijs *ijsdev)
+-{
+- char buf[256];
+- int code = 0;
+-
+- if (code == 0) {
+- sprintf(buf, "%d", ijsdev->width);
+- code = gsijs_client_set_param(ijsdev, "Width", buf);
+- }
+- if (code == 0) {
+- sprintf(buf, "%d", ijsdev->height);
+- code = gsijs_client_set_param(ijsdev, "Height", buf);
+- }
+-
+- if (code == 0) {
+- double printable_width, printable_height;
+- double printable_left, printable_top;
+- float m[4];
+-
+- code = ijs_client_get_param(ijsdev->ctx, 0, "PrintableArea",
+- buf, sizeof(buf));
+- if (code == IJS_EUNKPARAM)
+- /* IJS server doesn't support margin negotiations.
+- That's ok. */
+- return 0;
+- else if (code >= 0) {
+- code = gsijs_parse_wxh(buf, code,
+- &printable_width, &printable_height);
+- }
+-
+- if (code == 0) {
+- code = ijs_client_get_param(ijsdev->ctx, 0, "PrintableTopLeft",
+- buf, sizeof(buf));
+- if (code == IJS_EUNKPARAM)
+- return 0;
+- else if (code >= 0) {
+- code = gsijs_parse_wxh(buf, code,
+- &printable_left, &printable_top);
+- }
+- }
+-
+- if (code == 0) {
+- m[0] = printable_left;
+- m[1] = ijsdev->MediaSize[1] * (1.0 / 72) -
+- printable_top - printable_height;
+- m[2] = ijsdev->MediaSize[0] * (1.0 / 72) -
+- printable_left - printable_width;
+- m[3] = printable_top;
+- gx_device_set_margins((gx_device *)ijsdev, m, true);
+- }
+- }
+-
+- return code;
+-}
+-
+-/**
+ * gsijs_set_margin_params: Do margin negotiation with IJS server.
+ **/
+ private int
+@@ -324,9 +508,6 @@
+ int i, j;
+ char *value;
+
+- if (ijsdev->ijs_version == HPIJS_1_0_VERSION)
+- return gsijs_set_margin_params_hpijs(ijsdev);
+-
+ /* Split IjsParams into separate parameters and send to ijs server */
+ value = NULL;
+ for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
+@@ -493,12 +674,18 @@
+ char buf[256];
+ bool use_outputfd;
+ int fd = -1;
++ long max_bitmap = ijsdev->space_params.MaxBitmap;
+
+ if (strlen(ijsdev->IjsServer) == 0) {
+ eprintf("ijs server not specified\n");
+ return gs_note_error(gs_error_ioerror);
+ }
+
++ ijsdev->space_params.MaxBitmap = 0; /* force banding */
++
++ /* Set create_buf_device in printer device, so that we can hook the banding playback procedures. */
++ ijsdev->printer_procs.buf_procs.create_buf_device = gsijs_create_buf_device;
++
+ /* Decide whether to use OutputFile or OutputFD. Note: how to
+ determine this is a tricky question, so we just allow the
+ user to set it.
+@@ -513,6 +700,8 @@
+ if (code < 0)
+ return code;
+
++ ijsdev->space_params.MaxBitmap = max_bitmap;
++
+ if (use_outputfd) {
+ /* Note: dup() may not be portable to all interesting IJS
+ platforms. In that case, this branch should be #ifdef'ed out.
+@@ -572,6 +761,9 @@
+ if (code >= 0)
+ code = gsijs_set_margin_params(ijsdev);
+
++ if (code >= 0)
++ ijsdev->krgb_mode = gsijs_set_krgb_mode(ijsdev);
++
+ return code;
+ };
+
+@@ -631,21 +823,6 @@
+ return min(width, end);
+ }
+
+-private int ijs_all_white(unsigned char *data, int size)
+-{
+- int clean = 1;
+- int i;
+- for (i = 0; i < size; i++)
+- {
+- if (data[i] != 0xFF)
+- {
+- clean = 0;
+- break;
+- }
+- }
+- return clean;
+-}
+-
+ /* Print a page. Don't use normal printer gdev_prn_output_page
+ * because it opens the output file.
+ */
+@@ -656,8 +833,9 @@
+ gx_device_printer *pdev = (gx_device_printer *)dev;
+ int raster = gdev_prn_raster(pdev);
+ int ijs_width, ijs_height;
+- int row_bytes;
++ int row_bytes, k_row_bytes=0;
+ int n_chan = pdev->color_info.num_components;
++ int krgb_mode = ijsdev->krgb_mode;
+ unsigned char *data;
+ char buf[256];
+ double xres = pdev->HWResolution[0];
+@@ -673,13 +851,23 @@
+
+ /* Determine bitmap width and height */
+ ijs_height = gdev_prn_print_scan_lines(dev);
+- if (ijsdev->ijs_version == HPIJS_1_0_VERSION) {
+- ijs_width = pdev->width;
+- } else {
+ ijs_width = gsijs_raster_width(dev);
+- }
++
+ row_bytes = (ijs_width * pdev->color_info.depth + 7) >> 3;
+
++ if (krgb_mode)
++ {
++ gx_device_clist_common *cdev = (gx_device_clist_common *)dev;
++ int band_height = cdev->page_info.band_params.BandHeight;
++ k_row_bytes = (ijs_width + 7) >> 3;
++
++ /* Create banding buffer for k plane. */
++ ijsdev->k_width = ijs_width;
++ ijsdev->k_band_size = band_height * k_row_bytes;
++ if ((ijsdev->k_band = gs_malloc(ijsdev->k_band_size, 1, "gsijs_output_page")) == (unsigned char *)NULL)
++ return gs_note_error(gs_error_VMerror);
++ }
++
+ /* Required page parameters */
+ sprintf(buf, "%d", n_chan);
+ gsijs_client_set_param(ijsdev, "NumChan", buf);
+@@ -688,44 +876,71 @@
+
+ /* This needs to become more sophisticated for DeviceN. */
+ strcpy(buf, (n_chan == 4) ? "DeviceCMYK" :
+- ((n_chan == 3) ? "DeviceRGB" : "DeviceGray"));
++ ((n_chan == 3) ? (krgb_mode ? "KRGB" : "DeviceRGB") : "DeviceGray"));
+ gsijs_client_set_param(ijsdev, "ColorSpace", buf);
+
+- /* If hpijs 1.0, don't set width and height here, because it
+- expects them to be the paper size. */
+- if (ijsdev->ijs_version != HPIJS_1_0_VERSION) {
+- sprintf(buf, "%d", ijs_width);
+- gsijs_client_set_param(ijsdev, "Width", buf);
+- sprintf(buf, "%d", ijs_height);
+- gsijs_client_set_param(ijsdev, "Height", buf);
+- }
++ sprintf(buf, "%d", ijs_width);
++ gsijs_client_set_param(ijsdev, "Width", buf);
++ sprintf(buf, "%d", ijs_height);
++ gsijs_client_set_param(ijsdev, "Height", buf);
+
+ sprintf(buf, "%gx%g", xres, yres);
+ gsijs_client_set_param(ijsdev, "Dpi", buf);
+
++#ifdef KRGB_DEBUG
++ int kfd, rgbfd;
++ char sz[128];
++ kfd = open("/tmp/k.pbm", O_CREAT | O_TRUNC | O_RDWR, 0644);
++ rgbfd = open("/tmp/rgb.ppm", O_CREAT | O_TRUNC | O_RDWR, 0644);
++ snprintf(sz, sizeof(sz), "P4\n#gdevijs test\n%d\n%d\n", ijs_width, ijs_height);
++ write(kfd, sz, strlen(sz));
++ snprintf(sz, sizeof(sz), "P6\n#gdevijs test\n%d\n%d\n255\n", ijs_width, ijs_height);
++ write(rgbfd, sz, strlen(sz));
++#endif
++
+ for (i=0; i<num_copies; i++) {
+ unsigned char *actual_data;
+ ijs_client_begin_cmd (ijsdev->ctx, IJS_CMD_BEGIN_PAGE);
+ status = ijs_client_send_cmd_wait(ijsdev->ctx);
+
+ for (y = 0; y < ijs_height; y++) {
+- code = gdev_prn_get_bits(pdev, y, data, &actual_data);
+- if (code < 0)
+- break;
++ if (krgb_mode)
++ code = gsijs_get_bits(pdev, y, data, &actual_data);
++ else
++ code = gdev_prn_get_bits(pdev, y, data, &actual_data);
++ if (code < 0)
++ break;
++#ifdef KRGB_DEBUG
++ write(rgbfd, actual_data, row_bytes);
++#endif
++ status = ijs_client_send_data_wait(ijsdev->ctx, 0, (char *)actual_data, row_bytes);
++ if (status)
++ break;
+
+- if (ijsdev->ijs_version == HPIJS_1_0_VERSION &&
+- ijs_all_white(actual_data, row_bytes))
+- status = ijs_client_send_data_wait(ijsdev->ctx, 0, NULL, 0);
+- else
+- status = ijs_client_send_data_wait(ijsdev->ctx, 0,
+- (char *)actual_data, row_bytes);
+- if (status)
+- break;
++ if (krgb_mode) {
++ code = gsijs_k_get_bits(pdev, y, &actual_data);
++ if (code < 0)
++ break;
++#ifdef KRGB_DEBUG
++ write(kfd, actual_data, k_row_bytes);
++#endif
++ status = ijs_client_send_data_wait(ijsdev->ctx, 0, (char *)actual_data, k_row_bytes);
++ if (status)
++ break;
++ }
+ }
+ ijs_client_begin_cmd(ijsdev->ctx, IJS_CMD_END_PAGE);
+ status = ijs_client_send_cmd_wait(ijsdev->ctx);
+ }
+
++#ifdef KRGB_DEBUG
++ close(kfd);
++ close(rgbfd);
++#endif
++
++ if(krgb_mode)
++ gs_free(ijsdev->k_band, ijsdev->k_band_size, 1, "gsijs_output_page");
++
+ gs_free_object(pdev->memory, data, "gsijs_output_page");
+
+ endcode = (pdev->buffer_space && !pdev->is_async_renderer ?
+@@ -1029,7 +1244,6 @@
+ dprintf2("ijs: Can't set parameter %s=%s\n", key, value);
+ return code;
+ }
+-
+
+ private int
+ gsijs_set_color_format(gx_device_ijs *ijsdev)
diff --git a/print/ghostscript7/files/patch-src-gdevpng.c b/print/ghostscript7/files/patch-src-gdevpng.c
new file mode 100644
index 000000000000..697f6c71ff7d
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-gdevpng.c
@@ -0,0 +1,11 @@
+--- src/gdevpng.c.orig 2003-05-15 12:05:29.000000000 +0200
++++ src/gdevpng.c 2012-04-27 20:17:30.000000000 +0200
+@@ -258,7 +258,7 @@
+ goto done;
+ }
+ /* set error handling */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* If we get here, we had a problem reading the file */
+ code = gs_note_error(gs_error_VMerror);
+ goto done;
diff --git a/print/ghostscript7/files/patch-src-gsalloc.c b/print/ghostscript7/files/patch-src-gsalloc.c
new file mode 100644
index 000000000000..7c29a14eeada
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-gsalloc.c
@@ -0,0 +1,11 @@
+--- src/gsalloc.c.orig 2013-04-30 11:14:17.000000000 +0900
++++ src/gsalloc.c 2013-04-30 11:14:34.000000000 +0900
+@@ -195,7 +195,7 @@
+ iimem->large_size = ((chunk_size / 4) & -obj_align_mod) + 1;
+ iimem->is_controlled = false;
+ iimem->gc_status.vm_threshold = chunk_size * 3L;
+- iimem->gc_status.max_vm = max_long;
++ iimem->gc_status.max_vm = 0x7fffffff;
+ iimem->gc_status.psignal = NULL;
+ iimem->gc_status.signal_value = 0;
+ iimem->gc_status.enabled = false;
diff --git a/print/ghostscript7/files/patch-src-gxclrast.c b/print/ghostscript7/files/patch-src-gxclrast.c
new file mode 100644
index 000000000000..59d5053ad305
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-gxclrast.c
@@ -0,0 +1,15 @@
+--- src/gxclrast.c.orig 2013-04-30 09:13:13.000000000 +0900
++++ src/gxclrast.c 2013-04-30 09:13:41.000000000 +0900
+@@ -87,10 +87,10 @@
+ private long
+ cmd_get_w(const byte * p, const byte ** rp)
+ {
+- long val = *p++ & 0x7f;
++ int val = *p++ & 0x7f;
+ int shift = 7;
+
+- for (; val += (long)(*p & 0x7f) << shift, *p++ > 0x7f; shift += 7);
++ for (; val += (int)(*p & 0x7f) << shift, *p++ > 0x7f; shift += 7);
+ *rp = p;
+ return val;
+ }
diff --git a/print/ghostscript7/files/patch-src-gxfixed.h b/print/ghostscript7/files/patch-src-gxfixed.h
new file mode 100644
index 000000000000..0988ca612c9b
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-gxfixed.h
@@ -0,0 +1,46 @@
+--- src/gxfixed.h.orig 2013-04-30 11:29:39.000000000 +0900
++++ src/gxfixed.h 2013-04-30 11:31:03.000000000 +0900
+@@ -27,12 +27,22 @@
+ * quantities: integers lose accuracy in crucial places,
+ * and floating point arithmetic is slow.
+ */
+-typedef long fixed;
+-typedef ulong ufixed; /* only used in a very few places */
+-#define ARCH_SIZEOF_FIXED ARCH_SIZEOF_LONG
++#if ARCH_SIZEOF_INT == 4
++typedef int fixed;
++typedef uint ufixed; /* only used in a very few places */
++# define ARCH_SIZEOF_FIXED ARCH_SIZEOF_INT
++# define max_fixed max_int
++# define min_fixed min_int
++#else
++# if ARCH_SIZEOF_LONG == 4
++ typedef long fixed;
++ typedef ulong ufixed; /* only used in a very few places */
++# define ARCH_SIZEOF_FIXED ARCH_SIZEOF_LONG
++# define max_fixed max_long
++# define min_fixed min_long
++# endif
++#endif
+
+-#define max_fixed max_long
+-#define min_fixed min_long
+ #define fixed_0 0L
+ #define fixed_epsilon 1L
+ /*
+@@ -120,13 +130,8 @@
+ #define fixed_truncated(x) ((x) < 0 ? fixed_ceiling(x) : fixed_floor(x))
+
+ /* Define the largest and smallest integer values that fit in a fixed. */
+-#if arch_sizeof_int == arch_sizeof_long
+-# define max_int_in_fixed fixed2int(max_fixed)
+-# define min_int_in_fixed fixed2int(min_fixed)
+-#else
+-# define max_int_in_fixed max_int
+-# define min_int_in_fixed min_int
+-#endif
++#define max_int_in_fixed fixed2int(max_fixed)
++#define min_int_in_fixed fixed2int(min_fixed)
+
+ #ifdef USE_FPU
+ # define USE_FPU_FIXED (USE_FPU < 0 && arch_floats_are_IEEE && arch_sizeof_long == 4)
diff --git a/print/ghostscript7/files/patch-src-ibnum.c b/print/ghostscript7/files/patch-src-ibnum.c
new file mode 100644
index 000000000000..2df0a7d138c7
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-ibnum.c
@@ -0,0 +1,49 @@
+--- src/ibnum.c.orig 2003-01-17 09:49:04.000000000 +0900
++++ src/ibnum.c 2013-04-30 11:18:27.000000000 +0900
+@@ -124,11 +124,11 @@
+ case num_int32:
+ case num_int32 + 16:
+ if ((format & 31) == 0) {
+- np->value.intval = sdecodelong(str, format);
++ np->value.intval = sdecodeint32(str, format);
+ return t_integer;
+ } else {
+ np->value.realval =
+- (double)sdecodelong(str, format) *
++ (double)sdecodeint32(str, format) *
+ binary_scale[format & 31];
+ return t_real;
+ }
+@@ -171,18 +171,14 @@
+ }
+
+ /* Decode a (32-bit, signed) long. */
+-long
+-sdecodelong(const byte * p, int format)
++int
++sdecodeint32(const byte * p, int format)
+ {
+ int a = p[0], b = p[1], c = p[2], d = p[3];
+- long v = (num_is_lsb(format) ?
+- ((long)d << 24) + ((long)c << 16) + (b << 8) + a :
+- ((long)a << 24) + ((long)b << 16) + (c << 8) + d);
++ int v = (num_is_lsb(format) ?
++ ((int)d << 24) + ((int)c << 16) + (b << 8) + a :
++ ((int)a << 24) + ((int)b << 16) + (c << 8) + d);
+
+-#if arch_sizeof_long > 4
+- /* Propagate bit 31 as the sign. */
+- v = (v ^ 0x80000000L) - 0x80000000L;
+-#endif
+ return v;
+ }
+
+@@ -190,7 +186,7 @@
+ float
+ sdecodefloat(const byte * p, int format)
+ {
+- bits32 lnum = (bits32) sdecodelong(p, format);
++ bits32 lnum = (bits32) sdecodeint32(p, format);
+ float fnum;
+
+ #if !arch_floats_are_IEEE
diff --git a/print/ghostscript7/files/patch-src-ibnum.h b/print/ghostscript7/files/patch-src-ibnum.h
new file mode 100644
index 000000000000..ffec70cac2ae
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-ibnum.h
@@ -0,0 +1,11 @@
+--- src/ibnum.h.orig 2013-04-30 10:50:12.000000000 +0900
++++ src/ibnum.h 2013-04-30 10:50:29.000000000 +0900
+@@ -60,7 +60,7 @@
+ int sdecode_number(P3(const byte *, int, ref *));
+ int sdecodeshort(P2(const byte *, int));
+ uint sdecodeushort(P2(const byte *, int));
+-long sdecodelong(P2(const byte *, int));
++int sdecodeint32(P2(const byte *, int));
+ float sdecodefloat(P2(const byte *, int));
+
+ #endif /* ibnum_INCLUDED */
diff --git a/print/ghostscript7/files/patch-src-icclib.mak b/print/ghostscript7/files/patch-src-icclib.mak
new file mode 100644
index 000000000000..a60ef670dfa2
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-icclib.mak
@@ -0,0 +1,11 @@
+--- src/icclib.mak.orig 2013-04-30 02:10:16.000000000 +0900
++++ src/icclib.mak 2013-04-30 02:10:26.000000000 +0900
+@@ -73,7 +73,7 @@
+
+ icc_h=$(ICCSRC)$(D)icc.h $(ICCSRC)$(D)icc$(ICCPROFVER).h
+
+-$(ICCOBJ)icc.$(OBJ) : $(ICCSRC)icc.c $(ICCDEP) $(icc_h)
++$(ICCOBJ)icc.$(OBJ) : ${ECHOGS_XE} $(ICCSRC)icc.c $(ICCDEP) $(icc_h)
+ # echo $(ICC_CCFLAGS)
+ $(EXP)$(ECHOGS_XE) $(ICC_CCFLAGS)
+ $(ICC_CC) $(ICCO_)icc.$(OBJ) $(C_) $(ICCSRC)icc.c
diff --git a/print/ghostscript7/files/patch-src-idebug.c b/print/ghostscript7/files/patch-src-idebug.c
new file mode 100644
index 000000000000..142926b4474b
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-idebug.c
@@ -0,0 +1,11 @@
+--- src/idebug.c.orig 2013-04-30 11:06:57.000000000 +0900
++++ src/idebug.c 2013-04-30 11:07:09.000000000 +0900
+@@ -90,7 +90,7 @@
+ case t_fontID:
+ goto strct;
+ case t_integer:
+- dprintf1("int %ld", pref->value.intval);
++ dprintf1("int %d", pref->value.intval);
+ break;
+ case t_mark:
+ dprintf("mark");
diff --git a/print/ghostscript7/files/patch-src-idparam.c b/print/ghostscript7/files/patch-src-idparam.c
new file mode 100644
index 000000000000..636d7c16b510
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-idparam.c
@@ -0,0 +1,21 @@
+--- src/idparam.c.orig 2013-04-30 10:54:55.000000000 +0900
++++ src/idparam.c 2013-04-30 10:55:23.000000000 +0900
+@@ -61,8 +61,7 @@
+ int maxval, int defaultval, int *pvalue)
+ {
+ ref *pdval;
+- int code;
+- long ival;
++ int code, ival;
+
+ if (pdict == 0 || dict_find_string(pdict, kstr, &pdval) <= 0) {
+ ival = defaultval;
+@@ -349,7 +348,7 @@
+ } else {
+ if (!r_has_type(puniqueid, t_integer) ||
+ puniqueid->value.intval < 0 ||
+- puniqueid->value.intval > 0xffffffL
++ puniqueid->value.intval > 0xffffff
+ )
+ return_error(e_rangecheck);
+ /* Apparently fonts created by Fontographer often have */
diff --git a/print/ghostscript7/files/patch-src-ijs.mak b/print/ghostscript7/files/patch-src-ijs.mak
new file mode 100644
index 000000000000..be8ee7807ac5
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-ijs.mak
@@ -0,0 +1,20 @@
+--- src/ijs.mak.orig 2003-01-17 09:49:04.000000000 +0900
++++ src/ijs.mak 2013-04-30 02:24:08.000000000 +0900
+@@ -66,7 +66,7 @@
+ ijs_client_h=$(IJSSRC)$(D)ijs_client.h
+ ijs_server_h=$(IJSSRC)$(D)ijs_server.h
+
+-$(IJSOBJ)ijs.$(OBJ) : $(IJSSRC)ijs.c $(IJSDEP) $(ijs_h)
++$(IJSOBJ)ijs.$(OBJ) : ${ECHOGS_XE} $(IJSSRC)ijs.c $(IJSDEP) $(ijs_h)
+ # echo $(IJS_CCFLAGS)
+ $(EXP)$(ECHOGS_XE) $(IJS_CCFLAGS)
+ $(IJS_CC) $(IJSO_)ijs.$(OBJ) $(C_) $(IJSSRC)ijs.c
+@@ -79,7 +79,7 @@
+ $(IJSDEP) $(ijs_h) $(ijs_server_h)
+ $(IJS_CC) $(IJSO_)ijs_server.$(OBJ) $(C_) $(IJSSRC)ijs_server.c
+
+-$(IJSOBJ)ijs_exec_unix.$(OBJ) : $(IJSSRC)ijs_exec_unix.c \
++$(IJSOBJ)ijs_exec_unix.$(OBJ) : $(arch_h) $(IJSSRC)ijs_exec_unix.c \
+ $(IJSDEP) $(ijs_h) $(ijs_client_h)
+ $(IJS_CC) $(IJSO_)ijs_exec_unix.$(OBJ) $(C_) $(IJSSRC)ijs_exec_unix.c
+
diff --git a/print/ghostscript7/files/patch-src-int.mak b/print/ghostscript7/files/patch-src-int.mak
new file mode 100644
index 000000000000..9e4c5a2c7663
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-int.mak
@@ -0,0 +1,24 @@
+--- src/int.mak.orig 2013-04-30 02:55:45.000000000 +0900
++++ src/int.mak 2013-04-30 02:56:06.000000000 +0900
+@@ -953,10 +953,10 @@
+
+ # We select either iccinit0 or iccinit1 depending on COMPILE_INITS.
+
+-$(PSOBJ)iccinit0.$(OBJ) : $(PSSRC)iccinit0.c $(stdpre_h)
++$(PSOBJ)iccinit0.$(OBJ) : $(arch_h) $(PSSRC)iccinit0.c $(stdpre_h)
+ $(PSCC) $(PSO_)iccinit0.$(OBJ) $(C_) $(PSSRC)iccinit0.c
+
+-$(PSOBJ)iccinit1.$(OBJ) : $(PSOBJ)gs_init.$(OBJ)
++$(PSOBJ)iccinit1.$(OBJ) : $(arch_h) $(PSOBJ)gs_init.$(OBJ)
+ $(CP_) $(PSOBJ)gs_init.$(OBJ) $(PSOBJ)iccinit1.$(OBJ)
+
+ # All the gs_*.ps files should be prerequisites of gs_init.c,
+@@ -964,7 +964,7 @@
+ $(PSGEN)gs_init.c : $(PSLIB)$(GS_INIT) $(GENINIT_XE) $(gconfig_h)
+ $(EXP)$(GENINIT_XE) -I $(PSLIB) $(GS_INIT) $(gconfig_h) -c $(PSGEN)gs_init.c
+
+-$(PSOBJ)gs_init.$(OBJ) : $(PSGEN)gs_init.c $(stdpre_h)
++$(PSOBJ)gs_init.$(OBJ) : $(arch_h) $(PSGEN)gs_init.c $(stdpre_h)
+ $(PSCC) $(PSO_)gs_init.$(OBJ) $(C_) $(PSGEN)gs_init.c
+
+ # ---------------- Stochastic halftone ---------------- #
diff --git a/print/ghostscript7/files/patch-src-iparam.c b/print/ghostscript7/files/patch-src-iparam.c
new file mode 100644
index 000000000000..b0bb91a4d3ef
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iparam.c
@@ -0,0 +1,33 @@
+--- src/iparam.c.orig 2013-04-30 11:12:36.000000000 +0900
++++ src/iparam.c 2013-04-30 11:13:07.000000000 +0900
+@@ -67,7 +67,7 @@
+ int len;
+ byte *buf;
+
+- sprintf(istr, "%ld", pref->value.intval);
++ sprintf(istr, "%d", pref->value.intval);
+ len = strlen(istr);
+ /* GC will take care of freeing this: */
+ buf = gs_alloc_string(plist->memory, len, "ref_to_key");
+@@ -394,7 +394,7 @@
+ {
+ int code;
+ stack_param_list *const splist = (stack_param_list *) plist;
+- long index = penum->intval;
++ int index = penum->intval;
+ ref *stack_element;
+
+ do {
+@@ -563,12 +563,6 @@
+ code = gs_note_error(e_typecheck);
+ break;
+ }
+-#if arch_sizeof_int < arch_sizeof_long
+- if (elt.value.intval != (int)elt.value.intval) {
+- code = gs_note_error(e_rangecheck);
+- break;
+- }
+-#endif
+ piv[i] = (int)elt.value.intval;
+ }
+ if (code < 0) {
diff --git a/print/ghostscript7/files/patch-src-iref.h b/print/ghostscript7/files/patch-src-iref.h
new file mode 100644
index 000000000000..33313d38047b
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iref.h
@@ -0,0 +1,11 @@
+--- src/iref.h.orig 2013-04-30 11:13:29.000000000 +0900
++++ src/iref.h 2013-04-30 11:13:41.000000000 +0900
+@@ -441,7 +441,7 @@
+ #define r_set_ptr(rp,ptr) ((rp)->value.pstruct = (obj_header_t *)(ptr))
+
+ union v { /* name the union to keep gdb happy */
+- long intval;
++ int intval;
+ ushort boolval;
+ float realval;
+ ulong saveid;
diff --git a/print/ghostscript7/files/patch-src-iscan.c b/print/ghostscript7/files/patch-src-iscan.c
new file mode 100644
index 000000000000..cd8b03f6ab56
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iscan.c
@@ -0,0 +1,11 @@
+--- src/iscan.c.orig 2013-04-30 10:47:49.000000000 +0900
++++ src/iscan.c 2013-04-30 10:48:19.000000000 +0900
+@@ -635,7 +635,7 @@
+ uint size = ref_stack_count_inline(&o_stack) - pstack;
+ ref arr;
+
+- if_debug4('S', "[S}]d=%d, s=%d->%ld, c=%d\n",
++ if_debug4('S', "[S}]d=%d, s=%d->%d, c=%d\n",
+ pdepth, pstack,
+ (pstack == pdepth ? 0 :
+ ref_stack_index(&o_stack, size)->value.intval),
diff --git a/print/ghostscript7/files/patch-src-iscanbin.c b/print/ghostscript7/files/patch-src-iscanbin.c
new file mode 100644
index 000000000000..1f39c88b7209
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iscanbin.c
@@ -0,0 +1,83 @@
+--- src/iscanbin.c.orig 2013-04-30 10:51:53.000000000 +0900
++++ src/iscanbin.c 2013-04-30 10:53:42.000000000 +0900
+@@ -173,7 +173,7 @@
+ pbs->num_format = num_format;
+ if (top_size == 0) {
+ /* Extended header (2-byte array size, 4-byte length) */
+- ulong lsize;
++ uint lsize;
+
+ if (rcnt < 7) {
+ s_end_inline(s, p - 1, rlimit);
+@@ -183,7 +183,7 @@
+ if (p[1] != 0) /* reserved, must be 0 */
+ return_error(e_syntaxerror);
+ top_size = sdecodeushort(p + 2, num_format);
+- lsize = sdecodelong(p + 4, num_format);
++ lsize = sdecodeint32(p + 4, num_format);
+ if ((size = lsize) != lsize)
+ return_error(e_limitcheck);
+ hsize = 8;
+@@ -445,8 +445,7 @@
+ for (; index < max_array_index; p += SIZEOF_BIN_SEQ_OBJ, index++) {
+ ref *op = abase + index;
+ uint osize;
+- long value;
+- uint atype, attrs;
++ int value, atype, attrs;
+
+ s_end_inline(s, p, rlimit); /* in case of error */
+ if (rlimit - p < SIZEOF_BIN_SEQ_OBJ) {
+@@ -464,14 +463,14 @@
+ make_null(op);
+ break;
+ case BS_TYPE_INTEGER:
+- make_int(op, sdecodelong(p + 5, num_format));
++ make_int(op, sdecodeint32(p + 5, num_format));
+ break;
+ case BS_TYPE_REAL:{
+ float vreal;
+
+ osize = sdecodeushort(p + 3, num_format);
+ if (osize != 0) { /* fixed-point number */
+- value = sdecodelong(p + 5, num_format);
++ value = sdecodeint32(p + 5, num_format);
+ vreal = (float)ldexp((double)value, -osize);
+ } else {
+ vreal = sdecodefloat(p + 5, num_format);
+@@ -480,7 +479,7 @@
+ break;
+ }
+ case BS_TYPE_BOOLEAN:
+- make_bool(op, sdecodelong(p + 5, num_format) != 0);
++ make_bool(op, sdecodeint32(p + 5, num_format) != 0);
+ break;
+ case BS_TYPE_STRING:
+ osize = sdecodeushort(p + 3, num_format);
+@@ -492,7 +491,7 @@
+ make_empty_string(op, attrs);
+ break;
+ }
+- value = sdecodelong(p + 5, num_format);
++ value = sdecodeint32(p + 5, num_format);
+ if (value < max_array_index * SIZEOF_BIN_SEQ_OBJ ||
+ value + osize > size
+ )
+@@ -524,7 +523,7 @@
+ /* falls through */
+ case BS_TYPE_NAME:
+ osize = sdecodeushort(p + 3, num_format);
+- value = sdecodelong(p + 5, num_format);
++ value = sdecodeint32(p + 5, num_format);
+ switch (osize) {
+ case 0:
+ code = array_get(user_names_p, value, op);
+@@ -546,7 +545,7 @@
+ osize = sdecodeushort(p + 3, num_format);
+ atype = t_array;
+ arr:
+- value = sdecodelong(p + 5, num_format);
++ value = sdecodeint32(p + 5, num_format);
+ if (value + osize > min_string_index ||
+ value & (SIZEOF_BIN_SEQ_OBJ - 1)
+ )
diff --git a/print/ghostscript7/files/patch-src-iscannum.c b/print/ghostscript7/files/patch-src-iscannum.c
new file mode 100644
index 000000000000..4a69664074a6
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iscannum.c
@@ -0,0 +1,203 @@
+--- src/iscannum.c.orig 2003-01-17 09:49:04.000000000 +0900
++++ src/iscannum.c 2013-04-30 11:17:14.000000000 +0900
+@@ -57,7 +57,6 @@
+ };
+
+ int ival;
+- long lval;
+ double dval;
+ int exp10;
+ int code = 0;
+@@ -104,8 +103,26 @@
+ GET_NEXT(c, sp, goto iret);
+ if (!IS_DIGIT(d, c))
+ break;
+- if (WOULD_OVERFLOW(ival, d, max_int))
+- goto i2l;
++ if (WOULD_OVERFLOW((unsigned)ival, d, max_int)) {
++ /* goto i2l; */
++ if (ival == max_int / 10 && d == (max_int % 10) + 1 && sign < 0) {
++ GET_NEXT(c, sp, c= EOFC);
++ dval = -(double)min_int;
++ if (c == 'e' || c == 'E') {
++ exp10 = 0;
++ goto fs;
++ } else if (c == '.') {
++ GET_NEXT(c, sp, c = EOFC);
++ exp10 = 0;
++ goto fd;
++ } else if (!IS_DIGIT(d, c)) {
++ ival = min_int;
++ break;
++ }
++ } else
++ dval = ival;
++ goto l2d;
++ }
+ }
+ ind: /* We saw a non-digit while accumulating an integer in ival. */
+ switch (c) {
+@@ -116,6 +133,8 @@
+ *psp = sp;
+ code = 1;
+ break;
++ case EOFC:
++ break;
+ case 'e':
+ case 'E':
+ if (sign < 0)
+@@ -125,8 +144,8 @@
+ goto fe;
+ case '#':
+ {
+- const uint radix = (uint)ival;
+- ulong uval = 0, lmax;
++ const int radix = ival;
++ uint uval = 0, imax;
+
+ if (sign || radix < min_radix || radix > max_radix)
+ return_error(e_syntaxerror);
+@@ -136,19 +155,19 @@
+
+ switch (radix) {
+ case 2:
+- shift = 1, lmax = max_ulong >> 1;
++ shift = 1, imax = max_uint >> 1;
+ break;
+ case 4:
+- shift = 2, lmax = max_ulong >> 2;
++ shift = 2, imax = max_uint >> 2;
+ break;
+ case 8:
+- shift = 3, lmax = max_ulong >> 3;
++ shift = 3, imax = max_uint >> 3;
+ break;
+ case 16:
+- shift = 4, lmax = max_ulong >> 4;
++ shift = 4, imax = max_uint >> 4;
+ break;
+ case 32:
+- shift = 5, lmax = max_ulong >> 5;
++ shift = 5, imax = max_uint >> 5;
+ break;
+ default: /* can't happen */
+ return_error(e_rangecheck);
+@@ -161,13 +180,13 @@
+ code = 1;
+ break;
+ }
+- if (uval > lmax)
++ if (uval > imax)
+ return_error(e_limitcheck);
+ }
+ } else {
+- int lrem = max_ulong % radix;
++ int irem = max_uint % radix;
+
+- lmax = max_ulong / radix;
++ imax = max_uint / radix;
+ for (;; uval = uval * radix + d) {
+ GET_NEXT(c, sp, break);
+ d = decoder[c];
+@@ -176,8 +195,8 @@
+ code = 1;
+ break;
+ }
+- if (uval >= lmax &&
+- (uval > lmax || d > lrem)
++ if (uval >= imax &&
++ (uval > imax || d > irem)
+ )
+ return_error(e_limitcheck);
+ }
+@@ -190,55 +209,6 @@
+ make_int(pref, (sign < 0 ? -ival : ival));
+ return code;
+
+- /* Accumulate a long in lval. */
+-i2l:
+- for (lval = ival;;) {
+- if (WOULD_OVERFLOW(lval, d, max_long)) {
+- /* Make a special check for entering the smallest */
+- /* (most negative) integer. */
+- if (lval == max_long / 10 &&
+- d == (int)(max_long % 10) + 1 && sign < 0
+- ) {
+- GET_NEXT(c, sp, c = EOFC);
+- dval = -(double)min_long;
+- if (c == 'e' || c == 'E' || c == '.') {
+- exp10 = 0;
+- goto fs;
+- } else if (!IS_DIGIT(d, c)) {
+- lval = min_long;
+- break;
+- }
+- } else
+- dval = lval;
+- goto l2d;
+- }
+- lval = lval * 10 + d;
+- GET_NEXT(c, sp, goto lret);
+- if (!IS_DIGIT(d, c))
+- break;
+- }
+- switch (c) {
+- case '.':
+- GET_NEXT(c, sp, c = EOFC);
+- exp10 = 0;
+- goto l2r;
+- case EOFC:
+- break;
+- default:
+- *psp = sp;
+- code = 1;
+- break;
+- case 'e':
+- case 'E':
+- exp10 = 0;
+- goto le;
+- case '#':
+- return_error(e_syntaxerror);
+- }
+-lret:
+- make_int(pref, (sign < 0 ? -lval : lval));
+- return code;
+-
+ /* Accumulate a double in dval. */
+ l2d:
+ exp10 = 0;
+@@ -274,8 +244,8 @@
+ exp10 = 0;
+ while (IS_DIGIT(d, c)) {
+ if (WOULD_OVERFLOW(ival, d, max_int)) {
+- lval = ival;
+- goto l2r;
++ dval = ival;
++ goto fd;
+ }
+ ival = ival * 10 + d;
+ exp10--;
+@@ -293,23 +263,6 @@
+ dval = ival;
+ goto fe;
+
+- /* We saw a '.' while accumulating a long in lval. */
+-l2r:
+- while (IS_DIGIT(d, c)) {
+- if (WOULD_OVERFLOW(lval, d, max_long)) {
+- dval = lval;
+- goto fd;
+- }
+- lval = lval * 10 + d;
+- exp10--;
+- GET_NEXT(c, sp, c = EOFC);
+- }
+-le:
+- if (sign < 0)
+- lval = -lval;
+- dval = lval;
+- goto fe;
+-
+ /* Now we are accumulating a double in dval. */
+ fd:
+ while (IS_DIGIT(d, c)) {
diff --git a/print/ghostscript7/files/patch-src-iutil.c b/print/ghostscript7/files/patch-src-iutil.c
new file mode 100644
index 000000000000..c77cb19ddd84
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-iutil.c
@@ -0,0 +1,11 @@
+--- src/iutil.c.orig 2013-04-30 10:51:05.000000000 +0900
++++ src/iutil.c 2013-04-30 10:51:20.000000000 +0900
+@@ -428,7 +428,7 @@
+ data = (const byte *)(op->value.boolval ? "true" : "false");
+ break;
+ case t_integer:
+- sprintf(buf, "%ld", op->value.intval);
++ sprintf(buf, "%d", op->value.intval);
+ break;
+ case t_string:
+ check_read(*op);
diff --git a/print/ghostscript7/files/patch-src-lib.mak b/print/ghostscript7/files/patch-src-lib.mak
new file mode 100644
index 000000000000..3a6cc661f187
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-lib.mak
@@ -0,0 +1,29 @@
+--- src/lib.mak.orig 2013-04-30 02:52:53.000000000 +0900
++++ src/lib.mak 2013-04-30 02:53:40.000000000 +0900
+@@ -187,22 +187,22 @@
+ $(GLD)gsnogc.dev : $(LIB_MAK) $(ECHOGS_XE) $(gsnogc_)
+ $(SETMOD) $(GLD)gsnogc $(gsnogc_)
+
+-$(GLOBJ)gsnogc.$(OBJ) : $(GLSRC)gsnogc.c $(GX)\
++$(GLOBJ)gsnogc.$(OBJ) : $(arch_h) $(GLSRC)gsnogc.c $(GX)\
+ $(gsmdebug_h) $(gsnogc_h) $(gsstruct_h) $(gxalloc_h)
+ $(GLCC) $(GLO_)gsnogc.$(OBJ) $(C_) $(GLSRC)gsnogc.c
+
+ ### Bitmap processing
+
+-$(GLOBJ)gsbitcom.$(OBJ) : $(GLSRC)gsbitcom.c $(AK) $(std_h)\
++$(GLOBJ)gsbitcom.$(OBJ) : $(arch_h) $(GLSRC)gsbitcom.c $(AK) $(std_h)\
+ $(gdebug_h) $(gsbitops_h) $(gstypes_h)
+ $(GLCC) $(GLO_)gsbitcom.$(OBJ) $(C_) $(GLSRC)gsbitcom.c
+
+-$(GLOBJ)gsbitops.$(OBJ) : $(GLSRC)gsbitops.c $(AK) $(memory__h) $(stdio__h)\
++$(GLOBJ)gsbitops.$(OBJ) : $(arch_h) $(GLSRC)gsbitops.c $(AK) $(memory__h) $(stdio__h)\
+ $(gdebug_h) $(gsbittab_h) $(gserror_h) $(gserrors_h) $(gstypes_h)\
+ $(gxbitops_h)
+ $(GLCC) $(GLO_)gsbitops.$(OBJ) $(C_) $(GLSRC)gsbitops.c
+
+-$(GLOBJ)gsbittab.$(OBJ) : $(GLSRC)gsbittab.c $(AK) $(stdpre_h) $(gsbittab_h)
++$(GLOBJ)gsbittab.$(OBJ) : $(arch_h) $(GLSRC)gsbittab.c $(AK) $(stdpre_h) $(gsbittab_h)
+ $(GLCC) $(GLO_)gsbittab.$(OBJ) $(C_) $(GLSRC)gsbittab.c
+
+ # gsflip is not part of the standard configuration: it's rather large,
diff --git a/print/ghostscript7/files/patch-src-png_.h b/print/ghostscript7/files/patch-src-png_.h
new file mode 100644
index 000000000000..3ab10a5af90a
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-png_.h
@@ -0,0 +1,9 @@
+--- src/png_.h.orig 2003-01-17 01:49:05.000000000 +0100
++++ src/png_.h 2012-04-27 19:22:59.000000000 +0200
+@@ -27,5 +27,6 @@
+ #else
+ #include "png.h"
+ #endif
++#include "pngpriv.h"
+
+ #endif /* png__INCLUDED */
diff --git a/print/ghostscript7/files/patch-src-unixinst.mak b/print/ghostscript7/files/patch-src-unixinst.mak
new file mode 100644
index 000000000000..c18b6544c83b
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-unixinst.mak
@@ -0,0 +1,117 @@
+--- src/unixinst.mak.orig 2003-01-17 09:49:05.000000000 +0900
++++ src/unixinst.mak 2014-11-23 15:05:32.000000000 +0900
+@@ -30,24 +30,24 @@
+ # rules, just in case bindir or scriptdir is a subdirectory of any of these.
+
+ install-exec: $(GS_XE)
+- -mkdir -p $(datadir)
+- -mkdir -p $(gsdir)
+- -mkdir -p $(gsdatadir)
+- -mkdir -p $(bindir)
+- $(INSTALL_PROGRAM) $(GS_XE) $(bindir)/$(GS)
++ -mkdir -p $(DESTDIR)$(datadir)
++ -mkdir -p $(DESTDIR)$(gsdir)
++ -mkdir -p $(DESTDIR)$(gsdatadir)
++ -mkdir -p $(DESTDIR)$(bindir)
++ $(INSTALL_PROGRAM) $(GS_XE) $(DESTDIR)$(bindir)/$(GS)
+
+ install-scripts: $(PSLIBDIR)/gsnd
+- -mkdir -p $(datadir)
+- -mkdir -p $(gsdir)
+- -mkdir -p $(gsdatadir)
+- -mkdir -p $(scriptdir)
++ -mkdir -p $(DESTDIR)$(datadir)
++ -mkdir -p $(DESTDIR)$(gsdir)
++ -mkdir -p $(DESTDIR)$(gsdatadir)
++ -mkdir -p $(DESTDIR)$(scriptdir)
+ $(SH) -c 'for f in \
+ gsbj gsdj gsdj500 gslj gslp gsnd \
+ bdftops dvipdf eps2eps font2c \
+ pdf2dsc pdf2ps pdfopt pf2afm pfbtopfa printafm \
+ ps2ascii ps2epsi ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr ps2ps wftopfa \
+ fixmswrd.pl lprsetup.sh pj-gs.sh pv.sh sysvlp.sh unix-lpr.sh ;\
+- do if ( test -f $(PSLIBDIR)/$$f ); then $(INSTALL_PROGRAM) $(PSLIBDIR)/$$f $(scriptdir); fi;\
++ do if ( test -f $(PSLIBDIR)/$$f ); then $(INSTALL_SCRIPT) $(PSLIBDIR)/$$f $(DESTDIR)$(scriptdir); fi;\
+ done'
+
+ PSDOCDIR=$(PSLIBDIR)/../doc
+@@ -60,10 +60,10 @@
+ # one file from each subdirectory just as a sanity check.
+
+ install-libdata:
+- -mkdir -p $(datadir)
+- -mkdir -p $(gsdir)
+- -mkdir -p $(gsdatadir)
+- -mkdir -p $(gsdatadir)/lib
++ -mkdir -p $(DESTDIR)$(datadir)
++ -mkdir -p $(DESTDIR)$(gsdir)
++ -mkdir -p $(DESTDIR)$(gsdatadir)
++ -mkdir -p $(DESTDIR)$(gsdatadir)/lib
+ $(SH) -c 'for f in \
+ Fontmap Fontmap.GS \
+ CIDFnmap CIDFnmap.Ore CIDFnmap.ARP CIDFnmap.Bae CIDFnmap.Koc \
+@@ -83,13 +83,13 @@
+ viewpcx.ps viewpbm.ps viewps2a.ps \
+ winmaps.ps wftopfa.ps wrfont.ps zeroline.ps \
+ pdf2dsc.ps pdfopt.ps ;\
+- do if ( test -f $(PSLIBDIR)/$$f ); then $(INSTALL_DATA) $(PSLIBDIR)/$$f $(gsdatadir)/lib; fi;\
++ do if ( test -f $(PSLIBDIR)/$$f ); then $(INSTALL_DATA) $(PSLIBDIR)/$$f $(DESTDIR)$(gsdatadir)/lib; fi;\
+ done'
+ $(SH) -c 'for f in $(PSLIBDIR)/gs_*.ps $(PSLIBDIR)/pdf*.ps;\
+- do $(INSTALL_DATA) $$f $(gsdatadir)/lib ;\
++ do $(INSTALL_DATA) $$f $(DESTDIR)$(gsdatadir)/lib ;\
+ done'
+ $(SH) -c 'for f in $(PSLIBDIR)/*.ppd $(PSLIBDIR)/*.rpd $(PSLIBDIR)/*.upp $(PSLIBDIR)/*.xbm $(PSLIBDIR)/*.xpm;\
+- do $(INSTALL_DATA) $$f $(gsdatadir)/lib ;\
++ do $(INSTALL_DATA) $$f $(DESTDIR)$(gsdatadir)/lib ;\
+ done'
+
+ # install html documentation
+@@ -106,20 +106,20 @@
+ Psfiles.htm Public.htm Readme.htm Release.htm \
+ Source.htm Tester.htm Unix-lpr.htm Use.htm Xfonts.htm
+ install-doc: $(PSDOCDIR)/News.htm
+- -mkdir -p $(docdir)
++ -mkdir -p $(DESTDIR)$(docdir)
+ $(SH) -c 'for f in $(DOC_PAGES) ;\
+- do if ( test -f $(PSDOCDIR)/$$f ); then $(INSTALL_DATA) $(PSDOCDIR)/$$f $(docdir); fi;\
++ do if ( test -f $(PSDOCDIR)/$$f ); then $(INSTALL_DATA) $(PSDOCDIR)/$$f $(DESTDIR)$(docdir); fi;\
+ done'
+
+ # install the man pages for each locale
+-MAN_LCDIRS=. de
++MAN_LCDIRS=.
+ MAN1_LINKS_PS2PS=eps2eps
+ MAN1_LINKS_PS2PDF=ps2pdf12 ps2pdf13
+ MAN1_LINKS_GSLP=gsbj gsdj gsdj500 gslj
+ install-man: $(PSMANDIR)/gs.1
+- $(SH) -c 'test -d $(mandir) || mkdir -p $(mandir)'
++ $(SH) -c 'test -d $(DESTDIR)$(mandir) || mkdir -p $(DESTDIR)$(mandir)'
+ $(SH) -c 'for d in $(MAN_LCDIRS) ;\
+- do man1dir=$(mandir)/$$d/man$(man1ext) ;\
++ do man1dir=$(DESTDIR)$(mandir)/$$d/man$(man1ext) ;\
+ ( test -d $$man1dir || mkdir -p $$man1dir ) ;\
+ for f in $(PSMANDIR)/$$d/*.1 ;\
+ do $(INSTALL_DATA) $$f $$man1dir ;\
+@@ -146,17 +146,17 @@
+
+ # install the example files
+ install-examples:
+- -mkdir -p $(exdir)
++ -mkdir -p $(DESTDIR)$(exdir)
+ for f in \
+ alphabet.ps colorcir.ps doretree.ps escher.ps golfer.ps \
+ grayalph.ps snowflak.ps tiger.ps vasarely.ps waterfal.ps \
+ ridt91.eps ;\
+- do $(INSTALL_DATA) $(PSEXDIR)/$$f $(exdir) ;\
++ do $(INSTALL_DATA) $(PSEXDIR)/$$f $(DESTDIR)$(exdir) ;\
+ done
+- -mkdir -p $(exdir)/cjk
++ -mkdir -p $(DESTDIR)$(exdir)/cjk
+ for f in \
+ all_ac1.ps all_ag1.ps all_aj1.ps all_aj2.ps all_ak1.ps \
+ gscjk_ac.ps gscjk_ag.ps gscjk_aj.ps gscjk_ak.ps \
+ iso2022.ps;\
+- do $(INSTALL_DATA) $(PSEXDIR)/cjk/$$f $(exdir)/cjk ;\
++ do $(INSTALL_DATA) $(PSEXDIR)/cjk/$$f $(DESTDIR)$(exdir)/cjk ;\
+ done
diff --git a/print/ghostscript7/files/patch-src-zarith.c b/print/ghostscript7/files/patch-src-zarith.c
new file mode 100644
index 000000000000..582f61e8f144
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zarith.c
@@ -0,0 +1,48 @@
+--- src/zarith.c.orig 2013-04-30 11:07:41.000000000 +0900
++++ src/zarith.c 2013-04-30 11:08:43.000000000 +0900
+@@ -32,9 +32,9 @@
+ */
+
+ /* Define max and min values for what will fit in value.intval. */
+-#define MIN_INTVAL min_long
+-#define MAX_INTVAL max_long
+-#define MAX_HALF_INTVAL ((1L << (size_of(long) * 4 - 1)) - 1)
++#define MIN_INTVAL 0x80000000
++#define MAX_INTVAL 0x7fffffff
++#define MAX_HALF_INTVAL 0x7fff
+
+ /* <num1> <num2> add <sum> */
+ /* We make this into a separate procedure because */
+@@ -64,7 +64,7 @@
+ op[-1].value.realval += (double)op->value.intval;
+ break;
+ case t_integer: {
+- long int2 = op->value.intval;
++ int int2 = op->value.intval;
+
+ if (((op[-1].value.intval += int2) ^ int2) < 0 &&
+ ((op[-1].value.intval - int2) ^ int2) >= 0
+@@ -158,10 +158,10 @@
+ op[-1].value.realval *= (double)op->value.intval;
+ break;
+ case t_integer: {
+- long int1 = op[-1].value.intval;
+- long int2 = op->value.intval;
+- long abs1 = (int1 >= 0 ? int1 : -int1);
+- long abs2 = (int2 >= 0 ? int2 : -int2);
++ int int1 = op[-1].value.intval;
++ int int2 = op->value.intval;
++ uint abs1 = (uint)(int1 >= 0 ? int1 : -int1);
++ uint abs2 = (uint)(int2 >= 0 ? int2 : -int2);
+ float fprod;
+
+ if ((abs1 > MAX_HALF_INTVAL || abs2 > MAX_HALF_INTVAL) &&
+@@ -212,7 +212,7 @@
+ op[-1].value.realval -= (double)op->value.intval;
+ break;
+ case t_integer: {
+- long int1 = op[-1].value.intval;
++ int int1 = op[-1].value.intval;
+
+ if ((int1 ^ (op[-1].value.intval = int1 - op->value.intval)) < 0 &&
+ (int1 ^ op->value.intval) < 0
diff --git a/print/ghostscript7/files/patch-src-zcontrol.c b/print/ghostscript7/files/patch-src-zcontrol.c
new file mode 100644
index 000000000000..d00a600c19ec
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zcontrol.c
@@ -0,0 +1,20 @@
+--- src/zcontrol.c.orig 2013-04-30 11:09:59.000000000 +0900
++++ src/zcontrol.c 2013-04-30 11:11:03.000000000 +0900
+@@ -356,7 +356,7 @@
+ {
+ os_ptr op = osp;
+ register es_ptr ep = esp;
+- long var = ep[-3].value.intval;
++ int var = ep[-3].value.intval;
+
+ if (var > ep[-1].value.intval) {
+ esp -= 5; /* pop everything */
+@@ -375,7 +375,7 @@
+ {
+ os_ptr op = osp;
+ register es_ptr ep = esp;
+- long var = ep[-3].value.intval;
++ int var = ep[-3].value.intval;
+
+ if (var < ep[-1].value.intval) {
+ esp -= 5; /* pop everything */
diff --git a/print/ghostscript7/files/patch-src-zdict.c b/print/ghostscript7/files/patch-src-zdict.c
new file mode 100644
index 000000000000..050ecc841717
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zdict.c
@@ -0,0 +1,29 @@
+--- src/zdict.c.orig 2013-04-30 11:04:05.000000000 +0900
++++ src/zdict.c 2013-04-30 11:04:34.000000000 +0900
+@@ -35,12 +35,9 @@
+ os_ptr op = osp;
+
+ check_type(*op, t_integer);
+-#if arch_sizeof_int < arch_sizeof_long
+- check_int_leu(*op, max_uint);
+-#else
+ if (op->value.intval < 0)
+ return_error(e_rangecheck);
+-#endif
++
+ return dict_create((uint) op->value.intval, op);
+ }
+
+@@ -458,12 +455,8 @@
+ check_type(*op1, t_dictionary);
+ check_dict_write(*op1);
+ check_type(*op, t_integer);
+-#if arch_sizeof_int < arch_sizeof_long
+- check_int_leu(*op, max_uint);
+-#else
+ if (op->value.intval < 0)
+ return_error(e_rangecheck);
+-#endif
+ new_size = (uint) op->value.intval;
+ if (dict_length(op - 1) > new_size)
+ return_error(e_dictfull);
diff --git a/print/ghostscript7/files/patch-src-zdps.c b/print/ghostscript7/files/patch-src-zdps.c
new file mode 100644
index 000000000000..414a296cd4ea
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zdps.c
@@ -0,0 +1,25 @@
+--- src/zdps.c.orig 2013-04-30 11:05:10.000000000 +0900
++++ src/zdps.c 2013-04-30 11:05:50.000000000 +0900
+@@ -46,19 +46,18 @@
+ {
+ os_ptr op = osp;
+ int code;
+- long x, y;
++ int x, y;
+
+ check_type(op[-2], t_integer);
+ check_type(op[-1], t_integer);
+ check_type(*op, t_integer);
+ x = op[-1].value.intval;
+ y = op->value.intval;
+- if (x != (int)x || y != (int)y ||
+- op[-2].value.intval < -1 ||
++ if (op[-2].value.intval < -1 ||
+ op[-2].value.intval >= gs_color_select_count
+ )
+ return_error(e_rangecheck);
+- code = gs_setscreenphase(igs, (int)x, (int)y,
++ code = gs_setscreenphase(igs, x, y,
+ (gs_color_select_t) op[-2].value.intval);
+ if (code >= 0)
+ pop(3);
diff --git a/print/ghostscript7/files/patch-src-zfunc4.c b/print/ghostscript7/files/patch-src-zfunc4.c
new file mode 100644
index 000000000000..0d8610978652
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zfunc4.c
@@ -0,0 +1,13 @@
+--- src/zfunc4.c.orig 2013-04-30 10:45:00.000000000 +0900
++++ src/zfunc4.c 2013-04-30 10:45:23.000000000 +0900
+@@ -150,10 +150,6 @@
+ case t_integer: {
+ int i = elt.value.intval;
+
+-#if ARCH_SIZEOF_INT < ARCH_SIZEOF_LONG
+- if (i != elt.value.intval) /* check for truncation */
+- return_error(e_rangecheck);
+-#endif
+ if (i == (byte)i) {
+ *p = PtCr_byte;
+ p[1] = (byte)i;
diff --git a/print/ghostscript7/files/patch-src-zgeneric.c b/print/ghostscript7/files/patch-src-zgeneric.c
new file mode 100644
index 000000000000..d99189a5e16a
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zgeneric.c
@@ -0,0 +1,20 @@
+--- src/zgeneric.c.orig 2013-04-30 10:55:48.000000000 +0900
++++ src/zgeneric.c 2013-04-30 10:56:40.000000000 +0900
+@@ -76,7 +76,7 @@
+ int count, i;
+ int code;
+
+- if ((ulong) op->value.intval > op - osbot) {
++ if ((uint)op->value.intval > (uint)(op - osbot)) {
+ /* There might be enough elements in other blocks. */
+ check_int_ltu(*op, ref_stack_count(&o_stack));
+ count = op->value.intval;
+@@ -471,7 +471,7 @@
+ {
+ os_ptr op = osp;
+ es_ptr obj = esp - 2;
+- int index = (int)esp->value.intval;
++ int index = esp->value.intval;
+
+ push(2); /* make room for key and value */
+ if ((index = dict_next(obj, index, op - 1)) >= 0) { /* continue */
diff --git a/print/ghostscript7/files/patch-src-ziodev.c b/print/ghostscript7/files/patch-src-ziodev.c
new file mode 100644
index 000000000000..2cd6f0add7a9
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-ziodev.c
@@ -0,0 +1,11 @@
+--- src/ziodev.c.orig 2013-04-30 11:06:19.000000000 +0900
++++ src/ziodev.c 2013-04-30 11:06:30.000000000 +0900
+@@ -79,8 +79,6 @@
+ const byte *dname;
+
+ check_type(*op, t_integer);
+- if (op->value.intval != (int)op->value.intval)
+- return_error(e_rangecheck);
+ iodev = gs_getiodevice((int)(op->value.intval));
+ if (iodev == 0) /* index out of range */
+ return_error(e_rangecheck);
diff --git a/print/ghostscript7/files/patch-src-zmath.c b/print/ghostscript7/files/patch-src-zmath.c
new file mode 100644
index 000000000000..94576da80fdf
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zmath.c
@@ -0,0 +1,18 @@
+--- src/zmath.c.orig 2013-04-30 10:43:55.000000000 +0900
++++ src/zmath.c 2013-04-30 10:44:23.000000000 +0900
+@@ -229,14 +229,10 @@
+ zsrand(i_ctx_t *i_ctx_p)
+ {
+ os_ptr op = osp;
+- long state;
++ int state;
+
+ check_type(*op, t_integer);
+ state = op->value.intval;
+-#if arch_sizeof_long > 4
+- /* Trim the state back to 32 bits. */
+- state = (int)state;
+-#endif
+ /*
+ * The following somewhat bizarre adjustments are according to
+ * public information from Adobe describing their implementation.
diff --git a/print/ghostscript7/files/patch-src-zstack.c b/print/ghostscript7/files/patch-src-zstack.c
new file mode 100644
index 000000000000..f1359936e410
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-zstack.c
@@ -0,0 +1,11 @@
+--- src/zstack.c.orig 2013-04-30 10:54:14.000000000 +0900
++++ src/zstack.c 2013-04-30 10:54:26.000000000 +0900
+@@ -70,7 +70,7 @@
+ register os_ptr opn;
+
+ check_type(*op, t_integer);
+- if ((ulong)op->value.intval >= op - osbot) {
++ if ((uint)op->value.intval >= op - osbot) {
+ /* Might be in an older stack block. */
+ ref *elt;
+
diff --git a/print/ghostscript7/files/patch-src-ztype.c b/print/ghostscript7/files/patch-src-ztype.c
new file mode 100644
index 000000000000..98be203c6abe
--- /dev/null
+++ b/print/ghostscript7/files/patch-src-ztype.c
@@ -0,0 +1,34 @@
+--- src/ztype.c.orig 2013-04-30 10:46:12.000000000 +0900
++++ src/ztype.c 2013-04-30 10:46:55.000000000 +0900
+@@ -53,10 +53,10 @@
+ * constant expressions, so we can't use min_long and max_long.
+ * What a nuisance!
+ */
+-#define ALT_MIN_LONG (-1L << (arch_sizeof_long * 8 - 1))
+-#define ALT_MAX_LONG (~(ALT_MIN_LONG))
+-private const double min_int_real = (ALT_MIN_LONG * 1.0 - 1);
+-private const double max_int_real = (ALT_MAX_LONG * 1.0 + 1);
++#define ALT_MIN_INT (-1 << 31)
++#define ALT_MAX_INT (~(ALT_MIN_INT))
++static const double min_int_real = (ALT_MIN_INT * 1.0 - 1);
++static const double max_int_real = (ALT_MAX_INT * 1.0 + 1);
+
+ #define REAL_CAN_BE_INT(v)\
+ ((v) > min_int_real && (v) < max_int_real)
+@@ -356,14 +356,14 @@
+ return_op_typecheck(op - 2);
+ }
+ } else {
+- ulong ival;
++ uint ival;
+ byte digits[sizeof(ulong) * 8];
+ byte *endp = &digits[countof(digits)];
+ byte *dp = endp;
+
+ switch (r_type(op - 2)) {
+ case t_integer:
+- ival = (ulong) op[-2].value.intval;
++ ival = (uint) op[-2].value.intval;
+ break;
+ case t_real:
+ {
diff --git a/print/ghostscript7/files/patch-src:dmp_site.ps b/print/ghostscript7/files/patch-src:dmp_site.ps
new file mode 100644
index 000000000000..174bef13f80f
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:dmp_site.ps
@@ -0,0 +1,10 @@
+--- src/dmp_site.ps.orig Tue May 27 09:57:00 1997
++++ src/dmp_site.ps Tue Apr 2 23:05:45 2002
+@@ -1,6 +1,6 @@
+ BeginConfig
+ %%%%%%%%%%%%%%%%%%%%%% Standard user cusomizations %%%%%%%%%%%%%%%%%%%%%
+-/printer (epsimage.src)
++/printer (%%DATADIR%%/%%PORTVERSION%%/lib/escp_24.src)
+ % horizontal / vertical
+ % /resolution [ 160.0 180.0 ]
+ % horizontal / vertical
diff --git a/print/ghostscript7/files/patch-src:dviprlib.c b/print/ghostscript7/files/patch-src:dviprlib.c
new file mode 100644
index 000000000000..67662665f273
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:dviprlib.c
@@ -0,0 +1,13 @@
+--- src/dviprlib.c.orig Tue May 13 16:14:09 1997
++++ src/dviprlib.c Mon Apr 22 23:02:58 2002
+@@ -1433,7 +1433,9 @@
+ char *dviprt_prtcodename[] = { CFG_PRTCODE_NAME, NULL };
+ char *dviprt_encodename[] = { CFG_ENCODE_NAME, NULL };
+
+-private FILE *dviprt_messagestream = stderr;
++private FILE *dviprt_messagestream;
++private void dviprt_messagestream_construct (void) __attribute__((constructor));
++private void dviprt_messagestream_construct (void) { dviprt_messagestream = stderr; }
+
+ /*--- library functions ---*/
+ int
diff --git a/print/ghostscript7/files/patch-src:gdevdmpr.c b/print/ghostscript7/files/patch-src:gdevdmpr.c
new file mode 100644
index 000000000000..05e3bb12dc13
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevdmpr.c
@@ -0,0 +1,11 @@
+--- src/gdevdmpr.c.orig Tue May 13 20:43:37 1997
++++ src/gdevdmpr.c Tue Apr 2 01:16:25 2002
+@@ -846,7 +846,7 @@
+ if (env) {
+ strcpy(fname,env);
+ strcat(fname,
+- gp_file_name_concat_string(env,strlen(env),fname,strlen(fnamebase)));
++ gp_file_name_concat_string(env,strlen(env)));
+ strcat(fname,fnamebase);
+ fp = fopen(fname,gp_fmode_rb);
+ }
diff --git a/print/ghostscript7/files/patch-src:gdevdmpr.mak b/print/ghostscript7/files/patch-src:gdevdmpr.mak
new file mode 100644
index 000000000000..4da2b096cc4f
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevdmpr.mak
@@ -0,0 +1,21 @@
+--- src/gdevdmpr.mak.orig 1997-05-27 09:56:00.000000000 +0900
++++ src/gdevdmpr.mak 2013-04-30 02:18:35.000000000 +0900
+@@ -1,8 +1,12 @@
+ ### ---------------- Dot matrix printer device ---------------- ###
+-dmprt_=gdevdmpr.$(OBJ) dviprlib.$(OBJ) gdevprn.$(OBJ)
++dmprt_=$(GLOBJ)gdevdmpr.$(OBJ) $(GLOBJ)dviprlib.$(OBJ) $(GLOBJ)gdevprn.$(OBJ)
+
+-dmprt.dev: $(dmprt_)
+- $(SETDEV) dmprt $(dmprt_)
+- $(ADDMOD) dmprt -ps dmp_init
+-gdevdmpr.$(OBJ): gdevdmpr.c dviprlib.h $(PDEVH)
+-dviprlib.$(OBJ): dviprlib.c dviprlib.h
++$(DD)dmprt.dev: $(dmprt_)
++ $(SETDEV) $(DD)dmprt $(dmprt_)
++ $(ADDMOD) $(DD)dmprt -ps dmp_init
++
++$(GLOBJ)gdevdmpr.$(OBJ): $(GLSRC)gdevdmpr.c $(GLSRC)dviprlib.h $(PDEVH)
++ $(GLCC) $(GLO_)gdevdmpr.$(OBJ) $(C_) $(GLSRC)gdevdmpr.c
++
++$(GLOBJ)dviprlib.$(OBJ): $(arch_h) $(GLSRC)dviprlib.c $(GLSRC)dviprlib.h
++ $(GLCC) $(GLO_)dviprlib.$(OBJ) $(C_) $(GLSRC)dviprlib.c
diff --git a/print/ghostscript7/files/patch-src:gdevgdi.c b/print/ghostscript7/files/patch-src:gdevgdi.c
new file mode 100644
index 000000000000..996758e09685
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevgdi.c
@@ -0,0 +1,983 @@
+--- src/gdevgdi.c.orig Wed Jun 19 19:32:49 2002
++++ src/gdevgdi.c Mon Jul 21 13:44:41 2003
+@@ -60,8 +60,8 @@
+ #define GDI_REPEAT_LENGTH 2
+ #define GDI_BAND_HEIGHT 128
+ #define GDI_MAX_BAND 66
+-//#define GDI_BAND_WIDTH 4928
+-//#define GDI_BAND_WIDTH_BYTES (((GDI_BAND_WIDTH + 31)/32)*4)
++/*#define GDI_BAND_WIDTH 4928*/
++/*#define GDI_BAND_WIDTH_BYTES (((GDI_BAND_WIDTH + 31)/32)*4)*/
+
+ #define GDI_PRE_COMP 2
+ #define GDI_REAL_COMP 0
+@@ -74,8 +74,8 @@
+
+ #define GDI_MARGINS_A4 0.167, 0.167, 0.167, 0.167
+ #define GDI_MARGINS_LETTER 0.167, 0.167, 0.167, 0.167
+-//#define GDI_MARGINS_A4 0.0, 0.0, 0.0, 0.0
+-//#define GDI_MARGINS_LETTER 0.0, 0.0, 0.0, 0.0
++/*#define GDI_MARGINS_A4 0.0, 0.0, 0.0, 0.0*/
++/*#define GDI_MARGINS_LETTER 0.0, 0.0, 0.0, 0.0*/
+
+ /* The number of blank lines that make it worthwhile to reposition */
+ /* the cursor. */
+@@ -86,9 +86,15 @@
+
+ int GDI_BAND_WIDTH[] = {4768, 4928};
+
++#if GS_VERSION_MAJOR >= 8
++private int gdi_print_page(gx_device_printer *pdev, FILE *prn_stream);
++private int gdi_open(gx_device *pdev);
++private int gdi_close(gx_device *pdev);
++#else
+ private int gdi_print_page(P2(gx_device_printer *pdev, FILE *prn_stream));
+ private int gdi_open(P1(gx_device *pdev));
+ private int gdi_close(P1(gx_device *pdev));
++#endif
+
+ /* The device descriptors */
+ private dev_proc_open_device(gdi_open);
+@@ -107,6 +113,14 @@
+ 1, /* color bit */
+ gdi_print_page);
+
++gx_device_printer far_data gs_samsunggdi_device =
++ prn_device(prn_gdi_procs, "samsunggdi",
++ DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, /* paper size (unit : 10/72 inch size) */
++ X_DPI2, Y_DPI2,
++ 0.20, 0.25, 0.25, 0.25, /* margins filled in by gdi_open */
++ 1, /* color bit */
++ gdi_print_page);
++
+ private FILE *WritePJLHeaderData(gx_device_printer *pdev, FILE *fp);
+ private FILE *WriteBandHeader(FILE *fp, unsigned int usBandNo,
+ unsigned char ubCompMode, unsigned int usBandWidth,
+@@ -220,7 +234,7 @@
+ memset(obp, 0x00, ul_band_size*13/10);
+ for (j=0; j<band_height; j++) {
+ memset(tmp, 0x00, raster);
+- //code = gdev_prn_copy_scan_lines(pdev, i*band_height+j,
++ /*code = gdev_prn_copy_scan_lines(pdev, i*band_height+j, */
+ if (y == num_rows) break;
+ code = gdev_prn_copy_scan_lines(pdev, y++,
+ (byte*)tmp, raster);
+@@ -232,15 +246,71 @@
+
+ /* Write Band Data
+ Because of Scanline compression, extract Scanline compression mode */
+- //ul_tiff_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);
+- //ul_scan_size = (unsigned long)bmp2run(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);
+- //ul_min_size = (ul_scan_size > ul_tiff_size) ? ul_tiff_size : ul_scan_size;
++ /*ul_tiff_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);*/
++ /*ul_scan_size = (unsigned long)bmp2run(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);*/
++ /*ul_min_size = (ul_scan_size > ul_tiff_size) ? ul_tiff_size : ul_scan_size;*/
+ ul_min_size = ul_tiff_size;
+ compression_type = GDI_COMP_MODITIFF;
+- //compression_type = (ul_scan_size > ul_tiff_size) ? GDI_COMP_MODITIFF : GDI_COMP_SCANLINE;
++ /*compression_type = (ul_scan_size > ul_tiff_size) ? GDI_COMP_MODITIFF : GDI_COMP_SCANLINE;*/
+ switch (compression_type) {
+ case GDI_COMP_MODITIFF:
++#define FUDGE_BIG_BANDS
++#ifndef FUDGE_BIG_BANDS
+ ul_comp_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_REAL_COMP);
++#else
++ {
++ /* Very ugly. The printer will hose if the compressed
++ band size is over 65536, so we "fudge" the data in
++ this case repeatedly until we get what we want.
++
++ The fudge algorithm is simple, this is kinda-sorta
++ RLE, so we just round groups of bits in groups of
++ 2, then 3, then 4, etc until the thing works. */
++#define MAXBAND 0xffff
++#define ASSERT(x)
++ int fudge=0;
++ byte *use_band=ibp;
++ do {
++ ul_comp_size = FrameTiffComp(obp, use_band,
++ band_height, band_width_bytes,
++ GDI_REAL_COMP);
++ if (ul_comp_size > MAXBAND-8) {
++ int f, g, h;
++ if (!fudge) {
++ ASSERT(use_band == ibp);
++ use_band = (byte*)gs_malloc(ul_band_size, 1, "gdi_print_page/fudge");
++ fudge=1;
++ }
++ memcpy(use_band, ibp, ul_band_size);
++ fudge++;
++ ASSERT(fudge>=2);
++ {
++#define FUDGE2(x) ( (((((x)>>6)&0x3)?3:0)<<6) \
++ | (((((x)>>4)&0x3)?3:0)<<4) \
++ | (((((x)>>2)&0x3)?3:0)<<2) \
++ | (((((x)>>0)&0x3)?3:0)) )
++#define FUDGE4(x) ( (((((x)>>4)&0xf)?0xf:0)<<4) \
++ | (((((x)>>0)&0xf)?0xf:0)) )
++#define FUDGE8(x) ( (((((x)>>0)&0xff)?0xf:0)) )
++#define FUDGE(fudge, x) ( (fudge == 2 ? FUDGE2(x) \
++ : fudge == 3 ? FUDGE4(x) \
++ : fudge == 4 ? FUDGE8(x) \
++ : 0 ) )
++
++ for(f=0;f<ul_band_size; f++) {
++ use_band[f] = FUDGE(fudge, ibp[f]);
++ }
++ }
++ }
++ } while (ul_comp_size > MAXBAND-8);
++ oh_well:
++ if (fudge > 1) {
++ ASSERT(use_band != ibp);
++ gs_free(use_band, ul_band_size, 1, "gdi_print_page/fudge");
++ /*fprintf(stderr, "smartgdi: band %d fudge factor is %d\n", i, fudge);*/
++ }
++ }
++#endif
+ break;
+ case GDI_COMP_SCANLINE:
+ ul_comp_size = bmp2run(obp, ibp, band_height, band_width_bytes, GDI_REAL_COMP);
+@@ -253,7 +323,7 @@
+
+ prn_stream = WriteBandHeader(prn_stream, i, compression_type, (band_width_bytes * 8),
+ band_height, ul_comp_size);
+- //fprintf(prn_stream, "[%d] band, size : %d\n", i, ul_tiff_size);
++ /*fprintf(prn_stream, "[%d] band, size : %d\n", i, ul_tiff_size);*/
+ fwrite(obp, ul_comp_size, 1, prn_stream);
+ }
+
+@@ -271,50 +341,50 @@
+ unsigned char buffer[300];
+ int dots_per_inch = (int)pdev->y_pixels_per_inch;
+
+- strcpy(buffer, "\x1b%-12345X");
++ strcpy(buffer, "\033%-12345X");
+
+- // Paper Type
+- strcat(buffer, "@PJL SET PAPERTYPE = NORMAL ON\x0d\x0a");
+- //Density
+- strcat(buffer, "@PJL SET DENSITY = 1\x0d\x0a");
+- // Toner Save
+- strcat(buffer, "@PJL SET TONERSAVE = OFF\x0d\x0a");
+- // Enter Language SMART
+- strcat(buffer, "@PJL ENTER LANGUAGE = SMART\x0d\x0a");
+- // JobStart
+- strcat(buffer, "$PJL JOB START\x0d\x0a");
++ /* Paper Type*/
++ strcat(buffer, "@PJL SET PAPERTYPE = NORMAL ON\015\012");
++ /*Density*/
++ strcat(buffer, "@PJL SET DENSITY = 1\015\012");
++ /* Toner Save*/
++ strcat(buffer, "@PJL SET TONERSAVE = OFF\015\012");
++ /* Enter Language SMART*/
++ strcat(buffer, "@PJL ENTER LANGUAGE = SMART\015\012");
++ /* JobStart*/
++ strcat(buffer, "$PJL JOB START\015\012");
+
+- // Resolution
++ /* Resolution*/
+ if (dots_per_inch == 600)
+- strcat(buffer, "$PJL RESOLUTION = 600\x0d\x0a");
++ strcat(buffer, "$PJL RESOLUTION = 600\015\012");
+ else
+- strcat(buffer, "$PJL RESOLUTION = 300\x0d\x0a");
++ strcat(buffer, "$PJL RESOLUTION = 300\015\012");
+
+- // Copies
+- strcat(buffer, "$PJL COPIES = 1\x0d\x0a");
+- // Paper Size
++ /* Copies*/
++ strcat(buffer, "$PJL COPIES = 1\015\012");
++ /* Paper Size*/
+ switch (gdev_pcl_paper_size((gx_device*)pdev))
+ {
+ case PAPER_SIZE_A4:
+- strcat(buffer, "$PJL PAGE A4 AUTO\x0d\x0a");
++ strcat(buffer, "$PJL PAGE A4 AUTO\015\012");
+ break;
+ case PAPER_SIZE_LETTER:
+- strcat(buffer, "$PJL PAGE LETTER AUTO\x0d\x0a");
++ strcat(buffer, "$PJL PAGE LETTER AUTO\015\012");
+ break;
+ case PAPER_SIZE_LEGAL:
+- strcat(buffer, "$PJL PAGE LEGAL AUTO\x0d\x0a");
++ strcat(buffer, "$PJL PAGE LEGAL AUTO\015\012");
+ break;
+ default:
+- strcat(buffer, "$PJL PAGE LETTER AUTO\x0d\x0a");
++ strcat(buffer, "$PJL PAGE LETTER AUTO\015\012");
+ break;
+ }
+- // bitmap start
+- strcat(buffer, "$PJL BITMAP START\x0d\x0a");
+- // write buffer to file.
++ /* bitmap start*/
++ strcat(buffer, "$PJL BITMAP START\015\012");
++ /* write buffer to file.*/
+ ulSize = strlen(buffer);
+ fwrite(buffer, 1, ulSize, fp );
+ return(fp);
+-} // WritePJLHeaderData()
++} /* WritePJLHeaderData() */
+
+
+ FILE *WriteBandHeader
+@@ -335,33 +405,33 @@
+
+ ulBandSize += 8;
+
+- // bandsize
++ /* bandsize*/
+ buf[i++] = (unsigned char)((ulBandSize >> 24) & 0xff);
+ buf[i++] = (unsigned char)((ulBandSize >> 16) & 0xff);
+ buf[i++] = (unsigned char)((ulBandSize >> 8) & 0xff);
+ buf[i++] = (unsigned char)(ulBandSize & 0xff);
+
+- // id
++ /* id */
+ buf[i++] = (unsigned char)((usBandNo >> 8) & 0xff);
+ buf[i++] = (unsigned char)(usBandNo & 0xff);
+
+- // compress mode
++ /* compress mode */
+ buf[i++] = (unsigned char)(ubCompMode & 0xff);
+
+- // ubLeft
++ /* ubLeft */
+ buf[i++] = (unsigned char)(ubLeft & 0xff);
+
+- // height
++ /* height*/
+ buf[i++] = (unsigned char)((usBandHeight >> 8) & 0xff);
+ buf[i++] = (unsigned char)(usBandHeight & 0xff);
+
+- // width
++ /* width */
+ buf[i++] = (unsigned char)((usBandWidth >> 8) & 0xff);
+ buf[i++] = (unsigned char)(usBandWidth & 0xff);
+
+ fwrite(buf, 1, i, fp);
+ return(fp);
+-} // end of WriteBandHeader()
++} /* end of WriteBandHeader()*/
+
+ FILE *WriteTrailerData(FILE *fp)
+ {
+@@ -369,18 +439,18 @@
+ unsigned long buffer[200];
+
+ memset((char*)buffer, 0x00, 200);
+- strcpy((char*)buffer, "$PJL PRINT 4\x0d\x0a");
+- strcat((char*)buffer, "$PJL EOJ\x0d\x0a");
+- strcat((char*)buffer, "$PJL SYNC\x0d\x0a");
+- strcat((char*)buffer, "$PJL RELEASE 0 2047\x0d\x0a");
+- strcat((char*)buffer, "$PJL GARBAGE\x0d\x0a");
+- strcat((char*)buffer, "\x1b%-12345X\x0d\x0a");
++ strcpy((char*)buffer, "$PJL PRINT 4\015\012");
++ strcat((char*)buffer, "$PJL EOJ\015\012");
++ strcat((char*)buffer, "$PJL SYNC\015\012");
++ strcat((char*)buffer, "$PJL RELEASE 0 2047\015\012");
++ strcat((char*)buffer, "$PJL GARBAGE\015\012");
++ strcat((char*)buffer, "\033%-12345X\015\012");
+
+ ulSize = strlen((char*)buffer);
+ fwrite(buffer, 1, ulSize, fp);
+
+ return(fp);
+-} // WriteTrailerData()
++} /* WriteTrailerData()*/
+
+ unsigned long FrameTiffComp(unsigned char *pubDest,
+ unsigned char *pubSrc,
+@@ -399,7 +469,7 @@
+
+ for (i = 0; i < usTotalLines; i++)
+ {
+- if (!(ubMode & 0x02)) //
++ if (!(ubMode & 0x02))
+ {
+ usLineSize = FrameTiff_Comp(SrcPtr, TgtPtr, usBytesPerLine);
+ }
+@@ -416,7 +486,7 @@
+ ulret += usLineSize;
+ }
+
+- if (!(ubMode & 0x02)) //
++ if (!(ubMode & 0x02))
+ {
+ switch (ulret%4)
+ {
+@@ -448,7 +518,7 @@
+ }
+ }
+ return(ulret);
+-} // FrameTiffComp()
++} /* FrameTiffComp()*/
+
+ unsigned int FrameTiff_Comp(unsigned char *lpSrcBuf, unsigned char *lpTgtBuf, unsigned int nSrcBytes)
+ {
+@@ -528,13 +598,13 @@
+ usEndCnt = 16384;
+ }
+ usEndCnt = usCount - 2;
+- // usEndCnt = usCount - 2; original
+- // 19990824 by LSM : for end file while (usEndCnt--)
++ /* usEndCnt = usCount - 2; original*/
++ /* 19990824 by LSM : for end file while (usEndCnt--)*/
+ while (usEndCnt--)
+ {
+ /* read next data */
+ ubFirst = ubSecond;
+- ubSecond = *pubSrc++; // read 3rd Data
++ ubSecond = *pubSrc++; /* read 3rd Data*/
+ if (ubFirst == ubSecond)
+ {
+ if (usEndCnt <= 1)
+@@ -544,7 +614,7 @@
+ }
+ else
+ {
+- ubSecond = *pubSrc++; // read 4th Data
++ ubSecond = *pubSrc++; /* read 4th Data*/
+ usEndCnt--;
+ if (ubFirst == ubSecond)
+ {
+@@ -660,14 +730,14 @@
+ {
+ usEndCnt = 16384;
+ }
+- // usEndCnt = usCount - 2;
++ /* usEndCnt = usCount - 2;*/
+ usEndCnt = usCount - 2;
+- // 19990824 by LSM : for Last file while (usEndCnt--)
++ /* 19990824 by LSM : for Last file while (usEndCnt--)*/
+ while (usEndCnt--)
+ {
+ /* read next data */
+ ubFirst = ubSecond;
+- ubSecond = *pubSrc++; // read 3rd Data
++ ubSecond = *pubSrc++; /* read 3rd Data*/
+ if (ubFirst == ubSecond)
+ {
+ if (usEndCnt <= 1)
+@@ -677,8 +747,8 @@
+ }
+ else
+ {
+- ubSecond = *pubSrc++; // read 4th Data
+- usEndCnt--; // 19990824 by LSM
++ ubSecond = *pubSrc++; /* read 4th Data*/
++ usEndCnt--; /* 19990824 by LSM*/
+ if (ubFirst == ubSecond)
+ {
+ ubMisCnt = 3;
+@@ -691,7 +761,7 @@
+ /* save data */
+ usControl = (unsigned int) (pubSrc - pubOrg);
+ usControl -= ubMisCnt;
+- // 19990824 by LSM : for fixing GPF on Photoshop
++ /* 19990824 by LSM : for fixing GPF on Photoshop*/
+ if (usControl > usCount)
+ {
+ usControl = usCount;
+@@ -728,77 +798,77 @@
+ } sc_tbl;
+
+ static sc_tbl gdi_ScanTbl[256] = {
+-{ 8, 0, 0 }, { 7, 1, 1 }, { 6, 1, 0 }, { 6, 2, 1 }, // 0x00
++{ 8, 0, 0 }, { 7, 1, 1 }, { 6, 1, 0 }, { 6, 2, 1 }, /* 0x00*/
+ { 5, 1, 0 }, { 0, 0, 1 }, { 5, 2, 0 }, { 5, 3, 1 },
+ { 4, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 4, 2, 0 }, { 0, 0, 1 }, { 4, 3, 0 }, { 4, 4, 1 },
+-{ 3, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x10
++{ 3, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x10*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 3, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 3, 3, 0 }, { 0, 0, 1 }, { 3, 4, 0 }, { 3, 5, 1 },
+-{ 2, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x20
++{ 2, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x20*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 2, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x30
++{ 2, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x30*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 2, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 2, 4, 0 }, { 0, 0, 1 }, { 2, 5, 0 }, { 2, 6, 1 },
+-{ 1, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x40
++{ 1, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x40*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x50
++{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x50*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 1, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x60
++{ 1, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x60*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 1, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x70
++{ 1, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x70*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 1, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 1, 5, 0 }, { 0, 0, 1 }, { 1, 6, 0 }, { 1, 7, 1 },
+-{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x80
++{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x80*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x90
++{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x90*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xa0
++{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xa0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xb0
++{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xb0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xc0
++{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xc0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xd0
++{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xd0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xe0
++{ 0, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xe0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+-{ 0, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0xf0
++{ 0, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0xf0*/
+ { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 5, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },
+ { 0, 6, 0 }, { 0, 0, 1 }, { 0, 7, 0 }, { 0, 8, 1 },
+ };
+
+ static sc_tbl gdi_ScanTbl4[16] = {
+-{ 4, 0, 0 }, { 3, 1, 1 }, { 2, 1, 0 }, { 2, 2, 1 }, // 0x00
+-{ 1, 1, 0 }, { 0, 0, 1 }, { 1, 2, 0 }, { 1, 3, 1 }, // 0x04
+-{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, // 0x08
+-{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 3, 0 }, { 0, 4, 1 } // 0x0c
++{ 4, 0, 0 }, { 3, 1, 1 }, { 2, 1, 0 }, { 2, 2, 1 }, /* 0x00*/
++{ 1, 1, 0 }, { 0, 0, 1 }, { 1, 2, 0 }, { 1, 3, 1 }, /* 0x04*/
++{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, /* 0x08*/
++{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 3, 0 }, { 0, 4, 1 } /* 0x0c*/
+ };
+
+ long SaveScanData( unsigned char *, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short );
+@@ -816,32 +886,32 @@
+ lWarp = (long)(usWarp << 3);
+ lDis = ((long)usDy * lWarp) + (long)sDx;
+
+- // 1st, 2nd, 3rd & 4th byte
+- ultmp_dat = 0xc0000000;
++ /* 1st, 2nd, 3rd & 4th byte*/
++ ultmp_dat = 0xc0000000ul;
+ if (lDis < 0)
+ {
+- ultmp_dat |= 0x20000000;
++ ultmp_dat |= 0x20000000ul;
+ }
+- ultmp_dat |= (lDis & 0x1fffffff);
+- *out_buf++ = (unsigned char)((ultmp_dat & 0xff000000) >> 24);
+- *out_buf++ = (unsigned char)((ultmp_dat & 0xff0000) >> 16);
+- *out_buf++ = (unsigned char)((ultmp_dat & 0xff00) >> 8);
+- *out_buf++ = (unsigned char)(ultmp_dat & 0xff);
++ ultmp_dat |= (lDis & 0x1ffffffful);
++ *out_buf++ = (unsigned char)((ultmp_dat & 0xff000000ul) >> 24);
++ *out_buf++ = (unsigned char)((ultmp_dat & 0xff0000ul) >> 16);
++ *out_buf++ = (unsigned char)((ultmp_dat & 0xff00ul) >> 8);
++ *out_buf++ = (unsigned char)(ultmp_dat & 0xfful);
+
+- // 5th & 6th byte
++ /* 5th & 6th byte*/
+ ustmp_dat = 0xc000;
+ ustmp_dat |= (usRl & 0x3fff);
+ *out_buf++ = (unsigned char)((ustmp_dat & 0xff00) >> 8);
+ *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
+
+ return(6);
+-} // Save6Bytes()
++} /* Save6Bytes()*/
+
+ long Save4Bytes(unsigned char *out_buf, unsigned short usDy, unsigned short usRl, short sDx)
+ {
+ unsigned short ustmp_dat;
+
+- // 1st & 2nd byte
++ /* 1st & 2nd byte*/
+ ustmp_dat = 0x8000;
+ if (sDx < 0)
+ {
+@@ -851,7 +921,7 @@
+ *out_buf++ = (unsigned char)((ustmp_dat & 0xff00) >> 8);
+ *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
+
+- // 3rd & 4th byte
++ /* 3rd & 4th byte*/
+ ustmp_dat = 0x8000;
+ ustmp_dat |= ((usDy & 0x03) << 12);
+ ustmp_dat |= (usRl & 0xfff);
+@@ -859,13 +929,13 @@
+ *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
+
+ return(4);
+-} // end of Save4Bytes()
++} /* end of Save4Bytes()*/
+
+ long Save2Bytes(unsigned char *out_buf, unsigned short usDy, unsigned short usRl, short sDx)
+ {
+ unsigned char ubtmp_dat;
+
+- // 1st byte
++ /* 1st byte*/
+ ubtmp_dat = 0x00;
+ if (usDy == 1)
+ {
+@@ -874,7 +944,7 @@
+ ubtmp_dat |= (usRl & 0x3f);
+ *out_buf++ = ubtmp_dat;
+
+- // 2nd byte
++ /* 2nd byte*/
+ if (sDx < 0)
+ {
+ ubtmp_dat = 0x80;
+@@ -886,7 +956,7 @@
+ ubtmp_dat |= ((unsigned char)sDx & 0x7f);
+ *out_buf++ = ubtmp_dat;
+ return(2);
+-} // end of Save2Bytes()
++} /* end of Save2Bytes()*/
+
+ long SaveScanData (unsigned char *out_buf,
+ unsigned short us1Cnt,
+@@ -900,26 +970,26 @@
+
+ sDisX = (int)usPosX01 - (int)usPosX10;
+
+- // 48 bit
++ /* 48 bit*/
+ if ( (usDy > 3) || (us1Cnt > 4095) )
+ {
+ Save6Bytes(out_buf, usDy, us1Cnt, sDisX, usWarp);
+ lRet = 6;
+ }
+- // 32 bit
++ /* 32 bit*/
+ else if ( (usDy > 1) || (us1Cnt > 63) || (sDisX > 127) || (sDisX < -128) )
+ {
+ Save4Bytes(out_buf, usDy, us1Cnt, sDisX);
+ lRet = 4;
+ }
+- // 16 bit
++ /* 16 bit*/
+ else
+ {
+ Save2Bytes(out_buf, usDy, us1Cnt, sDisX);
+ lRet = 2;
+ }
+ return(lRet);
+-} // end of SaveScanData()
++} /* end of SaveScanData()*/
+
+
+ long UpdateScanSize (unsigned char *out_buf,
+@@ -934,23 +1004,23 @@
+
+ sDisX = usPosX01 - usPosX10;
+
+- // 48 bit
++ /* 48 bit*/
+ if ( (usDy > 3) || (us1Cnt > 4095) )
+ {
+ lRet = 6;
+ }
+- // 32 bit
++ /* 32 bit*/
+ else if ( (usDy > 1) || (us1Cnt > 63) || (sDisX > 127) || (sDisX < -128) )
+ {
+ lRet = 4;
+ }
+- // 16 bit
++ /* 16 bit*/
+ else
+ {
+ lRet = 2;
+ }
+ return(lRet);
+-} // end of UpdateScanSize() by bglee 19981224
++} /* end of UpdateScanSize() by bglee 19981224*/
+
+ long GetSimpleScan(unsigned char *out_buf,
+ unsigned char ubSizeMode,
+@@ -983,10 +1053,10 @@
+ }
+
+
+- // 1 X 1 X
++ /* 1 X 1 X*/
+ if (ubPreBit)
+ {
+- // 1 0 1 X
++ /* 1 0 1 X*/
+ if (ubDx)
+ {
+ lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
+@@ -994,23 +1064,23 @@
+ *usPosX01 = usBytePos + ubDx;
+ *us1Count = ubRl;
+ *usDy = 0;
+- // 1 0 1 0
++ /* 1 0 1 0*/
+ if (!ubLastBit)
+ {
+- // 19990330 by bglee
++ /* 19990330 by bglee*/
+ out_buf = out_buf + lScanSize;
+
+ lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
+ *usPosX10 = *usPosX01 ;
+ *us1Count = 0;
+ }
+- // 1 0 1 1
++ /* 1 0 1 1*/
+ }
+- // 1 1 1 X
++ /* 1 1 1 X*/
+ else
+ {
+ *us1Count += ubRl;
+- // 1 1 1 0
++ /* 1 1 1 0*/
+ if (!ubLastBit)
+ {
+ lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
+@@ -1018,16 +1088,16 @@
+ *us1Count = 0;
+ *usDy = 0;
+ }
+- // 1 1 1 1
++ /* 1 1 1 1*/
+ }
+ }
+- // 0 X 1 X
++ /* 0 X 1 X*/
+ else
+ {
+- // 0 X 1 X
++ /* 0 X 1 X*/
+ *usPosX01 = usBytePos + ubDx;
+ *us1Count += ubRl;
+- // 0 X 1 0
++ /* 0 X 1 0*/
+ if (!ubLastBit)
+ {
+ lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
+@@ -1035,11 +1105,11 @@
+ *us1Count = 0;
+ *usDy = 0;
+ }
+- // 0 X 1 1
++ /* 0 X 1 1*/
+ }
+
+ return(lScanSize);
+-} // end of GetSimpleScan()
++} /* end of GetSimpleScan() */
+
+
+ long scan_map (unsigned char *in_buf,
+@@ -1049,7 +1119,7 @@
+ unsigned char ubMode)
+ {
+ unsigned int i, j, k;
+- unsigned char ubPreBit, ubCrtByte;//, ubLastBit;
++ unsigned char ubPreBit, ubCrtByte;/*, ubLastBit;*/
+ long lScanSize, lTmp;
+ long lCrtSize;
+ unsigned short us1Count;
+@@ -1078,7 +1148,7 @@
+ switch (ubCrtByte)
+ {
+ case 0x00:
+- // 1 0
++ /* 1 0 */
+ if (ubPreBit)
+ {
+ lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
+@@ -1088,16 +1158,16 @@
+ us1Count = 0;
+ usDy = 0;
+ }
+- // 0 0
++ /* 0 0*/
+ break;
+
+ case 0xff:
+- // 1 1
++ /* 1 1*/
+ if (ubPreBit)
+ {
+ us1Count += 8;
+ }
+- // 0 1
++ /* 0 1*/
+ else
+ {
+ us1Count = 8;
+@@ -1106,7 +1176,7 @@
+ break;
+
+ default:
+- // X X 1 X
++ /* X X 1 X*/
+ if (gdi_ScanTbl[ubCrtByte].ubRl)
+ {
+ usBytePos = (j << 3);
+@@ -1114,7 +1184,7 @@
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+ }
+- // complex pattern
++ /* complex pattern*/
+ else
+ {
+ for (k = 0; k < 2; k++)
+@@ -1124,7 +1194,7 @@
+ switch (ubTemp)
+ {
+ case 0x00:
+- // 1 0
++ /* 1 0*/
+ if (ubPreBit)
+ {
+ lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
+@@ -1134,16 +1204,16 @@
+ us1Count = 0;
+ usDy = 0;
+ }
+- // 0 0
++ /* 0 0*/
+ break;
+
+ case 0x0f:
+- // 1 1
++ /* 1 1*/
+ if (ubPreBit)
+ {
+ us1Count += 4;
+ }
+- // 0 1
++ /* 0 1*/
+ else
+ {
+ us1Count = 4;
+@@ -1152,7 +1222,7 @@
+ break;
+
+ case 0x05:
+- // 1 0101
++ /* 1 0101*/
+ if (ubPreBit)
+ {
+ lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
+@@ -1162,13 +1232,13 @@
+ usPosX10 = usBytePos - us1Count;
+ usDy = 0;
+ }
+- // 0 0101
++ /* 0 0101*/
+ usPosX01 = usBytePos + 1;
+ lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, 1, usDy, usPosX10, usPosX01, usWidth);
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+
+- // next
++ /* next*/
+ usPosX10 = 0;
+ usPosX01 = 2;
+ usDy = 0;
+@@ -1176,12 +1246,12 @@
+ break;
+
+ case 0x09:
+- // 1 1001
++ /* 1 1001*/
+ if (ubPreBit)
+ {
+ us1Count++;
+ }
+- // 0 1001
++ /* 0 1001*/
+ else
+ {
+ usPosX01 = usBytePos;
+@@ -1191,7 +1261,7 @@
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+
+- // next
++ /* next*/
+ if (ubPreBit)
+ {
+ usPosX10 = usBytePos - us1Count + 1;
+@@ -1207,12 +1277,12 @@
+ break;
+
+ case 0x0a:
+- // 1 1010
++ /* 1 1010*/
+ if (ubPreBit)
+ {
+ us1Count++;
+ }
+- // 0 1010
++ /* 0 1010*/
+ else
+ {
+ us1Count = 1;
+@@ -1222,25 +1292,25 @@
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+
+- // next
++ /* next*/
+ usPosX10 = usBytePos - us1Count + 1;
+ usPosX01 = usBytePos + 2;
+ lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, 1, 0, usPosX10, usPosX01, usWidth);
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+- // next
++ /* next*/
+ usPosX10 = usBytePos + 2;
+ usDy = 0;
+ us1Count = 0;
+ break;
+
+ case 0x0b:
+- // 1 1011
++ /* 1 1011*/
+ if (ubPreBit)
+ {
+ us1Count++;
+ }
+- // 0 1011
++ /* 0 1011*/
+ else
+ {
+ us1Count = 1;
+@@ -1250,7 +1320,7 @@
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+
+- // next
++ /* next*/
+ if (ubPreBit)
+ {
+ usPosX10 = usBytePos - us1Count + 1;
+@@ -1267,12 +1337,12 @@
+ break;
+
+ case 0x0d:
+- // 1 1101
++ /* 1 1101*/
+ if (ubPreBit)
+ {
+ us1Count += 2;
+ }
+- // 0 1101
++ /* 0 1101*/
+ else
+ {
+ us1Count = 2;
+@@ -1282,7 +1352,7 @@
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+
+- // next
++ /* next*/
+ if (ubPreBit)
+ {
+ usPosX10 = usBytePos - us1Count + 2;
+@@ -1298,17 +1368,17 @@
+ break;
+
+ default:
+- // X X 1 X
++ /* X X 1 X*/
+ lTmp = GetSimpleScan(out_buf, ubSizeMode, &us1Count, &usDy, &usPosX10, &usPosX01, usBytePos, ubTemp, 4, ubPreBit, usWidth);
+ out_buf = out_buf + lTmp;
+ lScanSize += lTmp;
+ break;
+- } // end of switch()
++ } /* end of switch()*/
+ ubPreBit = ubTemp & 0x01;
+- } // end of k-loop
++ } /* end of k-loop*/
+ }
+ break;
+- } // end of switch()
++ } /* end of switch()*/
+
+ ubPreBit = ubCrtByte & 0x01;
+ } /*for usWidth */
+@@ -1326,7 +1396,7 @@
+ }
+ usDy++;
+
+- // check size over
++ /* check size over*/
+ if ( (i % 5) == 4 )
+ {
+ lCrtSize = (long)((long)usWidth * (long)(i + 1));
+@@ -1342,7 +1412,7 @@
+ lScanSize = -1;
+ }
+ return(lScanSize);
+-} // end of scan_map()
++} /* end of scan_map() */
+
+ /*****************************************************************
+ * H : bmp2run
+@@ -1362,7 +1432,7 @@
+ unsigned char *tmp_buf1, *tmp_buf2;
+ long scan_size;
+
+- //return(-1); // 19990323 by bglee - request from SM Lee
++ /*return(-1);*/ /* 19990323 by bglee - request from SM Lee*/
+
+ tmp_buf1 = in_buf;
+ tmp_buf2 = out_buf;
+@@ -1372,7 +1442,7 @@
+ return(-1);
+ }
+
+- if ( !(ubMode & 0x02) ) // real compression //---
++ if ( !(ubMode & 0x02) ) /* real compression */
+ {
+ out_buf = tmp_buf2 + scan_size;
+ *out_buf++ = 0x00;
+@@ -1385,7 +1455,7 @@
+ scan_size += 2;
+ }
+ }
+- else // pre-compression
++ else /* pre-compression*/
+ {
+ scan_size += 2;
+ if (scan_size % 4)
diff --git a/print/ghostscript7/files/patch-src:gdevlbp8.c b/print/ghostscript7/files/patch-src:gdevlbp8.c
new file mode 100644
index 000000000000..052492c58f6a
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevlbp8.c
@@ -0,0 +1,70 @@
+--- src/gdevlbp8.c.orig Wed Aug 1 09:48:23 2001
++++ src/gdevlbp8.c Thu Mar 14 20:56:05 2002
+@@ -22,6 +22,8 @@
+
+ /*
+ Modifications:
++ 3.10.00 Johnny Lam
++ Removed LIPS III code, as it's obsoleted by gdevlips driver.
+ 2.2.97 Lauri Paatero
+ Changed CSI command into ESC [. DCS commands may still need to be changed
+ (to ESC P).
+@@ -49,7 +51,6 @@
+
+ /* The device descriptors */
+ private dev_proc_print_page(lbp8_print_page);
+-private dev_proc_print_page(lips3_print_page);
+
+ const gx_device_printer far_data gs_lbp8_device =
+ prn_device(prn_std_procs, "lbp8",
+@@ -58,14 +59,6 @@
+ 0.16, 0.2, 0.32, 0.21, /* margins: left, bottom, right, top */
+ 1, lbp8_print_page);
+
+-const gx_device_printer far_data gs_lips3_device =
+- prn_device(prn_std_procs, "lips3",
+- 82, /* width_10ths, 8.3" */
+- 117, /* height_10ths, 11.7" */
+- X_DPI, Y_DPI,
+- 0.16, 0.27, 0.23, 0.27, /* margins */
+- 1, lips3_print_page);
+-
+ /* ------ Internal routines ------ */
+
+ #define ESC 0x1b
+@@ -84,23 +77,6 @@
+
+ static const char *lbp8_end = NULL;
+
+-static const char lips3_init[] = {
+- ESC, '<', /* soft reset */
+- DCS, '0', 'J', ST, /* JOB END */
+- DCS, '3', '1', ';', '3', '0', '0', ';', '2', 'J', ST, /* 300dpi, LIPS3 JOB START */
+- ESC, '<', /* soft reset */
+- DCS, '2', 'y', 'P', 'r', 'i', 'n', 't', 'i', 'n', 'g', '(', 'g', 's', ')', ST, /* Printing (gs) display */
+- ESC, '[', '?', '1', 'l', /* auto cr-lf disable */
+- ESC, '[', '?', '2', 'h', /* auto ff disable */
+- ESC, '[', '1', '1', 'h', /* set mode */
+- ESC, '[', '7', ' ', 'I', /* select unit size (300dpi)*/
+- ESC, '[', 'f' /* move to home position */
+-};
+-
+-static const char lips3_end[] = {
+- DCS, '0', 'J', ST /* JOB END */
+-};
+-
+ /* Send the page to the printer. */
+ private int
+ can_print_page(gx_device_printer *pdev, FILE *prn_stream,
+@@ -203,11 +179,4 @@
+ lbp8_print_page(gx_device_printer *pdev, FILE *prn_stream)
+ { return can_print_page(pdev, prn_stream, lbp8_init, sizeof(lbp8_init),
+ lbp8_end, sizeof(lbp8_end));
+-}
+-
+-/* Print a LIPS III page. */
+-private int
+-lips3_print_page(gx_device_printer *pdev, FILE *prn_stream)
+-{ return can_print_page(pdev, prn_stream, lips3_init, sizeof(lips3_init),
+- lips3_end, sizeof(lips3_end));
+ }
diff --git a/print/ghostscript7/files/patch-src:gdevpdff.c b/print/ghostscript7/files/patch-src:gdevpdff.c
new file mode 100644
index 000000000000..8a292bd4cdec
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevpdff.c
@@ -0,0 +1,59 @@
+--- src/gdevpdff.c.org 2003-01-17 09:49:02.000000000 +0900
++++ src/gdevpdff.c 2003-09-21 05:08:36.000000000 +0900
+@@ -276,6 +276,11 @@
+ const byte *chars = font->font_name.chars;
+ uint size = font->font_name.size;
+
++ /* CIDFonts has null string in font_name, key_name is used */
++ if (0 == size) {
++ chars = font->key_name.chars;
++ size = font->key_name.size;
++ }
+ /*
+ * The behavior of Acrobat Distiller changed between 3.0 (PDF 1.2),
+ * which will never embed the base 14 fonts, and 4.0 (PDF 1.3), which
+@@ -720,19 +725,22 @@
+ same &= ~FONT_SAME_METRICS;
+ break;
+ case FONT_EMBED_NO:
+- /*
+- * Per the PDF 1.3 documentation, there are only 3 BaseEncoding
+- * values allowed for non-embedded fonts. Pick one here.
+- */
+- BaseEncoding =
+- ((const gs_font_base *)base_font)->nearest_encoding_index;
+- switch (BaseEncoding) {
+- default:
+- BaseEncoding = ENCODING_INDEX_WINANSI;
+- case ENCODING_INDEX_WINANSI:
+- case ENCODING_INDEX_MACROMAN:
+- case ENCODING_INDEX_MACEXPERT:
+- break;
++ if (!(font->FontType == ft_CID_encrypted ||
++ font->FontType == ft_CID_TrueType)) {
++ /*
++ * Per the PDF 1.3 documentation, there are only 3 BaseEncoding
++ * values allowed for non-embedded fonts. Pick one here.
++ */
++ BaseEncoding =
++ ((const gs_font_base *)base_font)->nearest_encoding_index;
++ switch (BaseEncoding) {
++ default:
++ BaseEncoding = ENCODING_INDEX_WINANSI;
++ case ENCODING_INDEX_WINANSI:
++ case ENCODING_INDEX_MACROMAN:
++ case ENCODING_INDEX_MACEXPERT:
++ break;
++ }
+ }
+ code = pdf_compute_font_descriptor(pdev, &fdesc, font, NULL);
+ if (code < 0)
+@@ -888,6 +896,7 @@
+ memcpy(ppf->widths_known, ftemp_widths_known,
+ sizeof(ftemp_widths_known));
+ }
++ ppf->embed = embed;
+ code = pdf_register_font(pdev, font, ppf);
+
+ *pppf = ppf;
+
diff --git a/print/ghostscript7/files/patch-src:gdevpdff.h b/print/ghostscript7/files/patch-src:gdevpdff.h
new file mode 100644
index 000000000000..f64a4e02f6b8
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevpdff.h
@@ -0,0 +1,37 @@
+--- src/gdevpdff.h.org 2003-01-17 09:49:02.000000000 +0900
++++ src/gdevpdff.h 2003-09-18 23:42:38.000000000 +0900
+@@ -117,6 +117,12 @@
+ FONT_SUBSET_NO
+ } pdf_font_do_subset_t;
+
++typedef enum {
++ FONT_EMBED_STANDARD, /* 14 standard fonts */
++ FONT_EMBED_NO,
++ FONT_EMBED_YES
++} pdf_font_embed_t;
++
+ struct pdf_font_descriptor_s {
+ pdf_resource_common(pdf_font_descriptor_t);
+ pdf_font_name_t FontName;
+@@ -198,6 +204,7 @@
+ gs_font *font; /* non-0 iff font will notify us; */
+ /* should be a weak pointer */
+ int index; /* in pdf_standard_fonts, -1 if not base 14 */
++ pdf_font_embed_t embed; /* status of pdf_font_embed_status() */
+ gs_matrix orig_matrix; /* FontMatrix of unscaled font for embedding */
+ bool is_MM_instance; /* for Type 1/2 fonts, true iff the font */
+ /* is a Multiple Master instance */
+@@ -320,12 +327,6 @@
+
+ /* ---------------- Exported by gdevpdff.c ---------------- */
+
+-typedef enum {
+- FONT_EMBED_STANDARD, /* 14 standard fonts */
+- FONT_EMBED_NO,
+- FONT_EMBED_YES
+-} pdf_font_embed_t;
+-
+ typedef struct pdf_standard_font_s {
+ const char *fname;
+ gs_encoding_index_t base_encoding;
+
diff --git a/print/ghostscript7/files/patch-src:gdevpdfs.c b/print/ghostscript7/files/patch-src:gdevpdfs.c
new file mode 100644
index 000000000000..0378f15c88ab
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevpdfs.c
@@ -0,0 +1,41 @@
+--- src/gdevpdfs.c.org 2003-09-20 00:11:16.000000000 +0900
++++ src/gdevpdfs.c 2003-09-25 17:44:10.000000000 +0900
+@@ -481,15 +481,21 @@
+
+ if (cid < pfd->chars_count) {
+ int index = cid >> 3, mask = 0x80 >> (cid & 7);
++ int gid;
++
++ if (!(pfd->chars_used.data[index] & mask) ||
++ !(psubf->widths_known[index] & mask)) {
+
+- if (!(pfd->chars_used.data[index] & mask)) {
+- pfd->chars_used.data[index] |= mask;
+ if (psubf->CIDToGIDMap) {
+ gs_font_cid2 *const subfont2 =
+ (gs_font_cid2 *)subfont;
+- int gid =
+- subfont2->cidata.CIDMap_proc(subfont2, glyph);
+
++ gid = subfont2->cidata.CIDMap_proc(subfont2, glyph);
++ }
++ }
++ if (!(pfd->chars_used.data[index] & mask)) {
++ pfd->chars_used.data[index] |= mask;
++ if (psubf->CIDToGIDMap) {
+ if (gid >= 0) {
+ psubf->CIDToGIDMap[cid] = gid;
+ mark_glyphs_used(subfont, gid + gs_min_cid_glyph,
+@@ -500,7 +506,11 @@
+ if (!(psubf->widths_known[index] & mask)) {
+ int width;
+
+- code = pdf_glyph_width(psubf, glyph, subfont, &width);
++ if (psubf->CIDToGIDMap)
++ code = pdf_glyph_width(psubf, gid + gs_min_cid_glyph,
++ subfont, &width);
++ else
++ code = pdf_glyph_width(psubf, glyph, subfont, &width);
+ if (code == 0) {
+ psubf->Widths[cid] = width;
+ psubf->widths_known[index] |= mask;
diff --git a/print/ghostscript7/files/patch-src:gdevpdfw.c b/print/ghostscript7/files/patch-src:gdevpdfw.c
new file mode 100644
index 000000000000..a08b87d42724
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gdevpdfw.c
@@ -0,0 +1,60 @@
+--- src/gdevpdfw.c.org 2003-01-17 09:49:02.000000000 +0900
++++ src/gdevpdfw.c 2003-09-25 17:50:54.000000000 +0900
+@@ -348,18 +348,19 @@
+ /* Use the most common width as DW. */
+
+ {
+- ushort counts[1001];
++ ushort counts[1500*2]; /* histogram of (-1500..1500) */
+ int dw_count = 0, i;
+
+ memset(counts, 0, sizeof(counts));
+ while (!psf_enumerate_glyphs_next(&genum, &glyph)) {
+- int width = ppf->Widths[glyph - gs_min_cid_glyph];
++ int cid = glyph - gs_min_cid_glyph;
++ int width = ppf->Widths[cid];
+
+- counts[min(width, countof(counts) - 1)]++;
++ counts[max(0,min(width+countof(counts)/2,countof(counts)-1))]++;
+ }
+- for (i = 0; i < countof(counts); ++i)
++ for (i = 0; i < countof(counts); i++)
+ if (counts[i] > dw_count)
+- dw = i, dw_count = counts[i];
++ dw = i - countof(counts)/2, dw_count = counts[i];
+ if (dw != 0)
+ pprintd1(s, "/DW %d\n", dw);
+ }
+@@ -496,14 +497,16 @@
+ if (pdf_has_subset_prefix(chars, size))
+ chars += SUBSET_PREFIX_SIZE, size -= SUBSET_PREFIX_SIZE;
+ pdf_put_name(pdev, chars, size);
+- if (pef->sub_font_type == ft_CID_encrypted &&
++ if ((pef->sub_font_type == ft_CID_encrypted ||
++ pef->sub_font_type == ft_CID_TrueType) &&
+ pef->cmapname[0] == '/'
+ ) {
+ stream_putc(s, '-');
+ pdf_put_name_chars(pdev, (const byte*) (pef->cmapname + 1),
+ strlen(pef->cmapname + 1));
+ }
+- pprints1(s, "/Encoding %s", pef->cmapname);
++ pprints1(s, (pef->cmapname[0] == '/') ? "/Encoding%s" : "/Encoding %s",
++ pef->cmapname);
+ pprintld1(s, "/DescendantFonts[%ld 0 R]",
+ pdf_resource_id((const pdf_resource_t *)pef->DescendantFont));
+ write_Widths = 0;
+@@ -563,8 +566,10 @@
+ break;
+ case -1:
+ pdf_write_CIDFont_widths(pdev, pef);
+- if (pef->FontType == ft_CID_TrueType)
+- pdf_write_CIDToGIDMap(pdev, pef, &cidmap_id);
++ if (pef->FontType == ft_CID_TrueType) {
++ if (pef->embed != FONT_EMBED_NO)
++ pdf_write_CIDToGIDMap(pdev, pef, &cidmap_id);
++ }
+ break;
+ }
+ if (pef->Differences) {
+
diff --git a/print/ghostscript7/files/patch-src:genarch.c b/print/ghostscript7/files/patch-src:genarch.c
new file mode 100644
index 000000000000..a015e69e758a
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:genarch.c
@@ -0,0 +1,34 @@
+--- src/genarch.c.orig Tue Jun 5 15:38:57 2001
++++ src/genarch.c Wed Jun 20 04:17:42 2001
+@@ -41,6 +41,7 @@
+ fprintf(f, "\n\t /* ---------------- %s ---------------- */\n\n", str);
+ }
+
++#ifndef __FreeBSD__
+ private clock_t
+ time_clear(char *buf, int bsize, int nreps)
+ {
+@@ -51,6 +52,7 @@
+ memset(buf, 0, bsize);
+ return clock() - t;
+ }
++#endif /* __FreeBSD__ */
+
+ private void
+ define(FILE *f, const char *str)
+@@ -181,6 +183,7 @@
+ fprintf(f, "((unsigned long)~0L + (unsigned long)0)\n");
+ #undef PRINT_MAX
+
++#ifndef __FreeBSD__
+ section(f, "Cache sizes");
+
+ /*
+@@ -241,6 +244,7 @@
+ }
+ define_int(f, "ARCH_CACHE2_SIZE", bsize >> 1);
+ }
++#endif /* __FreeBSD__ */
+
+ section(f, "Miscellaneous");
+
diff --git a/print/ghostscript7/files/patch-src:gxobj.h b/print/ghostscript7/files/patch-src:gxobj.h
new file mode 100644
index 000000000000..f0df8565100c
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:gxobj.h
@@ -0,0 +1,17 @@
+--- src/gxobj.h.orig Fri Feb 22 19:45:59 2002
++++ src/gxobj.h Thu Dec 19 00:16:57 2002
+@@ -99,10 +99,14 @@
+ * The final | is because back pointer values are divided by obj_back_scale,
+ * so objects must be aligned at least 0 mod obj_back_scale.
+ */
++#if !defined(__ia64__) && !defined(__amd64__)
+ #define obj_align_mod\
+ (((arch_align_long_mod - 1) | (arch_align_ptr_mod - 1) |\
+ (arch_align_double_mod - 1) | (align_bitmap_mod - 1) |\
+ (obj_back_scale - 1)) + 1)
++#else
++#define obj_align_mod 16
++#endif
+ /* The only possible values for obj_align_mod are 4, 8, or 16.... */
+ #if obj_align_mod == 4
+ # define log2_obj_align_mod 2
diff --git a/print/ghostscript7/files/patch-src:smartgdi-contrib.mak b/print/ghostscript7/files/patch-src:smartgdi-contrib.mak
new file mode 100644
index 000000000000..3b832daff662
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:smartgdi-contrib.mak
@@ -0,0 +1,16 @@
+--- src/smartgdi-contrib.mak.orig Wed Jun 19 21:43:43 2002
++++ src/smartgdi-contrib.mak Mon Jul 21 13:59:00 2003
+@@ -3,10 +3,12 @@
+ ### Note : this driver is used by Samsung SmartGDI compatible printers. ###
+ ###
+
++gdi_opts=-DGS_VERSION_MAJOR=$(GS_VERSION_MAJOR)
++
+ GDIMONO=$(GLOBJ)gdevgdi.$(OBJ) $(HPPCL)
+
+ $(DD)gdi.dev: $(GDIMONO) $(DD)page.dev
+ $(SETPDEV) $(DD)gdi $(GDIMONO)
+
+ $(GLOBJ)gdevgdi.$(OBJ): $(GLSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h)
+- $(GLCC) $(GLO_)gdevgdi.$(OBJ) $(C_) $(GLSRC)gdevgdi.c
++ $(GLCC) $(GLO_)gdevgdi.$(OBJ) $(C_) $(gdi_opts) $(GLSRC)gdevgdi.c
diff --git a/print/ghostscript7/files/patch-src:unix-dll.mak b/print/ghostscript7/files/patch-src:unix-dll.mak
new file mode 100644
index 000000000000..ed0e8f29d4cd
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:unix-dll.mak
@@ -0,0 +1,76 @@
+--- src/unix-dll.mak.orig 2003-01-17 09:49:05.000000000 +0900
++++ src/unix-dll.mak 2014-11-23 14:43:44.000000000 +0900
+@@ -48,11 +48,9 @@
+
+ # shared library
+ GS_SONAME=lib$(GS).so
+-GS_SONAME_MAJOR=$(GS_SONAME).$(GS_VERSION_MAJOR)
+-GS_SONAME_MAJOR_MINOR= $(GS_SONAME).$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR)
++GS_SONAME_MAJOR=$(GS_SONAME).$(GS_SHLIB_VER)
+ GS_SO=$(BINDIR)/$(GS_SONAME)
+-GS_SO_MAJOR=$(GS_SO).$(GS_VERSION_MAJOR)
+-GS_SO_MAJOR_MINOR=$(GS_SO_MAJOR).$(GS_VERSION_MINOR)
++GS_SO_MAJOR=$(GS_SO).$(GS_SHLIB_VER)
+
+ # Shared object is built by redefining GS_XE in a recursive make.
+
+@@ -60,24 +58,20 @@
+
+ $(GS_SO): $(GS_SO_MAJOR)
+ $(RM_) $(GS_SO)
+- ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO)
+-
+-$(GS_SO_MAJOR): $(GS_SO_MAJOR_MINOR)
+- $(RM_) $(GS_SO_MAJOR)
+- ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO_MAJOR)
++ ln -s $(GS_SONAME_MAJOR) $(GS_SO)
+
+ # Build the small Ghostscript loaders, with Gtk+ and without
+
+ $(GSSOX_XE): $(GS_SO) $(GLSRC)dxmain.c
+- $(GLCC) -g `gtk-config --cflags` -o $(GSSOX_XE) $(GLSRC)dxmain.c -L$(BINDIR) -l$(GS) `gtk-config --libs`
++ $(GLCC) `$(GTK_CONFIG) --cflags` -o $(GSSOX_XE) $(GLSRC)dxmain.c -L$(BINDIR) -l$(GS) `$(GTK_CONFIG) --libs`
+
+ $(GSSOC_XE): $(GS_SO) $(GLSRC)dxmainc.c
+- $(GLCC) -g -o $(GSSOC_XE) $(GLSRC)dxmainc.c -L$(BINDIR) -l$(GS)
++ $(GLCC) -o $(GSSOC_XE) $(GLSRC)dxmainc.c -L$(BINDIR) -l$(GS)
+
+ # ------------------------- Recursive make targets ------------------------- #
+
+ SODEFS=LDFLAGS='$(LDFLAGS) $(CFLAGS_SO) -shared -Wl,-soname,$(GS_SONAME_MAJOR)'\
+- GS_XE=$(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR)\
++ GS_XE=$(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR)\
+ STDIO_IMPLEMENTATION=c\
+ DISPLAY_DEV=$(DD)$(SOOBJRELDIR)/display.dev\
+ BINDIR=$(BINDIR)/$(SOBINRELDIR)\
+@@ -98,19 +92,17 @@
+ $(MAKE) $(SODEFS) GENOPT='-DDEBUG' CFLAGS='$(CFLAGS_DEBUG) $(CFLAGS_SO) $(GCFLAGS) $(XCFLAGS)' $(GSSOC) $(GSSOX)
+
+ install-so: so
+- -mkdir -p $(prefix)
+- -mkdir -p $(datadir)
+- -mkdir -p $(gsdir)
+- -mkdir -p $(gsdatadir)
+- -mkdir -p $(bindir)
+- -mkdir -p $(libdir)
+- $(INSTALL_PROGRAM) $(GSSOC) $(bindir)/$(GSSOC_XENAME)
+- $(INSTALL_PROGRAM) $(GSSOX) $(bindir)/$(GSSOX_XENAME)
+- $(INSTALL_PROGRAM) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR_MINOR)
+- $(RM_) $(libdir)/$(GS_SONAME)
+- ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME)
+- $(RM_) $(libdir)/$(GS_SONAME_MAJOR)
+- ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR)
++ -mkdir -p $(DESTDIR)$(prefix)
++ -mkdir -p $(DESTDIR)$(datadir)
++ -mkdir -p $(DESTDIR)$(gsdir)
++ -mkdir -p $(DESTDIR)$(gsdatadir)
++ -mkdir -p $(DESTDIR)$(bindir)
++ -mkdir -p $(DESTDIR)$(libdir)
++ $(INSTALL_PROGRAM) $(GSSOC) $(DESTDIR)$(bindir)/$(GSSOC_XENAME)
++ $(INSTALL_PROGRAM) $(GSSOX) $(DESTDIR)$(bindir)/$(GSSOX_XENAME)
++ $(INSTALL_PROGRAM) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR) $(DESTDIR)$(libdir)/$(GS_SONAME_MAJOR)
++ $(RM_) $(DESTDIR)$(libdir)/$(GS_SONAME)
++ ln -s $(GS_SONAME_MAJOR) $(DESTDIR)$(libdir)/$(GS_SONAME)
+
+ soinstall: install-so install-scripts install-data
+
diff --git a/print/ghostscript7/files/patch-src:unix-gcc.mak b/print/ghostscript7/files/patch-src:unix-gcc.mak
new file mode 100644
index 000000000000..41f387c4143e
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:unix-gcc.mak
@@ -0,0 +1,133 @@
+--- src/unix-gcc.mak.orig Thu Oct 10 22:35:51 2002
++++ src/unix-gcc.mak Sun Nov 17 22:00:15 2002
+@@ -24,14 +24,15 @@
+ # source, generated intermediate file, and object directories
+ # for the graphics library (GL) and the PostScript/PDF interpreter (PS).
+
+-BINDIR=./bin
+-GLSRCDIR=./src
+-GLGENDIR=./obj
+-GLOBJDIR=./obj
+-PSSRCDIR=./src
+-PSLIBDIR=./lib
+-PSGENDIR=./obj
+-PSOBJDIR=./obj
++.CURDIR?=.
++BINDIR=${.CURDIR}/bin
++GLSRCDIR=${.CURDIR}/src
++GLGENDIR=${.CURDIR}/obj
++GLOBJDIR=${.CURDIR}/obj
++PSSRCDIR=${.CURDIR}/src
++PSLIBDIR=${.CURDIR}/lib
++PSGENDIR=${.CURDIR}/obj
++PSOBJDIR=${.CURDIR}/obj
+
+ # Do not edit the next group of lines.
+
+@@ -50,11 +51,10 @@
+ # the directories also define the default search path for the
+ # initialization files (gs_*.ps) and the fonts.
+
+-INSTALL = $(GLSRCDIR)/instcopy -c
+-INSTALL_PROGRAM = $(INSTALL) -m 755
+-INSTALL_DATA = $(INSTALL) -m 644
++INSTALL_PROGRAM = ${BSD_INSTALL_SCRIPT}
++INSTALL_DATA = ${BSD_INSTALL_DATA}
+
+-prefix = /usr/local
++prefix = ${PREFIX}
+ exec_prefix = $(prefix)
+ bindir = $(exec_prefix)/bin
+ scriptdir = $(bindir)
+@@ -142,7 +142,7 @@
+ # D_MAX_BLOCKS_IN_MCU patch, and thus may not be able to read
+ # some older JPEG streams that violate the standard. If the JPEG
+ # library built from local sources, the patch will be applied.
+-SHARE_JPEG=0
++SHARE_JPEG=1
+ JPEG_NAME=jpeg
+
+ # Define the directory where the PNG library sources are stored,
+@@ -157,7 +157,7 @@
+ # what its name is.
+ # See gs.mak and Make.htm for more information.
+
+-SHARE_LIBPNG=0
++SHARE_LIBPNG=1
+ LIBPNG_NAME=png
+
+ # Define the directory where the zlib sources are stored.
+@@ -169,7 +169,7 @@
+ # what its name is (usually libz, but sometimes libgz).
+ # See gs.mak and Make.htm for more information.
+
+-SHARE_ZLIB=0
++SHARE_ZLIB=1
+ #ZLIB_NAME=gz
+ ZLIB_NAME=z
+
+@@ -196,7 +196,7 @@
+
+ # Define the name of the C compiler.
+
+-CC=gcc
++CC?=cc
+
+ # Define the name of the linker for the final link step.
+ # Normally this is the same as the C compiler.
+@@ -213,9 +213,9 @@
+ # Define the added flags for standard, debugging, profiling
+ # and shared object builds.
+
+-CFLAGS_STANDARD=-O2
+-CFLAGS_DEBUG=-g -O
+-CFLAGS_PROFILE=-pg -O2
++CFLAGS_STANDARD?=-O2
++CFLAGS_DEBUG=-g
++CFLAGS_PROFILE=-pg
+ CFLAGS_SO=-fPIC
+
+ # Define the other compilation flags. Add at most one of the following:
+@@ -229,7 +229,7 @@
+ # We don't include -ansi, because this gets in the way of the platform-
+ # specific stuff that <math.h> typically needs; nevertheless, we expect
+ # gcc to accept ANSI-style function prototypes and function definitions.
+-XCFLAGS=
++XCFLAGS+=-I${.CURDIR}/gimp-print -I${LOCALBASE}/include/libpng -I${LOCALBASE}/include
+
+ CFLAGS=$(CFLAGS_STANDARD) $(GCFLAGS) $(XCFLAGS)
+
+@@ -240,7 +240,7 @@
+ # -R /usr/local/xxx/lib:/usr/local/lib
+ # giving the full path names of the shared library directories.
+ # XLDFLAGS can be set from the command line.
+-XLDFLAGS=
++XLDFLAGS=-L${.CURDIR}/gimp-print -L${LOCALBASE}/lib
+
+ LDFLAGS=$(XLDFLAGS)
+
+@@ -273,7 +273,7 @@
+ # Note that x_.h expects to find the header files in $(XINCLUDE)/X11,
+ # not in $(XINCLUDE).
+
+-XINCLUDE=-I/usr/X11R6/include
++XINCLUDE=-I${LOCALBASE}/include
+
+ # Define the directory/ies and library names for the X11 library files.
+ # XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH
+@@ -285,12 +285,12 @@
+ # Solaris and other SVR4 systems with dynamic linking probably want
+ #XLIBDIRS=-L/usr/openwin/lib -R/usr/openwin/lib
+ # X11R6 (on any platform) may need
+-#XLIBS=Xt SM ICE Xext X11
++XLIBS=Xt SM ICE Xext X11
+
+ #XLIBDIRS=-L/usr/local/X/lib
+-XLIBDIRS=-L/usr/X11R6/lib
++XLIBDIRS=-L${LOCALBASE}/lib
+ XLIBDIR=
+-XLIBS=Xt Xext X11
++#XLIBS=Xt Xext X11
+
+ # Define whether this platform has floating point hardware:
+ # FPU_TYPE=2 means floating point is faster than fixed point.
diff --git a/print/ghostscript7/files/patch-src:zmedia2.c b/print/ghostscript7/files/patch-src:zmedia2.c
new file mode 100644
index 000000000000..9033a4388085
--- /dev/null
+++ b/print/ghostscript7/files/patch-src:zmedia2.c
@@ -0,0 +1,25 @@
+--- src/zmedia2.c.orig Fri Apr 27 02:57:41 2001
++++ src/zmedia2.c Fri Nov 2 04:08:16 2001
+@@ -429,11 +429,17 @@
+
+ rx = ry, ry = temp;
+ }
+- /* Adjust the medium size if flexible. */
+- if (medium->p.x < MIN_MEDIA_SIZE && mx > rx)
+- mx = rx;
+- if (medium->p.y < MIN_MEDIA_SIZE && my > ry)
+- my = ry;
++ /* If 'medium' is flexible, adjust 'mx' and 'my' towards 'rx' and 'ry',
++ respectively. Note that 'mx' and 'my' have just acquired the largest
++ permissible value, medium->q. */
++ if (medium->p.x < mx) /* non-empty width range */
++ if (rx < medium->p.x) mx = medium->p.x; /* minimum */
++ else if (mx > rx) mx = rx; /* fits */
++ /* else use medium->q.x, i.e., the maximum */
++ if (medium->p.y < my) /* non-empty height range */
++ if (ry < medium->p.y) my = medium->p.y; /* minimum */
++ else if (my > ry) my = ry; /* fits */
++ /* else use medium->q.y, i.e., the maximum */
+
+ /* Translate to align the centers. */
+ gs_make_translation(mx / 2, my / 2, pmat);
diff --git a/print/ghostscript7/files/patch-src_cpca_mk_cmd.c b/print/ghostscript7/files/patch-src_cpca_mk_cmd.c
new file mode 100644
index 000000000000..e7f1f9221946
--- /dev/null
+++ b/print/ghostscript7/files/patch-src_cpca_mk_cmd.c
@@ -0,0 +1,270 @@
+--- src/cpca_mk_cmd.c.orig Wed Mar 15 15:00:26 2006
++++ src/cpca_mk_cmd.c Wed Mar 15 15:33:26 2006
+@@ -586,6 +586,7 @@
+ Ptr data ;
+ short size ;
+ Ptr work ;
++ short *swork ;
+ unsigned long comSize = 0 ;
+
+ if (p && str) {
+@@ -594,7 +595,9 @@
+ if (data) {
+ work = data ;
+
+- *( ( short *)work )++ = id_val_code_set_Shift_JIS ;
++ swork = (short *)work ;
++ *swork++ = id_val_code_set_Shift_JIS ;
++ work = (Ptr)swork ;
+ memcpy( work, str, (unsigned char)str[ 0 ] + 1 ) ;
+ comSize = glue_cpcaSetJob( p,
+ Attribute,
+@@ -867,6 +870,7 @@
+ short size ;
+ Ptr data ;
+ Ptr work ;
++ unsigned short *uswork ;
+ unsigned long comSize = 0 ;
+
+ if (p) {
+@@ -877,8 +881,10 @@
+
+ *work++ = id_val_resolution_type_dpi ;
+
+- *( ( unsigned short *)work )++ = resolutionX ;
+- *( ( unsigned short *)work )++ = resolutionY ;
++ uswork = (unsigned short *)work ;
++ *uswork++ = resolutionX ;
++ *uswork++ = resolutionY ;
++ work = (Ptr)uswork ;
+
+ comSize = glue_cpcaSetDocument ( p,
+ id_att_resolution,
+@@ -1597,6 +1603,8 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaHANDLE *cpcaHANDLEp ;
++ cpcaUBYTE *cpcaUBYTEp ;
+
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+@@ -1616,9 +1624,14 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaHANDLE *)p )++ = inParam->Object1 ;
+- *( ( cpcaUBYTE *)p )++ = inParam->Mode ;
+- *( ( cpcaHANDLE *)p )++ = inParam->Object2 ;
++ cpcaHANDLEp = (cpcaHANDLE *)p ;
++ *cpcaHANDLEp++ = inParam->Object1 ;
++ cpcaUBYTEp = (cpcaUBYTE *)cpcaHANDLEp ;
++ *cpcaUBYTEp++ = inParam->Mode ;
++ cpcaHANDLEp = (cpcaHANDLE *)cpcaUBYTEp ;
++ *cpcaHANDLEp++ = inParam->Object2 ;
++ p = (Ptr)cpcaHANDLEp ;
++
+ comSize += 9;
+
+ return comSize ;
+@@ -1644,7 +1657,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
+-
++ cpcaATTRIB *cpcaATTRIBp;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = 2 + inParam->Size ;
+@@ -1661,7 +1674,9 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaATTRIB *)p )++ = inParam->Attribute ;
++ cpcaATTRIBp = (cpcaATTRIB *)p ;
++ *cpcaATTRIBp++ = inParam->Attribute ;
++ p = (Ptr)cpcaATTRIBp ;
+ if ( inParam->Data && ( inParam->Size > 0 ) )
+ {
+ memcpy( p, inParam->Data, inParam->Size ) ;
+@@ -1687,6 +1702,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaHANDLE *cpcaHANDLEp ;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = sizeof( cpcaHANDLE ) ;
+@@ -1703,7 +1719,10 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaHANDLE *)p )++ = inParam->Object ;
++ cpcaHANDLEp = (cpcaHANDLE *)p ;
++ *cpcaHANDLEp++ = inParam->Object ;
++ p = (Ptr)cpcaHANDLEp ;
++
+ comSize += paramSize ;
+
+ return comSize ;
+@@ -1723,6 +1742,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaATTRIB *cpcaATTRIBp;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = sizeof( cpcaATTRIB ) + inParam->Size ;
+@@ -1739,7 +1759,9 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaATTRIB *)p )++ = inParam->Attribute ;
++ cpcaATTRIBp = (cpcaATTRIB *)p;
++ *cpcaATTRIBp++ = inParam->Attribute ;
++ p = (Ptr)cpcaATTRIBp ;
+ if ( inParam->Data && ( inParam->Size > 0 ) )
+ {
+ memcpy( p, inParam->Data, inParam->Size ) ;
+@@ -1764,22 +1786,27 @@
+ short comSize ;
+ Ptr work ;
+ char BindName;
++ unsigned char *ucwork ;
+
+ work = p ;
+
+ /* ビンエイリアスの設定 */
+- *( ( unsigned char *)work )++ = bindInfo;
++ ucwork = (unsigned char *)work ;
++ *ucwork++ = bindInfo;
+ /* ビン番号の設定=なし(0を指定) */
+- *( ( unsigned char *)work )++ = bindNum ;
++ *ucwork++ = bindNum ;
+ /* ビン名称指定 */
+ /* null文字列指定 */
+ BindName = 0;
++ work = (Ptr)ucwork ;
+
+ memcpy( ( StringPtr )work, &BindName, 1 ) ;
+ work += 1 ;
+ /* 開始ビン、終了ビン指定 */
+- *( ( unsigned char *)work )++ = 0 ;
+- *( ( unsigned char *)work )++ = 0 ;
++ ucwork = (unsigned char *)work ;
++ *ucwork++ = 0 ;
++ *ucwork++ = 0 ;
++ work = (Ptr)ucwork ;
+ /* サイズの取得 */
+ comSize = work - p ;
+
+@@ -1803,19 +1830,24 @@
+ Ptr work ;
+ char count;
+ char str_count;
++ unsigned char *ucwork ;
++ unsigned short *uswork ;
+
+ work = p ;
+ count = 1;
+ str_count = 1;
+
+ /* Type:フィニッシング方法の設定 */
+- *( ( unsigned char *)work )++ = str_count;
++ ucwork = (unsigned char *)work ;
++ *ucwork++ = str_count;
+ /* Type:フィニッシング方法の設定 */
+- *( ( unsigned char *)work )++ = id_val_finishing_type_staple_stitching;
++ *ucwork++ = id_val_finishing_type_staple_stitching;
+ /* Count:フィニッシングを行う個数 */
+- *( ( unsigned char *)work )++ = count ;
++ *ucwork++ = count ;
+ /* Locate:フィニッシングを行う箇所 */
+- *( ( unsigned short *)work )++ = staple_val;
++ uswork = (unsigned short *)ucwork ;
++ *uswork++ = staple_val;
++ work = (Ptr)uswork ;
+ /* サイズの取得 */
+ comSize = work - p ;
+
+@@ -1839,6 +1871,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaHANDLE *cpcaHANDLEp ;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = 4 ;
+@@ -1855,7 +1888,9 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaHANDLE *)p )++ = inParam->Object ;
++ cpcaHANDLEp = (cpcaHANDLE *)p ;
++ *cpcaHANDLEp++ = inParam->Object ;
++ p = (Ptr)cpcaHANDLEp ;
+ comSize += paramSize ;
+
+ return comSize ;
+@@ -1876,7 +1911,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
+-
++ cpcaATTRIB *cpcaATTRIBp ;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = 2 + inParam->Size ;
+@@ -1893,7 +1928,9 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaATTRIB *)p )++ = inParam->Attribute ;
++ cpcaATTRIBp = (cpcaATTRIB *)p ;
++ *cpcaATTRIBp++ = inParam->Attribute ;
++ p = (Ptr)cpcaATTRIBp ;
+ if ( inParam->Data && ( inParam->Size > 0 ) )
+ {
+ memcpy( p, inParam->Data, inParam->Size ) ;
+@@ -1918,6 +1955,8 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaHANDLE *cpcaHANDLEp ;
++ cpcaUSHORT *cpcaUSHORTp ;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = 6 + inParam->Size ;
+@@ -1934,8 +1973,11 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaHANDLE *)p )++ = inParam->Object ;
+- *( ( cpcaUSHORT *)p )++ = inParam->Method ;
++ cpcaHANDLEp = (cpcaHANDLE *)p ;
++ *cpcaHANDLEp++ = inParam->Object ;
++ cpcaUSHORTp = (cpcaUSHORT *)cpcaHANDLEp ;
++ *cpcaUSHORTp++ = inParam->Method ;
++ p = (Ptr)cpcaUSHORTp ;
+ if ( inParam->Data && ( inParam->Size > 0 ) )
+ {
+ memcpy( p, inParam->Data, inParam->Size ) ;
+@@ -2075,6 +2117,7 @@
+ short paramSize ;
+ unsigned long userID ;
+ unsigned long password ;
++ cpcaUBYTE *cpcaUBYTEp ;
+
+ z_setUserInfo( userInfo, &userID, &password ) ;
+ paramSize = 1 ;
+@@ -2091,7 +2134,9 @@
+ p += comSize ;
+
+ /* 固有パラメータの設定 */
+- *( ( cpcaUBYTE *)p )++ = inParam->Code ;
++ cpcaUBYTEp = (cpcaUBYTE *)p ;
++ *cpcaUBYTEp++ = inParam->Code ;
++ p = (Ptr)cpcaUBYTEp ;
+ comSize += paramSize ;
+
+ return comSize ;
diff --git a/print/ghostscript7/files/patch-src_gdevhl12.c b/print/ghostscript7/files/patch-src_gdevhl12.c
new file mode 100644
index 000000000000..2976befa7cbe
--- /dev/null
+++ b/print/ghostscript7/files/patch-src_gdevhl12.c
@@ -0,0 +1,11 @@
+--- src/gdevhl12.c.orig Sun Aug 1 13:39:19 2004
++++ src/gdevhl12.c Sun Aug 1 13:40:07 2004
+@@ -640,7 +640,7 @@
+ case TRAY_MANUAL:
+ tray_pcl = "\033&l2H";
+ break;
+- default:
++ default: ;
+ }
+ if (pdev->PageCount == 0) {
+ /* initialize printer */
diff --git a/print/ghostscript7/files/stc740ih.upp b/print/ghostscript7/files/stc740ih.upp
new file mode 100644
index 000000000000..bb9805f55fb8
--- /dev/null
+++ b/print/ghostscript7/files/stc740ih.upp
@@ -0,0 +1,60 @@
+# $ApsCVS: src/apsfilter/uniprint/stc740ih.upp,v 1.2 2000/04/21 18:48:00 andreas Exp $
+#
+-supModel="Epson Stylus Color 740, 1440x720DpI, Inkjet Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/FSCMYK32
+-dupOutputFormat=/EscP2XY
+-r1440x720
+-dupMargins="{ 9.0 39.96 9.0 9.0}"
+-dupBlackTransfer="{
+ 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
+ 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
+ 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
+}"
+-dupCyanTransfer="{
+ 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
+ 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
+ 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
+}"
+-dupMagentaTransfer="{
+ 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
+ 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
+ 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
+}"
+-dupYellowTransfer="{
+ 0.00000000 0.00627451 0.01254902 0.02196078 0.02980392 0.03764706 0.04549020
+ 0.05490196 0.06431373 0.07215686 0.08156863 0.09098039 0.10196078 0.11450980
+ 0.12862745 0.14588235 0.16313725 0.18509804 0.20862745 0.25411765 0.40000000
+}"
+-dupOutputComponentOrder="{ 1 2 3 0 }"
+-dupWeaveXPasses=2
+-dupOutputXStep=2
+-dupWeaveYPasses=6
+-dupOutputPins=46
+-dupWeaveYFeeds="{23 23 23 23 23 23 23 23 23 23 23 23}"
+-dupWeaveXStarts="{0 1 0 1 0 1 1 0 1 0 1 0}"
+-dupWeaveYOffset=50
+-dupWeaveInitialYFeeds="{ 5 5 5 5 5 5 5 5 5 5 5 23}"
+-dupWeaveInitialXStarts="{0 1 0 1 0 1 1 0 1 0 1 0}"
+-dupWeaveInitialPins="{ 13 16 19 22 25 28 31 34 37 40 43 46}"
+-dupFormatYabsolute
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2855 0100 05
+ 1b2873 0100 02
+ 1b5501
+ 1b2865 0200 0001
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupAdjustTopMarginCommand
+-dupAdjustBottomMarginCommand
+-dupXStepCommand="<1b285c 0400 a005 0100 0000>"
+-dupEndPageCommand="(\033@\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/stc740p.upp b/print/ghostscript7/files/stc740p.upp
new file mode 100644
index 000000000000..a4e7f5441793
--- /dev/null
+++ b/print/ghostscript7/files/stc740p.upp
@@ -0,0 +1,36 @@
+# $ApsCVS: src/apsfilter/uniprint/stc740p.upp,v 1.2 2000/04/21 18:48:00 andreas Exp $
+#
+-supModel="Epson Stylus Color 740, 720x720DpI, Plain Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/FSCMYK32
+-dupOutputFormat=/EscP2
+-r720x720
+-dupMargins="{ 9.0 39.96 9.0 9.0}"
+-dupBlackTransfer="{ 0.0000 0.0453 0.1058 0.1898 0.4321 1.0000 }"
+-dupCyanTransfer="{ 0.0000 0.0453 0.1058 0.1898 0.4321 1.0000 }"
+-dupMagentaTransfer="{ 0.0000 0.0453 0.1058 0.1898 0.4321 1.0000 }"
+-dupYellowTransfer="{ 0.0000 0.0453 0.1058 0.1898 0.4321 1.0000 }"
+-dupOutputComponentOrder="{ 1 2 3 0 }"
+-dupWeaveYPasses=6
+-dupOutputPins=48
+-dupWeaveYFeeds="{47 47 47 53 47 47}"
+-dupWeaveInitialYFeeds="{1 1 1 1 1 43}"
+-dupWeaveInitialPins="{ 8 48 40 31 23 15}"
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2855 0100 05
+ 1b5500
+ 1b2865 0200 0002
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupAdjustTopMarginCommand
+-dupAdjustBottomMarginCommand
+-dupEndPageCommand="(\033@\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/stc740pl.upp b/print/ghostscript7/files/stc740pl.upp
new file mode 100644
index 000000000000..b2fdb0dbbc06
--- /dev/null
+++ b/print/ghostscript7/files/stc740pl.upp
@@ -0,0 +1,32 @@
+# $ApsCVS: src/apsfilter/uniprint/stc740pl.upp,v 1.2 2000/04/21 18:48:01 andreas Exp $
+#
+-supModel="Epson Stylus Color 740, 360x360DpI, Plain Paper"
+-sDEVICE=uniprint
+-dNOPAUSE
+-dSAFER
+-dupColorModel=/DeviceCMYKgenerate
+-dupRendering=/FSCMYK32
+-dupOutputFormat=/EscP2
+-r360x360
+-dupMargins="{ 9.0 39.96 9.0 9.0}"
+-dupOutputComponentOrder="{ 1 2 3 0 }"
+-dupWeaveYPasses=3
+-dupOutputPins=48
+-dupWeaveYFeeds="{47 50 47}"
+-dupWeaveInitialYFeeds="{1 1 46}"
+-dupWeaveInitialPins="{ 16 48 32}"
+-dupBeginPageCommand="<
+ 1b40 1b40
+ 1b2847 0100 01
+ 1b2855 0100 0A
+ 1b5500
+ 1b2865 0200 0002
+ 1b2843 0200 0000
+ 1b2863 0400 0000 0000
+>"
+-dupAdjustPageLengthCommand
+-dupAdjustTopMarginCommand
+-dupAdjustBottomMarginCommand
+-dupEndPageCommand="(\033@\014)"
+-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)"
+
diff --git a/print/ghostscript7/files/stp.contrib.mak b/print/ghostscript7/files/stp.contrib.mak
new file mode 100644
index 000000000000..862d329324ee
--- /dev/null
+++ b/print/ghostscript7/files/stp.contrib.mak
@@ -0,0 +1,14 @@
+### --------------- Gimp-Print/stp Driver ---------------------------- ###
+### Be careful to add the exact contents of this file; cut and paste ###
+### may corrupt the file and cause mysterious make errors ###
+
+stp_=$(GLOBJ)gdevstp.$(OBJ)
+
+STPLIB=gimpprint
+
+$(DD)stp.dev: $(stp_) $(DD)page.dev
+ $(SETPDEV) $(DD)stp $(stp_)
+ $(ADDMOD) $(DD)stp -lib $(STPLIB)
+
+$(GLOBJ)gdevstp.$(OBJ) : $(GLSRC)gdevstp.c $(PDEVH)
+ $(GLCC) $(GLO_)gdevstp.$(OBJ) $(C_) $(GLSRC)gdevstp.c
diff --git a/print/ghostscript7/pkg-descr b/print/ghostscript7/pkg-descr
new file mode 100644
index 000000000000..dac9b390920a
--- /dev/null
+++ b/print/ghostscript7/pkg-descr
@@ -0,0 +1,24 @@
+Ghostscript is the well-known PostScript interpreter which is available for
+all common and most esoteric platforms and supports many different printers
+and some displays.
+
+This is distributed with the GNU General Public License, which allows
+free use, and free copying and redistribution under certain conditions
+(including, in some cases, commercial distribution).
+
+This port includes add-on packages (not part of the official gs release)
+ o HP8XX driver for HP DeskJet 880C/882C/895C
+ - http://www.gelhaus.net/hp880c/
+ o DJ970 driver for HP DeskJet 970CXi
+ - http://www.harsch.net/Ghostscript/ghostscript.html
+ o PCL3 driver for HP DeskJet series
+ - http://home.vrweb.de/martin.lottermoser/pcl3.html
+ o Gimp-Print driver for Canon/Epson/Lexmark/HP printers
+ - http://gimp-print.sourceforge.net/
+ o Special drivers for verious printer models
+ - Alps, Canon, Epson, NEC, Lexmark, Ricoh,...
+ o Additional contributed uniprint driver profiles for
+ - Epson Stylus Color 740 and Epson LQ-1170
+
+WWW: http://www.cs.wisc.edu/~ghost/doc/gnu/index.htm
+ http://www.ghostscript.com/
diff --git a/print/ghostscript7/pkg-message b/print/ghostscript7/pkg-message
new file mode 100644
index 000000000000..115b08862564
--- /dev/null
+++ b/print/ghostscript7/pkg-message
@@ -0,0 +1,4 @@
+Note: in order to use the script dvipdf, dvips must be installed.
+This program may be provided by either print/dvips or print/dvipsk-tetex
+(print/dvipsk-tetex may be preferable since it doesn't conflict with
+tetex things).
diff --git a/print/ghostscript7/pkg-plist b/print/ghostscript7/pkg-plist
new file mode 100644
index 000000000000..99e4e9eff78a
--- /dev/null
+++ b/print/ghostscript7/pkg-plist
@@ -0,0 +1,370 @@
+bin/bdftops
+bin/dvipdf
+bin/eps2eps
+%%GS_epag%%bin/ert
+bin/fixmswrd.pl
+bin/font2c
+bin/gs
+bin/gsbj
+%%SHLIB%%bin/gsc
+bin/gsdj
+bin/gsdj500
+bin/gslj
+bin/gslp
+bin/gsnd
+%%SHLIB%%bin/gsx
+bin/lprsetup.sh
+%%X11%%%%GS_pcl3%%bin/pcl3opts
+bin/pdf2dsc
+bin/pdf2ps
+bin/pdfopt
+bin/pf2afm
+bin/pfbtopfa
+bin/pj-gs.sh
+bin/printafm
+bin/ps2ascii
+bin/ps2epsi
+bin/ps2pdf
+bin/ps2pdf12
+bin/ps2pdf13
+bin/ps2pdf14
+bin/ps2pdfwr
+bin/ps2ps
+bin/pv.sh
+bin/sysvlp.sh
+bin/unix-lpr.sh
+bin/wftopfa
+man/man1/ansi2knr.1.gz
+man/man1/dvipdf.1.gz
+man/man1/eps2eps.1.gz
+man/man1/font2c.1.gz
+man/man1/gs.1.gz
+man/man1/gsbj.1.gz
+man/man1/gsdj.1.gz
+man/man1/gsdj500.1.gz
+man/man1/gslj.1.gz
+man/man1/gslp.1.gz
+man/man1/gsnd.1.gz
+man/man1/pdf2dsc.1.gz
+man/man1/pdf2ps.1.gz
+man/man1/pdfopt.1.gz
+man/man1/pf2afm.1.gz
+man/man1/pfbtopfa.1.gz
+man/man1/printafm.1.gz
+man/man1/ps2ascii.1.gz
+man/man1/ps2epsi.1.gz
+man/man1/ps2pdf.1.gz
+man/man1/ps2pdf12.1.gz
+man/man1/ps2pdf13.1.gz
+man/man1/ps2pdfwr.1.gz
+man/man1/ps2ps.1.gz
+man/man1/wftopfa.1.gz
+%%SHLIB%%lib/libgs.so
+%%SHLIB%%lib/libgs.so.%%SHLIB_VER%%
+%%DATADIR%%/%%GS_VERSION%%/doc/API.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/C-style.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/CJK.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/CJKTTCID.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Changes.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Current.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/DLL.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Develop.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Devices.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Drivers.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Fonts.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Helpers.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Hershey.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History1.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History2.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History3.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History4.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History5.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History6.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/History7.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Htmstyle.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Humor.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Install.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Issues.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Language.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Lib.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Maintain.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Make.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/New-user.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/News.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Projects.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Ps-style.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Ps2epsi.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Ps2pdf.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Psfiles.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/README
+%%DATADIR%%/%%GS_VERSION%%/doc/Readme.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Release.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Source.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Unix-lpr.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Use.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/Xfonts.htm
+%%DATADIR%%/%%GS_VERSION%%/doc/gs.css
+%%DATADIR%%/%%GS_VERSION%%/doc/index.html
+%%DATADIR%%/%%GS_VERSION%%/examples/alphabet.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/all_ac1.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/all_ag1.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/all_aj1.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/all_aj2.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/all_ak1.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/gscjk_ac.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/gscjk_ag.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/gscjk_aj.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/gscjk_ak.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/cjk/iso2022.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/colorcir.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/doretree.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/escher.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/golfer.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/grayalph.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/ridt91.eps
+%%DATADIR%%/%%GS_VERSION%%/examples/snowflak.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/tiger.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/vasarely.ps
+%%DATADIR%%/%%GS_VERSION%%/examples/waterfal.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.ARP
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.Bae
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.CJK
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.Koc
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.Ore
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.Sol
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.Win
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.b5
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.gb
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.ksx
+%%DATADIR%%/%%GS_VERSION%%/lib/CIDFnmap.sj
+%%DATADIR%%/%%GS_VERSION%%/lib/Fontmap
+%%DATADIR%%/%%GS_VERSION%%/lib/Fontmap.GS
+%%DATADIR%%/%%GS_VERSION%%/lib/acctest.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/addxchar.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/align.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/bdftops.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8.rpd
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8gc12f.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8hg12f.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8oh06n.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8pa06n.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8pp12f.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bj8ts06n.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a0.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a1.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a2.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a3.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a4.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a5.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a6.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a7.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610a8.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b1.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b2.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b3.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b4.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b6.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b7.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/bjc610b8.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/caption.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/cbjc600.ppd
+%%DATADIR%%/%%GS_VERSION%%/lib/cbjc800.ppd
+%%DATADIR%%/%%GS_VERSION%%/lib/cdj550.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/cdj690.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/cdj690ec.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/cid2code.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/decrypt.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/dmp_init.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/dmp_site.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/dnj750c.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/dnj750m.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/docie.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/escp_24.src
+%%DATADIR%%/%%GS_VERSION%%/lib/errpage.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/font2c.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/font2pcl.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_agl.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_btokn.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_ccfnt.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_ce_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_cff.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_cidcm.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_cidfn.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_cmap.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_cmdl.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_css_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dbt_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_diskf.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dpnxt.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dps.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dps1.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dps2.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_dscp.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_epsf.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_fform.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_fonts.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_frsd.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_icc.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_il1_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_il2_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_init.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_kanji.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_ksb_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_l.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_l.xpm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_l2img.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_l_m.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_lev2.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_lgo_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_lgx_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_ll3.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_m.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_m.xpm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_m_m.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_mex_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_mgl_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_mro_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_pdf_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_pdfwr.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_pfile.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_rdlin.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_res.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_s.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_s.xpm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_s_m.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_setpd.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_statd.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_std_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_sym_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_t.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_t.xpm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_t_m.xbm
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_trap.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_ttf.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_typ32.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_typ42.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_type1.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_wan_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_wl1_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_wl2_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gs_wl5_e.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gslp.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/gsnup.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ht_ccsto.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/image-qa.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/impath.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/jispaper.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/landscap.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/level1.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/lines.ps
+%%GS_dmprt%%%%DATADIR%%/%%GS_VERSION%%/lib/lqx70ch.upp
+%%GS_dmprt%%%%DATADIR%%/%%GS_VERSION%%/lib/lqx70cl.upp
+%%GS_dmprt%%%%DATADIR%%/%%GS_VERSION%%/lib/lqx70cm.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/markhint.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/markpath.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/necp2x.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/necp2x6.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/packfile.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pcharstr.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf2dsc.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_base.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_draw.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_font.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_main.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_ops.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdf_sec.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdfopt.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pdfwrite.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pf2afm.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/pfbtopfa.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ppath.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/prfont.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/printafm.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ps2ai.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ps2ascii.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ps2epsi.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/quit.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/ras1.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/ras24.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/ras3.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/ras32.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/ras4.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/ras8m.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/rollconv.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/showchar.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/showpage.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/st640ih.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/st640ihg.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/st640p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/st640pg.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/st640pl.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/st640plg.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc1520h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc2.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc200_h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc2_h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc2s_h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc300.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc300bl.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc300bm.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc500p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc500ph.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc600ih.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc600p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc600pl.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc640p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc740ih.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc740p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc740pl.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc800ih.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc800p.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc800pl.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc_h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stc_l.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stcany.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stcany_h.upp
+%%DATADIR%%/%%GS_VERSION%%/lib/stcinfo.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/stcolor.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/stocht.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/traceimg.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/traceop.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/type1enc.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/type1ops.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/uninfo.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/unprot.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewcmyk.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewgif.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewjpeg.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewmiff.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewpbm.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewpcx.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/viewps2a.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/wftopfa.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/winmaps.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/wrfont.ps
+%%DATADIR%%/%%GS_VERSION%%/lib/zeroline.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/BUGS
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/NEWS
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/README
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/calign.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/dumppdd.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/example.mcf
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/if-pcl3
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/levels-test.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-A4.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-A4Rotated.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-Env10Rotated.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-EnvDLRotated.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-Letter.ps
+%%GS_pcl3%%%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-LetterRotated.ps
+%%GS_pcl3%%@dirrm %%DATADIR%%/%%GS_VERSION%%/pcl3
+%%GS_pcl3%%man/man1/gs-pcl3.1.gz
+%%GS_pcl3%%man/man1/pcl3opts.1.gz
+@dirrm %%DATADIR%%/%%GS_VERSION%%/lib
+@dirrm %%DATADIR%%/%%GS_VERSION%%/examples/cjk
+@dirrm %%DATADIR%%/%%GS_VERSION%%/examples
+@dirrm %%DATADIR%%/%%GS_VERSION%%/doc
+@dirrm %%DATADIR%%/%%GS_VERSION%%
+@dirrmtry %%DATADIR%%