Problem: ml_get error when win_execute redraws with Visual selection.
Solution: Disable Visual area temporarily. (closesvim/vim#9479)
18f4740f04
{switch_to/restore}_win_for_buf is N/A (marked as such in v8.0.0860; currently
only used in Vim's if_py).
Add a modeline to test_execute_func.vim.
Problem: Crash when using reduce() on a NULL list.
Solution: Only access the list when not NULL.
fda20c4cc5
CHECK_LIST_MATERIALIZE hasn't been ported yet, but presumably if it is ported
it'll use tv_list_first to check for range_list_item, which already checks for
NULL, so this should need no extra changes and can be a full port.
We didn't actually crash here due to the use of Nvim's tv_list functions
checking for NULL, but apply these changes to match Vim better anyway.
Problem: No reduce() function.
Solution: Add a reduce() function. (closesvim/vim#5481)
85629985b7
Needs CHECK_LIST_MATERIALIZE from v8.2.0751 (and range_list_materialize from
8.2.0149).
Move e_reduceempty to funcs.c, as it's only used there. Make it static.
Use tv_blob_len, tv_list_len == 0 for empty checks.
Replace vim_memset(&funcexe, 0, ...) with FUNCEXE_INIT.
Leave li initially undefined (tv_list_first returns NULL if list is NULL).
This patch has a memory leak fixed by v8.2.0882.
These versions of python has reached End-of-life. getting rid
of python2 support removes a lot of logic to support two
incompatible python versions in the same version.
This commit adds an on_print callback to stdioopen's dictionary
argument which lets the caller specify a function called each time
neovim will try to output something to stdout (e.g. on "echo" or
"echoerr" in --headless mode).
Behavioral changes:
1. Added support for lua function in keymaps in
--------------------------------------------
- nvim_set_keymap
Can set lua function as keymap rhs like following:
```lua
vim.api.nvim_{buf_}set_keymap('n', '<leader>lr', '', {callback = vim.lsp.buf.references})
```
Note: lua function can only be set from lua . If api function being
called from viml or over rpc this option isn't available.
- nvim_{buf_}get_keymap
When called from lua, lua function is returned is `callback` key .
But in other cases callback contains number of the function ref.
- :umap, nvim_del_keymap & nvim_buf_del_keymap clears lua keymaps correctly.
- :map commands for displaing rhs .
For lua keymaps rhs is displayed as <Lua function ref_no>
Note: lua keymap cannot be set through viml command / functions.
- mapargs()
When dict is false it returns string in `<Lua function ref_no>`
format (same format as :map commands).
When dict is true it returns ref_no number in `callback` key.
- mapcheck()
returns string in `<Lua function ref_no>` format (same format as :map commands).
2. Added support for keymap description
---------------------------------------
- nvim_{buf_}set_keymap: added `desc` option in opts table .
```lua
vim.api.nvim_set_keymap('n', '<leader>w', '<cmd>w<cr>', {desc='Save current file'})
```
- nvim_{buf_}get_keymap: contains `desc` in returned list.
- commands like `:nmap <leader>w` will show description in a new line below rhs.
- `maparg()` return dict contains `desc`.
Problem: getreg() and getregtype() contain dead code.
Solution: Remove the needless check. (closesvim/vim#9392) Also refactor to put
common code in a shared function.
51e64b2789
feat(eval): add reg_recorded()
This function is used the get the last recorded register.
style(Recording): rename handler to match suggestions
fix(RecordingLeave): send autocommand earlier
This makes the autocommand fire just before setting reg_recorded to
reg_recording, this way we clearly show that we are actually just before
actually quitting the recording mode.
Problem: Newly added features can escape the sandbox.
Solution: Add checks for restricted and secure. (Yasuhiro Matsumoto)
3849992b16
timer_start is missing check_secure.
The timer callback can, for example, call a function defined from outside the sandbox that does
stuff that would be disallowed from inside the sandbox. This is usually not allowed.
Cherry-pick eval.txt change from:
68e6560b84
Required for v8.1.2013.
Problem: getcompletion() always passes zero as position to custom
completion function.
Solution: Pass the pattern length. (closesvim/vim#9173)
4785fe02bb
Co-authored-by: ii14 <ii14@users.noreply.github.com>
* fix(eval): fixup for empty modifier in fnamemodify
1dbbaf89bf
erroneously removed a check for empty modifier and a PVS fix.
Restore that check and fix.
Fixes#16367
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Problem: getcwd() is unclear about how 'autochdir' is used.
Solution: Update the help for getcwd(). Without any arguments always return
the actual current directory. (closesvim/vim#9142)
851c7a699a
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
vim/vim#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
f9e3e09fdc
* vim-patch:8.2.3550: completion() does not work properly
Problem: completion() does not work properly.
Solution: Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
closesvim/vim#9016)
ae38a9db77
Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
Problem: :pwd does not give a hint about the scope of the directory
Solution: Make ":verbose pwd" show the scope. (Takuya Fujiwara, closesvim/vim#5469)
950587242c
Problem: Not easy to change directory and restore.
Solution: Add the chdir() function. (Yegappan Lakshmanan, closesvim/vim#4358)
1063f3d200
Also includes some documentation changes from patch 8.1.1218.
* vim-patch:8.2.1082: Coverity complains about ignoring dict_add() return value
Problem: Coverity complains about ignoring dict_add() return value.
Solution: Add (void).
91639195ef
N/A patches for version.c:
vim-patch:8.2.0210: Coverity complains about uninitialized field
Problem: Coverity complains about uninitialized field.
Solution: Initialize the field.
eed3571fe0
vim-patch:8.2.0424: checking for wrong return value
Problem: Checking for wrong return value. (Tom)
Solution: Invert the check and fix the test.
97acfc781b
vim-patch:8.2.0436: no warnings for incorrect printf arguments
Problem: No warnings for incorrect printf arguments.
Solution: Fix attribute in declaration. Fix uncovered mistakes. (Dominique
Pelle, closesvim/vim#5834)
db99f9f29a
vim-patch:8.2.0498: Coverity complains about uninitialized field
Problem: Coverity complains about uninitialized field.
Solution: Initialize the whole typval_T.
4227c789ff
vim-patch:8.2.0668: compiler warning for int/size_t usage
Problem: Compiler warning for int/size_t usage.
Solution: Change "int" to "size_t". (Mike Williams)
7f6f56f43c
vim-patch:8.2.1034: compiler warning for uninitialized variables
Problem: Compiler warning for uninitialized variables.
Solution: Add initializations. (John Marriott)
38041da1c2
vim-patch:8.2.1117: Coverity warns for unsing unitialized field
Problem: Coverity warns for unsing unitialized field.
Solution: Initialize v_lock.
a9a8e5f0dc
vim-patch:8.2.1148: warning for using int instead of size_t
Problem: Warning for using int instead of size_t.
Solution: Change "len" argument to size_t. (Mike Williams)
cbb6bdcd89
vim-patch:8.2.1251: Vim9: warning for pointer usage, test failure undetected
Problem: Vim9: warning for pointer usage, test failure undetected.
Solution: Fix pointer indirection. Give error when executing function
failed for any reason. Fix instruction names.
682d0a1546
printable_func_name() is applicable but the vim9 changes are N/A.
Compilers can detect misuse of static functions.
vim-patch:8.2.1275: Vim9: compiler warning for buffer size
Problem: Vim9: compiler warning for buffer size.
Solution: Change the offset from 10 to 15. (Dominique Pellé, closesvim/vim#6518)
5a67c37a55
vim-patch:8.2.1443: Vim9: crash when interrupting a nested :def function
Problem: Vim9: crash when interrupting a nested :def function.
Solution: Push a dummy return value onto the stack. (closesvim/vim#6701)
cdd70f09a5
vim-patch:8.2.1818: SE Linux: deprecation warning for security_context_t
Problem: SE Linux: deprecation warning for security_context_t.
Solution: Use "char *" instead. (James McCoy, closesvim/vim#7093)
8956023920
SELINUX support was removed in commit 1de77bbcec
vim-patch:8.2.2004: compiler warning for uninitialized variable
Problem: Compiler warning for uninitialized variable.
Solution: Initialize "ufunc". (John Marriott)
b3a01946b3
vim-patch:8.2.2051: Vim9: crash when aborting a user function call
Problem: Vim9: crash when aborting a user function call.
Solution: Do not use the return value when aboring. (closesvim/vim#7372)
34c54eb6cb
vim-patch:8.2.2270: warning for size_t to int conversion
Problem: Warning for size_t to int conversion. (Randall W. Morris)
Solution: Add a type cast.
38a434f7ba
vim-patch:8.2.2333: Vim9: warning for uninitialized variable
Problem: Vim9: warning for uninitialized variable. (Tony Mechelynck)
Solution: Initialize "res".
cb6cbf29e9
vim-patch:8.2.2460: Coverity warns for unused value
Problem: Coverity warns for unused value.
Solution: Do not reset the return value to OK.
fc1dafa91c
vim-patch:8.2.2461: Coverity warns for unchecked return value
Problem: Coverity warns for unchecked return value.
Solution: Add "(void)" to avoid the warning.
fef8064b54
vim-patch:8.2.2557: compiler warning for shadowd variable
Problem: Compiler warning for shadowd variable.
Solution: Declare "p" only once.
087b5ff35d
vim-patch:8.2.2730: Coverity complains about not restoring character
Problem: Coverity complains about not restoring character.
Solution: Also restore the character in case of an error.
c9605f0595
vim-patch:8.2.2795: Coverity warns for not using return value
Problem: Coverity warns for not using return value.
Solution: Check the return value of compiling the substitute expression.
169502fb0b
vim-patch:8.2.2995: linker errors with dynamic Python 3.10
Problem: Linker errors with dynamic Python 3.10.
Solution: Add a couple of library entries. (Zdenek Dohnal, closesvim/vim#8381,
closesvim/vim#8356)
90478f35a8
vim-patch:8.2.3000: Vim9: warning for uninitialized variable
Problem: Vim9: warning for uninitialized variable.
Solution: Add initialization. (John Marriott)
3b814af7e1
vim-patch:8.2.3014: Coverity warns for freeing static string
Problem: Coverity warns for freeing static string.
Solution: Do not assign static string to pointer. (Dominique Pellé,
closesvim/vim#8397)
6e9695525e
vim-patch:8.2.3205: Coverity reports a null pointer dereference
Problem: Coverity reports a null pointer dereference.
Solution: Change the logic to avoid Coverity gets confused.
1b862c466b
vim-patch:8.2.3294: Lua: memory leak when adding dict item fails
Problem: Lua: memory leak when adding dict item fails.
Solution: Free the typval and the dict item.
1b6acf02b7
vim-patch:8.2.3302: Coverity is not run from github
Problem: Coverity is not run from github.
Solution: Add a coverity script. (James McCoy, closesvim/vim#8714)
d57a6bd98c
vim-patch:8.2.3319: Coverity action on github does not work
Problem: Coverity action on github does not work.
Solution: Remove undefined $SRCDIR. (James McCoy, closesvim/vim#8739)
eed9616120
* vim-patch:8.2.1085: Coverity complains about ignoring dict_add() return value
Problem: Coverity complains about ignoring dict_add() return value.
Solution: Add (void).
6d90c61c5a
Adds method call support for all functions in the patch, but it cannot
be fully ported due to missing tests for:
- getcwd(): requires chdir() and Test_chdir_func() from v8.1.1291.
Note that the method call tests for getreg() and getregtype() were
removed in v8.2.1547, which has already been ported, but doesn't seem to
have been replaced with a new test...
This patch also makes getchangelist()'s argument optional (defaults to
the current buffer).
eval.txt includes a typo for gettabwinvar(), which is fixed in
v8.1.1952.
* refactor: format with uncrustify
* fixup(dundar): fix functions comments
* fixup(dundar): remove space between variable and ++/--
* fixup(dundar): better workaround for macro attributes
This is done to be able to better use uncrustify rules for macros
* fixup(justin): make preprocessors follow neovim style guide