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.
vim-patch:7.4.1996
Problem: Capturing the output of a command takes a few commands.
Solution: Add evalcmd().
1e5e1231ac
vim-patch:7.4.1999
Problem: evalcmd() doesn't work recursively.
Solution: Use redir_evalcmd instead of redir_vname.
bc5d6dd1dd
vim-patch:7.4.2000
Problem: Evalcmd test fails.
Solution: Add missing piece.
245a7cb6d3
vim-patch:7.4.2005
Problem: After using evalcmd() message output is in the wrong position.
(Christian Brabandt)
Solution: Reset msg_col.
ee1deb4a00
Problem: Compiler warnings with 64 bit compiler.
Solution: Change int to size_t. (Mike William)
b055066a1d
Functional changes had already been made when package feature was
initially merged.
Problem: Cannot get the items stored in a partial.
Solution: Support using get() on a partial.
2bbf8eff6f
The content of this was already applied in the partials PR, but no
commit mentioned the upstream patch.