nlopess         Wed Jan 28 22:40:37 2009 UTC

  Modified files:              
    /php-src/ext/pcre   php_pcre.c 
    /php-src/ext/pcre/tests     bug47229.phpt preg_quote_basic.phpt 
  Log:
  MFB: fix bug #47229: preg_quote should escape '-'
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/php_pcre.c?r1=1.245&r2=1.246&diff_format=u
Index: php-src/ext/pcre/php_pcre.c
diff -u php-src/ext/pcre/php_pcre.c:1.245 php-src/ext/pcre/php_pcre.c:1.246
--- php-src/ext/pcre/php_pcre.c:1.245   Wed Dec 31 11:12:34 2008
+++ php-src/ext/pcre/php_pcre.c Wed Jan 28 22:40:34 2009
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_pcre.c,v 1.245 2008/12/31 11:12:34 sebastian Exp $ */
+/* $Id: php_pcre.c,v 1.246 2009/01/28 22:40:34 nlopess Exp $ */
 
 /*  TODO
  *  php_pcre_replace_impl():
@@ -1856,6 +1856,7 @@
                        case '<':
                        case '|':
                        case ':':
+                       case '-':
                                *q++ = '\\';
                                *q++ = c;
                                break;
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/bug47229.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/pcre/tests/bug47229.phpt
diff -u /dev/null php-src/ext/pcre/tests/bug47229.phpt:1.2
--- /dev/null   Wed Jan 28 22:40:36 2009
+++ php-src/ext/pcre/tests/bug47229.phpt        Wed Jan 28 22:40:35 2009
@@ -0,0 +1,37 @@
+--TEST--
+Bug #47229 (preg_quote() doesn't escape -)
+--FILE--
+<?php
+
+var_dump(preg_quote('-oh really?'));
+
+// make sure there's no regression in matching
+preg_match('/[a\-c]+/', 'a---b', $m);
+var_dump($m);
+
+preg_match('/[a\-c]+/', 'a\-', $m);
+var_dump($m);
+
+preg_match("/a\-{2,}/", 'a----a', $m);
+var_dump($m);
+
+preg_match("/a\-{1,}/", 'a\----a', $m);
+var_dump($m);
+
+?>
+--EXPECT--
+string(13) "\-oh really\?"
+array(1) {
+  [0]=>
+  string(4) "a---"
+}
+array(1) {
+  [0]=>
+  string(1) "a"
+}
+array(1) {
+  [0]=>
+  string(5) "a----"
+}
+array(0) {
+}
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/preg_quote_basic.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/pcre/tests/preg_quote_basic.phpt
diff -u php-src/ext/pcre/tests/preg_quote_basic.phpt:1.3 
php-src/ext/pcre/tests/preg_quote_basic.phpt:1.4
--- php-src/ext/pcre/tests/preg_quote_basic.phpt:1.3    Tue May 27 13:54:30 2008
+++ php-src/ext/pcre/tests/preg_quote_basic.phpt        Wed Jan 28 22:40:36 2009
@@ -16,7 +16,7 @@
 ?>
 --EXPECT--
 $string_before looks like: /this *-has \ metacharacters^ in $
-$string_after looks like: \/this \*-has \\ metacharacters\^ in \$, with 
metacharacters and / (set as delimiter) escaped
+$string_after looks like: \/this \*\-has \\ metacharacters\^ in \$, with 
metacharacters and / (set as delimiter) escaped
 int(1)
 array(1) {
   [0]=>



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to