diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-01-05 04:41:21 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-01-05 04:41:21 +0000 |
commit | de7161526014b781468cea5d84411e23be945f79 (patch) | |
tree | ce7e90b3c16ce6246be9850c9b1ea1328992c0e7 /sprintf.c | |
parent | a1d1b1516750c1047ceb7010f8f5ca34b358c7e3 (diff) | |
download | ruby-de7161526014b781468cea5d84411e23be945f79.tar.gz |
20000105
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sprintf.c')
-rw-r--r-- | sprintf.c | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -6,7 +6,7 @@ $Date$ created at: Fri Oct 15 10:39:26 JST 1993 - Copyright (C) 1993-1999 Yukihiro Matsumoto + Copyright (C) 1993-2000 Yukihiro Matsumoto ************************************************/ @@ -111,8 +111,6 @@ remove_sign_bits(str, base) return str; } -double rb_big2dbl _((VALUE)); - #define FNONE 0 #define FSHARP 1 #define FMINUS 2 @@ -178,7 +176,7 @@ rb_f_sprintf(argc, argv) fmt = GETARG(); if (OBJ_TAINTED(fmt)) tainted = 1; - p = str2cstr(fmt, &blen); + p = rb_str2cstr(fmt, &blen); end = p + blen; blen = 0; bsiz = 120; @@ -397,22 +395,22 @@ rb_f_sprintf(argc, argv) bin_retry: switch (TYPE(val)) { - case T_FIXNUM: - v = FIX2LONG(val); - break; case T_FLOAT: val = rb_dbl2big(RFLOAT(val)->value); if (FIXNUM_P(val)) goto bin_retry; bignum = 1; break; case T_STRING: - val = rb_str2inum(RSTRING(val)->ptr, 10); + val = rb_str2inum(val, 0); goto bin_retry; case T_BIGNUM: bignum = 1; break; default: - Check_Type(val, T_FIXNUM); + v = NUM2LONG(val); + break; + case T_FIXNUM: + v = FIX2LONG(val); break; } @@ -616,7 +614,7 @@ rb_f_sprintf(argc, argv) fval = strtod(RSTRING(val)->ptr, 0); break; default: - Check_Type(val, T_FLOAT); + fval = NUM2DBL(val); break; } |