/[global]/global/libutil/strbuf.c
ViewVC logotype

Diff of /global/libutil/strbuf.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.17 by shigio, Tue Apr 5 12:58:26 2005 UTC revision 1.18 by shigio, Wed Apr 6 00:21:47 2005 UTC
# Line 197  strbuf_clear(sb) Line 197  strbuf_clear(sb)
197  {  {
198          if (sb == NULL)          if (sb == NULL)
199                  die("NULL string buffer. (strbuf_clear)");                  die("NULL string buffer. (strbuf_clear)");
200          if (sb->sbufsize == 0) {          if (strbuf_empty(sb)) {
201                  sb->sbufsize = INITIALSIZE;                  sb->sbufsize = INITIALSIZE;
202                  if (!(sb->sbuf = (char *)malloc(sb->sbufsize + 1))) {                  if (!(sb->sbuf = (char *)malloc(sb->sbufsize + 1))) {
203                          (*strbuf_alloc_failed_handler)();                          (*strbuf_alloc_failed_handler)();
# Line 222  strbuf_nputs(sb, s, len) Line 222  strbuf_nputs(sb, s, len)
222          const char *s;          const char *s;
223          int len;          int len;
224  {  {
225          if (!sb->alloc_failed) {          if (!sb->alloc_failed && len > 0) {
226                  if (sb->curp + len > sb->endp)                  if (sb->curp + len > sb->endp)
227                          __strbuf_expandbuf(sb, len);                          __strbuf_expandbuf(sb, len);
228                  while (len-- > 0)                  while (len-- > 0)
# Line 259  strbuf_putn(sb, n) Line 259  strbuf_putn(sb, n)
259          STRBUF *sb;          STRBUF *sb;
260          int n;          int n;
261  {  {
262          char num[128];          if (n == 0) {
         int i = 0;  
   
         while (n) {  
                 if (i >= sizeof(num))  
                         die("Too big integer value.");  
                 num[i++] = n % 10 + '0';  
                 n = n / 10;  
         }  
         if (i == 0) {  
263                  strbuf_putc(sb, '0');                  strbuf_putc(sb, '0');
264          } else {          } else {
265                    char num[128];
266                    int i = 0;
267    
268                    while (n) {
269                            if (i >= sizeof(num))
270                                    die("Too big integer value.");
271                            num[i++] = n % 10 + '0';
272                            n = n / 10;
273                    }
274                  while (--i >= 0)                  while (--i >= 0)
275                          strbuf_putc(sb, num[i]);                          strbuf_putc(sb, num[i]);
276          }          }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26