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

ruby-changes:9087

From: nobu <ko1@a...>
Date: Thu, 11 Dec 2008 13:17:28 +0900 (JST)
Subject: [ruby-changes:9087] Ruby:r20624 (trunk): * encoding.c (rb_enc_set_default_internal): defines internal

nobu	2008-12-11 13:17:10 +0900 (Thu, 11 Dec 2008)

  New Revision: 20624

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20624

  Log:
    * encoding.c (rb_enc_set_default_internal): defines internal
      encoding as nil.

  Modified files:
    trunk/ChangeLog
    trunk/encoding.c

Index: encoding.c
===================================================================
--- encoding.c	(revision 20623)
+++ encoding.c	(revision 20624)
@@ -38,6 +38,7 @@
 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 @@
     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 @@
     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;
     }
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20623)
+++ ChangeLog	(revision 20624)
@@ -1,11 +1,17 @@
-Thu Dec 11 11:51:36 2008  Nobuyoshi Nakada  <nobu@r...>
+Thu Dec 11 13:17:04 2008  Nobuyoshi Nakada  <nobu@r...>
 
+	* 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 11:11:03 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* include/ruby/st.h (size_t): needs stddef.h or stdlib.h.

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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