svn commit: r316980 - in head/print/ghostscript7: . files

Hiroki Sato hrs at FreeBSD.org
Wed May 1 02:45:17 UTC 2013


Author: hrs
Date: Wed May  1 02:45:12 2013
New Revision: 316980
URL: http://svnweb.freebsd.org/changeset/ports/316980

Log:
  Fix issues on 64-bit platforms.

Added:
  head/print/ghostscript7/files/patch-src-gsalloc.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-gxclrast.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-gxfixed.h   (contents, props changed)
  head/print/ghostscript7/files/patch-src-ibnum.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-ibnum.h   (contents, props changed)
  head/print/ghostscript7/files/patch-src-idebug.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-idparam.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iparam.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iref.h   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iscan.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iscanbin.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iscannum.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-iutil.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zarith.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zcontrol.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zdict.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zdps.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zfunc4.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zgeneric.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-ziodev.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zmath.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-zstack.c   (contents, props changed)
  head/print/ghostscript7/files/patch-src-ztype.c   (contents, props changed)
Modified:
  head/print/ghostscript7/Makefile
  head/print/ghostscript7/pkg-descr

Modified: head/print/ghostscript7/Makefile
==============================================================================
--- head/print/ghostscript7/Makefile	Tue Apr 30 23:57:37 2013	(r316979)
+++ head/print/ghostscript7/Makefile	Wed May  1 02:45:12 2013	(r316980)
@@ -3,7 +3,7 @@
 
 PORTNAME=	ghostscript
 PORTVERSION=	7.07
-PORTREVISION=	26
+PORTREVISION=	27
 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 \
@@ -13,8 +13,8 @@ MASTER_SITE_SUBDIR= \
 		./:ports_jp
 PKGNAMESUFFIX=	7
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX}:gs_srcs
-EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 DIST_SUBDIR=	${PORTNAME}
+EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 
 MAINTAINER=	doceng at FreeBSD.org
 COMMENT=	Ghostscript 7.x PostScript interpreter
@@ -97,7 +97,6 @@ XCFLAGS+=	-DA4
 CONTRIB_UPP=	lqx70ch.upp lqx70cl.upp lqx70cm.upp \
 		stc740ih.upp stc740p.upp stc740pl.upp
 
-
 .if ${PORT_OPTIONS:MX11}
 MAKE_ENV+=	GS_SHLIB_VER="${SHLIB_VER}"
 SHLIB_VER=	1

Added: head/print/ghostscript7/files/patch-src-gsalloc.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-gsalloc.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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;

Added: head/print/ghostscript7/files/patch-src-gxclrast.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-gxclrast.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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;
+ }

Added: head/print/ghostscript7/files/patch-src-gxfixed.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-gxfixed.h	Wed May  1 02:45:12 2013	(r316980)
@@ -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)

Added: head/print/ghostscript7/files/patch-src-ibnum.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-ibnum.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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

Added: head/print/ghostscript7/files/patch-src-ibnum.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-ibnum.h	Wed May  1 02:45:12 2013	(r316980)
@@ -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 */

Added: head/print/ghostscript7/files/patch-src-idebug.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-idebug.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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");

Added: head/print/ghostscript7/files/patch-src-idparam.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-idparam.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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 */

Added: head/print/ghostscript7/files/patch-src-iparam.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iparam.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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) {

Added: head/print/ghostscript7/files/patch-src-iref.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iref.h	Wed May  1 02:45:12 2013	(r316980)
@@ -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;

Added: head/print/ghostscript7/files/patch-src-iscan.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iscan.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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),

Added: head/print/ghostscript7/files/patch-src-iscanbin.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iscanbin.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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)
+ 		    )

Added: head/print/ghostscript7/files/patch-src-iscannum.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iscannum.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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)) {

Added: head/print/ghostscript7/files/patch-src-iutil.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-iutil.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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);

Added: head/print/ghostscript7/files/patch-src-zarith.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zarith.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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

Added: head/print/ghostscript7/files/patch-src-zcontrol.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zcontrol.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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 */

Added: head/print/ghostscript7/files/patch-src-zdict.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zdict.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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);

Added: head/print/ghostscript7/files/patch-src-zdps.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zdps.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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);

Added: head/print/ghostscript7/files/patch-src-zfunc4.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zfunc4.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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;

Added: head/print/ghostscript7/files/patch-src-zgeneric.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zgeneric.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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 */

Added: head/print/ghostscript7/files/patch-src-ziodev.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-ziodev.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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);

Added: head/print/ghostscript7/files/patch-src-zmath.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zmath.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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.

Added: head/print/ghostscript7/files/patch-src-zstack.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-zstack.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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;
+ 

Added: head/print/ghostscript7/files/patch-src-ztype.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/ghostscript7/files/patch-src-ztype.c	Wed May  1 02:45:12 2013	(r316980)
@@ -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:
+ 		{

Modified: head/print/ghostscript7/pkg-descr
==============================================================================
--- head/print/ghostscript7/pkg-descr	Tue Apr 30 23:57:37 2013	(r316979)
+++ head/print/ghostscript7/pkg-descr	Wed May  1 02:45:12 2013	(r316980)
@@ -6,9 +6,6 @@ This is distributed with the GNU General
 free use, and free copying and redistribution under certain conditions
 (including, in some cases, commercial distribution).
 
-This is the older version 7, for those that can't (or don't want to) use
-the newer Ghostscript version 8.
-
 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/


More information about the svn-ports-all mailing list