diff options
| -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; |
