]> granicus.if.org Git - php/commitdiff
Fix a long-standing infelicity that resulted in extra regex information
authorAndrei Zmievski <andrei@php.net>
Tue, 12 Feb 2002 03:15:27 +0000 (03:15 +0000)
committerAndrei Zmievski <andrei@php.net>
Tue, 12 Feb 2002 03:15:27 +0000 (03:15 +0000)
not being passed to PCRE functions.

ext/pcre/php_pcre.c
ext/pcre/php_pcre.h

index ff14d1fb5c53e71cd368c6b08f4081d657df52ca..0b54cfd6aac242afa5be6a7c1333e7423da21a43 100644 (file)
@@ -124,7 +124,7 @@ static PHP_RINIT_FUNCTION(pcre)
 
 /* {{{ pcre_get_compiled_regex
  */
-PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra *extra, int *preg_options) {
+PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra **extra, int *preg_options) {
        pcre                            *re = NULL;
        int                                      coptions = 0;
        int                                      soptions = 0;
@@ -153,7 +153,7 @@ PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra *extra, int *preg_o
 #if HAVE_SETLOCALE
                if (!strcmp(pce->locale, locale)) {
 #endif
-                       extra = pce->extra;
+                       *extra = pce->extra;
                        *preg_options = pce->preg_options;
                        return pce->re;
 #if HAVE_SETLOCALE
@@ -283,7 +283,7 @@ PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra *extra, int *preg_o
        /* If study option was specified, study the pattern and
           store the result in extra for passing to pcre_exec. */
        if (do_study) {
-               extra = pcre_study(re, soptions, &error);
+               *extra = pcre_study(re, soptions, &error);
                if (error != NULL) {
                        zend_error(E_WARNING, "Error while studying pattern");
                }
@@ -295,7 +295,7 @@ PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra *extra, int *preg_o
 
        /* Store the compiled pattern and extra info in the cache. */
        new_entry.re = re;
-       new_entry.extra = extra;
+       new_entry.extra = *extra;
        new_entry.preg_options = poptions;
 #if HAVE_SETLOCALE
        new_entry.locale = locale;
@@ -383,7 +383,7 @@ static void php_pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global)
        }
 
        /* Compile regex or get it from cache. */
-       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), extra, &preg_options)) == NULL) {
+       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), &extra, &preg_options)) == NULL) {
                RETURN_FALSE;
        }
 
@@ -709,7 +709,7 @@ PHPAPI char *php_pcre_replace(char *regex,   int regex_len,
                                         walk_last;                     /* Last walked character */
 
        /* Compile regex or get it from cache. */
-       if ((re = pcre_get_compiled_regex(regex, extra, &preg_options)) == NULL) {
+       if ((re = pcre_get_compiled_regex(regex, &extra, &preg_options)) == NULL) {
                return NULL;
        }
 
@@ -1110,7 +1110,7 @@ PHP_FUNCTION(preg_split)
        convert_to_string_ex(subject);
        
        /* Compile regex or get it from cache. */
-       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), extra, &preg_options)) == NULL) {
+       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), &extra, &preg_options)) == NULL) {
                RETURN_FALSE;
        }
        
@@ -1322,7 +1322,7 @@ PHP_FUNCTION(preg_grep)
        }
        
        /* Compile regex or get it from cache. */
-       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), extra, &preg_options)) == NULL) {
+       if ((re = pcre_get_compiled_regex(Z_STRVAL_PP(regex), &extra, &preg_options)) == NULL) {
                RETURN_FALSE;
        }
 
index a561ced319a3eeeb3b08f1c03e115184cec4a125..5a48e3c87c9dde5b33cf19e7169a6f19a9305c69 100644 (file)
@@ -42,7 +42,7 @@ PHP_FUNCTION(preg_quote);
 PHP_FUNCTION(preg_grep);
 
 PHPAPI char *php_pcre_replace(char *regex,   int regex_len, char *subject, int subject_len, zval *replace_val, int is_callable_replace, int *result_len, int limit TSRMLS_DC);
-PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra *extra, int *options);
+PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra **extra, int *options);
 
 extern zend_module_entry pcre_module_entry;
 #define pcre_module_ptr &pcre_module_entry