aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* eval: Split eval.c into smaller filesZyX2017-03-29
|
* terminal.c:redraw(): Avoid invalid cursor col (#6379)Justin M. Keyes2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed the call to validate_cursor() because mb_check_adjust_col() is already called in adjust_topline(). Closes #6378 References #6203 https://s3.amazonaws.com/archive.travis-ci.org/jobs/215498258/log.txt [ ERROR ] ...ovim/neovim/test/functional/terminal/scrollback_spec.lua @ 386: 'scrollback' option set to 0 behaves as 1 (10621.17 ms) ==================== File /home/travis/build/neovim/neovim/build/log/ubsan.12836 ==================== = ================================================================= = ==12836==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x62100002cd00 at pc 0x000000eafe90 bp 0x7ffc8661fe50 sp 0x7ffc8661fe48 = READ of size 1 at 0x62100002cd00 thread T0 = #0 0xeafe8f in utf_head_off /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1457:7 = #1 0x6b890e in getvcol /home/travis/build/neovim/neovim/src/nvim/charset.c:1169:15 = #2 0x6bc777 in getvvcol /home/travis/build/neovim/neovim/src/nvim/charset.c:1336:5 = #3 0xfc067b in curs_columns /home/travis/build/neovim/neovim/src/nvim/move.c:730:5 = #4 0xfbc8db in validate_cursor /home/travis/build/neovim/neovim/src/nvim/move.c:510:5 = #5 0x14479ed in setcursor /home/travis/build/neovim/neovim/src/nvim/screen.c:6363:5 = #6 0x17fe054 in redraw /home/travis/build/neovim/neovim/src/nvim/terminal.c:1175:5 = #7 0x17f95e4 in terminal_enter /home/travis/build/neovim/neovim/src/nvim/terminal.c:392:3 = #8 0x70eb2b in edit /home/travis/build/neovim/neovim/src/nvim/edit.c:1300:7 = #9 0x11097d1 in normal_finish_command /home/travis/build/neovim/neovim/src/nvim/normal.c:947:13 = #10 0x1081191 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1138:3 = #11 0x170b813 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26 = #12 0x103631b in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:464:3 = #13 0xdfb7a8 in main /home/travis/build/neovim/neovim/src/nvim/main.c:552:3 = #14 0x2b8a3c85bf44 in __libc_start_main /build/eglibc-MjiXCM/eglibc-2.19/csu/libc-start.c:287 = #15 0x447b25 in _start (/home/travis/build/neovim/neovim/build/bin/nvim+0x447b25) = = 0x62100002cd00 is located 0 bytes to the right of 4096-byte region [0x62100002bd00,0x62100002cd00) = allocated by thread T0 here: = #0 0x4f1e98 in malloc (/home/travis/build/neovim/neovim/build/bin/nvim+0x4f1e98) = #1 0xf28774 in try_malloc /home/travis/build/neovim/neovim/src/nvim/memory.c:84:15 = #2 0xf28934 in xmalloc /home/travis/build/neovim/neovim/src/nvim/memory.c:118:15 = #3 0xec7be8 in mf_alloc_bhdr /home/travis/build/neovim/neovim/src/nvim/memfile.c:646:17 = #4 0xec58d4 in mf_new /home/travis/build/neovim/neovim/src/nvim/memfile.c:297:12 = #5 0xeda8a8 in ml_new_data /home/travis/build/neovim/neovim/src/nvim/memline.c:2697:16 = #6 0xed7beb in ml_open /home/travis/build/neovim/neovim/src/nvim/memline.c:349:8 = #7 0x643fcd in open_buffer /home/travis/build/neovim/neovim/src/nvim/buffer.c:109:7 = #8 0xa7038c in do_ecmd /home/travis/build/neovim/neovim/src/nvim/ex_cmds.c:2483:24 = #9 0xb5bb49 in do_exedit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6839:9 = #10 0xb7b6d8 in ex_edit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6767:3 = #11 0xb2a598 in do_one_cmd /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:2208:5 = #12 0xb08f47 in do_cmdline /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:602:20 = #13 0x109997b in nv_colon /home/travis/build/neovim/neovim/src/nvim/normal.c:4492:18 = #14 0x1081188 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1135:3 = #15 0x170b813 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26 = #16 0x103631b in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:464:3 = #17 0xdfb7a8 in main /home/travis/build/neovim/neovim/src/nvim/main.c:552:3 = #18 0x2b8a3c85bf44 in __libc_start_main /build/eglibc-MjiXCM/eglibc-2.19/csu/libc-start.c:287 = = SUMMARY: AddressSanitizer: heap-buffer-overflow /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1457:7 in utf_head_off = Shadow bytes around the buggy address: = 0x0c427fffd950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = =>0x0c427fffd9a0:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = Shadow byte legend (one shadow byte represents 8 application bytes): = Addressable: 00 = Partially addressable: 01 02 03 04 05 06 07 = Heap left redzone: fa = Heap right redzone: fb = Freed heap region: fd = Stack left redzone: f1 = Stack mid redzone: f2 = Stack right redzone: f3 = Stack partial redzone: f4 = Stack after return: f5 = Stack use after scope: f8 = Global redzone: f9 = Global init order: f6 = Poisoned by user: f7 = Container overflow: fc = Array cookie: ac = Intra object redzone: bb = ASan internal: fe = Left alloca redzone: ca = Right alloca redzone: cb = ==12836==ABORTING ===================================================================================================== ./test/helpers.lua:82: assertion failed! stack traceback: ./test/helpers.lua:82: in function 'check_logs' ./test/functional/helpers.lua:643: in function <./test/functional/helpers.lua:642>
* vim-patch:7.4.2343 and mark NA patches (#6384)lonerover2017-03-29
| | | | | | | | | | vim-patch:7.4.2343 Problem: Too many old file tests. Solution: Turn several into new style tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
* refactor/single-include: charset.h (#6385)Samuel Catherasoo2017-03-29
|
* win: health/provider.vim: check with `.exe` extensionJustin M. Keyes2017-03-28
| | | | Also fix `python_multiple` comparison.
* getcompletion("cmdline") (#6376)Justin M. Keyes2017-03-27
| | | Closes #5823
* rplugin.vim: GetManifestPath(): be more explicit (#6361)Daniel Hahler2017-03-27
|
* Merge #6375 from justinmk/check-single-includesJustin M. Keyes2017-03-27
|\
| * build: Prefix check-single-includes artifacts.Justin M. Keyes2017-03-27
| | | | | | | | | | | | The previous naming scheme could conflict with the test fixture artifacts from `test/functional/fixtures/`, which also produce `foo-test` artifacts.
| * build: Rename NEOVIM_* to NVIM_*Justin M. Keyes2017-03-27
| |
| * ci: Check that `#include "*.h"` works as a single includeEiichi NISHINA2017-03-27
|/ | | | | | | | | | | Lesser form of include-what-you-use: at least guarantees that header file did not forget to include something through some other included file. Activate run_single_includes_tests on CI. Fix some IWYU violations. References #5321
* terminal: global 'scrollback' #6352Jakob Schnitzer2017-03-27
| | | | | | | | | | | Make the 'scrollback' option work like most other buffer-local options: - `:set scrollback=x` sets the global and local value - `:setglobal scrollback=x` sets only the global default - new terminal buffers inherit the global Normal buffers are still always -1, and :setlocal there is an error. Closes #6337
* Merge #6372 from lonerover/vim-7.4.2307Justin M. Keyes2017-03-27
|\
| * vim-patch:7.4.2334lonerover2017-03-27
| | | | | | | | | | | | | | Problem: On MS-Windows test_getcwd leaves Xtopdir behind. Solution: Set 'noswapfile'. (Michael Soyka) https://github.com/vim/vim/commit/1b0c2fcf6e85c9b85c24757ba970061e1f3e4e80
| * vim-patch:7.4.2330lonerover2017-03-27
| | | | | | | | | | | | | | Problem: Coverity complains about not checking curwin to be NULL. Solution: Use firstwin to avoid the warning. https://github.com/vim/vim/commit/030cddc7ec0c3d2fe3969140cd1b92b2f18633c0
| * vim-patch:7.4.2307lonerover2017-03-27
|/ | | | | | | Problem: Several tests are old style. Solution: Turn them into new style tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/cd055da370114f66c960be9c8b1eb0f33a9e0a85
* vim-patch:7.4.2357 (#6354)raichoo2017-03-26
| | | | | | Problem: Attempt to read history entry while not initialized. Solution: Skip when the index is negative. https://github.com/vim/vim/commit/46643713dc6bb04b4e84986b1763ef309e960161
* vim-patch:7.4.2349 (#6368)lonerover2017-03-26
| | | | | | Problem: Valgrind reports using uninitialzed memory. (Dominique Pelle) Solution: Check the length before checking for a NUL. https://github.com/vim/vim/commit/2321ca2a78286bc026fa7f407281ddbeb04114bb
* highlight: :match should override 'list' (#6343)Yichao Zhou2017-03-26
| | | Closes #4946
* build: Do not ref `libuv` CMake target if USE_BUNDLED_LIBUV=OFF. (#6363)Justin M. Keyes2017-03-26
| | | | | | CMake Warning: The dependency target "libuv" of target "luv-static" does not exist. (CMP0046) Closes #6355
* cmake: USE_BUNDLED_X instead of X_USE_BUNDLED (#6357)Daniel Hahler2017-03-25
|
* man.vim: call s:error in man#read_page (#6362)Anmol Sethi2017-03-25
| | | | | The comment is incorrect, s:error does need to be called. I thought the call was unnecessary because it didn't show any message for me but I had shortmess+=F which was hiding the message.
* refactor: Remove allow_keys global (#6346)Matthew Malcomson2017-03-25
| | | | | | * The allow_keys global is unused in nvim, remove it * clint
* Merge #6221Justin M. Keyes2017-03-25
|\
| * fold.c: uppercase macrosJustin M. Keyes2017-03-25
| |
| * vim-patch:8.0.0407 : filtering folds with marker method not testedMatthew Malcomson2017-03-23
| | | | | | | | | | Problem: Filtering folds with marker method not tested. Solution: Also set 'foldmethod' to "marker".
| * Fix wrap-around in 32 bitMatthew Malcomson2017-03-23
| |
| * Robustly handle folds during a :move commandMatthew Malcomson2017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #6350 from jamessan/vim-8.0.0250James McCoy2017-03-24
|\ \ | | | | | | vim-patch:8.0.0250
| * | vim-patch:8.0.0250James McCoy2017-03-24
|/ / | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #6323 from justinmk/vimpatchesJustin M. Keyes2017-03-24
|\ \
| * | XXX: ex_tabonly(): aucmd_win is not part of the window list.Justin M. Keyes2017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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();
| * | vim-patch:8.0.0307Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0502Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0331Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0482Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0483Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | 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
| * | test/legacy: Test_three_windows: rtp for :helpJustin M. Keyes2017-03-22
| | |
| * | ex_tabnext: Disallow "+NN" arg.Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | Need to do this explicitly because our implementation of getdigits() is slightly different.
| * | vim-patch:8.0.0485Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0172Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0083Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | Problem: Using freed memory with win_getid(). (Domenique Pelle) Solution: For the current tab use curwin. https://github.com/vim/vim/commit/8e639052638a9bb8c7dd6e3e10776b1218cec1a3
| * | vim-patch:8.0.0159Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.0.0037Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | 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
| * | get_tabpage_arg: satisfy clang warningJustin M. Keyes2017-03-22
| | | | | | | | | | | | vim-patch:8.0.0266
| * | lintJustin M. Keyes2017-03-22
| | |
| * | vim-patch:8.0.0259Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | Problem: Tab commands do not handle count correctly. (Ken Hamada) Solution: Add ADDR_TABS_RELATIVE. (Hirohito Higashi) https://github.com/vim/vim/commit/2f72c70657129c16e6b0e413752a775c804f02f8
| * | test/legacy: Makefile Add missing testsJustin M. Keyes2017-03-22
| | | | | | | | | | | | | | | These tests aren't in test_alot.vim, so they need to be added to the Makefile or they won't be run.
| * | test/legacy: Run test_match, test_tabpage isolatedJustin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | vim-patch:7.4.2339Justin M. Keyes2017-03-22
| | | | | | | | | | | | | | | | | | | | | 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