summaryrefslogtreecommitdiffstats
path: root/sprintf.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-20 10:03:47 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-02-20 10:03:47 +0000
commit3d030940e9944c4c203d4ce7c9464e12c8fb1bce (patch)
tree7baec2d004c47206fbdfe1ad02b820166534c7ff /sprintf.c
parent2865e2e29a01809bad323819df5556fdea7b9ed6 (diff)
downloadruby-3d030940e9944c4c203d4ce7c9464e12c8fb1bce.tar.gz
ruby-3d030940e9944c4c203d4ce7c9464e12c8fb1bce.tar.xz
ruby-3d030940e9944c4c203d4ce7c9464e12c8fb1bce.zip
* lib/irb/init.rb (IRB::IRB.parse_opts): add -I option to
irb. [ruby-dev:39243] * sprintf.c (rb_f_sprintf): sign bit extension should not be done if FPLUS flag is specified. [ruby-list:39224] * sprintf.c (rb_f_sprintf): do not prepend dots for negative numbers if FZERO is specified. [ruby-dev:39218] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sprintf.c')
-rw-r--r--sprintf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sprintf.c b/sprintf.c
index 73282b88a..6de45618c 100644
--- a/sprintf.c
+++ b/sprintf.c
@@ -544,7 +544,7 @@ rb_f_sprintf(argc, argv)
if (base == 10) {
rb_warning("negative number for %%u specifier");
}
- else if (!(flags&FPREC)) {
+ else if (!(flags&(FPREC|FZERO))) {
strcpy(s, "..");
s += 2;
}
@@ -602,7 +602,7 @@ rb_f_sprintf(argc, argv)
remove_sign_bits(++s, base);
tmp = rb_str_new(0, 3+strlen(s));
t = RSTRING(tmp)->ptr;
- if (!(flags&FPREC)) {
+ if (!(flags&(FPREC|FZERO))) {
strcpy(t, "..");
t += 2;
}
@@ -660,7 +660,7 @@ rb_f_sprintf(argc, argv)
else {
char c;
- if (bignum && !RBIGNUM(val)->sign)
+ if (!sign && bignum && !RBIGNUM(val)->sign)
c = sign_bits(base, p);
else
c = '0';