* ruby.c (process_options): not set encoding of -e option from -E

option if they are not compatible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2008-01-25 06:12:44 +00:00
Родитель a470a2f1e1
Коммит 95e59bd9e0
2 изменённых файлов: 23 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Fri Jan 25 15:12:42 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ruby.c (process_options): not set encoding of -e option from -E
option if they are not compatible.
Fri Jan 25 13:15:23 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* ruby.c (proc_options, process_options, load_file): shouldn't effect

20
ruby.c
Просмотреть файл

@ -1000,14 +1000,30 @@ process_options(VALUE arg)
enc = rb_enc_from_index(opt->ext.enc.index);
}
else {
enc = rb_locale_encoding();
enc = 0;
}
if (opt->e_script) {
rb_enc_associate(opt->e_script, enc);
rb_encoding *eenc = rb_locale_encoding();
if (!enc) {
enc = eenc;
}
else if (!rb_enc_asciicompat(enc)) {
rb_warning("%s is not ASCII compatible, ignored for -e",
rb_enc_name(enc));
}
else if (eenc != enc &&
(rb_enc_str_coderange(opt->e_script) != ENC_CODERANGE_7BIT)) {
rb_warning("-e conatains non ASCII string, encoding %s is not used",
rb_enc_name(enc));
}
rb_enc_associate(opt->e_script, eenc);
require_libraries();
tree = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
}
else {
if (!enc) {
enc = rb_locale_encoding();
}
if (opt->script[0] == '-' && !opt->script[1]) {
forbid_setid("program input from stdin");
}