summaryrefslogtreecommitdiff
path: root/ext/standard/formatted_print.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2001-07-18 16:48:52 +0000
committerStanislav Malyshev <stas@php.net>2001-07-18 16:48:52 +0000
commitf0c879bb26f788ca823a090ed345da7b8031cd81 (patch)
tree73ccf9c9b7c41cb26f53cf2aee55fa593a144e4a /ext/standard/formatted_print.c
parentdb97aea8d9b30c5968d4af226b84a504a28a7342 (diff)
downloadphp-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.c39
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) {