From owner-ports-jp@jp.FreeBSD.org Thu Jan 17 02:13:46 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g0GHDkM78203;
	Thu, 17 Jan 2002 02:13:46 +0900 (JST)
	(envelope-from owner-ports-jp@jp.FreeBSD.org)
Received: from serio.al.rim.or.jp (serio.al.rim.or.jp [202.247.191.123])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id g0GHDkm78198
	for <ports-jp@jp.FreeBSD.org>; Thu, 17 Jan 2002 02:13:46 +0900 (JST)
	(envelope-from tnakai@yo.rim.or.jp)
Received: from mail3.rim.or.jp
	by serio.al.rim.or.jp (3.7W/HMX-13) id CAA14311
	for <ports-jp@jp.FreeBSD.org>; Thu, 17 Jan 2002 02:13:46 +0900 (JST)
Received: from miyu.takamagahara.net.yo.rim.or.jp (tcatgi002233.adsl.ppp.infoweb.ne.jp [61.210.68.233]) by mail3.rim.or.jp (8.9.3/3.7W)
	id CAA08216 for <ports-jp@jp.FreeBSD.org>; Thu, 17 Jan 2002 02:13:45 +0900 (JST)
Message-Id: <200201161713.CAA08216@mail3.rim.or.jp>
To: ports-jp@jp.FreeBSD.org
References: <20020114223040.229D946EE7@edison.ee.t.u-tokyo.ac.jp>
 <20020115235057.1.21333.qmail@ma2.justnet.ne.jp>
From: tnakai@yo.rim.or.jp (tnakai@yo.rim.or.jp)
Date: 17 Jan 2002 02:13:36 +0900
In-Reply-To: <20020115235057.1.21333.qmail@ma2.justnet.ne.jp>
 (MITA Yoshio's message of "Tue, 15 Jan 2002 23:50:57 +0900")
Lines: 2208
User-Agent: T-gnus/6.14.6 (based on Gnus v5.8.8) (revision 04) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386--freebsd) MULE/4.0 (HANANOEN)
MIME-Version: 1.0 (split by SEMI 1.13.7 - "Awazu")
Content-Type: message/partial; id="Thu_Jan_17_02:13:36_2002@miyu.takamagahara.net"; number=3; total=3
Reply-To: ports-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+011218
X-Sequence: ports-jp 12188
Subject: [ports-jp 12188] Re: print/ghostscript-cjk (3/3)
Errors-To: owner-ports-jp@jp.FreeBSD.org
Sender: owner-ports-jp@jp.FreeBSD.org
X-Originator: tnakai@miyu.takamagahara.net

+-	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 -ruN ghostscript-cjk/files/patch-gdevmjc.mak ghostscript-cjk.new/files/patch-gdevmjc.mak
--- ghostscript-cjk/files/patch-gdevmjc.mak	Thu Jan  1 09:00:00 1970
+++ ghostscript-cjk.new/files/patch-gdevmjc.mak	Thu Jan 17 01:09:26 2002
@@ -0,0 +1,43 @@
+--- gdevmjc-0.8/gdevmjc.mak.orig	Tue May 23 19:19:13 2000
++++ gdevmjc-0.8/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 -ruN ghostscript-cjk/scripts/configure ghostscript-cjk.new/scripts/configure
--- ghostscript-cjk/scripts/configure	Thu Jan 17 00:47:07 2002
+++ ghostscript-cjk.new/scripts/configure	Thu Jan 17 01:49:48 2002
@@ -9,6 +9,12 @@
 file format drivers. The gs5 default drivers are preselected. \n\
 Have fun with this new configuration style !     -andreas \n\n\
   Please choose options by pressing SPACE to TOGGLE an option ON/OFF ?" -1 -1 9\
+  "mjc180"   "Epson MachJet series  180dpi, CMYK" ON \
+  "mjc360"   "Epson MachJet series  360dpi, CMYK" ON \
+  "mjc720"   "Epson MachJet series  720dpi, CMYK" ON \
+  "mj500c"   "Epson MachJet MJ-500C 360dpi, CMY or mono" ON \
+  "md2k"     "ALPS MD2000/2010/4000/1300/1500/5000 driver" ON \
+  "md5k"     "ALPS MD5000 driver" ON \
   "md50Mono" "ALPS MD-5000 Monochrome [ALPS]" ON \
   "md50Eco"  "ALPS MD-5000 Eco Mode [ALPS]" ON \
   "md1xMono" "ALPS MD-1x Monochrome [ALPS]" ON \
@@ -18,6 +24,8 @@
   "iwlq"     "Apple Imagewriter LQ in 320 x 216 dpi mode" OFF \
   "hl7x0"    "Brother HL720 and HL730 (HL760=PCL), MFC6550MC Fax Machine" OFF \
   "bj10e"    "Canon BubbleJet BJ10e" ON \
+  "bj10v"    "Canon BubbleJet BJ10v" ON \
+  "bj10vh"   "Canon BubbleJet BJ10vh" ON \
   "bj200"    "Canon BubbleJet BJ200 and BJC-240(b&w)" ON \
   "bjc600"   "Canon Color BJC-600/4xxx/70 + Apple StyleWriter 2x00" ON \
   "bjc800"   "Canon Color BubbleJet BJC-240/800" ON \
