cvs: php-src /main spprintf.c

From: Date: Sun, 14 Aug 2005 20:11:09 +0000
Subject: cvs: php-src /main spprintf.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-33382@lists.php.net to get a copy of this message
helly Sun Aug 14 16:11:09 2005 EDT Modified files: /php-src/main spprintf.c Log: - Handle different cases of the actual strings correctly http://cvs.php.net/diff.php/php-src/main/spprintf.c?r1=1.27&r2=1.28&ty=u Index: php-src/main/spprintf.c diff -u php-src/main/spprintf.c:1.27 php-src/main/spprintf.c:1.28 --- php-src/main/spprintf.c:1.27 Sun Aug 14 13:14:42 2005 +++ php-src/main/spprintf.c Sun Aug 14 16:11:05 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spprintf.c,v 1.27 2005/08/14 17:14:42 helly Exp $ */ +/* $Id: spprintf.c,v 1.28 2005/08/14 20:11:05 helly Exp $ */ /* This is the spprintf implementation. * It has emerged from apache snprintf. See original header: @@ -126,14 +126,22 @@ } \ } while (0) -#define INS_STRING(unicode, xbuf, s, slen) do { \ - if (unicode) { \ - smart_str_appendl(xbuf, s, slen); \ - } else { \ - size_t newlen, sz = 2*(slen); \ +#define INS_STRING(unicode, s_uni, xbuf, s, slen) \ +do { \ + if (unicode) { + size_t newlen, p, sz = 2*(slen); \ smart_str_alloc(xbuf, (sz), 0); \ - memcpy(xbuf->c + xbuf->len, s, (sz)); \ + if (s_uni) { \ + memcpy(xbuf->c + xbuf->len, s, (sz)); \ + } else { \ + p = (slen); \ + while(p--) { \ + smart_str_append2c(xbuf, *s++); \ + } \ + } \ xbuf->len += (sz); \ + } else { \ + smart_str_appendl(xbuf, s, slen); \ } \ } while (0) @@ -151,7 +159,7 @@ p = sz; \ sz <<= 1; \ smart_str_alloc(xbuf, sz, 0); \ - while(p--) smart_str_appendc(xbuf, ch); \ + while(p--) smart_str_append2c(xbuf, ch);\ } else { \ smart_str_alloc(xbuf, sz, 0); \ memset(xbuf->c + xbuf->len, ch, sz); \ @@ -786,7 +794,7 @@ /* * Print the string s. */ - INS_STRING(s_unicode, xbuf, s, s_len); + INS_STRING(unicode, s_unicode, xbuf, s, s_len); if (free_s) efree(s); if (adjust_width && adjust == LEFT && min_width > s_len) {

« previous php.cvs (#33382) next »