Problem: Coverity warns for not using return value of dict_add().
Solution: When dict_add() fails then don't call hash_remove().
bc222152d8
N/A patches for version.c:
vim-patch:9.0.0927: Coverity warns for using a NULL pointer
Problem: Coverity warns for using a NULL pointer.
Solution: Check for memory allocaion failure.
96cbbe29de
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: The WinScrolled autocommand event is not enough.
Solution: Add WinResized and provide information about what changed.
(closesvim/vim#11576)
35fc61cb5b
Omit "func_name" comment in tv_dict_extend(): Vim9 script only.
Skip layout locking and E1312.
Skip list_alloc_with_items() and list_set_item().
Since this overrides remaining changes in patch 9.0.0913, that patch can
now be marked as fully ported:
vim-patch:9.0.0913: only change in current window triggers the WinScrolled event
N/A patches for version.c:
vim-patch:9.0.0919: build failure with tiny features
Problem: Build failure with tiny features.
Solution: Adjust #ifdef's.
9c5b7cb4cf
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: getbufline() is inefficient for getting a single line.
Solution: Add getbufoneline().
ce30ccc06a
Cherry-pick part of usr_41.txt from patch 8.1.1628.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: get(Fn, 'name') on funcref returns special byte code.
Solution: Use the printable name.
1ae8c262df
Cherry-pick printable_func_name() from patch 8.2.0149.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.
Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
Problem: col() and charcol() only work for the current window.
Solution: Add an optional winid argument. (Yegappan Lakshmanan,
closesvim/vim#11466, closesvim/vim#11461)
4c8d2f02b3
Cherry-pick test_functions.vim change from patch 8.2.0633.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Cannot assign a lambda to an option that takes a function.
Solution: Automatically convert the lambda to a string. (Yegappan
Lakshmanan, closesvim/vim#9286)
6409553b6e
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
- `:write ++p foo/bar/baz.txt` should create parent directories `foo/bar/` if
they do not exist
- Note: `:foo ++…` is usually for options. No existing options have
a single-char abbreviation (presumably by design), so it's safe to
special-case `++p` here.
- Same for `writefile(…, 'foo/bar/baz.txt', 'p')`
- `BufWriteCmd` can see the ++p flag via `v:cmdarg`.
closes#19884
Problem: Cannot use a lambda for 'completefunc' and 'omnifunc'.
Solution: Implement lambda support. (Yegappan Lakshmanan, closesvim/vim#9257)
8658c759f0
Comment out Vim9 script in tests.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Cannot pass a lambda name to function() or funcref(). (Yegappan
Lakshmanan)
Solution: Handle a lambda name differently.
eba3b7f664
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: deletebufline() does not always return 1 on failure.
Solution: Refactor the code to make it work more predictable. (closesvim/vim#11511)
7af3ee2b83
Enable and fix bugprone-misplaced-widening-cast warning.
Fix some modernize-macro-to-enum and readability-else-after-return
warnings, but don't enable them. While the warnings can be useful, they
are in general too noisy to enable.
Problem: Check for uppercase char in autoload name is wrong, it checks the
name of the script.
Solution: Remove the check. (closesvim/vim#11031)
6c667bdc94
Co-authored-by: thinca <thinca@gmail.com>
Problem: E704 for script local variable is not backwards compatible.
(Yasuhiro Matsumoto)
Solution: Only give the error in Vim9 script. Also check for function-local
variable.
b54abeeafb
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Still a way to shadow a builtin function. (Yasuhiro Matsumoto)
Solution: Check the key when using extend(). (issue vim/vim#8302)
6f1d2aa437
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: no error for missing white space in assignment at script
level.
Solution: Check for white space. (closesvim/vim#6495)
63be3d4ba0
Cherry-pick Test_let_errors() change from patch 8.2.0633.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Cannot have expandcmd() give an error message for mistakes.
Solution: Add an optional argument to give errors. Fix memory leak when
expanding files fails. (Yegappan Lakshmanan, closesvim/vim#10071)
2b74b6805b
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: strchars() defaults to counting composing characters.
Solution: Add strcharlen() which ignores composing characters.
70ce8a1561
Use docs from latest Vim instead.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Using 2 where bool is expected may throw an error.
Solution: Make this backwards compatible.
bade44e5ca
In legacy Vim script get_bool functions do the same thing as get_number
functions, so just add aliases using #define.
N/A patches for version.c:
vim-patch:8.2.1506: Vim9: no error when using a number other than 0 or 1 as bool
Problem: Vim9: no error when using a number other than 0 or 1 as bool.
Solution: Check the number is 0 or 1.
d70840ed68
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Cannot scroll a popup window to the very bottom.
Solution: Scroll to the bottom when the "firstline" property was set to -1.
(closesvim/vim#4577) Allow resetting min/max width/height.
8c6173c7d3
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: wrong argument for append() results in two errors.
Solution: Check did_emsg. Also for setline(). Adjust the help for
appendbufline().
8b6256f6ec
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Duplicated code for adding buffer lines.
Solution: Move code to a common function. Also move map functions to map.c.
(Yegappan Lakshmanan, closesvim/vim#8665)
4a15504e91
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Crash when using win_move_separator() in other tab page.
Solution: Check for valid window in current tab page.
(closesvim/vim#11479, closesvim/vim#11427)
873f41a018
Problem: Vim9: return type of readfile() is any.
Solution: Add readblob() so that readfile() can be expected to always
return a list of strings. (closesvim/vim#7671)
c423ad77ed
Co-authored-by: Bram Moolenaar <Bram@vim.org>
vim-patch:86e6717ace4f
Problem: Crash when using win_move_statusline() in another tab page.
Solution: Check for valid window pointer. (issue vim/vim#11427)
86e6717ace
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Using uninitialized memory with "let g:['bar'] = 2".
Solution: Initialize v_type of a new dict item.
3b31851356
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: no error if declaring a funcref with a lower case letter.
Solution: Check the name after the type is inferred. Fix confusing name.
98b4f145eb
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Cannot translate messages in a Vim script.
Solution: Add gettext(). Try it out for a few messages in the options
window.
0b39c3fd4c
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Using uninitialized memory when reading empty file.
Solution: Check for empty file before checking for NL. (Dominique Pellé,
closesvim/vim#9511)
f5d639a8af
Co-authored-by: Dominique Pelle <dominique.pelle@gmail.com>
Problem: Confusing error message with white space before comma in the
arguments of a function declaration.
Solution: Give a specific error message. (closesvim/vim#2235)
86cdb8a4bd
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Null dict is not handled like an empty dict.
Solution: Fix the code and add tests. (Yegappan Lakshmanan, closesvim/vim#5968)
ea04a6e8ba
Nvim doesn't support modifying NULL list, so comment out a line.
Problem: Some tests are still old style.
Solution: Convert to new style tests. (Yegappan Lakshmanan, closesvim/vim#5957)
08f4157c5c
Fix missing error message when sort() compare function fails.
Cherry-pick a line in test_utf8.vim from patch 8.2.0448.
Cherry-pick builtin_function() change from patch 8.2.0595.