summaryrefslogtreecommitdiff
path: root/src/regexp.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 9.0.0634: evaluating "expr" options has more overhead than neededv9.0.0634Bram Moolenaar2022-10-011-1/+1
| | | | | | | Problem: Evaluating "expr" options has more overhead than needed. Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', 'formatexpr', 'indentexpr' and 'charconvert'.
* patch 9.0.0513: may not be able to use a pattern ad the debug promptv9.0.0513Bram Moolenaar2022-09-201-0/+28
| | | | | Problem: May not be able to use a pattern ad the debug prompt. Solution: Temporarily disable the timeout. (closes #11164)
* patch 9.0.0480: cannot use a :def varargs function with substitute()v9.0.0480zeertzjq2022-09-161-1/+1
| | | | | Problem: Cannot use a :def varargs function with substitute(). Solution: Use has_varargs(). (closes #11146)
* patch 9.0.0476: varargs does not work for replacement function of substitute()v9.0.0476zeertzjq2022-09-161-2/+2
| | | | | Problem: Varargs does not work for replacement function of substitute(). Solution: Check the varargs flag of the function. (closes #11142)
* patch 9.0.0282: a nested timout stops the previous timeoutv9.0.0282Bram Moolenaar2022-08-261-3/+18
| | | | | Problem: A nested timout stops the previous timeout. Solution: Ignore any nested timeout.
* patch 9.0.0105: illegal memory access when pattern starts with illegal bytev9.0.0105Bram Moolenaar2022-07-291-1/+5
| | | | | Problem: Illegal memory access when pattern starts with illegal byte. Solution: Do not match a character with an illegal byte.
* patch 9.0.0067: cannot show virtual textv9.0.0067Bram Moolenaar2022-07-251-1/+1
| | | | | Problem: Cannot show virtual text. Solution: Initial changes for virtual text support, using text properties.
* patch 9.0.0047: using freed memory with recursive substitutev9.0.0047Bram Moolenaar2022-07-071-4/+4
| | | | | Problem: Using freed memory with recursive substitute. Solution: Always make a copy for reg_prev_sub.
* patch 8.2.5154: still mentioning version8, some cosmetic issuesv8.2.5154Bram Moolenaar2022-06-231-1/+1
| | | | | Problem: Still mentioning version8, some cosmetic issues. Solution: Prefer mentioning version9, cosmetic improvements.
* patch 8.2.5146: memory leak when substitute expression nestsv8.2.5146Bram Moolenaar2022-06-211-18/+50
| | | | | Problem: Memory leak when substitute expression nests. Solution: Use an array of expression results.
* patch 8.2.5141: using "volatile int" in a signal handler might be wrongv8.2.5141Bram Moolenaar2022-06-201-2/+2
| | | | | Problem: Using "volatile int" in a signal handler might be wrong. Solution: Use "volatile sig_atomic_t".
* patch 8.2.5129: timeout handling is not optimalv8.2.5129Bram Moolenaar2022-06-191-0/+1
| | | | | | Problem: Timeout handling is not optimal. Solution: Avoid setting timeout_flag twice. Adjust the pointer when stopping the regexp timeout. Adjust variable name.
* patch 8.2.5115: search timeout is overrun with some patternsv8.2.5115Bram Moolenaar2022-06-171-1/+1
| | | | | | Problem: Search timeout is overrun with some patterns. Solution: Check for timeout in more places. Make the flag volatile and atomic. Use assert_inrange() to see what happened.
* patch 8.2.5057: using gettimeofday() for timeout is very inefficientv8.2.5057Paul Ollis2022-06-051-6/+25
| | | | | Problem: Using gettimeofday() for timeout is very inefficient. Solution: Set a platform dependent timer. (Paul Ollis, closes #10505)
* patch 8.2.5046: vim_regsub() can overwrite the destinationv8.2.5046Bram Moolenaar2022-05-301-30/+92
| | | | | Problem: vim_regsub() can overwrite the destination. Solution: Pass the destination length, give an error when it doesn't fit.
* patch 8.2.4870: Vim9: expression in :substitute is not compiledv8.2.4870LemonBoy2022-05-051-0/+4
| | | | | Problem: Vim9: expression in :substitute is not compiled. Solution: Use an INSTR instruction if possible. (closes #10334)
* patch 8.2.4810: missing changes in one filev8.2.4810Bram Moolenaar2022-04-231-2/+0
| | | | | Problem: Missing changes in one file. Solution: Also change the struct initializers.
* patch 8.2.4687: "vimgrep /\%v/ *" may cause a crashv8.2.4687Bram Moolenaar2022-04-041-3/+11
| | | | | | | Problem: "vimgrep /\%v/ *" may cause a crash. Solution: When compiling the pattern with the old engine fails, restore the regprog of the new engine instead of leaving it NULL. (closes #10079)
* patch 8.2.4402: missing parenthesis may cause unexpected problemsv8.2.4402kylo2522022-02-161-9/+9
| | | | | Problem: Missing parenthesis may cause unexpected problems. Solution: Add more parenthesis is macros. (closes #9788)
* patch 8.2.4273: the EBCDIC support is outdatedv8.2.4273Bram Moolenaar2022-01-311-45/+1
| | | | | Problem: The EBCDIC support is outdated. Solution: Remove the EBCDIC support.
* patch 8.2.4262: some search tests failv8.2.4262Bram Moolenaar2022-01-301-1/+1
| | | | | Problem: Some search tests fail. Solution: Use a better way to reject searching for the Visual area.
* patch 8.2.4261: accessing invalid memory in a regular expressionv8.2.4261Bram Moolenaar2022-01-301-2/+2
| | | | | | Problem: Accessing invalid memory when a regular expression checks the Visual area while matching in a string. Solution: Do not try matching the Visual area in a string.
* patch 8.2.4012: error messages are spread outv8.2.4012Bram Moolenaar2022-01-051-1/+1
| | | | | Problem: Error messages are spread out. Solution: Move the last error messages to errors.h.
* patch 8.2.4010: error messages are spread outv8.2.4010Bram Moolenaar2022-01-051-1/+1
| | | | | Problem: Error messages are spread out. Solution: Move more error messages to errors.h.
* patch 8.2.4008: error messages are spread outv8.2.4008Bram Moolenaar2022-01-051-7/+2
| | | | | Problem: Error messages are spread out. Solution: Move more error messages to errors.h.
* patch 8.2.4005: error messages are spread outv8.2.4005Bram Moolenaar2022-01-041-1/+1
| | | | | Problem: Error messages are spread out. Solution: Move more error messages to errors.h.
* patch 8.2.3987: error messages are spread outv8.2.3987Bram Moolenaar2022-01-021-1/+1
| | | | | Problem: Error messages are spread out. Solution: Move more error messages to errors.h.
* patch 8.2.3985: error messages are spread outv8.2.3985Bram Moolenaar2022-01-021-1/+1
| | | | | Problem: Error messages are spread out. Solution: Move more error messages to errors.h.
* patch 8.2.3949: using freed memory with /\%Vv8.2.3949Bram Moolenaar2021-12-301-2/+7
| | | | | Problem: Using freed memory with /\%V. Solution: Get the line again after getvvcol().
* patch 8.2.3796: the funcexe_T struct members are not named consistentlyv8.2.3796Bram Moolenaar2021-12-131-3/+3
| | | | | Problem: The funcexe_T struct members are not named consistently. Solution: Prefix "fe_" to all the members.
* patch 8.2.3749: error messages are everywherev8.2.3749Bram Moolenaar2021-12-051-6/+0
| | | | | Problem: Error messages are everywhere. Solution: Move more error messages to errors.h and adjust the names.
* patch 8.2.3699: the +title feature adds a lot of #ifdef but little codev8.2.3699Bram Moolenaar2021-11-291-2/+1
| | | | | Problem: The +title feature adds a lot of #ifdef but little code. Solution: Graduate the +title feature.
* patch 8.2.3612: using freed memory with regexp using a markv8.2.3612Bram Moolenaar2021-11-171-1/+1
| | | | | Problem: Using freed memory with regexp using a mark. Solution: Get the line again after getting the mark position.
* patch 8.2.3197: error messages are spread outv8.2.3197Bram Moolenaar2021-07-211-3/+0
| | | | | Problem: Error messages are spread out. Solution: Move a few more error messages to errors.h.
* patch 8.2.3190: error messages are spread outv8.2.3190Bram Moolenaar2021-07-201-3/+3
| | | | | Problem: Error messages are spread out. Solution: Move error messages to errors.h and give them a clear name.
* patch 8.2.2922: computing array length is done in various waysv8.2.2922K.Takata2021-06-021-1/+1
| | | | | Problem: Computing array length is done in various ways. Solution: Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305)
* patch 8.2.2911: pattern "\%V" does not match all of block selectionv8.2.2911Bram Moolenaar2021-05-301-1/+4
| | | | | Problem: Pattern "\%V" does not match all of block selection. (Rick Howe) Solution: Use the value of vi_curswant. (closes #8285)
* patch 8.2.2784: Vim9: cannot use \=expr in :substitutev8.2.2784Bram Moolenaar2021-04-191-0/+3
| | | | | | Problem: Vim9: cannot use \=expr in :substitute. Solution: Compile the expression into instructions and execute them when invoked.
* patch 8.2.2295: incsearch does not detect empty pattern properlyv8.2.2295Bram Moolenaar2021-01-041-8/+8
| | | | | | Problem: Incsearch does not detect empty pattern properly. Solution: Return magic state when skipping over a pattern. (Christian Brabandt, closes #7612, closes #6420)
* patch 8.2.2278: falling back to old regexp engine can some patternsv8.2.2278Bram Moolenaar2021-01-021-1/+8
| | | | | | Problem: Falling back to old regexp engine can some patterns. Solution: Do not fall back once [[:lower:]] or [[:upper:]] is used. (Christian Brabandt, closes #7572)
* patch 8.2.1633: some error messages are internal but do not use iemsg()v8.2.1633Bram Moolenaar2020-09-071-1/+1
| | | | | Problem: Some error messages are internal but do not use iemsg(). Solution: Use iemsg(). (Dominique Pellé, closes #6894)
* patch 8.2.1625: compiler warning for use of fptr_Tv8.2.1625Bram Moolenaar2020-09-061-2/+2
| | | | | Problem: Compiler warning for use of fptr_T. Solution: Make the type less strict.
* patch 8.2.1621: crash when using submatch(0, 1) in substitute()v8.2.1621Bram Moolenaar2020-09-061-0/+1
| | | | | Problem: Crash when using submatch(0, 1) in substitute(). Solution: Increment reference count. (closes #6887)
* patch 8.2.1049: Vim9: leaking memory when using continuation linev8.2.1049Bram Moolenaar2020-06-241-1/+1
| | | | | | Problem: Vim9: leaking memory when using continuation line. Solution: Keep a pointer to the continuation line in evalarg_T. Centralize checking for a next command.
* patch 8.2.0967: unnecessary type casts for vim_strnsave()v8.2.0967Bram Moolenaar2020-06-121-2/+2
| | | | | Problem: Unnecessary type casts for vim_strnsave(). Solution: Remove the type casts.
* patch 8.2.0612: Vim9: no check for space before #commentv8.2.0612Bram Moolenaar2020-04-201-3/+23
| | | | | Problem: Vim9: no check for space before #comment. Solution: Add space checks.
* patch 8.2.0559: clearing a struct is verbosev8.2.0559Bram Moolenaar2020-04-121-1/+1
| | | | | Problem: Clearing a struct is verbose. Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER().
* patch 8.2.0502: Vim9: some code is not testedv8.2.0502Bram Moolenaar2020-04-021-2/+18
| | | | | Problem: Vim9: some code is not tested. Solution: Add more tests. Fix uncovered problems.
* patch 8.2.0260: several lines of code are duplicatedv8.2.0260Bram Moolenaar2020-02-151-0/+22
| | | | | | Problem: Several lines of code are duplicated. Solution: Move duplicated code to a function. (Yegappan Lakshmanan, closes #5330)
* patch 8.2.0250: test_clear_search_pat() is unusedv8.2.0250Bram Moolenaar2020-02-121-9/+0
| | | | | Problem: test_clear_search_pat() is unused. Solution: Remove the function. (Yegappan Lakshmanan, closes #5624)