diff options
author | Andrei Zmievski <andrei@php.net> | 2002-03-21 15:28:46 +0000 |
---|---|---|
committer | Andrei Zmievski <andrei@php.net> | 2002-03-21 15:28:46 +0000 |
commit | 1cf188ae1bedbfdb24aa46fb1eaf7b077761bb2c (patch) | |
tree | f507f8f5cd4ca6af942ace7048d2b51e27f07852 | |
parent | a15c9a31ebc7041bbe902e3fd0d9947eff4f4b06 (diff) | |
download | php-git-1cf188ae1bedbfdb24aa46fb1eaf7b077761bb2c.tar.gz |
Fix compilation when PCRE is disabled.
-rw-r--r-- | ext/standard/aggregation.c | 49 | ||||
-rw-r--r-- | ext/standard/basic_functions.c | 4 |
2 files changed, 37 insertions, 16 deletions
diff --git a/ext/standard/aggregation.c b/ext/standard/aggregation.c index 0ec41c7f45..0bed0a50c8 100644 --- a/ext/standard/aggregation.c +++ b/ext/standard/aggregation.c @@ -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) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 5dbc1a1a02..69d224392d 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -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} |