From e586468a4e8e4906392dd99a302c39f623212321 Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Sat, 5 Jun 1999 13:56:18 +0000 Subject: [PATCH] Not sure that's the right fix, but at least it fixes the symptom --- ext/ereg/ereg.c | 7 +++++-- ext/standard/reg.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c index 8a7d97c9bb..6f5a08a981 100644 --- a/ext/ereg/ereg.c +++ b/ext/ereg/ereg.c @@ -564,6 +564,7 @@ PHP_FUNCTION(split) /* churn through str, generating array entries as we go */ while ((count == -1 || count > 0) && !(err = regexec(&re, strp, 1, subs, 0))) { + printf("In the loop...\n"); if (subs[0].rm_so == 0 && subs[0].rm_eo) { /* match is at start of string, return empty string */ add_next_index_stringl(return_value, empty_string, 0, 1); @@ -591,7 +592,9 @@ PHP_FUNCTION(split) /* if we're only looking for a certain number of points, stop looking once we hit it */ - if (count != -1) count--; + if (count != -1) { + count--; + } } /* see if we encountered an error */ @@ -604,7 +607,7 @@ PHP_FUNCTION(split) } /* otherwise we just have one last element to add to the array */ - if (count == -1) { + if (count == -1 || err==REG_NOMATCH) { size = endp - strp; add_next_index_stringl(return_value, strp, size, 1); diff --git a/ext/standard/reg.c b/ext/standard/reg.c index 8a7d97c9bb..6f5a08a981 100644 --- a/ext/standard/reg.c +++ b/ext/standard/reg.c @@ -564,6 +564,7 @@ PHP_FUNCTION(split) /* churn through str, generating array entries as we go */ while ((count == -1 || count > 0) && !(err = regexec(&re, strp, 1, subs, 0))) { + printf("In the loop...\n"); if (subs[0].rm_so == 0 && subs[0].rm_eo) { /* match is at start of string, return empty string */ add_next_index_stringl(return_value, empty_string, 0, 1); @@ -591,7 +592,9 @@ PHP_FUNCTION(split) /* if we're only looking for a certain number of points, stop looking once we hit it */ - if (count != -1) count--; + if (count != -1) { + count--; + } } /* see if we encountered an error */ @@ -604,7 +607,7 @@ PHP_FUNCTION(split) } /* otherwise we just have one last element to add to the array */ - if (count == -1) { + if (count == -1 || err==REG_NOMATCH) { size = endp - strp; add_next_index_stringl(return_value, strp, size, 1); -- 2.40.0