aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ruby.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5db0de9827..0432bd5703 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Oct 23 10:42:51 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ruby.c (process_options): encoding set by command line option takes
+ priority over the encoding in the source, as the primary encoding.
+
Mon Oct 22 11:03:09 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* encoding.c (enc_check_encoding): returns index now.
diff --git a/ruby.c b/ruby.c
index 8b14419e76..8fa0c445b5 100644
--- a/ruby.c
+++ b/ruby.c
@@ -843,6 +843,7 @@ process_options(VALUE arg)
char **argv = opt->argv;
NODE *tree = 0;
VALUE parser;
+ VALUE encoding;
const char *s;
int i = proc_options(argc, argv, opt);
@@ -970,7 +971,13 @@ process_options(VALUE arg)
}
}
- rb_set_primary_encoding(rb_parser_encoding(parser));
+ if (opt->enc_index >= 0) {
+ encoding = rb_enc_from_encoding(rb_enc_from_index(opt->enc_index));
+ }
+ else {
+ encoding = rb_parser_encoding(parser);
+ }
+ rb_set_primary_encoding(encoding);
return (VALUE)tree;
}