On Windows, if the nvim process has a directory open the lua process
cannot remove it. After failing once, it's safe to force `nvim` to the
top-level directory. Then try again.
- Eliminate global test_autochdir.
- Eliminate VimL function test_autochdir()
- Use a lua test instead. Fails correctly after reverting
0c43479979 / vim-patch:7.4.2015.
- Improve test reliability by only checking for a line with the string
we are interested in ("Interrupt").
- Try to avoid OOM by loading an existing big file instead of looping to
create one.
Keeps arguments separated and not joined as a single string as long as possible.
Abstracts away additional arguments so that Gcc:preprocess should work for
compilers with different conventions should they be supported.
Works by saving all preprocessor defines and reusing them on each run. This also
saves NVIM_HEADER_H defines. Saving other defines is needed for defines like
`Map(foo, bar)` which are sometimes used to declare types or functions. Saving
types or function declarations is not needed because they are recorded as luajit
state.
Fixes#5857
Also fixed dumping of partials by encode_vim_to_object and added code which is
able to work with partials and dictionaries to test/unit/eval/helpers.lua
(mostly copied from #5119, except for partials handling).
Problem: Getting an item from a NULL dict crashes. Setting a register to a
NULL list crashes. (Nikolai Pavlov, issue vim/vim#768) Comparing a NULL
dict with a NULL dict fails.
Solution: Properly check for NULL.
13ddc5c359
Renames `tv` function argument to `top_tv` and `cur_tv` variable to `tv`, so
`tv` will mean something more or less the same in both
_TYPVAL_ENCODE_CONVERT_ONE_VALUE and _TYPVAL_ENCODE_ENCODE functions.
Occurs when trying to dump a partial with attached self dictionary which
references that partial. “Infinite” loop should normally result in Neovim killed
by OOM killer.
Also moved the place when partials are unreferenced by clear_tv: from
…FUNC_START to …FUNC_END.
Except when they are system just in case. There should be no .c.h system files
though, but if there will be it is unlikely that they inherit the same
convention.
This makes gdb backtraces much more meaningful: specifically I now know at which
line it crashes in place of seeing that it crashes at
TYPVAL_ENCODE_DEFINE_CONV_FUNCTIONS macros invocation.