*** Lib\test\re_tests.py.orig Sun Apr 20 00:35:44 2003 --- Lib\test\re_tests.py Mon Apr 21 10:48:57 2003 *************** *** 659,664 **** --- 659,669 ---- ('^([ab]*?)(?=(b)?)c', 'abc', SUCCEED, 'g1+"-"+g2', 'ab-None'), ('^([ab]*?)(?!(b))c', 'abc', SUCCEED, 'g1+"-"+g2', 'ab-None'), ('^([ab]*?)(?mark_stack_base; + + result = SRE_MATCH(state, pattern, level); + if (result < 0) + return result; + + state->mark_stack_base = lastbase; /* pop off any marks that may have + been left by successful repeats or + branches */ + i = mark_restore(state, 0, lastmark); + LASTMARK_RESTORE(); + + return !result; + } + + + LOCAL(int) SRE_MATCH(SRE_STATE* state, SRE_CODE* pattern, int level) { /* check if string matches the given pattern. returns <0 for *************** *** 917,927 **** TRACE(("|%p|%p|ASSERT_NOT %d\n", pattern, ptr, pattern[1])); state->ptr = ptr - pattern[1]; if (state->ptr >= state->beginning) { ! i = SRE_MATCH(state, pattern + 2, level + 1); ! if (i < 0) return i; - if (i) - return 0; } pattern += pattern[0]; break; --- 945,953 ---- TRACE(("|%p|%p|ASSERT_NOT %d\n", pattern, ptr, pattern[1])); state->ptr = ptr - pattern[1]; if (state->ptr >= state->beginning) { ! i = SRE_ASSERT_NOT(state, pattern + 2, level + 1); ! if (i <= 0) return i; } pattern += pattern[0]; break;