summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-27 09:53:54 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-27 09:53:54 +0000
commit3b4641a4bf1fafce6f91295f4340aa3d900faddc (patch)
treea0be2c7231ea12bd1b234b3fe724dbf1ea65adee /bignum.c
parentd0c78c8567a009626191ea1383599624e169966a (diff)
downloadruby-3b4641a4bf1fafce6f91295f4340aa3d900faddc.tar.gz
* bignum.c (rb_cstr2inum): deny "0_".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/bignum.c b/bignum.c
index 3b62b28442..38513c2373 100644
--- a/bignum.c
+++ b/bignum.c
@@ -241,18 +241,9 @@ rb_cstr2inum(str, base)
}
len = 4;
}
- if (*str == '0') {
- do str++; while (*str == '0');
- if (!*str) return INT2FIX(0);
- while (*str == '_') str++;
- if (!*str) str--;
- if (ISSPACE(*str)) {
- if (badcheck) {
- while (ISSPACE(*str)) str++;
- if (*str) goto bad;
- }
- return INT2FIX(0);
- }
+ if (*str == '0') { /* squeeze preceeding 0s */
+ while (*++str == '0');
+ --str;
}
len *= strlen(str)*sizeof(char);