From: Andrey Hristov Date: Sun, 30 May 1999 14:48:39 +0000 (+0000) Subject: preg_match_all() now returns the number of global matches. X-Git-Tag: BEFORE_REMOVING_GC_STEP1~226 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aba3ea97cdae5832ae1f7057fe481fef00a9a913;p=php preg_match_all() now returns the number of global matches. --- diff --git a/ext/pcre/pcre.c b/ext/pcre/pcre.c index 97749fa46e..c241585309 100644 --- a/ext/pcre/pcre.c +++ b/ext/pcre/pcre.c @@ -380,6 +380,7 @@ void _pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global) piece = subject->value.str.val; subject_end = piece + subject->value.str.len; match = NULL; + matched = 0; do { /* Execute the regular expression. */ @@ -396,7 +397,7 @@ void _pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global) /* If something has matched */ if (count >= 0) { - matched = 1; + matched++; match = piece + offsets[0]; /* If subpatters array has been passed, fill it in with values. */ @@ -445,10 +446,6 @@ void _pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global) piece += offsets[1]; } } - /* If nothing matched */ - else { - matched = 0; - } } while (global && count >= 0); /* Add the match sets to the output array and clean up */