| Commit message (Collapse) | Author | Age |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Crash when using reduce() on a NULL list.
Solution: Only access the list when not NULL.
https://github.com/vim/vim/commit/fda20c4cc59008264676a6deb6a3095ed0c248e0
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: Crash when changing a list while using reduce() on it.
Solution: Lock the list. (closes vim/vim#6330)
https://github.com/vim/vim/commit/ca275a05d8b79f6a9101604fdede2373d0dea44e
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: No reduce() function.
Solution: Add a reduce() function. (closes vim/vim#5481)
https://github.com/vim/vim/commit/85629985b71035608a37ba3bde86968481490d46
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: "o" and "O" copying comment not sufficiently tested.
Solution: Add a test case. (closes vim/vim#9718)
https://github.com/vim/vim/commit/51ab7c7d0da08aac796acff22a6c075dac579e76
Fix a mistake when porting Vim patch 8.2.3934
|
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: Dani Dickstein <daniel.dickstein@gmail.com>
Co-authored-by: Axel Dahlberg <git@valleymnt.com>
|
| |
| |
| |
| |
| |
| | |
Problem: Cannot grep using fuzzy matching.
Solution: Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes vim/vim#8152)
https://github.com/vim/vim/commit/bb01a1ef3a093cdb36877ba73474719c531dc8cb
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Fuzzy matching doesn't give access to the scores.
Solution: Return the scores with a third list. (Yegappan Lakshmanan,
closes vim/vim#7596)
https://github.com/vim/vim/commit/9d19e4f4ba55f8bef18d4991abdf740ff6472dba
Remove seemingly useless NULL checks.
assert that removing the li one wasn't dumb.
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Fuzzy matching does not recognize path separators.
Solution: Add a bonus for slash and backslash. (Yegappan Lakshmanan,
closes vim/vim#7225)
https://github.com/vim/vim/commit/dcdd42a8ccb9bafd857735d694b074269f337333
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Fuzzy matching does not support multiple words.
Solution: Add support for matching white space separated words. (Yegappan
Lakshmanan, closes vim/vim#7163)
https://github.com/vim/vim/commit/8ded5b647aa4b3338da721b343e0bce0f86655f6
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Matchfuzzy() does not prefer sequential matches.
Solution: Give sequential matches a higher bonus. (Christian Brabandt,
closes vim/vim#7140)
https://github.com/vim/vim/commit/e9f9f16387554e5b34ba42ce00c42c28dd66af58
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Fuzzy matching only works on strings.
Solution: Support passing a dict. Add matchfuzzypos() to also get the match
positions. (Yegappan Lakshmanan, closes vim/vim#6947)
https://github.com/vim/vim/commit/4f73b8e9cc83f647b34002554a8bdf9abec0a82f
Also remove some N/A and seemingly useless NULL checks -- Nvim allocs can't
return NULL. I'm not sure why the retmatchpos stuff in match_fuzzy checks for
NULL too, given that Vim checks for NULL alloc in do_fuzzymatch; assert that the
li stuff is not NULL as that's the one check I'm ever-so-slightly unsure about.
Adjust tests. Note that the text_cb tests actually throw E6000 in Nvim, but we
also can't assert that error due to v8.2.1183 not being ported yet.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Cannot do fuzzy string matching.
Solution: Add matchfuzzy(). (Yegappan Lakshmanan, closes vim/vim#6932)
https://github.com/vim/vim/commit/635414dd2f3ae7d4d972d79b806348a6516cb91a
Adjust Test_matchfuzzy's 2nd assert to expect the last error thrown, as
v8.2.1183 hasn't been ported yet (to be honest, the error message is kinda weird
if the 2nd argument is not convertible to string). We can still port this fully
as porting v8.2.1183 would require removing this change to pass CI.
|
| |
| |
| |
| |
| |
| |
| | |
Problem: MS-Windows: fnamemodify('', ':p') does not work.
Solution: Do not consider an empty string a full path. (Yegappan Lakshmanan,
closes vim/vim#9428, closes vim/vim#9427)
https://github.com/vim/vim/commit/5a664fe57fe7ba65a771bc95ef1c205e4db193b7
|
| |
| |
| |
| |
| |
| |
| | |
Problem: No ASAN support for MSVC.
Solution: Add ASAN support and fix a coupld of uncovered problems. (Yegappan
Lakshmanan, closes vim/vim#9357)
https://github.com/vim/vim/commit/6df0f2759d12ec0bc999b2963ecea4387a2bc516
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Expanding to local dir after homedir keeps "~/".
Solution: Adjust modify_fname(). (Christian Brabandt, closes vim/vim#6205,
closes vim/vim#5979)
https://github.com/vim/vim/commit/0e390f40e944036fb558a63b91238cfda128d95f
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Wrong file name shortening. (Ingo Karkat)
Solution: Better check for path separator. (Yasuhiro Matsumoto,
closes vim/vim#5583, closes vim/vim#5584)
https://github.com/vim/vim/commit/a78e9c61a0ded9c5302bc77e889aa1b3d3467f61
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Fnamemodify() does not apply ":~" when followed by ":.".
Solution: Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
Matsumoto, closes vim/vim#5577)
https://github.com/vim/vim/commit/d816cd94d87afb73c505bf1e5cd5e07522482113
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Test files still use function!.
Solution: Remove the exclamation mark. Fix overwriting a function.
https://github.com/vim/vim/commit/1e1153600c0377472d62cc553173fe555ddcf5a7
Some of the changes were already applied previously.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: copy() and deepcopy() fail with special variables. (Nikolai
Pavlov)
Solution: Make it work. Add a test. Closes vim/vim#614.
https://github.com/vim/vim/commit/155500077c80cdb5d9c63996000c011b66a676bf
Code is N/A. This only ports the tests.
Comment out tests involving v:none as Nvim has removed it.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: free_tv() can't handle special variables. (Damien)
Solution: Add the variable type.
https://github.com/vim/vim/commit/6650a694547eb744afa060ec62dd8270e99db9f2
Code is N/A. This only ports the tests.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: empty() doesn't work for the new special variables.
Solution: Make empty() work. (Damien)
https://github.com/vim/vim/commit/767d8c1a1ae762ecf47297c168b8c23caf05d30a
Code is N/A. This only ports the tests.
Comment out tests involving v:none as Nvim has removed it.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: No test for new behavior of v:true et al.
Solution: Add a test.
https://github.com/vim/vim/commit/65591001e405cbaaf9772c9375d0bb6049cf9a3a
Comment out tests involving v:none as Nvim has removed it.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: No tests for "is" and "isnot" with the new variables.
Solution: Add tests.
https://github.com/vim/vim/commit/04369229657f182d35b471eb8b38f273a4d9ef65
Comment out tests involving v:none as Nvim has removed it.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: No tests for comparing special variables. Error in jsondecode()
not reported. test_json does not work Japanse system.
Solution: Set scriptencoding. (Ken Takata) Add a few more tests. Add error.
https://github.com/vim/vim/commit/6039c7f05376f0e470cf62bf2757e653aea357f3
Code is N/A. This only ports the tests.
Comment out tests involving v:none as Nvim has removed it.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Expressions "0 + v:true" and "'' . v:true" cause an error.
Solution: Return something sensible when using a special variable as a
number or as a string. (suggested by Damien)
https://github.com/vim/vim/commit/17a13437c9414a8693369a97f3be2fc8ad48c12e
Code is N/A. This only ports the tests.
Comment out tests involving v:none as Nvim has removed it.
|
|\ \
| | |
| | | |
vim-patch:8.2.1741: pathshorten() only supports using one character
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: pathshorten() only supports using one character.
Solution: Add an argument to control the length. (closes vim/vim#7006)
https://github.com/vim/vim/commit/6a33ef0deb5c75c003a9f3bd1c57f3ca5e77327e
Cherry-pick a line in test from patch 8.2.0634.
Use Nvim's config paths in docs.
shorten_dir() returning a pointer looks a bit confusing here, as it is
actually the same pointer passed to it, and it doesn't really reduce
much code, so change it back to void.
Assigning rettv->vval.v_string = NULL is not needed if a pointer is
within 64 bits. While this is usually the case, I'm not sure if it can
be taken for granted.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: No test for fixed perl filetype check.
Solution: Add a test. Sort test functions.
https://github.com/vim/vim/commit/500761b1cf666f030009d2dcdacfdce28f68f43d
|
|/ /
| |
| |
| |
| |
| | |
Problem: Tex filetype detection fails.
Solution: Check value to be positive. (closes vim/vim#9704)
https://github.com/vim/vim/commit/e5b7897585eccec84431d8b23df5cde2e283828c
|
|\ \
| | |
| | | |
vim-patch:8.2.{2658,2661,2736}: for loop over strings
|
| | |
| | |
| | |
| | | |
https://github.com/vim/vim/commit/80d7395dcfe96158428da6bb3d28a6eee1244e28
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: :for cannot loop over a string.
Solution: Accept a string argument and iterate over its characters.
https://github.com/vim/vim/commit/74e54fcb447e5db32f9c2df34c0554bbecdccca2
v8.2.2659 is already ported.
N/A patches for version.c:
vim-patch:8.2.2736: Vim9: for loop over string is a bit slow
Problem: Vim9: for loop over string is a bit slow.
Solution: Avoid using strlen().
https://github.com/vim/vim/commit/175a41c13f3e27e30c662f2f418c5a347dbc645d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: curpos() does not accept a string argument as before.
solution: Make a string argument work again. (Yegappan Lakshmanan,
closes vim/vim#7690
https://github.com/vim/vim/commit/9ebcf231bdccc1673cc92b20f5190fc577ad29d0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Not easy to get mark en cursor posotion by character count.
Solution: Add functions that use character index. (Yegappan Lakshmanan,
closes vim/vim#7648)
https://github.com/vim/vim/commit/6f02b00bb0958f70bc15534e115b4c6dadff0e06
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: A popup created with "cursorline" will ignore "firstline".
Solution: When both "cursorline" and "firstline" are present put the cursor
on "firstline". (closes vim/vim#7000) Add the "winid" argument to
getcurpos().
https://github.com/vim/vim/commit/99ca9c4868bb1669706b9e3de9a9218bd11cc459
Skip popup window related code.
Cherry-pick all of Test_getcurpos_setpos() from patch 8.2.0610.
|
|\ \
| | |
| | | |
vim-patch:8.1.{2342,2343,2356,2357},8.2.0233: `rand` and `srand`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Crash when using garbagecollect() in between rand().
Solution: Redesign the rand() and srand() implementation. (Yasuhiro
Matsumoto, closes vim/vim#5587, closes vim/vim#5588)
https://github.com/vim/vim/commit/4f645c54efe33d7a11e314676e503118761f08a7
Omit test_srand_seed.
Unmacroify SHUFFLE_XOSHIRO128STARSTAR and SPLITMIX32 while we're at it (leave
ROTL alone as it's fairly innocent).
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: No test with wrong argument for rand().
Solution: Add a test case.
https://github.com/vim/vim/commit/68e9e5f7fccb8038cf0ca5b5d95c85a923152f46
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: rand() does not use the best algorithm.
Solution: use xoshiro128** instead of xorshift. (Kaito Udagawa,
closes vim/vim#5279)
https://github.com/vim/vim/commit/f8c1f9200c4b50969a8191a4fe0b0d09edb38979
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Using time() for srand() is not very random.
Solution: use /dev/urandom if available
https://github.com/vim/vim/commit/07e4a197953d12902fb97beb48830a5323a52280
Use os_open and os_close.
time_settime is N/A, so some parts of the test are disabled.
There's maybe a very, very, very, very small chance the /dev/urandom test fails,
but it shouldn't matter. :P
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Random number generator in Vim script is slow.
Solution: Add rand() and srand(). (Yasuhiro Matsumoto, closes vim/vim#1277)
https://github.com/vim/vim/commit/06b0b4bc27077013e9b4b48fd1d9b33e543ccf99
Add missing method call usage to builtin.txt.
vim_time and test_settime is N/A.
Add a modeline to test_random.vim.
Use typval_T* over listitem_T* vars so we don't need to use TV_LIST_ITEM_TV all
over the place...
Remove NULL list checks (tv_list_len covers this).
|
|/ /
| |
| |
| |
| |
| | |
Problem: Divide by zero with huge tabstop value.
Solution: Reject tabstop value that overflows to zero.
https://github.com/vim/vim/commit/fc88df42f1ae64bcc4d6cbc0fbd3445f8c59afdf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This removes expand_spec.lua and copies test_expand.vim from Vim at
version v8.1.2278.
The rest of patch 8.1.2278 were already applied in #15952, so this marks
that patch as fully ported.
vim-patch:8.1.2278: using "cd" with "exe" may fail
Problem: Using "cd" with "exe" may fail.
Solution: Use chdir() instead.
https://github.com/vim/vim/commit/3503d7c94a6c8c2a5ca1665d648d0cb81afcc863
|
|\ \
| | |
| | | |
vim-patch:8.2.1128: the write message mentions characters, but it's bytes
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: The write message mentions characters, but it's actually bytes.
Solution: Change "C" to "B" and "characters" to "bytes".
https://github.com/vim/vim/commit/3f40ce78f5c178d15871bd784ed878c78f0b8a44
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Problem: Some tests fail when run as root.
Solution: Add CheckNotRoot and use it. (James McCoy, closes vim/vim#5020)
https://github.com/vim/vim/commit/07282f01da06c158bab4787adc89ec15d7eeb202
Skip test_terminal.vim and test_viminfo.vim: N/A
|
| |
| |
| |
| |
| |
| |
| | |
Problem: The "gd" and "gD" commands do not update search stats. (Gary
Johnson)
Solution: Clear search stats.
https://github.com/vim/vim/commit/0c71114aede81a209b7efc126b4bf19f11d58955
|
| |
| |
| |
| | |
Also avoid unnecessary divergences from upstream and add a modeline.
|
|\ \
| | |
| | | |
vim-patch:8.1.{0846,0878,0884,2358},8.2.{0305,0352,0687,3797}
|