| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The 'stripdecls.py' script replaces declarations in all headers by includes to
generated headers.
`ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI
This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.
Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
|
| |
|
|
|
|
| |
Prepend 'nvim/' in all project-local (non-system) includes.
|
|
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
|