diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-25 16:40:02 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-25 16:40:02 +0000 |
commit | 42dcda08aef365e166b8784e0349a28896a871e6 (patch) | |
tree | d88f7c0ffd523d86a7ec11e2e846eb747bea485a /encoding.c | |
parent | f923cc360ae0e496da656a4253bc38fba12eed5d (diff) | |
download | ruby-42dcda08aef365e166b8784e0349a28896a871e6.tar.gz |
* string.c (rb_str_usascii_new{,2}: defined.
(rb_str_new): set US-ASCII and ENC_CODERANGE_7BIT when empty
string.
* encoding.c (rb_usascii_encoding, rb_usascii_encindex): defined.
(rb_enc_inspect, enc_name, rb_locale_charmap, rb_enc_name_list_i):
use rb_str_ascii_new.
* array.c (recursive_join, inspect_ary): ditto.
* object.c (nil_to_s, nil_inspect, true_to_s, false_to_s,
rb_mod_to_s): ditto.
* hash.c (inspect_hash, rb_hash_inspect, rb_f_getenv, env_fetch,
env_clear, env_to_s, env_inspect): ditto.
* numeric.c (flo_to_s, int_chr, rb_fix2str): ditto.
* bignum.c (rb_big2str): ditto.
* file.c (rb_file_ftype, rb_file_s_dirname, rb_file_s_extname,
file_inspect_join, Init_file): ditto.
* test/ruby/test_ruby_m17n.rb: add checks for encoding of string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r-- | encoding.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/encoding.c b/encoding.c index bddae485b9..961c3c4f3d 100644 --- a/encoding.c +++ b/encoding.c @@ -838,9 +838,11 @@ rb_enc_tolower(int c, rb_encoding *enc) static VALUE enc_inspect(VALUE self) { - return rb_sprintf("#<%s:%s%s>", rb_obj_classname(self), + VALUE str = rb_sprintf("#<%s:%s%s>", rb_obj_classname(self), rb_enc_name((rb_encoding*)DATA_PTR(self)), (ENC_DUMMY_P(self) ? " (dummy)" : "")); + ENCODING_CODERANGE_SET(str, rb_usascii_encindex(), ENC_CODERANGE_7BIT); + return str; } /* @@ -854,7 +856,7 @@ enc_inspect(VALUE self) static VALUE enc_name(VALUE self) { - return rb_str_new2(rb_enc_name((rb_encoding*)DATA_PTR(self))); + return rb_usascii_str_new2(rb_enc_name((rb_encoding*)DATA_PTR(self))); } static VALUE @@ -993,6 +995,12 @@ rb_usascii_encoding(void) return enc_table.list[ENCINDEX_US_ASCII].enc; } +int +rb_usascii_encindex(void) +{ + return ENCINDEX_US_ASCII; +} + rb_encoding * rb_locale_encoding(void) { @@ -1066,11 +1074,11 @@ VALUE rb_locale_charmap(VALUE klass) { #if defined NO_LOCALE_CHARMAP - return rb_str_new2("ASCII-8BIT"); + return rb_usascii_str_new2("ASCII-8BIT"); #elif defined HAVE_LANGINFO_H char *codeset; codeset = nl_langinfo(CODESET); - return rb_str_new2(codeset); + return rb_usascii_str_new2(codeset); #elif defined _WIN32 return rb_sprintf("CP%d", GetACP()); #else @@ -1128,7 +1136,7 @@ static int rb_enc_name_list_i(st_data_t name, st_data_t idx, st_data_t arg) { VALUE ary = (VALUE)arg; - VALUE str = rb_str_new2((char *)name); + VALUE str = rb_usascii_str_new2((char *)name); OBJ_FREEZE(str); rb_ary_push(ary, str); return ST_CONTINUE; @@ -1172,11 +1180,11 @@ rb_enc_aliases_enc_i(st_data_t name, st_data_t orig, st_data_t arg) if (STRCASECMP((char*)name, rb_enc_name(enc)) == 0) { return ST_CONTINUE; } - str = rb_str_new2(rb_enc_name(enc)); + str = rb_usascii_str_new2(rb_enc_name(enc)); OBJ_FREEZE(str); rb_ary_store(ary, idx, str); } - key = rb_str_new2((char *)name); + key = rb_usascii_str_new2((char *)name); OBJ_FREEZE(key); rb_hash_aset(aliases, key, str); return ST_CONTINUE; |