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>
|
||||
|
||||
* 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);
|
||||
}
|
||||
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");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue