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
Problem: setreg() does not always clear the register.
Solution: Clear the register if the dict argument is empty. (Andy Massimino,
closesvim/vim#3370)
7633fe595e
Do not getdigits for block_len strictly. For example, a user could
previously abort Nvim using:
:call setreg("0", "abort!", "\<C-V>999999999999999999")
or, after v8.2.0924's port:
:call setreg("0", #{regcontents: ["abort!"],
\ regtype: "\<C-V>999999999999999999"})
Instead, default to 0 so block_len is -1, which acts like the selection
width was omitted (defaults to length of longest line).
Problem: Cannot save and restore a register properly.
Solution: Add getreginfo() and make setreg() accept a dictionary. (Andy
Massimino, closesvim/vim#3370)
bb861e293e
Cherry-pick eval.txt changes for getreginfo() from:
6aa57295cf207f009326
Problem: Cannot get composing characters from the screen.
Solution: Add screenchars() and screenstring(). (partly by Ozaki Kiichi,
closesvim/vim#4059)
2912abb3a2
Problem: User function completion fails with dict function.
Solution: Do not stop sequencing through the list if user functions when
encountering an empty name. (Naohiro Ono, closesvim/vim#8765,
closesvim/vim#8774)
5aec755b67
Problem: Completing "call g:" returns entries with just "g:". (Naohiro Ono)
Solution: Skip empty strings returned by get_user_func_name(). (closesvim/vim#8753)
069f90852f
Port VimL's Blob type - vim-patch:8.1.{0735,0736,0738,0741,0742,0755,0756,0757,0765,0793,0797,0798,0802,1022,1023,1671},8.2.{0121,0184,0404,0521,0829,1473,1866,2712}
Note that it is not possible for msgpack_unpack_next() and
msgpack_unpacker_next() to return MSGPACK_UNPACK_EXTRA_BYTES, so it
should be fine to abort() on that.
Lua 5.1 doesn't support string hex escapes (\xXX) like VimL does (though
LuaJIT does), so convert them to decimal escapes (\DDD) in tests.
These were issues that I found while porting that I fixed upstream. :^)
Very little of the patch can be exactly ported as we're a bit behind on
dependant patches (we also can't use the exact :for emsg, as we don't
support iterating over Strings yet), so just translate the fixes as best
as we can for now.
Include latest relevant doc changes from:
- v8.1.0815
- v8.2.2658
Fixes remove() copying one extra byte after the end of a Blob's buffer.
Can't be fully ported as the change is from blob_remove(), which hasn't
been ported yet.
Problem: Crash when reading a blob fails.
Solution: Avoid keeping a pointer to a freed blob object. (Dominique Pelle,
closesvim/vim#5890) Adjust error messages.
15352dc6ec
Problem: Incorrect error messages for functions that now take a Blob
argument.
Solution: Adjust the error messages. (Dominique Pelle, closesvim/vim#3846)
0d17f0d1c0
Problem: Cannot handle binary data.
Solution: Add the Blob type. (Yasuhiro Matsumoto, closesvim/vim#3638)
6e5ea8d2a9
Nvim-specific Blob conversions are implemented in future commits.
Refactor write_blob() to use a FileDescriptor, as f_writefile() was
refactored to use one (does not apply to read_blob()).
Use var_check_lock() in f_add() for Blobs from v8.1.0897.
Add a modeline to test_blob.vim and fix some doc typos.
Include if_perl.txt's VIM::Blob() documentation. Interestingly, this
function already worked before this port, as it just returns a Blob
string literal, not an actual Blob object.
N/A patches for version.c:
vim-patch:8.1.0741: viminfo with Blob is not tested
Problem: Viminfo with Blob is not tested.
Solution: Extend the viminfo test. Fix reading a blob. Fixed storing a
special variable value.
8c8b8bb56c
vim-patch:8.1.1022: may use NULL pointer when out of memory
Problem: May use NULL pointer when out of memory. (Coverity)
Solution: Check for blob_alloc() returning NULL.
e142a9467a
Problem: Cannot use octal numbers in scriptversion 4.
Solution: Add the "0o" notation. (Ken Takata, closesvim/vim#5304)
c17e66c5c0
:scriptversion is N/A.
Cherry-pick latest str2nr() doc changes from v8.1.2035.
Cherry-pick various mentions of the 0o prefix from:
- v8.2.2324
- 2346a63784
- 11e3c5ba82
- 82be4849ee
Patch used ascii_isbdigit() by mistake, which was fixed in v8.2.2309.
Make STR2NR_OOCT work the same as STR2NR_OCT when forcing.
In Vim, STR2NR_FORCE | STR2NR_OOCT isn't handled, and doesn't actually
force anything. Rather than abort(), make it work as STR2NR_OCT.
This means STR2NR_FORCE | STR2NR_OCT works the same as
STR2NR_FORCE | STR2NR_OOCT and STR2NR_FORCE | STR2NR_OCT | STR2NR_OOCT.
Problem: Recognizing octal numbers is confusing.
Solution: Introduce scriptversion 4: do not use octal and allow for single
quote inside numbers.
60a8de28d1
:scriptversion is N/A.
Cherry-pick Test_readfile_binary() from v8.1.0742.
Note that this patch was missing vim_str2nr() changes, and so fails the
tests; this was fixed in v8.1.2036.
Problem: Obvious mistakes are accepted as valid expressions.
Solution: Be more strict about parsing numbers. (Yasuhiro Matsumoto,
closesvim/vim#3981)
16e9b85113
Update vim_str2nr_spec.lua to add more tests that use strict = true.
Problem:
jobwait() returns early if the job was stopped, but the job might have
pending callbacks on its event queue which are required to complete its
teardown. State such as term->closed might not be updated yet (by the
pending callbacks), so codepaths such as :bdelete think the job is still
running.
Solution:
Always flush the job's event queue before returning from jobwait().
ref #15349
Problem: More functions can be used as a method.
Solution: Add append(), appendbufline(), assert_equal(), etc.
Also add the :eval command.
25e42231d3
:eval is already ported.
Problem: All builtin functions are global.
Solution: Add the method call operator ->. Implemented for a limited number
of functions.
ac92e25a33
- Note that to *exactly* port hunk @@ -7376,18 +7444,19 from
handle_subscript(), we need the :scriptversion patches (I have an open
PR for those, but this patch works fine without them anyway).
- Port call_internal_func() from v7.4.2058.
- Adjust some error messages in tests, as they rely on the Blob patches.
- Add a modeline to test_method.vim.
Ignore the global_functions and base_method tables and prefer the
current GPerf implementation. Instead, add an extra base_arg field to
VimLFuncDef that holds the number of the argument to use as the base
(1-indexed, so that 0 may be used to refer to functions that cannot be
used as methods).
This also means we support using any argument as a base from the get-go,
rather than just the first (Vim includes this ability in future patches,
however).
To mark a function as usable as a method, use the "base" key as
described in eval.lua.
Problem: Function call functions have too many arguments.
Solution: Pass values in a funcexe_T struct.
c6538bcc1c
Use FUNCEXE_INIT to initialize funcexe_T instances.
call_callback() and other Vim listener related stuff is N/A.