aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | eval/typval,tests: Fix extending list with itself, add testsZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | Adds unit test for tv_list_extend and regression test for extend() VimL function.
| * | | | unittests: Test tv_list_concat()ZyX2017-03-29
| | | | |
| * | | | eval/typval: Make tv_list_concat handle NULL lists correctlyZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | Fixes some FIXMEs in eval/null_spec.lua.
| * | | | functests: Add null_spec.lua from #4615ZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now it is full of FIXMEs and tests for incorrect behaviour. Sorted out to have FIXMEs in one place, commented crashing tests in other and correctly working tests in the third one.
| * | | | unittests: Test tv_list_copyZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also found some bugs: 1. var_item_copy() always fails to copy v:_null_list and v:_null_dict. Fixing this should mean fixing `deepcopy(v:_null_list)` which should’ve been, but was not listed in #4615. This also fixes `deepcopy(v:_null_dict)`. 2. var_item_copy() crashes when trying to copy NULL string with `conv != NULL`. 3. `conv` argument is ignored when copying list unless `deep` is true, but it was not reflected in documentation. 4. `tv_dict_item_alloc_len()` allocated more memory then needed. 5. typvalt2lua was not able to handle self-referencing containers.
| * | | | unittests: Add tests for tv_list_insert*()/…append*() functionsZyX2017-03-29
| | | | |
| * | | | unittests: Add tests for tv_list_insert()ZyX2017-03-29
| | | | |
| * | | | unittests: Add tests for list watchers and list alloc/free/unrefZyX2017-03-29
| | | | |
| * | | | unittests: Test tv_list_item_\* functionsZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | To check that memory is free()d correctly.
| * | | | eval/typval: Add missing includes, also add a script to find themZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contains unfinished attempt to integrate IWYU (ref #549). To finish it different job should be done, specifically: - Instead of feeding IWYU with modified file a mirror source tree should be created with the help of CMake which will contain modified sources. This solves the problem with IWYU thinking that `*.generated.h` headers should be included in place of `*` headers. - Build IWYU as all other third-party utilities. - Make modified sources avoid problems with `nvim/func_attr.h` includes and various related tricks. Current script may only be used for manual checks like this: ./scripts/check-includes.py \ --generated-includes-dir build/include \ --generated-includes-dir build/src/nvim/auto \ --file src/nvim/eval/typval.c \ -- -Isrc -Ibuild/include -Ibuild/src/nvim/auto \ -DINCLUDE_GENERATED_DECLARATIONS (it is also somewhat fine with `--file src/nvim/eval/typval.h`). I have no idea why (I mean, why developer think that these lines are needed, why they are suggested is pretty obvious: because there is typedef which mentions them before structs are defined), but for typval.h it reports, among other things, that it should add lines struct dictvar_S; struct listitem_S; struct listvar_S; struct listwatch_S;
| * | | | eval: Move copy_tv to eval/typvalZyX2017-03-29
| | | | |
| * | | | message: Remove incorrect assertionZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was there only to prove that *now* `len` argument is not used to forbid putting message into history (i.e. that Neovim behaviour did not change). After this commit it should be possible to use msg_puts_attr_len with len>=0 to put message into history should new code need this.
| * | | | message: Revise maxlen argument in msg_puts_attr_lenZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `attr` argument is enough to forbid putting message in history. Also forbid strings with NUL before `len` just in case (it appears that this does not ever happen).
| * | | | cmake: Use CMAKE_CURRENT_LIST_DIR and remove vars used only onceZyX2017-03-29
| | | | |
| * | | | eval: Fix max_min functionsZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found two bugs: 1. Multiple unneeded error messages, vim/vim#1039. 2. Unformatted error string, vim/vim#1040.
| * | | | typval.h: Allow non-var expressions in TV_DICT_ITER first argumentZyX2017-03-29
| | | | |
| * | | | misc1: Refactor ask_yesno()ZyX2017-03-29
| | | | |
| * | | | eval: Make sort always stableZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Should fix test failures on QB: 20:00:51,837 INFO - not ok 420 - sort() sorts “wrong” values between -0.0001 and 0.0001, preserving order 20:00:51,837 INFO - # test/functional/eval/sort_spec.lua @ 21 20:00:51,837 INFO - # Failure message: test/functional/eval/sort_spec.lua:39: Expected objects to be the same. 20:00:51,837 INFO - # Passed in: 20:00:51,837 INFO - # (string) '[-1.0e-4, v:true, v:false, v:null, function('tr'), {'a': 42}, 'check', [], 1.0e-4]' 20:00:51,837 INFO - # Expected: 20:00:51,837 INFO - # (string) '[-1.0e-4, function('tr'), v:true, v:false, v:null, [], {'a': 42}, 'check', 1.0e-4]' 20:00:51,837 INFO - # stack traceback: 20:00:51,837 INFO - # test/functional/eval/sort_spec.lua:39: in function <test/functional/eval/sort_spec.lua:22> 20:00:51,837 INFO - #
| * | | | eval: Remove eval_expr() completelyZyX2017-03-29
| | | | |
| * | | | eval: Move remaining get_tv_string* functions to eval/typval.cZyX2017-03-29
| | | | |
| * | | | eval: Move free_tv to eval/typval.h, remove most of its usagesZyX2017-03-29
| | | | |
| * | | | eval: Move get_tv_number[_chk] to eval/typval.cZyX2017-03-29
| | | | |
| * | | | eval: Refactor get_tv_lnum_bufZyX2017-03-29
| | | | |
| * | | | eval: Move get_tv_lnum and get_tv_float to eval/typval.hZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additionally - Rename former tv_get_float to tv_get_float_chk due to name conflict (former get_tv_float is better suited for being tv_get_float). - Add E907 error to get_tv_float() and test that it is being raised when appropriate.
| * | | | eval: Move get_tv_string_buf() to eval/typval.cZyX2017-03-29
| | | | |
| * | | | eval,*: Move get_tv_string to typval.cZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | Function was renamed and changed to return `const char *`.
| * | | | eval: Move get_float_arg to typval.hZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assuming `inline` is there for a reason, so it is kept and function was moved to typval.h and not to typval.c which does not have problems with #including message.h.
| * | | | eval: Split and move dict_add_nr_str to typval.cZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | Function was split into tv_dict_add_nr() and tv_dict_add_str().
| * | | | eval: Move dict_add_list and dict_add_dict to typval.cZyX2017-03-29
| | | | |
| * | | | eval: Move dict_set_keys_readonly to typval.cZyX2017-03-29
| | | | |
| * | | | eval: Move get_dict_callback to typval.cZyX2017-03-29
| | | | |
| * | | | eval: Make setmatches() return -1 in case of some failuresZyX2017-03-29
| | | | |
| * | | | *: Move some dictionary functions to typval.h and use char*ZyX2017-03-29
| | | | | | | | | | | | | | | | | | | | Also fixes buffer reusage in setmatches() and complete().
| * | | | functests: Add tests for some *buf* functionsZyX2017-03-29
| | | | |
| * | | | eval: Split eval.c into smaller filesZyX2017-03-29
| | | | |
* | | | | Merge #6394 'ci: check-single-includes only in "lint" build'Justin M. Keyes2017-03-29
|\ \ \ \ \
| * | | | | ci: Run check-single-includes in "lint" build onlyJustin M. Keyes2017-03-29
| | | | | |
| * | | | | build: remove unused get_preproc_output() callJustin M. Keyes2017-03-29
|/ / / / / | | | | | | | | | | | | | | | ref https://github.com/neovim/neovim/pull/6375#discussion_r108573471
* / / / / vim-patch:7.4.2276 (#6393)lonerover2017-03-29
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vim-patch:7.4.2276 Problem: Command line test fails on Windows when run twice. Solution: Wipe the buffer so that the directory can be deleted. https://github.com/vim/vim/commit/1773ddfdcd106fa3bbf479c9b62ccde03c2a86ba * version.c: mark vim-patch 7.4.2269 as included (#5659)
* | | | 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