| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Problem: Falling back from NFA to old regexp engine does not work properly.
(fritzophrenic)
Solution: Do not restore nfa_match. (Christian Brabandt, closes #867)
|
|
|
|
|
| |
Problem: Can't match "%>80v" properly. (Axel Bender)
Solution: Correctly handle ">". (Christian Brabandt)
|
|
|
|
|
| |
Problem: Crash when searching for "\ze*". (Urtica Dioica)
Solution: Disallow a multi after \ze and \zs.
|
|
|
|
|
|
|
| |
Problem: A non-greedy match followed by a branch is too greedy. (Ingo
Karkat)
Solution: Add NFA_MATCH when it is already in the state list if the position
differs.
|
|
|
|
|
|
|
| |
Problem: Pattern with repeated backreference does not match with new regexp
engine. (Urtica Dioica)
Solution: Also check the end of a submatch when deciding to put a state in
the state list.
|
|
|
|
|
|
| |
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
line.
|
|
|
|
|
|
|
| |
Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi
Hayashida, Urtica Dioica)
Solution: Always add NFA_SKIP, also when it already exists at the start
position.
|
|
|
|
|
|
|
| |
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
successful.
|
|
|
|
|
| |
Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
Solution: Copy submatches before doing the recursive match.
|
|
|
|
|
| |
Problem: NFA engine does not match the NUL character. (Jonathon Merz)
Solution: Ues 0x0a instead of NUL. (Christian Brabandt)
|
|
|
|
|
|
| |
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
end of another branch to be wrong. (William Fugh)
Solution: Set end position if it wasn't set yet.
|
|
|
|
|
| |
Problem: NFA engine matches too much with \@>. (John McGowan)
Solution: When a whole pattern match is found stop searching.
|
|
|
|
|
|
|
| |
Problem: Pattern with two alternative look-behind matches does not match.
(Amadeus Demarzi)
Solution: When comparing PIMs also compare their state ID to see if they are
different.
|
|
|
|
|
|
|
| |
Problem: Character classes such as [a-z] to not react to 'ignorecase'.
Breaks man page highlighting. (Mario Grgic)
Solution: Add separate items for classes that react to 'ignorecase'. Clean
up logic handling character classes. Add more tests.
|
|
|
|
|
| |
Problem: Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn)
Solution: Add \%(\) around \%[] internally.
|
|
|
|
|
|
|
| |
Problem: Crash searching for \%(\%(\|\d\|-\|\.\)*\|\*\). (Marcin
Szamotulski) Also for \(\)*.
Solution: Do add a state for opening parenthesis, so that we can check if it
was added before at the same position.
|
|
|
|
|
|
| |
Problem: New regexp engine doesn't match pattern. (Ingo Karkat)
Solution: When adding a state also check for different PIM if the list of
states has any state with a PIM.
|
|
|
|
|
|
| |
Problem: "\p" in a regexp does not match double-width characters.
(Yukihiro Nakadaira)
Solution: Don't count display cells, use vim_isprintc().
|
|
|
|
|
| |
Problem: Fix in patch 7.4a.032 is not tested.
Solution: Add test.
|
|
|
|
|
| |
Problem: No test for patch 7.3.1258
Solution: Add a test entry.
|
|
|
|
|
|
| |
Problem: New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match.
Solution: When there is a PIM add a duplicate state that starts at another
position.
|
|
|
|
|
|
| |
Problem: New regexp engine: back references in look-behind match don't
work. (Lech Lorens)
Solution: Copy the submatches before a recursive match.
|
|
|
|
|
| |
Problem: No test for using []] inside \%[].
Solution: Add a test.
|
|
|
|
|
| |
Problem: New regexp engine: Can't handle \%[[ao]]. (Yukihiro Nakadaira)
Solution: Support nested atoms inside \%[].
|
|
|
|
|
| |
Problem: New regexp engine: no match found on "#if FOO". (Lech Lorens)
Solution: When adding a state gets skipped don't adjust the index.
|
|
|
|
|
|
| |
Problem: Old regexp engine does not match pattern with backref correctly.
(Dominique Pelle)
Solution: Fix setting status. Test multi-line patterns better.
|
|
|
|
|
| |
Problem: Backreference to previous line doesn't work. (Lech Lorens)
Solution: Implement looking in another line.
|
|
|
|
|
| |
Problem: New regexp engine: no match with ^ after \n. (SungHyun Nam)
Solution: Fix it, add a test.
|
|
|
|
|
|
| |
Problem: New regexp engine fails on "\(\<command\)\@<=.*"
Solution: Fix rule for postponing match. Further tune estimating whether
postponing works better. Add test.
|
|
|
|
|
|
| |
Problem: New regexp engine: Matching plain text could be faster.
Solution: Detect a plain text match and handle it specifically. Add
vim_regfree().
|
|
|
|
|
| |
Problem: New regexp engine: \%> not supported.
Solution: Implement \%>.
|
|
|
|
|
| |
Problem: New regexp engine: \%[abc] not supported.
Solution: Implement \%[abc]. Add tests.
|
|
|
|
|
| |
Problem: New regexp engine: \%'m not supported.
Solution: Implement \%'m. Add tests.
|
|
|
|
|
| |
Problem: New regexp engine: \%V not supported.
Solution: Implement \%V. Add tests.
|
|
|
|
|
|
| |
Problem: New regexp engine: When a sub expression is empty \1 skips a
character.
Solution: Make \1 try the current position when the match is emtpy.
|
|
|
|
|
|
| |
Problem: New regexp engine: \@<= and \@<! are not implemented.
Solution: Implement look-behind matching. Fix off-by-one error in old
regexp engine.
|
|
|
|
|
| |
Problem: A leading star is not seen as a normal char when \{} follows.
Solution: Save and restore the parse state properly.
|
|
|
|
|
| |
Problem: Old regexp engine accepts illegal range, new one doesn't.
Solution: Also accept the illegal range with the new engine.
|
|
|
|
|
| |
Problem: New regexp engine: Non-greedy multi doesn't work.
Solution: Implement \{-}.
|
|
|
|
|
| |
Problem: New regexp engine: only accepts up to \{,10}.
Solution: Remove upper limit. Remove dead code with NFA_PLUS.
|
|
|
|
|
| |
Problem: New regexp engine: Does not support \%^ and \%$.
Solution: Support matching start and end of file.
|
|
|
|
|
| |
Problem: New regexp engine: Problem with \@= matching.
Solution: Save and restore nfa_match.
|
|
|
|
|
| |
Problem: New regexp engine: \@! doesn't work.
Solution: Implement the negated version of \@=.
|
|
|
|
|
| |
Problem: New regexp engine: \@= and \& don't work.
Solution: Make these items work. Add column info to logging.
|
|
|
|
|
| |
Problem: New regexp engine may run out of states.
Solution: Allocate states dynamically. Also make the test report errors.
|
|
|
|
|
| |
Problem: New regexp engine: backreferences don't work correctly.
Solution: Add every possible start/end position on the state stack.
|
|
|
|
|
| |
Problem: Negated collection does not match newline.
Solution: Handle newline differently. (Hiroshi Shirosaki)
|
|
|
|
|
| |
Problem: New regexp engine does not support \%23c, \%<23c and the like.
Solution: Implement them. (partly by Yasuhiro Matsumoto)
|
|
|
|
|
| |
Problem: Look-behind matching is very slow on long lines.
Solution: Add a byte limit to how far back an attempt is made.
|
|
|
|
|
| |
Problem: "\1" .. "\9" are not supported in the new regexp engine.
Solution: Implement them. Add a few more tests.
|