Merge pull request #2663 from iij/pr-fix-string-utf8-aref

adding mruby-string-utf8 breaks String#[float]
This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-12-05 14:54:59 +09:00
2 changed files with 4 additions and 0 deletions
+3
View File
@@ -3,6 +3,7 @@
#include "mruby/class.h" #include "mruby/class.h"
#include "mruby/string.h" #include "mruby/string.h"
#include "mruby/range.h" #include "mruby/range.h"
#include "mruby/numeric.h"
#include "mruby/re.h" #include "mruby/re.h"
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
@@ -257,6 +258,8 @@ mrb_str_aref(mrb_state *mrb, mrb_value str, mrb_value indx)
mrb_regexp_check(mrb, indx); mrb_regexp_check(mrb, indx);
switch (mrb_type(indx)) { switch (mrb_type(indx)) {
case MRB_TT_FLOAT:
indx = mrb_flo_to_fixnum(mrb, indx);
case MRB_TT_FIXNUM: case MRB_TT_FIXNUM:
idx = mrb_fixnum(indx); idx = mrb_fixnum(indx);
+1
View File
@@ -9,6 +9,7 @@ assert('String#[]') do
assert_equal "世界", "こんにちは世界"[-2..-1] assert_equal "世界", "こんにちは世界"[-2..-1]
assert_equal "んに", "こんにちは世界"[1,2] assert_equal "んに", "こんにちは世界"[1,2]
assert_equal "", "こんにちは世界"[""] assert_equal "", "こんにちは世界"[""]
assert_equal 'b', 'abc'[1.1]
end end
assert('String#reverse', '15.2.10.5.29') do assert('String#reverse', '15.2.10.5.29') do