diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-05-02 09:29:56 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-05-07 08:38:46 +0900 |
| commit | 91368c117c787ad9718b3bcbc5bc07d5a73c15dd (patch) | |
| tree | 7f9fcb32b5cd3c6926777ec6e0c2ce8fb9e6be30 /mrbgems/mruby-sprintf/src/sprintf.c | |
| parent | 87576b819e704492f4690027ad41543637cabb16 (diff) | |
| download | mruby-91368c117c787ad9718b3bcbc5bc07d5a73c15dd.tar.gz mruby-91368c117c787ad9718b3bcbc5bc07d5a73c15dd.zip | |
Avoid `mrb_funcall` if `MRB_UFT8_STRING` is not set.
Diffstat (limited to 'mrbgems/mruby-sprintf/src/sprintf.c')
| -rw-r--r-- | mrbgems/mruby-sprintf/src/sprintf.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c index 987ec711f..37f446711 100644 --- a/mrbgems/mruby-sprintf/src/sprintf.c +++ b/mrbgems/mruby-sprintf/src/sprintf.c @@ -750,7 +750,12 @@ retry: } else if (mrb_fixnum_p(val)) { mrb_int n = mrb_fixnum(val); +#ifndef MRB_UTF8_STRING + char buf[1]; + buf[0] = (char)n&0xff; + tmp = mrb_str_new(mrb, buf, 1); +#else if (n < 0x80) { char buf[1]; @@ -761,6 +766,7 @@ retry: tmp = mrb_funcall(mrb, val, "chr", 0); mrb_check_type(mrb, tmp, MRB_TT_STRING); } +#endif } else { mrb_raise(mrb, E_ARGUMENT_ERROR, "invalid character"); |
