diff options
author | Stanislav Malyshev <stas@php.net> | 2001-07-18 16:48:52 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2001-07-18 16:48:52 +0000 |
commit | f0c879bb26f788ca823a090ed345da7b8031cd81 (patch) | |
tree | 73ccf9c9b7c41cb26f53cf2aee55fa593a144e4a /ext/standard/formatted_print.c | |
parent | db97aea8d9b30c5968d4af226b84a504a28a7342 (diff) | |
download | php-git-f0c879bb26f788ca823a090ed345da7b8031cd81.tar.gz |
Make variables receiving long be long
Fix binary (x,o,b) formats - they should not be signed
Diffstat (limited to 'ext/standard/formatted_print.c')
-rw-r--r-- | ext/standard/formatted_print.c | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c index 4ccdc40723..e4756cbade 100644 --- a/ext/standard/formatted_print.c +++ b/ext/standard/formatted_print.c @@ -195,19 +195,20 @@ php_sprintf_appendstring(char **buffer, int *pos, int *size, char *add, inline static void -php_sprintf_appendint(char **buffer, int *pos, int *size, int number, +php_sprintf_appendint(char **buffer, int *pos, int *size, long number, int width, char padding, int alignment) { char numbuf[NUM_BUF_SIZE]; - register unsigned int magn, nmagn, i = NUM_BUF_SIZE - 1, neg = 0; + register unsigned long magn, nmagn; + register unsigned int i = NUM_BUF_SIZE - 1, neg = 0; PRINTF_DEBUG(("sprintf: appendint(%x, %x, %x, %d, %d, '%c', %d)\n", *buffer, pos, size, number, width, padding, alignment)); if (number < 0) { neg = 1; - magn = ((unsigned int) -(number + 1)) + 1; + magn = ((unsigned long) -(number + 1)) + 1; } else { - magn = (unsigned int) number; + magn = (unsigned long) number; } /* Can't right-pad 0's on integers */ @@ -233,11 +234,13 @@ php_sprintf_appendint(char **buffer, int *pos, int *size, int number, } inline static void -php_sprintf_appenduint(char **buffer, int *pos, int *size, int number, - int width, char padding, int alignment) +php_sprintf_appenduint(char **buffer, int *pos, int *size, + unsigned long number, + int width, char padding, int alignment) { char numbuf[NUM_BUF_SIZE]; - register unsigned int magn, nmagn, i = NUM_BUF_SIZE - 1; + register unsigned long magn, nmagn; + register unsigned int i = NUM_BUF_SIZE - 1; PRINTF_DEBUG(("sprintf: appenduint(%x, %x, %x, %d, %d, '%c', %d)\n", *buffer, pos, size, number, width, padding, alignment)); @@ -337,12 +340,13 @@ php_sprintf_appenddouble(char **buffer, int *pos, inline static void -php_sprintf_append2n(char **buffer, int *pos, int *size, int number, +php_sprintf_append2n(char **buffer, int *pos, int *size, long number, int width, char padding, int alignment, int n, char *chartable, int expprec) { char numbuf[NUM_BUF_SIZE]; - register unsigned int num, i = NUM_BUF_SIZE - 1, neg = 0; + register unsigned long num; + register unsigned int i = NUM_BUF_SIZE - 1; register int andbits = (1 << n) - 1; PRINTF_DEBUG(("sprintf: append2n(%x, %x, %x, %d, %d, '%c', %d, %d, %x)\n", @@ -350,13 +354,7 @@ php_sprintf_append2n(char **buffer, int *pos, int *size, int number, chartable)); PRINTF_DEBUG(("sprintf: append2n 2^%d andbits=%x\n", n, andbits)); - if (number < 0) { - neg = 1; - num = ((unsigned int) -(number + 1)) + 1; - } else { - num = (unsigned int) number; - } - + num = (unsigned long) number; numbuf[i] = '\0'; do { @@ -365,20 +363,17 @@ php_sprintf_append2n(char **buffer, int *pos, int *size, int number, } while (num > 0); - if (neg) { - numbuf[--i] = '-'; - } php_sprintf_appendstring(buffer, pos, size, &numbuf[i], width, 0, padding, alignment, (NUM_BUF_SIZE - 1) - i, - neg, expprec); + 0, expprec); } -inline static int +inline static long php_sprintf_getnumber(char *buffer, int *pos) { char *endptr; - register int num = strtol(&buffer[*pos], &endptr, 10); + register long num = strtol(&buffer[*pos], &endptr, 10); register int i = 0; if (endptr != NULL) { |