Mercurial > vim
changeset 29236:0eef32b4ebbc
Update runtime files
Commit: https://github.com/vim/vim/commit/d799daa660b8821943cbe1682f00da9e812dd48c
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jun 20 11:17:32 2022 +0100
Update runtime files
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 20 Jun 2022 12:30:06 +0200 |
parents | fbcbc953c2ec |
children | c7aa0c46acd5 |
files | runtime/autoload/dist/man.vim runtime/doc/builtin.txt runtime/doc/eval.txt runtime/doc/map.txt runtime/doc/repeat.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version9.txt runtime/doc/visual.txt runtime/ftplugin/man.vim runtime/indent/confini.vim runtime/indent/systemd.vim runtime/indent/yaml.vim runtime/lang/menu_it_it.latin1.vim runtime/syntax/vim.vim |
diffstat | 15 files changed, 4675 insertions(+), 329 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/runtime/autoload/dist/man.vim @@ -0,0 +1,196 @@ +" Vim filetype plugin autoload file +" Language: man +" Maintainer: Jason Franklin <vim@justemail.net> +" Maintainer: SungHyun Nam <goweol@gmail.com> +" 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("<cword>") + 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("<cword>") + 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 <cword> + if page == '<cword>' + let page = expand('<cword>') + 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! \<C-W>b" + if winnr() > 1 + exe "norm! " . thiswin . "\<C-W>w" + while 1 + if &filetype == "man" + break + endif + exe "norm! \<C-W>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:
--- 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}) *fnamemo 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() <
--- 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 th 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
--- 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 <C-K> <Esc> -< 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 <C-K> <Esc> -< + *E1255* *E1136* <Cmd> and <ScriptCmd> commands must terminate, that is, they must be followed by <CR> in the {rhs} of the mapping definition. |Command-line| mode is never
--- 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 :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.
--- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -3197,6 +3197,7 @@ 90.5 usr_90.txt /*90.5* :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 /*SpellFile 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*
--- 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/ *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 afte 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 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" 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 cur 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
--- 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|, |ver 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 <MouseMove> '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* +Various small and useful improvements have been made since Vim 8.2. Here is a +collection of changes that are worth mentioning. + Many memory leaks, invalid memory accesses and crashes have been fixed. -See the list of patches below. - -TODO +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 +|<Cmd>| and |<ScriptCmd>|. + +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('<SID>'). |expand()| + +Jump to the last accessed tab page using |g<Tab>|. + +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 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 <Plug> with "noremap" does not work. +Solution: Always remap <Plug>. (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 "<SNR>" 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 <Esc> terminal codes are not recognized. +Solution: Specifically recognize a mapping with just <Esc> 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 <Cmd> in a mapping does not work for mouse keys in Insert + mode. (Sergey Vlasov) +Solution: When reading the <Cmd> 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 <Cmd> in a mapping causes trouble. +Solution: Use another solution: put back CTRL-O after reading the <Cmd> + 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 <Cmd> 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('<script>'). (closes #10121) +Files: runtime/doc/cmdline.txt, src/errors.h, src/ex_docmd.c, + src/scriptfile.c, src/vim.h, src/testdir/test_expand.vim + +Patch 8.2.4727 +Problem: Unused code. +Solution: Remove code and add #ifdefs. (Dominique PellÃĐ, closes #10136) +Files: runtime/doc/editing.txt, runtime/doc/eval.txt, + runtime/doc/vim9.txt, src/errors.h, src/option.c, src/search.c, + src/proto/search.pro + +Patch 8.2.4728 +Problem: No test that v:event cannot be modified. +Solution: Add a test. (closes #10139) +Files: src/testdir/test_autocmd.vim + +Patch 8.2.4729 +Problem: HEEx and Surface templates do not need a separate filetype. +Solution: Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4730 +Problem: MS-Windows GUI: cannot use CTRL-/. +Solution: Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141) +Files: src/gui_w32.c + +Patch 8.2.4731 +Problem: The changelist index is not remembered per buffer. +Solution: Keep the changelist index per window and buffer. (closes #10135, + closes #2173) +Files: src/buffer.c, src/evalfunc.c, src/structs.h, + src/testdir/test_changelist.vim + +Patch 8.2.4732 +Problem: Duplicate code to free fuzzy matches. +Solution: Bring back fuzmatch_str_free(). +Files: src/search.c, src/proto/search.pro, src/cmdexpand.c + +Patch 8.2.4733 (after 8.2.4729) +Problem: HEEx and Surface do need a separate filetype. +Solution: Revert 8.2.4729. (closes #10147) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4734 +Problem: getcharpos() may change a mark position. +Solution: Copy the mark position. (closes #10148) +Files: src/eval.c, src/testdir/test_cursor_func.vim + +Patch 8.2.4735 +Problem: Quickfix tests can be a bit hard to read. +Solution: Use heredoc instead of strings and line continuation. (Yegappan + Lakshmanan, closes #10145) +Files: src/testdir/test_quickfix.vim + +Patch 8.2.4736 +Problem: Build problem for Cygwin with Motif. +Solution: Undefine ControlMask. (Kelvin Lee, closes #10152) +Files: src/mbyte.c + +Patch 8.2.4737 +Problem: // in JavaScript string recognized as comment. +Solution: Only check for linecomment if 'cindent' is set. (closes #10151) +Files: src/change.c, src/testdir/test_textformat.vim + +Patch 8.2.4738 +Problem: Esc on commandline executes command instead of abandoning it. +Solution: Save and restore KeyTyped when removing the popup menu. + (closes #10154) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_1.dump, + src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_2.dump + +Patch 8.2.4739 +Problem: Accessing freed memory after WinScrolled autocmd event. +Solution: Check the window pointer is still valid. (closes #10156) + Remove the argument from may_trigger_winscrolled(). +Files: src/window.c, src/proto/window.pro, src/edit.c, src/gui.c, + src/main.c, src/testdir/test_autocmd.vim + +Patch 8.2.4740 +Problem: When expand() fails there is no error message. +Solution: When 'verbose' is set give an error message. +Files: runtime/doc/builtin.txt, src/evalfunc.c, + src/testdir/test_expand.vim + +Patch 8.2.4741 (after 8.2.4740) +Problem: Startup test fails. +Solution: Avoid an error for verbose expansion. Fix that the "0verbose" + command modifier doesn't work. +Files: runtime/syntax/syntax.vim, runtime/syntax/synload.vim, + src/structs.h, src/ex_docmd.c, src/testdir/test_excmd.vim + +Patch 8.2.4742 +Problem: There is no way to start logging very early in startup. +Solution: Add the --log argument. Include the date in the start message in + the log file. Avoid a duplicate message when forking. Log an + executed shell command. +Files: runtime/doc/starting.txt, runtime/doc/channel.txt, + src/main.c, src/channel.c, src/os_unix.c, src/os_win32.c, + src/testdir/test_startup.vim + +Patch 8.2.4743 +Problem: Clang 14 is available on CI. +Solution: Switch from clang 13 to 14. (closes #10157) +Files: .github/workflows/ci.yml + +Patch 8.2.4744 +Problem: A terminal window can't use the bell. +Solution: Add bell support for the terminal window. (closes #10178) +Files: runtime/doc/options.txt, src/gui_w32.c, src/option.h, + src/optionstr.c, src/terminal.c + +Patch 8.2.4745 (after 8.2.4744) +Problem: Using wrong flag for using bell in the terminal. +Solution: Change to use BO_TERM. +Files: src/terminal.c, src/misc1.c + +Patch 8.2.4746 +Problem: Supercollider filetype not recognized. +Solution: Match file extentions and check file contents to detect + supercollider. (closes #10142) +Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4747 +Problem: No filetype override for .sys files. +Solution: Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181) +Files: runtime/doc/filetype.txt, runtime/autoload/dist/ft.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4748 +Problem: Cannot use an imported function in a mapping. +Solution: Recognize <SID>name.Func. +Files: runtime/doc/vim9.txt, src/term.c, src/vim9execute.c, + src/proto/vim9execute.pro, src/scriptfile.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4749 +Problem: <script> is not expanded in autocmd context. +Solution: Add the context to the pattern struct. (closes #10144) + Rename AutoPatCmd to AutoPatCmd_T. +Files: src/autocmd.c, src/proto/autocmd.pro, src/scriptfile.c, + src/structs.h, src/testdir/test_expand.vim + +Patch 8.2.4750 +Problem: Small pieces of dead code. +Solution: Remove the dead code. (Goc Dundar, closes #10190) Rename the + qftf_cb struct member to avoid confusion. +Files: src/ex_cmds.c, src/misc1.c, src/optionstr.c, src/quickfix.c + +Patch 8.2.4751 (after 8.2.4748) +Problem: Mapping <SID>name.Func does not work for script in autoload + directory. +Solution: Use the # form for a script in the autoload directory. + (closes #10186) +Files: src/term.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4752 +Problem: Wrong 'statusline' value can cause illegal memory access. +Solution: Properly check the value. (closes #10192) +Files: src/optionstr.c, src/testdir/test_options.vim + +Patch 8.2.4753 +Problem: Error from setting an option is silently ignored. +Solution: Handle option value errors better. Fix uses of N_(). +Files: src/option.c, src/proto/option.pro, src/optionstr.c, + src/channel.c, src/crypt.c, src/diff.c, src/edit.c, + src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, + src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c, + src/gui_gtk_x11.c, src/help.c, src/highlight.c, src/if_tcl.c, + src/main.c, src/memline.c, src/message_test.c, + src/popupmenu.c, src/quickfix.c, src/scriptfile.c, src/spell.c, + src/spellfile.c, src/term.c, src/undo.c, src/vim9script.c + +Patch 8.2.4754 +Problem: Still using cached values after unsetting some known environment + variables. +Solution: Take care of the side effects. (closes #10194) +Files: src/evalfunc.c, src/evalvars.c, src/misc1.c, src/proto/misc1.pro, + src/vim9execute.c, src/optionstr.c, src/testdir/test_environ.vim + +Patch 8.2.4755 +Problem: Cannot use <SID>FuncRef in completion spec. +Solution: Dereference a function name in another way. (closes #10197) +Files: src/eval.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4756 (after 8.2.4754) +Problem: Build error without the +eval feature. +Solution: Adjust #ifdefs. +Files: src/misc1.c + +Patch 8.2.4757 +Problem: List of libraries to suppress lsan errors is outdated. +Solution: Add another library. (closes #10201) +Files: src/testdir/lsan-suppress.txt + +Patch 8.2.4758 +Problem: When using an LSP channel want to get the message ID. +Solution: Have ch_sendexpr() return the ID. (Yegappan Lakshmanan, + closes #10202) +Files: runtime/doc/channel.txt, src/channel.c, src/evalfunc.c, + src/testdir/test_channel.vim + +Patch 8.2.4759 +Problem: CurSearch highlight does not work for multi-line match. +Solution: Check cursor position before adjusting columns. (closes #10133) +Files: src/structs.h, src/match.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_1.dump, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_2.dump, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_3.dump, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_4.dump, + src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_5.dump + +Patch 8.2.4760 +Problem: Using matchfuzzy() on a long list can take a while. +Solution: Add a limit to the number of matches. (Yasuhiro Matsumoto, + closes #10189) +Files: runtime/doc/builtin.txt, src/search.c, + src/testdir/test_matchfuzzy.vim + +Patch 8.2.4761 +Problem: Documentation for using LSP messages is incomplete. +Solution: Update the documentation. (Yegappan Lakshmanan, closes #10206) +Files: runtime/doc/channel.txt + +Patch 8.2.4762 +Problem: Using freed memory when using synstack() and synID() in WinEnter. +Solution: Check using the syntax window. (closes #10204) +Files: src/syntax.c, src/testdir/test_syntax.vim + +Patch 8.2.4763 +Problem: Using invalid pointer with "V:" in Ex mode. +Solution: Correctly handle the command being changed to "+". +Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim + +Patch 8.2.4764 +Problem: CI uses an older gcc version. +Solution: Use GCC 11. (closes #10185) +Files: .github/workflows/ci.yml, src/testdir/lsan-suppress.txt + +Patch 8.2.4765 +Problem: Function matchfuzzy() sorts too many items. +Solution: Only put matches in the array. (Yegappan Lakshmanan, + closes #10208) +Files: src/search.c + +Patch 8.2.4766 +Problem: KRL files using "deffct" not recognized. +Solution: Adjust the pattern used for matching. (Patrick Meiser-Knosowski, + closes #10200) +Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim + +Patch 8.2.4767 +Problem: Openscad files are not recognized. +Solution: Add a filetype pattern. (Niklas Adam, closes #10199) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4768 +Problem: CI: codecov upload sometimes does not work. +Solution: Use action v3 instead of v2. (closes #10209) +Files: .github/workflows/ci.yml + +Patch 8.2.4769 +Problem: Build warning with UCRT. +Solution: Adjust #ifdef for _wenviron. (John Marriott) +Files: src/evalfunc.c + +Patch 8.2.4770 +Problem: Cannot easily mix expression and heredoc. +Solution: Support `=expr` in heredoc. (Yegappan Lakshmanan, closes #10138) +Files: runtime/doc/eval.txt, src/evalvars.c, src/userfunc.c, + src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim + +Patch 8.2.4771 +Problem: Coverity warns for not checking return value. +Solution: Check return value of rettv_dict_alloc(). +Files: src/channel.c + +Patch 8.2.4772 +Problem: Old Coverity warning for not checking ftell() return value. +Solution: Check return value of fseek() and ftell(). +Files: src/misc1.c + +Patch 8.2.4773 +Problem: Build failure without the +eval feature. +Solution: Use other error message. Avoid warnings. +Files: src/misc1.c, src/cindent.c, src/term.c + +Patch 8.2.4774 +Problem: Crash when using a number for lambda name. +Solution: Check the type of the lambda reference. +Files: src/eval.c, src/errors.h, src/testdir/test_lambda.vim + +Patch 8.2.4775 +Problem: SpellBad highlighting does not work in Konsole. +Solution: Do not keep t_8u defined for Konsole. Redraw when t_8u is reset. + (closes #10177) +Files: src/term.c + +Patch 8.2.4776 +Problem: GTK: 'lines' and 'columns' may change during startup. +Solution: Ignore stale GTK resize events. (Ernie Rael, closes #10179) +Files: src/gui_gtk_x11.c + +Patch 8.2.4777 (after 8.2.4775) +Problem: Screendump tests fail because of a redraw. +Solution: Do not output t_8u before receiving termresponse. Redraw only + when t_8u is not reset and termresponse is received. +Files: src/term.c + +Patch 8.2.4778 +Problem: Pacman files use dosini filetype. +Solution: Use conf instead. (Chaoren Lin, closes #10213) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4779 +Problem: lsan suppression is too version specific. +Solution: Leave out the version number. (Christian Brabandt, closes #10214) +Files: src/testdir/lsan-suppress.txt + +Patch 8.2.4780 +Problem: Parsing an LSP message fails when it is split. +Solution: Collapse the received data before parsing. (Yegappan Lakshmanan, + closes #10215) +Files: runtime/doc/channel.txt, src/channel.c, + src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py + +Patch 8.2.4781 +Problem: Maxima files are not recognized. +Solution: Add patterns to detect Maxima files. (Doron Behar, closes #10211) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4782 +Problem: Accessing freed memory. +Solution: Clear evalarg after checking for trailing characters. + (issue #10218) +Files: src/userfunc.c, src/testdir/test_lambda.vim + +Patch 8.2.4783 +Problem: Coverity warns for leaking memory. +Solution: Use another strategy freeing "theline". +Files: src/evalvars.c + +Patch 8.2.4784 +Problem: Lamba test with timer is flaky. +Solution: Adjust sleep time on retry. +Files: src/testdir/test_lambda.vim + +Patch 8.2.4785 +Problem: Visual mode not stopped early enough if win_gotoid() goes to + another buffer. (Sergey Vlasov) +Solution: Stop Visual mode before jumping to another buffer. (closes #10217) +Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, + src/testdir/dumps/Test_win_gotoid_1.dump, + src/testdir/dumps/Test_win_gotoid_2.dump, + src/testdir/dumps/Test_win_gotoid_3.dump + +Patch 8.2.4786 (after 8.2.4785) +Problem: Test for win_gotoid() in Visual mode fails on Mac. +Solution: Skip the test on MacOS. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.4787 +Problem: prop_find() does not find the right property. +Solution: Fix the scan order. (closes #10220) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.4788 +Problem: Large payload for LSP message not tested. +Solution: Add a test with a large LSP payload. (Yegappan Lakshmanan, + closes #10223) +Files: src/channel.c, src/testdir/test_channel.vim, + src/testdir/test_channel_lsp.py + +Patch 8.2.4789 +Problem: The cursor may be in the in wrong place when using :redraw while + editing the cmdline. +Solution: When editing the command line let :redraw update the command line + too. (closes #10210) +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_redraw_in_autocmd_1.dump, + src/testdir/dumps/Test_redraw_in_autocmd_2.dump + +Patch 8.2.4790 +Problem: Lilypond filetype not recognized. +Solution: Add patterns for lilypond. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4791 +Problem: Autocmd events triggered in different order when reusing an empty + buffer. +Solution: Call buff_freeall() earlier. (Charlie Groves, closes #10198) +Files: src/buffer.c, src/testdir/test_autocmd.vim + +Patch 8.2.4792 +Problem: Indent operator creates an undo entry for every line. +Solution: Create one undo entry for all lines. (closes #10227) +Files: src/indent.c, src/testdir/test_indent.vim + +Patch 8.2.4793 +Problem: Recognizing Maxima filetype even though it might be another. +Solution: Remove *.mc and *.dem patterns from Maxima files +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4794 +Problem: Compiler warning for not initialized variable. +Solution: Initialize the variable. (John Marriott) +Files: src/indent.c + +Patch 8.2.4795 +Problem: 'cursorbind' scrolling depends on whether 'cursorline' is set. +Solution: Always call validate_cursor(). (Christian Brabandt, closes #10230, + closes #10014) +Files: src/move.c, src/testdir/README.txt, + src/testdir/test_cursorline.vim, + src/testdir/dumps/Test_hor_scroll_1.dump, + src/testdir/dumps/Test_hor_scroll_2.dump, + src/testdir/dumps/Test_hor_scroll_3.dump, + src/testdir/dumps/Test_hor_scroll_4.dump + +Patch 8.2.4796 (after 8.2.4795) +Problem: File left behind after running cursorline tests. +Solution: Uncomment the line that deletes the file. +Files: src/testdir/test_cursorline.vim + +Patch 8.2.4797 +Problem: getwininfo() may get oudated values. +Solution: Make sure w_botline is up-to-date. (closes #10226) +Files: src/evalwindow.c, src/testdir/test_bufwintabinfo.vim + +Patch 8.2.4798 +Problem: t_8u option was reset even when set by the user. +Solution: Only reset t_8u when using the default value. (closes #10239) +Files: src/term.c + +Patch 8.2.4799 +Problem: Popup does not use correct topline. +Solution: Also add one when firstline is negative. (closes #10229) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.4800 (after 8.2.4798) +Problem: Missing test update for adjusted t_8u behavior. +Solution: Update and extend the test. +Files: src/testdir/test_termcodes.vim + +Patch 8.2.4801 (after 8.2.4795) +Problem: Fix for cursorbind fix not fully tested. +Solution: Add another test case. (Christian Brabandt, closes #10240) +Files: src/testdir/test_cursorline.vim, + src/testdir/dumps/Test_hor_scroll_5.dump + +Patch 8.2.4802 +Problem: Test is not cleaned up. +Solution: Make test clean up after itself. Avoid NUL. (closes #10233) +Files: src/testdir/test_autocmd.vim + +Patch 8.2.4803 +Problem: WinScrolled not always triggered when scrolling with the mouse. +Solution: Add calls to may_trigger_winscrolled(). (closes #10246) +Files: src/mouse.c, src/testdir/test_autocmd.vim + +Patch 8.2.4804 +Problem: Expression in heredoc doesn't work for compiled function. +Solution: Implement compiling the heredoc expressions. (Yegappan Lakshmanan, + closes #10232) +Files: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, + src/ex_getln.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4805 +Problem: CurSearch used for all matches in current line. +Solution: Don't use the non-zero line count. (closes #10247) +Files: src/match.c, src/testdir/test_search.vim, + 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_2a.dump, + src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump + +Patch 8.2.4806 +Problem: A mapping using <LeftDrag> does not start Select mode. +Solution: When checking for starting select mode with the mouse also do this + when there is typeahead. (closes #10249) +Files: src/normal.c + +Patch 8.2.4807 +Problem: Processing key events in Win32 GUI is not ideal. +Solution: Improve processing of key events. (closes #10155) +Files: src/gui_w32.c + +Patch 8.2.4808 +Problem: Unused item in engine struct. +Solution: Remove "expr". Add comment with tags. +Files: src/regexp.h + +Patch 8.2.4809 +Problem: Various things not properly tested. +Solution: Add various test cases. (Yegappan Lakshmanan, closes #10259) +Files: src/testdir/test_blob.vim, src/testdir/test_debugger.vim, + src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.4810 (after 8.2.4808) +Problem: Missing changes in one file. +Solution: Also change the struct initializers. +Files: src/regexp.c + +Patch 8.2.4811 (after 8.2.4807) +Problem: Win32 GUI: caps lock doesn't work. +Solution: Handle VK_CAPITAL. (closes #10260, closes #10258) +Files: src/gui_w32.c + +Patch 8.2.4812 +Problem: Unused struct item. +Solution: Remove "lines" match_T. Simplify the code. (closes #10256) +Files: src/match.c, src/structs.h + +Patch 8.2.4813 +Problem: Pasting text while indent folding may mess up folds. +Solution: Adjust the way folds are split. (Brandon Simmons, closes #10254) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.4814 +Problem: Possible to leave a popup window with win_gotoid(). +Solution: Give an error when trying to leave a popup window with + win_gotoid(). (closes #10253) +Files: src/evalwindow.c, src/testdir/test_terminal3.vim + +Patch 8.2.4815 (after 8.2.4776) +Problem: Cannot build with older GTK version. +Solution: Use gtk_window_get_size() instead of gdk_window_get_width() and + gdk_window_get_height(). (Ernie Rael, closes #10257) +Files: src/gui_gtk_x11.c + +Patch 8.2.4816 +Problem: Still using older codecov app in some places of CI. +Solution: Use v3.1.0. (closes #10209) +Files: .github/workflows/ci.yml + +Patch 8.2.4817 +Problem: Win32 GUI: modifiers are not always used. +Solution: Handle more modifiers. (closes #10269) +Files: src/gui_w32.c + +Patch 8.2.4818 (after 8.2 4806) +Problem: No test for what 8.2.4806 fixes. +Solution: Add a test. (closes #10272) +Files: src/testdir/test_mapping.vim + +Patch 8.2.4819 +Problem: Unmapping simplified keys also deletes other mapping. +Solution: Only unmap a mapping with m_simplified set. (closes #10270) +Files: src/map.c, src/testdir/test_mapping.vim + +Patch 8.2.4820 +Problem: No simple programmatic way to find a specific mapping. +Solution: Add getmappings(). (Ernie Rael, closes #10273) +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim + +Patch 8.2.4821 +Problem: Crash when imported autoload script was deleted. +Solution: Initialize local variable. (closes #10274) Give a more meaningful + error message. +Files: src/eval.c, src/vim9script.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4822 +Problem: Setting ufunc to NULL twice. +Solution: Set ufunc to NULL in find_exported(). (closes #19275) +Files: src/eval.c, src/vim9script.c + +Patch 8.2.4823 +Problem: Concatenating more than 2 strings in a :def function is + inefficient. +Solution: Add a count to the CONCAT instruction. (closes #10276) +Files: src/vim9.h, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c, + src/vim9expr.c, src/vim9instr.c, src/proto/vim9instr.pro, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4824 +Problem: Expression is evaluated multiple times. +Solution: Evaluate expression once and store the result. (closes #10278) +Files: src/map.c + +Patch 8.2.4825 +Problem: Can only get a list of mappings. +Solution: Add the optional {abbr} argument. (Ernie Rael, closes #10277) + Rename to maplist(). Rename test file. +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim, + src/testdir/test_map_functions.vim, src/testdir/Make_all.mak + +Patch 8.2.4826 +Problem: .cshtml files are not recognized. +Solution: Use html filetype for .cshtml files. (Julien Voisin, closes #10212) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4827 +Problem: Typo in variable name. (Gabriel Dupras) +Solution: Rename the variable. +Files: src/map.c + +Patch 8.2.4828 +Problem: Fix for unmapping simplified key not fully tested. +Solution: Add a test case. (closes #10292) +Files: src/map.c, src/testdir/test_mapping.vim + +Patch 8.2.4829 +Problem: A key may be simplified to NUL. +Solution: Use K_ZERO instead. Use macros instead of hard coded values. + (closes #10290) +Files: src/getchar.c, src/misc2.c, src/testdir/test_termcodes.vim + +Patch 8.2.4830 +Problem: Possible endless loop if there is unused typahead. +Solution: Only loop when the typeahead changed. +Files: src/channel.c + +Patch 8.2.4831 +Problem: Crash when using maparg() and unmapping simplified keys. +Solution: Do not keep a mapblock pointer. (closes #10294) +Files: src/map.c, src/testdir/test_map_functions.vim + +Patch 8.2.4832 +Problem: Passing zero instead of NULL to a pointer argument. +Solution: Use NULL. (closes #10296) +Files: src/getchar.c, src/term.c + +Patch 8.2.4833 +Problem: Failure of mapping not checked for. +Solution: Check return value of ins_typebuf(). (closes #10299) +Files: src/getchar.c, src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.4834 +Problem: Vim9: some lines not covered by tests. +Solution: Add a few more tests. Remove dead code. +Files: src/vim9execute.c, src/vim9instr.c, src/vim9.h, + src/testdir/test_vim9_expr.vim + +Patch 8.2.4835 +Problem: Vim9: some lines not covered by tests. +Solution: Add a few more tests. Fix disassemble output. +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4836 +Problem: Vim9: some lines not covered by tests. +Solution: Remove dead code. Add disassemble tests. +Files: src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4837 (after patch 8.2.0919 +Problem: Modifiers not simplified when timed out or using feedkeys() with + 'n" flag. +Solution: Adjust how mapped flag and timeout are used. (closes #10305) +Files: src/getchar.c, src/testdir/test_paste.vim, + src/testdir/test_termcodes.vim + +Patch 8.2.4838 +Problem: Checking for absolute path is not trivial. +Solution: Add isabsolutepath(). (closes #10303) +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/filepath.c, src/proto/filepath.pro, + src/testdir/test_functions.vim + +Patch 8.2.4839 +Problem: Compiler warning for unused argument. +Solution: Add "UNUSED". +Files: src/gui_gtk_x11.c + +Patch 8.2.4840 +Problem: Heredoc expression evaluated even when skipping. +Solution: Don't evaluate when "skip" is set. (closes #10306) +Files: src/evalvars.c, src/testdir/test_let.vim + +Patch 8.2.4841 +Problem: Empty string considered an error for expand() when 'verbose' is + set. (Christian Brabandt) +Solution: Do not give an error for an empty result. (closes #10307) +Files: src/evalfunc.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/filepath.c, src/testdir/test_expand_func.vim + +Patch 8.2.4842 (after 8.2.4841) +Problem: expand("%:p") is not empty when there is no buffer name. +Solution: When ignoring errors still return NULL. (closes #10311) +Files: src/ex_docmd.c, src/testdir/test_expand_func.vim + +Patch 8.2.4843 (after 8.2.4807) +Problem: Win32 GUI: Treating CTRL + ALT as AltGr is not backwards + compatible. (Axel Bender) +Solution: Make a difference between left and right menu keys. + (closes #10308) +Files: src/gui_w32.c + +Patch 8.2.4844 +Problem: <C-S-I> is simplified to <S-Tab>. +Solution: Do not simplify CTRL if there is also SHIFT. (closes #10313) +Files: src/getchar.c, src/testdir/test_gui.vim + +Patch 8.2.4845 +Problem: Duplicate code. +Solution: Move code below if/else. (closes #10314) +Files: src/misc1.c + +Patch 8.2.4846 (after 8.2.4844) +Problem: Termcodes test fails. +Solution: use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316) +Files: runtime/doc/cmdline.txt, src/edit.c, src/getchar.c, + src/testdir/test_gui.vim + +Patch 8.2.4847 +Problem: Crash when using uninitialized function pointer. +Solution: Check for NULL pointer. (closes #10319, closes #10319) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4848 +Problem: Local completion with mappings and simplification not working. +Solution: Fix local completion <C-N>/<C-P> mappings not ignored if keys are + not simplified. (closes #10323) +Files: src/getchar.c, src/testdir/test_popup.vim + +Patch 8.2.4849 +Problem: Gleam filetype not detected. +Solution: Add a pattern for Gleam files. (Mathias Jean Johansen, + closes #10326) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4850 +Problem: Mksession mixes up "tabpages" and "curdir" arguments. +Solution: Correct logic for storing tabpage in session. (closes #10312) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4851 +Problem: Compiler warning for uninitialized variable. +Solution: Use another variable to decide to restore option values. +Files: src/session.c + +Patch 8.2.4852 +Problem: ANSI color index to RGB value not correct. +Solution: Convert the cterm index to ANSI index. (closes #10321, + closes #9836)) +Files: src/term.c + +Patch 8.2.4853 +Problem: CI with FreeBSD is a bit outdated. +Solution: Use 12.3 instead of 12.1. (closes #10333) +Files: .cirrus.yml + +Patch 8.2.4854 +Problem: Array size does not match usage. +Solution: Make array size 3 instead of 4. (Christian Brabandt, closes #10336) +Files: src/term.c + +Patch 8.2.4855 +Problem: Robot files are not recognized. +Solution: Add patterns for robot files. (Zoe Roux, closes #10339) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4856 +Problem: MinGW compiler complains about unknown escape sequence. +Solution: Avoid using a backslash in path. (Christian Brabandt, + closes #10337) +Files: .github/workflows/ci.yml + +Patch 8.2.4857 +Problem: Yaml indent for multiline is wrong. +Solution: Adjust patterns. (closes #10328, closes #8740) +Files: runtime/indent/yaml.vim, runtime/indent/testdir/yaml.in, + runtime/indent/testdir/yaml.ok + +Patch 8.2.4858 +Problem: K_SPECIAL may be escaped twice. +Solution: Avoid double escaping. (closes #10340) +Files: src/highlight.c, src/misc2.c, src/proto/misc2.pro, src/term.c, + src/typval.c, src/testdir/test_eval_stuff.vim, + src/testdir/test_feedkeys.vim, src/testdir/test_functions.vim, + src/testdir/test_mapping.vim + +Patch 8.2.4859 +Problem: wget2 files are not recognized. +Solution: Add patterns to recognize wget2. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4860 +Problem: MS-Windows: always uses current directory for executables. +Solution: Check the NoDefaultCurrentDirectoryInExePath environment variable. + (Yasuhiro Matsumoto, closes #10341) +Files: runtime/doc/builtin.txt, src/os_win32.c, + src/testdir/test_functions.vim + +Patch 8.2.4861 +Problem: It is not easy to restore saved mappings. +Solution: Make mapset() accept a dict argument. (Ernie Rael, closes #10295) +Files: runtime/doc/builtin.txt, src/errors.h, src/evalfunc.c, src/map.c, + src/typval.c, src/proto/typval.pro, + src/testdir/test_map_functions.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4862 +Problem: Vim9: test may fail when run with valgrind. +Solution: Wait longer for callback if needed. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4863 +Problem: Accessing freed memory in test without the +channel feature. + (Dominique PellÃĐ) +Solution: Do not generted PUSHCHANNEL or PUSHJOB if they are not + implemented. (closes #10350) +Files: src/vim9instr.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4864 (after 8.2.4863) +Problem: Vim9: script test fails. +Solution: Remove "if" around declaration. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4865 +Problem: :startinsert right after :stopinsert does not work when popup menu + is still visible. +Solution: Use ins_compl_active() instead of pum_visible(). (closes #10352) +Files: src/edit.c, src/testdir/test_ins_complete.vim + +Patch 8.2.4866 +Problem: Duplicate code in "get" functions. +Solution: Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar() + and getbufvar(). (closes #10335) +Files: src/evalvars.c + +Patch 8.2.4867 +Problem: Listing of mapping with K_SPECIAL is wrong. +Solution: Adjust escaping of special characters. (closes #10351) +Files: src/map.c, src/message.c, src/testdir/test_mapping.vim + +Patch 8.2.4868 +Problem: When closing help window autocmds triggered for the wrong window. +Solution: Figure out the new current window earlier. (closes #10348) +Files: src/window.c, src/testdir/test_help.vim + +Patch 8.2.4869 +Problem: Expression in command block does not look after NL. +Solution: Skip over NL to check what follows. (closes #10358) +Files: src/eval.c, src/proto/eval.pro, src/vim9script.c, + src/testdir/test_usercommands.vim + +Patch 8.2.4870 +Problem: Vim9: expression in :substitute is not compiled. +Solution: Use an INSTR instruction if possible. (closes #10334) +Files: src/evalfunc.c, src/regexp.c, src/vim9execute.c, src/vim9expr.c, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4871 +Problem: Vim9: in :def function no error for using a range with a command + that does not accept one. +Solution: Check for the command to accept a range. (closes #10330) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4872 +Problem: Vim9: no error for using an expression only at the script level + when followed by an empty line. +Solution: Do not check the line number but whether something follows. + (closes #10357) +Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4873 +Problem: Vim9: using "else" differs from using "endif/if !cond". +Solution: Leave the block and enter another one. (closes #10320) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4874 +Problem: Win32 GUI: horizontal scroll wheel not handled properly. +Solution: Also handle WM_MOUSEHWHEEL. (closes #10309) +Files: src/gui_w32.c + +Patch 8.2.4875 +Problem: MS-Windows: some .exe files are not recognized. +Solution: Parse APPEXECLINK junctions. (closes #10302) +Files: src/os_mswin.c, src/proto/os_mswin.pro, src/os_win32.c, + src/os_win32.h, src/testdir/test_functions.vim + +Patch 8.2.4876 +Problem: MS-Windows: Shift-BS results in strange character in powershell. +Solution: Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279) +Files: src/edit.c, src/keymap.h, src/term.c, src/testdir/shared.vim, + src/testdir/test_edit.vim + +Patch 8.2.4877 +Problem: MS-Windows: Using Normal colors for termguicolors causes problems. +Solution: Do not use Normal colors to set sg_gui_fg and sg_gui_bg. + (Christian Brabandt, closes #10317, closes #10241) +Files: src/highlight.c + +Patch 8.2.4878 +Problem: Valgrind warning for using uninitialized variable. +Solution: Initialize the type of newtv. +Files: src/strings.c + +Patch 8.2.4879 +Problem: Screendump test may fail when using valgrind. +Solution: Wait longer for the first screendump. +Files: src/testdir/test_vim9_builtin.vim, src/testdir/screendump.vim + +Patch 8.2.4880 +Problem: Vim9: misplaced elseif causes invalid memory access. +Solution: Check cs_idx not to be negative. +Files: src/ex_eval.c + +Patch 8.2.4881 +Problem: "P" in Visual mode still changes some registers. +Solution: Make "P" in Visual mode not change any register. (Shougo + Matsushita, closes #10349) +Files: runtime/doc/change.txt, runtime/doc/index.txt, + runtime/doc/visual.txt, src/normal.c, src/testdir/test_visual.vim + +Patch 8.2.4882 +Problem: Cannot make 'breakindent' use a specific column. +Solution: Add the "column" entry in 'breakindentopt'. (Christian Brabandt, + closes #10362, closes #10325) +Files: runtime/doc/options.txt, src/indent.c, src/structs.h, + src/testdir/test_breakindent.vim + +Patch 8.2.4883 +Problem: String interpolation only works in heredoc. +Solution: Support interpolated strings. Use syntax for heredoc consistent + with strings, similar to C#. (closes #10327) +Files: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/evalvars.c, + src/proto/evalvars.pro, src/typval.c, src/proto/typval.pro, + src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, + src/testdir/test_debugger.vim, src/testdir/test_expr.vim, + src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4884 +Problem: Test fails without the job/channel feature. (Dominique PellÃĐ) +Solution: Add condition. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4885 (after 8.2.4884) +Problem: Test fails with the job/channel feature. +Solution: Move check for job/channel separately. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4886 +Problem: Vim9: redir in skipped block seen as assignment. +Solution: Check for valid assignment. +Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.4887 +Problem: Channel log does not show invoking a timer callback. +Solution: Add a ch_log() call. +Files: src/time.c + +Patch 8.2.4888 +Problem: Line number of lambda ignores line continuation. +Solution: Use the line number of where the arguments are. Avoid outputting + "..." twice. (closes #10364) +Files: src/userfunc.c + +Patch 8.2.4889 +Problem: CI only tests with FreeBSD 12. +Solution: Also test with FreeBSD 13. (closes #10366) +Files: .cirrus.yml + +Patch 8.2.4890 +Problem: Inconsistent capitalization in error messages. +Solution: Make capitalization consistent. (Doug Kearns) +Files: src/errors.h + +Patch 8.2.4891 +Problem: Vim help presentation could be better. +Solution: Add an imported file for extra Vim help support. Show highlight + names in the color they have. +Files: Filelist, runtime/import/dist/vimhelp.vim + +Patch 8.2.4892 +Problem: Test failures because of changed error messages. +Solution: Adjust the exptected error messages. +Files: src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, + src/testdir/test_expand.vim, src/testdir/test_tcl.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.4893 (after 8.2.4891) +Problem: Distributed import files are not installed. +Solution: Add rules to Makefile and NSIS. +Files: src/Makefile, nsis/gvim.nsi + +Patch 8.2.4894 +Problem: MS-Windows: not using italics. +Solution: Use italics. Simplify the code. (closes #10359) +Files: src/term.c + +Patch 8.2.4895 +Problem: Buffer overflow with invalid command with composing chars. +Solution: Check that the whole character fits in the buffer. +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.4896 (after 8.2.4869) +Problem: Expression in command block does not look after NL when command is + typed. +Solution: Skip over NL also when not in a script. (closes #10358) +Files: src/eval.c, src/testdir/test_usercommands.vim + +Patch 8.2.4897 +Problem: Comment inside an expression in lambda ignores the rest of the + expression. +Solution: Truncate the line at the comment. (closes #10367) +Files: src/eval.c, src/testdir/test_lambda.vim + +Patch 8.2.4898 +Problem: Coverity complains about pointer usage. +Solution: Move code for increment/decerment. +Files: src/vim9compile.c + +Patch 8.2.4899 +Problem: With latin1 encoding CTRL-W might go before the start of the + command line. +Solution: Check already being at the start of the command line. +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.4900 +Problem: Vim9 expression test fails without the job feature. +Solution: Add a check for the job feature. (Dominique PellÃĐ, closes #10373) +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.4901 +Problem: NULL pointer access when using invalid pattern. +Solution: Check for failed regexp program. +Files: src/buffer.c, src/testdir/test_buffer.vim + +Patch 8.2.4902 +Problem: Mouse wheel scrolling is inconsistent. +Solution: Use the MS-Winows system setting. (closes #10368) +Files: runtime/doc/scroll.txt, src/gui_w32.c, src/mouse.c, + src/proto/mouse.pro, src/testing.c, src/testdir/test_gui.vim + +Patch 8.2.4903 +Problem: Cannot get the current cmdline completion type and position. +Solution: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, + closes #10344) +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/cmdexpand.c, + src/proto/cmdexpand.pro, src/evalfunc.c, src/ex_getln.c, + src/proto/ex_getln.pro, src/usercmd.c, src/proto/usercmd.pro, + src/testdir/test_cmdline.vim + +Patch 8.2.4904 +Problem: codecov includes MS-Windows install files. +Solution: Ignore dosinst.c and uninstall.c. +Files: .codecov.yml + +Patch 8.2.4905 +Problem: codecov includes MS-Windows install header file. +Solution: Ignore dosinst.h. +Files: .codecov.yml + +Patch 8.2.4906 +Problem: MS-Windows: cannot use transparent background. +Solution: Make transparent background work with 'termguicolors' and NONE + background color. (Yasuhiro Matsumoto, closes #10310, closes #7162) +Files: runtime/doc/options.txt, src/os_win32.c, src/term.c + +Patch 8.2.4907 +Problem: Some users do not want a line comment always inserted. +Solution: Add the '/' flag to 'formatoptions' to not repeat the comment + leader after a statement when using "o". +Files: runtime/doc/change.txt, src/option.h, src/change.c, + src/testdir/test_textformat.vim + +Patch 8.2.4908 +Problem: No text formatting for // comment after a statement. +Solution: format a comment when the 'c' flag is in 'formatoptions'. +Files: src/textformat.c, src/testdir/test_textformat.vim + +Patch 8.2.4909 +Problem: MODE_ enum entries names are too generic. +Solution: use CH_MODE_. +Files: src/structs.h, src/channel.c, src/job.c, src/terminal.c + +Patch 8.2.4910 +Problem: Imperfect coding. +Solution: Make code nicer. +Files: src/ex_getln.c + +Patch 8.2.4911 +Problem: The mode #defines are not clearly named. +Solution: Prepend MODE_. Renumber them to put the mapped modes first. +Files: src/vim.h, src/autocmd.c, src/buffer.c, src/change.c, + src/charset.c, src/cindent.c, src/clipboard.c, src/debugger.c, + src/digraph.c, src/drawline.c, src/drawscreen.c, src/edit.c, + src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, + src/fileio.c, src/fold.c, src/getchar.c, src/globals.h, src/gui.c, + src/gui_gtk.c, src/gui_w32.c, src/gui_xim.c, src/indent.c, + src/insexpand.c, src/macros.h, src/main.c, src/map.c, src/menu.c, + src/message.c, src/misc1.c, src/misc2.c, src/mouse.c, + src/netbeans.c, src/normal.c, src/ops.c, src/option.c, + src/os_unix.c, src/os_win32.c, src/popupmenu.c, src/search.c, + src/tag.c, src/screen.c, src/term.c, src/terminal.c, + src/textformat.c, src/window.c + +Patch 8.2.4912 +Problem: Using execute() to define a lambda doesn't work. (Ernie Rael) +Solution: Put the getline function in evalarg. (closes #10375) +Files: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.4913 +Problem: Popup_hide() does not always have effect. +Solution: Add the POPF_HIDDEN_FORCE flag. (closes #10376) +Files: src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popup_prop_not_visible_01a.dump, + src/testdir/dumps/Test_popup_prop_not_visible_01b.dump + +Patch 8.2.4914 +Problem: String interpolation in :def function may fail. +Solution: Do not terminate the expression. (closes #10377) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4915 +Problem: Sometimes the cursor is in the wrong position. +Solution: When the cursor moved to another line, recompute w_botline. + (closes #9736) +Files: src/move.c + +Patch 8.2.4916 (after 8.2.4915) +Problem: Mouse in Insert mode test fails. +Solution: Fix the test and check relevant positions. +Files: src/testdir/test_edit.vim + +Patch 8.2.4917 +Problem: Fuzzy expansion of option names is not right. +Solution: Pass the fuzzy flag down the call chain. (Christian Brabandt, + closes #10380, closes #10318) +Files: src/cmdexpand.c, src/option.c, src/proto/option.pro, + src/testdir/test_options.vim + +Patch 8.2.4918 +Problem: Conceal character from matchadd() displayed too many times. +Solution: Check the syntax flag. (closes #10381, closes #7268) +Files: src/drawline.c, src/testdir/test_matchadd_conceal.vim + +Patch 8.2.4919 +Problem: Can add invalid bytes with :spellgood. +Solution: Check for a valid word string. +Files: src/mbyte.c, src/spellfile.c, src/errors.h, + src/testdir/test_spell_utf8.vim + +Patch 8.2.4920 (after 8.2.4902) +Problem: MS-Windows GUI: unused variables. +Solution: Delete the variables. (John Marriott) +Files: src/gui_w32.c + +Patch 8.2.4921 +Problem: Spell test fails because of new illegal byte check. +Solution: Remove the test. +Files: src/testdir/test_spell.vim + +Patch 8.2.4922 (after 8.2.4916) +Problem: Mouse test fails on MS-Windows. +Solution: Set 'mousemodel' to "extend". +Files: src/testdir/test_edit.vim + +Patch 8.2.4923 +Problem: Test checks for terminal feature unnecessarily. +Solution: Remove CheckRunVimInTerminal. (closes #10383) +Files: src/testdir/test_matchadd_conceal.vim + +Patch 8.2.4924 +Problem: maparg() may return a string that cannot be reused. +Solution: use msg_outtrans_special() instead of str2special(). + (closes #10384) +Files: src/message.c, src/option.c, src/testdir/test_map_functions.vim, + src/testdir/test_mapping.vim, src/testdir/test_options.vim + +Patch 8.2.4925 +Problem: Trailing backslash may cause reading past end of line. +Solution: Check for NUL after backslash. +Files: src/textobject.c, src/testdir/test_textobjects.vim + +Patch 8.2.4926 +Problem: #ifdef for crypt feature around too many lines. +Solution: Move code outside of #ifdef. (closes #10388) +Files: src/option.c + +Patch 8.2.4927 +Problem: Return type of remove() incorrect when using three arguments. +Solution: Use first argument type when there are three arguments. + (closes #10387) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4928 +Problem: Various white space and cosmetic mistakes. +Solution: Change spaces to tabs, improve comments. +Files: src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c, + src/debugger.c, src/digraph.c, src/edit.c, src/evalwindow.c, + src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c, + src/filepath.c, src/gui.c, src/highlight.c, src/indent.c, + src/insexpand.c, src/job.c, src/keymap.h, src/macros.h, + src/menu.c, src/misc1.c, src/misc2.c, src/mouse.c, src/move.c, + src/normal.c, src/ops.c, src/option.c, src/option.h, src/search.c, + src/session.c, src/spellsuggest.c, src/structs.h, src/tag.c, + src/term.c, src/terminal.c, src/textformat.c, src/typval.c, + src/ui.c, src/userfunc.c, src/vim.h, src/vim9.h, + src/vim9compile.c, src/vim9execute.c, src/window.c, + src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c, + src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c, + src/os_vms.c, src/os_vms_conf.h + +Patch 8.2.4929 +Problem: Off-by-one error in in statusline item. +Solution: Subtrace one less. (closes #10394, closes #5599) +Files: src/buffer.c, src/testdir/test_statusline.vim, + src/testdir/dumps/Test_statusline_hl.dump + +Patch 8.2.4930 +Problem: Interpolated string expression requires escaping. +Solution: Do not require escaping in the expression. +Files: runtime/doc/eval.txt, src/typval.c, src/proto/typval.pro, + src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, + src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c, + src/vim9instr.c, src/alloc.c, src/proto/alloc.pro, + src/testdir/test_expr.vim, src/testdir/test_let.vim + +Patch 8.2.4931 +Problem: Crash with sequence of Perl commands. +Solution: Move PUTBACK to another line. (closes #10386) +Files: src/if_perl.xs + +Patch 8.2.4932 +Problem: Not easy to filter the output of maplist(). +Solution: Add mode_bits to the dictionary. (Ernie Rael, closes #10356) +Files: runtime/doc/builtin.txt, src/map.c, + src/testdir/test_map_functions.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4933 +Problem: A few more capitalization mistakes in error messages. +Solution: Adjust capitalization. (Doug Kearns) +Files: src/errors.h + +Patch 8.2.4934 +Problem: String interpolation fails when not evaluating. +Solution: Skip the expression when not evaluating. (closes #10398) +Files: src/typval.c, src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_vim9_expr.vim + +Patch 8.2.4935 +Problem: With 'foldmethod' "indent" some lines are not included in the + fold. (Oleg Koshovetc) +Solution: Fix it. (Brandon Simmons, closes #10399, closes #3214) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.4936 +Problem: MS-Windows: mouse coordinates for scroll event are wrong. +Solution: Convert coordinates to the text area coordinates. (closes #10400) +Files: src/gui_w32.c + +Patch 8.2.4937 (after 8.2.4931) +Problem: No test for what 8.2.4931 fixes. +Solution: Add a test that triggers a valgrind error. +Files: src/testdir/test_perl.vim + +Patch 8.2.4938 +Problem: Crash when matching buffer with invalid pattern. +Solution: Check for NULL regprog. +Files: src/buffer.c, src/testdir/test_buffer.vim + +Patch 8.2.4939 +Problem: matchfuzzypos() with "matchseq" does not have all positions. +Solution: Also add a position for white space. (closes #10404) +Files: runtime/doc/builtin.txt, src/search.c, + src/testdir/test_matchfuzzy.vim + +Patch 8.2.4940 +Problem: Some code is never used. +Solution: Remove dead code. Add a few more test cases. +Files: src/vim9expr.c, src/proto/vim9expr.pro, src/vim9compile.c, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.4941 +Problem: '[ and '] marks may be wrong after undo. +Solution: Adjust the '[ and '] marks if needed. (closes #10407, closes #1281) +Files: src/undo.c, src/testdir/test_undo.vim + +Patch 8.2.4942 +Problem: Error when setting 'filetype' in help file again. +Solution: Deal with text property type already existing. (closes #10409) +Files: runtime/import/dist/vimhelp.vim + +Patch 8.2.4943 +Problem: Changing 'switchbuf' may have no effect. +Solution: Handle 'switchbuf' in didset_string_options(). (Sean Dewar, + closes #10406) +Files: src/optionstr.c, src/testdir/test_options.vim + +Patch 8.2.4944 +Problem: Text properties are wrong after "cc". (Axel Forsman) +Solution: Pass the deleted byte count to inserted_bytes(). (closes #10412, + closes #7737, closes #5763) +Files: src/change.c, src/testdir/test_textprop.vim + +Patch 8.2.4945 +Problem: Inconsistent use of white space. +Solution: Use Tabs and Spaces consistently. +Files: src/os_amiga.c, src/if_py_both.h, src/os_win32.c, src/os_mswin.c, + src/os_vms.c, src/os_vms_conf.h + +Patch 8.2.4946 +Problem: Vim9: some code not covered by tests. +Solution: Add a few more test cases. Remove dead code. +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4947 +Problem: Text properties not adjusted when accepting spell suggestion. +Solution: Adjust text properties when text changes. (closes #10414) +Files: src/spell.c, src/spellsuggest.c, src/testdir/test_textprop.vim + +Patch 8.2.4948 +Problem: Cannot use Perl heredoc in nested :def function. (Virginia + Senioria) +Solution: Only concatenate heredoc lines when not in a nested function. + (closes #10415) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4949 +Problem: Vim9: some code not covered by tests. +Solution: Add a few more test cases. Fix double error message. +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4950 +Problem: Text properties position wrong after shifting text. +Solution: Adjust the text properties when shifting a block of text. + (closes #10418) +Files: src/ops.c, src/testdir/test_textprop.vim + +Patch 8.2.4951 +Problem: Smart indenting done when not enabled. +Solution: Check option values before setting can_si. (closes #10420) +Files: src/indent.c, src/proto/indent.pro, src/change.c, src/edit.c, + src/ops.c, src/testdir/test_smartindent.vim + +Patch 8.2.4952 +Problem: GUI test will fail if color scheme changes. +Solution: Reduce the test for now. +Files: src/testdir/test_gui.vim + +Patch 8.2.4953 +Problem: With 'smartindent' inserting '}' after completion goes wrong. +Solution: Check the cursor is in indent. (closes #10420) +Files: src/indent.c, src/testdir/test_smartindent.vim + +Patch 8.2.4954 +Problem: Inserting line breaks text property spanning more then one line. +Solution: Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.4955 +Problem: Text property in wrong position after auto-indent. +Solution: Adjust text property columns. (closes #10422, closes #7719) +Files: src/change.c, src/testdir/test_textprop.vim + +Patch 8.2.4956 +Problem: Reading past end of line with "gf" in Visual block mode. +Solution: Do not include the NUL in the length. +Files: src/normal.c, src/testdir/test_gf.vim + +Patch 8.2.4957 +Problem: Text properties in a wrong position after a block change. +Solution: Adjust the properties columns. (closes #10427) +Files: src/ops.c, src/testdir/test_textprop.vim + +Patch 8.2.4958 +Problem: A couple conditions are always true. +Solution: Remove the conditions. (Goc Dundar, closes #10428) +Files: src/evalfunc.c, src/quickfix.c + +Patch 8.2.4959 +Problem: Using NULL regexp program. +Solution: Check for regexp program becoming NULL in more places. +Files: src/buffer.c, src/testdir/test_buffer.vim + +Patch 8.2.4960 +Problem: Text properties that cross line boundary are not correctly updated + for a deleted line. +Solution: Correct computing location of text property entry. (Paul Ollis, + closes #10431, closes #10430) +Files: src/memline.c, src/testdir/test_textprop.vim + +Patch 8.2.4961 +Problem: Build error with a certain combination of features. +Solution: Adjust #if. (John Marriott) +Files: src/memline.c + +Patch 8.2.4962 +Problem: Files show up in git status. +Solution: Adjust the list of ignored files. Clean up more test files. + (Shane xb Qian, closes #9929) +Files: .gitignore, src/testdir/Makefile + +Patch 8.2.4963 +Problem: Expanding path with "/**" may overrun end of buffer. +Solution: Use vim_snprintf(). +Files: src/filepath.c + +Patch 8.2.4964 +Problem: MS-Windows GUI: mouse event test is flaky. +Solution: Add a short delay after generating a mouse event. +Files: src/testdir/test_gui.vim + +Patch 8.2.4965 +Problem: GUI: testing mouse move event depends on screen cell size. +Solution: Multiply the row and column with the screen cell size. +Files: runtime/doc/testing.txt, src/testing.c, src/testdir/test_gui.vim + +Patch 8.2.4966 +Problem: MS-Windows GUI: mouse event test gets extra event. +Solution: Ignore one move event. +Files: src/testdir/test_gui.vim + +Patch 8.2.4967 (after 8.2.4966) +Problem: MS-Windows GUI: mouse event test sometimes fails. +Solution: Ignore one move event only if there is an extra event. +Files: src/testdir/test_gui.vim + +Patch 8.2.4968 +Problem: Reading past end of the line when C-indenting. +Solution: Check for NUL. +Files: src/cindent.c, src/testdir/test_cindent.vim + +Patch 8.2.4969 +Problem: Changing text in Visual mode may cause invalid memory access. +Solution: Check the Visual position after making a change. +Files: src/change.c, src/edit.c, src/misc2.c, src/proto/misc2.pro, + src/testdir/test_visual.vim + +Patch 8.2.4970 +Problem: "eval 123" gives an error, "eval 'abc'" does not. +Solution: Also give an error when evaluating only a string. (closes #10434) +Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4971 +Problem: Vim9: interpolated string seen as range. +Solution: Recognize an interpolated string at the start of a command line. + (closes #10434) +Files: src/ex_docmd.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4972 +Problem: Vim9: compilation fails when using dict member when skipping. +Solution: Do not generate ISN_USEDICT when skipping. (closes #10433) +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4973 +Problem: Vim9: type error for list unpack mentions argument. +Solution: Mention variable. (close #10435) +Files: src/vim9.h, src/vim9execute.c, src/vim9instr.c, + src/proto/vim9instr.pro, src/vim9compile.c, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4974 +Problem: ":so" command may read after end of buffer. +Solution: Compute length of text properly. +Files: src/scriptfile.c, src/testdir/test_source.vim + +Patch 8.2.4975 +Problem: Recursive command line loop may cause a crash. +Solution: Limit recursion of getcmdline(). +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.4976 +Problem: Coverity complains about not restoring a saved value. +Solution: Restore value before handling error. +Files: src/vim9execute.c + +Patch 8.2.4977 +Problem: Memory access error when substitute expression changes window. +Solution: Disallow changing window in substitute expression. +Files: src/ex_cmds.c, src/testdir/test_substitute.vim + +Patch 8.2.4978 +Problem: No error if engine selection atom is not at the start. +Solution: Give an error. (Christian Brabandt, closes #10439) +Files: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c, + src/regexp_nfa.c, src/testdir/test_regexp_latin.vim + +Patch 8.2.4979 +Problem: Accessing freed memory when line is flushed. +Solution: Make a copy of the pattern to search for. +Files: src/window.c, src/testdir/test_tagjump.vim + +Patch 8.2.4980 +Problem: When 'shortmess' contains 'A' loading a session may still warn for + an existing swap file. (Melker Ãsterberg) +Solution: Keep the 'A' flag to 'shortmess' in the session file. + (closes #10443) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4981 +Problem: It is not possible to manipulate autocommands. +Solution: Add functions to add, get and set autocommands. (Yegappan + Lakshmanan, closes #10291) +Files: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, + runtime/doc/usr_41.txt, src/autocmd.c, src/evalfunc.c, + src/proto/autocmd.pro, src/testdir/test_autocmd.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4982 +Problem: Colors in terminal window are not 100% correct. +Solution: Use g:terminal_ansi_colors as documented. (closes #10429, + closes #7227 closes #10347) +Files: src/job.c, src/option.c, src/proto/term.pro, + src/terminal.c, src/proto/terminal.pro, src/term.c, + src/testdir/test_functions.vim, src/testdir/test_terminal.vim + +Patch 8.2.4983 (after 8.2.4982) +Problem: Colors test fails in the GUI. +Solution: Reset g:terminal_ansi_colors. +Files: src/testdir/test_functions.vim + +Patch 8.2.4984 +Problem: Dragging statusline fails for window with winbar. +Solution: Fix off-by-one error. (closes #10448) +Files: src/mouse.c, src/testdir/test_winbar.vim + +Patch 8.2.4985 +Problem: PVS warns for possible array underrun. +Solution: Add a check for a positive value. (Goc Dundar, closes #10451) +Files: src/spell.c + +Patch 8.2.4986 +Problem: Some github actions are outdated. +Solution: Update CodeQl to v2, update checkout to v3. (closes #10450) +Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml, + .github/workflows/coverity.yml + +Patch 8.2.4987 +Problem: After deletion a small fold may be closable. +Solution: Check for a reverse range. (Brandon Simmons, closes #10457) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.4988 +Problem: Textprop in wrong position when replacing multi-byte chars. +Solution: Adjust textprop position. (closes #10461) +Files: src/change.c, src/testdir/test_textprop.vim + +Patch 8.2.4989 +Problem: Cannot specify a function name for :defcompile. +Solution: Implement a function name argument for :defcompile. +Files: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, + src/vim9execute.c, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4990 (after 8.2.4989) +Problem: Memory leak when :defcompile fails. +Solution: Free fname when returning early. +Files: src/userfunc.c + +Patch 8.2.4991 +Problem: No test for what patch 8.1.0535 fixes. +Solution: Add a test. (closes #10462) +Files: src/testdir/test_fold.vim + +Patch 8.2.4992 (after 8.2.4989) +Problem: Compiler warning for possibly uninitialized variable. (Tony + Mechelynck) +Solution: Initialize variable in the caller instead of in the function. +Files: src/userfunc.c, src/vim9execute.c + +Patch 8.2.4993 +Problem: smart/C/lisp indenting is optional, which makes the code more + complex, while it only reduces the executable size a bit. +Solution: Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP. +Files: runtime/doc/builtin.txt, runtime/doc/indent.txt, + runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h, + src/buffer.c, src/change.c, src/cindent.c, src/charset.c, + src/edit.c, src/evalfunc.c, src/indent.c, src/insexpand.c, + src/main.c, src/mouse.c, src/ops.c, src/option.c, src/optionstr.c, + src/register.c, src/search.c, src/textformat.c, src/version.c, + src/option.h, src/optiondefs.h, src/structs.h, src/globals.h, + src/testdir/test_edit.vim + +Patch 8.2.4994 +Problem: Tests are using legacy functions. +Solution: Convert a few tests to use :def functions. +Files: src/testdir/test_cindent.vim + +Patch 8.2.4995 (after 8.2.4992) +Problem: Still a compiler warning for possibly uninitialized variable. + (Tony Mechelynck) +Solution: Initialize variables. +Files: src/vim9execute.c + +Patch 8.2.4996 (after 8.2.4969) +Problem: setbufline() may change Visual selection. (Qiming Zhao) +Solution: Disable Visual mode when using another buffer. (closes #10466) +Files: src/evalbuffer.c, src/testdir/test_bufline.vim + +Patch 8.2.4997 +Problem: Python: changing hidden buffer can cause the display to be messed + up. +Solution: Do not mark changed lines when using another buffer. (Paul Ollis, + closes #10437, closes #7972) +Files: src/if_py_both.h, src/testdir/test_python3.vim + +Patch 8.2.4998 +Problem: Vim9: crash when using multiple funcref(). +Solution: Check if varargs type is NULL. (closes #10467) +Files: src/vim9type.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4999 +Problem: Filetype test table is not properly sorted. +Solution: Sort by filetype. (Doug Kearns) +Files: src/testdir/test_filetype.vim + +Patch 8.2.5000 +Problem: No patch for documentation updates. +Solution: Update documentation files. +Files: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, + runtime/doc/builtin.txt, runtime/doc/change.txt, + runtime/doc/channel.txt, runtime/doc/cmdline.txt, + runtime/doc/diff.txt, runtime/doc/digraph.txt, + runtime/doc/editing.txt, runtime/doc/eval.txt, + runtime/doc/filetype.txt, runtime/doc/fold.txt, + runtime/doc/ft_ada.txt, runtime/doc/ft_ps1.txt, + runtime/doc/ft_raku.txt, runtime/doc/ft_rust.txt, + runtime/doc/ft_sql.txt, runtime/doc/gui.txt, + runtime/doc/gui_w32.txt, runtime/doc/helphelp.txt, + runtime/doc/help.txt, runtime/doc/if_cscop.txt, + runtime/doc/if_lua.txt, runtime/doc/if_perl.txt, + runtime/doc/if_pyth.txt, runtime/doc/if_tcl.txt, + runtime/doc/indent.txt, runtime/doc/index.txt, + runtime/doc/insert.txt, runtime/doc/intro.txt, + runtime/doc/map.txt, runtime/doc/mbyte.txt, + runtime/doc/message.txt, runtime/doc/motion.txt, + runtime/doc/netbeans.txt, runtime/doc/options.txt, + runtime/doc/os_dos.txt, runtime/doc/os_vms.txt, + runtime/doc/os_win32.txt, runtime/doc/pattern.txt, + runtime/doc/pi_netrw.txt, runtime/doc/pi_zip.txt, + runtime/doc/popup.txt, runtime/doc/print.txt, + runtime/doc/quickfix.txt, runtime/doc/quickref.txt, + runtime/doc/remote.txt, runtime/doc/repeat.txt, + runtime/doc/rileft.txt, runtime/doc/scroll.txt, + runtime/doc/sign.txt, runtime/doc/spell.txt, + runtime/doc/sponsor.txt, runtime/doc/starting.txt, + runtime/doc/syntax.txt, runtime/doc/tabpage.txt, + runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, + runtime/doc/term.txt, runtime/doc/testing.txt, + runtime/doc/textprop.txt, runtime/doc/tips.txt, + runtime/doc/todo.txt, runtime/doc/uganda.txt, + runtime/doc/undo.txt, runtime/doc/usr_02.txt, + runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, + runtime/doc/usr_06.txt, runtime/doc/usr_08.txt, + runtime/doc/usr_09.txt, runtime/doc/usr_12.txt, + runtime/doc/usr_20.txt, runtime/doc/usr_29.txt, + runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, + runtime/doc/usr_45.txt, runtime/doc/usr_46.txt, + runtime/doc/usr_50.txt, runtime/doc/usr_51.txt, + runtime/doc/usr_52.txt, runtime/doc/usr_90.txt, + runtime/doc/usr_toc.txt, runtime/doc/various.txt, + runtime/doc/version5.txt, runtime/doc/version6.txt, + runtime/doc/version7.txt, runtime/doc/version8.txt, + runtime/doc/version9.txt, runtime/doc/vi_diff.txt, + runtime/doc/vim9.txt, runtime/doc/visual.txt, + runtime/doc/windows.txt, runtime/doc/tags, runtime/doc/Makefile + +Patch 8.2.5001 +Problem: Checking translations affects the search pattern history. +Solution: Use "keeppatterns". (Doug Kearns) +Files: src/po/check.vim + +Patch 8.2.5002 +Problem: deletebufline() may change Visual selection. +Solution: Disable Visual mode when using another buffer. (closes #10469) +Files: src/evalbuffer.c, src/testdir/test_bufline.vim + +Patch 8.2.5003 +Problem: Cannot do bitwise shifts. +Solution: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457) +Files: runtime/doc/eval.txt, src/errors.h, src/eval.c, src/structs.h, + src/vim.h, src/vim9execute.c, src/vim9expr.c, + src/testdir/test_expr.vim, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.5004 +Problem: Right shift on negative number does not work as documented. +Solution: Use a uvarnumber_T type cast. +Files: runtime/doc/eval.txt, src/eval.c, src/vim9expr.c, + src/vim9execute.c, src/charset.c, src/testdir/test_expr.vim + +Patch 8.2.5005 (after 8.2.5003) +Problem: Compiler warning for uninitialized variable. (John Marriott) +Solution: Initialize the pointer to NULL. +Files: src/vim9expr.vim + +Patch 8.2.5006 (after 8.2.5003) +Problem: Asan warns for undefined behavior. +Solution: Cast the shifted value to unsigned. +Files: src/eval.c, src/vim9expr.c, src/vim9execute.c + +Patch 8.2.5007 +Problem: Spell suggestion may use uninitialized memory. (Zdenek Dohnal) +Solution: Avoid going over the end of the word. +Files: src/spellsuggest.c, src/testdir/test_spell_utf8.vim + +Patch 8.2.5008 +Problem: When 'formatoptions' contains "/" wrongly wrapping a long trailing + comment. +Solution: Pass the OPENLINE_FORMAT flag. +Files: src/change.c, src/vim.h, src/textformat.c, + src/testdir/test_textformat.vim + +Patch 8.2.5009 +Problem: Fold may not be closeable after appending. +Solution: Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.5010 +Problem: The terminal debugger uses various global variables. +Solution: Add a dictionary to hold the terminal debugger preferences. +Files: runtime/doc/terminal.txt, + runtime/pack/dist/opt/termdebug/plugin/termdebug.vim + +Patch 8.2.5011 +Problem: Replacing an autocommand requires several lines. +Solution: Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan, + closes #10473) +Files: runtime/doc/autocmd.txt, runtime/doc/builtin.txt, src/autocmd.c, + src/testdir/test_autocmd.vim + +Patch 8.2.5012 +Problem: Cannot select one character inside (). +Solution: Do not try to extend the area if it is empty. (closes #10472, + closes #6616) +Files: src/textobject.c, src/testdir/test_textobjects.vim + +Patch 8.2.5013 +Problem: After text formatting the cursor may be in an invalid position. +Solution: Correct the cursor position after formatting. +Files: src/textformat.c, src/testdir/test_textformat.vim + +Patch 8.2.5014 +Problem: Byte offsets are wrong when using text properties. +Solution: Make sure text properties do not affect the byte counts. + (Paul Ollis, closes #10474) +Files: src/memline.c, src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.5015 +Problem: Hoon and Moonscript files are not recognized. +Solution: Add filetype patterns. (Goc Dundar, closes #10478) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.5016 +Problem: Access before start of text with a put command. +Solution: Check the length is more than zero. +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.5017 +Problem: Gcc 12.1 warns for uninitialized variable. +Solution: Initialize the variable. (closes #10476) +Files: src/evalvars.c + +Patch 8.2.5018 +Problem: Vim9: some code is not covered by tests. +Solution: Delete dead code. +Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, + src/vim9expr.c, + +Patch 8.2.5019 +Problem: Cannot get the first screen column of a character. +Solution: Let virtcol() optionally return a list. (closes #10482, + closes #7964) +Files: runtime/doc/builtin.txt, src/evalfunc.c, + src/testdir/test_functions.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.5020 +Problem: Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'. +Solution: Save and restore the KeyTyped flag. (closes #10479) +Files: src/gui_xim.c, src/testdir/test_iminsert.vim + + +Patch 8.2.5021 +Problem: Build fails with normal features and +terminal. (Dominique PellÃĐ) +Solution: Add #ifdefs. (closes #10484) +Files: src/terminal.c + +Patch 8.2.5022 +Problem: 'completefunc'/'omnifunc' error does not end completion. +Solution: Check if there was an error or exception. (closes #10486, + closes #4218) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.5023 +Problem: Substitute overwrites allocated buffer. +Solution: Disallow undo when in a substitute command. +Files: src/normal.c, src/undo.c, src/testdir/test_substitute.vim + +Patch 8.2.5024 +Problem: Using freed memory with "]d". +Solution: Copy the pattern before searching. +Files: src/normal.c, src/testdir/test_tagjump.vim + +Patch 8.2.5025 +Problem: Vim9: a few lines not covered by tests. +Solution: Add a few tests. +Files: src/vim9script.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_import.vim + +Patch 8.2.5026 +Problem: Vim9: a few lines not covered by tests. +Solution: Delete dead code. Add a few test cases. make "12->func()" work. +Files: src/vim9type.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.5027 +Problem: Error for missing :endif when an exception was thrown. (Dani + Dickstein) +Solution: Do not give an error when aborting. (closes #10490) +Files: src/ex_docmd.c, src/testdir/test_trycatch.vim + +Patch 8.2.5028 +Problem: Syntax regexp matching can be slow. +Solution: Adjust the counters for checking the timeout to check about once + per msec. (closes #10487, closes #2712) +Files: src/regexp_bt.c, src/regexp_nfa.c + +Patch 8.2.5029 +Problem: "textlock" is always zero. +Solution: Remove "textlock" and rename "textwinlock" to "textlock". + (closes #10489) +Files: runtime/doc/insert.txt, runtime/doc/tags, src/beval.c, + src/change.c, src/edit.c, src/errors.h, src/eval.c, src/ex_cmds.c, + src/ex_getln.c, src/proto/ex_getln.pro, src/globals.h, + src/indent.c, src/insexpand.c, src/map.c, src/register.c, + src/undo.c, src/window.c, src/testdir/test_edit.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim, + src/testdir/test_quickfix.vim + +Patch 8.2.5030 +Problem: autocmd_add() can only handle one event and pattern. +Solution: Support a list of events and patterns. (Yegappan Lakshmanan, + closes #10483) +Files: runtime/doc/builtin.txt, src/autocmd.c, src/errors.h, + src/testdir/test_autocmd.vim + +Patch 8.2.5031 +Problem: Cannot easily run the benchmarks. +Solution: Have "make benchmark" in the src directory work. +Files: src/Makefile, src/testdir/Makefile + +Patch 8.2.5032 +Problem: Python 3 test fails without the GUI. +Solution: Check the balloon_eval feature is available. +Files: src/testdir/test_python3.vim + +Patch 8.2.5033 (after 8.2.5030) +Problem: Build error with +eval but without +quickfix. Warning for + uninitialized variable. +Solution: Adjust #ifdefs. (John Marriott) +Files: src/errors.h, src/autocmd.c + +Patch 8.2.5034 +Problem: There is no way to get the byte index from a virtual column. +Solution: Add virtcol2col(). (Yegappan Lakshmanan, closes #10477, + closes #10098) +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/move.c, src/proto/move.pro, src/testdir/test_cursor_func.vim + +Patch 8.2.5035 +Problem: When splitting a window the changelist position moves. +Solution: Set the changelist index a bit later. (closes #10493) +Files: src/window.c, src/testdir/test_changelist.vim, + src/testdir/test_normal.vim + +Patch 8.2.5036 (after 8.2.5028) +Problem: Using two counters for timeout check in NFA engine. +Solution: Use only one counter. Tune the counts based on guessing. +Files: src/regexp_nfa.c + +Patch 8.2.5037 +Problem: Cursor position may be invalid after "0;" range. +Solution: Check the cursor position when it was set by ";" in the range. +Files: src/ex_docmd.c, src/testdir/test_excmd.vim + +Patch 8.2.5038 +Problem: A finished terminal in a popup window does not show a scrollbar. +Solution: Show the scrollbar if the terminal job is finished. (closes + #10497) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, + src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, + src/testdir/dumps/Test_popupwin_poptermscroll_3.dump + +Patch 8.2.5039 +Problem: Confusing error if first argument of popup_create() is wrong. +Solution: Give a more informative error. +Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/errors.h, + src/testdir/dumps/Test_popup_settext_07.dump + +Patch 8.2.5040 +Problem: Scrollbar thumb in scrolled popup not visible. +Solution: Show at least one thumb character. (fixes 10492) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_scroll_13.dump + +Patch 8.2.5041 +Problem: Cannot close a terminal popup with "NONE" job. +Solution: Adjust the conditions for whether a job is running. + (closes #10498) +Files: src/buffer.c, src/terminal.c, src/proto/terminal.pro, + src/undo.c, src/testdir/test_popupwin.vim + +Patch 8.2.5042 +Problem: Scrollbar thumb in tall scrolled popup not visible. +Solution: Show at least one thumb character. (fixes 10492) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_scroll_13.dump + +Patch 8.2.5043 +Problem: Can open a cmdline window from a substitute expression. +Solution: Disallow opening a command line window when text or buffer is + locked. +Files: src/buffer.c, src/ex_getln.c, src/proto/ex_getln.pro, + src/window.c, src/testdir/test_substitute.vim + +Patch 8.2.5044 (after 8.2.5043) +Problem: Command line test fails. +Solution: Also beep when cmdline win can't be opened because of locks. + Make the test not beep. Make the test pass on MS-Windows. +Files: src/ex_getln.c, src/testdir/test_substitute.vim + +Patch 8.2.5045 +Problem: Can escape a terminal popup window when the job is finished. +Solution: Only check for a finished job where it is relevant. + (closes #10253) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_poptermscroll_1.dump, + src/testdir/dumps/Test_popupwin_poptermscroll_2.dump, + src/testdir/dumps/Test_popupwin_poptermscroll_3.dump, + src/testdir/dumps/Test_popupwin_poptermscroll_4.dump + +Patch 8.2.5046 +Problem: vim_regsub() can overwrite the destination. +Solution: Pass the destination length, give an error when it doesn't fit. +Files: src/regexp.h, src/regexp.c, src/proto/regexp.pro, src/eval.c, + src/ex_cmds.c + +Patch 8.2.5047 +Problem: CurSearch highlight is often wrong. +Solution: Remember the last highlighted position and redraw when needed. +Files: src/globals.h, src/match.c, src/drawscreen.c, src/change.c, + src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_cursearch_changed_1.dump + +Patch 8.2.5048 +Problem: When using XIM the gui test may fail. +Solution: Only use --not-a-term when not using XIM. +Files: src/testdir/test_gui.vim + +Patch 8.2.5049 +Problem: Insufficient tests for autocommands. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #10507) +Files: src/autocmd.c, src/testdir/gen_opt_test.vim, + src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim + +Patch 8.2.5050 +Problem: Using freed memory when searching for pattern in path. +Solution: Make a copy of the line. +Files: src/search.c, src/testdir/test_tagjump.vim + +Patch 8.2.5051 +Problem: Check for autocmd_add() event argument is confusing. +Solution: Make the code more straightforward. +Files: src/autocmd.c + +Patch 8.2.5052 +Problem: CI checkout step title is a bit cryptic. +Solution: Add a better title. (closes #10509) +Files: .github/workflows/ci.yml, .github/workflows/coverity.yml, + .github/workflows/codeql-analysis.yml + +Patch 8.2.5053 +Problem: Cannot have a comment halfway an expression in an autocmd command + block. +Solution: When skipping over the NL also skip over comments. (closes #10519) +Files: src/eval.c, src/testdir/test_autocmd.vim + +Patch 8.2.5054 +Problem: No good filetype for conf files similar to dosini. +Solution: Add the confini filetype. (closes #10518) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.5055 +Problem: Statusline is not updated when terminal title changes. +Solution: Redraw the status line when the title changes. (issue #10425) +Files: src/terminal.c + +Patch 8.2.5056 +Problem: The channel log only contains some of the raw terminal output. +Solution: Add the "o" flag to log all terminal output. Use it for "--log". +Files: runtime/doc/channel.txt, runtime/doc/starting.txt, src/main.c, + src/channel.c, src/vim.h, src/term.c, src/edit.c, src/normal.c, + src/optionstr.c + +Patch 8.2.5057 +Problem: Using gettimeofday() for timeout is very inefficient. +Solution: Set a platform dependent timer. (Paul Ollis, closes #10505) +Files: src/auto/configure, src/config.h.in, src/configure.ac, + src/drawscreen.c, src/errors.h, src/evalfunc.c, src/ex_cmds.c, + src/ex_getln.c, src/match.c, src/os_mac.h, src/os_macosx.m, + src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro, + src/proto/os_win32.pro, src/proto/regexp.pro, src/quickfix.c, + src/regexp.c, src/regexp.h, src/regexp_bt.c, src/regexp_nfa.c, + src/screen.c, src/search.c, src/structs.h, src/syntax.c, + src/testdir/test_hlsearch.vim, src/testdir/test_search.vim, + src/testdir/test_syntax.vim + +Patch 8.2.5058 +Problem: input() does not handle composing characters properly. +Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). + (closes #10527) +Files: src/getchar.c, src/testdir/test_functions.vim + +Patch 8.2.5059 +Problem: Autoconf 2.71 produces many obsolete warnings. +Solution: Replace obsolete macros with non-obsolete ones, where the + functionality does not change. (issue #10528) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.5060 (after 8.2.5059) +Problem: Running configure fails. +Solution: Remove line break. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.5061 +Problem: C89 requires signal handlers to return void. +Solution: Drop RETSIGTYPE and hard-code a void return value. +Files: src/configure.ac, src/auto/configure, src/if_cscope.c, + src/os_unix.c, src/pty.c, src/os_mac.h, src/os_vms_conf.h, + src/config.h.in, src/osdef1.h.in + +Patch 8.2.5062 +Problem: Coverity warns for dead code. +Solution: Remove the dead code. +Files: src/os_unix.c, src/match.c + +Patch 8.2.5063 +Problem: Error for a command may go over the end of IObuff. +Solution: Truncate the message. +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.5064 +Problem: No test for what 8.1.0052 fixes. +Solution: Add a test. (closes #10531) +Files: src/getchar.c, src/testdir/test_mapping.vim + +Patch 8.2.5065 +Problem: Wrong return type for main() in tee.c. +Solution: Use "int" instead of "void". Remove unused variable. +Files: src/tee/tee.c + +Patch 8.2.5066 +Problem: Can specify multispace listchars only for whole line. +Solution: Add "leadmultispace". (Christian Brabandt, closes #10496) +Files: runtime/doc/options.txt, src/drawline.c, src/message.c, + src/screen.c, src/structs.h, src/window.c, + src/testdir/test_listchars.vim + +Patch 8.2.5067 +Problem: Timer_create is not available on every Mac system. (Hisashi T + Fujinaka) +Solution: Adjust #ifdef. +Files: src/os_unix.c + +Patch 8.2.5068 +Problem: Gcc 12.1 warning when building tee. +Solution: Change type to size_t. (John Marriott) +Files: src/tee/tee.c + +Patch 8.2.5069 +Problem: Various warnings from clang on MS-Windows. +Solution: Fix the code to avoid the warnings. (Yegappan Lakshmanan, + closes #10538) +Files: src/dosinst.c, src/fileio.c, src/gui_w32.c, src/os_mswin.c, + src/os_win32.c + +Patch 8.2.5070 +Problem: Unnecessary code. +Solution: Remove code that isn't needed. (closes #10534) +Files: src/message.c, src/screen.c + +Patch 8.2.5071 +Problem: With some Mac OS version clockid_t is redefined. +Solution: Adjust #ifdefs. (Ozaki Kiichi, closes #10549) +Files: src/os_mac.h + +Patch 8.2.5072 +Problem: Using uninitialized value and freed memory in spell command. +Solution: Initialize "attr". Check for empty line early. +Files: src/spell.c, src/testdir/test_spell_utf8.vim + +Patch 8.2.5073 +Problem: Clang on MS-Windows produces warnings. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #10546) +Files: src/dosinst.c, src/dosinst.h, src/gui_dwrite.cpp, src/gui_w32.c, + src/iscygpty.c, src/libvterm/src/vterm_internal.h, src/mbyte.c, + src/os_win32.c, src/os_win32.h, src/term.c, src/xdiff/xinclude.h + +Patch 8.2.5074 +Problem: Spell test fails on MS-Windows. +Solution: Do not change 'encoding' +Files: src/testdir/test_spell_utf8.vim + +Patch 8.2.5075 +Problem: Clang gives an out of bounds warning. +Solution: adjust conditional expression (John Marriott) +Files: src/ui.c + +Patch 8.2.5076 +Problem: Unnecessary code. +Solution: Remove code and replace with function call. (closes #10552) +Files: src/drawline.c, src/getchar.c + +Patch 8.2.5077 +Problem: Various warnings from clang on MS-Windows. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #10553) +Files: src/dosinst.c, src/dosinst.h, src/filepath.c, src/gui_w32.c, + src/misc1.c, src/os_win32.c + +Patch 8.2.5078 +Problem: Substitute test has a one second delay. +Solution: Use ":silent!". Add another test case. (closes #10558) +Files: src/testdir/test_substitute.vim + +Patch 8.2.5079 +Problem: DirChanged autocommand may use freed memory. (Shane-XB Qian) +Solution: Free the memory later. (closes #10555) +Files: src/ex_docmd.c, src/testdir/test_autocmd.vim + +Patch 8.2.5080 +Problem: When indenting gets out of hand it is hard to stop. +Solution: When line gets too long set got_int. +Files: src/indent.c + +Patch 8.2.5081 +Problem: Autocmd test fails on MS-Windows. +Solution: Set shellslash to get forward slashes. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.5082 (after 8.2.5080) +Problem: Retab test fails. +Solution: Disable the test for now. +Files: src/testdir/test_retab.vim + +Patch 8.2.5083 +Problem: Autocmd test still fails on MS-Windows. +Solution: Change backward to forward slashes. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.5084 +Problem: When the GUI shows a dialog tests get stuck. +Solution: Add the --gui-dialog-file argument. +Files: runtime/doc/starting.txt, src/Make_mvc.mak, src/gui.c, src/main.c, + src/message.c, src/os_mswin.c, src/proto/gui.pro, + src/proto/main.pro, src/structs.h, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Makefile, + src/testdir/runtest.vim, src/testdir/shared.vim + +Patch 8.2.5085 +Problem: Gcc gives warning for signed/unsigned difference. +Solution: Use a different pointer type. (John Marriott) +Files: src/os_mswin.c + +Patch 8.2.5086 +Problem: CI runs on Windows 2019. +Solution: Switch to Windows 2022. (closes #10566) +Files: .github/workflows/ci.yml + +Patch 8.2.5087 +Problem: Cannot build with clang on MS-Windows. +Solution: Add support for building with clang. (Yegappan Lakshmanan, + closes #10557) +Files: src/GvimExt/Make_ming.mak, src/INSTALLpc.txt, + src/Make_cyg_ming.mak + +Patch 8.2.5088 +Problem: Value of cmod_verbose is a bit complicated to use. +Solution: Use zero for not set, value + 1 when set. (closes #10564) +Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/structs.h + +Patch 8.2.5089 +Problem: Some functions return a different value on failure. +Solution: Initialize the return value earlier. (Yegappan Lakshmanan, + closes #10568) +Files: src/autocmd.c, src/dict.c, src/evalfunc.c, src/list.c + +Patch 8.2.5090 +Problem: MS-Windows: vim.def is no longer used. +Solution: Delete vim.def. (Ken Takata, closes #10569) +Files: Filelist, Makefile, src/vim.def + +Patch 8.2.5091 +Problem: Terminal test fails with some shell commands. +Solution: Disable setting the window title. (closes #10530) +Files: src/testdir/test_terminal.vim + +Patch 8.2.5092 +Problem: Using "'<,'>" in Ex mode may compare unrelated pointers. +Solution: Set eap->cmd to "+" only later. +Files: src/ex_docmd.c + +Patch 8.2.5093 +Problem: Error message for unknown command may mention the command twice. + (Malcolm Rowe) +Solution: Add the did_append_cmd flag. (closes #10570) +Files: src/ex_docmd.c + +Patch 8.2.5094 +Problem: MS-Windows GUI: empty command may cause a dialog. +Solution: Delete the dialog file. Improve the message. +Files: src/testdir/runtest.vim, src/testdir/test_ex_mode.vim + +Patch 8.2.5095 +Problem: Terminal test still fails with some shell commands. +Solution: Disable setting the window title in the Vim instance running in a + terminal window. (closes #10530) +Files: src/testdir/test_terminal.vim + +Patch 8.2.5096 (after 8.2.5095) +Problem: Terminal test still fails with some shell commands. +Solution: Add missing "call". (closes #10530) +Files: src/testdir/test_terminal.vim + +Patch 8.2.5097 +Problem: Using uninitialized memory when using 'listchars'. +Solution: Use the length returned by mb_char2bytes(). (closes #10576) +Files: src/message.c + +Patch 8.2.5098 +Problem: Spelldump test sometimes hangs. +Solution: Catch the problem of the spell file not being found to avoid + hanging in the download dialog. +Files: src/testdir/test_spell.vim + +Patch 8.2.5099 +Problem: Some terminal tests are not retried. +Solution: Mark terminal tests as flaky. +Files: src/testdir/test_terminal.vim + +Patch 8.2.5100 +Problem: Memory usage tests are not retried. +Solution: Mark memory usage tests as flaky. +Files: src/testdir/test_memory_usage.vim + +Patch 8.2.5101 +Problem: MS-Windows with MinGW: $CC may be "cc" instead of "gcc". +Solution: Set $CC if it is not matching "clang". (Yegappan Lakshmanan, + closes #10578) +Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak + +Patch 8.2.5102 +Problem: Interrupt not caught in test. +Solution: Consider an exception thrown in the current try/catch when got_int + is set. Also catch early exit when not using try/catch. +Files: src/indent.c, src/testing.c, src/testdir/test_retab.vim, + src/testdir/runtest.vim + +Patch 8.2.5103 +Problem: Build fails with small features. +Solution: Add #ifdef. Skip test on MS-Windows. +Files: src/indent.c, src/testdir/test_retab.vim + +Patch 8.2.5104 (after 8.2.5103) +Problem: Test hangs on MS-Windows. +Solution: Skip another test on MS-Windows. +Files: src/testdir/test_retab.vim + +Patch 8.2.5105 (after 8.2.5104) +Problem: Test still hangs on MS-Windows. +Solution: Skip "nocatch" test the right way. +Files: src/testdir/test_retab.vim + +Patch 8.2.5106 +Problem: Default cmdwin mappings are re-mappable. +Solution: Make the default mappings not re-mappable. (closes #10580) Use + symbols for the first do_map() argument. +Files: src/vim.h, src/ex_getln.c, src/map.c, src/proto/map.pro, + src/digraph.c, src/netbeans.c + +Patch 8.2.5107 +Problem: Some callers of rettv_list_alloc() check for not OK. (Christ van + Willegen) +Solution: Use "==" instead of "!=" when checking the return value. +Files: src/evalbuffer.c, src/channel.c, src/cmdexpand.c, src/evalfunc.c, + src/evalwindow.c, src/insexpand.c, src/job.c, src/list.c, + src/map.c, src/menu.c, src/mouse.c, src/move.c, src/sign.c, + src/textprop.c, src/term.c, src/time.c + +Patch 8.2.5108 +Problem: Retab test disabled because it hangs on MS-Windows. +Solution: Also set got_int at the other place a overlong text is detected. +Files: src/indent.c, src/testdir/test_retab.vim + +Patch 8.2.5109 +Problem: Mode not updated after CTRL-O CTRL-C in Insert mode. +Solution: Set redraw_mode and use it. (closes #10581) +Files: src/main.c, src/normal.c, src/testdir/test_normal.vim, + src/testdir/dumps/Test_mode_updated_1.dump + +Patch 8.2.5110 +Problem: Icon filetype not recognized from the first line. +Solution: Add a check for the first line. (Doug Kearns) +Files: runtime/autoload/dist/script.vim, src/testdir/test_filetype.vim + +Patch 8.2.5111 +Problem: No test for --gui-dialog-file. +Solution: Add a test. +Files: src/testdir/test_gui.vim + +Patch 8.2.5112 (after 8.2.5111) +Problem: Gui test hangs on MS-Windows. +Solution: Use "!start" to start Vim. +Files: src/testdir/test_gui.vim + +Patch 8.2.5113 +Problem: Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel + Dupras) +Solution: Delete the timer befor forking. (closes #10584) +Files: src/os_unix.c, src/proto/os_unix.pro, src/gui.c + +Patch 8.2.5114 +Problem: Time limit on searchpair() does not work properly. +Solution: Set the time limit once instead of for each regexp. (closes #10562) +Files: src/search.c, src/evalfunc.c, src/testdir/test_search.vim + +Patch 8.2.5115 +Problem: Search timeout is overrun with some patterns. +Solution: Check for timeout in more places. Make the flag volatile and + atomic. Use assert_inrange() to see what happened. +Files: src/regexp_nfa.c, src/regexp_bt.c, src/regexp.c, src/os_unix.c, + src/proto/os_unix.pro, src/testdir/test_search.vim + +Patch 8.2.5116 +Problem: "limit" option of matchfuzzy() not always respected. +Solution: Remove "else". (Kazuyuki Miyagi, closes #10586) +Files: runtime/doc/builtin.txt, src/search.c, + src/testdir/test_matchfuzzy.vim + +Patch 8.2.5117 +Problem: Crash when calling a Lua callback from a :def function. (Bohdan + Makohin) +Solution: Handle FC_CFUNC in call_user_func_check(). (closes #10587) +Files: src/userfunc.c, src/testdir/test_lua.vim + +Patch 8.2.5118 +Problem: MS-Windows: sending a message to another Vim may hang if that Vim + is halted. +Solution: Add a timeout to serverSendToVim(). (Ken Takata, closes #10585) +Files: runtime/pack/dist/opt/editexisting/plugin/editexisting.vim, + src/os_mswin.c + +Patch 8.2.5119 +Problem: CI uses cache v2. +Solution: Use cache v3. (closes #10588) +Files: .github/workflows/ci.yml + +Patch 8.2.5120 +Problem: Searching for quotes may go over the end of the line. +Solution: Check for running into the NUL. +Files: src/textobject.c + +Patch 8.2.5121 +Problem: Interrupt test sometimes fails. +Solution: Use a different file name. +Files: src/testdir/test_interrupt.vim + +Patch 8.2.5122 +Problem: Lisp indenting my run over the end of the line. +Solution: Check for NUL earlier. +Files: src/indent.c, src/testdir/test_indent.vim + +Patch 8.2.5123 +Problem: Using invalid index when looking for spell suggestions. +Solution: Do not decrement the index when it is zero. +Files: src/spellsuggest.c, src/testdir/test_spell.vim + +Patch 8.2.5124 +Problem: When syntax timeout test fails it does not show the time. +Solution: Use assert_inrange(). +Files: src/testdir/test_syntax.vim + +Patch 8.2.5125 +Problem: MS-Windows: warnings from MinGW compyler. +Solution: Use "volatile". (Yasuhiro Matsumoto, closes #10589) Initialize + variable. +Files: src/os_win32.c, src/proto/os_win32.pro, src/map.c + +Patch 8.2.5126 +Problem: Substitute may overrun destination buffer. +Solution: Disallow switching buffers in a substitute expression. +Files: src/ex_docmd.c, src/testdir/test_substitute.vim + +Patch 8.2.5127 +Problem: Using assert_true() does not show value on failure. +Solution: Use assert_inrange(). (closes #10593) +Files: src/testdir/test_channel.vim, src/testdir/test_hlsearch.vim + +Patch 8.2.5128 +Problem: Syntax highlighting disabled when using synID() in searchpair() + skip expression and it times out. (Jaehwang Jung) +Solution: Add the redrawtime_limit_set flag. (closes #10562) +Files: src/globals.h, src/drawscreen.c, src/syntax.c + +Patch 8.2.5129 +Problem: Timeout handling is not optimal. +Solution: Avoid setting timeout_flag twice. Adjust the pointer when + stopping the regexp timeout. Adjust variable name. +Files: src/os_unix.c, src/os_win32.c, src/regexp.c
--- a/runtime/doc/visual.txt +++ b/runtime/doc/visual.txt @@ -1,4 +1,4 @@ -*visual.txt* For Vim version 8.2. Last change: 2022 May 06 +*visual.txt* For Vim version 8.2. Last change: 2022 Jun 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -509,6 +509,13 @@ work both in Visual mode and in Select m mode Vim automatically switches to Visual mode, so that the same behavior as in Visual mode is effective. If you don't want this use |:xmap| or |:smap|. +One particular edge case: > + :vnoremap <C-K> <Esc> +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 <C-K> <Esc> +< Users will expect printable characters to replace the selected area. Therefore avoid mapping printable characters in Select mode. Or use |:sunmap| after |:map| and |:vmap| to remove it for Select mode.
--- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -2,12 +2,14 @@ " Language: man " Maintainer: Jason Franklin <vim@justemail.net> " Maintainer: SungHyun Nam <goweol@gmail.com> -" Last Change: 2021 Sep 26 +" Autoload Split: Bram Moolenaar +" Last Change: 2022 Jun 18 " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. -" If 'filetype' isn't "man", we must have been called to only define ":Man". +" If 'filetype' isn't "man", we must have been called to define ":Man" and not +" to do the filetype plugin stuff. if &filetype == "man" " Only do this when not done yet for this buffer @@ -34,8 +36,8 @@ if &filetype == "man" endif nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>'' - nnoremap <buffer> <silent> <c-]> :call <SID>PreGetPage(v:count)<CR> - nnoremap <buffer> <silent> <c-t> :call <SID>PopPage()<CR> + nnoremap <buffer> <silent> <c-]> :call dist#man#PreGetPage(v:count)<CR> + nnoremap <buffer> <silent> <c-t> :call dist#man#PopPage()<CR> nnoremap <buffer> <silent> q :q<CR> " Add undo commands for the maps @@ -55,196 +57,9 @@ if &filetype == "man" endif if exists(":Man") != 2 - com -nargs=+ -complete=shellcmd Man call s:GetPage(<q-mods>, <f-args>) - nmap <Leader>K :call <SID>PreGetPage(0)<CR> - nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR> -endif - -" Define functions only once. -if !exists("s:man_tag_depth") - -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 s:PreGetPage(cnt) - if a:cnt == 0 - let old_isk = &iskeyword - if &ft == 'man' - setl iskeyword+=(,) - endif - let str = expand("<cword>") - 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("<cword>") - endif - call s: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 s: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 <cword> - if page == '<cword>' - let page = expand('<cword>') - 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! \<C-W>b" - if winnr() > 1 - exe "norm! " . thiswin . "\<C-W>w" - while 1 - if &filetype == "man" - break - endif - exe "norm! \<C-W>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 s: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 - + com -nargs=+ -complete=shellcmd Man call dist#man#GetPage(<q-mods>, <f-args>) + nmap <Leader>K :call dist#man#PreGetPage(0)<CR> + nmap <Plug>ManPreGetPage :call dist#man#PreGetPage(0)<CR> endif let &cpo = s:cpo_save
deleted file mode 100644 --- a/runtime/indent/confini.vim +++ /dev/null @@ -1,10 +0,0 @@ -" Vim indent file -" Language: confini - -" Quit if an indent file was already loaded. -if exists("b:did_indent") - finish -endif - -" Use the cfg indenting, it's similar enough. -runtime! indent/cfg.vim
deleted file mode 100644 --- a/runtime/indent/systemd.vim +++ /dev/null @@ -1,10 +0,0 @@ -" Vim indent file -" Language: systemd.unit(5) - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") - finish -endif - -" Looks a lot like dosini files. -runtime! indent/dosini.vim
--- a/runtime/indent/yaml.vim +++ b/runtime/indent/yaml.vim @@ -2,7 +2,7 @@ " Language: YAML " Maintainer: Nikolai Pavlov <zyx.vim@gmail.com> " Last Update: Lukas Reineke -" Last Change: 2022 May 02 +" Last Change: 2022 Jun 17 " Only load this indent file when no other was loaded. if exists('b:did_indent') @@ -44,30 +44,30 @@ function s:FindPrevLEIndentedLineMatchin return plilnum endfunction -let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''. - \ '|\"%([^"\\]|\\.)*\"'. +let s:mapkeyregex = '\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\''' .. + \ '|\"%([^"\\]|\\.)*\"' .. \ '|%(%(\:\ )@!.)*)\:%(\ |$)' -let s:liststartregex='\v^\s*%(\-%(\ |$))' +let s:liststartregex = '\v^\s*%(\-%(\ |$))' let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)' -let s:c_ns_anchor_name = s:c_ns_anchor_char.'+' -let s:c_ns_anchor_property = '\v\&'.s:c_ns_anchor_name +let s:c_ns_anchor_name = s:c_ns_anchor_char .. '+' +let s:c_ns_anchor_property = '\v\&' .. s:c_ns_anchor_name let s:ns_word_char = '\v[[:alnum:]_\-]' -let s:ns_tag_char = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])' -let s:c_named_tag_handle = '\v\!'.s:ns_word_char.'+\!' +let s:ns_tag_char = '\v%(%\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])' +let s:c_named_tag_handle = '\v\!' .. s:ns_word_char .. '+\!' let s:c_secondary_tag_handle = '\v\!\!' let s:c_primary_tag_handle = '\v\!' -let s:c_tag_handle = '\v%('.s:c_named_tag_handle. - \ '|'.s:c_secondary_tag_handle. - \ '|'.s:c_primary_tag_handle.')' -let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+' +let s:c_tag_handle = '\v%(' .. s:c_named_tag_handle. + \ '|' .. s:c_secondary_tag_handle. + \ '|' .. s:c_primary_tag_handle .. ')' +let s:c_ns_shorthand_tag = '\v' .. s:c_tag_handle .. s:ns_tag_char .. '+' let s:c_non_specific_tag = '\v\!' -let s:ns_uri_char = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])' -let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>' -let s:c_ns_tag_property = '\v'.s:c_verbatim_tag. - \ '\v|'.s:c_ns_shorthand_tag. - \ '\v|'.s:c_non_specific_tag +let s:ns_uri_char = '\v%(%\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])' +let s:c_verbatim_tag = '\v\!\<' .. s:ns_uri_char.. '+\>' +let s:c_ns_tag_property = '\v' .. s:c_verbatim_tag. + \ '\v|' .. s:c_ns_shorthand_tag. + \ '\v|' .. s:c_non_specific_tag let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?' @@ -142,9 +142,9 @@ function GetYAMLIndent(lnum) " - List with " multiline scalar return previndent+2 - elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property. - \ '\v|'.s:c_ns_anchor_property. - \ '\v|'.s:block_scalar_header. + elseif prevline =~# s:mapkeyregex .. '\v\s*%(%(' .. s:c_ns_tag_property .. + \ '\v|' .. s:c_ns_anchor_property .. + \ '\v|' .. s:block_scalar_header .. \ '\v)%(\s+|\s*%(\#.*)?$))*' " Mapping with: value " that is multiline scalar
--- a/runtime/lang/menu_it_it.latin1.vim +++ b/runtime/lang/menu_it_it.latin1.vim @@ -2,7 +2,7 @@ " Maintainer: Antonio Colombo <azc100@gmail.com> " Vlad Sandrini <vlad.gently@gmail.com> " Luciano Montanaro <mikelima@cirulla.net> -" Last Change: 2020 Apr 23 +" Last Change: 2022 Jun 17 " Original translations " Quit when menu translations have already been done. @@ -22,16 +22,14 @@ menut &Overview<Tab><F1> &Panoramica<Tab menut &User\ Manual Manuale\ &Utente menut &How-to\ links Co&Me\.\.\. menut &Find\.\.\. &Cerca\.\.\. -" -SEP1- menut &Credits Cr&Editi menut Co&pying C&Opie menut &Sponsor/Register &Sponsor/Registrazione menut O&rphans O&Rfani -" -SEP2- menut &Version &Versione menut &About &Intro -let g:menutrans_help_dialog = "Batti un comando o una parola per cercare aiuto:\n\nPremetti i_ per comandi in modo Input (ad.es.: i_CTRL-X)\nPremetti c_ per comandi che editano la linea-comandi (ad.es.: c_<Del>)\nPremetti ' per un nome di opzione (ad.es.: 'shiftwidth')" +let g:menutrans_help_dialog = "Batti un comando o una parola per cercare aiuto:\n\nPremetti i_ per comandi in modo Input (p.es.: i_CTRL-X)\nPremetti c_ per comandi che editano la linea-comandi (p.es.: c_<Del>)\nPremetti ' per un nome di opzione (p.es.: 'shiftwidth')" " File / File menut &File &File @@ -41,15 +39,11 @@ menut Sp&lit-Open\.\.\.<Tab>:sp A&Pri\ menut Open\ Tab\.\.\.<Tab>:tabnew Apri\ nuova\ &Linguetta\.\.\.<Tab>:tabnew menut &New<Tab>:enew &Nuovo<Tab>:enew menut &Close<Tab>:close &Chiudi<Tab>:close -" -SEP1- menut &Save<Tab>:w &Salva<Tab>:w menut Save\ &As\.\.\.<Tab>:sav Salva\ &Con\ nome\.\.\.<Tab>:sav -" -SEP2- menut Split\ &Diff\ with\.\.\. &Differenza\ con\.\.\. menut Split\ Patched\ &By\.\.\. Patc&H\ da\.\.\. -" -SEP3- menut &Print S&tampa -" -SEP4- menut Sa&ve-Exit<Tab>:wqa Sa&Lva\ ed\ esci<Tab>:wqa menut E&xit<Tab>:qa &Esci<Tab>:qa @@ -59,7 +53,6 @@ menut &Edit &Modifica menut &Undo<Tab>u &Annulla<Tab>u menut &Redo<Tab>^R &Ripristina<Tab>^R menut Rep&eat<Tab>\. Ri&Peti<Tab>\. -" -SEP1- menut Cu&t<Tab>"+x &Taglia<Tab>"+x menut &Copy<Tab>"+y &Copia<Tab>"+y menut &Paste<Tab>"+gP &Incolla<Tab>"+gP @@ -67,13 +60,11 @@ menut Put\ &Before<Tab>[p &Metti\ davan menut Put\ &After<Tab>]p M&Etti\ dietro<Tab>]p menut &Delete<Tab>x Cance&Lla<Tab>x menut &Select\ all<Tab>ggVG Seleziona\ &Tutto<Tab>ggVG -" -SEP2- menut &Find\.\.\. &Cerca\.\.\. menut &Find\.\.\.<Tab>/ &Cerca\.\.\.<Tab>/ menut Find\ and\ Rep&lace\.\.\. &Sostituisci\.\.\. menut Find\ and\ Rep&lace\.\.\.<Tab>:%s &Sostituisci\.\.\.<Tab>:%s menut Find\ and\ Rep&lace\.\.\.<Tab>:s &Sostituisci\.\.\.<Tab>:s -" -SEP3- menut Settings\ &Window &Finestra\ Impostazioni menut Startup\ &Settings Impostazioni\ di\ &Avvio menut &Global\ Settings Impostazioni\ &Globali @@ -98,12 +89,50 @@ menut Toggle\ Insert\ &Mode<Tab>:set\ im! &Modo\ Insert\ Sė/No<Tab>:set\ im! menut Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! C&Ompatibilitā\ VI\ Sė/No<Tab>:set\ cp! menut Search\ &Path\.\.\. &Percorso\ di\ ricerca\.\.\. menut Ta&g\ Files\.\.\. File\ ta&G\.\.\. -" -SEP1- menut Toggle\ &Toolbar Barra\ s&Trumenti\ Sė/No menut Toggle\ &Bottom\ Scrollbar Barra\ scorrimento\ in\ &Fondo\ Sė/No menut Toggle\ &Left\ Scrollbar Barra\ scorrimento\ a\ &Sinistra\ Sė/No menut Toggle\ &Right\ Scrollbar Barra\ scorrimento\ a\ &Destra\ Sė/No +if has("toolbar") + if exists("*Do_toolbar_tmenu") + delfun Do_toolbar_tmenu + endif + fun Do_toolbar_tmenu() + tmenu ToolBar.Open Apri file + tmenu ToolBar.Save Salva file + tmenu ToolBar.SaveAll Salva tutti i file + if has("printer") || has("unix") + tmenu ToolBar.Print Stampa + endif + tmenu ToolBar.Undo Annulla + tmenu ToolBar.Redo Rifai + tmenu ToolBar.Cut Taglia + tmenu ToolBar.Copy Copia + tmenu ToolBar.Paste Incolla + tmenu ToolBar.Find Trova... + tmenu ToolBar.FindNext Trova seguente + tmenu ToolBar.FindPrev Trova precedente + tmenu ToolBar.Replace Sostituisci + if 0 " disabled; These are in the Windows menu + tmenu ToolBar.New Nuovo + tmenu ToolBar.WinSplit Dividi + tmenu ToolBar.WinMax Massimizza + tmenu ToolBar.WinMin Minimizza + tmenu ToolBar.WinClose Chiudi + endif + tmenu ToolBar.LoadSesn Carica sessione + tmenu ToolBar.SaveSesn Salva sessione + tmenu ToolBar.RunScript Esegui script + tmenu ToolBar.Make Esegui make + tmenu ToolBar.Shell Esegui shell + tmenu ToolBar.RunCtags Esegui ctags + tmenu ToolBar.TagJump Salta alla tag + tmenu ToolBar.Help Aiuto + tmenu ToolBar.FindHelp Trova aiuto... + endfun +endif + let g:menutrans_path_dialog = "Batti percorso di ricerca per i file.\nSepara fra loro i nomi di directory con una virgola." let g:menutrans_tags_dialog = "Batti nome dei file di tag.\nSepara fra loro i nomi di directory con una virgola." @@ -119,7 +148,6 @@ menut Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! A\ capo\ alla\ &Parola\ Sė/No<Tab>:set\ lbr! menut Toggle\ Tab\ &expanding<Tab>:set\ et! &Espandi\ Tabulazione\ Sė/No<Tab>:set\ et! menut Toggle\ &Auto\ Indenting<Tab>:set\ ai! Indentazione\ &Automatica\ Sė/No<Tab>:set\ ai! menut Toggle\ &C-Style\ Indenting<Tab>:set\ cin! Indentazione\ stile\ &C\ Sė/No<Tab>:set\ cin! -" -SEP2- menut &Shiftwidth &Spazi\ rientranza "menut &Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> &Spazi\ rientranza.2<Tab>:set\ sw=2\ sw?<CR> "menut &Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> &Spazi\ rientranza.3<Tab>:set\ sw=3\ sw?<CR> @@ -206,7 +234,6 @@ menut &Tools &Strumenti menut &Jump\ to\ this\ tag<Tab>g^] &Vai\ a\ questa\ tag<Tab>g^] menut Jump\ &back<Tab>^T Torna\ &Indietro<Tab>^T menut Build\ &Tags\ File Costruisci\ file\ &Tags\ -" -SEP1- " Menų ortografia / Spelling menut &Spelling &Ortografia @@ -234,7 +261,6 @@ menut C&lose\ more\ folds<Tab>zm C&Hiudi\ pių\ piegature<Tab>zm menut &Close\ all\ folds<Tab>zM &Chiudi\ tutte\ le\ piegature<Tab>zM menut O&pen\ more\ folds<Tab>zr A&Pri\ pių\ piegature<Tab>zr menut &Open\ all\ folds<Tab>zR &Apri\ tutte\ le\ piegature<Tab>zR -" -SEP1- " metodo piegatura menut Fold\ Met&hod Meto&Do\ piegatura menut M&anual &Manuale @@ -248,7 +274,6 @@ menut Ma&rker Mar&Catura menut Create\ &Fold<Tab>zf Crea\ &Piegatura<Tab>zf menut &Delete\ Fold<Tab>zd &Leva\ piegatura<Tab>zd menut Delete\ &All\ Folds<Tab>zD Leva\ &Tutte\ le\ piegature<Tab>zD -" -SEP2- " movimenti all'interno delle piegature menut Fold\ col&umn\ width Larghezza\ piegat&Ure\ in\ colonne @@ -258,7 +283,6 @@ menut &Update &Aggiorna menut &Get\ Block &Importa\ differenze menut &Put\ Block &Esporta\ differenze -" -SEP2- menut &Make<Tab>:make Esegui\ &Make<Tab>:make menut &List\ Errors<Tab>:cl Lista\ &Errori<Tab>:cl @@ -274,7 +298,6 @@ menut &Update<Tab>:cwin A&Ggiorna<Tab>: menut &Open<Tab>:copen &Apri<Tab>:copen menut &Close<Tab>:cclose &Chiudi<Tab>:cclose -" -SEP3- menut &Convert\ to\ HEX<Tab>:%!xxd &Converti\ a\ esadecimale<Tab>:%!xxd menut Conve&rt\ back<Tab>:%!xxd\ -r Conve&rti\ da\ esadecimale<Tab>:%!xxd\ -r @@ -304,7 +327,11 @@ menut Co&lor\ test Test\ &Colori menut &Highlight\ test Test\ &Evidenziamento menut &Convert\ to\ HTML Converti\ ad\ &HTML +let g:menutrans_set_lang_to = "Cambia linguaggio a" let g:menutrans_no_file = "[Senza nome]" +let g:menutrans_spell_change_ARG = 'Cambia\ da\ "%s"\ a' +let g:menutrans_spell_add_ARG_to_word_list = 'Aggiungi\ "%s"\ alla\ Word\ List' +let g:menutrans_spell_ignore_ARG = 'Ignora\ "%s"' " Window / Finestra menut &Window &Finestra @@ -314,10 +341,8 @@ menut S&plit<Tab>^Ws &Dividi\ lo\ sche menut Sp&lit\ To\ #<Tab>^W^^ D&Ividi\ verso\ #<Tab>^W^^ menut Split\ &Vertically<Tab>^Wv Di&Vidi\ verticalmente<Tab>^Wv menut Split\ File\ E&xplorer Aggiungi\ finestra\ e&Xplorer -" -SEP1- menut &Close<Tab>^Wc &Chiudi<Tab>^Wc menut Close\ &Other(s)<Tab>^Wo C&Hiudi\ altra(e)<Tab>^Wo -" -SEP2- menut Move\ &To &Muovi\ verso menut &Top<Tab>^WK &Cima<Tab>^WK @@ -326,7 +351,6 @@ menut &Left\ side<Tab>^WH Lato\ &Sinist menut &Right\ side<Tab>^WL Lato\ &Destro<Tab>^WL menut Rotate\ &Up<Tab>^WR Ruota\ verso\ l'&Alto<Tab>^WR menut Rotate\ &Down<Tab>^Wr Ruota\ verso\ il\ &Basso<Tab>^Wr -" -SEP3- menut &Equal\ Size<Tab>^W= &Uguale\ ampiezza<Tab>^W= menut &Max\ Height<Tab>^W_ &Altezza\ massima<Tab>^W_ menut M&in\ Height<Tab>^W1_ A&Ltezza\ minima<Tab>^W1_ @@ -335,12 +359,10 @@ menut Min\ Widt&h<Tab>^W1\| Larghezza\ " The popup menu menut &Undo &Annulla -" -SEP1- menut Cu&t &Taglia menut &Copy &Copia menut &Paste &Incolla menut &Delete &Elimina -" -SEP2- menut Select\ Blockwise Seleziona\ in\ blocco menut Select\ &Word Seleziona\ &Parola menut Select\ &Line Seleziona\ &Linea @@ -352,10 +374,8 @@ menut Open Apri menut Save Salva menut SaveAll Salva\ Tutto menut Print Stampa -" -SEP1- menut Undo Annulla menut Redo Ripristina -" -SEP2- menut Cut Taglia menut Copy Copia menut Paste Incolla @@ -373,16 +393,13 @@ menut WinVSplit Dividi\ verticalmente menut WinMaxWidth Massima\ larghezza menut WinMinWidth Minima\ larghezza menut WinClose Chiudi\ finestra -" -SEP5- menut LoadSesn Carica\ Sessione menut SaveSesn Salva\ Sessione menut RunScript Esegui\ Script -" -SEP6- menut Make Make menut Shell Shell menut RunCtags Esegui\ Ctags menut TagJump Vai\ a\ Tag -" -SEP7- menut Help Aiuto menut FindHelp Cerca\ in\ Aiuto
--- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -400,7 +400,7 @@ syn match vimSetMod contained "&vim\=\|[ " Let: {{{2 " === syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc -VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\|eval\>\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' +VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\%(\s\+eval\)\=\|eval\%(\s\+trim\)\=\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' " Abbreviations: {{{2 " =============