summaryrefslogtreecommitdiff
path: root/print/ghostscript-gpl
diff options
context:
space:
mode:
authorJun Kuriyama <kuriyama@FreeBSD.org>2002-04-03 03:01:26 +0000
committerJun Kuriyama <kuriyama@FreeBSD.org>2002-04-03 03:01:26 +0000
commita753bb98f57aa12a62222c6f07294aaabb27f391 (patch)
tree8c14c07bdb6f3fb3bf883c9220612157c7448bdc /print/ghostscript-gpl
parentUpdate to 7.04. (diff)
Update to 7.04.
Modifications against PR are: o $MASTER_SITES substitution. o Typo in scripts/configure. PR: ports/36673 Submitted by: KATO Tsuguru <tkato@prontomail.com>
Diffstat (limited to 'print/ghostscript-gpl')
-rw-r--r--print/ghostscript-gpl/files/gdi.contrib.mak12
-rw-r--r--print/ghostscript-gpl/files/patch-alps:gdevalps.mak25
-rw-r--r--print/ghostscript-gpl/files/patch-eplaser:gdevescv.c43
-rw-r--r--print/ghostscript-gpl/files/patch-eplaser:gdevesmv.c43
-rw-r--r--print/ghostscript-gpl/files/patch-gdev10v:gdev10v.mak22
-rw-r--r--print/ghostscript-gpl/files/patch-lib:gs_res.ps13
-rw-r--r--print/ghostscript-gpl/files/patch-lips:gdevlips.mak18
-rw-r--r--print/ghostscript-gpl/files/patch-md2k:gdevmd2k.mak19
-rw-r--r--print/ghostscript-gpl/files/patch-mjc:gdevmjc.c335
-rw-r--r--print/ghostscript-gpl/files/patch-mjc:gdevmjc.mak43
-rw-r--r--print/ghostscript-gpl/files/patch-src:dmp_site.ps10
-rw-r--r--print/ghostscript-gpl/files/patch-src:gdevdmpr.c11
-rw-r--r--print/ghostscript-gpl/files/patch-src:gdevdmpr.mak21
-rw-r--r--print/ghostscript-gpl/files/patch-src:gdevgdi.c19
-rw-r--r--print/ghostscript-gpl/files/patch-src:gdevlbp8.c70
-rw-r--r--print/ghostscript-gpl/files/patch-src:unix-dll.mak59
16 files changed, 763 insertions, 0 deletions
diff --git a/print/ghostscript-gpl/files/gdi.contrib.mak b/print/ghostscript-gpl/files/gdi.contrib.mak
new file mode 100644
index 000000000000..808b7fb71935
--- /dev/null
+++ b/print/ghostscript-gpl/files/gdi.contrib.mak
@@ -0,0 +1,12 @@
+### ---------------- The Samsung SmartGDI laser printer devices --------- ###
+### Note : this driver is used by Samsung SmartGDI compatible printers. ###
+###
+
+GDIMONO=$(GLOBJ)gdevgdi.$(OBJ) $(HPPCL)
+
+$(GLOBJ)gdevgdi.$(OBJ): $(GLSRC)gdevgdi.c $(PDEVH) $(gsparam_h)
+ $(GLCC) $(GLO_)gdevgdi.$(OBJ) $(C_) $(GLSRC)gdevgdi.c
+
+$(DD)gdi.dev: $(GDIMONO) $(DD)page.dev
+ $(SETPDEV) $(DD)gdi $(GDIMONO)
+
diff --git a/print/ghostscript-gpl/files/patch-alps:gdevalps.mak b/print/ghostscript-gpl/files/patch-alps:gdevalps.mak
new file mode 100644
index 000000000000..45144eaadcfd
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-eplaser:gdevescv.c b/print/ghostscript-gpl/files/patch-eplaser:gdevescv.c
new file mode 100644
index 000000000000..b1b6fc57f0c0
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-eplaser:gdevescv.c
@@ -0,0 +1,43 @@
+--- eplaser/gdevescv.c.orig Fri Dec 21 15:50:22 2001
++++ eplaser/gdevescv.c Fri Mar 15 04:27:39 2002
+@@ -1760,13 +1760,13 @@
+
+ /* Process the next piece of an image. */
+ private int
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ escv_image_plane_data(gx_image_enum_common_t *info, const gx_image_plane_t *planes, int height, int *rows_used)
+ #else
+ escv_image_plane_data(gx_device *dev, gx_image_enum_common_t *info, const gx_image_plane_t *planes, int height)
+ #endif
+ {
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ gx_device *dev = info->dev;
+ #endif
+ gx_device_vector *const vdev = (gx_device_vector *) dev;
+@@ -1784,7 +1784,7 @@
+
+ {
+
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ if (height == 260)
+ height = 1;
+ #endif
+@@ -1922,13 +1922,13 @@
+
+
+ private int
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ escv_image_end_image(gx_image_enum_common_t * info, bool draw_last)
+ #else
+ escv_image_end_image(gx_device *dev, gx_image_enum_common_t * info, bool draw_last)
+ #endif
+ {
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ gx_device *dev = info->dev;
+ #endif
+ gx_device_vector *const vdev = (gx_device_vector *) dev;
diff --git a/print/ghostscript-gpl/files/patch-eplaser:gdevesmv.c b/print/ghostscript-gpl/files/patch-eplaser:gdevesmv.c
new file mode 100644
index 000000000000..8764eb63292f
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-eplaser:gdevesmv.c
@@ -0,0 +1,43 @@
+--- eplaser/gdevesmv.c.orig Fri Dec 14 10:50:14 2001
++++ eplaser/gdevesmv.c Fri Mar 15 04:28:41 2002
+@@ -1799,13 +1799,13 @@
+
+ /* Process the next piece of an image. */
+ private int
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ esmv_image_plane_data(gx_image_enum_common_t *info, const gx_image_plane_t *planes, int height, int *rows_used)
+ #else
+ esmv_image_plane_data(gx_device *dev, gx_image_enum_common_t *info, const gx_image_plane_t *planes, int height)
+ #endif
+ {
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ gx_device *dev = info->dev;
+ #endif
+ gx_device_vector *const vdev = (gx_device_vector *) dev;
+@@ -1823,7 +1823,7 @@
+
+ {
+
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ if (height == 260)
+ height = 1;
+ #endif
+@@ -1980,13 +1980,13 @@
+
+
+ private int
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ esmv_image_end_image(gx_image_enum_common_t * info, bool draw_last)
+ #else
+ esmv_image_end_image(gx_device * dev, gx_image_enum_common_t * info, bool draw_last)
+ #endif
+ {
+-#if GS_VERSION_MAJOR == 6
++#if GS_VERSION_MAJOR >= 6
+ gx_device *dev = info->dev;
+ #endif
+ gx_device_vector *const vdev = (gx_device_vector *) dev;
diff --git a/print/ghostscript-gpl/files/patch-gdev10v:gdev10v.mak b/print/ghostscript-gpl/files/patch-gdev10v:gdev10v.mak
new file mode 100644
index 000000000000..25a8317379b8
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-lib:gs_res.ps b/print/ghostscript-gpl/files/patch-lib:gs_res.ps
new file mode 100644
index 000000000000..2e5169720649
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-lips:gdevlips.mak b/print/ghostscript-gpl/files/patch-lips:gdevlips.mak
new file mode 100644
index 000000000000..06630057330c
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-lips:gdevlips.mak
@@ -0,0 +1,18 @@
+--- lips/gdevlips.mak.orig Thu Nov 2 12:12:13 2000
++++ lips/gdevlips.mak Wed Feb 13 07:29:36 2002
+@@ -43,15 +43,6 @@
+ $(GLOBJ)lp2000.dev: $(escpage_) $(DD)page.dev
+ $(SETPDEV) $(DD)lp2000 $(escpage_)
+
+-### --- The NEC NPDL language printer device ------ ###
+-
+-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
+-
+-$(GLOBJ)npdl.dev: $(npdl_) $(DD)page.dev
+- $(SETPDEV) $(DD)npdl $(npdl_)
+-
+ ### --- The RICOH RPDL language printer device ------ ###
+
+ rpdl_=$(GLOBJ)gdevrpdl.$(OBJ) $(GLOBJ)gdevlprn.$(OBJ)
diff --git a/print/ghostscript-gpl/files/patch-md2k:gdevmd2k.mak b/print/ghostscript-gpl/files/patch-md2k:gdevmd2k.mak
new file mode 100644
index 000000000000..b003efb81f7f
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-mjc:gdevmjc.c b/print/ghostscript-gpl/files/patch-mjc:gdevmjc.c
new file mode 100644
index 000000000000..99ff0bcb245f
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-mjc:gdevmjc.mak b/print/ghostscript-gpl/files/patch-mjc:gdevmjc.mak
new file mode 100644
index 000000000000..a094ea08812f
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-src:dmp_site.ps b/print/ghostscript-gpl/files/patch-src:dmp_site.ps
new file mode 100644
index 000000000000..ee1a5717d641
--- /dev/null
+++ b/print/ghostscript-gpl/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%%/%%GS_VERSION%%/lib/escp_24.src)
+ % horizontal / vertical
+ % /resolution [ 160.0 180.0 ]
+ % horizontal / vertical
diff --git a/print/ghostscript-gpl/files/patch-src:gdevdmpr.c b/print/ghostscript-gpl/files/patch-src:gdevdmpr.c
new file mode 100644
index 000000000000..05e3bb12dc13
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-src:gdevdmpr.mak b/print/ghostscript-gpl/files/patch-src:gdevdmpr.mak
new file mode 100644
index 000000000000..9136172873fa
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-src:gdevdmpr.mak
@@ -0,0 +1,21 @@
+--- src/gdevdmpr.mak.orig Mon May 1 20:24:43 2000
++++ src/gdevdmpr.mak Mon May 1 20:26:23 2000
+@@ -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): $(GLSRC)dviprlib.c $(GLSRC)dviprlib.h
++ $(GLCC) $(GLO_)dviprlib.$(OBJ) $(C_) $(GLSRC)dviprlib.c
diff --git a/print/ghostscript-gpl/files/patch-src:gdevgdi.c b/print/ghostscript-gpl/files/patch-src:gdevgdi.c
new file mode 100644
index 000000000000..15f7c66b85ee
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-src:gdevgdi.c
@@ -0,0 +1,19 @@
+--- src/gdevgdi.c.orig Fri Feb 9 04:51:11 2001
++++ src/gdevgdi.c Tue Aug 21 11:17:56 2001
+@@ -24,6 +24,7 @@
+ /* SAMSUNG GDI driver for Ghostscript */
+ #include "gdevprn.h"
+ #include "gdevpcl.h"
++#include "gsparam.h"
+
+
+ /*
+@@ -126,7 +127,7 @@
+ private int
+ gdi_open(gx_device *pdev)
+ { /* Change the margins if necessary. */
+- const float _ds *m = 0;
++ const float *m = 0;
+ bool move_origin = true;
+
+ static const float m_a4[4] = { GDI_MARGINS_A4 };
diff --git a/print/ghostscript-gpl/files/patch-src:gdevlbp8.c b/print/ghostscript-gpl/files/patch-src:gdevlbp8.c
new file mode 100644
index 000000000000..052492c58f6a
--- /dev/null
+++ b/print/ghostscript-gpl/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/ghostscript-gpl/files/patch-src:unix-dll.mak b/print/ghostscript-gpl/files/patch-src:unix-dll.mak
new file mode 100644
index 000000000000..2ee0a5c3a0d1
--- /dev/null
+++ b/print/ghostscript-gpl/files/patch-src:unix-dll.mak
@@ -0,0 +1,59 @@
+--- src/unix-dll.mak.orig Wed Oct 17 19:11:23 2001
++++ src/unix-dll.mak Sat Feb 9 04:53:18 2002
+@@ -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)\
+@@ -106,11 +100,9 @@
+ -mkdir $(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)
++ $(INSTALL_PROGRAM) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR) $(libdir)/$(GS_SONAME_MAJOR)
+ $(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)
++ ln -s $(GS_SONAME_MAJOR) $(libdir)/$(GS_SONAME)
+
+ soinstall: install-so install-scripts install-data
+