summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <[email protected]>2015-09-11 11:12:03 +0900
committerYasuhiro Matsumoto <[email protected]>2015-09-11 11:12:03 +0900
commit8277e950eee4e8c6135eca281a7d5ca91077d2b4 (patch)
treeb8c78e65be2d634694eed3ae12f72b6076631fe1 /mrbgems/mruby-bin-mruby
parent3ed8e7fbb24886619f6e7aa2e9be1d0dd0609feb (diff)
downloadmruby-8277e950eee4e8c6135eca281a7d5ca91077d2b4.tar.gz
mruby-8277e950eee4e8c6135eca281a7d5ca91077d2b4.zip
Support windows locale
Add mrb_utf8_from_locale, mrb_utf8_free, mrb_locale_from_utf8, mrb_locale_free. Just works for windows.
Diffstat (limited to 'mrbgems/mruby-bin-mruby')
-rw-r--r--mrbgems/mruby-bin-mruby/tools/mruby/mruby.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
index 5ca744388..cc1ca3055 100644
--- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
@@ -191,7 +191,11 @@ main(int argc, char **argv)
ARGV = mrb_ary_new_capa(mrb, args.argc);
for (i = 0; i < args.argc; i++) {
- mrb_ary_push(mrb, ARGV, mrb_str_new_cstr(mrb, args.argv[i]));
+ char* utf8 = mrb_utf8_from_locale(args.argv[i], -1);
+ if (utf8) {
+ mrb_ary_push(mrb, ARGV, mrb_str_new_cstr(mrb, utf8));
+ mrb_utf8_free(utf8);
+ }
}
mrb_define_global_const(mrb, "ARGV", ARGV);
@@ -222,7 +226,10 @@ main(int argc, char **argv)
v = mrb_load_file_cxt(mrb, args.rfp, c);
}
else {
- v = mrb_load_string_cxt(mrb, args.cmdline, c);
+ char* utf8 = mrb_utf8_from_locale(args.cmdline, -1);
+ if (!utf8) abort();
+ v = mrb_load_string_cxt(mrb, utf8, c);
+ mrb_utf8_free(utf8);
}
mrbc_context_free(mrb, c);