summaryrefslogtreecommitdiffstats
path: root/encoding.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 05:25:39 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 05:25:39 +0000
commit1ba03dd21e6e1fc5f76926de7876ae5c379f381e (patch)
tree61762fe00de65cc84bebe7492ffcfa025c7d9148 /encoding.c
parent730a347f76140f9ddc7a9598a3cd4fa44e52d3d4 (diff)
downloadruby-1ba03dd21e6e1fc5f76926de7876ae5c379f381e.tar.gz
ruby-1ba03dd21e6e1fc5f76926de7876ae5c379f381e.tar.xz
ruby-1ba03dd21e6e1fc5f76926de7876ae5c379f381e.zip
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@20656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r--encoding.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/encoding.c b/encoding.c
index 8a2f9dbfb..910768d56 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