From aec6e764ad1e9b1564138dd63c3747b92b5d061c Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 17 Jul 2004 23:14:52 +0000 Subject: * sprintf.c (rb_f_sprintf): remove extra sign digit. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@6670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sprintf.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'sprintf.c') diff --git a/sprintf.c b/sprintf.c index c3ba21b8a..98db29ea6 100644 --- a/sprintf.c +++ b/sprintf.c @@ -25,31 +25,30 @@ remove_sign_bits(str, base) char *str; int base; { - char *s, *t, *end; - unsigned long len; + char *s, *t; s = t = str; - len = strlen(str); - end = str + len; if (base == 16) { - while (t s) { + while (*t) *s++ = *t++; + *s = '\0'; + } return str; } @@ -57,7 +56,7 @@ remove_sign_bits(str, base) static char sign_bits(base, p) int base; - char *p; + const char *p; { char c = '.'; @@ -234,7 +233,8 @@ rb_f_sprintf(argc, argv) VALUE *argv; { VALUE fmt; - char *buf, *p, *end; + const char *p, *end; + char *buf; int blen, bsiz; VALUE result; @@ -257,7 +257,7 @@ rb_f_sprintf(argc, argv) buf = RSTRING(result)->ptr; for (; p < end; p++) { - char *t; + const char *t; int n; for (t = p; t < end && *t != '%'; t++) ; @@ -550,7 +550,7 @@ rb_f_sprintf(argc, argv) s += 2; } } - sprintf(fbuf, "%%l%c", *p); + sprintf(fbuf, "%%l%c", *p == 'X' ? 'x' : *p); sprintf(s, fbuf, v); if (v < 0) { char d = 0; -- cgit