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

ruby-changes:13516

From: naruse <ko1@a...>
Date: Sun, 11 Oct 2009 03:12:41 +0900 (JST)
Subject: [ruby-changes:13516] Ruby:r25292 (trunk): * regparse.c (onig_syntax_warn): added.

naruse	2009-10-11 03:12:26 +0900 (Sun, 11 Oct 2009)

  New Revision: 25292

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

  Log:
    * regparse.c (onig_syntax_warn): added.
    
    * regparse.c (CC_ESC_WARN, CLOSE_BRACKET_WITHOUT_ESC_WARN,
      CC_DUP_WARN, UNKNOWN_ESC_WARN): use onig_syntax_warn.

  Modified files:
    trunk/ChangeLog
    trunk/regparse.c

Index: regparse.c
===================================================================
--- regparse.c	(revision 25291)
+++ regparse.c	(revision 25292)
@@ -2845,17 +2845,29 @@
 #endif /* USE_NAMED_GROUP */
 
 static void
-CC_ESC_WARN(ScanEnv* env, UChar *c)
+onig_syntax_warn(ScanEnv *env, const char *fmt, ...)
 {
+    va_list args;
+    UChar buf[WARN_BUFSIZE];
+    va_start(args, fmt);
+    onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
+		env->pattern, env->pattern_end,
+		(const UChar *)fmt, args);
+    va_end(args);
+    if (env->sourcefile == NULL)
+	rb_warn(fmt, buf);
+    else
+	rb_compile_warn(env->sourcefile, env->sourceline, fmt, buf);
+}
+
+static void
+CC_ESC_WARN(ScanEnv *env, UChar *c)
+{
   if (onig_warn == onig_null_warn) return ;
 
   if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED) &&
       IS_SYNTAX_BV(env->syntax, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) {
-    UChar buf[WARN_BUFSIZE];
-    onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
-		env->pattern, env->pattern_end,
-                (UChar* )"character class has '%s' without escape", c);
-    (*onig_warn)((char* )buf);
+    onig_syntax_warn(env, "character class has '%s' without escape", c);
   }
 }
 
@@ -2865,48 +2877,27 @@
   if (onig_warn == onig_null_warn) return ;
 
   if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED)) {
-    UChar buf[WARN_BUFSIZE];
-    onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc,
-		(env)->pattern, (env)->pattern_end,
-		(UChar* )"regular expression has '%s' without escape", c);
-    (*onig_warn)((char* )buf);
+      onig_syntax_warn(env, "regular expression has '%s' without escape", c);
   }
 }
 
 static void
 CC_DUP_WARN(ScanEnv *env)
 {
-  UChar buf[WARN_BUFSIZE];
   if (onig_warn == onig_null_warn || !RTEST(ruby_verbose)) return ;
 
   if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_DUP) &&
     !((env)->warnings_flag & ONIG_SYN_WARN_CC_DUP)) {
     (env)->warnings_flag |= ONIG_SYN_WARN_CC_DUP;
-    onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
-	    env->pattern, env->pattern_end,
-	    (UChar* )"character class has duplicated range");
-
-    if (env->sourcefile == NULL)
-	(*onig_warn)((char* )buf);
-    else
-	rb_compile_warn(env->sourcefile, env->sourceline, (char* )buf);
+    onig_syntax_warn(env, "character class has duplicated range");
   }
 }
 
 static void
 UNKNOWN_ESC_WARN(ScanEnv *env, int c)
 {
-  UChar buf[WARN_BUFSIZE];
   if (onig_warn == onig_null_warn || !RTEST(ruby_verbose)) return ;
-
-  onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,
-	  env->pattern, env->pattern_end,
-	  (UChar* )"Unknown escape \\%c is ignored", c);
-
-  if (env->sourcefile == NULL)
-      (*onig_warn)((char* )buf);
-  else
-      rb_compile_warn(env->sourcefile, env->sourceline, (char* )buf);
+  onig_syntax_warn(env, "Unknown escape \\%c is ignored", c);
 }
 
 static UChar*
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 25291)
+++ ChangeLog	(revision 25292)
@@ -1,3 +1,10 @@
+Sun Oct 11 03:10:50 2009  NARUSE, Yui  <naruse@r...>
+
+	* regparse.c (onig_syntax_warn): added.
+
+	* regparse.c (CC_ESC_WARN, CLOSE_BRACKET_WITHOUT_ESC_WARN,
+	  CC_DUP_WARN, UNKNOWN_ESC_WARN): use onig_syntax_warn.
+
 Sun Oct 11 00:14:38 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* marshal.c (marshal_dump, marshal_load): prevent from GC.

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

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