Problem: Integer overflow with large line number.
Solution: Check for overflow. (closesvim/vim#9202)
03725c5795
Put E1247 in globals.h as E1240 is also there.
Do not make getdigits() abort.
Problem: crash when repeatedly using :retab.
Solution: Bail out when the line is getting too long.
6e28703a8e
Cherry-pick e_resulting_text_too_long from v8.2.3492; put it in globals.h as
it will eventually be used in other files.
Add a modeline to test_retab.vim
Problem: Fuzzy matching only works on strings.
Solution: Support passing a dict. Add matchfuzzypos() to also get the match
positions. (Yegappan Lakshmanan, closesvim/vim#6947)
4f73b8e9cc
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 change the register used for Select mode delete.
Solution: Make CTRL-R set the register to be used when deleting text for
Select mode. (Shougo Matsushita, closesvim/vim#9531)
4ede01f188
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: ":verbose pwd" does not mention 'autochdir' was applied.
Solution: Remember the last chdir was done by 'autochdir'. (issue vim/vim#9142)
0526815c15
Problem: No generic way to trigger an autocommand on mode change.
Solution: Add the ModeChanged autocommand event. (Magnus Gross, closesvim/vim#8856)
f1e8876fa2
N/A patches for version.c:
vim-patch:8.2.3434: function prototype for trigger_modechanged() is incomplete
Problem: Function prototype for trigger_modechanged() is incomplete.
Solution: Add "void".
28e591dd50Fixes#4399.
Fixes#7416.
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
Problem: Cannot handle change of directory.
Solution: Add the DirChanged autocommand event. (Andy Massimino,
closesvim/vim#888) Avoid changing directory for 'autochdir' too often.
b7407d3fc9
Only add "auto" pattern. "window" and "global" are already implemented.
Skip `Test_dirchanged_auto` using `CheckFunction test_autochdir`.
Part of PR #15952. More information can be found there.
N/A patches for version.c:
vim-patch:8.0.1460: missing file in patch
Problem: Missing file in patch.
Solution: Add changes to missing file.
b5cb65ba2b
vim-patch:8.0.1461: missing another file in patch
Problem: Missing another file in patch.
Solution: Add changes to missing file.
15833239a4
Based on #13143 (and #11507) with changes:
- Omit script_type_E. Use sn_name == NULL to determine anon items.
- Keep SID_STR. Used by anon :source for .lua files (no item).
- Show SID in get_scriptname output (:verbose set).
- Factor item creation into new_script_item.
- Leave sc_seq = 0 (anon scripts don't re-use the same item when re-sourced).
- Add tests for anon :source.
Co-authored-by: Vikram Pal <vikrampal659@gmail.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* refactor: format all C files under nvim
* refactor: disable formatting for Vim-owned files:
* src/nvim/indent_c.c
* src/nvim/regexp.c
* src/nvim/regexp_nfa.c
* src/nvim/testdir/samples/memfile_test.c
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: 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: Get E12 in a job callback when searching for tags. (Andy Stewart)
Solution: Use the sandbox only for executing a command, not for searching.
(closesvim/vim#8511)
547f94f330
N/A patches for version.c:
vim-patch:8.2.3164: MS-Windows: reported version lacks patchlevel
Problem: MS-Windows: reported version lacks patchlevel, causing some update
tools to update too often. (Klaus Frank)
Solution: Add the patchlevel to the version. (Christian Brabandt)
0894e0d808
vim-patch:8.2.3192: build failure with small version
Problem: Build failure with small version (Tony Mechelynck).
Solution: Remove stray #ifdef.
11d7e62f1d
vim-patch:8.2.3208: dynamic library load error does not mention why it failed
Problem: Dynamic library load error does not mention why it failed.
Solution: Add the error message. (Martin Tournoij, closesvim/vim#8621)
1a3e5747b7
vim-patch:8.2.3214: MS-Windows: passing /D does not set the install location
Problem: MS-Windows: passing /D does not set the install location.
Solution: Adjust how the installer uses $VIM. Update the documentation.
(Christian Brabandt, closesvim/vim#8605)
7d60384a00
vim-patch:8.2.3231: build failure with small features
Problem: Build failure with small features.
Solution: Adjust #ifdef.
9088784972
vim-patch:8.2.3243: MS-Windows: "edit with multiple Vim" choice is less useful
Problem: MS-Windows: the "edit with multiple Vim" choice is not that
useful.
Solution: Change it to "Edit with multiple tabs". (Michael Soyka,
closesvim/vim#8645)
83cd0156e0
vim-patch:8.2.3247: using uninitialized memory when checking for crypt method
Problem: Using uninitialized memory when checking for crypt method.
Solution: Check the header length before using the salt and seed.
77ab4e28a2
vim-patch:8.2.3250: MS-Windows: cannot build with libsodium
Problem: MS-Windows: cannot build with libsodium.
Solution: Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt,
closesvim/vim#8668, closesvim/vim#8663)
1790be6cb6
vim-patch:8.2.3253: channel test fails randomly
Problem: Channel test fails randomly.
Solution: Add a sleep after sending the "echoerr" command. (Michael Soyka)
890ee4e2be
vim-patch:8.2.3260: build failure with small features
Problem: Build failure with small features.
Solution: Add #ifdef.
335c8c7b20
Problem: Cannot use "z=" when 'spell' is off.
Solution: Make "z=" work even when 'spell' is off. (Christian Brabandt,
Gary Johnson, closesvim/vim#6227)
152e79e94b
Problem: Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan)
Solution: Do not allow the autocommand window to be closed.
cf8441704d
E813 error message does not mention 'popup' window
because Neovim floating window are regular windows, unlike Vim popups.
https://github.com/neovim/neovim/pull/14532#discussion_r631731829
Problem: 'scroll' option can change when setting the statusline or tabline
but the option context is not updated.
Solution: Update the script context when the scroll option is changed as a
side effect. (Christian Brabandt, closesvim/vim#7533)
746670604a
Problem: Too many problems with using all autocommand events.
Solution: Disallow defining an autocommand for all events.
9a046fd08b
Delete Test_wipe_cbuffer().
Commit dc5f4a3cc2 should have removed it.
Problem: Confusing error message when range is not allowed.
Solution: With ADDR_NONE give e_norange. Change e_invaddr to e_invrange for
consistency.
0acae7acc4