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

ruby-changes:3989

From: ko1@a...
Date: Fri, 15 Feb 2008 09:45:00 +0900 (JST)
Subject: [ruby-changes:3989] nobu - Ruby:r15479 (trunk): * parse.y (reg_compile_gen): reg_fragment_setenc might not raise an

nobu	2008-02-15 09:44:13 +0900 (Fri, 15 Feb 2008)

  New Revision: 15479

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

  Log:
    * parse.y (reg_compile_gen): reg_fragment_setenc might not raise an
      exception before rb_reg_compile.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=15479&r2=15478&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15479&r2=15478&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15478)
+++ ChangeLog	(revision 15479)
@@ -1,3 +1,8 @@
+Fri Feb 15 09:44:11 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (reg_compile_gen): reg_fragment_setenc might not raise an
+	  exception before rb_reg_compile.
+
 Fri Feb 15 07:37:40 2008  Eric Hodel  <drbrain@s...>
 
 	* lib/rdoc/ri/paths.rb: Preserve compatibility with 1.8.
Index: parse.y
===================================================================
--- parse.y	(revision 15478)
+++ parse.y	(revision 15479)
@@ -8655,10 +8655,14 @@
     re = rb_reg_compile(str, options & RE_OPTION_MASK);
     if (NIL_P(re)) {
 	ID mesg = rb_intern("mesg");
-	VALUE m = rb_attr_get(err, mesg);
-	rb_str_cat(m, "\n", 1);
-	rb_str_append(m, rb_attr_get(rb_errinfo(), mesg));
+	VALUE m = rb_attr_get(rb_errinfo(), mesg);
 	rb_set_errinfo(err);
+	if (!NIL_P(err)) {
+	    rb_str_append(rb_str_cat(rb_attr_get(err, mesg), "\n", 1), m);
+	}
+	else {
+	    compile_error(PARSER_ARG "%s", RSTRING_PTR(m));
+	}
 	return Qnil;
     }
     return re;

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

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