diff --git a/ChangeLog b/ChangeLog index d6fbe0fee4..6a67299a17 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 21 13:09:11 2007 Tanaka Akira + + * encoding.c (rb_locale_charmap): return nil if no locale information. + Fri Dec 21 12:55:39 2007 Tanaka Akira * lib/runit, lib/rubyunit.rb, test/testunit/runit: removed. diff --git a/encoding.c b/encoding.c index 07c9b42e9d..1af3c4422c 100644 --- a/encoding.c +++ b/encoding.c @@ -714,7 +714,7 @@ rb_locale_charmap(VALUE klass) codeset = nl_langinfo(CODESET); return rb_str_new2(codeset); #else - return rb_str_new2("ASCII-8BIT"); + return Qnil; #endif } diff --git a/ruby.c b/ruby.c index f16ed424c8..525a3cdb19 100644 --- a/ruby.c +++ b/ruby.c @@ -139,9 +139,12 @@ static rb_encoding * locale_encoding(void) { VALUE codeset = rb_locale_charmap(Qnil); - char *name = StringValueCStr(codeset); + char *name; int idx; + if (codeset == Qnil) + return rb_default_encoding(); + idx = rb_enc_find_index(name); if (idx < 0) return rb_default_encoding();