Bug #862
r20625 default_internal is nil.
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 100% |
||
| Category: | - | |||
| Target version: | 1.9.1 Release Candidate | |||
| ruby -v: |
Description
高尾宏治です。
trunk の r20625 以降、コマンドラインオプションで渡した
default_internal が nil になっています。
$ svn up -r20624 && make && ./ruby -Eutf-8:utf-8 -e 'p([Encoding.default_external, Encoding.default_internal])'
[#<Encoding:UTF-8>, #<Encoding:UTF-8>]
$ svn up -r20624 && make && ./ruby -Eutf-8:utf-8 -e 'p([Encoding.default_external, Encoding.default_internal])'
[#<Encoding:UTF-8>, nil]
調べたところ、コマンドラインオプションの default_internal を適切に処理したあとで、
shebang の default_internal を解析します。
そして、shebang に default_internal の指定がなかった場合、
強制的に default_internal に nil を設定しているようです。
r20624 までは、default_internal を再設定できなかったため問題なかったようです。
以下の修正で手元では問題が解決しています。
Index: ruby.c
===================================================================
--- ruby.c (revision 20679)
+++ ruby.c (working copy)
@@ -1244,7 +1244,7 @@
enc = rb_enc_from_index(opt->intern.enc.index);
rb_enc_set_default_internal(rb_enc_from_encoding(enc));
}
- else
+ else if (!rb_default_internal_encoding())
/* Freeze default_internal */
rb_enc_set_default_internal(Qnil);
Associated revisions
* ruby.c (process_options): fixed default_internal is nil.
(closes #862)
* ruby.c (process_options): fixed default_internal is nil.
(closes #862)
History
Updated by Yuki Sonoda about 3 years ago
- Assignee set to Nobuyoshi Nakada
- Priority changed from Low to Normal
- Target version set to 1.9.1 Release Candidate
Updated by Yukihiro Matsumoto about 3 years ago
まつもと ゆきひろです In message "Re: [ruby-dev:37409] [BUG:trunk] r20625 default_internal is nil." on Sat, 13 Dec 2008 00:48:09 +0900, Takao Kouji <kouji@takao7.net> writes: |trunk の r20625 以降、コマンドラインオプションで渡した |default_internal が nil になっています。 |以下の修正で手元では問題が解決しています。 コミットしてください。
Updated by Kouji Takao about 3 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r20720.