diff --git a/ChangeLog b/ChangeLog index cd1193a5cd..f45382ceab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 18 14:53:49 2003 Nobuyoshi Nakada + + * bignum.c (rb_cstr_to_inum): should not erase all 0s, but + squeeze into one. [ruby-dev:19377] + Fri Jan 17 03:33:42 2003 Akinori MUSHA * sprintf.c (rb_f_sprintf): Fix a bug caused by an uninitialized diff --git a/bignum.c b/bignum.c index c010bf7046..16cb8e1602 100644 --- a/bignum.c +++ b/bignum.c @@ -392,8 +392,10 @@ rb_cstr_to_inum(str, base, badcheck) } break; } - while (*str == '0') str++; /* squeeze preceeding 0s */ - + if (*str == '0') { /* squeeze preceeding 0s */ + while (*++str == '0'); + --str; + } len *= strlen(str)*sizeof(char); if (len <= (sizeof(VALUE)*CHAR_BIT)) {