Age | Commit message (Collapse) | Author |
|
Problem: Warning for unused variable in tiny build. (Tony Mechelynck)
Solution: Add an #ifdef.
|
|
Problem: The message "Invalid range" is used for multiple errors.
Solution: Add two more specific error messages. (Itchyny, Ken Hamada)
|
|
Problem: Using a function pointer instead of the actual function, which we
know.
Solution: Change mb_ functions to utf_ functions when already checked for
Unicode. (Dominique Pelle, closes #1582)
|
|
Problem: Character classes are not well tested. They can differ between
platforms.
Solution: Add tests. In the documentation make clear which classes depend
on what library function. Only use :cntrl: and :graph: for ASCII.
(Kazunobu Kuriyama, Dominique Pelle, closes #1560)
Update the documentation.
|
|
Problem: Some macros are in lower case.
Solution: Make a few more macros upper case.
|
|
Problem: Some macros are in lower case.
Solution: Make a few more macros upper case. Avoid lower case macros use an
argument twice.
|
|
Problem: Some macros are in lower case, which can be confusing.
Solution: Make a few lower case macros upper case.
|
|
Problem: Cannot make Vim fail on an internal error.
Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an
internal error without mentioning where.
|
|
Problem: The regexp engines are not reentrant.
Solution: Add regexec_T and save/restore the state when needed.
|
|
Problem: Superfluous function prototypes.
Solution: Remove them.
|
|
Problem: Modelines in source code are inconsistant.
Solution: Use the same line in most files. Add 'noet'. (Naruhiko Nishino)
|
|
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
|
|
Problem: Using submatch() in a lambda passed to substitute() is verbose.
Solution: Use a static list and pass it as an optional argument to the
function. Fix memory leak.
|
|
Problem: substitute() does not support a Funcref argument.
Solution: Support a Funcref like it supports a string starting with "\=".
|
|
Problem: Some character classes may differ between systems. On OS/X the
regexp test fails.
Solution: Make this less dependent on the system. (idea by Kazunobu Kuriyama)
|
|
Problem: The old regexp engine doesn't handle character classes correctly.
(Manuel Ortega)
Solution: Use regmbc() instead of regc(). Add a test.
|
|
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
|
|
Problem: Equivalence classes are not properly tested.
Solution: Add tests for multi-byte and latin1. Fix an error. (Owen Leibman)
|
|
Problem: The MS-DOS code does not build.
Solution: Remove the old MS-DOS code.
|
|
Problem: "\%1l^#.*" does not match on a line starting with "#".
Solution: Do not clear the start-of-line flag. (Christian Brabandt)
|
|
Problem: Using old style function declarations.
Solution: Change to new style function declarations. (script by Hirohito
Higashi)
|
|
Problem: Still using __ARGS.
Solution: Remove __ARGS in several files. (script by Hirohito Higashi)
|
|
Problem: Still using __ARGS.
Solution: Remove __ARGS in several files. (script by Hirohito Higashi)
|
|
Problem: More problems reported by coverity.
Solution: Avoid the warnings. (Christian Brabandt)
|
|
Problem: Equivalence class for 'd' does not work correctly.
Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
|
|
Problem: Invalid memory access.
Solution: Avoid going over the end of a NUL terminated string. (Dominique
Pelle)
|
|
Problem: Illegal memory access when there are illegal bytes.
Solution: Check the byte length of the character. (Dominique Pelle)
|
|
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.
|
|
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)
|
|
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: matchstr() fails on long text. Daniel Hahler)
Solution: Return NFA_TOO_EXPENSIVE from regexec_nl(). (Christian Brabandt)
|
|
Problem: Crash when using syntax highlighting.
Solution: When regprog is freed and replaced, store the result.
|
|
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: New and old regexp engine are not consistent.
Solution: Also give an error for "\ze*" for the old regexp engine.
|
|
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)
|
|
Problem: It is not possible to ignore composing characters at a specific
point in a pattern.
Solution: Add the %C item.
|
|
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.
|
|
Problem: Compiler warning for int to pointer of different size when DEBUG
is defined.
Solution: use smsg() instead of EMSG3().
|
|
Problem: Duplicate code in regexec().
Solution: Add line_lbr flag to regexec_nl().
|
|
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().
|
|
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: 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)
|
|
Problem: Now that the +visual feature is always enabled the #ifdefs for it
are not useful.
Solution: Remove the checks for FEAT_VISUAL.
|
|
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: An error in a pattern is reported twice.
Solution: Remove the retry with the backtracking engine, it won't work.
|
|
Problem: New regexp engine can't be interrupted.
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
|
|
Problem: "\p" in a regexp does not match double-width characters.
(Yukihiro Nakadaira)
Solution: Don't count display cells, use vim_isprintc().
|
|
Problem: Old regexp engine does not match pattern with backref correctly.
(Dominique Pelle)
Solution: Fix setting status. Test multi-line patterns better.
|
|
Problem: Compiler warning for unitialized variable. (Tony Mechelynck)
Solution: Set the length to the matching backref.
|
|
Problem: Backreference to previous line doesn't work. (Lech Lorens)
Solution: Implement looking in another line.
|