From d799daa660b8821943cbe1682f00da9e812dd48c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 20 Jun 2022 11:17:32 +0100 Subject: [PATCH] Update runtime files --- runtime/autoload/dist/man.vim | 196 ++ runtime/doc/builtin.txt | 6 +- runtime/doc/eval.txt | 4 +- runtime/doc/map.txt | 12 +- runtime/doc/repeat.txt | 4 +- runtime/doc/tags | 2 + runtime/doc/todo.txt | 57 +- runtime/doc/version9.txt | 4372 +++++++++++++++++++++++++++- runtime/doc/visual.txt | 9 +- runtime/ftplugin/man.vim | 203 +- runtime/indent/confini.vim | 10 - runtime/indent/systemd.vim | 10 - runtime/indent/yaml.vim | 40 +- runtime/lang/menu_it_it.latin1.vim | 73 +- runtime/syntax/vim.vim | 2 +- 15 files changed, 4673 insertions(+), 327 deletions(-) create mode 100644 runtime/autoload/dist/man.vim delete mode 100644 runtime/indent/confini.vim delete mode 100644 runtime/indent/systemd.vim diff --git a/runtime/autoload/dist/man.vim b/runtime/autoload/dist/man.vim new file mode 100644 index 0000000000..cd584aa718 --- /dev/null +++ b/runtime/autoload/dist/man.vim @@ -0,0 +1,196 @@ +" Vim filetype plugin autoload file +" Language: man +" Maintainer: Jason Franklin +" Maintainer: SungHyun Nam +" Autoload Split: Bram Moolenaar +" Last Change: 2022 Jun 18 + +let s:cpo_save = &cpo +set cpo-=C + +let s:man_tag_depth = 0 + +let s:man_sect_arg = "" +let s:man_find_arg = "-w" +try + if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5" + let s:man_sect_arg = "-s" + let s:man_find_arg = "-l" + endif +catch /E145:/ + " Ignore the error in restricted mode +endtry + +func dist#man#PreGetPage(cnt) + if a:cnt == 0 + let old_isk = &iskeyword + if &ft == 'man' + setl iskeyword+=(,) + endif + let str = expand("") + let &l:iskeyword = old_isk + let page = substitute(str, '(*\(\k\+\).*', '\1', '') + let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '') + if match(sect, '^[0-9 ]\+$') == -1 + let sect = "" + endif + if sect == page + let sect = "" + endif + else + let sect = a:cnt + let page = expand("") + endif + call dist#man#GetPage('', sect, page) +endfunc + +func s:GetCmdArg(sect, page) + + if empty(a:sect) + return shellescape(a:page) + endif + + return s:man_sect_arg . ' ' . shellescape(a:sect) . ' ' . shellescape(a:page) +endfunc + +func s:FindPage(sect, page) + let l:cmd = printf('man %s %s', s:man_find_arg, s:GetCmdArg(a:sect, a:page)) + call system(l:cmd) + + if v:shell_error + return 0 + endif + + return 1 +endfunc + +func dist#man#GetPage(cmdmods, ...) + if a:0 >= 2 + let sect = a:1 + let page = a:2 + elseif a:0 >= 1 + let sect = "" + let page = a:1 + else + return + endif + + " To support: nmap K :Man + if page == '' + let page = expand('') + endif + + if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0) + if sect != "" && s:FindPage(sect, page) == 0 + let sect = "" + endif + endif + if s:FindPage(sect, page) == 0 + let msg = 'man.vim: no manual entry for "' . page . '"' + if !empty(sect) + let msg .= ' in section ' . sect + endif + echomsg msg + return + endif + exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%") + exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".") + exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") + let s:man_tag_depth = s:man_tag_depth + 1 + + let open_cmd = 'edit' + + " Use an existing "man" window if it exists, otherwise open a new one. + if &filetype != "man" + let thiswin = winnr() + exe "norm! \b" + if winnr() > 1 + exe "norm! " . thiswin . "\w" + while 1 + if &filetype == "man" + break + endif + exe "norm! \w" + if thiswin == winnr() + break + endif + endwhile + endif + if &filetype != "man" + if exists("g:ft_man_open_mode") + if g:ft_man_open_mode == 'vert' + let open_cmd = 'vsplit' + elseif g:ft_man_open_mode == 'tab' + let open_cmd = 'tabedit' + else + let open_cmd = 'split' + endif + else + let open_cmd = a:cmdmods . ' split' + endif + endif + endif + + silent execute open_cmd . " $HOME/" . page . '.' . sect . '~' + + " Avoid warning for editing the dummy file twice + setl buftype=nofile noswapfile + + setl fdc=0 ma nofen nonu nornu + %delete _ + let unsetwidth = 0 + if empty($MANWIDTH) + let $MANWIDTH = winwidth(0) + let unsetwidth = 1 + endif + + " Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[ + " on a man page reference by unsetting MANPAGER. + " Some versions of env(1) do not support the '-u' option, and in such case + " we set MANPAGER=cat. + if !exists('s:env_has_u') + call system('env -u x true') + let s:env_has_u = (v:shell_error == 0) + endif + let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat' + let env_cmd .= ' GROFF_NO_SGR=1' + let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b' + silent exec "r !" . man_cmd + + if unsetwidth + let $MANWIDTH = '' + endif + " Remove blank lines from top and bottom. + while line('$') > 1 && getline(1) =~ '^\s*$' + 1delete _ + endwhile + while line('$') > 1 && getline('$') =~ '^\s*$' + $delete _ + endwhile + 1 + setl ft=man nomod + setl bufhidden=hide + setl nobuflisted + setl noma +endfunc + +func dist#man#PopPage() + if s:man_tag_depth > 0 + let s:man_tag_depth = s:man_tag_depth - 1 + exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth + exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth + exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth + exec s:man_tag_buf."b" + exec s:man_tag_lin + exec "norm! ".s:man_tag_col."|" + exec "unlet s:man_tag_buf_".s:man_tag_depth + exec "unlet s:man_tag_lin_".s:man_tag_depth + exec "unlet s:man_tag_col_".s:man_tag_depth + unlet s:man_tag_buf s:man_tag_lin s:man_tag_col + endif +endfunc + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: set sw=2 ts=8 noet: diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index f0c1ddc1b3..c26a8574ea 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1,4 +1,4 @@ -*builtin.txt* For Vim version 8.2. Last change: 2022 Jun 16 +*builtin.txt* For Vim version 8.2. Last change: 2022 Jun 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2869,7 +2869,7 @@ fnamemodify({fname}, {mods}) *fnamemodify()* Example: > :echo fnamemodify("main.c", ":p:h") < results in: > - /home/mool/vim/vim/src + /home/user/vim/vim/src < If {mods} is empty or an unsupported modifier is used then {fname} is returned. Note: Environment variables don't work in {fname}, use @@ -10022,8 +10022,6 @@ win_gettype([{nr}]) *win_gettype()* popup window then 'buftype' is "terminal" and win_gettype() returns "popup". - Return an empty string if the window cannot be found. - Can also be used as a |method|: > GetWinid()->win_gettype() < diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 237db87c21..6929f9c77b 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.2. Last change: 2022 Jun 03 +*eval.txt* For Vim version 8.2. Last change: 2022 Jun 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -531,7 +531,7 @@ entry. Note that the String '04' and the Number 04 are different, since the Number will be converted to the String '4', leading zeros are dropped. The empty string can also be used as a key. -In |Vim9| script literally keys can be used if the key consists of alphanumeric +In |Vim9| script a literal key can be used if it consists only of alphanumeric characters, underscore and dash, see |vim9-literal-dict|. *literal-Dict* *#{}* To avoid having to put quotes around every key the #{} form can be used in diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index bcaa3745ee..91df903a39 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 8.2. Last change: 2022 Jun 14 +*map.txt* For Vim version 8.2. Last change: 2022 Jun 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -394,15 +394,7 @@ Note: mapping is recursive. - In Visual mode you can use `line('v')` and `col('v')` to get one end of the Visual area, the cursor is at the other end. -- In Select mode, |:map| and |:vmap| command mappings are executed in - Visual mode. Use |:smap| to handle Select mode differently. One particular - edge case: > - :vnoremap -< This ends Visual mode when in Visual mode, but in Select mode it does not - work, because Select mode is restored after executing the mapped keys. You - need to use: > - :snoremap -< + *E1255* *E1136* and commands must terminate, that is, they must be followed by in the {rhs} of the mapping definition. |Command-line| mode is never diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 2ee4476d89..e9816bc0a2 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 8.2. Last change: 2022 Apr 08 +*repeat.txt* For Vim version 8.2. Last change: 2022 Jun 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -197,7 +197,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|. :so[urce] {file} Read Ex commands from {file}. These are commands that start with a ":". Triggers the |SourcePre| autocommand. - + *:source-range* :[range]so[urce] [++clear] Read Ex commands from the [range] of lines in the current buffer. diff --git a/runtime/doc/tags b/runtime/doc/tags index 00407a79cc..7481605b15 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -3197,6 +3197,7 @@ $quote eval.txt /*$quote* :sort change.txt /*:sort* :source repeat.txt /*:source* :source! repeat.txt /*:source!* +:source-range repeat.txt /*:source-range* :source_crnl repeat.txt /*:source_crnl* :sp windows.txt /*:sp* :spe spell.txt /*:spe* @@ -5444,6 +5445,7 @@ SpellFileMissing autocmd.txt /*SpellFileMissing* StdinReadPost autocmd.txt /*StdinReadPost* StdinReadPre autocmd.txt /*StdinReadPre* String eval.txt /*String* +Sven-Guckes version9.txt /*Sven-Guckes* SwapExists autocmd.txt /*SwapExists* Syntax autocmd.txt /*Syntax* T motion.txt /*T* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 7716e394ba..8285df9aaa 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 8.2. Last change: 2022 Jun 17 +*todo.txt* For Vim version 8.2. Last change: 2022 Jun 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -38,18 +38,15 @@ browser use: https://github.com/vim/vim/issues/1234 *known-bugs* -------------------- Known bugs and current work ----------------------- -Searchpair() timeout using skip expression using synID() interferes with -syntax highlighting. #10562 -Add flag that timeout is set for 'redrawtime' and only then set b_syn_slow. - Prepare for Vim 9.0 release: - Update the user manual: - Add more to usr_50.txt as an "advanced section" of usr_41.txt - Move some from vim9.txt to the user manual? Keep the specification. -- Use Vim9 for more runtime files. +- Update version9.txt - Adjust intro message to say "help version9". Further Vim9 improvements, possibly after launch: +- Use Vim9 for more runtime files. - Check performance with callgrind and kcachegrind. getline()/substitute()/setline() in #5632 - Better implementation for partial and tests for that. @@ -80,7 +77,8 @@ Further Vim9 improvements, possibly after launch: Update list of features to vote on: - multiple cursors - built-in LSP support -- start first line halfway +- virtual text, using text properties +- start first line halfway, scroll per screen line Popup windows: - Preview popup not properly updated when it overlaps with completion menu. @@ -206,8 +204,15 @@ Terminal emulator window: - When 'encoding' is not utf-8, or the job is using another encoding, setup conversions. +Patches considered for including: +- Add "-n" option to xxd. #10599 +- Support %e and %k in 'errorformat'. #9624 +- Add support for "underdouble", "underdot" and "underdash". #9553 +- Patch to implement the vimtutor with a plugin: #6414 + Was originally written by Felipe Morales. +- Patch to make fillchars global-local. (#5206) + Autoconf: must use autoconf 2.69, later version generates lots of warnings - attempt in ~/tmp/configure.ac - try using autoconf 2.71 and fix all "obsolete" warnings Can deref_func_name() and deref_function_name() be merged? @@ -228,32 +233,15 @@ pass it on with modifications. Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002 -Valgrind reports memory leaks in test_options. -Valgrind reports overlapping memcpy in - test_conceal.3 - test_edit.1 - test_functions.4 - test_ins_complete.3 - test_method - test_normal - test_popupwin.35 et al. - test_search_stat -Memory leak in test_debugger -Memory leak in test_paste, using XtOpenDisplay several times -OLD: -TODO: be able to run all parts of test_alot with valgrind separately -Memory leak in test_alot with pyeval() (allocating partial) -Memory leak in test_alot with expand() -Memory leaks in test_channel? (or is it because of fork()) - -PR to support %e and %k in 'errorformat'. #9624 +Problems reported by Valgrind: +Memory leaks in test_channel, in func Test_job_start_fails(). Weird. With a window height of 6 and 'scrolloff' set to 3, using "j" does not scroll -evenly. (#10545) +evenly. (#10545) Need to handle this in scroll_cursor_bot(). Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red. -":set &shellpipe" and ":set &shellredir" should use the logic from +":set shellpipe&" and ":set shellredir&" should use the logic from initialization to figure out the default value from 'shell'. Add a test for this. @@ -266,8 +254,6 @@ The line number can be obtained from win->w_lines[]. MS-Windows: did path modifier :p:8 stop working? #8600 -Add support for "underdouble", "underdot" and "underdash". #9553 - test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows. Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is @@ -278,9 +264,6 @@ Problem that a previous silent ":throw" causes a following try/catch not to work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) Also see #8487 for an example. -Patch to implement the vimtutor with a plugin: #6414 -Was originally written by Felipe Morales. - Request to use "." for the cursor column in search pattern \%<.c and \%<.v. (#8179) @@ -317,8 +300,6 @@ with 'termguicolors'. #1740 Patch for blockwise paste reporting changes: #6660. Asked for a PR. -Patch to make fillchars global-local. (#5206) - Missing filetype test for bashrc, PKGBUILD, etc. Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co @@ -339,6 +320,10 @@ Try setting a color then request the current color, like using t_u7. Make the jumplist behave like a tag stack. (#7738) Should there be a more time bound navigation, like with undo? +For testing, make a copy of ml_line_ptr instead of pointing it into the data +block, so that valgrind can do out of bounds check. Set ML_LINE_DIRTY flag or +add ML_LINE_ALLOCED. + Changing a capturing group to non-capturing changes the result: #7607 :echo matchstr('aaa bbb', '\(.\{-1,}\>\)\|.*') aaa diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 7d5c2585ea..b9713b3952 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 8.2. Last change: 2022 Mar 08 +*version9.txt* For Vim version 8.2. Last change: 2022 Jun 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -7,9 +7,9 @@ *vim-9.0* *vim-9* *version-9.0* *version9.0* Welcome to Vim 9! Several years have passed since the previous release. A large number of bugs have been fixed, many nice features have been added -and Vim9 script syntax is introduced. This file mentions all the new items -and changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 -can be found here: |vim-8.2|. +and Vim9 script syntax has been introduced. This file mentions all the new +things and changes to existing features since Vim 8.2.0. The patches up to Vim +8.2 can be found here: |vim-8.2|. Use this command to see the full version and features information of the Vim program you are using: > @@ -35,7 +35,7 @@ See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and You can find an overview of the most important changes (according to Martin Tournoij) on this site: https://www.arp242.net/vimlog/ - + *Sven-Guckes* Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022 when the release was being prepared. Sven was a long time supporter of Vim. He registered the vim.org domain and created the first Vim website. We will @@ -75,7 +75,9 @@ Options: ~ 'autoshelldir' change directory to the shell's current directory 'cdhome' change directory to the home directory by ":cd" +'cinscopedecls' words that are recognized by 'cino-g' 'guiligatures' GTK GUI: ASCII characters that can form shapes +'mousemoveevent' report mouse moves with 'quickfixtextfunc' function for the text in the quickfix window 'spelloptions' options for spell checking 'thesaurusfunc' function to be used for thesaurus completion @@ -116,6 +118,9 @@ Ex command modifiers: ~ New and extended functions: ~ |assert_nobeep()| assert that a command does not cause a beep +|autocmd_add()| add a list of autocmds and groups +|autocmd_delete()| delete a list of autocmds and groups +|autocmd_get()| return a list of autocmds |blob2list()| get a list of numbers from a blob |charclass()| class of a character |charcol()| character number of the cursor or a mark @@ -132,13 +137,16 @@ New and extended functions: ~ |fullcommand()| get full command name |getcharpos()| get character position of cursor, mark, etc. |getcharstr()| get a character from the user as a string +|getcmdcompltype()| return current cmdline completion type |getcursorcharpos()| get character position of the cursor |getmarklist()| list of global/local marks |getreginfo()| get information about a register |gettext()| lookup message translation |hlget()| get highlight group attributes |hlset()| set highlight group attributes +|isabsolutepath()| check if a path is absolute |list2blob()| get a blob from a list of numbers +|maplist()| list of all mappings, a dict for each |mapnew()| make a new List with changed items |mapset()| restore a mapping |matchfuzzy()| fuzzy matches a string in a list of strings @@ -164,6 +172,7 @@ New and extended functions: ~ |test_unknown()| return a value with unknown type |test_void()| return a value with void type |typename()| type of a variable as text +|virtcol2col()| byte index of a character on screen |win_gettype()| get type of window |win_move_separator()| move window vertical separator |win_move_statusline()| move window status line @@ -193,10 +202,17 @@ New autocommand events: ~ |ModeChanged| after changing the mode |SigUSR1| after the SIGUSR1 signal has been detected |WinClosed| after closing a window +|WinScrolled| after scrolling or resizing a window |VimSuspend| when suspending Vim |VimResume| when Vim is resumed after being suspended +New operator: ~ + +|>>| bitwise right shift +|<<| bitwise left shift +|??| falsy operator + New runtime files: ~ Too many to list here. @@ -205,17 +221,128 @@ Too many to list here. INCOMPATIBLE CHANGES *incompatible-9* These changes are incompatible with previous releases. Check this list if you -run into a problem when upgrading from Vim 8.2.0 to 9.0. +run into a problem when upgrading from Vim 8.2 to 9.0. TODO ============================================================================== IMPROVEMENTS *improvements-9* -Many memory leaks, invalid memory accesses and crashes have been fixed. -See the list of patches below. +Various small and useful improvements have been made since Vim 8.2. Here is a +collection of changes that are worth mentioning. -TODO +Many memory leaks, invalid memory accesses and crashes have been fixed. +See the list of patches below: |bug-fixes-9|. + +Support for Vim expression evaluation in a string. |interp-string| +Support for evaluating Vim expressions in a heredoc. |:let-heredoc| + +Display the command line completion matches in a popup menu. 'wildoptions' + +Support for fuzzy matching a string in a List of strings. |fuzzy-matching| + +Fuzzy completion support for command line completion using 'wildoptions'. + +Fuzzy match support for |:vimgrep|. + +Support for "lsp" channel mode to simplify LSP server RPC communication +|language-server-protocol|. + +Support for sourcing lines from the current buffer. |:source-range| + +Support for stopping profiling a Vim script: `:profile stop` and dumping the +report to a file: `:profile dump` . |:profile| + +Argument completion support for the |:scriptnames|, |:profile|, |:profdel|, +|:breakadd| and |:breakdel| commands. + +Support for using a funcref/lambda value with the 'foldtext', 'completefunc', +'omnifunc', 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc', +'imactivatefunc' and 'imstatusfunc' options. + +Support for using multibyte items with the 'fillchars', 'stl' and 'stlnc' +options. + +Support for xchacha20 encryption method 'cryptmethod' + +Spell check current word with |z=| even when 'spell' is off. + +Support for executing Ex commands in a map without changing the current mode +|| and ||. + +A large number of tests have been added to verify the Vim functionality. Most +of the old style tests have been converted to new style tests using the new +style assert_* functions. + +Add optional error code to |:cquit|. + +Support for using a Unix domain socket with a |channel|. + +IPv6 support in channels |channel-address|. + +Call Vim functions from Lua (vim.call('func', 'arg')). + +Add unsigned to 'nrformats'. + +Allow setting underline color in terminal. + +Expand script ID using expand(''). |expand()| + +Jump to the last accessed tab page using |g|. + +Locale aware sorting using |:sort| and |sort()|. + +Hide cursor when sleeping using |:sleep!|. + +Detect focus events in terminal (|FocusGained| and |FocusLost|). + +Highlight leading spaces when 'list' is set (|'listchars'|) + +Support for looping over a string using |:for|. + +Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'. + +Support for re-evaluating the 'statusline' expression as a statusline format +string (%{expr}) + +Add |zp| and |zP| to paste in block mode without adding trailing white space. +Add |zy| to yank without trailing white space in block mode. + +Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on. +See |/\%l| for more information. + +Add "list" to 'breakindentopt' to add additional indent for lines that match +a numbered or bulleted list. Add "column" to 'breakindentopt' to indent +soft-wrapped lines at a specific column. + +Add "multispace" to 'listchars' to show two or more spaces no matter where +they appear. + +Add |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to +adjust sign highlighting for 'cursorline'. + +Add the |hl-CurSearch| default highlight group for the current search match. + +Support directly setting the 'balloonexpr', 'foldexpr', 'formatexpr', +'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', 'modelineexpr', +'diffexpr' and 'printexpr' options to a script-local function. + +Add the 'P' command in visual mode to paste text in visual mode without +yanking the deleted text to the unnamed register. + +Add "timeout" to 'spellsuggest' to limit the searching time for spell +suggestions. + +Add support for parsing the end line number (%e) and end column number +(%k) using 'errorformat'. + +Add support for logging on Vim startup (|--log|). + +Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with +inline comment. + + +TODO: more ============================================================================== COMPILE TIME CHANGES *compile-changes-9* @@ -26920,8 +27047,4235 @@ Solution: Include the script ID in the partial name. Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_import.vim +Patch 8.2.4430 +Problem: GTK: crash when using 'guiligatures' and reading from stdin. +Solution: Make a copy of the message. (Amon Sha, closes #9719, closes #9814) +Files: src/fileio.c + +Patch 8.2.4431 +Problem: Unnecessary condition when assigning to a variable. +Solution: Remove the condition. +Files: src/evalvars.c + +Patch 8.2.4432 (after 8.2.4428) +Problem: Cannot use settabvar() while the cmdline window is open. +Solution: Only give an error when actually switching tabpage. + (closes #9813) +Files: src/window.c + +Patch 8.2.4433 +Problem: CI: cannot see interface versions for MS-Windows. +Solution: List the interface versions. (Ken Takata, closes #9811) +Files: .github/workflows/ci.yml + +Patch 8.2.4434 +Problem: Duplicate check for cmdline window. +Solution: Remove the second check. (Sean Dewar, closes #9816) +Files: src/window.c + +Patch 8.2.4435 +Problem: Dead code in checking map() arguments. (Dominique Pellé) +Solution: Remove the first return statement. (closes #9815) +Files: src/evalfunc.c + +Patch 8.2.4436 +Problem: Crash with weird 'vartabstop' value. +Solution: Check for running into the end of the line. +Files: src/indent.c, src/testdir/test_vartabs.vim + +Patch 8.2.4437 +Problem: Vartabs test fails on MS-Windows. +Solution: Use iso8859-1 'encoding'. (Ken Takata, closes #9818) +Files: src/testdir/test_vartabs.vim + +Patch 8.2.4438 +Problem: Crash on exit when using cmdline window. +Solution: Reset "cmdwin_type" before exiting. (closes #9817) +Files: src/ui.c, src/testdir/test_exit.vim + +Patch 8.2.4439 +Problem: Accepting "iso8859" 'encoding' as "iso-8859-". +Solution: use "iso8859" as "iso-8859-1". +Files: src/mbyte.c, src/testdir/test_options.vim + +Patch 8.2.4440 +Problem: Crash with specific regexp pattern and string. +Solution: Stop at the start of the string. +Files: src/regexp_bt.c, src/testdir/test_regexp_utf8.vim + +Patch 8.2.4441 +Problem: Vim9: function argument of filter() not checked like map(). +Solution: Also check the function argument of filter(). +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4442 (after 8.2.4438) +Problem: Test for error reading input fails on MS-Windows. +Solution: Don't run the test on MS-Windows. +Files: src/testdir/test_exit.vim + +Patch 8.2.4443 (after 8.2.4440) +Problem: Regexp pattern test fails on Mac. +Solution: Do not use a swapfile for the buffer. +Files: src/testdir/test_regexp_utf8.vim + +Patch 8.2.4444 +Problem: Beep caused by test. ASAN reports leaks. +Solution: Do not put a NL at the end of the script. Make the text work on + MS-Windows. Do not run the test with ASAN. +Files: src/testdir/test_exit.vim + +Patch 8.2.4445 +Problem: Exit test fails on MS-Windows anyway. +Solution: Skip the test on MS-Windows. +Files: src/testdir/test_exit.vim + +Patch 8.2.4446 +Problem: Vim9: cannot refer to a global function like a local one. +Solution: When g:name is not a variable but a function, use a function + reference. (closes #9826) +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4447 +Problem: Vim9: can still use s:var in a compiled function. +Solution: Disallow using s:var for Vim9 script. (closes #9824) +Files: runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4448 (after 8.2.4447) +Problem: Filetype detection is failing. +Solution: Do not use "s:" where it is no longer allowed. +Files: runtime/autoload/dist/ft.vim, + +Patch 8.2.4449 +Problem: vim9: function argument of sort() not checked at compile time. +Solution: Add a compile time check. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4450 (after 8.2.4449) +Problem: List sort test fails. +Solution: Pass a valid "how" argument. +Files: src/testdir/test_listdict.vim + +Patch 8.2.4451 (after 8.2.4450) +Problem: sort() fails when ignoring case. +Solution: Accept a number one argument in sort(). +Files: src/evalfunc.c, src/testdir/test_listdict.vim + +Patch 8.2.4452 +Problem: Test for what 8.2.4436 fixes does not check for regression. +Solution: Set several options. (Ken Takata, closes #9830) +Files: src/testdir/test_vartabs.vim + +Patch 8.2.4453 +Problem: :helpgrep may free an option that was not allocated. (Yegappan + Lakshmanan) +Solution: Check if the value was allocated. +Files: src/option.c, src/proto/option.pro, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.4454 +Problem: Resetting cmdwin_type only for one situation. +Solution: Reset cmdwin_type before closing windows. (closes #9822) +Files: src/ui.c, src/window.c, src/testdir/test_exit.vim + +Patch 8.2.4455 +Problem: Accepting one and zero for the second sort() argument is strange. +Solution: Disallow using one and zero in Vim9 script. +Files: runtime/doc/builtin.txt, src/evalfunc.c, src/list.c, + src/testdir/test_listdict.vim + +Patch 8.2.4456 +Problem: Terminal test may fail on some machines. +Solution: Increase wait time. (Zdenek Dohnal, closes #9834) +Files: src/testdir/test_terminal.vim + +Patch 8.2.4457 +Problem: The GPM library can only be linked statically. +Solution: Make it possible to load the GPM library dynamically. (Damien) +Files: runtime/doc/various.txt, src/config.h.in, src/configure.ac, + src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c, + src/proto/os_unix.pro, src/version.c + +Patch 8.2.4458 +Problem: Vim9: compiling filter() call fails with funcref that has unknown + arguments. +Solution: Do not check the arguments if they are unknown at compile time. + (closes #9835) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4459 +Problem: Vim9: compiling sort() call fails with a funcref that has unknown + arguments. +Solution: Do not check the arguments if they are unknown at compile time. + (closes #9835) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4460 +Problem: Vim9: wrong error for defining dict function. +Solution: Explicitly check for trying to define a dict function. + (closes 9827) +Files: src/errors.h, src/userfunc.c, src/vim9compile.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.4461 +Problem: MS-Windows: garbage characters on stdout with VIMDLL. +Solution: Don't call gui_focus_change() when about to quit. (Ken Takata, + closes #9840) +Files: src/gui_w32.c + +Patch 8.2.4462 +Problem: Not enough testing for quickfix code. +Solution: Add more tests. Fix uncovered problem. (Yegappan Lakshmanan, + closes #9839) +Files: src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim, + src/testdir/test_quickfix.vim + +Patch 8.2.4463 +Problem: Completion only uses strict matching. +Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan, + closes #9803) +Files: runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c, + src/option.c, src/option.h, src/optionstr.c, + src/proto/cmdexpand.pro, src/proto/option.pro, + src/proto/search.pro, src/search.c, src/structs.h, + src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim + +Patch 8.2.4464 +Problem: Dtrace files are recognized as filetype D. +Solution: Add a pattern for Dtrace files. (Teubel György, closes #9841) + Add some more testing. +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4465 +Problem: Fuzzy completion does not order matches properly. +Solution: Do not use regular expression match. (Yegappan Lakshmanan, + closes #9843) +Files: src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim + +Patch 8.2.4466 +Problem: MS-Windows: illegal memory access in installer when using + "create-directories" as the final argument. +Solution: Check the argument count. (Cam Sinclair, closes #9844) +Files: src/dosinst.c + +Patch 8.2.4467 +Problem: Running filetype test leaves file behind. +Solution: Delete the file. +Files: src/testdir/test_filetype.vim + +Patch 8.2.4468 +Problem: Coverity warns for uninitialized struct member. +Solution: Set color.index to zero. +Files: src/terminal.c + +Patch 8.2.4469 +Problem: Coverity warns for uninitialized variable. +Solution: Set the value to zero. +Files: src/ex_getln.c + +Patch 8.2.4470 +Problem: Coverity warns for uninitialized variable. +Solution: Set can_spell to zero. +Files: src/drawline.c + +Patch 8.2.4471 +Problem: Coverity warns for uninitialized variable. +Solution: Set flags to zero. +Files: src/vim9cmds.c + +Patch 8.2.4472 +Problem: Coverity warns for use of a freed function name. +Solution: Only check an autoload name when is prefixed. +Files: src/userfunc.c + +Patch 8.2.4473 +Problem: Coverity warnds for not checking return value of ftell(). +Solution: Bail out if ftell() returns a negative value. +Files: src/spellfile.c + +Patch 8.2.4474 +Problem: Memory allocation failures not tested in quickfix code. +Solution: Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848) +Files: src/alloc.h, src/quickfix.c, src/vim.h, + src/testdir/test_quickfix.vim + +Patch 8.2.4475 +Problem: Fuzzy cmdline completion does not work for lower case. +Solution: Also use fuzzy completion for lower case input. (Yegappan + Lakshmanan, closes #9849) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.4476 +Problem: Operator name spelled wrong. +Solution: Change trinary to ternary. (Goc Dundar, closes #9850) +Files: src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.4477 +Problem: Crash when using fuzzy completion. +Solution: Temporary fix: put back regexp. (closes #9851) +Files: src/cmdexpand.c + +Patch 8.2.4478 +Problem: Crash when using fuzzy completion. +Solution: Temporary fix: put back regexp. (closes #9852, closes #9851) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.4479 +Problem: No fuzzy completieon for maps and abbreviations. +Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan, + closes #9856) +Files: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c, + src/testdir/test_cmdline.vim + +Patch 8.2.4480 +Problem: Suspending with CTRL-Z does not work on Android. +Solution: Do not handle SIGTSTP. (closes #9854) +Files: src/os_unix.c + +Patch 8.2.4481 +Problem: Cmdline popup menu not removed when 'lazyredraw' is set. +Solution: Temporarily reset 'lazyredraw' when removing the popup menu. + (closes #9857) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_41.dump + +Patch 8.2.4482 +Problem: No fuzzy cmdline completion for user defined completion. +Solution: Add fuzzy completion for user defined completion. (Yegappan + Lakshmanan, closes #9858) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.4483 +Problem: Command completion makes two rounds to collect matches. +Solution: Use a growarray to collect matches. (Yegappan Lakshmanan, + closes #9860) +Files: src/buffer.c, src/cmdexpand.c, src/map.c, + src/testdir/test_cmdline.vim + +Patch 8.2.4484 +Problem: Vim9: some error messages are not tested. +Solution: Add a few more test cases. Delete dead code. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.4485 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize the variable. (John Marriott) +Files: src/cmdexpand.c + +Patch 8.2.4486 +Problem: MS-Windows GUI: slow scrolling with maximized window. +Solution: Use a better way to check the window is on screen. (Ken Takata, + closes #9865) +Files: src/gui_w32.c + +Patch 8.2.4487 +Problem: Vim9: cannot compare with v:null. +Solution: Allow comparing anything with v:null. (closes #9866) +Files: src/vim9instr.c, src/typval.c, src/proto/typval.pro, + src/vim9.h, src/vim9execute.c, src/evalvars.c, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4488 (after 8.2.4487) +Problem: Build error with +eval but without +channel or +job. +Solution: Add #ifdef. (John Marriott) +Files: src/typval.c + +Patch 8.2.4489 (after 8.2.4487) +Problem: Failing test for comparing v:null with number. +Solution: Allow comparing v:null with number in legacy script. + (Ken Takata, closes #9873) Also do this for float. +Files: src/typval.c, src/testdir/test_vimscript.vim + +Patch 8.2.4490 +Problem: Terminal focus reporting only works for xterm-like terminals. + (Jonathan Rascher) +Solution: Remove the "focus_mode" flag. (closes #9859) +Files: src/term.c + +Patch 8.2.4491 +Problem: MS-Windows makefile dependencies are outdated. +Solution: Update dependencies. (Ken Takata, closes #9876) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak + +Patch 8.2.4492 +Problem: No error if an option is given an invalid value with + ":let &opt = val". +Solution: Give the error. (closes #9864) +Files: src/evalvars.c, src/testdir/test_options.vim + +Patch 8.2.4493 (after 8.2.4492) +Problem: Options test fails in the GUI. +Solution: Do not save and restore 'term'. +Files: src/testdir/gen_opt_test.vim + +Patch 8.2.4494 +Problem: The find_tags() function is much too long. +Solution: Refactor the function. (Yegappan Lakshmanan, closes #9869) +Files: src/quickfix.c, src/tag.c, src/testdir/test_tagjump.vim + +Patch 8.2.4495 +Problem: Help test fails in 24 line terminal. +Solution: Use up to 23 lines for text. +Files: src/testdir/test_help.vim + +Patch 8.2.4496 (after 8.2.4494) +Problem: Coverity gives warnings after tags code refactoring. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #9882) +Files: src/tag.c + +Patch 8.2.4497 +Problem: Wrong color for half of wide character next to pum scrollbar. +Solution: Redraw the screen cell with the right color. (closes #9874) +Files: src/screen.c, src/testdir/test_ins_complete.vim, + src/testdir/dumps/Test_scrollbar_on_wide_char.dump + +Patch 8.2.4498 +Problem: Using with "noremap" does not work. +Solution: Always remap . (closes #9879, closes #9789) +Files: runtime/doc/map.txt, src/getchar.c, src/testdir/test_mapping.vim + +Patch 8.2.4499 +Problem: Vim9: at the script level declarations leak from try block to + catch and finally block. +Solution: End the block and start a new one. (closes #9883) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4500 +Problem: Vim9: can declare a global variable on the command line. +Solution: Disallow declaring a variable on the command line. (closes #9881) +Files: src/errors.h, src/evalvars.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_script.vim, + src/testdir/dumps/Test_vim9_reject_declaration.dump + +Patch 8.2.4501 +Problem: With 'showbreak' set and after the end of the line the cursor + may be displayed in the wrong position. +Solution: Do not apply 'showbreak' after the end of the line. (closes #9884) +Files: src/charset.c, src/testdir/test_breakindent.vim, + src/testdir/dumps/Test_cursor_position_with_showbreak.dump + +Patch 8.2.4502 +Problem: In the GUI a modifier is not recognized for the key typed after + CTRL-X, which may result in a mapping to be used. (Daniel + Steinberg) +Solution: Recognize a modifier starting with CSI. (closes #9889) +Files: src/getchar.c, src/testdir/test_ins_complete.vim + +Patch 8.2.4503 +Problem: Vim9: there is no point in supporting :Print and :mode. +Solution: Do not recognize :Print and :mode as commands. (closes #9870) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4504 +Problem: When there is a partially matching map and modifyOtherKeys is + active a full map may not work. +Solution: Only simplify modifiers when there is no matching mapping. + (closes #8792) +Files: src/getchar.c, src/testdir/test_termcodes.vim + +Patch 8.2.4505 +Problem: Vim9: outdated "autocmd nested" still works. +Solution: Do not accept the :autocmd argument "nested" without "++" in Vim9 + script. +Files: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim + +Patch 8.2.4506 +Problem: "pattern not found" for :global is not an error message. +Solution: In Vim9 script make this an actual error, so that try/catch can be + used as expected. +Files: src/ex_cmds.c, src/errors.h, src/testdir/test_global.vim + +Patch 8.2.4507 (after 8.2.4506) +Problem: Test fails because of new error message. +Solution: Avoid the test fails. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.4508 +Problem: Vim9: cannot assign to a global variable on the command line. +Solution: Allow using :vim9cmd for assignment on the command line. +Files: src/evalvars.c, src/testdir/test_vim9_script.vim, + src/testdir/dumps/Test_vim9_reject_declaration.dump, + src/testdir/dumps/Test_vim9_reject_declaration_1.dump, + src/testdir/dumps/Test_vim9_reject_declaration_2.dump + +Patch 8.2.4509 +Problem: Vim9: can declare a variable with ":va". +Solution: Disallow using ":va", require using ":var". +Files: src/evalvars.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4510 +Problem: Vim9: shortening commands leads to confusing script. +Solution: In Vim9 script require at least ":cont" for ":continue", "const" + instead of "cons", "break" instead of "brea", "catch" instead of + "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor" + instead of "endfo" "endif" instead of "en" "endtry" instead of + "endt", "finally" instead of "fina", "throw" instead of "th", + "while" instead of "wh". +Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/evalvars.c, + src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4511 +Problem: Filetype test fails. +Solution: Change "endw" to "endwhile". +Files: runtime/autoload/dist/ft.vim + +Patch 8.2.4512 +Problem: The find_tags_in_file() function is much too long. +Solution: Refactor into multiple smaller functions. (Yegappan Lakshmanan, + closes #9892) +Files: Filelist, src/Makefile, src/quickfix.c, src/tag.c, + src/testdir/test83-tags2, src/testdir/test83-tags3, + src/testdir/test_tagjump.vim + +Patch 8.2.4513 +Problem: Window-local directory is not applied if 'acd' fails. +Solution: Don't call do_autochdir(). (closes #9891) +Files: src/window.c, src/testdir/test_autochdir.vim + +Patch 8.2.4514 +Problem: Vim9: some flow commands can be shortened. +Solution: Also require using the full name for ":return", ":enddef", + ":continue", ":export" and ":import". +Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4515 +Problem: Old subsitute syntax is still supported. +Solution: Disallow using backslash after ":s" in Vim9 script. +Files: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim + +Patch 8.2.4516 (after 8.2.4515) +Problem: Build failure without the +eval feature. +Solution: Move error message outside of #ifdef. +Files: src/errors.h + +Patch 8.2.4517 +Problem: MS-Windows: cannot specify location of sodium library. +Solution: Allow for using a path for SODIUM. (Ken Takata, closes #9896) +Files: src/Make_cyg_ming.mak + +Patch 8.2.4518 +Problem: The binary tag search feature is always enabled. +Solution: Remove the #ifdefs. Add a few more tests. (Yegappan Lakshmanan, + closes #9893) +Files: src/evalfunc.c, src/feature.h, src/tag.c, src/version.c, + src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim + +Patch 8.2.4519 +Problem: Vim9: Can still use ":fini" and ":finis" for ":finish". +Solution: Require using ":finish". +Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim + +Patch 8.2.4520 +Problem: Using wrong highlight for cursor line number. +Solution: Take filler lines into account when using CursorLineNr. + (closes #9897) +Files: src/drawline.c, src/testdir/test_diffmode.vim, + src/testdir/dumps/Test_diff_with_cursorline_number_01.dump, + src/testdir/dumps/Test_diff_with_cursorline_number_02.dump + +Patch 8.2.4521 (after 8.2.4520) +Problem: Build failure without the +diff feature. (John Marriott) +Solution: Define filler+lines if not declaring it. +Files: src/drawline.c + +Patch 8.2.4522 (after 8.2.4492) +Problem: GUI test fails with Motif. (Dominique Pellé) +Solution: Remove using an invalid value for 'guifontset'. +Files: src/testdir/test_gui.vim + +Patch 8.2.4523 +Problem: When gvim is started maximized the 'window' option isn't set + properly. (Christian J. Robinson) +Solution: Check if 'windows' was already set or not. (Ken Takata, + closes #9904) +Files: src/term.c + +Patch 8.2.4524 +Problem: MS-Windows: cannot build with some sodium libraries. +Solution: Make the DLL name configuragle. Add build instructions. + (Ken Takata, closes #9905) +Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, + src/crypt.c + +Patch 8.2.4525 +Problem: Some GUI tests don't work on Athena. +Solution: Skip tests that won't work. (Yegappan Lakshmanan, closes #9902) +Files: src/testdir/test_gui.vim + +Patch 8.2.4526 +Problem: Vim9: cannot set variables to a null value. +Solution: Add null_list, null_job, etc. +Files: runtime/doc/vim9.txt, src/eval.c, src/proto/eval.pro, + src/vim9expr.c, src/vim9script.c, src/vim9instr.c, + src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/vim9type.c, + src/evalvars.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_expr.vim + +Patch 8.2.4527 +Problem: The Athena GUI is old and does not work well. +Solution: Remove the Athena GUI from configure to find out who still wants + support for this GUI. +Files: src/configure.ac, src/auto/configure, src/Makefile + +Patch 8.2.4528 +Problem: Crash when using null_function for a partial. +Solution: Don't call fname_trans_sid() with NULL. (closes #9908) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4529 +Problem: Vim9: comparing partial with function fails. +Solution: Support this comparison. Avoid a crash. (closes #9909) + Add more test cases. +Files: src/vim9instr.c, src/userfunc.c, src/vim9type.c, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vimscript.vim + +Patch 8.2.4530 +Problem: Making comparison with null work changes legacy behavior. +Solution: Only use the better comparison in Vim9 script. (closes #9910) +Files: src/typval.c, src/testdir/test_expr.vim + +Patch 8.2.4531 +Problem: LGTM warnings for condition always true and buffer size too small. +Solution: Remove the useless condition. Make the buffer larger. (Goc + Dundar, closes #9914) +Files: src/charset.c, src/term.c + +Patch 8.2.4532 +Problem: Suspending with CTRL-Z does not work on OpenBSD. +Solution: Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912) +Files: src/os_unix.c + +Patch 8.2.4533 +Problem: Vim9: no test that after assigning null the type is still checked. +Solution: Add a test. +Files: src/testdir/test_vim9_assign.vim + +Patch 8.2.4534 +Problem: Vim9: "is" operator with empty string and null returns true. +Solution: Consider empty string and null to be different for "is". +Files: src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4535 +Problem: Filename modifer ":8" removes the filename. +Solution: Use strncpy() instead of vim_strncpy(). (Christian Brabandt, + closes #9918, closes #8600) +Files: src/filepath.c, src/testdir/test_shortpathname.vim + +Patch 8.2.4536 (after 8.2.4534) +Problem: Debugger test fails when breaking on expression. +Solution: Compare strings with "==" instead of "is". +Files: src/debugger.c + +Patch 8.2.4537 +Problem: Output from linter and language server shows up in git. +Solution: Add patterns to .gitignore. (Goc Dundar, closes #9925) +Files: .gitignore + +Patch 8.2.4538 +Problem: The find_tags_in_file() function is too long. +Solution: Refactor into smaller functions. (Yegappan Lakshmanan, + closes #9920) +Files: src/tag.c, src/testdir/test_tagjump.vim + +Patch 8.2.4539 +Problem: When comparing special v:none and v:null are handled the same when + compiling. +Solution: Pass more information so that v:none can be handled differently at + compile time. (issue #9923) +Files: src/vim9instr.c, src/vim9compile.c, src/globals.h, + src/testdir/test_vim9_expr.vim + +Patch 8.2.4540 +Problem: Line number for error is off by one. +Solution: Remember the line number of the comparison. (closes #9923) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4541 +Problem: Crash in debugger when a variable is not available in the current + block. +Solution: Check for a NULL name. (closes #9926) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.4542 +Problem: Vim9: "break" inside try/catch not handled correctly. +Solution: First jump to :endtry. (closes #9927) +Files: src/vim9cmds.c, src/vim9.h, src/testdir/test_vim9_script.vim + +Patch 8.2.4543 +Problem: Coverity warning for refactored tag search code. +Solution: Avoid the warnings. Update comments. Add one more test case. + (Yegappan Lakshmanan, closes #9928) +Files: src/tag.c, src/testdir/test_tagjump.vim + +Patch 8.2.4544 +Problem: Coverity warnings for not using returned value. +Solution: Assign to vim_ignored. +Files: src/tag.c + +Patch 8.2.4545 +Problem: MS-Windows: the installed icon is low resolution. +Solution: Use a better icon. Install vim.ico. (Christian Brabandt, + closes #9931, closes #9930) +Files: Filelist, nsis/gvim.nsi, src/vim.ico, runtime/bitmaps/vim.ico + +Patch 8.2.4546 +Problem: Duplicate #undef. +Solution: Remove one #undef. (closes #9932) +Files: src/regexp_nfa.c + +Patch 8.2.4547 +Problem: The neXTaw GUI is old and does not work well. +Solution: Remove the neXTaw GUI from configure to find out who still wants + support for this GUI. +Files: src/configure.ac, src/auto/configure, src/Makefile + +Patch 8.2.4548 +Problem: Script-local function is deleted when used in a funcref. +Solution: Do not consider a function starting with "" reference + counted. (closes #9916, closes #9820) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4549 +Problem: Cannot build with Motif and editres. (Tony Mechelynck) +Solution: Fix configure mistake. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.4550 +Problem: Motif: cannot set the color of the scrollbar thumb. +Solution: Remove #ifdef. +Files: src/gui_motif.c + +Patch 8.2.4551 +Problem: When mapping terminal codes are not recognized. +Solution: Specifically recognize a mapping with just and check for + terminal codes even though there is no partial mapping. + (closes #9903) +Files: src/getchar.c, src/testdir/test_termcodes.vim + +Patch 8.2.4552 +Problem: In a :def function "put = expr" does not work. +Solution: Skip over white space. (closes #9936) +Files: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4553 +Problem: Linear tag search is a bit slow. +Solution: Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937) +Files: src/tag.c, src/testdir/test_taglist.vim + +Patch 8.2.4554 +Problem: Vim9: using null values not sufficiently tested. +Solution: Add more tests. Fix uncovered problem. +Files: src/vim9type.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.4555 +Problem: getmousepos() returns the wrong column. (Ernie Rael) +Solution: Limit to the text size, not the number of bytes. +Files: src/mouse.c, src/testdir/test_functions.vim + +Patch 8.2.4556 +Problem: Test fails without the +job or +channel feature. (Dominique Pellé) +Solution: Adjust #ifdefs. Pass on skip flag. (closes #9942) +Files: src/eval.c, src/vim9compile.c + +Patch 8.2.4557 +Problem: Confusing comment about 'cursorlineopt'. +Solution: Adjust comment. (closes #9939) Add parenthesis around logical + OR. +Files: src/drawline.c + +Patch 8.2.4558 +Problem: Motif: using default colors does not work as expected. +Solution: Do not try to store the default colors, use the resources. + (closes #9933) +Files: src/gui_motif.c, src/gui.h + +Patch 8.2.4559 (after 8.24555) +Problem: getmousepos() returns the screen column. (Ernie Rael) +Solution: Return the text column, as documented. +Files: src/mouse.c, src/testdir/test_functions.vim + +Patch 8.2.4560 +Problem: Suspending with CTRL-Z does not work on DragonFlyBSD. +Solution: Adjust #ifdef. (Ozaki Kiichi, closes #9943) +Files: src/os_unix.c + +Patch 8.2.4561 +Problem: Build failure with some combination of features. (John Marriott) +Solution: Adjust #ifdef. +Files: src/mouse.c + +Patch 8.2.4562 +Problem: Linear tag search is not optimal. +Solution: Improve linear tag search performance. (Yegappan Lakshmanan, + closes #9944) +Files: src/tag.c + +Patch 8.2.4563 +Problem: "z=" in Visual mode may go beyond the end of the line. +Solution: Adjust "badlen". +Files: src/spellsuggest.c, src/testdir/test_spell.vim + +Patch 8.2.4564 +Problem: Running test leaves file behind. (Dominique Pellé) +Solution: Run the profiling in a separate Vim instance. (closes #9952) +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4565 +Problem: No command line completion for :breakadd and :breakdel. +Solution: Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan, + closes #9950) +Files: runtime/doc/builtin.txt, src/cmdexpand.c, src/spellsuggest.c, + src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim, + src/testdir/test_writefile.vim + +Patch 8.2.4566 +Problem: Check for existing buffer in session file does not work for files + in the home directory. +Solution: Use fnamemodify(). (James Cherti, closes #9945) Add a test. +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4567 +Problem: Bracketed paste doesn't work well in Visual linewise mode. +Solution: Handle linewise Visual mode differently. (closes #9947) +Files: src/normal.c, src/testdir/test_paste.vim + +Patch 8.2.4568 +Problem: getmousepos() does not compute the column below the last line. +Solution: Also compute the column when the mouse is below the last line. + (Sean Dewar, closes #9946) +Files: src/mouse.c, src/testdir/test_functions.vim + +Patch 8.2.4569 +Problem: Coverity warning for not using a return value. +Solution: Add "(void)". +Files: src/popupwin.c + +Patch 8.2.4570 +Problem: No command line completion for :profile and :profdel. +Solution: Implement completion. (Yegappan Lakshmanan, closes #9955) +Files: src/cmdexpand.c, src/profiler.c, src/testdir/test_cmdline.vim, + src/testdir/test_profile.vim + +Patch 8.2.4571 +Problem: Not all gdb files are recognized. +Solution: Add a few more patterns for gdb. (Jade Lovelace, closes #9956) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4572 +Problem: Vim9: return type "any" is sometimes changed to first returned + type. (Virginia Senioria) +Solution: Do not change the return type if declared as "any". (closes #9949) +Files: src/vim9cmds.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4573 +Problem: A nested function (closure) is compiled for debugging without + context. +Solution: Check if a nested function is marked for debugging before + compiling it. Give an error when trying to compile a closure + without its context. (closes #9951) +Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, + src/vim9expr.c, src/errors.h + +Patch 8.2.4574 +Problem: Vim9: test for profiling fails. +Solution: Mark function for profiling earlier to avoid E1271. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4575 +Problem: Vim9: test for profiling still fails. +Solution: Update flags for profiling and breakpoints when obtaining the + compile type. Do not set the FC_CLOSURE flag for a toplevel + function. +Files: src/vim.h, src/vim9compile.c, src/proto/vim9compile.pro, + src/eval.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, + src/vim9.h + +Patch 8.2.4576 +Problem: Vim9: error for comparing with null can be annoying. +Solution: Allow comparing anything with null. (closes #9948) +Files: src/vim9instr.c, src/typval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4577 +Problem: Message test is flaky. (Elimar Riesebieter) +Solution: Trigger the autocommand event only after startup is finished. +Files: src/testdir/test_messages.vim + +Patch 8.2.4578 +Problem: No warning when an autoload script for completion function has an + error. +Solution: Do not ignore errors when a function name is given with a dot or + '#' character. (closes #9958) +Files: src/eval.c, src/testdir/test_cmdline.vim + +Patch 8.2.4579 +Problem: Cannot use page-up and page-down in the command line completion + popup menu. +Solution: Check for to page-up and page-down keys. (Yegappan Lakshmanan, + closes #9960) +Files: src/cmdexpand.c, src/ex_getln.c, src/spellsuggest.c, src/vim.h, + src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_42.dump, + src/testdir/dumps/Test_wildmenu_pum_43.dump, + src/testdir/dumps/Test_wildmenu_pum_44.dump, + src/testdir/dumps/Test_wildmenu_pum_45.dump, + src/testdir/dumps/Test_wildmenu_pum_46.dump, + src/testdir/dumps/Test_wildmenu_pum_47.dump, + src/testdir/dumps/Test_wildmenu_pum_48.dump, + src/testdir/dumps/Test_wildmenu_pum_49.dump, + src/testdir/dumps/Test_wildmenu_pum_50.dump + +Patch 8.2.4580 +Problem: Vim9: incorrect error for shadowing variable. +Solution: Do not pass the context when compiling a referenced function. +Files: src/vim9expr.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4581 +Problem: Null types not fully tested. +Solution: Add some more tests using null types. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.4582 +Problem: Useless code handling a type declaration. +Solution: Remove the code and give an error. +Files: src/eval.c, src/errors.h, src/testdir/test_vim9_script.vim, + src/testdir/dumps/Test_misplaced_type.dump + +Patch 8.2.4583 (after 8.2.4582) +Problem: Screendump test fails. +Solution: Check that making a screendump is possible. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4584 (after 8.2.4578) +Problem: Error for using autoload function in custom completion. +Solution: Do not check for errors when using an autoload function. + (closes #9962) +Files: src/eval.c, src/testdir/test_cmdline.vim + +Patch 8.2.4585 +Problem: Cannot use keypad page-up/down for completion menu. +Solution: Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963) +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.4586 +Problem: Vim9: no error for using lower case name for "func" argument. + (Ernie Rael) +Solution: Check the name as soon as the type is known. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4587 +Problem: Vim9: double free after unpacking a list. +Solution: Make a copy of the value instead of moving it. (closes #9968) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4588 +Problem: Mapping with key code after other matching mapping does not work. +Solution: Change ">" to ">=". (closes #9903) +Files: src/getchar.c, src/testdir/test_termcodes.vim + +Patch 8.2.4589 +Problem: Cannot index the g: dictionary. +Solution: Recognize using "g:[key]". (closes #9969) +Files: src/ex_docmd.c, src/eval.c, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4590 +Problem: Vim9: range type check has wrong offset. +Solution: Adjust offset for CHECKTYPE. Remove other type check. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4591 +Problem: Cursor line not updated when a callback moves the cursor. +Solution: Check if the cursor moved. (closes #9970) +Files: src/main.c, src/drawscreen.c, src/proto/drawscreen.pro, + src/testdir/test_cursorline.vim, + src/testdir/dumps/Test_cursorline_callback_1.dump + +Patch 8.2.4592 +Problem: Search continues after giving E1204. +Solution: Return failure after giving E1204. (closes #9972) +Files: src/regexp_nfa.c + +Patch 8.2.4593 +Problem: Unnecessary call to redraw_later(). +Solution: Remove the call to redraw_later() in op_yank(). (closes #9971) +Files: src/register.c + +Patch 8.2.4594 +Problem: Need to write script to a file to be able to source them. +Solution: Make ":source" use lines from the current buffer. (Yegappan + Lakshmanan et al., closes #9967) +Files: runtime/doc/repeat.txt, runtime/doc/todo.txt, src/alloc.c, + src/digraph.c, src/eval.c, src/ex_cmds.h, src/scriptfile.c, + src/proto/scriptfile.pro, src/vim9script.c, + src/testdir/test_source.vim + +Patch 8.2.4595 +Problem: X11: using --remote-wait may keep the CPU busy. +Solution: Set the timeout for select() on every call. (Jacopo Secchiero, + closes #9973) +Files: src/if_xcmdsrv.c + +Patch 8.2.4596 +Problem: Installing tutor binary may fail. +Solution: Fix the dependency. (Sergei Trofimovich, closes #9978) +Files: src/Makefile + +Patch 8.2.4597 +Problem: LuaV_debug() not covered by tests. +Solution: Add a test. (Dominique Pellé, closes #9980) +Files: src/testdir/test_lua.vim + +Patch 8.2.4598 +Problem: Profile completion test sometimes fails. +Solution: Delete the .res file before running tests. +Files: src/testdir/runtest.vim + +Patch 8.2.4599 +Problem: GTK: get assertion errors when scrolling a split window. +Solution: Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982) +Files: src/gui_gtk.c + +Patch 8.2.4600 +Problem: Vim9: not enough test coverage for executing :def function. +Solution: Add a few more tests. Fix inconsistencies. +Files: src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.4601 +Problem: Vim9: not enough test coverage for executing :def function. +Solution: Add a few more tests. +Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.4602 +Problem: Vim9: not enough test coverage for executing :def function. +Solution: Add a few more tests. Fix uncovered problem. Remove dead code. +Files: src/vim9execute.c, src/vim9.h, src/vim9instr.c, + src/proto/vim9instr.pro, src/vim9compile.c, + src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.4603 +Problem: Sourcing buffer lines is too complicated. +Solution: Simplify the code. Make it possible to source Vim9 script lines. + (Yegappan Lakshmanan, closes #9974) +Files: runtime/doc/repeat.txt, src/ex_docmd.c, src/proto/scriptfile.pro, + src/scriptfile.c, src/structs.h, src/testdir/test_source.vim + +Patch 8.2.4604 +Problem: Error for redefining a script item may be confusing. +Solution: Put quotes around the name. +Files: src/errors.h + +Patch 8.2.4605 +Problem: Error for arguments of remote_expr() even when the +clientserver + feature is not included. +Solution: Move #ifdef. +Files: src/clientserver.c + +Patch 8.2.4606 (after 8.2.4605) +Problem: Test fails because of changed error message. +Solution: Update the expected error message +Files: src/testdir/test_vim9_import.vim + +Patch 8.2.4607 +Problem: Sourcing buffer lines may lead to errors for conflicts. +Solution: Add the ++clear argument. (Yegappan Lakshmanan, closes #9991) +Files: runtime/doc/repeat.txt, src/scriptfile.c, src/vim9script.c, + src/proto/vim9script.pro, src/testdir/test_source.vim + +Patch 8.2.4608 +Problem: getcompletion() does not work properly when 'wildoptions + contains "fuzzy". +Solution: Do not use addstar(). (Yegappan Lakshmanan, closes #9992, + closes #9986) +Files: runtime/doc/builtin.txt, src/cmdexpand.c, + src/testdir/test_cmdline.vim + +Patch 8.2.4609 +Problem: :unhide does not check for failing to close a window. +Solution: When closing a window fails continue with the next one. Do not + try closing the autocmd window. (closes #9984) +Files: src/buffer.c, src/window.c, src/proto/window.pro, + src/testdir/test_autocmd.vim + +Patch 8.2.4610 +Problem: Some conditions are always true. +Solution: Remove the useless conditions. (closes #9993) +Files: src/clientserver.c, src/drawline.c, src/drawscreen.c, + src/ex_cmds.c, src/fileio.c, src/message.c, src/misc2.c, + src/ops.c, src/sign.c, src/spell.c, src/vim9cmds.c, src/window.c + +Patch 8.2.4611 +Problem: Typos in tests; one lua line not covered by test. +Solution: Fix typos. Add test case. (Dominique Pellé, closes #9994) +Files: src/testdir/test_breakindent.vim, src/testdir/test_crypt.vim, + src/testdir/test_cursorline.vim, src/testdir/test_digraph.vim, + src/testdir/test_gui.vim, src/testdir/test_lua.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_signals.vim, + src/testdir/test_spell.vim, src/testdir/test_statusline.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim + +Patch 8.2.4612 +Problem: Vim9: cannot use a recursive call in a nested function. (Sergey + Vlasov) +Solution: Define the funcref before compiling the function. (closes #9989) +Files: src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro, + src/vim9expr.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4613 +Problem: Return type of swapfile_unchanged() is wrong. +Solution: Use "int". (closes #10000 Yeah!) +Files: src/memline.c + +Patch 8.2.4614 +Problem: Redrawing too much when 'cursorline' is set and jumping around. +Solution: Rely on win_update() to redraw the current and previous cursor + line, do not mark lines as modified. (closes #9996) +Files: src/drawline.c, src/drawscreen.c, src/move.c, src/proto/move.pro, + src/option.c + +Patch 8.2.4615 +Problem: Mapping with escaped bar does not work in :def function. (Sergey + Vlasov) +Solution: Do not remove the backslash. (closes #10002) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/syntax.c, + src/vim9cmds.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4616 +Problem: Vim9: Declarations in a {} block of a user command do not use Vim9 + rules if defined in a legacy script. (Yegappan Lakshmanan) +Solution: Pretend the script is Vim9 script. +Files: src/usercmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.4617 +Problem: No completion for :scriptnames. +Solution: Implement :scriptnames completion. (Yegappan Lakshmanan, + closes #10005) +Files: runtime/doc/builtin.txt, src/cmdexpand.c, src/ex_cmds.h, + src/scriptfile.c, src/usercmd.c, src/vim.h, + src/testdir/test_cmdline.vim, src/testdir/test_quickfix.vim + +Patch 8.2.4618 +Problem: Command line completion does not recognize single letter commands. +Solution: Use the condition from find_ex_command(). +Files: src/ex_docmd.c + +Patch 8.2.4619 +Problem: Mapping is cancelled when mouse moves and popup is visible. +Solution: Only generate mouse moved events when a popup may use them. + (closes #10004) +Files: src/gui.c, src/globals.h, src/popupwin.c + +Patch 8.2.4620 (after 8.2.4618) +Problem: Two letter substitute commands don't work. (Yegappan Lakshmanan) +Solution: Invert condition. +Files: src/ex_docmd.c + +Patch 8.2.4621 +Problem: Crash when using the tabline right-click menu. +Solution: Use XtPointer for XmNuserData. (closes #10009) +Files: src/gui_motif.c + +Patch 8.2.4622 +Problem: Vim9: Crash with :execute and :finish. (Sergey Vlasov) +Solution: Check for NULL. (closes #10011) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4623 +Problem: Coverity warns for using uninitialized field. +Solution: Initialize he field to zero. +Files: src/ex_docmd.c + +Patch 8.2.4624 +Problem: Old Coverity warning for resource leak. +Solution: Close the file if memory allocation fails. +Files: src/diff.c + +Patch 8.2.4625 +Problem: Old Coverity warning for resource leak. +Solution: Call FreeWild() if expanding matches did not fail. +Files: src/help.c + +Patch 8.2.4626 +Problem: Visual area not fully updated when removing sign in Visual mode + while scrolling. +Solution: Adjust check for topline. (closes #10017) +Files: src/drawscreen.c, src/testdir/test_display.vim, + src/testdir/dumps/Test_display_scroll_update_visual.dump + +Patch 8.2.4627 +Problem: flatten() does not use maxdepth correctly. +Solution: Use a recursive implementation. (closes #10020) +Files: src/list.c, src/testdir/test_flatten.vim + +Patch 8.2.4628 +Problem: Not enough testing for 2/3 letter substitute commands. +Solution: Add more tests. (Yegappan Lakshmanan, closes #10019) +Files: src/testdir/test_cmdline.vim, src/testdir/test_substitute.vim + +Patch 8.2.4629 +Problem: flattennew() makes a deep copy unnecessarily. +Solution: Use a shallow copy. (issue #10012) +Files: src/list.c + +Patch 8.2.4630 +Problem: 'cursorline' not always updated with 'cursorlineopt' is + "screenline". +Solution: Call check_redraw_cursorline() more often. (closes #10013) +Files: src/normal.c, src/edit.c, src/testdir/test_cursorline.vim, + src/testdir/dumps/Test_cursorline_screenline_1.dump, + src/testdir/dumps/Test_cursorline_screenline_2.dump + +Patch 8.2.4631 +Problem: Crash when switching window in BufWipeout autocommand. +Solution: Put any buffer in the window to avoid it being NULL. + (closes #10024) +Files: src/window.c, src/buffer.c, src/testdir/test_autocmd.vim + +Patch 8.2.4632 +Problem: Using freed memory in flatten(). +Solution: Clear typval after recursing into list. +Files: src/list.c + +Patch 8.2.4633 +Problem: Visual range does not work before command modifiers. +Solution: Move Visual range to after command modifiers. +Files: src/ex_docmd.c, src/testdir/test_source.vim + +Patch 8.2.4634 +Problem: Vim9: cannot initialize a variable to null_list. +Solution: Give negative count to NEWLIST. (closes #10027) + Also fix inconsistencies in comparing with null values. +Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9.h, + src/vim9compile.c, src/vim9expr.c, src/vim9execute.c, + src/evalvars.c, src/typval.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4635 (after 8.2.4634) +Problem: Tests using null list or dict fail. +Solution: Only use the new rules for Vim9 script. +Files: src/evalvars.c + +Patch 8.2.4636 (after 8.2.4633) +Problem: Not using Visual range. +Solution: Put the command pointer back to the range. +Files: src/ex_docmd.c + +Patch 8.2.4637 +Problem: Warning for using uninitialized variable. (Tony Mechelynck) +Solution: Initialize it. +Files: src/ex_docmd.c + +Patch 8.2.4638 +Problem: Superfluous check if a redraw is needed for 'cursorline'. +Solution: Remove check_redraw_cursorline(). (closes #10030, closes #10029) +Files: src/drawscreen.c, src/proto/drawscreen.pro, src/edit.c, + src/main.c, src/normal.c, src/move.c, + src/testdir/dumps/Test_cursorcolumn_callback_1.dump, + src/testdir/dumps/Test_relativenumber_callback_1.dump, + src/testdir/test_highlight.vim, src/testdir/test_number.vim + +Patch 8.2.4639 +Problem: Not sufficient parenthesis in preprocessor macros. +Solution: Add more parenthesis. (closes #10031) +Files: src/globals.h, src/gui.h, src/if_py_both.h, src/macros.h, + src/option.h, src/regexp.h, src/spell.h, src/structs.h, src/vim.h, + src/vim9.h + +Patch 8.2.4640 +Problem: Some boolean options use "long" instead of "int". +Solution: Adjust the type. (James McCoy, closes #10033) +Files: src/option.h + +Patch 8.2.4641 +Problem: May mark the wrong window for redrawing. +Solution: Use redraw_win_later(). (closes #10032) +Files: src/move.c + +Patch 8.2.4642 +Problem: Vim9: in :def function script var cannot be null. +Solution: Only initialize a script variable when not set to a null value. + (closes #10034) +Files: src/vim9execute.c, src/vim9type.c, src/globals.h, src/evalvars.c, + src/vim.h, src/vim9script.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4643 +Problem: Vim9: variable may be locked unintentionally. +Solution: Clear "v_lock". (closes #10036) +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4644 +Problem: Redrawing too often when 'relativenumber' is set. +Solution: Only redraw when the cursor line changed. (Lewis Russell, + closes #10040) +Files: src/change.c, src/drawscreen.c, src/structs.h + +Patch 8.2.4645 +Problem: 'shortmess' changed when session does not store options. +Solution: Save and restore 'shortmess' if needed. (James Charti, + closes #10037) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4646 +Problem: Using buffer line after it has been freed in old regexp engine. +Solution: After getting mark get the line again. +Files: src/regexp_bt.c, src/testdir/test_regexp_latin.vim + +Patch 8.2.4647 +Problem: "source" can read past end of copied line. +Solution: Add a terminating NUL. +Files: src/scriptfile.c, src/testdir/test_source.vim + +Patch 8.2.4648 +Problem: Handling LSP messages is a bit slow. +Solution: Included support for LSP messages. (Yegappan Lakshmanan, + closes #10025) +Files: runtime/doc/channel.txt, src/channel.c, src/job.c, src/json.c, + src/proto/json.pro, src/structs.h, src/testdir/test_channel.vim, + src/testdir/test_channel_lsp.py + +Patch 8.2.4649 +Problem: Various formatting problems. +Solution: Improve the code formatting. +Files: src/mark.c, src/quickfix.c, src/regexp_nfa.c, src/register.c, + src/testdir/test_filechanged.vim, src/gui_athena.c, + src/gui_motif.c, src/os_unix.c + +Patch 8.2.4650 +Problem: "import autoload" only works with using 'runtimepath'. +Solution: Also support a relative and absolute file name. +Files: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, + src/proto/scriptfile.pro, src/vim9script.c, src/vim9expr.c, + src/vim9.h, src/vim9execute.c, src/vim9instr.c, + src/proto/vim9instr.pro, src/vim.h, src/userfunc.c, + src/proto/userfunc.pro, src/testdir/test_vim9_import.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4651 (after 8.2.4650) +Problem: Test fails because path differs. +Solution: Only compare the tail of the path. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4652 (after 8.2.4650) +Problem: Leaking memory if assignment fails. +Solution: Clear assigned value on failure. +Files: src/vim9execute.c + +Patch 8.2.4653 +Problem: "import autoload" does not check the file name. +Solution: Give an error if the file is not readable. (closes #10049) +Files: src/filepath.c, src/proto/filepath.pro, src/errors.h, + src/ex_cmds.c, src/ex_docmd.c, src/spellfile.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4654 (after 8.2.4653) +Problem: Missing changes for import check. +Solution: Add missing changes. +Files: src/vim9script.c + +Patch 8.2.4655 +Problem: Command line completion popup menu positioned wrong when using a + terminal window. +Solution: Position the popup menu differently when editing the command line. + (Yegappan Lakshmanan, closes #10050, closes #10035) +Files: src/popupmenu.c, src/testdir/test_cmdline.vim, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_wildmenu_pum_term_01.dump + +Patch 8.2.4656 +Problem: Vim9: can't use items from "import autoload" with autoload + directory name. +Solution: Let sn_autoload_prefix overrule sn_import_autoload. + (closes #10054) +Files: src/structs.h, src/vim9instr.c, src/vim9expr.c, src/vim9script.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4657 +Problem: Errors for functions are sometimes hard to read. +Solution: Use printable_func_name() in more places. +Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, + src/vim9expr.c, src/eval.c, src/vim9instr.c, src/vim9type.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.4658 +Problem: Org-mode files are not recognized. +Solution: Add patterns to recognize "org" files. (closes #10046) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4659 +Problem: Invalid memory access when using printable function name. +Solution: Adjust copied name length. +Files: src/userfunc.c + +Patch 8.2.4660 +Problem: Cursorcolumn is sometimes not correct. +Solution: Recompute the cursor column when entering Insert mode and the + cursor is on a character wider than a screen cell. (closes #10057) +Files: src/edit.c, src/testdir/test_highlight.vim, + src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump, + src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump + +Patch 8.2.4661 +Problem: Coverity warning for using uninitialized variable. +Solution: Initialize variable to NULL. +Files: src/vim9expr.c + +Patch 8.2.4662 +Problem: No error for using out of range list index. +Solution: Check list index at script level like in compiled function. + (closes #10051) +Files: src/vim.h, src/evalvars.c, src/list.c, src/proto/list.pro, + src/eval.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.4663 +Problem: Occasional crash when running the GUI tests. +Solution: Check that the line index is not too high. (closes #8681) +Files: src/screen.c + +Patch 8.2.4664 +Problem: Elvish files are not recognized. +Solution: Recognize .elv files. (Bruno Roque, closes #10058) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4665 +Problem: Popup with "minwidth" and scrollbar not updated properly. +Solution: Adjust the computation if the window width. (closes #10061) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_previewpopup_4.dump, + src/testdir/dumps/Test_popupwin_previewpopup_5.dump, + src/testdir/dumps/Test_popupwin_previewpopup_7.dump, + src/testdir/dumps/Test_popupwin_previewpopup_8.dump, + src/testdir/dumps/Test_popupwin_previewpopup_9.dump, + src/testdir/dumps/Test_popupwin_previewpopup_10.dump, + src/testdir/dumps/Test_popupwin_drag_minwidth_1.dump, + src/testdir/dumps/Test_popupwin_drag_minwidth_2.dump, + src/testdir/dumps/Test_popupwin_drag_minwidth_3.dump + +Patch 8.2.4666 +Problem: Vim9: assignment not recognized in skipped block. +Solution: When skipping assume identifier exists. (closes #10059) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, + src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.4667 +Problem: expandcmd() fails on an error. +Solution: On failure return the command unmodified. (yegappan Lakshmanan, + closes #10063) +Files: runtime/doc/builtin.txt, src/evalfunc.c, + src/testdir/test_expand.vim + +Patch 8.2.4668 +Problem: Buffer allocation failures insufficiently tested. +Solution: Add tests for memory allocation failures. (Yegappan Lakshmanan, + closes #10064) +Files: src/alloc.h, src/buffer.c, src/popupwin.c, src/window.c, + src/testdir/test_buffer.vim, src/testdir/test_swap.vim + +Patch 8.2.4669 +Problem: In compiled code len('string') is not inlined. +Solution: Compute the length at compile time if possible. (closes #10065) +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9expr.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4670 +Problem: Memory allocation failures for new tab page not tested. +Solution: Add tests with failing memory allocation. (Yegappan Lakshmanan, + closes #10067) +Files: src/alloc.h, src/blob.c, src/buffer.c, src/window.c, + src/testdir/test_blob.vim, src/testdir/test_buffer.vim, + src/testdir/test_tabpage.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.4671 +Problem: 'wildignorecase' is sometimes not used for glob(). +Solution: Also use 'wildignorecase' when there are no wildcards. + (closes #10066, closes #8350) +Files: src/filepath.c, src/testdir/test_functions.vim + +Patch 8.2.4672 +Problem: Using :normal with Ex mode may make :substitute hang. +Solution: When getting an empty line behave like 'q' was typed. + (closes #10070) +Files: src/ex_cmds.c, src/testdir/test_normal.vim + +Patch 8.2.4673 +Problem: Redrawing a vertically split window is slow when using CTRL-F and + CTRL-B. +Solution: When deciding on USE_REDRAW bail out if scrolling more than three + lines. (issue #8002) +Files: src/screen.c + +Patch 8.2.4674 +Problem: Cannot force getting MouseMove events. +Solution: Add the 'mousemoveevent' option with implementaiton for the GUI. + (Ernie Rael, closes #10044) +Files: runtime/doc/gui.txt, runtime/doc/options.txt, + runtime/doc/testing.txt, src/gui.c, src/option.h, + src/optiondefs.h, src/testing.c, src/testdir/test_gui.vim + +Patch 8.2.4675 +Problem: No error for missing expression after :elseif. (Ernie Rael) +Solution: Check for missing expression. (closes #10068) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4676 (after 8.2.4675) +Problem: Test fails with different error. +Solution: Add argument to :elseif. +Files: src/testdir/test_vimscript.vim + +Patch 8.2.4677 +Problem: The Athena GUI support is outdated. +Solution: Remove the Athena GUI code. +Files: Filelist, src/Makefile, src/proto.h, src/clipboard.c, + src/gui_athena.c, src/proto/gui_athena.pro, src/gui_at_sb.c, + src/gui_at_sb.h, src/gui_at_fs.c, src/gui_motif.c, src/evalfunc.c, + src/gui.c, src/gui_beval.c, src/gui_x11.c, src/if_mzsch.c, + src/main.c, src/menu.c, src/mouse.c, src/version.c, src/feature.h, + src/gui.h, src/structs.h, src/vim.h, src/testdir/gui_init.vim, + src/testdir/setup_gui.vim, src/testdir/test_clientserver.vim, + src/testdir/test_edit.vim, src/testdir/test_gui.vim, + src/testdir/test_highlight.vim, src/testdir/test_quotestar.vim, + src/testdir/test_startup.vim, runtime/doc/gui.txt, + runtime/doc/gui_x11.txt + +Patch 8.2.4678 +Problem: Vim9: not all code is tested. +Solution: Add a few more tests. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_import.vim, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4679 +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, closes #10071) +Files: runtime/doc/builtin.txt, src/evalfunc.c, src/filepath.c, + src/testdir/test_expand.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4680 +Problem: Build failure without +postscript. +Solution: Use another error message. +Files: src/vim9execute.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4681 +Problem: Build fails with a combination of features. +Solution: Remove #ifdef for alloc_clear_id(). (John Marriott) +Files: src/alloc.c + +Patch 8.2.4682 +Problem: Vim9: can use :unlockvar for const variable. (Ernie Rael) +Solution: Check whether the variable is a const. +Files: src/ex_docmd.c, src/evalvars.c, src/vim9script.c, + src/proto/vim9script.pro, src/eval.c, src/userfunc.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.4683 +Problem: Verbose check with dict_find() to see if a key is present. +Solution: Add dict_has_key(). (Yegappan Lakshmanan, closes #10074) +Files: src/channel.c, src/dict.c, src/evalwindow.c, src/filepath.c, + src/highlight.c, src/json.c, src/match.c, src/popupwin.c, + src/proto/dict.pro, src/quickfix.c, src/search.c, src/sign.c, + src/tag.c, src/terminal.c, src/testing.c, src/textprop.c, + src/time.c + +Patch 8.2.4684 +Problem: Cannot open a channel on a Unix domain socket. +Solution: Add Unix domain socket support. (closes #10062) +Files: runtime/doc/channel.txt, src/channel.c, src/testdir/check.vim, + src/testdir/shared.vim, src/testdir/test_channel.py, + src/testdir/test_channel.vim, src/testdir/test_channel_unix.py, + src/testdir/test_cmdline.vim + +Patch 8.2.4685 +Problem: When a swap file is found for a popup there is no dialog and the + buffer is loaded anyway. +Solution: Silently load the buffer read-only. (closes #10073) +Files: runtime/doc/popup.txt, src/memline.c, src/popupwin.c, src/vim.h, + src/buffer.c, src/testdir/test_popupwin.vim + +Patch 8.2.4686 +Problem: Configure doesn't find the Motif library with Cygwin. +Solution: Check for libXm.dll.a. (Kelvin Lee, closes #10077) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.4687 +Problem: "vimgrep /\%v/ *" may cause a crash. +Solution: When compiling the pattern with the old engine fails, restore the + regprog of the new engine instead of leaving it NULL. + (closes #10079) +Files: src/regexp.c + +Patch 8.2.4688 +Problem: New regexp engine does not give an error for "\%v". +Solution: Check for a value argument. (issue #10079) +Files: src/regexp_nfa.c, src/errors.h, src/regexp_bt.c, + src/testdir/test_regexp_latin.vim + +Patch 8.2.4689 +Problem: Using in a mapping does not work for mouse keys in Insert + mode. (Sergey Vlasov) +Solution: When reading the argument do not use the stuff buffer. + (closes #10080) +Files: src/getchar.c + +Patch 8.2.4690 +Problem: Channel tests fail on MS-Windows. +Solution: Check if the AF_UNIX attribute exists. (closes #10083) +Files: src/testdir/test_channel.py, src/testdir/test_channel_unix.py + +Patch 8.2.4691 (after 8.2.4689) +Problem: Solution for in a mapping causes trouble. +Solution: Use another solution: put back CTRL-O after reading the + sequence. +Files: src/getchar.c + +Patch 8.2.4692 +Problem: No test for what 8.2.4691 fixes. +Solution: Add a test. Use a more generic sotlution. (closes #10090) +Files: src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim + +Patch 8.2.4693 (after 8.2.4688) +Problem: new regexp does not accept pattern "\%>0v". +Solution: Do accept digit zero. +Files: src/regexp_bt.c, src/regexp_nfa.c, + src/testdir/test_regexp_latin.vim + +Patch 8.2.4694 +Problem: Avoidance of #elif causes more preproc nesting. +Solution: Use #elif where it is useful. (Ozaki Kiichi, closes #10081) +Files: src/option.c, src/optiondefs.h, src/optionstr.c, src/version.c + +Patch 8.2.4695 +Problem: JSON encoding could be faster. +Solution: Optimize encoding JSON strings. (closes #10086) +Files: src/json.c, src/testdir/test_json.vim + +Patch 8.2.4696 +Problem: delete() with "rf" argument does not report a failure. +Solution: Return -1 if the directory could not be removed. (closes #10078) +Files: src/fileio.c, src/testdir/test_functions.vim + +Patch 8.2.4697 +Problem: Vim9: crash when adding a duplicate key to a dictionary. +Solution: Clear the stack item when it has been moved into the dictionary. + (closes #10087) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4698 +Problem: Vim9: script variable has no flag that it was set. +Solution: Add a flag that it was set, to avoid giving it a value when used. + (closes #10088) +Files: src/structs.h, src/vim9script.c, src/vim9execute.c, + src/evalvars.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4699 +Problem: Hard to reproduce hang when reading from a channel. +Solution: Check for readahead before starting to wait. (closes #10093, + closes #7781, closes #6364) +Files: src/channel.c + +Patch 8.2.4700 +Problem: Buffer remains active if a WinClosed event throws an exception. +Solution: Ignore aborting() when closing the buffer. (closes #10097) +Files: src/window.c, src/testdir/test_autocmd.vim + +Patch 8.2.4701 +Problem: Kuka Robot Language files not recognized. +Solution: Recognize *.src and *.dat files. (Patrick Meiser-Knosowski, + closes #10096) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim, + runtime/autoload/dist/ft.vim + +Patch 8.2.4702 +Problem: C++ scope labels are hard-coded. +Solution: Add 'cinscopedecls' to define the labels. (Rom Praschan, + closes #10109) +Files: runtime/doc/indent.txt, runtime/doc/options.txt, + runtime/doc/quickref.txt, runtime/optwin.vim, src/buffer.c, + src/cindent.c, src/option.c, src/option.h, src/optiondefs.h, + src/optionstr.c, src/structs.h, src/testdir/test_cindent.vim + +Patch 8.2.4703 (after 8.2.4702) +Problem: Memory leak in handling 'cinscopedecls'. +Solution: Free the memory before returning. +Files: src/cindent.c + +Patch 8.2.4704 +Problem: Using "else" after return or break increases indent. +Solution: Remove "else" and reduce indent. (Goc Dundar, closes #10099) +Files: src/fileio.c, src/memline.c, src/option.c, src/syntax.c + +Patch 8.2.4705 +Problem: reg_executing may not be cleared. +Solution: Reset reg_executing later. (closes #10111, closes #10110) +Files: src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h, + src/testdir/test_registers.vim + +Patch 8.2.4706 +Problem: Buffer remains active if a WinClosed event throws an exception + when there are multiple tabpages. +Solution: Ignore aborting() when closing the buffer. (closes #10101) +Files: src/window.c, src/testdir/test_autocmd.vim + +Patch 8.2.4707 +Problem: Redrawing could be a bit more efficient. +Solution: Optimize redrawing. (closes #10105) +Files: src/change.c, src/edit.c, src/testdir/test_highlight.vim, + src/testdir/dumps/Test_cursorcolumn_insert_on_tab_3.dump + +Patch 8.2.4708 +Problem: PHP test files are not recognized. +Solution: Add the *.phpt pattern. (Julien Voisin, closes #10112) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4709 +Problem: After :redraw the statusline highlight might be used. +Solution: Clear the screen attribute after redrawing the screen. + (closes #10108) +Files: src/ex_docmd.c + +Patch 8.2.4710 +Problem: Smart indenting does not work after completion. +Solution: Set "can_si". (Christian Brabandt, closes #10113, closes #558) +Files: src/edit.c, src/testdir/test_ins_complete.vim + +Patch 8.2.4711 +Problem: When 'insermode' is set :edit from mapping misbehaves. +Solution: Don't set "need_start_insertmode" when already in Insert mode. + (closes #10116) +Files: src/ex_cmds.c, src/testdir/test_edit.vim + +Patch 8.2.4712 +Problem: Only get profiling information after exiting. +Solution: Add "profile dump" and "profile stop". (Marco Hinz, Yegappan + Lakshmanan, closes #10107) +Files: runtime/doc/repeat.txt, src/profiler.c, + src/testdir/test_profile.vim + +Patch 8.2.4713 +Problem: Plugins cannot track text scrolling. +Solution: Add the WinScrolled event. (closes #10102) +Files: runtime/doc/autocmd.txt, src/autocmd.c, src/proto/autocmd.pro, + src/edit.c, src/gui.c, src/main.c, src/structs.h, src/vim.h, + src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim + +Patch 8.2.4714 +Problem: Using g:filetype_dat and g:filetype_src not tested. +Solution: Add a test. (Patrick Meiser-Knosowski, closes #10117) +Files: src/testdir/test_filetype.vim + +Patch 8.2.4715 +Problem: Vagrantfile not recognized. +Solution: Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4716 +Problem: Memory allocation failure not tested when defining a function. +Solution: Add a test. (Yegappan Lakshmanan, closes #10127) +Files: src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c, + src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.4717 +Problem: For TextYankPost v:event does not contain information about the + operation being inclusive or not. +Solution: Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan, + closes #10125) +Files: runtime/doc/autocmd.txt, src/register.c, + src/testdir/test_autocmd.vim + +Patch 8.2.4718 +Problem: @@@ in the last line sometimes drawn in the wrong place. +Solution: Make sure the column is valid. (closes #10130) +Files: src/drawscreen.c, src/screen.c, src/testdir/test_display.vim + src/testdir/dumps/Test_display_lastline_1.dump, + src/testdir/dumps/Test_display_lastline_2.dump, + src/testdir/dumps/Test_display_lastline_3.dump, + src/testdir/dumps/Test_display_lastline_4.dump + +Patch 8.2.4719 +Problem: ">" marker sometimes not displayed in the jumplist. +Solution: If the buffer no longer exists show "-invalid-". (Christian + Brabandt, closes #10131, closes #10100) +Files: runtime/doc/motion.txt, src/mark.c, src/testdir/Make_all.mak, + src/testdir/test_alot.vim, src/testdir/test_jumplist.vim, + src/testdir/test_jumps.vim + +Patch 8.2.4720 +Problem: ABB Rapid files are not recognized properly. +Solution: Add checks for ABB Rapid files. (Patrick Meiser-Knosowski, + closes #10104) +Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, + runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4721 +Problem: Cooklang files are not recognized. +Solution: recognize *.cook files. (Goc Dundar, closes #10120) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4722 +Problem: When a recording is ended with a mapped key that key is also + recorded. +Solution: Remember the previous last_recorded_len. (closes #10122) +Files: src/getchar.c, src/testdir/test_registers.vim + +Patch 8.2.4723 +Problem: The ModeChanged autocmd event is inefficient. +Solution: Avoid allocating memory. (closes #10134) Rename + trigger_modechanged() to may_trigger_modechanged(). +Files: src/misc1.c, src/proto/misc1.pro, src/edit.c, src/ex_docmd.c, + src/ex_getln.c, src/insexpand.c, src/normal.c, src/terminal.c, + src/autocmd.c + +Patch 8.2.4724 +Problem: Current instance of last search pattern not easily spotted. +Solution: Add CurSearch highlighting. (closes #10133) +Files: runtime/doc/options.txt, runtime/doc/syntax.txt, src/highlight.c, + src/match.c, src/normal.c, src/optiondefs.h, src/structs.h, + src/vim.h, src/normal.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, + src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump, + src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump, + src/testdir/dumps/Test_hlsearch_cursearch_single_line_3.dump + +Patch 8.2.4725 (after 8.2.4724) +Problem: Unused variable in tiny build. +Solution: Add #ifdef. +Files: src/normal.c + +Patch 8.2.4726 +Problem: Cannot use expand() to get the script name. +Solution: Support expand('