summaryrefslogtreecommitdiff
path: root/Src/pattern.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index 737f5cdcb..97d488a31 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -2030,6 +2030,16 @@ int errsfound; /* Total error count so far */
/**/
int forceerrs; /* Forced maximum error count */
+/*
+ * exactpos is used to remember how far down an exact string we have
+ * matched, if we are doing approximation and can therefore redo from
+ * the same point; we never need to otherwise.
+ *
+ * exactend is a pointer to the end of the string, which isn't
+ * null-terminated.
+ */
+static char *exactpos, *exactend;
+
/**/
void
pattrystart(void)
@@ -2463,6 +2473,8 @@ pattryrefs(Patprog prog, char *string, int stringlen, int unmetalenin,
patinput = patinstart;
+ exactpos = exactend = NULL;
+ /* The only external call to patmatch --- all others are recursive */
if (patmatch((Upat)progstr)) {
/*
* we were lazy and didn't save the globflags if an exclusion
@@ -2653,16 +2665,6 @@ patmatchlen(void)
(charmatch_cache = (expr), CHARMATCH(charmatch_cache, chpa))
/*
- * exactpos is used to remember how far down an exact string we have
- * matched, if we are doing approximation and can therefore redo from
- * the same point; we never need to otherwise.
- *
- * exactend is a pointer to the end of the string, which isn't
- * null-terminated.
- */
-static char *exactpos, *exactend;
-
-/*
* Main matching routine.
*
* Testing the tail end of a match is usually done by recursion, but