Explorar o código

revert regex "cleanup" that seems unjustified and may break backtracking

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.
Rich Felker %!s(int64=12) %!d(string=hai) anos
pai
achega
ae4b0b96d6
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  1. 3 0
      src/regex/regexec.c

+ 3 - 0
src/regex/regexec.c

@@ -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