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

ruby-changes:13078

From: naruse <ko1@a...>
Date: Thu, 10 Sep 2009 16:05:52 +0900 (JST)
Subject: [ruby-changes:13078] Ruby:r24825 (trunk): Warn unknown escaped chars in regexp.

naruse	2009-09-10 16:00:44 +0900 (Thu, 10 Sep 2009)

  New Revision: 24825

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

  Log:
    Warn unknown escaped chars in regexp.
    
    * regparse.c (UNKNOWN_ESC_WARN): added.
    
    * regparse.c (conv_backslash_value): Warn unknown
      escaped chars in regexp. [ruby-dev:39104]

  Modified files:
    trunk/ChangeLog
    trunk/regparse.c

Index: regparse.c
===================================================================
--- regparse.c	(revision 24824)
+++ regparse.c	(revision 24825)
@@ -2115,6 +2115,8 @@
     return 0;
 }
 
+static void UNKNOWN_ESC_WARN(ScanEnv *env, int c);
+
 static int
 conv_backslash_value(int c, ScanEnv* env)
 {
@@ -2133,6 +2135,8 @@
       break;
 
     default:
+      if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))
+	  UNKNOWN_ESC_WARN(env, c);
       break;
     }
   }
@@ -2885,6 +2889,22 @@
   }
 }
 
+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);
+}
+
 static UChar*
 find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to,
 		  UChar **next, OnigEncoding enc)
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24824)
+++ ChangeLog	(revision 24825)
@@ -1,3 +1,10 @@
+Thu Sep 10 15:59:05 2009  NARUSE, Yui  <naruse@r...>
+
+	* regparse.c (UNKNOWN_ESC_WARN): added.
+
+	* regparse.c (conv_backslash_value): Warn unknown
+	  escaped chars in regexp. [ruby-dev:39104]
+
 Wed Sep  9 22:02:02 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/fileutils.rb (FileUtils::Entry_#copy_file): open the source

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

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