summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-sprintf
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-05-02 09:29:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-05-07 08:38:46 +0900
commit91368c117c787ad9718b3bcbc5bc07d5a73c15dd (patch)
tree7f9fcb32b5cd3c6926777ec6e0c2ce8fb9e6be30 /mrbgems/mruby-sprintf
parent87576b819e704492f4690027ad41543637cabb16 (diff)
downloadmruby-91368c117c787ad9718b3bcbc5bc07d5a73c15dd.tar.gz
mruby-91368c117c787ad9718b3bcbc5bc07d5a73c15dd.zip
Avoid `mrb_funcall` if `MRB_UFT8_STRING` is not set.
Diffstat (limited to 'mrbgems/mruby-sprintf')
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c6
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");