mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* parse.y (parser_initialize): set default script encoding as US-ASCII.
* ruby.c (load_file): ditto. * ruby.c (process_options): set script encoding of -e from locale except when -K is specified. * ruby.c (load_file): set script encoding of stdin from locale except when -K is specified. [ruby-dev:33375] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
13b5b22ae6
commit
2160c40fb2
3 changed files with 20 additions and 25 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
Sat Jan 26 03:41:53 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* parse.y (parser_initialize): set default script encoding as US-ASCII.
|
||||
|
||||
* ruby.c (load_file): ditto.
|
||||
|
||||
* ruby.c (process_options): set script encoding of -e from locale
|
||||
except when -K is specified.
|
||||
|
||||
* ruby.c (load_file): set script encoding of stdin from locale except
|
||||
when -K is specified. [ruby-dev:33375]
|
||||
|
||||
Sat Jan 26 02:51:06 2008 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* compile.c, compile.h: fix stack pointer issues.
|
||||
|
|
2
parse.y
2
parse.y
|
@ -9222,7 +9222,7 @@ parser_initialize(struct parser_params *parser)
|
|||
#ifdef YYMALLOC
|
||||
parser->heap = NULL;
|
||||
#endif
|
||||
parser->enc = rb_ascii8bit_encoding();
|
||||
parser->enc = rb_usascii_encoding();
|
||||
}
|
||||
|
||||
extern void rb_mark_source_filename(char *);
|
||||
|
|
31
ruby.c
31
ruby.c
|
@ -1008,33 +1008,21 @@ process_options(VALUE arg)
|
|||
enc = rb_enc_from_index(opt->ext.enc.index);
|
||||
}
|
||||
else {
|
||||
enc = 0;
|
||||
enc = rb_locale_encoding();
|
||||
}
|
||||
if (opt->e_script) {
|
||||
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_encoding *eenc;
|
||||
if (opt->src.enc.index >= 0) {
|
||||
eenc = rb_enc_from_index(opt->src.enc.index);
|
||||
}
|
||||
else {
|
||||
eenc = enc;
|
||||
eenc = rb_locale_encoding();
|
||||
}
|
||||
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");
|
||||
}
|
||||
|
@ -1199,15 +1187,10 @@ load_file(VALUE parser, const char *fname, int script, struct cmdline_options *o
|
|||
enc = rb_enc_from_index(opt->src.enc.index);
|
||||
}
|
||||
else if (f == rb_stdin) {
|
||||
if (opt->ext.enc.index >= 0) {
|
||||
enc = rb_enc_from_index(opt->ext.enc.index);
|
||||
}
|
||||
else {
|
||||
enc = rb_locale_encoding();
|
||||
}
|
||||
enc = rb_locale_encoding();
|
||||
}
|
||||
else {
|
||||
enc = rb_ascii8bit_encoding();
|
||||
enc = rb_usascii_encoding();
|
||||
}
|
||||
rb_funcall(f, rb_intern("set_encoding"), 1, rb_enc_from_encoding(enc));
|
||||
tree = (NODE *)rb_parser_compile_file(parser, fname, f, line_start);
|
||||
|
|
Loading…
Reference in a new issue