summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-print
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-print')
-rw-r--r--mrbgems/mruby-print/src/print.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/mrbgems/mruby-print/src/print.c b/mrbgems/mruby-print/src/print.c
index 673ba2172..e7e21dd4b 100644
--- a/mrbgems/mruby-print/src/print.c
+++ b/mrbgems/mruby-print/src/print.c
@@ -1,17 +1,18 @@
#include "mruby.h"
#include "mruby/string.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
static void
printstr(mrb_state *mrb, mrb_value obj)
{
- char *s;
- mrb_int len;
-
if (mrb_string_p(obj)) {
- s = RSTRING_PTR(obj);
- len = RSTRING_LEN(obj);
- fwrite(s, len, 1, stdout);
+ char* ptr = mrb_locale_from_utf8(RSTRING_PTR(obj), RSTRING_LEN(obj));
+ if (ptr) {
+ fwrite(ptr, strlen(ptr), 1, stdout);
+ mrb_locale_free(ptr);
+ }
}
}