cvs: /php4/ext/standard formatted_print.c

From: Date: Tue, 03 Aug 1999 20:08:34 +0000
Subject: cvs: /php4/ext/standard formatted_print.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-3075@lists.php.net to get a copy of this message
rasmus Tue Aug 3 16:08:34 1999 EDT Modified files: /php4/ext/standard formatted_print.c Log: [s]printf fix for bug #1952 (note, [s]printf doesn't work in PHP4 yet) Index: php4/ext/standard/formatted_print.c diff -u php4/ext/standard/formatted_print.c:1.7 php4/ext/standard/formatted_print.c:1.8 --- php4/ext/standard/formatted_print.c:1.7 Mon Aug 2 15:16:50 1999 +++ php4/ext/standard/formatted_print.c Tue Aug 3 16:08:33 1999 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: formatted_print.c,v 1.7 1999/08/02 19:16:50 zeev Exp $ */ +/* $Id: formatted_print.c,v 1.8 1999/08/03 20:08:33 rasmus Exp $ */ #include <math.h> /* modf() */ #include "php.h" @@ -152,7 +152,7 @@ inline static void php_sprintf_appendstring(char **buffer, int *pos, int *size, char *add, int min_width, int max_width, char padding, - int alignment, int len) + int alignment, int len, int sign) { register int npad = min_width - MIN(len,(max_width?max_width:len)); @@ -173,6 +173,7 @@ *buffer = erealloc(*buffer, *size); } if (alignment == ALIGN_RIGHT) { + if (sign && padding=='0') { (*buffer)[(*pos)++] = '-'; add++; } while (npad-- > 0) { (*buffer)[(*pos)++] = padding; } @@ -204,6 +205,9 @@ magn = (unsigned int) number; } + /* Can't right-pad 0's on integers */ + if(alignment==0 && padding=='0') padding=' '; + numbuf[i] = '\0'; do { @@ -219,7 +223,7 @@ PRINTF_DEBUG(("sprintf: appending %d as \"%s\", i=%d\n", number, &numbuf[i], i)); php_sprintf_appendstring(buffer, pos, size, &numbuf[i], width, 0, - padding, alignment, (NUM_BUF_SIZE - 1) - i); + padding, alignment, (NUM_BUF_SIZE - 1) - i, neg); } @@ -280,7 +284,7 @@ width += (precision + 1); } php_sprintf_appendstring(buffer, pos, size, numbuf, width, 0, padding, - alignment, i); + alignment, i, sign); } @@ -317,7 +321,7 @@ numbuf[--i] = '-'; } php_sprintf_appendstring(buffer, pos, size, &numbuf[i], width, 0, - padding, alignment, (NUM_BUF_SIZE - 1) - i); + padding, alignment, (NUM_BUF_SIZE - 1) - i, neg); } @@ -471,7 +475,7 @@ args[currarg]->value.str.val, width, precision, padding, alignment, - args[currarg]->value.str.len); + args[currarg]->value.str.len,0); break; case 'd':

« previous php.version4 (#3075) next »