summaryrefslogtreecommitdiff
path: root/src/regexp.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 7.4.822v7.4.822Bram Moolenaar2015-08-111-2/+2
| | | | | Problem: More problems reported by coverity. Solution: Avoid the warnings. (Christian Brabandt)
* patch 7.4.776v7.4.776Bram Moolenaar2015-07-101-3/+3
| | | | | Problem: Equivalence class for 'd' does not work correctly. Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
* patch 7.4.736v7.4.736Bram Moolenaar2015-06-091-4/+5
| | | | | | Problem: Invalid memory access. Solution: Avoid going over the end of a NUL terminated string. (Dominique Pelle)
* patch 7.4.714v7.4.714Bram Moolenaar2015-05-041-1/+1
| | | | | Problem: Illegal memory access when there are illegal bytes. Solution: Check the byte length of the character. (Dominique Pelle)
* patch 7.4.704v7.4.704Bram Moolenaar2015-04-211-50/+51
| | | | | | | | Problem: Searching for a character matches an illegal byte and causes invalid memory access. (Dominique Pelle) Solution: Do not match an invalid byte when search for a character in a string. Fix equivalence classes using negative numbers, which result in illegal bytes.
* updated for version 7.4.685v7.4.685Bram Moolenaar2015-03-311-1/+2
| | | | | | Problem: When there are illegal utf-8 characters the old regexp engine may go past the end of a string. Solution: Only advance to the end of the string. (Dominique Pelle)
* updated for version 7.4.593v7.4.593Bram Moolenaar2015-01-271-7/+6
| | | | | | 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.526v7.4.526Bram Moolenaar2014-11-201-12/+13
| | | | | Problem: matchstr() fails on long text. Daniel Hahler) Solution: Return NFA_TOO_EXPENSIVE from regexec_nl(). (Christian Brabandt)
* updated for version 7.4.519v7.4.519Bram Moolenaar2014-11-191-0/+26
| | | | | Problem: Crash when using syntax highlighting. Solution: When regprog is freed and replaced, store the result.
* updated for version 7.4.497v7.4.497Bram Moolenaar2014-11-051-25/+113
| | | | | | | 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.437v7.4.437Bram Moolenaar2014-09-091-0/+18
| | | | | 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.360v7.4.360Bram Moolenaar2014-07-091-2/+12
| | | | | | Problem: In a regexp pattern a "$" followed by \v or \V is not seen as the end-of-line. Solution: Handle the situation. (Ozaki Kiichi)
* updated for version 7.4.293v7.4.293Bram Moolenaar2014-05-131-2/+19
| | | | | | 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.292v7.4.292Bram Moolenaar2014-05-131-13/+19
| | | | | | | | Problem: Searching for "a" does not match accented "a" with new regexp engine, does match with old engine. (David Bürgin) "ca" does not match "ca" with accented "a" with either engine. Solution: Change the old engine, check for following composing character also for single-byte patterns.
* updated for version 7.4.291v7.4.291Bram Moolenaar2014-05-131-2/+2
| | | | | | Problem: Compiler warning for int to pointer of different size when DEBUG is defined. Solution: use smsg() instead of EMSG3().
* updated for version 7.4.262v7.4.262Bram Moolenaar2014-04-231-42/+8
| | | | | Problem: Duplicate code in regexec(). Solution: Add line_lbr flag to regexec_nl().
* updated for version 7.4.261v7.4.261Bram Moolenaar2014-04-231-0/+2
| | | | | | | Problem: When updating the window involves a regexp pattern, an interactive substitute to replace a "\n" with a line break fails. (Ingo Karkat) Solution: Set reg_line_lbr in vim_regsub() and vim_regsub_multi().
* updated for version 7.4.253v7.4.253Bram Moolenaar2014-04-061-1/+2
| | | | | | 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.241v7.4.241Bram Moolenaar2014-04-021-0/+79
| | | | | | Problem: The string returned by submatch() does not distinguish between a NL from a line break and a NL that stands for a NUL character. Solution: Add a second argument to return a list. (ZyX)
* updated for version 7.4.212v7.4.212Bram Moolenaar2014-03-231-5/+1
| | | | | | 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.101v7.4.101Bram Moolenaar2013-11-211-1/+4
| | | | | | 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.
* updated for version 7.4.029v7.4.029Bram Moolenaar2013-09-191-4/+3
| | | | | Problem: An error in a pattern is reported twice. Solution: Remove the retry with the backtracking engine, it won't work.
* updated for version 7.4.008v7.4.008Bram Moolenaar2013-08-251-2/+2
| | | | | Problem: New regexp engine can't be interrupted. Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
* updated for version 7.4a.036v7.4a.036Bram Moolenaar2013-07-211-3/+4
| | | | | | 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.3.1196v7.3.1196Bram Moolenaar2013-06-151-1/+4
| | | | | | Problem: Old regexp engine does not match pattern with backref correctly. (Dominique Pelle) Solution: Fix setting status. Test multi-line patterns better.
* updated for version 7.3.1195v7.3.1195Bram Moolenaar2013-06-141-1/+1
| | | | | Problem: Compiler warning for unitialized variable. (Tony Mechelynck) Solution: Set the length to the matching backref.
* updated for version 7.3.1191v7.3.1191Bram Moolenaar2013-06-141-64/+76
| | | | | Problem: Backreference to previous line doesn't work. (Lech Lorens) Solution: Implement looking in another line.
* updated for version 7.3.1149v7.3.1149Bram Moolenaar2013-06-081-2/+28
| | | | | | Problem: New regexp engine: Matching plain text could be faster. Solution: Detect a plain text match and handle it specifically. Add vim_regfree().
* updated for version 7.3.1132v7.3.1132Bram Moolenaar2013-06-061-0/+6
| | | | | | Problem: Crash when debugging regexp. Solution: Do not try to dump subexpr that were not set. Skip over count of \% items.
* updated for version 7.3.1128v7.3.1128Bram Moolenaar2013-06-051-14/+3
| | | | | | Problem: Now that the NFA engine handles everything every failure is a syntax error. Solution: Remove the syntax_error flag.
* updated for version 7.3.1127v7.3.1127Bram Moolenaar2013-06-051-2/+2
| | | | | Problem: No error for using empty \%[]. Solution: Give error message.
* updated for version 7.3.1120v7.3.1120Bram Moolenaar2013-06-051-1/+7
| | | | | Problem: Crash when regexp logging is enabled. Solution: Avoid using NULL pointers. Advance over count argument.
* updated for version 7.3.1119v7.3.1119Bram Moolenaar2013-06-051-15/+19
| | | | | Problem: Flags in 'cpo' are search for several times. Solution: Store the result and re-use the flags.
* updated for version 7.3.1113v7.3.1113Bram Moolenaar2013-06-041-3/+2
| | | | | Problem: New regexp engine: \%'m not supported. Solution: Implement \%'m. Add tests.
* updated for version 7.3.1112v7.3.1112Bram Moolenaar2013-06-041-73/+81
| | | | | Problem: New regexp engine: \%V not supported. Solution: Implement \%V. Add tests.
* updated for version 7.3.1107v7.3.1107Bram Moolenaar2013-06-031-0/+2
| | | | | Problem: Compiler warnings for unused variables. Solution: Put the variables inside #ifdef.
* updated for version 7.3.1091v7.3.1091Bram Moolenaar2013-06-021-2/+4
| | | | | | Problem: New regexp engine: no error when using \z1 or \z( where it does not work. Solution: Give an error message.
* updated for version 7.3.1088v7.3.1088Bram Moolenaar2013-06-011-8/+8
| | | | | | Problem: New regexp engine: \@<= and \@<! are not implemented. Solution: Implement look-behind matching. Fix off-by-one error in old regexp engine.
* updated for version 7.3.1087v7.3.1087Bram Moolenaar2013-06-011-0/+53
| | | | | Problem: A leading star is not seen as a normal char when \{} follows. Solution: Save and restore the parse state properly.
* updated for version 7.3.1037v7.3.1037Bram Moolenaar2013-05-291-12/+72
| | | | | Problem: Look-behind matching is very slow on long lines. Solution: Add a byte limit to how far back an attempt is made.
* updated for version 7.3.1000v7.3.1000Bram Moolenaar2013-05-211-1/+1
| | | | | Problem: Typo in char value causes out of bounds access. Solution: Fix character value. (Klemens Baum)
* updated for version 7.3.981v7.3.981Bram Moolenaar2013-05-211-2/+2
| | | | | | Problem: In the old regexp engine \i, \I, \f and \F don't work on multi-byte characters. Solution: Dereference pointer properly.
* updated for version 7.3.978v7.3.978Bram Moolenaar2013-05-201-3/+6
| | | | | | Problem: Regexp debug logs don't have a good name. Solution: Use clear names and make it possible to write logs for the old and new engines separately. (Taro Muraoka)
* updated for version 7.3.970v7.3.970Bram Moolenaar2013-05-191-99/+346
| | | | | | | Problem: Syntax highlighting can be slow. Solution: Include the NFA regexp engine. Add the 'regexpengine' option to select which one is used. (various authors, including Ken Takata, Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young)
* updated for version 7.3.873v7.3.873Bram Moolenaar2013-03-191-14/+21
| | | | | Problem: Cannot easily use :s to make title case. Solution: Have "\L\u" result in title case. (James McCoy)
* updated for version 7.3.840v7.3.840Bram Moolenaar2013-02-261-0/+7
| | | | | | Problem: "\@<!" in regexp does not work correctly with multi-byte characters, especially cp932. Solution: Move column to start of multi-byte character. (Yasuhiro Matsumoto)
* updated for version 7.3.796v7.3.796Bram Moolenaar2013-01-301-4/+7
| | | | | Problem: "/[^\n]" does match at a line break. Solution: Make it do the same as "/.". (Christian Brabandt)
* updated for version 7.3.789v7.3.789Bram Moolenaar2013-01-301-7/+8
| | | | | Problem: "\k" in regexp does not work in other window. Solution: Use the right buffer. (Yukihiro Nakadaira)
* updated for version 7.3.785v7.3.785Bram Moolenaar2013-01-251-3/+6
| | | | | Problem: Crash with specific use of search pattern. Solution: Initialize reg_buf to curbuf.
* updated for version 7.3.776v7.3.776Bram Moolenaar2013-01-231-9/+5
| | | | | Problem: ml_get error when searching, caused by curwin not matching curbuf. Solution: Avoid changing curbuf. (Lech Lorens)