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

ruby-changes:3241

From: ko1@a...
Date: 27 Dec 2007 16:38:52 +0900
Subject: [ruby-changes:3241] akr - Ruby:r14734 (trunk): * re.c (rb_reg_s_union): show encodings in error message.

akr	2007-12-27 16:38:23 +0900 (Thu, 27 Dec 2007)

  New Revision: 14734

  Modified files:
    trunk/ChangeLog
    trunk/re.c

  Log:
    * re.c (rb_reg_s_union): show encodings in error message.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14734&r2=14733
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/re.c?r1=14734&r2=14733

Index: re.c
===================================================================
--- re.c	(revision 14733)
+++ re.c	(revision 14734)
@@ -2631,13 +2631,15 @@
                     if (!has_ascii_incompat)
                         has_ascii_incompat = enc;
                     else if (has_ascii_incompat != enc)
-                        rb_raise(rb_eArgError, "regexp encodings differ");
+                        rb_raise(rb_eArgError, "incompatible encodings: %s and %s",
+                            rb_enc_name(has_ascii_incompat), rb_enc_name(enc));
                 }
                 else if (rb_reg_fixed_encoding_p(v)) {
                     if (!has_ascii_compat_fixed)
                         has_ascii_compat_fixed = enc;
                     else if (has_ascii_compat_fixed != enc)
-                        rb_raise(rb_eArgError, "regexp encodings differ");
+                        rb_raise(rb_eArgError, "incompatible encodings: %s and %s",
+                            rb_enc_name(has_ascii_compat_fixed), rb_enc_name(enc));
                 }
                 else {
                     has_asciionly = 1;
@@ -2652,7 +2654,8 @@
                     if (!has_ascii_incompat)
                         has_ascii_incompat = enc;
                     else if (has_ascii_incompat != enc)
-                        rb_raise(rb_eArgError, "regexp encodings differ");
+                        rb_raise(rb_eArgError, "incompatible encodings: %s and %s",
+                            rb_enc_name(has_ascii_incompat), rb_enc_name(enc));
                 }
                 else if (rb_enc_str_asciionly_p(e)) {
                     has_asciionly = 1;
@@ -2661,12 +2664,20 @@
                     if (!has_ascii_compat_fixed)
                         has_ascii_compat_fixed = enc;
                     else if (has_ascii_compat_fixed != enc)
-                        rb_raise(rb_eArgError, "regexp encodings differ");
+                        rb_raise(rb_eArgError, "incompatible encodings: %s and %s",
+                            rb_enc_name(has_ascii_compat_fixed), rb_enc_name(enc));
                 }
 		v = rb_reg_s_quote(Qnil, e);
 	    }
-            if (has_ascii_incompat && (has_asciionly || has_ascii_compat_fixed)) {
-                rb_raise(rb_eArgError, "regexp encodings differ");
+            if (has_ascii_incompat) {
+                if (has_asciionly) {
+                    rb_raise(rb_eArgError, "ASCII incompatible encoding: %s",
+                        rb_enc_name(has_ascii_incompat));
+                }
+                if (has_ascii_compat_fixed) {
+                    rb_raise(rb_eArgError, "incompatible encodings: %s and %s",
+                        rb_enc_name(has_ascii_incompat), rb_enc_name(has_ascii_compat_fixed));
+                }
             }
 
 	    rb_str_append(source, v);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14733)
+++ ChangeLog	(revision 14734)
@@ -1,3 +1,7 @@
+Thu Dec 27 16:37:06 2007  Tanaka Akira  <akr@f...>
+
+	* re.c (rb_reg_s_union): show encodings in error message.
+
 Thu Dec 27 15:25:16 2007  Tanaka Akira  <akr@f...>
 
 	* encoding.c (rb_enc_codelen): show codepoint in error message.

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

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