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

ruby-changes:2255

From: ko1@a...
Date: 21 Oct 2007 18:29:34 +0900
Subject: [ruby-changes:2255] nobu - Ruby:r13746 (trunk): * encoding.c (rb_enc_default, rb_enc_primary): return pointers to

nobu	2007-10-21 18:29:19 +0900 (Sun, 21 Oct 2007)

  New Revision: 13746

  Modified files:
    trunk/ChangeLog
    trunk/encoding.c
    trunk/include/ruby/encoding.h
    trunk/version.h

  Log:
    * encoding.c (rb_enc_default, rb_enc_primary): return pointers to
      rb_encoding of default and primary respectively.  [ruby-core:12795]
    
    * encoding.c (set_primary_encoding): removed primary_encoding setter.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=13746&r2=13745
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13746&r2=13745
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/encoding.h?r1=13746&r2=13745
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/encoding.c?r1=13746&r2=13745

Index: encoding.c
===================================================================
--- encoding.c	(revision 13745)
+++ encoding.c	(revision 13746)
@@ -48,6 +48,7 @@
 rb_enc_from_encoding(rb_encoding *encoding)
 {
     VALUE enc;
+    if (!encoding) return 0;
     if (enc_initialized_p(encoding))
 	return ENC_FROM_ENCODING(encoding);
     enc = enc_new(encoding);
@@ -524,12 +525,27 @@
     return enc_find(klass, str);
 }
 
-static VALUE rb_primary_encoding;
+static int primary_encoding_index;
 
+rb_encoding *
+rb_enc_default(void)
+{
+    if (!enc_table) {
+	rb_enc_init();
+    }
+    return enc_table[0].enc;
+}
+
+rb_encoding *
+rb_enc_primary(void)
+{
+    return rb_enc_from_index(primary_encoding_index);
+}
+
 VALUE
 rb_get_primary_encoding(void)
 {
-    return rb_primary_encoding;
+    return rb_enc_from_encoding(rb_enc_primary());
 }
 
 static VALUE
@@ -542,16 +558,9 @@
 rb_set_primary_encoding(VALUE encoding)
 {
     rb_to_encoding(encoding);
-    rb_primary_encoding = encoding;
+    primary_encoding_index = ENCODING_GET(encoding);
 }
 
-static VALUE
-set_primary_encoding(VALUE klass, VALUE enc)
-{
-    rb_set_primary_encoding(enc);
-    return rb_primary_encoding;
-}
-
 static void
 set_encoding_const(const char *name, rb_encoding *enc)
 {
@@ -616,9 +625,7 @@
     rb_define_method(rb_cEncoding, "_dump", enc_dump, -1);
     rb_define_singleton_method(rb_cEncoding, "_load", enc_load, 1);
 
-    rb_primary_encoding = rb_enc_from_encoding(rb_enc_from_index(0));
     rb_define_singleton_method(rb_cEncoding, "primary_encoding", get_primary_encoding, 0);
-    rb_define_singleton_method(rb_cEncoding, "primary_encoding=", set_primary_encoding, 1);
 
     for (i = 0; i < enc_table_size; ++i) {
 	rb_encoding *enc = enc_table[i].enc;
Index: include/ruby/encoding.h
===================================================================
--- include/ruby/encoding.h	(revision 13745)
+++ include/ruby/encoding.h	(revision 13746)
@@ -100,6 +100,8 @@
 int rb_enc_symname_p(const char*, rb_encoding*);
 int rb_enc_str_coderange(VALUE);
 VALUE rb_enc_from_encoding(rb_encoding *enc);
+rb_encoding *rb_enc_primary(void);
+rb_encoding *rb_enc_default(void);
 VALUE rb_get_primary_encoding(void);
 void rb_set_primary_encoding(VALUE encoding);
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13745)
+++ ChangeLog	(revision 13746)
@@ -1,3 +1,10 @@
+Sun Oct 21 18:29:17 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* encoding.c (rb_enc_default, rb_enc_primary): return pointers to
+	  rb_encoding of default and primary respectively.  [ruby-core:12795]
+
+	* encoding.c (set_primary_encoding): removed primary_encoding setter.
+
 Sat Oct 20 11:49:20 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (rb_get_path): returns frozen string.
Index: version.h
===================================================================
--- version.h	(revision 13745)
+++ version.h	(revision 13746)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2007-10-20"
+#define RUBY_RELEASE_DATE "2007-10-21"
 #define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20071020
+#define RUBY_RELEASE_CODE 20071021
 #define RUBY_PATCHLEVEL 0
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 0
 #define RUBY_RELEASE_YEAR 2007
 #define RUBY_RELEASE_MONTH 10
-#define RUBY_RELEASE_DAY 20
+#define RUBY_RELEASE_DAY 21
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];

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

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