From 2a661ac612c233045196fb11cb79e6e374a1680e Mon Sep 17 00:00:00 2001 From: Syohei YOSHIDA Date: Thu, 14 Jan 2016 11:05:03 +0900 Subject: Add tests which passes all zero string to Kernel#Integer --- mrbgems/mruby-kernel-ext/test/kernel.rb | 2 ++ 1 file changed, 2 insertions(+) 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 -- cgit v1.2.3 From 787685a0b9d26cc916d08ecbd876cdcd10ebdadb Mon Sep 17 00:00:00 2001 From: Syohei YOSHIDA Date: Thu, 14 Jan 2016 11:07:07 +0900 Subject: Fix all zero string case --- src/string.c | 2 ++ 1 file changed, 2 insertions(+) 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; -- cgit v1.2.3