From aa06e69000ef8e1ba440925462672f359f91c48d Mon Sep 17 00:00:00 2001 From: yugui Date: Fri, 12 Dec 2008 05:25:39 +0000 Subject: * encoding.c (enc_get_default_encoding): removed. Generalizing rb_default_{external,internal}_encoding seems to be difficult. default_external cannot be NULL even before detected. [ruby-dev:37390] * encoding.c (rb_default_external_encoding): has its own implementation again. * encoding.c (rb_default_internal_encoding): ditto. * gem_prelude.rb: added notice. * ruby.c (rubylib_mangled_path, rubylib_mangled_path2): uses locale encoding but not ASCII-8BIT. * ruby.c (process_options): refers less to default_external. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- encoding.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'encoding.c') diff --git a/encoding.c b/encoding.c index 8a2f9dbfb9..910768d56a 100644 --- a/encoding.c +++ b/encoding.c @@ -1037,15 +1037,6 @@ struct default_encoding { rb_encoding *enc; }; -static rb_encoding * -enc_get_default_encoding(struct default_encoding *def) -{ - if (!def->enc && def->index >= 0) { - def->enc = rb_enc_from_index(def->index); - } - return def->enc; -} - static int enc_set_default_encoding(struct default_encoding *def, VALUE encoding, const char *name, int defindex) @@ -1077,7 +1068,15 @@ static struct default_encoding default_external = {-2}; rb_encoding * rb_default_external_encoding(void) { - return enc_get_default_encoding(&default_external); + if (default_external.enc) return default_external.enc; + + if (default_external.index >= 0) { + default_external.enc = rb_enc_from_index(default_external.index); + return default_external.enc; + } + else { + return rb_locale_encoding(); + } } VALUE @@ -1126,7 +1125,10 @@ static struct default_encoding default_internal = {-2}; rb_encoding * rb_default_internal_encoding(void) { - return enc_get_default_encoding(&default_internal); + if (!default_internal.enc && default_internal.index >= 0) { + default_internal.enc = rb_enc_from_index(default_internal.index); + } + return default_internal.enc; /* can be NULL */ } VALUE -- cgit v1.2.3