diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | encoding.c | 2 | ||||
-rw-r--r-- | ruby.c | 5 |
3 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,7 @@ +Fri Dec 21 13:09:11 2007 Tanaka Akira <akr@fsij.org> + + * encoding.c (rb_locale_charmap): return nil if no locale information. + Fri Dec 21 12:55:39 2007 Tanaka Akira <akr@fsij.org> * 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 } @@ -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(); |