diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-29 16:13:09 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-29 16:13:09 +0000 |
commit | c1ef322e53c6f62d8569682d6049e6fbcd012007 (patch) | |
tree | 0e2659e4fad27ae2c90cefba2effeaaf454b3975 /ruby.c | |
parent | bb51917dcee8660eebc6c157355d261f59e695e3 (diff) |
merged r20012 and r20013 from trunk into ruby_1_9_1.
* ruby.c (load_file_internal): use ASCII-8BIT to prevent conversion.
[ruby-core:19579]
* ruby.c (load_file_internal): cache common interned IDs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r-- | ruby.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -1223,6 +1223,7 @@ load_file_internal(VALUE arg) int line_start = 1; NODE *tree = 0; rb_encoding *enc; + ID set_encoding; if (!fname) rb_load_fail(fname); @@ -1245,6 +1246,7 @@ load_file_internal(VALUE arg) f = rb_io_fdopen(fd, mode, fname); } + CONST_ID(set_encoding, "set_encoding"); if (script) { VALUE c = 1; /* something not nil */ VALUE line; @@ -1253,8 +1255,8 @@ load_file_internal(VALUE arg) int no_ext_enc = !opt->ext.enc.name; int no_int_enc = !opt->intern.enc.name; - enc = rb_usascii_encoding(); - rb_funcall(f, rb_intern("set_encoding"), 1, rb_enc_from_encoding(enc)); + enc = rb_ascii8bit_encoding(); + rb_funcall(f, set_encoding, 1, rb_enc_from_encoding(enc)); if (opt->xflag) { forbid_setid("-x"); @@ -1354,11 +1356,11 @@ load_file_internal(VALUE arg) enc = rb_locale_encoding(); } else { - enc = rb_usascii_encoding(); + enc = rb_ascii8bit_encoding(); } - rb_funcall(f, rb_intern("set_encoding"), 1, rb_enc_from_encoding(enc)); + rb_funcall(f, set_encoding, 1, rb_enc_from_encoding(enc)); tree = (NODE *)rb_parser_compile_file(parser, fname, f, line_start); - rb_funcall(f, rb_intern("set_encoding"), 1, rb_parser_encoding(parser)); + rb_funcall(f, set_encoding, 1, rb_parser_encoding(parser)); if (script && rb_parser_end_seen_p(parser)) { rb_define_global_const("DATA", f); } |