* 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
This commit is contained in:
parent
bc8724d05f
commit
4d16ce7da4
@ -3,6 +3,12 @@ Mon Jul 16 23:07:51 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
|||||||
* lib/base64.rb (Base64::b64encode): should not specify /o option
|
* lib/base64.rb (Base64::b64encode): should not specify /o option
|
||||||
for regular expression. [ruby-dev:31221]
|
for regular expression. [ruby-dev:31221]
|
||||||
|
|
||||||
|
Mon Jul 16 22:57:53 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* 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]
|
||||||
|
|
||||||
Mon Jul 16 18:29:33 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Mon Jul 16 18:29:33 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* string.c (rb_str_rindex_m): accept string-like object convertible
|
* string.c (rb_str_rindex_m): accept string-like object convertible
|
||||||
|
12
sprintf.c
12
sprintf.c
@ -491,14 +491,13 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt)
|
|||||||
switch (*p) {
|
switch (*p) {
|
||||||
case 'd':
|
case 'd':
|
||||||
case 'i':
|
case 'i':
|
||||||
|
case 'u':
|
||||||
sign = 1; break;
|
sign = 1; break;
|
||||||
case 'o':
|
case 'o':
|
||||||
case 'x':
|
case 'x':
|
||||||
case 'X':
|
case 'X':
|
||||||
case 'b':
|
case 'b':
|
||||||
case 'B':
|
case 'B':
|
||||||
case 'u':
|
|
||||||
default:
|
|
||||||
if (flags&(FPLUS|FSPACE)) sign = 1;
|
if (flags&(FPLUS|FSPACE)) sign = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -584,13 +583,8 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt)
|
|||||||
else {
|
else {
|
||||||
s = nbuf;
|
s = nbuf;
|
||||||
if (v < 0) {
|
if (v < 0) {
|
||||||
if (base == 10) {
|
strcpy(s, "..");
|
||||||
rb_warning("negative number for %%u specifier");
|
s += 2;
|
||||||
}
|
|
||||||
else if (!(flags&(FPREC|FZERO))) {
|
|
||||||
strcpy(s, "..");
|
|
||||||
s += 2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
sprintf(fbuf, "%%l%c", *p == 'X' ? 'x' : *p);
|
sprintf(fbuf, "%%l%c", *p == 'X' ? 'x' : *p);
|
||||||
sprintf(s, fbuf, v);
|
sprintf(s, fbuf, v);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user