diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-16 16:58:58 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-16 16:58:58 +0000 |
commit | 4d16ce7da4b142d411513048895972d682a45d0f (patch) | |
tree | ac0db0090dff98e25f3ec869b18fb81c057ecfe8 /sprintf.c | |
parent | bc8724d05fcde5d703f622855844460f35fcfce7 (diff) | |
download | ruby-4d16ce7da4b142d411513048895972d682a45d0f.tar.gz |
* sprintf.c (rb_str_format): make %u behave like %d for negative
values, since decimal format does not work with preceding dots.
[ruby-core:11575]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sprintf.c')
-rw-r--r-- | sprintf.c | 12 |
1 files changed, 3 insertions, 9 deletions
@@ -491,14 +491,13 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) switch (*p) { case 'd': case 'i': + case 'u': sign = 1; break; case 'o': case 'x': case 'X': case 'b': case 'B': - case 'u': - default: if (flags&(FPLUS|FSPACE)) sign = 1; break; } @@ -584,13 +583,8 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) else { s = nbuf; if (v < 0) { - if (base == 10) { - rb_warning("negative number for %%u specifier"); - } - else if (!(flags&(FPREC|FZERO))) { - strcpy(s, ".."); - s += 2; - } + strcpy(s, ".."); + s += 2; } sprintf(fbuf, "%%l%c", *p == 'X' ? 'x' : *p); sprintf(s, fbuf, v); |