mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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:
parent
a470a2f1e1
commit
95e59bd9e0
2 changed files with 23 additions and 2 deletions
|
@ -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>
|
Fri Jan 25 13:15:23 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
* ruby.c (proc_options, process_options, load_file): shouldn't effect
|
* ruby.c (proc_options, process_options, load_file): shouldn't effect
|
||||||
|
|
20
ruby.c
20
ruby.c
|
@ -1000,14 +1000,30 @@ process_options(VALUE arg)
|
||||||
enc = rb_enc_from_index(opt->ext.enc.index);
|
enc = rb_enc_from_index(opt->ext.enc.index);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
enc = rb_locale_encoding();
|
enc = 0;
|
||||||
}
|
}
|
||||||
if (opt->e_script) {
|
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();
|
require_libraries();
|
||||||
tree = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
|
tree = rb_parser_compile_string(parser, opt->script, opt->e_script, 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (!enc) {
|
||||||
|
enc = rb_locale_encoding();
|
||||||
|
}
|
||||||
if (opt->script[0] == '-' && !opt->script[1]) {
|
if (opt->script[0] == '-' && !opt->script[1]) {
|
||||||
forbid_setid("program input from stdin");
|
forbid_setid("program input from stdin");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue