From 587e7ac7e7b36f80022d3959a0c6b9fa4aaf23a9 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 18 Jan 2003 05:53:53 +0000 Subject: * bignum.c (rb_cstr_to_inum): should not erase all 0s, but squeeze into one. [ruby-dev:19377] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ bignum.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) 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)) { -- cgit v1.2.3