diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-03-20 17:01:30 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-03-20 17:01:30 +0000 |
commit | f83c5da39d1339f8d3ab00be0b214fc65cd69f44 (patch) | |
tree | 9ea99e238bb6bd42ebb923415696512ee85a4123 | |
parent | 3c59330bfea992d86df30aed2181a75ad37aafeb (diff) |
* sprintf.c (rb_f_sprintf): copy sign bits only if value is
negative.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sprintf.c | 7 |
2 files changed, 9 insertions, 1 deletions
@@ -1,5 +1,8 @@ Fri Mar 21 01:29:35 2003 Yukihiro Matsumoto <matz@ruby-lang.org> + * sprintf.c (rb_f_sprintf): copy sign bits only if value is + negative. + * missing.h: include <stdarg.h> or <varargs.h> if HAVE_VSNPRINTF is not defined. @@ -556,7 +556,12 @@ rb_f_sprintf(argc, argv) } } else { - char c = sign_bits(base, p); + char c; + + if (bignum && !RBIGNUM(val)->sign) + c = sign_bits(base, p); + else + c = '0'; while (len < prec--) { buf[blen++] = c; } |