| Commit message (Collapse) | Author | Age |
... | |
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Regexp fails to match when using "\>\)\?". (Ramel)
Solution: When a state is already in the list, but addstate_here() is used
and the existing state comes later, add the new state anyway.
https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
|
|
|
|
|
|
|
|
| |
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)
https://github.com/vim/vim/commit/e8aee7dcf9b12becff86e8ce1783a86801c5f9f6
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: New regexp engine does not work properly with EBCDIC.
Solution: Define equivalence class characters. (Owen Leibman)
https://github.com/vim/vim/commit/2a6fa564a3b5061c14ff63b8b0f12801df0b0ac2
Although nvim doesn't support EBCDIC systems, this keeps us inline with
upstream code so its easier to merge future patches in this area and
improves the readability of the code.
|
|
|
|
|
|
|
|
|
|
| |
Problem: Falling back from NFA to old regexp engine does not work properly.
(fritzophrenic)
Solution: Do not restore nfa_match. (Christian Brabandt, closes vim/vim#867)
https://github.com/vim/vim/commit/6747fabc7348bf5f41ccfe851e2be3e900ec8ee0
Helped-by: jamessan
|
|
|
|
|
|
|
|
|
|
| |
move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: "\%1l^#.*" does not match on a line starting with "#".
Solution: Do not clear the start-of-line flag. (Christian Brabandt)
https://github.com/vim/vim/commit/7c29f387819b5817b003d2ba73e2b5cf3cb3d0dd
Helped-by: jamessan
Helped-by: mhinz
|
| |
|
| |
|
|
|
|
| |
Originally there were 128 new errors, so I thought this is a good idea to fix
all of them. Of course, this commit also fixes many suppressed errors.
|
| |
|
|
|
|
|
|
|
| |
Problem: The NFA engine does not implement the 'redrawtime' time limit.
Solution: Implement the time limit.
https://github.com/vim/vim/commit/70781ee4035b5fd5e3cbb3fe4c7646e19119f0a8
|
|
|
|
|
|
|
|
| |
Problem: Segfault reading unitialized memory.
Solution: Do not read match \z0, it does not exist. (Marius Gedminas, closes
vim/vim#497)
https://github.com/vim/vim/commit/5ad075c0735d3d8b97708d17c22de8facb15f997
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Using uninitialized memory for regexp with back reference.
(Dominique Pelle)
Solution: Initialize end_lnum.
https://github.com/vim/vim/commit/c2b717ebd6719e722dcb5f10e4c74033a53ff7c7
---
see: "[bug] use of uninitialized memory in regexp_nfa.c with invalid back reference"
https://groups.google.com/d/msg/vim_dev/JWmrT5-NnPQ/U_TgaRW8AwAJ
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An extra test in commit 0a116c828debc6192a6bfb6bceb8cf020e867db0 was
introduced, to check for end of string with a call to strlen(). This was
necessary, because an incorrect length for invalid byte sequences was
used to step through the string. This slowed down find_match_text()
compared to vim's version.
To speed up things, the extra check was removed and a sequence length
of 1 for invalid byte sequences is used.
Fixes issue #3486
|
|
|
|
|
|
|
|
| |
Problem: Invalid memory access when there are illegal bytes.
Solution: Get the length from the text, not from the character. (Dominique
Pelle)
https://github.com/vim/vim/commit/2186ffa2c7d8a9e2cb09316a7ac9e4ade3957c2f
|
|
|
|
|
|
|
| |
Problem: Crash with pattern: \(\)\{80000} (Dominique Pelle)
Solution: When the max limit is large fall back to the old engine.
https://github.com/vim/vim/commit/a1d2c58985584116d20fa5e132137d8ff1a535f7
|
|
|
|
|
|
|
|
| |
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)
https://github.com/vim/vim/commit/4f36dc3bf7118a3fa5ccdae1a37963860dc71e6c
|
|
|
|
| |
Close #3150
|
|
|
|
|
|
|
|
| |
Problem: Equivalence class for 'd' does not work correctly.
Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
Original patch:
https://code.google.com/p/vim/source/detail?r=94b17958585153641ad1e813fa144cad57c7170f
|
|
|
|
|
|
|
| |
Problem: Memory wasted in struct because of aligning.
Solution: Split pos in lnum and col. (Dominique Pelle)
https://github.com/vim/vim/commit/v7-4-600
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
https://github.com/vim/vim/commit/v7-4-593
See https://groups.google.com/d/msg/vim_dev/c7owwoseba8/ZETgSNZ6p10J
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Can't match "%>80v" properly. (Axel Bender)
Solution: Correctly handle ">". (Christian Brabandt)
https://github.com/vim/vim/commit/v7-4-582
See https://groups.google.com/d/msg/vim_dev/n-02i4FnOcw/P3Yyx1OLeXgJ
Slightly adapted due to the long_u refactoring in
2ceb1c74d591a07183ee02baf6ff1e205c87c6b8.
Reviewed-by: Florian Walch <florian@fwalch.com>
Fixes #2726
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
https://github.com/vim/vim/commit/v7-4-577
See also https://code.google.com/p/vim/issues/detail?id=310
Slightly adapted due to the long_u refactoring in
2ceb1c74d591a07183ee02baf6ff1e205c87c6b8.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We already use wrappers for allocation, the new `xfree` function is the
equivalent for deallocation and provides a way to fully replace the malloc
implementation used by Neovim.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
https://github.com/vim/vim/releases/tag/v7-4-497
Helped-by: David Bürgin <676c7473@gmail.com>
Helped-by: Justin M. Keyes <justinkz@gmail.com>
Helped-by: Scott Prager <splinterofchaos@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
| |
Problem : Resource leak @ 3324.
Diagnostic : Real issue.
Rationale : Stack is not being freed on error cases.
Resolution : Free stack before invoking EMSG_RET_NULL.
|
| |
|
|
|
|
|
|
|
| |
Problem: Still confusing regexp failure and NFA_TOO_EXPENSIVE.
Solution: NFA changes equivalent of 7.4.526.
https://code.google.com/p/vim/source/detail?r=v7-4-527
|
|
|
|
|
|
|
| |
Problem: AIX compiler can't handle // comment. Issue 265.
Solution: Remove that line.
https://code.google.com/p/vim/source/detail?r=v7-4-474
|
|
|
|
|
|
|
|
|
|
| |
Problem : Dead assignment @ 1554.
Diagnostic : Harmless issue.
Rationale : `result` is used when analyzing if a bracketed expresion
`[<whatever>]` can be condensed into a character class. Not
used for anything else anywhere. So, it's safe to remove.
Resolution : Remove dead assingment and move declaration of `result` to
the scope where it's used.
|
|
|
|
|
|
|
| |
Problem: New and old regexp engine are not consistent.
Solution: Also give an error for "\ze*" for the old regexp engine.
https://code.google.com/p/vim/source/detail?r=v7-4-437
|
|
|
|
|
|
|
| |
Problem: Crash when searching for "\ze*". (Urtica Dioica)
Solution: Disallow a multi after \ze and \zs.
https://code.google.com/p/vim/source/detail?r=v7-4-421
|
|
|
|
|
|
|
|
| |
Problem: It is not possible to ignore composing characters at a
specific point in a pattern.
Solution: Add the %C item.
https://code.google.com/p/vim/source/detail?r=10fc95f48546f438648b8357062e93c9c2c0a377
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`-Wstrict-prototypes` warn if a function is declared or defined without
specifying the argument types.
This warning disallow function prototypes with empty parameter list.
In C, a function declared with an empty parameter list accepts an
arbitrary number of arguments when being called. This is for historic
reasons; originally, C functions didn't have prototypes, as C evolved
from B, a typeless language. When prototypes were added, the original
typeless declarations were left in the language for backwards
compatibility.
Instead we should provide `void` in argument list to state
that function doesn't have arguments.
Also this warning disallow declaring type of the parameters after the
parentheses because Neovim header generator produce no declarations for
old-stlyle prototypes: it expects to find `{` after prototype.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
https://code.google.com/p/vim/source/detail?r=b871734bf54ea185dbd2cc759d86dbfbe21cde26
|
|
|
|
|
|
|
|
|
| |
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.
https://code.google.com/p/vim/source/detail?r=99374096a76b96d1128f5e6aa1fa92b4ba70fee9
|
| |
|