| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
| |
Problem: Using feedkeys() with an empty string disregards 'x' option.
Solution: Make 'x' work with an empty string. (Thinca)
When integrating the patch to nvim, used same logic but different code
based on nvim codebase. New test passed.
https://github.com/vim/vim/commit/74c5bbf13435a7ab1e3461078bbcb1200f0451e1
|
|
|
|
|
|
|
|
|
|
|
| |
(#5282)
If a conversion for a container fails in object_to_vim(), the memory for
the container in the returned/converted value is freed, but the returned
value keeps a pointer to the freed memory. Calling later clear_tv() on
this value leads to an invalid memory access.
Set v_type to VAR_UNKNOWN in the converted value on failure, so that
clear_tv() has no effect.
|
| |
|
|
|
|
| |
Blacklist deprecated functions and functions depending on channel_id
|
| |
|
|
|
|
| |
also allow handle==0 meaning curbuf/curwin/curtab
|
| |
|
|
|
|
| |
header generator.
|
|
|
|
| |
Use new nvim_ui_ prefix to avoid breaking change.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Also adds one exception to linter rules:
typedef struct {
kvec_t(Object) stack;
} EncodedData;
is completely valid (from the style guide point of view) code.
|
|
|
|
|
|
| |
This removes some stack overflows in new test regarding deeply nested variables.
Now in place of crashing vim_to_object/msgpack_rpc_from_object/etc it crashes
clear_tv with stack overflow.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ought to prevent stack overflow, but I do not see this actually working:
*lua* code crashes with stack overflow when trying to deserialize msgpack from
Neovim, Neovim is fine even if nesting level is increased 100x (though test
becomes very slow); not sure how recursive function may survive this. So it
looks like there are currently only two positive effects:
1. NULL lists are returned as empty (#4596).
2. Functional tests are slightly more fast. Very slightly. Checked for Release
build for test/functional/eval tests because benchmarking of debug mode is
not very useful.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Problem: Missing change to eval.c
Solution: Also change feedkeys().
https://github.com/vim/vim/commit/5f8a14b9dea094b8bbab94cfc1e8da8e633fbc01
|
| |
|
| |
|
|
|
|
| |
Originally there were 128 new errors, so I thought this is a good idea to fix
all of them. Of course, this commit also fixes many suppressed errors.
|
|\
| |
| | |
Make some function accept strings with length in place of just strings
|
| |
| |
| |
| |
| |
| |
| | |
Reasons:
- One does not have to do `s[len] = NUL` to work with these functions if they do
not need to replace the whole string: thus `s` may be const.
- One does not have to save/restore p_cpo to work with them.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
New ex commands: 'tcd', 'tchdir'
Changed Vimscript functions: 'haslocaldir', 'getcwd'
The ex-commands ':tcd' and ':tchdir' are the tab-local equivalents of
':lcd' and ':lchdir'. There are no new Vimscript functions introduced,
instead the functions 'haslocaldir' and 'getcwd' take in optional
arguments. See the documentation for details
Since there is now different levels of local directory a simple boolean
at source level is no longer sufficient; a new enumeration type is used
for the scope-level from now on.
The documentation has been accommodated for these new commands and
functional tests have been written to test the feature.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
To get v:none back just rever this commit. This will not make json*() functions
compatible with Vim though.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
| |
-1 is index past the end, and -2 is the index of the last element.
This eliminates the need for include_start/include_end.
Allow the handling of out-of-bounds to be configurable.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Also fixes the error: when writing shada files existing history items may be
freed.
Warning: valgrind reports some memory leaks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What works:
1. ShaDa file dumping: header, registers, jump list, history, search patterns,
substitute strings, variables.
2. ShaDa file reading: registers, global marks, variables.
Most was not tested.
TODO:
1. Merging.
2. Reading history, local marks, jump and buffer lists.
3. Documentation update.
4. Converting some data from &encoding.
5. Safer variant of dumping viminfo (dump to temporary file then rename).
6. Removing old viminfo code (currently masked with `#if 0` in a ShaDa file for
reference).
|
|
|
|
|
| |
We want to switch include_start/end when the index is positive or
negative.
|
| |
|
|
|
|
|
|
|
|
| |
buffer_insert calls buffer_set_line_slice excluding the start
line number and including the end, but it should be the opposite.
Closes https://github.com/neovim/neovim/issues/3212
Closes https://github.com/neovim/python-client/issues/103
|
|
|
|
|
|
|
|
|
|
|
| |
API functions exposed via msgpack-rpc now fall into two categories:
- async functions, which are executed as soon as the request is parsed
- sync functions, which are invoked in nvim main loop when processing the
`K_EVENT special key
Only a few functions which can be safely executed in any context are marked as
async.
|
|
|
|
|
| |
Remove static modifier from func_call
Move MAX_FUNC_ARGS definnition from eval.c to eval.h
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Arguments passed to xmemdupz() are sometimes NULL, but xmemdupz() has
FUNC_ATTR_NONNULL_ALL. Check pointers for NULL before calling
xmemdupz().
Resolves #2533.
|
|
|
|
| |
Closes #2816
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Consider: `let vim = rpcstart('nvim', ['--embed'])`
Allows `rpcnotify(vim, ...)` to work like an asynchronous
`rpcrequest(nvim, ...)`.
Helped-by: Michael Reed <m.reed@mykolab.com>
Helped-by: Justin M. Keyes <>
|
| |
|
|
|
|
|
|
| |
We already use wrappers for allocation, the new `xfree` function is the
equivalent for deallocation and provides a way to fully replace the malloc
implementation used by Neovim.
|
|
|
|
|
|
| |
Most internal functions to modify buffers operate on the current buffer and
require temporary switchs. This macro is a temporary workaround until a cleaner
refactoring of the internal API is performed.
|