[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]