diff options
| author | Yasuhiro Matsumoto <[email protected]> | 2015-09-11 11:12:03 +0900 |
|---|---|---|
| committer | Yasuhiro Matsumoto <[email protected]> | 2015-09-11 11:12:03 +0900 |
| commit | 8277e950eee4e8c6135eca281a7d5ca91077d2b4 (patch) | |
| tree | b8c78e65be2d634694eed3ae12f72b6076631fe1 /mrbgems/mruby-bin-mruby | |
| parent | 3ed8e7fbb24886619f6e7aa2e9be1d0dd0609feb (diff) | |
| download | mruby-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.c | 11 |
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); |
