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-mirb/tools/mirb | |
| 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-mirb/tools/mirb')
| -rw-r--r-- | mrbgems/mruby-bin-mirb/tools/mirb/mirb.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c index 0f3649a35..37fda352c 100644 --- a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +++ b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c @@ -366,6 +366,8 @@ main(int argc, char **argv) ai = mrb_gc_arena_save(mrb); while (TRUE) { + char *utf8; + #ifndef ENABLE_READLINE print_cmdline(code_block_open); @@ -415,17 +417,21 @@ main(int argc, char **argv) strcpy(ruby_code, last_code_line); } + utf8 = mrb_utf8_from_locale(ruby_code, -1); + if (!utf8) abort(); + /* parse code */ parser = mrb_parser_new(mrb); if (parser == NULL) { fputs("create parser state error\n", stderr); break; } - parser->s = ruby_code; - parser->send = ruby_code + strlen(ruby_code); + parser->s = utf8; + parser->send = utf8 + strlen(utf8); parser->lineno = cxt->lineno; mrb_parser_parse(parser, cxt); code_block_open = is_code_block_open(parser); + mrb_utf8_free(utf8); if (code_block_open) { /* no evaluation of code */ |
