summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/numbers.c
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2014-09-15 09:43:03 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2014-09-15 09:43:03 +0000
commit3e926073114d4f044bcc02ba243023dea4aafa97 (patch)
treed02e671c23d15b0d0ee6e1cbf4086c6c3fe4a6ad /Build/source/texk/dvipdfm-x/numbers.c
parentac391ad3f024072af6dbc29e6242e01626fa68e3 (diff)
texk/dvipdfm-x: General cleanup: No reason to use long for 32-bit integers
git-svn-id: svn://tug.org/texlive/trunk@35176 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipdfm-x/numbers.c')
-rw-r--r--Build/source/texk/dvipdfm-x/numbers.c147
1 files changed, 72 insertions, 75 deletions
diff --git a/Build/source/texk/dvipdfm-x/numbers.c b/Build/source/texk/dvipdfm-x/numbers.c
index f5c4b6112e0..37a0f3d7c30 100644
--- a/Build/source/texk/dvipdfm-x/numbers.c
+++ b/Build/source/texk/dvipdfm-x/numbers.c
@@ -29,123 +29,120 @@
#include "mfileio.h"
#include "numbers.h"
-UNSIGNED_BYTE get_unsigned_byte (FILE *file)
+unsigned char get_unsigned_byte (FILE *file)
{
int ch;
if ((ch = fgetc (file)) < 0)
ERROR ("File ended prematurely\n");
- return (UNSIGNED_BYTE) ch;
+ return (unsigned char) ch;
}
void skip_bytes (unsigned int n, FILE *file)
{
- while (n > 0) {
+ while (n-- > 0)
get_unsigned_byte(file);
- n--;
- }
}
-SIGNED_BYTE get_signed_byte (FILE *file)
+signed char get_signed_byte (FILE *file)
{
int byte;
byte = get_unsigned_byte(file);
if (byte >= 0x80)
byte -= 0x100;
- return (SIGNED_BYTE) byte;
+ return (signed char) byte;
}
-UNSIGNED_PAIR get_unsigned_pair (FILE *file)
+unsigned short get_unsigned_pair (FILE *file)
{
- int i;
- UNSIGNED_BYTE byte;
- UNSIGNED_PAIR pair = 0;
- for (i=0; i<2; i++) {
- byte = get_unsigned_byte(file);
- pair = pair*0x100u + byte;
- }
+ unsigned short pair = get_unsigned_byte(file);
+ pair = (pair << 8) | get_unsigned_byte(file);
return pair;
}
-UNSIGNED_PAIR sget_unsigned_pair (unsigned char *s)
+unsigned short sget_unsigned_pair (unsigned char *s)
{
- int i;
- UNSIGNED_BYTE byte;
- UNSIGNED_PAIR pair = 0;
- for (i=0; i<2; i++) {
- byte = *(s++);
- pair = pair*0x100u + byte;
- }
+ unsigned short pair = *(s++);
+ pair = (pair << 8) | *(s++);
return pair;
}
-SIGNED_PAIR get_signed_pair (FILE *file)
+signed short get_signed_pair (FILE *file)
{
- int i;
- long pair = 0;
- for (i=0; i<2; i++) {
- pair = pair*0x100 + get_unsigned_byte(file);
- }
- if (pair >= 0x8000) {
- pair -= 0x10000l;
- }
- return (SIGNED_PAIR) pair;
+ signed short pair = get_signed_byte(file);
+ pair = (pair << 8) | get_unsigned_byte(file);
+ return pair;
}
-UNSIGNED_TRIPLE get_unsigned_triple(FILE *file)
+unsigned int get_unsigned_triple(FILE *file)
{
int i;
- long triple = 0;
+ unsigned int triple = 0;
for (i=0; i<3; i++) {
- triple = triple*0x100u + get_unsigned_byte(file);
+ triple = (triple << 8) | get_unsigned_byte(file);
}
- return (UNSIGNED_TRIPLE) triple;
+ return triple;
}
-SIGNED_TRIPLE get_signed_triple(FILE *file)
+signed int get_signed_triple(FILE *file)
{
int i;
- long triple = 0;
- for (i=0; i<3; i++) {
- triple = triple*0x100 + get_unsigned_byte(file);
+ signed int triple = get_signed_byte(file);
+ for (i=0; i<2; i++) {
+ triple = (triple << 8) | get_unsigned_byte(file);
}
- if (triple >= 0x800000l)
- triple -= 0x1000000l;
- return (SIGNED_TRIPLE) triple;
+ return triple;
}
-SIGNED_QUAD get_signed_quad(FILE *file)
+int32_t get_signed_quad(FILE *file)
{
- int byte, i;
- long quad = 0;
-
- /* Check sign on first byte before reading others */
- byte = get_unsigned_byte(file);
- quad = byte;
- if (quad >= 0x80)
- quad = byte - 0x100;
+ int i;
+ int32_t quad = get_signed_byte(file);
for (i=0; i<3; i++) {
- quad = quad*0x100 + get_unsigned_byte(file);
+ quad = (quad << 8) | get_unsigned_byte(file);
}
- return (SIGNED_QUAD) quad;
+ return quad;
}
-UNSIGNED_QUAD get_unsigned_quad(FILE *file)
+uint32_t get_unsigned_quad(FILE *file)
{
int i;
- unsigned long quad = 0;
+ uint32_t quad = 0;
for (i=0; i<4; i++) {
- quad = quad*0x100u + get_unsigned_byte(file);
+ quad = (quad << 8) | get_unsigned_byte(file);
+ }
+ return quad;
+}
+
+int32_t get_unsigned_num (FILE *file, unsigned char num)
+{
+ int32_t val = get_unsigned_byte (file);
+ switch (num) {
+ case 3: if (val > 0x7f)
+ val -= 0x100;
+ val = (val << 8) | get_unsigned_byte (file);
+ case 2: val = (val << 8) | get_unsigned_byte (file);
+ case 1: val = (val << 8) | get_unsigned_byte (file);
+ default: break;
}
- return (UNSIGNED_QUAD) quad;
+ return val;
+}
+
+/* Compute a signed quad that must be positive */
+uint32_t get_positive_quad (FILE *file, const char *type, const char *name)
+{
+ int32_t val = get_signed_quad (file);
+ if (val < 0)
+ ERROR ("Bad %s: negative %s: %d", type, name, val);
+ return (uint32_t)val;
}
-SIGNED_QUAD sqxfw (SIGNED_QUAD sq, fixword fw)
+int32_t sqxfw (int32_t sq, fixword fw)
{
int sign = 1;
- unsigned long a, b, c, d, ad, bd, bc, ac;
- unsigned long e, f, g, h, i, j, k;
- unsigned long result;
+ uint32_t a, b, c, d, ad, bd, bc, ac;
+ uint32_t e, f, g, h, i, j, k;
+ int32_t result;
/* Make positive. */
if (sq < 0) {
sign = -sign;
@@ -155,21 +152,21 @@ SIGNED_QUAD sqxfw (SIGNED_QUAD sq, fixword fw)
sign = -sign;
fw = -fw;
}
- a = ((unsigned long) sq) >> 16u;
- b = ((unsigned long) sq) & 0xffffu;
- c = ((unsigned long) fw) >> 16u;
- d = ((unsigned long) fw) & 0xffffu;
+ a = ((uint32_t) sq) >> 16;
+ b = ((uint32_t) sq) & 0xffffu;
+ c = ((uint32_t) fw) >> 16;
+ d = ((uint32_t) fw) & 0xffffu;
ad = a*d; bd = b*d; bc = b*c; ac = a*c;
- e = bd >> 16u;
- f = ad >> 16u;
+ e = bd >> 16;
+ f = ad >> 16;
g = ad & 0xffffu;
- h = bc >> 16u;
+ h = bc >> 16;
i = bc & 0xffffu;
- j = ac >> 16u;
+ j = ac >> 16;
k = ac & 0xffffu;
- result = (e+g+i + (1<<3)) >> 4u; /* 1<<3 is for rounding */
- result += (f+h+k) << 12u;
- result += j << 28u;
- return (sign > 0) ? result : result * -1L;
+ result = (e+g+i + (1<<3)) >> 4; /* 1<<3 is for rounding */
+ result += (f+h+k) << 12;
+ result += j << 28;
+ return (sign > 0) ? result : -result;
}