revert regex "cleanup" that seems unjustified and may break backtracking
authorRich Felker <dalias@aerifal.cx>
Fri, 1 Feb 2013 06:10:59 +0000 (01:10 -0500)
committerRich Felker <dalias@aerifal.cx>
Fri, 1 Feb 2013 06:10:59 +0000 (01:10 -0500)
it's not clear to me at the moment whether the code that was removed
(and which is now being re-added) is needed, but it's far from being a
no-op, and i don't want to risk breaking regex in this release.

src/regex/regexec.c

index 674c590..855cef5 100644 (file)
@@ -596,6 +596,7 @@ tre_tnfa_run_backtrack(const tre_tnfa_t *tnfa, const void *string,
      started from. */
   int next_c_start;
   const char *str_byte_start;
+  int pos_start = -1;
 #ifdef TRE_MBSTATE
   mbstate_t mbstate_start;
 #endif /* TRE_MBSTATE */
@@ -675,7 +676,9 @@ tre_tnfa_run_backtrack(const tre_tnfa_t *tnfa, const void *string,
   }
 
   state = NULL;
+  pos = pos_start;
   GET_NEXT_WCHAR();
+  pos_start = pos;
   next_c_start = next_c;
   str_byte_start = str_byte;
 #ifdef TRE_MBSTATE