]> granicus.if.org Git - php/commitdiff
Fix compilation when PCRE is disabled.
authorAndrei Zmievski <andrei@php.net>
Thu, 21 Mar 2002 15:28:46 +0000 (15:28 +0000)
committerAndrei Zmievski <andrei@php.net>
Thu, 21 Mar 2002 15:28:46 +0000 (15:28 +0000)
ext/standard/aggregation.c
ext/standard/basic_functions.c

index 0ec41c7f457d9f07ff0999b27cce4d660789e9e0..0bed0a50c8d8aad40f181940c69598a33f983691 100644 (file)
@@ -86,20 +86,25 @@ static void aggregate_methods(zend_class_entry *ce, zend_class_entry *from_ce, i
        uint func_name_len;
        ulong num_key;
        zval *list_hash = NULL;
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
        pcre *re = NULL;
        pcre_extra *re_extra = NULL;
        int re_options = 0;
+#endif
 
        /*
         * Flip the array for easy lookup, or compile the regexp.
         */
        if (aggr_type == AGGREGATE_BY_LIST) {
                list_hash = array_to_hash(aggr_filter);
-       } else if (aggr_type == AGGREGATE_BY_REGEXP) {
+       }
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+       else if (aggr_type == AGGREGATE_BY_REGEXP) {
                if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
                        return;
                }
        }
+#endif
 
        /*
         * "Just because it's not nice doesn't mean it's not miraculous."
@@ -122,9 +127,13 @@ static void aggregate_methods(zend_class_entry *ce, zend_class_entry *from_ce, i
                        /* 2. private methods (heh, like we really have them) */
                                func_name[0] == '_' ||
                        /* 3. explicitly excluded methods */
-                               (aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), func_name, func_name_len)) ||
+                               (aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), func_name, func_name_len))
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+                               ||
                        /* 4. methods matching regexp as modified by the exclusion flag */
-                               (aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, func_name, func_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1) {
+                               (aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, func_name, func_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1
+#endif
+                               ) {
                                zend_hash_move_forward_ex(&from_ce->function_table, &pos);
                                continue;
                        }
@@ -178,9 +187,11 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
        uint prop_name_len;
        ulong num_key;
        zval *list_hash = NULL;
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
        pcre *re = NULL;
        pcre_extra *re_extra = NULL;
        int re_options = 0;
+#endif
 
        if (!from_ce->constants_updated) {
                zend_hash_apply_with_argument(&from_ce->default_properties, (apply_func_arg_t) zval_update_constant, (void *) 1 TSRMLS_CC);
@@ -192,11 +203,14 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
         */
        if (aggr_type == AGGREGATE_BY_LIST) {
                list_hash = array_to_hash(aggr_filter);
-       } else if (aggr_type == AGGREGATE_BY_REGEXP) {
+       }
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+       else if (aggr_type == AGGREGATE_BY_REGEXP) {
                if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
                        return;
                }
        }
+#endif
 
        /*
         * "Just because it's not nice doesn't mean it's not miraculous."
@@ -217,9 +231,13 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
                         * 1. private properties (heh, like we really have them) */
                        if (prop_name[0] == '_' ||
                        /* 2. explicitly excluded properties */
-                               (aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), prop_name, prop_name_len)) ||
+                               (aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), prop_name, prop_name_len))
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+                               ||
                        /* 3. properties matching regexp as modified by the exclusion flag */
-                               (aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, prop_name, prop_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1) {
+                               (aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, prop_name, prop_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1
+#endif
+                               ) {
                                zend_hash_move_forward_ex(&from_ce->default_properties, &pos);
                                continue;
                        }
@@ -478,15 +496,6 @@ PHP_FUNCTION(aggregate_methods_by_list)
 /* }}} */
 
 
-/* {{{ proto void aggregate_methods_by_regexp(object obj, string class, string regexp [, bool exclude])
-   */
-PHP_FUNCTION(aggregate_methods_by_regexp)
-{
-       aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_METHODS, AGGREGATE_BY_REGEXP);
-}
-/* }}} */
-
-
 /* {{{ proto void aggregate_properties(object obj, string class)
    */
 PHP_FUNCTION(aggregate_properties)
@@ -504,6 +513,15 @@ PHP_FUNCTION(aggregate_properties_by_list)
 }
 /* }}} */
 
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+/* {{{ proto void aggregate_methods_by_regexp(object obj, string class, string regexp [, bool exclude])
+   */
+PHP_FUNCTION(aggregate_methods_by_regexp)
+{
+       aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_METHODS, AGGREGATE_BY_REGEXP);
+}
+/* }}} */
+
 
 /* {{{ proto void aggregate_properties_by_regexp(object obj, string class, string regexp [, bool exclude])
    */
@@ -512,6 +530,7 @@ PHP_FUNCTION(aggregate_properties_by_regexp)
        aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_PROPERTIES, AGGREGATE_BY_REGEXP);
 }
 /* }}} */
+#endif
 
 
 /* {{{ proto array aggregation_info(object obj)
index 5dbc1a1a02e234045b1d525bce41e45496b0ea18..69d224392d401ce8071326c9ef306f9acba06d47 100644 (file)
@@ -819,10 +819,12 @@ function_entry basic_functions[] = {
        PHP_FE(aggregate,                                               first_arg_force_ref)
        PHP_FE(aggregate_methods,                               first_arg_force_ref)
        PHP_FE(aggregate_methods_by_list,               first_arg_force_ref)
-       PHP_FE(aggregate_methods_by_regexp,             first_arg_force_ref)
        PHP_FE(aggregate_properties,                    first_arg_force_ref)
        PHP_FE(aggregate_properties_by_list,    first_arg_force_ref)
+#if HAVE_PCRE || HAVE_BUNDLED_PCRE
+       PHP_FE(aggregate_methods_by_regexp,             first_arg_force_ref)
        PHP_FE(aggregate_properties_by_regexp,  first_arg_force_ref)
+#endif
        PHP_FE(deaggregate,                                             first_arg_force_ref)
        PHP_FE(aggregation_info,                                first_arg_force_ref)
        {NULL, NULL, NULL}