Re: cvs: php-src / run-tests.php

From: Date: Wed, 04 Mar 2009 00:30:12 +0000
Subject: Re: cvs: php-src / run-tests.php
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-56425@lists.php.net to get a copy of this message
Hi Zoe, it seems that the indention is wrong. The patch contains spaces instead of tabs. David Zoe Slattery schrieb:
zoe Tue Mar 3 10:52:56 2009 UTC
  Modified files:                  /php-src	run-tests.php   Log:
Added %r section http://cvs.php.net/viewvc.cgi/php-src/run-tests.php?r1=1.390&r2=1.391&diff_format=u Index: php-src/run-tests.php diff -u php-src/run-tests.php:1.390 php-src/run-tests.php:1.391 --- php-src/run-tests.php:1.390 Mon Jan 5 11:14:37 2009 +++ php-src/run-tests.php Tue Mar 3 10:52:56 2009 @@ -24,7 +24,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: run-tests.php,v 1.390 2009/01/05 11:14:37 tony2001 Exp $ */ +/* $Id: run-tests.php,v 1.391 2009/03/03 10:52:56 zoe Exp $ */ /* Sanity check to ensure that pcre extension needed by this script is available. * In the event it is not, print a nice error message indicating that this script will @@ -617,7 +617,7 @@ $html_output = is_resource($html_file); break; case '--version': - echo '$Revision: 1.390 $' . "\n"; + echo '$Revision: 1.391 $' . "\n"; exit(1); default: @@ -1737,7 +1737,32 @@ $wanted_re = preg_replace('/\r\n/', "\n", $wanted); if (isset($section_text['EXPECTF'])) { - $wanted_re = preg_quote($wanted_re, '/'); +
+                // do preg_quote, but miss out any %r delimited sections
+                $temp = "";
+                $r = "%r";
+                $startOffset = 0;
+                $length = strlen($wanted_re);
+                while($startOffset < $length) {
+                  $start = strpos($wanted_re, $r, $startOffset);
+                  if ($start !== false) {
+                    // we have found a start tag
+                    $end = strpos($wanted_re, $r, $start+2);
+                    if ($end === false) {
+                      // unbalanced tag, ignore it.
+                      $end = $start = $length;
+                    }
+                  } else {
+                    // no more %r sections
+                    $start = $end = $length;
+                  }
+                  // quote a non re portion of the string
+                  $temp = $temp . preg_quote(substr($wanted_re, $startOffset, ($start - $startOffset)),  '/');
+                  // add the re unquoted.
+                  $temp = $temp . substr($wanted_re, $start+2, ($end - $start-2));
+                  $startOffset = $end + 2;
+                }
+                $wanted_re = $temp;
$wanted_re = str_replace( array('%binary_string_optional%'), version_compare(PHP_VERSION, '6.0.0-dev') == -1 ? 'string' : 'binary string',


« previous php.cvs (#56425) next »