| Commit message (Collapse) | Author | Age |
... | |
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In order to re-order marks according to the :move command, do_move()
uses mark_adjust() in a non-standard manner. The non-standard action is
that it moves some marks *past* other marks. This doesn't matter for
marks, but mark_adjust() calls foldMarkAdjust() which simply changes
fold starts and lengths and doesn't have enough information to know that
other folds have to be checked and reordered.
The array of folds for each window are assumed to be in order of
increasing line number, and if this gets broken some folds can get
"lost".
There has been a previous patch to avoid this problem by deleting and
recalculating all folds in the window, but this comes at the cost of
closing all folds when executing :move, and doesn't cover the case of
manual folds.
This patch adds a new function foldMoveRange() specifically for the
:move command that handles reordering folds as well as simply moving
them. Additionally, we allow calling mark_adjust_nofold() that does the
same as mark_adjust() but doesn't affect any fold array.
Calling mark_adjust_nofold() should be done in the same manner as
calling mark_adjust(), but according changes to the fold arrays must be
done seperately by the calling function.
vim-patch:8.0.0457
vim-patch:8.0.0459
vim-patch:8.0.0461
vim-patch:8.0.0465
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: When virtcol() gets a column that is not the first byte of a
multi-byte character the result is unpredictable. (Christian
Ludwig)
Solution: Correct the column to the first byte of a multi-byte character.
Change the utf-8 test to new style.
https://github.com/vim/vim/commit/0c0590d9827cb07a33c1552cb3558b94bddcb4dc
Closes #6269
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
During free_all_mem, somehow ex_tabonly() may free aucmd_win. But it
isn't fully destroyed (maybe autocmd_busy?). When win_free_all() tries
to free aucmd_win directly, it double-frees the sub-fields.
Tried unnsuccessfully to work around this by invoking `:tabonly!` with
autocmds disabled:
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index 58c01fbe7a12..91c845e94d22 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -565,9 +565,9 @@ void free_all_mem(void)
/* Close all tabs and windows. Reset 'equalalways' to avoid redraws. */
p_ea = false;
if (first_tabpage->tp_next != NULL)
- do_cmdline_cmd("tabonly!");
+ do_cmdline_cmd("noautocmd tabonly!");
if (firstwin != lastwin)
- do_cmdline_cmd("only!");
+ do_cmdline_cmd("noautocmd only!");
/* Free all spell info. */
spell_free_all();
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Asan detects a memory error when EXITFREE is defined. (Dominique
Pelle)
Solution: In getvcol() check for ml_get_buf() returning an empty string.
Also skip adjusting the scroll position. Set "exiting" in
mch_exit() for all systems.
https://github.com/vim/vim/commit/955f198fc546cc30a34361932d3f454a61df0efa
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Coverity complains about possible NULL pointer.
Solution: Add an assert(), let's see if this works on all systems.
https://github.com/vim/vim/commit/a37ffaa5e0a47e2db27bc0cc23f49e7094f47f3b
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Restoring help snapshot accesses freed memory. (Dominique Pelle)
Solution: Don't restore a snapshot when the window closes.
https://github.com/vim/vim/commit/343b8c042967da82f2f022afa31f2c97a264c1c8
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: The setbufvar() function may mess up the window layout. (Kay Z.)
Solution: Do not check the window to be valid if it is NULL.
https://github.com/vim/vim/commit/2c90d51123fba44a90e09aa4a4f2b7d972dadb94
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Illegal memory access when using :all. (Dominique Pelle)
Solution: Adjust the cursor position right after setting "curwin".
https://github.com/vim/vim/commit/f79225ed4f81bc579bb3360ad2eb06adc8058153
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Need to do this explicitly because our implementation of getdigits() is
slightly different.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Not all windows commands are tested.
Solution: Add more tests for windows commands. (Dominique Pelle,
closes vim/vim#1575) Run test_autocmd separately, it interferes with
other tests. Fix tests that depended on side effects.
https://github.com/vim/vim/commit/4520d440c59034452d1450b27fcd56825c090687
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: The command selected in the command line window is not executed.
(Andrey Starodubtsev)
Solution: Save and restore the command line at a lower level. (closes vim/vim#1370)
https://github.com/vim/vim/commit/1d669c233c97486555a34f7d3f069068d9ebdb63
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Using freed memory with win_getid(). (Domenique Pelle)
Solution: For the current tab use curwin.
https://github.com/vim/vim/commit/8e639052638a9bb8c7dd6e3e10776b1218cec1a3
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
References #5406
Problem: Using a NULL pointer when using feedkeys() to trigger drawing a
tabline.
Solution: Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
Also fix recursing into getcmdline() from the cmd window.
https://github.com/vim/vim/commit/c695cec4698b41d7b9555efdd47dda9b1945d3ae
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Get E924 when switching tabs. ()
Solution: Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
closes vim/vim#1167, closes vim/vim#1171)
https://github.com/vim/vim/commit/0a9046fbcb33770517ab0220b8100c4494bddab2
|
| | | |
| | | |
| | | |
| | | | |
vim-patch:8.0.0266
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Tab commands do not handle count correctly. (Ken Hamada)
Solution: Add ADDR_TABS_RELATIVE. (Hirohito Higashi)
https://github.com/vim/vim/commit/2f72c70657129c16e6b0e413752a775c804f02f8
|
| | | |
| | | |
| | | |
| | | |
| | | | |
These tests aren't in test_alot.vim, so they need to be added to the
Makefile or they won't be run.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These are failing when run as a batch. Most likely some Vim runtime
patch fixed something, but we don't have it yet. Just isolate them for
now.
Also test_matchadd_conceal_utf8 (it's not there in Vim tree, either).
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Tab page test fails when run as fake root.
Solution: Check 'buftype' instead of 'filetype'. (James McCoy, closes vim/vim#1042)
https://github.com/vim/vim/commit/100f5c90f4d4fb40bc3aeabc35192db371f5988f
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Tests may change the input file when something goes wrong.
Solution: Avoid writing the input file.
https://github.com/vim/vim/commit/3e8474dd50f64c998bb665ce852f584a58dede6b
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: When a match ends in part of concealed text highlighting, it might
mess up concealing by resetting prev_syntax_id.
Solution: Do not reset prev_syntax_id and add a test to verify. (Christian
Brabandt, closes vim/vim#1092)
https://github.com/vim/vim/commit/2f97912800e86a296c001832bbbf2fc425f1e533
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Cannot use overlapping positions with matchaddpos().
Solution: Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
https://github.com/vim/vim/commit/a6c27ee6db2c328e0ab0e6d143e2a295a0bb9c9a
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
vim-patch:8.0.0487
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: test_command_count may fail when a previous test interferes, seen
on MS-Windows.
Solution: Run it separately.
https://github.com/vim/vim/commit/9b73c4a215cb5f0f7df1e7f0663aea2bce1914ab
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Crash when BufWinLeave autocmd goes to another tab page.
(Hirohito Higashi)
Solution: Make close_buffer() go back to the right window.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Tiny things. Test doesn't clean up properly.
Solution: Adjust comment and white space. Restore option value.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Autocommand test fails when run directly, passes when run as
part of test_alot.
Solution: Add command to make the cursor move. Close a tab page.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Test_command_count is old style.
Solution: Turn it into a new style test. (Naruhiko Nishino)
Use more assert functions.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Crash when editing a new buffer and BufUnload autocommand wipes
out the new buffer. (Norio Takagi)
Solution: Don't allow wiping out this buffer. (partly by Hirohito Higashi)
Move old style test13 into test_autocmd. Avoid ml_get error when
editing a file.
https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: When opening a buffer on a directory and inside a try/catch then
the BufEnter event is not triggered.
Solution: Return NOTDONE from readfile() for a directory and deal with the
three possible return values. (Justin M. Keyes, closes vim/vim#1375,
closes vim/vim#1353)
https://github.com/vim/vim/commit/e13b9afe1283f5ae43232b5992372a0eb570666c
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Crash and endless loop when closing windows in a SessionLoadPost
autocommand.
Solution: Check for valid tabpage. (partly neovim/neovim#6308)
https://github.com/vim/vim/commit/8c752bd6c4af54c0b7bac35a39acc2bf16015f85
Closes #6308
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Error for min() and max() contains %s. (Nikolay Pavlov)
Solution: Pass the function name. (closes vim/vim#1040)
https://github.com/vim/vim/commit/26b84339fd8766898bcf6a259cbc2e0c38689726
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Expression test fails without conceal feature.
Solution: Only check "conceal" with the conceal feature.
https://github.com/vim/vim/commit/7ab6defcafe017a3ad58580a3e56dab705b1ed8b
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Patch-by: oni-link <knil.ino@gmail.com>
Closes #6203
https://s3.amazonaws.com/archive.travis-ci.org/jobs/206794197/log.txt
References #3161
[ RUN ] ...d/neovim/neovim/test/functional/terminal/buffer_spec.lua @ 199: terminal buffer term_close() use-after-free #4393
./test/functional/helpers.lua:187: attempt to perform arithmetic on local 'written' (a nil value)
stack traceback:
./test/functional/helpers.lua:187: in function 'nvim_feed'
./test/functional/helpers.lua:329: in function 'execute'
...d/neovim/neovim/test/functional/terminal/buffer_spec.lua:206: in function <...d/neovim/neovim/test/functional/terminal/buffer_spec.lua:199>
[ ERROR ] ...d/neovim/neovim/test/functional/terminal/buffer_spec.lua @ 199: terminal buffer term_close() use-after-free #4393 (199.47 ms)
==================== File /home/travis/build/neovim/neovim/build/log/ubsan.15466 ====================
= =================================================================
= ==15466==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x621000029101 at pc 0x000000ea7ba0 bp 0x7ffd5bb628c0 sp 0x7ffd5bb628b8
= READ of size 1 at 0x621000029101 thread T0
= #0 0xea7b9f in utf_head_off /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1637:7
= #1 0xeaaf53 in mb_adjustpos /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1840:16
= #2 0xeaab48 in mb_adjust_cursor /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1825:3
= #3 0x11000d0 in normal_finish_command /home/travis/build/neovim/neovim/src/nvim/normal.c:928:5
= #4 0x1077df1 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1147:3
= #5 0x16ff943 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26
= #6 0x102d8db in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:463:3
= #7 0xdf3398 in main /home/travis/build/neovim/neovim/src/nvim/main.c:540:3
= #8 0x2b973e8b4f44 in __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:287
= #9 0x447445 in _start (/home/travis/build/neovim/neovim/build/bin/nvim+0x447445)
=
= 0x621000029101 is located 1 bytes to the right of 4096-byte region [0x621000028100,0x621000029100)
= allocated by thread T0 here:
= #0 0x4f17b8 in malloc (/home/travis/build/neovim/neovim/build/bin/nvim+0x4f17b8)
= #1 0xf1f374 in try_malloc /home/travis/build/neovim/neovim/src/nvim/memory.c:84:15
= #2 0xf1f534 in xmalloc /home/travis/build/neovim/neovim/src/nvim/memory.c:118:15
= #3 0xebe6a8 in mf_alloc_bhdr /home/travis/build/neovim/neovim/src/nvim/memfile.c:646:17
= #4 0xebc394 in mf_new /home/travis/build/neovim/neovim/src/nvim/memfile.c:297:12
= #5 0xed1368 in ml_new_data /home/travis/build/neovim/neovim/src/nvim/memline.c:2704:16
= #6 0xece6ab in ml_open /home/travis/build/neovim/neovim/src/nvim/memline.c:349:8
= #7 0x6438ad in open_buffer /home/travis/build/neovim/neovim/src/nvim/buffer.c:109:7
= #8 0xa6ec8d in do_ecmd /home/travis/build/neovim/neovim/src/nvim/ex_cmds.c:2489:24
= #9 0xb5a0f9 in do_exedit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6723:9
= #10 0xb791f8 in ex_edit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6651:3
= #11 0xb28b43 in do_one_cmd /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:2198:5
= #12 0xb077a7 in do_cmdline /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:601:20
= #13 0x10905db in nv_colon /home/travis/build/neovim/neovim/src/nvim/normal.c:4495:18
= #14 0x1077de8 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1144:3
= #15 0x16ff943 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26
= #16 0x102d8db in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:463:3
= #17 0xdf3398 in main /home/travis/build/neovim/neovim/src/nvim/main.c:540:3
= #18 0x2b973e8b4f44 in __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:287
=
= SUMMARY: AddressSanitizer: heap-buffer-overflow /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1637:7 in utf_head_off
stack traceback:
./test/helpers.lua:80: in function 'check_logs'
./test/functional/helpers.lua:639: in function <./test/functional/helpers.lua:638>
[----------] 9 tests from /home/travis/build/neovim/neovim/test/functional/terminal/buffer_spec.lua (2263.12 ms total)
|
|\ \ \
| | | |
| | | | |
vim-patch: 7.4.2255,7.42256
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Coverity complains about null pointer check.
Solution: Remove wrong and superfluous error check.
https://github.com/vim/vim/commit/db249f26edf7a5f88d1f4468d08ec5b84f5ab7ad
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: The script that checks translations can't handle plurals.
Solution: Check for plural msgid and msgstr entries. Leave the cursor on
the first error.
https://github.com/vim/vim/commit/ec42059b78c1932a44f2bf36ac982109884dc7c7
|
|\ \ \ \
| | | | |
| | | | | |
vim-patch:7.4.2283,7.4.2296,7.4.2303
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: When using "is" the mode isn't always updated.
Solution: Redraw the command line. (Christian Brabandt)
https://github.com/vim/vim/commit/779f2fc3a7468e273897d2fd0672315812a2e3da
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: No tests for :undolist and "U" command.
Solution: Add tests. (Dominique Pelle)
https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: Part of ":oldfiles" command isn't cleared. (Lifepillar)
Solution: Clear the rest of the line. (closes 1018)
https://github.com/vim/vim/commit/885c00eabe6d1fd757d4f0eb531ad3a15a35ec04
|
|/ / / /
| | | |
| | | |
| | | | |
Re-apply fix from #6311 which was accidentally regressed in #6231.
|
|\ \ \ \
| | | | |
| | | | | |
vim-patch:7.4.2266,7.4.2280,7.4.2291
|
| | | | | |
|