diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-24 02:56:20 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-24 02:56:20 +0000 |
commit | 33b523db5e755ecc3ab3247dd0b1cdc247c3536c (patch) | |
tree | 4c0c5d0d923a3b703b2451b5fb05fa9f27c7d72f /ruby.c | |
parent | 84f4550341264fb202c2d419936246347857d5e5 (diff) | |
download | ruby-33b523db5e755ecc3ab3247dd0b1cdc247c3536c.tar.gz |
Fix compile error other than gcc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r-- | ruby.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -1413,7 +1413,10 @@ process_options(int argc, char **argv, struct cmdline_options *opt) NODE *tree = 0; VALUE parser; const rb_iseq_t *iseq; - rb_encoding *enc, *lenc; + rb_encoding *enc, *lenc, *ienc = 0; +#if UTF8_PATH + rb_encoding *uenc; +#endif const char *s; char fbuf[MAXPATHLEN]; int i = (int)proc_options(argc, argv, opt, 0); @@ -1525,6 +1528,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt) enc = rb_enc_from_index(opt->intern.enc.index); rb_enc_set_default_internal(rb_enc_from_encoding(enc)); opt->intern.enc.index = -1; + ienc = enc; } rb_enc_associate(opt->script_name, lenc); rb_obj_freeze(opt->script_name); @@ -1559,7 +1563,8 @@ process_options(int argc, char **argv, struct cmdline_options *opt) #undef SET_COMPILE_OPTION } #if UTF8_PATH - opt->script_name = str_conv_enc(opt->script_name, rb_utf8_encoding(), lenc); + uenc = rb_utf8_encoding(); + opt->script_name = str_conv_enc(opt->script_name, uenc, lenc); opt->script = RSTRING_PTR(opt->script_name); #endif ruby_set_argv(argc, argv); @@ -1577,8 +1582,13 @@ process_options(int argc, char **argv, struct cmdline_options *opt) eenc = rb_enc_from_index(opt->src.enc.index); } else { - eenc = lenc; + eenc = ienc ? ienc : lenc; } +#if UTF8_PATH + if (eenc != uenc) + opt->e_script = str_conv_enc(opt->e_script, uenc, eenc); + else +#endif rb_enc_associate(opt->e_script, eenc); if (!(opt->dump & ~DUMP_BIT(version_v))) { ruby_set_script_name(opt->script_name); |