| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Problem: Segfault reading unitialized memory.
Solution: Do not read match \z0, it does not exist. (Marius Gedminas, closes
#497)
|
|
|
|
|
|
| |
Problem: Using uninitialized memory for regexp with back reference.
(Dominique Pelle)
Solution: Initialize end_lnum.
|
|
|
|
|
| |
Problem: Equivalence class for 'd' does not work correctly.
Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
|
|
|
|
|
|
| |
Problem: Invalid memory access when there are illegal bytes.
Solution: Get the length from the text, not from the character. (Dominique
Pelle)
|
|
|
|
|
| |
Problem: Not freeing memory when encountering an error.
Solution: Free the stack before returning. (Eliseo MartÃnez)
|
|
|
|
|
|
| |
Problem: Can't match "%>80v" properly for multi-byte characters.
Solution: Multiply the character number by the maximum number of bytes in a
character. (Yasuhiro Matsumoto)
|
|
|
|
|
| |
Problem: Crash with pattern: \(\)\{80000} (Dominique Pelle)
Solution: When the max limit is large fall back to the old engine.
|
|
|
|
|
| |
Problem: Compiler warning for unused argument.
Solution: Add UNUSED.
|
|
|
|
|
| |
Problem: The NFA engine does not implement the 'redrawtime' time limit.
Solution: Implement the time limit.
|
|
|
|
|
| |
Problem: Memory wasted in struct because of aligning.
Solution: Split pos in lnum and col. (Dominique Pelle)
|
|
|
|
|
|
| |
Problem: Out-of-memory error.
Solution: Avoid trying to allocate a negative amount of memory, use size_t
instead of int. (Dominique Pelle)
|
|
|
|
|
|
| |
Problem: Crash when searching for "x\{0,90000}". (Dominique Pelle)
Solution: Bail out from the NFA engine when the max limit is much higher
than the min limit.
|
|
|
|
|
| |
Problem: Can't match "%>80v" properly. (Axel Bender)
Solution: Correctly handle ">". (Christian Brabandt)
|
|
|
|
|
|
|
| |
Problem: Matching with a virtual column has a lot of overhead on very long
lines. (Issue 310)
Solution: Bail out early if there can't be a match. (Christian Brabandt)
Also check for CTRL-C at every position.
|
|
|
|
|
| |
Problem: Still confusing regexp failure and NFA_TOO_EXPENSIVE.
Solution: NFA changes equivalent of 7.4.526.
|
|
|
|
|
|
|
| |
Problem: With some regexp patterns the NFA engine uses many states and
becomes very slow. To the user it looks like Vim freezes.
Solution: When the number of states reaches a limit fall back to the old
engine. (Christian Brabandt)
|
|
|
|
|
| |
Problem: AIX compiler can't handle // comment. Issue 265.
Solution: Remove that line.
|
|
|
|
|
| |
Problem: New and old regexp engine are not consistent.
Solution: Also give an error for "\ze*" for the old regexp engine.
|
|
|
|
|
| |
Problem: Crash when searching for "\ze*". (Urtica Dioica)
Solution: Disallow a multi after \ze and \zs.
|
|
|
|
|
|
| |
Problem: It is not possible to ignore composing characters at a specific
point in a pattern.
Solution: Add the %C item.
|
|
|
|
|
|
|
| |
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: Duplicate code in regexec().
Solution: Add line_lbr flag to regexec_nl().
|
|
|
|
|
|
| |
Problem: Crash when using cpp syntax file with pattern using external
match. (Havard Garnes)
Solution: Discard match when end column is before start column.
|
|
|
|
|
|
| |
Problem: Now that the +visual feature is always enabled the #ifdefs for it
are not useful.
Solution: Remove the checks for FEAT_VISUAL.
|
|
|
|
|
| |
Problem: ":help s/\_" reports an internal error. (John Beckett)
Solution: Check for NUL and invalid character classes.
|
|
|
|
|
|
|
| |
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: Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution: Copy the pim structure before calling addstate() to avoid it
becoming invalide when the state list is reallocated.
|
|
|
|
|
|
|
| |
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: Equivalence classes are not working for multi-byte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
|
|
|
|
|
|
| |
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: New regexp engine can't be interrupted.
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
|
|
|
|
|
| |
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution: Refresh stale pointer. (James McCoy)
|
|
|
|
|
|
|
| |
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: Regexp code is not nicely aligned.
Solution: Adjust white space. (Ken Takata)
|
|
|
|
|
|
|
| |
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: New regexp engine: Does not match shorter alternative. (Ingo
Karkat)
Solution: Do not drop a new state when the PIM info is different.
|
|
|
|
|
| |
Problem: Compiler warnings. (Charles Campbell)
Solution: Initialize variables even when not needed.
|
|
|
|
|
| |
Problem: Superfluous mb_ptr_adv().
Solution: Remove the call. (Dominique Pelle)
|
|
|
|
|
| |
Problem: Compiler warning for code unreachable. (Charles Campbell)
Solution: Use "while" instead of endless loop. Change break to continue.
|
|
|
|
|
|
| |
Problem: Reading memory already freed since patch 7.3.1247. (Simon
Ruderich, Dominique Pelle)
Solution: Copy submatches before reallocating the state list.
|
|
|
|
|
| |
Problem: Crash when editing Ruby file. (Aliaksandr Rahalevich)
Solution: Reallocate the state list when necessary.
|
|
|
|
|
| |
Problem: Using submatch() may crash Vim. (Ingo Karkat)
Solution: Restore the number of subexpressions used.
|