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

ruby-changes:3406

From: ko1@a...
Date: 6 Jan 2008 01:39:51 +0900
Subject: [ruby-changes:3406] akr - Ruby:r14899 (trunk): * re.c (rb_reg_initialize_str): /\x80/n is not an error even if script

akr	2008-01-06 01:39:38 +0900 (Sun, 06 Jan 2008)

  New Revision: 14899

  Modified files:
    trunk/ChangeLog
    trunk/re.c
    trunk/test/ruby/test_m17n.rb

  Log:
    * re.c (rb_reg_initialize_str): /\x80/n is not an error even if script
      encoding is EUC-JP.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14899&r2=14898&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/re.c?r1=14899&r2=14898&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_m17n.rb?r1=14899&r2=14898&diff_format=u

Index: re.c
===================================================================
--- re.c	(revision 14898)
+++ re.c	(revision 14899)
@@ -2035,8 +2035,14 @@
 static int
 rb_reg_initialize_str(VALUE obj, VALUE str, int options, onig_errmsg_buffer err)
 {
-    return rb_reg_initialize(obj, RSTRING_PTR(str), RSTRING_LEN(str), rb_enc_get(str),
-			     options, err);
+    int ret;
+    rb_encoding *enc = rb_enc_get(str);
+    if (options & ARG_ENCODING_NONE)
+        enc = rb_ascii8bit_encoding();
+    ret = rb_reg_initialize(obj, RSTRING_PTR(str), RSTRING_LEN(str), enc,
+			    options, err);
+    RB_GC_GUARD(str);
+    return ret;
 }
 
 static VALUE
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14898)
+++ ChangeLog	(revision 14899)
@@ -1,3 +1,8 @@
+Sun Jan  6 01:38:07 2008  Tanaka Akira  <akr@f...>
+
+	* re.c (rb_reg_initialize_str): /\x80/n is not an error even if script
+	  encoding is EUC-JP.
+
 Sun Jan  6 00:48:12 2008  NARUSE, Yui  <naruse@r...>
 
 	* lib/resolv.rb (Reolv::DNS#each_address): get A record and then AAAA
Index: test/ruby/test_m17n.rb
===================================================================
--- test/ruby/test_m17n.rb	(revision 14898)
+++ test/ruby/test_m17n.rb	(revision 14899)
@@ -382,6 +382,8 @@
     assert_warning(%r{regexp match /.../n against to UTF-8 string}) {
       assert_equal(nil, r =~ u("\xc2\xa1"))
     }
+
+    assert_nothing_raised { eval(e("/\\x80/n")) }
   end
 
   def test_regexp_ascii

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

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