aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--encoding.c2
-rw-r--r--ruby.c5
3 files changed, 9 insertions, 2 deletions
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 <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
}
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();