diff options
| author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-13 01:02:36 +0000 |
|---|---|---|
| committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-13 01:02:36 +0000 |
| commit | bd5a79281c3c29efefceea8395652508799ba398 (patch) | |
| tree | 43eb26e861c04cecabf11f5a3f8c0969c5376232 | |
| parent | 1de7f6a350225bf9711f03427f09f1529ecd1042 (diff) | |
merges r20624 from trunk into ruby_1_9_1.
* encoding.c (rb_enc_set_default_internal): defines internal
encoding as nil.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@20697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 14 | ||||
| -rw-r--r-- | encoding.c | 10 |
2 files changed, 23 insertions, 1 deletions
@@ -1,3 +1,17 @@ +Thu Dec 11 13:17:04 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * encoding.c (rb_enc_set_default_internal): defines internal + encoding as nil. + + * encoding.c (rb_locale_encoding): removed Encoding::LOCALE. + + * encoding.c (rb_enc_set_default_external): ditto. + + * encoding.c (rb_enc_set_default_internal): ditto. + + * encoding.c (rb_enc_set_default_internal): defines internal + encoding as nil. + Thu Dec 11 10:25:25 2008 Yukihiro Matsumoto <matz@ruby-lang.org> * test/ruby/test_bignum.rb (TestBignum#test_convert): remove diff --git a/encoding.c b/encoding.c index d92a925aa..eb52f8375 100644 --- a/encoding.c +++ b/encoding.c @@ -38,6 +38,7 @@ static struct { void rb_enc_init(void); #define ENCODING_COUNT ENCINDEX_BUILTIN_MAX +#define UNSPECIFIED_ENCODING INT_MAX #define enc_autoload_p(enc) (!rb_enc_mbmaxlen(enc)) @@ -507,7 +508,12 @@ rb_enc_find_index(const char *name) if (i < 0) { i = load_encoding(name); } - else if (enc_autoload_p(enc = rb_enc_from_index(i))) { + else if (!(enc = rb_enc_from_index(i))) { + if (i != UNSPECIFIED_ENCODING) { + rb_raise(rb_eArgError, "encoding %s is not registered", name); + } + } + else if (enc_autoload_p(enc)) { if (enc_autoload(enc) < 0) { rb_warn("failed to load encoding (%s); use ASCII-8BIT instead", name); @@ -1111,6 +1117,8 @@ rb_enc_set_default_internal(VALUE encoding) if (NIL_P(encoding)) { default_internal_index = -1; default_internal = 0; + st_insert(enc_table.names, (st_data_t)strdup("internal"), + (st_data_t)UNSPECIFIED_ENCODING); return; } |
