diff options
| author | ksss <[email protected]> | 2017-05-21 10:30:27 +0900 |
|---|---|---|
| committer | ksss <[email protected]> | 2017-05-21 10:30:27 +0900 |
| commit | 98f9c33fe07d098a1e06e0ea9a59324cf071a2d3 (patch) | |
| tree | 607d7095cb1de58ba59717da80602de102797d88 /mrbgems/mruby-string-ext/src | |
| parent | 78add728126cbe03b9048e57f897a7134508af5d (diff) | |
| download | mruby-98f9c33fe07d098a1e06e0ea9a59324cf071a2d3.tar.gz mruby-98f9c33fe07d098a1e06e0ea9a59324cf071a2d3.zip | |
String#concat: Try to convert when not string
Diffstat (limited to 'mrbgems/mruby-string-ext/src')
| -rw-r--r-- | mrbgems/mruby-string-ext/src/string.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c index 4c22f40c7..9dc1aeafc 100644 --- a/mrbgems/mruby-string-ext/src/string.c +++ b/mrbgems/mruby-string-ext/src/string.c @@ -134,6 +134,8 @@ mrb_str_swapcase(mrb_state *mrb, mrb_value self) return str; } +static mrb_value mrb_fixnum_chr(mrb_state *mrb, mrb_value num); + /* * call-seq: * str << integer -> str @@ -153,7 +155,12 @@ static mrb_value mrb_str_concat2(mrb_state *mrb, mrb_value self) { mrb_value str; - mrb_get_args(mrb, "S", &str); + + mrb_get_args(mrb, "o", &str); + if (mrb_fixnum_p(str)) + str = mrb_fixnum_chr(mrb, str); + else + str = mrb_string_type(mrb, str); mrb_str_concat(mrb, self, str); return self; } |
