Project

General

Profile

Actions

Bug #862

closed

r20625 default_internal is nil.

Added by kouji (Kouji Takao) over 13 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
ruby -v:
Backport:
[ruby-dev:37409]

Description

=begin
高尾宏治です。

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);
    =end
Actions

Also available in: Atom PDF