diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-01-14 16:38:58 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-01-14 16:38:58 +0900 |
| commit | 2e49a13163c0374cff0148b1d697dcbb192105b7 (patch) | |
| tree | 9f4e73dafa73f4f9f36a3ae6cbb5526caf0461ec | |
| parent | 4924856949fb5996005aeb19ce8475701a5f8c7a (diff) | |
| parent | 787685a0b9d26cc916d08ecbd876cdcd10ebdadb (diff) | |
| download | mruby-2e49a13163c0374cff0148b1d697dcbb192105b7.tar.gz mruby-2e49a13163c0374cff0148b1d697dcbb192105b7.zip | |
Merge pull request #3084 from syohex/all-zeros
Fix passing all zero string to Kernel#Integer
| -rw-r--r-- | mrbgems/mruby-kernel-ext/test/kernel.rb | 2 | ||||
| -rw-r--r-- | src/string.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/mrbgems/mruby-kernel-ext/test/kernel.rb b/mrbgems/mruby-kernel-ext/test/kernel.rb index c58fb465c..cc6af13a3 100644 --- a/mrbgems/mruby-kernel-ext/test/kernel.rb +++ b/mrbgems/mruby-kernel-ext/test/kernel.rb @@ -22,6 +22,8 @@ assert('Kernel#Integer') do assert_equal(26, Integer("0x1a")) assert_equal(930, Integer("0930", 10)) assert_equal(7, Integer("111", 2)) + assert_equal(0, Integer("0")) + assert_equal(0, Integer("00000")) assert_raise(TypeError) { Integer(nil) } end diff --git a/src/string.c b/src/string.c index a3f337d4b..2b01cc3a5 100644 --- a/src/string.c +++ b/src/string.c @@ -2153,6 +2153,8 @@ mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, int base, int b break; } } + if (*(p - 1) == '0') + p--; } if (p == pend) { if (badcheck) goto bad; |
