summaryrefslogtreecommitdiff
path: root/src/regexp_nfa.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 7.4.937v7.4.937Bram Moolenaar2015-11-241-1/+2
| | | | | | Problem: Segfault reading unitialized memory. Solution: Do not read match \z0, it does not exist. (Marius Gedminas, closes #497)
* patch 7.4.887v7.4.887Bram Moolenaar2015-09-291-0/+1
| | | | | | Problem: Using uninitialized memory for regexp with back reference. (Dominique Pelle) Solution: Initialize end_lnum.
* patch 7.4.776v7.4.776Bram Moolenaar2015-07-101-5/+4
| | | | | Problem: Equivalence class for 'd' does not work correctly. Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
* patch 7.4.715v7.4.715Bram Moolenaar2015-05-041-1/+1
| | | | | | Problem: Invalid memory access when there are illegal bytes. Solution: Get the length from the text, not from the character. (Dominique Pelle)
* patch 7.4.696v7.4.696Bram Moolenaar2015-04-131-0/+7
| | | | | Problem: Not freeing memory when encountering an error. Solution: Free the stack before returning. (Eliseo Martínez)
* updated for version 7.4.651v7.4.651Bram Moolenaar2015-03-051-1/+5
| | | | | | 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)
* updated for version 7.4.623v7.4.623Bram Moolenaar2015-02-101-4/+5
| | | | | Problem: Crash with pattern: \(\)\{80000} (Dominique Pelle) Solution: When the max limit is large fall back to the old engine.
* updated for version 7.4.622v7.4.622Bram Moolenaar2015-02-051-1/+1
| | | | | Problem: Compiler warning for unused argument. Solution: Add UNUSED.
* updated for version 7.4.613v7.4.613Bram Moolenaar2015-02-031-9/+32
| | | | | Problem: The NFA engine does not implement the 'redrawtime' time limit. Solution: Implement the time limit.
* updated for version 7.4.600v7.4.600Bram Moolenaar2015-01-271-57/+74
| | | | | Problem: Memory wasted in struct because of aligning. Solution: Split pos in lnum and col. (Dominique Pelle)
* updated for version 7.4.599v7.4.599Bram Moolenaar2015-01-271-1/+1
| | | | | | Problem: Out-of-memory error. Solution: Avoid trying to allocate a negative amount of memory, use size_t instead of int. (Dominique Pelle)
* updated for version 7.4.593v7.4.593Bram Moolenaar2015-01-271-2/+12
| | | | | | 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.
* updated for version 7.4.582v7.4.582Bram Moolenaar2015-01-181-6/+16
| | | | | Problem: Can't match "%>80v" properly. (Axel Bender) Solution: Correctly handle ">". (Christian Brabandt)
* updated for version 7.4.577v7.4.577Bram Moolenaar2015-01-141-7/+22
| | | | | | | 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.
* updated for version 7.4.527v7.4.527Bram Moolenaar2014-11-231-5/+5
| | | | | Problem: Still confusing regexp failure and NFA_TOO_EXPENSIVE. Solution: NFA changes equivalent of 7.4.526.
* updated for version 7.4.497v7.4.497Bram Moolenaar2014-11-051-13/+22
| | | | | | | 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)
* updated for version 7.4.474v7.4.474Bram Moolenaar2014-10-111-1/+0
| | | | | Problem: AIX compiler can't handle // comment. Issue 265. Solution: Remove that line.
* updated for version 7.4.437v7.4.437Bram Moolenaar2014-09-091-13/+0
| | | | | Problem: New and old regexp engine are not consistent. Solution: Also give an error for "\ze*" for the old regexp engine.
* updated for version 7.4.421v7.4.421Bram Moolenaar2014-08-291-0/+17
| | | | | Problem: Crash when searching for "\ze*". (Urtica Dioica) Solution: Disallow a multi after \ze and \zs.
* updated for version 7.4.293v7.4.293Bram Moolenaar2014-05-131-7/+37
| | | | | | Problem: It is not possible to ignore composing characters at a specific point in a pattern. Solution: Add the %C item.
* updated for version 7.4.290v7.4.290Bram Moolenaar2014-05-131-2/+4
| | | | | | | 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.
* updated for version 7.4.289v7.4.289Bram Moolenaar2014-05-131-0/+31
| | | | | | | 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.
* updated for version 7.4.262v7.4.262Bram Moolenaar2014-04-231-32/+5
| | | | | Problem: Duplicate code in regexec(). Solution: Add line_lbr flag to regexec_nl().
* updated for version 7.4.253v7.4.253Bram Moolenaar2014-04-061-2/+4
| | | | | | Problem: Crash when using cpp syntax file with pattern using external match. (Havard Garnes) Solution: Discard match when end column is before start column.
* updated for version 7.4.212v7.4.212Bram Moolenaar2014-03-231-2/+0
| | | | | | Problem: Now that the +visual feature is always enabled the #ifdefs for it are not useful. Solution: Remove the checks for FEAT_VISUAL.
* updated for version 7.4.104v7.4.104Bram Moolenaar2013-11-281-2/+13
| | | | | Problem: ":help s/\_" reports an internal error. (John Beckett) Solution: Check for NUL and invalid character classes.
* updated for version 7.4.100v7.4.100Bram Moolenaar2013-11-211-1/+1
| | | | | | | 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.
* updated for version 7.4.051v7.4.051Bram Moolenaar2013-10-061-0/+10
| | | | | | 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.
* updated for version 7.4.037v7.4.037Bram Moolenaar2013-09-251-0/+28
| | | | | | | 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.
* updated for version 7.4.036v7.4.036Bram Moolenaar2013-09-251-17/+27
| | | | | Problem: NFA engine does not capture group correctly when using \@>. (ZyX) Solution: Copy submatches before doing the recursive match.
* updated for version 7.4.032v7.4.032Bram Moolenaar2013-09-221-1/+2
| | | | | Problem: NFA engine does not match the NUL character. (Jonathon Merz) Solution: Ues 0x0a instead of NUL. (Christian Brabandt)
* updated for version 7.4.028v7.4.028Bram Moolenaar2013-09-191-34/+285
| | | | | | 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.
* updated for version 7.4.021v7.4.021Bram Moolenaar2013-09-051-3/+4
| | | | | | 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.
* updated for version 7.4.020v7.4.020Bram Moolenaar2013-09-051-1/+4
| | | | | Problem: NFA engine matches too much with \@>. (John McGowan) Solution: When a whole pattern match is found stop searching.
* updated for version 7.4.008v7.4.008Bram Moolenaar2013-08-251-0/+6
| | | | | Problem: New regexp engine can't be interrupted. Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
* updated for version 7.4.003v7.4.003Bram Moolenaar2013-08-141-2/+16
| | | | | Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow) Solution: Refresh stale pointer. (James McCoy)
* updated for version 7.4.002v7.4.002Bram Moolenaar2013-08-141-0/+3
| | | | | | | 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.
* updated for version 7.4.001v7.4.001Bram Moolenaar2013-08-141-19/+62
| | | | | | | 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.
* updated for version 7.4b.004v7.4b.004Bram Moolenaar2013-08-011-4/+24
| | | | | Problem: Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn) Solution: Add \%(\) around \%[] internally.
* updated for version 7.4b.003v7.4b.003Bram Moolenaar2013-08-011-21/+21
| | | | | Problem: Regexp code is not nicely aligned. Solution: Adjust white space. (Ken Takata)
* updated for version 7.4b.002v7.4b.002Bram Moolenaar2013-08-011-22/+47
| | | | | | | 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.
* updated for version 7.4a.039v7.4a.039Bram Moolenaar2013-07-211-1/+8
| | | | | | 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.
* updated for version 7.4a.036v7.4a.036Bram Moolenaar2013-07-211-2/+2
| | | | | | Problem: "\p" in a regexp does not match double-width characters. (Yukihiro Nakadaira) Solution: Don't count display cells, use vim_isprintc().
* updated for version 7.4a.032v7.4a.032Bram Moolenaar2013-07-171-5/+32
| | | | | | Problem: New regexp engine: Does not match shorter alternative. (Ingo Karkat) Solution: Do not drop a new state when the PIM info is different.
* updated for version 7.4a.031v7.4a.031Bram Moolenaar2013-07-171-1/+10
| | | | | Problem: Compiler warnings. (Charles Campbell) Solution: Initialize variables even when not needed.
* updated for version 7.4a.020v7.4a.020Bram Moolenaar2013-07-141-2/+1
| | | | | Problem: Superfluous mb_ptr_adv(). Solution: Remove the call. (Dominique Pelle)
* updated for version 7.4a.018v7.4a.018Bram Moolenaar2013-07-131-2/+2
| | | | | Problem: Compiler warning for code unreachable. (Charles Campbell) Solution: Use "while" instead of endless loop. Change break to continue.
* updated for version 7.3.1280v7.3.1280Bram Moolenaar2013-06-301-15/+35
| | | | | | Problem: Reading memory already freed since patch 7.3.1247. (Simon Ruderich, Dominique Pelle) Solution: Copy submatches before reallocating the state list.
* updated for version 7.3.1272v7.3.1272Bram Moolenaar2013-06-301-8/+33
| | | | | Problem: Crash when editing Ruby file. (Aliaksandr Rahalevich) Solution: Reallocate the state list when necessary.
* updated for version 7.3.1258v7.3.1258Bram Moolenaar2013-06-281-0/+3
| | | | | Problem: Using submatch() may crash Vim. (Ingo Karkat) Solution: Restore the number of subexpressions used.