ruby-changes:2919
From: ko1@a...
Date: 21 Dec 2007 15:59:59 +0900
Subject: [ruby-changes:2919] nobu - Ruby:r14410 (trunk): * encoding.c (rb_enc_init): use enc_register_at() directly.
nobu 2007-12-21 15:59:48 +0900 (Fri, 21 Dec 2007) New Revision: 14410 Modified files: trunk/ChangeLog trunk/encoding.c trunk/include/ruby/encoding.h trunk/parse.y Log: * encoding.c (rb_enc_init): use enc_register_at() directly. * encoding.c (rb_utf8_encoding): returns utf-8 encoding. * include/ruby/encoding.h (rb_utf8_encoding): prototyped. * parse.y (UTF8_ENC): uses rb_utf8_encoding(). http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=14410&r2=14409 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14410&r2=14409 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/encoding.h?r1=14410&r2=14409 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/encoding.c?r1=14410&r2=14409 Index: encoding.c =================================================================== --- encoding.c (revision 14409) +++ encoding.c (revision 14410) @@ -236,14 +236,23 @@ return enc_alias(alias, orig); } +enum { + ENCINDEX_ASCII, + ENCINDEX_EUC_JP, + ENCINDEX_SJIS, + ENCINDEX_UTF8, + ENCINDEX_BUILTIN_MAX +}; + void rb_enc_init(void) { -#define ENC_REGISTER(enc) enc_register(rb_enc_name(enc), enc) - ENC_REGISTER(ONIG_ENCODING_ASCII); - ENC_REGISTER(ONIG_ENCODING_EUC_JP); - ENC_REGISTER(ONIG_ENCODING_SJIS); - ENC_REGISTER(ONIG_ENCODING_UTF8); + enc_table_count = enc_table_expand(ENCINDEX_BUILTIN_MAX); +#define ENC_REGISTER(enc) enc_register_at(ENCINDEX_##enc, rb_enc_name(ONIG_ENCODING_##enc), ONIG_ENCODING_##enc) + ENC_REGISTER(ASCII); + ENC_REGISTER(EUC_JP); + ENC_REGISTER(SJIS); + ENC_REGISTER(UTF8); #undef ENC_REGISTER enc_alias("ASCII", rb_enc_name(ONIG_ENCODING_ASCII)); enc_alias("BINARY", rb_enc_name(ONIG_ENCODING_ASCII)); @@ -695,6 +704,15 @@ return enc_table[0].enc; } +rb_encoding * +rb_utf8_encoding(void) +{ + if (!enc_table) { + rb_enc_init(); + } + return enc_table[ENCINDEX_UTF8].enc; +} + static int default_external_index; rb_encoding * Index: include/ruby/encoding.h =================================================================== --- include/ruby/encoding.h (revision 14409) +++ include/ruby/encoding.h (revision 14410) @@ -114,6 +114,7 @@ #define rb_enc_str_asciicompat_p(str) rb_enc_asciicompat(rb_enc_get(str)) VALUE rb_enc_from_encoding(rb_encoding *enc); rb_encoding *rb_default_encoding(void); +rb_encoding *rb_utf8_encoding(void); rb_encoding *rb_default_external_encoding(void); VALUE rb_enc_default_external(void); void rb_enc_set_default_external(VALUE encoding); Index: ChangeLog =================================================================== --- ChangeLog (revision 14409) +++ ChangeLog (revision 14410) @@ -1,3 +1,13 @@ +Fri Dec 21 15:59:46 2007 Nobuyoshi Nakada <nobu@r...> + + * encoding.c (rb_enc_init): use enc_register_at() directly. + + * encoding.c (rb_utf8_encoding): returns utf-8 encoding. + + * include/ruby/encoding.h (rb_utf8_encoding): prototyped. + + * parse.y (UTF8_ENC): uses rb_utf8_encoding(). + Fri Dec 21 15:24:22 2007 Shugo Maeda <shugo@r...> * lib/net/imap.rb (initialize): accept service name. changed Index: parse.y =================================================================== --- parse.y (revision 14409) +++ parse.y (revision 14410) @@ -266,7 +266,7 @@ }; #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \ - (parser->utf8 = rb_enc_find("utf-8"))) + (parser->utf8 = rb_utf8_encoding())) #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc) #define STR_NEW0() rb_str_new(0,0) #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml