diff options
Diffstat (limited to 'print/ghostscript7/files/patch-src-ibnum.c')
-rw-r--r-- | print/ghostscript7/files/patch-src-ibnum.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/print/ghostscript7/files/patch-src-ibnum.c b/print/ghostscript7/files/patch-src-ibnum.c new file mode 100644 index 0000000..2df0a7d --- /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 |