diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:09:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:09:20 +0000 |
commit | 029f72b1a93430b24b88eb3a72c6114d9f149737 (patch) | |
tree | 765d5c2041967f9c6fef195fe343d9234a030e90 /runtime/doc/version9.txt | |
parent | Initial commit. (diff) | |
download | vim-029f72b1a93430b24b88eb3a72c6114d9f149737.tar.xz vim-029f72b1a93430b24b88eb3a72c6114d9f149737.zip |
Adding upstream version 2:9.1.0016.upstream/2%9.1.0016
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'runtime/doc/version9.txt')
-rw-r--r-- | runtime/doc/version9.txt | 41538 |
1 files changed, 41538 insertions, 0 deletions
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt new file mode 100644 index 0000000..697fd79 --- /dev/null +++ b/runtime/doc/version9.txt @@ -0,0 +1,41538 @@ +*version9.txt* For Vim version 9.1. Last change: 2024 Jan 05 + + + VIM REFERENCE MANUAL by Bram Moolenaar + + + *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 the Vim9 script syntax is here! 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: > + :version + +NEW FEATURES |new-9| + Vim script enhancements |new-vim-script-9| + Command line completion in a popup menu |new-popup-compl| + Updated colorschemes |new-colorschemes-9| + Various new items |new-items-9| + +INCOMPATIBLE CHANGES |incompatible-9| + +IMPROVEMENTS |improvements-9| + +COMPILE TIME CHANGES |compile-changes-9| + +PATCHES |patches-9| + +VERSION 9.1 |version-9.1| +Changed |changed-9.1| +Added |added-9.1| +Patches |patches-9.1| + + +See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0. +See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and +|version8.txt| for differences between Vim versions. + +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 +remember him! + + *Bram* *Moolenaar* *Bram-Moolenaar* +Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd +2023 while still working full-time on Vim. The Vim project would not exist +without his ongoing passion to lead and develop Vim and the community for more +than 30 years. Bram was also passionate about his |ICCF| foundation to help +children in Uganda. If you enjoy using Vim, please consider donating! We will +miss his guidance, passion and leadership. + +Obituary Articles: https://github.com/vim/vim/discussions/12742 +Say Farewell: https://github.com/vim/vim/discussions/12737 + +============================================================================== +NEW FEATURES *new-9* + +First an overview of the more interesting new features. A comprehensive list +is below. + + +Vim9 script ~ + *new-vim-script-9* +The Vim script language has been changed step by step over many years, +preserving backwards compatibility. Several choices made in the early days +got in the way of making it work better. At the same time, Vim script is +being used much more often, since there are so many plugins being used. + +Vim9 script provides a syntax that is much more similar to other languages. +In other words: "less weird". Compiled functions are introduced which allow +for a large speed improvement. You can expect around ten times faster +execution, or even more. The price to pay is that Vim9 script is not +backwards compatible. But don't worry, you can still use your old scripts, +the new script language is added, it does not replace the legacy script. + +Information about Vim9 script can be found in the |Vim9| help file. + + +Command line completion in a popup menu ~ + *new-popup-compl* +Before there was the 'wildmenu' option, which uses the space of one line above +the statusline to show matches. Only a few matches fit there. + +Now a popup menu can be used by setting 'wildoptions' to "pum". This allows +for showing many more matches. This requires redrawing more of the display, +but since computers are fast enough that is not a problem. + + +Updated colorschemes ~ + *new-colorschemes-9* +Colorschemes from https://github.com/vim/colorschemes have been included. +They were made to work consistently across many types of terminals. Although +generally an improvement, a lot of personal preference is involved. You can +always get the old version if you prefer it, look here: +https://github.com/vim/colorschemes/blob/master/legacy_colors/ + + +Various new items ~ + *new-items-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 +'xtermcodes' request terminal codes from an xterm + + +Ex commands: ~ + +|:abstract| (reserved for future use) +|:argdedupe| remove duplicates from the argument list +|:balt| like ":badd" but also set the alternate file +|:class| (reserved for future use) +|:def| define a Vim9 user function +|:defcompile| compile Vim9 user functions in current script +|:disassemble| disassemble Vim9 user function +|:echoconsole| like :echomsg but write to stdout +|:endinterface| (reserved for future use) +|:endclass| (reserved for future use) +|:enddef| end of a user function started with :def +|:endenum| (reserved for future use) +|:enum| (reserved for future use) +|:eval| evaluate an expression and discard the result +|:export| Vim9: export an item from a script +|:final| declare an immutable variable in Vim9 +|:import| Vim9: import an item from another script +|:interface| (reserved for future use) +|:static| (reserved for future use) +|:type| (reserved for future use) +|:var| variable declaration in Vim9 +|:vim9script| indicates Vim9 script file + + +Ex command modifiers: ~ + +|:legacy| make following command use legacy script syntax +|:vim9cmd| make following command use Vim9 script syntax + + +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 +|charidx()| character index of a byte in a string +|digraph_get()| get digraph +|digraph_getlist()| get all digraphs +|digraph_set()| register digraph +|digraph_setlist()| register multiple digraphs +|echoraw()| output characters as-is +|exists_compiled()| like exists() but check at compile time +|extendnew()| make a new Dictionary and append items +|flatten()| flatten a List +|flattennew()| flatten a copy of a List +|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 +|getcmdscreenpos()| return the current cursor position in the cmdline +|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 +|matchfuzzypos()| fuzzy matches a string in a list of strings +|menu_info()| get information about a menu item +|popup_list()| get list of all popup window IDs +|prompt_getprompt()| get the effective prompt text for a buffer +|prop_add_list()| attach a property at multiple positions +|prop_find()| search for a property +|readblob()| read a file into a Blob +|readdirex()| get a List of file information in a directory +|reduce()| reduce a List to a value +|searchcount()| get number of matches before/after the cursor +|setcellwidths()| set character cell width overrides +|setcharpos()| set character position of cursor, mark, etc. +|setcursorcharpos()| set character position of the cursor +|slice()| take a slice of a List +|strcharlen()| length of a string in characters +|terminalprops()| properties of the terminal +|test_gui_event()| generate a GUI event for testing +|test_null_function()| return a null Funcref +|test_srand_seed()| set the seed value for srand() +|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 +|windowsversion()| get MS-Windows version + + +New Vim variables: ~ + +|v:numbermax| maximum value of a number +|v:numbermin| minimum value of a number (negative) +|v:numbersize| number of bits in a Number +|v:collate| current locale setting for collation order +|v:exiting| vim exit code +|v:colornames| dictionary that maps color names to hex color strings +|v:sizeofint| number of bytes in an int +|v:sizeoflong| number of bytes in a long +|v:sizeofpointer| number of bytes in a pointer +|v:maxcol| maximum line length + + +New autocommand events: ~ + +|CompleteDonePre| after Insert mode completion done, before clearing info +|DirChangedPre| before the working directory will change +|InsertLeavePre| just before leaving Insert mode +|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 operators: ~ + +|>>| bitwise right shift +|<<| bitwise left shift +|??| falsy operator + +New runtime files: ~ + +Too many to list here. + +============================================================================== +INCOMPATIBLE CHANGES *incompatible-9* + +There is only one change that is incompatible with previous releases: + +- Lua arrays are now one-based, they used to be zero-based. + +Note that when using |Vim9| script several things work differently, see +|vim9-differences|. + +============================================================================== +IMPROVEMENTS *improvements-9* + +Various small and useful improvements have been made since Vim 8.2, here is a +summary. + +Many memory leaks, invalid memory accesses and crashes have been fixed. +See the list of patches below: |bug-fixes-9|. + +Support for Vim expression evaluation in a string. |interpolated-string| +Support for evaluating Vim expressions in a heredoc. |:let-heredoc| + +Support for fuzzy matching: +- a string in a List of strings. |fuzzy-matching| +- completion support for command line completion using 'wildoptions'. +- for |:vimgrep|. + +Added support for the |Haiku| OS. + +Support for "lsp" channel mode to simplify LSP server RPC communication +|language-server-protocol|. Support for using a Unix domain socket with a +|channel|. IPv6 support in channels |channel-address|. + +Support for sourcing lines from the current buffer. |:source-range| + +Terminal window improvements: +- Support for opening a terminal in a popup window. |popup-terminal| +- Allow setting underline color in terminal. +- Detect focus events in terminal (|FocusGained| and |FocusLost|). +- Add bell support for the terminal window. ('belloff') +- Support mouse left-right scrolling in a terminal window. + +Support for stopping profiling a Vim script: `:profile stop` and dumping the +report to a file: `:profile dump` . |:profile| + +Completion improvements: +- Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|, + |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands. +- Support using any Vim type for user_data with the completion functions + (|complete-items|). +- Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|). +- Add the "cmdline" option to |getcompletion()| to return the command line + arguments. + +Support for setting the 'foldtext', 'completefunc', 'omnifunc', +'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc', +'imactivatefunc' and 'imstatusfunc' options to a function reference or a +lambda function or a script-local function. + +Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr', +'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', +'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function. + +Improvements in 'fillchars': +- Support for configuring the character used to mark the beginning of a fold, + show a closed fold and show a fold separator using "foldopen", "foldclose" + and "foldsep" respectively in 'fillchars'. +- Support for configuring the character displayed in non existing lines using + "eob" in 'fillchars'. +- Support for using multibyte items with the "stl", "stlnc", "foldopen", + "foldclose" and "foldsep" items in the 'fillchars' option. + +Support for the XChaCha20 encryption method. 'cryptmethod' + +Spell checking: +- Spell check current word with |z=| even when 'spell' is off. +- Add "timeout" to 'spellsuggest' to limit the searching time for spell + suggestions. +- Add support for spell checking CamelCased words by adding "camel" to + 'spelloptions'. + +Support for executing Ex commands in a map without changing the current mode +|<Cmd>| and |<ScriptCmd>|. + +Add optional error code to |:cquit|. + +Recognize numbers as unsigned when "unsigned" is set in 'nrformats'. + +Expand script ID using expand('<SID>') and script name using +expand('<script>'). |expand()| + +Jump to the last accessed tab page using |g<Tab>| and support using the +last accessed tab page in |:tabnext| et al. + +Locale aware sorting using |:sort| and |sort()|. + +Hide cursor when sleeping using |:sleep!|. + +Add "multispace" to 'listchars' to show two or more spaces no matter where +they appear. Add "leadmultispace" to 'listchars' to show two or more leading +spaces. Add "lead" to 'listchars' to set the character used to show leading +spaces. Support specifying a character using the hexadecimal notation in +'listchars' (\x, \u and \U). + +Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options. + +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 the 'P' command in visual mode to paste text in Visual mode without +yanking the deleted text to the unnamed register. |put-Visual-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 the |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. + +Add support for logging on Vim startup (|--log|). + +Add support for customizing the quickfix buffer contents using +'quickfixtextfunc'. Support for the "note" error type (%t) in |errorformat|. +Add support for parsing the end line number (%e) and end column number (%k) +using 'errorformat'. + +Support truncating the tag stack using |settagstack()|. + +Display every option in a separate line when "!" is used with |:set|. + +Add "nostop" to 'backspace' to allow backspacing over the start of insert for +|CTRL-W| and |CTRL-U| also. + +Sync the undo file if 'fsync' is set. + +Support excluding the 'runtimepath' and 'packpath' options from a session file +using "skiprtp" in 'sessionoptions'. + +Support for getting the number of lines (line count) in a buffer using +|getbufinfo()|. + +Support |filter()| and |map()| for blob and string types. + +Support for using a multi-byte character for the tag kind. |tags-file-format| + +Add support for checking whether a function name is valid using |exists()|. + +Update xdiff to version 2.33. Update libvterm to revision 789. + +Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc. + +Add the |t_AU| and |t_8u| termcap codes for underline and undercurl. Add the +t_fd and t_fe termcap codes for detecting focus events. + +Support for indenting C pragmas like normal code. (|cino-P|) + +Add support for defining the syntax fold level. (|:syn-foldlevel|) + +Add support for using \<*xxx> in a string to prepend a modifier to a +character. (|expr-quote|) + +Add support trimming characters at the beginning or end of a string using +|trim()|. + +Make ":verbose pwd" show the scope of the directory. |:pwd-verbose| + +Add the "0o" notation for specifying octal numbers. |scriptversion-4| + +Support for changing to the previous tab-local and window-local directories +using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|) + +Add support for skipping an expression using |search()|. + +Add support for sorting the directory contents returned by the |readdir()| +and |readdirex()| functions by case. + +Add support for executing (|:@|) a register containing line continuation. + +Lua support: +- Call Vim functions from Lua (vim.call() and vim.fn()). +- Convert a Lua function and a closure to a Vim funcref so that it can be + accessed in a Vim script (|lua-funcref|). +- Not backwards compatible: Make Lua arrays one based. +- Add support for using table.insert() and table.remove() functions with Vim + lists. +- Support for running multiple Ex-mode commands using vim.command(). +- Add vim.lua_version to get the Lua version. +- Add support for accessing Vim namespace dictionaries from Lua + (|lua-vim-variables|). + +Support for new UTF-8 characters from Unicode release 13. + +Support for using a command block (|:command-repl|) when defining a |:command| +or an |:autocmd|. + +Support for using |:z!| to use the Vim display height instead of the current +window height. + +Support for deleting a buffer-local command using ":delcommand -buffer {cmd}". + +When formatting a // comment after a statement, find the start of the line +comment, insert the comment leader and indent the comment properly (|fo-/|). + +Add the "numhl" argument to `:sign define` to use a separate highlight group +for the line number on a line where a sign is placed. |:sign-define| + +When $SHELL ends in "nologin" or "false", start Vim in restricted mode. + +TermDebug enhancements: +- Support for showing the disassembled code in a separate window. +- Support for the GDB until command. +- Use a separate group for the signs. + +xxd: Support for showing offset as a decimal number (-d). + +The C omni-complete plugin (|ft-c-omni|), the file type detection script +(ft.vim) and the syntax menu generation script (makemenu.vim) have been +rewritten using the Vim9 script syntax. + +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. + +Many Coverity static analysis warnings have been fixed. + +============================================================================== +COMPILE TIME CHANGES *compile-changes-9* + +The following features are now enabled in all the builds: + |+cindent| + |+jumplist| + |+lispindent| + |+num64| + |+smartindent| + |+tag_binary| + |+title| + +The following features have been removed. They are either obsolete or didn't +work properly: + - Athena and neXTaw GUI support (use Motif instead) + - EBCDIC support + - Atari MiNT and BeOS + - Mac Carbon GUI (use MacVim instead) + +The rgb.txt file is no longer included, use colors/lists/default.vim instead. + +Several large source files were split, mainly to make it easier to inspect +code coverage information. Source files have also been refactored for +maintainability. + +Support for building Vim with Mingw64 clang compiler on MS-Windows. + +Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and +Ruby 3.1.0. + +============================================================================== +PATCHES *patches-9* *bug-fixes-9* + *patches-after-8.2* + +The list of patches that got included since 8.2.0. This includes all the new +features, but does not include runtime file changes (syntax, indent, help, +etc.) + +Patch 8.2.0001 +Problem: #endif comments do not reflect corresponding #ifdef. +Solution: Update the comments. (Rene Nyffenegger, closes #5351) +Files: src/ui.c + +Patch 8.2.0002 +Problem: "dj" only deletes first line of closed fold. +Solution: Adjust last line of operator for linewise motion. (closes #5354) +Files: src/ops.c, src/testdir/test_fold.vim + +Patch 8.2.0003 +Problem: Build file dependencies are incomplete. +Solution: Fix the dependencies. (Ken Takata, closes #5356) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, + src/Makefile + +Patch 8.2.0004 +Problem: Get E685 and E931 if buffer reload is interrupted. +Solution: Do not abort deleting a dummy buffer. (closes #5361) +Files: src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim, + src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c, + src/window.c, src/vim.h + +Patch 8.2.0005 +Problem: Duplication in version info. +Solution: Use preprocessor string concatenation. (Ken Takata, closes #5357) +Files: src/version.h + +Patch 8.2.0006 +Problem: Test using long file name may fail. (Vladimir Lomov) +Solution: Limit the name length. (Christian Brabandt, closes #5358) +Files: src/testdir/test_display.vim + +Patch 8.2.0007 +Problem: Popup menu positioned wrong with folding in two tabs. +Solution: Update the cursor line height. (closes #5353) +Files: src/move.c, src/proto/move.pro, src/popupmenu.c, + src/testdir/test_ins_complete.vim, + src/testdir/dumps/Test_pum_with_folds_two_tabs.dump + +Patch 8.2.0008 +Problem: Test72 is old style. +Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5362) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test72.in, src/testdir/test72.ok, + src/testdir/test_undo.vim + +Patch 8.2.0009 +Problem: VMS: terminal version doesn't build. +Solution: Move MIN definition. Adjust #ifdefs. (Zoltan Arpadffy) +Files: src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms + +Patch 8.2.0010 +Problem: Test64 is old style. +Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5363) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test64.in, src/testdir/test64.ok, + src/testdir/test95.in, src/testdir/test_regexp_latin.vim + +Patch 8.2.0011 +Problem: Screen updating wrong when opening preview window. +Solution: Redraw the window when the preview window opens. +Files: src/popupmenu.c, src/testdir/test_ins_complete.vim, + src/testdir/dumps/Test_pum_with_preview_win.dump + +Patch 8.2.0012 +Problem: Some undo functionality is not tested. +Solution: Add a few more test cases. (Dominique Pellé, closes #5364) +Files: src/testdir/test_undo.vim + +Patch 8.2.0013 +Problem: Not using a typedef for condstack. +Solution: Add a typedef. +Files: src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c, + src/ex_cmds.h, src/proto/ex_eval.pro + +Patch 8.2.0014 +Problem: Test69 and test95 are old style. +Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5365) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test69.in, src/testdir/test69.ok, + src/testdir/test95.in, src/testdir/test95.ok, + src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim + +Patch 8.2.0015 +Problem: Not all modeline variants are tested. +Solution: Add modeline tests. (Dominique Pellé, closes #5369) +Files: src/testdir/test_modeline.vim + +Patch 8.2.0016 +Problem: Test name used twice, option not restored properly. +Solution: Rename function, restore option with "&". +Files: src/testdir/test_textformat.vim + +Patch 8.2.0017 +Problem: OS/2 and MS-DOS are still mentioned, even though support was + removed long ago. +Solution: Update documentation. (Yegappan Lakshmanan, closes #5368) +Files: runtime/doc/autocmd.txt, runtime/doc/change.txt, + runtime/doc/cmdline.txt, runtime/doc/editing.txt, + runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt, + runtime/doc/options.txt, runtime/doc/print.txt, + runtime/doc/quickfix.txt, runtime/doc/repeat.txt, + runtime/doc/starting.txt, runtime/doc/usr_01.txt, + runtime/doc/usr_05.txt, runtime/doc/usr_41.txt, + runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim, + runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h + +Patch 8.2.0018 +Problem: :join does not add white space where it should. (Zdenek Dohnal) +Solution: Handle joining multiple lines properly. +Files: src/ops.c, src/testdir/test_join.vim + +Patch 8.2.0019 +Problem: Cannot get number of lines of another buffer. +Solution: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto, + closes #5370) +Files: src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim, + runtime/doc/eval.txt + +Patch 8.2.0020 +Problem: Mouse clicks in the command line not tested. +Solution: Add tests. (Dominique Pellé, closes #5366) +Files: src/testdir/test_termcodes.vim + +Patch 8.2.0021 +Problem: Timer test fails too often on Travis with macOS. +Solution: Be less strict with the time. +Files: src/testdir/test_timers.vim + +Patch 8.2.0022 +Problem: Click in popup window doesn't close it in the GUI. (Sergey Vlasov) +Solution: When processing the selection also send a button release event. + (closes #5367) +Files: src/gui.c + +Patch 8.2.0023 +Problem: Command line editing not sufficiently tested. +Solution: Add more tests. (Dominique Pellé, closes #5374) +Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, + src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim + +Patch 8.2.0024 +Problem: Filetype Rego not recognized. +Solution: Add *.rego. (Matt Dunford, closes #5376) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0025 +Problem: Repeated word in comment. +Solution: Remove one. (Rene Nyffenegger, closes #5384) +Files: src/structs.h + +Patch 8.2.0026 +Problem: Still some /* */ comments. +Solution: Convert to // comments. +Files: src/message.c, src/message_test.c, src/misc1.c, src/misc2.c, + src/move.c + +Patch 8.2.0027 +Problem: Still some /* */ comments. +Solution: Convert to // comments. +Files: src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c, + src/version.c + +Patch 8.2.0028 +Problem: Searchpairpos() is not tested. +Solution: Add tests. Also improve searchpair() testing. (Dominique Pellé, + closes #5388) +Files: src/testdir/test_search.vim + +Patch 8.2.0029 +Problem: MS-Windows: crash with empty job command. +Solution: Check for NULL result. (Yasuhiro Matsumoto, closes #5390) +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 8.2.0030 +Problem: "gF" does not work on output of "verbose command". +Solution: Recognize " line " and translations. (closes #5391) +Files: src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim + +Patch 8.2.0031 (after 8.2.0029) +Problem: MS-Windows: test for empty job fails +Solution: Check for error message, make it also fail on Unix. +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 8.2.0032 (after 8.2.0031) +Problem: MS-Windows: test for blank job fails +Solution: Check before escaping. +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 8.2.0033 +Problem: Crash when make_extmatch() runs out of memory. +Solution: Check for NULL. (Dominique Pellé, closes #5392) +Files: src/regexp_bt.c, src/regexp_nfa.c + +Patch 8.2.0034 +Problem: Missing check for out of memory. +Solution: Check for NULL after vim_strsave(). (Dominique Pellé, + closes #5393) +Files: src/filepath.c + +Patch 8.2.0035 +Problem: Saving and restoring called_emsg is clumsy. +Solution: Count the number of error messages. +Files: src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c, + src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c, + src/regexp.c, src/search.c, src/testing.c, src/globals.h + +Patch 8.2.0036 +Problem: Not enough test coverage for match functions. +Solution: Add a few more test cases. (Dominique Pellé, closes #5394) + Add error number. +Files: src/testdir/test_match.vim + +Patch 8.2.0037 +Problem: Missing renamed message. +Solution: Now really add the error number. +Files: src/highlight.c + +Patch 8.2.0038 +Problem: Spell suggestions insufficiently tested. +Solution: Add spell suggestion tests. (Dominique Pellé, closes #5398) +Files: src/testdir/test_spell.vim + +Patch 8.2.0039 +Problem: Memory access error when "z=" has no suggestions. +Solution: Check for negative index. +Files: src/testdir/test_spell.vim, src/spellsuggest.c + +Patch 8.2.0040 +Problem: Timers test is still flaky on Travis for Mac. +Solution: Run separately instead of as part of test_alot. +Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim + +Patch 8.2.0041 +Problem: Leaking memory when selecting spell suggestion. +Solution: Free previous value at the right time. +Files: src/spellsuggest.c + +Patch 8.2.0042 +Problem: Clearing funccal values twice. +Solution: Remove clearing individual fields. +Files: src/userfunc.c + +Patch 8.2.0043 +Problem: Timers test is still flaky on Travis for Mac. +Solution: Increase maximum expected time. +Files: src/testdir/test_timers.vim + +Patch 8.2.0044 +Problem: Expression type is used inconsistently. +Solution: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename + "TYPE_" to "ETYPE_" to avoid confusion. +Files: src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c + +Patch 8.2.0045 (after 8.2.0044) +Problem: Script test fails. +Solution: For numbers "is" and "isnot" work like "==" and "!=". +Files: src/eval.c + +Patch 8.2.0046 +Problem: Tests for spell suggestions are slow. +Solution: Use shorter words. Test with latin1 and utf-8 to cover more code. + (Dominique Pellé, closes #5399) +Files: src/testdir/test_spell.vim + +Patch 8.2.0047 +Problem: Cannot skip tests for specific MS-Windows platform. +Solution: Add windowsversion(). +Files: src/os_win32.c, src/globals.h, src/evalfunc.c, + runtime/doc/eval.txt, src/testdir/gen_opt_test.vim, + src/testdir/test_options.vim + +Patch 8.2.0048 +Problem: Another timers test is flaky on Travis for Mac. +Solution: Increase maximum expected time. +Files: src/testdir/test_timers.vim + +Patch 8.2.0049 +Problem: Command line completion not fully tested. +Solution: Add more test cases. Make help sorting stable. (Dominique Pellé, + closes #5402) +Files: src/ex_cmds.c, src/testdir/test_cd.vim, + src/testdir/test_cmdline.vim, src/testdir/test_help.vim, + src/testdir/test_menu.vim, src/testdir/test_options.vim, + src/testdir/test_syntax.vim + +Patch 8.2.0050 +Problem: After deleting a file mark it is still in viminfo. +Solution: When a file mark was deleted more recently than the mark in the + merged viminfo file was updated, do not store the mark. (Pavol + Juhas, closes #5401, closes #1339) +Files: src/mark.c, src/testdir/test_marks.vim, + src/testdir/test_viminfo.vim, src/viminfo.c + +Patch 8.2.0051 (after 8.2.0049) +Problem: Command line completion test skipped. (Christian Brabandt) +Solution: Invert condition. +Files: src/testdir/test_cmdline.vim + +Patch 8.2.0052 +Problem: More-prompt not properly tested. +Solution: Add a test case. (Dominique Pellé, closes #5404) +Files: src/testdir/test_messages.vim + +Patch 8.2.0053 +Problem: windowsversion() does not always return the right value. +Solution: Add a compatibility section in the manifest. (Ken Takata, + closes #5407) +Files: src/gvim.exe.mnf + +Patch 8.2.0054 +Problem: :diffget and :diffput don't have good completion. +Solution: Add proper completion. (Dominique Pellé, closes #5409) +Files: runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c, + src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h + +Patch 8.2.0055 +Problem: Cannot use ":gui" in vimrc with VIMDLL enabled. +Solution: Change the logic, check "gui.starting". (Ken Takata, closes #5408) +Files: src/gui.c + +Patch 8.2.0056 +Problem: Execution stack is incomplete and inefficient. +Solution: Introduce a proper execution stack and use it instead of + sourcing_name/sourcing_lnum. Create a string only when used. +Files: src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c + src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c, + src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro, + src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c, + src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c, + src/kword_test.c, src/testdir/test_debugger.vim + +Patch 8.2.0057 (after 8.2.0056) +Problem: Cannot build with small features. +Solution: Add #ifdefs. +Files: src/scriptfile.c + +Patch 8.2.0058 +Problem: Running tests changes ~/.viminfo. +Solution: Make 'viminfo' empty when summarizing tests results. (closes #5414) +Files: src/testdir/summarize.vim + +Patch 8.2.0059 +Problem: Compiler warnings for unused variables in small build. (Tony + Mechelynck) +Solution: Add #ifdef. +Files: src/scriptfile.c + +Patch 8.2.0060 +Problem: Message test only runs with one encoding. (Dominique Pellé) +Solution: Run the test with "utf-8" and "latin1". Fix underflow. (related + to #5410) +Files: src/message_test.c, src/message.c + +Patch 8.2.0061 +Problem: The execute stack can grow big and never shrinks. +Solution: Reduce the size in garbage collect. +Files: src/eval.c + +Patch 8.2.0062 +Problem: Memory test is flaky on FreeBSD. +Solution: Add a short sleep before getting the first size. +Files: src/testdir/test_memory_usage.vim + +Patch 8.2.0063 +Problem: Wrong size argument to vim_snprintf(). (Dominique Pellé) +Solution: Reduce the size by the length. (related to #5410) +Files: src/ops.c + +Patch 8.2.0064 +Problem: Diffmode completion doesn't use per-window setting. +Solution: Check if a window is in diff mode. (Dominique Pellé, closes #5419) +Files: src/buffer.c, src/testdir/test_diffmode.vim + +Patch 8.2.0065 +Problem: Amiga and alikes: autoopen only used on Amiga OS4. +Solution: Adjust #ifdefs. (Ola Söder, closes #5413) +Files: src/os_amiga.c + +Patch 8.2.0066 +Problem: Some corners of vim_snprintf() are not tested. +Solution: Add a test in C. (Dominique Pellé, closes #5422) +Files: src/message_test.c + +Patch 8.2.0067 +Problem: ERROR_UNKNOWN clashes on some systems. +Solution: Rename ERROR_ to FCERR_. (Ola Söder, closes #5415) +Files: src/evalfunc.c, src/userfunc.c, src/vim.h + +Patch 8.2.0068 +Problem: Crash when using Python 3 with "utf32" encoding. (Dominique Pellé) +Solution: Use "utf-8" whenever enc_utf8 is set. (closes #5423) +Files: src/testdir/test_python3.vim, src/if_py_both.h + +Patch 8.2.0069 +Problem: ETYPE_ is used for two different enums. +Solution: Rename one to use EXPR_. +Files: src/structs.h, src/eval.c, src/debugger.c + +Patch 8.2.0070 +Problem: Crash when using Python 3 with "debug" encoding. (Dominique Pellé) +Solution: Use "euc-jp" whenever enc_dbcs is set. +Files: src/testdir/test_python3.vim, src/if_py_both.h + +Patch 8.2.0071 +Problem: Memory test often fails on Cirrus CI. +Solution: Allow for more tolerance in the upper limit. Remove sleep. +Files: src/testdir/test_memory_usage.vim + +Patch 8.2.0072 (after 8.2.0071) +Problem: Memory test still fails on Cirrus CI. +Solution: Allow for a tiny bit more tolerance in the upper limit. +Files: src/testdir/test_memory_usage.vim + +Patch 8.2.0073 +Problem: Initializing globals with COMMA is clumsy. +Solution: Use INIT2(), INIT3(), etc. +Files: src/vim.h, src/globals.h + +Patch 8.2.0074 +Problem: Python 3 unicode test sometimes fails. +Solution: Make 'termencoding' empty. Correct number of error message. +Files: src/change.c, runtime/doc/options.txt, runtime/doc/message.txt, + src/testdir/test_python3.vim + +Patch 8.2.0075 +Problem: Python 3 unicode test still sometimes fails. +Solution: Skip the test when 'termencoding' is not empty. +Files: src/testdir/test_python3.vim + +Patch 8.2.0076 +Problem: Python 3 unicode test fails on MS-Windows. +Solution: Do not set 'encoding' to "debug" on MS-Windows. +Files: src/testdir/test_python3.vim + +Patch 8.2.0077 +Problem: settagstack() cannot truncate at current index. +Solution: Add the "t" action. (Yegappan Lakshmanan, closes #5417) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/tag.c, + src/testdir/test_tagjump.vim + +Patch 8.2.0078 +Problem: Expanding <sfile> works differently the second time. +Solution: Keep the expanded name when redefining a function. (closes #5425) +Files: src/testdir/test_vimscript.vim, src/userfunc.c + +Patch 8.2.0079 +Problem: Python 3 unicode test still fails on MS-Windows. +Solution: Do not set 'encoding' to "euc-tw" on MS-Windows. +Files: src/testdir/test_python3.vim + +Patch 8.2.0080 +Problem: Globals using INIT4() are not in the tags file. +Solution: Adjust the tags command. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.0081 +Problem: MS-Windows also need the change to support INIT4(). +Solution: Add the ctags arguments. (Ken Takata) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak + +Patch 8.2.0082 +Problem: When reusing a buffer listeners are not cleared. (Axel Forsman) +Solution: Clear listeners when reusing a buffer. (closes #5431) +Files: src/testdir/test_listener.vim, src/buffer.c + +Patch 8.2.0083 +Problem: Text properties wrong when tabs and spaces are exchanged. +Solution: Take text properties into account. (Nobuhiro Takasaki, + closes #5427) +Files: src/edit.c, src/testdir/test_textprop.vim + +Patch 8.2.0084 +Problem: Complete item "user_data" can only be a string. +Solution: Accept any type of variable. (closes #5412) +Files: src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c, + src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt + +Patch 8.2.0085 +Problem: Dead code in builtin functions. +Solution: Clean up the code. +Files: src/evalvars.c, src/sound.c, src/textprop.c + +Patch 8.2.0086 (after 8.2.0084) +Problem: Build error for small version. (Tony Mechelynck) +Solution: Only use "user_data" with the +eval feature. Remove unused + variable. +Files: src/insexpand.c, src/dict.c + +Patch 8.2.0087 +Problem: Crash in command line expansion when out of memory. +Solution: Check for NULL pointer. Also make ExpandGeneric() static. + (Dominique Pellé, closes #5437) +Files: src/cmdexpand.c, src/proto/cmdexpand.pro + +Patch 8.2.0088 +Problem: Insufficient tests for tags; bug in using extra tag field when + using an ex command to position the cursor. +Solution: Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439) +Files: runtime/doc/tagsrch.txt, src/tag.c, + src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim, + src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim + +Patch 8.2.0089 +Problem: Crash when running out of memory in :setfiletype completion. +Solution: Do not allocate memory. (Dominique Pellé, closes #5438) +Files: src/cmdexpand.c + +Patch 8.2.0090 +Problem: Generated files show up in git status. +Solution: Ignore a few more files. +Files: .gitignore + +Patch 8.2.0091 +Problem: Compiler warnings for size_t / int types. +Solution: Change type to size_t. (Mike Williams) +Files: src/scriptfile.c + +Patch 8.2.0092 +Problem: Tags functionality insufficiently tested. +Solution: Add more tags tests. (Yegappan Lakshmanan, closes #5446) +Files: src/testdir/test_tagjump.vim + +Patch 8.2.0093 +Problem: win_splitmove() can make Vim hang. +Solution: Check windows exists in the current tab page. (closes #5444) +Files: src/testdir/test_window_cmd.vim, src/evalwindow.c + +Patch 8.2.0094 +Problem: MS-Windows: cannot build with Strawberry Perl 5.30. +Solution: Define __builtin_expect() as a workaround. (Ken Takata, + closes #5267) +Files: src/if_perl.xs + +Patch 8.2.0095 +Problem: Cannot specify exit code for :cquit. +Solution: Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442) +Files: runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c, + src/testdir/test_quickfix.vim + +Patch 8.2.0096 +Problem: Cannot create tiny popup window in last column. (Daniel Steinberg) +Solution: Remove position limit. (closes #5447) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_20.dump, + src/testdir/dumps/Test_popupwin_21.dump + +Patch 8.2.0097 +Problem: Crash with autocommand and spellfile. (Tim Pope) +Solution: Do not pop exestack when not pushed. (closes #5450) +Files: src/testdir/test_autocmd.vim, src/spellfile.c + +Patch 8.2.0098 +Problem: Exe stack length can be wrong without being detected. +Solution: Add a check when ABORT_ON_INTERNAL_ERROR is defined. +Files: src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c, + src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c, + src/userfunc.c + +Patch 8.2.0099 +Problem: Use of NULL pointer when out of memory. +Solution: Check for NULL pointer. (Dominique Pellé, closes #5449) +Files: src/cmdexpand.c + +Patch 8.2.0100 +Problem: Macros for Ruby are too complicated. +Solution: Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata, + closes #5452) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, + src/configure.ac, src/if_ruby.c + +Patch 8.2.0101 +Problem: Crash when passing null object to ":echomsg". +Solution: Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460) +Files: src/eval.c, src/testdir/test_messages.vim + +Patch 8.2.0102 +Problem: Messages test fails in small version. +Solution: Only use test_null_job() when available. +Files: src/testdir/test_messages.vim + +Patch 8.2.0103 +Problem: Using null object with execute() has strange effects. +Solution: Give an error message for Job and Channel. +Files: src/testdir/test_execute_func.vim, src/globals.h, src/eval.c, + src/evalfunc.c + +Patch 8.2.0104 +Problem: Using channel or job with ":execute" has strange effects. +Solution: Give an error message for Job and Channel. +Files: src/testdir/test_eval_stuff.vim, src/eval.c + +Patch 8.2.0105 +Problem: Vim license not easy to find on github. +Solution: Add a separate LICENCE file. (closes #5458) +Files: LICENSE, Filelist + +Patch 8.2.0106 +Problem: Printf formats are not exactly right. +Solution: Adjust signed/unsigned conversions. (Frazer Clews, closes #5456) +Files: runtime/tools/ccfilter.c, src/libvterm/src/parser.c, + src/libvterm/src/pen.c, src/ui.c + +Patch 8.2.0107 +Problem: Hgignore is out of sync from gitignore. +Solution: Add lines to hgignore. (Ken Takata) +Files: .hgignore + +Patch 8.2.0108 +Problem: When sign text is changed a manual redraw is needed. (Pontus + Lietzler) +Solution: Redraw automatically. (closes #5455) +Files: src/testdir/test_signs.vim, src/sign.c, + src/testdir/dumps/Test_sign_cursor_1.dump, + src/testdir/dumps/Test_sign_cursor_2.dump, + src/testdir/dumps/Test_sign_cursor_3.dump, + src/testdir/dumps/Test_sign_cursor_01.dump, + src/testdir/dumps/Test_sign_cursor_02.dump + +Patch 8.2.0109 +Problem: Corrupted text properties when expanding spaces. +Solution: Reallocate the line. (Nobuhiro Takasaki, closes #5457) +Files: src/edit.c, src/testdir/test_textprop.vim + +Patch 8.2.0110 +Problem: prop_find() is not implemented. +Solution: Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970) +Files: src/evalfunc.c, src/proto/textprop.pro, + src/testdir/test_textprop.vim, src/textprop.c, + runtime/doc/textprop.txt + +Patch 8.2.0111 +Problem: VAR_SPECIAL is also used for booleans. +Solution: Add VAR_BOOL for better type checking. +Files: src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c, + src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h, + src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro, + src/testing.c, src/vim.h, src/viminfo.c + +Patch 8.2.0112 +Problem: Illegal memory access when using 'cindent'. +Solution: Check for NUL byte. (Dominique Pellé, closes #5470) +Files: src/cindent.c, src/testdir/test_cindent.vim + +Patch 8.2.0113 (after 8.2.0095) +Problem: "make cmdidxs" fails. +Solution: Allow address for ":cquit". Add --not-a-term to avoid a delay. +Files: src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak, + src/Make_mvc.mak + +Patch 8.2.0114 +Problem: Info about sourced scripts is scattered. +Solution: Use scriptitem_T for info about a script, including s: variables. + Drop ga_scripts. +Files: src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c + +Patch 8.2.0115 +Problem: Byte2line() does not work correctly with text properties. (Billie + Cleek) +Solution: Take the bytes of the text properties into account. + (closes #5334) +Files: src/testdir/test_textprop.vim, src/memline.c + +Patch 8.2.0116 +Problem: BufEnter autocmd not triggered on ":tab drop". (Andy Stewart) +Solution: Decrement autocmd_no_enter for the last file. (closes #1660, + closes #5473) +Files: src/arglist.c, src/testdir/test_tabpage.vim + +Patch 8.2.0117 +Problem: Crash when using gettabwinvar() with invalid arguments. (Yilin + Yang) +Solution: Use "curtab" if "tp" is NULL. (closes #5475) +Files: src/evalwindow.c, src/testdir/test_getvar.vim + +Patch 8.2.0118 +Problem: Crash when cycling to buffers involving popup window. +Solution: Do not decrement buffer reference count. +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_infopopup_7.dump + +Patch 8.2.0119 +Problem: Message test fails on some platforms. (Elimar Riesebieter) +Solution: Add type cast to vim_snprintf() argument. (Dominique Pellé) +Files: src/message_test.c + +Patch 8.2.0120 +Problem: virtcol() does not check arguments to be valid, which may lead to + a crash. +Solution: Check the column to be valid. Do not decrement MAXCOL. + (closes #5480) +Files: src/evalfunc.c, src/testdir/test_marks.vim + +Patch 8.2.0121 +Problem: filter() and map() on blob don't work. +Solution: Correct the code. (closes #5483) +Files: src/list.c, src/testdir/test_blob.vim + +Patch 8.2.0122 +Problem: Readme files still mention MS-DOS. +Solution: Update readme files. (Ken Takata, closes #5486) +Files: README.md, README.txt, READMEdir/README_dos.txt, + READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt, + runtime/doc/os_win32.txt + +Patch 8.2.0123 +Problem: complete_info() does not work when CompleteDone is triggered. +Solution: Trigger CompleteDone before clearing the info. +Files: src/insexpand.c, runtime/doc/autocmd.txt, + src/testdir/test_ins_complete.vim + +Patch 8.2.0124 +Problem: Compiler warnings for variable types. +Solution: Change type, add type cast. (Mike Williams) +Files: src/memline.c + +Patch 8.2.0125 +Problem: :mode no longer works for any system. +Solution: Always give an error message. +Files: src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c, + src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro, + src/os_unix.c, src/proto/os_unix.pro + +Patch 8.2.0126 (after 8.2.0124) +Problem: Textprop test fails. +Solution: Fix sign in computation. +Files: src/memline.c + +Patch 8.2.0127 +Problem: Some buffer commands work in a popup window. +Solution: Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494) +Files: src/ex_docmd.c, src/testdir/test_popupwin.vim + +Patch 8.2.0128 +Problem: Cannot list options one per line. +Solution: Use ":set!" to list one option per line. +Files: src/ex_docmd.c, src/option.c, src/proto/option.pro, src/vim.h, + src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.vim, + runtime/doc/options.txt + +Patch 8.2.0129 +Problem: MS-Windows installer doesn't use Turkish translations. +Solution: Enable the Turkish translations and fix a few. (Emir Sarı, + closes #5493) +Files: nsis/gvim.nsi, nsis/lang/turkish.nsi + +Patch 8.2.0130 +Problem: Python3 ranges are not tested. +Solution: Add test. (Dominique Pellé, closes #5498) +Files: src/testdir/test_python3.vim + +Patch 8.2.0131 +Problem: Command line is not cleared when switching tabs and the command + line height differs. +Solution: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino, + closes #5495) +Files: src/testdir/dumps/Test_cmdlineclear_tabenter.dump, + src/testdir/test_cmdline.vim, src/window.c + +Patch 8.2.0132 +Problem: Script may be re-used when deleting and creating a new one. +Solution: When the inode matches, also check the file name. +Files: src/scriptfile.c, src/testdir/test_source.vim + +Patch 8.2.0133 +Problem: Invalid memory access with search command. +Solution: When :normal runs out of characters in bracketed paste mode break + out of the loop.(closes #5511) +Files: src/testdir/test_search.vim, src/edit.c + +Patch 8.2.0134 +Problem: Some map functionality not covered by tests. +Solution: Add tests. (Yegappan Lakshmanan, closes #5504) +Files: src/testdir/test_maparg.vim, src/testdir/test_mapping.vim + +Patch 8.2.0135 (after 8.2.0133) +Problem: Bracketed paste can still cause invalid memory access. (Dominique + Pellé) +Solution: Check for NULL pointer. +Files: src/edit.c, src/testdir/test_search.vim + +Patch 8.2.0136 +Problem: Stray ch_logfile() call. +Solution: Remove it. (closes #5503) +Files: src/testdir/test_source.vim + +Patch 8.2.0137 +Problem: Crash when using win_execute() from a new tab. +Solution: Set the tp_*win pointers. (Ozaki Kiichi, closes #5512) +Files: src/testdir/test_winbuf_close.vim, src/window.c + +Patch 8.2.0138 +Problem: Memory leak when starting a job fails. +Solution: Free the list of arguments. (Ozaki Kiichi, closes #5510) +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 8.2.0139 +Problem: MS-Windows: default for IME is inconsistent. +Solution: Also make IME default enabled with MVC. (Ken Takata, closes #5508) +Files: src/Make_mvc.mak + +Patch 8.2.0140 +Problem: CI does not test building doc tags. +Solution: Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi, + closes #5513) +Files: .travis.yml, Filelist, ci/if_ver-1.vim, ci/if_ver-2.vim, + ci/if_ver-cmd.vim, runtime/doc/Makefile, runtime/doc/doctags.vim, + src/testdir/if_ver-1.vim, src/testdir/if_ver-2.vim + +Patch 8.2.0141 +Problem: No swift filetype detection. +Solution: Add swift, swiftgyb and sil. (Emir Sarı, closes #5517) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0142 +Problem: Possible to enter popup window with CTRL-W p. (John Devin) +Solution: Check entered window is not a popup window. (closes #5515) +Files: src/window.c, src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_previewpopup_9.dump, + src/testdir/dumps/Test_popupwin_previewpopup_10.dump + +Patch 8.2.0143 +Problem: Coverity warning for possible use of NULL pointer. +Solution: Check argv is not NULL. +Files: src/channel.c + +Patch 8.2.0144 +Problem: Some mapping code is not fully tested. +Solution: Add more test cases. (Yegappan Lakshmanan, closes #5519) +Files: src/testdir/test_langmap.vim, src/testdir/test_maparg.vim, + src/testdir/test_mapping.vim + +Patch 8.2.0145 +Problem: Using #error for compilation errors should be OK now. +Solution: Use #error. (Ken Takata, closes #5299) +Files: src/blowfish.c, src/vim.h + +Patch 8.2.0146 +Problem: Wrong indent when 'showbreak' and 'breakindent' are set and + 'briopt' includes "sbr". +Solution: Reset "need_showbreak" where needed. (Ken Takata, closes #5523) +Files: src/drawline.c, src/testdir/test_breakindent.vim + +Patch 8.2.0147 +Problem: Block Visual mode operators not correct when 'linebreak' set. +Solution: Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524) +Files: src/ops.c, src/testdir/test_listlbr.vim + +Patch 8.2.0148 +Problem: Mapping related function in wrong source file. +Solution: Move the function. Add a few more test cases. (Yegappan + Lakshmanan, closes #5528) +Files: src/map.c, src/proto/term.pro, src/term.c, + src/testdir/test_mapping.vim + +Patch 8.2.0149 +Problem: Maintaining a Vim9 branch separately is more work. +Solution: Merge the Vim9 script changes. +Files: README.md, README_VIM9.md, runtime/doc/Makefile, + runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/tags, + runtime/doc/vim9.txt, runtime/ftplugin/vim.vim, + runtime/indent/vim.vim, runtime/syntax/vim.vim, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/blob.c, + src/channel.c, src/dict.c, src/eval.c, src/evalbuffer.c, + src/evalfunc.c, src/evalvars.c, src/ex_cmdidxs.h, src/ex_cmds.h, + src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/globals.h, + src/gui.c, src/if_lua.c, src/if_py_both.h, src/insexpand.c, + src/json.c, src/list.c, src/macros.h, src/main.c, src/message.c, + src/misc1.c, src/proto.h, src/proto/blob.pro, src/proto/eval.pro, + src/proto/evalfunc.pro, src/proto/evalvars.pro, + src/proto/ex_docmd.pro, src/proto/ex_eval.pro, src/proto/list.pro, + src/proto/message.pro, src/proto/scriptfile.pro, + src/proto/userfunc.pro, src/proto/vim9compile.pro, + src/proto/vim9execute.pro, src/proto/vim9script.pro, + src/scriptfile.c, src/session.c, src/structs.h, src/syntax.c, + src/testdir/Make_all.mak, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim, src/testing.c, src/userfunc.c, + src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/vim9script.c, src/viminfo.c + +Patch 8.2.0150 +Problem: Cannot define python function when using :execute. (Yasuhiro + Matsumoto) +Solution: Do not recognize "def" inside "function. +Files: src/testdir/test_vim9_script.vim, src/userfunc.c + +Patch 8.2.0151 +Problem: Detecting a script was already sourced is unreliable. +Solution: Do not use the inode number. +Files: src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim + +Patch 8.2.0152 +Problem: Restoring ctrl_x_mode is not needed. +Solution: Remove restoring the old value, it's changed again soon. +Files: src/insexpand.c + +Patch 8.2.0153 +Problem: Warning shows when listing version info. +Solution: Use "-u NONE". (Ozaki Kiichi, closes #5534) +Files: .travis.yml + +Patch 8.2.0154 +Problem: Reallocating the list of scripts is inefficient. +Solution: Instead of using a growarray of scriptitem_T, store pointers and + allocate each scriptitem_T separately. Also avoids that the + growarray pointers change when sourcing a new script. +Files: src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c, + src/profiler.c, src/scriptfile.c, src/vim9compile.c, + src/vim9execute.c, src/vim9script.c + +Patch 8.2.0155 +Problem: Warnings from MinGW compiler. (John Marriott) Json test fails when + building without +float feature. +Solution: Init variables. Fix Json parsing. Skip a few tests that require + the +float feature. +Files: src/vim9script.c, src/vim9compile.c, src/vim9execute.c, + src/if_py_both.h, src/json.c, src/testdir/test_method.vim + +Patch 8.2.0156 +Problem: Various typos in source files and tests. +Solution: Fix the typos. (Emir Sarı, closes #5532) +Files: Makefile, src/INSTALLvms.txt, src/Make_vms.mms, src/beval.h, + src/buffer.c, src/charset.c, src/evalvars.c, src/ex_cmds.c, + src/ex_docmd.c, src/getchar.c, src/gui.c, src/gui_mac.c, + src/gui_photon.c, src/if_perl.xs, + src/libvterm/t/11state_movecursor.test, + src/libvterm/t/41screen_unicode.test, src/mbyte.c, src/memline.c, + src/normal.c, src/ops.c, src/option.c, src/option.h, + src/os_unix.c, src/os_win32.c, src/quickfix.c, src/register.c, + src/spell.c, src/tag.c, src/term.c, + src/testdir/test_breakindent.vim, src/testdir/test_channel.vim, + src/testdir/test_cindent.vim, src/testdir/test_digraph.vim, + src/testdir/test_edit.vim, src/testdir/test_netbeans.vim, + src/testdir/test_quickfix.vim, src/testdir/test_registers.vim, + src/testdir/test_stat.vim, src/ui.c, src/xxd/xxd.c + +Patch 8.2.0157 +Problem: Vim9 script files not in list of distributed files. +Solution: Add the entries. +Files: Filelist + +Patch 8.2.0158 (after 8.2.0123) +Problem: Triggering CompleteDone earlier is not backwards compatible. + (Daniel Hahler) +Solution: Add CompleteDonePre instead. +Files: src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c, + src/vim.h, src/testdir/test_ins_complete.vim + +Patch 8.2.0159 +Problem: Non-materialized range() list causes problems. (Fujiwara Takuya) +Solution: Materialize the list where needed. +Files: src/testdir/test_functions.vim, src/testdir/test_python3.vim, + src/userfunc.c, src/evalfunc.c, src/highlight.c, src/evalvars.c, + src/popupmenu.c, src/insexpand.c, src/json.c, src/channel.c, + src/eval.c + +Patch 8.2.0160 (after 8.2.0159) +Problem: Range test fails. +Solution: Include change in list code. (#5541) +Files: src/list.c + +Patch 8.2.0161 +Problem: Not recognizing .gv file as dot filetype. +Solution: Add *.gv to dot pattern. (closes #5544) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0162 +Problem: Balloon test fails in the GUI. +Solution: Skip test in the GUI. +Files: src/testdir/test_functions.vim + +Patch 8.2.0163 +Problem: Test hangs on MS-Windows console. +Solution: use feedkeys() instead of test_feedinput(). (Ken Takata) +Files: src/testdir/test_functions.vim, src/testing.c + +Patch 8.2.0164 +Problem: Test_alot takes too long. +Solution: Run several tests individually. +Files: src/testdir/test_alot.vim, src/testdir/Make_all.mak + +Patch 8.2.0165 +Problem: Coverity warning for using NULL pointer. +Solution: Add missing "else". +Files: src/vim9compile.c + +Patch 8.2.0166 +Problem: Coverity warning for using uninitialized variable. +Solution: Check for failure. +Files: src/vim9execute.c + +Patch 8.2.0167 +Problem: Coverity warning for ignoring return value. +Solution: Check the return value and jump if failed. +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0168 +Problem: Coverity warning for assigning NULL to an option. +Solution: Use empty string instead of NULL. +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0169 +Problem: Coverity warning for dead code. +Solution: Check if inside try-finally. +Files: src/vim9execute.c + +Patch 8.2.0170 +Problem: Coverity warning for ignoring return value. +Solution: Check the return value and return if failed. +Files: src/vim9compile.c + +Patch 8.2.0171 +Problem: Coverity warning for using uninitialized buffer. +Solution: Check the skip flag. +Files: src/userfunc.c + +Patch 8.2.0172 +Problem: Coverity warning for not restoring character. +Solution: Restore the character also in case of failure. +Files: src/vim9script.c + +Patch 8.2.0173 +Problem: Build fails with old compiler. +Solution: Do not use anonymous unions. (John Marriott) +Files: src/vim9compile.c, src/evalvars.c, src/list.c, src/structs.h, + src/evalfunc.c, src/channel.c, src/if_mzsch.c, src/if_py_both.h + +Patch 8.2.0174 +Problem: Various commands not completely tested. +Solution: Add more test cases. (Yegappan Lakshmanan, closes #5551) +Files: src/testdir/test_excmd.vim, src/testdir/test_fnameescape.vim, + src/testdir/test_ga.vim, src/testdir/test_global.vim, + src/testdir/test_move.vim, src/testdir/test_options.vim, + src/testdir/test_packadd.vim, src/testdir/test_sort.vim, + src/testdir/test_substitute.vim, src/testdir/test_textformat.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0175 +Problem: Crash when removing list element in map(). +Solution: Lock the list. (closes #2652) +Files: src/testdir/test_filter_map.vim, src/list.c + +Patch 8.2.0176 +Problem: Generating os headers does not work for Swedish. +Solution: Set the locale to C. (Christian Brabandt, closes #5258) +Files: src/osdef.sh + +Patch 8.2.0177 +Problem: Memory leak in get_tags(). +Solution: Free matches when finding a pseudo-tag line. (Dominique Pellé, + closes #5553) +Files: src/tag.c + +Patch 8.2.0178 +Problem: With VTP the screen may not be restored properly. +Solution: Add another set of saved RGB values. (Nobuhiro Takasaki, + closes #5548) +Files: src/os_win32.c + +Patch 8.2.0179 +Problem: Still a few places where range() does not work. +Solution: Fix using range() causing problems. +Files: src/terminal.c, src/testdir/test_functions.vim, + src/testdir/test_popupwin.vim, src/popupwin.c, src/tag.c, + src/testdir/dumps/Test_popupwin_20.dump, + src/testdir/dumps/Test_popupwin_21.dump, + src/testdir/dumps/Test_popup_settext_07.dump, src/globals.h + +Patch 8.2.0180 +Problem: Test for wrapmargin fails if terminal is not 80 columns. +Solution: Vertical split the window. (Ken Takata, closes #5554) +Files: src/testdir/test_textformat.vim + +Patch 8.2.0181 +Problem: Problems parsing :term arguments. +Solution: Improve parsing, fix memory leak, add tests. (Ozaki Kiichi, + closes #5536) +Files: src/channel.c, src/proto/channel.pro, src/structs.h, + src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.0182 +Problem: Min() and max() materialize a range() list. +Solution: Compute the result without materializing the list. (#5541) +Files: src/evalfunc.c + +Patch 8.2.0183 +Problem: Tests fail when the float feature is disabled. +Solution: Skip tests that don't work without float support. +Files: src/testdir/shared.vim, src/testdir/test_blob.vim, + src/testdir/test_channel.vim, src/testdir/test_cscope.vim, + src/testdir/test_execute_func.vim, src/testdir/test_expr.vim, + src/testdir/test_functions.vim, src/testdir/test_lambda.vim, + src/testdir/test_listdict.vim, src/testdir/test_lua.vim, + src/testdir/test_options.vim, src/testdir/test_partial.vim, + src/testdir/test_ruby.vim, src/testdir/test_sort.vim, + src/testdir/test_timers.vim, src/testdir/test_true_false.vim, + src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vimscript.vim, src/testdir/test_regexp_latin.vim, + src/testdir/test_glob2regpat.vim + +Patch 8.2.0184 +Problem: Blob test fails. +Solution: Check for different error when float feature is missing. +Files: src/testdir/test_blob.vim + +Patch 8.2.0185 +Problem: Vim9 script: cannot use "if has()" to skip lines. +Solution: Evaluate constant expression at runtime. +Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0186 +Problem: A couple of tests may fail when features are missing. +Solution: Check for features. (Dominique Pellé, closes #5561) +Files: src/testdir/test_functions.vim, src/testdir/test_highlight.vim + +Patch 8.2.0187 +Problem: Redundant code. +Solution: Remove unused assignments. (Dominique Pellé, closes #5557) +Files: src/vim9compile.c + +Patch 8.2.0188 +Problem: Check commands don't work well with Vim9 script. +Solution: Improve constant expression handling. +Files: src/vim9compile.c, src/testdir/check.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0189 +Problem: cd() with NULL argument crashes. +Solution: Check for NULL. (Ken Takata, closes #5558) +Files: src/testdir/test_cd.vim, src/ex_docmd.c + +Patch 8.2.0190 +Problem: Kotlin files are not recognized. +Solution: Detect Kotlin files. (Alkeryn, closes #5560) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0191 +Problem: Cannot put a terminal in a popup window. +Solution: Allow opening a terminal in a popup window. It will always have + keyboard focus until closed. +Files: src/popupwin.c, src/proto/popupwin.pro, src/terminal.c, + src/proto/terminal.pro, src/macros.h, src/mouse.c, + src/highlight.c, src/drawline.c, src/optionstr.c, src/window.c, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_1.dump, + src/testdir/dumps/Test_terminal_popup_2.dump, + src/testdir/dumps/Test_terminal_popup_3.dump + +Patch 8.2.0192 (after 8.2.0191) +Problem: Build failure without +terminal feature. +Solution: Add #ifdefs. +Files: src/popupwin.c + +Patch 8.2.0193 (after 8.2.0191) +Problem: Still build failure without +terminal feature. +Solution: Add more #ifdefs. +Files: src/macros.h + +Patch 8.2.0194 (after 8.2.0193) +Problem: Some commands can cause problems in terminal popup. +Solution: Disallow more commands. +Files: src/macros.h, src/popupwin.c, src/proto/popupwin.pro, + src/arglist.c, src/ex_docmd.c, src/window.c, + src/testdir/test_terminal.vim + +Patch 8.2.0195 +Problem: Some tests fail when run in the GUI. +Solution: Make sure the window width is enough. In the GUI run terminal Vim + in the terminal, if possible. +Files: src/testdir/test_highlight.vim, src/testdir/check.vim, + src/testdir/test_terminal.vim + +Patch 8.2.0196 +Problem: Blocking commands for a finished job in a popup window. +Solution: Do not block commands if the job has finished. Adjust test. +Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/window.c, + src/terminal.c, src/proto/terminal.pro + +Patch 8.2.0197 +Problem: Some Ex commands not sufficiently tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5565) +Files: src/testdir/test_global.vim, src/testdir/test_help.vim, + src/testdir/test_help_tagjump.vim, src/testdir/test_options.vim, + src/testdir/test_substitute.vim, src/testdir/test_textformat.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0198 +Problem: No tests for y/n prompt. +Solution: Add tests. (Dominique Pellé, closes #5564) +Files: src/testdir/test_messages.vim + +Patch 8.2.0199 +Problem: Vim9 script commands not sufficiently tested. +Solution: Add more tests. Fix script-local function use. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, + src/userfunc.c + +Patch 8.2.0200 +Problem: Vim9 script commands not sufficiently tested. +Solution: Add more tests. Fix storing global variable. Make script + variables work. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/evalvars.c, + src/proto/evalvars.pro, src/testdir/test_vim9_script.vim, + src/misc1.c, src/proto/misc1.pro + +Patch 8.2.0201 +Problem: Cannot assign to an imported variable. +Solution: Make it work. +Files: src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0202 +Problem: When 'lazyredraw' is set the window title may not be updated. +Solution: Set "do_redraw" before entering the main loop. (Jason Franklin) +Files: src/main.c + +Patch 8.2.0203 +Problem: :helptags and some other functionality not tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5567) +Files: src/testdir/test_compiler.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_excmd.vim, src/testdir/test_filechanged.vim, + src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim, + src/testdir/test_timers.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.0204 +Problem: Crash when using winnr('j') in a popup window. +Solution: Do not search for neighbors in a popup window. (closes #5568) +Files: src/window.c, src/testdir/test_popupwin.vim, src/evalwindow.c + +Patch 8.2.0205 +Problem: Error code E899 used twice. +Solution: Use E863 for the terminal in popup error. +Files: src/popupwin.c + +Patch 8.2.0206 +Problem: Calling Vim9 function using default argument fails. +Solution: Give an appropriate error. (closes #5572) +Files: src/testdir/test_vim9_script.vim, src/vim9compile.c, + src/vim9execute.c + +Patch 8.2.0207 +Problem: Crash when missing member type on list argument. +Solution: Check for invalid type. (closes #5572) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0208 +Problem: Fnamemodify() does not apply ":~" when followed by ":.". +Solution: Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro + Matsumoto, closes #5577) +Files: runtime/doc/cmdline.txt, src/filepath.c, + src/testdir/test_fnamemodify.vim + +Patch 8.2.0209 +Problem: Function a bit far away from where it's used. +Solution: Move function close to where it's used. (Ken Takata, closes #5569) +Files: src/fileio.c, src/filepath.c + +Patch 8.2.0210 +Problem: Coverity complains about uninitialized field. +Solution: Initialize the field. +Files: src/vim9compile.c + +Patch 8.2.0211 +Problem: Test for ANSI colors fails without an "ls" command. +Solution: Use "dir". (Ken Takata, closes #5582) +Files: src/testdir/test_functions.vim + +Patch 8.2.0212 +Problem: Missing search/substitute pattern hardly tested. +Solution: Add test_clear_search_pat() and tests. (Yegappan Lakshmanan, + closes #5579) +Files: runtime/doc/eval.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro, + src/proto/search.pro, src/proto/testing.pro, src/regexp.c, + src/search.c, src/testdir/test_quickfix.vim, + src/testdir/test_search.vim, src/testdir/test_sort.vim, + src/testdir/test_substitute.vim, src/testing.c + +Patch 8.2.0213 +Problem: Configure does not recognize gcc 10.0 and later. +Solution: Adjust the pattern matching the version number. (Sergei + Trofimovich, closes #5580) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.0214 +Problem: A popup window with a terminal can be made hidden. +Solution: Disallow hiding a terminal popup. +Files: src/testdir/test_terminal.vim, src/popupwin.c, + src/testdir/dumps/Test_terminal_popup_4.dump + +Patch 8.2.0215 (after 8.2.0208) +Problem: Wrong file name shortening. (Ingo Karkat) +Solution: Better check for path separator. (Yasuhiro Matsumoto, + closes #5583, closes #5584) +Files: src/filepath.c, src/testdir/test_fnamemodify.vim + +Patch 8.2.0216 +Problem: Several Vim9 instructions are not tested. +Solution: Add more tests. Fix :disassemble output. Make catch with pattern + work. +Files: src/testdir/test_vim9_script.vim, src/vim9execute.c, + src/vim9compile.c + +Patch 8.2.0217 (after 8.2.0214) +Problem: Terminal test fails on Mac. +Solution: Add a short wait. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0218 +Problem: Several Vim9 instructions are not tested. +Solution: Add more tests. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0219 (after 8.2.0217) +Problem: Terminal test still fails on Mac. +Solution: Skip part of the test on Mac. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0220 +Problem: Terminal test did pass on Mac. +Solution: Remove the skip again. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0221 +Problem: No test for Vim9 += and ..=. +Solution: Add tests. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0222 +Problem: Vim9: optional function arguments don't work yet. +Solution: Implement optional function arguments. +Files: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, + src/structs.h, src/testdir/test_vim9_script.vim + +Patch 8.2.0223 +Problem: Some instructions not yet tested. +Solution: Disassemble more instructions. Move tests to a new file. Compile + call to s:function(). +Files: src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak, + src/testdir/test_vim9_disassemble.vim, src/vim9compile.c, + src/userfunc.c, src/proto/userfunc.pro, src/vim.h + +Patch 8.2.0224 +Problem: compiling :elseif not tested yet. +Solution: Add test for :elseif. Fix generating jumps. +Files: src/testdir/test_vim9_script.vim, src/vim9compile.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0225 +Problem: compiling lambda not tested yet. +Solution: Add test for lambda and funcref. Drop unused instruction arg. +Files: src/testdir/test_vim9_disassemble.vim, src/vim9.h, + src/vim9execute.c + +Patch 8.2.0226 +Problem: Compiling for loop not tested. +Solution: Add a test. Make variable initialization work for more types. +Files: src/testdir/test_vim9_disassemble.vim, src/vim9compile.c + +Patch 8.2.0227 +Problem: Compiling a few instructions not tested. +Solution: Add more test cases. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0228 +Problem: Configure does not recognize gcc version on BSD. +Solution: Do not use "\+" in the pattern matching the version number. (Ozaki + Kiichi, closes #5590) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.0229 +Problem: Compare instructions not tested. +Solution: Add test cases. Fix disassemble with line continuation. +Files: src/testdir/test_vim9_disassemble.vim, src/vim9execute.c, + src/vim9compile.c + +Patch 8.2.0230 +Problem: Terminal popup test is flaky. +Solution: Increase wait time a bit. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0231 +Problem: Silent system command may clear the screen. +Solution: Do not clear the screen in t_te. +Files: src/term.c + +Patch 8.2.0232 +Problem: The :compiler command causes a crash. (Daniel Steinberg) +Solution: Do not use the script index if it isn't set. +Files: src/ex_docmd.c, src/testdir/test_compiler.vim + +Patch 8.2.0233 +Problem: Crash when using garbagecollect() in between rand(). +Solution: Redesign the rand() and srand() implementation. (Yasuhiro + Matsumoto, closes #5587, closes #5588) +Files: src/evalfunc.c, src/testdir/test_random.vim, + runtime/doc/testing.txt, runtime/doc/eval.txt + +Patch 8.2.0234 +Problem: Message test fails on SunOS. +Solution: Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595) +Files: src/message_test.c + +Patch 8.2.0235 +Problem: Draw error when an empty group is removed from 'statusline'. +Solution: Do not use highlighting from a removed group. +Files: src/buffer.c, src/testdir/test_statusline.vim, + src/testdir/dumps/Test_statusline_1.dump + +Patch 8.2.0236 +Problem: MS-Windows uninstall doesn't delete vimtutor.bat. +Solution: Change directory before deletion. (Ken Takata, closes #5603) +Files: src/uninstall.c + +Patch 8.2.0237 +Problem: Crash when setting 'wincolor' on finished terminal window. + (Bakudankun) +Solution: Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes + #5607, closes #5610) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.0238 +Problem: MS-Windows: job_stop() results in exit value zero. +Solution: Call TerminateJobObject() with -1 instead of 0. (Yasuhiro + Matsumoto, closes #5150, closes #5614) +Files: src/os_win32.c, src/testdir/test_channel.vim + +Patch 8.2.0239 +Problem: MS-Windows: 'env' job option does not override existing + environment variables. (Tim Pope) +Solution: Set the environment variables later. (Yasuhiro Matsumoto, + closes #5485, closes #5608) +Files: src/os_win32.c, src/testdir/test_channel.vim + +Patch 8.2.0240 +Problem: Using memory after it was freed. (Dominique Pellé) +Solution: Do not mix conversion buffer with other buffer. +Files: src/viminfo.c, src/vim.h + +Patch 8.2.0241 +Problem: Crash when setting 'buftype' to "quickfix". +Solution: Check that error list is not NULL. (closes #5613) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.0242 +Problem: Preview popup window test fails with long directory name. (Jakub + Kądziołka) +Solution: Use "silent cd". (closes #5615) +Files: src/testdir/test_popupwin.vim + +Patch 8.2.0243 +Problem: Insufficient code coverage for ex_docmd.c functions. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5618) +Files: src/testdir/Make_all.mak, src/testdir/test_arglist.vim, + src/testdir/test_buffer.vim, src/testdir/test_cd.vim, + src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_excmd.vim, src/testdir/test_mapping.vim, + src/testdir/test_quickfix.vim, src/testdir/test_search.vim, + src/testdir/test_sort.vim, src/testdir/test_source.vim, + src/testdir/test_substitute.vim, src/testdir/test_undo.vim, + src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0244 +Problem: Compiler warning in Lua interface. +Solution: Add type cast. (Ken Takata, closes #5621) +Files: src/if_lua.c + +Patch 8.2.0245 +Problem: MSVC: error message if the auto directory already exists. +Solution: Add "if not exists". (Ken Takata, closes #5620) +Files: src/Make_mvc.mak + +Patch 8.2.0246 +Problem: MSVC: deprecation warnings with Ruby. +Solution: Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata, + closes #5622) +Files: src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/vim.h, + src/vimio.h + +Patch 8.2.0247 +Problem: Misleading comment in NSIS installer script. +Solution: Negate the meaning of the comment. (Ken Takata, closes #5627) +Files: nsis/gvim.nsi + +Patch 8.2.0248 +Problem: MS-Windows: dealing with deprecation is too complicated. +Solution: Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build + file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken + Takata, closes #5626) +Files: src/Make_mvc.mak, src/dosinst.h, src/vim.h, src/vimio.h, + src/winclip.c, Filelist + +Patch 8.2.0249 +Problem: MS-Windows: various warnings. +Solution: Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_. + (Ken Takata, closes #5625) +Files: src/GvimExt/Makefile, src/Make_mvc.mak + +Patch 8.2.0250 +Problem: test_clear_search_pat() is unused. +Solution: Remove the function. (Yegappan Lakshmanan, closes #5624) +Files: runtime/doc/eval.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro, + src/proto/search.pro, src/proto/testing.pro, src/regexp.c, + src/search.c, src/testdir/test_writefile.vim, src/testing.c + +Patch 8.2.0251 +Problem: A couple of function return types can be more specific. +Solution: Use a better return type. (Ken Takata, closes #5629) +Files: src/evalfunc.c, src/globals.h + +Patch 8.2.0252 +Problem: Windows compiler warns for using size_t. +Solution: Change to int. (Mike Williams) +Files: src/vim9compile.c + +Patch 8.2.0253 +Problem: Crash when using :disassemble without argument. (Dhiraj Mishra) +Solution: Check for missing argument. (Dominique Pellé, closes #5635, + closes #5637) +Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, + src/ex_cmds.h + +Patch 8.2.0254 +Problem: Compiler warning for checking size_t to be negative. +Solution: Only check for zero. (Zoltan Arpadffy) +Files: src/vim9compile.c + +Patch 8.2.0255 +Problem: VMS: missing files in build. +Solution: Add the files. (Zoltan Arpadffy) +Files: src/Make_vms.mms + +Patch 8.2.0256 +Problem: Time and timer related code is spread out. +Solution: Move time and timer related code to a new file. (Yegappan + Lakshmanan, closes #5604) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/evalfunc.c, src/ex_cmds.c, src/ex_cmds2.c, src/main.c, + src/memline.c, src/misc1.c, src/misc2.c, src/proto.h, + src/proto/ex_cmds.pro, src/proto/ex_cmds2.pro, src/proto/main.pro, + src/proto/memline.pro, src/proto/misc1.pro, src/proto/misc2.pro, + src/proto/time.pro, src/time.c + +Patch 8.2.0257 +Problem: Cannot recognize a terminal in a popup window. +Solution: Add the win_gettype() function. +Files: runtime/doc/eval.txt, src/evalfunc.c, src/evalwindow.c, + src/proto/evalwindow.pro, src/testdir/test_cmdline.vim, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_1.dump + +Patch 8.2.0258 +Problem: ModifyOtherKeys cannot be temporarily disabled. +Solution: Add echoraw() with an example for modifyOtherKeys. +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_functions.vim, + src/testdir/dumps/Test_functions_echoraw.dump + +Patch 8.2.0259 +Problem: Terminal in popup test sometimes fails. +Solution: Clear the command line. +Files: src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_1.dump + +Patch 8.2.0260 +Problem: Several lines of code are duplicated. +Solution: Move duplicated code to a function. (Yegappan Lakshmanan, + closes #5330) +Files: src/option.c, src/os_unix.c, src/os_win32.c, src/proto/term.pro, + src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, + src/term.c + +Patch 8.2.0261 +Problem: Some code not covered by tests. +Solution: Add test cases. (Yegappan Lakshmanan, closes #5645) +Files: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, + src/testdir/test_exists.vim, src/testdir/test_filechanged.vim, + src/testdir/test_fileformat.vim, src/testdir/test_mapping.vim, + src/testdir/test_marks.vim, src/testdir/test_normal.vim, + src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim, + src/testdir/test_tabpage.vim, src/testdir/test_visual.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim + +Patch 8.2.0262 (after 8.2.0261) +Problem: Fileformat test fails on MS-Windows. +Solution: Set fileformat of buffer. +Files: src/testdir/test_fileformat.vim + +Patch 8.2.0263 +Problem: A few new Vim9 messages are not localized. +Solution: Add the gettext wrapper. (Dominique Pellé, closes #5647) +Files: src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0264 (after 8.2.0262) +Problem: Fileformat test still fails on MS-Windows. +Solution: Set fileformat of buffer in the right place. +Files: src/testdir/test_fileformat.vim + +Patch 8.2.0265 +Problem: "eval" after "if 0" doesn't check for following command. +Solution: Add "eval" to list of commands that check for a following command. + (closes #5640) +Files: src/ex_docmd.c, src/testdir/test_expr.vim + +Patch 8.2.0266 +Problem: Terminal in popup test sometimes fails on Mac. +Solution: Add a short delay. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0267 +Problem: No check for a following command when calling a function fails. +Solution: Also check for a following command when inside a try block. + (closes #5642) +Files: src/userfunc.c, src/testdir/test_user_func.vim + +Patch 8.2.0268 (after 8.2.0267) +Problem: Trycatch test fails. +Solution: When calling function fails only check for following command, do + not give another error. +Files: src/userfunc.c + +Patch 8.2.0269 +Problem: Vim9: operator after list index does not work. (Yasuhiro + Matsumoto) +Solution: After indexing a list change the type to the list member type. + (closes #5651) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0270 +Problem: Some code not covered by tests. +Solution: Add test cases. (Yegappan Lakshmanan, closes #5649) +Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, + src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_excmd.vim, src/testdir/test_expand.vim, + src/testdir/test_filetype.vim, src/testdir/test_findfile.vim, + src/testdir/test_join.vim, src/testdir/test_move.vim, + src/testdir/test_normal.vim, src/testdir/test_registers.vim, + src/testdir/test_source.vim, src/testdir/test_tabpage.vim, + src/testdir/test_tagjump.vim, src/testdir/test_vimscript.vim, + src/testdir/test_visual.vim, src/testdir/test_window_cmd.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0271 +Problem: The "num64" feature is available everywhere and building without + it causes problems. +Solution: Graduate the "num64" feature. (James McCoy, closes #5650) +Files: src/evalfunc.c, src/feature.h, src/message.c, src/structs.h, + src/testdir/test_expr.vim, src/testdir/test_largefile.vim, + src/testdir/test_sort.vim, src/testdir/test_vimscript.vim, + src/version.c + +Patch 8.2.0272 +Problem: ":helptags ALL" gives error for directories without write + permission. (Matěj Cepl) +Solution: Ignore errors for ":helptags ALL". (Ken Takata, closes #5026, + closes #5652) +Files: src/ex_cmds.c, src/testdir/test_help.vim + +Patch 8.2.0273 +Problem: MS-Windows uninstall may delete wrong batch file. +Solution: Add specific marker in the generated batch file. (Ken Takata, + closes #5654) +Files: src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c + +Patch 8.2.0274 +Problem: Hang with combination of feedkeys(), Ex mode and :global. + (Yegappan Lakshmanan) +Solution: Add the pending_exmode_active flag. +Files: src/ex_docmd.c, src/globals.h, src/getchar.c, + src/testdir/test_ex_mode.vim + +Patch 8.2.0275 +Problem: Some Ex code not covered by tests. +Solution: Add test cases. (Yegappan Lakshmanan, closes #5659) +Files: src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, + src/testdir/test_excmd.vim, src/testdir/test_quickfix.vim, + src/testdir/test_search.vim, src/testdir/test_swap.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.0276 +Problem: Vim9: not allowing space before ")" in function call is too + restrictive. (Ben Jackson) +Solution: Skip space before the ")". Adjust other space checks. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0277 +Problem: Vim9: not all instructions covered by tests. +Solution: Add more test cases. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0278 +Problem: Channel test is flaky on Mac. +Solution: Reset variable before sending message. +Files: src/testdir/test_channel.vim + +Patch 8.2.0279 +Problem: Vim9: no test for deleted :def function. +Solution: Add a test. Clear uf_cleared flag when redefining a function. +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0280 +Problem: Vim9: throw in :def function not caught higher up. +Solution: Set "need_rethrow". +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0281 +Problem: Two placed signs in the same line are not combined. E.g. in the + terminal debugger a breakpoint and the PC cannot be both be + displayed. +Solution: Combine the sign column and line highlight attributes. +Files: src/sign.c, src/testdir/test_signs.vim, + src/testdir/dumps/Test_sign_cursor_3.dump, + src/testdir/dumps/Test_sign_cursor_4.dump + +Patch 8.2.0282 +Problem: Vim9: setting number option not tested. +Solution: Add more tests. Fix assigning to global variable. +Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, + src/vim9execute.c + +Patch 8.2.0283 +Problem: Vim9: failing to load script var not tested. +Solution: Add more tests. Fix using s: in old script. +Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0284 +Problem: Vim9: assignment test fails. +Solution: Avoid duplicating "s:". +Files: src/vim9compile.c + +Patch 8.2.0285 +Problem: Unused error message. Cannot create s:var. +Solution: Remove the error message. Make assignment to s:var work. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0286 +Problem: Cannot use popup_close() for a terminal popup. +Solution: Allow using popup_close(). (closes #5666) +Files: src/popupwin.c, runtime/doc/popup.txt, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_5.dump, + src/testdir/dumps/Test_terminal_popup_6.dump + +Patch 8.2.0287 +Problem: Vim9: return in try block not tested; catch with pattern not + tested. +Solution: Add tests. Make it work. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0288 +Problem: Vim9: some float and blob operators not tested. +Solution: Add float and blob tests. Fix addition. +Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c + +Patch 8.2.0289 +Problem: Vim9: :echo did not clear the rest of the line. +Solution: Call msg_clr_eos(). (Ken Takata, closes #5668) +Files: src/vim9execute.c + +Patch 8.2.0290 +Problem: Running individual test differs from all tests. +Solution: Pass on environment variables. (Yee Cheng Chin, closes #5672) +Files: src/testdir/Makefile, src/testdir/README.txt + +Patch 8.2.0291 +Problem: Vim9: assigning [] to list<string> doesn't work. +Solution: Use void for empty list and dict. (Ken Takata, closes #5669) +Files: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim + +Patch 8.2.0292 +Problem: Vim9: CHECKNR and CHECKTYPE instructions not tested. +Solution: Add tests. +Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0293 +Problem: Various Ex commands not sufficiently tested. +Solution: Add more test cases. (Yegappan Lakshmanan, closes #5673) +Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, + src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim, + src/testdir/test_expand.vim, src/testdir/test_filetype.vim, + src/testdir/test_filter_cmd.vim, src/testdir/test_global.vim, + src/testdir/test_normal.vim, src/testdir/test_plus_arg_edit.vim, + src/testdir/test_quickfix.vim, src/testdir/test_trycatch.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.0294 +Problem: Cannot use Ex command that is also a function name. +Solution: Recognize an Ex command by a colon prefix. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + runtime/doc/vim9.txt + +Patch 8.2.0295 +Problem: Highlighting for :s wrong when using different separator. +Solution: Use separate argument for search direction and separator. (Rob + Pilling, closes #5665) +Files: src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/normal.c, + src/proto/search.pro, src/quickfix.c, src/search.c, src/spell.c, + src/tag.c, src/testdir/dumps/Test_incsearch_substitute_15.dump, + src/testdir/test_search.vim + +Patch 8.2.0296 +Problem: Mixing up "long long" and __int64 may cause problems. (John + Marriott) +Solution: Pass varnumber_T to vim_snprintf(). Add v:numbersize. +Files: src/message.c, src/eval.c, src/fileio.c, src/json.c, src/ops.c, + src/vim.h, src/structs.h, src/evalvars.c, runtime/doc/eval.txt, + runtime/doc/various.txt, src/testdir/test_eval_stuff.vim + +Patch 8.2.0297 +Problem: Compiler warnings for the Ruby interface. +Solution: Undefine a few macros, fix initialization. (Ozaki Kiichi, + closes #5677) +Files: src/if_ruby.c + +Patch 8.2.0298 +Problem: Vim9 script: cannot start command with a string constant. +Solution: Recognize expression starting with '('. +Files: src/ex_docmd.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt + +Patch 8.2.0299 +Problem: Vim9: ISN_STORE with argument not tested. Some cases in tv2bool() + not tested. +Solution: Add tests. Add test_unknown() and test_void(). +Files: src/testing.c, src/proto/testing.pro, src/evalfunc.c, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, runtime/doc/eval.txt, + runtime/doc/testing.txt + +Patch 8.2.0300 +Problem: Vim9: expression test fails without channel support. +Solution: Add has('channel') check. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.0301 +Problem: Insufficient testing for exception handling and the "attention" + prompt. +Solution: Add test cases. (Yegappan Lakshmanan, closes #5681) +Files: src/testdir/test_swap.vim, src/testdir/test_trycatch.vim + +Patch 8.2.0302 +Problem: Setting 'term' may cause error in TermChanged autocommand. +Solution: Use aucmd_prepbuf() to switch to the buffer where the autocommand + is to be executed. (closes #5682) +Files: src/term.c, src/testdir/test_autocmd.vim + +Patch 8.2.0303 +Problem: TermChanged test fails in the GUI. +Solution: Skip the test when running the GUI. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.0304 +Problem: Terminal test if failing on some systems. +Solution: Wait for the job to finish. (James McCoy) +Files: src/testdir/test_terminal.vim + +Patch 8.2.0305 +Problem: Relativenumber test fails on some systems. (James McCoy) +Solution: Clear the command line. +Files: src/testdir/test_number.vim, + src/testdir/dumps/Test_relnr_colors_2.dump, + src/testdir/dumps/Test_relnr_colors_3.dump + +Patch 8.2.0306 +Problem: Vim9: :substitute(pat(repl does not work in Vim9 script. +Solution: Remember starting with a colon. (closes #5676) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0307 +Problem: Python 3 vim.eval not well tested. +Solution: Add a test. (Dominique Pellé, closes #5680) +Files: src/testdir/test_python3.vim + +Patch 8.2.0308 +Problem: 'showbreak' does not work for a very long line. (John Little) +Solution: Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523, + closes #5684) +Files: src/drawline.c, src/testdir/test_breakindent.vim + +Patch 8.2.0309 +Problem: Window-local values have confusing name. +Solution: Rename w_p_bri* to w_briopt_*. +Files: src/structs.h, src/indent.c, src/drawline.c + +Patch 8.2.0310 +Problem: Autocmd test fails on a slow system. +Solution: Adjust the expectations. (James McCoy, closes #5685) +Files: src/testdir/test_autocmd.vim + +Patch 8.2.0311 +Problem: Vim9: insufficient script tests. +Solution: Add tests. Free imports when re-using a script. +Files: src/testdir/test_vim9_script.vim, src/scriptfile.c + +Patch 8.2.0312 +Problem: Vim9: insufficient script tests. +Solution: Add more tests. Make "import * as Name" work. +Files: src/testdir/test_vim9_script.vim, src/vim9script.c, + src/proto/vim9script.pro, src/vim9compile.c + +Patch 8.2.0313 +Problem: Vim9: insufficient script tests. +Solution: Add tests. Make import of alphanumeric name work. +Files: src/testdir/test_vim9_script.vim, src/vim9script.c + +Patch 8.2.0314 +Problem: Short name not set for terminal buffer. +Solution: Set the short name. (closes #5687) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.0315 +Problem: Build failure on HP-UX system. +Solution: Use LONG_LONG_MIN instead of LLONG_MIN. Add type casts for switch + statement. (John Marriott) +Files: src/structs.h, src/json.c + +Patch 8.2.0316 +Problem: ex_getln.c code has insufficient test coverage. +Solution: Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693) +Files: src/cmdhist.c, src/testdir/test_cmdline.vim, + src/testdir/test_functions.vim, src/testdir/test_history.vim, + src/testdir/test_menu.vim + +Patch 8.2.0317 +Problem: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build. +Solution: Move where CFLAGS is updated. (Ken Takata, closes #5692) +Files: src/Make_mvc.mak + +Patch 8.2.0318 +Problem: Vim9: types not sufficiently tested. +Solution: Add tests with more types. +Files: src/globals.h, src/vim9compile.c, + src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.0319 +Problem: File missing in distribution, comments outdated. +Solution: Correct path of README file. Update comments. +Files: Filelist, src/evalvars.c, src/register.c, src/if_python3.c + +Patch 8.2.0320 +Problem: No Haiku support. +Solution: Add support for Haiku. (Emir Sarı, closes #5605) +Files: Filelist, runtime/doc/Makefile, runtime/doc/eval.txt, + runtime/doc/gui.txt, runtime/doc/help.txt, + runtime/doc/options.txt, runtime/doc/os_haiku.txt, + runtime/doc/starting.txt, runtime/doc/tags, + runtime/gvimrc_example.vim, runtime/vimrc_example.vim, + src/INSTALL, src/Makefile, src/auto/configure, src/configure.ac, + src/evalfunc.c, src/feature.h, src/fileio.c, src/globals.h, + src/gui.c, src/gui.h, src/gui_haiku.cc, src/gui_haiku.h, + src/mbyte.c, src/menu.c, src/misc1.c, src/mouse.c, src/option.h, + src/os_haiku.h, src/os_haiku.rdef, src/os_unix.c, src/os_unix.h, + src/osdef1.h.in, src/proto.h, src/proto/gui_haiku.pro, src/pty.c, + src/screen.c, src/structs.h, src/term.c, src/version.c, src/vim.h + +Patch 8.2.0321 +Problem: Vim9: ":execute" does not work yet. +Solution: Add ISN_EXECUTE. (closes #5699) Also make :echo work with more + than one argument. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0322 +Problem: Vim9: error checks not tested. +Solution: Add more test cases. Avoid error for function loaded later. +Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0323 +Problem: Vim9: calling a function that is defined later is slow. +Solution: Once the function is found update the instruction so it can be + called directly. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0324 +Problem: Text property not updated correctly when inserting/deleting. +Solution: Use the right column when deleting. Make zero-width text + properties respect start_incl and end_incl. (Axel Forsman, + closes #5696, closes #5679) +Files: src/change.c, src/textprop.c, src/testdir/test_listener.vim, + src/testdir/test_textprop.vim + +Patch 8.2.0325 +Problem: Ex_getln.c code not covered by tests. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #5702) +Files: src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_functions.vim, src/testdir/test_history.vim, + src/testdir/test_options.vim + +Patch 8.2.0326 +Problem: Compiler warning for using uninitialized variable. (Yegappan + Lakshmanan) +Solution: Do not jump to failed but return. +Files: src/vim9execute.c + +Patch 8.2.0327 +Problem: Crash when opening and closing two popup terminal windows. +Solution: Check that prevwin is valid. (closes #5707) +Files: src/popupwin.c, src/testdir/test_terminal.vim + +Patch 8.2.0328 +Problem: No redraw when leaving terminal-normal mode in a terminal popup + window. +Solution: Redraw the popup window. (closes #5708) +Files: src/macros.h, src/vim.h, src/terminal.c, src/drawscreen.c, + src/move.c, src/popupwin.c, src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_7.dump, + src/testdir/dumps/Test_terminal_popup_8.dump + +Patch 8.2.0329 +Problem: Popup filter converts 0x80 bytes. +Solution: Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.0330 +Problem: Build error with popup window but without terminal. +Solution: Add #ifdef. +Files: src/popupwin.c + +Patch 8.2.0331 +Problem: Internal error when using test_void() and test_unknown(). + (Dominique Pellé) +Solution: Give a normal error. +Files: src/evalfunc.c, src/testdir/test_functions.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.0332 +Problem: Some code in ex_getln.c not covered by tests. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #5710) +Files: src/testdir/test_arabic.vim, src/testdir/test_cmdline.vim + +Patch 8.2.0333 +Problem: Terminal in popup test is flaky. +Solution: Make sure redraw is done before opening the popup. +Files: src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_1.dump + +Patch 8.2.0334 +Problem: Abort called when using test_void(). (Dominique Pellé) +Solution: Only give an error, don't abort. +Files: src/message.c, src/proto/message.pro, src/evalfunc.c, + src/eval.c, src/json.c, src/testdir/test_functions.vim + +Patch 8.2.0335 +Problem: No completion for :disassemble. +Solution: Make completion work. Also complete script-local functions if the + name starts with "s:". +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + runtime/doc/vim9.txt + +Patch 8.2.0336 +Problem: Vim9: insufficient test coverage for compiling. +Solution: Add more tests. +Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, + src/vim9.h, src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0337 +Problem: Build fails on a few systems. +Solution: Use vim_snprintf() instead of snprintf(). +Files: src/cmdexpand.c + +Patch 8.2.0338 +Problem: Build failure without the channel feature. +Solution: Add #ifdef +Files: src/vim9compile.c + +Patch 8.2.0339 +Problem: Vim9: function return type may depend on arguments. +Solution: Instead of a fixed return type use a function to figure out the + return type. +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, + src/evalbuffer.c, src/proto/evalbuffer.pro, + src/testdir/test_vim9_script.vim + +Patch 8.2.0340 +Problem: Vim9: function and partial types not tested. +Solution: Support more for partial, add tests. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0341 +Problem: Using ":for" in Vim9 script gives an error. +Solution: Pass the LET_NO_COMMAND flag. (closes #5715) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0342 +Problem: Some code in ex_getln.c not covered by tests. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5717) +Files: src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_history.vim, src/testdir/test_iminsert.vim + +Patch 8.2.0343 +Problem: Vim9: using wrong instruction, limited test coverage. +Solution: Use ISN_PUSHJOB. Add a few more tests. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0344 +Problem: ":def" not skipped properly. +Solution: Add CMD_def to list of commands the require evaluation even when + not being executed. +Files: src/ex_docmd.c + +Patch 8.2.0345 +Problem: Compiler warning when building without the float feature. +Solution: Add #ifdef. (John Marriott) +Files: src/evalfunc.c + +Patch 8.2.0346 +Problem: Vim9: finding common list type not tested. +Solution: Add more tests. Fix listing function. Fix overwriting type. +Files: src/vim9compile.c, src/userfunc.c, + src/testdir/test_vim9_script.vim, src/testdir/runtest.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0347 +Problem: Various code not covered by tests. +Solution: Add more test coverage. (Yegappan Lakshmanan, closes #5720) +Files: src/testdir/gen_opt_test.vim, src/testdir/test86.in, + src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim, + src/testdir/test_ex_mode.vim, src/testdir/test_history.vim + +Patch 8.2.0348 +Problem: Vim9: not all code tested. +Solution: Add a few more tests. fix using "b:" in literal dictionary. +Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c, + src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim + +Patch 8.2.0349 +Problem: Vim9: constant expression not well tested. +Solution: Add tests for "if" with constant expression. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0350 +Problem: Vim9: expression tests don't use recognized constants. +Solution: Recognize "true" and "false" as constants. Make skipping work for + assignment and expression evaluation. +Files: src/vim9compile.c + +Patch 8.2.0351 +Problem: Terminal in popup test is still a bit flaky. +Solution: Clear and redraw before opening the popup. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0352 +Problem: FreeBSD: test for sourcing utf-8 is skipped. +Solution: Run the matchadd_conceal test separately to avoid that setting + 'term' to "ansi" causes problems for other tests. (Ozaki Kiichi, + closes #5721) +Files: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim, + src/testdir/test_source_utf8.vim + +Patch 8.2.0353 +Problem: Vim9: while loop not tested. +Solution: Add test with "while", "break" and "continue" +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0354 +Problem: Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal) +Solution: Remove it, it was only for debugging. +Files: src/if_python3.c + +Patch 8.2.0355 +Problem: Vim9: str_val is confusing, it's a number +Solution: Rename to stnr_val. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0356 +Problem: MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly. +Solution: Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken + Takata, closes #5726) +Files: src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.vim + +Patch 8.2.0357 +Problem: Cannot delete a text property matching both id and type. (Axel + Forsman) +Solution: Add the "both" argument. +Files: src/textprop.c, runtime/doc/textprop.txt, + src/testdir/test_textprop.vim + +Patch 8.2.0358 +Problem: Insufficient testing for indent.c. +Solution: Add indent tests. (Yegappan Lakshmanan, closes #5736) +Files: src/testdir/Make_all.mak, src/testdir/test_ex_mode.vim, + src/testdir/test_expand_func.vim, src/testdir/test_indent.vim, + src/testdir/test_lispwords.vim, src/testdir/test_smartindent.vim, + src/testdir/test_vartabs.vim + +Patch 8.2.0359 +Problem: popup_atcursor() may hang. (Yasuhiro Matsumoto) +Solution: Take the decoration into account. (closes #5728) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.0360 +Problem: Yaml files are only recognized by the file extension. +Solution: Check for a line starting with "%YAML". (Jason Franklin) +Files: runtime/scripts.vim, src/testdir/test_filetype.vim + +Patch 8.2.0361 +Problem: Internal error when using "0" for a callback. +Solution: Give a normal error. (closes #5743) +Files: src/evalvars.c, src/testdir/test_timers.vim + +Patch 8.2.0362 +Problem: MS-Windows: channel test fails if grep is not available. +Solution: Use another command. (Ken Takata, closes #5739) +Files: src/testdir/test_channel.vim + +Patch 8.2.0363 +Problem: Some Normal mode commands not tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5746) +Files: src/testdir/test_cindent.vim, src/testdir/test_cmdline.vim, + src/testdir/test_edit.vim, src/testdir/test_indent.vim, + src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim, + src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim + +Patch 8.2.0364 +Problem: Printf test failing on Haiku. +Solution: Make a difference between int and short. (Dominique Pellé, + closes #5749) +Files: src/message.c + +Patch 8.2.0365 +Problem: Tag kind can't be a multibyte character. (Marcin Szamotulski) +Solution: Recognize multibyte character. (closes #5724) +Files: src/tag.c, src/testdir/test_taglist.vim + +Patch 8.2.0366 +Problem: Hardcopy command not tested enough. +Solution: Add tests for printing. (Dominique Pellé, closes #5748) +Files: src/testdir/test_hardcopy.vim + +Patch 8.2.0367 +Problem: Can use :pedit in a popup window. +Solution: Disallow it. +Files: src/ex_docmd.c, src/testdir/test_popupwin.vim + +Patch 8.2.0368 +Problem: Vim9: import that redefines local variable does not fail. +Solution: Check for already defined symbols. +Files: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, + src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim + +Patch 8.2.0369 +Problem: Various Normal mode commands not fully tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5751) +Files: src/testdir/test_arglist.vim, src/testdir/test_changelist.vim, + src/testdir/test_charsearch.vim, src/testdir/test_cmdline.vim, + src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_excmd.vim, src/testdir/test_gf.vim, + src/testdir/test_iminsert.vim, src/testdir/test_increment.vim, + src/testdir/test_marks.vim, src/testdir/test_normal.vim, + src/testdir/test_prompt_buffer.vim, src/testdir/test_put.vim, + src/testdir/test_registers.vim, src/testdir/test_tagjump.vim, + src/testdir/test_visual.vim + +Patch 8.2.0370 +Problem: The typebuf_was_filled flag is sometimes not reset, which may + cause a hang. +Solution: Make sure typebuf_was_filled is reset when the typeahead buffer is + empty. +Files: src/edit.c, src/getchar.c, + +Patch 8.2.0371 +Problem: Crash with combination of terminal popup and autocmd. +Solution: Disallow closing a popup that is the current window. Add a check + that the current buffer is valid. (closes #5754) +Files: src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c, + src/testdir/test_terminal.vim + +Patch 8.2.0372 +Problem: Prop_find() may not find text property at start of the line. +Solution: Adjust the loop to find properties. (Axel Forsman, closes #5761, + closes #5663) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.0373 +Problem: Type of term_sendkeys() is unknown. +Solution: Just return zero. (closes #5762) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.0374 +Problem: Using wrong printf directive for jump location. +Solution: Change "%lld" to "%d". (James McCoy, closes #5773) +Files: src/vim9execute.c + +Patch 8.2.0375 +Problem: Coverity warning for not using return value. +Solution: Move error message to separate function. +Files: src/popupwin.c + +Patch 8.2.0376 +Problem: Nasty callback test fails on some systems. +Solution: Increase the sleep time. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0377 +Problem: No CI test for a big-endian system. +Solution: Test with s390x. (James McCoy, closes #5772) +Files: .travis.yml + +Patch 8.2.0378 +Problem: prop_find() does not find all props. +Solution: Check being in the start line. (Axel Forsman, closes #5776) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.0379 +Problem: Gcc warns for ambiguous else. +Solution: Add braces. (Dominique Pellé, closes #5778) +Files: src/textprop.c + +Patch 8.2.0380 +Problem: Tiny popup when creating a terminal popup without minwidth. +Solution: Use a default minimum size of 5 lines of 20 characters. +Files: src/popupwin.c, src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_m1.dump + +Patch 8.2.0381 +Problem: Using freed memory with :lvimgrep and autocommand. (extracted from + POC by Dominique Pellé) +Solution: Avoid deleting a dummy buffer used in a window. (closes #5777) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.0382 +Problem: Some tests fail when run under valgrind. +Solution: Increase timeouts. +Files: src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim, + src/testdir/test_channel.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_popup_1.dump, + src/testdir/dumps/Test_terminal_popup_2.dump, + src/testdir/dumps/Test_terminal_popup_3.dump, + src/testdir/dumps/Test_terminal_popup_5.dump, + src/testdir/dumps/Test_terminal_popup_6.dump, + src/testdir/dumps/Test_terminal_popup_7.dump, + src/testdir/dumps/Test_terminal_popup_8.dump, + src/testdir/dumps/Test_terminal_popup_m1.dump + +Patch 8.2.0383 +Problem: Wrong feature check causes test not to be run. +Solution: Use CheckFunction instead of CheckFeature. (Ozaki Kiichi, + closes #5781) +Files: src/testdir/test_channel.vim + +Patch 8.2.0384 +Problem: Travis CI has warnings. +Solution: Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779) +Files: .travis.yml + +Patch 8.2.0385 +Problem: Menu functionality insufficiently tested. +Solution: Add tests. Add menu_info(). (Yegappan Lakshmanan, closes #5760) +Files: runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/usr_41.txt, + src/evalfunc.c, src/menu.c, src/proto/menu.pro, + src/testdir/test_menu.vim, src/testdir/test_popup.vim, + src/testdir/test_termcodes.vim + +Patch 8.2.0386 (after 8.2.0385) +Problem: Part from unfinished patch got included. +Solution: Undo that part. +Files: src/evalfunc.c + +Patch 8.2.0387 +Problem: Error for possible NULL argument to qsort(). +Solution: Don't call qsort() when there is nothing to sort. (Dominique + Pellé, closes #5780) +Files: src/spellsuggest.c + +Patch 8.2.0388 +Problem: Printmbcharset option not tested. +Solution: Add a test. Enable PostScript for AppVeyor build. (Dominique + Pellé, closes #5783) +Files: appveyor.yml, src/testdir/test_hardcopy.vim + +Patch 8.2.0389 +Problem: Delayed redraw when shifting text from Insert mode. +Solution: Use msg_attr_keep() instead of msg(). (closes #5782) +Files: src/ops.c + +Patch 8.2.0390 +Problem: Terminal postponed scrollback test is flaky. +Solution: Add delay in between sending keys. Rename dump files. +Files: src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_01.dump, + src/testdir/dumps/Test_terminal_02.dump, + src/testdir/dumps/Test_terminal_03.dump, + src/testdir/dumps/Test_terminal_scrollback_1.dump, + src/testdir/dumps/Test_terminal_scrollback_2.dump, + src/testdir/dumps/Test_terminal_scrollback_3.dump + +Patch 8.2.0391 (after 8.2.0377) +Problem: CI test coverage dropped. +Solution: Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788) +Files: .travis.yml + +Patch 8.2.0392 +Problem: Coverity warns for using array index out of range. +Solution: Add extra "if" to avoid warning. +Files: src/menu.c + +Patch 8.2.0393 +Problem: Coverity warns for not using return value. +Solution: Add (void). +Files: src/popupmenu.c + +Patch 8.2.0394 +Problem: Coverity complains about using NULL pointer. +Solution: Use empty string when option value is NULL. +Files: src/optionstr.c + +Patch 8.2.0395 +Problem: Build fails with FEAT_EVAL but without FEAT_MENU. +Solution: Add #ifdef. (John Marriott) +Files: src/evalfunc.c + +Patch 8.2.0396 +Problem: Cmdexpand.c insufficiently tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5789) +Files: src/testdir/test_cmdline.vim, src/testdir/test_taglist.vim, + src/testdir/test_terminal.vim, src/testdir/test_usercommands.vim + +Patch 8.2.0397 +Problem: Delayed screen update when using undo from Insert mode. +Solution: Update w_topline and cursor shape before sleeping. (closes #5790) +Files: src/normal.c + +Patch 8.2.0398 +Problem: Profile test fails when two functions take same time. +Solution: Add a short sleep in once function. (closes #5797) +Files: src/testdir/test_profile.vim + +Patch 8.2.0399 +Problem: Various memory leaks. +Solution: Avoid the leaks. (Ozaki Kiichi, closes #5803) +Files: src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c, + src/scriptfile.c, src/userfunc.c + +Patch 8.2.0400 +Problem: Not all tests using a terminal are in the list of flaky tests. +Solution: Introduce the test_is_flaky flag. +Files: src/testdir/runtest.vim, src/testdir/term_util.vim, + src/testdir/screendump.vim, src/testdir/test_autocmd.vim + +Patch 8.2.0401 +Problem: Not enough test coverage for evalvars.c. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5804) +Files: src/testdir/test_cmdline.vim, src/testdir/test_const.vim, + src/testdir/test_diffmode.vim, src/testdir/test_excmd.vim, + src/testdir/test_functions.vim, src/testdir/test_let.vim, + src/testdir/test_listdict.vim, src/testdir/test_spell.vim, + src/testdir/test_unlet.vim, src/testdir/test_user_func.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.0402 (after 8.2.0401) +Problem: Setting local instead of global flag. +Solution: Prepend "g:" to "test_is_flaky". +Files: src/testdir/term_util.vim, src/testdir/screendump.vim, + src/testdir/test_autocmd.vim + +Patch 8.2.0403 +Problem: When 'buftype' is "nofile" there is no overwrite check. +Solution: Also check for existing file when 'buftype' is set. + (closes #5807) +Files: src/ex_cmds.c, src/testdir/test_options.vim + +Patch 8.2.0404 +Problem: Writefile() error does not give a hint. +Solution: Add remark about first argument. +Files: src/filepath.c, src/testdir/test_writefile.vim + +Patch 8.2.0405 +Problem: MSVC: build fails with some combination of features. +Solution: Enable CHANNEL if TERMINAL is enabled. (Mike Williams) +Files: src/Make_mvc.mak + +Patch 8.2.0406 +Problem: FileReadCmd event not well tested. +Solution: Add a test. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.0407 +Problem: No early check if :find and :sfind have an argument. +Solution: Add EX_NEEDARG. +Files: src/ex_cmds.h, src/testdir/test_findfile.vim, + src/testdir/test_find_complete.vim + +Patch 8.2.0408 +Problem: Delete() commented out for testing. +Solution: Undo commenting-out. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0409 +Problem: Search test leaves file behind. +Solution: Delete the file. Also use Check commands. +Files: src/testdir/test_search.vim + +Patch 8.2.0410 +Problem: Channel test fails too often on slow Mac. +Solution: Increase waiting time to 10 seconds. +Files: src/testdir/test_channel.vim + +Patch 8.2.0411 +Problem: Mac: breakcheck is using a value from the stone ages. +Solution: Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson) +Files: src/os_mac.h + +Patch 8.2.0412 +Problem: MS-Windows: cannot use vimtutor from the start menu. +Solution: Better check for writable directory. Use the right path for the + executable. (Wu Yongwei, closes #5774, closes #5756) +Files: vimtutor.bat + +Patch 8.2.0413 +Problem: Buffer menu does not handle special buffers properly. +Solution: Keep a dictionary with buffer names to reliably keep track of + entries. + Also trigger BufFilePre and BufFilePost for command-line and + terminal buffers when the name changes. +Files: src/testdir/test_alot.vim, src/testdir/Make_all.mak, + runtime/menu.vim, src/ex_getln.c, src/terminal.c, + src/testdir/test_menu.vim + +Patch 8.2.0414 +Problem: Channel connect_waittime() test is flaky. +Solution: Set the test_is_flaky flag. Use test_is_flaky for more tests. +Files: src/testdir/test_channel.vim, src/testdir/test_terminal.vim, + src/testdir/runtest.vim + +Patch 8.2.0415 +Problem: Bsdl filetype is not detected. +Solution: Add an entry in the filetype list. (Daniel Kho, closes #5810) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0416 +Problem: Test leaves file behind. +Solution: Delete the file. +Files: src/testdir/test_indent.vim + +Patch 8.2.0417 +Problem: Travis CI config can be improved. +Solution: Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE" + to avoid messages about viminfo. (Ozaki Kiichi, closes #5813) +Files: .travis.yml, ci/load-snd-dummy.sh + +Patch 8.2.0418 +Problem: Code in eval.c not sufficiently covered by tests. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5815) +Files: src/testdir/test_blob.vim, src/testdir/test_channel.vim, + src/testdir/test_cmdline.vim, src/testdir/test_eval_stuff.vim, + src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_job_fails.vim, src/testdir/test_lambda.vim, + src/testdir/test_let.vim, src/testdir/test_listdict.vim, + src/testdir/test_marks.vim, src/testdir/test_method.vim, + src/testdir/test_normal.vim, src/testdir/test_unlet.vim, + src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.0419 +Problem: Various memory leaks in Vim9 script code. +Solution: Fix the leaks. (Ozaki Kiichi, closes #5814) +Files: src/proto/vim9compile.pro, src/scriptfile.c, src/structs.h, + src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c, + src/vim9execute.c, src/vim9script.c + +Patch 8.2.0420 +Problem: Vim9: cannot interrupt a loop with CTRL-C. +Solution: Check for CTRL-C once in a while. Doesn't fully work yet. +Files: src/misc1.c, src/proto/misc1.pro, + src/testdir/test_vim9_script.vim + +Patch 8.2.0421 +Problem: Interrupting with CTRL-C does not always work. +Solution: Recognize CTRL-C while modifyOtherKeys is set. +Files: src/ui.c, src/testdir/test_vim9_script.vim, src/evalfunc.c + +Patch 8.2.0422 +Problem: Crash when passing popup window to win_splitmove(). (john Devin) +Solution: Disallow moving a popup window. (closes #5816) +Files: src/testdir/test_popupwin.vim, src/evalwindow.c + +Patch 8.2.0423 +Problem: In some environments a few tests are expected to fail. +Solution: Add $TEST_MAY_FAIL to list tests that should not cause make to + fail. +Files: src/testdir/runtest.vim + +Patch 8.2.0424 +Problem: Checking for wrong return value. (Tom) +Solution: Invert the check and fix the test. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0425 +Problem: Code for modeless selection not sufficiently tested. +Solution: Add tests. Move mouse code functionality to a common script file. + (Yegappan Lakshmanan, closes #5821) +Files: src/testdir/Make_all.mak, src/testdir/gen_opt_test.vim, + src/testdir/mouse.vim, src/testdir/test_edit.vim, + src/testdir/test_global.vim, src/testdir/test_modeless.vim, + src/testdir/test_normal.vim, src/testdir/test_selectmode.vim, + src/testdir/test_termcodes.vim, src/testdir/test_visual.vim, + src/ui.c + +Patch 8.2.0426 +Problem: Some errors were not tested for. +Solution: Add tests. (Dominique Pellé, closes #5824) +Files: src/testdir/test_buffer.vim, src/testdir/test_options.vim, + src/testdir/test_tcl.vim, src/testdir/test_terminal.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.0427 +Problem: It is not possible to check for a typo in a feature name. +Solution: Add an extra argument to has(). +Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.vim, + src/testdir/test_functions.vim + +Patch 8.2.0428 +Problem: Buffer name may leak. +Solution: Free the buffer name before overwriting it. +Files: src/terminal.c + +Patch 8.2.0429 +Problem: No warning when test checks for option that never exists. +Solution: In tests check that the option can exist. +Files: src/testdir/check.vim + +Patch 8.2.0430 +Problem: Window creation failure not properly tested. +Solution: Improve the test. (Yegappan Lakshmanan, closes #5826) +Files: src/testdir/test_cmdline.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.0431 +Problem: Some compilers don't support using \e for Esc. (Yegappan + Lakshmanan) +Solution: use \033 instead. +Files: src/ui.c + +Patch 8.2.0432 +Problem: A few tests fail in a huge terminal. +Solution: Make the tests pass. (Dominique Pellé, closes #5829) +Files: src/testdir/test_autocmd.vim, src/testdir/test_options.vim, + src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.0433 +Problem: INT signal not properly tested. +Solution: Add a test. Also clean up some unnecessary lines. (Dominique + Pellé, closes #5828) +Files: src/testdir/test_display.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_excmd.vim, src/testdir/test_messages.vim, + src/testdir/test_signals.vim + +Patch 8.2.0434 +Problem: MS-Windows with VTP: Normal color not working. +Solution: After changing the Normal color update the VTP console color. + (Nobuhiro Takasaki, closes #5836) +Files: src/highlight.c + +Patch 8.2.0435 +Problem: Channel contents might be freed twice. +Solution: Call either channel_free_channel() or channel_free(), not both. + (Nobuhiro Takasaki, closes #5835) +Files: src/channel.c + +Patch 8.2.0436 +Problem: No warnings for incorrect printf arguments. +Solution: Fix attribute in declaration. Fix uncovered mistakes. (Dominique + Pellé, closes #5834) +Files: src/proto.h, src/eval.c, src/ops.c, src/spellfile.c, + src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/gui.c + +Patch 8.2.0437 +Problem: MS-Windows installer contains old stuff. +Solution: Rely on Windows NT. (Ken Takata, closes #5832) +Files: src/dosinst.c + +Patch 8.2.0438 +Problem: Terminal noblock test is very flaky on BSD. +Solution: Change WaitFor() to WaitForAssert() to be able to see why it + failed. Add a short wait in between sending keys. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0439 +Problem: :disassemble has minor flaws. +Solution: Format the code. Use (int) instead of (char) for %c. + (also by James McCoy, closes #5831) +Files: src/vim9execute.c + +Patch 8.2.0440 +Problem: Terminal noblock test is still very flaky on BSD. +Solution: Increase the waiting time. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0441 +Problem: Terminal noblock test is still failing on BSD. +Solution: Reduce the amount of text. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0442 +Problem: Channel contents might be used after being freed. +Solution: Reset the job channel before freeing the channel. +Files: src/channel.c + +Patch 8.2.0443 +Problem: Clipboard code is spread out. +Solution: Move clipboard code to its own file. (Yegappan Lakshmanan, + closes #5827) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/clipboard.c, src/ops.c, src/proto.h, src/proto/clipboard.pro, + src/proto/ops.pro, src/proto/register.pro, src/proto/ui.pro, + src/register.c, src/ui.c + +Patch 8.2.0444 +Problem: Swap file test fails on some systems. +Solution: Preserve the swap file. Send NL terminated keys. +Files: src/testdir/test_swap.vim + +Patch 8.2.0445 +Problem: Png and xpm files not in MS-Windows zip file. +Solution: Move files to shared between Unix and Windows target. +Files: Filelist + +Patch 8.2.0446 +Problem: Listener with undo of deleting all lines not tested. +Solution: Add a test. +Files: src/testdir/test_listener.vim + +Patch 8.2.0447 +Problem: Terminal scroll tests fails on some systems. +Solution: Remove the fixed 100msec wait for Win32. Add a loop to wait until + scrolling has finished. (James McCoy, closes #5842) +Files: src/testdir/test_terminal.vim + +Patch 8.2.0448 +Problem: Various functions not properly tested. +Solution: Add more tests, especially for failures. (Yegappan Lakshmanan, + closes #5843) +Files: runtime/doc/eval.txt, src/testdir/test_blob.vim, + src/testdir/test_breakindent.vim, src/testdir/test_charsearch.vim, + src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, + src/testdir/test_exists.vim, src/testdir/test_expand_func.vim, + src/testdir/test_expr.vim, src/testdir/test_file_perm.vim, + src/testdir/test_functions.vim, src/testdir/test_gui.vim, + src/testdir/test_listdict.vim, src/testdir/test_marks.vim, + src/testdir/test_partial.vim, src/testdir/test_registers.vim, + src/testdir/test_search.vim, src/testdir/test_spell.vim, + src/testdir/test_substitute.vim, src/testdir/test_syn_attr.vim, + src/testdir/test_syntax.vim, src/testdir/test_taglist.vim, + src/testdir/test_utf8.vim, src/testdir/test_vartabs.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.0449 +Problem: Vim9: crash if return type is invalid. (Yegappan Lakshmanan) +Solution: Always return some type, not NULL. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0450 +Problem: Not enough testing for restricted mode and function calls. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5847) +Files: src/testdir/test_method.vim, src/testdir/test_restricted.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0451 +Problem: Win32: double-width character displayed incorrectly. +Solution: First move the cursor to the first column. (Nobuhiro Takasaki, + closes #5848) +Files: src/os_win32.c + +Patch 8.2.0452 +Problem: channel_parse_messages() fails when called recursively. +Solution: Return for a recursive call. (closes #5835) +Files: src/channel.c + +Patch 8.2.0453 +Problem: Trailing space in job_start() command causes empty argument. +Solution: Ignore trailing space. (closes #5851) +Files: src/misc2.c, src/testdir/test_channel.vim + +Patch 8.2.0454 +Problem: Some tests fail when the system is slow. +Solution: Make the run number global, use in the test to increase the + waiting time. (closes #5841) +Files: src/testdir/runtest.vim, src/testdir/test_functions.vim + +Patch 8.2.0455 +Problem: Cannot set the highlight group for a specific terminal. +Solution: Add the "highlight" option to term_start(). (closes #5818) +Files: src/terminal.c, src/structs.h, src/channel.c, + src/testdir/test_terminal.vim, runtime/doc/terminal.txt, + src/testdir/dumps/Test_terminal_popup_Terminal.dump, + src/testdir/dumps/Test_terminal_popup_MyTermCol.dump + +Patch 8.2.0456 +Problem: Test_confirm_cmd is flaky. +Solution: Add a term_wait() call. (closes #5854) +Files: src/testdir/test_excmd.vim + +Patch 8.2.0457 +Problem: Test_quotestar() often fails when run under valgrind. +Solution: Wait longer for the GUI to start. +Files: src/testdir/test_quotestar.vim + +Patch 8.2.0458 +Problem: Missing feature check in test function. +Solution: Add check commands. +Files: src/testdir/test_excmd.vim + +Patch 8.2.0459 +Problem: Cannot check if a function name is correct. +Solution: Add "?funcname" to exists(). +Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.vim, + src/testdir/check.vim + +Patch 8.2.0460 (after 8.2.0459) +Problem: Build failure because of wrong feature name. +Solution: Correct feature name. +Files: src/evalfunc.c + +Patch 8.2.0461 +Problem: Confirm test fails on amd64 system. (Alimar Riesebieter) +Solution: Add an extra WaitForAssert(). (Dominique Pellé) +Files: src/testdir/test_excmd.vim + +Patch 8.2.0462 +Problem: Previewwindow test fails on some systems. (James McCoy) +Solution: Wait a bit after sending the "o". (closes #5849) +Files: src/testdir/test_popup.vim, + src/testdir/dumps/Test_popup_and_previewwindow_01.dump + +Patch 8.2.0463 +Problem: Build error without float and channel feature. (John Marriott) +Solution: Define return types always. +Files: src/globals.h, src/evalfunc.c + +Patch 8.2.0464 +Problem: Typos and other small problems. +Solution: Fix the typos. Add missing files to the distribution. +Files: Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c, + src/os_unixx.h, src/proto/popupwin.pro + +Patch 8.2.0465 +Problem: Vim9: dead code and wrong return type. +Solution: Remove dead code. Fix return type. Add more tests. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0466 (after 8.2.0452) +Problem: Not parsing messages recursively breaks the govim plugin. +Solution: When called recursively do handle messages but do not close + channels. +Files: src/channel.c + +Patch 8.2.0467 +Problem: Vim9: some errors are not tested +Solution: Add more tests. Fix that Vim9 script flag is not reset. +Files: src/vim9compile.c, src/scriptfile.c, src/dict.c, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0468 +Problem: GUI: pixel dust with some fonts and characters. +Solution: Always redraw the character before the cursor. (Nir Lichtman, + closes #5549, closes #5856) +Files: src/gui.c, src/proto/gui.pro, src/screen.c + +Patch 8.2.0469 +Problem: Vim9: no error for missing ] after list. +Solution: Add error message. Add more tests. +Files: src/globals.h, src/list.c, src/userfunc.c, + src/testdir/test_vim9_expr.vim, src/testdir/test_lambda.vim + +Patch 8.2.0470 +Problem: Test_confirm_cmd_cancel() can fail on a slow system. +Solution: Use WaitForAssert(). (Ozaki Kiichi, closes #5861) +Files: src/testdir/test_excmd.vim + +Patch 8.2.0471 +Problem: Missing change to compile_list(). +Solution: Add error message. +Files: src/vim9compile.c + +Patch 8.2.0472 +Problem: Terminal highlight name is set twice, leaking memory. +Solution: Delete one. +Files: src/terminal.c + +Patch 8.2.0473 +Problem: Variables declared in an outer scope. +Solution: Declare variables only in the scope where they are used. +Files: src/evalvars.c + +Patch 8.2.0474 (after 8.2.0403) +Problem: Cannot use :write when using a plugin with BufWriteCmd. +Solution: Reset BF_NOTEDITED after BufWriteCmd. (closes #5807) +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 8.2.0475 +Problem: Channel out_cb test still fails sometimes on Mac. +Solution: Use an even longer timeout. +Files: src/testdir/test_channel.vim + +Patch 8.2.0476 +Problem: Terminal nasty callback test fails sometimes. +Solution: use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865) +Files: src/testdir/test_terminal.vim + +Patch 8.2.0477 +Problem: Vim9: error messages not tested. +Solution: Add more tests. +Files: src/testdir/test_vim9_expr.vim, src/vim9execute.c + +Patch 8.2.0478 +Problem: New buffers are not added to the Buffers menu. +Solution: Turn number into string. (Yee Cheng Chin, closes #5864) +Files: runtime/menu.vim, src/testdir/test_menu.vim + +Patch 8.2.0479 +Problem: Unloading shared libraries on exit has no purpose. +Solution: Do not unload shared libraries on exit. +Files: src/if_lua.c, src/if_perl.xs, src/if_python.c, src/if_python3.c, + src/if_ruby.c, src/if_tcl.c + +Patch 8.2.0480 +Problem: Vim9: some code is not tested. +Solution: Add more tests. +Files: src/testdir/test_vim9_expr.vim, src/vim9compile.c + +Patch 8.2.0481 +Problem: Travis is still using trusty. +Solution: Adjust config to use bionic. (Ozaki Kiichi, closes #5868) +Files: .travis.yml, src/testdir/lsan-suppress.txt + +Patch 8.2.0482 +Problem: Channel and sandbox code not sufficiently tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5855) +Files: src/option.h, src/testdir/test_channel.vim, + src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, + src/testdir/test_edit.vim, src/testdir/test_excmd.vim, + src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim, + src/testdir/test_restricted.vim, src/testdir/test_smartindent.vim, + src/testdir/test_substitute.vim, src/testdir/test_terminal.vim, + src/testdir/test_textformat.vim, src/testdir/test_visual.vim + +Patch 8.2.0483 +Problem: Vim9: "let x = x + 1" does not give an error. +Solution: Hide the variable when compiling the expression. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0484 +Problem: Vim9: some error messages not tested. +Solution: Add more tests. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.0485 (after 8.2.0483) +Problem: Vim9 script test fails. +Solution: Stricter condition for adding new local variable. +Files: Stricter condition for adding new local variable. + +Patch 8.2.0486 +Problem: Vim9: some code and error messages not tested. +Solution: Add more tests. +Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0487 +Problem: Vim9: compiling not sufficiently tested. +Solution: Add more tests. Fix bug with PCALL. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0488 +Problem: Vim9: Compiling can break when using a lambda inside :def. +Solution: Do not keep a pointer to the dfunc_T for longer time. +Files: src/vim9compile.c, src/vim9.h + +Patch 8.2.0489 +Problem: Vim9: memory leaks. +Solution: Free memory in the right place. Add hints for using asan. +Files: src/vim9compile.c, src/testdir/lsan-suppress.txt, src/Makefile + +Patch 8.2.0490 +Problem: Win32: VTP doesn't respect 'restorescreen'. +Solution: Use escape codes to switch to alternate screen. (Nobuhiro + Takasaki, closes #5872) +Files: src/os_win32.c + +Patch 8.2.0491 +Problem: Cannot recognize a <script> mapping using maparg(). +Solution: Add the "script" key. (closes #5873) +Files: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim + +Patch 8.2.0492 +Problem: Vim9: some error messages not tested. +Solution: Add more tests. Remove dead code. Fix uncovered bugs. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0493 +Problem: Vim9: some error messages not tested. +Solution: Add more tests. Fix uncovered bugs. +Files: src/vim9compile.c, src/vim9execute.c, src/testing.c, src/eval.c, + src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt, + runtime/doc/testing.txt, src/testdir/test_vim9_script.vim + +Patch 8.2.0494 +Problem: Vim9: asan error. +Solution: Only get the type when there is one. +Files: src/vim9compile.c + +Patch 8.2.0495 +Problem: Vim9: some code not tested. +Solution: Add more tests. Support more const expressions. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0496 +Problem: Vim9: disassemble test fails. +Solution: Separate test cases with recognized constant expressions. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0497 +Problem: Too verbose output from the asan build in Travis. +Solution: Filter out suppression messages. (Ozaki Kiichi, closes #5874) +Files: .travis.yml + +Patch 8.2.0498 +Problem: Coverity complains about uninitialized field. +Solution: Initialize the whole typval_T. +Files: src/vim9compile.c + +Patch 8.2.0499 +Problem: Calling a lambda is slower than evaluating a string. +Solution: Make calling a lambda faster. (Ken Takata, closes #5727) +Files: src/userfunc.c + +Patch 8.2.0500 +Problem: Using the same loop in many places. +Solution: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339) +Files: src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c, + src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c, + src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, + src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h, + src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c, + src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c, + src/quickfix.c, src/screen.c, src/sign.c, src/spell.c, + src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c, + src/userfunc.c, src/window.c + +Patch 8.2.0501 +Problem: Vim9: script test fails when channel feature is missing. +Solution: Add a has() condition. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0502 +Problem: Vim9: some code is not tested. +Solution: Add more tests. Fix uncovered problems. +Files: src/vim9compile.c, src/regexp.c, src/proto/regexp.pro, + src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, + src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c, + src/tag.c, src/userfunc.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0503 +Problem: Vim9: some code is not tested. +Solution: Add tests. Fix uncovered problems. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0504 +Problem: Vim9: leaking scope memory when compilation fails. +Solution: Cleanup the scope list. +Files: src/vim9compile.c + +Patch 8.2.0505 +Problem: term_gettty() not sufficiently tested. +Solution: Add more asserts. (Dominique Pellé, closes #5877) +Files: src/testdir/test_terminal.vim + +Patch 8.2.0506 +Problem: Coverity complains about ignoring return value. +Solution: Add (void). +Files: src/userfunc.c + +Patch 8.2.0507 (after 8.2.0472) +Problem: Getbufvar() may get the wrong dictionary. (David le Blanc) +Solution: Check for empty name. (closes #5878) +Files: src/evalvars.c, src/testdir/test_functions.vim + +Patch 8.2.0508 +Problem: Vim9: func and partial types not done yet +Solution: Fill in details about func declaration, drop a separate partial + declaration. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/globals.h, + src/structs.h, src/evalfunc.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0509 +Problem: various code is not properly tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5871) +Files: src/main.c, src/testdir/check.vim, src/testdir/shared.vim, + src/testdir/term_util.vim, src/testdir/test_clientserver.vim, + src/testdir/test_ex_mode.vim, src/testdir/test_expand.vim, + src/testdir/test_functions.vim, src/testdir/test_options.vim, + src/testdir/test_startup.vim, src/testdir/test_textformat.vim, + src/testdir/test_trycatch.vim, src/testdir/test_viminfo.vim + +Patch 8.2.0510 +Problem: Coverity complains about using uninitialized variable. +Solution: Assign a value to "scol". Move code inside NULL check. +Files: src/beval.c, src/popupwin.c + +Patch 8.2.0511 +Problem: Cscope code not fully tested. +Solution: Add more test cases. (Dominique Pellé, closes #5886) +Files: src/testdir/test_cscope.vim + +Patch 8.2.0512 +Problem: Vim9: no optional arguments in func type. +Solution: Check for question mark after type. Find function reference + without function(). +Files: src/vim9compile.c, src/vim9execute.c, src/structs.h, + src/globals.h, src/vim.h, src/vim9.h, src/userfunc.c, + src/testdir/Make_all.mak, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0513 +Problem: Reading past allocated memory when using varargs. +Solution: Fix copying function argument types. +Files: src/vim9compile.c + +Patch 8.2.0514 +Problem: Several global functions are used in only one file. +Solution: Make the functions static. (Yegappan Lakshmanan, closes #5884) +Files: src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c, + src/proto/drawscreen.pro, src/proto/evalvars.pro, + src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro, + src/version.c + +Patch 8.2.0515 +Problem: Some compilers cannot add to "void *". +Solution: Cast to "char *". +Files: src/vim9compile.c + +Patch 8.2.0516 +Problem: Client-server code is spread out. +Solution: Move client-server code to a new file. (Yegappan Lakshmanan, + closes #5885) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h, + src/proto/clientserver.pro, src/proto/main.pro + +Patch 8.2.0517 +Problem: Vim9: cannot separate "func" and "func(): void". +Solution: Use VAR_ANY for "any" and VAR_UNKNOWN for "no type". +Files: src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c, + src/evalvars.c, src/testing.c, src/vim9compile.c, + src/vim9execute.c, src/viminfo.c, src/if_py_both.h, src/json.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.0518 +Problem: A terminal falls back to setting $TERM to "xterm". +Solution: Use "xterm-color" if more than 16 colors are supported and + "xterm-256color" if at least 256 colors are supported. + (closes #5887) +Files: src/os_unix.c + +Patch 8.2.0519 +Problem: Vim9: return type not properly checked. +Solution: Check type properly, also at runtime. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0520 +Problem: Tests are not listed in sorted order. +Solution: Move test_ex_mode. (Doug Richardson, closes #5889) +Files: src/testdir/Make_all.mak + +Patch 8.2.0521 +Problem: Crash when reading a blob fails. +Solution: Avoid keeping a pointer to a freed blob object. (Dominique Pellé, + closes #5890) Adjust error messages. +Files: src/filepath.c, src/testdir/test_blob.vim + +Patch 8.2.0522 +Problem: Several errors are not tested for. +Solution: Add tests. (Yegappan Lakshmanan, closes #5892) +Files: src/testdir/test_autocmd.vim, src/testdir/test_clientserver.vim, + src/testdir/test_digraph.vim, src/testdir/test_expand.vim, + src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_gui.vim, src/testdir/test_highlight.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_lambda.vim, + src/testdir/test_listdict.vim, src/testdir/test_normal.vim, + src/testdir/test_options.vim, src/testdir/test_preview.vim, + src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, + src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.0523 +Problem: Loops are repeated. +Solution: Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882) +Files: src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c, + src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, + src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c, + src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c, + src/userfunc.c, src/vim9compile.c + +Patch 8.2.0524 +Problem: Win32: searching for file matches is slow. +Solution: Instead of making another round to find any short filename, check + for the short name right away. Avoid using an ordinary file like a + directory. (Nir Lichtman, closes #5883) +Files: src/filepath.c + +Patch 8.2.0525 (after 8.2.0524) +Problem: Win32: typo in assignment and misplaced paren. +Solution: Fix the syntax. +Files: src/filepath.c + +Patch 8.2.0526 +Problem: Gcc 9 complains about empty statement. +Solution: Add {}. (Dominique Pellé, closes #5894) +Files: src/evalfunc.c + +Patch 8.2.0527 +Problem: Vim9: function types insufficiently tested. +Solution: Add more tests. Fix white space check. Add "test_vim9" target. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, src/Makefile, + src/testdir/Makefile, src/testdir/Make_all.mak + +Patch 8.2.0528 +Problem: Vim9: function arguments insufficiently tested. +Solution: Check types. Add more tests. Fix function with varargs only. +Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0529 +Problem: Vim9: function argument with default not checked. +Solution: Check type of argument with default value. +Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0530 +Problem: Test crashes on s390. (James McCoy) +Solution: Explicitly define an 8 big signed type. (closes #5897) +Files: src/structs.h + +Patch 8.2.0531 +Problem: Various errors not tested. +Solution: Add tests. (Yegappan Lakshmanan, closes #5895) +Files: src/testdir/test_search.vim, src/testdir/test_source.vim, + src/testdir/test_syntax.vim, src/testdir/test_user_func.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.0532 +Problem: Cannot use simplify() as a method. +Solution: Add FEARG_1. (closes #5896) +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_functions.vim + +Patch 8.2.0533 +Problem: Tests using term_wait() can still be flaky. +Solution: Increase the wait time when rerunning a test. (James McCoy, + closes #5899) Halve the initial times to make tests run faster + when there is no rerun. +Files: src/testdir/term_util.vim, src/testdir/test_arglist.vim, + src/testdir/test_autocmd.vim, src/testdir/test_balloon.vim, + src/testdir/test_bufline.vim, src/testdir/test_channel.vim, + src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, + src/testdir/test_cursorline.vim, src/testdir/test_debugger.vim, + src/testdir/test_diffmode.vim, src/testdir/test_display.vim, + src/testdir/test_functions.vim, src/testdir/test_highlight.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_mapping.vim, + src/testdir/test_match.vim, src/testdir/test_matchadd_conceal.vim, + src/testdir/test_messages.vim, src/testdir/test_number.vim, + src/testdir/test_popup.vim, src/testdir/test_popupwin.vim, + src/testdir/test_profile.vim, src/testdir/test_search.vim, + src/testdir/test_search_stat.vim, src/testdir/test_startup.vim, + src/testdir/test_startup_utf8.vim, + src/testdir/test_statusline.vim, src/testdir/test_suspend.vim, + src/testdir/test_swap.vim, src/testdir/test_tagjump.vim, + src/testdir/test_terminal.vim, src/testdir/test_terminal_fail.vim, + src/testdir/test_timers.vim, src/testdir/test_vimscript.vim + +Patch 8.2.0534 +Problem: Client-server test fails under valgrind. +Solution: Use WaitForAssert(). +Files: src/testdir/test_clientserver.vim + +Patch 8.2.0535 +Problem: Regexp patterns not fully tested. +Solution: Add more regexp tests and others. (Yegappan Lakshmanan, + closes #5901) +Files: src/testdir/test_marks.vim, src/testdir/test_options.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim + +Patch 8.2.0536 +Problem: Vim9: some compilation code not tested. +Solution: Add more test cases. +Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0537 +Problem: Vim9: no check for sandbox when setting v:var. +Solution: Check for sandbox. +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0538 +Problem: Vim9: VAR_PARTIAL is not used during compilation. +Solution: Remove VAR_PARTIAL. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0539 +Problem: Comparing two NULL list fails. +Solution: Change the order of comparing two lists. +Files: src/list.c, src/testdir/test_assert.vim + +Patch 8.2.0540 +Problem: Regexp and other code not tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5904) +Files: src/testdir/test_backspace_opt.vim, src/testdir/test_expr.vim, + src/testdir/test_increment.vim, src/testdir/test_normal.vim, + src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim, + src/testdir/test_search.vim, src/testdir/test_substitute.vim, + src/testdir/test_terminal.vim, src/testdir/test_virtualedit.vim + +Patch 8.2.0541 +Problem: Travis CI does not give compiler warnings. +Solution: Add flags for warnings. Fix uncovered problems. (Ozaki Kiichi, + closes #5898) +Files: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, + ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c, + src/libvterm/t/harness.c + +Patch 8.2.0542 +Problem: No test for E386. +Solution: Add a test. (Dominique Pellé, closes #5911) +Files: src/testdir/test_search.vim + +Patch 8.2.0543 +Problem: Vim9: function with varargs does not work properly. +Solution: Improve function type spec and add tests. Fix bugs. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, + src/structs.h, src/testdir/test_vim9_func.vim + +Patch 8.2.0544 +Problem: Memory leak in search test. +Solution: Free msgbuf. (Dominique Pellé, closes #5912) +Files: src/search.c + +Patch 8.2.0545 +Problem: Unused arguments ignored in non-standard way. +Solution: Add UNUSED instead of (void). +Files: src/libvterm/t/harness.c + +Patch 8.2.0546 +Problem: Vim9: varargs implementation is inefficient. +Solution: Create list without moving the arguments. +Files: src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0547 +Problem: Win32: restoring screen not always done right. +Solution: Use a more appropriate method. (Nobuhiro Takasaki, closes #5909) +Files: src/os_win32.c + +Patch 8.2.0548 +Problem: Vim9: not all possible func type errors tested. +Solution: Add more tests. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0549 +Problem: User systemd files not recognized. +Solution: Add filetype patterns. (Kevin Locke, closes #5914) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0550 +Problem: Some changes in the libvterm upstream code. +Solution: Include some changes. +Files: src/libvterm/t/harness.c + +Patch 8.2.0551 +Problem: Not all code for options is tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5913) +Files: src/testdir/test_options.vim, src/testdir/test_python3.vim, + src/testdir/test_undo.vim, src/testdir/test_vimscript.vim + +Patch 8.2.0552 +Problem: Vim9: some errors not covered by tests. +Solution: Add more tests. Check Funcref argument types. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0553 (after 8.2.0550) +Problem: Error for unused argument. +Solution: Add UNUSED. +Files: src/libvterm/t/harness.c + +Patch 8.2.0554 +Problem: The GUI doesn't set t_Co. +Solution: In the GUI set t_Co to 256 * 256 * 256. (closes #5903) +Files: src/term.c, src/proto/term.pro, src/gui.c, + src/testdir/test_gui.vim + +Patch 8.2.0555 +Problem: Vim9: line continuation is not always needed. +Solution: Recognize continuation lines automatically in list and dict. +Files: runtime/doc/vim9.txt, src/vim9compile.c, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0556 +Problem: Vim9: memory leak when finding common type. +Solution: Store allocated memory in type growarray. +Files: src/vim9compile.c + +Patch 8.2.0557 +Problem: No IPv6 support for channels. +Solution: Add IPv6 support. (Ozaki Kiichi, closes #5893) +Files: .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, + src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c, + src/proto/channel.pro, src/testdir/check.vim, + src/testdir/runtest.vim, src/testdir/test_cdo.vim, + src/testdir/test_channel.py, src/testdir/test_channel.vim, + src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.vim, + src/testdir/test_getcwd.vim, src/testdir/test_hide.vim + +Patch 8.2.0558 +Problem: Vim9: dict code not covered by tests. +Solution: Remove dead code, adjust test case. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0559 +Problem: Clearing a struct is verbose. +Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER(). +Files: src/vim.h, src/blowfish.c, src/channel.c, src/charset.c, + src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c, + src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c, + src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c, + src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c, + src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c, + src/main.c, src/map.c, src/memfile.c, src/message_test.c, + src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c, + src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c, + src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c, + src/search.c, src/sign.c, src/spell.c, src/spellfile.c, + src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, + src/time.c, src/undo.c, src/userfunc.c, src/vim9compile.c, + src/vim9execute.c, src/if_py_both.h + +Patch 8.2.0560 +Problem: Compiler warning in tiny build. +Solution: Move declaration inside #ifdef. (Dominique Pellé, closes #5915) +Files: src/ex_docmd.c + +Patch 8.2.0561 +Problem: Vim9: cannot split function call in multiple lines. +Solution: Find more arguments in following lines. +Files: runtime/doc/vim9.txt, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0562 +Problem: Vim9: cannot split an expression into multiple lines. +Solution: Continue in next line after an operator. +Files: runtime/doc/vim9.txt, src/macros.h, src/vim9compile.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0563 +Problem: Vim9: cannot split a function line. +Solution: Continue in next line so long as the function isn't done. +Files: runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro, + src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0564 +Problem: Vim9: calling a def function from non-vim9 may fail. +Solution: Convert varargs to a list. +Files: src/testdir/test_vim9_func.vim, src/vim9execute.c + +Patch 8.2.0565 +Problem: Vim9: tests contain superfluous line continuation. +Solution: Remove line continuation no longer needed. Skip empty lines. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0566 +Problem: Vim9: variable can be used uninitialized. +Solution: Jump to after where variable is used. +Files: src/vim9execute.c + +Patch 8.2.0567 +Problem: Vim9: cannot put comments halfway expressions. +Solution: Support # comments in many places. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, + src/ex_docmd.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0568 +Problem: The man filetype plugin overwrites the unnamed register. +Solution: Use the black hole register. (Jason Franklin) +Files: runtime/ftplugin/man.vim, src/testdir/test_man.vim + +Patch 8.2.0569 +Problem: Build failure with tiny version. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.0570 +Problem: Vim9: no error when omitting type from argument. +Solution: Enforce specifying argument types. +Files: src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0571 +Problem: Double free when passing invalid argument to job_start(). +Solution: Clear the argument when freed. (Masato Nishihata, closes #5926) +Files: src/misc2.c, src/testdir/test_channel.vim + +Patch 8.2.0572 (after 8.2.0571) +Problem: Using two lines for free and reset. +Solution: Use VIM_CLEAR() instead. (Yegappan Lakshmanan) +Files: src/misc2.c + +Patch 8.2.0573 +Problem: using :version twice leaks memory +Solution: Only initialize variables once. (Dominique Pellé, closes #5917) +Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, + src/testdir/test_version.vim, src/version.c, src/globals.h + +Patch 8.2.0574 +Problem: Ipv6 feature not shown in :version output. +Solution: Add ipv6 in :version output. (Ozaki Kiichi, closes #5924) +Files: runtime/doc/eval.txt, src/version.c + +Patch 8.2.0575 +Problem: :digraph! not tested. +Solution: Add a test. (Dominique Pellé, closes #5925) +Files: src/testdir/test_digraph.vim + +Patch 8.2.0576 +Problem: Some errors are not covered by tests. +Solution: Add a few more tests. (Dominique Pellé, closes #5920) +Files: src/testdir/test_buffer.vim, src/testdir/test_digraph.vim, + src/testdir/test_expr.vim, src/testdir/test_messages.vim + +Patch 8.2.0577 +Problem: Not all modifiers supported for :options. +Solution: Use all cmdmod.split flags. (closes #4401) +Files: src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, + src/testdir/test_options.vim, src/testdir/test_usercommands.vim + +Patch 8.2.0578 +Problem: Heredoc for interfaces does not support "trim". +Solution: Update the script heredoc support to be same as the :let command. + (Yegappan Lakshmanan, closes #5916) +Files: runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, + runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, + runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c, + src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in, + src/testdir/test87.in, src/testdir/test_lua.vim, + src/testdir/test_perl.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, + src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim, + src/testdir/test_tcl.vim, src/userfunc.c, src/vim9compile.c + +Patch 8.2.0579 +Problem: Coverity warns for unused value. +Solution: Change order and use "else if". +Files: src/os_unix.c + +Patch 8.2.0580 +Problem: Window size wrong if 'ea' is off and 'splitright' is on and + splitting then closing a window. +Solution: Put abandoned window space in the right place. (Mark Waggoner) +Files: src/testdir/test_winbuf_close.vim, src/window.c + +Patch 8.2.0581 (after 8.2.0547) +Problem: Win32 console: the cursor position is always top-left. +Solution: Revert the patch for restoring screen. +Files: src/os_win32.c + +Patch 8.2.0582 +Problem: Color ramp test does not show text colors. +Solution: Add a row of 16 text colors and 16 bold text colors. +Files: src/testdir/color_ramp.vim + +Patch 8.2.0583 +Problem: Vim9: # comment not recognized in :def function. +Solution: Recognize and skip # comment. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0584 +Problem: Viminfo file uses obsolete function file_readable(). +Solution: Use filereadable(). (closes #5934) +Files: src/session.c + +Patch 8.2.0585 +Problem: Vim9: # comment not recognized after :vim9script. +Solution: Check script type. Make comment after ":echo" work. And in + several other places. +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c, + src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0586 +Problem: Vim9: # comment not sufficiently tested +Solution: Check for preceding white space. +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0587 +Problem: Compiler warning for unused variable. +Solution: Add UNUSED. +Files: src/ex_docmd.c + +Patch 8.2.0588 +Problem: Putty does not use "sgr" 'ttymouse' by default. +Solution: Make "sgr" the default for Putty. (Christian Brabandt, + closes #5942) +Files: src/term.c + +Patch 8.2.0589 +Problem: .bsd file type not recognized. +Solution: Recognize .bsd as BSDL. (Daniel Kho, closes #5945) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0590 +Problem: No 'backspace' value allows ignoring the insertion point. +Solution: Add the "nostop" and 3 values. (Christian Brabandt, closes #5940) +Files: runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h, + src/optionstr.c, src/testdir/gen_opt_test.vim, + src/testdir/test_backspace_opt.vim + +Patch 8.2.0591 +Problem: MS-Windows: should always support IPv6 +Solution: Add build flag. (Ozaki Kiichi, closes #5944) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak + +Patch 8.2.0592 +Problem: MS-Windows with VTP: cursor is not made invisible. +Solution: Output the code to make the cursor visible or invisible. (Nobuhiro + Takasaki, closes #5941) +Files: src/os_win32.c + +Patch 8.2.0593 +Problem: Finding a user command is not optimal. +Solution: Start further down in the list of commands. +Files: src/ex_cmds.h, src/ex_docmd.c + +Patch 8.2.0594 +Problem: MS-Windows: cannot build with WINVER set to 0x0501. +Solution: Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure, + src/channel.c, src/config.h.in, src/configure.ac + +Patch 8.2.0595 +Problem: Vim9: not all commands using ends_excmd() tested. +Solution: Find # comment after regular commands. Add more tests. Report + error for where it was caused. +Files: src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/usercmd.c, + src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0596 +Problem: Crash in test49. +Solution: Check the right pointer. +Files: src/userfunc.c, src/testdir/test_eval.ok + +Patch 8.2.0597 +Problem: Test_eval is old style. +Solution: Change some tests to a new style test. +Files: src/testdir/test_eval.in, src/testdir/test_eval.ok, + src/testdir/test_eval_stuff.vim + +Patch 8.2.0598 +Problem: Test_eval_stuff fails in normal terminal. +Solution: Close the new window. +Files: src/testdir/test_eval_stuff.vim + +Patch 8.2.0599 +Problem: Netbeans interface insufficiently tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5921) +Files: runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c, + src/testdir/runtest.vim, src/testdir/test_netbeans.py, + src/testdir/test_netbeans.vim + +Patch 8.2.0600 +Problem: Vim9: cannot read or write w:, t: and b: variables. +Solution: Implement load and store for w:, t: and b: variables. + (closes #5950) +Files: src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, + src/vim9.h, src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0601 +Problem: Vim9: :unlet is not compiled. +Solution: Implement :unlet instruction and check for errors. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9.h, + src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro, + src/eval.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0602 +Problem: :unlet $VAR does not work properly. +Solution: Make ":lockvar $VAR" fail. Check the "skip" flag. +Files: src/evalvars.c, src/globals.h, src/testdir/test_vimscript.vim + +Patch 8.2.0603 +Problem: Configure does not detect moonjit. +Solution: Add check for moonjit. (Shlomi Fish, closes #5947) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.0604 +Problem: :startinsert in a terminal window used later. +Solution: Ignore :startinsert in a terminal window. (closes #5952) +Files: src/ex_docmd.c, src/testdir/test_terminal.vim + +Patch 8.2.0605 +Problem: Vim9: cannot unlet an environment variable. +Solution: Implement unlet for $VAR. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0606 +Problem: Several syntax HL errors not checked. +Solution: Add tests. (Yegappan Lakshmanan, closes #5954) +Files: src/testdir/test_syntax.vim + +Patch 8.2.0607 +Problem: Gcc warns for using uninitialized variable. (John Marriott) +Solution: Set name_end also for environment variables. +Files: src/evalvars.c + +Patch 8.2.0608 +Problem: Warning from clang when building message test. +Solution: Use a void pointer. (Dominique Pellé, closes #5958) +Files: src/message_test.c + +Patch 8.2.0609 +Problem: Configure does not detect moonjit correctly. +Solution: Double the brackets. (Ozaki Kiichi) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.0610 +Problem: Some tests are still old style. +Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5957) +Files: src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim, + src/testdir/test_eval.in, src/testdir/test_eval.ok, + src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim, + src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, + src/testdir/test_functions.vim, src/testdir/test_listdict.vim, + src/testdir/test_sort.vim, src/testdir/test_syntax.vim, + src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim + +Patch 8.2.0611 +Problem: Vim9: no check for space before #comment. +Solution: Add space checks. +Files: src/eval.c, src/evalvars.c, src/ex_docmd.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0612 +Problem: Vim9: no check for space before #comment. +Solution: Add space checks. +Files: src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro, + src/gui.c, src/highlight.c, src/testdir/test_vim9_script.vim, + src/testdir/test_sort.vim + +Patch 8.2.0613 +Problem: Vim9: no check for space before #comment. +Solution: Add space checks. +Files: src/highlight.c, src/menu.c, src/syntax.c, + src/testdir/test_vim9_script.vim, + runtime/lang/menu_de_de.latin1.vim + +Patch 8.2.0614 +Problem: Get ml_get error when deleting a line in 'completefunc'. (Yegappan + Lakshmanan) +Solution: Lock the text while evaluating 'completefunc'. +Files: src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c, + src/undo.c, src/testdir/test_edit.vim, src/testdir/test_excmd.vim, + src/testdir/test_gf.vim, src/testdir/test_popup.vim, + src/testdir/test_ex_mode.vim, runtime/doc/insert.txt + +Patch 8.2.0615 +Problem: Regexp benchmark test is old style. +Solution: Make it a new style test. Fix using a NULL list. Add more tests. + (Yegappan Lakshmanan, closes #5963) +Files: src/evalbuffer.c, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Makefile, + src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim, + src/testdir/test_autocmd.vim, src/testdir/test_bench_regexp.vim, + src/testdir/test_blob.vim, src/testdir/test_bufline.vim, + src/testdir/test_channel.vim, src/testdir/test_cmdline.vim, + src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_popupwin.vim, src/testdir/test_prompt_buffer.vim, + src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.0616 +Problem: Build error when disabling the diff feature. +Solution: Move parenthesis outside of #ifdef. (Tom Ryder) +Files: src/drawline.c + +Patch 8.2.0617 +Problem: New error check triggers in Swedish menu. +Solution: Insert backslash. (Mats Tegner, closes #5966) +Files: runtime/lang/menu_sv_se.latin1.vim + +Patch 8.2.0618 +Problem: Echoing a null list results in no output. (Yegappan Lakshmanan) +Solution: Return "[]" instead of NULL in echo_string_core(). +Files: src/eval.c, src/testdir/test_messages.vim + +Patch 8.2.0619 +Problem: Null dict is not handled like an empty dict. +Solution: Fix the code and add tests. (Yegappan Lakshmanan, closes #5968) +Files: src/dict.c, src/eval.c, src/testdir/test_blob.vim, + src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, + src/testdir/test_let.vim, src/testdir/test_listdict.vim, + src/testdir/test_search.vim, src/testdir/test_unlet.vim, + src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim + +Patch 8.2.0620 +Problem: Error in menu translations. +Solution: Insert a backslash before a space. +Files: runtime/lang/menu_it_it.latin1.vim, + runtime/lang/menu_chinese_gb.936.vim + +Patch 8.2.0621 +Problem: After running tests asan files may remain. +Solution: Clean up asan files with "make testclean". +Files: src/testdir/Makefile, src/Makefile + +Patch 8.2.0622 +Problem: Haiku: GUI does not compile. +Solution: Various fixes. (Emir Sarı, closes #5961) +Files: Filelist, README.md, READMEdir/README_haiku.txt, + runtime/doc/os_haiku.txt, src/Makefile, src/beval.h, + src/gui_haiku.cc, src/proto/gui_haiku.pro + +Patch 8.2.0623 +Problem: Typo in test comment. (Christ van Willegen) +Solution: Avoid mixing up a data structure with a body part. +Files: src/testdir/test_listdict.vim + +Patch 8.2.0624 +Problem: Vim9: no check for space before #comment. +Solution: Add space checks. Fix :throw with double quoted string. +Files: src/usercmd.c, src/userfunc.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0625 +Problem: Vim9: confusing error when calling unknown function. +Solution: Give error while compiling. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.0626 +Problem: Vim9: wrong syntax of function in Vim9 script. +Solution: Give error for missing space. Implement :echomsg and :echoerr. + (closes #5670) +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c, + src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0627 +Problem: Vim9: error message does not work. (Yegappan Lakshmanan) +Solution: Swap lines. +Files: src/userfunc.c + +Patch 8.2.0628 +Problem: Error in menu translations. +Solution: Insert a backslash before a space in one more file. (Shun Bai, + Emir Sarı) +Files: runtime/lang/menu_zh_cn.utf-8.vim, + runtime/lang/menu_ca_es.latin1.vim, + runtime/lang/menu_cs_cz.iso_8859-2.vim, + runtime/lang/menu_cs_cz.utf-8.vim, + runtime/lang/menu_czech_czech_republic.1250.vim, + runtime/lang/menu_czech_czech_republic.ascii.vim, + runtime/lang/menu_da.utf-8.vim, + runtime/lang/menu_fi_fi.latin1.vim, + runtime/lang/menu_hu_hu.iso_8859-2.vim, + runtime/lang/menu_hu_hu.utf-8.vim, + runtime/lang/menu_is_is.latin1.vim, + runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pt_br.vim, + runtime/lang/menu_pt_pt.vim, + runtime/lang/menu_sk_sk.iso_8859-2.vim, + runtime/lang/menu_sl_si.latin2.vim, + runtime/lang/menu_slovak_slovak_republic.1250.vim, + runtime/lang/menu_tr_tr.cp1254.vim, + runtime/lang/menu_tr_tr.iso_8859-9.vim, + runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_vi_vn.vim + +Patch 8.2.0629 +Problem: Setting a boolean option to v:false does not work. +Solution: Do not use the string representation of the value. (Christian + Brabandt, closes #5974) +Files: src/evalvars.c, src/testdir/test_options.vim + +Patch 8.2.0630 +Problem: "make tags" does not cover Haiku GUI file. +Solution: Add *.cc files. +Files: src/Make_all.mak + +Patch 8.2.0631 +Problem: Haiku file formatted with wrong tabstop. +Solution: Use normal tabstop. Fix white space. +Files: src/gui_haiku.cc + +Patch 8.2.0632 +Problem: Crash when using Haiku. +Solution: Lock the screen. (closes #5975, closes #5973) +Files: src/screen.c + +Patch 8.2.0633 +Problem: Crash when using null partial in filter(). +Solution: Fix crash. Add more tests. (Yegappan Lakshmanan, closes #5976) +Files: src/eval.c, src/testdir/test_blob.vim, + src/testdir/test_channel.vim, src/testdir/test_eval_stuff.vim, + src/testdir/test_execute_func.vim, src/testdir/test_expr.vim, + src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, + src/testdir/test_functions.vim, src/testdir/test_let.vim, + src/testdir/test_listdict.vim, src/testdir/test_partial.vim, + src/testdir/test_usercommands.vim + +Patch 8.2.0634 +Problem: Crash with null partial and blob. +Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan, + closes #5984) +Files: src/eval.c, src/list.c, src/testdir/test_blob.vim, + src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim, + src/testdir/test_channel.vim, src/testdir/test_cursor_func.vim, + src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim, + src/testdir/test_filter_map.vim, src/testdir/test_fnamemodify.vim, + src/testdir/test_functions.vim, src/testdir/test_getvar.vim, + src/testdir/test_listdict.vim, src/testdir/test_messages.vim, + src/testdir/test_partial.vim, src/testdir/test_quickfix.vim, + src/testdir/test_tabpage.vim, src/testdir/test_vimscript.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0635 +Problem: When using 256 colors DarkYellow does not show expected color. +Solution: Use color 3 instead of 130. (Romain Lafourcade, closes #5985) +Files: src/highlight.c + +Patch 8.2.0636 +Problem: :messages does not show the maintainer when $LANG is unset. +Solution: Call get_mess_lang() if available. (closes #5978) +Files: src/message.c + +Patch 8.2.0637 +Problem: Incsearch highlighting does not work for ":sort!". +Solution: Skip over the exclamation point. (closes #5983) +Files: src/ex_getln.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_incsearch_sort_02.dump + +Patch 8.2.0638 +Problem: MS-Windows: messages test fails. +Solution: Clear environment variables. +Files: src/testdir/test_messages.vim + +Patch 8.2.0639 +Problem: MS-Windows: messages test still fails. +Solution: Filter out the maintainer message. +Files: src/testdir/test_messages.vim + +Patch 8.2.0640 +Problem: Vim9: expanding `=expr` does not work. +Solution: Find wildcards in not compiled commands. Reorganize test files. +Files: Filelist, src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/vim9.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim, + src/testdir/Make_all.mak + +Patch 8.2.0641 +Problem: Vim9: `=expr` not expanded in :hardcopy and "syntax include". +Solution: Add the EX_EXPAND flag. Expend "syntax include". +Files: src/ex_cmds.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.0642 +Problem: Vim9: using invalid index. +Solution: Check index for being valid. Fix memory leak. +Files: src/vim9compile.c, src/clientserver.c + +Patch 8.2.0643 (after 8.2.0635) +Problem: Terminal uses brown instead of dark yellow. (Romain Lafourcade) +Solution: Use color index 3 instead of 130. (closes #5993) +Files: src/terminal.c + +Patch 8.2.0644 +Problem: Insufficient testing for invalid function arguments. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5988) +Files: runtime/doc/eval.txt, src/testdir/test_bufline.vim, + src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, + src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_listener.vim, src/testdir/test_match.vim, + src/testdir/test_menu.vim, src/testdir/test_quickfix.vim, + src/testdir/test_registers.vim, src/testdir/test_reltime.vim, + src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0645 +Problem: MS-Windows terminal: CTRL-C does not get to child job. +Solution: Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro + Takasaki, closes #5987) +Files: src/terminal.c + +Patch 8.2.0646 +Problem: t_Co uses the value of $COLORS in the GUI. (Masato Nishihata) +Solution: Ignore $COLORS for the GUI. (closes #5992) +Files: src/os_unix.c, src/term.c + +Patch 8.2.0647 +Problem: MS-Windows: repeat count for events was not used. +Solution: Check the repeat count. (Nobuhiro Takasaki, closes #5989) +Files: src/os_win32.c + +Patch 8.2.0648 +Problem: Semicolon search does not work in first line. +Solution: Allow the cursor to be in line zero. (Christian Brabandt, + closes #5996) +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.0649 +Problem: Undo problem when an InsertLeave autocommand resets undo. (Kutsan + Kaplan) +Solution: Do not create a new undo block when leaving Insert mode. +Files: src/edit.c, src/testdir/test_edit.vim + +Patch 8.2.0650 +Problem: Vim9: script function can be deleted. +Solution: Disallow deleting script function. Delete functions when sourcing + a script again. +Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, + src/vim9compile.c, src/vim9execute.c, src/vim9script.c, + src/scriptfile.c, src/testing.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0651 +Problem: Old style benchmark test still in list of distributed files. +Solution: Remove the files from the list. +Files: Filelist + +Patch 8.2.0652 (after 8.2.0650) +Problem: Compiler warning for char conversion. +Solution: Use unsigned char buffer. +Files: src/userfunc.c + +Patch 8.2.0653 (after 8.2.0650) +Problem: using uninitialized pointer. +Solution: Move assignment up. (John Marriott) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0654 +Problem: Building with Python fails. +Solution: Add missing argument. +Files: src/if_py_both.h + +Patch 8.2.0655 +Problem: Search code not sufficiently tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #5999) +Files: src/testdir/test_charsearch.vim, src/testdir/test_gn.vim, + src/testdir/test_goto.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_normal.vim, src/testdir/test_search.vim, + src/testdir/test_textformat.vim, src/testdir/test_textobjects.vim, + src/testdir/test_visual.vim + +Patch 8.2.0656 +Problem: MS-Windows: redrawing right screen edge may not be needed. +Solution: Check the build version. (Nobuhiro Takasaki, closes #6002) +Files: src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro + +Patch 8.2.0657 +Problem: Vim9: no check if called variable is a FuncRef. +Solution: Add a type check. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0658 (after 8.2.0646) +Problem: HP-UX build fails when setenv() is not defined. +Solution: Change "colors" to "t_colors". (John Marriott) +Files: src/os_unix.c + +Patch 8.2.0659 +Problem: Vim9: no test for equal func type. +Solution: Add a test. Improve type check. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0660 +Problem: The search.c file is a bit big. +Solution: Split off the text object code to a separate file. (Yegappan + Lakshmanan, closes #6007) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/proto.h, src/proto/search.pro, src/proto/textobject.pro, + src/search.c, src/textobject.c + +Patch 8.2.0661 +Problem: Eval test is still old style. +Solution: Change into new style tests. (Yegappan Lakshmanan, closes #6009) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test_eval.in, src/testdir/test_eval.ok, + src/testdir/test_eval_stuff.vim + +Patch 8.2.0662 +Problem: Cannot use input() in a channel callback. +Solution: Reset vgetc_busy. (closes #6010) +Files: src/globals.h, src/ex_getln.c, src/evalfunc.c, + src/testdir/test_channel.vim + +Patch 8.2.0663 +Problem: Not all systemd temp files are recognized. +Solution: Add two more patterns. (Jamie Macdonald, closes #6003) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0664 +Problem: Included undesired changes in Makefile. +Solution: Revert the changes. +Files: src/Makefile + +Patch 8.2.0665 +Problem: Wrongly assuming Python executable is called "python". +Solution: Use detected python command. (Ken Takata, closes #6016) + Also use CheckFunction if possible. +Files: src/testdir/test_terminal.vim, src/testdir/check.vim + +Patch 8.2.0666 +Problem: Ruby test fails on MS-Windows. +Solution: Remove the "maintainer" line. (Ken Takata, closes #6015) +Files: src/testdir/shared.vim, src/testdir/test_messages.vim, + src/testdir/test_ruby.vim + +Patch 8.2.0667 +Problem: Cannot install Haiku version from source. +Solution: Update Makefile and rdef file. (Emir Sarı, closes #6013) +Files: Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt, + src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef + +Patch 8.2.0668 +Problem: Compiler warning for int/size_t usage. +Solution: Change "int" to "size_t". (Mike Williams) +Files: src/vim9execute.c + +Patch 8.2.0669 +Problem: MS-Windows: display in VTP is a bit slow. +Solution: Optimize the code. (Nobuhiro Takasaki, closes #6014) +Files: src/os_win32.c, src/screen.c + +Patch 8.2.0670 +Problem: Cannot change window when evaluating 'completefunc'. +Solution: Make a difference between not changing text or buffers and also + not changing window. +Files: src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c, + src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c, + src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c, + src/undo.c, src/testdir/test_edit.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim + +Patch 8.2.0671 +Problem: Haiku: compiler warnings. +Solution: Avoid the warnings. Drop display_errors() copy. (Emir Sarı, + closes #6018) +Files: .gitignore, src/gui.c, src/gui_haiku.cc + +Patch 8.2.0672 +Problem: Heredoc in scripts does not accept lower case marker. +Solution: Allow lower case only in non-Vim scripts. (Ken Takata, + closes #6019) +Files: src/evalvars.c, src/testdir/test_lua.vim, + src/testdir/test_perl.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim, src/testdir/test_pyx2.vim, + src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim + +Patch 8.2.0673 +Problem: Cannot build Haiku in shadow directory. +Solution: Add symlink. (Ozaki Kiichi, closes #6023) +Files: src/Makefile + +Patch 8.2.0674 +Problem: Some source files are too big. +Solution: Move text formatting functions to a new file. (Yegappan + Lakshmanan, closes #6021) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h, + src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro, + src/proto/option.pro, src/proto/textformat.pro, src/textformat.c + +Patch 8.2.0675 +Problem: Vim9: no support for closures. +Solution: Do not re-use stack entries. +Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/evalvars.c, src/proto/evalvars.pro + +Patch 8.2.0676 +Problem: Pattern in list of distributed files does not match. +Solution: Drop "testdir/test_[a-z]*.ok". Add CI sed files. +Files: Filelist + +Patch 8.2.0677 +Problem: Vim9: no support for closures. +Solution: Find variables in the outer function scope, so long as the scope + exists. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/vim9execute.c, src/structs.h, src/vim9.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.0678 +Problem: Rare crash for popup menu. +Solution: Check for NULL pointer. (Nobuhiro Takasaki, closes #6027) +Files: src/popupmenu.c + +Patch 8.2.0679 +Problem: Vim9: incomplete support for closures. +Solution: At the end of a function copy arguments and local variables if + they are still used by a referenced closure. +Files: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.0680 +Problem: PTYGROUP and PTYMODE are unused. +Solution: Remove from autoconf. (closes #6024) +Files: src/configure.ac, src/auto/configure, src/config.h.in + +Patch 8.2.0681 +Problem: Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé) +Solution: Call end_search_hl() to make sure the previous pattern is freed. + (closes #6028) +Files: src/screen.c + +Patch 8.2.0682 +Problem: Vim9: parsing function argument type can get stuck. +Solution: Bail out when not making progress. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0683 +Problem: Vim9: parsing type does not always work. +Solution: Handle func type without return value. Test more closures. + Fix type check offset. Fix garbage collection. +Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, + src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0684 +Problem: Vim9: memory leak when using lambda. +Solution: Move the funccal context to the partial. Free the function when + exiting. +Files: src/vim9.h, src/structs.h, src/vim9execute.c, src/userfunc.c, + src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0685 (after 8.2.0684) +Problem: Build failure. +Solution: Include missing changes. +Files: src/vim9compile.c + +Patch 8.2.0686 +Problem: Formatoptions not sufficiently tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6031) +Files: src/testdir/test_normal.vim, src/testdir/test_textformat.vim + +Patch 8.2.0687 +Problem: Some tests do not work on FreeBSD. +Solution: Enable modeline. Use WaitFor() in more cases. (Ozaki Kiichi, + closes #6036) +Files: src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim + +Patch 8.2.0688 +Problem: Output clobbered if setting 'verbose' to see shell commands. +Solution: Only output "Searching for" when 'verbose' is 11 or higher. +Files: src/scriptfile.c, runtime/doc/options.txt + +Patch 8.2.0689 +Problem: When using getaddrinfo() the error message is unclear. +Solution: Use gai_strerror() to get the message. (Ozaki Kiichi, + closes #6034) +Files: src/channel.c + +Patch 8.2.0690 +Problem: Line number of option set by modeline is wrong. +Solution: Do not double the line number. (Ozaki Kiichi, closes #6035) +Files: src/option.c, src/testdir/test_modeline.vim + +Patch 8.2.0691 +Problem: Startup test fails. +Solution: Adjust expected output from -V2 argument. +Files: src/testdir/test_startup.vim + +Patch 8.2.0692 +Problem: Startup test fails on MS-Windows. +Solution: Allow for any path. +Files: src/testdir/test_startup.vim + +Patch 8.2.0693 +Problem: Closure using argument not tested. +Solution: Add a test, make it work. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0694 +Problem: Haiku: channel and terminal do not work. +Solution: Close files when the job has finished. (Ozaki Kiichi, + closes #6039) +Files: src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c + +Patch 8.2.0695 +Problem: Vim9: cannot define a function inside a function. +Solution: Initial support for :def inside :def. +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, + src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0696 +Problem: Vim9: nested function does not work properly +Solution: Create a function reference. Check argument count. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.0697 +Problem: Vim9: memory leak when using nested function. +Solution: Unreference function when deleting instructions. Adjust reference + count for local variables. +Files: src/vim9compile.c, src/vim9execute.c + +Patch 8.2.0698 +Problem: Insert mode completion not fully tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6041) +Files: src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_textformat.vim + +Patch 8.2.0699 +Problem: Vim9: not all errors tested. +Solution: Add test for deleted function. Bail out on first error. +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim + +Patch 8.2.0700 +Problem: Vim9: converting error message to exception not tested. +Solution: Test exception from error. Do not continue after :echoerr. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0701 +Problem: Vim9 test fails without job feature. +Solution: Add feature check. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0702 +Problem: Running channel tests may leave running process behind. +Solution: Make Python client exit when running into EOF. (Kurtis Rader, + part of #6046) +Files: src/testdir/test_channel_pipe.py + +Patch 8.2.0703 +Problem: Vim9: closure cannot store value in outer context. +Solution: Make storing value in outer context work. Make :disassemble + accept a function reference. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/eval.c, + src/structs.h, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.0704 +Problem: Vim9: memory leak in disassemble test. +Solution: Decrement refcount when creating funccal. +Files: src/vim9execute.c + +Patch 8.2.0705 +Problem: Indent tests don't run on CI for FreeBSD. +Solution: Set modeline. (Ozaki Kiichi, closes #6048) +Files: .cirrus.yml, runtime/indent/testdir/runtest.vim + +Patch 8.2.0706 +Problem: Vim9: using assert_fails() causes function to finish. +Solution: Check did_emsg instead of called_emsg. +Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0707 +Problem: Vim9 function test fails. +Solution: Adjust expected error code. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.0708 +Problem: Vim9: constant expressions are not simplified. +Solution: Simplify string concatenation. +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0709 +Problem: MS-Windows: compiler warning for int vs size_t. +Solution: Add type cast. (Mike Williams) +Files: src/channel.c + +Patch 8.2.0710 +Problem: Netbeans test sometimes fails. +Solution: Mark any test using an external command as flaky. +Files: src/testdir/shared.vim + +Patch 8.2.0711 +Problem: With a long running Vim the temp directory might be cleared on + some systems. +Solution: Lock the temp directory. (closes #6044) +Files: src/config.h.in, src/configure.ac, src/auto/configure, + src/fileio.c, src/globals.h, src/os_unix.h + +Patch 8.2.0712 +Problem: Various code not fully tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6049) +Files: src/testdir/test_functions.vim, src/testdir/test_options.vim, + src/testdir/test_system.vim, src/testdir/test_termcodes.vim + +Patch 8.2.0713 +Problem: The pam_environment file is not recognized. +Solution: Add a filetype pattern for pamenv. (closes #6051) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0714 +Problem: Vim9: handling constant expression does not scale. +Solution: Use another solution, passing typval_T. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0715 +Problem: Vim9: leaking memory. +Solution: Free strings after concatenating them. +Files: src/vim9compile.c + +Patch 8.2.0716 +Problem: Vim9: another memory leak. +Solution: Clear typval when failing. +Files: src/vim9compile.c + +Patch 8.2.0717 +Problem: Vim9: postponed constant expressions does not scale. +Solution: Add a structure to pass around postponed constants. +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0718 +Problem: Gcc warning for returning pointer to local variable. (John + Marriott) +Solution: Return another pointer. +Files: src/evalvars.c + +Patch 8.2.0719 +Problem: Vim9: more expressions can be evaluated at compile time +Solution: Recognize has('name'). +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.0720 +Problem: Occasional exit when encountering an X error. (Manfred Lotz) +Solution: On an X error do not exit, do preserve files. +Files: src/os_unix.c + +Patch 8.2.0721 +Problem: Vim9: leaking memory when skipping. +Solution: Disable skipping in generate_ppconst(). +Files: src/vim9compile.c + +Patch 8.2.0722 +Problem: Vim9: not handling constant expression for elseif. +Solution: Use postponed constants. Delete the code for evaluating a + constant expression. +Files: src/vim9compile.c + +Patch 8.2.0723 +Problem: Vim9: nested constant expression not evaluated compile time. +Solution: Use compile_expr1() for parenthesis. +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0724 +Problem: Vim9: appending to buffer/window/tab variable not tested +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0725 +Problem: Vim9: cannot call a function declared later in Vim9 script. +Solution: Make two passes through the script file. +Files: src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c, + src/vim9compile.c, src/vim9execute.c, src/proto/vim9compile.pro, + src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, + src/proto/evalvars.pro, src/vim.h, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0726 +Problem: Vim9: leaking memory when calling not compiled :def function. +Solution: Check if function is compiled earlier. +Files: src/vim9execute.c + +Patch 8.2.0727 +Problem: MS-Windows: new gcc compiler does not support scanf format. +Solution: Use "%ll" instead of "%I". (Ken Takata) +Files: src/vim.h + +Patch 8.2.0728 +Problem: Messages about a deadly signal are not left aligned. +Solution: Output a CR before the NL. (Dominique Pellé, #6055) +Files: src/misc1.c, src/os_unix.c + +Patch 8.2.0729 +Problem: Vim9: When reloading a script variables are not cleared. +Solution: When sourcing a script again clear all script-local variables. +Files: src/dict.c, src/proto/dict.pro, src/scriptfile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0730 +Problem: Vim9: Assignment to dict member does not work. +Solution: Parse dict assignment. Implement getting dict member. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/globals.h, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.0731 +Problem: Vim9: parsing declarations continues after :finish. +Solution: Bail out when encountering :finish. +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0732 +Problem: Vim9: storing value in dict messes up stack. +Solution: Correct item count of stack. +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.0733 +Problem: Vim9: assigning to dict or list argument does not work. +Solution: Recognize an argument as assignment target. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0734 +Problem: Vim9: leaking memory when using :finish. +Solution: Do not check for next line in third pass. +Files: src/scriptfile.c + +Patch 8.2.0735 +Problem: Vim9: using uninitialized memory. +Solution: Clear the arg_lvar field. +Files: src/vim9compile.c + +Patch 8.2.0736 +Problem: Some files not recognized as pamenv. +Solution: Add pam_inv.conf. (closes #6065) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0737 +Problem: When shell doesn't support CTRL-Z Vim still handles it. +Solution: Ignore the STOP signal if it was ignored on startup. + (Kurtis Rader, closes #5990, closes #6058) +Files: src/os_unix.c + +Patch 8.2.0738 +Problem: Mouse handling in a terminal window not well tested. +Solution: Add tests. (Yegappan Lakshmanan, closes #6052) +Files: src/testdir/term_util.vim, src/testdir/test_gui.vim, + src/testdir/test_modeless.vim, src/testdir/test_terminal.vim + +Patch 8.2.0739 +Problem: Incomplete profiling when exiting because of a deadly signal. +Solution: Call __gcov_flush() if available. +Files: src/os_unix.c, src/Makefile, .travis.yml + +Patch 8.2.0740 +Problem: Minor message mistakes. +Solution: Change vim to Vim and other fixes. +Files: src/if_py_both.h, src/if_tcl.c, src/main.c + +Patch 8.2.0741 +Problem: Python tests fail because of changed message. +Solution: Adjust the expected messages (Dominique Pellé, closes #6066) +Files: src/testdir/test86.ok, src/testdir/test87.ok + +Patch 8.2.0742 +Problem: Handling of a TERM signal not tested. +Solution: Add a test for SIGTERM. (Dominique Pellé, closes #6055) +Files: src/testdir/test_signals.vim + +Patch 8.2.0743 +Problem: Can move to another buffer from a terminal in popup window. +Solution: Do not allow "gf" or editing a file. (closes #6072) +Files: src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.vim + +Patch 8.2.0744 +Problem: The name vim is not capitalized in a message. +Solution: Use "Vim" instead of "vim". +Files: src/main.c + +Patch 8.2.0745 +Problem: Crash on exit when not all popups are closed. +Solution: Close popups when freeing all memory. Disable checking for popup + when editing a file for now. +Files: src/misc2.c, src/ex_cmds.c + +Patch 8.2.0746 +Problem: popup_clear() hangs when a popup can't be closed. +Solution: Bail out when a popup can't be closed. +Files: src/popupwin.c, src/proto/popupwin.pro + +Patch 8.2.0747 +Problem: Cannot forcefully close all popups. +Solution: Add the "force" argument to popup_clear(). Use it after running a + test. Put back the check for a popup when editing a file. +Files: runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c, + src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c, + src/ex_cmds.c, src/channel.c, src/testdir/runtest.vim, + src/testdir/test_terminal.vim + +Patch 8.2.0748 +Problem: Cannot get a list of all popups. +Solution: Add popup_list(). Use it in the test runner. +Files: runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c, + src/proto/popupwin.pro, src/evalfunc.c, + src/testdir/test_popupwin.vim, src/testdir/runtest.vim + +Patch 8.2.0749 +Problem: TERM signal test fails on FreeBSD. +Solution: Do not check the messages, the may appear anywhere. (Dominique + Pellé, closes #6075) +Files: src/testdir/test_signals.vim + +Patch 8.2.0750 +Problem: Netbeans test is a bit flaky. +Solution: Allow for standard sign to be defined. Use WaitForAssert(). +Files: src/testdir/test_netbeans.vim + +Patch 8.2.0751 +Problem: Vim9: performance can be improved. +Solution: Don't call break. Inline check for list materialize. Make an + inline version of ga_grow(). +Files: src/macros.h, src/evalfunc.c, src/misc2.c, + src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c, + src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c, + src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c, + src/userfunc.c, src/if_py_both.h + +Patch 8.2.0752 +Problem: Terminal in popup window test is a bit flaky. +Solution: Wait for shell job status to be "run". Mark as flaky test. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.0753 +Problem: Vim9: expressions are evaluated in the discovery phase. +Solution: Bail out if an expression is not a constant. Require a type for + declared constants. +Files: src/vim.h, src/evalvars.c, src/eval.c, src/ex_eval.c, + src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c, + src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0754 +Problem: Vim9: No test for forward declaration. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0755 +Problem: Vim9: No error when variable initializer is not a constant. +Solution: Return FAIL when trying to get a variable value. Do not execute a + script when an error is detected in the first or second phase. +Files: src/eval.c, src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0756 (after 8.2.0249) +Problem: MS-Windows: still a compiler warning. +Solution: Move flag to another place in the Makefile. (Ken Takata, + closes #6083) +Files: src/Make_mvc.mak + +Patch 8.2.0757 +Problem: Vim9: no test for MEMBER instruction. +Solution: Add a test. Make matches stricter. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0758 +Problem: Vim9: no test for STORELIST and STOREDICT. +Solution: Add a test. Make matches stricter. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.0759 (after 8.2.0751) +Problem: Vim9: missing changes for performance improvements +Solution: Use GA_GROW(). Don't call breakcheck so often. +Files: src/vim9execute.c + +Patch 8.2.0760 +Problem: Vim9: dict member errors not tested. +Solution: Delete unreachable error. Add tests. +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.0761 +Problem: Vim9: instructions not tested +Solution: Use a variable instead of a constant. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.0762 +Problem: Buffer is not considered modified after setting crypt key. +Solution: Set the modified flag. (Christian Brabandt, closes #6082) +Files: src/optionstr.c, src/testdir/test_crypt.vim + +Patch 8.2.0763 +Problem: GUI test fails without the terminal feature. +Solution: Check the terminal feature is supported. (Ken Takata, + closes #6084) +Files: src/testdir/test_gui.vim + +Patch 8.2.0764 +Problem: Vim9: assigning to option not fully tested. +Solution: Add more test cases. Allow using any type for assignment. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0765 +Problem: In the GUI can't use all the modifiers. (Andri Möll) +Solution: Do not apply Alt/Meta early, do it later like with the terminal. + Avoid the Motif test from crashing. +Files: src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c, + src/gui_motif.c + +Patch 8.2.0766 +Problem: Display error when using 'number' and 'breakindent'. +Solution: Adjust extra spaces in the first row. (Ken Takata, closes #6089, + closes #5986) +Files: src/drawline.c, src/testdir/test_breakindent.vim + +Patch 8.2.0767 +Problem: ModifyOtherKeys active when using a shell command in autocmd. +Solution: Output T_CTE when going to cooked mode. (closes 5617) +Files: src/term.c + +Patch 8.2.0768 +Problem: Vim9: memory leak in script test. +Solution: Clear typval before giving an error message. +Files: src/vim9execute.c + +Patch 8.2.0769 +Problem: VimLeavePre not triggered when Vim is terminated. +Solution: Unblock autocommands. +Files: src/main.c, src/testdir/test_signals.vim + +Patch 8.2.0770 +Problem: Cannot map CTRL-B when using the GUI. +Solution: Reset the CTRL modifier when used. (closes #6092) +Files: src/gui_gtk_x11.c + +Patch 8.2.0771 +Problem: Vim9: cannot call a compiled closure from not compiled code. +Solution: Pass funcexe to call_user_func(). +Files: src/userfunc.c, src/vim9execute.c, src/proto/vim9execute.pro, + src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.0772 +Problem: Vim9: some variable initializations not tested. +Solution: Add a few more tests +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0773 +Problem: Switching to raw mode every time ":" is used. +Solution: When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the + next time TMODE_RAW is used it is set, but not every time. +Files: src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c, + src/os_win32.c + +Patch 8.2.0774 +Problem: t_TI and t_TE are output when using 'visualbell'. (Dominique + Pellé) +Solution: Do not change the terminal mode for a short sleep. Do not output + t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an + enum. +Files: src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c, + src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro, + src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c, + src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h + +Patch 8.2.0775 +Problem: Not easy to call a Vim function from Lua. +Solution: Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063) +Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.0776 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revision 719. +Files: Filelist, src/libvterm/README, src/libvterm/Makefile, + src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc, + src/libvterm/src/unicode.c + +Patch 8.2.0777 (after 8.2.0776) +Problem: Terminal test fails. +Solution: Adjust character position for double-wide characters. +Files: src/testdir/test_terminal.vim + +Patch 8.2.0778 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 720 - 723. +Files: src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile, + src/libvterm/t/run-test.pl, src/libvterm/src/state.c, + src/libvterm/t/92lp1805050.test + +Patch 8.2.0779 +Problem: Tmode_T not used everywhere. +Solution: Also use tmode_T for settmode(). +Files: src/term.c, src/proto/term.pro + +Patch 8.2.0780 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 724 - 726. +Files: Filelist, src/libvterm/t/40screen_ascii.test, + src/libvterm/t/60screen_ascii.test, + src/libvterm/t/41screen_unicode.test, + src/libvterm/t/61screen_unicode.test, + src/libvterm/t/42screen_damage.test, + src/libvterm/t/62screen_damage.test, + src/libvterm/t/43screen_resize.test, + src/libvterm/t/63screen_resize.test, + src/libvterm/t/44screen_pen.test, + src/libvterm/t/64screen_pen.test, + src/libvterm/t/45screen_protect.test, + src/libvterm/t/65screen_protect.test, + src/libvterm/t/46screen_extent.test, + src/libvterm/t/66screen_extent.test, + src/libvterm/t/47screen_dbl_wh.test, + src/libvterm/t/67screen_dbl_wh.test, + src/libvterm/t/48screen_termprops.test, + src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test, + src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test, + src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt + +Patch 8.2.0781 (after 8.2.0775) +Problem: Compiler warning for not using value in Lua. +Solution: Add "(void)". +Files: src/if_lua.c + +Patch 8.2.0782 +Problem: Cannot build with Lua on MS-Windows. +Solution: Add DLL symbol for luaL_Loadstring. (Ken Takata) +Files: src/if_lua.c + +Patch 8.2.0783 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 728 - 729. +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, + src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test, + src/libvterm/t/harness.c, src/libvterm/src/vterm.c, + src/libvterm/src/vterm_internal.h, + src/libvterm/t/26state_query.test + +Patch 8.2.0784 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 730 - 733. +Files: src/libvterm/src/vterm.c, src/libvterm/src/state.c, + src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h, + src/libvterm/t/harness.c + +Patch 8.2.0785 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 734 - 740. +Files: src/libvterm/include/vterm.h, src/libvterm/src/pen.c, + src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt, + src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl, + src/libvterm/Makefile, src/libvterm/CONTRIBUTING + +Patch 8.2.0786 +Problem: Channel test is flaky on FreeBSD. +Solution: Set the socket TCP_NODELAY option. Adjust expected line count in + netbeans test. (Ozaki Kiichi, closes #6097) +Files: src/testdir/test_channel.py, src/testdir/test_netbeans.vim + +Patch 8.2.0787 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 741 - 742. +Files: Filelist, src/libvterm/src/screen.c + +Patch 8.2.0788 +Problem: Memory leak in libvterm. +Solution: free tmpbuffer. +Files: src/libvterm/src/vterm.c + +Patch 8.2.0789 +Problem: Vim9: expression testing lost coverage using constants. +Solution: Use a few variables instead of constants. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.0790 +Problem: Vim9: list index not well tested. +Solution: Add a few more tests. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0791 +Problem: A second popup window with terminal causes trouble. +Solution: Disallow opening a second terminal-popup window. (closes #6101, + closes #6103) Avoid defaulting to an invalid line number. +Files: runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c, + src/testdir/test_popupwin.vim, src/testdir/test_terminal.vim + +Patch 8.2.0792 +Problem: Build failure with small features. +Solution: Add #ifdef. +Files: src/popupwin.c + +Patch 8.2.0793 +Problem: MS-Windows: cannot build GUI with small features. (Michael Soyka) +Solution: Add #ifdef around use of windowsVersion. (Ken Takata) +Files: src/os_win32.c + +Patch 8.2.0794 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 743 - 747. +Files: src/libvterm/src/state.c, src/libvterm/src/screen.c, + src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h, + src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl + +Patch 8.2.0795 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 748 - 754. +Files: src/libvterm/include/vterm.h, src/libvterm/src/screen.c, + src/libvterm/src/state.c, src/libvterm/t/32state_flow.test, + src/libvterm/t/60screen_ascii.test, + src/libvterm/t/62screen_damage.test, + src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c, + src/libvterm/t/run-test.pl + +Patch 8.2.0796 +Problem: MS-Windows: compiler can't handle C99 construct in libvterm. +Solution: Change to C90 construct. +Files: src/libvterm/src/state.c + +Patch 8.2.0797 +Problem: MS-Windows: compiler still can't handle C99 construct. +Solution: Change to C90 construct. (Dominique Pellé, closes #6106) +Files: src/libvterm/src/state.c + +Patch 8.2.0798 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 755 - 758. +Files: src/libvterm/t/run-test.pl, src/libvterm/src/screen.c, + src/libvterm/t/harness.c, src/libvterm/include/vterm.h, + src/libvterm/src/parser.c, src/libvterm/src/state.c, + src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, + src/libvterm/t/02parser.test, + src/libvterm/t/18state_termprops.test, + src/libvterm/t/29state_fallback.test, + src/libvterm/t/68screen_termprops.test, src/terminal.c + +Patch 8.2.0799 +Problem: Build fails if snprintf is not available. +Solution: Use vim_snprintf(). +Files: src/libvterm/src/state.c + +Patch 8.2.0800 +Problem: Errors from failing test are unclear. +Solution: Include text where parsing failed. +Files: src/json.c, src/testdir/test_json.vim + +Patch 8.2.0801 +Problem: Terminal test fails on Mac. +Solution: Concatenate OSC pieces. +Files: src/terminal.c + +Patch 8.2.0802 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 759 - 762. +Files: src/terminal.c, src/libvterm/doc/seqs.txt, + src/libvterm/include/vterm.h, src/libvterm/src/pen.c, + src/libvterm/src/screen.c, src/libvterm/src/state.c, + src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, + src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test + +Patch 8.2.0803 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revisions 764 - 767 +Files: src/Makefile, src/libvterm/src/parser.c, + src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test, + src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl, + src/libvterm/src/fullwidth.inc + +Patch 8.2.0804 +Problem: Libvterm code lags behind the upstream version. +Solution: Include revision 727, but add the index instead of switching + between RGB and indexed. +Files: src/terminal.c, src/term.c, src/libvterm/include/vterm.h, + src/libvterm/src/pen.c, src/libvterm/src/screen.c, + src/libvterm/src/vterm_internal.h, + src/libvterm/t/30state_pen.test, + src/libvterm/t/harness.c, src/libvterm/src/state.c, + src/libvterm/t/26state_query.test, + src/libvterm/t/64screen_pen.test + +Patch 8.2.0805 +Problem: Terminal key codes test fails on some systems. +Solution: Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070) +Files: src/testdir/test_terminal.vim + +Patch 8.2.0806 +Problem: using "func!" after vim9script gives confusing error. +Solution: Give E477. (closes #6107) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0807 +Problem: Cannot easily restore a mapping. +Solution: Add mapset(). +Files: runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c + src/testdir/test_maparg.vim + +Patch 8.2.0808 +Problem: Not enough testing for the terminal window. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6069) Fix memory + leak. +Files: src/testdir/test_gui.vim, src/testdir/test_terminal.vim, + src/terminal.c + +Patch 8.2.0809 +Problem: Build failure with small features. (Tony Mechelynck) +Solution: Move "expr" inside #ifdef. +Files: src/map.c + +Patch 8.2.0810 +Problem: Error when appending "tagfile" to 'wildoptions'. +Solution: use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin, + closes #6105) +Files: src/optiondefs.h, src/testdir/test_options.vim + +Patch 8.2.0811 +Problem: Terminal keycode test is flaky. +Solution: Use WaitForAssert() +Files: src/testdir/test_terminal.vim + +Patch 8.2.0812 +Problem: mapset() does not properly handle <> notation. +Solution: Convert <> codes. (closes #6116) +Files: src/map.c, src/testdir/test_maparg.vim + +Patch 8.2.0813 +Problem: libvterm code is slightly different from upstream. +Solution: Use upstream text to avoid future merge problems. Mainly comment + style changes. +Files: src/libvterm/include/vterm.h, src/libvterm/src/rect.h, + src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h, + src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c, + src/libvterm/src/mouse.c, src/libvterm/src/parser.c, + src/libvterm/src/pen.c, src/libvterm/src/screen.c, + src/libvterm/src/state.c, src/libvterm/src/unicode.c, + src/libvterm/src/vterm.c + +Patch 8.2.0814 +Problem: Clang warning for implicit conversion. +Solution: Add type cast. (Dominique Pellé, closes #6124) +Files: src/evalfunc.c + +Patch 8.2.0815 +Problem: maparg() does not provide enough information for mapset(). +Solution: Add "lhsraw" and "lhsrawalt" items. Drop "simplified" +Files: src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim + +Patch 8.2.0816 +Problem: Terminal test fails when compiled with Athena. +Solution: Do give an error when the GUI is not running. (hint by Dominique + Pellé, closes #5928, closes #6132) +Files: src/globals.h, src/gui.c, src/term.c, src/channel.c, + src/testdir/test_terminal.vim + +Patch 8.2.0817 +Problem: Not enough memory allocated when converting string with special + character. +Solution: Reserve space for modifier code. (closes #6130) +Files: src/eval.c, src/testdir/test_functions.vim + +Patch 8.2.0818 +Problem: Vim9: using a discovery phase doesn't work well. +Solution: Remove the discovery phase, instead compile a function only when + it is used. Add :defcompile to compile def functions earlier. +Files: runtime/doc/vim9.txt, src/vim9script.c, src/structs.h, + src/userfunc.c, src/proto/userfunc.pro, src/eval.c, + src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c, + src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h, + src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.0819 +Problem: Compiler warning for unused variable. +Solution: Remove the variable. +Files: src/evalvars.c + +Patch 8.2.0820 +Problem: Vim9: function type isn't set until compiled. +Solution: Set function type early. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.0821 +Problem: Vim9: memory leak in expr test. +Solution: Do not decrement the length of the list of functions if the + current function is not at the end. +Files: src/vim9compile.c + +Patch 8.2.0822 +Problem: Vim9: code left over from discovery phase. +Solution: Remove the dead code. +Files: src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h, + src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c + +Patch 8.2.0823 +Problem: Vim9: script reload test is disabled. +Solution: Compile a function in the context of the script where it was + defined. Set execution stack for compiled function. Add a test + that an error is reported for the right file/function. +Files: src/vim9compile.c, src/vim9execute.c, src/scriptfile.c, + src/proto/scriptfile.pro, src/userfunc.c, src/globals.h, + src/structs.h, src/ex_docmd.c, src/ex_eval.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0824 (after 8.2.0817) +Problem: Still not enough memory allocated when converting string with + special character. +Solution: Reserve space for expanding K_SPECIAL. (closes #6130) +Files: src/eval.c, src/testdir/test_functions.vim + +Patch 8.2.0825 +Problem: def_function() may return pointer that was freed. +Solution: Set "fp" to NULL after freeing it. +Files: src/userfunc.c + +Patch 8.2.0826 +Problem: Vim9: crash in :defcompile. +Solution: Restart the loop after a call to compile_def_function() caused the + hash table to resize. +Files: src/userfunc.c + +Patch 8.2.0827 +Problem: Vim9: crash in :defcompile. +Solution: Fix off-by-one error. +Files: src/userfunc.c + +Patch 8.2.0828 +Problem: Travis: regexp pattern doesn't work everywhere. +Solution: Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146) +Files: .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed, + ci/config.mk.sed, src/if_ruby.c + +Patch 8.2.0829 +Problem: filter() may give misleading error message. +Solution: Also mention Blob as an allowed argument. +Files: src/list.c, src/testdir/test_filter_map.vim + +Patch 8.2.0830 +Problem: Motif: can't map "!". (Ben Jackson) +Solution: Remove the shift modifier if it's already included in the key. + (closes #6147) +Files: src/gui_x11.c + +Patch 8.2.0831 +Problem: Compiler warnings for integer sizes. +Solution: Add type casts. (Mike Williams) +Files: src/libvterm/src/pen.c, src/terminal.c + +Patch 8.2.0832 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Add initial value. +Files: src/map.c + +Patch 8.2.0833 +Problem: Mapping <C-bslash> doesn't work in the GUI. +Solution: Reset seenModifyOtherKeys when starting the GUI. (closes #6150) +Files: src/gui.c + +Patch 8.2.0834 +Problem: :drop command in terminal popup causes problems. +Solution: Check for using a popup window. (closes #6151) +Files: src/ex_cmds.c, src/testdir/test_popupwin.vim + +Patch 8.2.0835 +Problem: Motif: mapping <C-bslash> still doesn't work. +Solution: Accept CSI for K_SPECIAL. Do not apply CTRL to the character + early. (closes #6150) +Files: src/getchar.c, src/gui_x11.c + +Patch 8.2.0836 +Problem: Not all :cdo output is visible. +Solution: Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155) +Files: src/ex_cmds2.c, src/testdir/test_cdo.vim + +Patch 8.2.0837 +Problem: Compiler warning for value set but not used. +Solution: Move variable inside #ifdef. +Files: src/channel.c + +Patch 8.2.0838 +Problem: MS-Windows: compiler warning for uninitialized variables. +Solution: Initialize variables. +Files: src/screen.c + +Patch 8.2.0839 +Problem: Dropping modifier when putting a character back in typeahead. +Solution: Add modifier to ins_char_typebuf(). (closes #6158) +Files: src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c, + src/terminal.c, src/globals.h, src/testdir/test_messages.vim + +Patch 8.2.0840 +Problem: Search match count wrong when only match is in fold. +Solution: Update search stats when in a closed fold. (Christian Brabandt, + closes #6160, closes #6152) +Files: src/search.c, src/testdir/dumps/Test_searchstat_3.dump, + src/testdir/test_search_stat.vim + +Patch 8.2.0841 +Problem: 'verbose' value 16 causes duplicate output. +Solution: Combine levels 15 and 16 into one message. (Christian Brabandt, + closes #6153) +Files: runtime/doc/options.txt, src/ex_docmd.c + +Patch 8.2.0842 (after 8.2.0837) +Problem: MS-Windows: channel tests fail. +Solution: Adjust #ifdefs. (closes #6162) +Files: src/channel.c + +Patch 8.2.0843 +Problem: Filetype elm not detected. +Solution: Recognize *.elm files. (closes #6157) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0844 +Problem: Text properties crossing lines not handled correctly. +Solution: When saving for undo include an extra line when needed and do not + adjust properties when undoing. (Axel Forsman, closes #5875) +Files: src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h + +Patch 8.2.0845 +Problem: Text properties crossing lines not handled correctly. +Solution: When joining lines merge text properties if possible. + (Axel Forsman, closes #5839, closes #5683) +Files: src/testdir/test_textprop.vim, src/memline.c, src/ops.c, + src/proto/textprop.pro, src/textprop.c, + src/testdir/dumps/Test_textprop_01.dump + +Patch 8.2.0846 +Problem: Build failure with small features. +Solution: Add #ifdef. +Files: src/undo.c + +Patch 8.2.0847 +Problem: Typval related code is spread out. +Solution: Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h, + src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro, + src/typval.c + +Patch 8.2.0848 +Problem: MS-Windows: the Windows terminal code has some flaws. +Solution: Do not redraw the right edge of the screen. Remove the background + color trick. Flush the screen output buffer often. (Nobuhiro + Takasaki, #5546) +Files: src/os_win32.c, src/proto/os_win32.pro, src/term.c + +Patch 8.2.0849 +Problem: BeOS code is not maintained and probably unused. +Solution: Remove the BeOS code. (Emir Sarı, closes #5817) +Files: Filelist, src/Makefile, src/configure.ac, src/auto/configure, + src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h, + src/os_beos.rsrc, src/os_unix.c, src/proto.h, + src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c, + src/testdir/test_functions.vim, src/ui.c, src/vim.h + +Patch 8.2.0850 +Problem: MS-Windows: exepath() works differently from cmd.exe. +Solution: Make exepath() work better on MS-Windows. (closes #6115) +Files: runtime/doc/eval.txt, src/os_win32.c, + src/testdir/test_functions.vim + +Patch 8.2.0851 (after 8.2.0833) +Problem: Can't distinguish <M-a> from accented "a" in the GUI. +Solution: Use another way to make mapping <C-bslash> work. (closes #6163) +Files: src/gui.c, src/gui_gtk_x11.c, src/getchar.c + +Patch 8.2.0852 +Problem: Cannot map CTRL-S on some systems. +Solution: Do not use CTRL-S for flow control. +Files: src/os_unix.c + +Patch 8.2.0853 +Problem: ml_delete() often called with FALSE argument. +Solution: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE. +Files: src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c, + src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c, + src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c, + src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c, + src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c, + src/proto/memline.pro + +Patch 8.2.0854 +Problem: Xxd cannot show offset as a decimal number. +Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616) +Files: src/testdir/test_xxd.vim, src/xxd/xxd.c + +Patch 8.2.0855 +Problem: GUI tests fail because the test doesn't use a modifier. +Solution: Add "\{xxx}" to be able to encode a modifier. +Files: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, + src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c, + src/term.c, src/testdir/test_backspace_opt.vim, + src/testdir/test_mapping.vim, src/testdir/test_messages.vim + +Patch 8.2.0856 (after 8.2.0852) +Problem: CTRL-S stops output. +Solution: Invert the IXON flag. (closes #6166) +Files: src/os_unix.c + +Patch 8.2.0857 +Problem: GTK cell height can be a pixel too much. +Solution: Subtract 3 instead of 1 when rounding. (closes #6168) +Files: src/gui_gtk_x11.c + +Patch 8.2.0858 +Problem: Not easy to require Lua modules. +Solution: Improve use of Lua path. (Prabir Shrestha, closes #6098) +Files: Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro, + src/testdir/test_lua.vim, + src/testdir/testluaplugin/lua/testluaplugin/hello.lua, + src/testdir/testluaplugin/lua/testluaplugin/init.lua + +Patch 8.2.0859 +Problem: No Turkish translation of the manual. +Solution: Add Turkish translations. (Emir Sarı, closes #5641) +Files: Filelist, runtime/doc/Makefile, runtime/doc/evim-tr.1, + runtime/doc/evim-tr.UTF-8.1, runtime/doc/vim-tr.1, + runtime/doc/vim-tr.UTF-8.1, runtime/doc/vimdiff-tr.1, + runtime/doc/vimdiff-tr.UTF-8.1, runtime/doc/vimtutor-tr.1, + runtime/doc/vimtutor-tr.UTF-8.1, src/Makefile + +Patch 8.2.0860 +Problem: Cannot use CTRL-A and CTRL-X on unsigned numbers. +Solution: Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144) +Files: runtime/doc/options.txt, src/ops.c, src/optionstr.c, + src/testdir/test_increment.vim + +Patch 8.2.0861 +Problem: Cannot easily get all the current marks. +Solution: Add getmarklist(). (Yegappan Lakshmanan, closes #6032) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/mark.c, src/proto/mark.pro, src/testdir/test_marks.vim + +Patch 8.2.0862 +Problem: ":term ++curwin" makes the current buffer hidden. (Harm te + Hennepe) +Solution: Do not hide the current buffer. (closes #6170) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.0863 +Problem: Cannot set a separate color for underline/undercurl. +Solution: Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011) +Files: runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h, + src/highlight.c, src/optiondefs.h, src/proto/term.pro, + src/screen.c, src/structs.h, src/term.c, src/term.h, + src/testdir/test_options.vim + +Patch 8.2.0864 +Problem: Pragmas are indented all the way to the left. +Solution: Add an option to indent pragmas like normal code. (Max Rumpf, + closes #5468) +Files: runtime/doc/indent.txt, src/cindent.c, src/structs.h, + src/testdir/test_cindent.vim + +Patch 8.2.0865 +Problem: Syntax foldlevel is taken from the start of the line. +Solution: Add ":syn foldlevel" to be able to use the minimal foldlevel in + the line. (Brad King, closes #6087) +Files: runtime/doc/syntax.txt, src/structs.h, src/syntax.c, + src/testdir/test_syntax.vim + +Patch 8.2.0866 +Problem: Not enough tests for buffer writing. +Solution: Add more tests. Use CheckRunVimInTerminal in more places. + (Yegappan Lakshmanan, closes #6167) +Files: src/testdir/test_arglist.vim, src/testdir/test_match.vim, + src/testdir/test_messages.vim, src/testdir/test_netbeans.py, + src/testdir/test_netbeans.vim, src/testdir/test_search.vim, + src/testdir/test_signals.vim, src/testdir/test_signs.vim, + src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, + src/testdir/test_syntax.vim, src/testdir/test_tabpage.vim, + src/testdir/test_timers.vim, src/testdir/test_vimscript.vim, + src/testdir/test_writefile.vim + +Patch 8.2.0867 +Problem: Using \{xxx} for encoding a modifier is not nice. +Solution: Use \<*xxx> instead, since it's the same as \<xxx> but producing a + different code. +Files: runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h, + src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim, + src/testdir/test_messages.vim + +Patch 8.2.0868 +Problem: trim() always trims both ends. +Solution: Add an argument to only trim the beginning or end. (Yegappan + Lakshmanan, closes #6126) +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_functions.vim + +Patch 8.2.0869 +Problem: It is not possible to customize the quickfix window contents. +Solution: Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465) +Files: runtime/doc/eval.txt, runtime/doc/options.txt, + runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h, + src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.0870 +Problem: MS-Windows: Control keys don't work in the GUI. +Solution: Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto, + closes #6175) +Files: src/gui.c + +Patch 8.2.0871 +Problem: Cannot use getmarklist() as a method. +Solution: Make getmarklist() work as a method. Add one to the column + number to match getpos(). (Yegappan Lakshmanan, closes #6176) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/mark.c, + src/testdir/test_marks.vim + +Patch 8.2.0872 +Problem: XIM code is mixed with multibyte code. +Solution: Move the XIM code to a separate file. (Yegappan Lakshmanan, + closes #6177) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c, + src/mbyte.c, src/proto.h, src/proto/gui_xim.pro, + src/proto/mbyte.pro + +Patch 8.2.0873 +Problem: A .jl file can be sawfish (lisp) or Julia. +Solution: Do not recognize *.jl as lisp, since it might be Julia. + (closes #6178) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0874 +Problem: Signals test is a bit flaky. +Solution: Flush the XautoOut file. Delete files that may be left behind + from a failure. (Dominique Pellé, closes #6179) +Files: src/testdir/test_signals.vim + +Patch 8.2.0875 +Problem: Getting attributes for directory entries is slow. +Solution: Add readdirex(). (Ken Takata, closes #5619) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/fileio.c, src/filepath.c, src/proto/fileio.pro, + src/proto/filepath.pro, src/testdir/test_functions.vim + +Patch 8.2.0876 +Problem: :pwd does not give a hint about the scope of the directory +Solution: Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469) +Files: runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim + +Patch 8.2.0877 +Problem: Cannot get the search statistics. +Solution: Add the searchcount() function. (Fujiwara Takuya, closes #4446) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/macros.h, + src/proto/search.pro, src/search.c, + src/testdir/test_search_stat.vim + +Patch 8.2.0878 +Problem: No reduce() function. +Solution: Add a reduce() function. (closes #5481) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c, + src/proto/list.pro, src/testdir/test_listdict.vim + +Patch 8.2.0879 +Problem: Compiler warning for unused function argument. +Solution: Add UNUSED. +Files: src/search.c + +Patch 8.2.0880 (after 8.2.0877) +Problem: Leaking memory when using searchcount(). +Solution: Free the last used search pattern. +Files: src/search.c + +Patch 8.2.0881 +Problem: Compiler warning for argument type. +Solution: Add type cast. (Mike Williams) +Files: src/ops.c + +Patch 8.2.0882 +Problem: Leaking memory when using reduce(). +Solution: Free the intermediate value. +Files: src/list.c + +Patch 8.2.0883 +Problem: Memory leak in test 49. +Solution: Free "sfile" from the exception. +Files: src/ex_docmd.c + +Patch 8.2.0884 +Problem: Searchcount() test fails on slower systems. +Solution: Set a longer timeout. +Files: src/search.c, src/testdir/test_search_stat.vim + +Patch 8.2.0885 +Problem: "make shadow" does not link new lua test dir. +Solution: Also link testdir/testluaplugin. (Elimar Riesebieter) +Files: src/Makefile + +Patch 8.2.0886 +Problem: Cannot use octal numbers in scriptversion 4. +Solution: Add the "0o" notation. (Ken Takata, closes #5304) +Files: runtime/doc/eval.txt, src/charset.c, src/evalfunc.c, + src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, + src/vim.h + +Patch 8.2.0887 +Problem: Searchcount().exact_match is 1 right after a match. +Solution: Use LT_POS() instead of LTOREQ_POS(). (closes #6189) +Files: src/search.c, src/testdir/test_search_stat.vim + +Patch 8.2.0888 +Problem: Readdirex() returns size -2 for a directory. +Solution: Add missing "else". (Ken Takata, closes #6185) +Files: src/fileio.c, src/testdir/test_functions.vim + +Patch 8.2.0889 +Problem: Using old style comments. +Solution: Use // comments. (Yegappan Lakshmanan, closes #6190) +Files: src/gui_xim.c + +Patch 8.2.0890 +Problem: No color in terminal window when 'termguicolors' is set. +Solution: Clear the underline color. (closes #6186) +Files: src/highlight.c + +Patch 8.2.0891 +Problem: Clang warns for invalid conversion. +Solution: Use zero instead of INVALCOLOR. +Files: src/highlight.c + +Patch 8.2.0892 +Problem: Ubsan warns for undefined behavior. +Solution: Use unsigned instead of signed variable. (Dominique Pellé, + closes #6193) +Files: src/regexp_nfa.c + +Patch 8.2.0893 +Problem: Assert_equalfile() does not take a third argument. +Solution: Implement the third argument. (Gary Johnson) +Files: runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c, + src/testdir/test_assert.vim, src/testing.c + +Patch 8.2.0894 +Problem: :mkspell can take very long if the word count is high. +Solution: Use long to avoid negative numbers. Increase the limits by 20% if + the compression did not have effect. +Files: src/spellfile.c + +Patch 8.2.0895 +Problem: :mkspell output does not mention the tree type. +Solution: Back out increasing the limits, it has no effect. Mention the + tree being compressed. Only give a message once per second. +Files: src/spellfile.c + +Patch 8.2.0896 +Problem: Crash when calling searchcount() with a string. +Solution: Check the argument is a dict. (closes #6192) +Files: src/search.c, src/testdir/test_search_stat.vim + +Patch 8.2.0897 +Problem: List of functions in patched version is outdated. +Solution: Update the function lists only. +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt + +Patch 8.2.0898 +Problem: Missing help for a function goes unnoticed. +Solution: Add a test. (Gary Johnson) +Files: src/testdir/test_function_lists.vim, src/testdir/Make_all.mak + +Patch 8.2.0899 +Problem: Assert_equalfile() does not give a hint about the difference. +Solution: Display the last seen text. +Files: src/testing.c, src/testdir/test_assert.vim + +Patch 8.2.0900 +Problem: Function list test fails on MS-Windows. +Solution: Make sure the fileformat is "unix" +Files: src/testdir/test_function_lists.vim + +Patch 8.2.0901 +Problem: Formatting CJK text isn't optimal. +Solution: Properly break CJK lines. (closes #3875) +Files: runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h, + src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c, + src/testdir/test_cjk_linebreak.vim + +Patch 8.2.0902 +Problem: Using searchcount() in 'statusline' causes an error. +Solution: Avoid saving/restoring the search pattern recursively. + (closes #6194) +Files: src/search.c, src/testdir/test_search_stat.vim, + src/testdir/dumps/Test_searchstat_4.dump + +Patch 8.2.0903 +Problem: comparing WINVER does not work correctly. +Solution: Use arithmetic expansion. (Ozaki Kiichi, closes #6197) +Files: src/Make_cyg_ming.mak + +Patch 8.2.0904 +Problem: Assuming modifyOtherKeys for rhs of mapping. +Solution: Ignore seenModifyOtherKeys for mapped characters. (closes #6200) +Files: src/getchar.c, src/testdir/test_gui.vim + +Patch 8.2.0905 +Problem: Test coverage could be better. +Solution: Add a couple of tests. (Dominique Pellé, closes #6202) +Files: src/testdir/test_cmdline.vim, src/testdir/test_ga.vim + +Patch 8.2.0906 +Problem: When setting 'termguicolors' SpellBad is no longer red. +Solution: Only use the RGB guisp color for cterm when using the "underline" + or "undercurl" attributes to avoid the background color to be + cleared. Also make t_8u empty when the termresponse indicates a + real xterm. (closes #6207) +Files: src/highlight.c, src/term.c + +Patch 8.2.0907 +Problem: When using :global clipboard isn't set correctly. +Solution: Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian + Brabandt, closes #6203, closes #6198) +Files: src/clipboard.c, src/testdir/test_global.vim + +Patch 8.2.0908 +Problem: Crash when changing the function table while listing it. +Solution: Bail out when the function table changes. (closes #6209) +Files: src/userfunc.c, src/testdir/test_timers.vim + +Patch 8.2.0909 +Problem: Cannot go back to the previous local directory. +Solution: Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362) +Files: runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c, + src/structs.h, src/testdir/test_cd.vim, src/window.c + +Patch 8.2.0910 +Problem: Vim is not reproducibly buildable. +Solution: Use the $SOURCE_DATE_EPOCH environment variable in configure. + (James McCoy, closes #513) Give a warning about using it. +Files: src/config.h.in, src/config.mk.in, src/configure.ac, + src/auto/configure, src/version.c, src/Makefile + +Patch 8.2.0911 +Problem: Crash when opening a buffer for the cmdline window fails. (Chris + Barber) +Solution: Check do_ecmd() succeeds. Reset got_int if "q" was used at the + more prompt. (closes #6211) +Files: src/ex_getln.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_cmdwin_interrupted.dump + +Patch 8.2.0912 +Problem: A few test cases for CJK formatting are disabled. +Solution: Fix the tests and enable them. (closes #6212) +Files: src/testdir/test_cjk_linebreak.vim + +Patch 8.2.0913 +Problem: Code for resetting v:register is duplicated. +Solution: Add reset_reg_var(). +Files: src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c + +Patch 8.2.0914 +Problem: MS-Windows: cannot specify a "modified by" text. +Solution: Add MODIFIED_BY in the MSVC build file. (Chen Lei, closes #1275) +Files: src/Make_mvc.mak + +Patch 8.2.0915 +Problem: Search() cannot skip over matches like searchpair() can. +Solution: Add an optional "skip" argument. (Christian Brabandt, closes #861) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.vim, + src/structs.h, src/evalvars.c, src/proto/evalvars.pro + +Patch 8.2.0916 +Problem: Mapping with partly modifyOtherKeys code does not work. +Solution: If there is no mapping with a separate modifier include the + modifier in the key and then try mapping again. (closes #6200) +Files: src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c, + src/proto/term.pro, src/testdir/test_termcodes.vim + +Patch 8.2.0917 +Problem: Quickfix entries do not support a "note" type. +Solution: Add support for "note". (partly by Yegappan Lakshmanan, + closes #5527, closes #6216) +Files: runtime/doc/quickfix.txt, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.0918 +Problem: Duplicate code for evaluating expression argument. +Solution: Merge the code and make the use more flexible. +Files: src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c, + src/proto/evalvars.pro, src/structs.h + +Patch 8.2.0919 +Problem: Merging modifier for modifyOtherKeys is done twice. +Solution: Remove the merging done in vgetc(). +Files: src/getchar.c, src/ex_getln.c + +Patch 8.2.0920 +Problem: Writing viminfo fails with a circular reference. +Solution: Use copyID to detect the cycle. (closes #6217) +Files: src/testdir/test_viminfo.vim, src/viminfo.c + +Patch 8.2.0921 +Problem: CTRL-W T in cmdline window causes trouble. +Solution: Disallow CTRL-W T in the cmdline window. Add more tests. + (Naruhiko Nishino, closes #6219) +Files: src/testdir/test_cmdline.vim, src/window.c + +Patch 8.2.0922 +Problem: Search test fails. +Solution: Remove failure tests for calls that no longer fail. +Files: src/testdir/test_search.vim + +Patch 8.2.0923 +Problem: Cmdline test is slow. +Solution: Use WaitForAssert(). +Files: src/testdir/test_cmdline.vim + +Patch 8.2.0924 +Problem: Cannot save and restore a register properly. +Solution: Add getreginfo() and make setreg() accept a dictionary. (Andy + Massimino, closes #3370) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/proto/register.pro, src/register.c, + src/testdir/test_eval_stuff.vim, src/testdir/test_registers.vim + +Patch 8.2.0925 +Problem: Getcompletion() does not return command line arguments. +Solution: Add the "cmdline" option. (Shougo, closes #1140) +Files: runtime/doc/eval.txt, src/cmdexpand.c, + src/testdir/test_cmdline.vim + +Patch 8.2.0926 +Problem: Cmdline test fails on Appveyor. +Solution: Add CR to the commands. (Naruhiko Nishino, closes #6220) +Files: src/testdir/test_cmdline.vim + +Patch 8.2.0927 +Problem: Some sshconfig and ssdhconfig files are not recognized. +Solution: Add filetype patterns. +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0928 +Problem: Many type casts are used for vim_strnsave(). +Solution: Make the length argument size_t instead of int. (Ken Takata, + closes #5633) Remove some type casts. +Files: src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c, + src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c, + src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c + +Patch 8.2.0929 +Problem: v:register is not cleared after an operator was executed. +Solution: Clear v:register after finishing an operator (Andy Massimino, + closes #5305) +Files: src/normal.c, src/testdir/test_registers.vim + +Patch 8.2.0930 +Problem: Script filetype detection trips over env -S argument. +Solution: Remove "-S" and "--ignore-environment". (closes #5013) + Add tests. +Files: runtime/scripts.vim, src/testdir/test_filetype.vim + +Patch 8.2.0931 +Problem: Some remarks about BeOS remain. +Solution: Remove BeOS remarks from the help and other files. (Emir Sarı, + closes #6221) +Files: READMEdir/README_extra.txt, runtime/doc/options.txt, + runtime/doc/os_beos.txt, runtime/doc/os_vms.txt, + runtime/doc/vi_diff.txt, src/INSTALL + +Patch 8.2.0932 +Problem: Misspelling spelllang. +Solution: Add an "l". (Dominique Pellé) +Files: src/optionstr.c, src/proto/spell.pro, src/spell.c + +Patch 8.2.0933 +Problem: 'quickfixtextfunc' does not get window ID of location list. +Solution: Add "winid" to the dict argument. (Yegappan Lakshmanan, + closes #6222) +Files: runtime/doc/quickfix.txt, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.0934 +Problem: Running lhelpgrep twice in a help window doesn't jump to the help + topic. +Solution: Check whether any window with the location list is present. + (Yegappan Lakshmanan, closes #6215) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.0935 +Problem: Flattening a list with existing code is slow. +Solution: Add flatten(). (Mopp, closes #3676) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/list.c, src/proto/list.pro, src/testdir/Make_all.mak, + src/testdir/test_flatten.vim + +Patch 8.2.0936 +Problem: Some terminals misinterpret the code for getting cursor style. +Solution: Send a sequence to the terminal and check the result. (IWAMOTO + Kouichi, closes #2126) Merged with current code. +Files: src/main.c, src/term.c, src/proto/term.pro, + src/testdir/term_util.vim, src/testdir/test_quickfix.vim, + src/testdir/test_terminal.vim, src/testdir/test_startup_utf8.vim, + src/testdir/dumps/Test_balloon_eval_term_01.dump, + src/testdir/dumps/Test_balloon_eval_term_01a.dump, + src/testdir/dumps/Test_balloon_eval_term_02.dump, + src/testdir/dumps/Test_terminal_all_ansi_colors.dump + +Patch 8.2.0937 +Problem: Asan failure in the flatten() test. +Solution: Free the flattened list. +Files: src/list.c + +Patch 8.2.0938 +Problem: NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs) +Solution: Use utf_fold() when possible. (ref. neovim #12456) +Files: src/macros.h, src/diff.c, src/regexp_nfa.c, + src/testdir/test_regexp_utf8.vim + +Patch 8.2.0939 +Problem: checking for term escape sequences is long and confusing +Solution: Refactor code into separate functions. +Files: src/term.c + +Patch 8.2.0940 (after 8.2.0939) +Problem: Build failure with tiny features. +Solution: Add #ifdef. Add UNUSED. A bit more cleaning up. +Files: src/term.c + +Patch 8.2.0941 +Problem: Detecting terminal properties is unstructured. +Solution: Add a table with terminal properties. Set properties when a + terminal is detected. +Files: src/term.c + +Patch 8.2.0942 +Problem: Expanding to local dir after homedir keeps "~/". +Solution: Adjust modify_fname(). (Christian Brabandt, closes #6205, + closes #5979) +Files: src/filepath.c, src/testdir/test_fnamemodify.vim + +Patch 8.2.0943 +Problem: Displaying ^M or ^J depends on current buffer. +Solution: Pass the displayed buffer to transchar(). (closes #6225) +Files: src/drawline.c, src/charset.c, src/proto/charset.pro, + src/ex_cmds.c, src/gui_beval.c, src/message.c, + src/testdir/test_display.vim, + src/testdir/dumps/Test_display_unprintable_01.dump, + src/testdir/dumps/Test_display_unprintable_02.dump + +Patch 8.2.0944 +Problem: Xxd test leaves file behind. +Solution: Delete the file "XXDfile". (Christian Brabandt, closes #6228) +Files: src/testdir/test_xxd.vim + +Patch 8.2.0945 +Problem: Cannot use "z=" when 'spell' is off. +Solution: Make "z=" work even when 'spell' is off. (Christian Brabandt, + Gary Johnson, closes #6227) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/spell.c, + src/spellsuggest.c, src/testdir/test_spell.vim, src/globals.h + +Patch 8.2.0946 +Problem: Cannot use "q" to cancel a number prompt. +Solution: Recognize "q" instead of ignoring it. +Files: src/misc1.c, src/testdir/test_functions.vim + +Patch 8.2.0947 +Problem: Readdirex() doesn't handle broken link properly. +Solution: Small fixes to readdirex(). (Christian Brabandt, closes #6226, + closes #6213) +Files: src/fileio.c, src/testdir/test_functions.vim + +Patch 8.2.0948 +Problem: Spell test fails. +Solution: Adjust expected text of the prompt. +Files: src/testdir/test_spell.vim + +Patch 8.2.0949 +Problem: Strptime() does not use DST. +Solution: Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230) +Files: src/time.c, src/testdir/test_functions.vim + +Patch 8.2.0950 +Problem: Tagjump test fails. +Solution: Adjust expected text of the prompt. +Files: src/testdir/test_tagjump.vim + +Patch 8.2.0951 +Problem: Search stat test has leftover from debugging. +Solution: Remove line that writes a file. (Christian Brabandt, closes #6224) +Files: src/testdir/test_search_stat.vim + +Patch 8.2.0952 +Problem: No simple way to interrupt Vim. +Solution: Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes, + closes #1718) +Files: runtime/doc/autocmd.txt, src/vim.h, src/autocmd.c, src/getchar.c, + src/globals.h, src/os_unix.c, src/testdir/test_autocmd.vim + +Patch 8.2.0953 +Problem: Spell checking doesn't work for CamelCased words. +Solution: Add the "camel" value in the new option 'spelloptions'. + (closes #1235) +Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h, + src/option.h, src/option.c, src/buffer.c, src/optionstr.c, + src/testdir/gen_opt_test.vim, src/testdir/test_spell.vim + +Patch 8.2.0954 +Problem: Not all desktop files are recognized. +Solution: Add the *.directory pattern. (Eisuke Kawashima, closes #3317) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0955 (after 8.2.0953) +Problem: Build fails. +Solution: Add missing struct change. +Files: src/structs.h + +Patch 8.2.0956 (after 8.2.0953) +Problem: Spell test fails. +Solution: Add missing change the spell checking. +Files: src/spell.c + +Patch 8.2.0957 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize one variable. +Files: src/spell.c + +Patch 8.2.0958 +Problem: Not sufficient testing for buffer writing. +Solution: Add a few tests. (Yegappan Lakshmanan, closes #6238) +Files: src/testdir/test_backup.vim, src/testdir/test_writefile.vim + +Patch 8.2.0959 +Problem: Using 'quickfixtextfunc' is a bit slow. +Solution: Process a list of entries. (Yegappan Lakshmanan, closes #6234) +Files: runtime/doc/quickfix.txt, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.0960 +Problem: Cannot use :import in legacy Vim script. +Solution: Support :import in any Vim script. +Files: src/vim9script.c, src/evalvars.c, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.0961 +Problem: MS-Windows: no completion for locales. +Solution: Use the directories in $VIMRUNTIME/lang to complete locales. + (Christian Brabandt, closes 36248) +Files: src/cmdexpand.c, src/ex_cmds2.c, src/testdir/test_cmdline.vim + +Patch 8.2.0962 +Problem: Terminal test sometimes hangs on Travis. +Solution: Do show output for this test temporarily. +Files: src/testdir/Makefile + +Patch 8.2.0963 +Problem: Number increment/decrement does not work with 'virtualedit'. +Solution: Handle coladd changing. (Christian Brabandt, closes #6240, + closes #923) +Files: runtime/doc/options.txt, runtime/doc/various.txt, src/ops.c, + src/testdir/test_increment.vim + +Patch 8.2.0964 +Problem: TextYankPost does not provide info about Visual selection. +Solution: Add the 'visual' key in v:event. (closes #6249) +Files: runtime/doc/autocmd.txt, src/register.c, + src/testdir/test_autocmd.vim + +Patch 8.2.0965 +Problem: Has_funcundefined() is not used. +Solution: Delete the function. (Dominique Pellé, closes #6242) +Files: src/autocmd.c, src/proto/autocmd.pro + +Patch 8.2.0966 +Problem: 'shortmess' flag "n" not used in two places. +Solution: Make use of the "n" flag consistent. (Nick Jensen, closes #6245, + closes #6244) +Files: src/bufwrite.c, src/proto/bufwrite.pro, src/buffer.c, + src/fileio.c, src/testdir/dumps/Test_popup_textprop_corn_5.dump, + src/testdir/dumps/Test_start_with_tabs.dump + +Patch 8.2.0967 +Problem: Unnecessary type casts for vim_strnsave(). +Solution: Remove the type casts. +Files: src/evalvars.c, src/ex_cmds.c, src/ex_eval.c, src/fileio.c, + src/filepath.c, src/findfile.c, src/highlight.c, src/if_ruby.c, + src/insexpand.c, src/json.c, src/mark.c, src/memline.c, + src/menu.c, src/misc1.c, src/ops.c, src/os_win32.c, src/regexp.c, + src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, + src/sign.c, src/syntax.c, src/term.c, src/terminal.c, src/undo.c, + src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/if_perl.xs + +Patch 8.2.0968 +Problem: No proper testing of the 'cpoptions' flags. +Solution: Add tests. (Yegappan Lakshmanan, closes #6251) +Files: src/testdir/Make_all.mak, src/testdir/test_cpoptions.vim, + src/testdir/test_edit.vim, src/testdir/test_normal.vim + +Patch 8.2.0969 +Problem: Assert_equal() output for dicts is hard to figure out. +Solution: Only show the different items. +Files: src/testing.c, src/testdir/test_assert.vim + +Patch 8.2.0970 +Problem: Terminal properties are not available in Vim script. +Solution: Add the terminalprops() function. +Files: src/term.c, src/proto/term.pro, src/evalfunc.c, src/main.c, + src/testing.c, src/globals.h, src/testdir/test_termcodes.vim, + runtime/doc/usr_41.txt, runtime/doc/eval.txt, + runtime/doc/testing.txt + +Patch 8.2.0971 +Problem: Build with tiny features fails. +Solution: Add #ifdef. +Files: src/term.c + +Patch 8.2.0972 +Problem: Vim9 script variable declarations need a type. +Solution: Make "let var: type" declare a script-local variable. +Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, + src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0973 +Problem: Vim9: type is not checked when assigning to a script variable. +Solution: Check the type. +Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, + src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_script.vim + +Patch 8.2.0974 +Problem: Vim9: memory leak when script var has wrong type. +Solution: Free the variable name. +Files: src/vim9script.vim + +Patch 8.2.0975 +Problem: Vim9: script variable does not accept optional s: prefix. +Solution: Adjust the accepted syntax. +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0976 +Problem: Some 'cpoptions' not tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6253) +Files: src/testdir/test_cd.vim, src/testdir/test_charsearch.vim, + src/testdir/test_cpoptions.vim, src/testdir/test_normal.vim + +Patch 8.2.0977 +Problem: t_8u is made empty for the wrong terminals. (Dominique Pelle) +Solution: Invert the check for TPR_YES. (closes #6254) +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.0978 +Problem: Leaking memory in termcodes test. +Solution: Set t_8u with set_option_value(). +Files: src/term.c + +Patch 8.2.0979 +Problem: A couple of screendump tests fail. +Solution: Do not redraw when clearing t_8u. +Files: src/term.c + +Patch 8.2.0980 +Problem: Raku file extension not recognized. (Steven Penny) +Solution: Recognize .raku and .rakumod. (closes #6255) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0981 +Problem: Vim9: cannot compile "[var, var] = list". +Solution: Implement list assignment. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c, + src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0982 +Problem: Insufficient testing for reading/writing files. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6257) + Add "ui_delay" to test_override() and use it for the CTRL-O test. +Files: src/testing.c, src/globals.h, src/ui.c, runtime/doc/testing.txt, + src/testdir/test_autocmd.vim, src/testdir/test_edit.vim, + src/testdir/test_filechanged.vim, src/testdir/test_writefile.vim + +Patch 8.2.0983 +Problem: SConstruct file type not recognized. +Solution: Use python for SConstruct files. (Roland Hieber) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.0984 +Problem: Not using previous window when closing a shell popup window. +Solution: Use "prevwin" if it was set. (closes #6267) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.0985 +Problem: Simplify() does not remove slashes from "///path". +Solution: Reduce > 2 slashes to one. (closes #6263) +Files: src/findfile.c, src/testdir/test_functions.vim + +Patch 8.2.0986 (after 8.2.0985) +Problem: MS-Windows: functions test fails. +Solution: Only simplify ///path on Unix. +Files: src/testdir/test_functions.vim + +Patch 8.2.0987 +Problem: Vim9: cannot assign to [var; var]. +Solution: Assign rest of items to a list. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/list.c, + src/proto/list.pro, src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.0988 +Problem: Getting directory contents is always case sorted. +Solution: Add sort options and v:collate. (Christian Brabandt, closes #6229) +Files: runtime/doc/eval.txt, runtime/doc/mlang.txt, src/auto/configure, + src/cmdexpand.c, src/config.h.in, src/configure.ac, + src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c, + src/filepath.c, src/globals.h, src/proto/fileio.pro, + src/testdir/test_cmdline.vim, src/testdir/test_functions.vim, + src/vim.h + +Patch 8.2.0989 +Problem: Crash after resizing a terminal window. (August Masquelier) +Solution: Add check for valid row in libvterm. (closes #6273) +Files: src/libvterm/src/state.c, src/libvterm/src/screen.c + +Patch 8.2.0990 (after 8.2.0988) +Problem: Using duplicate error number. +Solution: Use an unused error number. Add a test for it. +Files: src/globals.h, src/testdir/test_functions.vim + +Patch 8.2.0991 +Problem: Cannot get window type for autocmd and preview window. +Solution: Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277) +Files: runtime/doc/eval.txt, src/evalwindow.c, + src/testdir/test_autocmd.vim, src/testdir/test_preview.vim + +Patch 8.2.0992 +Problem: Vim9: crash when using :import in the Vim command. +Solution: Give an error when using :import outside of a script. + (closes #6271) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim, + src/testdir/term_util.vim + +Patch 8.2.0993 +Problem: Vim9 script test fails with normal features. +Solution: Use :func instead of :def for now. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0994 +Problem: Vim9: missing function causes compilation error. +Solution: Call test function indirectly. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.0995 +Problem: Insufficient testing for the readdir() sort option. +Solution: Add a few more tests. (Christian Brabandt, closes #6278) +Files: src/testdir/test_functions.vim + +Patch 8.2.0996 +Problem: Using "aucmdwin" in win_gettype() is not ideal. +Solution: Rename to "autocmd". +Files: runtime/doc/eval.txt, src/evalwindow.c, + src/testdir/test_autocmd.vim + +Patch 8.2.0997 +Problem: Cannot execute a register containing line continuation. +Solution: Concatenate lines where needed. (Yegappan Lakshmanan, + closes #6272) +Files: runtime/doc/repeat.txt, src/register.c, + src/testdir/test_registers.vim + +Patch 8.2.0998 +Problem: Not all tag code is tested. +Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6284) +Files: src/testdir/test_tagjump.vim + +Patch 8.2.0999 +Problem: Moving to next sentence gets stuck on quote. +Solution: When moving to the next sentence doesn't result in moving, advance + a character and try again. (closes #6291) +Files: src/textobject.c, src/testdir/test_textobjects.vim + +Patch 8.2.1000 +Problem: Get error when leaving Ex mode with :visual and a CmdLineEnter + autocommand was used. +Solution: Reset ex_pressedreturn. (closes #6293) +Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim + +Patch 8.2.1001 +Problem: Vim9: crash with nested "if" and assignment. +Solution: Skip more of the assignment. Do not set ctx_skip when code is + reachable. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1002 +Problem: Test may fail when run directly. +Solution: Check if g:run_nr exists. (Christian Brabandt, closes #6285) +Files: src/testdir/term_util.vim + +Patch 8.2.1003 +Problem: Vim9: return type of sort() is too generic. +Solution: Get type from the first argument. (closes #6292) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1004 +Problem: Line numbers below filler lines not always updated. +Solution: Don't break out of the win_line() loop too early. (Christian + Brabandt, closes #6294, closes #6138) +Files: src/drawline.c, src/testdir/dumps/Test_diff_rnu_01.dump, + src/testdir/dumps/Test_diff_rnu_02.dump, + src/testdir/dumps/Test_diff_rnu_03.dump, + src/testdir/test_diffmode.vim + +Patch 8.2.1005 +Problem: Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing. +Solution: Use an enum value. +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1006 +Problem: Vim9: require unnecessary return statement. +Solution: Improve the use of the had_return flag. (closes #6270) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1007 +Problem: Completion doesn't work after ":r ++arg !". +Solution: Skip over "++arg". (Christian Brabandt, closes #6275, + closes #6258) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.1008 +Problem: Vim9: no test for disassembling newly added instructions. +Solution: Add a function and check disassembly. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1009 +Problem: Vim9: some failures not checked for. +Solution: Add test cases. Remove unused code. +Files: src/testdir/test_vim9_script.vim, src/vim9execute.c + +Patch 8.2.1010 +Problem: Build failure in libvterm with debug enabled. (John Little) +Solution: Use "->" instead of ".". +Files: src/libvterm/src/state.c + +Patch 8.2.1011 +Problem: Vim9: some code not tested. +Solution: Add a few more test cases. Reorder checks for clearer error. + Remove unreachable code. +Files: src/evalvars.c, src/vim9script.c, src/vim9execute.c, + src/proto/vim9script.pro, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1012 +Problem: Vim9: cannot declare single character script variables. +Solution: Don't see "b:", "s:", etc. as namespace. Fix item size of + sn_var_vals. +Files: src/vim9script.c, src/scriptfile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1013 +Problem: Channel tests can be a bit flaky. +Solution: Set the g:test_is_flaky flag in SetUp(). +Files: src/testdir/test_channel.vim + +Patch 8.2.1014 +Problem: Using "name" for a string result is confusing. +Solution: Rename to "end". +Files: src/typval.c + +Patch 8.2.1015 +Problem: Popup filter gets key with modifier prepended when using + modifyOtherKeys. +Solution: Remove the shift modifier when it is included in the key, also + when the Alt or Meta modifier is used. +Files: src/term.c, src/misc2.c, src/testdir/test_popupwin.vim + +Patch 8.2.1016 +Problem: Vim9: test fails when channel feature is missing. +Solution: Process an :if command when skipping +Files: src/vim9compile.c + +Patch 8.2.1017 +Problem: Appveyor output doesn't show MinGW console features. +Solution: List the features of the console build. +Files: ci/appveyor.bat + +Patch 8.2.1018 +Problem: Typo in enum value. (James McCoy) +Solution: Fix the typo. +Files: src/vim9compile.c + +Patch 8.2.1019 +Problem: Mapping <M-S-a> does not work in the GUI. +Solution: Move the logic to remove the shift modifier to + may_remove_shift_modifier() and also use it in the GUI. +Files: src/gui_gtk_x11.c, src/misc2.c, src/proto/misc2.pro, src/term.c + +Patch 8.2.1020 +Problem: Popupwin test fails in the GUI. +Solution: Send GUI byte sequence for <C-S-a>. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.1021 +Problem: Ruby interface not tested enough. +Solution: Add a couple more tests. (Dominique Pellé, closes #6301) +Files: src/testdir/test_ruby.vim + +Patch 8.2.1022 +Problem: Various parts of code not covered by tests. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6300) +Files: src/testdir/test_blob.vim, src/testdir/test_cpoptions.vim, + src/testdir/test_digraph.vim, src/testdir/test_edit.vim, + src/testdir/test_iminsert.vim, src/testdir/test_paste.vim, + src/testdir/test_prompt_buffer.vim, + src/testdir/test_selectmode.vim, src/testdir/test_tabpage.vim, + src/testdir/test_tagjump.vim, src/testdir/test_textformat.vim, + src/testdir/test_viminfo.vim, src/testdir/test_virtualedit.vim, + src/testdir/test_visual.vim + +Patch 8.2.1023 +Problem: Vim9: redefining a function uses a new index every time. +Solution: When redefining a function clear the contents and re-use the + index. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/structs.h, src/eval.c, src/evalvars.c, src/vim9execute.c + +Patch 8.2.1024 +Problem: Vim9: no error for using "let g:var = val". +Solution: Add an error. +Files: src/evalvars.c, src/globals.h, src/structs.h, src/vim9compile.c, + src/scriptfile.c, src/userfunc.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1025 +Problem: Tabpage menu and tabline not sufficiently tested. +Solution: Add tests. (Yegappan Lakshmanan, closes #6307) +Files: src/testdir/test_digraph.vim, src/testdir/test_tabpage.vim + +Patch 8.2.1026 +Problem: Vim9: cannot break the line after "->". +Solution: Check for a continuation line after "->", "[" and ".". Ignore + trailing white space. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1027 +Problem: GUI: multibyte characters do not work in a terminal. +Solution: Do not assume a key is one byte. (closes #6304) +Files: src/gui_gtk_x11.c, src/gui_x11.c + +Patch 8.2.1028 +Problem: Vim9: no error for declaring buffer, window, etc. variable. +Solution: Give an error. Unify the error messages. +Files: src/evalvars.c, src/globals.h, src/vim9compile.c, + src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1029 +Problem: Vim9: cannot chain function calls with -> at line start. +Solution: Peek ahead for a following line starting with "->". (closes #6306) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1030 +Problem: Reducing size of a terminal window may cause a crash. +Solution: Make sure the row and column don't become negative. (closes #6273) +Files: src/libvterm/src/state.c, src/libvterm/src/screen.c + +Patch 8.2.1031 +Problem: Build failure with Perl5.32. +Solution: Define a few more functions. (Felix Yan, closes #6310) +Files: src/if_perl.xs + +Patch 8.2.1032 +Problem: Error message for declaring a variable cannot be translated. +Solution: Enclose in _(). Make environment variable a separate message. +Files: src/globals.h, src/vim9compile.c + +Patch 8.2.1033 +Problem: Not easy to read the test time in the test output. +Solution: Align the times. Make slow tests bold. +Files: src/testdir/runtest.vim + +Patch 8.2.1034 +Problem: Compiler warning for uninitialized variables. +Solution: Add initializations. (John Marriott) +Files: src/vim9compile.c + +Patch 8.2.1035 +Problem: setreg() does not always clear the register. +Solution: Clear the register if the dict argument is empty. (Andy Massimino, + closes #3370) +Files: src/evalfunc.c, src/testdir/test_registers.vim + +Patch 8.2.1036 +Problem: Popupwin test fails sometimes. +Solution: Use WaitForAssert() instead of a sleep. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.1037 +Problem: Vim9: crash when using line continuation inside :def. +Solution: Check for no more lines available. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1038 +Problem: Popupwin test fails. +Solution: Fix WaitForAssert() argument. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.1039 +Problem: Cannot put NUL byte on clipboard. +Solution: Use the text length. (Christian Brabandt, closes #6312, + closes #6149) +Files: src/winclip.c, src/testdir/test_registers.vim + +Patch 8.2.1040 +Problem: Not enough testing for movement commands. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6313) +Files: src/testdir/test_cursor_func.vim, src/testdir/test_functions.vim, + src/testdir/test_gf.vim, src/testdir/test_normal.vim, + src/testdir/test_options.vim, src/testdir/test_quickfix.vim + +Patch 8.2.1041 +Problem: Test summary is missing executed count. +Solution: Adjust pattern used for counting. +Files: src/testdir/summarize.vim + +Patch 8.2.1042 +Problem: Vim9: cannot put an operator on the next line. +Solution: Require a colon before a range to see if that causes problems. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/ex_docmd.c, + src/globals.h, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1043 +Problem: %a item in 'statusline' not tested. +Solution: Add a test. (Dominique Pellé, closes #6318) +Files: src/testdir/test_statusline.vim + +Patch 8.2.1044 +Problem: Not all systemd file types are recognized. +Solution: Match several more files. (Guido Cella, closes #6319) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1045 +Problem: Vim9: line break before operator does not work. +Solution: Peek the next line for an operator. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1046 +Problem: Insufficient tests for src/buffer.c. +Solution: Add more tests. Move comments related tests to a separate file. + (Yegappan Lakshmanan, closes #6325) +Files: src/testdir/Make_all.mak, src/testdir/test_buffer.vim, + src/testdir/test_cmdline.vim, src/testdir/test_comments.vim, + src/testdir/test_normal.vim, src/testdir/test_textformat.vim + +Patch 8.2.1047 +Problem: Vim9: script cannot use line continuation like in a :def function. +Solution: Pass the getline function pointer to the eval() functions. Use it + for addition and multiplication operators. +Files: src/vim.h, src/structs.h, src/globals.h, src/ex_eval.c, + src/eval.c, src/proto/eval.pro, src/dict.c, src/evalfunc.c, + src/evalvars.c, src/list.c, src/userfunc.c, src/scriptfile.c, + src/proto/scriptfile.pro, src/testdir/test_vim9_expr.vim + +Patch 8.2.1048 (after 8.2.1047) +Problem: Build failure without the eval feature. +Solution: Add dummy typedef. +Files: src/structs.h + +Patch 8.2.1049 (after 8.2.1047) +Problem: Vim9: leaking memory when using continuation line. +Solution: Keep a pointer to the continuation line in evalarg_T. Centralize + checking for a next command. +Files: src/structs.h, src/eval.c, src/proto/eval.pro, src/beval.c, + src/buffer.c, src/clientserver.c, src/evalvars.c, src/ex_docmd.c, + src/ex_eval.c, src/filepath.c, src/findfile.c, src/fold.c, + src/globals.h, src/if_ole.cpp, src/if_perl.xs, src/if_tcl.c, + src/map.c, src/quickfix.c, src/regexp.c, src/register.c, + src/screen.c, src/userfunc.c + +Patch 8.2.1050 (after 8.2.1049) +Problem: Missing change in struct. +Solution: Add missing change. +Files: src/ex_cmds.h + +Patch 8.2.1051 +Problem: Crash when changing a list while using reduce() on it. +Solution: Lock the list. (closes #6330) +Files: src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.1052 +Problem: Build failure with older compilers. +Solution: Move declaration to start of block. +Files: src/eval.c + +Patch 8.2.1053 +Problem: Insufficient testing for 'statusline' and 'tabline'. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6333) +Files: src/testdir/test_autocmd.vim, src/testdir/test_statusline.vim, + src/testdir/test_tabline.vim + +Patch 8.2.1054 +Problem: Not so easy to pass a lua function to Vim. +Solution: Convert a Lua function and closure to a Vim funcref. (Prabir + Shrestha, closes #6246) +Files: runtime/doc/if_lua.txt, src/if_lua.c, src/proto/userfunc.pro, + src/structs.h, src/testdir/test_lua.vim, src/userfunc.c + +Patch 8.2.1055 +Problem: No filetype set for pacman config files. +Solution: Recognize pacman.conf and *.hook. (Guido Cella, closes #6335) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1056 +Problem: Wrong display when mixing match conceal and syntax conceal. +Solution: Adjust how conceal flags are used. (closes #6327, closes #6303) +Files: src/drawline.c, src/highlight.c, + src/testdir/test_matchadd_conceal.vim + +Patch 8.2.1057 (after 8.2.1054) +Problem: Cannot build with dynamic Lua. +Solution: Add dll variables. +Files: src/if_lua.c + +Patch 8.2.1058 +Problem: Multiline conceal causes display errors. +Solution: Do not allow conceal cross over EOL. (closes #6326, closes #4854, + closes #6302) +Files: src/drawline.c, src/testdir/test_conceal.vim, + src/testdir/test_diffmode.vim + +Patch 8.2.1059 +Problem: Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan) +Solution: Do not allow the autocommand window to be closed. +Files: src/ex_docmd.c, src/window.c, src/globals.h, + src/testdir/test_autocmd.vim + +Patch 8.2.1060 +Problem: Not all elinks files are recognized. +Solution: Just check for "elinks.conf". (Guido Cella, closes #6337) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1061 +Problem: Insufficient testing for src/window.c. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6345) +Files: src/testdir/test_excmd.vim, src/testdir/test_gf.vim, + src/testdir/test_options.vim, src/testdir/test_popupwin.vim, + src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim, + src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim, + src/window.c + +Patch 8.2.1062 +Problem: Vim9: no line break allowed inside "cond ? val1 : val2". +Solution: Check for operator after line break. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1063 +Problem: Vim9: no line break allowed before || or &&. +Solution: Check for operator after line break. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1064 +Problem: Vim9: no line break allowed before comparators. +Solution: Check for comparator after line break. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1065 +Problem: Vim9: no line break allowed inside a list. +Solution: Handle line break inside a list in Vim9 script. +Files: src/eval.c, src/proto/eval.pro, src/list.c, src/proto/list.pro, + src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_arglist.vim + +Patch 8.2.1066 +Problem: Lua arrays are zero based. +Solution: Make Lua arrays one based. (Prabir Shrestha, closes #6347) + Note: this is not backwards compatible. +Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.1067 +Problem: Expression "!expr->func()" does not work. +Solution: Apply plus and minus earlier. (closes #6348) +Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, + src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.1068 +Problem: Vim9: no line break allowed inside a dict. +Solution: Handle line break inside a dict in Vim9 script. +Files: src/eval.c, src/dict.c, src/proto/dict.pro, + src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1069 +Problem: Vim9: fail to check for white space in list. +Solution: Add check for white space. +Files: src/list.c + +Patch 8.2.1070 +Problem: Vim9: leaking memory when lacking white space in dict. +Solution: Clear the typval. +Files: src/dict.c + +Patch 8.2.1071 +Problem: Vim9: no line break allowed inside a lambda. +Solution: Handle line break inside a lambda in Vim9 script. +Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, + src/proto/userfunc.pro, src/popupwin.c, src/vim9compile.c, + src/ex_eval.c, src/globals.h, src/structs.h, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1072 +Problem: Missing libvterm test. +Solution: Sync with libvterm revision 768. +Files: src/libvterm/src/state.c, src/libvterm/t/63screen_resize.test + +Patch 8.2.1073 +Problem: Vim9: no line break allowed in () expression. +Solution: Skip a line break. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1074 +Problem: Vim9: no line break allowed after some operators. +Solution: Skip a line break after the operator. Add + eval_may_get_next_line() to simplify checking for a line break. +Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, + src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1075 +Problem: Vim9: no line break allowed in :echo expression. +Solution: Skip linebreak. +Files: src/eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1076 +Problem: Vim9: no line break allowed in :if expression. +Solution: Skip linebreak. +Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.1077 +Problem: No enough test coverage for highlighting. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6351) +Files: runtime/doc/syntax.txt, src/testdir/test_cmdline.vim, + src/testdir/test_highlight.vim, src/testdir/test_match.vim + +Patch 8.2.1078 +Problem: Highlight and match functionality together in one file. +Solution: Move match functionality to a separate file. (Yegappan Lakshmanan, + closes #6352) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/highlight.c, src/match.c, src/proto.h, + src/proto/highlight.pro, src/proto/match.pro + +Patch 8.2.1079 +Problem: Vim9: no line break allowed in a while loop. +Solution: Update stored loop lines when finding line breaks. +Files: src/structs.h, src/globals.h, src/eval.c, src/evalvars.c, + src/ex_docmd.c, src/proto/ex_docmd.pro, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.1080 +Problem: Vim9: no line break allowed in a for loop. +Solution: Skip line breaks in for command. +Files: src/eval.c, src/ex_eval.c, src/proto/eval.pro, src/userfunc.c, + src/structs.h, src/globals.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1081 +Problem: Lua: cannot use table.insert() and table.remove(). +Solution: Add the list functions. (Prabir Shrestha, closes #6353) +Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.1082 +Problem: Coverity complains about ignoring dict_add() return value. +Solution: Add (void). +Files: src/evalfunc.c + +Patch 8.2.1083 +Problem: Crash when using reduce() on a NULL list. +Solution: Only access the list when not NULL. +Files: src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.1084 +Problem: Lua: registering function has useless code. +Solution: Remove clearing grow arrays. +Files: src/userfunc.c + +Patch 8.2.1085 +Problem: Coverity complains about ignoring dict_add() return value. +Solution: Add (void). +Files: src/register.c + +Patch 8.2.1086 +Problem: Possibly using freed memory when text properties used when + changing indent of a line. +Solution: Compute the offset before calling ml_replace(). +Files: src/indent.c + +Patch 8.2.1087 +Problem: Possible memory leak when file expansion fails. +Solution: Clear the grow array when returning FAIL. Use an error message + instead of an empty string. +Files: src/filepath.c + +Patch 8.2.1088 +Problem: A very long translation might cause a buffer overflow. +Solution: Truncate the message if needed. +Files: src/fileio.c + +Patch 8.2.1089 +Problem: Coverity warns for pointer computation. +Solution: Avoid computing a pointer to invalid memory. +Files: src/spellfile.c + +Patch 8.2.1090 +Problem: May use NULL pointer when skipping over name. +Solution: Always set ll_name_end. +Files: src/eval.c + +Patch 8.2.1091 +Problem: No check if opening a pty works. +Solution: Check for invalid file descriptor. +Files: src/os_unix.c + +Patch 8.2.1092 +Problem: Not checking if saving for undo succeeds. +Solution: Bail out if u_savesub() returns FAIL. +Files: src/textprop.c + +Patch 8.2.1093 +Problem: Python: double free when adding item to dict fails. +Solution: Remove vim_free() call. +Files: src/if_py_both.h + +Patch 8.2.1094 +Problem: Dead code in libvterm. +Solution: Remove condition that is always true. +Files: src/libvterm/src/pen.c + +Patch 8.2.1095 +Problem: May use pointer after freeing it when text properties are used. +Solution: Update redo buffer before calling ml_replace(). +Files: src/spellsuggest.c + +Patch 8.2.1096 +Problem: Vim9: return type of getqflist() is wrong. +Solution: Let the return type depend on the arguments. Also for + getloclist(). (closes #6357) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1097 +Problem: Highlight code not sufficiently tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6359) +Files: src/testdir/test_filter_cmd.vim, src/testdir/test_highlight.vim + +Patch 8.2.1098 +Problem: Vim9: cannot use line break in :throw argument. +Solution: Check for line break. +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1099 +Problem: Vim9: cannot use line break in :cexpr argument. +Solution: Check for line break. +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1100 +Problem: Vim9: cannot use line break in :execute, :echomsg and :echoerr + argument. +Solution: Check for line break. +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1101 +Problem: No error when using wrong arguments for setqflist() or + setloclist(). +Solution: Check for the error. +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1102 +Problem: Coverity gets confused by an unnecessary NULL check. +Solution: Remove the check for NULL. +Files: src/quickfix.c + +Patch 8.2.1103 +Problem: Coverity reports an unnecessary NULL check. +Solution: Remove the check for NULL. +Files: src/eval.c + +Patch 8.2.1104 +Problem: Coverity warns for possible NULL pointer use. +Solution: Check "pbyts" is not NULL. +Files: src/spellsuggest.c + +Patch 8.2.1105 +Problem: Insufficient test coverage for Lua. +Solution: Add tests. (Yegappan Lakshmanan, closes #6368) Fix uncovered + memory leak. Avoid unnecessary copy/free. +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.1106 +Problem: Crash when trying to use s: variable in typed command. +Solution: Don't use the script index when not set. (Ken Takata, + closes #6366) +Files: src/vim9compile.c, src/testdir/test_vimscript.vim + +Patch 8.2.1107 +Problem: 'imactivatefunc' and 'imstatusfunc' are not used in the GUI. +Solution: Adjust the #ifdefs. (closes #6367) +Files: runtime/doc/options.txt, src/gui_xim.c, + src/testdir/test_iminsert.vim + +Patch 8.2.1108 +Problem: Mouse left-right scroll is not supported in terminal window. +Solution: Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363) +Files: src/libvterm/src/mouse.c, src/mouse.c, src/terminal.c, + src/testdir/mouse.vim, src/testdir/test_termcodes.vim + +Patch 8.2.1109 (after 8.2.1106) +Problem: Still crashing when using s:variable. +Solution: Remove assignment. (Ken Takata) +Files: src/vim9compile.c + +Patch 8.2.1110 +Problem: Vim9: line continuation does not work in function arguments. +Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string + as comment. +Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/ex_eval.c, + src/list.c, src/dict.c, src/proto/eval.pro, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.1111 +Problem: Inconsistent naming of get_list_tv() and eval_dict(). +Solution: Rename get_list_tv() to eval_list(). Similarly for eval_number(), + eval_string(), eval_lit_string() and a few others. +Files: src/eval.c, src/list.c, src/proto/list.pro, src/vim9compile.c, + src/typval.c, src/proto/typval.pro, src/vim9script.c, + src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, + src/vim9execute.c + +Patch 8.2.1112 +Problem: Vim9: no line continuation allowed in method call. +Solution: Handle line continuation in expression before method call. +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1113 +Problem: No test for verbose output of :call. +Solution: Add a test. +Files: src/testdir/test_user_func.vim + +Patch 8.2.1114 +Problem: Terminal test sometimes times out. +Solution: Split the test in two parts. +Files: src/testdir/Makefile, src/testdir/Make_all.mak, + src/testdir/term_util.vim, src/testdir/test_terminal.vim, + src/testdir/test_terminal2.vim + +Patch 8.2.1115 +Problem: Iminsert test fails when compiled with VIMDLL. +Solution: Change condition. (Ken Takata, closes #6376) +Files: src/testdir/test_iminsert.vim + +Patch 8.2.1116 +Problem: Vim9: parsing command checks for list twice. +Solution: Adjust how a command is parsed. +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1117 +Problem: Coverity warns for using uninitialized field. +Solution: Initialize v_lock. +Files: src/if_lua.c + +Patch 8.2.1118 +Problem: Condition can never be true, dead code. +Solution: Remove the dead code. +Files: src/move.c + +Patch 8.2.1119 +Problem: Configure fails with Xcode 12 beta. +Solution: use "return" instead of "exit()". (Nico Weber, closes #6381) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.1120 +Problem: Python code not tested properly. +Solution: Add more tests and convert old-style test into new-style test. + (Yegappan Lakshmanan, closes #6370) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test_python2.vim + +Patch 8.2.1121 +Problem: Command completion not working after ++arg. +Solution: Move skipping up. (Christian Brabandt, closes #6382) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.1122 +Problem: Vim9: line continuation in dict member not recognized. +Solution: Check for line continuation. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1123 +Problem: Python 3 test is old style. +Solution: Turn into new style test. (Yegappan Lakshmanan, closes #6385) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test87.in, src/testdir/test87.ok, + src/testdir/test_python2.vim, src/testdir/test_python3.vim + +Patch 8.2.1124 +Problem: Vim9: no line break allowed in :import command. +Solution: Skip over line breaks. +Files: src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1125 +Problem: Vim9: double quote can be a string or a comment. +Solution: Only support comments starting with # to avoid confusion. +Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c, + src/vim9script.c + +Patch 8.2.1126 +Problem: Vim9: using :copen causes an error. +Solution: Add flag LET_NO_COMMAND in set_var(). +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1127 +Problem: Vim9: getting a dict member may not work. +Solution: Clear the dict only after copying the item. (closes #6390) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1128 +Problem: The write message mentions characters, but it's actually bytes. +Solution: Change "C" to "B" and "characters" to "bytes". +Files: runtime/doc/options.txt, src/fileio.c, + src/testdir/test_cscope.vim, src/testdir/test_netbeans.vim, + src/testdir/dumps/Test_diff_syntax_1.dump, + src/testdir/dumps/Test_long_file_name_1.dump, + src/testdir/dumps/Test_display_unprintable_01.dump, + src/testdir/dumps/Test_tselect_1.dump + +Patch 8.2.1129 +Problem: Vim9: bar not recognized after not compiled command. +Solution: Check for bar for commands where this is possible. (closes #6391) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1130 +Problem: Vim9: bar not recognized after function call +Solution: Skip whitespace. (closes #6391) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1131 +Problem: Vim9: error message for returning a value in a function that does + not return anything is not clear. +Solution: Add a specific message. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1132 +Problem: Vim9: return type of repeat() is not specific enough. +Solution: Return the type of the first argument. (closes #6395) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1133 +Problem: Vim9: return type of add() is not specific enough. +Solution: Return the type of the first argument. (closes #6395) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1134 +Problem: Vim9: getting a list member may not work. +Solution: Clear the list only after copying the item. (closes #6393) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1135 +Problem: Vim9: getting a dict member may not work. +Solution: Clear the dict only after copying the item. +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1136 +Problem: Vim9: return type of argv() is always any. +Solution: Use list<string> if there is no argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1137 +Problem: Vim9: modifiers not cleared after compiling function. +Solution: Clear command modifiers. (closes #6396) +Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/testdir/test_vim9_func.vim, + src/testdir/dumps/Test_vim9_silent_echo.dump + +Patch 8.2.1138 +Problem: Vim9: return type of copy() and deepcopy() is any. +Solution: Use type of the argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1139 (after 8.2.1137) +Problem: Vim9: test for silent echo fails in some environments. +Solution: Use :function instead of :def. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1140 +Problem: Vim9: return type of extend() is any. +Solution: Use type of the argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1141 +Problem: Vim9: return type of filter() is any. +Solution: Use type of the argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1142 +Problem: Vim9: return type of insert() is any. +Solution: Use type of the first argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1143 +Problem: Vim9: return type of remove() is any. +Solution: Use the member type of the first argument, if known. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1144 +Problem: Vim9: return type of reverse() is any. +Solution: Use the type of the first argument. +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1145 +Problem: Vim9: "for" only accepts a list at compile time. +Solution: Also accept a list at runtime. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1146 +Problem: Not enough testing for Python. +Solution: Add more tests. Fix uncovered problems. (Yegappan Lakshmanan, + closes #6392) +Files: src/if_py_both.h, src/if_python3.c, src/testdir/shared.vim, + src/testdir/test_python2.vim, src/testdir/test_python3.vim + +Patch 8.2.1147 +Problem: :confirm may happen in cooked mode. (Jason Franklin) +Solution: Switch to raw mode before prompting. (Brandon Pfeifer) +Files: src/message.c, src/testdir/test_excmd.vim + +Patch 8.2.1148 +Problem: Warning for using int instead of size_t. +Solution: Change "len" argument to size_t. (Mike Williams) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c + +Patch 8.2.1149 +Problem: Vim9: :eval command not handled properly. +Solution: Compile the :eval command. (closes #6408) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1150 +Problem: ml_get error when using Python. (Yegappan Lakshmanan) +Solution: Check the line number is not out of range. Call "Check" with + "fromObj" instead of "from". +Files: src/if_py_both.h, src/testdir/test_python2.vim, + src/testdir/test_python3.vim + +Patch 8.2.1151 +Problem: Insufficient test coverage for Python. +Solution: Add more test cases. (Yegappan Lakshmanan, closes #6415) +Files: src/testdir/test_python2.vim, src/testdir/test_python3.vim + +Patch 8.2.1152 +Problem: Vim9: function reference is missing script prefix. +Solution: Use the actual function name instead of the name searched for in + the script context. (closes #6412) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1153 +Problem: Vim9: script test fails on some systems. +Solution: Return proper value from Compare(). +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1154 +Problem: Vim9: crash when using imported function. +Solution: Check for a function type. Set the script context when calling a + function. (closes #6412) +Files: src/evalvars.c, src/scriptfile.c, src/proto/scriptfile.pro, + src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim + +Patch 8.2.1155 +Problem: Vim9: cannot handle line break inside lambda. +Solution: Pass the compilation context through. (closes #6407, closes #6409) +Files: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, + src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1156 +Problem: Vim9: No error for invalid command in compiled function. +Solution: Handle CMD_SIZE. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1157 +Problem: Vim9: dict.name is not recognized as an expression. +Solution: Recognize ".name". (closes #6418) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1158 (after 8.2.1155) +Problem: Build error. +Solution: Add missing change to globals. +Files: src/globals.h + +Patch 8.2.1159 +Problem: Vim9: no error for missing space after a comma. +Solution: Check for white space. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1160 +Problem: Vim9: memory leak in allocated types. +Solution: Free the type pointers. +Files: src/vim9script.c, src/userfunc.c, src/vim9compile.c, + src/proto/vim9compile.pro + +Patch 8.2.1161 +Problem: Vim9: using freed memory. +Solution: Put pointer back in evalarg instead of freeing it. +Files: src/userfunc.c, src/vim9compile.c, src/eval.c, src/proto/eval.pro, + src/structs.h + +Patch 8.2.1162 +Problem: Crash when using a lambda. +Solution: Check for evalarg to be NULL. +Files: src/userfunc.c + +Patch 8.2.1163 (after 8.2.1161) +Problem: Build error. +Solution: Add missing change to globals. +Files: src/globals.h + +Patch 8.2.1164 +Problem: Text cleared by checking terminal properties not redrawn. (Alexey + Radkov) +Solution: Mark the screen characters as invalid. (closes #6422) +Files: src/screen.c, src/proto/screen.pro, src/term.c + +Patch 8.2.1165 +Problem: Insufficient testing for the Tcl interface. +Solution: Add more tests. (Yegappan Lakshmanan, closes #6423) +Files: src/testdir/test_tcl.vim + +Patch 8.2.1166 +Problem: Once mouse move events are enabled getchar() returns them. +Solution: Ignore K_MOUSEMOVE in getchar(). (closes #6424) +Files: runtime/doc/eval.txt, src/getchar.c + +Patch 8.2.1167 +Problem: Vim9: builtin function method call only supports first argument. +Solution: Shift arguments when needed. (closes #6305, closes #6419) +Files: src/evalfunc.c, src/vim9compile.c, src/vim9execute.c, + src/vim9.h, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1168 +Problem: Wrong method argument for appendbufline(). +Solution: Use FEARG_3. +Files: src/evalfunc.c + +Patch 8.2.1169 +Problem: Write NUL past allocated space using corrupted spell file. + (Markus Vervier) +Solution: Init "c" every time. +Files: src/spellfile.c + +Patch 8.2.1170 +Problem: Cursor off by one with block paste while 'virtualedit' is "all". +Solution: Adjust condition. (Hugo Gualandi, closes #6430) +Files: src/register.c, src/testdir/test_registers.vim + +Patch 8.2.1171 +Problem: Possible crash when out of memory. +Solution: Check for NULL pointer. (Dominique Pellé, closes #6432) +Files: src/syntax.c + +Patch 8.2.1172 +Problem: Error messages when doing "make clean" in the runtime/doc or + src/tee directories. +Solution: Use "rm -f". +Files: runtime/doc/Makefile, src/tee/Makefile + +Patch 8.2.1173 +Problem: Tee doesn't build on some systems. +Solution: Include header files. (Dominique Pelle, closes #6431) +Files: src/tee/tee.c + +Patch 8.2.1174 +Problem: No test for the "recording @x" message. +Solution: Add a test. (Dominique Pellé, closes #6427) +Files: src/testdir/test_registers.vim + +Patch 8.2.1175 +Problem: Vim9: Cannot split a line before ".member". +Solution: Check for ".member" after line break. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1176 +Problem: Vim9: not enough type checking in Vim9 script. +Solution: Use same type checking as in a :def function. +Files: src/vim9compile.c, src/proto/vim9compile.pro, + src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1177 +Problem: Terminal2 test sometimes hangs in the GUI. +Solution: Move some tests to other files to further locate the problem. + Set the GUI to a fixed screen size. +Files: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, + src/testdir/test_terminal3.vim, src/testdir/Make_all.mak, + src/testdir/runtest.vim + +Patch 8.2.1178 +Problem: Vim9: filter function recognized as command modifier, leading to a + crash. +Solution: Clear cmdmod after freeing items. Do not recognize a command + modifier followed by non-white space. (closes #6434) +Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1179 +Problem: Test_termwinscroll() sometimes hangs in the GUI. +Solution: Skip the test in the GUI. +Files: src/testdir/test_terminal2.vim + +Patch 8.2.1180 +Problem: Build failure in small version. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.1181 +Problem: Json code not fully tested. +Solution: Add more test coverage. (Dominique Pellé, closes #6433) +Files: src/testdir/test_json.vim + +Patch 8.2.1182 +Problem: Vim9: no check for whitespace after comma in lambda. +Solution: Give error if white space is missing. +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1183 +Problem: assert_fails() checks the last error message. +Solution: Check the first error, it is more relevant. Fix all the tests + that rely on the old behavior. +Files: runtime/doc/testing.txt, src/message.c, src/globals.h, + src/testing.c, src/testdir/test_autocmd.vim, + src/testdir/test_buffer.vim, src/testdir/test_cd.vim, + src/testdir/test_channel.vim, src/testdir/test_clientserver.vim, + src/testdir/test_cmdline.vim, src/testdir/test_cpoptions.vim, + src/testdir/test_cscope.vim, src/if_cscope.c, + src/testdir/test_excmd.vim, src/evalvars.c, + src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_json.vim, src/testdir/test_let.vim, + src/testdir/test_listdict.vim, src/testdir/test_listener.vim, + src/testdir/test_match.vim, src/testdir/test_menu.vim, + src/testdir/test_method.vim, src/testdir/test_normal.vim, + src/testdir/test_popup.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, + src/testdir/test_random.vim, src/testdir/test_search.vim, + src/testdir/test_signs.vim, src/testdir/test_spell.vim, + src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, + src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim, + src/testdir/test_terminal.vim, src/testdir/test_textprop.vim, + src/testdir/test_trycatch.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim, src/vim9compile.c, + src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, + src/testdir/test_winbuf_close.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_utf8.vim, + src/testdir/test_global.vim, src/testdir/test_tagfunc.vim + +Patch 8.2.1184 (after 8.2.1183) +Problem: Some tests fail. +Solution: Adjust tests for different assert_fails() behavior. Remove unused + variable. +Files: src/testdir/test_assert.vim, src/testdir/test_eval_stuff.vim, + src/evalvars.c + +Patch 8.2.1185 (after 8.2.1183) +Problem: Some other tests fail. +Solution: Adjust tests for different assert_fails() behavior. +Files: src/testdir/test_lua.vim, src/testdir/test_tcl.vim + +Patch 8.2.1186 +Problem: With SGR mouse codes balloon doesn't show up after click. +Solution: Add the MOUSE_RELEASE bits to mouse_code. +Files: src/mouse.c + +Patch 8.2.1187 +Problem: Terminal2 test sometimes hangs in the GUI on Travis. +Solution: Disable Test_zz2_terminal_guioptions_bang() for now. +Files: src/testdir/test_terminal2.vim + +Patch 8.2.1188 +Problem: Memory leak with invalid json input. +Solution: Free all keys at the end. (Dominique Pellé, closes #6443, + closes #6442) +Files: src/json.c, src/testdir/test_json.vim + +Patch 8.2.1189 +Problem: Vim9: line continuation in lambda doesn't always work. +Solution: Do not use a local evalarg unless there isn't one. (closes #6439) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1190 +Problem: Vim9: checking for Vim9 syntax is spread out. +Solution: Use in_vim9script(). +Files: src/vim9script.c, src/dict.c, src/eval.c, src/evalvars.c, + src/ex_docmd.c, src/list.c, src/scriptfile.c, src/userfunc.c + +Patch 8.2.1191 +Problem: Vim9: crash when function calls itself. +Solution: Add status UF_COMPILING. (closes #6441) +Files: src/structs.h, src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1192 +Problem: Lua test fails with older Lua version. +Solution: Adjust expected error messages. (closes #6444) +Files: src/testdir/test_lua.vim + +Patch 8.2.1193 +Problem: Terminal window not redrawn when dragging a popup window over it. +Solution: Redraw terminal window. (fixes #6438) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_term_01.dump, + src/testdir/dumps/Test_popupwin_term_02.dump + +Patch 8.2.1194 +Problem: Test failure because shell prompt differs. +Solution: Set the shell prompt. +Files: src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_term_01.dump, + src/testdir/dumps/Test_popupwin_term_02.dump + +Patch 8.2.1195 +Problem: Clientserver test fails on MS-Windows. +Solution: Expect a different error message. +Files: src/testdir/test_clientserver.vim + +Patch 8.2.1196 +Problem: Build failure with normal features. +Solution: Add #ifdef. +Files: src/popupwin.c + +Patch 8.2.1197 +Problem: Clientserver test still fails on MS-Windows. +Solution: Expect a different error message. +Files: src/testdir/test_clientserver.vim + +Patch 8.2.1198 +Problem: Terminal2 test sometimes hangs in the GUI on Travis. +Solution: Move test function to terminal3 to see if the problem moves too. +Files: src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim + +Patch 8.2.1199 +Problem: Not all assert functions are fully tested. +Solution: Test more assert functions. +Files: src/testing.c, src/testdir/test_assert.vim + +Patch 8.2.1200 +Problem: Vim9: cannot disassemble a lambda function. +Solution: Recognize "<lambda>123" as a function name. +Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1201 +Problem: Vim9: crash when passing number as dict key. +Solution: Check key type to be string. (closes #6449) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1202 +Problem: Vim9: crash when calling a closure from a builtin function. +Solution: Use the current execution context. (closes #6441) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1203 +Problem: Unused assignments in expression evaluation. +Solution: Move declarations and assignments to inner blocks where possible. +Files: src/eval.c + +Patch 8.2.1204 +Problem: Vim9: true and false not recognized in Vim9 script. +Solution: Recognize true and false. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1205 +Problem: Vim9: && and || work differently when not compiled. +Solution: Keep the value. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1206 +Problem: Vim9: crash in expr test when run in the GUI. +Solution: Temporarily comment out two test lines. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1207 +Problem: Vim9: crash in expr test when run in the GUI. +Solution: Break out of loop over hashtab also when function got removed and + added. +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1208 +Problem: Build failure. +Solution: Add missing change. +Files: src/structs.h + +Patch 8.2.1209 +Problem: Vim9: test failure. +Solution: Add missing changes to hashtab. +Files: src/hashtab.c + +Patch 8.2.1210 +Problem: Using ht_used when looping through a hashtab is less reliable. +Solution: Use ht_changed in a few more places. +Files: src/userfunc.c, src/if_py_both.h + +Patch 8.2.1211 (after 8.2.1118) +Problem: Removed more than dead code. +Solution: Put back the decrement. +Files: src/move.c, src/testdir/test_diffmode.vim + +Patch 8.2.1212 +Problem: Cannot build with Lua 5.4. +Solution: Use luaL_typeerror instead defining it. (closes #6454) +Files: src/if_lua.c + +Patch 8.2.1213 +Problem: Mouse codes not tested sufficiently. +Solution: Add more tests for mouse codes. (closes #6436) +Files: src/testdir/test_termcodes.vim + +Patch 8.2.1214 +Problem: MS-Windows: default _vimrc not correct in silent install mode. +Solution: Add the LoadDefaultVimrc macro. (Ken Takata, closes #6451) +Files: nsis/gvim.nsi + +Patch 8.2.1215 +Problem: Atari MiNT support is outdated. +Solution: Nobody responded this code is still useful, so let's delete it. +Files: Filelist, src/os_mint.h, src/vim.h, src/Make_mint.mak, + src/digraph.c, src/fileio.c, src/memfile.c, src/os_unix.c, + src/term.c, READMEdir/README_extra.txt, runtime/doc/os_mint.txt, + src/INSTALL + +Patch 8.2.1216 +Problem: Startup test fails. +Solution: Adjust expected values for deleted lines. +Files: src/testdir/test_startup.vim + +Patch 8.2.1217 +Problem: Startup test depends on random source file. +Solution: Write a test file to find quickfix errors in. +Files: src/testdir/test_startup.vim + +Patch 8.2.1218 +Problem: Vim9: cannot use 'text'->func(). +Solution: Recognize string at start of command. +Files: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1219 +Problem: Symlink not followed if dirname ends in //. +Solution: Resolve symlink earlier. (Tomáš Janoušek, closes #6454) +Files: src/memline.c, src/testdir/test_swap.vim + +Patch 8.2.1220 +Problem: memory access error when dragging a popup window over a buffer + with folding. +Solution: Avoid going over the end of the cache. (closes #6438) +Files: src/mouse.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_term_01.dump, + src/testdir/dumps/Test_popupwin_term_02.dump, + src/testdir/dumps/Test_popupwin_term_03.dump, + src/testdir/dumps/Test_popupwin_term_04.dump + +Patch 8.2.1221 +Problem: Memory leak when updating popup window. +Solution: Clear search highlighting. +Files: src/popupwin.c + +Patch 8.2.1222 +Problem: When using valgrind a Vim command started by a test uses the same + log file name which gets overwritten. +Solution: Fix regexp to rename the log file. +Files: src/testdir/shared.vim + +Patch 8.2.1223 +Problem: Vim9: invalid type error for function default value. +Solution: Use right argument index. (closes #6458) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1224 +Problem: Vim9: arguments from partial are not used. +Solution: Put the partial arguments on the stack. (closes #6460) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1225 +Problem: Linker errors when building with dynamic Python 3.9. +Solution: Add #defined items. (closes #6461) +Files: src/if_python3.c + +Patch 8.2.1226 +Problem: MS-Windows: windows positioning wrong when the taskbar is placed + at the top or left of the screen. +Solution: Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira, + Ken Takata, closes #6455) +Files: src/gui_w32.c + +Patch 8.2.1227 +Problem: Vim9: allowing both quoted and # comments is confusing. +Solution: Only support # comments in Vim9 script. +Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/vim9compile.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1228 +Problem: Scrollbars not flush against the window edges when maximised. +Solution: Add padding. (Ken Takata, closes #5602, closes #6466) +Files: src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_haiku.cc, + src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, + src/proto/gui_athena.pro, src/proto/gui_gtk.pro, + src/proto/gui_haiku.pro, src/proto/gui_mac.pro, + src/proto/gui_motif.pro, src/proto/gui_photon.pro, + src/proto/gui_w32.pro + +Patch 8.2.1229 +Problem: Build error without the eval feature. +Solution: Declare starts_with_colon. Make function local. +Files: src/ex_docmd.c, src/proto/ex_docmd.pro + +Patch 8.2.1230 +Problem: Vim9: list index error not caught by try/catch. +Solution: Do not bail out if an error is inside try/catch. (closes #6462) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1231 +Problem: MS-Windows: GUI code can be cleaned up. +Solution: Do a bit of cleaning up. (Ken Takata, closes #6465) +Files: src/gui_w32.c, src/proto/gui_w32.pro + +Patch 8.2.1232 +Problem: MS-Windows GUI: Snap cancelled by split command. +Solution: Do not cancel Snap when splitting a window. (Ken Takata, + closes #6467) +Files: src/gui_w32.c + +Patch 8.2.1233 +Problem: Vim9: various errors not caught by try/catch. +Solution: Do not bail out if an error is inside try/catch. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1234 +Problem: Lua build problem with old compiler. +Solution: Move declarations to start of the block. (Taro Muraoka, + closes #6477) +Files: src/if_lua.c + +Patch 8.2.1235 +Problem: Not all mouse codes covered by tests. +Solution: Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472) +Files: src/testdir/mouse.vim, src/testdir/test_termcodes.vim + +Patch 8.2.1236 +Problem: Vim9: a few errors not caught by try/catch. +Solution: Do not bail out if an error is inside try/catch. Fix that a not + matching catch doesn't jump to :endtry. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1237 +Problem: Changing 'completepopup' after opening a popup has no effect. (Jay + Sitter) +Solution: Close the popup when the options are changed. (closes #6471) +Files: runtime/doc/options.txt, src/popupwin.c, src/proto/popupwin.pro, + src/optionstr.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_infopopup_8.dump + +Patch 8.2.1238 +Problem: Vim9: a few remaining errors not caught by try/catch. +Solution: Do not bail out if an error is inside try/catch. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1239 +Problem: "maxwidth" in 'completepopup' not obeyed. (Jay Sitter) +Solution: Add separate field for value from option. (closes #6470) +Files: src/structs.h, src/popupwin.c, src/popupmenu.c, + src/testdir/dumps/Test_popupwin_infopopup_9.dump + +Patch 8.2.1240 +Problem: GUI tests sometimes fail because of translations. +Solution: Reload the menus without translation. (Taro Muraoka, closes #6486) +Files: src/testdir/runtest.vim + +Patch 8.2.1241 +Problem: Cannot use getbufinfo() as a method. +Solution: Support using getbufinfo() as a method. (closes #6458) +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_bufwintabinfo.vim + +Patch 8.2.1242 +Problem: Vim9: no error if calling a function with wrong argument type. +Solution: Check types of arguments. (closes #6469) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.1243 +Problem: Vim9: cannot have a comment or empty line halfway a list at script + level. +Solution: Skip more than one line if needed. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c, + src/scriptfile.c + +Patch 8.2.1244 +Problem: Vim9: in lambda index assumes a list. +Solution: Use the value type to decide about list or dict. (closes #6479) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1245 +Problem: Build failure in tiny version. +Solution: Add #ifdef. +Files: src/scriptfile.c + +Patch 8.2.1246 +Problem: Vim9: comment after assignment doesn't work. +Solution: Skip over white space. (closes #6481) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1247 +Problem: Vim9: cannot index a character in a string. +Solution: Add ISN_STRINDEX instruction. (closes #6478) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1248 +Problem: Netbeans test is flaky in the GUI. +Solution: Filter out geometry messages. (Taro Muraoka, closes #6487) +Files: src/testdir/test_netbeans.vim + +Patch 8.2.1249 +Problem: Vim9: disassemble test fails. +Solution: Change INDEX to LISTINDEX. Add test for STRINDEX. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1250 +Problem: Vim9: cannot use the g:, b:, t: and w: namespaces. +Solution: Add instructions to push a dict for the namespaces. (closes #6480) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1251 +Problem: Vim9: warning for pointer usage, test failure undetected. +Solution: Fix pointer indirection. Give error when executing function + failed for any reason. Fix instruction names. +Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro + +Patch 8.2.1252 +Problem: ":marks" may show '< and '> mixed up. +Solution: Show the mark position as where '< and '> would jump. +Files: src/mark.c, src/testdir/test_marks.vim + +Patch 8.2.1253 +Problem: CTRL-K in Insert mode gets <CursorHold> inserted. (Roland + Puntaier) +Solution: Do not reset did_cursorhold, restore it. (closes #6447) +Files: src/normal.c + +Patch 8.2.1254 +Problem: MS-Windows: regexp test may fail if 'iskeyword' set wrongly. +Solution: Override the 'iskeyword' value. (Taro Muraoka, closes #6502) +Files: src/testdir/test_regexp_utf8.vim + +Patch 8.2.1255 +Problem: Cannot use a lambda with quickfix functions. +Solution: Add support for lambda. (Yegappan Lakshmanan, closes #6499) +Files: runtime/doc/eval.txt, runtime/doc/options.txt, + runtime/doc/quickfix.txt, src/channel.c, src/evalvars.c, + src/optionstr.c, src/proto/evalvars.pro, src/proto/quickfix.pro, + src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1256 +Problem: Vim9: type wrong after getting dict item in lambda. +Solution: Set the type to "any" after enforcing dict type. (closes #6491) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1257 +Problem: Vim9: list unpack doesn't work at the script level. +Solution: Detect unpack assignment better. (closes #6494) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1258 (after 8.2.1253) +Problem: CursorHold does not work well.a (Shane-XB-Qian) +Solution: Only restore did_cursorhold when using :normal. +Files: src/normal.c + +Patch 8.2.1259 +Problem: Empty group in 'tabline' may cause using an invalid pointer. +Solution: Set the group start position. (closes #6505) +Files: src/buffer.c, src/testdir/test_tabline.vim + +Patch 8.2.1260 +Problem: There is no good test for CursorHold. +Solution: Add a test. Remove duplicated test. (Yegappan Lakshmanan, + closes #6503) +Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, + src/testdir/test_normal.vim + +Patch 8.2.1261 +Problem: Vim9: common type of function not tested. +Solution: Add a test. Fix uncovered problems. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1262 +Problem: src/ex_cmds.c file is too big. +Solution: Move help related code to src/help.c. (Yegappan Lakshmanan, + closes #6506) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/cmdexpand.c, src/ex_cmds.c, src/help.c, src/proto.h, + src/proto/ex_cmds.pro, src/proto/help.pro + +Patch 8.2.1263 +Problem: Vim9: comparators use 'ignorecase' in Vim9 script. +Solution: Ignore 'ignorecase'. Use true and false instead of 1 and 0. + (closes #6497) +Files: src/eval.c, src/typval.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1264 +Problem: Terminal getwinpos() test is a bit flaky. +Solution: Call getwinpos() a bit later. +Files: src/testdir/test_terminal3.vim + +Patch 8.2.1265 +Problem: Crash with EXITFREE when split() fails. +Solution: Restore 'cpoptions'. +Files: src/evalfunc.c + +Patch 8.2.1266 (after 8.2.1262) +Problem: Makefile preference were accidentally included. +Solution: Revert the Makefile changes. +Files: src/Makefile + +Patch 8.2.1267 +Problem: MS-Windows: tests may fail due to $PROMPT value. +Solution: Set $PROMPT for testing. (Taro Muraoka, closes #6510) +Files: src/testdir/runtest/vim + +Patch 8.2.1268 +Problem: Vim9: no error for using double quote comment after :func or :def. +Solution: Only accept double quote when not in Vim9 script and not after + :def. (closes #6483) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1269 +Problem: Language and locale code spread out. +Solution: Move relevant code to src/locale.c. (Yegappan Lakshmanan, + closes #6509) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/ex_cmds2.c, src/locale.c, src/main.c, src/proto.h, + src/proto/ex_cmds2.pro, src/proto/locale.pro + +Patch 8.2.1270 +Problem: Vim9: not skipping over function type declaration with only a + return type. +Solution: Skip over the return type. (issue #6507) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1271 +Problem: Vim9: Error for Funcref function argument type. +Solution: Find the actual function type if possible. (issue #6507) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1272 +Problem: Vim9: type not checked if declaration also assigns value. +Solution: Check the type. (issue #6507) +Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim9script.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1273 +Problem: MS-Windows: terminal test may leave file behind. +Solution: Wait a moment for process to end before deleting the file. + (Taro Muraoka, closes #6513) +Files: src/testdir/test_terminal.vim + +Patch 8.2.1274 +Problem: Vim9: no error for missing white space in assignment at script + level. +Solution: Check for white space. (closes #6495) +Files: src/eval.c, src/evalvars.c, src/testdir/test_vim9_script.vim, + src/testdir/test_let.vim + +Patch 8.2.1275 +Problem: Vim9: compiler warning for buffer size. +Solution: Change the offset from 10 to 15. (Dominique Pellé, closes #6518) +Files: src/vim9script.c + +Patch 8.2.1276 +Problem: MS-Windows: system test may fail if more.exe is installed. +Solution: Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517) +Files: src/testdir/test_system.vim + +Patch 8.2.1277 +Problem: Tests on Travis do not run with EXITFREE. +Solution: Add EXITFREE to all builds to uncover any mistakes. +Files: .travis.yml + +Patch 8.2.1278 +Problem: Vim9: line break after "->" only allowed in :def function. +Solution: Only allow line break after "->". (closes #6492) +Files: src/vim9compile.c, src/globals.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.1279 +Problem: Some tests on Travis have EXITFREE duplicated. +Solution: Remove EXITFREE from shadowopt. Add "shadow" to job name. +Files: .travis.yml + +Patch 8.2.1280 +Problem: Ex command error cannot contain an argument. +Solution: Add ex_errmsg() and translate earlier. Use e_trailing_arg where + possible. +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/buffer.c, + src/ex_eval.c, src/match.c, src/testdir/test_tabpage.vim + +Patch 8.2.1281 +Problem: The "trailing characters" error can be hard to understand. +Solution: Add the trailing characters to the message. +Files: src/cmdhist.c, src/eval.c, src/evalfunc.c, src/evalvars.c, + src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/json.c, + src/menu.c, src/quickfix.c, src/sign.c, src/userfunc.c + +Patch 8.2.1282 +Problem: Vim9: crash when using CheckScriptFailure() in + Test_vim9script_call_fail_decl(). +Solution: Do not decrement the def_functions len unless the function was + newly added. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1283 +Problem: Vim9: error for misplaced -> lacks argument. +Solution: Use the pointer before it was advanced. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1284 +Problem: Vim9: skipping over type includes following white space, leading + to an error for missing white space. +Solution: Do not skip over white space after the type. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1285 +Problem: Vim9: argument types are not checked on assignment. +Solution: Check function argument types. (issue #6507) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1286 +Problem: Vim9: No error when using a type on a window variable +Solution: Recognize the syntax and give an error. (closes #6521) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1287 +Problem: Vim9: crash when using an imported function. +Solution: Add the function type to the imported entry. (closes #6522) +Files: src/vim9script.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1288 +Problem: Vim9: cannot use mark in range. +Solution: Use the flag that a colon was seen. (closes #6528) +Files: src/ex_docmd.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1289 +Problem: Crash when using a custom completion function. +Solution: Initialize all of the expand_T. (closes #6532) +Files: src/cmdexpand.c + +Patch 8.2.1290 +Problem: Vim9: cannot replace a global function. +Solution: Allow for "!" on a global function. (closes #6524) Also fix that + :delfunc on a :def function only made it empty. +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1291 +Problem: Vim9: type of varargs items is not checked. +Solution: Check the list item types. (closes #6523) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1292 +Problem: AIDL filetype not recognized. +Solution: Add filetype detection. (Dominique Pellé, closes #6533) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1293 +Problem: Vim9: :execute mixes up () expression and function call. +Solution: Do not skip white space when looking for the "(". (closes #6531) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1294 +Problem: Vim9: error when using vim9script in TextYankPost. +Solution: Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can + be used when text is locked. (closes #6529) +Files: src/ex_cmds.h, src/ex_docmd.c + +Patch 8.2.1295 +Problem: Tests 44 and 99 are old style. +Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #6536) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, + src/testdir/test44.in, src/testdir/test44.ok, + src/testdir/test99.in, src/testdir/test99.ok, + src/testdir/test_regexp_utf8.vim + +Patch 8.2.1296 +Problem: Some part of using 'smartcase' was not tested. +Solution: Add more tests. (Dominique Pellé, closes #6538) +Files: src/testdir/test_search.vim + +Patch 8.2.1297 +Problem: When a test fails it's often not easy to see what the call stack + is. +Solution: Add more entries from the call stack in the exception message. +Files: runtime/doc/cmdline.txt, src/scriptfile.c, + src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c, + src/ex_eval.c, src/message.c, src/testing.c, + src/testdir/test_expand_func.vim + +Patch 8.2.1298 +Problem: Compiler warning for unused argument in small version. +Solution: Add UNUSED. +Files: src/scriptfile.c + +Patch 8.2.1299 +Problem: Compiler warning for using size_t for int and void pointer. +Solution: Add type casts. +Files: src/scriptfile.c + +Patch 8.2.1300 +Problem: Vim9: optional argument type not parsed properly. +Solution: Skip over the "?". (issue #6507) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c, + src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1301 +Problem: Vim9: varargs argument type not parsed properly. +Solution: Skip over the "...". (issue #6507) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1302 +Problem: Vim9: varargs arg after optional arg does not work +Solution: Check for the "..." first. (issue #6507) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1303 +Problem: Calling popup_setoptions() resets 'signcolumn'. +Solution: Only set 'signcolumn' when creating the popup. (closes #6542) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.1304 +Problem: Debug backtrace isn't tested much. +Solution: Add more specific tests. (Ben Jackson, closes #6540) +Files: src/testdir/runtest.vim, src/testdir/test_debugger.vim + +Patch 8.2.1305 +Problem: Some tests are still old style. +Solution: Convert tests 52 and 70 to new style. (Yegappan Lakshmanan, + closes #6544) Fix error in FinishTesting(). +Files: src/testdir/runtest.vim, src/Makefile, src/testdir/Make_all.mak, + src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms, + src/testdir/test52.in, src/testdir/test52.ok, + src/testdir/test70.in, src/testdir/test70.ok, + src/testdir/test_mzscheme.vim, src/testdir/test_writefile.vim + +Patch 8.2.1306 +Problem: Checking for first character of dict key is inconsistent. +Solution: Add eval_isdictc(). (closes #6546) +Files: src/eval.c, src/proto/eval.pro, src/vim9compile.c, + src/testdir/test_listdict.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_let.vim + +Patch 8.2.1307 +Problem: popup window width does not include number, fold of sign column + width. +Solution: Take number, fold and sign column with into account. +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_sign_2.dump + +Patch 8.2.1308 +Problem: Vim9: accidentally using "x" causes Vim to exit. +Solution: Disallow using ":x" or "xit" in Vim9 script. (closes #6399) +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, + src/proto/vim9script.pro, src/ex_docmd.c, src/ex_cmds.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1309 +Problem: Build failure with tiny version. +Solution: Add #ifdef. +Files: src/ex_cmds.c, src/ex_docmd.c + +Patch 8.2.1310 +Problem: Configure with Xcode 12 fails to check for tgetent. +Solution: Declare tgetent(). (Ozaki Kiichi, closes #6558) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.1311 +Problem: Test failures with legacy Vim script. +Solution: Actually check for Vim9 script. +Files: src/vim9script.c + +Patch 8.2.1312 +Problem: MS-Windows: terminal test may fail if dir.exe exists. +Solution: Use dir.com. (Ken Takata, closes #6557) +Files: src/testdir/test_terminal3.vim + +Patch 8.2.1313 +Problem: Vim9 script: cannot assign to environment variable. +Solution: Recognize environment variable assignment. (closes #6548) + Also options and registers. +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1314 +Problem: Vim9: rule for comment after :function is confusing. +Solution: Allow double quoted comment after :function in vim9script. + (closes #6556) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1315 +Problem: MS-Windows: test log contains escape sequences. +Solution: Do not use t_md and t_me but ANSI escape sequences. (Ken Takata, + closes #6559) +Files: src/testdir/runtest.vim + +Patch 8.2.1316 +Problem: Test 42 is still old style. +Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes #6561) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, + src/testdir/test42.in, src/testdir/test42.ok, + src/testdir/test_writefile.vim + +Patch 8.2.1317 +Problem: MS-Windows tests on AppVeyor are slow. +Solution: Use GitHub Actions. (Ken Takata, closes #6569) +Files: Filelist, .github/workflows/ci-windows.yaml, appveyor.yml, + ci/appveyor.bat + +Patch 8.2.1318 +Problem: No status badge for Github CI. +Solution: Add a badge. +Files: README.md + +Patch 8.2.1319 +Problem: Status badge for Github CI has wrong link. +Solution: Rename and use the right link +Files: README.md, .github/workflows/ci-windows.yaml + +Patch 8.2.1320 +Problem: Vim9: cannot declare some single letter variables. +Solution: Do not recognize a colon for a namespace for single letter + variables. (closes #6547) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1321 +Problem: GitHub CI also runs on tag push. +Solution: Skip CI on push. (Ken Takata, closes #6571) +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1322 +Problem: Vim9: method on double quoted string doesn't work. +Solution: Recognize double quoted string. (closes #6562) +Files: src/ex_docmd.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1323 +Problem: Vim9: invalid operators only rejected in :def function. +Solution: Also reject them at script level. (closes #6564) +Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1324 +Problem: Vim9: line break after "=" does not work. +Solution: Also allow for NUL after "=". (closes #6549) +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1325 +Problem: Vim9: using Vim9 script for autoload not tested. +Solution: Add a test. Update help. +Files: runtime/doc/vim9.txt, src/testdir/test_autoload.vim, + src/testdir/sautest/autoload/auto9.vim + +Patch 8.2.1326 +Problem: Vim9: skipping over white space after list. +Solution: Do not skip white space, a following [] would be misinterpreted. + (closes #6552) Fix a few side effects. +Files: src/list.c, src/dict.c, src/eval.c, src/userfunc.c, + src/testdir/test_functions.vim, src/testdir/test_gn.vim, + src/testdir/test_popupwin.vim, src/testdir/test_tabpage.vim, + src/testdir/test_textprop.vim, src/testdir/test_textobjects.vim + +Patch 8.2.1327 +Problem: Mac: configure can't find Tcl libraries. +Solution: Adjust configure check. (closes #6575) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.1328 +Problem: No space allowed before comma in list. +Solution: Legacy Vim script allows it. (closes #6577) +Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.1329 +Problem: Vim9: cannot define global function inside :def function. +Solution: Assign to global variable instead of local. (closes #6584) +Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, + src/vim9.h, src/vim9execute.c, src/structs.h, + src/misc2.c, src/proto/misc2.pro, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1330 +Problem: Github workflow takes longer than needed. +Solution: Do two test runs in parallel instead of sequentially. (Ken Takata, + closes #6579) +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1331 +Problem: Vim9: :echo with two lists doesn't work. +Solution: Do not skip white space before []. (closes #6552) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1332 +Problem: Vim9: memory leak when using nested global function. +Solution: Delete the function when deleting the instruction. Disable test + that still causes a leak. +Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.1333 +Problem: Vim9: memory leak when using nested global function. +Solution: Swap from and to when copying the lines. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1334 +Problem: Github workflow timeout needs tuning +Solution: Use a 10 minute timeout. Fail when timing out. (Ken Takata, + closes #6590) +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1335 +Problem: CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov) +Solution: Recognize "C" with CTRL modifier as CTRL-C. (issue #6565) +Files: src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c, src/gui_x11.c, + src/gui_photon.c + +Patch 8.2.1336 (after 8.2.1335) +Problem: Build failure on non-Unix systems. +Solution: Add #ifdef. +Files: src/gui.c + +Patch 8.2.1337 +Problem: Vim9: cannot use empty key in dict assignment. +Solution: Allow empty key. (closes #6591) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1338 +Problem: Vim9: assigning to script-local variable doesn't check type. +Solution: Use the type. (issue #6591) +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1339 +Problem: Vim9: assigning to global dict variable doesn't work. +Solution: Guess variable type based in index type. (issue #6591) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1340 +Problem: Some tests fail on Cirrus CI and/or with FreeBSD. +Solution: Make 'backupskip' empty. Do not run tests as root. Check for + directory when using viminfo. (Ozaki Kiichi, closes #6596) +Files: .cirrus.yml, src/testdir/test_backup.vim, + src/testdir/test_edit.vim, src/testdir/test_viminfo.vim, + src/testdir/test_writefile.vim, src/viminfo.c + +Patch 8.2.1341 +Problem: Build failures. +Solution: Add missing error message. +Files: src/globals.h + +Patch 8.2.1342 +Problem: Vim9: accidentally using "x" gives a confusing error. +Solution: Disallow using ":t" in Vim9 script. (issue #6399) +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c, + src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1343 +Problem: Vim9: cannot find global function when using g: when local + function with the same name exists. +Solution: Find global function when using g:. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1344 +Problem: Vim9: No test for trying to redefine global function. +Solution: Add a test. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1345 +Problem: Redraw error when using visual block and scroll. +Solution: Add check for w_topline. (closes #6597) +Files: src/drawscreen.c, src/testdir/test_display.vim, + src/testdir/dumps/Test_display_visual_block_scroll.dump + +Patch 8.2.1346 +Problem: Small build fails. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.1347 +Problem: Cannot easily get the script ID. +Solution: Support expand('<SID>'). +Files: runtime/doc/map.txt, src/ex_docmd.c, + src/testdir/test_expand_func.vim + +Patch 8.2.1348 +Problem: Build failure without the eval feature. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.1349 +Problem: Vim9: can define a function with the name of an import. +Solution: Disallow using an existing name. (closes #6585) +Files: src/userfunc.c, src/vim9compile.c, src/globals.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.1350 +Problem: Vim9: no test for error message when redefining function. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1351 +Problem: Vim9: no proper error if using namespace for nested function. +Solution: Specifically check for a namespace. (closes #6582) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1352 +Problem: Vim9: no error for shadowing a script-local function by a nested + function. +Solution: Check for script-local function. (closes #6586) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1353 +Problem: Crash when drawing double-wide character in terminal window. + (Masato Nishihata) +Solution: Check getcell() returning NULL. (issue #6141) +Files: src/libvterm/src/screen.c, src/testdir/test_terminal.vim + +Patch 8.2.1354 +Problem: Test 59 is old style. +Solution: Convert into a new style test. (Yegappan Lakshmanan, closes #6604) +Files: runtime/doc/eval.txt, src/Makefile, src/testdir/Make_all.mak, + src/testdir/Make_vms.mms, src/testdir/test59.in, + src/testdir/test59.ok, src/testdir/test_spell_utf8.vim + +Patch 8.2.1355 +Problem: Vim9: no error using :let for options and registers. +Solution: Give an error. (closes #6568) +Files: src/evalvars.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1356 +Problem: Vim9: cannot get the percent register. +Solution: Check for readable registers instead of writable. (closes #6566) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1357 +Problem: Vim9: cannot assign to / register. +Solution: Adjust check for assignment. (issue #6566) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1358 +Problem: Vim9: test fails with +dnd is not available. +Solution: Add condition. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1359 +Problem: Vim9: cannot assign to / register in Vim9 script. +Solution: Adjust check for assignment in Vim9 script. (closes #6567) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1360 +Problem: Stray error for white space after expression. +Solution: Ignore trailing white space. (closes #6608) +Files: src/eval.c, src/testdir/test_filter_map.vim + +Patch 8.2.1361 +Problem: Error for white space after expression in assignment. +Solution: Skip over white space. (closes #6617) +Files: src/eval.c, src/testdir/test_expr.vim + +Patch 8.2.1362 +Problem: Last entry of ":set term=xxx" overwritten by error message when + 'cmdheight' is two or more. (Tony Mechelynck) +Solution: Output extra line breaks. +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.1363 +Problem: Test trying to run terminal when it is not supported. +Solution: Check if Vim can be run in a terminal. +Files: src/testdir/test_termcodes.vim + +Patch 8.2.1364 +Problem: Invalid memory access when searching for raw string. +Solution: Check for delimiter match before following quote. (closes #6578) +Files: src/search.c + +Patch 8.2.1365 +Problem: Vim9: no error for missing white space around operator. +Solution: Check for white space. (closes #6618) +Files: src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/evalvars.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1366 +Problem: Test 49 is old style. +Solution: Convert several tests to new style. (Yegappan Lakshmanan, + closes #6629) +Files: src/testdir/script_util.vim, src/testdir/test49.ok, + src/testdir/test49.vim, src/testdir/test_vimscript.vim + +Patch 8.2.1367 +Problem: Vim9: no error for missing white space around operator. +Solution: Check for white space around *, / and %. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1368 +Problem: Vim9: no error for missing white space around operator. +Solution: Check for white space around <, !=, etc. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1369 +Problem: MS-Windows: autocommand test sometimes fails. +Solution: Do not rely on the cat command. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.1370 +Problem: MS-Windows: warning for using fstat() with stat_T. +Solution: use _fstat64() if available. (Naruhiko Nishino, closes #6625) +Files: src/macros.h + +Patch 8.2.1371 +Problem: Vim9: no error for missing white space around operator. +Solution: Check for white space around && and ||. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1372 +Problem: Vim9: no error for missing white space around operator. +Solution: Check for white space around ? and :. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1373 +Problem: Vim9: no error for assigning to non-existing script var. +Solution: Check that in Vim9 script the variable was defined. (closes #6630) +Files: src/vim9compile.c, src/userfunc.c, src/structs.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.1374 +Problem: Vim9: error for assigning empty list to script variable. +Solution: Use t_unknown for empty list member. (closes #6595) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1375 +Problem: Vim9: method name with digit not accepted. +Solution: Use eval_isnamec() instead of eval_isnamec1(). (closes #6613) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1376 +Problem: Vim9: expression mapping causes error for using :import. +Solution: Add EX_LOCK_OK to :import and :export. (closes #6606) +Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim + +Patch 8.2.1377 +Problem: Triggering the ATTENTION prompt causes typeahead to be messed up. +Solution: Increment tb_change_cnt. (closes #6541) +Files: src/getchar.c + +Patch 8.2.1378 +Problem: Cannot put space between function name and paren. +Solution: Allow this for backwards compatibility. +Files: src/eval.c, src/testdir/test_expr.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1379 +Problem: Curly braces expression ending in " }" does not work. +Solution: Skip over white space when checking for "}". (closes #6634) +Files: src/dict.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.1380 +Problem: Vim9: return type of getreg() is always a string. +Solution: Use list of strings when there are three arguments. (closes #6633) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1381 +Problem: MS-Windows: crash with Python 3.5 when stdin is redirected. +Solution: Reconnect stdin. (Yasuhiro Matsumoto, Ken Takata, closes #6641) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_python3.c + +Patch 8.2.1382 +Problem: Vim9: using :import in filetype plugin gives an error. +Solution: Allow commands with the EX_LOCK_OK flag. (closes #6636) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1383 +Problem: Test 49 is old style. +Solution: Convert test cases to new style. (Yegappan Lakshmanan, + closes #6638) +Files: src/testdir/test49.ok, src/testdir/test49.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.1384 +Problem: No ATTENTION prompt for :vimgrep first match file. +Solution: When there is an existing swap file do not keep the dummy buffer. + (closes #6649) +Files: src/quickfix.c, src/testdir/runtest.vim, + src/testdir/test_quickfix.vim + +Patch 8.2.1385 +Problem: No testing on ARM. +Solution: Add a test on Travis for ARM. (Ozaki Kiichi, closes #6615) +Files: .travis.yml + +Patch 8.2.1386 +Problem: Backslash not removed after space in option with space in + 'isfname'. +Solution: Do remove backslash before space, also when it is in 'isfname'. + (Yasuhiro Matsumoto, closes #6651) +Files: src/option.c, src/testdir/test_options.vim + +Patch 8.2.1387 +Problem: Vim9: cannot assign to single letter variable with type. +Solution: Exclude the colon from the variable name. (closes #6647) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1388 +Problem: Vim9: += only works for numbers. +Solution: Use += as concatenate for a list. (closes #6646) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1389 +Problem: File missing from the distribution. +Solution: Add script_util.vim to the list of distributes files. +Files: Filelist + +Patch 8.2.1390 +Problem: Vim9: type error after storing an option value. +Solution: Drop the type after a STOREOPT instruction. (closes #6632) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1391 +Problem: Vim9: no error for shadowing a script function. +Solution: Check for already defined items. (closes #6652) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1392 +Problem: Vim9: error line number incorrect after skipping over comment + lines. +Solution: Insert empty lines for skipped lines. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1393 +Problem: Insufficient testing for script debugging. +Solution: Add more tests. (Ben Jackson) +Files: src/testdir/test_debugger.vim + +Patch 8.2.1394 +Problem: Vim9: compiling a function interferes with command modifiers. +Solution: Save and restore command modifiers. (closes #6658) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1395 +Problem: Vim9: no error if declaring a funcref with a lower case letter. +Solution: Check the name after the type is inferred. Fix confusing name. +Files: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, + src/proto/evalvars.pro, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1396 +Problem: Vim9: no error for unexpectedly returning a value. +Solution: Only set the return type for lambda's. Make using function type + in a function reference work. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1397 +Problem: Vim9: return type of maparg() not adjusted for fourth argument. +Solution: Check if fourth argument is present. (closes #6645) +Files: src/evalfunc.c, src/testdir/test_maparg.vim + +Patch 8.2.1398 +Problem: Autoload script sourced twice if sourced directly. +Solution: Do not source an autoload script again. (issue #6644) +Files: src/scriptfile.c, src/testdir/sautest/autoload/sourced.vim + +Patch 8.2.1399 +Problem: Vim9: may find imported item in wrong script. +Solution: When looking up script-local function use the embedded script ID. + (issue #6644) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1400 +Problem: Vim9: test does not delete written files. +Solution: Correct file names. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1401 +Problem: Cannot jump to the last used tabpage. +Solution: Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes #6661, + neovim #11626) +Files: runtime/doc/eval.txt, runtime/doc/index.txt, + runtime/doc/tabpage.txt, src/evalwindow.c, src/globals.h, + src/normal.c, src/proto/window.pro, src/testdir/test_tabpage.vim, + src/window.c + +Patch 8.2.1402 +Problem: s390x tests always fail. +Solution: Temporarily disable s390x tests. +Files: .travis.yml + +Patch 8.2.1403 +Problem: Vim9: Vim highlighting fails in cmdline window if it uses Vim9 + commands. +Solution: Allow using :vim9script, :import and :export while in the cmdline + window. (closes #6656) +Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim + +Patch 8.2.1404 +Problem: Vim9: script test fails in the GUI. +Solution: Use another key to map. Improve cleanup. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1405 +Problem: Vim9: vim9compile.c is getting too big. +Solution: Split off type code to vim9type.c. +Files: Filelist, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim9type.c, src/proto/vim9type.pro, src/proto.h, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile + +Patch 8.2.1406 +Problem: Popupwindow lacks scrollbar if no "maxheight" is used. +Solution: Compute the max height depending on the position. (closes #6664) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_toohigh_1.dump, + src/testdir/dumps/Test_popupwin_toohigh_2.dump + +Patch 8.2.1407 +Problem: Vim9: type of list and dict only depends on first item. +Solution: Use all items to decide about the type. +Files: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vim9_expr.vim, runtime/doc/vim9.txt + +Patch 8.2.1408 +Problem: Vim9: type casting not supported. +Solution: Introduce type casting. +Files: runtime/doc/vim9.txt, src/vim9compile.c, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1409 +Problem: Npmrc and php.ini filetypes not recognized. +Solution: Add filetype detection. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1410 +Problem: Adding compiler plugin requires test change. +Solution: Include compiler plugin and adjust test. +Files: src/testdir/test_compiler.vim, runtime/compiler/xo.vim + +Patch 8.2.1411 +Problem: when splitting a window localdir is copied but prevdir is not. +Solution: Also copy prevdir. (closes #6667) +Files: src/window.c, src/testdir/test_cd.vim + +Patch 8.2.1412 +Problem: Vim: not operator does not result in boolean. +Solution: Make type depend on operator. (issue 6678) Fix using "false" and + "true" in Vim9 script. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1413 (after 8.2.1401) +Problem: Previous tab page not usable from an Ex command. +Solution: Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan, + closes #6677) +Files: runtime/doc/tabpage.txt, src/ex_docmd.c, src/window.c, + src/testdir/test_tabpage.vim + +Patch 8.2.1414 +Problem: Popupwindow missing last couple of lines when cursor is in the + first line. +Solution: Compute the max height also when top aligned. (closes #6664) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_toohigh_3.dump, + src/testdir/dumps/Test_popupwin_nospace.dump + +Patch 8.2.1415 +Problem: Closing a popup window with CTRL-C interrupts 'statusline' if it + calls a function. +Solution: Reset got_int while redrawing. (closes #6675) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_ctrl_c.dump + +Patch 8.2.1416 +Problem: Vim9: boolean evaluation does not work as intended. +Solution: Use tv2bool() in Vim9 script. (closes #6681) +Files: src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim + +Patch 8.2.1417 +Problem: Test 49 is old style. +Solution: Convert more parts to new style test. (Yegappan Lakshmanan, + closes #6682) +Files: src/testdir/test49.ok, src/testdir/test49.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.1418 +Problem: Vim9: invalid error for missing white space after function. +Solution: Do not skip over white space. (closes #6679) +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1419 +Problem: Vim9: not operator applied too early. +Solution: Implement the "numeric_only" argument. (closes #6680) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1420 +Problem: Test 49 is old style. +Solution: Convert remaining parts to new style. Remove obsolete items. + (Yegappan Lakshmanan, closes #6683) +Files: Filelist, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile, + src/testdir/Make_all.mak, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile, + src/testdir/README.txt, src/testdir/test49.in, + src/testdir/test49.ok, src/testdir/test49.vim, + src/testdir/test_quickfix.vim, src/testdir/test_vimscript.vim + +Patch 8.2.1421 +Problem: Vim9: handling "+" and "-" before number differs from Vim script. +Solution: Use the same sequence of commands. +Files: src/vim9compile.c + +Patch 8.2.1422 +Problem: The Mac GUI implementation is outdated and probably doesn't even + work. +Solution: Remove the Mac GUI code. The MacVim project provides the + supported Vim GUI version. +Files: Filelist, src/gui_mac.c, src/proto/gui_mac.pro, src/proto.h, + src/Makefile, src/configure.ac, src/auto/configure, + src/evalfunc.c, src/fileio.c, src/gui.c, src/if_mzsch.c, + src/main.c, src/misc2.c, src/mouse.c, src/os_mac_conv.c, + src/os_unix.c, src/feature.h, src/globals.h, src/gui.h, + src/option.h, src/optiondefs.h, src/os_mac.h, src/structs.h, + src/vim.h, src/INSTALLmac.txt + +Patch 8.2.1423 +Problem: Vim9: find global function when looking for script-local. +Solution: Don't strip prefix if name starts with "s:". (closes #6688) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1424 (after 8.2.1422) +Problem: Mac build fails. +Solution: Adjust configure to not fall back to Athena. Adjust some other + files. +Files: src/configure.ac, src/auto/configure, src/os_macosx.m, + src/version.c + +Patch 8.2.1425 +Problem: Vim9: cannot use call() without :call. +Solution: Do not skip over "call(". (closes #6689) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1426 +Problem: Vim9: cannot call autoload function in :def function. +Solution: Load the autoload script. (closes #6690) +Files: src/vim9execute.c, src/vim9compile.c, src/scriptfile.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1427 +Problem: Vim9: cannot use a range with marks in :def function. +Solution: Parse range after colon. (closes #6686) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1428 +Problem: Vim9: :def function does not abort on nested function error. +Solution: Check whether an error message was given. (closes #6691) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1429 +Problem: Vim9: no error for missing white after : in dict. +Solution: Check for white space. (closes #6671) Also check that there is no + white before the :. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1430 +Problem: Vim9: error for missing comma instead of extra white space. +Solution: Check if comma can be found after white space. (closes #6668) + Also check for extra white space in literal dict. (closes #6670) +Files: src/list.c, src/dict.c, src/vim9compile.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1431 +Problem: Vim9: no error for white space before comma in dict. +Solution: Check for extra white space. (closes #6674) +Files: src/vim9compile.c, src/dict.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1432 +Problem: Various inconsistencies in test files. +Solution: Add modelines where they were missing. Use Check commands instead + of silently skipping over tests. Adjust indents and comments. + (Ken Takata, closes #6695) +Files: src/testdir/test_arglist.vim, src/testdir/test_assert.vim, + src/testdir/test_autochdir.vim, src/testdir/test_autocmd.vim, + src/testdir/test_autoload.vim, src/testdir/test_balloon.vim, + src/testdir/test_balloon_gui.vim, src/testdir/test_behave.vim, + src/testdir/test_blockedit.vim, src/testdir/test_breakindent.vim, + src/testdir/test_bufline.vim, src/testdir/test_bufwintabinfo.vim, + src/testdir/test_cd.vim, src/testdir/test_changedtick.vim, + src/testdir/test_changelist.vim, src/testdir/test_channel.vim, + src/testdir/test_checkpath.vim, src/testdir/test_cindent.vim, + src/testdir/test_cjk_linebreak.vim, + src/testdir/test_clientserver.vim, + src/testdir/test_close_count.vim, src/testdir/test_cmdline.vim, + src/testdir/test_command_count.vim, + src/testdir/test_comparators.vim, src/testdir/test_compiler.vim, + src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim, + src/testdir/test_curswant.vim, src/testdir/test_debugger.vim, + src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, + src/testdir/test_digraph.vim, src/testdir/test_display.vim, + src/testdir/test_edit.vim, src/testdir/test_environ.vim, + src/testdir/test_erasebackword.vim, + src/testdir/test_escaped_glob.vim, src/testdir/test_ex_equal.vim, + src/testdir/test_ex_undo.vim, src/testdir/test_ex_z.vim, + src/testdir/test_exec_while_if.vim, src/testdir/test_exists.vim, + src/testdir/test_exists_autocmd.vim, src/testdir/test_exit.vim, + src/testdir/test_expand_dllpath.vim, + src/testdir/test_expr_utf8.vim, src/testdir/test_feedkeys.vim, + src/testdir/test_file_size.vim, src/testdir/test_fileformat.vim, + src/testdir/test_filter_cmd.vim, + src/testdir/test_find_complete.vim, src/testdir/test_findfile.vim, + src/testdir/test_fixeol.vim, src/testdir/test_flatten.vim, + src/testdir/test_fnameescape.vim, src/testdir/test_fold.vim, + src/testdir/test_functions.vim, src/testdir/test_ga.vim, + src/testdir/test_getcwd.vim, src/testdir/test_getvar.vim, + src/testdir/test_glob2regpat.vim, src/testdir/test_global.vim, + src/testdir/test_gui.vim, src/testdir/test_gui_init.vim, + src/testdir/test_highlight.vim, src/testdir/test_hlsearch.vim, + src/testdir/test_iminsert.vim, + src/testdir/test_increment_dbcs.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_interrupt.vim, + src/testdir/test_job_fails.vim, src/testdir/test_join.vim, + src/testdir/test_json.vim, src/testdir/test_jumplist.vim, + src/testdir/test_jumps.vim, src/testdir/test_lambda.vim, + src/testdir/test_langmap.vim, src/testdir/test_largefile.vim, + src/testdir/test_lineending.vim, src/testdir/test_listchars.vim, + src/testdir/test_listener.vim, src/testdir/test_listlbr.vim, + src/testdir/test_listlbr_utf8.vim, + src/testdir/test_makeencoding.vim, src/testdir/test_man.vim, + src/testdir/test_mapping.vim, src/testdir/test_marks.vim, + src/testdir/test_matchadd_conceal.vim, + src/testdir/test_matchadd_conceal_utf8.vim, + src/testdir/test_memory_usage.vim, src/testdir/test_menu.vim, + src/testdir/test_messages.vim, src/testdir/test_mksession.vim, + src/testdir/test_modeline.vim, + src/testdir/test_nested_function.vim, src/testdir/test_number.vim, + src/testdir/test_options.vim, src/testdir/test_packadd.vim, + src/testdir/test_partial.vim, src/testdir/test_paste.vim, + src/testdir/test_plus_arg_edit.vim, src/testdir/test_preview.vim, + src/testdir/test_profile.vim, src/testdir/test_prompt_buffer.vim, + src/testdir/test_quickfix.vim, src/testdir/test_quotestar.vim, + src/testdir/test_random.vim, src/testdir/test_recover.vim, + src/testdir/test_regex_char_classes.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_registers.vim, + src/testdir/test_rename.vim, src/testdir/test_retab.vim, + src/testdir/test_scriptnames.vim, src/testdir/test_scroll_opt.vim, + src/testdir/test_scrollbind.vim, src/testdir/test_search_stat.vim, + src/testdir/test_searchpos.vim, src/testdir/test_set.vim, + src/testdir/test_sha256.vim, src/testdir/test_shift.vim, + src/testdir/test_shortpathname.vim, src/testdir/test_signs.vim, + src/testdir/test_sort.vim, src/testdir/test_sound.vim, + src/testdir/test_source_utf8.vim, src/testdir/test_spellfile.vim, + src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim, + src/testdir/test_stat.vim, src/testdir/test_suspend.vim, + src/testdir/test_swap.vim, src/testdir/test_syntax.vim, + src/testdir/test_tab.vim, src/testdir/test_tabline.vim, + src/testdir/test_tagcase.vim, src/testdir/test_tagjump.vim, + src/testdir/test_taglist.vim, src/testdir/test_termcodes.vim, + src/testdir/test_termencoding.vim, src/testdir/test_terminal.vim, + src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, + src/testdir/test_terminal_fail.vim, + src/testdir/test_true_false.vim, + src/testdir/test_utf8_comparisons.vim, + src/testdir/test_vartabs.vim, src/testdir/test_version.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_winbar.vim, + src/testdir/test_winbuf_close.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim, + src/testdir/test_windows_home.vim, src/testdir/test_wnext.vim, + src/testdir/test_wordcount.vim, src/testdir/test_writefile.vim, + src/testdir/test_xxd.vim + +Patch 8.2.1433 +Problem: Vim9: cannot mingle comments in multi-line lambda. +Solution: Skip over NULL lines. (closes #6694) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1434 +Problem: Vim9: crash when lambda uses outer function argument. +Solution: Set the flag that the outer context is used. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1435 +Problem: Vim9: always converting to string for ".." leads to mistakes. +Solution: Only automatically convert simple types. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9.h, + src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c, + src/evalfunc.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1436 +Problem: Function implementing :substitute has unexpected name. +Solution: Rename from do_sub() to ex_substitute(). +Files: src/ex_cmds.c, src/proto/ex_cmds.pro, src/ex_docmd.c, + src/ex_cmds.h + +Patch 8.2.1437 +Problem: Vim9: 'statusline' is evaluated using Vim9 script syntax. +Solution: Always use legacy script syntax. +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1438 +Problem: Missing tests for interrupting script execution from debugger. +Solution: Add tests. (Yegappan Lakshmanan, closes #6697) +Files: src/testdir/test_debugger.vim + +Patch 8.2.1439 +Problem: Tiny and small builds have no test coverage. +Solution: Restore tests that do not depend on the +eval feature. + (Ken Takata, closes #6696) +Files: .travis.yml, Filelist, Makefile, runtime/doc/testing.txt, + src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/runtest.vim, + src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in, + src/testdir/test20.ok, src/testdir/test21.in, + src/testdir/test21.ok, src/testdir/test22.in, + src/testdir/test22.ok, src/testdir/test23.in, + src/testdir/test23.ok, src/testdir/test24.in, + src/testdir/test24.ok, src/testdir/test25.in, + src/testdir/test25.ok, src/testdir/test26.in, + src/testdir/test26.ok, src/testdir/test27.in, + src/testdir/test27.ok, src/testdir/test_options.vim + +Patch 8.2.1440 +Problem: Debugger code insufficiently tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6700) +Files: src/testdir/test_debugger.vim, src/testdir/test_vimscript.vim + +Patch 8.2.1441 +Problem: Running tests in tiny version gives error for summarize.vim. +Solution: Set 'cpoptions' to allow for line continuation. Restore + redirecting test output to /dev/null. +Files: src/testdir/summarize.vim, src/testdir/Makefile + +Patch 8.2.1442 +Problem: Outdated references to the Mac Carbon GUI. +Solution: Remove or update references. (Yee Cheng Chin, closes #6703) +Files: READMEdir/README_extra.txt, src/Makefile, src/configure.ac, + src/auto/configure, src/gui_haiku.cc, src/os_macosx.m, + src/testdir/test_iminsert.vim, src/vim.h + +Patch 8.2.1443 +Problem: Vim9: crash when interrupting a nested :def function. +Solution: Push a dummy return value onto the stack. (closes #6701) +Files: src/vim9execute.c + +Patch 8.2.1444 +Problem: Error messages are spread out and names can be confusing. +Solution: Start moving error messages to a separate file and use clear + names. +Files: Filelist, src/vim.h, src/globals.h, src/errors.h, src/Makefile, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, + src/dict.c, src/evalvars.c, src/ex_docmd.c, src/list.c, + src/userfunc.c, src/vim9compile.c, src/vim9execute.c, + src/vim9script.c, src/vim9type.c + +Patch 8.2.1445 +Problem: Vim9: function expanded name is cleared when sourcing a script + again. +Solution: Only clear the expanded name when deleting the function. + (closes #6707) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1446 +Problem: Vim9: line number in error message is not correct. +Solution: Set SOURCING_LNUM before calling emsg(). (closes #6708) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1447 +Problem: Vim9: return type of keys() is list<any>. +Solution: Should be list<string>. (closes #6711) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1448 +Problem: Test 77a for VMS depends on small.vim which does not exist. +Solution: Use the 'silent while 0" trick. (issue #6696) +Files: src/testdir/test77a.in + +Patch 8.2.1449 +Problem: Some test makefiles delete files that are not generated. +Solution: Remove the deletion commands. +Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms + +Patch 8.2.1450 +Problem: Vim9: no check that script-local items don't become global. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1451 +Problem: Vim9: list type at script level only uses first item. +Solution: Use all members, like in a compiled function. (closes #6712) + Also for dictionary. +Files: src/vim9type.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1452 +Problem: Vim9: dead code in to_name_end(). +Solution: Remove check for lambda and dict, it won't be used. +Files: src/vim9compile.c + +Patch 8.2.1453 +Problem: Vim9: failure to compile lambda not tested. +Solution: Add a test case. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1454 +Problem: Vim9: failure invoking lambda with wrong arguments. +Solution: Handle invalid arguments. Add a test. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1455 +Problem: Vim9: crash when using typecast before constant. +Solution: Generate constant before checking type. Add tets. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1456 +Problem: MS-Windows: test files are not deleted. +Solution: use "del" instead of $(DEL). +Files: src/testdir/Make_dos.mak + +Patch 8.2.1457 +Problem: Vim9: the output of :disassemble cannot be interrupted. +Solution: Check got_int. (closes #6715) +Files: src/vim9execute.c + +Patch 8.2.1458 +Problem: .gawk files not recognized. +Solution: Recognize .gawk files. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1459 +Problem: Vim9: declaring a script variable at the script level does not + infer the type. +Solution: Get the type from the value. (closes #6716) +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1460 +Problem: Error messages are spread out. +Solution: Move more messages into errors.h. +Files: src/errors.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, + src/vim9script.c, src/vim9type.c, src/scriptfile.c, src/ex_cmds.c, + src/ex_docmd.c, src/match.c, src/eval.c, src/evalvars.c, + src/userfunc.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1461 +Problem: Vim9: string indexes are counted in bytes. +Solution: Use character indexes. (closes #6574) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro, + src/vim9execute.c, src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1462 +Problem: Vim9: string slice not supported yet. +Solution: Add support for string slicing. +Files: src/errors.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1463 +Problem: Vim9: list slice not supported yet. +Solution: Add support for list slicing. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, + src/list.c, src/proto/list.pro, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1464 +Problem: Vim9: build warning for unused variable. +Solution: Delete the variable declaration. +Files: src/vim9execute.c + +Patch 8.2.1465 +Problem: Vim9: subscript not handled properly. +Solution: Adjust error message. Remove dead code. Disallow string to + number conversion in scripts. +Files: src/errors.h, src/vim9compile.c, src/vim9execute.c, src/eval.c, + src/typval.c, src/list.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1466 +Problem: Vim9: cannot index or slice a variable with type "any". +Solution: Add runtime index and slice. +Files: src/eval.c, src/proto/eval.pro, src/vim9compile.c, + src/vim9execute.c, src/vim9.h, src/errors.h, src/list.c, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1467 +Problem: Vim9: :echomsg doesn't like a dict argument. +Solution: Convert arguments like in legacy script. (closes #6717) +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1468 +Problem: Vim9: invalid error for missing white space. +Solution: Don't skip over white space after index. (closes #6718) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1469 +Problem: Vim9: cannot assign string to string option. +Solution: Change checks for option value. (closes #6720) +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1470 +Problem: Errors in spell file not tested. +Solution: Add test for spell file errors. (Yegappan Lakshmanan, + closes #6721) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.1471 +Problem: :const only locks the variable, not the value. +Solution: Lock the value as ":lockvar 1 var" would do. (closes #6719) +Files: src/evalvars.c, src/testdir/test_const.vim + +Patch 8.2.1472 +Problem: ":argdel" does not work like ":.argdel" as documented. (Alexey + Demin) +Solution: Make ":argdel" work like ":.argdel". (closes #6727) + Also fix giving the error "0 more files to edit". +Files: src/arglist.c, src/ex_docmd.c, src/testdir/test_arglist.vim + +Patch 8.2.1473 +Problem: Items in a list given to :const can still be modified. +Solution: Work like ":lockvar! name" but don't lock referenced items. + Make locking a blob work. +Files: runtime/doc/eval.txt, src/evalvars.c, src/eval.c, + src/testdir/test_const.vim + +Patch 8.2.1474 +Problem: /usr/lib/udef/rules.d not recognized as udevrules. +Solution: Adjust match pattern. (Haochen Tong, closes 36722) +Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim + +Patch 8.2.1475 +Problem: Vim9: can't use v:true for option flags. +Solution: Add tv_get_bool_chk(). (closes #6725) +Files: src/typval.c, src/proto/typval.pro, src/channel.c + +Patch 8.2.1476 (after 8.2.1474) +Problem: Filetype test fails on MS-Windows. +Solution: Remove "^" from pattern. +Files: runtime/autoload/dist/ft.vim + +Patch 8.2.1477 +Problem: Vim9: error when using bufnr('%'). +Solution: Don't give an error for using a string argument. (closes #6723) +Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1478 +Problem: Vim9: cannot use "true" for some popup options. +Solution: Add dict_get_bool(). (closes #6725) +Files: src/dict.c, src/proto/dict.pro, src/popupwin.c + +Patch 8.2.1479 +Problem: Vim9: error for list index uses wrong line number. +Solution: Set source line number. (closes #6724) Add a way to assert the + line number of the error with assert_fails(). +Files: runtime/doc/testing.txt, src/vim9execute.c, src/testing.c, + src/evalfunc.c, src/message.c, src/globals.h, src/testdir/vim9.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1480 +Problem: Vim9: skip expression in search() gives error. +Solution: use tv_get_bool() eval_expr_to_bool(). (closes #6729) +Files: src/eval.c, src/typval.c, src/proto/typval.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.1481 +Problem: Vim9: line number reported with error may be wrong. +Solution: Check line number in tests. +Files: src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim, + src/vim9execute.c + +Patch 8.2.1482 +Problem: Vim9: crash when using a nested lambda. +Solution: Do not clear the growarray when not evaluating. Correct pointer + when getting the next line. (closes #6731) +Files: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1483 +Problem: Vim9: error for using special as number when returning "false" + from a popup filter. +Solution: Use tv_get_bool(). (closes #6733) +Files: src/popupwin.c + +Patch 8.2.1484 +Problem: Flaky failure in assert_fails(). +Solution: Only used fourth argument if there is a third argument. +Files: src/testing.c + +Patch 8.2.1485 +Problem: Vim9: readdirex() expression doesn't accept bool. +Solution: Accept both -1 and bool. (closes #6737) +Files: src/filepath.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1486 +Problem: Vim9: readdir() expression doesn't accept bool. +Solution: Merge with code for readdirex(). (closes #6737) +Files: src/filepath.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1487 +Problem: Travis: installing snd-dummy is not always useful. +Solution: Only install snd-dummy on amd64. (Ozaki Kiichi, closes #6738) +Files: .travis.yml, ci/load-snd-dummy.sh + +Patch 8.2.1488 +Problem: Text does not scroll when inserting above first line. +Solution: Adjust off-by-one error. (Ken Takata, closes #6739) +Files: src/drawscreen.c, src/testdir/test_display.vim, + src/testdir/dumps/Test_display_scroll_at_topline.dump + +Patch 8.2.1489 +Problem: Vim9: error when setting an option with setbufvar(). +Solution: Do not get a number from a string value. (closes #6740) +Files: src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1490 +Problem: Vim9: using /= with float and number doesn't work. +Solution: Better support assignment with operator. (closes #6742) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1491 +Problem: Vim9: crash when compiling heredoc lines start with comment. +Solution: Skip over NULL pointers. Do not remove comment and empty lines + when fetching function lines. (closes #6743) +Files: src/vim9compile.c, src/scriptfile.c, src/proto/scriptfile.pro, + src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/ex_cmds.h, src/autocmd.c, src/proto/autocmd.pro, + src/ex_getln.c, src/proto/ex_getln.pro, src/userfunc.c, + src/proto/userfunc.pro, src/evalfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1492 +Problem: Build failures. +Solution: Move typedef out of #ifdef. Adjust argument types. Discover + America. +Files: src/structs.h, src/ex_docmd.c + +Patch 8.2.1493 +Problem: Not enough test coverage for the spell file handling. +Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6728) +Files: src/spellfile.c, src/testdir/test_spellfile.vim + +Patch 8.2.1494 +Problem: Missing change to calling eval_getline(). +Solution: Change last argument. +Files: src/eval.c + +Patch 8.2.1495 +Problem: "make clean" may delete too many files. +Solution: Do not delete $APPDIR. (closes #6751) +Files: src/Makefile + +Patch 8.2.1496 +Problem: Vim9: cannot use " #" in a mapping. +Solution: Do not remove a comment with the EX_NOTRLCOM flag. (closes #6746) +Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1497 +Problem: CursorHold test is flaky. (Jakub Kądziołka) +Solution: Use WaitForAssert() (closes #6754) +Files: src/testdir/test_autocmd.vim + +Patch 8.2.1498 +Problem: On slow systems tests can be flaky. +Solution: Use TermWait() instead of term-wait(). (Yegappan Lakshmanan, + closes #6756) +Files: src/testdir/test_digraph.vim, src/testdir/test_display.vim, + src/testdir/test_popupwin.vim, src/testdir/test_termcodes.vim, + src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim, + src/testdir/test_writefile.vim + +Patch 8.2.1499 +Problem: Vim9: error when using "$" with col(). +Solution: Reorder getting the column value. (closes #6744) +Files: src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1500 +Problem: Vim9: error when using address without a command. +Solution: Execute the range itself. (closes #6747) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1501 +Problem: Vim9: concatenating to constant reverses order. +Solution: Generate constant before option, register and environment + variable. (closes #6757) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1502 +Problem: Vim9: can use += with a :let command at script level. +Solution: Give an error. +Files: src/evalvars.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1503 +Problem: Vim9: error for an autocmd defined in a :def function in legacy + Vim script. +Solution: Don't check the variable type. (closes #6758) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1504 +Problem: Vim9: white space checks are only done for a :def function. +Solution: Also do checks at the script level. Adjust the name of a few + error messages. +Files: src/userfunc.c, src/errors.h, src/dict.c, src/list.c, + src/vim9compile.c, src/vim9script.c, src/vim9type.c, + src/evalvars.c, src/testdir/test_vim9_expr.vim, + src/testdir/vim9.vim + +Patch 8.2.1505 +Problem: Not all file read and writecode is tested. +Solution: Add a few tests. (Dominique Pellé, closes #6764) +Files: src/testdir/test_eval_stuff.vim, src/testdir/test_fnamemodify.vim, + src/testdir/test_functions.vim + +Patch 8.2.1506 +Problem: Vim9: no error when using a number other than 0 or 1 as bool. +Solution: Check the number is 0 or 1. +Files: src/errors.h, src/typval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1507 +Problem: Using malloc() directly. +Solution: Use ALLOC_ONE(). Remove superfluous typecast. (Hussam al-Homsi, + closes #6768) +Files: src/eval.c, src/memline.c, src/vimrun.c + +Patch 8.2.1508 +Problem: Not all debugger commands covered by tests. +Solution: Add tests for going up/down in the stack. (Ben Jackson, + closes #6765) +Files: src/testdir/test_debugger.vim + +Patch 8.2.1509 +Problem: Vertical separator is cleared when dragging a popup window using a + multi-byte character for the border. +Solution: Only clear the character before the window if it is using a + multi-byte character. (closes #6766) +Files: src/screen.c + +Patch 8.2.1510 +Problem: Using "var" in a :def function may refer to a legacy Vim script + variable. +Solution: Require using "s:" to refer to a legacy Vim script variable. + (closes #6771) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1511 +Problem: Putting a string in Visual block mode ignores multi-byte + characters. +Solution: Adjust the column for Visual block mode. (closes #6767) +Files: src/register.c, src/testdir/test_visual.vim + +Patch 8.2.1512 +Problem: Failure after ternary expression fails. +Solution: Restore eval_flags. (Yasuhiro Matsumoto, closes #6776) +Files: src/eval.c, src/testdir/test_vimscript.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1513 +Problem: Cannot interrupt shell used for filename expansion. (Dominique + Pellé) +Solution: Do set tmode in mch_delay(). (closes #6770) +Files: src/vim.h, src/os_unix.c, src/proto/os_unix.pro, src/term.c, + src/channel.c, src/if_cscope.c, src/os_amiga.c, src/ui.c, + src/proto/os_amiga.pro, src/os_win32.c, src/proto/os_win32.pro + +Patch 8.2.1514 +Problem: Multibyte vertical separator is cleared when dragging a popup + window using a multi-byte character for the border. +Solution: Only clear the character before the window if it is double width. + (closes #6766) +Files: src/screen.c + +Patch 8.2.1515 +Problem: Vim9: can create s:var in legacy script but cannot unlet. +Solution: Allow :unlet for legacy script var. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1516 +Problem: Vim9: error for :exe has wrong line number. +Solution: Set line number before calling do_cmdline_cmd(). (closes #6774) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1517 +Problem: Cannot easily get the character under the cursor. +Solution: Add the {chars} argument to strpart(). +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_functions.vim + +Patch 8.2.1518 +Problem: Vim9: cannot assign to local option. +Solution: Skip over "&l:" and "&g:". (closes #6749) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim, + src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1519 +Problem: Vim9: Ex command default range is not set. +Solution: When range is not given use default. (closes #6779) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1520 +Problem: Vim9: CTRL-] used in :def function does not work. +Solution: Omit count or prepend colon. (closes #6769) +Files: src/normal.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1521 +Problem: Reading past end of buffer when reading spellfile. (Yegappan + Lakshmanan) +Solution: Store the byte length and check for it. +Files: src/spellfile.c, src/spell.h + +Patch 8.2.1522 +Problem: Not enough test coverage for the spell file handling. +Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6763) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.1523 +Problem: Still not enough test coverage for the spell file handling. +Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6790) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.1524 +Problem: No longer get an error for string concatenation with float. + (Tsuyoshi Cho) +Solution: Only convert float for Vim9 script. (closes #6787) +Files: src/eval.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.1525 +Problem: Messages from tests were not always displayed. +Solution: Always show messages, the timing is always useful. (Ken Takata, + closes #6792) +Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Makefile + +Patch 8.2.1526 +Problem: Line in testdir Makefile got commented out. (Christian Brabandt) +Solution: Revert. +Files: src/testdir/Makefile + +Patch 8.2.1527 +Problem: Vim9: cannot use a function name as a function reference at script + level. +Solution: Check if a name is a function name. (closes #6789) +Files: src/evalvars.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1528 +Problem: Vim9: :endif not found after "if false". +Solution: When skipping still check for a following command. (closes #6797) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1529 +Problem: Vim9: :elseif may be compiled when not needed. +Solution: Do evaluate the :elseif expression. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1530 +Problem: Vim9: test fails on MS-Windows. +Solution: Skip Ex command inside "if false". +Files: src/vim9compile.c + +Patch 8.2.1531 +Problem: Vim9: test still fails on MS-Windows. +Solution: When skipping expect function to be NULL. +Files: src/vim9compile.c + +Patch 8.2.1532 +Problem: Compiler warning for conversion of size_t to long. +Solution: Add type cast. +Files: src/eval.c + +Patch 8.2.1533 +Problem: Vim9: error when passing getreginfo() result to setreg(). +Solution: Use dict_get_bool() for "isunnamed". (closes #6784) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1534 +Problem: Vim9: type error for argument type is not at call position. +Solution: Set the context and stack after checking the arguments. + (issue #6785) +Files: src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1535 +Problem: It is not possible to specify cell widths of characters. +Solution: Add setcellwidths(). +Files: runtime/doc/eval.txt, runtime/doc/options.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c, + src/proto/mbyte.pro, src/errors.h, src/testdir/test_utf8.vim + +Patch 8.2.1536 +Problem: Cannot get the class of a character; emoji widths are wrong in + some environments. +Solution: Add charclass(). Update some emoji widths. Add script to check + emoji widths. +Files: Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt, + src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro, + src/testdir/emoji_list.vim, src/testdir/test_functions.vim + +Patch 8.2.1537 +Problem: Memory access error when using setcellwidths(). +Solution: Use array and pointers correctly. +Files: src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim + +Patch 8.2.1538 +Problem: Python: iteration over vim objects fails to keep reference. +Solution: Keep a reference for the object. (Paul Ollis, closes #6803, + closes #6806) +Files: src/if_py_both.h, src/testdir/test_python3.vim + +Patch 8.2.1539 +Problem: Using invalid script ID causes a crash. +Solution: Check the script ID to be valid. (closes #6804) +Files: src/globals.h, src/evalvars.c, src/profiler.c, src/scriptfile.c, + src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1540 +Problem: The user cannot try out emoji character widths. +Solution: Move the emoji script to the runtime/tools directory. +Files: Filelist, src/testdir/emoji_list.vim, runtime/tools/emoji_list.vim + +Patch 8.2.1541 +Problem: Vim9: cannot find function reference for s:Func. +Solution: Recognize <SNR> prefix. (closes #6805) +Files: src/userfunc.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1542 +Problem: Vim9: test with invalid SID does not work in the GUI. +Solution: Skip the test in the GUI. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1543 +Problem: Vim9: test with invalid SID is skipped in the GUI. +Solution: Read the CTRL-C that feedkeys() put in typeahead. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1544 +Problem: Cannot translate messages in a Vim script. +Solution: Add gettext(). Try it out for a few messages in the options + window. +Files: Filelist, src/po/Makefile, src/po/README.txt, runtime/optwin.vim, + src/evalfunc.c, src/po/tojavascript.vim, src/po/fixfilenames.vim, + runtime/doc/eval.txt, runtime/doc/usr_41.txt + +Patch 8.2.1545 +Problem: ch_logfile() is unclear about closing when forking. +Solution: Adjust the log messages. +Files: src/channel.c, src/os_unix.c + +Patch 8.2.1546 +Problem: Build rule for Vim.app is unused. +Solution: Delete the related build rules. +Files: src/Makefile + +Patch 8.2.1547 +Problem: Various comment problems. +Solution: Update comments. +Files: src/arglist.c, src/map.c, src/mbyte.c, src/tag.c, src/undo.c, + src/testdir/README.txt, src/testdir/test_put.vim, + src/libvterm/README + +Patch 8.2.1548 +Problem: Cannot move position of "%%" in message translations. (Emir Sarı) +Solution: Improve the check script. +Files: src/po/check.vim + +Patch 8.2.1549 +Problem: The "r" command fails for keys with modifiers if 'esckeys' is off + and modifyOtherKeys is used. (Lauri Tirkkonen) +Solution: Temporarily disable bracketed paste and modifyOtherKeys if + 'esckeys' is off. (closes #6809) +Files: src/normal.c + +Patch 8.2.1550 +Problem: Vim9: bufname('%') gives an error. +Solution: Only give an error for wrong argument type. (closes #6807) +Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1551 +Problem: Vim9: error for argument type does not mention the number. +Solution: Pass the argument number to where the error is given. +Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, + src/vim9execute.c, src/vim9script.c, src/eval.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.1552 +Problem: Warnings from asan with clang-11. (James McCoy) +Solution: Avoid using a NULL pointer. (issue #6811) +Files: src/fold.c + +Patch 8.2.1553 (after 8.2.1552) +Problem: Crash in edit test. +Solution: Avoid using invalid pointer. +Files: src/fold.c + +Patch 8.2.1554 +Problem: Crash in normal test. +Solution: Skip adjusting marks if there are no folds. +Files: src/fold.c + +Patch 8.2.1555 +Problem: Not all tests are executed on Github Actions. +Solution: Copy "src" to "src2" earlier. Recognize "src2" in a couple more + places. Add two tests to the list of flaky tests. (Ken Takata, + closes #6798) +Files: .github/workflows/ci-windows.yaml, src/testdir/runtest.vim, + src/testdir/test_python2.vim, src/testdir/test_python3.vim + +Patch 8.2.1556 +Problem: Cursorline highlighting always overrules sign highlighting. +Solution: Combine the highlighting, use the priority to decide how. + (closes #6812) +Files: runtime/doc/sign.txt, src/structs.h, src/drawline.c, + runtime/pack/dist/opt/termdebug/plugin/termdebug.vim, + src/testdir/test_signs.vim, + src/testdir/dumps/Test_sign_cursor_5.dump, + src/testdir/dumps/Test_sign_cursor_6.dump + +Patch 8.2.1557 +Problem: Crash in :vimgrep when started as "vim -n". (Raul Segura) +Solution: Check mfp pointer. (Yegappan Lakshmanan, closes #6827) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1558 +Problem: Signs test fails. +Solution: Add missing change to sign.c. +Files: src/sign.c + +Patch 8.2.1559 +Problem: s390x tests work again. +Solution: re-enable s390x tests. (James McCoy, closes #6829) +Files: .travis.yml + +Patch 8.2.1560 +Problem: Using NULL pointers in some code. (James McCoy) +Solution: Avoid adding to a NULL pointer. Use byte as unsigned. +Files: src/fold.c, src/eval.c, src/spellsuggest.c, src/spellfile.c, + src/vim9compile.c + +Patch 8.2.1561 +Problem: Using NULL pointers in fold code. +Solution: Avoid using a NULL pointer. (Dominique Pellé, closes #6831, + closes #6831) +Files: src/fold.c + +Patch 8.2.1562 +Problem: Vim9: error when using "%" where a buffer is expected. +Solution: Add tv_get_buf_from_arg(). (closes #6814) +Files: src/typval.c, src/proto/typval.pro, src/evalbuffer.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.1563 +Problem: Vim9: error when using '%" with setbufvar() or getbufvar(). +Solution: Use tv_get_buf_from_arg(). (closes #6816) +Files: src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1564 +Problem: A few remaining errors from ubsan. +Solution: Avoid the warnings. (Dominique Pellé, closes #6837) +Files: src/spellfile.c, src/spellsuggest.c, src/viminfo.c + +Patch 8.2.1565 +Problem: Spellfile test sometimes fails. +Solution: Check running into the end of the file. +Files: src/spellfile.c + +Patch 8.2.1566 +Problem: Not all Bazel files are recognized. +Solution: Add *.bazel and *.BUILD. (closes #6836) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1567 +Problem: No example to use ubsan with clang. +Solution: Add example commands. (Dominique Pellé, issue #6811) +Files: src/Makefile + +Patch 8.2.1568 +Problem: prop_find() skips properties in the same line if "skipstart" is + used. +Solution: Use "continue" instead of "break". (closes #6840) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.1569 +Problem: Vim9: fixes for functions not tested; failure in getchangelist(). +Solution: Add tests. (closes #6813, closes #6815, closes #6817) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1570 +Problem: Configure check for dirfd() does not work on HPUX. (Michael Osipov) +Solution: Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes #6838) +Files: src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h + +Patch 8.2.1571 +Problem: Vim9: count() third argument cannot be "true". +Solution: Use tv_get_bool_chk(). (closes #6818) +Files: src/typval.c, src/list.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1572 +Problem: Vim9: expand() does not take "true" as argument. +Solution: Use tv_get_bool_chk(). (closes #6819) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1573 +Problem: Vim9: getreg() does not take "true" as argument. +Solution: Use tv_get_bool_chk(). (closes #6820) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1574 +Problem: Vim9: glob() does not take "true" as argument. +Solution: Use tv_get_bool_chk(). (closes #6821) +Files: src/filepath.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1575 +Problem: Vim9: globpath() does not take "true" as argument. +Solution: Use tv_get_bool_chk(). (closes #6821) +Files: src/filepath.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1576 +Problem: Vim9: index() does not take "true" as argument. +Solution: Use tv_get_bool_chk(). (closes #6823) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1577 +Problem: Vim9: hasmapto(), mapcheck() and maparg() do not take "true" as + argument. +Solution: Use tv_get_bool(). (closes #6822, closes #6824) +Files: src/evalfunc.c, src/map.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1578 +Problem: Vim9: popup_clear() does not take "true" as argument. +Solution: Use tv_get_bool(). (closes #6826) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.1579 +Problem: Reports from asan are not optimal. +Solution: Use clang with ubsan. (James McCoy, closes #6811) +Files: .travis.yml + +Patch 8.2.1580 +Problem: Wildmenu does not work properly. +Solution: Do not call may_do_incsearch_highlighting() if completion is in + progress. +Files: src/ex_getln.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_1.dump, + src/testdir/dumps/Test_wildmenu_2.dump, + src/testdir/dumps/Test_wildmenu_3.dump, + src/testdir/dumps/Test_wildmenu_4.dump + +Patch 8.2.1581 +Problem: Using line() for global popup window doesn't work. +Solution: Set tabpage to "curtab". (closes #6847) +Files: src/evalwindow.c, src/testdir/test_popupwin.vim + +Patch 8.2.1582 +Problem: The channel log does not show typed text. +Solution: Add raw typed text to the log file. +Files: src/ui.c, src/os_win32.c + +Patch 8.2.1583 +Problem: MS-Windows: cannot easily measure code coverage. +Solution: Add the COVERAGE option. (Ken Takata, closes #6842) +Files: src/Make_cyg_ming.mak + +Patch 8.2.1584 +Problem: Vim9: cannot use "true" for "skipstart" in prop_find(). +Solution: Use dict_get_bool() instead of tv_get_number(). (closes #6852) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.1585 +Problem: Messages in errors.h not translated, xgettext on MS-Windows not + fully supported. +Solution: Add errors.h to list of input files. Update MS-Windows makefiles + to improve message translations. (Ken Takata, closes #6858) +Files: src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak, + src/po/Makefile, src/po/README.txt, src/po/fixfilenames.vim + +Patch 8.2.1586 +Problem: :resize command not fully tested. +Solution: Add a couple of tests. (Dominique Pellé, closes #6857) +Files: src/testdir/test_window_cmd.vim + +Patch 8.2.1587 +Problem: Loop for handling keys for the command line is too long. +Solution: Move wild menu handling to separate functions. (Yegappan + Lakshmanan, closes #6856) +Files: src/cmdexpand.c, src/proto/cmdexpand.pro, src/ex_getln.c + +Patch 8.2.1588 +Problem: Cannot read back the prompt of a prompt buffer. +Solution: Add prompt_getprompt(). (Ben Jackson, closes #6851) +Files: runtime/doc/channel.txt, runtime/doc/eval.txt, + runtime/doc/usr_41.txt, src/channel.c, src/edit.c, src/evalfunc.c, + src/proto/channel.pro, src/proto/edit.pro, + src/testdir/test_prompt_buffer.vim + +Patch 8.2.1589 +Problem: Term_start() options for size are overruled by 'termwinsize'. + (Sergey Vlasov) +Solution: Set 'termwinsize' to the specified size. +Files: src/terminal.c, src/testdir/test_terminal2.vim, + src/testdir/term_util.vim + +Patch 8.2.1590 +Problem: Vim9: bufnr() doesn't take "true" argument. +Solution: use tv_get_bool_chk(). (closes #6863) +Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1591 +Problem: Using winheight('.') in tests works but is wrong. +Solution: Use winheight(0). (issue #6863) +Files: src/testdir/test_functions.vim, src/testdir/test_quickfix.vim + +Patch 8.2.1592 +Problem: Vim9: passing "true" to char2nr() fails. +Solution: Use tv_get_bool_chk(). (closes #6865) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1593 +Problem: Tests do not check the error number properly. +Solution: Add a colon after the error number. (closes #6869) +Files: src/testdir/test_assert.vim, src/testdir/test_autocmd.vim, + src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim, + src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim, + src/testdir/test_const.vim, src/testdir/test_cscope.vim, + src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim, + src/testdir/test_global.vim, src/testdir/test_gui.vim, + src/testdir/test_hlsearch.vim, src/testdir/test_lambda.vim, + src/testdir/test_let.vim, src/testdir/test_listdict.vim, + src/testdir/test_move.vim, src/testdir/test_normal.vim, + src/testdir/test_popupwin.vim, src/testdir/test_put.vim, + src/testdir/test_quickfix.vim, src/testdir/test_rename.vim, + src/testdir/test_search.vim, src/testdir/test_signs.vim, + src/testdir/test_substitute.vim, src/testdir/test_syntax.vim, + src/testdir/test_tagfunc.vim, src/testdir/test_tagjump.vim, + src/testdir/test_taglist.vim, src/testdir/test_terminal.vim, + src/testdir/test_terminal2.vim, src/testdir/test_textprop.vim, + src/testdir/test_timers.vim, src/testdir/test_true_false.vim, + src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_vimscript.vim, + src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim, + src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim + +Patch 8.2.1594 +Problem: Pull requests on github do not notify a maintainer. +Solution: Add a CODEOWNERS file with a few initial entries. +Files: Filelist, .github/CODEOWNERS + +Patch 8.2.1595 +Problem: Cannot easily see what Vim sends to the terminal. +Solution: Write output to the channel log if it contains terminal control + sequences. Avoid warnings for tputs() argument. +Files: src/term.c, src/globals.h, src/edit.c, src/normal.c, + src/optionstr.c + +Patch 8.2.1596 +Problem: Using win_screenpos('.') in tests works but is wrong. +Solution: Use win_screenpos(0). +Files: src/testdir/test_terminal3.vim + +Patch 8.2.1597 +Problem: The channel source file is too big. +Solution: Move job related code to a new source file. +Files: Filelist, src/Makefile, src/Make_mvc.mak, src/Make_cyg_ming.mak, + src/channel.c, src/proto/channel.pro, src/job.c, + src/proto/job.pro, src/proto.h, src/edit.c, src/proto/edit.pro, + src/globals.h, src/configure.ac, src/auto/configure + +Patch 8.2.1598 +Problem: Starting a hidden terminal resizes the current window. +Solution: Do not resize the current window for a hidden terminal. + (closes #6872) +Files: src/terminal.c, src/testdir/test_terminal2.vim + +Patch 8.2.1599 +Problem: Missing line end when skipping a long line with :cgetfile. +Solution: Fix off-by-one error. (closes #6870) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1600 +Problem: Vim9: cannot use "true" with deepcopy(). +Solution: Use tv_get_bool_chk(). (closes #6867) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim, + src/testdir/test_listdict.vim + +Patch 8.2.1601 +Problem: Vim9: cannot use "true" with garbagecollect(). +Solution: Use tv_get_bool(). (closes #6871) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1602 +Problem: Vim9: cannot use "true" with getbufinfo(). +Solution: Use dict_get_bool(). (closes #6873) +Files: src/evalbuffer.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1603 +Problem: Vim9: cannot use "true" with getchar(). +Solution: use tv_get_bool_chk(). (closes #6874) +Files: src/getchar.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1604 +Problem: Vim9: cannot use "true" with getcompletion(). +Solution: use tv_get_bool_chk(). (closes #6875) +Files: src/cmdexpand.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1605 +Problem: Default maintainer on github is wrong. +Solution: Use Bram's account. +Files: .github/CODEOWNERS + +Patch 8.2.1606 +Problem: Vim9: cannot use "true" with has(). +Solution: Use tv_get_bool(). (closes #6876) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1607 +Problem: Vim9: getchar() test fails on MS-Windows. +Solution: First consume any available input. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1608 +Problem: Vim9: getchar() test fails with GUI. +Solution: Avoid that getchar(0) gets stuck on K_IGNORE. +Files: src/getchar.c + +Patch 8.2.1609 +Problem: Vim9: test fails when build without +channel. +Solution: Add check for +channel. (closes #6879) +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1610 +Problem: Vim9: cannot pass "true" to list2str() and str2list(). +Solution: Use tv_get_bool_chk(). (closes #6877) +Files: src/evalfunc.c, src/list.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1611 +Problem: Vim9: cannot pass "true" to nr2char(). +Solution: use tv_get_bool_chk(). (closes #6878) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1612 +Problem: Vim9: cannot pass "true" to prop_remove(). +Solution: Use dict_get_bool(). (closes #6853) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.1613 +Problem: Vim9: cannot pass "true" to prop_type_add(). +Solution: Use tv_get_bool(). (closes #6850) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.1614 +Problem: Vim9: cannot pass "true" to searchcount(). +Solution: Use tv_get_bool_chk(). (closes #6854) +Files: src/search.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1615 +Problem: Vim9: cannot pass "true" to searchdecl(). +Solution: use tv_get_bool_chk(). (closes #6881) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1616 +Problem: Vim9: cannot pass "true" to synID(). +Solution: Use tv_get_bool_chk(). (closes #6860) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1617 +Problem: Vim9: cannot pass "true" to win_splitmove(). +Solution: Use dict_get_bool(). (closes #6862) Alphabetize test functions. +Files: src/evalwindow.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1618 +Problem: Vim9: cannot pass "true" to setloclist(). +Solution: Use dict_get_bool(). (closes #6882) +Files: src/quickfix.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1619 +Problem: Vim9: cannot pass "true" to spellsuggest(). +Solution: Use tv_get_bool_chk(). (closes #6883) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1620 +Problem: searchcount() test fails. +Solution: Restore default flag value. +Files: src/search.c + +Patch 8.2.1621 +Problem: Crash when using submatch(0, 1) in substitute(). +Solution: Increment reference count. (closes #6887) +Files: src/regexp.c, src/testdir/test_substitute.vim + +Patch 8.2.1622 +Problem: Loop to handle keys for the command line is too long. +Solution: Move code to functions. (Yegappan Lakshmanan, closes #6880) +Files: src/ex_getln.c + +Patch 8.2.1623 +Problem: Vim9: using :call where it is not needed. +Solution: Remove :call. (closes #6892) +Files: src/testdir/test_maparg.vim, src/testdir/test_textprop.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1624 +Problem: Vim9: cannot pass "true" to split(), str2nr() and strchars(). +Solution: Use tv_get_bool_chk(). (closes #6884, closes #6885, closes #6886) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1625 +Problem: Compiler warning for use of fptr_T. +Solution: Make the type less strict. +Files: src/regexp.c + +Patch 8.2.1626 +Problem: Test for strchars() fails with different error number. +Solution: Adjust the error number. +Files: src/testdir/test_utf8.vim + +Patch 8.2.1627 +Problem: Vim9: cannot pass "true" to submatch(), term_gettty() and + term_start() +Solution: Use tv_get_bool_chk(). (closes #6888, closes #6890, closes #6889) +Files: src/evalfunc.c, src/terminal.c, src/job.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.1628 +Problem: Vim9: cannot pass "true" to timer_paused(). +Solution: Use tv_get_bool(). (closes #6891) +Files: src/time.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1629 +Problem: Test fails without terminal feature. +Solution: Check for terminal feature. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1630 +Problem: Terminal test fails. +Solution: Correct argument to term_start(). Correct error number. +Files: src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim + +Patch 8.2.1631 +Problem: test_fails() does not check the context of the line number. +Solution: Use another argument to specify the context of the line number. +Files: runtime/doc/testing.txt, runtime/doc/eval.txt, + src/testdir/test_vim9_func.vim, src/testing.c, src/globals.h, + src/evalfunc.c, src/message.c + +Patch 8.2.1632 +Problem: Not checking the context of test_fails(). +Solution: Add the line number and context arguments. Give error if + assert_fails() argument types are wrong. +Files: src/testing.c, src/errors.h, src/testdir/test_assert.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1633 +Problem: Some error messages are internal but do not use iemsg(). +Solution: Use iemsg(). (Dominique Pellé, closes #6894) +Files: src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c + +Patch 8.2.1634 +Problem: Loop to handle keys for the command line is too long. +Solution: Move a few more parts to separate functions. (Yegappan Lakshmanan, + closes #6895) +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.1635 +Problem: No digraph for 0x2022 BULLET. +Solution: Use "oo". (Hans Ginzel, closes #6904) +Files: src/digraph.c, runtime/doc/digraph.txt + +Patch 8.2.1636 +Problem: Get stuck if a popup filter causes an error. +Solution: Check whether the function can be called and does not cause an + error. (closes #6902) +Files: src/structs.h, src/popupwin.c, src/testdir/test_popupwin.vim + src/testdir/dumps/Test_popupwin_wrong_name.dump, + src/testdir/dumps/Test_popupwin_three_errors_1.dump, + src/testdir/dumps/Test_popupwin_three_errors_2.dump + +Patch 8.2.1637 +Problem: Vim9: :put ={expr} does not work inside :def function. +Solution: Add ISN_PUT. (closes #6397) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/register.c, + src/proto/register.pro, src/edit.c, src/ex_docmd.c, src/mouse.c, + src/normal.c, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1638 +Problem: Leaking memory when popup filter function can't be called. +Solution: Don't return too soon. +Files: src/popupwin.c + +Patch 8.2.1639 +Problem: Options window cannot be translated. +Solution: Get the translation for "local to" texts once and use them in many + places. Fix that 'whichwrap' is not a local option. (issue #6800) +Files: runtime/optwin.vim + +Patch 8.2.1640 +Problem: Amiga: missing header for getgrgid(). +Solution: Add the grp.h header. (Ola Söder, closes #6906) +Files: src/os_amiga.h + +Patch 8.2.1641 +Problem: Vim9: cannot use 0 or 1 where a bool is expected. +Solution: Allow using 0 and 1 for a bool type. (closes #6903) +Files: src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro, + src/structs.h, src/testdir/test_vim9_script.vim + +Patch 8.2.1642 +Problem: Options test fails. +Solution: Correct call to OptionG(). +Files: runtime/optwin.vim + +Patch 8.2.1643 +Problem: Vim9: :defcompile compiles dead functions. +Solution: Skip over dead functions. +Files: src/userfunc.c + +Patch 8.2.1644 +Problem: Vim9: cannot assign 1 and 0 to bool at script level. +Solution: Add the TTFLAG_BOOL_OK flag to the type. Fix name of test + function. +Files: src/vim9type.c, src/testdir/test_vim9_script.vim, + src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.1645 +Problem: GTK3: icons become broken images when resized. +Solution: Use gtk_image_new_from_icon_name(). (closes #6916) + Fix compiler warnings. +Files: src/gui_gtk_x11.c + +Patch 8.2.1646 +Problem: Amiga: Unnecessary #include. +Solution: Remove the #include. (Ola Söder, closes #6908) +Files: src/version.c + +Patch 8.2.1647 +Problem: Vim9: result of expression with && and || cannot be assigned to a + bool variable. +Solution: Add the TTFLAG_BOOL_OK flag and convert the value if needed. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1648 +Problem: Amiga: no common build file for Amiga (-like) systems. +Solution: Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes #6805) +Files: Filelist, src/Make_ami.mak, src/Make_morph.mak, src/INSTALLami.txt + +Patch 8.2.1649 +Problem: GTK3: using old file chooser. +Solution: Use native file chooser on GTK 3.20 and above. (Yogeshwar + Velingker, closes #6909) +Files: src/gui_gtk.c + +Patch 8.2.1650 +Problem: Vim9: result of && and || expression cannot be assigned to a bool + at the script level. +Solution: Add the VAR_BOOL_OK flag. Convert to bool when needed. +Files: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, + src/vim9script.c, src/evalvars.c, src/eval.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1651 +Problem: Spellfile code not completely tested. +Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6918) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.1652 +Problem: Cannot translate lines in the options window. +Solution: Use the AddOption() function to split descriptions where indicated + by a line break. (issue #6800) +Files: runtime/optwin.vim + +Patch 8.2.1653 +Problem: Expand('<stack>') does not include the final line number. +Solution: Add the line number. (closes #6927) +Files: src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro, + src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, + src/testing.c, src/testdir/test_expand_func.vim + +Patch 8.2.1654 +Problem: When job writes to hidden buffer current window has display + errors. (Johnny McArthur) +Solution: Use aucmd_prepbuf() instead of switch_to_win_for_buf(). + (closes #6925) +Files: src/channel.c + +Patch 8.2.1655 +Problem: Cannot build with Strawberry Perl 5.32.0. +Solution: Use Perl_sv_2pvbyte_flags. (closes #6921) +Files: src/if_perl.xs + +Patch 8.2.1656 +Problem: Vim9: callstack wrong if :def function calls :def function. +Solution: Set the line number before calling. (closes #6914) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1657 +Problem: Vim9: no proper error for nested ":def!". +Solution: Check for "!". (closes #6920) +Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1658 +Problem: Expand('<stack>') has trailing "..". +Solution: Remove the "..". (closes #6927) +Files: src/scriptfile.c, src/testdir/test_expand_func.vim + +Patch 8.2.1659 +Problem: Spellfile code not completely tested. +Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #6929) +Files: src/testdir/test_spell.vim, src/testdir/test_spellfile.vim + +Patch 8.2.1660 +Problem: Assert functions require passing expected result as the first + argument, which isn't obvious. +Solution: Use a method, as in "runtest()->assert_equal(expected)". +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1661 +Problem: Cannot connect to 127.0.0.1 for host with only IPv6 addresses. +Solution: pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger, + closes #6931) +Files: src/channel.c + +Patch 8.2.1662 +Problem: :mksession does not restore shared terminal buffer properly. +Solution: Keep a hashtab with terminal buffers. (Rob Pilling, closes #6930) +Files: src/hashtab.c, src/proto/terminal.pro, src/session.c, + src/terminal.c, src/testdir/test_mksession.vim + +Patch 8.2.1663 +Problem: Options window entries cannot be translated. +Solution: Use AddOption() for all explanations. (closes #6800) +Files: runtime/optwin.vim + +Patch 8.2.1664 +Problem: Memory leak when using :mkview with a terminal buffer. +Solution: Don't use a hastab for :mkview. (Rob Pilling, closes #6935) +Files: src/session.c, src/terminal.c, src/testdir/test_mksession.vim + +Patch 8.2.1665 +Problem: Cannot do fuzzy string matching. +Solution: Add matchfuzzy(). (Yegappan Lakshmanan, closes #6932) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/proto/search.pro, src/search.c, src/testdir/test_functions.vim + +Patch 8.2.1666 +Problem: The initial value of 'backupskip' can have duplicate items. +Solution: Remove duplicates, like when it is set later. (Tom Ryder, + closes #6940) +Files: src/option.c, src/testdir/test_options.vim + +Patch 8.2.1667 +Problem: Local function name cannot shadow a global function name. +Solution: Ignore global functions when checking a script-local or scoped + function name. (closes #6926) +Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.1668 +Problem: Vim9: not accepting 0 or 1 as bool when type is any. +Solution: Convert the type with the CHECKTYPE instruction. (closes #6913) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1669 +Problem: Vim9: memory leak when storing a value fails. +Solution: Free the value when not storing it. +Files: src/evalvars.c + +Patch 8.2.1670 +Problem: A couple of gcc compiler warnings. +Solution: Initialize local variables. (Dominique Pellé, closes #6944) +Files: src/memline.c, src/option.c + +Patch 8.2.1671 +Problem: Vim9: stray error for missing white space. +Solution: Do not skip over white space after member. (closes #6917) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1672 +Problem: v_lock is used when it is not initialized. (Yegappan Lakshmanan) +Solution: Initialize the typval in eval1(). +Files: src/eval.c + +Patch 8.2.1673 +Problem: complete_info() selected index has an invalid value. (Ben Jackson) +Solution: Set the index when there is only one match. (closes #6945) + Add test for complete_info(). +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.1674 +Problem: Vim9: internal error when using variable that was not set. +Solution: Give a meaningful error. (closes #6937) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1675 +Problem: MinGW: testdir makefile deletes non-existing file. +Solution: Use another way to delete the output file if it already exists. + (Michael Soyka) +Files: src/testdir/Make_ming.mak + +Patch 8.2.1676 +Problem: Compiler warnings for function typecast. +Solution: Add an intermediate cast to "void *". +Files: src/os_unix.c + +Patch 8.2.1677 +Problem: Memory access errors when calling setloclist() in an autocommand. +Solution: Give an error if the list was changed unexpectedly. (closes #6946) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1678 +Problem: Crash when using ":set" after ":ownsyntax". (Dhiraj Mishra) +Solution: Make sure 'spelloptions' is not NULL. (closes #6950) +Files: src/syntax.c, src/testdir/test_syntax.vim + +Patch 8.2.1679 +Problem: Vim9: ":*" is not recognized as a range. +Solution: Move recognizing "*" into skip_range(). (closes #6938) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c, + src/ex_getln.c, src/userfunc.c, src/vim9compile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.1680 +Problem: Vim9: line number for compare error is wrong. +Solution: Set SOURCING_LNUM. (closes #6936) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1681 +Problem: Vim9: unnecessary :call commands in tests. +Solution: Remove the commands. (issue #6936) +Files: src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1682 +Problem: Vim9: const works in an unexpected way. +Solution: ":const" only disallows changing the variable, not the value. + Make "list[0] = 9" work at the script level. +Files: src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1683 +Problem: Vim9: assignment test fails. +Solution: Include changes to find Ex command. +Files: src/ex_docmd.c + +Patch 8.2.1684 +Problem: "gF" does not use line number after file in Visual mode. +Solution: Look for ":123" after the Visual area. (closes #6952) +Files: src/findfile.c, src/testdir/test_gf.vim + +Patch 8.2.1685 +Problem: Vim9: cannot declare a constant value. +Solution: Introduce ":const!". +Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/vim9compile.c, + src/vim9.h, src/vim9execute.c, src/evalvars.c, + src/proto/evalvars.pro, src/errors.h, src/vim.h, src/eval.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1686 +Problem: Vim9: "const!" not sufficiently tested. +Solution: Add a few more test cases. Fix type checking. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1687 +Problem: Vim9: out of bounds error. +Solution: Check that cmdidx is not negative. +Files: src/vim9compile.c + +Patch 8.2.1688 +Problem: Increment/decrement removes text property. +Solution: Insert the new number before deleting the old one. (closes #6962) +Files: src/ops.c, src/testdir/test_textprop.vim + +Patch 8.2.1689 +Problem: 'colorcolumn' doesn't show in indent. +Solution: Also draw the column when draw_state is WL_BRI or WL_SBR. + (Alexey Demin, closes #6948, closes #6619) +Files: src/drawline.c, src/testdir/dumps/Test_colorcolumn_2.dump, + src/testdir/dumps/Test_colorcolumn_3.dump, + src/testdir/test_highlight.vim + +Patch 8.2.1690 +Problem: Text properties not adjusted for "I" in Visual block mode. +Solution: Call inserted_bytes(). (closes #6961) +Files: src/ops.c, src/change.c, src/proto/change.pro, + src/testdir/test_textprop.vim + +Patch 8.2.1691 +Problem: Vim9: list<any> is not accepted where list<number> is expected. +Solution: Add functions to allocate and free a type_T, use it in + ISN_CHECKTYPE. (closes #6959) +Files: src/vim9.h, src/globals.h, src/vim9compile.c, src/vim9execute.c, + src/vim9type.c, src/proto/vim9type.pro, src/errors.h, + src/evalfunc.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1692 +Problem: Build fails because TTFLAG_STATIC is missing. +Solution: Include missing change. +Files: src/structs.h + +Patch 8.2.1693 +Problem: "hi def" does not work for cleared highlight. +Solution: Check the "sg_cleared" flag. (Maxim Kim, closes #6956, + closes #4405) +Files: src/highlight.c, src/testdir/test_highlight.vim + +Patch 8.2.1694 +Problem: Compiler warning for loss if data. +Solution: Add typecast. +Files: src/ops.c + +Patch 8.2.1695 +Problem: Vim9: crash when using varargs type "any". +Solution: Check if uf_va_type is &t_any. (closes #6957) +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.1696 +Problem: Unused (duplicate) macros. +Solution: Remove the macros. +Files: src/spell.c + +Patch 8.2.1697 +Problem: Inconsistent capitalization of error messages. +Solution: Always start with a capital. +Files: src/errors.h, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim, + src/testdir/test_assert.vim + +Patch 8.2.1698 +Problem: Cannot lock a variable in legacy Vim script like in Vim9. +Solution: Make ":lockvar 0" work. +Files: runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro, + src/dict.c, src/eval.c, src/list.c, src/typval.c, src/userfunc.c, + src/testdir/test_const.vim, src/testdir/test_listdict.vim + +Patch 8.2.1699 +Problem: Build failure due to missing error message. +Solution: Add error message. +Files: src/errors.h + +Patch 8.2.1700 +Problem: Vim9: try/catch causes wrong value to be returned. +Solution: Reset tcd_return. (closes #6964) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1701 +Problem: Vim9: sort("i") does not work. +Solution: Don't try getting a number for a string argument. (closes #6958) +Files: src/list.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1702 +Problem: Crash when using undo after deleting folded lines. +Solution: Check for NULL pointer. (closes #6968) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.1703 +Problem: ":highlight clear" does not restore default link. +Solution: Remember the default link and restore it. (Antony Scriven, + closes #6970, closes #4405) +Files: runtime/doc/syntax.txt, src/highlight.c, + src/testdir/test_highlight.vim + +Patch 8.2.1704 +Problem: Vim9: crash in for loop when autoload script has an error. +Solution: Reset suppress_errthrow. Check for NULL list. (closes #6967) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1705 +Problem: "verbose hi Name" reports incorrect info after ":hi clear". +Solution: Store the script context. (Antony Scriven, closes #6975) +Files: src/highlight.c, src/testdir/test_highlight.vim + +Patch 8.2.1706 +Problem: Vim9: crash after running into the "Multiple closures" error. +Solution: When a function fails still update any closures. (closes #6973) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1707 +Problem: Small inconsistency in highlight test. +Solution: Use one argument for :execute. (Antony Scriven, #6975) +Files: src/testdir/test_highlight.vim + +Patch 8.2.1708 +Problem: Vim9: error message for function has unprintable characters. +Solution: use printable_func_name(). (closes #6965) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1709 +Problem: Vim9: memory leak when using multiple closures. +Solution: Free the partial. +Files: src/vim9execute.c + +Patch 8.2.1710 +Problem: Vim9: list of list type can be wrong. +Solution: Use VAR_UNKNOWN for empty list. Recognize VAR_UNKNOWN when + looking for a common type. (closes #6979) +Files: src/vim9type.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1711 +Problem: Vim9: leaking memory when using partial. +Solution: Do delete the function even when it was compiled. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/vim9execute.c + +Patch 8.2.1712 +Problem: Vim9: leaking memory when calling a lambda. +Solution: Decrement function reference from ISN_DCALL. +Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro + +Patch 8.2.1713 +Problem: Motif GUI: crash when setting menu colors. (Andrzej Bylicki) +Solution: Add {} to make "n" incremented correctly. (closes #6989, + closes #5948) +Files: src/gui_motif.c + +Patch 8.2.1714 +Problem: Text properties corrupted with substitute command. (Filipe + Brandenburger) +Solution: Get the changed line again after using u_savesub(). (closes #6984) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.1715 +Problem: Motif GUI: commented out code missed {}. +Solution: Add {} and reenable the code. (similar to #6989) +Files: src/gui_motif.c + +Patch 8.2.1716 +Problem: Options window has duplicate translations. +Solution: Make one entry for "global or local to buffer". Fix wrong text. + (closes #6983) +Files: runtime/optwin.vim + +Patch 8.2.1717 +Problem: MS-Windows installer doesn't have Russian translations. +Solution: Add Russian translations. (closes #6985) +Files: nsis/gvim.nsi, nsis/lang/russian.nsi + +Patch 8.2.1718 +Problem: Vim9: :def function disallows "firstline" and "lastline" argument + names for no good reason. +Solution: Don't check the arguments for a :def function. (closes #6986) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1719 +Problem: Vim9: no error if comma is missing in between arguments. +Solution: Give an error message. +Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1720 +Problem: Vim9: memory leak with heredoc that isn't executed. (Dominique + Pellé) +Solution: Don't clear the list items. (closes #6991) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1721 +Problem: MS-Windows installer doesn't work. +Solution: Write "Russian" in ASCII. (closes #6995, see #6985). +Files: nsis/lang/russian.nsi + +Patch 8.2.1722 +Problem: Vim9: cannot assign a lambda to a variable of type function. +Solution: Allow for assigning a partial to a variable of type function. + (Naruhiko Nishino, closes #6996) +Files: src/vim9type.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1723 +Problem: Vim9: Variable argument name cannot start with underscore. +Solution: Use eval_isnamec1(). (closes #6988) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1724 +Problem: Vim9: assignment tests spread out. +Solution: Create new test file for assignment tests. +Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, + src/testdir/Make_all.mak + +Patch 8.2.1725 +Problem: Not all Pascal files are recognized. +Solution: Add filetype patterns. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1726 +Problem: Fuzzy matching only works on strings. +Solution: Support passing a dict. Add matchfuzzypos() to also get the match + positions. (Yegappan Lakshmanan, closes #6947) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/proto/search.pro, src/search.c, src/testdir/Make_all.mak, + src/testdir/test_functions.vim, src/testdir/test_matchfuzzy.vim + +Patch 8.2.1727 +Problem: A popup created with "cursorline" will ignore "firstline". +Solution: When both "cursorline" and "firstline" are present put the cursor + on "firstline". (closes #7000) Add the "winid" argument to + getcurpos(). +Files: runtime/doc/eval.txt, src/evalfunc.c, src/popupwin.c, + src/evalwindow.c, src/testdir/test_popupwin.vim, + src/testdir/test_functions.vim + +Patch 8.2.1728 +Problem: Compiler warning for using uninitialized variable. (John Marriott) +Solution: Initialize "neighbor". +Files: src/search.c + +Patch 8.2.1729 +Problem: Endless loop when ":normal" feeds popup window filter. +Solution: Add the ex_normal_busy_done flag. +Files: src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c, + src/menu.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_normal_cmd.dump + +Patch 8.2.1730 +Problem: Vim9: cannot use member of unknown type. +Solution: When type is unknown use "any". (closes #6997) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1731 +Problem: Vim9: cannot use += to append to empty NULL list. +Solution: Copy the list instead of extending it. (closes #6998) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1732 +Problem: Stuck when win_execute() for a popup causes an error. +Solution: Disable the filter callback on error. (issue #6999) +Files: src/popupwin.c, src/testdir/term_util.vim, + src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_win_execute.dump + +Patch 8.2.1733 +Problem: Vim9: memory leaks when using nested function. +Solution: Free function when compilation fails. +Files: src/vim9compile.c + +Patch 8.2.1734 +Problem: Vim9: cannot use a funcref for a closure twice. +Solution: Instead of putting the funcref on the stack use a growarray on the + execution context. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1735 +Problem: Github actions appear to timeout too soon. +Solution: use "timeout" instead of "ping". +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1736 +Problem: Failure to compile a pattern not tested much. +Solution: Add tests where a pattern fails to compile. (Yegappan Lakshmanan, + closes #7004) +Files: src/testdir/gen_opt_test.vim, src/testdir/test_arglist.vim, + src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim, + src/testdir/test_checkpath.vim, src/testdir/test_cmdline.vim, + src/testdir/test_debugger.vim, src/testdir/test_functions.vim, + src/testdir/test_history.vim, src/testdir/test_listdict.vim, + src/testdir/test_options.vim, src/testdir/test_search_stat.vim, + src/testdir/test_sort.vim, src/testdir/test_substitute.vim, + src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim, + src/testdir/test_user_func.vim + +Patch 8.2.1737 +Problem: Cursor line highlight in popup window is not always updated. +Solution: Check if the cursor has moved. (closes #7010) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump + +Patch 8.2.1738 +Problem: Mac: str2float() recognizes comma instead of decimal point. +Solution: Set LC_NUMERIC to "C". (closes #7003) +Files: src/os_mac_conv.c + +Patch 8.2.1739 +Problem: Vim9: crash when compiling a manually defined function. (Antony + Scriven) +Solution: Check that the script ID is positive. (closes #7012) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1740 +Problem: Test fails without the terminal feature. +Solution: Skip test if the terminal feature is not available. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1741 +Problem: pathshorten() only supports using one character. +Solution: Add an argument to control the length. (closes #7006) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/filepath.c, + src/proto/filepath.pro, src/testdir/test_functions.vim + +Patch 8.2.1742 +Problem: Test still fails without the terminal feature. +Solution: Put check for terminal feature in separate function. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.1743 +Problem: Cannot build without the eval feature. +Solution: Move shorten_dir outside of #ifdef. +Files: src/filepath.c + +Patch 8.2.1744 +Problem: Vim9: using ":const!" is weird. +Solution: Use "var" - "final" - "const" like Dart. "let" still works for + now. +Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/errors.h, src/evalvars.c, + src/proto/evalvars.pro, src/cmdexpand.c, src/eval.c, + src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, + src/vim9script.c, src/vim.h, src/ex_cmdidxs.h, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1745 +Problem: Tiny version doesn't build. +Solution: Add dummy ex_var() function. +Files: src/ex_docmd.c + +Patch 8.2.1746 +Problem: Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino) +Solution: Specifically check for "fina". (closes #7020) +Files: src/ex_docmd.c, src/testdir/test_trycatch.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1747 +Problem: Result of expand() unexpectedly depends on 'completeslash'. +Solution: Temporarily reset 'completeslash'. (Yasuhiro Matsumoto, + closes #7021) +Files: src/evalfunc.c, src/testdir/test_ins_complete.vim + +Patch 8.2.1748 +Problem: Closing split window in other tab may cause a crash. +Solution: Set tp_curwin properly. (Rob Pilling, closes #7018) +Files: src/window.c, src/testdir/test_winbuf_close.vim + +Patch 8.2.1749 +Problem: Vim9: crash when closure fails in nested function. +Solution: Handle function returns before dereferencing remaining closures. + (closes #7008) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1750 +Problem: Setting firstline with popup_setoptions() fails if cursorline is + set. +Solution: Use apply_options(). Update the popup before applying "zz". + (closes #7010) +Files: src/popupwin.c, src/proto/popupwin.pro, src/move.c, + src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump, + src/testdir/dumps/Test_popupwin_set_firstline_1.dump, + src/testdir/dumps/Test_popupwin_set_firstline_2.dump + +Patch 8.2.1751 +Problem: Using 2 where bool is expected may throw an error. +Solution: Make this backwards compatible. +Files: src/typval.c, src/evalfunc.c, src/testdir/test_search.vim, + src/testdir/test_terminal2.vim + +Patch 8.2.1752 +Problem: GTK GUI: cannot map alt-? with <A-?>. (Ingo Karkat) +Solution: Adjust the characters for which the shift modifier is removed. + (closes #7016) Make Motif and Win32 use the same function as GTK. +Files: src/misc2.c, src/gui_x11.c, src/gui_w32.c, + src/testdir/test_termcodes.vim + +Patch 8.2.1753 +Problem: Vim9: crash when using import at script level. +Solution: Give a "not implemented yet" error. (closes #7026) +Files: src/evalvars.c + +Patch 8.2.1754 +Problem: Completion with spell checking not tested. +Solution: Add a test case. (Dominique Pellé, closes #7024) +Files: src/testdir/test_spell.vim + +Patch 8.2.1755 +Problem: Vim9: crash when using invalid heredoc marker. (Dhiraj Mishra) +Solution: Check for NULL list. (closes #7027) Fix comment character. +Files: src/vim9compile.c, src/evalvars.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.1756 +Problem: Vim9: :let will soon be disallowed. +Solution: Add v:disallow_let temporarily. Fix tests. +Files: src/vim.h, src/errors.h, src/evalvars.c, src/vim9compile.c, + src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1757 +Problem: Mac: default locale is lacking the encoding. +Solution: Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022) +Files: src/os_mac_conv.c, src/testdir/test_environ.vim + +Patch 8.2.1758 +Problem: Vim9: type of unmaterialized list is wrong. +Solution: Use list<number>. +Files: src/vim9type.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1759 +Problem: Vim9: Some tests are still using :let. +Solution: Change more declarations to use :var. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1760 +Problem: Vim9: crash when end marker is missing. (Dhiraj Mishra) +Solution: Check for end of function lines. (closes #7031) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1761 +Problem: Vim9: Some tests are still using :let. +Solution: Change more declarations to use :var. +Files: src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1762 +Problem: When a timer uses :stopinsert Insert mode completion isn't + stopped. (Stanley Chan) +Solution: Call ins_compl_prep(ESC). +Files: src/edit.c, src/testdir/test_ins_complete.vim, + src/testdir/dumps/Test_pum_stopped_by_timer.dump + +Patch 8.2.1763 +Problem: Vim9: cannot use "true" for popup window scrollbar option. +Solution: use dict_get_bool(). (closes #7029) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.1764 +Problem: Vim9: no error when assigning to script var with wrong type. +Solution: Fix off-by-one error. (closes #7028) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1765 +Problem: Vim9: some tests use "var var". +Solution: Use "var name". (closes #7032) +Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.1766 +Problem: Vim9: Some tests are still using :let. +Solution: Change the last few declarations to use :var. +Files: src/testdir/runtest.vim, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_maparg.vim, + src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim + +Patch 8.2.1767 +Problem: Vim9: test fails with python support. +Solution: Use "let" in legacy function. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1768 +Problem: Cannot use the help menu from a terminal window. +Solution: Add ":tlnoremenu" commands. (Yee Cheng Chin, closes #7023) +Files: runtime/menu.vim, src/testdir/test_gui.vim + +Patch 8.2.1769 +Problem: A popup filter interferes with using :normal to move the cursor in + a popup. +Solution: Do not invoke the filter when ex_normal_busy is set. +Files: runtime/doc/popup.txt, src/getchar.c, src/evalfunc.c, + src/ex_docmd.c, src/menu.c, src/globals.h, + src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_normal_cmd.dump + +Patch 8.2.1770 +Problem: Invalid memory use when using SpellFileMissing autocmd. +Solution: Add test case. (Dominique Pellé, closes #7036) Fix using a window + that was closed. +Files: src/spell.c, src/testdir/test_spell.vim + +Patch 8.2.1771 +Problem: synIDattr() cannot get the value of ctermul. +Solution: Add the "ul" value for "what". (closes #7037) +Files: runtime/doc/eval.txt, src/highlight.c, src/evalfunc.c, + src/testdir/test_highlight.vim + +Patch 8.2.1772 +Problem: Cannot use CTRL-W <Down> to move out of a terminal window. +Solution: Use special_to_buf() instead of mb_char2bytes(). (closes #7045) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.1773 +Problem: Crash when calling mapset() with a list as first argument. +Solution: Check for NULL. (closes #7040) +Files: src/map.c, src/testdir/test_maparg.vim + +Patch 8.2.1774 +Problem: GTK: hang when forced to exit. +Solution: Do not clean up "mainwin" when really_exiting is set. + (Zdenek Dohnal, closes #7042) +Files: src/gui_gtk_x11.c + +Patch 8.2.1775 +Problem: MS-Windows: adding a long quickfix list is slow. +Solution: Shorten the buffer name only for the first entry. (Yegappan + Lakshmanan, closes #7039, closes #7033) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1776 +Problem: Filetype.vim may be loaded twice. +Solution: Do "syntax on" after "filetype on". (Adam Stankiewicz, + closes #7049) +Files: runtime/defaults.vim + +Patch 8.2.1777 +Problem: Vim9: some assignment tests in the wrong file. +Solution: Move assignment tests to test_vim9_assign. +Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1778 +Problem: Vim9: returning from a partial call clears outer context, causing + a crash. +Solution: Put the outer context in the stack frame. (closes #7044) +Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim + +Patch 8.2.1779 +Problem: Some debian changelog files are not recognized. +Solution: Add */debian/changelog. (Jason Franklin) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1780 +Problem: Statusline not updated when splitting windows. +Solution: Call status_redraw_all(). (Jason Franklin, closes #5496) +Files: src/window.c, src/testdir/test_statusline.vim + +Patch 8.2.1781 +Problem: Writing to prompt buffer interferes with insert mode. +Solution: Use win_enter() instead of just setting "curwin". (Ben Jackson, + closes #7035) +Files: src/autocmd.c, src/testdir/test_prompt_buffer.vim + +Patch 8.2.1782 +Problem: Vim9: cannot pass boolean to mapset(). +Solution: Use get_tv_bool(). (closes #7041) +Files: src/map.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1783 (after 8.2.1781) +Problem: Try-catch test fails. +Solution: Don't call win_enter(), only call entering_window(). +Files: src/autocmd.c, src/window.c, src/proto/window.pro, + src/testdir/runtest.vim + +Patch 8.2.1784 +Problem: commits are not scanned for security problems +Solution: Enable Github code scanning. (Christian Brabandt, closes #7057) +Files: .github/workflows/codeql-analysis.yml + +Patch 8.2.1785 +Problem: Compiler warning for strcpy() out of bounds. (Christian Brabandt) +Solution: use memmove() instead. +Files: src/dict.c + +Patch 8.2.1786 +Problem: Various Normal mode commands not fully tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #7059) +Files: src/testdir/test_normal.vim, src/testdir/test_regexp_utf8.vim, + src/testdir/test_registers.vim, src/testdir/test_spellfile.vim, + src/testdir/test_tagjump.vim, src/testdir/test_visual.vim + +Patch 8.2.1787 +Problem: Crash with 'incsearch' and very long line. +Solution: Check whether regprog becomes NULL. (closes #7063) +Files: src/search.c, src/testdir/test_search.vim + +Patch 8.2.1788 +Problem: Vim9: still allows :let for declarations. +Solution: Make the default for v:disallow_let one. It can still be set to + zero to allow for using :let. +Files: src/evalvars.c, src/testdir/runtest.vim + +Patch 8.2.1789 +Problem: Vim9: crash with invalid list constant. (Dhiraj Mishra) +Solution: Return FAIL when compiling the list fails. (closes #7066) +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.1790 +Problem: MS-Windows with Python: crash when executed from Vifm. +Solution: Use NUL instead of CONIN. (Ken Takata, closes #7061, closes #7053) +Files: src/if_python3.c + +Patch 8.2.1791 +Problem: Vim9: debugger test fails. +Solution: Use "var" instead of "let". +Files: src/testdir/test_debugger.vim + +Patch 8.2.1792 +Problem: Configure does not recognize Racket 6.1+. +Solution: Add a check for "rktio". (closes #7062) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.1793 +Problem: Not consistently giving the "is a directory" warning. +Solution: Adjust check for illegal file name and directory. (Yasuhiro + Matsumoto, closes #7067) +Files: src/fileio.c, src/testdir/test_edit.vim + +Patch 8.2.1794 +Problem: No falsy Coalescing operator. +Solution: Add the "??" operator. Fix mistake with function argument count. +Files: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, + src/vim9type.c, src/testdir/test_expr.vim, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1795 +Problem: Vim9: operators && and || have a confusing result. +Solution: Make the result a boolean. +Files: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, + src/vim9execute.c, src/vim9type.c, src/structs.h, src/vim9.h, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1796 +Problem: Vim9: invalid memory access with weird function name. (Dhiraj + Mishra) +Solution: Check the name is valid. Add a test. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1797 +Problem: Vim9: some parts of the code not tested. +Solution: Add a few tests. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1798 +Problem: Vim9: ternary operator condition is too permissive. +Solution: Use tv_get_bool_chk(). +Files: runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c, + src/vim9execute.c, src/testdir/vim9.vim, + src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.1799 +Problem: Some Normal mode commands not fully tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #7073) +Files: src/testdir/test_gf.vim, src/testdir/test_goto.vim, + src/testdir/test_normal.vim, src/testdir/test_registers.vim, + src/testdir/test_startup.vim, src/testdir/test_tabpage.vim, + src/testdir/test_visual.vim + +Patch 8.2.1800 +Problem: Vim9: memory leak if "if" condition is invalid. +Solution: Free ppconst earlier. +Files: src/vim9compile.c + +Patch 8.2.1801 +Problem: Undo file not found when using ":args" or ":next". +Solution: Handle like editing another file. (closes #7072) +Files: src/ex_cmds.c, src/testdir/test_undo.vim + +Patch 8.2.1802 +Problem: Vim9: crash with unterminated dict. (Dhiraj Mishra) +Solution: Return empty string instead of NULL. (closes #7084) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1803 +Problem: A few failures are not tested. +Solution: Test a few failures. (Dominique Pellé, closes #7075) +Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, + src/testdir/test_json.vim, src/testdir/test_listdict.vim + +Patch 8.2.1804 +Problem: resolve('/') returns an empty string. +Solution: Don't remove single slash. (closes #7074) +Files: src/filepath.c, src/testdir/test_functions.vim + +Patch 8.2.1805 +Problem: Unix: terminal mode changed when using ":shell". +Solution: Avoid calling settmode() when not needed. (issue #7079) +Files: src/os_unix.c + +Patch 8.2.1806 +Problem: MS-Windows with Python: Vim freezes after import command. +Solution: Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro + Matsumoto, closes #7083) +Files: src/if_python3.c + +Patch 8.2.1807 +Problem: Can use :help in a terminal popup window. +Solution: Give an error. (closes #7088) +Files: src/help.c, src/testdir/test_popupwin.vim + +Patch 8.2.1808 +Problem: No test coverage for ":spelldump!". +Solution: Add a test. (Dominique Pellé, closes #7089) +Files: src/testdir/test_spell.vim + +Patch 8.2.1809 +Problem: Mapping some keys with Ctrl does not work properly. +Solution: For terminal, GTK and Motif handle "@", "^" and "_" codes. +Files: src/misc2.c, src/proto/misc2.pro, src/term.c, src/gui_gtk_x11.c, + src/gui_x11.c, src/testdir/test_termcodes.vim + +Patch 8.2.1810 +Problem: Some code in normal.c not covered by tests. +Solution: Add normal mode tests. (Yegappan Lakshmanan, closes #7086) +Files: src/testdir/test_charsearch.vim, src/testdir/test_normal.vim + +Patch 8.2.1811 +Problem: Mapping Ctrl-key does not work for '{', '}' and '|'. +Solution: Remove the shift modifier. (closes #6457) +Files: runtime/doc/map.txt, src/misc2.c, src/testdir/test_termcodes.vim + +Patch 8.2.1812 +Problem: Vim9: nested closure throws an internal error. +Solution: Do not skip a local variable with a partial. (closes #7065) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1813 +Problem: Vim9: can assign wrong type to script dict. (Christian J. Robinson) +Solution: Check the type if known. +Files: src/structs.h, src/eval.c, src/vim9script.c, + src/proto/vim9script.pro, src/proto/evalvars.pro, + src/testdir/test_vim9_script.vim + +Patch 8.2.1814 (after 8.2.1813) +Problem: Missing change to remove "static". +Solution: Add the change. +Files: src/evalvars.c + +Patch 8.2.1815 +Problem: Vim9: memory leak when using function reference. +Solution: Temporarily disable the test. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1816 +Problem: Vim9: another memory leak when using function reference. +Solution: Temporarily disable the tests. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1817 +Problem: Vim9: wrong instruction when reusing a local variable spot. +Solution: Clear a newly allocated local variable. (closes #7080) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1818 +Problem: SE Linux: deprecation warning for security_context_t. +Solution: Use "char *" instead. (James McCoy, closes #7093) +Files: src/os_unix.c + +Patch 8.2.1819 +Problem: Vim9: Memory leak when using a closure. +Solution: Compute the minimal refcount in the funcstack. Reenable disabled + tests. +Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, + src/eval.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1820 +Problem: Vim9: crash when error happens in timer callback. +Solution: Check that current_exception is not NULL. (closes #7100) +Files: src/ex_docmd.c + +Patch 8.2.1821 +Problem: Vim9: concatenating to a NULL list doesn't work. +Solution: Handle a NULL list like an empty list. (closes #7064) +Files: src/list.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1822 (after 8.2.1821) +Problem: List test doesn't fail. +Solution: Adjust the test for NULL list handling. +Files: src/testdir/test_listdict.vim + +Patch 8.2.1823 +Problem: "gN" does not select the matched string. +Solution: Move the cursor to the start of the match. +Files: src/search.c, src/testdir/test_gn.vim + +Patch 8.2.1824 +Problem: Vim9: variables at the script level escape their scope. +Solution: When leaving a scope remove variables declared in it. +Files: src/structs.h, src/ex_eval.c, src/evalvars.c, + src/proto/evalvars.pro, src/testdir/test_vim9_script.vim + +Patch 8.2.1825 +Problem: Vim9: accessing freed memory. +Solution: Clear sv_name when the variable is deleted. +Files: src/ex_eval.c + +Patch 8.2.1826 +Problem: Vim9: cannot use a {} block at script level. +Solution: Recognize a {} block. +Files: src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_eval.c, + src/structs.h, src/proto/ex_eval.pro, src/errors.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.1827 +Problem: Filetype detection does not test enough file names. +Solution: Test more file names. (Adam Stankiewicz, closes #7099) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1828 +Problem: Build failure without the +eval feature. +Solution: Add dummies for ex_block and ex_endblock. +Files: src/ex_docmd.c + +Patch 8.2.1829 +Problem: Warnings when executing Github actions. +Solution: Use another method to set environment variables. (Ken Takata, + closes #7107) +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1830 +Problem: MS-Windows: Python3 issue with stdin. +Solution: Check if stdin is readable. (Ken Takata, closes #7106) +Files: src/if_python3.c + +Patch 8.2.1831 +Problem: File missing from distribution. +Solution: Add the github code analyses file. +Files: Filelist + +Patch 8.2.1832 +Problem: readdirex() error is displayed as a message. (Yegappan Lakshmanan) +Solution: Use semsg() instead of smsg(). +Files: src/fileio.c, src/testdir/test_functions.vim + +Patch 8.2.1833 +Problem: When reading from stdin dup() is called twice. +Solution: Remove the dup() in main.c. (Ken Takata, closes #7110) +Files: src/main.c + +Patch 8.2.1834 +Problem: PyEval_InitThreads() is deprecated in Python 3.9. +Solution: Do not call PyEval_InitThreads in Python 3.9 and later. (Ken + Takata, closes #7113) Avoid warnings for functions. +Files: src/if_python3.c, src/if_py_both.h + +Patch 8.2.1835 +Problem: ":help ??" finds the "!!" tag. +Solution: Do not translate "?" into ".". (Naruhiko Nishino, closes #7114, + closes #7115) +Files: src/help.c, src/testdir/test_help_tagjump.vim + +Patch 8.2.1836 +Problem: Autocmd test fails on pacifist systems. +Solution: Check that /bin/kill exists. (James McCoy, closes #7117) + Tune the timing, make the autocmd test run faster. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.1837 +Problem: Using "gn" after "gN" does not work. +Solution: Extend the other end of the Visual area. (closes #7109) +Files: src/search.c, src/testdir/test_gn.vim + +Patch 8.2.1838 +Problem: Vim9: cannot insert a comment line in an expression. +Solution: Skip comment lines at the script level. (closes #7111) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1839 +Problem: Vim9: memory leaks reported in assign test. +Solution: Move the failing job_start() call to separate test files, it + causes false leak reports. +Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_fails.vim, + src/testdir/Make_all.mak + +Patch 8.2.1840 +Problem: Vim9: error message is not clear about compilation error. +Solution: Say "compiling" instead of "processing". +Files: src/vim9compile.c, src/message.c, src/globals.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.1841 +Problem: Vim9: test for compilation error fails in normal build. +Solution: Invoke CheckRunVimInTerminal in a separate function. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.1842 +Problem: Crash when USE_FNAME_CASE is defined and using :browse. +Solution: Don't use read-only memory for ".". (Yegappan Lakshmanan, + closes #7123) +Files: src/ex_cmds.c, src/ex_docmd.c, src/testdir/test_edit.vim + +Patch 8.2.1843 +Problem: Netbeans: with huge buffer number memory allocation may fail. +Solution: Check for size overflow. +Files: src/netbeans.c + +Patch 8.2.1844 +Problem: Using "q" at the more prompt doesn't stop a long message. +Solution: Check for "got_int". (closes #7122) +Files: src/message.c, src/testdir/test_messages.vim, + src/testdir/dumps/Test_quit_long_message.dump + +Patch 8.2.1845 +Problem: Vim9: function defined in a block can't use variables defined in + that block. +Solution: First step: Make a second hashtab that holds all script variables, + also block-local ones, with more information. +Files: src/structs.h, src/evalvars.c, src/ex_eval.c, src/vim9script.c, + src/proto/vim9script.pro, src/scriptfile.c + +Patch 8.2.1846 +Problem: Vim9: variables declared in a local block are not found in + when a function is compiled. +Solution: Look for script variables in sn_all_vars. +Files: src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro, + src/userfunc.c, src/proto/userfunc.pro, src/ex_eval.c, + src/vim9script.c, src/proto/vim9script.pro, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1847 +Problem: Vim9: using negative value for unsigned type. +Solution: Use zero instead of -1. +Files: src/vim9compile.c + +Patch 8.2.1848 +Problem: Crash when passing a NULL string or list to popup_settext(). +Solution: Check for NULL pointers. (closes #7132) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.1849 +Problem: Vim9: garbage collection frees block-local variables. +Solution: Mark all script variables as used. +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1850 +Problem: "vat" does not select tags correctly over line break. +Solution: Adjust the search pattern. (Aufar Gilbran, closes #7136) +Files: src/textobject.c, src/testdir/test_textobjects.vim + +Patch 8.2.1851 +Problem: Vim9: "!" followed by space incorrectly used. +Solution: Skip over trailing spaces. (closes #7131) +Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1852 +Problem: map() returning zero for NULL list is unexpected. +Solution: Return the empty list. (closes #7133) +Files: src/list.c, src/testdir/test_filter_map.vim, + src/testdir/test_blob.vim + +Patch 8.2.1853 +Problem: "to_f" is recognized at "topleft" modifier. +Solution: Do not recognize modifier when "_" follows. (closes #7019) +Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1854 +Problem: Vim9: crash when throwing exception for NULL string. (Dhiraj + Mishra) +Solution: Handle NULL string like empty string. (closes #7139) +Files: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_script.vim + +Patch 8.2.1855 +Problem: Vim9: get error message when nothing is wrong. +Solution: Check called_emsg instead of did_emsg. (closes #7143) +Files: src/vim9compile.c, src/vim9execute.c, src/errors.h + +Patch 8.2.1856 +Problem: "2resize" uses size of current window. (Daniel Steinberg) +Solution: Use size of resized window. (Yasuhiro Matsumoto, closes #7152) +Files: src/ex_docmd.c, src/testdir/test_window_cmd.vim + +Patch 8.2.1857 +Problem: Vim9: using job_status() on an unused var gives an error. +Solution: Return "fail". (closes #7158) +Files: src/job.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1858 +Problem: Vim9: filter functions return number instead of bool. +Solution: Return v:true instead of one. (closes #7144) +Files: src/popupwin.c, src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1859 +Problem: Vim9: crash in unpack assignment. +Solution: Make sure an error message is turned into an exception. + (closes #7159) +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.1860 +Problem: Vim9: memory leak when throwing empty string. +Solution: Free the empty string. +Files: src/vim9execute.c + +Patch 8.2.1861 +Problem: Vim9: no specific error when parsing lambda fails. +Solution: Also give syntax errors when not evaluating. (closes #7154) +Files: src/dict.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1862 +Problem: vim9: memory leak when compiling lambda fails. +Solution: Call clear_evalarg(). +Files: src/vim9compile.c + +Patch 8.2.1863 +Problem: Json code not sufficiently tested. +Solution: Add more test cases. (Dominique Pellé, closes #7166) +Files: src/testdir/test_json.vim + +Patch 8.2.1864 +Problem: Vim9: no error for wrong list type. +Solution: Add flag to indicate a constant. (closes #7160) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.1865 +Problem: Vim9: add() does not check type of argument. +Solution: Inline the add() call. (closes #7160) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1866 +Problem: Vim9: appending to pushed blob gives wrong result. +Solution: Set ga_maxlen when copying a blob. +Files: src/blob.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1867 +Problem: Vim9: argument to add() not checked for blob. +Solution: Add the BLOBAPPEND instruction. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1868 +Problem: Vim9: no error for missing space after comma in dict. +Solution: Check for white space. (closes #6672) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1869 +Problem: Vim9: memory leak when using add(). +Solution: Free the added item. +Files: src/vim9execute.c + +Patch 8.2.1870 +Problem: Vim9: no need to keep all script variables. +Solution: Only keep script variables when a function was defined that could + use them. Fix freeing static string on exit. +Files: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, + src/ex_eval.c, src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.1871 +Problem: Using %v in 'errorformat' may fail before %Z. +Solution: Set qf_viscol only when qf_col is set. (closes #7169) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1872 +Problem: Matchfuzzy() does not prefer sequential matches. +Solution: Give sequential matches a higher bonus. (Christian Brabandt, + closes #7140) +Files: src/search.c, src/testdir/test_matchfuzzy.vim + +Patch 8.2.1873 +Problem: Vim9: missing white space when using <f-args>. +Solution: Add spaces. (Christian J. Robinson) +Files: src/usercmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1874 +Problem: Can't do something just before leaving Insert mode. +Solution: Add the InsertLeavePre autocommand event. (closes #7177) +Files: runtime/doc/autocmd.txt, src/edit.c, src/vim.h, + src/autocmd.c, src/testdir/test_edit.vim + +Patch 8.2.1875 +Problem: Warning when building GTK gui. +Solution: Add missing function parameter. +Files: src/gui_gtk_f.c + +Patch 8.2.1876 +Problem: Vim9: argument types for builtin functions are not checked at + compile time. +Solution: Add an argument type checking mechanism. Implement type checks for + one function. +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/Make_all.mak + +Patch 8.2.1877 (after 8.2.1876) +Problem: Test for function list fails. +Solution: Move "obsolete" comments one line up. +Files: src/evalfunc.c + +Patch 8.2.1878 +Problem: GTK: error for redefining function. (Tony Mechelynck) +Solution: Remove "gtk_" prefix from local functions and prepend "gui_" to + global functions. +Files: src/gui_gtk_f.c, src/gui_gtk_f.h, src/gui_gtk.c, src/gui_gtk_x11.c + +Patch 8.2.1879 +Problem: Vim9: argument types of insert() not checked when compiling. +Solution: Add argument type checks for insert(). +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.1880 +Problem: Vim9: Asan complains about adding zero to NULL. +Solution: Check for argument count first. +Files: src/vim9compile.c + +Patch 8.2.1881 +Problem: Cannot build with GTK3. +Solution: Adjust form functions. +Files: src/gui_gtk_f.c + +Patch 8.2.1882 +Problem: Vim9: v:disallow_let is no longer needed. +Solution: Remove v:disallow_let. +Files: src/evalvars.c, src/vim.h, src/vim9compile.c + +Patch 8.2.1883 +Problem: Compiler warnings when using Python. +Solution: Adjust PyCFunction to also have the second argument. Use "int" + return type for some functions. Insert "(void *)" to get rid of + the remaining warnings. +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 8.2.1884 +Problem: Compiler warning for uninitialized variable. (John Marriott) +Solution: Initialize with NULL. +Files: src/vim9compile.c, src/evalfunc.c + +Patch 8.2.1885 +Problem: Filetype tests unnecessarily creates swap files. +Solution: Disable 'swapfile'. (Ken Takata, closes #7183) +Files: src/testdir/test_filetype.vim + +Patch 8.2.1886 +Problem: Using ":silent!" in a popup filter has unexpected effect. +Solution: Use did_emsg instead of called_emsg. (closes #7178) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.1887 +Problem: Github actions not optimally configured. +Solution: Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi, + closes #7184) +Files: .github/workflows/ci-windows.yaml + +Patch 8.2.1888 +Problem: Vim9: Getbufline(-1, 1, '$') gives an error. +Solution: Return an empty list. (closes #7180) +Files: src/evalbuffer.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.1889 +Problem: Vim9: erroneous error for missing white space after {}. +Solution: Don't skip over white space after {}. (issue #7167) +Files: src/dict.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1890 +Problem: Vim9: strange error for subtracting from a list. +Solution: Check getting a number, not a string. (closes #7167) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1891 +Problem: Vim9: skipping over expression doesn't handle line breaks. +Solution: Pass evalarg to skip_expr(). (closes #7157) +Files: src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/ex_docmd.c, + src/misc1.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1892 +Problem: Valgrind warns for using uninitialized access in tests. +Solution: Fix condition for breaking out of loop. (Dominique Pellé, + closes #7187) +Files: src/terminal.c + +Patch 8.2.1893 +Problem: Fuzzy matching does not support multiple words. +Solution: Add support for matching white space separated words. (Yegappan + Lakshmanan, closes #7163) +Files: runtime/doc/eval.txt, src/search.c, + src/testdir/test_matchfuzzy.vim + +Patch 8.2.1894 +Problem: Vim9: command modifiers are not supported. +Solution: Support "silent" and "silent!". +Files: src/structs.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/evalvars.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.1895 (after 8.2.1894) +Problem: Vim9: silent command modifier test fails. +Solution: Add missing changes. +Files: src/ex_docmd.c + +Patch 8.2.1896 +Problem: Valgrind warns for using uninitialized memory. +Solution: NUL terminate the SmcOpenConnection() error message. (Dominique + Pellé, closes #7194) +Files: src/os_unix.c + +Patch 8.2.1897 +Problem: Command modifiers are saved and set inconsistently. +Solution: Separate parsing and applying command modifiers. Save values in + cmdmod_T. +Files: src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/ex_cmds.h, src/vim9compile.c + +Patch 8.2.1898 +Problem: Command modifier parsing always uses global cmdmod. +Solution: Pass in cmdmod_T to use. Rename struct fields consistently. +Files: src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c, + src/diff.c, src/change.c, src/cmdhist.c, src/edit.c, + src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, + src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c, + src/help.c, src/if_cscope.c, src/indent.c, src/mark.c, + src/memline.c, src/message.c, src/option.c, src/ops.c, + src/os_unix.c, src/quickfix.c, src/register.c, src/scriptfile.c, + src/search.c, src/session.c, src/tag.c, src/terminal.c, + src/textformat.c, src/usercmd.c, src/vim9compile.c, src/window.c, + src/proto/ex_docmd.pro + +Patch 8.2.1899 +Problem: Crash in out-of-memory situation. +Solution: Bail out if shell_name is NULL. (Dominique Pellé, closes #7196) +Files: src/ex_cmds.c + +Patch 8.2.1900 +Problem: Vim9: command modifiers do not work. +Solution: Make most command modifiers work. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1901 +Problem: Variable completion does not work in command line window. +Solution: Use the "prevwin". (closes #7198) +Files: src/evalvars.c, src/testdir/test_ins_complete.vim + +Patch 8.2.1902 +Problem: Default option values are changed when using :badd for an existing + buffer. +Solution: When calling buflist_new() pass a zero line number. (closes #7195) +Files: src/ex_cmds.c, src/testdir/test_buffer.vim + +Patch 8.2.1903 (after 8.2.1902) +Problem: Buffer test fails with normal features. +Solution: Use 'numberwidth' instead of 'conceallevel' in the test. +Files: src/testdir/test_buffer.vim + +Patch 8.2.1904 +Problem: Still using default option values after using ":badd +1". +Solution: Find a window where options were set. Don't set the window when + using ":badd". +Files: src/buffer.c, src/ex_cmds.c, src/vim.h, + src/testdir/test_buffer.vim + +Patch 8.2.1905 +Problem: The wininfo list may contain stale entries. +Solution: When closing a window remove any other entry where the window + pointer is NULL. +Files: src/buffer.c, src/proto/buffer.pro, src/window.c + +Patch 8.2.1906 +Problem: Warning for signed/unsigned. +Solution: Use size_t instead of int. (Mike Williams) +Files: src/proto/usercmd.pro, src/usercmd.c, src/vim9execute.c + +Patch 8.2.1907 +Problem: Complete_info().selected may be wrong. +Solution: Update cp_number if it was never set. (issue #6945) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.1908 +Problem: Lua is initialized even when not used. +Solution: Put lua_init() after check for "eap->skip". (Christian Brabandt, + closes #7191). Avoid compiler warnings. +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.1909 +Problem: Number of status line items is limited to 80. +Solution: Dynamically allocate the arrays. (Rom Grk, closes #7181) +Files: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, + src/proto/buffer.pro, src/screen.c, src/structs.h, + src/testdir/test_options.vim, src/testdir/test_statusline.vim, + src/vim.h + +Patch 8.2.1910 +Problem: Reading past the end of the command line. +Solution: Check for NUL. (closes #7204) +Files: src/ex_docmd.c, src/testdir/test_edit.vim + +Patch 8.2.1911 +Problem: Tiny build fails. +Solution: Add #ifdef. +Files: src/insexpand.c + +Patch 8.2.1912 +Problem: With Python 3.9 some tests fail. +Solution: Take into account the different error message. (James McCoy, + closes #7210) +Files: src/testdir/test_python3.vim + +Patch 8.2.1913 +Problem: GTK GUI: rounding for the cell height is too strict. +Solution: Round up above 15/16 of a pixel. (closes #7203) +Files: src/gui_gtk_x11.c + +Patch 8.2.1914 +Problem: Vim9: cannot put line break in expression for '=' register. +Solution: Pass fgetline to set_expr_line(). (closes #7209) +Files: src/register.c, src/proto/register.pro, src/ex_docmd.c, + src/eval.c, src/proto/eval.pro, src/misc2.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.1915 +Problem: Vim9: error for wrong number of arguments is not useful. +Solution: Mention whatever we have for the name. (closes #7208) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1916 +Problem: Vim9: function call is aborted even when "silent!" is used. +Solution: Use did_emsg instead of called_emsg. (closes #7213) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1917 +Problem: No test for improved Man command. +Solution: Test that shell arguments are properly escaped. +Files: src/testdir/test_man.vim + +Patch 8.2.1918 +Problem: Vim9: E1100 mentions :let. +Solution: Mention "var". (closes #7207) +Files: src/vim9script.c, src/errors.h + +Patch 8.2.1919 +Problem: Assert_fails() setting emsg_silent changes normal execution. +Solution: Use a separate flag in_assert_fails. +Files: src/testing.c, src/globals.h, src/buffer.c, src/change.c, + src/fileio.c, src/insexpand.c, src/message.c, src/misc1.c, + src/normal.c, src/screen.c, src/term.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim, src/testdir/gen_opt_test.vim, + src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim, + src/testdir/test_popup.vim, src/testdir/test_terminal.vim + +Patch 8.2.1920 +Problem: Listlbr test fails when run after another test. +Solution: Add test separately to list of test targets. +Files: src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim + +Patch 8.2.1921 +Problem: Fuzzy matching does not recognize path separators. +Solution: Add a bonus for slash and backslash. (Yegappan Lakshmanan, + closes #7225) +Files: src/search.c, src/testdir/test_matchfuzzy.vim + +Patch 8.2.1922 +Problem: Win32: scrolling doesn't work properly when part of window is + off-screen. +Solution: Fall back to GDI scrolling if part of the window is off-screen. + Handle multi-monitor setup better. (Ken Takata, closes #7219) +Files: src/gui_w32.c + +Patch 8.2.1923 +Problem: Vim9: "filter" command modifier doesn't work. +Solution: Check for space on char before argument. (closes #7216, + closes #7222) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1924 +Problem: Vim9: crash when indexing dict with NULL key. +Solution: Use empty string instead of NULL. (closes #7229) Make error + message more useful for empty string. +Files: src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.1925 (after 8.2.1924) +Problem: List/dict test fails. +Solution: Correct expected exception. +File: src/testdir/test_listdict.vim + +Patch 8.2.1926 +Problem: Cannot use a space in 'spellfile'. (Filipe Brandenburger) +Solution: Permit using a space. (closes #7230) +Files: src/spell.c, src/testdir/gen_opt_test.vim + +Patch 8.2.1927 +Problem: Vim9: get unknown error with an error in a timer function. +Solution: Use did_emsg instead of called_emsg. (closes #7231) +Files: src/vim9compile.c, src/vim9execute.c + +Patch 8.2.1928 +Problem: Vim9: "silent!" not effective when list index is wrong. +Solution: Ignore list index failure when emsg_silent is set. (closes #7232) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.1929 +Problem: MS-Windows: problem loading Perl 5.32. +Solution: Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes #7234) +Files: src/if_perl.xs + +Patch 8.2.1930 +Problem: Wrong input if removing shift results in special key code. +Solution: Handle special key codes. (closes #7189) +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.1931 +Problem: Vim9: arguments of extend() not checked at compile time. +Solution: Add argument type checking for extend(). +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.1932 +Problem: Compiler warnings when building with Athena GUI. +Solution: Fix function signatures. +Files: src/gui_at_fs.c + +Patch 8.2.1933 +Problem: Cannot sort using locale ordering. +Solution: Add a flag for :sort and sort() to use the locale. (Dominique + Pellé, closes #7237) +Files: runtime/doc/change.txt, runtime/doc/eval.txt, src/ex_cmds.c, + src/list.c, src/testdir/test_sort.vim + +Patch 8.2.1934 +Problem: Vim9: command modifiers in :def function not tested. +Solution: Add tests. Fix using modifier before filter command. +Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1935 (after 8.2.1933) +Problem: Sort test fails on Mac. +Solution: Disable the sort test with locale on Mac. +Files: src/testdir/test_sort.vim + +Patch 8.2.1936 +Problem: Session sets the local 'scrolloff' value to the global value. +Solution: Do not let restoring the global option value change the local + value. +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.1937 +Problem: Vim9: test for confirm modifier fails in some situations. +Solution: Add a short wait. Handle failure better. +Files: src/testdir/term_util.vim, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1938 +Problem: Wiping out a terminal buffer makes some tests fail. +Solution: Do not wipe out the terminal buffer unless wanted. +Files: src/testdir/term_util.vim, src/testdir/test_terminal.vim, + src/testdir/test_terminal3.vim + +Patch 8.2.1939 +Problem: Invalid memory access in Ex mode with global command. +Solution: Make sure the cursor is on a valid line. (closes #7238) +Files: src/move.c, src/testdir/test_ex_mode.vim + +Patch 8.2.1940 +Problem: Vim9: browse modifier test fails on Mac. +Solution: Only test when the +browse feature is available. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.1941 +Problem: Ex mode test fails on MS-Windows with GUI. +Solution: Skip the test when using gvim. +Files: src/testdir/test_ex_mode.vim + +Patch 8.2.1942 +Problem: Insufficient test coverage for the Netbeans interface. +Solution: Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan, + closes #7240) +Files: runtime/doc/netbeans.txt, src/mouse.c, + src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim, + src/testdir/test_quickfix.vim + +Patch 8.2.1943 +Problem: Vim9: wrong error message when colon is missing. +Solution: Check for a missing colon. (issue #7239) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1944 +Problem: Netbeans test is flaky. +Solution: Add a short delay. (Yegappan Lakshmanan, closes #7246) +Files: src/testdir/test_netbeans.vim + +Patch 8.2.1945 +Problem: Crash when passing NULL function to reduce(). +Solution: Check for NULL pointer and give an error. (Dominique Pellé, + closes #7243) +Files: src/list.c, src/errors.h, src/testdir/test_listdict.vim + +Patch 8.2.1946 +Problem: sort() with NULL string not tested. +Solution: Add a test. use v:collate. (Dominique Pellé, closes #7247) +Files: src/testdir/test_sort.vim + +Patch 8.2.1947 +Problem: Crash when using "zj" without folds. (Sean Dewar) +Solution: Check for at least one fold. (closes #7245) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.1948 +Problem: GUI: crash when handling message while closing a window. (Srinath + Avadhanula) +Solution: Don't handle message while closing a window. (closes #7250) +Files: src/window.c, src/globals.h, src/getchar.c + +Patch 8.2.1949 +Problem: Vim9: using extend() on null dict is silently ignored. +Solution: Give an error message. Initialize a dict variable with an empty + dictionary. (closes #7251) +Files: src/errors.h, src/list.c, src/evalvars.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.1950 +Problem: Vim9: crash when compiling function fails when getting type. +Solution: Handle NULL type. (closes #7253) +Files: src/vim9type.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1951 (after 8.2.1949) +Problem: Test for list and dict fails. +Solution: Adjust for using an empty list/dict for a null one. +Files: src/testdir/test_listdict.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim + +Patch 8.2.1952 +Problem: Vim9: crash when using a NULL dict key. +Solution: Use a NULL dict key like an empty string. (closes #7249) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.1953 +Problem: Vim9: extra "unknown" error after other error. +Solution: Restore did_emsg count after EXEC instruction. (closes #7254) + Improve error message from assert_fails() +Files: src/vim9execute.c, src/testing.c, + src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim + +Patch 8.2.1954 +Problem: Vim9: not all command modifiers are tested. +Solution: Add tests for "keep" modifiers. Fix that marks are lost even + though ":lockmarks" is used. +Files: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.1955 +Problem: Vim9: not all command modifiers are tested. +Solution: Add tests for remaining modifiers. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.1956 +Problem: Vim9: cannot specify argument types for lambda. +Solution: Allow adding argument types. Check arguments when calling a + function reference. +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, + src/eval.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.1957 +Problem: Diff and cursorcolumn highlighting don't mix. +Solution: Fix condition for what attribute to use. (Christian Brabandt, + closes #7258, closes #7260) +Files: src/drawline.c, src/testdir/dumps/Test_diff_cuc_01.dump, + src/testdir/dumps/Test_diff_cuc_02.dump, + src/testdir/dumps/Test_diff_cuc_03.dump, + src/testdir/dumps/Test_diff_cuc_04.dump, + src/testdir/test_diffmode.vim + +Patch 8.2.1958 (after 8.2.1956) +Problem: Build failure with timers. +Solution: Add missing change. +Files: src/popupwin.c + +Patch 8.2.1959 +Problem: Crash when terminal buffer name is made empty. (Dhiraj Mishra) +Solution: Fall back to "[No Name]". (closes #7262) +Files: src/buffer.c, src/proto/buffer.pro, src/terminal.c, + src/testdir/test_terminal.vim + +Patch 8.2.1960 +Problem: Warning for uninitialized variable. +Solution: Initialize the variable. +Files: src/evalfunc.c + +Patch 8.2.1961 +Problem: Various comments can be improved. +Solution: Various comment adjustments. +Files: src/dict.c, src/structs.h, src/time.c, src/testdir/shared.vim, + src/testdir/test_netbeans.vim, src/gui_motif.c + +Patch 8.2.1962 +Problem: Netbeans may access freed memory. +Solution: Check the buffer pointer is still valid. Add a test. (Yegappan + Lakshmanan, closes #7248) +Files: src/netbeans.c, src/testdir/test_netbeans.vim + +Patch 8.2.1963 +Problem: Crash when using a popup window with "latin1" encoding. +Solution: Don't use ScreenLinesUC when enc_utf8 is false. (closes #7241) +Files: src/screen.c, src/terminal.c, src/testdir/test_popupwin.vim + +Patch 8.2.1964 +Problem: Not all ConTeXt files are recognized. +Solution: Add two patterns. (closes #7263) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.1965 +Problem: Vim9: tests fail without the channel feature. +Solution: Check if the channel feature is present. (Dominique Pellé, + closes #7270) +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1966 +Problem: Popup becomes current window after closing a terminal window. +Solution: When restoring the window after executing autocommands, check that + the window ID is still the same. (Naruhiko Nishino, + closes #7272) +Files: src/autocmd.c, src/window.c, src/proto/window.pro, src/structs.h, + src/testdir/test_popupwin.vim + +Patch 8.2.1967 +Problem: The session file does not restore the alternate file. +Solution: Add ":balt". Works like ":badd" and also sets the buffer as the + alternate file. Use it in the session file. (closes #7269, + closes #6714) +Files: runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmdidxs.h, + src/ex_docmd.c, src/vim.h, src/ex_cmds.c, src/session.c, + src/testdir/test_buffer.vim + +Patch 8.2.1968 +Problem: Vim9: has() assumes a feature does not change dynamically. +Solution: Check whether a feature may change dynamically. (closes #7265) +Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.1969 +Problem: Vim9: map() may change the list or dict item type. +Solution: Add mapnew(). +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/list.c, src/proto/list.pro, src/testdir/test_filter_map.vim + +Patch 8.2.1970 +Problem: It is easy to make mistakes when cleaning up swap files after the + system crashed. +Solution: Warn for the process still running after recovery. Do not + automatically delete a swap file created on another system. + (David Fries, closes #7273) +Files: src/memline.c, src/testdir/test_swap.vim + +Patch 8.2.1971 +Problem: Memory leak when map() fails. +Solution: Clear the typval. +Files: src/list.c + +Patch 8.2.1972 +Problem: Crash when recreating nested fold. +Solution: Check for empty growarray. (closes #7278) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.1973 +Problem: Finding a patch number can be a bit slow. +Solution: Use binary search. (closes #7279) +Files: src/version.c + +Patch 8.2.1974 +Problem: Vim9: test for has('gui_running') fails with VIMDLL. +Solution: Adjust the #ifdef. (Ken Takata, closes #7276) +Files: src/evalfunc.c + +Patch 8.2.1975 +Problem: Win32: memory leak when encoding conversion fails. +Solution: Free the allocated memory. (Ken Takata, closes #7277) +Files: src/os_win32.c + +Patch 8.2.1976 +Problem: Cannot backspace in prompt buffer after using cursor-left. (Maxim + Kim) +Solution: Ignore "arrow_used" in a prompt buffer. (closes #7281) +Files: src/edit.c, src/testdir/test_prompt_buffer.vim + +Patch 8.2.1977 +Problem: Vim9: error for using a string in a condition is confusing. +Solution: Give a more specific error. Also adjust the compile time type + checking for || and &&. +Files: src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro, + src/typval.c, src/errors.h, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1978 +Problem: Making a mapping work in all modes is complicated. +Solution: Add the <Cmd> special key. (Yegappan Lakshmanan, closes #7282, + closes 4784, based on patch by Bjorn Linse) +Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, + runtime/doc/map.txt, src/edit.c, src/errors.h, src/ex_docmd.c, + src/ex_getln.c, src/getchar.c, src/insexpand.c, src/keymap.h, + src/map.c, src/misc2.c, src/normal.c, src/ops.c, + src/proto/getchar.pro, src/screen.c, src/terminal.c, + src/testdir/test_mapping.vim + +Patch 8.2.1979 +Problem: "term_opencmd" option of term_start() is truncated. (Sergey + Vlasov) +Solution: Allocate the buffer to hold the command. (closes #7284) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.1980 +Problem: Vim9: some tests are not done at the script level. +Solution: Use CheckDefAndScriptSuccess() in more places. Fix uncovered + problems. +Files: src/eval.c, src/list.c, src/scriptfile.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.1981 +Problem: MinGW: parallel compilation might fail. +Solution: Add dependencies on $(OUTDIR). (Masamichi Abe, closes #7287) +Files: src/Make_cyg_ming.mak + +Patch 8.2.1982 +Problem: Quickfix window not updated when adding invalid entries. +Solution: Update the quickfix buffer properly. (Yegappan Lakshmanan, closes + #7291, closes #7271) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.1983 +Problem: ml_get error when using <Cmd> to open a terminal. +Solution: If the window changed reset the incsearch state. (closes #7289) +Files: src/ex_getln.c, src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_from_cmd.dump + +Patch 8.2.1984 +Problem: Cannot use :vimgrep in omni completion, causing C completion to + fail. +Solution: Add the EX_LOCK_OK flag to :vimgrep. (closes #7292) +Files: src/ex_cmds.h, src/testdir/test_quickfix.vim + +Patch 8.2.1985 +Problem: Crash when closing terminal popup with <Cmd> mapping. +Solution: Check b_term is not NULL. (closes #7294) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.1986 +Problem: Expression test is flaky on Appveyor. +Solution: Temporarily disable the test in MS-Windows. +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.1987 +Problem: MS-Windows: Win32.mak is no longer needed. +Solution: Do not include Win32.mak. (Jason McHugh, closes #7290) +Files: src/Make_mvc.mak, src/INSTALLpc.txt + +Patch 8.2.1988 +Problem: Still in Insert mode when opening terminal popup with a <Cmd> + mapping in Insert mode. +Solution: Exit Insert mode. (closes #7295) +Files: src/edit.c, src/testdir/test_terminal.vim + +Patch 8.2.1989 +Problem: Info popup triggers WinEnter and WinLeave autocommands. +Solution: Suppress autocommands for the info popup. (closes #7296) +Files: src/popupmenu.c, src/testdir/test_popupwin.vim + +Patch 8.2.1990 +Problem: Cursor position wrong in terminal popup with finished job. +Solution: Only add the top and left offset when not done already. + (closes #7298) +Files: src/popupwin.c, src/structs.h, src/drawline.c, src/move.c, + src/terminal.c, src/testdir/dumps/Test_terminal_popup_m1.dump + +Patch 8.2.1991 +Problem: Coverity warns for not using the ga_grow() return value. +Solution: Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes #7303) +Files: src/getchar.c + +Patch 8.2.1992 +Problem: Build fails with small features. +Solution: Add #ifdef. +Files: src/move.c + +Patch 8.2.1993 +Problem: Occasional failure of the netbeans test. +Solution: Add "silent!". (Yegappan Lakshmanan, closes #7304) +Files: src/testdir/test_netbeans.vim + +Patch 8.2.1994 (after 8.2.1981) +Problem: MS-Windows: MinGW always does a full build. +Solution: Only check if $OUTDIR exists. (Masamichi Abe, closes #7311) +Files: src/Make_cyg_ming.mak + +Patch 8.2.1995 +Problem: The popup menu can cause too much redrawing. +Solution: Reduce the length of the displayed text. (Yasuhiro Matsumoto, + closes #7306) +Files: src/popupmenu.c + +Patch 8.2.1996 +Problem: Vim9: invalid error for argument of extend(). +Solution: Check if the type could match. (closes #7299) +Files: src/evalfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.1997 +Problem: Window changes when using bufload() while in a terminal popup. +Solution: When searching for a window by ID also find a popup window. + (closes #7307) +Files: src/window.c, src/testdir/test_terminal.vim + +Patch 8.2.1998 +Problem: Terminal Cmd test sometimes fails to close popup. +Solution: Add "term_finish" option. +Files: src/testdir/test_terminal.vim + +Patch 8.2.1999 +Problem: Terminal popup test sometimes fails. +Solution: Wait for the popup to close. +Files: src/testdir/test_terminal.vim + +Patch 8.2.2000 +Problem: Vim9: dict.key assignment not implemented yet. +Solution: Implement dict.key assignment. (closes #7312) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2001 +Problem: Vim9: :def function does not apply 'maxfuncdepth'. +Solution: Use 'maxfuncdepth'. (issue #7313) +Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.2002 +Problem: Vim9: lambda argument shadowed by function name. +Solution: Let function name be shadowed by lambda argument. (closes #7313) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2003 +Problem: Build error with +conceal but without +popupwin. +Solution: Add #ifdef. (Tom Ryder, closes #7316) +Files: src/drawline.c + +Patch 8.2.2004 (after 8.2.2002) +Problem: Compiler warning for uninitialized variable. +Solution: Initialize "ufunc". (John Marriott) +Files: src/vim9compile.c + +Patch 8.2.2005 +Problem: Redoing a mapping with <Cmd> doesn't work properly. +Solution: Fill the redo buffer. Use "<SNR>" instead of a key code. + (closes #7282) +Files: src/ops.c, src/getchar.c, src/testdir/test_mapping.vim + +Patch 8.2.2006 +Problem: .pbtxt files are not recognized. +Solution: Recognize .pbtxt as protobuf text buffers. (closes #7326) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2007 +Problem: Test for insert mode in popup is not reliable. +Solution: Wait for the popup to disappear. (Ozaki Kiichi, closes #7321) +Files: src/testdir/test_terminal.vim + +Patch 8.2.2008 +Problem: MS-Windows GUI: handling channel messages lags. +Solution: Reduce the wait time from 100 to 10 msec. (closes #7097) +Files: src/gui_w32.c + +Patch 8.2.2009 +Problem: MS-Windows: setting $LANG in gvimext only causes problems. +Solution: Do not set $LANG. (Ken Takata, closes #7325) +Files: src/GvimExt/gvimext.cpp + +Patch 8.2.2010 +Problem: Vim9: compiling fails for unreachable return statement. +Solution: Fix it. (closes #7319) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2011 +Problem: "syn sync" reports a very large number. +Solution: Use "at the first line". +Files: src/syntax.c, src/testdir/test_syntax.vim + +Patch 8.2.2012 +Problem: Vim9: confusing error message when using bool wrongly. +Solution: Mention "Bool" instead of "Special". (closes #7323) +Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.2013 +Problem: Vim9: not skipping white space after unary minus. +Solution: Skip whitespace. (closes #7324) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2014 +Problem: Using CTRL-O in a prompt buffer moves cursor to start of the line. +Solution: Do not move the cursor when restarting edit. (closes #7330) +Files: src/job.c, src/testdir/test_prompt_buffer.vim + +Patch 8.2.2015 +Problem: Vim9: literal dict #{} is not like any other language. +Solution: Support the JavaScript syntax. +Files: runtime/doc/vim9.txt, src/vim9compile.c, + src/proto/vim9compile.pro, src/errors.h, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.2016 +Problem: Swap file test is a little flaky. +Solution: Don't set a byte to a fixed value, increment it. +Files: src/testdir/test_swap.vim + +Patch 8.2.2017 (after 8.2.2015) +Problem: Missing part of the dict change. +Solution: Also change the script level dict. +Files: src/dict.c + +Patch 8.2.2018 +Problem: Vim9: script variable not found from lambda. +Solution: In a lambda also check the script hashtab for a variable without a + scope. (closes #7329) +Files: src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2019 (after 8.2.2016) +Problem: Swap file test fails on MS-Windows. +Solution: Add four to the process ID. (Ken Takata, closes #7333) +Files: src/testdir/test_swap.vim + +Patch 8.2.2020 +Problem: Some compilers do not like the "namespace" argument. +Solution: Rename to "use_namespace". (closes #7332) +Files: src/vim9compile.c, src/proto/vim9compile.pro + +Patch 8.2.2021 +Problem: Vim9: get E1099 when autocommand resets did_emsg. +Solution: Add did_emsg_cumul. (closes #7336) +Files: src/globals.h, src/ex_docmd.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2022 +Problem: Vim9: star command recognized erroneously. +Solution: Give an error for missing colon. (issue #7335) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2023 +Problem: Vim: memory leak when :execute fails. +Solution: Clear the growarray. +Files: src/vim9execute.c + +Patch 8.2.2024 +Problem: Flicker when redrawing a popup with a title and border. +Solution: Do not redraw the border where the title is displayed. (Naruhiko + Nishino, closes #7334) +Files: src/popupwin.c + +Patch 8.2.2025 +Problem: Amiga: Not all colors are used on OS4. +Solution: Adjust the #ifdef to include __amigaos4__. (Ola Söder, + closes #7328) +Files: src/term.c + +Patch 8.2.2026 +Problem: Coverity warns for possibly using not NUL terminated string. +Solution: Put a NUL in b0_hname just in case. +Files: src/memline.c + +Patch 8.2.2027 +Problem: Coverity warns for uninitialized field. +Solution: Set "v_lock". +Files: src/list.c + +Patch 8.2.2028 +Problem: Coverity warns for using an uninitialized variable. +Solution: Initialize to NULL. +Files: src/eval.c + +Patch 8.2.2029 +Problem: Coverity warns for not checking return value. +Solution: Check that u_save_cursor() returns OK. +Files: src/ops.c + +Patch 8.2.2030 +Problem: Some tests fail on Mac. +Solution: Avoid Mac test failures. Add additional test for wildmenu. + (Yegappan Lakshmanan, closes #7341) +Files: src/testdir/runtest.vim, src/testdir/test_cmdline.vim, + src/testdir/test_options.vim, src/testdir/test_popupwin.vim + +Patch 8.2.2031 +Problem: Some tests fail when run under valgrind. +Solution: Avoid timing problems. +Files: src/testdir/test_vim9_func.vim, src/testdir/test_channel.vim, + src/testdir/test_clientserver.vim, src/testdir/test_debugger.vim, + src/testdir/test_quotestar.vim + +Patch 8.2.2032 +Problem: Cabalconfig and cabalproject filetypes not recognized. +Solution: Detect more cabal files. (Marcin Szamotulski, closes #7339) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2033 +Problem: Vim9: :def without argument gives compilation error. +Solution: Add the DEF instruction. (closes #7344) +Files: src/ex_docmd.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2034 +Problem: Vim9: list unpack in for statement not compiled yet. +Solution: Compile list unpack. (closes #7345) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h, + src/eval.c, src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2035 +Problem: MS-Windows: some tests may fail. +Solution: Avoid test failures. (Yegappan Lakshmanan, closes #7346) +Files: src/testdir/test_channel.vim, src/testdir/test_ex_mode.vim, + src/testdir/test_functions.vim + +Patch 8.2.2036 +Problem: Current buffer is messed up if creating a new buffer for the + quickfix window fails. +Solution: Check that creating the buffer succeeds. (closes #7352) +Files: src/quickfix.c, src/testdir/test_quickfix.vim, + src/testdir/dumps/Test_quickfix_window_fails.dump + +Patch 8.2.2037 +Problem: Compiler test depends on list of compiler plugins. +Solution: Compare with the actual list of compiler plugins. +Files: src/testdir/test_compiler.vim + +Patch 8.2.2038 +Problem: Compiler test fails on MS-Windows. +Solution: Sort the found compiler plugin names. +Files: src/testdir/test_compiler.vim + +Patch 8.2.2039 +Problem: Viminfo is not written when creating a new file. +Solution: Set "b_marks_read" in the new buffer. (Christian Brabandt, + closes #7350) +Files: src/bufwrite.c, src/testdir/test_viminfo.vim + +Patch 8.2.2040 +Problem: Terminal buffer disappears even when 'bufhidden' is "hide". + (Sergey Vlasov) +Solution: Check 'bufhidden' when a terminal buffer becomes hidden. + (closes #7358) +Files: src/buffer.c, src/testdir/test_terminal.vim + +Patch 8.2.2041 +Problem: Haskell filetype not optimally recognized. +Solution: Recognize all *.hsc files as Haskell. (Marcin Szamotulski, + closes #7354) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2042 +Problem: Build failure with +profile but without +reltime. +Solution: Adjust #ifdef. (Christian Brabandt, closes #7361) +Files: src/syntax.c + +Patch 8.2.2043 +Problem: GTK3: white border around text stands out. +Solution: Use current theme color. (closes #7357, issue #349) +Files: src/gui_gtk_x11.c + +Patch 8.2.2044 +Problem: MS-Windows: swap file test sometimes fails. +Solution: Use a more reliable way to change the process ID. When "timeout" + fails use "ping" to wait up to ten minutes. (Ken Takata, + closes #7365) +Files: .github/workflows/ci-windows.yaml, src/testdir/test_swap.vim + +Patch 8.2.2045 +Problem: Highlighting a character too much with incsearch. +Solution: Check "search_match_endcol". (Christian Brabandt, closes #7360) +Files: src/drawline.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_incsearch_newline1.dump, + src/testdir/dumps/Test_incsearch_newline2.dump, + src/testdir/dumps/Test_incsearch_newline3.dump, + src/testdir/dumps/Test_incsearch_newline4.dump, + src/testdir/dumps/Test_incsearch_newline5.dump + +Patch 8.2.2046 +Problem: Some test failures don't give a clear error. +Solution: Use assert_match() and assert_fails() instead of assert_true(). + (Ken Takata, closes #7368) +Files: src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim + +Patch 8.2.2047 +Problem: Amiga: FEAT_ARP defined when it should not. +Solution: Adjust #ifdef. (Ola Söder, closes #7370) +Files: src/feature.h + +Patch 8.2.2048 +Problem: Amiga: obsolete code. +Solution: Remove the unused lines. (Ola Söder, closes #7373) +Files: src/gui.c + +Patch 8.2.2049 +Problem: Amiga: obsolete function. +Solution: Remove the function. (Ola Söder, closes #7374) +Files: src/memfile.c + +Patch 8.2.2050 +Problem: Search test contains unneeded sleeps. +Solution: Rename the function, remove sleeps. (Christian Brabandt, + closes #7369) +Files: src/testdir/test_search.vim + +Patch 8.2.2051 +Problem: Vim9: crash when aborting a user function call. +Solution: Do not use the return value when aborting. (closes #7372) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2052 +Problem: Vim9: "edit +4 fname" gives an error. (Naruhiko Nishino) +Solution: Allow using a range in the +cmd argument. (closes #7364) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/ex_cmds.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2053 +Problem: Vim9: lambda doesn't accept argument types. +Solution: Optionally accept argument types at the script level. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2054 +Problem: Amiga: FEAT_ARP defined when it should not. +Solution: Adjust "||" to "&&" in #ifdef. (Ola Söder, closes #7375) +Files: src/feature.h + +Patch 8.2.2055 +Problem: MS-Windows: two Vim instances may use the same temp file. +Solution: Use the process ID for the temp name. (Ken Takata, closes #7378) +Files: src/fileio.c + +Patch 8.2.2056 +Problem: Configure fails when building with the + "implicit-function-declaration" error enabled, specifically on Mac. +Solution: Declare the functions like in the source code. (suggestion by + Clemens Lang, closes #7380) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2057 +Problem: Getting the selection may trigger TextYankPost autocmd. +Solution: Only trigger the autocommand when yanking in Vim, not for getting + the selection. (closes #7367) +Files: src/clipboard.c, src/normal.c, src/register.c, + src/testdir/test_autocmd.vim + +Patch 8.2.2058 +Problem: Using mkview/loadview changes the jumplist. +Solution: Use ":keepjumps". Don't let ":badd" or ":balt" change the + jumplist. (closes #7371) +Files: src/session.c, src/ex_docmd.c, src/testdir/test_mksession.vim + +Patch 8.2.2059 +Problem: Amiga: can't find plugins. +Solution: Do not use "**" in the pattern. (Ola Söder, closes #7384) +Files: src/main.c + +Patch 8.2.2060 +Problem: Check for features implemented with "if". +Solution: Use the Check commands. (Ken Takata, closes #7383) +Files: src/testdir/test_autocmd.vim, src/testdir/test_compiler.vim, + src/testdir/test_delete.vim, src/testdir/test_diffmode.vim, + src/testdir/test_expr.vim, src/testdir/test_fold.vim + +Patch 8.2.2061 +Problem: Vim9: E1030 error when using empty string for term_sendkeys(). +Solution: Don't check for an invalid type unless the terminal can't be + found. (closes #7382) +Files: src/terminal.c, src/testdir/test_termcodes.vim + +Patch 8.2.2062 +Problem: <Cmd> does not handle CTRL-V. +Solution: Call get_literal() after encountering CTRL-V. (closes #7387) +Files: src/getchar.c, src/testdir/test_mapping.vim + +Patch 8.2.2063 +Problem: Vim9: only one level of indexing supported. +Solution: Handle more than one index in an assignment. +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim + +Patch 8.2.2064 +Problem: terminal: cursor is on while redrawing, causing flicker. +Solution: Switch the cursor off while redrawing. Always add the top and + left offset to the cursor position when not done already. + (closes #5943) +Files: src/terminal.c, src/popupwin.c + +Patch 8.2.2065 +Problem: Using map() and filter() on a range() is inefficient. +Solution: Do not materialize the range. (closes #7388) +Files: src/list.c, src/testdir/test_functions.vim + +Patch 8.2.2066 +Problem: Vim9: assignment with += doesn't work. +Solution: Do not see the "+" as an addition operator. +Files: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2067 (after 8.2.2064) +Problem: Cursor position in popup terminal is wrong. +Solution: Don't check the flags. +Files: src/terminal.c, src/testdir/test_popupwin.vim + +Patch 8.2.2068 +Problem: Transparent syntax item uses start/end of containing region. +Solution: Do not change the startpos and endpos of a transparent region to + that of its containing region. (Adrian Ghizaru, closes #7349, + closes #7391) +Files: src/syntax.c, src/testdir/test_syntax.vim + +Patch 8.2.2069 +Problem: The quickfix window is not updated after setqflist(). +Solution: Update the quickfix buffer. (Yegappan Lakshmanan, closes #7390, + closes #7385) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.2070 +Problem: Can't get the exit value in VimLeave or VimLeavePre autocommands. +Solution: Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes #7395) +Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/evalvars.c, + src/main.c, src/testdir/test_exit.vim, src/vim.h + +Patch 8.2.2071 +Problem: Vim9: list assign doesn't accept an empty remainder list. +Solution: Recognize list assignment with ";". +Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2072 +Problem: Vim9: list assign not well tested. +Solution: Test with different destinations. Fix white space error. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2073 +Problem: Vim9: for with unpack only works for local variables. +Solution: Recognize different destinations. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2074 +Problem: Vim9: using :normal from Vim9 script can't handle range. +Solution: Execute a :normal command in legacy script context. (closes #7401) +Files: src/structs.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2075 +Problem: Error for const argument to mapnew(). +Solution: Don't give an error. (closes #7400) +Files: src/list.c, src/testdir/test_filter_map.vim + +Patch 8.2.2076 +Problem: MS-Windows console: sometimes drops typed characters. +Solution: Do not wait longer than 10 msec for input. (issue #7164) +Files: src/os_win32.c + +Patch 8.2.2077 +Problem: Build failure with small features. +Solution: Add #ifdef. +Files: src/structs.h, src/ex_docmd.c + +Patch 8.2.2078 +Problem: Illegal memory access when using :print on invalid text. (Dhiraj + Mishra) +Solution: Check for more composing characters than supported. (closes #7399) +Files: src/message.c, src/testdir/test_utf8.vim + +Patch 8.2.2079 +Problem: Vim9: cannot put a linebreak before or after "in" of ":for". +Solution: Skip over linebreak. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2080 +Problem: Vim9: no proper error message for using s:var in for loop. +Solution: Give a specific error. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2081 +Problem: Vim9: cannot handle a linebreak after "=" in assignment. +Solution: Skip over linebreak. (closes #7407) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2082 +Problem: Vim9: can still use the deprecated #{} dict syntax. +Solution: Remove support for #{} in Vim9 script. (closes #7406, closes #7405) +Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_popupwin.vim, + src/testdir/test_textprop.vim + +Patch 8.2.2083 +Problem: Vim9: crash when using ":silent!" and getting member fails. +Solution: Jump to on_fatal_error. (closes #7412) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2084 +Problem: CTRL-V U doesn't work to enter a Unicode character when + modifyOtherKeys is effective. (Ken Takata) +Solution: Add a flag to get_literal() for the shift key. (closes #7413) +Files: src/edit.c, src/proto/edit.pro, src/ex_getln.c, src/getchar.c, + src/normal.c, src/testdir/test_termcodes.vim + +Patch 8.2.2085 +Problem: Qt translation file is recognized as typescript. +Solution: Check the first line for "<?xml". (closes #7418) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2086 +Problem: Libvterm tests are only run on Linux. +Solution: Use static libraries. (Ozaki Kiichi, closes #7419) +Files: .travis.yml, src/Makefile, src/libvterm/Makefile, + src/libvterm/t/run-test.pl + +Patch 8.2.2087 +Problem: Vim9: memory leak when statement is truncated. +Solution: Increment the number of local variables. +Files: src/vim9compile.c + +Patch 8.2.2088 +Problem: Vim9: script test sometimes fails. +Solution: Unlet variables. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2089 +Problem: Libvterm test fails to build on Mac. +Solution: Adjust configure to remove a space between -L and the path that + follows. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2090 +Problem: Vim9: dict does not accept a key in quotes. +Solution: Recognize a key in single or double quotes. +Files: runtime/doc/vim9.txt, src/dict.c, src/proto/dict.pro, + src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2091 +Problem: MS-Windows: build warnings. +Solution: Add a #pragma to suppress the deprecation warning. (Ken Takata) + Avoid using a non-ASCII character. (closes #7421) +Files: src/message.c, src/os_win32.c + +Patch 8.2.2092 +Problem: Vim9: unpredictable errors for script tests. +Solution: Use a different script file name for each run. +Files: src/testdir/vim9.vim, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_quickfix.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2093 +Problem: Vim9: script test sometimes fails. +Solution: Do not find a script variable by its typval if the name was + cleared. +Files: src/vim9script.c + +Patch 8.2.2094 +Problem: When an expression fails getting the next command may be wrong. +Solution: Do not check for a next command after :eval fails. (closes #7415) +Files: src/eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2095 +Problem: Vim9: crash when failed dict member is followed by concatenation. +Solution: Remove the dict from the stack. (closes #7416) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2096 +Problem: Vim9: command modifiers not restored after assignment. +Solution: Jump to nextline instead of using continue. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2097 +Problem: Vim9: using :silent! when calling a function prevents aborting + that function. +Solution: Add emsg_silent_def and did_emsg_def. +Files: src/globals.h, src/message.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2098 +Problem: Vim9: function argument of sort() and map() not tested. +Solution: Add a couple of tests. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.2099 +Problem: Vim9: some checks are not tested. +Solution: Add a few more tests. Give better error messages. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2100 +Problem: Insufficient testing for function range and dict. +Solution: Add a few tests. (Dominique Pellé, closes #7428) +Files: src/testdir/test_functions.vim, src/testdir/test_lambda.vim, + src/testdir/test_signals.vim, src/testdir/test_user_func.vim + +Patch 8.2.2101 +Problem: Vim9: memory leak when literal dict has an error and when an + expression is not complete. +Solution: Clear the typval and the growarray. +Files: src/dict.c, src/vim9compile.c + +Patch 8.2.2102 +Problem: Vim9: not all error messages tested. +Solution: Add a few test cases. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.2103 +Problem: Vim9: unreachable code. +Solution: Remove the code to prepend s: to the variable name +Files: src/vim9compile.c + +Patch 8.2.2104 +Problem: Build problem with Ruby 2.7. +Solution: Adjust function declarations. (Ozaki Kiichi, closes #7430) +Files: src/configure.ac, src/auto/configure, src/if_ruby.c + +Patch 8.2.2105 +Problem: Sound test is a bit flaky. +Solution: Use WaitForAssert(). (Dominique Pellé, closes #7429) +Files: src/testdir/test_sound.vim + +Patch 8.2.2106 +Problem: TOML files are not recognized. +Solution: Match *.toml. (issue #7432) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2107 +Problem: Vim9: some errors not tested. +Solution: Add tests. Fix getting the right error. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2108 +Problem: Vim9: no test to check for :let error. +Solution: Add a test. Rename tests from _let_ to _var_. +Files: src/testdir/test_vim9_assign.vim + +Patch 8.2.2109 +Problem: "vim -" does not work well when modifyOtherKeys is enabled and a + shell command is executed on startup. +Solution: Only change modifyOtherKeys when executing a shell command in raw + mode. +Files: src/os_unix.c + +Patch 8.2.2110 +Problem: Cannot use ":shell" when reading from stdin. (Gary Johnson) +Solution: Revert patch 8.2.1833. +Files: src/main.c + +Patch 8.2.2111 +Problem: GTK: Menu background is the same color as the main window. +Solution: Fix white space around the text in another way. (closes #7437, + closes #7427) +Files: src/gui_gtk_x11.c + +Patch 8.2.2112 +Problem: Running tests may leave some files behind. +Solution: Delete the right files. Fix a few typos. (Dominique Pellé, + closes #7436) +Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, + src/testdir/test_mksession.vim + +Patch 8.2.2113 +Problem: MS-Windows GUI: crash after using ":set guifont=" four times. +Solution: Check for NULL pointer. (Ken Takata, closes #7434) +Files: src/gui_dwrite.cpp, src/testdir/test_gui.vim + +Patch 8.2.2114 +Problem: Vim9: unreachable code in assignment. +Solution: Remove impossible condition and code. +Files: src/vim9compile.c + +Patch 8.2.2115 +Problem: Vim9: some errors not tested for; dead code. +Solution: Add a test. Remove dead code. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2116 +Problem: MS-Windows GUI: test for 'guifont' is incomplete. +Solution: Set 'renderoptions'. (Christian Brabandt) +Files: src/testdir/test_gui.vim + +Patch 8.2.2117 +Problem: Some functions use any value as a string. +Solution: Check that the value is a non-empty string. +Files: src/typval.c, src/proto/typval.pro, src/mbyte.c, src/filepath.c, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.2118 +Problem: Dead code in the job support. (Dominique Pellé) +Solution: Define USE_ARGV before checking for it. +Files: src/job.c + +Patch 8.2.2119 +Problem: GTK3: status line background color is wrong. +Solution: Don't change the code for earlier GTK3 versions. (closes #7444) +Files: src/gui_gtk_x11.c + +Patch 8.2.2120 +Problem: Not all Perl functionality is tested. +Solution: Add a few more test cases. (Dominique Pellé, closes #7440) +Files: src/testdir/test_perl.vim + +Patch 8.2.2121 +Problem: Internal error when using \ze before \zs in a pattern. +Solution: Check the end is never before the start. (closes #7442) +Files: src/regexp_bt.c, src/regexp_nfa.c, + src/testdir/test_regexp_latin.vim + +Patch 8.2.2122 +Problem: Vim9: crash when sourcing vim9script early. +Solution: Use set_option_value() instead of setting p_cpo directly. + (closes #7441) +Files: src/scriptfile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2123 +Problem: After using a complete popup the buffer is listed. (Boris + Staletic) +Solution: Make the buffer unlisted. +Files: src/popupmenu.c, src/testdir/test_popupwin.vim + +Patch 8.2.2124 +Problem: Vim9: a range cannot be computed at runtime. +Solution: Add the ISN_RANGE instruction. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2125 (after 8.2.2122) +Problem: Vim9: leaking memory. +Solution: Free the saved 'cpo' value. +Files: src/scriptfile.c + +Patch 8.2.2126 +Problem: Ruby: missing function prototype. +Solution: Add the prototype. +Files: src/if_ruby.c + +Patch 8.2.2127 +Problem: Vim9: executing user command defined in Vim9 script not tested. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2128 +Problem: There is no way to do something on CTRL-Z. +Solution: Add VimSuspend and VimResume autocommand events. (closes #7450) +Files: runtime/doc/autocmd.txt, src/autocmd.c, src/ex_docmd.c, + src/normal.c, src/testdir/test_suspend.vim, src/vim.h + +Patch 8.2.2129 +Problem: MS-Windows: Checking if a file name is absolute is slow. +Solution: Do not use mch_FullName(). (closes #7033) +Files: src/os_mswin.c + +Patch 8.2.2130 +Problem: Insert mode completion messages end up in message history. +Solution: Set msg_hist_off. (closes #7452) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.2131 +Problem: Vim9: crash when lambda uses same var as assignment. +Solution: Do not let lookup_local change lv_from_outer, make a copy. + (closes #7461) +Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.2132 +Problem: Padding not drawn properly for popup window with title. +Solution: Draw the padding below the title. (closes #7460) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_longtitle_3.dump, + src/testdir/dumps/Test_popupwin_longtitle_4.dump + +Patch 8.2.2133 +Problem: Vim9: checking for a non-empty string is too strict. +Solution: Check for any string. (closes #7447) +Files: src/typval.c, src/proto/typval.pro, src/errors.h, src/filepath.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2134 +Problem: Vim9: get E1099 when autocmd triggered in builtin function. +Solution: Check that did_emsg increased instead of checking that it changed. + (closes #7448) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2135 +Problem: Vim9: #{ still seen as start of dict in some places. +Solution: Remove check for { after #. (closes #7456) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2136 +Problem: Vim9: Using uninitialized variable. +Solution: Initialize "len" to zero. Clean up fnamemodify(). +Files: src/filepath.c + +Patch 8.2.2137 +Problem: Vim9: :echo and :execute give error for empty argument. +Solution: Ignore an empty argument. (closes #7468) +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2138 +Problem: Vim9: "exit_cb" causes Vim to exit. +Solution: Require white space after a command in Vim9 script. (closes #7467) + Also fix that Vim9 style heredoc was not always recognized. +Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_let.vim + +Patch 8.2.2139 +Problem: Vim9: unreachable code in assignment. +Solution: Don't check "new_local" when "has_index" is set. Add test for + wrong type of list index. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2140 +Problem: Build failure with tiny features. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.2141 +Problem: A user command with try/catch may not catch an expression error. +Solution: When an expression fails check for following "|". (closes #7469) +Files: src/eval.c, src/testdir/test_trycatch.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.2142 +Problem: Memory leak when heredoc is not terminated. +Solution: Free heredoc_trimmed. +Files: src/userfunc.c + +Patch 8.2.2143 +Problem: Vim9: dead code in compiling :unlet. +Solution: Don't check for "!" a second time. +Files: src/vim9compile.c + +Patch 8.2.2144 +Problem: Vim9: some corner cases not tested. +Solution: Add a few tests. +Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2145 +Problem: Vim9: concatenating lists does not adjust type of result. +Solution: When list member types differ use "any" member type. + (closes #7473) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2146 +Problem: Vim9: automatic conversion of number to string for dict key. +Solution: Do not convert number to string. (closes #7474) +Files: src/dict.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2147 +Problem: Quickfix window title not updated in all tab pages. +Solution: Update the quickfix window title in all tab pages. (Yegappan + Lakshmanan, closes #7481, closes #7466) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.2148 +Problem: Vim9: crash when user command doesn't match. +Solution: Adjust command index. (closes #7479) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2149 +Problem: Popupwin test for latin1 sometimes fails. +Solution: Wait for the script to finish. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.2150 +Problem: Github actions CI isn't used for all available platforms. +Solution: Update the github workflows. (Ozaki Kiichi, closes #7433) +Files: .coveralls.yml, .github/workflows/ci-windows.yaml, + .github/workflows/ci.yml, .travis.yml, README.md, + ci/build-snd-dummy.sh, ci/setup-xvfb.sh + +Patch 8.2.2151 +Problem: $dir not expanded when configure checks for moonjit. +Solution: Use double quotes instead of single quotes. (closes #7478) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2152 +Problem: screenpos() does not include the WinBar offset. +Solution: Use W_WINROW() instead of directly using w_window. (closes #7487) +Files: src/move.c, src/testdir/test_cursor_func.vim + +Patch 8.2.2153 +Problem: Popupwin test for latin1 still fails sometimes. +Solution: Wait for the "cat" command to finish. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.2154 +Problem: Popupwin test for terminal buffer fails sometimes. +Solution: Wait for the prompt to appear. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.2155 +Problem: Warning from Github actions for code analysis. +Solution: Remove the "git checkout HEAD^2" block. +Files: .github/workflows/codeql-analysis.yml + +Patch 8.2.2156 +Problem: Github actions run on pushing a tag. +Solution: Don't run CI on tag push. Omit coveralls on pull-request. + (Ozaki Kiichi, closes #7489) +Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml + +Patch 8.2.2157 +Problem: Vim9: can delete a Vim9 script variable from a function. +Solution: Check the variable is defined in Vim9 script. (closes #7483) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2158 +Problem: CI on cirrus times out, coveralls doesn't always run. +Solution: Set timeout to 20 minutes. Adjust condition. (closes #7493) +Files: .cirrus.yml, .github/workflows/ci.yml + +Patch 8.2.2159 +Problem: Vim9: when declaring a list it is not allocated yet, causing a + following extend() to fail. +Solution: When fetching a variable value for a list or dict that is null + allocate the list or dict, so it can be used. (closes #7491) +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2160 +Problem: Various typos. +Solution: Fix spelling mistakes. (closes #7494) +Files: src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c, + src/ex_cmds.c, src/feature.h, src/getchar.c, src/gui_haiku.cc, + src/gui_xmdlg.c, src/help.c, src/if_ole.cpp, src/insexpand.c, + src/list.c, src/map.c, src/memline.c, src/normal.c, + src/os_win32.c, src/search.c, src/term.c, + src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim, + src/testdir/test_debugger.vim, src/testdir/test_increment.vim, + src/testdir/test_menu.vim, src/testdir/test_netbeans.vim, + src/testdir/test_popupwin.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim, src/testdir/test_sort.vim, + src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim, + src/testdir/test_vartabs.vim, src/testdir/test_vimscript.vim, + src/textprop.c, src/userfunc.c, src/vim9.h, src/vim9compile.c, + src/vim9execute.c + +Patch 8.2.2161 +Problem: Arguments -T and -x not tested yet. +Solution: Add a test. (Dominique Pellé, closes #7490) +Files: src/testdir/test_startup.vim + +Patch 8.2.2162 +Problem: Vim9: Cannot load or store autoload variables. +Solution: Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485) +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/dict.c, + src/eval.c, src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2163 +Problem: Crash when discarded exception is the current exception. +Solution: Compare the exception with current_exception. (closes #7499) +Files: src/ex_eval.c + +Patch 8.2.2164 +Problem: Vim9: autoload function doesn't work in script that starts with + an upper case letter. +Solution: Check for the autoload character. (closes #7502) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2165 +Problem: Vim9: assignment to dict member does not work. +Solution: Fix recognizing dict member. (closes #7484) +Files: src/ex_docmd.c, src/eval.c, src/evalvars.c, src/vim.h + +Patch 8.2.2166 +Problem: Auto format doesn't work when deleting text. +Solution: Make "x" trigger auto format. (closes #7504) +Files: src/ops.c, src/testdir/test_textformat.vim + +Patch 8.2.2167 +Problem: Vim9: assign test fails. (Elimar Riesebieter) +Solution: Adjust the test for dict assignment. +Files: src/testdir/test_vim9_assign.vim + +Patch 8.2.2168 +Problem: Vim9: error for assigning to dict of dict. +Solution: Remember the destination type. (closes #7506) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2169 +Problem: Vim9: test leaves file behind. +Solution: Rename script files. (Dominique Pellé, closes #7511) + Use try/finally. +Files: src/testdir/test_vim9_script.vim, src/testdir/vim9.vim + +Patch 8.2.2170 +Problem: Vim9: a global function defined in a :def function fails if it + uses the context. +Solution: Create a partial to store the closure context. (see #7410) +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, + src/structs.h, src/testdir/test_vim9_func.vim + +Patch 8.2.2171 +Problem: Valgrind warning for using uninitialized value. +Solution: Do not use "startp" or "endp" unless there is a match. +Files: src/regexp_nfa.c + +Patch 8.2.2172 +Problem: Vim9: number of arguments is not always checked. (Yegappan + Lakshmanan) +Solution: Check number of arguments when calling function by name. +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.2173 +Problem: Vim9: get internal error when assigning to undefined variable. +Solution: Add error message. (closes #7475) +Files: src/vim9compile.c, src/vim9execute.c, src/errors.h, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2174 +Problem: Mac version doesn't specify the CPU architecture. +Solution: Add "arm64" or "x86_64". (Yee Cheng Chin, closes #7519) +Files: src/version.c + +Patch 8.2.2175 +Problem: Github actions: clang-11 handling suboptimal. +Solution: Separate step of installing clang-11. Get ubuntu release name + dynamically. (Ozaki Kiichi, closes #7514) +Files: .github/workflows/ci.yml + +Patch 8.2.2176 +Problem: Crash with a sequence of fold commands. +Solution: Bail out when there are no folds at all. Add a test (Dominique + Pellé) (closes #7515) +Files: src/fold.c, src/testdir/test_fold.vim + +Patch 8.2.2177 +Problem: Pattern "^" does not match if the first character in the line is + combining. (Rene Kita) +Solution: Do accept a match at the start of the line. (closes #6963) +Files: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim + +Patch 8.2.2178 +Problem: Python 3: non-utf8 character cannot be handled. +Solution: Change the string decode. (Björn Linse, closes #1053) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c, + src/testdir/test_python3.vim, src/testdir/test_python2.vim + +Patch 8.2.2179 +Problem: Vim9: crash when indexing a dict with a number. +Solution: Add ISN_STOREINDEX. (closes #7513) +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/errors.h, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2180 +Problem: Vim9: test for error after error is flaky. +Solution: Wait for job to finish instead of a fixed delay. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2181 +Problem: Valgrind warnings for using uninitialized value. +Solution: Do not use "start" or "end" unless there is a match. +Files: src/regexp_nfa.c, src/regexp_bt.c + +Patch 8.2.2182 +Problem: Vim9: value of 'magic' is still relevant. +Solution: Always behave like 'magic' is on in Vim9 script (closes #7509) +Files: src/option.c, src/proto/option.pro, src/arglist.c, src/buffer.c, + src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, + src/insexpand.c, src/normal.c, src/search.c, src/tag.c, + src/structs.h, src/globals.h, src/ex_cmds.h, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2183 +Problem: Vim9: value of 'edcompatible' and 'gdefault' are used. +Solution: Ignore these deprecated options in Vim9 script. (closes #7508) +Files: src/ex_cmds.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2184 +Problem: Vim9: no error when using "2" for a line number. +Solution: Give an error message if the line number is invalid. (closes #7492) +Files: src/typval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_cursor_func.vim + +Patch 8.2.2185 +Problem: BufUnload is not triggered for the quickfix dummy buffer. +Solution: Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517) + Fix white space around "=". +Files: src/quickfix.c, src/testdir/test_autocmd.vim + +Patch 8.2.2186 +Problem: Vim9: error when using 'opfunc'. +Solution: Do not expect a return value from 'opfunc'. (closes #7510) +Files: src/eval.c, src/proto/eval.pro, src/ops.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2187 +Problem: Python 3 test fails sometimes. (Christian Brabandt) +Solution: Accept two SystemError messages. +Files: src/testdir/test_python3.vim + +Patch 8.2.2188 +Problem: Vim9: crash when calling global function from :def function. +Solution: Set the outer context. Define the partial for the context on the + original function. Use a refcount to keep track of which ufunc is + using a dfunc. (closes #7525) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c, + src/proto/vim9execute.pro, src/userfunc.c, src/proto/userfunc.pro, + src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim + +Patch 8.2.2189 +Problem: Cannot repeat a command that uses the small delete register. +Solution: Store the register name instead of the contents. (Christian + Brabandt, closes #7527) +Files: src/ops.c, src/register.c, src/testdir/test_registers.vim + +Patch 8.2.2190 +Problem: Vim9: crash when compiled with EXITFREE. +Solution: Check that df_ufunc is not NULL. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2191 +Problem: Vim9: using wrong name with lambda in nested function. +Solution: Copy the lambda name earlier. (closes #7525) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2192 +Problem: Codecov on github actions fails. +Solution: Revert to codecov script. (Ozaki Kiichi, closes #7529) +Files: Filelist, .github/workflows/ci.yml + +Patch 8.2.2193 +Problem: Vim9: can change constant in :def function. +Solution: Check if a variable is locked. (issue #7526) +Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2194 +Problem: Vim9: cannot use :const or :final at the script level. +Solution: Support using :const and :final. (closes #7526) +Files: src/vim.h, src/evalvars.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2195 +Problem: Failing tests for :const. +Solution: Add missing check for ASSIGN_FINAL. +Files: src/eval.c, src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2196 +Problem: :version output has extra spaces in compile and link command. +Solution: Adjust QUOTESED. (closes #7505) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2197 +Problem: Assert arguments order reversed. +Solution: Swap the arguments. (Christian Brabandt, closes #7531) +Files: src/testdir/test_registers.vim + +Patch 8.2.2198 +Problem: ml_get error when resizing window and using text property. +Solution: Validate botline of the right window. (closes #7528) +Files: src/move.c, src/proto/move.pro, src/textprop.c, + src/testdir/test_textprop.vim + +Patch 8.2.2199 +Problem: First write after setting 'eol' does not have NL added. (Tomáš + Janoušek) +Solution: Only use b_no_eol_lnum when doing a binary write. (closes #7535) +Files: src/bufwrite.c, src/testdir/test_writefile.vim + +Patch 8.2.2200 +Problem: Vim9: lambda without white space around -> is confusing. +Solution: Require white space in a :def function. (issue #7503) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2201 +Problem: Write file test fails on MS-Windows. +Solution: Force edit after setting 'fileformat'. +Files: src/testdir/test_writefile.vim + +Patch 8.2.2202 +Problem: Write file test still fails on MS-Windows. +Solution: Set fileformat with the :edit command +Files: src/testdir/test_writefile.vim + +Patch 8.2.2203 +Problem: Moodle gift files are not recognized. +Solution: Add a filetype pattern. (Delim Temizer) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2204 +Problem: Vim9: using -> both for method and lambda is confusing. +Solution: Use => for lambda in :def function. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2205 +Problem: Vim9: memory leak when parsing lambda fails. +Solution: Clear growarrays. +Files: src/userfunc.c + +Patch 8.2.2206 +Problem: :exe command line completion only works for first argument. +Solution: Skip over text if more is following. (closes #7546) +Files: src/eval.c, src/testdir/test_cmdline.vim + +Patch 8.2.2207 +Problem: Illegal memory access if popup menu items are changed while the + menu is visible. (Tomáš Janoušek) +Solution: Make a copy of the text. (closes #7537) +Files: src/popupmenu.c, src/testdir/test_popup.vim, + src/testdir/dumps/Test_popup_command_04.dump, + src/testdir/dumps/Test_popup_command_05.dump + +Patch 8.2.2208 +Problem: Vim9: after reloading a script variable index may be invalid. +Solution: When the sequence number doesn't match give an error for using a + script-local variable from a compiled function. (closes #7547) +Files: src/vim9.h, src/structs.h, src/errors.h, src/vim9compile.c, + src/vim9execute.c, src/scriptfile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2209 +Problem: Vim9: return type of => lambda not parsed. +Solution: Parse and use the return type. +Files: src/vim9compile.c, src/userfunc.c, src/vim9type.c, + src/proto/vim9type.pro, src/vim9script.c, src/eval.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2210 +Problem: Vim9: allocating a type to set TTFLAG_BOOL_OK. +Solution: Add t_number_bool. +Files: src/globals.h, src/vim9type.c, src/vim9compile.c + +Patch 8.2.2211 +Problem: MS-Windows: can't load Python dll if not in the path. +Solution: Use the InstallPath registry entry. (Kelvin Lee, closes #7540) +Files: src/if_python3.c + +Patch 8.2.2212 +Problem: Vim9: lambda with => does not work at the script level. +Solution: Make it work. +Files: src/eval.c, src/vim9type.c, src/userfunc.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.2213 +Problem: Checking white space around -> is not backwards compatible. +Solution: Only check white space around =>. +Files: src/userfunc.c + +Patch 8.2.2214 +Problem: ":e#" does not give a warning for missing white space. +Solution: Adjust the check for white space. (closes #7545) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2215 +Problem: Vim9: `=expr` not recognized in global command. +Solution: Skip over pattern. (issue #7541) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2216 +Problem: Vim9: range with missing colon can be hard to spot. +Solution: Include the start of the range in the error. (closes #7543) +Files: src/errors.h, src/ex_docmd.c, src/vim9compile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2217 +Problem: Vim9: command modifiers not restored in catch block. +Solution: Restore command modifiers. (closes #7542) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2218 +Problem: Vim9: failure if passing more arguments to a lambda than expected. +Solution: Only put expected arguments on the stack. (closes #7548) +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2219 +Problem: Vim9: method call with expression not supported. +Solution: Implement expr->(expr)(). +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2220 +Problem: Vim9: memory leak when parsing nested parenthesis. +Solution: Clear newargs. +Files: src/userfunc.c + +Patch 8.2.2221 +Problem: If <Down> is mapped on the command line 'wildchar' is inserted. +Solution: Set KeyTyped when using 'wildchar'. (closes #7552) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.2222 +Problem: Vim9: cannot keep script variables when reloading. +Solution: Add the "noclear" argument to :vim9script. +Files: runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c, + src/vim9script.c, src/ex_cmds.h, src/ex_docmd.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2223 +Problem: Vim9: Reloading marks a :def function as deleted. +Solution: Clear the function contents but keep the index. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2224 +Problem: Vim9: crash if script reloaded with different variable type. +Solution: Check the type when accessing the variable. +Files: src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/vim9type.c, + src/proto/vim9type.pro, src/errors.h, src/evalvars.c, + src/vim9script.c, src/proto/vim9script.pro, + src/testdir/test_vim9_script.vim + +Patch 8.2.2225 +Problem: Vim9: error when using :import in legacy script twice. +Solution: Make it possible to redefine an import when reloading. +Files: src/vim9script.c, src/proto/vim9script.pro, src/structs.h, + src/evalvars.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2226 +Problem: Vim9: script test fails. +Solution: Add missing change. +Files: src/scriptfile.c + +Patch 8.2.2227 +Problem: Vim9: recognizing lambda is too complicated. +Solution: Call compile_lambda() and check for NOTDONE. +Files: src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2228 +Problem: Vim9: cannot use ":e #" because # starts a comment. +Solution: Support using %% instead of #. +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2229 +Problem: build failure without the +eval feature. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.2230 +Problem: Vim9: insert completion runs into error. +Solution: Insert colon before range. (closes #7556) +Files: src/insexpand.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2231 +Problem: When "--remote file" is used "file" is not reloaded. +Solution: When a :drop command is used for a file that is already displayed + in a window and it has not been changed, check if it needs to be + reloaded. (closes #7560) +Files: src/ex_cmds.c, src/testdir/test_clientserver.vim + +Patch 8.2.2232 +Problem: Compiler error for falling through into next case. +Solution: Move FALLTHROUGH below the #endif +Files: src/ex_docmd.c + +Patch 8.2.2233 +Problem: Cannot convert a byte index into a character index. +Solution: Add charidx(). (Yegappan Lakshmanan, closes #7561) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/testdir/test_functions.vim + +Patch 8.2.2234 +Problem: Command line wildmenu test often fails with Unix GUI. +Solution: Skip the test where it is expected to fail. +Files: src/testdir/test_cmdline.vim + +Patch 8.2.2235 +Problem: Build failure with some Ruby versions. +Solution: Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes #7564) +Files: ci/config.mk.clang.sed, src/if_ruby.c + +Patch 8.2.2236 +Problem: 'scroll' option can change when setting the statusline or tabline + but the option context is not updated. +Solution: Update the script context when the scroll option is changed as a + side effect. (Christian Brabandt, closes #7533) +Files: runtime/doc/options.txt, src/scriptfile.c, + src/testdir/test_options.vim, src/vim.h, src/window.c + +Patch 8.2.2237 +Problem: CI on Mac fails in sed command. +Solution: Set LC_ALL to "C". (Ozaki Kiichi, closes #7565) +Files: .github/workflows/ci.yml + +Patch 8.2.2238 +Problem: Vim9: cannot load a Vim9 script without the +eval feature. +Solution: Support Vim9 script syntax without the +eval feature. +Files: src/ex_docmd.c, src/vim9script.c, src/globals.h, src/main.c, + src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c, + src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h + +Patch 8.2.2239 +Problem: Vim9: concatenating lines with backslash is inconvenient. +Solution: Support concatenating lines starting with '|', useful for + :autocmd, :command, etc. (closes #6702) +Files: runtime/doc/vim9.txt, src/scriptfile.c, src/vim9script.c, + src/proto/vim9script.pro, src/vim9compile.c, + src/proto/vim9compile.pro, src/userfunc.c, src/structs.h, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2240 +Problem: Clientserver test fails if full path is used. +Solution: Ignore the path preceding the file name. +Files: src/testdir/test_clientserver.vim + +Patch 8.2.2241 +Problem: Build with Ruby and clang may fail. +Solution: Adjust configure and sed script. (Ozaki Kiichi, closes #7566) +Files: ci/config.mk.clang.sed, src/auto/configure, src/configure.ac + +Patch 8.2.2242 +Problem: Vim9: line continuation with bar does not work at script level. +Solution: Check for Vim9 script. +Files: src/structs.h, src/ex_docmd.c, src/userfunc.c, src/scriptfile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2243 +Problem: Crash when popup mask contains zeroes. +Solution: Check boundaries properly. (closes #7569) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.2244 +Problem: Crash when making the window width of the not-current window + negative. +Solution: Make sure the window width is not negative. (closes #7568) +Files: src/window.c, src/testdir/test_window_cmd.vim + +Patch 8.2.2245 +Problem: Vim9: return value of winrestcmd() cannot be executed. +Solution: Put colons before each range. (closes #7571) +Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2246 +Problem: Cursor keys not recognized at the hit-Enter prompt after executing + an external command. +Solution: Change the codes for the extra cursor keys. (closes #7562) + Tune the delays to avoid test flakiness. +Files: runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim + +Patch 8.2.2247 +Problem: VMS: various smaller problems. +Solution: Fix VMS building and other problems. (Zoltan Arpadffy) +Files: src/term.c, src/gui_gtk_vms.h, src/os_vms_conf.h, src/gui_x11.c, + src/Make_vms.mms, src/macros.h, src/gui.h, src/os_unix.h + +Patch 8.2.2248 +Problem: ASAN error on exit with GUI. +Solution: Check the window still has lines. (Christian Brabandt, + closes #7573) +Files: src/term.c + +Patch 8.2.2249 +Problem: Termcodes test is flaky when used over ssh with X forwarding. +Solution: Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576, + closes #7563) +Files: src/testdir/test_termcodes.vim + +Patch 8.2.2250 +Problem: Vim9: sublist is ambiguous. +Solution: Require white space around the colon. (closes #7409) +Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2251 +Problem: Test failures in legacy script. +Solution: Check for Vim9 script. +Files: src/eval.c + +Patch 8.2.2252 +Problem: Vim9: crash when using lambda without return type in dict. +Solution: Without a return type use t_unknown. (closes #7587) +Files: src/vim9type.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2253 +Problem: Vim9: expr test fails. +Solution: Add missing assignment. +Files: src/userfunc.c + +Patch 8.2.2254 +Problem: Vim9: bool option type is number. +Solution: Have get_option_value() return a different value for bool and + number options. (closes #7583) +Files: src/option.h, src/option.c, src/proto/option.pro, src/evalvars.c, + src/if_mzsch.c, src/if_ruby.c, src/spell.c, src/typval.c, + src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2255 (after 8.2.2254) +Problem: Tcl test fails. +Solution: Change option handling. +Files: src/if_tcl.c + +Patch 8.2.2256 +Problem: Vim9: cannot use function( after line break in :def function. +Solution: Check for "(" after "function". (closes #7581) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2257 +Problem: Vim9: using -> for lambda is ambiguous. +Solution: Stop supporting ->, must use =>. +Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2258 +Problem: Not all OCaml related files are detected. +Solution: Update OCaml file type detection. (Markus Mottl, closes #7590) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2259 +Problem: Test_Executable() fails when using chroot. +Solution: Ignore the difference between "sbin" and "bin". +Files: src/testdir/test_functions.vim + +Patch 8.2.2260 +Problem: Window resize test fails in very wide terminal. +Solution: Resize using the 'columns' option. (Vladimir Lomov, closes #7592) +Files: src/testdir/test_window_cmd.vim + +Patch 8.2.2261 +Problem: Vim9: boolean option gets string type. +Solution: Check for VAR_BOOL. (closes #7588) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2262 +Problem: Vim9: converting bool to string prefixes v:. +Solution: Do not use the v: prefix. +Files: src/evalvars.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2263 +Problem: Vim9: compilation error with try-catch in skipped block. +Solution: Do not bail out when generate_instr() returns NULL. (closes #7584) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2264 +Problem: Vim9: no error for mismatched :endfunc or :enddef. +Solution: Check for the mismatch. (issue #7582) +Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2265 +Problem: Error message for missing endfunc/enddef is last line. +Solution: Report the line where the function starts. (closes #7582) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2266 +Problem: Vim9: it can be hard to see where white space is missing. +Solution: Mention the text where the error was seen. (closes #7580) +Files: src/errors.h, src/eval.c, src/evalvars.c, src/userfunc.c, + src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2267 +Problem: Vim9: cannot use unlet for a dict member. +Solution: Pass GLV_NO_DECL to get_lval(). (closes #7585) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2268 +Problem: Vim9: list unpack seen as declaration. +Solution: Check for "var". (closes #7594) +Files: src/vim9compile.c, src/evalvars.c, src/eval.c, src/vim.h, + src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2269 +Problem: Not all :hardcopy code covered by tests. +Solution: Test more combinations. (Dominique Pellé, closes #7595) +Files: src/testdir/test_hardcopy.vim + +Patch 8.2.2270 +Problem: Warning for size_t to int conversion. (Randall W. Morris) +Solution: Add a type cast. +Files: src/vim9execute.c + +Patch 8.2.2271 +Problem: ml_get error when changing hidden buffer in Python. +Solution: Block updating folds. (closes #7598) +Files: src/evalbuffer.c, src/testdir/test_python3.vim + +Patch 8.2.2272 +Problem: Vim9: extend() can violate the type of a variable. +Solution: Add the type to the dictionary or list and check items against it. + (closes #7593) +Files: src/structs.h, src/evalvars.c, src/dict.c, src/list.c, + src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c, + src/vim9execute.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2273 +Problem: Build failure. +Solution: Add missing changes to header file. +Files: src/vim9.h + +Patch 8.2.2274 +Problem: badge for Travis is outdated. +Solution: Update badge for move from travis-ci.org to travis-ci.com. +Files: README.md + +Patch 8.2.2275 +Problem: CTRL-C not recognized in Mintty. +Solution: Recognize the modifyOtherKeys code ending in "u". (Christian + Brabandt, closes #7575) +Files: src/ui.c + +Patch 8.2.2276 +Problem: List of distributed files is outdated. +Solution: Update the file list. Minor comment updates. +Files: Filelist, src/clipboard.c, src/fileio.c, src/option.c, + src/screen.c, src/testdir/test_signals.vim, + src/testdir/Make_vms.mms + +Patch 8.2.2277 +Problem: Missing backslash. +Solution: Add backslash. +Files: Filelist + +Patch 8.2.2278 +Problem: Falling back to old regexp engine can some patterns. +Solution: Do not fall back once [[:lower:]] or [[:upper:]] is used. + (Christian Brabandt, closes #7572) +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim + +Patch 8.2.2279 +Problem: Vim9: memory leak with catch in skipped block. +Solution: Free the pattern if not used. +Files: src/vim9compile.c + +Patch 8.2.2280 +Problem: Fuzzy matching doesn't give access to the scores. +Solution: Return the scores with a third list. (Yegappan Lakshmanan, + closes #7596) +Files: runtime/doc/eval.txt, src/search.c, + src/testdir/test_matchfuzzy.vim + +Patch 8.2.2281 +Problem: Vim9: compiled "wincmd" cannot be followed by bar. +Solution: Check for bar after "wincmd". (closes #7599) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2282 +Problem: Length check mismatch with argument of strncmp(). (Christian + Brabandt) +Solution: Adjust length check. +Files: src/ui.c + +Patch 8.2.2283 +Problem: Vim9: crash when lambda has fewer arguments than expected. +Solution: Don't check arguments when already failed. (closes #7606) +Files: src/vim9type.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2284 +Problem: Vim9: cannot set an option to a boolean value. +Solution: Check for VAR_BOOL. (closes #7603) +Files: src/evalvars.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2285 +Problem: Vim9: cannot set an option to a false. +Solution: For VAR_BOOL use string "0". (closes #7603) +Files: src/evalvars.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2286 +Problem: Sort test fails when locale is Canadian English. (Neil H Watson) +Solution: Expect a different sort order. (closes #7609) +Files: src/testdir/test_sort.vim + +Patch 8.2.2287 +Problem: Sort test fails when locale is French Canadian. +Solution: Expect a different sort order. (Dominique Pellé, closes #7609) +Files: src/testdir/test_sort.vim + +Patch 8.2.2288 +Problem: Vim9: line break and comment not always skipped. +Solution: Skip over white space and then line break more consistently. + (closes #7610) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2289 +Problem: Vim9: 'cpo' can become empty. +Solution: Use empty_option instead of an empty string. Update quickfix + buffer after restoring 'cpo'. (closes #7608) +Files: src/evalfunc.c, src/syntax.c, src/eval.c, src/quickfix.c, + src/evalbuffer.c, src/ex_eval.c, src/gui_motif.c, src/map.c, + src/testdir/test_quickfix.vim + +Patch 8.2.2290 +Problem: Vim9: unlet of global variable cannot be compiled. +Solution: Skip over variables that might be defined later. Give an error if + a subscript is found. (closes #7585) +Files: src/eval.c, src/vim9compile.c, src/vim.h, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2291 +Problem: Vim9: cannot use "null" for v:null. +Solution: Support "null" like "true" and "false". (closes #7495) +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/evalvars.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2292 +Problem: Vim: expr test fails. +Solution: Add missing part of "null" support. +Files: src/eval.c + +Patch 8.2.2293 +Problem: Build failure with Motif. (Tony Mechelynck) +Solution: Use empty_option instead of empty_options. +Files: src/gui_motif.c + +Patch 8.2.2294 +Problem: VMS: a few remaining problems. +Solution: Add VMS specific changes. Add Lua support. (Zoltan Arpadffy) +Files: src/fileio.c, src/os_vms_conf.h, src/Make_vms.mms, src/macros.h, + src/os_vms.c, src/vim9execute.c, src/gui_xmebw.c, src/os_unix.h + +Patch 8.2.2295 +Problem: Incsearch does not detect empty pattern properly. +Solution: Return magic state when skipping over a pattern. (Christian + Brabandt, closes #7612, closes #6420) +Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h, + src/option.c, src/tag.c, src/proto/regexp.pro, src/regexp.c, + src/search.c, src/structs.h, src/vim9compile.c, + src/testdir/dumps/Test_incsearch_sub_01.dump, + src/testdir/dumps/Test_incsearch_sub_02.dump, + src/testdir/test_search.vim + +Patch 8.2.2296 +Problem: Cannot use CTRL-N and CTRL-P in a popup menu. +Solution: Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614) +Files: runtime/doc/popup.txt, src/popupwin.c, + src/testdir/test_popupwin.vim + +Patch 8.2.2297 +Problem: Vim9: cannot set 'number' to a boolean value. +Solution: Use tv_get_bool(). (closes #7615) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2298 +Problem: Vim9: comment right after "(" of function not recognized. +Solution: Do not skip over white space before calling get_function_args(). + (closes #7613) +Files: src/userfunc.c, src/proto/userfunc.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.2299 +Problem: Vim9: invalid memory access making error message flaky. +Solution: Do not check cmd_argt for CMD_USER. (issue #7467) +Files: src/ex_docmd.c, src/vim9execute.c, src/errors.h, + src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2300 +Problem: Vim9: wrong order on type stack when using dict. +Solution: Generate constants before a dict. (closes #7619) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2301 +Problem: Vim9: cannot unlet a dict or list item. +Solution: Add ISN_UNLETINDEX. Refactor assignment code to use for unlet. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2302 +Problem: Vim9: using an option value may use uninitialized memory. +Solution: Clear v_lock. (closes #7620) +Files: src/typval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2303 +Problem: Vim9: backtick expansion doesn't work for :foldopen. +Solution: Do recognize backtick expansion. (closes #7621) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2304 +Problem: Vim9: no test for unletting an imported variable. +Solution: Add a test. Fix line number in error. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2305 +Problem: Vim9: "++var" and "--var" are silently accepted. +Solution: Give an error message. +Files: src/vim9compile.c, src/eval.c, src/proto/eval.pro, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2306 +Problem: Vim9: when using function reference type is not checked. +Solution: When using a function reference lookup the type and check the + argument types. (issue #7629) +Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/structs.h, + src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, + src/vim9execute.c, src/evalvars.c, src/evalfunc.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2307 +Problem: A shell command in the vimrc causes terminal output. +Solution: Do not call starttermcap() after a shell command if the termcap + wasn't active before. +Files: src/ex_cmds.c + +Patch 8.2.2308 +Problem: Vim9: no error when assigning lambda to funcref without return + value. +Solution: Default return value to "any". (closes #7629) +Files: src/userfunc.c, src/vim9compile.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.2309 +Problem: 0o777 not recognized as octal. +Solution: Use vim_isodigit(). (Ken Takata, closes #7633, closes #7631) +Files: src/charset.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.2310 +Problem: Vim9: winsaveview() return type is too generic. +Solution: use dict<number> instead of dict<any>. (closes #7626) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2311 +Problem: Vim9: cannot assign to a variable that shadows a command modifier. +Solution: Check for assignment after possible command modifier. + (closes #7632) +Files: src/vim9compile.c, src/ex_docmd.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2312 +Problem: Build failure with Ruby 3.0 and 32 bits. +Solution: Add #ifdef. (closes #7638) +Files: src/if_ruby.c + +Patch 8.2.2313 +Problem: Vim9: using uninitialized field when parsing range. ":silent!" not + respected when parsing range fails. +Solution: Initialize ea.skip. On pattern failure handle it like an error. + (closes #7636) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2314 +Problem: Vim9: returning zero takes two instructions. +Solution: Add ISN_RETURN_ZERO. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2315 +Problem: Vim9: "enddef" as dict key misinterpreted as function end. +Solution: Check for following colon. (closes #7640) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2316 +Problem: Vim9: cannot list a lambda function. +Solution: Support the <lambda>9 notation, like :disassemble. (closes #7634) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2317 +Problem: Vim9: command modifier before list unpack doesn't work. +Solution: Only recognize "[" directly after the name. (closes #7641) +Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2318 +Problem: Vim9: string and list index work differently. +Solution: Make string index work like list index. (closes #7643) +Files: src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/list.c, + src/proto/vim9execute.pro, src/testdir/test_vim9_expr.vim + +Patch 8.2.2319 +Problem: "exptype_T" can be read as "expected type". +Solution: Rename to "exprtype_T", expression type. +Files: src/eval.c, src/typval.c, src/proto/typval.pro, src/vim9compile.c, + src/proto/vim9compile.pro, src/vim9execute.c, src/structs.h, + src/vim9.h + +Patch 8.2.2320 +Problem: Vim9: no error for comparing bool with string. +Solution: Check for wrong types when comparing. (closes #7639) +Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.2321 +Problem: Vim9: cannot nest closures. +Solution: Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER. + (closes #7150, closes #7635) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/structs.h, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2322 +Problem: Vim9: closure nested limiting to one level. +Solution: Add outer_T. Also make STOREOUTER work. +Files: src/vim9execute.c, src/vim9.h, src/structs.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.2323 +Problem: Vim9: error when inferring type from empty dict/list. +Solution: When the member is t_unknown use t_any. (closes #7009) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2324 +Problem: Not easy to get mark en cursor position by character count. +Solution: Add functions that use character index. (Yegappan Lakshmanan, + closes #7648) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c, + src/evalfunc.c, src/proto/eval.pro, src/tag.c, + src/testdir/test_cursor_func.vim, src/typval.c + +Patch 8.2.2325 +Problem: Vim9: crash if map() changes the item type. +Solution: Check that the item type is still OK. (closes #7652) + Fix problem with mapnew() on range list. +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c, + src/list.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.2326 +Problem: Build error with +eval feature but without +spell. +Solution: Adjust #ifdef. (John Marriott) +Files: src/mbyte.c + +Patch 8.2.2327 +Problem: Debugging code included. +Solution: Remove the debugging code. +Files: src/vim9execute.c + +Patch 8.2.2328 +Problem: Some test files may not be deleted. +Solution: Add a delete() call, correct name. (Dominique Pellé, closes #7654) +Files: src/testdir/test_clientserver.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2329 +Problem: Not all ways Vim can be started are tested. +Solution: Add a test for different program names. (Dominique Pellé, + closes #7651) +Files: src/testdir/test_startup.vim + +Patch 8.2.2330 +Problem: Vim9: crash when using :trow in a not executed block. +Solution: Don't generate the instruction when skipping. (closes #7659) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2331 +Problem: Vim9: wrong error when modifying dict declared with :final. +Solution: Do not check for writable variable when an index follows. + (closes #7657) +Files: src/vim9compile.c, src/structs.h, src/vim9script.c, + src/proto/vim9script.pro, src/evalvars.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2332 +Problem: Vim9: missing :endif not reported when using :windo. +Solution: Pass a getline function to do_cmdline(). (closes #7650) +Files: src/vim9execute.c, src/structs.h, src/scriptfile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2333 +Problem: Vim9: warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize "res". +Files: src/vim9execute.c + +Patch 8.2.2334 +Problem: Pascal-like filetypes not always detected. +Solution: Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns, + closes #7662) +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + runtime/scripts.vim, src/testdir/test_filetype.vim + +Patch 8.2.2335 +Problem: Vim9: "silent return" does not restore command modifiers. +Solution: Restore command modifiers before returning. (closes #7649) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2336 +Problem: Vim9: it is not possible to extend a dictionary with different + item types. +Solution: Add extendnew(). (closes #7666) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2337 +Problem: Configure test for GTK only says "no". (Harm te Hennepe) +Solution: Hint that a -def package is needed. (closes #5229) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2338 +Problem: Vim9: no error if using job_info() result wrongly. +Solution: Adjust return type on number of arguments. (closes #7667) +Files: src/evalfunc.c, src/globals.h, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2339 +Problem: Cannot get the type of a value as a string. +Solution: Add typename(). +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vimscript.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2340 +Problem: win_execute() unexpectedly returns number zero when failing. +Solution: Return an empty string. (closes #7665) +Files: src/evalwindow.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_execute_func.vim + +Patch 8.2.2341 +Problem: Expression command line completion shows variables but not + functions after "g:". (Gary Johnson) +Solution: Prefix "g:" when needed to a global function. +Files: src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_cmdline.vim + +Patch 8.2.2342 +Problem: "char" functions return the wrong column in Insert mode when the + cursor is beyond the end of the line. +Solution: Compute the column correctly. (Yegappan Lakshmanan, closes #7669) +Files: src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim + +Patch 8.2.2343 +Problem: Vim9: return type of readfile() is any. +Solution: Add readblob() so that readfile() can be expected to always + return a list of strings. (closes #7671) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/filepath.c, src/proto/filepath.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2344 +Problem: Using inclusive index for slice is not always desired. +Solution: Add the slice() method, which has an exclusive index. (closes + #7408) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/eval.c, src/proto/eval.pro, src/vim9execute.c, + src/proto/vim9execute.pro, src/list.c, src/proto/list.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2345 +Problem: No focus events in a terminal. +Solution: Add the t_fd and t_fe termcap entries and implement detecting + focus events. (Hayaki Saito, Magnus Groß, closes #7673, + closes #609, closes #5526) +Files: runtime/doc/term.txt, src/optiondefs.h, src/term.c, src/term.h + +Patch 8.2.2346 +Problem: Codecov reports every little coverage drop. +Solution: Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki + Kiichi, closes #7678) +Files: .appveyor.yml, appveyor.yml, .codecov.yml + +Patch 8.2.2347 +Problem: Build failure without GUI. +Solution: Add #ifdef. +Files: src/term.c + +Patch 8.2.2348 (after 8.2.2345) +Problem: No check for modified files after focus gained. (Mathias Stearn) +Solution: Call ui_focus_change(). +Files: src/term.c, src/ui.c + +Patch 8.2.2349 +Problem: Vim9: cannot handle line break after parenthesis at line end. +Solution: Skip over line break. (closes #7677) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2350 +Problem: Using "void" for no reason. +Solution: Use "char *". +Files: src/ex_docmd.c + +Patch 8.2.2351 +Problem: Vim9: error message for "throw" in function that was called with + "silent!". +Solution: Do not throw the exception when not caught or displayed. + (closes #7672) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2352 +Problem: If the focus lost/gained escape sequence is received twice it is + not ignored. (Christ van Willegen) +Solution: Adjust the logic to ignore the escape code. +Files: src/term.c + +Patch 8.2.2353 +Problem: Sparql files are not detected. +Solution: Add the sparql filetype. (closes #7679) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2354 +Problem: Crash with a weird combination of autocommands. +Solution: Increment b_nwindows when needed. (closes #7674) +Files: src/ex_cmds.c, src/buffer.c, src/proto/buffer.pro, + src/testdir/test_autocmd.vim + +Patch 8.2.2355 +Problem: Stray test failure on Appveyor. +Solution: Finish insert command. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.2356 +Problem: Vim9: ":put =expr" does not handle a list properly. +Solution: Use the same logic as eval_to_string_eap(). (closes #7684) +Files: src/vim9execute.c, src/eval.c, src/proto/eval.pro, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2357 +Problem: Vim9: crash when parsing function return type fails. +Solution: Bail out and set return type to "unknown". (closes #7685) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2358 +Problem: Wrong #ifdef for use_xterm_like_mouse(). +Solution: Use FEAT_MOUSE_XTERM. +Files: src/term.c + +Patch 8.2.2359 +Problem: Strange test failure with MS-Windows. +Solution: Skip the system() call for now. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.2360 +Problem: Test leaves file behind. +Solution: Delete the right file. (Dominique Pellé, closes #7689) +Files: src/testdir/test_filetype.vim + +Patch 8.2.2361 +Problem: Vim9: no highlight for "s///gc" when using 'opfunc'. +Solution: Reset 'lazyredraw' temporarily. (closes #7687) +Files: src/ex_cmds.c + +Patch 8.2.2362 +Problem: Vim9: check of builtin function argument type is incomplete. +Solution: Use need_type() instead of check_arg_type(). +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/evalfunc.c, + src/proto/evalfunc.pro, src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2363 +Problem: curpos() does not accept a string argument as before. +solution: Make a string argument work again. (Yegappan Lakshmanan, + closes #7690) +Files: src/evalfunc.c, src/testdir/test_cursor_func.vim + +Patch 8.2.2364 +Problem: Vim9: line break in lambda accesses freed memory. +Solution: Make a copy of the return type. (closes #7664) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2365 +Problem: Vim9: no check for map() changing item type at script level. +Solution: Check the new value type. +Files: src/list.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2366 +Problem: When using ":sleep" the cursor is always displayed. +Solution: Do not display the cursor when using ":sleep!". (Jeremy Lerner, + closes #7688) +Files: runtime/doc/index.txt, runtime/doc/various.txt, src/ex_cmds.h, + src/ex_docmd.c, src/normal.c, src/proto/ex_docmd.pro, src/term.c, + src/testdir/Make_all.mak, src/testdir/test_sleep.vim + +Patch 8.2.2367 +Problem: Test failures on some less often used systems. +Solution: Adjust printf formats and types. (James McCoy, closes #7691) +Files: src/errors.h, src/evalfunc.c, src/list.c, src/vim9execute.c + +Patch 8.2.2368 +Problem: Insufficient tests for setting options. +Solution: Add a few tests. (Dominique Pellé, closes #7695) +Files: src/testdir/test_options.vim + +Patch 8.2.2369 +Problem: Vim9: functions return true/false but can't be used as bool. +Solution: Add ret_number_bool(). (closes #7693) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2370 +Problem: Vim9: command fails in catch block. +Solution: Reset force_abort and need_rethrow. (closes #7692) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2371 +Problem: Vim9: crash when using types in :for with unpack. +Solution: Check for skip_var_list() failing. Pass include_type to + skip_var_one(). Skip type when compiling. (closes #7694) +Files: src/vim9compile.c, src/evalvars.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2372 (after 8.2.2371) +Problem: Confusing error message for wrong :let command. +Solution: Only check for type in Vim9 script. +Files: src/evalvars.c + +Patch 8.2.2373 +Problem: Vim9: list assignment only accepts a number index. +Solution: Accept "any" and do a runtime type check. (closes #7694) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2374 +Problem: Accessing uninitialized memory in test_undo. +Solution: Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé, + closes #7697) +Files: src/edit.c + +Patch 8.2.2375 +Problem: Test for RGB color skipped in the terminal. +Solution: Run the GUI if possible. +Files: src/testdir/test_highlight.vim + +Patch 8.2.2376 +Problem: Vim9: crash when dividing by zero in compiled code using + constants. +Solution: Call num_divide() and num_modulus(). (closes #7704) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2377 +Problem: Vim9: crash when using a range after another expression. +Solution: Set the variable type to number. Fix using :put with a range and + the "=" register. (closes #7706) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2378 +Problem: Vim9: no error message for dividing by zero. +Solution: Give an error message. (issue #7704) +Files: src/errors.h, src/eval.c, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2379 +Problem: Finding spell suggestions twice if 'spellsuggest' contains number. +Solution: Only do internal suggestions once. (closes #7713) +Files: src/spellsuggest.c + +Patch 8.2.2380 +Problem: Vim9: occasional crash when using try/catch and a timer. +Solution: Save and restore "need_rethrow" when invoking a timer callback. + (closes #7708) +Files: src/time.c + +Patch 8.2.2381 +Problem: Vim9: divide by zero does not abort expression execution. +Solution: Use a "failed" flag. (issue #7704) +Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/vim9compile.c, + src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim + +Patch 8.2.2382 (after 8.2.2381) +Problem: Build failure. +Solution: Add missing changes. +Files: src/vim9execute.c + +Patch 8.2.2383 +Problem: Focus escape sequences are not named in ":set termcap" output. +Solution: Add the names to the list. (closes #7718) +Files: src/misc2.c + +Patch 8.2.2384 +Problem: Turtle filetype not recognized. +Solution: Add a rule to detect turtle files. (closes #7722) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2385 +Problem: "gj" and "gk" do not work correctly when inside a fold. +Solution: Move check for folding. (closes #7724, closes #4095) +Files: src/normal.c, src/testdir/test_fold.vim + +Patch 8.2.2386 +Problem: Vim9: crash when using ":silent! put". +Solution: When ignoring an error for ":silent!" rewind the stack and skip + ahead to restoring the cmdmod. (closes #7717) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2387 +Problem: Runtime type check does not mention argument index. +Solution: Add ct_arg_idx. (closes #7720) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2388 +Problem: No easy way to get the maximum or minimum number value. +Solution: Add v:numbermax and v:numbermin. +Files: src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim, + runtime/doc/eval.txt + +Patch 8.2.2389 +Problem: Test failure on a few systems. +Solution: Avoid that "char" value is negative. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h + +Patch 8.2.2390 +Problem: Vim9: using positive offset is unexpected. +Solution: Use int8_T instead of char. (James McCoy) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c + +Patch 8.2.2391 +Problem: Memory leak when creating a global function with closure. +Solution: Create a separate partial for every instantiated function. +Files: src/userfunc.c, src/vim9execute.c + +Patch 8.2.2392 +Problem: Fennel filetype not recognized. +Solution: Detect with pattern and hashbang. (Chinmay Dalal, closes #7729) +Files: runtime/filetype.vim, runtime/scripts.vim, + src/testdir/test_filetype.vim + +Patch 8.2.2393 +Problem: Vim9: error message when script line starts with "[{". +Solution: Do not give an error for checking for end of list. +Files: src/dict.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2394 +Problem: Vim9: min() and max() return type is "any". +Solution: Use return type "number". (closes #7728) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2395 +Problem: Vim9: error for wrong type may report wrong line number. +Solution: Save and restore the line number when evaluating the expression. + (closes #7727) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2396 +Problem: Vim9: no white space allowed before "->". +Solution: Allow for white space. (closes #7725) +Files: src/ex_docmd.c, src/eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2397 +Problem: Vim9: "%%" not seen as alternate file name for commands with a + buffer name argument. +Solution: Recognize "%%" like "#". (closes #7732) +Files: src/buffer.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2398 (after 8.2.2396) +Problem: Method test fails. +Solution: Adjust test for allowed white space. +Files: src/testdir/test_method.vim + +Patch 8.2.2399 (after 8.2.2385) +Problem: Fold test fails in wide terminal. +Solution: Adjust the test. (Dominique Pelle, closes #7731, closes #7739) +Files: src/testdir/test_fold.vim + +Patch 8.2.2400 +Problem: Vim9: compiled functions are not profiled. +Solution: Add initial changes to profile compiled functions. Fix that a + script-local function was hard to debug. +Files: runtime/doc/repeat.txt, src/vim9.h, src/vim9compile.c, + src/vim9execute.c, src/userfunc.c, src/proto/vim9compile.pro, + src/structs.h, src/vim9type.c, src/debugger.c, src/ex_cmds.h, + src/ex_docmd.c, src/profiler.c, src/proto/profiler.pro, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_profile.vim + +Patch 8.2.2401 +Problem: Build fails without +profiling feature. +Solution: Add #ifdefs. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/structs.h, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2402 +Problem: Some filetypes not detected. +Solution: Detect Ruby Signature and Puppet related files. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2403 +Problem: Vim9: profiling if/elseif/endif not correct. +Solution: Add profile instructions. Fix that "elseif" was wrong. +Files: src/vim9compile.c, src/testdir/test_profile.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2404 +Problem: Vim9: profiling try/catch not correct. +Solution: Add profile instructions. Fix that "entry" did not rethrow an + exception. +Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim + +Patch 8.2.2405 +Problem: Vim9: no need to allow white space before "(" for :def. +Solution: Give an error for stray white space. (issue #7734) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2406 +Problem: Vim9: profiled :def function leaks memory. +Solution: Delete the profiled instructions. +Files: src/vim9compile.c + +Patch 8.2.2407 +Problem: Old jumplist code is never used. +Solution: Delete the dead code. (Yegappan Lakshmanan, closes #7740) +Files: src/mark.c + +Patch 8.2.2408 +Problem: MinGW: "--preprocessor" flag no longer supported. +Solution: Remove the flag, use the defaults. (Christopher Wellons, + closes #7741) +Files: src/GvimExt/Make_ming.mak, src/Make_cyg_ming.mak + +Patch 8.2.2409 +Problem: Vim9: profiling only works for one function. +Solution: Select the right instructions when calling and returning. + (closes #7743) +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/testdir/test_profile.vim + +Patch 8.2.2410 +Problem: Build failure without the +profiling feature. +Solution: Add dummy argument to macro. +Files: src/vim9.h + +Patch 8.2.2411 +Problem: Profile test fails on MS-Windows. +Solution: Do the profiling in a separate Vim command. +Files: src/testdir/test_profile.vim + +Patch 8.2.2412 +Problem: Not all fields in "cstack" are initialized which might cause a + crash. +Solution: Use CLEAR_FIELD(). +Files: src/ex_docmd.c + +Patch 8.2.2413 +Problem: Crash when using :all while using a cmdline window. (Zdenek Dohnal) +Solution: Disallow :all from the cmdline window. +Files: src/arglist.c, src/ex_getln.c, src/testdir/test_arglist.vim + +Patch 8.2.2414 +Problem: Using freed memory when closing the cmdline window. +Solution: Check the window is still valid. +Files: src/ex_getln.c + +Patch 8.2.2415 +Problem: No way to check for the cmdwin feature, cmdline_hist is now always + enabled. +Solution: Add has('cmdwin') support. Skip arglist test on Windows + temporarily. +Files: runtime/doc/cmdline.txt, src/evalfunc.c, + src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim, + src/testdir/test_cmdline.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_normal.vim, src/testdir/test_tabpage.vim, + src/testdir/test_termcodes.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.2416 +Problem: May get stuck in command line window state. +Solution: Reset "cmdwin_type" when editing buffer fails. Make arglist test + pass on MS-Windows. +Files: src/ex_getln.c, src/testdir/test_arglist.vim + +Patch 8.2.2417 +Problem: Condition stack values may be used when not set. +Solution: Clear cs_script_var_len and cs_block_id just in case they get used + later. (issue #7733) +Files: src/ex_eval.c + +Patch 8.2.2418 +Problem: Color not changed if ModeMsg highlight is set in InsertEnter + autocmd event. (Paul Swanson) +Solution: Call highlight_changed() after triggering InsertEnter. + (closes #7751) +Files: src/edit.c + +Patch 8.2.2419 +Problem: Autocmd test was failing on MS-Windows with GUI. +Solution: Remove stray feedkeys(). +Files: src/testdir/test_autocmd.vim + +Patch 8.2.2420 +Problem: Too many problems with using all autocommand events. +Solution: Disallow defining an autocommand for all events. +Files: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim, + src/testdir/test_quickfix.vim, src/testdir/test_window_cmd.vim + +Patch 8.2.2421 +Problem: Double free when using autocommand with "argdel". (Houyunsong) +Solution: Add the arglist_locked flag. +Files: src/arglist.c, src/testdir/test_autocmd.vim + +Patch 8.2.2422 +Problem: Crash when deleting with line number out of range. (Houyunsong) +Solution: Avoid using a negative line number. +Files: src/normal.c, src/testdir/test_ex_mode.vim + +Patch 8.2.2423 (after 8.2.2422) +Problem: Missing error message. +Solution: Add the error message. +Files: src/errors.h + +Patch 8.2.2424 +Problem: Some tests are known to cause an error with ASAN. +Solution: Add CheckNotAsan. +Files: src/testdir/check.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_memory_usage.vim, src/testdir/test_ex_mode.vim + +Patch 8.2.2425 +Problem: Cursor on invalid line with range and :substitute. +Solution: Do not move the cursor when skipping commands. (closes #3434) +Files: src/ex_cmds.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.2426 +Problem: Allowing 'completefunc' to switch windows causes trouble. +Solution: use "textwinlock" instead of "textlock". +Files: src/insexpand.c, src/testdir/test_ins_complete.vim, + src/testdir/test_popup.vim + +Patch 8.2.2427 +Problem: Can still switch windows for 'completefunc'. +Solution: Also disallow switching windows for other completions. +Files: src/insexpand.c, src/testdir/test_ins_complete.vim, + src/testdir/test_popup.vim + +Patch 8.2.2428 +Problem: FocusGained does not work when 'ttymouse' is empty. +Solution: Don't use the short mouse code if there is a longer matching code. + (closes #7755) Add a test. +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.2429 +Problem: :goto does not work correctly with text properties. (Sam McCall) +Solution: Add a test. (Andrew Radev) Also use the text property size when + computing the remaining offset. (closes #5930) +Files: src/memline.c, src/testdir/test_textprop.vim + +Patch 8.2.2430 +Problem: :vimgrep expands wildcards twice. +Solution: Do not expand wildcards a second time. +Files: src/quickfix.c, src/arglist.c, src/testdir/test_quickfix.vim + +Patch 8.2.2431 +Problem: Warning for -fno-strength-reduce with Clang 11. +Solution: Adjust check for clang version number. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2432 +Problem: Libvterm tests are executed even when libtool doesn't work. +Solution: Only run libvterm tests if /usr/bin/gcc exists. +Files: src/Makefile + +Patch 8.2.2433 +Problem: Opening cmdline window gives error in BufLeave autocommand. +Solution: Reset cmdwin_type when triggering the autocommand. +Files: src/ex_cmds.c, src/testdir/test_cmdline.vim + +Patch 8.2.2434 +Problem: Vim9: no error when compiling str2nr() with a number. +Solution: Add argument type checks. (closes #7759) +Files: src/evalfunc.c, src/typval.c, src/proto/typval.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2435 +Problem: setline() gives an error for some types. +Solution: Allow any type, convert each item to a string. +Files: runtime/doc/eval.txt, src/evalbuffer.c, src/typval.c, + src/proto/typval.pro, src/debugger.c, src/vim9execute.c, + src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2436 +Problem: Vim9 script test is a bit flaky. +Solution: Wait longer for exit callback. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2437 +Problem: Deprecation warnings with default configuration. +Solution: Add -Wno-deprecated-declarations. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2438 +Problem: Out of bounds compiler warning. +Solution: Increase the size of uf_name. +Files: src/structs.h + +Patch 8.2.2439 +Problem: Not easy to figure out what packages to get when installing Vim on + a new Ubuntu system. +Solution: Mention explicit commands that are easy to follow. +Files: src/INSTALL + +Patch 8.2.2440 +Problem: Documentation based on patches is outdated. +Solution: Add changes to documentation in a patch. +Files: runtime/doc/arabic.txt, runtime/doc/autocmd.txt, + runtime/doc/change.txt, runtime/doc/channel.txt, + runtime/doc/cmdline.txt, runtime/doc/debugger.txt, + runtime/doc/develop.txt, runtime/doc/digraph.txt, + runtime/doc/editing.txt, runtime/doc/eval.txt, + runtime/doc/filetype.txt, runtime/doc/ft_sql.txt, + runtime/doc/gui.txt, runtime/doc/gui_w32.txt, + runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt, + runtime/doc/helphelp.txt, runtime/doc/help.txt, + runtime/doc/if_lua.txt, runtime/doc/if_mzsch.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/mlang.txt, + runtime/doc/motion.txt, runtime/doc/netbeans.txt, + runtime/doc/options.txt, runtime/doc/os_dos.txt, + runtime/doc/os_haiku.txt, runtime/doc/os_unix.txt, + runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, + runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt, + runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt, + runtime/doc/pi_tar.txt, runtime/doc/pi_vimball.txt, + runtime/doc/pi_zip.txt, runtime/doc/popup.txt, + runtime/doc/print.txt, runtime/doc/quickfix.txt, + runtime/doc/quickref.txt, runtime/doc/recover.txt, + runtime/doc/remote.txt, runtime/doc/repeat.txt, + runtime/doc/rileft.txt, runtime/doc/sign.txt, + runtime/doc/spell.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_03.txt, runtime/doc/usr_04.txt, + runtime/doc/usr_05.txt, runtime/doc/usr_07.txt, + runtime/doc/usr_08.txt, runtime/doc/usr_10.txt, + runtime/doc/usr_11.txt, runtime/doc/usr_20.txt, + runtime/doc/usr_22.txt, runtime/doc/usr_23.txt, + runtime/doc/usr_24.txt, runtime/doc/usr_27.txt, + runtime/doc/usr_30.txt, runtime/doc/usr_31.txt, + runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, + runtime/doc/usr_42.txt, runtime/doc/usr_44.txt, + runtime/doc/usr_45.txt, runtime/doc/usr_46.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/vi_diff.txt, + runtime/doc/vim9.txt, runtime/doc/visual.txt, + runtime/doc/windows.txt + +Patch 8.2.2441 +Problem: Vim9: extend() does not give an error for a type mismatch. +Solution: Check the type of the second argument. (closes #7760) +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2442 +Problem: Automatic GUI selection does not check for GTK 3. +Solution: Make SKIP_GTK3 empty for automatic GUI support. Set SKIP_GTK3 to + YES when checking for GTK2. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2443 +Problem: Vim9: no compile time error for wrong str2float argument. +Solution: Check argument type. (closes #7759) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2444 +Problem: Vim9: compile error with combination of operator and list. +Solution: Generate constants before parsing a list or dict. (closes #7757) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2445 +Problem: Vim9: no proper error for lambda missing return type. +Solution: Check for this error. (closes #7758) +Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2446 +Problem: Setting 'term' empty has different error if compiled with GUI. +Solution: Insert "else". (closes #7766) +Files: src/optionstr.c, src/testdir/test_options.vim + +Patch 8.2.2447 +Problem: 'foldlevel' not applied to folds restored from session. +Solution: Set 'foldlevel' after creating the folds. (closes #7767) +Files: src/fold.c, src/testdir/test_mksession.vim + +Patch 8.2.2448 +Problem: Compilation error with Ruby 3.0. +Solution: Adjust #ifdefs and declaration. (Ken Takata, closes #7761) +Files: src/if_ruby.c + +Patch 8.2.2449 +Problem: Vim9: flatten() always changes the list type. +Solution: Disallow using flatten() and add flattennew(). +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/list.c, src/proto/list.pro, src/errors.h, src/vim9compile.c, + src/testdir/test_flatten.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2450 +Problem: MS-Windows: ADS was not preserved if 'backupcopy' is "yes". +Solution: Copy ADS before truncating the file. (Ken Takata, closes #7762) +Files: src/bufwrite.c + +Patch 8.2.2451 +Problem: MS-Windows: Extended Attributes not preserved. +Solution: Preserve Extended Attributes when writing a file. (Ken Takata, + closes #7765) +Files: src/os_win32.c + +Patch 8.2.2452 +Problem: No completion for the 'filetype' option. +Solution: Add filetype completion. (Martin Tournoij, closes #7747) +Files: src/option.c, src/optiondefs.h, src/testdir/test_options.vim + +Patch 8.2.2453 +Problem: Vim9: a variable name with "->" in the next line doesn't work. +Solution: Recognize a variable name by itself. (closes #7770) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2454 +Problem: Leading space can not be made visible. +Solution: Add "lead:" to 'listchars'. (closes #7772) +Files: runtime/doc/options.txt, src/drawline.c, src/globals.h, + src/message.c, src/screen.c, src/testdir/test_listchars.vim + +Patch 8.2.2455 +Problem: Vim9: key type that can be used for literal dict and indexing is + inconsistent. +Solution: Allow using number and bool as key for a literal dict. (#7771) +Files: runtime/doc/vim9.txt, src/dict.c, src/eval.c, src/vim9compile.c, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2456 +Problem: Coverity warning for strcpy() into fixed size array. +Solution: Add a type cast to hopefully silence the bogus warning. +Files: src/userfunc.c + +Patch 8.2.2457 +Problem: Coverity warns for memory leak. +Solution: Free memory when out of memory. +Files: src/if_cscope.c + +Patch 8.2.2458 +Problem: Coverity warns for :retab using freed memory. +Solution: Use the updated line pointer when moving text properties. +Files: src/indent.c + +Patch 8.2.2459 +Problem: Coverity reports dead code. +Solution: Remove the dead code. +Files: src/eval.c + +Patch 8.2.2460 +Problem: Coverity warns for unused value. +Solution: Do not reset the return value to OK. +Files: src/vim9compile.c + +Patch 8.2.2461 +Problem: Coverity warns for unchecked return value. +Solution: Add "(void)" to avoid the warning. +Files: src/vim9execute.c + +Patch 8.2.2462 +Problem: Coverity warns for not checking for fseek() error. +Solution: Give an error message if fseek() fails. +Files: src/spellfile.c + +Patch 8.2.2463 +Problem: Using :arglocal in an autocommand may use freed memory. + (houyunsong) +Solution: Check if the arglist is locked. +Files: src/arglist.c, src/testdir/test_autocmd.vim + +Patch 8.2.2464 +Problem: Using freed memory if window closed in autocommand. (houyunsong) +Solution: Check the window still exists. +Files: src/ex_cmds.c, src/testdir/test_autocmd.vim + +Patch 8.2.2465 +Problem: Using freed memory in :psearch. (houyunsong) +Solution: Check the current window is still valid. Fix flaky test. +Files: src/search.c, src/testdir/test_autocmd.vim + +Patch 8.2.2466 +Problem: Max() and min() can give many error messages. +Solution: Bail out at the first error. (closes #1039, closes #7778) +Files: src/evalfunc.c, src/testdir/test_functions.vim + +Patch 8.2.2467 +Problem: Script generated by :mkview changes alternate file. +Solution: Only write :balt in the session file. (Harish Rajagopal, + closes #7779) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.2468 +Problem: Not easy to get the full command name from a shortened one. +Solution: Add fullcommand(). (Martin Tournoij, closes #7777) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/ex_docmd.c, src/proto/evalfunc.pro, + src/testdir/test_cmdline.vim + +Patch 8.2.2469 +Problem: Confusing error if :winsize has a wrong argument. +Solution: Quote the argument in the error. (closes #2523) +Files: src/ex_docmd.c, src/testdir/test_excmd.vim + +Patch 8.2.2470 +Problem: Popup_getoptions() does not get textprop from other tab. +Solution: use win_valid_any_tab(). (closes #7786) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.2471 +Problem: Popup_setoptions() does not set textprop in other tab. +Solution: use win_valid_any_tab(). (closes #7788) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.2472 +Problem: Crash when using command line window in an autocommand. + (houyunsong) +Solution: Save and restore au_new_curbuf. +Files: src/ex_cmds.c, src/testdir/test_autocmd.vim + +Patch 8.2.2473 +Problem: Crash when leaving command line window triggers autocommand. + (houyunsong) +Solution: Make sure not to close the current window or buffer. +Files: src/ex_getln.c, src/testdir/test_autocmd.vim + +Patch 8.2.2474 +Problem: Using freed memory when window is closed by autocommand. + (houyunsong) +Solution: Check the window pointer is still valid. +Files: src/quickfix.c, src/testdir/test_autocmd.vim + +Patch 8.2.2475 +Problem: Autocommand tests hangs on MS-Windows. +Solution: Skip one test. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.2476 +Problem: Using freed memory when using an autocommand to split a window + while a buffer is being closed. +Solution: Disallow splitting when the buffer has b_locked_split set. +Files: src/buffer.c, src/window.c, src/errors.h, src/structs.h, + src/popupwin.c, src/testdir/test_autocmd.vim + +Patch 8.2.2477 +Problem: Autocommand tests hang on MS-Windows. +Solution: Skip a couple of tests. Fix file name. +Files: src/testdir/test_autocmd.vim + +Patch 8.2.2478 +Problem: MS-Windows: backup files for plugins are loaded. +Solution: Do not use the alternate file name for files ending in "~". +Files: src/filepath.c + +Patch 8.2.2479 +Problem: set/getbufline test fails without the job feature. +Solution: Check whether the job feature is supported. (Dominique Pellé, + closes #7790) +Files: src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2480 +Problem: Vim9: some errors for white space do not show context. +Solution: Include the text at the error. +Files: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, + src/vim9compile.c, src/vim9script.c, src/vim9type.c + +Patch 8.2.2481 +Problem: Vim9: confusing error when variable arguments have a default + value. +Solution: Give a specific error message. (closes #7793) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2482 +Problem: Build error. +Solution: Add new error message. +Files: src/errors.h + +Patch 8.2.2483 +Problem: Vim9: type error for malformed expression. +Solution: Check for end of command before checking type. (closes #7795) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2484 +Problem: Vim9: Cannot use a comment starting with #{ after an expression. +Solution: Remove the check for "{" since #{ dictionaries are not supported. +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2485 +Problem: When sourcing a script again the script version isn't reset. +Solution: Set sn_version to one when sourcing a script again. Clear + sn_save_cpo properly. (closes #7608) +Files: src/scriptfile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2486 +Problem: Vim9: some errors for white space do not show context. +Solution: Include the text at the error. +Files: src/errors.h, src/dict.c, src/list.c, src/userfunc.c, + src/vim9compile.c, src/vim9type.c + +Patch 8.2.2487 +Problem: Terminal shows garbage after double-wide character with a + combining character. (Kyoichiro Yamada) +Solution: Libvterm: do not add the width of the combining character to the + glyph width. (closes #7801) +Files: src/libvterm/src/state.c, src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_combining.dump + +Patch 8.2.2488 +Problem: json_encode() gives generic argument error. +Solution: Mention the type that can't be encoded. (issue #7802) +Files: src/json.c, src/errors.h, src/testdir/test_json.vim + +Patch 8.2.2489 +Problem: current buffer is wrong after deletebufline() fails to delete a + line in another buffer. +Solution: Restore the current buffer. +Files: src/evalbuffer.c, src/testdir/test_bufline.vim + +Patch 8.2.2490 +Problem: 'wrap' option is always reset when starting diff mode. +Solution: Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797) +Files: runtime/doc/diff.txt, runtime/doc/options.txt, src/diff.c, + src/testdir/test_diffmode.vim + +Patch 8.2.2491 +Problem: Popup window for text property may show in first screen line. +Solution: If the text position is invisible do not show the popup window. + (closes #7807) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popup_prop_not_visible_01.dump, + src/testdir/dumps/Test_popup_prop_not_visible_02.dump, + src/testdir/dumps/Test_popup_prop_not_visible_03.dump + +Patch 8.2.2492 +Problem: Command line buffer name cannot be translated. +Solution: Add _(). (Gabriel Dupras, closes #7812) +Files: src/ex_getln.c + +Patch 8.2.2493 +Problem: Text property for text left of window shows up. +Solution: Check if the text property ends before the current column. + (closes #7806) +Files: src/drawline.c, src/testdir/test_textprop.vim, + src/testdir/dumps/Test_textprop_nowrap_01.dump, + src/testdir/dumps/Test_textprop_nowrap_02.dump + +Patch 8.2.2494 +Problem: ":rviminfo!" clears most of oldfiles. +Solution: Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781) +Files: src/viminfo.c, src/vim.h + +Patch 8.2.2495 +Problem: Text jumps up and down when moving the cursor in a small window + with wrapping text and 'scrolloff' set. +Solution: Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre, + closes #7813) +Files: src/move.c, src/testdir/test_breakindent.vim + +Patch 8.2.2496 (after 8.2.2495) +Problem: Insufficient testing for text jumping fix. +Solution: Add another test case. +Files: src/testdir/test_breakindent.vim + +Patch 8.2.2497 +Problem: No error when using more than one character for a register name. +Solution: In Vim9 script check for a single character string. (closes #7814) + Fix that VAR_BOOL and VAR_SPECIAL are not considered equal. +Files: src/errors.h, src/evalfunc.c, src/typval.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2498 +Problem: No test for what 8.2.2494 fixes. +Solution: Add a simple change to test the fix. (closes #7818) +Files: src/testdir/test_viminfo.vim + +Patch 8.2.2499 +Problem: "vim -g --version" does not redirect output. +Solution: Reset gui.starting when showing version info. (closes #7815) +Files: src/main.c, src/testdir/test_version.vim + +Patch 8.2.2500 (after 8.2.2499) +Problem: Build fails without the GUI feature. +Solution: Add #ifdef. +Files: src/main.c + +Patch 8.2.2501 +Problem: Not always clear where an error is reported. +Solution: Add the where_T structure and pass it around. (closes #7796) +Files: src/structs.h, src/vim9type.c, src/proto/vim9type.pro, + src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/eval.c, + src/proto/eval.pro, src/vim9execute.c, src/vim9script.c, + src/proto/vim9script.pro, src/dict.c, src/list.c, + src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2502 +Problem: A few github actions are failing. +Solution: Install setuptools-rust. (closes #7823) +Files: .github/workflows/ci.yml + +Patch 8.2.2503 +Problem: Vim9: a caught error may leave something on the stack. +Solution: Drop items from the stack if needed. (closes #7826) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2504 +Problem: Vim9: crash when using an argument from a closure. +Solution: Check if gen_load_outer is NULL. (closes #7821) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2505 +Problem: Vim9: crash after defining function with invalid return type. +Solution: Clear function growarrays. Fix memory leak. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2506 +Problem: Vim9: :continue does not work correctly in a :try block +Solution: Add the TRYCLEANUP instruction. (closes #7827) +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2507 +Problem: Github build may fail if Ubuntu 20.04 is used. Installing rust is + not needed. +Solution: Specify ubuntu-18.04 instead of latest. Update "pip" instead of + installing rust. (Ozaki Kiichi, closes #7820) +Files: .github/workflows/ci.yml + +Patch 8.2.2508 +Problem: Cannot change the character displayed in non existing lines. +Solution: Add the "eob" item to 'fillchars'. (closes #7832, closes #3820) +Files: runtime/doc/options.txt, runtime/doc/todo.txt, + runtime/doc/windows.txt, src/drawscreen.c, src/globals.h, + src/optiondefs.h, src/screen.c, src/testdir/test_display.vim + +Patch 8.2.2509 +Problem: Tests fail on s390 build. +Solution: Initialize trycmd_T. +Files: src/vim9execute.c + +Patch 8.2.2510 +Problem: Internal error when popup with mask is zero height or width. +Solution: Bail out if width or height is zero. (closes #7831) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.2511 +Problem: Vim9: cannot use Vim9 script syntax in some places. +Solution: Add the :vim9cmd command modifier. Incompatible: Makes ":vim9" + mean ":vim9cmd" instead of ":vim9script". +Files: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/ex_docmd.c, + src/ex_cmds.h, src/structs.h, src/ex_cmdidxs.h, src/errors.h, + src/testdir/test_vim9_cmd.vim, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_1.dump, + src/testdir/dumps/Test_wildmenu_2.dump, + src/testdir/dumps/Test_wildmenu_3.dump, + src/testdir/dumps/Test_wildmenu_4.dump, + src/testdir/test_quickfix.vim + +Patch 8.2.2512 +Problem: Vim9: compiling error test sometimes fails. +Solution: use WaitForAssert() instead of sleeping for a bit. (Dominique + Pellé, closes #7837) +Files: src/testdir/term_util.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2513 (after 8.2.2511) +Problem: Vim9: missing part of :vim9cmd change. +Solution: Use command modifier in in_vim9script(). +Files: src/vim9script.c + +Patch 8.2.2514 (after 8.2.2511) +Problem: Vim9: build error in tiny version. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.2515 +Problem: Memory access error when truncating an empty message. +Solution: Check for an empty string. (Dominique Pellé, closes #7841) +Files: src/message.c, src/message_test.c + +Patch 8.2.2516 +Problem: Test failure on s390. (analyses by James McCoy) +Solution: Only set the try_finally label when not skipping. +Files: src/vim9compile.c + +Patch 8.2.2517 +Problem: Vim9: fix for s390 not tested on other systems. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2518 +Problem: 'listchars' should be window-local. +Solution: Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz, + closes #5206, closes #7850) +Files: runtime/doc/options.txt, src/buffer.c, src/charset.c, + src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/globals.h, + src/indent.c, src/message.c, src/misc1.c, src/option.c, + src/option.h, src/optiondefs.h, src/optionstr.c, + src/proto/screen.pro, src/screen.c, src/structs.h, + src/testdir/test_listchars.vim, src/testdir/test_listlbr.vim + +Patch 8.2.2519 +Problem: Vim9: no reason to keep strange Vi behavior. +Solution: ":3" and ":3|" both go to line 3. ":|" does not print the line. + (closes #7840) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2520 +Problem: Missing tests for 'listchars'. +Solution: Add a few more checks. (Yegappan Lakshmanan, closes #7854) +Files: src/testdir/test_listchars.vim + +Patch 8.2.2521 +Problem: Some compilers can't handle pointer initialization. (John + Marriott) +Solution: Use a local struct and assign it afterwards. +Files: src/screen.c + +Patch 8.2.2522 +Problem: Beancount filetype not recognized. +Solution: Add a detection rule. (Brian Ryall, closes #7859) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2523 +Problem: Svelte filetype not recognized. +Solution: Add a detection rule. (Brian Ryall, closes #7858) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2524 +Problem: Cannot change the characters displayed in the foldcolumn. +Solution: Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron, + closes #7860) +Files: runtime/doc/options.txt, src/globals.h, src/mouse.c, src/screen.c, + src/testdir/test_display.vim + +Patch 8.2.2525 +Problem: Vim9: only local variables checked for a name. +Solution: Also check arguments and script variables. (closes #7838) +Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2526 (after 8.2.2525) +Problem: Build failure. +Solution: Change lookup_scriptvar() arguments. +Files: src/evalvars.c, src/proto/evalvars.pro + +Patch 8.2.2527 +Problem: Vim9: lambda return type is not determined at script level. +Solution: Compile the lambda to get the return type. (closes #7843) +Files: src/eval.c, src/vim.h, src/vim9.h, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2528 +Problem: Vim9: crash when compiling lambda fails. +Solution: Bail out after compilation fails. (closes #7862) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2529 +Problem: Vim9: Not possible to use legacy and Vim9 script in one file. +Solution: Vim9: allow for "if false" before :vim9script. (closes #7851) +Files: runtime/doc/vim9.txt, src/ex_docmd.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2530 +Problem: Vim9: not enough testing for profiling. +Solution: Add a test with nested functions and a lambda. Fix profiling + for calling a compiled function. +Files: src/profiler.c, src/proto/profiler.pro, src/userfunc.c, + src/vim9execute.c, src/testdir/test_profile.vim + +Patch 8.2.2531 +Problem: Vim9: the :k command is obscure. +Solution: Disallow using :k, can use :mark instead. (closes #7874) +Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/vim9script.c, + src/vim9compile.c, src/ex_cmds.h, src/testdir/test_vim9_script.vim + +Patch 8.2.2532 +Problem: Vim9: confusing error if :k is used with a range. +Solution: Give an error about the range. (issue #7874) +Files: src/vim9script.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2533 +Problem: Vim9: cannot use a range with :unlet. +Solution: Implement ISN_UNLETRANGE. +Files: src/errors.h, src/eval.c, src/evalvars.c, src/list.c, + src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h, + src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2534 +Problem: Missing test coverage. +Solution: Improve test coverage for completion with different encodings, + mapset(), and term function failures. (Dominique Pellé, + closes #7877) +Files: src/testdir/test_edit.vim, src/testdir/test_maparg.vim, + src/testdir/test_terminal3.vim + +Patch 8.2.2535 +Problem: MS-Windows: cannot run all vim9 tests. +Solution: Make test_vim9 target work. +Files: src/Make_mvc.mak + +Patch 8.2.2536 +Problem: Coverity complains about unchecked return value. +Solution: Add (void). +Files: src/userfunc.c + +Patch 8.2.2537 +Problem: Vim9: crash when map() fails. +Solution: Clear typval before using it. (closes #7884) +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2538 +Problem: Crash when using Python list iterator. +Solution: Increment the list reference count. (closes #7886) +Files: src/if_py_both.h, src/testdir/test_python3.vim + +Patch 8.2.2539 +Problem: Vim9: return from finally block causes a hang. +Solution: Store both the finally and endtry indexes. (closes #7885) +Files: src/vim9execute.c, src/vim9compile.c, src/vim9.h, + src/testdir/test_vim9_script.vim, + +Patch 8.2.2540 +Problem: Vim9: no error for using script var name for argument. +Solution: Check for this error. (closes #7868) +Files: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_func.vim + +Patch 8.2.2541 +Problem: Popup_create() does not allow boolean for "cursorline". +Solution: Use dict_get_bool(). (issue #7869) +Files: src/popupwin.c, src/testdir/test_popupwin.vim + +Patch 8.2.2542 +Problem: Highlight of char beyond line end is not correct. (Chuan Wei Foo) +Solution: Fix counting NUL as one cell. Draw one more character if the EOL + is part of the match. (closes #7883) +Files: src/match.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_1.dump, + src/testdir/dumps/Test_hlsearch_2.dump + +Patch 8.2.2543 +Problem: Vim9: a return inside try/catch does not restore exception state + properly. +Solution: When there is no ":finally" jump to ":endtry". (closes #7882) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2544 +Problem: Vim9: error for argument when checking for lambda. +Solution: Respect the skip flag. (closes #7887) +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2545 +Problem: Errors and crash when terminal window is zero height. (Leonid V. + Fedorenchik) +Solution: Do not resize when width or height is zero. (closes #7890) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.2546 +Problem: Typo in mouse key name. +Solution: Fix the typo. (issue #4725) +Files: src/misc2.c + +Patch 8.2.2547 +Problem: "%" command not accurate for big files. +Solution: Make it more accurate for files up to 21M lines. (Dominique Pellé, + closes #7889) +Files: src/normal.c + +Patch 8.2.2548 +Problem: May get stuck in the cmdline window using :normal. +Solution: Have nv_esc() return K_IGNORE. +Files: src/normal.c + +Patch 8.2.2549 +Problem: Crash after using "g:" in a for loop. +Solution: Increment the reference count. (closes #7892) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2550 +Problem: Signal stack size is wrong with latest glibc 2.34. +Solution: Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes + #7895) +Files: src/config.h.in, src/configure.ac, src/os_unix.c, + src/auto/configure + +Patch 8.2.2551 +Problem: MS-Windows: colors test file is not installed. +Solution: Also copy runtime/colors/tools. (Ken Takata, closes #7902) +Files: nsis/gvim.nsi + +Patch 8.2.2552 +Problem: Vim9: no reason to consider "{{{{{{{{" a command. +Solution: Just use "{". (issue #7904) +Files: src/ex_cmds.h + +Patch 8.2.2553 +Problem: Vim9: Cannot put "|" after "{". +Solution: Add the EX_TRLBAR flag. (issue #7904) +Files: src/ex_cmds.h, src/ex_eval.c + +Patch 8.2.2554 +Problem: Vim9: exporting a final is not tested. +Solution: Add a test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2555 +Problem: Vim9: missing test for 8.2.2553. +Solution: Add a simple test. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2556 +Problem: Vim9: :import with "as" not fully supported. +Solution: Implement "as" for more cases. +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2557 +Problem: Compiler warning for shadowed variable. +Solution: Declare "p" only once. +Files: src/vim9script.c + +Patch 8.2.2558 +Problem: No error if a lambda argument shadows a variable. +Solution: Check that the argument name shadows a local, argument or script + variable. (closes #7898) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c, + src/vim9script.c, src/errors.h, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.2559 +Problem: MS-Windows: guifont test fails on Windows XP. +Solution: Check windowsversion(). +Files: src/testdir/test_gui.vim + +Patch 8.2.2560 +Problem: Setting 'winminheigt' does not take tabline into account. +Solution: Subtract the tabline from the available height. (closes #7899) +Files: src/window.c, src/testdir/test_options.vim + +Patch 8.2.2561 +Problem: Not all textprop code is covered by tests. +Solution: Add a few more test cases. (Dominique Pellé, closes #7908) +Files: src/testdir/test_textprop.vim + +Patch 8.2.2562 +Problem: GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo + Karkat) +Solution: Do not change the star register when 'clipboard' contains + "unnamedplus" and not "unnamed". (closes #1516) +Files: src/register.c + +Patch 8.2.2563 +Problem: Cannot use multibyte characters for folding in 'fillchars'. +Solution: Port pull request 11568 to Vim. (Yegappan Lakshmanan, + closes #7924) +Files: src/drawline.c, src/drawscreen.c, src/macros.h, + src/proto/screen.pro, src/screen.c, src/testdir/test_fold.vim, + src/testdir/test_profile.vim + +Patch 8.2.2564 +Problem: Focus events end Insert mode if 'esckeys' is not set. +Solution: Do not enable focus events when 'esckeys' is off. (closes #7926) +Files: src/term.c + +Patch 8.2.2565 +Problem: Vim9: "..=" not always recognized. +Solution: Do not consider "..=" to be string concatenation. (closes #7905) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2566 +Problem: Vim9: Function name is not recognized. +Solution: Change lookup_scriptvar() to also find function names. + (closes #7770) +Files: src/vim9script.c, src/evalvars.c, src/proto/evalvars.pro, + src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2567 +Problem: Vim9: no error if variable is defined for existing function. +Solution: Check if name isn't already in use. (closes #7897) +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2568 +Problem: Second time a preview popup is opened highlight is not set. + (Gabriel Dupras) +Solution: Apply 'previewpopup' after getting the file. (closes #7928) +Files: src/tag.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_previewpopup_2.dump, + src/testdir/dumps/Test_popupwin_previewpopup_3.dump, + src/testdir/dumps/Test_popupwin_previewpopup_4.dump, + src/testdir/dumps/Test_popupwin_previewpopup_5.dump + +Patch 8.2.2569 +Problem: 'fillchars' "stl" and "stlnc" items must be single byte. +Solution: Accept multi-byte characters. (Christian Wellenbrock, Yegappan + Lakshmanan, closes #7927) +Files: runtime/doc/options.txt, src/buffer.c, src/macros.h, src/screen.c, + src/testdir/test_fold.vim, src/testdir/test_statusline.vim + +Patch 8.2.2570 +Problem: Tests fail when run as root. +Solution: Add a comment mentioning the expected failure. (issue #7919) +Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, + src/testdir/test_help.vim, src/testdir/test_writefile.vim + +Patch 8.2.2571 +Problem: Test may leave file behind. +Solution: Delete the temporary file. Don't profile in the running Vim + instance. +Files: src/testdir/test_quickfix.vim, src/testdir/test_profile.vim + +Patch 8.2.2572 +Problem: Vim9: crash when getting the types for a legacy function. +Solution: Initialize the type list growarray. (closes #7929) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2573 +Problem: Vim9: using invalid pointer for error message. +Solution: Use the right pointer. (closes #7921) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2574 +Problem: Vim9: crash when calling partial with wrong function. +Solution: Check argument types of called function. (closes #7912) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2575 +Problem: Vim9: a function name with "->" in the next line doesn't work. +Solution: Recognize a function name by itself. (closes #7770) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2576 +Problem: Vim9: defining a :func function checks for white space after a + comma in the arguments. +Solution: Only check for white space in a :def function. (closes #7930) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2577 +Problem: Compiler warning for type conversion. +Solution: Add a typecast. (Mike Williams) +Files: src/drawline.c + +Patch 8.2.2578 +Problem: Lua cannot handle a passed in lambda. +Solution: Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936) +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.2579 +Problem: Vim9: crash in garbagecollect after for loop. +Solution: Do not set a reference in script item when the name was cleared. + (closes #7935) +Files: src/evalvars.c + +Patch 8.2.2580 +Problem: Vim9: checking vararg type is wrong when function is auto-loaded. +Solution: Use the member type. (closes #7933) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2581 +Problem: Vim9: sourcing Vim9 script triggers a redraw. +Solution: Do not let setting/restoring 'cpoptions' cause a redraw. + (closes #7920) +Files: src/vim.h, src/option.c, src/optionstr.c, src/scriptfile.c, + src/vim9script.c, src/testdir/test_vim9_script.vim, + src/testdir/dumps/Test_vim9_no_redraw.dump + +Patch 8.2.2582 (after 8.2.2581) +Problem: Vim9: screendump test fails on MS-Windows. +Solution: Use :function instead of :def. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2583 +Problem: Vim9: cannot compare result of getenv() with null. +Solution: Make the return type of getenv() "any". (closes #7943) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2584 +Problem: Vim9: type error for assigning the result of list concatenation to + a list. +Solution: Do not consider concatenation result in a constant. (closes #7942) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2585 +Problem: Vim9: illegal memory access. +Solution: Check byte right after "null", not one more. +Files: src/vim9compile.c + +Patch 8.2.2586 +Problem: Process id may be invalid. +Solution: Use sysinfo.uptime to check for recent reboot. (suggested by Hugo + van der Sanden, closes #7947) +Files: src/configure.ac, src/auto/configure, src/config.h.in, + src/memline.c, src/testing.c, src/globals.h, + src/testdir/test_recover.vim + +Patch 8.2.2587 (after 8.2.2586) +Problem: Recover test fails on FreeBSD. +Solution: Check for Linux. +Files: src/testdir/check.vim, src/testdir/test_recover.vim + +Patch 8.2.2588 (after 8.2.2586) +Problem: Build failure with tiny features. +Solution: Add #ifdef. Run recover test separately. +Files: src/memline.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim + +Patch 8.2.2589 (after 8.2.2586) +Problem: Recover test hangs in the GUI. +Solution: Add g:skipped_reason to skip a _nocatch_ test. +Files: src/testdir/runtest.vim, src/testdir/test_recover.vim + +Patch 8.2.2590 +Problem: Vim9: default argument value may cause internal error. +Solution: Hide later function arguments when compiling the expression. + (closes #7948) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2591 +Problem: Poke files are not recognized. +Solution: Add a filetype entry. (Matt Ihlenfield) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2592 +Problem: Code coverage could be improved. +Solution: Add a few more tests. (Dominique Pellé, closes #7957) +Files: src/testdir/test_fileformat.vim, src/testdir/test_normal.vim, + src/testdir/test_sleep.vim, src/testdir/test_textformat.vim, + src/testdir/test_viminfo.vim + +Patch 8.2.2593 +Problem: List of distributed files is incomplete. +Solution: Add a file and rename another. +Files: Filelist + +Patch 8.2.2594 +Problem: Alternate buffer added to session file even when it's hidden. +Solution: Check the 'buflisted' option. (closes #7951) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.2595 +Problem: Setting 'winminheight' may cause 'lines' to change. +Solution: Also take minimal height of other tabpages into account. (#7899) +Files: src/window.c, src/testdir/test_options.vim + +Patch 8.2.2596 +Problem: :doautocmd may confuse scripts listening to WinEnter. +Solution: Do the current buffer last. (closes #7958) +Files: src/autocmd.c, src/testdir/test_autocmd.vim + +Patch 8.2.2597 +Problem: Vim9: "import * as" does not work at script level. +Solution: Implement using an imported namespace. +Files: src/vim.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro, + src/vim9execute.c, src/errors.h, src/vim9script.c, + src/proto/vim9script.pro, src/testdir/test_vim9_script.vim + +Patch 8.2.2598 +Problem: Vim9: :open does not need to be supported. +Solution: Do not support :open in Vim9 script. +Files: src/ex_docmd.c, src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2599 (after 8.2.2597) +Problem: Build failure. +Solution: Add missing change. +Files: src/vim9compile.c + +Patch 8.2.2600 +Problem: Vim9: crash when putting an unknown type in a dictionary. + (Yegappan Lakshmanan) +Solution: Handle a NULL type pointer. +Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2601 +Problem: Memory usage test often fails on FreeBSD. +Solution: Increase multiplier for upper limit. +Files: src/testdir/test_memory_usage.vim + +Patch 8.2.2602 +Problem: Vim9: continue doesn't work if :while is very first command. + (Yegappan Lakshmanan) +Solution: Add one to the continue instruction index. +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2603 +Problem: Vim9: no effect if user command is also a function. +Solution: Check for paren following. (closes #7960) +Files: src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c, + src/proto/ex_docmd.pro, src/vim9compile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2604 +Problem: GUI-specific command line arguments not tested. +Solution: Add tests for several arguments. (Dominique Pellé, closes #7962) +Files: src/testdir/test_startup.vim + +Patch 8.2.2605 +Problem: Vim9: string index and slice does not include composing chars. +Solution: Include composing characters. (issue #6563) +Files: runtime/doc/vim9.txt, src/vim9execute.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2606 +Problem: strchars() defaults to counting composing characters. +Solution: Add strcharlen() which ignores composing characters. +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/testdir/test_utf8.vim + +Patch 8.2.2607 +Problem: strcharpart() cannot include composing characters. +Solution: Add the {skipcc} argument. +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_expr_utf8.vim + +Patch 8.2.2608 +Problem: Character input not fully tested. +Solution: Add more tests. (Yegappan Lakshmanan, closes #7963) +Files: src/testdir/test_functions.vim, src/testdir/test_messages.vim, + src/testdir/test_paste.vim, src/testdir/test_registers.vim, + src/testdir/test_undo.vim + +Patch 8.2.2609 +Problem: Test disabled on MS-Windows even though it should work. +Solution: Restore the condition for skipping the test. (Ken Takata, + closes #7970) +Files: src/testdir/test_startup.vim + +Patch 8.2.2610 +Problem: Mouse click test fails when using remote connection. +Solution: Use a larger 'mousetime'. (Dominique Pellé, closes #7968) +Files: src/testdir/test_selectmode.vim + +Patch 8.2.2611 +Problem: Conditions for startup tests are not exactly right. +Solution: Check for type of GUI instead of MS-Windows. (Ozaki Kiichi, + closes #7976) +Files: src/main.c, src/testdir/check.vim, src/testdir/test_startup.vim + +Patch 8.2.2612 +Problem: col('.') may get outdated column value. +Solution: Add a note to the help how to make this work and add a test for + it. (closes #7971) +Files: runtime/doc/map.txt, src/testdir/test_mapping.vim + +Patch 8.2.2613 (after 8.2.2612) +Problem: New test throws exception. +Solution: Adjust the function cleanup. +Files: src/testdir/test_mapping.vim + +Patch 8.2.2614 +Problem: Vim9: function is deleted while executing. +Solution: increment the call count, when more than zero do not delete the + function but mark it as dead. (closes #7977) +Files: src/vim9execute.c, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2615 (after 8.2.2614) +Problem: Test is sourcing the wrong file. +Solution: Correct the file name. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2616 +Problem: Vim9: if 'cpo' is changed in Vim9 script it may be restored. +Solution: Apply the changes to 'cpo' to the restored value. +Files: runtime/doc/vim9.txt, src/scriptfile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2617 +Problem: Vim9: script variable in a block scope not found by a nested + function. +Solution: Copy the block scope IDs before compiling the function. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2618 +Problem: Vim9: cannot use a normal list name to store function refs. +Solution: Allow a lower case name if it is indexed. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2619 +Problem: Vim9: no test for return type of lambda. +Solution: Add a test. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.2620 +Problem: Vim9: Using #{ for a dictionary gives strange errors. +Solution: Give an error when using #{ for a comment after a command. +Files: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, + src/errors.h, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2621 +Problem: typval2type() cannot handle recursive structures. +Solution: Use copyID. (closes #7979) +Files: src/list.c, src/vim9script.c, src/vim9type.c, + src/proto/vim9type.pro, src/testdir/test_vimscript.vim + +Patch 8.2.2622 +Problem: GTK: error when starting up and -geometry is given. (Dominique + Pellé) +Solution: Use another function to get the monitor if the window has not been + created yet. (closes #7978) +Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c, + src/gui_xim.c + +Patch 8.2.2623 +Problem: Some tests fail when run as root. +Solution: Use CheckNotRoot. +Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, + src/testdir/test_help.vim, src/testdir/test_writefile.vim + +Patch 8.2.2624 +Problem: Atom files not recognized. +Solution: Recognize .atom as XML. (Kivin Locke, closes #7986) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2625 +Problem: Rss files not recognized. +Solution: Recognize .rss as XML. (Kivin Locke, closes #7987) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2626 +Problem: GTK3: error when starting up and -geometry is given. (Dominique + Pellé) +Solution: Use another function to get the monitor if the window has not been + created yet. (closes #7978) +Files: src/gui_gtk_x11.c + +Patch 8.2.2627 +Problem: No need to check for BSD after checking for not root. +Solution: Remove CheckNotBSD. (Ozaki Kiichi, closes #7989) +Files: src/testdir/test_excmd.vim, src/testdir/test_help.vim, + src/testdir/check.vim + +Patch 8.2.2628 +Problem: Vim9: #{ can still be used at the script level. +Solution: Give an error for #{ like in a :def function. +Files: src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2629 +Problem: Vim9: error for #{{ is not desired. +Solution: Adjust the checks. (closes #7990) +Files: src/errors.h, src/vim9script.c, src/ex_docmd.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2630 +Problem: Hard to see where a test gets stuck. +Solution: Print the executed test function. (Dominique Pellé, closes #7975) +Files: src/testdir/Makefile + +Patch 8.2.2631 +Problem: Commands from winrestcmd() do not always work properly. (Leonid V. + Fedorenchik) +Solution: Repeat the size commands twice. (closes #7988) +Files: src/evalwindow.c, src/testdir/test_window_cmd.vim + +Patch 8.2.2632 +Problem: Not all command line arguments are tested. +Solution: Add tests for -D and -serverlist. (Dominique Pellé, closes #7992) +Files: src/testdir/test_clientserver.vim, src/testdir/test_startup.vim + +Patch 8.2.2633 +Problem: Multi-byte 'fillchars' for folding do not show properly. +Solution: Handle multi-byte characters correctly. (Yegappan Lakshmanan, + closes #7983, closes #7955) +Files: src/screen.c, src/testdir/test_fold.vim + +Patch 8.2.2634 +Problem: 'tagfunc' does not indicate using a pattern. +Solution: Add the "r" flag. (Andy Massimino, closes #7982) +Files: runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_tagfunc.vim + +Patch 8.2.2635 +Problem: Vim9: cannot define an inline function. +Solution: Make an inline function mostly work. +Files: src/userfunc.c, src/errors.h, src/vim9compile.c, src/misc2.c, + src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim + +Patch 8.2.2636 (after 8.2.2635) +Problem: Memory leak when compiling inline function. +Solution: Free the prefetched line. +Files: src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h, + src/eval.c + +Patch 8.2.2637 +Problem: prop_remove() causes a redraw even when nothing changed. +Solution: Only redraw if a property was removed. (Dominique Pellé) +Files: src/textprop.c + +Patch 8.2.2638 +Problem: Cannot write a message to the terminal from the GUI. +Solution: Add :echoconsole and use it in the test runner. (issue #7975) +Files: runtime/doc/eval.txt, runtime/doc/index.txt, src/ex_cmds.h, + src/ex_cmdidxs.h, src/eval.c, src/ui.c, src/proto/ui.pro, + src/term.c, src/testdir/runtest.vim + +Patch 8.2.2639 (after 8.2.2638) +Problem: Build failure when fsync() is not available. +Solution: Add #ifdef. +Files: src/ui.c + +Patch 8.2.2640 +Problem: screenstring() returns non-existing composing characters. +Solution: Only use composing characters if there is a base character. +Files: src/evalfunc.c, src/testdir/test_listchars.vim + +Patch 8.2.2641 +Problem: Display test fails because of lacking redraw. +Solution: Add a redraw command. +Files: src/testdir/test_display.vim + +Patch 8.2.2642 +Problem: Vim9: no clear error for wrong inline function. +Solution: Check for something following the "{". +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2643 +Problem: Various code not covered by tests. +Solution: Add a few more test. (Yegappan Lakshmanan, closes #7995) +Files: src/testdir/test_edit.vim, src/testdir/test_functions.vim, + src/testdir/test_mapping.vim, src/testdir/test_termcodes.vim, + src/testdir/test_undo.vim + +Patch 8.2.2644 +Problem: prop_clear() causes a screen update even when nothing changed. +Solution: Only redraw when a property was cleared. (Dominique Pellé) +Files: src/textprop.c + +Patch 8.2.2645 +Problem: Using inline function is not properly tested. +Solution: Add test cases, esp. for errors. Minor code improvements. +Files: src/userfunc.c, src/errors.h, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2646 +Problem: Vim9: error for not using string doesn't mention argument. +Solution: Add argument number. +Files: src/filepath.c, src/typval.c, src/proto/typval.pro, src/errors.h, + src/mbyte.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2647 +Problem: Terminal test sometimes hangs. +Solution: Wait for the shell to display a prompt. +Files: src/testdir/test_terminal.vim + +Patch 8.2.2648 +Problem: Terminal resize test sometimes hangs. +Solution: Wait for the shell to display a prompt and other output. +Files: src/testdir/test_terminal2.vim + +Patch 8.2.2649 +Problem: Vim9: some wincmd arguments cause a white space error. +Solution: Insert a space before the count. (closes #8001) +Files: src/window.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2650 +Problem: Vim9: command modifiers not handled in nested function. +Solution: Keep function-local info in a structure and save it on the stack. +Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim + +Patch 8.2.2651 +Problem: Vim9: restoring command modifiers happens after jump. +Solution: Move the restore instruction to before the jump. (closes #8006) + Also handle for and while. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2652 +Problem: Vim9: can use command modifier without an effect. +Solution: Give an error for a misplaced command modifier. Fix error message + number. +Files: src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/ex_eval.c, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2653 +Problem: Build failure. +Solution: Add missing changes. +Files: src/errors.h + +Patch 8.2.2654 +Problem: Vim9: getting a character from a string can be slow. +Solution: Avoid a function call to get the character byte size. (#8000) +Files: src/vim9execute.vim + +Patch 8.2.2655 +Problem: The -w command line argument doesn't work. +Solution: Don't set 'window' when set with the -w argument. (closes #8011) +Files: src/term.c, src/testdir/test_startup.vim + +Patch 8.2.2656 +Problem: Some command line arguments and regexp errors not tested. +Solution: Add a few test cases. (Dominique Pellé, closes #8013) +Files: src/testdir/test_regexp_latin.vim, src/testdir/test_startup.vim + +Patch 8.2.2657 +Problem: Vim9: error message for declaring variable in for loop. +Solution: Clear variables when entering block again. (closes #8012) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2658 +Problem: :for cannot loop over a string. +Solution: Accept a string argument and iterate over its characters. +Files: runtime/doc/eval.txt, src/eval.c, src/vim9compile.c, + src/vim9execute.c, src/errors.h, src/testdir/test_vimscript.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2659 (after 8.2.2658) +Problem: Eval test fails because for loop on string works. +Solution: Check looping over function reference fails. +Files: src/testdir/test_eval_stuff.vim + +Patch 8.2.2660 +Problem: Vim9: no error for declaration with trailing text. +Solution: Give an error. (closes #8014) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2661 +Problem: Leaking memory when looping over a string. +Solution: Free the memory. +Files: src/eval.c + +Patch 8.2.2662 +Problem: There is no way to avoid some escape sequences. +Solution: Suppress escape sequences when the --not-a-term argument is used. + (Gary Johnson) +Files: src/main.c, src/os_unix.c, src/testdir/test_startup.vim + +Patch 8.2.2663 +Problem: Vim9: leaking memory when inline function has an error. +Solution: Free the partially allocated function. +Files: src/userfunc.c + +Patch 8.2.2664 +Problem: Vim9: not enough function arguments checked for string. +Solution: Check in balloon functions. Refactor function arguments. +Files: src/typval.c, src/proto/typval.pro, src/filepath.c, + src/evalfunc.c, src/mbyte.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2665 (after 8.2.2664) +Problem: Test failures. +Solution: Check more specific feature. Add missing change. +Files: src/testdir/test_vim9_builtin.vim, src/evalbuffer.c + +Patch 8.2.2666 +Problem: Vim9: not enough function arguments checked for string. +Solution: Check in ch_logfile(), char2nr() and others. +Files: src/channel.c, src/evalfunc.c, src/filepath.c, src/eval.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2667 +Problem: prop_find() cannot find item matching both id and type. +Solution: Add the "both" argument. (Naohiro Ono, closes #8019) +Files: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, + src/textprop.c + +Patch 8.2.2668 +Problem: Vim9: omitting "call" for "confirm()" does not give an error. +Solution: Do not recognize a modifier followed by "(". +Files: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2669 +Problem: Command line completion does not work after "vim9". +Solution: Include the "9". (Naohiro Ono, closes #8025) +Files: src/cmdexpand.c, src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.2670 +Problem: Vim9: error for append(0, text). +Solution: Check for negative number. (closes #8022) +Files: src/typval.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2671 (after 8.2.2670) +Problem: Error for line number in legacy script. +Solution: Check for number type. +Files: src/typval.c + +Patch 8.2.2672 +Problem: Vim9: cannot use :lockvar and :unlockvar in compiled script. +Solution: Implement locking support. +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2673 +Problem: Vim9: script-local funcref can have lower case name. +Solution: Require an upper case name. +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2674 +Problem: Motif: cancelling the font dialog resets the font. +Solution: When no font is selected to not change the font. (closes #7825, + closes #8035) Fix compiler warnings. +Files: src/gui_x11.c, src/gui_motif.c + +Patch 8.2.2675 +Problem: Directory change in a terminal window shell is not followed. +Solution: Add the 'autoshelldir' option. (closes #6290) +Files: runtime/doc/options.txt, runtime/doc/quickref.txt, + runtime/optwin.vim, src/charset.c, src/feature.h, src/option.h, + src/optiondefs.h, src/terminal.c, src/testdir/check.vim, + src/testdir/test_terminal3.vim + +Patch 8.2.2676 +Problem: Missing error message. +Solution: Add new error message. +Files: src/errors.h + +Patch 8.2.2677 +Problem: Vim9: cannot use only some of the default arguments. +Solution: Use v:none to use default argument value. Remove + uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504) +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c, + src/userfunc.c, src/structs.h, src/vim9.h, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2678 +Problem: Test for 'autoshelldir' does not reset the option. +Solution: Reset the option after testing. +Files: src/testdir/test_terminal3.vim + +Patch 8.2.2679 +Problem: Winbar drawn over status line for non-current window with winbar + if frame is zero height. (Leonid V. Fedorenchik) +Solution: Do not draw the window if the frame height is zero. (closes #8037) +Files: src/drawscreen.c, src/testdir/test_winbar.vim, + src/testdir/dumps/Test_winbar_not_visible.dump + +Patch 8.2.2680 +Problem: Vim9: problem defining a script variable from legacy function. +Solution: Check if the script is Vim9, not the current syntax. + (closes #8032) +Files: src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2681 +Problem: Vim9: test fails for redeclaring script variable. +Solution: It's OK to assign to an existing script variable in legacy. +Files: src/evalvars.c + +Patch 8.2.2682 +Problem: Vim9: cannot find Name.Func from "import * as Name". (Alexander + Goussas) +Solution: When no variable found try finding a function. (closes #8045) + Check that the function was exported. +Files: src/vim9compile.c, src/vim9script.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.2683 +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. +Files: src/vim9script.c + +Patch 8.2.2684 +Problem: Not enough folding code is tested. +Solution: Add more test cases. (Yegappan Lakshmanan, closes #8046) +Files: src/testdir/test_fold.vim, src/testdir/test_mksession.vim, + src/testdir/test_source.vim + +Patch 8.2.2685 (after 8.2.2152) +Problem: Custom statusline not drawn correctly with WinBar. +Solution: Also adjust the column for the custom status line. (Yee Cheng + Chin, closes #8047) +Files: src/drawscreen.c, src/proto/drawscreen.pro, src/screen.c, + src/testdir/dumps/Test_winbar_not_visible_custom_statusline.dump, + src/testdir/test_winbar.vim + +Patch 8.2.2686 +Problem: Status line is not updated when going to cmdline mode. +Solution: Redraw status lines if 'statusline' is set and going to status + line mode. (based on patch from Justin M. Keyes et al., + closes #8044) +Files: src/ex_getln.c, src/testdir/test_statusline.vim, + src/testdir/dumps/Test_statusline_mode_1.dump, + src/testdir/dumps/Test_statusline_mode_2.dump + +Patch 8.2.2687 +Problem: Vim9: cannot use "const" for global variable in :def function. +Solution: Do allow using :const for a global variable. (closes #8030) +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2688 +Problem: Vim9: crash when using s: for script variable. +Solution: Pass the end pointer. (closes #8045) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2689 +Problem: Tiny build fails. +Solution: Add #ifdef around use of p_stl. +Files: src/ex_getln.c + +Patch 8.2.2690 +Problem: PowerShell files are not recognized. +Solution: Recognize several PowerShell extension. (Heath Stewart, + closes #8051) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2691 +Problem: Autoconf may mess up compiler flags. +Solution: Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov, + closes #8049) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2692 +Problem: Vim9: locked script variable can be changed. +Solution: Check for locked value. (closes #8031) +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2693 +Problem: Vim9: locked script variable can be changed. +Solution: Check legacy script variable for being locked. (issue #8031) +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2694 +Problem: When 'matchpairs' is empty every character beeps. (Marco Hinz) +Solution: Bail out when no character in 'matchpairs' was found. + (closes #8053) Add assert_nobeep(). +Files: runtime/doc/testing.txt, runtime/doc/eval.txt, src/search.c, + src/testing.c, src/proto/testing.pro, src/evalfunc.c, + src/testdir/test_textformat.vim + +Patch 8.2.2695 +Problem: Cursor position reset with nested autocommands. +Solution: Only check and reset line numbers for not nested autocommands. + (closes #5820) +Files: src/autocmd.c, src/testdir/test_terminal.vim + +Patch 8.2.2696 +Problem: Lua test fails with Lua 5.4.3 and later. +Solution: Check for different error messages. (Yegappan Lakshmanan, + closes #8050) +Files: src/testdir/test_lua.vim + +Patch 8.2.2697 +Problem: Function list test fails. +Solution: Add missing function. (Yegappan Lakshmanan) +Files: runtime/doc/usr_41.txt + +Patch 8.2.2698 (after 8.2.2696) +Problem: Lua test fails on MS-Windows. +Solution: Fall back to old method if "lua -v" doesn't work. +Files: src/testdir/test_lua.vim + +Patch 8.2.2699 +Problem: Lua test fails. +Solution: Fix condition. (Yegappan Lakshmanan, closes #8060) +Files: src/testdir/test_lua.vim + +Patch 8.2.2700 +Problem: Nested autocmd test fails sometimes. +Solution: Wait for the job to finish. +Files: src/testdir/test_terminal.vim + +Patch 8.2.2701 +Problem: Order of removing FORTIFY_SOURCE is wrong. +Solution: Use the more specific pattern first. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2702 +Problem: Compiler completion test fails when more scripts are added. +Solution: Add a more generic pattern. +Files: src/testdir/test_compiler.vim + +Patch 8.2.2703 +Problem: Vim9: memory leak when failing on locked variable. +Solution: Free the memory. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2704 +Problem: Adding a lot of completions can be a bit slow. +Solution: Use fast_breakcheck() instead of ui_breakcheck() when adding a + list of completions. (Ben Jackson, closes #8061) +Files: src/insexpand.c + +Patch 8.2.2705 +Problem: Vim9: misleading reported line number for wrong type. +Solution: Remember and use the line number at the start. (closes #8059) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2706 +Problem: Vim9: wrong line number reported for boolean operator. +Solution: Use the line number before skipping over line break. + (closes #8058) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2707 (after 8.2.2704) +Problem: Adding a lot of completions can still be a bit slow. +Solution: Add the check for CP_FAST. (Ben Jackson) +Files: src/insexpand.c + +Patch 8.2.2708 +Problem: Test sometimes fails waiting for shell in terminal. +Solution: Use WaitForAssert() so we can see the actual job status. Use + Run_shell_in_terminal(). +Files: src/testdir/term_util.vim, src/testdir/test_mksession.vim + +Patch 8.2.2709 +Problem: The GTK GUI has a gap next to the scrollbar. +Solution: Calculate the scrollbar padding for GTK. (closes #8027) +Files: src/gui_gtk.c + +Patch 8.2.2710 +Problem: Vim9: not all tests cover script and :def function. +Solution: Run tests in both if possible. Fix differences. +Files: src/eval.c, src/vim9compile.c, src/vim9execute.c, + src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.2711 +Problem: "gj" in a closed fold does not move out of the fold. (Marco Hinz) +Solution: Add a check for being in a closed fold. (closes #8062) +Files: src/normal.c, src/testdir/test_fold.vim + +Patch 8.2.2712 +Problem: Memory leak when adding to a blob fails. +Solution: Clear the second typval before returning. +Files: src/eval.c + +Patch 8.2.2713 +Problem: Folding code not sufficiently tested. +Solution: Add a few more test cases. (Yegappan Lakshmanan, closes #8064) +Files: src/testdir/test_fold.vim + +Patch 8.2.2714 +Problem: Filetype pattern ending in star is too far up. +Solution: Move down to where patterns ending in star belong. (closes #8065) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2715 +Problem: Vim9: tests fail without the channel feature. (Dominique Pellé) +Solution: Check for the channel feature. (closes #8063) +Files: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.2716 +Problem: The equivalent class regexp is missing some characters. +Solution: Update the list of equivalent characters. (Dominique Pellé, + closes #8029) +Files: src/regexp_bt.c, src/regexp_nfa.c, + src/testdir/test_regexp_utf8.vim + +Patch 8.2.2717 +Problem: GTK menu items don't show a tooltip. +Solution: Add a callback to show the tooltip. (Leonid V. Fedorenchik, + closes #8067, closes #7810) +Files: src/gui_gtk.c + +Patch 8.2.2718 +Problem: Vim9: no explicit test for using a global function without the g: + prefix. +Solution: Add a test case. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.2719 +Problem: Vim9: appending to dict item doesn't work in a :def function. +Solution: Implement assignment with operator on indexed item. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2720 +Problem: GTK menu tooltip moves the cursor. +Solution: Position the cursor after displaying the tooltip. Do not show the + tooltip when editing the command line. +Files: src/gui_gtk.c + +Patch 8.2.2721 +Problem: Vim9: cannot have a linebreak inside a lambda. +Solution: Compile the expression before the arguments. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2722 +Problem: Vim9: crash when using LHS with double index. +Solution: Handle lhs_dest which is "dest_expr". (closes #8068) + Fix confusing error message for missing dict item. +Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2723 (after 8.2.2722) +Problem: Assignment test fails. +Solution: Adjust error number. +Files: src/testdir/test_let.vim + +Patch 8.2.2724 (after 8.2.2722) +Problem: Vim9: concatenating to list in dict not tested. +Solution: Add a test. (issue #8068) +Files: src/testdir/test_vim9_assign.vim + +Patch 8.2.2725 +Problem: Vim9: message about compiling is wrong when using try/catch. +Solution: Store the compiling flag with the message. (closes #8071) +Files: src/ex_docmd.c, src/ex_eval.c, src/structs.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.2726 +Problem: Confusing error message with white space before comma in the + arguments of a function declaration. +Solution: Give a specific error message. (closes #2235) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2727 (after 8.2.2726) +Problem: Function test fails. +Solution: Adjust expected error number. +Files: src/testdir/test_user_func.vim + +Patch 8.2.2728 +Problem: Special key names don't work if 'isident' is cleared. +Solution: Add vim_isNormalIDc() and use it for special key names. + (closes #2389) +Files: src/charset.c, src/proto/charset.pro, src/misc2.c, + src/testdir/test_mapping.vim + +Patch 8.2.2729 +Problem: Vim9: wrong error message for referring to legacy script variable. +Solution: Do allow referring to a variable in legacy script without "s:" if + it exists at compile time. (closes #8076) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2730 +Problem: Coverity complains about not restoring character. +Solution: Also restore the character in case of an error. +Files: src/vim9compile.c + +Patch 8.2.2731 +Problem: Mac: SF symbols are not displayed properly. +Solution: Add custom range to list of double-width characters. (Yee Cheng + Chin, closes #8077) +Files: src/mbyte.c + +Patch 8.2.2732 +Problem: Prompt for s///c in Ex mode can be wrong. +Solution: Position the cursor before showing the prompt. (closes #8073) +Files: src/ex_cmds.c, src/testdir/test_ex_mode.vim + +Patch 8.2.2733 +Problem: Detecting Lua version is not reliable. +Solution: Add "vim.lua_version". (Ozaki Kiichi, closes #8080) +Files: runtime/doc/if_lua.txt, ci/if_ver-1.vim, src/if_lua.c, + src/testdir/test_lua.vim + +Patch 8.2.2734 +Problem: Vim9: cannot use legacy script-local var from :def function. +Solution: Do not insist on using "s:" prefix. (closes #8076) +Files: src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2735 +Problem: Vim9: function reference found with prefix, not without. +Solution: Also find function reference without prefix. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2736 +Problem: Vim9: for loop over string is a bit slow. +Solution: Avoid using strlen(). +Files: src/vim9execute.c + +Patch 8.2.2737 +Problem: Status line not updated when local 'statusline' option set. +Solution: Check the 'statusline' option of each window. +Files: src/ex_getln.c, src/testdir/test_statusline.vim, + src/testdir/dumps/Test_statusline_mode_1.dump, + src/testdir/dumps/Test_statusline_mode_2.dump + +Patch 8.2.2738 +Problem: Extending a list with itself can give wrong result. +Solution: Remember the item before where the insertion happens and skip to + after the already inserted items. (closes #1112) +Files: src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.2739 +Problem: Vim9: a lambda accepts too many arguments at the script level. +Solution: Do not set uf_varargs in Vim9 script. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2740 +Problem: Vim9: lambda with varargs doesn't work. +Solution: Make "...name" work. Require type to be a list. +Files: src/userfunc.c, src/vim9compile.c, src/vim9execute.c, + src/errors.h, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2741 +Problem: Vim9: Partial call does not check right arguments. +Solution: Adjust the offset for whether the partial is before or after the + arguments. (closes #8091) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2742 +Problem: Vim9: when compiling a function fails it is cleared. +Solution: Keep the function lines, prevent execution with a different + status. (closes #8093) +Files: src/vim9compile.c, src/structs.h, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2743 +Problem: Vim9: function state stuck when compiling with ":silent!". +Solution: Check for uf_def_status to be UF_COMPILING. +Files: src/vim9compile.c, src/message.c, src/globals.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.2744 +Problem: Vim9: no way to explicitly ignore an argument. +Solution: Use the underscore as the name for an ignored argument. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/eval.c, + src/evalvars.c, src/errors.h, src/testdir/test_vim9_func.vim + +Patch 8.2.2745 (after 8.2.2744) +Problem: Vim9: missing part of the argument change. +Solution: Add missing changes. +Files: src/userfunc.c + +Patch 8.2.2746 (after 8.2.2745) +Problem: Check for duplicate arguments does not work. +Solution: Correct condition. +Files: src/userfunc.c + +Patch 8.2.2747 +Problem: Vim9: not always an error for too many function arguments. +Solution: Check for getting too many arguments. +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2748 +Problem: Vim9: memory leak when calling :def function fails. +Solution: Jump to failed_early instead of returning. +Files: src/vim9execute.c + +Patch 8.2.2749 +Problem: Vim9: test for error can be a bit flaky. +Solution: Increase the wait time a bit. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.2750 +Problem: Vim9: error for using underscore in nested function. +Solution: Do not consider "_" already defined. (closes #8096) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2751 +Problem: Coverity warns for using NULL pointer. +Solution: Check for NULL in calling function. +Files: src/userfunc.c + +Patch 8.2.2752 +problem: coverity reports unreachable code. +Solution: Remove check for positive index. +Files: src/typval.c + +Patch 8.2.2753 +Problem: Vim9: cannot ignore an item in assignment unpack. +Solution: Allow using an underscore. +Files: runtime/doc/vim9.txt, src/vim.h, src/evalvars.c, src/eval.c, + src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2754 +Problem: :sleep! does not always hide the cursor. +Solution: Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097, + closes #7998) +Files: src/drawscreen.c, src/ex_docmd.c, src/gui.c, src/proto/term.pro, + src/term.c + +Patch 8.2.2755 +Problem: Vim9: no error for using a number in a condition. +Solution: Also use ISN_COND2BOOL if the type is t_number_bool. + (closes #7644) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2756 +Problem: Vim9: blob index and slice not implemented yet. +Solution: Implement blob index and slice. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c, + src/blob.c, src/proto/blob.pro, src/testdir/test_vim9_expr.vim + +Patch 8.2.2757 +Problem: Vim9: blob tests for legacy and Vim9 script are separate. +Solution: Add CheckLegacyAndVim9Success(). Make blob index assign work. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, + src/blob.c, src/proto/blob.pro, src/eval.c, src/ex_docmd.c, + src/testdir/vim9.vim, src/testdir/test_blob.vim + +Patch 8.2.2758 +Problem: Vim9: wrong line number for autoload function with wrong name. +Solution: Set and restore SOURCING_LNUM. (closes #8100) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2759 +Problem: Vim9: for loop infers type of loop variable. +Solution: Do not get the member type. (closes #8102) +Files: src/vim9type.c, src/proto/vim9type.pro, src/list.c, + src/vim9script.c, src/proto/vim9script.pro, src/vim.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.2760 +Problem: Vim9: no error for changing a for loop variable. +Solution: Make the loop variable read-only. (issue #8102) +Files: src/eval.c, src/evalvars.c, src/vim9compile.c, src/vim.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.2761 +Problem: Using "syn include" does not work properly. +Solution: Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung, + closes #8104) +Files: src/syntax.c, src/testdir/test_syntax.vim + +Patch 8.2.2762 +Problem: Vim9: function line truncated when compiling. +Solution: Copy the line before processing it. (closes #8101) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2763 +Problem: Vim9: cannot use type in for loop unpack at script level. +Solution: Advance over the type name. +Files: src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2764 +Problem: Memory leak when default function argument is allocated. +Solution: Free the expression result. +Files: src/userfunc.c, src/testdir/test_functions.vim + +Patch 8.2.2765 +Problem: Vim9: not all blob operations work. +Solution: Run more tests also with Vim9 script and :def functions. Fix what + doesn't work. +Files: src/eval.c, src/blob.c, src/proto/blob.pro, src/vim9execute.c, + src/errors.h, src/testdir/vim9.vim, src/testdir/test_blob.vim + +Patch 8.2.2766 (after 8.2.2765) +Problem: Test failure. +Solution: Add change to Vim9 compilation error message. +Files: src/vim9compile.c + +Patch 8.2.2767 (after 8.2.2765) +Problem: Compiler warning for unused argument. +Solution: Remove the argument. +Files: src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/eval.c + +Patch 8.2.2768 +Problem: Vim9: memory leak with blob range error. +Solution: Jump to end instead of returning. +Files: src/vim9compile.c + +Patch 8.2.2769 +Problem: Modula-3 config files are not recognized. +Solution: Add filetype patterns. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2770 +Problem: Vim9: type of loop variable is not used. +Solution: Parse and check the variable type. (closes #8107) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2771 +Problem: Vim9: assignment not recognized if declaration was skipped. +Solution: Also recognized an assignment if the variable does not exist. + (closes #8108) +Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2772 +Problem: Problems when restoring 'runtimepath' from a session file. +Solution: Add the "skiprtp" item in 'sessionoptions'. +Files: runtime/doc/options.txt, src/session.c, src/optionstr.c, + src/option.h, src/vim.h, src/option.c, + src/testdir/test_mksession.vim + +Patch 8.2.2773 +Problem: PSL filetype not recognized. +Solution: Add a filetype pattern. (Daniel Kho, closes #8117) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2774 +Problem: Vim9: cannot import an existing name even when using "as". +Solution: Do not check for an existing name when using "as". (closes #8113) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2775 +Problem: Vim9: wrong line number used for some commands. +Solution: For :exe, :echo and the like use the line number of the start of + the command. When calling a function set the line number in the + script context. +Files: src/vim9compile.c, src/vim9execute.c, src/structs.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.2776 +Problem: :mksession uses current value of 'splitbelow' and 'splitright' + even though "options" is not in 'sessionoptions'. (Maxim Kim) +Solution: Save and restore the values, instead of setting to the current + value. (closes #8119) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.2777 +Problem: Vim9: blob operations not tested in all ways. +Solution: Run tests with CheckLegacyAndVim9Success(). Make blob assign with + index work. +Files: src/vim9compile.c, src/vim9execute.c, src/errors.h, src/blob.c, + src/proto/blob.pro, src/testdir/test_blob.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2778 +Problem: Problem restoring 'packpath' in session. +Solution: Let "skiprtp" also apply to 'packpath'. +Files: runtime/doc/options.txt, src/option.c, + src/testdir/test_mksession.vim + +Patch 8.2.2779 +Problem: Memory access error in remove() for blob. +Solution: Adjust length for memmove(). +Files: src/blob.c + +Patch 8.2.2780 +Problem: Vim9: for loop over blob doesn't work. +Solution: Make it work. +Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_blob.vim + +Patch 8.2.2781 +Problem: Add() silently skips when adding to null list or blob. +Solution: Give an error in Vim9 script. Allocate blob when it is NULL like + with list and dict. +Files: src/list.c, src/evalvars.c, src/vim9execute.c, + src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2782 +Problem: Vim9: blob operations not fully tested. +Solution: Make more blob tests run in Vim9 script. Fix filter(). Make + insert() give an error for a null blob, like add(). +Files: src/list.c, src/testdir/test_blob.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2783 +Problem: Duplicate code for setting byte in blob, blob test may fail. +Solution: Call blob_set_append(). Test sort failure with "N". +Files: src/eval.c, src/testdir/test_blob.vim + +Patch 8.2.2784 +Problem: Vim9: cannot use \=expr in :substitute. +Solution: Compile the expression into instructions and execute them when + invoked. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/proto/vim9execute.pro, src/regexp.c, src/ex_cmds.c, + src/proto/ex_cmds.pro, src/globals.h, + src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2785 +Problem: Vim9: cannot redirect to local variable. +Solution: Compile :redir when redirecting to a variable. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, + src/evalvars.c, src/proto/evalvars.pro, + src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2786 +Problem: Vim9: memory leak when using :s with expression. +Solution: Clean up the instruction list. +Files: src/vim9compile.c + +Patch 8.2.2787 +Problem: MS-Windows: crash when using :echoconsole. +Solution: Do not write a NUL when it's already there. +Files: src/os_win32.c + +Patch 8.2.2788 +Problem: Raku is now the only name what once was called perl6. +Solution: Adjust the filetype detection. (closes #8120) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2789 +Problem: Vim9: using \=expr in :substitute does not handle jumps. +Solution: Start with instruction count zero. (closes #8128) +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2790 (after 8.2.2788) +Problem: filetype test fails +Solution: Also update the scripts detection +Files: runtime/scripts.vim + +Patch 8.2.2791 +Problem: Vim9: memory leak when using \=expr in :substitute. +Solution: Do not allocate a new instruction list. +Files: src/vim9compile.c + +Patch 8.2.2792 +Problem: Vim9: :disas shows instructions for default args but no text. +Solution: Show the expression test above the default argument instructions. + (closes #8129) +Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2793 +Problem: MS-Windows: string literals are writable with MSVC. +Solution: Add the /GF compiler flag. Make mch_write() safer. (Ken Takata, + closes #8133) +Files: src/Make_mvc.mak, src/os_win32.c + +Patch 8.2.2794 +Problem: Linux users don't know how to get ncurses. +Solution: Add the name of the package. (closes #8132) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2795 +Problem: Coverity warns for not using return value. +Solution: Check the return value of compiling the substitute expression. +Files: src/vim9compile.c + +Patch 8.2.2796 +Problem: Vim9: redir to variable does not accept an index. +Solution: Make the index work. +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2797 +Problem: Search highlight disappears in the Visual area. +Solution: Combine the search attributes. (closes #8134) +Files: src/drawline.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_visual_1.dump + +Patch 8.2.2798 +Problem: Vim9: redir to variable with append does not accept an index. +Solution: Make the appending work. +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2799 +Problem: Vim9: type casts don't fully work at the script level. +Solution: Implement the missing piece. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2800 +Problem: After a timer displays text a hit-enter prompt is given. +Solution: Reset msg_didany and need_wait_return. (closes #8136) +Files: src/drawscreen.c, src/testdir/test_timers.vim + +Patch 8.2.2801 +Problem: Free Pascal makefile not recognized. +Solution: Add the fpcmake filetype. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2802 +Problem: Vim9: illegal memory access. +Solution: Check for comment before checking for white space. (closes #8142) +Files: src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2803 +Problem: Flicker when the popup menu has an info popup. +Solution: Avoid drawing over the popup when it's going to be redrawn in the + same position. (closes #8131) Also avoid redrawing the scrollbar. +Files: src/popupmenu.c, src/proto/popupmenu.pro, src/drawscreen.c, + src/globals.h + +Patch 8.2.2804 +Problem: Setting buffer local mapping with mapset() changes global mapping. +Solution: Only set the local mapping. (closes #8143) +Files: src/map.c, src/testdir/test_maparg.vim + +Patch 8.2.2805 +Problem: Vim9: cannot use legacy syntax in Vim9 script. +Solution: Add the :legacy command. +Files: src/ex_cmds.h, runtime/doc/vim9.txt, runtime/doc/index.txt + src/ex_cmdidxs.h, src/ex_docmd.c, src/structs.h, src/vim9script.c, + src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.2806 +Problem: Vim9: using "++nr" as a command might not work. +Solution: Do not recognize "++" and "--" in a following line as addition or + subtraction. +Files: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, + src/vim9script.c, src/proto/vim9script.pro, src/eval.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.2807 +Problem: Build fails with tiny features. +Solution: Use a dummy function for ex_incdec(). +Files: src/ex_docmd.c + +Patch 8.2.2808 +Problem: Vim9: increment and decrement not sufficiently tested. +Solution: Add assertions. +Files: src/testdir/test_vim9_assign.vim + +Patch 8.2.2809 +Problem: Vim9: :def function compilation fails when using :legacy. +Solution: Reset CMOD_LEGACY when compiling a function. (closes #8137) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2810 +Problem: Vim9: crash when calling a function in a substitute expression. +Solution: Set the instructions back to the substitute expression + instructions. (closes #8148) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2811 +Problem: Vim9: error for missing white space doesn't say where it is + missing +Solution: Mention the command. (closes #8149) +Files: src/ex_docmd.c, src/errors.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2812 +Problem: Vim9: still crash when using substitute expression. +Solution: Put the instruction list in the stack frame. (closes #8154) +Files: src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2813 +Problem: Cannot grep using fuzzy matching. +Solution: Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes #8152) +Files: runtime/doc/quickfix.txt, src/ex_cmds.c, src/proto/search.pro, + src/quickfix.c, src/search.c, src/vim.h, + src/testdir/test_quickfix.vim + +Patch 8.2.2814 (after 8.2.2812) +Problem: Vim9: unused variable. (John Marriott) +Solution: Adjust #ifdef. +Files: src/vim9execute.c + +Patch 8.2.2815 +Problem: Status line flickers when redrawing popup menu info. +Solution: Do not redraw the status line when the focus is in the popup + window. (issue #8144) +Files: src/popupmenu.c + +Patch 8.2.2816 +Problem: Vim9: comment below expression in lambda causes problems. +Solution: Use a single space for empty and comment lines. (closes #8156) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2817 +Problem: Vim9: script sourcing continues after an error. +Solution: Make an error in any command in "vim9script" abort sourcing. +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2818 +Problem: No jump added to jumplist when opening terminal in current window. +Solution: Call setpcmark(). (closes #8158) +Files: src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.2819 +Problem: Finishing an abbreviation with a multi-byte char may not work. +Solution: Escape K_SPECIAL in the typed character. (closes #8160) +Files: src/map.c, src/testdir/test_mapping.vim + +Patch 8.2.2820 +Problem: Session file may divide by zero. +Solution: Avoid writing divide by zero. (closes #8162) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.2821 +Problem: MS-Windows: unnecessarily loading libraries when registering OLE. +Solution: Skip loading libraries when invoked with "-register". +Files: src/main.c, src/globals.h, src/os_win32.c + +Patch 8.2.2822 (after 8.2.2821) +Problem: MS-Windows: unnecessarily loading libraries when unregistering OLE. +Solution: Also skip loading libraries when invoked with "-unregister". Run + Vim for README.txt with user privileges. +Files: src/main.c, nsis/gvim.nsi, nsis/README.txt + +Patch 8.2.2823 +Problem: MS-Windows: launching Vim from installer doesn't open README. +Solution: Adjust the quotes. +Files: nsis/gvim.nsi + +Patch 8.2.2824 +Problem: MS-Windows: build failure with MSVC. +Solution: Adjust the list of distributed files. Add hint about python. + Adjust path for reading runtime files. +Files: Filelist, src/testdir/shared.vim, + src/testdir/test_function_lists.vim + +Patch 8.2.2825 +Problem: Code in checkreadonly() not fully tested. +Solution: Add more tests. (Dominique Pellé, closes #8169) +Files: src/testdir/test_excmd.vim + +Patch 8.2.2826 +Problem: Compiler warnings for int to size_t conversion. (Randall W. + Morris) +Solution: Add type casts. +Files: src/map.c, src/quickfix.c + +Patch 8.2.2827 +Problem: Test file was not deleted. +Solution: Uncomment the delete() call. (Dominique Pellé, closes #8172) +Files: src/testdir/test_mksession.vim + +Patch 8.2.2828 +Problem: Coverity complains about not checking the rename() return value. +Solution: Add "(void)", can't do anything in case of a failure. +Files: src/fileio.c + +Patch 8.2.2829 +Problem: Some comments are not correct or clear. +Solution: Adjust the comments. Add test for cursor position. +Files: src/regexp_bt.c, src/regexp_nfa.c, + src/testdir/test_exec_while_if.vim, + src/testdir/test_substitute.vim + +Patch 8.2.2830 +Problem: Terminal colors are not updated when 'background' is set. +Solution: Call term_update_colors() for all terminals. (Marcin Szamotulski, + closes #8171, closes #8150) +Files: src/terminal.c, src/proto/terminal.pro, src/optionstr.c + +Patch 8.2.2831 +Problem: Vim9: expandcmd() not tested. +Solution: Add a test. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.2832 +Problem: Operator cancelled by moving mouse when using popup. (Sergey + Vlasov) +Solution: Do not trigger an operator for a mouse move events. (closes #8176) +Files: src/normal.c + +Patch 8.2.2833 +Problem: Two key command cancelled by moving mouse when using popup. + (Sergey Vlasov) +Solution: Ignore K_MOUSEMOVE in plain_vgetc(). +Files: src/getchar.c + +Patch 8.2.2834 +Problem: Vim9: :cexpr does not work with local variables. +Solution: Compile :cexpr. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/quickfix.c, + src/proto/quickfix.pro, src/testdir/test_quickfix.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2835 (after 8.2.2834) +Problem: Vim9: leaking memory in :cexpr. +Solution: Also free the command line copy. +Files: src/vim9compile.c + +Patch 8.2.2836 (after 8.2.2834) +Problem: Build failure without the +quickfix feature. (John Marriott) +Solution: Add #ifdef. +Files: src/vim9compile.c, src/vim9execute.c, src/tag.c + +Patch 8.2.2837 +Problem: Various code lines not covered by tests. +Solution: Add test cases. (Dominique Pellé, closes #8178) +Files: src/testdir/test_excmd.vim, src/testdir/test_functions.vim, + src/testdir/test_options.vim, src/testdir/test_startup.vim, + src/testdir/test_syntax.vim, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2838 +Problem: File extension .wrap not recognized. +Solution: Use dosini filetype for .wrap files. (Liam Beguin, closes #8177) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2839 +Problem: Default redirection missing "ash" and "dash". +Solution: Recognize "ash" and "dash". (Natanael Copa, closes #8180) +Files: runtime/doc/options.txt, src/option.c + +Patch 8.2.2840 +Problem: Vim9: member operation not fully tested. +Solution: Add a few tests. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2841 +Problem: MS-Windows: cursor in wrong position when 'lazyredraw' and + 'statusline' are set. +Solution: Call compute_cmdrow(). (closes #8170, closes #8184) +Files: src/os_win32.c + +Patch 8.2.2842 +Problem: Vim9: skip argument to searchpair() is not compiled. +Solution: Add VAR_INSTR. +Files: src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/vim.h, + src/evalvars.c, src/typval.c, src/vim9type.c, src/testing.c, + src/viminfo.c, src/if_py_both.h, src/json.c, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2843 (after 8.2.2842) +Problem: Vim9: skip argument to searchpairpos() is not compiled. +Solution: Handle like searchpair(). Also for search() and searchpos(). +Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2844 +Problem: Vim9: memory leak when using searchpair(). +Solution: Free the v_instr field. +Files: src/typval.c + +Patch 8.2.2845 +Problem: MS-Windows: warning for signed/unsigned comparison. +Solution: Add type cast. +Files: src/terminal.c + +Patch 8.2.2846 +Problem: Vim9: "echo Func()" does not give an error for a function without + a return value. +Solution: Give an error. Be more specific about why a value is invalid. +Files: src/globals.h, src/errors.h, src/eval.c, src/evalfunc.c, + src/typval.c, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.2847 +Problem: Perl not tested sufficiently. +Solution: Add test. Also test W17. (Dominique Pellé, closes #8193) +Files: src/testdir/test_arabic.vim, src/testdir/test_perl.vim + +Patch 8.2.2848 +Problem: Crash when calling partial. +Solution: Check for NULL pointer. (Dominique Pellé, closes #8202) +Files: src/eval.c, src/evalfunc.c, src/testdir/test_functions.vim, + src/testdir/test_listdict.vim + +Patch 8.2.2849 +Problem: Bufwrite not sufficiently tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8192) +Files: src/testdir/test_startup.vim, src/testdir/test_writefile.vim + +Patch 8.2.2850 +Problem: Recalling commands from history is not tested. +Solution: Add tests. (closes #8194) +Files: src/testdir/test_cmdline.vim + +Patch 8.2.2851 +Problem: Using <Cmd> mapping on the command line triggers CmdlineChanged. + (Naohiro Ono) +Solution: Jump to cmdline_not_changed if the command line didn't change. + (closes #8208) +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.2852 +Problem: Configure can add --as-needed a second time. +Solution: Only add --as-needed if not already there. (Natanael Copa, + closes #8189, closes #8181) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2853 (after 8.2.2851) +Problem: Window is not updated after using <Cmd> mapping. +Solution: So jump to cmdline_changed but skip autocommand. +Files: src/ex_getln.c + +Patch 8.2.2854 +Problem: Custom statusline cannot contain % items. +Solution: Add "%{% expr %}". (closes #8190) +Files: runtime/doc/options.txt, src/buffer.c, src/optionstr.c, + src/testdir/test_statusline.vim + +Patch 8.2.2855 +Problem: White space after "->" does not give E274. +Solution: Do not skip white space in legacy script. (closes #8212) +Files: src/eval.c, src/testdir/test_method.vim + +Patch 8.2.2856 +Problem: Get readonly error for device that can't be written to. +Solution: Check for being able to write first. (closes #8205) +Files: src/ex_cmds.c, src/testdir/test_writefile.vim + +Patch 8.2.2857 +Problem: Vim9: exception in ISN_INSTR caught at wrong level. +Solution: Set the starting trylevel in exec_instructions(). (closes #8214) +Files: src/vim9compile.c, src/vim9execute.c, src/globals.h, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2858 (after 8.2.2857) +Problem: Test fails because of changed error message. +Solution: Adjust the expected error message. +Files: src/testdir/test_ex_mode.vim + +Patch 8.2.2859 (after 8.2.2857) +Problem: Tcl test fails because of changed error message. +Solution: Adjust the expected error message. +Files: src/testdir/test_tcl.vim + +Patch 8.2.2860 +Problem: Adding a text property causes the whole window to be redrawn. +Solution: Use changed_lines_buf() to only redraw the affected lines. +Files: src/change.c, src/proto/change.pro, src/textprop.c + +Patch 8.2.2861 +Problem: Vim9: "legacy return" is not recognized as a return statement. +Solution: Specifically check for a return command. (closes #8213) +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_expr.vim + +Patch 8.2.2862 +Problem: Removing a text property causes the whole window to be redrawn. +Solution: Use changed_lines_buf() to only redraw the affected lines. +Files: src/textprop.c + +Patch 8.2.2863 (after 8.2.2862) +Problem: Removing a text property does not redraw optimally. +Solution: Only redraw the lines that mithg actually have been changed. +Files: src/textprop.c + +Patch 8.2.2864 +Problem: Vim9: crash when using inline function. +Solution: Check for NULL pointer. Make using inline function work inside + lambda. (closes #8217) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2865 (after 8.2.2864) +Problem: Skipping over function body fails. +Solution: Do not define the function when skipping. +Files: src/userfunc.c + +Patch 8.2.2866 +Problem: Vim9: memory leak when using inline function. +Solution: Remember what strings to free. +Files: src/userfunc.c, src/structs.h, src/eval.c + +Patch 8.2.2867 (after 8.2.2866) +Problem: Build failure. +Solution: Add missing part of the change. +Files: src/globals.h + +Patch 8.2.2868 +Problem: Vim9: When executing a compiled expression the trylevel at start + is changed but not restored. (closes #8214) +Solution: Restore the trylevel at start. +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2869 +Problem: Using unified diff is not tested. +Solution: Test all cases also with unified diff. (issue #8197) +Files: src/testdir/test_diffmode.vim + +Patch 8.2.2870 +Problem: CmdlineChange event triggered twice for CTRL-R. +Solution: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg(). + (closes #8219) +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.2871 +Problem: Unnecessary VIM_ISDIGIT() calls, badly indented code. +Solution: Call skipdigits() on the next character. Improve indenting. + (Dominique Pellé, closes #8227) +Files: src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c, + src/ops.c, src/tag.c, src/vim9compile.c + +Patch 8.2.2872 +Problem: Python tests fail without the channel feature. +Solution: Add a feature check. (Dominique Pellé, closes #8226) +Files: src/testdir/test_python2.vim, src/testdir/test_python3.vim + +Patch 8.2.2873 +Problem: Not enough tests for writing buffers. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8229) +Files: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim, + src/testdir/test_functions.vim, src/testdir/test_writefile.vim + +Patch 8.2.2874 +Problem: MS-Windows: screen redraws too often. +Solution: Do not redraw when peeking for a character. (closes #8230, + closes #8211) +Files: src/os_win32.c + +Patch 8.2.2875 +Problem: Cancelling inputlist() after a digit does not return zero. +Solution: Always return zero when cancelling. (closes #8231) +Files: src/misc1.c, src/testdir/test_functions.vim + +Patch 8.2.2876 +Problem: Configure cannot detect Python 3.10. +Solution: Use sys.version_info. (closes #8233) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2877 +Problem: Insufficient tests for popup menu rightleft. +Solution: Add tests. (Yegappan Lakshmanan, closes #8235) +Files: src/testdir/test_popup.vim, + src/testdir/dumps/Test_pum_rightleft_01.dump, + src/testdir/dumps/Test_pum_rightleft_02.dump, + src/testdir/dumps/Test_pum_scrollbar_01.dump, + src/testdir/dumps/Test_pum_scrollbar_02.dump + +Patch 8.2.2878 +Problem: Vim9: for loop list unpack only allows for one "_". +Solution: Drop the value when the variable is "_". (closes #8232) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2879 +Problem: File extension .hsig not recognized. +Solution: Use Haskell filetype for .hsig files. (Marcin Szamotulski, + closes #8236) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2880 +Problem: Unified diff fails if actually used. +Solution: Invoke :diffupdate in the test. Fix the check for working external + diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197) +Files: src/diff.c, src/testdir/test_diffmode.vim + +Patch 8.2.2881 +Problem: Various pieces of code not covered by tests. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8245) +Files: src/testdir/test_const.vim, src/testdir/test_functions.vim, + src/testdir/test_python2.vim, src/testdir/test_python3.vim, + src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.2882 +Problem: Vim9: memory leak when lambda has an error. +Solution: Free the list of argument types on failure. +Files: src/userfunc.c + +Patch 8.2.2883 +Problem: MS-Windows manifest file name is misleading. +Solution: Rename the file. (closes #8241) +Files: .gitignore, .hgignore, Filelist, Makefile, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/gvim.exe.mnf, src/vim.manifest, src/vim.rc + +Patch 8.2.2884 +Problem: Not enough cscope code is covered by tests. +Solution: Add a few test cases. (Dominique Pellé, closes #8246) +Files: src/testdir/test_cscope.vim + +Patch 8.2.2885 +Problem: searching for \%'> does not match linewise end of line. (Tim Chase) +Solution: Match end of line if column is MAXCOL. (closes #8238) +Files: src/regexp_nfa.c, src/regexp_bt.c, src/testdir/test_search.vim + +Patch 8.2.2886 +Problem: Various pieces of code not covered by tests. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8255) +Files: src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_listdict.vim, src/testdir/test_registers.vim, + src/testdir/test_user_func.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.2887 +Problem: Crash when passing null string to fullcommand(). +Solution: Check for NULL pointer. (closes #8256) +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.2888 +Problem: Vim9: "k" command recognized in Vim9 script. +Solution: Do not recognize "k" or "s" and "d" with flags. +Files: src/ex_docmd.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.2889 +Problem: Typo and verbose comment in Makefiles. +Solution: Fix typo. Use @#. (Ken Takata, closes #8252) +Files: Makefile, src/testdir/Makefile + +Patch 8.2.2890 +Problem: Text property duplicated when data block splits. +Solution: Do not continue text prop from previous line. (closes #8261) +Files: src/memline.c, src/structs.h, src/testdir/test_textprop.vim + +Patch 8.2.2891 +Problem: Cannot build with Perl 5.34. +Solution: Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266, + closes #8250) +Files: src/if_perl.xs + +Patch 8.2.2892 +Problem: Error message contains random characters. +Solution: Pass the right pointer to error_white_both(). (closes #8272, + closes #8263) +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2893 +Problem: Multi-byte text in popup title shows up wrong. +Solution: Use the character width instead of the byte length. (Ralf Schandl, + closes #8267, closes #8264) +Files: src/popupwin.c, src/message_test.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_multibytetitle.dump + +Patch 8.2.2894 +Problem: MS-Windows: using enc_locale() for strftime() might not work. +Solution: Use wcsftime(). (Ken Takata, closes #8271) +Files: src/time.c + +Patch 8.2.2895 +Problem: Vim9: random characters appear in some error messages. +Solution: Pass the correct pointer. (closes #8277) +Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2896 +Problem: Spellfile functionality not fully tested. +Solution: Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé, + closes #8270) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.2897 +Problem: Vim9: can use reserved words at the script level. +Solution: Check variable names for reserved words. (closes #8253) +Files: src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro, + src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2898 +Problem: QuitPre and ExitPre not triggered when GUI window is closed. +Solution: Call before_quit_autocmds(). (closes #8242) +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/gui.c + +Patch 8.2.2899 +Problem: Appveyor script does not detect nmake failure. +Solution: Explicitly check for executable. (Ken Takata, closes #8281) +Files: ci/appveyor.bat + +Patch 8.2.2900 +Problem: QuitPre is triggered before :wq writes the file, which is + different from other commands. +Solution: Trigger QuitPre after writing the file. (closes #8279) +Files: src/ex_docmd.c, src/testdir/test_writefile.vim + +Patch 8.2.2901 +Problem: Some operators not fully tested. +Solution: Add a few test cases. (Yegappan Lakshmanan, closes #8282) +Files: src/testdir/test_cpoptions.vim, src/testdir/test_increment.vim, + src/testdir/test_normal.vim, src/testdir/test_virtualedit.vim, + src/testdir/test_visual.vim + +Patch 8.2.2902 +Problem: Spellfile functionality not fully tested. +Solution: Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé, + closes #8283) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.2903 +Problem: Cursor position wrong on wrapped line with 'signcolumn'. +Solution: Don't add space for showbreak twice. (Christian Brabandt, + closes #8262) +Files: src/drawline.c, src/testdir/test_display.vim + +Patch 8.2.2904 +Problem: "g$" causes scroll if half a double width char is visible. +Solution: Advance to the last fully visible character. (closes #8254) +Files: src/normal.c, src/testdir/test_normal.vim + +Patch 8.2.2905 +Problem: No error when defaults.vim cannot be loaded. +Solution: Add an error message. (Christian Brabandt, closes #8248) +Files: runtime/doc/starting.txt, src/errors.h, src/main.c, + src/testdir/test_startup.vim + +Patch 8.2.2906 (after 8.2.2905) +Problem: ASAN reports errors for test_startup for unknown reasons. +Solution: Temporarily disable the new test. +Files: src/testdir/test_startup.vim + +Patch 8.2.2907 +Problem: Memory leak when running out of memory. +Solution: Free the allocated memory. (Dominique Pellé, closes #8284) +Files: src/term.c + +Patch 8.2.2908 +Problem: Crash when using a terminal popup window from the cmdline window. +Solution: Instead of checking cmdwin_type call cmdwin_is_active(). + (closes #8286) +Files: src/terminal.c, src/errors.h, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_cmdwin_no_terminal.dump + +Patch 8.2.2909 +Problem: Build error with non-Unix system. +Solution: Always include limits.h. +Files: src/vim.h + +Patch 8.2.2910 +Problem: Test for cmdline window and terminal fails on MS-Windows. +Solution: Skip the test on MS-Windows. +Files: src/testdir/test_cmdline.vim + +Patch 8.2.2911 +Problem: Pattern "\%V" does not match all of block selection. (Rick Howe) +Solution: Use the value of vi_curswant. (closes #8285) +Files: src/regexp.c, src/testdir/test_search.vim, + src/testdir/dumps/Test_hlsearch_block_visual_match.dump + +Patch 8.2.2912 +Problem: MS-Windows: most users expect using Unicode. +Solution: Default 'encoding' to utf-8 on MS-Windows. (Ken Takata, + closes #3907) +Files: runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h, + src/testdir/test_writefile.vim + +Patch 8.2.2913 +Problem: MS-Windows conpty supports using mouse events. +Solution: When enabling the mouse enable mouse input and disable quick edit + mode. (Wez Furlong, closes #8280) +Files: src/os_win32.c + +Patch 8.2.2914 +Problem: Cannot paste a block without adding padding. +Solution: Add "zp" and "zP" which paste without adding padding. (Christian + Brabandt, closes #8289) +Files: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, + src/register.c, src/vim.h, src/testdir/test_normal.vim, + src/testdir/test_visual.vim + +Patch 8.2.2915 +Problem: MS-Windows: when using "default" for encoding utf-8 is used. +Solution: Use the system encoding. (Ken Takata, closes #8300) +Files: src/mbyte.c, runtime/doc/options.txt + +Patch 8.2.2916 +Problem: Operators are not fully tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8290) +Files: src/ops.c, src/testdir/test_netbeans.vim, + src/testdir/test_normal.vim, src/testdir/test_visual.vim + +Patch 8.2.2917 +Problem: Spellfile functionality not fully tested. +Solution: Add tests for SFX with removal of characters, spelling + suggestions with NOBREAK and others. (Dominique Pellé, + closes #8293) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.2918 +Problem: Builtin function can be shadowed by global variable. +Solution: Check for builtin function before variable. (Yasuhiro Matsumoto, + closes #8302) +Files: src/eval.c, src/testdir/test_functions.vim + +Patch 8.2.2919 +Problem: Using ":!command" does not work if the command uses posix_spawn(). +Solution: Do not call ioctl() with TIOCSCTTY. (Felipe Contreras) +Files: src/os_unix.c + +Patch 8.2.2920 +Problem: Still a way to shadow a builtin function. (Yasuhiro Matsumoto) +Solution: Check the key when using extend(). (issue #8302) +Files: src/eval.c, src/dict.c, src/proto/dict.pro, + src/testdir/test_functions.vim + +Patch 8.2.2921 +Problem: E704 for script local variable is not backwards compatible. + (Yasuhiro Matsumoto) +Solution: Only give the error in Vim9 script. Also check for function-local + variable. +Files: src/dict.c, src/testdir/test_functions.vim + +Patch 8.2.2922 +Problem: Computing array length is done in various ways. +Solution: Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305) +Files: src/arabic.c, src/blowfish.c, src/cindent.c, src/cmdexpand.c, + src/cmdhist.c, src/dosinst.c, src/eval.c, src/evalfunc.c, + src/ex_docmd.c, src/fileio.c, src/gui_athena.c, src/gui_gtk_x11.c, + src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c, + src/gui_xmebw.c, src/hardcopy.c, src/help.c, src/highlight.c, + src/if_mzsch.c, src/macros.h, src/main.c, src/map.c, src/mbyte.c, + src/memline.c, src/menu.c, src/misc2.c, src/normal.c, src/ops.c, + src/option.c, src/optiondefs.h, src/os_win32.c, src/popupwin.c, + src/quickfix.c, src/regexp.c, src/screen.c, src/search.c, + src/syntax.c, src/term.c, src/terminal.c, src/time.c, + src/usercmd.c, src/version.c + +Patch 8.2.2923 +Problem: EBCDIC build is broken. +Solution: Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306) +Files: src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro + +Patch 8.2.2924 +Problem: Superfluous extern declaration. +Solution: Delete the declaration. (Ken Takata, closes #8307) +Files: src/main.c + +Patch 8.2.2925 +Problem: Vim9: line continuation comment uses legacy syntax. +Solution: Check for #\ instead of "\. (closes #8295) +Files: src/scriptfile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2926 +Problem: Vim9: no good error for using :legacy in a :def function. +Solution: Give an explicit error where :legacy is not working. + (closes #8309) +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim + +Patch 8.2.2927 +Problem: Test commented out because it fails with ASAN. +Solution: Only skip the test when running with ASAN. +Files: src/testdir/test_startup.vim + +Patch 8.2.2928 +Problem: The evalfunc.c file is too big. +Solution: Move float related functionality to a separate file. (Yegappan + Lakshmanan, closes #8287) +Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/eval.c, src/evalfunc.c, src/float.c, src/proto.h, + src/proto/eval.pro, src/proto/float.pro + +Patch 8.2.2929 +Problem: Accidentally enable tcl by default. +Solution: Revert change to Makefile +Files: src/Makefile + +Patch 8.2.2930 +Problem: When a popup is visible a mouse move my restart Visual mode. +Solution: Reset held_button when ending Visual mode. (closes #8318) +Files: src/mouse.c, src/proto/mouse.pro, src/normal.c + +Patch 8.2.2931 +Problem: Vim9: line continuation comment still uses legacy syntax in one + place. +Solution: Check for #\ instead of "\ earlier. (closes #8316) +Files: src/scriptfile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.2932 (after 8.2.2930) +Problem: Select mode test fails. +Solution: Do not always reset the held mouse button. +Files: src/mouse.c, src/normal.c, src/proto/normal.pro + +Patch 8.2.2933 +Problem: When 'clipboard' is "unnamed" zp and zP do not work correctly. +Solution: Pass -1 to str_to_reg() and fix computing the character width + instead of using the byte length. (Christian Brabandt, + closes #8301, closes #8317) +Files: src/clipboard.c, src/mbyte.c, src/register.c + +Patch 8.2.2934 (after 8.2.2933) +Problem: ASAN error when using text from the clipboard. +Solution: Get width of each character. +Files: src/register.c + +Patch 8.2.2935 (after 8.2.2934) +Problem: Calculating register width is not always needed. (Christian + Brabandt) +Solution: Only calculate the width when the type is MBLOCK. +Files: src/register.c + +Patch 8.2.2936 +Problem: Vim9: converting number to bool uses wrong stack offset. (Salman + Halim) +Solution: Include the offset in the 2BOOL command. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2937 +Problem: Popup test fails if rightleft feature not enabled. +Solution: Check that the rightleft feature is available. (Dominique Pellé, + closes #8321) +Files: src/testdir/test_popup.vim + +Patch 8.2.2938 +Problem: After using motion force from feedkeys() it may not be reset. +Solution: Clear motion_force in clearop(). (closes #8323) +Files: src/normal.c, src/testdir/test_visual.vim + +Patch 8.2.2939 +Problem: GTK: righthand scrollbar does not show with split window. +Solution: Adjust padding when two scrollbars are used. (Matt Wozniski, + closes #8324) +Files: src/gui_gtk.c + +Patch 8.2.2940 +Problem: MS-Windows: cannot see the size of the text area when resizing the + gvim window. +Solution: Show a tooltip with the text size. (Ken Takata, closes #8326) +Files: src/gui_w32.c + +Patch 8.2.2941 +Problem: Vim9: using `=expr` does not handle a list of strings. +Solution: Convert a list to a string and escape each item. (closes #8310) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2942 +Problem: Vim9: internal error when calling function with too few arguments +Solution: Check for argument count to be too few. (closes #8325) +Files: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.2943 +Problem: Vim9: check for argument count ignores default values. +Solution: Take default argument values into account. +Files: src/vim9execute.c + +Patch 8.2.2944 +Problem: Vim9: no error when using job or channel as a string. +Solution: Be more strict about conversion to string. (closes #8312) +Files: src/typval.c, src/job.c, src/proto/job.pro, src/channel.c, + src/proto/channel.pro, src/eval.c, src/vim9execute.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.2945 +Problem: Some buffer related code is not tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8320) +Files: src/termlib.c, src/testdir/test_excmd.vim, + src/testdir/test_recover.vim, src/testdir/test_swap.vim, + src/testdir/test_visual.vim + +Patch 8.2.2946 +Problem: Vim9: substitute expression cannot be a List in a :def function. +Solution: Use typval2string(). (closes #8330) +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2947 +Problem: Build failure without the channel feature. +Solution: Add back #ifdef. (John Marriott) +Files: src/eval.c + +Patch 8.2.2948 +Problem: Substitute() accepts a number but not a float expression. +Solution: Also accept a float. (closes #8331) +Files: src/typval.c, src/testdir/test_substitute.vim + +Patch 8.2.2949 (after 8.2.2948) +Problem: Tests failing because there is no error for float to string + conversion. +Solution: Change the check for failure to check for correct result. Make + some conversions strict in Vim9 script. +Files: src/evalfunc.c, src/float.c, src/findfile.c, src/json.c, + src/filepath.c, src/testdir/test_eval_stuff.vim, + src/testdir/test_execute_func.vim, + src/testdir/test_float_func.vim, src/testdir/test_functions.vim, + src/testdir/test_listdict.vim, src/testdir/test_glob2regpat.vim + +Patch 8.2.2950 +Problem: Sound code not fully tested. +Solution: Add more sound tests. (Dominique Pellé, closes #8332) +Files: src/testdir/test_sound.vim + +Patch 8.2.2951 +Problem: Vim9: cannot use heredoc in :def function for :python, :lua, etc. +Solution: Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT + instruction. +Files: src/userfunc.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2952 +Problem: Recover test fails on big endian systems. +Solution: Disable the failing test on big endian systems. (Yegappan + Lakshmanan, closes #8335) +Files: src/testdir/test_recover.vim, src/testdir/test_swap.vim + +Patch 8.2.2953 (after 8.2.2951) +Problem: Vim9: leaking memory when using heredoc script. +Solution: Free the first line. +Files: src/vim9execute.c + +Patch 8.2.2954 +Problem: Short file name extension for Scala not recognized. +Solution: Recognize *.sc. (closes #8337) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2955 +Problem: Vim9: using filter in compiled command does not work. +Solution: Generate EXEC including the command modifier. +Files: src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.c, + src/proto/ex_cmds.pro, src/testdir/test_vim9_cmd.vim + +Patch 8.2.2956 +Problem: Vim9: need to plan for future additions. +Solution: Reserve commands for future use: :type, :class, :enum. +Files: src/ex_cmds.h, src/ex_cmdidxs.h + +Patch 8.2.2957 +Problem: Using getchar() in Vim9 script is problematic. +Solution: Add getcharstr(). (closes #8343) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c, + src/proto/getchar.pro, src/testdir/test_functions.vim + +Patch 8.2.2958 (after 8.2.2957) +Problem: Function list test fails. +Solution: Add newly added function to the list. Fix typo. +Files: runtime/doc/usr_41.txt, src/testdir/test_function_lists.vim + +Patch 8.2.2959 +Problem: sound_playfile() is not tested on MS-Windows. +Solution: Make it work and enable the test. (Dominique Pellé, closes #8338) +Files: src/sound.c, src/testdir/test_sound.vim + +Patch 8.2.2960 +Problem: Swap file recovery not sufficiently tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8339) +Files: src/testdir/test_recover.vim + +Patch 8.2.2961 +Problem: Keys typed during a :normal command are discarded. +Solution: Concatenate saved typeahead and typed keys. (closes #8340) +Files: src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c, + src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro + +Patch 8.2.2962 +Problem: MS-Windows command line arguments have wrong encoding. +Solution: Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347) +Files: src/os_win32.c + +Patch 8.2.2963 +Problem: GUI: mouse move may start Visual mode with a popup visible. +Solution: Add special code for mouse move. (closes #8318) +Files: src/vim.h, src/gui.c, src/keymap.h, src/term.c + +Patch 8.2.2964 +Problem: Vim9: hang when using space after ->. (Naohiro Ono) +Solution: Skip over white space to find the function name. (closes #8341) +Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.2965 +Problem: Vim9: crash when calling function that failed to compile. +Solution: Fail when trying to call the function. (closes #8344) +Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2966 +Problem: ml_get errors after recovering a file. (Yegappan Lakshmanan) +Solution: Fix the cursor position after deleting lines. +Files: src/memline.c + +Patch 8.2.2967 +Problem: Vim9: crash when using two levels of partials. +Solution: Add outer_ref_T and use it in the execution context. +Files: src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.2968 (after 8.2.2967) +Problem: Vim9: memory leak +Solution: Unreference pt_outer of partial. +Files: src/eval.c + +Patch 8.2.2969 +Problem: Subtracting from number option fails when result is zero. (Ingo + Karkat) +Solution: Reset the string value when using the numeric value. + (closes #8351) +Files: src/evalvars.c, src/testdir/test_vimscript.vim + +Patch 8.2.2970 +Problem: Python configure check uses deprecated command. +Solution: Use sysconfig instead of distutils if possible. (Zdenek Dohnal, + closes #8354) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.2971 +Problem: Cannot yank a block without trailing spaces. +Solution: Add the "zy" command. (Christian Brabandt, closes #8292) +Files: runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c, + src/ops.c, src/register.c, src/structs.h, + src/testdir/test_visual.vim + +Patch 8.2.2972 +Problem: "%bd" tries to delete popup window buffers, which fails. (Ralf + Schandl) +Solution: Do not try to delete a popup window buffer. (closes #8349) +Files: src/buffer.c, src/vim.h, src/testdir/test_popupwin.vim + +Patch 8.2.2973 +Problem: Fix for recovery and diff mode not tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8352) +Files: src/testdir/test_diffmode.vim, src/testdir/test_prompt_buffer.vim, + src/testdir/test_recover.vim + +Patch 8.2.2974 +Problem: Greek spell checking uses wrong case folding. +Solution: Fold capital sigma depending on whether it is at the end of a + word or not. (closes #299) +Files: src/spell.c, src/proto/spell.pro, src/spellfile.c, + src/spellsuggest.c + +Patch 8.2.2975 +Problem: Vim9: can only use an autoload function name as a string. +Solution: Load the autoload script when encountered. (closes #8124) +Files: src/vim9compile.c, src/evalvars.c, src/scriptfile.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2976 (after 8.2.2975) +Problem: Build failure without the +eval feature. +Solution: Add #ifdefs. +Files: src/scriptfile.c + +Patch 8.2.2977 +Problem: Crash when using a null function reference. (Naohiro Ono) +Solution: Check for an invalid function name. (closes #8367) +Files: src/eval.c, src/errors.h, src/testdir/test_functions.vim + +Patch 8.2.2978 (after 8.2.2977) +Problem: Warning for uninitialized variable. +Solution: Set return value to FAIL. +Files: src/eval.c + +Patch 8.2.2979 +Problem: Not all options code is covered by tests. +Solution: Add more tests for options. (Yegappan Lakshmanan, closes #8369) +Files: src/testdir/test_edit.vim, src/testdir/test_excmd.vim, + src/testdir/test_help.vim, src/testdir/test_mksession.vim, + src/testdir/test_options.vim, src/testdir/test_vartabs.vim, + src/testdir/test_window_cmd.vim + +Patch 8.2.2980 +Problem: Popup window test is a bit flaky. +Solution: Add a redraw command. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.2981 +Problem: Recovery test is not run on big-endian systems. +Solution: Make it work on big-endian systems. (James McCoy, closes #8368) +Files: src/testdir/test_recover.vim + +Patch 8.2.2982 +Problem: Vim9: future commands are not reserved yet. +Solution: Add commands to be implemented later. Make "this" a reserved + name. +Files: runtime/doc/vim9.txt, src/ex_cmds.h, src/ex_cmdidxs.h, + src/vim9script.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.2983 +Problem: Vim9: an inline function requires specifying the return type. +Solution: Make the return type optional. +Files: src/eval.c, src/vim9compile.c, src/userfunc.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.2984 (after 8.2.2983) +Problem: Vim9: Test fails because of missing return statement. +Solution: When type is unknown set type to void. +Files: src/vim9compile.c + +Patch 8.2.2985 +Problem: Vim9: a compiled function cannot be debugged. +Solution: Add initial debugging support. +Files: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim.h, src/eval.c, src/vim9execute.c, src/userfunc.c, + src/vim9type.c, src/testdir/test_debugger.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2986 +Problem: Build failure without the profile feature. +Solution: Add #ifdef. +Files: src/vim9compile.c + +Patch 8.2.2987 +Problem: Build failure with normal features. +Solution: Remove #define. +Files: src/vim9execute.c + +Patch 8.2.2988 +Problem: Vim9: debugger test fails. +Solution: Get the debugger instructions when needed. +Files: src/vim.h, src/vim9.h + +Patch 8.2.2989 +Problem: Vim9: memory leak when debugging a :def function. +Solution: Free the debug instructions. +Files: src/vim9compile.c + +Patch 8.2.2990 +Problem: Jupyter Notebook files are not recognized. +Solution: Recognize *.ipynb. (closes #8375) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.2991 +Problem: Vim9: no completion for :vim9 and :legacy. +Solution: Expand argument as a command. (closes #8377) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.2992 +Problem: Vim9: completion for :disassemble is incomplete. +Solution: Recognize the "debug" and "profile" arguments. +Files: src/cmdexpand.c, src/vim9execute.c, src/proto/vim9execute.pro, + src/vim.h, src/testdir/test_cmdline.vim + +Patch 8.2.2993 +Problem: 'fileencodings' default value should depend on 'encoding'. (Gary + Johnson) +Solution: When 'encoding' is "utf-8" use a different default value for + 'fileencodings'. +Files: src/mbyte.c, src/option.c, src/proto/option.pro, + src/testdir/test_options.vim + +Patch 8.2.2994 +Problem: Various code is not fully tested. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8378) +Files: src/testdir/test_excmd.vim, src/testdir/test_mapping.vim, + src/testdir/test_modeline.vim, src/testdir/test_options.vim, + src/testdir/test_paste.vim, src/vim9compile.c + +Patch 8.2.2995 +Problem: Linker errors with dynamic Python 3.10. +Solution: Add a couple of library entries. (Zdenek Dohnal, closes #8381, + closes #8356) +Files: src/if_python3.c + +Patch 8.2.2996 +Problem: Vim9: when debugging cannot inspect local variables. +Solution: Make local variables available when debugging. +Files: src/vim9execute.c, src/proto/vim9execute.pro, src/vim9compile.c, + src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim + +Patch 8.2.2997 (after 8.2 2996) +Problem: Vim9: disassemble test fails. +Solution: Adjust expected output. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.2998 (after 8.2 2996) +Problem: Vim9: disassemble test fails. +Solution: Add missing call to lookup_debug_var(). +Files: src/evalvars.c + +Patch 8.2.2999 +Problem: Balloon sometimes does not hide with GTK 3. +Solution: Also listen to GDK_LEAVE_NOTIFY. (Johannes Stezenbach) +Files: src/gui_beval.c + +Patch 8.2.3000 +Problem: Vim9: warning for uninitialized variable. +Solution: Add initialization. (John Marriott) +Files: src/vim9compile.c + +Patch 8.2.3001 +Problem: Vim9: memory leak when compilation fails. +Solution: Free the list of variable names. +Files: src/vim9compile.c + +Patch 8.2.3002 +Problem: Vim doesn't abort on a fatal Tcl error. +Solution: Change emsg() to iemsg(). (Dominique Pellé, closes #8383) +Files: src/if_tcl.c + +Patch 8.2.3003 +Problem: Vim9: closure compiled with wrong compile type. +Solution: Use COMPILE_TYPE() when calling a function. (closes #8384) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3004 +Problem: Vim9: error for missing colon given while skipping. +Solution: Do not give the error when skipping. (closes #8385) +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3005 +Problem: Vim9: using a void value does not give a proper error message. +Solution: Give a clear error message. (closes #8387) +Files: src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3006 +Problem: Crash when echoing a value very early. (Naruhiko Nishino) +Solution: Do not use a NUL to truncate the message, make a copy. + (closes #8388) +Files: src/message.c, src/testdir/test_startup.vim + +Patch 8.2.3007 (after 8.2.3005) +Problem: Vim9: test for void value fails. +Solution: Adjust expected error. Do not make a copy of void. +Files: src/typval.c, src/testdir/test_functions.vim + +Patch 8.2.3008 (after 8.2.3006) +Problem: Startup test may hang. +Solution: Add quit command in the script. +Files: src/testdir/test_startup.vim + +Patch 8.2.3009 (after 8.2.3006) +Problem: Startup test may hang. +Solution: Do not run the test in the GUI. +Files: src/testdir/test_startup.vim + +Patch 8.2.3010 +Problem: Not enough testing for viminfo code. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8390) +Files: src/register.c, src/testdir/test_fileformat.vim, + src/testdir/test_smartindent.vim, src/testdir/test_viminfo.vim + +Patch 8.2.3011 +Problem: Vim9: cannot get argument values during debugging. +Solution: Lookup names in the list of arguments. Put debug instruction + halfway for command. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_debugger.vim + +Patch 8.2.3012 +Problem: When 'rightleft' is set the line number is sometimes drawn + reversed. +Solution: Adjust how space is handled. (Christian Brabandt, closes #8389, + closes #8391) +Files: src/drawline.c, src/testdir/test_number.vim + +Patch 8.2.3013 +Problem: Vim: when debugging only the first line of a command using line + continuation is displayed. +Solution: Find the next command and concatenate lines until that one. + (closes #8392) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3014 +Problem: Coverity warns for freeing static string. +Solution: Do not assign static string to pointer. (Dominique Pellé, + closes #8397) +Files: src/vim9execute.c + +Patch 8.2.3015 +Problem: Vim9: Assigning to @# requires a string. (Naohiro Ono) +Solution: Accent a number or a string. (closes #8396) +Files: src/vim9compile.c, src/vim9execute.c, src/globals.h, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3016 +Problem: Confusing error when expression is followed by comma. +Solution: Give a different error for trailing text. (closes #8395) +Files: src/eval.c, src/testdir/test_let.vim, + src/testdir/test_eval_stuff.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim, + src/testdir/test_vimscript.vim + +Patch 8.2.3017 +Problem: Vim9: debugger shows too many lines. +Solution: Truncate at a comment, "enddef", etc. (closes #8392) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3018 +Problem: Formatting using quickfixtextfunc is lost when updating location + lists for different buffers. (Yorick Peterse) +Solution: Use the right window for the location list. (Yegappan Lakshmanan, + closes #8400, closes #8403) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.3019 +Problem: Location list only has the start position. +Solution: Make it possible to add an end position. (thinca, closes #8393) +Files: runtime/doc/eval.txt, src/quickfix.c, + src/testdir/dumps/Test_quickfix_cwindow_1.dump, + src/testdir/dumps/Test_quickfix_cwindow_2.dump, + src/testdir/test_quickfix.vim, src/testdir/test_tagjump.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.3020 +Problem: Unreachable code. +Solution: Remove the code. (closes #8406) +Files: src/ex_docmd.c + +Patch 8.2.3021 +Problem: Spaces allowed between option name and "!", "?", etc. +Solution: Disallow spaces in Vim9 script, it was not documented. + (closes #8408) +Files: src/option.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3022 +Problem: Available encryption methods are not strong enough. +Solution: Add initial support for xchacha20. (Christian Brabandt, + closes #8394) +Files: .github/workflows/ci.yml, runtime/doc/eval.txt, + runtime/doc/options.txt, runtime/doc/various.txt, + src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, + src/auto/configure, src/blowfish.c, src/bufwrite.c, + src/config.h.in, src/configure.ac, src/crypt.c, src/crypt_zip.c, + src/errors.h, src/evalfunc.c, src/feature.h, src/fileio.c, + src/memline.c, src/option.c, src/optionstr.c, + src/proto/blowfish.pro, src/proto/crypt.pro, + src/proto/crypt_zip.pro, src/structs.h, + src/testdir/samples/crypt_sodium_invalid.txt, + src/testdir/test_crypt.vim, src/undo.c, src/version.c + +Patch 8.2.3023 +Problem: Vim9: arguments for execute() not checked at compile time. +Solution: Add a function to check the argument types. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3024 (after 8.2.3023) +Problem: execute() function test fails. +Solution: Adjust test for different error. +Files: src/testdir/test_execute_func.vim + +Patch 8.2.3025 +Problem: Not enough tests for quickfix end_col and end_lnum. +Solution: Add a few more test cases. (Shane-XB-Qian, closes #8409) +Files: src/testdir/test_quickfix.vim + +Patch 8.2.3026 +Problem: Vim9: cannot set breakpoint in compiled function. +Solution: Check for breakpoint when calling a function. +Files: src/vim9execute.c, src/structs.h, src/vim.h, src/vim9.h, + src/debugger.c, src/testdir/test_debugger.vim + +Patch 8.2.3027 +Problem: Vim9: breakpoint in compiled function not always checked. +Solution: Check for breakpoint when calling compiled function from compiled + function. +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3028 +Problem: GUI mouse events not tested. +Solution: Add test_gui_mouse_event(). Add mouse tests. Also add a few + viminfo tests. (Yegappan Lakshmanan, closes #8407) +Files: runtime/doc/eval.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, + src/testdir/test_gui.vim, src/testdir/test_viminfo.vim, + src/testing.c + +Patch 8.2.3029 +Problem: Vim9: crash when using operator and list unpack assignment. + (Naohiro Ono) +Solution: Get variable value before operation. (closes #8416) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/ex_docmd.c, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3030 +Problem: Coverity reports a memory leak. +Solution: Fix the leak and a few typos. (Dominique Pellé, closes #8418) +Files: src/crypt.c, src/errors.h + +Patch 8.2.3031 +Problem: No error if a function name starts with an underscore. (Naohiro + Ono) +Solution: In Vim9 script disallow a function name starting with an + underscore, as is mentioned in the help. (closes #8414) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3032 +Problem: Build problems with MSVC, other crypt issues with libsodium. +Solution: Adjust MSVC makefile. Disable swap file only when 'key' is set. + Adjust error message used when key is wrong. Fix Coverity issues. + (Christian Brabandt, closes #8420, closes #8411) +Files: src/Make_mvc.mak, src/crypt.c, src/errors.h, src/fileio.c, + src/memline.c, src/proto/crypt.pro + +Patch 8.2.3033 +Problem: No error when using alpha delimiter with :global. +Solution: Check the delimiter like with :substitute. (closes #8415) +Files: src/ex_cmds.c, src/testdir/test_global.vim + +Patch 8.2.3034 +Problem: Installing packages on github CI sometimes fails. +Solution: Update package information first. (Christian Brabandt, + closes #8432) +Files: .github/workflows/ci.yml + +Patch 8.2.3035 +Problem: Vim9: crash when calling :def function with partial and return + type is not set. +Solution: When the return type is not set handle like the return type is + unknown. (closes #8422) +Files: src/vim9type.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3036 +Problem: Vim9: builtin function arguments not checked at compile time. +Solution: Add more argument type specs. Check arguments to test_setmouse() + and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425) +Files: src/evalfunc.c, src/testdir/test_assert.vim, + src/testdir/test_gui.vim, src/testdir/test_popupwin.vim, + src/testdir/test_vim9_builtin.vim, src/testing.c + +Patch 8.2.3037 +Problem: Configure reports libcanberra when checking for libsodium. +Solution: Adjust the message. (Ozaki Kiichi, closes #8435) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.3038 +Problem: Amiga built-in version string doesn't include build date. +Solution: Add the build date if available. (Ola Söder, closes #8437) +Files: src/os_amiga.c + +Patch 8.2.3039 +Problem: Vim9: breakpoint at a comment line does not work. +Solution: Add the comment line number to the debug instruction. + (closes #8429) +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_debugger.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3040 +Problem: GUI: dropping files not tested. +Solution: Add test_gui_drop_files() and tests. (Yegappan Lakshmanan, + closes #8434) +Files: runtime/doc/eval.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/gui.c, + src/proto/testing.pro, src/testdir/test_gui.vim, src/testing.c + +Patch 8.2.3041 +Problem: Detecting if the process of a swap file is running fails if the + process is owned by another user. +Solution: Check for the ESRCH error. (closes #8436) +Files: src/os_unix.c + +Patch 8.2.3042 (after 8.2.3041) +Problem: Swap file test fails. +Solution: Check for a very high process ID instead of one, which should be + running. +Files: src/testdir/test_swap.vim + +Patch 8.2.3043 +Problem: Amiga: cannot get the shell size on MorphOS and AROS. +Solution: Use control sequences. (Ola Söder, closes #8438) +Files: src/os_amiga.c + +Patch 8.2.3044 +Problem: Amiga MorphOS and AROS: process ID is not valid. +Solution: Use FindTask to return something which is unique to all processes. + (Ola Söder, closes #8444) +Files: src/os_amiga.c + +Patch 8.2.3045 +Problem: Minor typos. +Solution: Fix the typos. (Christian Brabandt, closes #8441) +Files: src/VisVim/README_VisVim.txt, src/evalfunc.c, src/testdir/vim9.vim + +Patch 8.2.3046 +Problem: Amiga MorphOS: Term mode is set using DOS packets. +Solution: Use the same way of setting term mode on all next gen Amiga-like + systems. (Ola Söder, closes #8445) +Files: src/os_amiga.c + +Patch 8.2.3047 +Problem: Increment and decrement don't allow for next command. +Solution: Allow for comment and next command. (closes #8442) +Files: src/ex_cmds.h, src/vim9script.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3048 +Problem: Strange error for white space after ++ command. +Solution: Check for white space explicitly. (closes #8440) +Files: src/vim9script.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3049 +Problem: JSON patch file not recognized. +Solution: Recognize json-patch as json. (Kevin Locke, closes #8450) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3050 +Problem: Cannot recognize elixir files. +Solution: Recognize Elixir-specific files. Check if an .ex file is Euphoria + or Elixir. (Austin Gatlin, closes #8401, closes #8446) +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.3051 +Problem: Vim9: for loop with one list variable does not work. +Solution: Use a separate flag for unpacking a list. (closes #8452) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3052 +Problem: Vim9: "legacy call" does not work. +Solution: Do not skip "call" after "legacy". (closes #8454) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3053 +Problem: Vim9: cannot assign to @@ in :def function +Solution: Handle '@' like '"'. (closes #8456) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3054 +Problem: Vim9: unpack assignment using "_" after semicolon fails. +Solution: Drop the expression result. (closes #8453) +Files: src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim + +Patch 8.2.3055 +Problem: Strange error for assigning to "x.key" on non-dictionary. +Solution: Add a specific error message. (closes #8451) +Files: src/eval.c, src/errors.h, src/testdir/test_vim9_assign.vim, + src/testdir/test_listdict.vim, src/testdir/test_let.vim + +Patch 8.2.3056 +Problem: Vim9: using default value in lambda gives confusing error. +Solution: Pass "default_args" on the first pass to get the arguments. + (closes #8455) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3057 +Problem: Vim9: debugger test fails with normal features and +terminal. + (Dominique Pellé) +Solution: Adjust the INSTRUCTIONS macro. (closes #8460) +Files: src/vim9.h + +Patch 8.2.3058 (after 8.2.3056) +Problem: Vim9: cannot use ternary operator in parentheses. +Solution: Do not use "==" for a default argument value. (closes #8462) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3059 (after 8.2.3056) +Problem: Vim9: memory leak when using lambda. +Solution: Do not store the default value strings when skipping. +Files: src/userfunc.c + +Patch 8.2.3060 (after 8.2.3056) +Problem: Vim9: cannot use ternary operator in parentheses. +Solution: Do not use "=~" for a default argument value. (closes #8462) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3061 +Problem: Testing the shell option is incomplete and spread out. +Solution: Move shell tests to one file and increase coverage. (Yegappan + Lakshmanan, closes #8464) +Files: src/testdir/Make_all.mak, src/testdir/test_functions.vim, + src/testdir/test_options.vim, src/testdir/test_shell.vim, + src/testdir/test_system.vim + +Patch 8.2.3062 +Problem: Internal error when adding several text properties. +Solution: Do not handle text properties when deleting a line for splitting a + data block. (closes #8466) +Files: src/structs.h, src/memline.c, src/testdir/test_textprop.vim + +Patch 8.2.3063 +Problem: Crash when switching 'cryptmethod' to xchacha20 with an existing + undo file. (Martin Tournoij) +Solution: Disable reading undo file when decoding can't be done inplace. + (issue #8467) +Files: src/fileio.c, src/bufwrite.c + +Patch 8.2.3064 +Problem: Vim9: in script cannot set item in uninitialized list. +Solution: When a list is NULL allocate an empty one. (closes #8461) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3065 +Problem: Vim9: error when sourcing script twice and reusing a function + name. +Solution: Check if the function is dead. (closes #8463) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3066 +Problem: Vim9: debugging lambda does not work. +Solution: Use the compile type of the function when compiling a lambda. + (closes #8412) +Files: src/vim9compile.c, src/testdir/test_debugger.vim + +Patch 8.2.3067 +Problem: Building fails with Athena. (Elimar Riesebieter) +Solution: Adjust #ifdefs and add the 'drop_file' feature. +Files: src/evalfunc.c, src/testing.c, src/testdir/test_gui.vim + +Patch 8.2.3068 +Problem: Unicode tables are slightly outdated. +Solution: Update the tables for Unicode release 13. (Christian Brabandt + closes #8430) +Files: runtime/tools/unicode.vim, src/mbyte.c + +Patch 8.2.3069 +Problem: Error messages are spread out. +Solution: Move some error messages to errors.h. Use clearer names. +Files: src/errors.h, src/globals.h, src/arglist.c, src/buffer.c, + src/channel.c, src/eval.c, src/evalfunc.c, src/evalvars.c, + src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, + src/filepath.c, src/fold.c, src/getchar.c, src/indent.c, + src/list.c, src/map.c, src/mark.c, src/normal.c, src/ops.c, + src/optionstr.c, src/popupwin.c, src/quickfix.c, src/spellfile.c, + src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c, + src/vim9compile.c, src/window.c + +Patch 8.2.3070 +Problem: Not enough testing for shell use. +Solution: Add a bit more testing. (Yegappan Lakshmanan, closes #8469) +Files: src/testdir/test_shell.vim, src/testdir/test_startup.vim + +Patch 8.2.3071 +Problem: Shell options are not set properly for PowerShell. +Solution: Use better option defaults. (Mike Williams, closes #8459) +Files: runtime/doc/eval.txt, runtime/doc/options.txt, + runtime/doc/os_dos.txt, src/fileio.c, src/misc2.c, src/option.c, + src/os_win32.c, src/testdir/test_shell.vim + +Patch 8.2.3072 +Problem: The "zy" command does not work well when 'virtualedit' is set to + "block". (Johann Höchtl) +Solution: Make endspaces zero. (Christian Brabandt, closes #8468, + closes #8448) +Files: src/register.c, src/testdir/test_visual.vim + +Patch 8.2.3073 +Problem: When cursor is moved for block append wrong text is inserted. +Solution: Calculate an offset. (Christian Brabandt, closes #8433, + closes #8288) +Files: src/ops.c, src/testdir/test_blockedit.vim, + src/testdir/test_visual.vim + +Patch 8.2.3074 +Problem: popup_atcursor() uses wrong position with concealing. +Solution: Keep w_wcol in conceal_check_cursor_line(). (closes #8476) +Files: src/screen.c, src/proto/screen.pro, src/normal.c, src/edit.c, + src/ui.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_atcursor_pos.dump + +Patch 8.2.3075 +Problem: Xxd always reports an old version string. (Åsmund Ervik) +Solution: Update the version string with the last known change date. + (Jürgen Weigert, closes #8475) +Files: src/xxd/xxd.c, src/testdir/test_xxd.vim + +Patch 8.2.3076 +Problem: Vim9: using try in catch block causes a hang. +Solution: Save and restore the ec_in_catch flag. (closes #8478) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3077 +Problem: Vim9: an error in a catch block is not reported. +Solution: Put the "in catch" flag in the try stack. (closes #8478) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3078 +Problem: Vim9: profile test fails. +Solution: Make throw in :catch jump to :finally. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3079 +Problem: Powershell core not supported by default. +Solution: Set option defaults for "pwsh". (Mike Williams, closes #8481) +Files: runtime/doc/eval.txt, runtime/doc/options.txt, + runtime/doc/os_dos.txt, runtime/doc/os_win32.txt, src/fileio.c, + src/misc2.c, src/option.c, src/os_win32.c, + src/testdir/test_shell.vim + +Patch 8.2.3080 +Problem: Recover test fails on 32bit systems. (Ondřej Súkup) +Solution: Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485, + closes #8479) +Files: src/testdir/test_recover.vim + +Patch 8.2.3081 +Problem: Cannot catch errors in a channel command. +Solution: Instead of skipping the error make it silent. (closes #8477) +Files: src/channel.c + +Patch 8.2.3082 +Problem: A channel command "echoerr" does not show anything. +Solution: Do not use silent errors when using an "echoerr" command. + (closes #8494) +Files: src/channel.c, src/testdir/test_channel.py, + src/testdir/test_channel.vim + +Patch 8.2.3083 +Problem: Crash when passing null string to charclass(). +Solution: Bail out when string pointer is NULL. (Christian Brabandt, + closes #8498, closes #8260) +Files: src/mbyte.c, src/testdir/test_functions.vim + +Patch 8.2.3084 +Problem: Vim9: builtin function argument types are not checked at compile + time. +Solution: Add argument types. (Yegappan Lakshmanan, closes #8503) +Files: src/evalfunc.c, src/testdir/test_functions.vim, + src/testdir/test_glob2regpat.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.3085 +Problem: JSONC files are not recognized. +Solution: Recognize .jsonc files. (Izhak Jakov, closes #8500) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3086 +Problem: Vim9: breakpoint on "for" does not work. +Solution: Use the right line number in ISN_DEBUG. (closes #8486) +Files: src/vim9compile.c, src/testdir/test_debugger.vim + +Patch 8.2.3087 +Problem: Gemtext files are not recognized. +Solution: Recognize .gmi and .gemini files. (closes #8427) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3088 +Problem: With 'virtualedit' set to "block" Visual highlight is wrong after + using "$". (Marco Trosi) +Solution: Do not set w_old_cursor_lcol to MAXCOL. (closes #8495) +Files: src/drawscreen.c, src/testdir/test_visual.vim, + src/testdir/dumps/Test_visual_block_with_virtualedit.dump + +Patch 8.2.3089 +Problem: Garbage collection has useless code. +Solution: Bail out when aborting. (closes #8504) +Files: src/userfunc.c + +Patch 8.2.3090 +Problem: With concealing enabled and indirectly closing a fold the cursor + may be somewhere in a folded line. +Solution: Recompute the cursor position when the cursor line can be + concealed. (closes #8480) +Files: src/drawscreen.c + +Patch 8.2.3091 +Problem: Vim9: default argument expression cannot use previous argument +Solution: Correct argument index. (closes #8496) +Files: src/vim9compile.c, src/structs.h, src/testdir/test_vim9_func.vim + +Patch 8.2.3092 +Problem: Vim9: builtin function test fails without the +channel feature. +Solution: Check the +channel feature is supported. (Dominique Pellé, + closes #8507) +Files: runtime/doc/eval.txt, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3093 +Problem: tablabel_tooltip test fails with Athena. (Dominique Pellé) +Solution: Skip the test when using Athena. (closes #8508) +Files: src/testdir/test_gui.vim, src/testdir/check.vim + +Patch 8.2.3094 +Problem: Test_popup_atcursor_pos() fails without the conceal feature. +Solution: Add a check for the conceal feature. (Dominique Pellé, + closes #8505) +Files: src/testdir/test_popupwin.vim + +Patch 8.2.3095 (after 8.2.3088) +Problem: With 'virtualedit' set to "block" block selection is wrong after + using "$". (Marco Trosi) +Solution: Compute the longest selected line. (closes #8495) +Files: src/drawscreen.c, src/testdir/test_visual.vim, + src/testdir/dumps/Test_visual_block_with_virtualedit2.dump + +Patch 8.2.3096 +Problem: Temp files remain after running tests. +Solution: Delete the right files. (Dominique Pellé, closes #8509) +Files: src/testdir/test_debugger.vim, src/testdir/test_lambda.vim, + src/testdir/test_visual.vim + + +Patch 8.2.3097 +Problem: Crash when using "quit" at recovery prompt and autocommands are + triggered. +Solution: Block autocommands when creating an empty buffer to use as the + current buffer. (closes #8506) +Files: src/buffer.c, src/testdir/test_swap.vim + +Patch 8.2.3098 +Problem: Popup window test is flaky on MS-Windows with GUI. +Solution: Skip the check in this situation. +Files: src/testdir/test_popupwin.vim + +Patch 8.2.3099 +Problem: Vim9: missing catch/finally not reported at script level. +Solution: Give an error. (closes #8487) +Files: src/structs.h, src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3100 +Problem: Vim9: no error when using type with unknown number of arguments. +Solution: Do not ignore argument count of -1. (closes #8492) +Files: src/vim9type.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.3101 +Problem: Missing function prototype for vim_round(). +Solution: Add the prototype. +Files: src/proto/float.pro + +Patch 8.2.3102 (after 8.2.3097) +Problem: Test for crash fix does not fail without the fix. +Solution: Adjust the test sequence. (closes #8506) +Files: src/testdir/test_swap.vim + +Patch 8.2.3103 (after 8.2.3102) +Problem: Swap test may fail on some systems when jobs take longer to exit. +Solution: Use different file names. +Files: src/testdir/test_swap.vim + +Patch 8.2.3104 +Problem: Vim9: unspecified function type causes type error. +Solution: Don't check type when min_argcount is negative. (issue #8492) +Files: src/globals.h, src/vim9type.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3105 +Problem: Vim9: type of partial is wrong when it has arguments. +Solution: Subtract arguments from the count. (issue #8492) +Files: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3106 +Problem: Vim9: confusing line number reported for error. +Solution: Use the start line number for the store instruction. + (closes #8488) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3107 +Problem: Vim9: error for arguments while type didn't specify arguments. +Solution: Do not update that type to check when no argument count is + specified. (closes #8492) +Files: src/userfunc.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3108 +Problem: Test for remote_foreground() fails. (Elimar Riesebieter) +Solution: Check that $DISPLAY is set. (Christian Brabandt) +Files: src/testdir/check.vim, src/testdir/test_clientserver.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3109 +Problem: Check for $DISPLAY never fails. +Solution: Use eval(). +Files: src/testdir/check.vim + +Patch 8.2.3110 +Problem: A pattern that matches the cursor position is a bit complicated. +Solution: Use a dot to indicate the cursor line and column. (Christian + Brabandt, closes #8497, closes #8179) +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.3111 +Problem: Vim9: confusing error with extra whitespace before colon. +Solution: Check for colon after white space. (closes #8513) +Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3112 (after 8.2.3090) +Problem: With concealing enabled and indirectly closing a fold the cursor + may be somewhere in a folded line when it is not on the first line + of the fold. +Solution: Check if the cursor is somewhere in the folded text. +Files: src/drawscreen.c + +Patch 8.2.3113 +Problem: No error when for loop variable shadows script variable. +Solution: Check for the error. (closes #8512) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3114 +Problem: Amiga-like systems: build error checking for running process +Solution: Only build swapfile_process_running() on systems where it is + actually used. (Ola Söder, closes #8519) +Files: src/memline.c + +Patch 8.2.3115 +Problem: Coverity complains about free_wininfo() use. +Solution: Add a condition that "wip2" is not equal to "wip". (Neovim #14996) +Files: src/window.c + +Patch 8.2.3116 +Problem: Vim9: crash when debugging a function with line continuation. +Solution: Check for a NULL pointer. (closes #8521) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3117 +Problem: Vim9: type not properly checked in for loop. +Solution: Have items() return a list of lists. Add runtime type checks. + (closes #8515) +Files: src/evalfunc.c, src/globals.h, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3118 +Problem: Vim9: "any" type not handled correctly in for loop. +Solution: Change compile time check into runtime check. (closes #8516) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3119 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/evalfunc.c + +Patch 8.2.3120 +Problem: Crypt with sodium test fails on MS-Windows. +Solution: Make the tests pass. (closes #8428) +Files: src/testdir/test_crypt.vim + +Patch 8.2.3121 +Problem: 'listchars' "exceeds" character appears in foldcolumn. Window + separator is missing. (Leonid V. Fedorenchik) +Solution: Only draw the "exceeds" character in the text area. Break the + loop when not drawing the text. (closes #8524) +Files: src/drawline.c, src/testdir/test_listchars.vim, + src/testdir/dumps/Test_listchars_01.dump, + src/testdir/dumps/Test_listchars_02.dump, + src/testdir/dumps/Test_listchars_03.dump, + src/testdir/dumps/Test_listchars_04.dump, + src/testdir/dumps/Test_listchars_05.dump + +Patch 8.2.3122 +Problem: With 'nowrap' cursor position is unexpected in narrow window. + (Leonid V. Fedorenchik) +Solution: Put cursor on the last non-empty line. (closes #8525) +Files: src/move.c, src/testdir/test_listchars.vim, + src/testdir/dumps/Test_listchars_06.dump, + src/testdir/dumps/Test_listchars_07.dump + +Patch 8.2.3123 +Problem: Vim9: confusing error when using white space after option, before + one of "!&<". +Solution: Give a specific error. (issue #8408) +Files: src/errors.h, src/option.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3124 +Problem: Vim9: no error for white space between option and "=9". +Solution: Check for extraneous white space. (issue #8408) +Files: src/option.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3125 +Problem: Variables are set but not used. +Solution: Move the declarations to the block where they are used. + (closes #8527) +Files: src/regexp_nfa.c + +Patch 8.2.3126 +Problem: Vim9: for loop error reports wrong line number. +Solution: Save and restore the line number when evaluating the expression. + (closes #8514) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3127 +Problem: Vim9: no error when adding number to list of string. +Solution: Check the value type. (closes #8529) +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3128 +Problem: Vim9: uninitialized list does not get type checked. +Solution: Set the type when initializing the variable. (closes #8529) +Files: src/eval.c, src/evalvars.c, src/vim9script.c, + src/userfunc.c, src/proto/vim9script.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3129 +Problem: Vim9: imported uninitialized list does not get type checked. +Solution: Get type from imported variable. +Files: src/eval.c, src/evalvars.c, src/vim9script.c, + src/proto/vim9script.pro, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3130 +Problem: Vim9: import test fails. +Solution: Rename directory back to "import", use "p" to avoid an error when + the directory already exists. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3131 +Problem: MS-Windows: ipv6 channel test is very flaky in the GUI. +Solution: Skip the test. +Files: src/testdir/test_channel.vim + +Patch 8.2.3132 +Problem: Compiler warns for size_t to colnr_T conversion. (Randall W. + Morris) +Solution: Add a type cast. +Files: src/drawscreen.c + +Patch 8.2.3133 +Problem: Vim9: memory leak when add() fails. +Solution: Allocate listitem_T after type check. +Files: src/list.c + +Patch 8.2.3134 +Problem: Crash when using typename() on a function reference. (Naohiro Ono) +Solution: Initialize pointer to NULL. (closes #8531) +Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3135 +Problem: Vim9: builtin function arguments not checked at compile time. +Solution: Add more type checks. (Yegappan Lakshmanan, closes #8539) +Files: src/channel.c, src/errors.h, src/evalfunc.c, src/proto/typval.pro, + src/terminal.c, src/testdir/test_search.vim, + src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, + src/testing.c, src/textprop.c, src/typval.c + +Patch 8.2.3136 +Problem: No test for E187 and "No swap file". +Solution: Add a test. (Dominique Pellé, closes #8540) +Files: src/testdir/test_cd.vim, src/testdir/test_swap.vim + +Patch 8.2.3137 +Problem: Vim9: no error when a line only has a variable name. +Solution: Give an error when an expression is evaluated without an effect. + (closes #8538) +Files: src/ex_eval.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.3138 (after 8.2.3137) +Problem: Debugger test fails. +Solution: Adjust eval command. +Files: src/testdir/test_debugger.vim + +Patch 8.2.3139 +Problem: Functions for string manipulation are spread out. +Solution: Move string related functions to a new source file. (Yegappan + Lakshmanan, closes #8470) +Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/eval.c, src/evalfunc.c, src/mbyte.c, src/misc1.c, src/misc2.c, + src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro, + src/proto/mbyte.pro, src/proto/misc1.pro, src/proto/misc2.pro, + src/proto/strings.pro, src/strings.c + +Patch 8.2.3140 (after 8.2.3131) +Problem: MS-Windows: ipv6 channel test is very flaky also without the GUI. +Solution: Skip the test also without the GUI. +Files: src/testdir/test_channel.vim + +Patch 8.2.3141 +Problem: No error when using :complete for :command without -nargs. +Solution: Give an error. (Martin Tournoij, closes #8544, closes #8541) +Files: src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim + +Patch 8.2.3142 +Problem: Vim9: type check for has_key() argument is too strict. +Solution: Also allow for a number key argument. (closes #8542) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3143 +Problem: Vim9: A lambda may be compiled with the wrong context if it is + called from a profiled function. +Solution: Compile the lambda with and without profiling. (closes #8543) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3144 +Problem: Vim9: no error when using an invalid value for a line number. +Solution: Give an error if the string value is not recognized. + (closes #8536) +Files: src/errors.h, src/eval.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3145 +Problem: Vim9: profile test fails without profile feature. +Solution: Check the profile feature is present. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3146 +Problem: Vim9: line number wrong for :execute argument. +Solution: Use the line number of the :execute command itself. (closes #8537) +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3147 +Problem: Vim9: profiling does not work with a nested function. +Solution: Also compile a nested function without profiling. (closes #8543) + Handle that compiling may cause the table of compiled functions to + change. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3148 +Problem: Vim9: function arg type check does not handle base offset. +Solution: Take the base offset into account when checking builtin function + argument types. +Files: src/evalfunc.c, src/vim9compile.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3149 (after 8.2.3141) +Problem: Some plugins have a problem with the error check for using + :command with -complete but without -nargs. +Solution: In legacy script only give a warning message. +Files: src/usercmd.c, src/message.c, src/proto/message.pro, + src/testdir/test_usercommands.vim + +Patch 8.2.3150 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add more type checks. (Yegappan Lakshmanan, closes #8545) +Files: src/evalfunc.c, src/testing.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3151 +Problem: Vim9: profiling fails if nested function is also profiled. +Solution: Use the compile type from the outer function. (closes #8543) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3152 +Problem: Vim9: accessing "s:" results in an error. +Solution: Do not try to lookup a script variable for "s:". (closes #8549) +Files: src/evalvars.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3153 +Problem: URLs with a dash in the scheme are not recognized. +Solution: Allow for a scheme with a dash, but not at the start or end. + (Tsuyoshi CHO, closes #8299) +Files: src/misc1.c, src/testdir/test_buffer.vim + +Patch 8.2.3154 +Problem: Vim9: some type checks for builtin functions fail. +Solution: Correct the type checks. (Yegappan Lakshmanan, closes #8551, + closes #8550) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3155 +Problem: Some option related code not covered by tests. +Solution: Add a few test cases. (Dominique Pellé, closes #8552) +Files: src/testdir/test_options.vim, src/testdir/test_set.vim + +Patch 8.2.3156 +Problem: Vim9: term_getansicolors() test fails without +termguicolors. +Solution: Add a check for the feature. (Dominique Pellé, closes #8555) +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3157 +Problem: Crypt test may fail on MS-Windows. +Solution: Ignore "[unix]" in the file message. (Christian Brabandt, + closes #8561) +Files: src/testdir/test_crypt.vim + +Patch 8.2.3158 +Problem: Strange error message when using islocked() with a number. + (Yegappan Lakshmanan) +Solution: Check that the name is empty. +Files: src/evalfunc.c, src/testdir/test_functions.vim + +Patch 8.2.3159 +Problem: Cursor displayed in wrong position after deleting line. +Solution: When deleting lines do not approximate botline. (fixes #8559) +Files: src/change.c + +Patch 8.2.3160 +Problem: 'breakindent' does not work well for bulleted and numbered lists. +Solution: Add the "list" entry to 'breakindentopt'. (Christian Brabandt, + closes #8564, closes #1661) +Files: runtime/doc/options.txt, src/indent.c, src/structs.h, + src/testdir/test_breakindent.vim + +Patch 8.2.3161 +Problem: Vim9: no error when reltime() has invalid arguments. +Solution: Add an error. (closes #8562) +Files: src/time.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3162 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add more type checks. (Yegappan Lakshmanan, closes #8560) +Files: runtime/doc/channel.txt, src/clientserver.c, src/cmdhist.c, + src/errors.h, src/evalfunc.c, src/evalwindow.c, src/filepath.c, + src/globals.h, src/popupwin.c, src/proto/typval.pro, src/sign.c, + src/strings.c, src/terminal.c, src/testdir/test_normal.vim, + src/testdir/test_reltime.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_expr.vim, src/testing.c, src/textprop.c, + src/time.c, src/typval.c + +Patch 8.2.3163 +Problem: Location list window may open a wrong file. +Solution: Also update the qf_ptr field. (Wei-Chung Wen, closes #8565, + closes #8566) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.3164 +Problem: MS-Windows: reported version lacks patchlevel, causing some update + tools to update too often. (Klaus Frank) +Solution: Add the patchlevel to the version. (Christian Brabandt) +Files: src/dosinst.c + +Patch 8.2.3165 +Problem: Vim9: in a || expression the error line number may be wrong. +Solution: Save and restore the line number when checking the type. + (closes #8569) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3166 +Problem: Vim9: nested autoload call error overruled by "Unknown error". +Solution: Check need_rethrow before giving an "Unknown error". + (closes #8568) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3167 +Problem: Get E12 in a job callback when searching for tags. (Andy Stewart) +Solution: Use the sandbox only for executing a command, not for searching. + (closes #8511) +Files: src/tag.c + +Patch 8.2.3168 +Problem: Vim9: type error for constant of type any. +Solution: Do add a runtime type check if a constant has type any. + (closes #8570) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3169 +Problem: Vim9: cannot handle nested inline function. +Solution: Check for nested inline function. (closes #8575) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_expr.vim + +Patch 8.2.3170 +Problem: Illegal memory access in test. +Solution: Check pointer is not before the start of the line. +Files: src/userfunc.c + +Patch 8.2.3171 +Problem: Another illegal memory access in test. +Solution: Check pointer is after the start of the line. +Files: src/userfunc.c + +Patch 8.2.3172 +Problem: MzScheme test fails. (Christian Brabandt) +Solution: Correct function name. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3173 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add more type checks. (Yegappan Lakshmanan, closes #8581) +Files: src/diff.c, src/errors.h, src/evalfunc.c, src/globals.h, + src/job.c, src/proto/typval.pro, src/strings.c, src/terminal.c, + src/testdir/test_vim9_builtin.vim, src/typval.c + +Patch 8.2.3174 +Problem: Vim9: "legacy undo" finds "undo" variable. +Solution: Do not pass lookup function to find_ex_command(). (closes #8563) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3175 +Problem: Vim9: using illegal pointer with inline function inside a lambda. +Solution: Clear eval_tofree_cmdline when advancing to the next line. + (closes #8578) +Files: src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3176 +Problem: Vim9: no type error for comparing number with string. +Solution: Add a runtime type check. (closes #8571) +Files: src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.3177 +Problem: Vim9: can not use "for _ in expr" at script level. +Solution: Skip assignment if the loop variable is "_". +Files: src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3178 +Problem: Vim9: the file name of an :import cannot be an expression. +Solution: Accept an expression that results in a string. Do not support + :import in a function. +Files: runtime/doc/vim9.txt, src/vim9script.c, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3179 +Problem: Vim9: cannot assign to an imported variable at script level. +Solution: Lookup imported items when assigning. +Files: src/evalvars.c, src/errors.h, src/eval.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3180 +Problem: Vim9: memory leak when concatenating to an imported string. +Solution: Clear the destination. +Files: src/evalvars.c + +Patch 8.2.3181 +Problem: Vim9: builtin function test fails without channel feature. +Solution: Add feature checks. (Dominique Pellé, closes #8586) Make feature + checks more consistent. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3182 +Problem: Vim9: crash when using removing items from a constant list. + (Yegappan Lakshmanan) +Solution: When a list was allocated with items copy them. +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3183 +Problem: Duplicate error numbers. +Solution: Adjust the error numbers. +Files: src/errors.h, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3184 +Problem: Cannot add a digraph with a leading space. It is not easy to list + existing digraphs. +Solution: Add setdigraph(), setdigraphlist(), getdigraph() and + getdigraphlist(). (closes #8580) +Files: runtime/doc/digraph.txt, runtime/doc/eval.txt, + runtime/doc/usr_41.txt, src/digraph.c, src/evalfunc.c, + src/ex_docmd.c, src/globals.h, src/errors.h, + src/proto/digraph.pro, src/testdir/test_digraph.vim + +Patch 8.2.3185 +Problem: Vim9: start of inline function found in comment line. +Solution: Do not check for inline function in comment line. (closes #8589) +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3186 +Problem: Vim9: not all failures for import tested +Solution: Test more import failures +Files: src/errors.h, src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3187 +Problem: Vim9: popup timer callback is not compiled. +Solution: Compile the callback when creating the timer. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/popupwin.c + +Patch 8.2.3188 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks, also at runtime. (Yegappan + Lakshmanan, closes #8587) +Files: src/blob.c, src/channel.c, src/clientserver.c, src/cmdexpand.c, + src/cmdhist.c, src/dict.c, src/diff.c, src/errors.h, src/eval.c, + src/evalbuffer.c, src/evalfunc.c, src/evalvars.c, + src/evalwindow.c, src/filepath.c, src/globals.h, src/insexpand.c, + src/job.c, src/list.c, src/map.c, src/match.c, + src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, + src/strings.c, src/terminal.c, src/testdir/test_blob.vim, + src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, + src/testing.c, src/textprop.c, src/time.c, src/typval.c + +Patch 8.2.3189 +Problem: Vim9: error when using "try|". +Solution: Allow for "|" right after a command. +Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3190 +Problem: Error messages are spread out. +Solution: Move error messages to errors.h and give them a clear name. +Files: src/globals.h, src/errors.h, src/buffer.c, src/debugger.c, + src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_docmd.c, src/ex_eval.c, src/gui.c, src/list.c, src/main.c, + src/map.c, src/match.c, src/quickfix.c, src/regexp.c, + src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c, + src/session.c, src/spell.c, src/syntax.c, src/time.c, + src/userfunc.c, src/vim9execute.c, src/window.c + +Patch 8.2.3191 +Problem: Vim9: not enough code is tested. +Solution: Use CheckLegacyAndVim9Success() in more places. Fix uncovered + problems. +Files: src/vim9compile.c, src/vim9execute.c, + src/testdir/test_listdict.vim + +Patch 8.2.3192 (after 8.2.3190) +Problem: Build failure with small version (Tony Mechelynck). +Solution: Remove stray #ifdef. +Files: src/errors.h + +Patch 8.2.3193 +Problem: screenpos() is wrong when the last line is partially visible and + 'display' is "lastline". +Solution: Also compute the position for a partially visible line. + (closes #8599) +Files: src/move.c, src/testdir/test_cursor_func.vim + +Patch 8.2.3194 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks, simplify some. (Yegappan + Lakshmanan, closes #8598) +Files: src/diff.c, src/evalbuffer.c, src/evalfunc.c, src/job.c, + src/proto/typval.pro, src/sign.c, src/terminal.c, + src/testdir/test_vim9_builtin.vim, src/typval.c + +Patch 8.2.3195 +Problem: Vim9: unclear error when passing too many arguments to lambda. +Solution: Pass the expression itself instead of "[expression]". + (closes #8604) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3196 +Problem: Vim9: bool expression with numbers only fails at runtime. +Solution: Check constant to be bool at compile time. (closes #8603) +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3197 +Problem: Error messages are spread out. +Solution: Move a few more error messages to errors.h. +Files: src/globals.h, src/errors.h, src/edit.c, src/ex_cmds.c, + src/ex_docmd.c, src/evalvars.c, src/option.c, src/quickfix.c, + src/regexp_bt.c, src/regexp_nfa.c, src/regexp.c, src/undo.c, + src/vim9compile.c, src/vim9script.c + +Patch 8.2.3198 +Problem: Cannot use 'formatlistpat' for breakindent. +Solution: Use a negative list indent. (Maxim Kim, closes #8594) +Files: runtime/doc/options.txt, src/indent.c, + src/testdir/test_breakindent.vim + +Patch 8.2.3199 +Problem: Vim9: execution speed can be improved. +Solution: Make the break counter static. +Files: src/vim9execute.c + +Patch 8.2.3200 +Problem: Vim9: hard to guess where a type error is given. +Solution: Add the function name where possible. (closes #8608) +Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/list.c, + src/vim9compile.c, src/vim9execute.c, src/structs.h, + src/vim9type.c, src/proto/vim9type.pro, src/if_py_both.h, + src/errors.h, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3201 (after 8.2.3200) +Problem: Crash in test. +Solution: Initialize "where". +Files: src/eval.c, src/evalvars.c + +Patch 8.2.3202 +Problem: Vim9: tests are only executed for legacy script. +Solution: Run more tests also for Vim9 script. Fix uncovered problems. +Files: src/vim9execute.c, src/ex_docmd.c, src/testdir/test_listdict.vim + +Patch 8.2.3203 +Problem: Vim9: compiled string expression causes type error. (Yegappan + Lakshmanan) +Solution: Remove the string type from the stack. +Files: src/vim9compile.c, src/evalfunc.c + +Patch 8.2.3204 +Problem: Display garbled when 'cursorline' is set and lines wrap. (Gabriel + Dupras) +Solution: Avoid inserting lines twice. (closes #7255) +Files: src/drawscreen.c, src/testdir/test_cursorline.vim, + src/testdir/dumps/Test_cursorline_redraw_1.dump, + src/testdir/dumps/Test_cursorline_redraw_2.dump + +Patch 8.2.3205 +Problem: Coverity reports a null pointer dereference. +Solution: Change the logic to avoid Coverity gets confused. +Files: src/vim9compile.c + +Patch 8.2.3206 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8611) +Files: runtime/doc/eval.txt, src/blob.c, src/cmdhist.c, src/dict.c, + src/errors.h, src/evalfunc.c, src/filepath.c, src/globals.h, + src/job.c, src/list.c, src/match.c, src/misc1.c, src/popupwin.c, + src/proto/typval.pro, src/sign.c, src/terminal.c, + src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim, + src/typval.c + +Patch 8.2.3207 +Problem: Vim9: crash when compiling string fails. (Yegappan Lakshmanan) +Solution: Adjust the type stack length. +Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3208 +Problem: Dynamic library load error does not mention why it failed. +Solution: Add the error message. (Martin Tournoij, closes #8621) +Files: src/globals.h, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, + src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c, + src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/os_win32.pro, + src/terminal.c + +Patch 8.2.3209 +Problem: Vim9: lambda doesn't find block-local variable. +Solution: Adjust how a script-local variable is found. (closes #8614) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3210 +Problem: Vim9: searchpair() sixth argument is compiled. (Yegappan + Lakshmanan) +Solution: Only compile the fifth argument. +Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3211 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks. Fix type check for matchaddpos(). + (Yegappan Lakshmanan, closes #8619) +Files: src/channel.c, src/evalfunc.c, src/evalvars.c, src/if_cscope.c, + src/job.c, src/proto/typval.pro, + src/testdir/test_vim9_builtin.vim, src/time.c, src/typval.c + +Patch 8.2.3212 +Problem: Vim9: execution speed can be improved. +Solution: Use __builtin_expect() to have the compiler produce better code. + (Dominique Pellé, closes #8613) +Files: src/vim9execute.c + +Patch 8.2.3213 +Problem: NOCOMPOUNDSUGS entry in spell file not tested. +Solution: Add a test. (Dominique Pellé, closes #8624) +Files: src/testdir/test_spellfile.vim + +Patch 8.2.3214 +Problem: MS-Windows: passing /D does not set the install location. +Solution: Adjust how the installer uses $VIM. Update the documentation. + (Christian Brabandt, Ken Takata, closes #8605) +Files: nsis/gvim.nsi, runtime/doc/os_win32.txt + +Patch 8.2.3215 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks. Sort the argument lists. + (Yegappan Lakshmanan, closes #8626) +Files: src/change.c, src/evalfunc.c, src/filepath.c, src/sound.c, + src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, + src/testing.c + +Patch 8.2.3216 +Problem: Vim9: crash when using variable in a loop at script level. +Solution: Do not clear the variable if a function was defined. + Do not create a new entry in sn_var_vals every time. + (closes #8628) +Files: src/eval.c, src/ex_eval.c, src/vim9script.c, src/userfunc.c, + src/evalvars.c, src/structs.h + +Patch 8.2.3217 (after 8.2.3216) +Problem: Build failure. +Solution: Add missing changes. +Files: src/globals.h + +Patch 8.2.3218 +Problem: When using xchacha20 crypt undo file is not removed. +Solution: Reset 'undofile' and delete the file. (Christian Brabandt, + closes #8630, closes #8467) +Files: src/bufwrite.c, src/crypt.c, src/proto/undo.pro, + src/testdir/test_crypt.vim, src/undo.c + +Patch 8.2.3219 +Problem: :find searches non-existing directories. +Solution: Check the path is not "..". Update help. (Christian Brabandt, + closes #8612, closes #8533) +Files: runtime/doc/editing.txt, src/findfile.c, + src/testdir/test_findfile.vim + +Patch 8.2.3220 +Problem: Test_term_setansicolors() fails in some configurations. +Solution: Check available features. (Dominique Pellé, closes #8636) +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3221 +Problem: Vim9: argument types are not checked at compile time. +Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8632) +Files: src/evalfunc.c, src/popupwin.c, src/proto/typval.pro, + src/testdir/test_assert.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c + +Patch 8.2.3222 +Problem: Vim9: cannot use loop variable later as lambda argument. +Solution: When not in function context check the current block ID. + (closes #8637) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3223 +Problem: Vim: using {} block in autoloaded omnifunc fails. +Solution: Allow using {} block when text is locked. (closes #8631) +Files: src/ex_cmds.h, src/testdir/test_ins_complete.vim + +Patch 8.2.3224 +Problem: Cannot call script-local function after :vim9cmd. (Christian J. + Robinson) +Solution: Skip over "<SNR>123". +Files: src/vim9compile.c, src/eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3225 +Problem: Incsearch highlighting is attempted halfway a mapping. +Solution: Only do incsearch highlighting if keys were typed or there is no + more typeahead. +Files: src/ex_getln.c + +Patch 8.2.3226 +Problem: New digraph functions use old naming scheme. +Solution: Use the digraph_ prefix. (Hirohito Higashi, closes #8642) +Files: runtime/doc/digraph.txt, runtime/doc/eval.txt, + runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h, + src/evalfunc.c, src/proto/digraph.pro, + src/testdir/test_digraph.vim + +Patch 8.2.3227 +Problem: 'virtualedit' can only be set globally. +Solution: Make 'virtualedit' global-local. (Gary Johnson, closes #8638) +Files: runtime/doc/options.txt, src/buffer.c, src/change.c, + src/drawscreen.c, src/edit.c, src/misc2.c, src/normal.c, + src/ops.c, src/option.c, src/option.h, src/optiondefs.h, + src/optionstr.c, src/proto/option.pro, src/register.c, + src/structs.h, src/testdir/test_virtualedit.vim + +Patch 8.2.3228 +Problem: Cannot use a simple block for the :command argument. (Maarten + Tournoij) +Solution: Recognize a simple {} block. (issue #8623) +Files: runtime/doc/map.txt, src/misc2.c, src/proto/misc2.pro, + src/usercmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.3229 +Problem: Vim9: runtime and compile time type checks are not the same. +Solution: Add more runtime type checks for builtin functions. (Yegappan + Lakshmanan, closes #8646) +Files: src/arglist.c, src/change.c, src/channel.c, src/cindent.c, + src/clientserver.c, src/cmdhist.c, src/dict.c, src/diff.c, + src/digraph.c, src/errors.h, src/eval.c, src/evalbuffer.c, + src/evalfunc.c, src/evalwindow.c, src/ex_docmd.c, src/ex_getln.c, + src/filepath.c, src/findfile.c, src/float.c, src/fold.c, + src/getchar.c, src/indent.c, src/insexpand.c, src/job.c, + src/json.c, src/list.c, src/mark.c, src/match.c, src/mbyte.c, + src/menu.c, src/misc1.c, src/move.c, src/popupwin.c, + src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c, + src/sound.c, src/strings.c, src/terminal.c, + src/testdir/test_assert.vim, src/testdir/test_blob.vim, + src/testdir/test_execute_func.vim, + src/testdir/test_float_func.vim, src/testdir/test_functions.vim, + src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_script.vim, src/testing.c, src/textprop.c, + src/time.c, src/typval.c, src/undo.c + +Patch 8.2.3230 +Problem: Vim9: type error when function return type is not known yet. +Solution: When return type is unknown, use "any". (closes #8644) +Files: src/vim9compile.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3231 +Problem: Build failure with small features. +Solution: Adjust #ifdef. +Files: src/errors.h + +Patch 8.2.3232 (after 8.2.3229) +Problem: system() does not work without a second argument. +Solution: Do not require a second argument. (Yegappan Lakshmanan, + closes #8651, closes #8650) +Files: src/misc1.c, src/proto/typval.pro, + src/testdir/test_vim9_builtin.vim, src/typval.c + +Patch 8.2.3233 +Problem: prop_list() and prop_find() do not indicate the buffer for the + used type. +Solution: Add "type_bufnr" to the results. (closes #8647) +Files: runtime/doc/textprop.txt, src/testdir/test_textprop.vim, + src/textprop.c + +Patch 8.2.3234 +Problem: Crash when printing long string with Lua. +Solution: Remove lua_pop(). (Martin Tournoij, closes #8648) +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.3235 +Problem: Cannot use lambda in {} block in user command. (Martin Tournoij) +Solution: Do not go over the end of the lambda. +Files: src/userfunc.c, src/testdir/test_usercommands.vim + +Patch 8.2.3236 +Problem: mode() does not indicate using CTRL-O in Select mode. +Solution: Use "vs" and similar. (closes #8640) +Files: runtime/doc/eval.txt, src/globals.h, src/misc1.c, src/normal.c, + src/testdir/test_functions.vim + +Patch 8.2.3237 +Problem: When a builtin function gives an error processing continues. +Solution: In Vim9 script return FAIL in get_func_tv(). +Files: src/userfunc.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3238 +Problem: Vim9: error message does not indicate the location. +Solution: Add the relevant text. (issue #8634) +Files: src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3239 +Problem: Vim9: no error using heredoc for a number variable. +Solution: Add a type check. (closes #8627) +Files: src/vim9compile.c, src/evalvars.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3240 +Problem: Lua print() does not work properly. +Solution: Put back lua_pop(). +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.3241 +Problem: Vim9: memory leak when function reports an error. +Solution: Clear the return value. +Files: src/userfunc.c + +Patch 8.2.3242 +Problem: Vim9: valgrind reports leaks in builtin function test. +Solution: Do not start a job. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3243 +Problem: MS-Windows: the "edit with multiple Vim" choice is not that + useful. +Solution: Change it to "Edit with multiple tabs". (Michael Soyka, + closes #8645) +Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h + +Patch 8.2.3244 +Problem: Lua 5.3 print() with a long string crashes. +Solution: Use a growarray instead of a Lua buffer. (Yegappan Lakshmanan, + closes #8655) +Files: src/if_lua.c, src/misc2.c, src/proto/misc2.pro + +Patch 8.2.3245 +Problem: The crypt key may appear in a swap partition. +Solution: When using xchacha20 use sodium_mlock(). (Christian Brabandt, + closes #8657) +Files: src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c, + src/memline.c, src/vim.h + +Patch 8.2.3246 +Problem: Memory use after free. +Solution: When clearing a string option set the pointer to "empty_option". +Files: src/option.c + +Patch 8.2.3247 +Problem: Using uninitialized memory when checking for crypt method. +Solution: Check the header length before using the salt and seed. +Files: src/fileio.c + +Patch 8.2.3248 +Problem: Vim9: error message for wrong input uses wrong line number. +Solution: Use the line number of the start of the command. (issue #8653) +Files: src/vim9script.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3249 +Problem: Vim9: error for re-imported function with default argument. +Solution: Do not check argument type if it is still unknown. (closes #8653) +Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c, + src/vim.h, src/eval.c, src/vim9execute.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3250 +Problem: MS-Windows: cannot build with libsodium. +Solution: Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt, + closes #8668, closes #8663) +Files: src/Make_mvc.mak + +Patch 8.2.3251 +Problem: Listing builtin_gui as an available terminal is confusing. +Solution: Do not list builtin_gui. (Christian Brabandt, closes #8669, + closes #8661) +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.3252 +Problem: Duplicated code for adding buffer lines. +Solution: Move code to a common function. Also move map functions to map.c. + (Yegappan Lakshmanan, closes #8665) +Files: src/evalbuffer.c, src/evalfunc.c, src/map.c, src/proto/map.pro + +Patch 8.2.3253 +Problem: Channel test fails randomly. +Solution: Add a sleep after sending the "echoerr" command. (Michael Soyka) +Files: src/testdir/test_channel.vim, src/testdir/test_channel.py + +Patch 8.2.3254 +Problem: win_gettype() does not recognize a quickfix window. +Solution: Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676) +Files: runtime/doc/eval.txt, src/evalwindow.c, src/misc2.c, + src/testdir/test_quickfix.vim + +Patch 8.2.3255 +Problem: ci" finds following string but ci< and others don't. +Solution: When not inside an object find the start. (Connor Lane Smit, + closes #8670) +Files: src/search.c, src/testdir/test_textobjects.vim, src/textobject.c + +Patch 8.2.3256 +Problem: Executable test may fail on new Ubuntu system. +Solution: Consider /usr/bin/cat and /bin/cat the same. +Files: src/testdir/test_functions.vim + +Patch 8.2.3257 +Problem: Calling prop_find() with -1 for ID gives erroneous error. (Naohiro + Ono) +Solution: When passing -1 use -2. (closes #8674) +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.3258 +Problem: Error messages have the wrong text. +Solution: Adjust the error message. +Files: src/errors.h, src/typval.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3259 +Problem: When 'indentexpr' causes an error the did_throw flag may remain + set. +Solution: Reset did_throw and show the error. (closes #8677) +Files: src/indent.c, src/ex_docmd.c, src/proto/ex_docmd.pro + +Patch 8.2.3260 +Problem: Build failure with small features. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.3261 +Problem: Vim9: when compiling repeat(123, N) return type is number. +Solution: Make return type a string. (closes #8664) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3262 +Problem: Build failure when ABORT_ON_INTERNAL_ERROR is defined. +Solution: Adjust how estack_len_before is used. +Files: src/ex_docmd.c + +Patch 8.2.3263 +Problem: Vim9: "..=" does not accept same types as the ".." operator. +Solution: Convert value to string like ".." does. (issue #8664) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3264 (after 8.2.3263) +Problem: Vim9: assign test fails. +Solution: Add missing change. +Files: src/eval.c + +Patch 8.2.3265 +Problem: Smartcase does not work correctly in very magic pattern. +Solution: Take the magicness into account when skipping over regexp items. + (Christian Brabandt, closes #8682, closes #7845) +Files: src/search.c, src/testdir/test_search.vim + +Patch 8.2.3266 +Problem: Vim9: assignment with two indexes may check next line. +Solution: Limit the number of lines to avoid checking the next line when + assigning to a LHS subscript. (closes #8660) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3267 +Problem: Vim9: crash when disassembling a function that uses a deleted + script variable. +Solution: Check the variable still exists. (closes #8683) +Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3268 +Problem: Cannot use a block with :autocmd like with :command. +Solution: Add support for a {} block after :autocmd. (closes #8620) +Files: runtime/doc/autocmd.txt, runtime/doc/map.txt, src/autocmd.c, + src/proto/autocmd.pro, src/usercmd.c, src/proto/usercmd.pro, + src/ex_docmd.c, src/vim.h, src/testdir/test_autocmd.vim + +Patch 8.2.3269 +Problem: Vim9: wrong argument check for partial. (Naohiro Ono) +Solution: Handle getting return type without arguments. Correct the minimal + number of arguments for what is included in the partial. + (closes #8667) +Files: src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3270 +Problem: prop_find() finds property with ID -2. +Solution: Use a separate flag to indicate an ID was specified. (issue #8674) +Files: src/textprop.c + +Patch 8.2.3271 +Problem: Vim9: cannot use :command or :au with a block in a :def function. +Solution: Recognize the start of the block. +Files: src/userfunc.c, src/usercmd.c, src/ex_docmd.c, + src/proto/ex_docmd.pro, src/vim9compile.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3272 +Problem: Cannot use id zero with prop_find(). (Naohiro Ono) +Solution: Also accept id zero. +Files: src/textprop.c, src/testdir/test_textprop.vim + +Patch 8.2.3273 +Problem: Autocmd test fails. +Solution: Require white space before the "{" that starts a block. +Files: src/userfunc.c + +Patch 8.2.3274 +Problem: Macro for printf format check can be simplified. +Solution: Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique Pellé, issue #8635) +Files: src/channel.c, src/gui_xim.c, src/if_mzsch.c, src/nbdebug.c, + src/nbdebug.h, src/netbeans.c, src/proto.h, src/term.c, src/vim.h, + src/vim9execute.c + +Patch 8.2.3275 +Problem: Optimizer can use hints about ga_grow() normally succeeding. +Solution: Use GA_GROW_FAILS() and GA_GROW_OK() in several places. (Dominique + Pellé, issue #8635) +Files: src/arglist.c, src/macros.h, src/vim9execute.c, src/vim9compile.c + +Patch 8.2.3276 +Problem: Vim9: exists() can only be evaluated at runtime. +Solution: Evaluate at compile time for option name literals. (closes #8437) +Files: src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3277 (after 8.2.3276) +Problem: Vim9: compiled has() does not work properly. +Solution: Fix check for has() vs exists(). +Files: src/vim9compile.c + +Patch 8.2.3278 +Problem: Vim9: error when adding 1 to float. +Solution: Accept t_number_bool. (closes #8687) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3279 +Problem: Vim9: cannot use block in cmdline window. +Solution: Add EX_CMDWIN to the CMD_block flags. (closes #8689) +Files: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3280 +Problem: 'virtualedit' local to buffer is not the best solution. +Solution: Make it window-local. (Gary Johnson, closes #8685) +Files: runtime/doc/options.txt, src/buffer.c, src/drawscreen.c, + src/ops.c, src/option.c, src/option.h, src/optionstr.c, + src/structs.h, src/testdir/test_virtualedit.vim + +Patch 8.2.3281 +Problem: Vim9: TODO items in tests can be taken care of. +Solution: Update test for now working functionality. (closes #8694) +Files: src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.3282 +Problem: Vim9: error about using -complete without -nargs is confusing. +Solution: Change the wording. +Files: src/usercmd.c, src/errors.h + +Patch 8.2.3283 +Problem: Julia filetype is not recognized +Solution: Add filetype detection. (Christian Clason, closes #8700) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3284 +Problem: No error for insert() or remove() changing a locked blob. +Solution: Check a blob is not locked before changing it. (Sean Dewar, + closes #8696) +Files: src/blob.c, src/errors.h, src/eval.c, src/list.c, + src/proto/blob.pro, src/testdir/test_blob.vim, + src/testdir/test_eval_stuff.vim + +Patch 8.2.3285 +Problem: Scdoc filetype is not recognized. +Solution: Add filetype detection. (Gregory Anders, closes #8701) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3286 +Problem: win_enter_ext() has too many boolean arguments. +Solution: use one flags argument with defined values. +Files: src/window.c + +Patch 8.2.3287 +Problem: Channel events not handled in BufEnter autocommand. +Solution: Decrement dont_parse_messages earlier. (Tim Pope, closes #8697) +Files: src/window.c, src/testdir/test_channel.vim + +Patch 8.2.3288 +Problem: Cannot easily access namespace dictionaries from Lua. +Solution: Add vim.g, vim.b, etc. (Yegappan Lakshmanan, closes #8693, + from NeoVim) +Files: runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.3289 (after 8.2.3287) +Problem: Compiler warning for unused variable with small features. +Solution: Rearrange #ifdefs. +Files: src/window.c + +Patch 8.2.3290 +Problem: Vim9: compiling dict may use pointer after free and leak memory on + failure. +Solution: Pass a pointer to generate_PUSHS(). (Zdenek Dohnal, closes #8699) +Files: src/vim9compile.c + +Patch 8.2.3291 +Problem: Coverity warns for not checking return value. +Solution: If dict_add() fails give an error message. +Files: src/if_lua.c, src/testdir/test_lua.vim + +Patch 8.2.3292 +Problem: Underscore in very magic pattern causes a hang. Pattern with \V + are case sensitive. (Yutao Yuan) +Solution: Adjust condition for magicness and advance pointer. (Christian + Brabandt, closes #8707, closes #8704, closes #8705) +Files: src/search.c, src/testdir/test_search.vim + +Patch 8.2.3293 +Problem: Finding completions may cause an endless loop. +Solution: Use a better way to check coming back where the search started. + (Andy Gozas, closes #8672, closes #8671) +Files: src/insexpand.c, src/testdir/Make_all.mak, + src/testdir/test_ins_complete_no_halt.vim + +Patch 8.2.3294 +Problem: Lua: memory leak when adding dict item fails. +Solution: Free the typval and the dict item. +Files: src/if_lua.c + +Patch 8.2.3295 +Problem: 'cursorline' should not apply to 'breakindent'. +Solution: Make 'cursorline' apply to 'breakindent' and 'showbreak' + consistently. (closes #8684) +Files: src/drawline.c, src/testdir/dumps/Test_Xcursorline_19.dump, + src/testdir/dumps/Test_Xcursorline_20.dump, + src/testdir/dumps/Test_Xcursorline_21.dump, + src/testdir/dumps/Test_Xcursorline_22.dump, + src/testdir/dumps/Test_Xcursorline_23.dump, + src/testdir/dumps/Test_Xcursorline_24.dump, + src/testdir/dumps/Test_diff_with_cul_bri_01.dump, + src/testdir/dumps/Test_diff_with_cul_bri_02.dump, + src/testdir/dumps/Test_diff_with_cul_bri_03.dump, + src/testdir/dumps/Test_diff_with_cul_bri_04.dump, + src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim + +Patch 8.2.3296 +Problem: Vim9: cannot add a number to a float. +Solution: Accept a number if the destination is a float. (closes #8703) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3297 +Problem: Cannot use all commands inside a {} block after :command and + :autocmd. +Solution: Do consider \n to separate commands. (closes #8620) +Files: runtime/doc/map.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/ex_eval.c, src/proto/ex_eval.pro, src/eval.c, src/evalvars.c, + src/ex_cmds.c, src/syntax.c, src/userfunc.c, src/vim9compile.c, + src/vim9script.c, src/errors.h, src/testdir/test_autocmd.vim, + src/testdir/test_usercommands.vim + +Patch 8.2.3298 +Problem: Build failure with small features. +Solution: Add #ifdef. +Files: src/ex_docmd.c + +Patch 8.2.3299 +Problem: Vim9: exists() does not handle much at compile time. +Solution: Handle variable names. (closes #8688) +Files: src/vim9compile.c, src/evalfunc.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3300 +Problem: Lua: can only execute one Vim command at a time. Not easy to get + the Vim version. +Solution: Make vim.command() accept multiple lines. Add vim.version(). + (Yegappan Lakshmanan, closes #8716) +Files: runtime/doc/if_lua.txt, src/evalfunc.c, src/if_lua.c, + src/proto/evalfunc.pro, src/testdir/test_lua.vim, + src/testdir/test_shell.vim + +Patch 8.2.3301 +Problem: Memory allocation functions don't have their own place. +Solution: Move memory allocation functions to alloc.c. (Yegappan + Lakshmanan, closes #8717) +Files: Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md, + src/alloc.c, src/misc2.c, src/proto.h, src/proto/alloc.pro, + src/proto/misc2.pro + +Patch 8.2.3302 +Problem: Coverity is not run from github. +Solution: Add a coverity script. (James McCoy, closes #8714) +Files: .github/workflows/coverity.yml, Filelist + +Patch 8.2.3303 +Problem: Some structures could be smaller. +Solution: Rearrange members to reduce size. (Dominique Pellé, closes #8725) +Files: src/structs.h, src/vim9.h, src/vim9execute.c + +Patch 8.2.3304 +Problem: Popup window title with wide characters is truncated. +Solution: Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino, + closes #8721) +Files: src/popupwin.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_multibytetitle.dump + +Patch 8.2.3305 +Problem: Vim9: :finally in skipped block not handled correctly. +Solution: Check whether :finally is in a skipped block. (Naruhiko Nishino, + closes #8724) +Files: src/ex_eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3306 +Problem: Unexpected "No matching autocommands". +Solution: Do not give the message when aborting. Mention the arguments in + the message. (closes #8690) +Files: src/autocmd.c, + +Patch 8.2.3307 +Problem: Vim9: :echoconsole cannot access local variables. +Solution: Handle like other :echo commands. (closes #8708) +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3308 +Problem: Vim9: no runtime check for argument type if a function only has + varargs. +Solution: Also check argument types if uf_va_type is set. (closes #8715) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3309 +Problem: Vim9: divide by zero causes a crash. +Solution: Give an error message. (closes #8727) +Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3310 +Problem: Vim9: unpack assignment does not mention source of type error. +Solution: Mention the argument number. (closes #8719) +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3311 +Problem: Vim9: check for DO_NOT_FREE_CNT is very slow. +Solution: Move to a separate function so it can be skipped by setting + $TEST_SKIP_PAT. +Files: src/testdir/test_vim9_expr.vim, src/testdir/runtest.vim + +Patch 8.2.3312 +Problem: Vim9: after "if false" line breaks in expression not skipped. +Solution: Do parse the expression. (closes #8723) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3313 +Problem: Unused code in win_exchange() and frame_remove(). +Solution: Remove the code. (closes #8728) +Files: src/window.c + +Patch 8.2.3314 +Problem: Behavior of exists() in a :def function is unpredictable. +Solution: Add exists_compiled(). +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/errors.h, src/vim9compile.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3315 +Problem: Cannot use single quote in a float number for readability. +Solution: Support single quotes like in numbers. (closes #8713) +Files: src/typval.c, src/float.c, src/proto/float.pro, src/json.c, + src/viminfo.c, src/testdir/test_float_func.vim + +Patch 8.2.3316 (after 8.2.3315) +Problem: Float test fails. +Solution: Add missing change. +Files: src/evalfunc.c + +Patch 8.2.3317 +Problem: Vim9: No error for missing white space before return type. +Solution: Check for white space. (closes #8733) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3318 +Problem: Vim9: cannot ignore quotes in number at the command line. +Solution: Use in_vim9script() so that after ":vim9" quotes are ignored. +Files: src/typval.c, src/testdir/test_float_func.vim + +Patch 8.2.3319 +Problem: Coverity action on github does not work. +Solution: Remove undefined $SRCDIR. (James McCoy, closes #8739) +Files: .github/workflows/coverity.yml + +Patch 8.2.3320 +Problem: Some local functions are not static. +Solution: Add "static". Move snprintf() related code to strings.c. + (Yegappan Lakshmanan, closes #8734) +Files: src/alloc.c, src/channel.c, src/dict.c, src/digraph.c, src/edit.c, + src/ex_docmd.c, src/getchar.c, src/job.c, src/list.c, + src/message.c, src/profiler.c, src/proto/channel.pro, + src/proto/dict.pro, src/proto/digraph.pro, src/proto/edit.pro, + src/proto/ex_docmd.pro, src/proto/getchar.pro, src/proto/job.pro, + src/proto/list.pro, src/proto/profiler.pro, src/proto/spell.pro, + src/proto/vim9compile.pro, src/proto/vim9script.pro, + src/proto/vim9type.pro, src/spell.c, src/strings.c, + src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/window.c + +Patch 8.2.3321 +Problem: Some code is not tested. +Solution: Add some more tests. (Dominique Pellé, closes #8735) +Files: src/testdir/test_excmd.vim, src/testdir/test_writefile.vim + +Patch 8.2.3322 +Problem: Vim9: checking type of dict does not check member type. +Solution: When getting the type of a typval use dv_type and lv_type. + (closes #8732) +Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3323 +Problem: Help tag for exists_compiled() is wrong. (Maxim Kim) +Solution: Adjust the help tag. +Files: runtime/doc/eval.txt + +Patch 8.2.3324 +Problem: Vim9: Cannot use :silent with :endwhile. +Solution: Allow for using the :silent modifier. (closes #8737) +Files: src/ex_eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3325 +Problem: Digraph test fails when LC_ALL is set to "C". +Solution: When restoring 'encoding' set it to "utf-8". (closes #8742) +Files: src/testdir/test_digraph.vim + +Patch 8.2.3326 +Problem: Vim9: no error passing an empty list of the wrong type. +Solution: Use ISN_SETTYPE also for "list<any>". (closes #8732) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3327 +Problem: No check for sysconf() failing. +Solution: If sysconf() fails use SIGSTKSZ for the signal stack size. + (Zdenek Dohnal, closes #8743) +Files: src/os_unix.c + +Patch 8.2.3328 +Problem: Coverity error for not checking return value. +Solution: Check value is not negative. +Files: src/spellfile.c + +Patch 8.2.3329 +Problem: v_lock not set when getting value of environment variable. +Solution: Set v_lock to zero. +Files: src/typval.c + +Patch 8.2.3330 +Problem: Coverity reports using uninitialized field. +Solution: Initialize the field early. +Files: src/tag.c + +Patch 8.2.3331 +Problem: Coverity warns for using value without boundary check. +Solution: Add a boundary check. +Files: src/viminfo.c + +Patch 8.2.3332 +Problem: Vim9: cannot assign to range in list. +Solution: Implement overwriting a list range. +Files: src/vim9compile.c, src/vim9execute.c, src/list.c, + src/proto/list.pro, src/eval.c, src/proto/eval.pro, + src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim + +Patch 8.2.3333 +Problem: Vim9: not enough tests run with Vim9. +Solution: Run a few more tests in Vim9 script and :def function. +Files: src/testdir/test_listdict.vim, src/testdir/vim9.vim + +Patch 8.2.3334 +Problem: Vim9: not enough tests run with Vim9. +Solution: Run a few more tests in Vim9 script and :def function. Fix + islocked(). Fix error for locking local variable. +Files: src/evalfunc.c, src/vim9compile.c, src/testdir/test_listdict.vim + +Patch 8.2.3335 +Problem: Vim9: not enough tests run with Vim9. +Solution: Run a few more tests in Vim9 script and :def function. Fix that + items(), keys() and values() return zero for a NULL dict. + Make join() return an empty string for a NULL list. Make sort() + return an empty list for a NULL list. +Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim, + src/testdir/vim9.vim + +Patch 8.2.3336 +Problem: Behavior of negative index in list change changed. (Naruhiko + Nishino) +Solution: Only change it for Vim9 script. (closes #8749) +Files: src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.3337 +Problem: Completing "call g:" returns entries with just "g:". (Naohiro Ono) +Solution: Skip empty strings returned by get_user_func_name(). (closes #8753) +Files: src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 8.2.3338 +Problem: Vim9: no type check when assigning a list range. (Naohiro Ono) +Solution: Check the member type. (closes #8750) +Files: src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.3339 +Problem: Vim9: cannot lock a member in a local dict. +Solution: Get the local dict from the stack and pass it to get_lval(). +Files: src/eval.c, src/vim9execute.c, src/vim9compile.c, src/vim9.h, + src/globals.h, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3340 (after 8.2.3339) +Problem: Accessing uninitialized pointer. +Solution: Set pointer to NULL. +Files: src/eval.c + +Patch 8.2.3341 +Problem: Vim9: function call aborted despite try/catch. (Naohiro Ono) +Solution: Ignore error caught by try/catch. (closes #8755) +Files: src/evalvars.c, src/vim9execute.c, src/message.c, src/time.c, + src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.3342 (after 8.2.3341) +Problem: Test for :let errors fails. +Solution: Adjust the test and how to avoid a second error message. +Files: src/evalvars.c, src/testdir/test_let.vim + +Patch 8.2.3343 (after 8.2.3342) +Problem: Vim9: autoload test fails. +Solution: Adjust the way the second message is avoided +Files: src/evalvars.c + +Patch 8.2.3344 (after 8.2.3343) +Problem: Vimscript test fails. +Solution: Have test verify first error instead of second +Files: src/testdir/test_vimscript.vim + +Patch 8.2.3345 +Problem: Some code not covered by tests. +Solution: Add a few more tests. (Dominique Pellé, closes #8757) +Files: src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim, + src/testdir/test_spellfile.vim, src/testdir/test_substitute.vim + +Patch 8.2.3346 +Problem: Vim9: no error for using "." for concatenation after ":vim9cmd". + (Naohiro Ono) +Solution: Check for Vim9 script syntax. (closes #8756) +Files: src/eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3347 +Problem: Check for legacy script is incomplete. (Naohiro Ono) +Solution: Also check the :legacy modifier. Use for string concatenation + with "." and others (issue #8756) +Files: src/vim9script.c, src/proto/vim9script.pro, src/eval.c, + src/typval.c, src/evalvars.c, src/errors.h, src/ex_docmd.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3348 +Problem: line2byte() returns wrong value after adding textprop. (Yuto + Kimura) +Solution: Reduce the length by the size of the text property. (closes #8759) +Files: src/memline.c, src/testdir/test_textprop.vim + +Patch 8.2.3349 (after 8.2.3347) +Problem: Eval test for scriptversion fails. +Solution: Fix off-by-one error. +Files: src/vim9script.c + +Patch 8.2.3350 (after 8.2.3348) +Problem: Text properties test fails on MS-Windows. +Solution: Set fileformat to unix. +Files: src/testdir/test_textprop.vim + +Patch 8.2.3351 +Problem: Vim9: using a function by name may delete it. (Naohiro Ono) +Solution: Increment the reference count when using a function by name. + (closes #8760) +Files: src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3352 +Problem: Vim9: error for nested :enddef has wrong line number. +Solution: Compute the line number. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3353 +Problem: Vim9: type of argument for negate not checked at compile time. +Solution: Add a compile time check. +Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3354 +Problem: Build failure with +byte_offset but without +textprop. (John + Marriott) +Solution: Adjust the #ifdef. +Files: src/memline.c + +Patch 8.2.3355 +Problem: MS-Windows: compiler warning for 64-32 bit conversion. +Solution: Add type casts. +Files: src/memline.c + +Patch 8.2.3356 +Problem: Adding many text properties requires a lot of function calls. +Solution: Add the prop_add_list() function. (Yegappan Lakshmanan, + closes #8751) +Files: runtime/doc/eval.txt, runtime/doc/textprop.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/textprop.pro, + src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim, + src/textprop.c + +Patch 8.2.3357 +Problem: Crash when 'virtualedit' is set and window is narrow. +Solution: Check that width is not zero. (closes #8767) +Files: src/misc2.c, src/testdir/test_number.vim + +Patch 8.2.3358 +Problem: Structurizr files are not recognized. +Solution: Recognize the file by contents. (Bastian Venthur, closes #8764) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3359 +Problem: Vim9: error for type when variable is not set. +Solution: Give a specific error for a NULL function. (closes #8773) +Files: src/vim9type.c, src/errors.h, src/testdir/test_vim9_func.vim + +Patch 8.2.3360 +Problem: User function completion fails with dict function. +Solution: Do not stop sequencing through the list if user functions when + encountering an empty name. (Naohiro Ono, closes #8765, + closes #8774) +Files: src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 8.2.3361 +Problem: Vim9: crash with nested :while. +Solution: Handle skipping better. (Naruhiko Nishino, closes #8778) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3362 +Problem: Buffer overflow when completing long tag name. +Solution: Allocate the buffer dynamically. (Gregory Anders, closes #8769) +Files: src/tag.c, src/testdir/test_tagjump.vim + +Patch 8.2.3363 +Problem: When :edit reuses the current buffer the alternate file is set to + the same buffer. +Solution: Only set the alternate file when not reusing the buffer. + (closes #8783) +Files: src/ex_cmds.c, src/testdir/test_undo.vim, + src/testdir/test_cmdline.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.3364 +Problem: Vim9: crash when :for is skipped. +Solution: Skip more code generation. (Naruhiko Nishino, closes #8777) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3365 +Problem: Vim9: cannot use option for all operations. +Solution: Recognize more operations. (closes #8779) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/ex_docmd.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3366 +Problem: Vim9: debugging elseif does not stop before condition. +Solution: Move debug statement to after the jump. (closes #8781) +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3367 +Problem: Vim9: :@r executing a register is inconsistent. +Solution: Use "@r" as the start of an expression. (issue #8779) +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3368 +Problem: Not all Racket files are recognized. +Solution: Also recognize .rktl and .rktd files. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3369 +Problem: Auto formatting after "cw" leaves cursor in wrong spot. +Solution: Do not auto-format after the delete. (closes #8789) +Files: src/ops.c, src/testdir/test_textformat.vim + +Patch 8.2.3370 +Problem: Vim9: no check for white space before type in declaration. + (Naohiro Ono) +Solution: Check for white space like in a compiled function. (closes #8785) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3371 +Problem: Vim9: :$ENV cannot be followed by ->func() in next line. +Solution: Use "$ENV" as the start of an expression. (closes #8790) +Files: src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3372 +Problem: line2byte() value wrong when adding a text property. (Yuto Kimura) +Solution: Adjust length for text property. (closes #8772) Also fix it for + deleting a line. +Files: src/memline.c, src/testdir/test_textprop.vim + +Patch 8.2.3373 (after 8.2.3372) +Problem: text property test fails on MS-Windows. +Solution: Set fileformat to "unix" +Files: src/testdir/test_textprop.vim + +Patch 8.2.3374 +Problem: Pyret files are not recognized. +Solution: Recognize .arr files as Pyret. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3375 +Problem: Using uninitialized memory. +Solution: Initialize textprop_save_len. +Files: src/memline.c + +Patch 8.2.3376 +Problem: Vim9: no warning that "@r" does not do anything. +Solution: Give a "no effect" error. (closes #8779) +Files: src/ex_eval.c, src/proto/ex_eval.pro, src/vim9compile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3377 +Problem: Vim9: :disass completion does not understand "s:". +Solution: Expand "s:" to a pattern. (closes #8780) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3378 +Problem: MS-Windows: completing environment variables with % is wrong. +Solution: Only complete environment variables with $. (Albert Liu, + closes #8791) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3379 +Problem: Crash when using NULL job. +Solution: Copy static string into buffer. (issue #8260) +Files: src/job.c, src/testdir/test_channel.vim + +Patch 8.2.3380 +Problem: Crash when using NULL string for funcref(). +Solution: Check for NULL argument. (issue #8260) +Files: src/evalfunc.c, src/testdir/test_expr.vim + +Patch 8.2.3381 +Problem: Crash when using NULL list with sign functions. +Solution: Handle a NULL list like an empty list. (issue #8260) +Files: src/globals.h, src/testdir/test_signs.vim + +Patch 8.2.3382 +Problem: Crash when getting the type of a NULL partial. +Solution: Check for NULL. (closes #8260) +Files: src/vim9type.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3383 +Problem: Vim9: completion for :disassemble adds parenthesis. +Solution: Don't add parenthesis. (Naohiro Ono, closes #8802) +Files: src/userfunc.c, src/testdir/test_cmdline.vim + +Patch 8.2.3384 +Problem: Cannot disable modeline for an individual file. +Solution: Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798) +Files: runtime/doc/options.txt, src/buffer.c, + src/testdir/test_modeline.vim + +Patch 8.2.3385 +Problem: Escaping for fish shell does not work properly. +Solution: Insert a backslash before a backslash. (Jason Cox, closes #8810) +Files: runtime/doc/eval.txt, src/strings.c, src/testdir/test_shell.vim + +Patch 8.2.3386 +Problem: Using uninitialized memory. +Solution: Initialize the rm_ic field. (Dominique Pellé, closes #8800) +Files: src/indent.c + +Patch 8.2.3387 +Problem: Compiler warning for non-static function. +Solution: Make the function static. (Dominique Pellé, closes #8816) +Files: src/strings.c + +Patch 8.2.3388 +Problem: fnamemodify('path/..', ':p') differs from using 'path/../'. (David + Briscoe) +Solution: Include the "/.." in the directory name. (closes #8808) +Files: src/os_unix.c, src/testdir/test_fnamemodify.vim + +Patch 8.2.3389 +Problem: Cannot stop insert mode completion without side effects. +Solution: Add CTRL-X CTRL-Z. (closes #8821) +Files: runtime/doc/index.txt, runtime/doc/insert.txt, src/insexpand.c, + src/testdir/test_ins_complete.vim + +Patch 8.2.3390 +Problem: Included xdiff code is outdated. +Solution: Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431) +Files: src/diff.c, src/xdiff/README.txt, src/xdiff/xdiff.h, + src/xdiff/xdiffi.c, src/xdiff/xdiffi.h, src/xdiff/xemit.c, + src/xdiff/xemit.h, src/xdiff/xhistogram.c, src/xdiff/xinclude.h, + src/xdiff/xmacros.h, src/xdiff/xpatience.c, src/xdiff/xprepare.h, + src/xdiff/xtypes.h, src/xdiff/xutils.c, src/xdiff/xutils.h + +Patch 8.2.3391 +Problem: Crash with combination of 'linebreak' and other options. +Solution: Avoid n_extra to become negative. (Christian Brabandt, + closes #8817) +Files: src/drawline.c + +Patch 8.2.3392 +Problem: augroup completion escapes regexp pattern characters. +Solution: Do not escape the augroup name. (closes #8826) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3393 +Problem: Escaping for fish shell is skipping some characters. +Solution: Escape character after backslash if needed. (Jason Cox, + closes #8827) +Files: src/strings.c, src/testdir/test_shell.vim + +Patch 8.2.3394 +Problem: Filler lines are wrong when changing text in diff mode. +Solution: Don't change the filler lines on every change. Check + scrollbinding when updating the filler lines. (closes #8809) +Files: src/move.c, src/diff.c, src/testdir/test_diffmode.vim, + src/testdir/dumps/Test_diff_scroll_change_01.dump, + src/testdir/dumps/Test_diff_scroll_change_02.dump + +Patch 8.2.3395 +Problem: Vim9: expression breakpoint not checked in :def function. +Solution: Always compile a function for debugging if there is an expression + breakpoint. (closes #8803) +Files: src/vim9execute.c, src/proto/vim9execute.pro, src/debugger.c, + src/proto/debugger.pro, src/vim.h, src/vim9.h, + src/testdir/test_debugger.vim + +Patch 8.2.3396 +Problem: When libcall() fails invalid pointer may be used. +Solution: Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829) +Files: src/evalfunc.c + +Patch 8.2.3397 +Problem: No test for what 8.2.3391 fixes. +Solution: Add a test. (Yegappan Lakshmanan, closes #8828) +Files: src/testdir/test_breakindent.vim + +Patch 8.2.3398 +Problem: Html text objects are not fully tested. +Solution: Add tests for dbcs encoding and different number of backslashes. + (Dominique Pellé, closes #8831) +Files: src/testdir/test_textobjects.vim + +Patch 8.2.3399 +Problem: Octave files are not recognized. +Solution: Detect Octave files. (Doug Kearns) +Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, + runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3400 +Problem: ":z!" is not supported. +Solution: Make ":z!" work and add tests. (Dominique Pellé, closes #8836) + Use display height instead of current window height. +Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_cmds.c, + src/testdir/test_ex_z.vim + +Patch 8.2.3401 +Problem: Vim9: cannot use a negative count with finddir() and findfile(). +Solution: Adjust the return type. (closes #8776) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3402 +Problem: Invalid memory access when using :retab with large value. +Solution: Check the number is positive. +Files: src/indent.c, src/option.c, src/optionstr.c, + src/testdir/test_retab.vim + +Patch 8.2.3403 (after 8.2.3402) +Problem: Memory leak for :retab with invalid argument. +Solution: Free the memory. Make error messages consistent. +Files: src/indent.c + +Patch 8.2.3404 +Problem: Vim9: no error for white space before "(". +Solution: Give an error, like in a compiled function. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3405 +Problem: Cannot have a comment line in a {} block of a user command. +Solution: Continue after the line break. (closes #8837) +Files: src/ex_docmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.3406 +Problem: On some systems tests fail without _REENTRANT. (Elimar + Riesebieter) +Solution: Add -D_REENTRANT in configure. (closes #7402) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.3407 +Problem: Using uninitialized memory with "let g:['bar'] = 2". +Solution: Initialize v_type of a new dict item. +Files: src/dict.c + +Patch 8.2.3408 +Problem: Can delete a numbered function. (Naohiro Ono) +Solution: Disallow deleting a numbered function. (closes #8760) +Files: src/userfunc.c, src/testdir/test_user_func.vim + +Patch 8.2.3409 +Problem: Reading beyond end of line with invalid utf-8 character. +Solution: Check for NUL when advancing. +Files: src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim + +Patch 8.2.3410 +Problem: Crash with linebreak, listchars and large tabstop. +Solution: Account for different size listchars for a tab. (closes #8841) +Files: src/drawline.c, src/testdir/test_listlbr_utf8.vim + +Patch 8.2.3411 +Problem: Vim9: crash when using base name of import. (Naohiro Ono) +Solution: Check the import flags. (closes #8843) +Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim + +Patch 8.2.3412 (after 8.2.3411) +Problem: Vim9: importing the wrong file. +Solution: Correct the file name. Delete the file afterwards. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3413 +Problem: Vim9: too many characters are allowed in import name. +Solution: Disallow ':' and '#', check for white space. (closes #8845) +Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim + +Patch 8.2.3414 +Problem: fullcommand() gives the wrong name if there is a buffer-local user + command. (Naohiro Ono) +Solution: Use a separate function to get the user command name. + (closes #8840) +Files: src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c, + src/testdir/test_cmdline.vim + +Patch 8.2.3415 +Problem: Vim9: Not all function argument types are properly checked. +Solution: Add and improve argument type checks. (Yegappan Lakshmanan, + closes #8839) +Files: src/channel.c, src/digraph.c, src/evalfunc.c, src/terminal.c, + src/testdir/test_digraph.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3416 +Problem: Second error is reported while exception is being thrown. +Solution: Do not check for trailing characters when already aborting. + (closes #8842) +Files: src/userfunc.c, src/testdir/test_trycatch.vim + +Patch 8.2.3417 +Problem: Vim9: a failing debug expression aborts script sourcing. +Solution: Do not let expression failure abort script sourcing. (closes #8848) +Files: src/debugger.c, src/testdir/test_debugger.vim + +Patch 8.2.3418 +Problem: Garbage collection while evaluating may cause trouble. +Solution: Disable garbage collection while evaluating an expression. + (Christian Brabandt, issue #8848) +Files: src/eval.c + +Patch 8.2.3419 +Problem: A failing debug expression may make Vim unusable. +Solution: Suppress error messages. (closes #8848) +Files: src/debugger.c, src/testdir/test_debugger.vim + +Patch 8.2.3420 +Problem: _REENTRANT defined more than once. +Solution: Fix configure script. (Christian Brabandt, closes #8852) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.3421 +Problem: A bit of code is not covered by tests. +Solution: Add a few more test cases. (Dominique Pellé, closes #8857) +Files: src/testdir/test_functions.vim, src/testdir/test_history.vim, + src/testdir/test_startup.vim + +Patch 8.2.3422 +Problem: Vim9: no failure if return type differs from returned variable. +Solution: Copy type when copying a list. (closes #8847) +Files: src/list.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3423 +Problem: Vim9: list += list creates a new list in :def function. +Solution: Append to the existing list. +Files: src/structs.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3424 +Problem: A sequence of spaces is hard to see in list mode. +Solution: Add the "multispace" option to 'listchars'. (closes #8834) +Files: runtime/doc/options.txt, src/drawline.c, src/message.c, + src/screen.c, src/structs.h, src/testdir/test_listchars.vim + +Patch 8.2.3425 +Problem: Warning for using uninitialized variable. +Solution: Initialize it. (John Marriott) +Files: src/screen.c + +Patch 8.2.3426 +Problem: Crash when deleting a listener in a listener callback. (Naohiro + Ono) +Solution: Mark the listener and delete it later. (closes #8863) +Files: src/change.c, src/testdir/test_listener.vim + +Patch 8.2.3427 +Problem: Double free when list is copied. +Solution: Allocate the type when making a copy. (closes #8862) + Clear the type for flattennew(). Avoid a memory leak when + flattennew() fails. +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3428 +Problem: Using freed memory when replacing. (Dhiraj Mishra) +Solution: Get the line pointer after calling ins_copychar(). +Files: src/normal.c, src/testdir/test_edit.vim + +Patch 8.2.3429 +Problem: Leaking memory when assigning to list or dict. +Solution: Free the list or dict type before overwriting it. +Files: src/vim9type.c, src/evalvars.c + +Patch 8.2.3430 +Problem: No generic way to trigger an autocommand on mode change. +Solution: Add the ModeChanged autocommand event. (Magnus Gross, closes #8856) +Files: runtime/doc/autocmd.txt, src/autocmd.c, src/edit.c, + src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/misc1.c, + src/normal.c, src/proto/autocmd.pro, src/proto/misc1.pro, + src/testdir/test_edit.vim, src/vim.h + +Patch 8.2.3431 +Problem: Completion for :disas sorts local functions first. +Solution: Sort local functions last, like with :delfunc. (Naohiro Ono, + closes #8860) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3432 +Problem: Octave/Matlab filetype detection does not work properly. +Solution: Update the patterns used for matching. (Doug Kearns) +Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim + +Patch 8.2.3433 +Problem: :delcommand does not take a -buffer option. +Solution: Add the -buffer option. +Files: runtime/doc/map.txt, src/usercmd.c, src/errors.h, + src/testdir/test_usercommands.vim + +Patch 8.2.3434 (after 8.2.3430) +Problem: Function prototype for trigger_modechanged() is incomplete. +Solution: Add "void". +Files: src/proto/misc1.pro + +Patch 8.2.3435 +Problem: Vim9: dict is not passed to dict function. +Solution: Keep the dict used until a function call. +Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3436 +Problem: Check for optional bool type has confusing return type. +Solution: Explicitly return OK. +Files: src/typval.c + +Patch 8.2.3437 +Problem: Compiler warnings for 32/64 bit usage. +Solution: Add type casts. (Mike Williams, closes #8870) +Files: src/screen.c, src/xdiff/xemit.c, src/xdiff/xutils.c + +Patch 8.2.3438 +Problem: Cannot manipulate blobs. +Solution: Add blob2list() and list2blob(). (Yegappan Lakshmanan, + closes #8868) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/blob.c, + src/errors.h, src/evalfunc.c, src/proto/blob.pro, + src/proto/typval.pro, src/testdir/test_blob.vim, + src/testdir/test_vim9_builtin.vim, src/typval.c + +Patch 8.2.3439 +Problem: Deleted lines go to wrong yank register. +Solution: Reset y_append when not calling get_yank_register(). (Christian + Brabandt, closes #8872) +Files: src/ops.c, src/proto/register.pro, src/register.c, + src/testdir/test_registers.vim + +Patch 8.2.3440 +Problem: Recover test fails if there is an old swap file. +Solution: Delete old swap files. +Files: src/testdir/test_recover.vim + +Patch 8.2.3441 +Problem: MS-Windows: vimtutor can't handle path with spaces. +Solution: Add double quotes. (Christian Brabandt, closes #8871) +Files: vimtutor.bat + +Patch 8.2.3442 +Problem: Vim9: || and && are not handled at compile time when possible. +Solution: When using constants generate fewer instructions. +Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3443 +Problem: Vim9: memory leak when and/or fails. +Solution: Also clear the growarray when the length is zero. +Files: src/vim9compile.c + +Patch 8.2.3444 +Problem: concealed text not revealed when leaving insert mode. (Michael + Soyka) +Solution: Check if concealing changed when leaving insert mode. + (closes #8880) +Files: src/edit.c, src/testdir/test_conceal.vim, + src/testdir/dumps/Test_conceal_two_windows_07in.dump + +Patch 8.2.3445 +Problem: On Solaris longVersion may be declared twice. (Vladimir Marek) +Solution: Always declare longVersion in version.c +Files: src/globals.h, src/version.c + +Patch 8.2.3446 +Problem: Not enough tests for empty string arguments. +Solution: Add tests, fix type check. (Yegappan Lakshmanan, closes #8881) +Files: runtime/doc/sign.txt, runtime/doc/textprop.txt, src/sign.c, + src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3447 +Problem: A couple of declarations are not ANSI C. +Solution: Put argument type inside (). (Yegappan Lakshmanan, closes #8890) +Files: src/os_unix.h + +Patch 8.2.3448 +Problem: :endtry after function call that throws not found. +Solution: Do check for following :endtry if an exception is being thrown. + (closes #8889) +Files: src/userfunc.c, src/testdir/test_trycatch.vim + +Patch 8.2.3449 +Problem: Sort fails if the sort compare function returns 999. +Solution: Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884) +Files: src/list.c, src/testdir/test_sort.vim + +Patch 8.2.3450 +Problem: Coveralls action fails. +Solution: Disable it for now. +Files: .github/workflows/ci.yml + +Patch 8.2.3451 +Problem: Not all apache files are recognized. +Solution: Adjust the filetype pattern. (Zdenek Dohnal, closes #8882) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3452 +Problem: MPD files are not recognized. +Solution: Recognize MPD files as XML. (Steven Penny, closes #8893) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3453 +Problem: Autocmd not executed when editing a directory ending in a path + separator inside try block. +Solution: Return NOTDONE instead of FAIL. (closes #8885) +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 8.2.3454 +Problem: Using a count with "gp" leaves cursor in wrong position. (Naohiro + Ono) +Solution: Count the inserted lines. (closes #8899) +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.3455 (after 8.2.3454) +Problem: Using a count with "gp" leaves '] in wrong position. (Naohiro Ono) +Solution: Correct the mark position. (closes #8899) +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.3456 +Problem: Vim9: Not all functions are tested with an empty string argument. +Solution: Add tests with empty strings. (Yegappan Lakshmanan, closes #8915) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3457 +Problem: MS-Windows Vim9: test executed and fails. +Solution: Add extra check for not being on MS-Windows. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3458 +Problem: Not all dictdconf files are recognized. +Solution: Adjust the pattern. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3459 +Problem: Vim9: need more tests for empty string arguments. +Solution: Add more tests. Also use empty argument with menu_info() to get + the top-level menu names. (Yegappan Lakshmanan, closes #8925) +Files: runtime/doc/eval.txt, src/menu.c, src/testdir/test_menu.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3460 +Problem: Some type casts are not needed. +Solution: Remove unnecessary type casts. (closes #8934) +Files: src/autocmd.c, src/buffer.c, src/debugger.c, src/getchar.c, + src/hardcopy.c, src/if_cscope.c, src/move.c, src/tag.c, + src/version.c + +Patch 8.2.3461 +Problem: Cannot distinguish Normal and Terminal-Normal mode. +Solution: Make mode() return "nt" for Terminal-Normal mode. (issue #8856) +Files: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim + +Patch 8.2.3462 +Problem: The ModeChanged event only uses one character for the new_mode and + old_mode values. +Solution: Pass one as first argument to mode(). (issue #8856) +Files: src/misc1.c, src/testdir/test_edit.vim + +Patch 8.2.3463 +Problem: Pattern matching with ModeChanged not tested. +Solution: Add a few more test lines. (issue #8856) +Files: src/testdir/test_edit.vim + +Patch 8.2.3464 +Problem: nginx files are not recognized. +Solution: Add several file patterns. (Chris Aumann, closes #8922) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3465 +Problem: Cannot detect insert scroll mode. +Solution: Add "scroll" to complete_info(). (closes #8943) +Files: runtime/doc/eval.txt, src/insexpand.c, src/testdir/test_popup.vim + +Patch 8.2.3466 +Problem: Completion submode not indicated for virtual replace. +Solution: Add submode to "Rv". (closes #8945) +Files: runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim + +Patch 8.2.3467 +Problem: CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono) +Solution: Restore the flag for "CTRL-G U" after triggering CursorHoldI. + (closes #8937) +Files: src/edit.c, src/testdir/test_autocmd.vim + +Patch 8.2.3468 +Problem: Problem with :cd when editing file in non-existent directory. (Yee + Cheng Chin) +Solution: Prepend the current directory to get the full path. (closes #8903) +Files: src/os_unix.c, src/testdir/test_cd.vim + +Patch 8.2.3469 +Problem: Some files with json syntax are not recognized. +Solution: Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3470 +Problem: Crash with error in :catch and also in :finally. +Solution: Only discard an exception if there is one. (closes #8954) +Files: src/ex_eval.c, src/testdir/test_trycatch.vim + +Patch 8.2.3471 +Problem: Crash when using CTRL-T after an empty search pattern. +Solution: Bail out when there is no previous search pattern. (closes #8953) +Files: src/ex_getln.c, src/testdir/test_search.vim + +Patch 8.2.3472 +Problem: Other crashes with empty search pattern not tested. +Solution: Add a few more test lines. (Dominique Pellé) +Files: src/testdir/test_search.vim + +Patch 8.2.3473 +Problem: Some files with tcl syntax are not recognized. +Solution: Add a few file patterns. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3474 +Problem: Some places use "Vimscript" instead of "Vim script". +Solution: Consistently use "Vim script". (Hirohito Higashi, closes #8910) +Files: runtime/doc/if_lua.txt, src/getchar.c, src/if_lua.c + +Patch 8.2.3475 +Problem: Expression register set by not executed put command. +Solution: Do not set the register if the command is skipped. (closes #8909) +Files: src/ex_docmd.c, src/testdir/test_excmd.vim + +Patch 8.2.3476 +Problem: Renaming a buffer on startup may cause using freed memory. +Solution: Check if the buffer is used in a window. (closes #8955) +Files: src/buffer.c, src/testdir/test_startup.vim + +Patch 8.2.3477 (after 8.2.3476) +Problem: Startup test fails on MS-Windows. +Solution: Skip the test if not on Unix. +Files: src/testdir/test_startup.vim + +Patch 8.2.3478 (after 8.2.3470) +Problem: Still crash with error in :catch and also in :finally. +Solution: Only call finish_exception() once. (closes #8954) +Files: src/ex_eval.c, src/structs.h + +Patch 8.2.3479 +Problem: Crash when calling job_start with an invalid argument. (Virginia + Senioria) +Solution: Clear the first item in argv. (closes #8957) +Files: src/misc2.c, src/testdir/test_channel.vim + +Patch 8.2.3480 (after 8.2.3478) +Problem: Test does not fail without the fix for a crash. +Solution: Write the bad code in a file and source it. (Dominique Pellé, + closes #8961) +Files: src/testdir/test_trycatch.vim + +Patch 8.2.3481 +Problem: Failures when char is unsigned. +Solution: Use int8_T. Make a CI run with unsigned char. (James McCoy, + closes #8936) +Files: src/structs.h, .github/workflows/ci.yml + +Patch 8.2.3482 +Problem: Reading beyond end of line ending in quote and backslash. +Solution: Check for non-NUL after backslash. (closes #8964) +Files: src/cindent.c, src/testdir/test_cindent.vim + +Patch 8.2.3483 +Problem: #ifdef for using sysinfo() is incomplete. +Solution: Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK. + (closes #8952) +Files: src/memline.c, src/configure.ac, src/auto/configure + +Patch 8.2.3484 +Problem: Crash when going through spell suggestions. +Solution: Limit the text length for finding suggestions to the original + length. Do not update buffers when exiting. (closes #8965) +Files: src/spellsuggest.c, src/clipboard.c, + src/testdir/test_spell_utf8.vim + +Patch 8.2.3485 +Problem: Python 3 test fails with Python 3.10. +Solution: Adjust expected error message. (zdohnal Dohnal, closes #8969) +Files: src/testdir/test_python3.vim + +Patch 8.2.3486 +Problem: Illegal memory access with invalid sequence of commands. +Solution: Do not call leave_block() when not in a try block. (closes #8966) + Reset did_emsg so that exception is shown as an error. +Files: src/ex_eval.c, src/testdir/test_trycatch.vim + +Patch 8.2.3487 +Problem: Illegal memory access if buffer name is very long. +Solution: Make sure not to go over the end of the buffer. +Files: src/drawscreen.c, src/testdir/test_statusline.vim + +Patch 8.2.3488 +Problem: Issue template is not easy to use. +Solution: Use a yaml template. (closes #8928) +Files: .github/ISSUE_TEMPLATE/bug_report.md, + .github/ISSUE_TEMPLATE/bug_report.yml + +Patch 8.2.3489 +Problem: ml_get error after search with range. +Solution: Limit the line number to the buffer line count. +Files: src/ex_docmd.c, src/testdir/test_search.vim + +Patch 8.2.3490 +Problem: Superfluous return statements. +Solution: Remove superfluous return statements from void functions. + (closes #8977) +Files: src/buffer.c, src/getchar.c, src/memline.c, src/move.c, + src/option.c + +Patch 8.2.3491 +Problem: xpm2 filetype detection is not so good. +Solution: Adjust the check for xpm2. (closes #8914) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3492 +Problem: Crash when pasting too many times. +Solution: Limit the size to what fits in an int. (closes #8962) +Files: src/register.c, src/errors.h, src/testdir/test_put.vim + +Patch 8.2.3493 (after 8.2.3492) +Problem: Large count test fails on MS-Windows. +Solution: Skip the test on MS-Windows. +Files: src/testdir/test_put.vim + +Patch 8.2.3494 +Problem: Illegal memory access in utf_head_off. +Solution: Check cursor position when reselecting the Visual area. + (closes #8963) +Files: src/normal.c, src/testdir/test_visual.vim + +Patch 8.2.3495 +Problem: GUI geometry startup test fails on some systems. (Drew Vogel) +Solution: Add tolerance to the size check. (closes #8815) +Files: src/testdir/test_startup.vim + +Patch 8.2.3496 +Problem: Crypt test fails on MS-Windows if xxd was not installed yet. +Solution: Use the just built xxd executable if it exists. (James McCoy, + closes #8929) +Files: src/testdir/test_crypt.vim + +Patch 8.2.3497 +Problem: Put test fails when run by itself. +Solution: Source check.vim. (Dominique Pellé, closes #8990) +Files: src/testdir/test_put.vim + +Patch 8.2.3498 +Problem: Recover test may fail on some systems. +Solution: Adjust the little endian and 64 bit detection. (James McCoy, + closes #8941) +Files: src/testdir/test_recover.vim + +Patch 8.2.3499 +Problem: GUI geometry startup test fails. +Solution: Check string values instead of numbers +Files: src/testdir/test_startup.vim + +Patch 8.2.3500 +Problem: Github CI fails to install clang. +Solution: Install llvm-11 explicitly. (Christian Brabandt, closes #8993) +Files: .github/workflows/ci.yml + +Patch 8.2.3501 +Problem: tmux filetype detection is incomplete +Solution: Also use tmux for files having text after .conf. (Eric Pruitt, + closes #8971) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3502 (after 8.2.2919) +Problem: Cannot enter password in shell command. +Solution: Revert patch 8.2.2919. +Files: src/os_unix.c + +Patch 8.2.3503 +Problem: Vim9: using g:pat:cmd is confusing. +Solution: Do not recognize g: as the :global command. Also for s:pat:repl. + (closes #8982) +Files: runtime/doc/vim9.txt, src/ex_docmd.c, src/ex_cmds.c, src/errors.h, + src/vim9compile.c, src/proto/vim9compile.pro, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3504 (after 8.2.3503) +Problem: Vim9: warning for signed vs unsigned. +Solution: Add type cast. +Files: src/vim9compile.c + +Patch 8.2.3505 (after 8.2.3503) +Problem: Vim9: build failure without the +eval feature. +Solution: Add #ifdef. +Files: src/ex_cmds.c + +Patch 8.2.3506 (after 8.2.3503) +Problem: Vim9: special cases for "g" and "s" insufficiently tested. +Solution: Add a few more test cases. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.3507 +Problem: Generating proto files may fail. +Solution: Define __attribute(). +Files: src/Makefile + +Patch 8.2.3508 (after 8.2.3503) +Problem: Vim9: bad separators for "g" and "s" insufficiently tested. +Solution: Add a few more test cases. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.3509 +Problem: Undo file is not synced. (Sami Farin) +Solution: Sync the undo file if 'fsync' is set. (Christian Brabandt, + closes #8879, closes #8920) +Files: runtime/doc/options.txt, src/undo.c + +Patch 8.2.3510 +Problem: Changes are only detected with one second accuracy. +Solution: Use the nanosecond time if possible. (Leah Neukirchen, + closes #8873, closes #8875) +Files: runtime/doc/eval.txt, src/auto/configure, src/bufwrite.c, + src/config.h.in, src/configure.ac, src/fileio.c, + src/proto/fileio.pro, src/memline.c, src/netbeans.c, + src/structs.h, src/evalfunc.c, src/testdir/test_stat.vim + +Patch 8.2.3511 +Problem: Vim9: entry for loop variable is created every round. +Solution: Only create the entry once. (closes #8996) +Files: src/evalvars.c, src/vim9script.c + +Patch 8.2.3512 +Problem: Timestamp test fails on some systems. +Solution: Sleep for a short while. +Files: src/testdir/test_stat.vim + +Patch 8.2.3513 +Problem: Using freed memory when using a timer and searching. (Dominique + Pellé) +Solution: Allocated mr_pattern. +Files: src/search.c + +Patch 8.2.3514 +Problem: Autoread test with nanosecond time sometimes fails. +Solution: Mark the test as being flaky. +Files: src/testdir/test_stat.vim + +Patch 8.2.3515 +Problem: Nano time test fails on Mac and FreeBSD. +Solution: Also check nano time when not on Linux. (Ozaki Kiichi, + closes #9000) +Files: src/fileio.c + +Patch 8.2.3516 +Problem: Terminal window does not have transparent background when + 'termguicolors' is used. +Solution: Fix the background color. (closes #2361, closes #9002) +Files: runtime/doc/terminal.txt, src/highlight.c, src/proto/terminal.pro, + src/terminal.c + +Patch 8.2.3517 +Problem: TextChanged does not trigger after TextChangedI. +Solution: Store the tick separately for TextChangedI. (Christian Brabandt, + closes #8968, closes #8932) +Files: src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h, + src/testdir/test_autocmd.vim + +Patch 8.2.3518 +Problem: Test_xrestore sometimes fails. +Solution: Mark the test as flaky. Move marking test as flaky to the test + instead of listing them in runtest. +Files: src/testdir/test_paste.vim, src/testdir/runtest.vim, + src/testdir/test_autocmd.vim, src/testdir/test_channel.vim, + src/testdir/test_clientserver.vim, src/testdir/test_diffmode.vim, + src/testdir/test_functions.vim, src/testdir/test_gui.vim, + src/testdir/test_mapping.vim, src/testdir/test_popup.vim, + src/testdir/test_quotestar.vim, src/testdir/test_reltime.vim, + src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, + src/testdir/test_timers.vim + +Patch 8.2.3519 +Problem: TOML files are not recognized. +Solution: Add filetype patterns for TOML. (Aman Verma, closes #8984) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3520 +Problem: Cannot define a function for thesaurus completion. +Solution: Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987, + closes 8950) +Files: runtime/doc/insert.txt, runtime/doc/options.txt, + runtime/doc/quickref.txt, src/buffer.c, src/insexpand.c, + src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c, + src/structs.h, src/testdir/test_edit.vim + +Patch 8.2.3521 (after 8.2.3520) +Problem: Options completion test fails. +Solution: Add 'thesaurusfunc' to the results. +Files: src/testdir/test_options.vim + +Patch 8.2.3522 +Problem: Cannot use \x and \u when setting 'listchars'. +Solution: Support hex and unicode in hex form. (closes #9006) +Files: runtime/doc/options.txt, src/screen.c, src/charset.c, + src/testdir/test_listchars.vim + +Patch 8.2.3523 +Problem: Duplicated code in xxd. +Solution: Remove duplicated lines. (closes #8972) +Files: src/xxd/xxd.c + +Patch 8.2.3524 +Problem: GUI: ligatures are not used. +Solution: Add the 'guiligatures' option. (Dusan Popovic, closes #8933) +Files: runtime/doc/options.txt, src/gui.c, src/gui.h, src/gui_gtk_x11.c, + src/option.h, src/optiondefs.h, src/optionstr.c, src/errors.h, + src/proto/gui.pro, src/proto/gui_gtk_x11.pro, + src/testdir/test_gui.vim + +Patch 8.2.3525 +Problem: Option variable name does not match option name. (Christ van + Willegen) +Solution: Rename the variable. +Files: src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c, + src/structs.h + +Patch 8.2.3526 +Problem: Tests have clumsy check for X11 based GUI. +Solution: Add CheckX11BasedGui. +Files: src/testdir/check.vim, src/testdir/test_gui.vim, + src/testdir/test_gui_init.vim, src/testdir/setup_gui.vim + +Patch 8.2.3527 +Problem: Gcc complains about uninitialized variable. (Tony Mechelynck) +Solution: Initialize it. +Files: src/gui_gtk_x11.c + +Patch 8.2.3528 +Problem: 'thesaurus' and 'thesaurusfunc' do not have the same scope. +Solution: Make 'thesaurusfunc' global-local. +Files: runtime/doc/options.txt, runtime/doc/insert.txt, + src/optiondefs.h, src/option.h, src/option.c, src/structs.h, + src/insexpand.c, src/testdir/test_edit.vim + +Patch 8.2.3529 +Problem: Xxd usage output is incomplete. +Solution: Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944) +Files: src/xxd/xxd.c + +Patch 8.2.3530 +Problem: ":buf \{a}" fails while ":edit \{a}" works. +Solution: Unescape "\{". (closes #8917) +Files: src/vim.h, src/cmdexpand.c, src/evalfunc.c, src/ex_getln.c, + src/proto/ex_getln.pro, src/normal.c, src/session.c, + src/terminal.c, src/vim9execute.c, src/testdir/test_cmdline.vim + +Patch 8.2.3531 (after 8.2.3530) +Problem: Command line completion test fails on MS-Windows. +Solution: Do not test with "\{" on MS-Windows. +Files: src/testdir/test_cmdline.vim + +Patch 8.2.3532 +Problem: The previous '' mark is restored after moving the cursor to the + original jump position. (Tony Chen) +Solution: Forget the previous position after checking. (closes #8985) +Files: src/mark.c, src/testdir/test_marks.vim + +Patch 8.2.3533 +Problem: Inefficient code in xxd. +Solution: Don't use "p" when "hextype" is non-zero. (closes #9013) +Files: src/xxd/xxd.c + +Patch 8.2.3534 +Problem: Autoread test is a bit flaky. +Solution: Wait a brief moment before overwriting the file. +Files: src/testdir/test_stat.vim + +Patch 8.2.3535 +Problem: If-else indenting is confusing. +Solution: Add curly brackets and indent. (Dominique Pellé, closes #9010) +Files: src/drawscreen.c + +Patch 8.2.3536 +Problem: The do_highlight() function is way too long. +Solution: Split it into several functions. (Yegappan Lakshmanan, + closes #9011) +Files: src/highlight.c + +Patch 8.2.3537 +Problem: mode() does not return the right value in 'operatorfunc'. +Solution: Reset finish_op while calling 'operatorfunc'. +Files: src/ops.c, src/testdir/test_functions.vim + +Patch 8.2.3538 +Problem: Else-if indenting is confusing. +Solution: Add curly brackets. (Yegappan Lakshmanan, closes #9017) +Files: src/highlight.c + +Patch 8.2.3539 +Problem: GTK3: with 'rightleft' set scrollbar may move unintentionally. +Solution: Ignore events while moving the scrollbar thumb. (closes #8958) +Files: src/gui_gtk.c + +Patch 8.2.3540 +Problem: The mark '] is wrong after put with a count. (Naohiro Ono) +Solution: Use the right line number. (closes #8956) +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.3541 +Problem: Compiler warning for unused variable in tiny version. +Solution: Add #ifdef. (John Marriott) +Files: src/highlight.c + +Patch 8.2.3542 +Problem: Too many comments are old style. +Solution: Change comments to // style. (closes #9021) +Files: src/buffer.c + +Patch 8.2.3543 +Problem: Swapname has double slash when 'directory' ends in double slash. + (Shane Smith) +Solution: Remove the superfluous slash. (closes #8876) +Files: src/memline.c, src/testdir/test_swap.vim + +Patch 8.2.3544 +Problem: Unix: may leak file descriptor when using a non-existing + directory. +Solution: Always close the file. (closes #9023) +Files: src/os_unix.c + +Patch 8.2.3545 +Problem: setcellwidths() may make 'listchars' or 'fillchars' invalid. +Solution: Check the value and give an error. (closes #9024) +Files: runtime/doc/eval.txt, src/optionstr.c, src/errors.h, src/mbyte.c, + src/testdir/test_utf8.vim + +Patch 8.2.3546 (after 8.2.3545) +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. (closes #9025) +Files: src/errors.h + +Patch 8.2.3547 +Problem: Opening the quickfix window triggers BufWinEnter twice. (Yorick + Peterse) +Solution: Only trigger BufWinEnter with "quickfix". (closes #9022) +Files: src/ex_cmds.c, src/vim.h, src/quickfix.c, src/buffer.c, + src/testdir/test_quickfix.vim + +Patch 8.2.3548 +Problem: GTK GUI crashes when reading from stdin. +Solution: Do not overwrite the NUL after the string. (closes #9028) +Files: src/gui_gtk_x11.c, src/testdir/test_gui.vim + +Patch 8.2.3549 +Problem: Mistakes in test comments. +Solution: Fix the comments. (closes #9029) +Files: src/testdir/test_autocmd.vim + +Patch 8.2.3550 +Problem: completion() does not work properly. +Solution: Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita, + closes #9016) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3551 +Problem: Checking first character of url twice. +Solution: Only check once. (closes #9026) +Files: src/misc1.c + +Patch 8.2.3552 +Problem: Xxd revert does not handle end of line correctly. +Solution: Check for newline first. (closes #9034) +Files: src/xxd/xxd.c, src/testdir/test_xxd.vim + +Patch 8.2.3553 (after 8.2.3552) +Problem: Xxd test fails on MS-Windows. +Solution: Split shell command in two. +Files: src/testdir/test_xxd.vim + +Patch 8.2.3554 +Problem: Xxd has various way to exit. +Solution: Add function to print error and exit. (closes #9035) +Files: src/xxd/xxd.c + +Patch 8.2.3555 +Problem: ModeChanged is not triggered on every mode change. +Solution: Also trigger on minor mode changes. (Maguns Gross, closes #8999) +Files: runtime/doc/autocmd.txt, src/autocmd.c, src/insexpand.c, + src/misc1.c, src/normal.c, src/terminal.c, + src/testdir/test_edit.vim + +Patch 8.2.3556 +Problem: Filler lines are incorrect for other window in diff mode after + making a change. +Solution: Copy filler lines from the current window. (closes #8809) +Files: src/diff.c, src/testdir/test_diffmode.vim, + src/testdir/dumps/Test_diff_scroll_change_03.dump + +Patch 8.2.3557 +Problem: Vim9: cannot call imported funcref at script level. +Solution: Check for an imported function. (closes #9007) +Files: src/userfunc.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3558 (after 8.2.3557) +Problem: Vim9: asserting the wrong variable. +Solution: Don't use Foo, use Goo. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3559 +Problem: Loop variable recreated every time. +Solution: Keep the loop variable when looping. +Files: src/ex_eval.c + +Patch 8.2.3560 +Problem: Using freed memory with lambda. +Solution: Do not free lines early, keep them until the expression is + finished. (closes #9020) +Files: src/eval.c, src/proto/eval.pro, src/userfunc.c, src/vim9compile.c, + src/structs.h, src/globals.h, src/testdir/test_vim9_func.vim + +Patch 8.2.3561 +Problem: Cscope has a complicated way of giving an error message. +Solution: Use semsg(). (James McCoy, closes #9038) +Files: src/if_cscope.c + +Patch 8.2.3562 +Problem: Cannot add color names. +Solution: Add the v:colornames dictionary. (Drew Vogel, closes #8761) +Files: Filelist, READMEdir/README_extra.txt, nsis/gvim.nsi, + runtime/colors/README.txt, runtime/colors/lists/csscolors.vim, + runtime/colors/lists/default.vim, runtime/doc/eval.txt, + runtime/doc/gui_w32.txt, runtime/doc/message.txt, + runtime/doc/os_haiku.txt, runtime/doc/syntax.txt, + runtime/doc/usr_06.txt, src/Makefile, src/evalvars.c, + src/gui_haiku.cc, src/highlight.c, src/gui.c, src/job.c, + src/proto/highlight.pro, src/proto/term.pro, src/term.c, + src/vim.h, src/globals.h, src/errors.h, + src/testdir/test_highlight.vim + +Patch 8.2.3563 (after 8.2.3562) +Problem: Build failure with +eval but without GUI or +termguicolors +Solution: Adjust #ifdef. (John Marriott) +Files: src/highlight.c + +Patch 8.2.3564 +Problem: Invalid memory access when scrolling without a valid screen. +Solution: Do not set VALID_BOTLINE in w_valid. +Files: src/move.c, src/testdir/test_normal.vim + +Patch 8.2.3565 +Problem: Makefile dependencies are outdated. (Gary Johnson) +Solution: Run "make depend" and add missing dependencies. +Files: src/Makefile + +Patch 8.2.3566 +Problem: Build failure on old systems when using nano timestamp. +Solution: Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary + Johnson, closes #9054) +Files: src/vim.h + +Patch 8.2.3567 +Problem: CTRL-I in Insert mode is not tested +Solution: Add a test case. (Dominique Pellé, closes #8866) +Files: src/testdir/test_edit.vim + +Patch 8.2.3568 +Problem: Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter) +Solution: Run the test only with GTK. (Dominique Pellé, closes #9069) +Files: src/testdir/test_edit.vim + +Patch 8.2.3569 +Problem: Error for :let when vimrc is Vim 9 script. +Solution: Prepend :legacy in the code for converting arguments. (Christian + Brabandt, closes #9068, closes #9077) +Files: src/os_win32.c + +Patch 8.2.3570 +Problem: Test_very_large_count fails on 32bit systems. +Solution: Bail out when using 32 bit numbers. (closes #9072) +Files: src/testdir/test_put.vim + +Patch 8.2.3571 +Problem: Some unicode control characters are considered printable. +Solution: Make 0x2060 - 0x2069 not printable. +Files: src/mbyte.c + +Patch 8.2.3572 +Problem: Memory leak when closing window and using "multispace" in + 'listchars'. +Solution: Free the memory. (closes #9071) +Files: src/window.c, src/testdir/test_listchars.vim + +Patch 8.2.3573 +Problem: Cannot decide whether to skip test that fails with 64 bit ints. + (closes #9072) +Solution: Add v:sizeofint, v:sizeoflong and v:sizeofpointer. Improve the + check for multiply overflow. +Files: runtime/doc/eval.txt, src/vim.h, src/evalvars.c, src/register.c, + src/testdir/test_put.vim + +Patch 8.2.3574 (after 8.2.3573) +Problem: Divide by zero. +Solution: Don't check for overflow if multiplicand is zero. +Files: src/register.c + +Patch 8.2.3575 (after 8.2.3574) +Problem: Overflow check still fails when sizeof(int) == sizeof(long). +Solution: Use a float to check the result. +Files: src/register.c + +Patch 8.2.3576 +Problem: Some functions are not documented for use with a method. +Solution: Add examples. Fix that sign_unplacelist() only takes one + argument. (Sean Dewar, closes #9081) +Files: src/evalfunc.c, runtime/doc/eval.txt + +Patch 8.2.3577 (after 8.2.3574) +Problem: Overflow check fails with 32 bit ints. +Solution: Only test with 64 bit ints. +Files: src/testdir/test_put.vim + +Patch 8.2.3578 +Problem: Manipulating highlighting is complicated. +Solution: Add the hlget() and hlset() functions. (Yegappan Lakshmanan, + closes #9039) +Files: runtime/doc/eval.txt, runtime/doc/syntax.txt, + runtime/doc/usr_41.txt, runtime/doc/windows.txt, src/evalfunc.c, + src/highlight.c, src/proto/highlight.pro, + src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3579 +Problem: CI sometimes fails for MinGW. +Solution: Use backslashes in HandleSwapExists(). (Christian Brabandt, + closes #9078) +Files: src/testdir/runtest.vim + +Patch 8.2.3580 +Problem: gj does not move properly with a wide character. +Solution: Move one to the right. (Christian Brabandt, closes #8702) +Files: src/normal.c, src/testdir/test_normal.vim + +Patch 8.2.3581 +Problem: Reading character past end of line. +Solution: Correct the cursor column. +Files: src/ex_docmd.c, src/testdir/test_put.vim + +Patch 8.2.3582 +Problem: Reading uninitialized memory when giving spell suggestions. +Solution: Check that preword is not empty. +Files: src/spellsuggest.c, src/testdir/test_spell.vim + +Patch 8.2.3583 +Problem: The "gd" and "gD" commands do not update search stats. (Gary + Johnson) +Solution: Clear search stats. +Files: src/normal.c, src/testdir/test_search_stat.vim, + src/testdir/dumps/Test_searchstatgd_1.dump, + src/testdir/dumps/Test_searchstatgd_2.dump + +Patch 8.2.3584 +Problem: "verbose set efm" reports the location of the :compiler command. + (Gary Johnson) +Solution: Add the "-keepscript" argument to :command and use it when + defining CompilerSet. +Files: runtime/doc/map.txt, src/ex_cmds2.c, src/usercmd.c, src/ex_cmds.h, + src/testdir/test_compiler.vim + +Patch 8.2.3585 +Problem: Crash when passing float to "term_rows" in the options argument of + term_start(). (Virginia Senioria) +Solution: Bail out if the argument is not a number. (closes #9116) +Files: src/job.c, src/terminal.c, src/testdir/test_terminal.vim + +Patch 8.2.3586 (after 8.2.3584) +Problem: Command completion test fails. +Solution: Add new argument to expected output +Files: src/testdir/test_usercommands.vim + +Patch 8.2.3587 (after 8.2.3584) +Problem: Compiler test fails with backslash file separator. +Solution: Accept slash and backslash. +Files: src/testdir/test_compiler.vim + +Patch 8.2.3588 +Problem: Break statement is never reached. +Solution: Rely on return value of set_chars_option() not changing. + (closes #9103) +Files: src/optionstr.c + +Patch 8.2.3589 +Problem: Failure when the "term_rows" argument of term_start() is an + unusual value. +Solution: Limit to range of zero to 1000. (closes #9116) +Files: runtime/doc/terminal.txt, src/job.c, src/testdir/test_terminal.vim + +Patch 8.2.3590 +Problem: Test for v:colornames sometimes fails. (Dominique Pellé) +Solution: Check features. Clear v:colornames between tests. (Drew Vogel, + closes #9105, closes #9073) +Files: runtime/doc/eval.txt, src/highlight.c, src/proto/highlight.pro, + src/testdir/test_highlight.vim + +Patch 8.2.3591 +Problem: No event is triggered when closing a window. +Solution: Add the WinClosed event. (Naohiro Ono, closes #9110) +Files: runtime/doc/autocmd.txt, src/autocmd.c, + src/testdir/test_autocmd.vim, src/vim.h, src/window.c + +Patch 8.2.3592 +Problem: Test_hlset fails when terminal has many columns. +Solution: Set the number of columns to 80. (Dominique Pellé, closes #9101, + closes #9100) +Files: src/testdir/test_highlight.vim + +Patch 8.2.3593 +Problem: Directory is wrong after executing "lcd" with win_execute(). +Solution: Correct the directory when going back to the original window. + (closes #9132) +Files: src/evalwindow.c, src/window.c, src/proto/window.pro, + src/testdir/test_execute_func.vim + +Patch 8.2.3594 +Problem: Xxd code is a bit difficult to understand. +Solution: Move some lines to a separate function. (closes #9037) +Files: src/xxd/xxd.c + +Patch 8.2.3595 +Problem: Check for signed overflow might not work everywhere. +Solution: Limit to 32 bit int. (closes #9043, closes #9067) +Files: src/getchar.c + +Patch 8.2.3596 +Problem: Crash when using :pedit in Vim9 script. +Solution: Move check for arguments to after checking there are arguments. + (Yegappan Lakshmanan, closes #9134, closes #9135) +Files: src/popupwin.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3597 +Problem: Vim seems to hang when writing a very long text to a terminal + window. +Solution: Limit the amount of text based on 'termwinscroll'. (issue #9080) +Files: runtime/doc/options.txt, src/terminal.c + +Patch 8.2.3598 +Problem: RouterOS filetype is not recognized. +Solution: Add file and script patterns. (closes #9097) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3599 +Problem: Not all gdbinit files are recognized. +Solution: Add "gdbinit". (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3600 (after 8.2.3598) +Problem: Filetype test fails. +Solution: Add missing change. +Files: runtime/scripts.vim + +Patch 8.2.3601 +Problem: Check for overflow in put count does not work well. +Solution: Improve the overflow check. (Ozaki Kiichi, closes #9102) +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.3602 +Problem: Python3 test fails with Python 3.10 on MS-Windows. +Solution: Adjust the expected error. (Ken Takata, closes #9118) +Files: src/testdir/test_python3.vim + +Patch 8.2.3603 +Problem: Fish filetype not recognized. +Solution: Add a file pattern and match script line. (Doug Kearns) +Files: runtime/filetype.vim, runtime/scripts.vim, + src/testdir/test_filetype.vim + +Patch 8.2.3604 +Problem: Not all sudoers files are recognized. +Solution: Add a file pattern. (Doug Kearns, closes #1192) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3605 +Problem: Cannot clear and unlink a highlight group with hlset() in a + single call. +Solution: Add the "force" option. (Yegappan Lakshmanan, closes #9117) +Files: runtime/doc/eval.txt, src/highlight.c, + src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3606 +Problem: File missing from list of distributed files. +Solution: Add the file. +Files: Filelist + +Patch 8.2.3607 +Problem: GTK3 screen updating is slow. +Solution: Remove some of the GTK3-specific code. (closes #9052) +Files: src/gui.h, src/gui_gtk_x11.c + +Patch 8.2.3608 +Problem: Users who type "q:" instead of ":q" are confused. +Solution: Add an autocmd to give a message that explains this is the + command-line window. (Egor Zvorykin, closes #9146) +Files: runtime/defaults.vim, src/testdir/test_autocmd.vim, + src/testdir/test_cmdline.vim + +Patch 8.2.3609 +Problem: Internal error when ModeChanged is triggered when v:event is + already in use. +Solution: Save and restore v:event if needed. +Files: src/misc1.c, src/proto/misc1.pro, src/testdir/test_edit.vim, + src/insexpand.c, src/structs.h, src/register.c + +Patch 8.2.3610 +Problem: Crash when ModeChanged triggered too early. +Solution: Trigger ModeChanged after setting VIsual. +Files: src/normal.c, src/testdir/test_edit.vim + +Patch 8.2.3611 +Problem: Crash when using CTRL-W f without finding a file name. +Solution: Bail out when the file name length is zero. +Files: src/findfile.c, src/normal.c, src/testdir/test_visual.vim + +Patch 8.2.3612 +Problem: Using freed memory with regexp using a mark. +Solution: Get the line again after getting the mark position. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim + +Patch 8.2.3613 +Problem: :find test fails. +Solution: Put length check inside if block. +Files: src/findfile.c + +Patch 8.2.3614 +Problem: zindex of popup windows not used when redrawing popup menu. +Solution: Check the zindex when redrawing the popup menu. (closes #9129, + closes #9089) +Files: src/popupmenu.c, src/popupwin.c, src/proto/popupmenu.pro, + src/screen.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump, + src/testdir/dumps/Test_popupwin_popupmenu_masking_2.dump + +Patch 8.2.3615 +Problem: When re-formatting with an indent expression the first line of a + paragraph may get the wrong indent. (Martin F. Krafft) +Solution: Apply the correct indenting function for the first line. + (Christian Brabandt, closes #9150, closes #9056) +Files: src/textformat.c, src/testdir/test_indent.vim + +Patch 8.2.3616 +Problem: Arglist test does not clear the argument list consistently. +Solution: Call Reset_arglist(). (Shougo Matsushita, closes #9154) +Files: src/testdir/test_arglist.vim + +Patch 8.2.3617 +Problem: ":verbose pwd" does not mention 'autochdir' was applied. +Solution: Remember the last chdir was done by 'autochdir'. (issue #9142) +Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/window.c, + src/main.c, src/netbeans.c, src/os_win32.c, + src/testdir/test_autochdir.vim + +Patch 8.2.3618 +Problem: getcwd() is unclear about how 'autochdir' is used. +Solution: Update the help for getcwd(). Without any arguments always return + the actual current directory. (closes #9142) +Files: runtime/doc/eval.txt, src/filepath.c, src/testdir/test_cd.vim + +Patch 8.2.3619 +Problem: Cannot use a lambda for 'operatorfunc'. +Solution: Support using a lambda or partial. (Yegappan Lakshmanan, + closes #8775) +Files: runtime/doc/map.txt, runtime/doc/options.txt, src/ops.c, + src/option.c, src/optionstr.c, src/proto/ops.pro, + src/proto/option.pro, src/quickfix.c, src/testdir/test_normal.vim + +Patch 8.2.3620 +Problem: Memory leak reported in libtlib. +Solution: Call del_curterm() when cleaning up memory. Rename term.h to + termdefs.h to avoid a name clash. +Files: src/term.c, src/proto/term.pro, src/alloc.c, src/configure.ac, + src/auto/configure, src/config.h.in, src/Makefile, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, + src/term.h, src/termdefs.h + +Patch 8.2.3621 (after 8.2.3620) +Problem: Build failure. +Solution: Add missing change. +Files: src/vim.h + +Patch 8.2.3622 +Problem: "verbose pwd" shows confusing info when :lcd does not change + directory. +Solution: Clear last_chdir_reason also when the directory does not change. + (closes #9160) +Files: src/ex_docmd.c, src/testdir/test_autochdir.vim + +Patch 8.2.3623 +Problem: "$*" is expanded to "nonomatch". +Solution: Only add "set nonomatch" when using a csh-like shell. (Christian + Brabandt, closes #9159, closes #9153) +Files: src/os_unix.c, src/testdir/test_expand.vim + +Patch 8.2.3624 +Problem: When renaming a terminal buffer the status text is not updated. +Solution: Clear the cached status text when renaming a terminal buffer. + (closes #9162) +Files: src/buffer.c, src/terminal.c, src/proto/terminal.pro, + src/testdir/test_terminal.vim + +Patch 8.2.3625 +Problem: Illegal memory access when C-indenting. +Solution: Also set the cursor column. +Files: src/cindent.c, src/testdir/test_cindent.vim + +Patch 8.2.3626 +Problem: "au!" and "au! event" cannot be followed by another command as + documented. +Solution: When a bar is found set nextcmd. +Files: src/autocmd.c, src/testdir/test_autocmd.vim + +Patch 8.2.3627 +Problem: difficult to know where the text starts in a window. (Sergey + Vlasov) +Solution: Add the "textoff" entry in the result of getwininfo(). + (closes #9163) +Files: runtime/doc/eval.txt, src/evalwindow.c, + src/testdir/test_bufwintabinfo.vim + +Patch 8.2.3628 +Problem: Looking up terminal colors is a bit slow. +Solution: Cache the terminal colors. (closes #9130, closes #9058) +Files: src/highlight.c, src/libvterm/include/vterm.h, src/option.c, + src/optionstr.c, src/popupwin.c, src/proto/terminal.pro, + src/structs.h, src/terminal.c, src/window.c, + src/testdir/test_terminal3.vim, + src/testdir/dumps/Test_terminal_color_MyTermCol.dump, + src/testdir/dumps/Test_terminal_color_MyTermCol_over_Terminal.dump, + src/testdir/dumps/Test_terminal_color_MyWinCol.dump, + src/testdir/dumps/Test_terminal_color_MyWinCol_over_group.dump, + src/testdir/dumps/Test_terminal_color_Terminal.dump, + src/testdir/dumps/Test_terminal_color_gui_MyTermCol.dump, + src/testdir/dumps/Test_terminal_color_gui_MyWinCol.dump, + src/testdir/dumps/Test_terminal_color_gui_Terminal.dump, + src/testdir/dumps/Test_terminal_color_gui_transp_MyTermCol.dump, + src/testdir/dumps/Test_terminal_color_gui_transp_MyWinCol.dump, + src/testdir/dumps/Test_terminal_color_gui_transp_Terminal.dump, + src/testdir/dumps/Test_terminal_color_transp_MyTermCol.dump, + src/testdir/dumps/Test_terminal_color_transp_MyWinCol.dump, + src/testdir/dumps/Test_terminal_color_transp_Terminal.dump, + src/testdir/dumps/Test_terminal_popup_MyPopupHlCol.dump, + src/testdir/dumps/Test_terminal_popup_MyTermCol_over_Terminal.dump, + src/testdir/dumps/Test_terminal_popup_MyWinCol.dump, + src/testdir/dumps/Test_terminal_popup_MyWinCol_over_group.dump, + src/testdir/dumps/Test_terminal_popup_gui_MyPopupHlCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_MyTermCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_MyWinCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_Terminal.dump, + src/testdir/dumps/Test_terminal_popup_gui_transp_MyPopupHlCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_transp_MyTermCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_transp_MyWinCol.dump, + src/testdir/dumps/Test_terminal_popup_gui_transp_Terminal.dump, + src/testdir/dumps/Test_terminal_popup_transp_MyPopupHlCol.dump, + src/testdir/dumps/Test_terminal_popup_transp_MyTermCol.dump, + src/testdir/dumps/Test_terminal_popup_transp_MyWinCol.dump, + src/testdir/dumps/Test_terminal_popup_transp_Terminal.dump, + src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump, + src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump + +Patch 8.2.3629 +Problem: Command completion in cmdline window uses global user commands, + not local commands for the window where it was opened from. +Solution: Use local commands. (closes #9168) +Files: src/ex_getln.c, src/proto/ex_getln.pro, src/evalvars.c, + src/usercmd.c, src/testdir/test_ins_complete.vim + +Patch 8.2.3630 +Problem: Printf() with %S does not handle multi-byte correctly. +Solution: Count cells instead of bytes. (closes #9169, closes #7486) +Files: src/strings.c, src/testdir/test_expr.vim + +Patch 8.2.3631 +Problem: "syntax enable" does not work properly in Vim9 context. +Solution: Also handle Vim9 context. (closes #9161) +Files: src/syntax.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3632 +Problem: GTK3: undercurl does not get removed properly. +Solution: Set the cairo cursor first. (closes #9170) +Files: src/gui_gtk_x11.c + +Patch 8.2.3633 +Problem: Vim9: line number of lambda is off by one. +Solution: Add one to the line number. (closes #9083) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3634 +Problem: Error for already defined function uses wrong line number. +Solution: Set SOURCING_LNUM before giving the error message. (closes #9085) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3635 +Problem: GTK: composing underline does not show. +Solution: Include composing character in pango call. A few more + optimizations for ligatures. (Dusan Popovic, closes #9171, + closes #9147) +Files: src/gui_gtk_x11.c + +Patch 8.2.3636 +Problem: Coverity warns for unreachable code. +Solution: Remove unreachable else block. +Files: src/gui_gtk_x11.c + +Patch 8.2.3637 +Problem: Typos in test files. +Solution: Correct the typos. (Dominique Pellé, closes #9175) +Files: src/testdir/runtest.vim, src/testdir/test_debugger.vim, + src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, + src/testdir/test_excmd.vim, src/testdir/test_flatten.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, + src/testdir/test_options.vim, src/testdir/test_python2.vim, + src/testdir/test_python3.vim, src/testdir/test_quickfix.vim, + src/testdir/test_recover.vim, src/testdir/test_spellfile.vim, + src/testdir/test_syntax.vim, src/testdir/test_termcodes.vim, + src/testdir/test_textobjects.vim, src/testdir/test_trycatch.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim + +Patch 8.2.3638 +Problem: getcompletion() always passes zero as position to custom + completion function. +Solution: Pass the pattern length. (closes #9173) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.3639 (after 8.2.2922) +Problem: Line commented out accidentally. +Solution: Uncomment. (Volodymyr Kot, closes #9172) +Files: src/main.c + +Patch 8.2.3640 +Problem: Freeze when calling term_wait() in a close callback. +Solution: Set a "closing" flag to tell term_wait() to return. (closes #9152) +Files: src/channel.c, src/terminal.c, src/proto/terminal.pro, + src/testdir/test_terminal.vim + +Patch 8.2.3641 +Problem: Xxd code has duplicate expressions. +Solution: Refactor to avoid duplication. (closes #9185) +Files: src/xxd/xxd.c + +Patch 8.2.3642 +Problem: List of distributed files is outdated. +Solution: Rename term.h to termdefs.h. +Files: Filelist + +Patch 8.2.3643 +Problem: Header for source file is outdated. +Solution: Make the header more accurate. (closes #9186) +Files: src/map.c, src/getchar.c + +Patch 8.2.3644 +Problem: Count for 'operatorfunc' in Visual mode is not redone. +Solution: Add the count to the redo buffer. (closes #9174) +Files: src/normal.c, src/proto/normal.pro, src/ops.c, + src/testdir/test_normal.vim + +Patch 8.2.3645 +Problem: Vim9: The "no effect" error is not given for all registers. +Solution: Include any character following '@'. (closes #8779) +Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3646 +Problem: Using <sfile> in a function gives an unexpected result. +Solution: Give an error in a Vim9 function. (issue #9189) +Files: src/scriptfile.c, src/errors.h, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3647 +Problem: GTK: when using ligatures the cursor is drawn wrong. +Solution: Clear more characters when ligatures are used. (Dusan Popovic, + closes #9190) +Files: src/gui.c + +Patch 8.2.3648 +Problem: "verbose pwd" is incorrect after dropping files on Vim. +Solution: Set the chdir reason to "drop". +Files: src/gui.c + +Patch 8.2.3649 +Problem: Vim9: error for variable declared in while loop. +Solution: Do not keep the first variable. (closes #9191) +Files: src/ex_eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3650 +Problem: Vim9: for loop variable can be a list member. +Solution: Check for valid variable name. (closes #9179) +Files: src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c, + src/proto/evalvars.pro, src/testdir/test_vim9_script.vim + +Patch 8.2.3651 +Problem: Vim9: no error for :lock or :unlock with unknown variable. +Solution: Give an error. (closes #9188) +Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3652 +Problem: Can only get text properties one line at a time. +Solution: Add options to prop_list() to use a range of lines and filter by + types. (Yegappan Lakshmanan, closes #9138) +Files: runtime/doc/textprop.txt, src/textprop.c, + src/testdir/test_textprop.vim + +Patch 8.2.3653 +Problem: Terminal ANSI colors may be wrong. +Solution: Initialize the color type. (closes #9198, closes #9197) +Files: src/terminal.c + +Patch 8.2.3654 +Problem: GTK: a touch-drag does not update the selection. +Solution: Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196, + closes #9194) +Files: src/gui_gtk_x11.c + +Patch 8.2.3655 +Problem: Compiler warning for using size_t for int. +Solution: Add a type cast. (Mike Williams, closes #9199) +Files: src/vim9compile.c + +Patch 8.2.3656 +Problem: Vim9: no error for an environment variable by itself. +Solution: Give a "without effect" error. (closes #9166) +Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3657 +Problem: Vim9: debug text misses one line of return statement. +Solution: Add a line when not at a debug instruction. (closes #9137) +Files: src/vim9execute.c, src/testdir/test_debugger.vim + +Patch 8.2.3658 +Problem: Duplicate code in xxd. +Solution: Merge duplicated code. Add more tests. (closes #9192) +Files: src/xxd/xxd.c, src/testdir/test_xxd.vim + +Patch 8.2.3659 +Problem: Integer overflow with large line number. +Solution: Check for overflow. (closes #9202) +Files: src/errors.h, src/ex_docmd.c, src/testdir/test_excmd.vim + src/normal.c, src/testdir/test_normal.vim + +Patch 8.2.3660 (after 8.2.3659) +Problem: Overflow check uses wrong number. +Solution: Divide by ten. +Files: src/normal.c + +Patch 8.2.3661 (after 8.2.3659) +Problem: Test for put with large count fails. +Solution: Adjust the counts in the test. +Files: src/testdir/test_put.vim + +Patch 8.2.3662 +Problem: Illegal memory access if malloc() fails. +Solution: Check 'foldmethod' is not empty. (closes #9207) +Files: src/fold.c + +Patch 8.2.3663 +Problem: Using %S in printf() does not work correctly. +Solution: Fix the problem and add more tests. (closes #9208) +Files: src/strings.c, src/testdir/test_expr.vim + +Patch 8.2.3664 +Problem: Cannot adjust sign highlighting for 'cursorline'. +Solution: Add CursorLineSign and CursorLineFold highlight groups. + (Gregory Anders, closes #9201) +Files: runtime/doc/sign.txt, runtime/doc/syntax.txt, src/drawline.c, + src/highlight.c, src/optiondefs.h, src/popupwin.c, + src/proto/sign.pro, src/sign.c, src/structs.h, src/vim.h, + src/testdir/test_signs.vim + +Patch 8.2.3665 +Problem: Cannot use a lambda for 'tagfunc'. +Solution: Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204) +Files: runtime/doc/options.txt, src/buffer.c, src/option.c, + src/optionstr.c, src/proto/tag.pro, src/structs.h, src/tag.c, + src/testdir/test_tagfunc.vim + +Patch 8.2.3666 +Problem: Libvterm is outdated. +Solution: Include patches from revision 769 to revision 789. +Files: Filelist, src/libvterm/Makefile, src/libvterm/doc/seqs.txt, + src/libvterm/include/vterm.h, src/libvterm/src/mouse.c, + src/libvterm/src/parser.c, src/libvterm/src/state.c, + src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h, + src/libvterm/t/02parser.test, src/libvterm/t/17state_mouse.test, + src/libvterm/t/29state_fallback.test, + src/libvterm/t/40state_selection.test, src/libvterm/t/harness.c, + src/libvterm/t/run-test.pl, src/libvterm/vterm.pc.in, + src/terminal.c + +Patch 8.2.3667 +Problem: Building libvterm fails with MSVC. +Solution: Don't use C99 construct. +Files: src/libvterm/src/state.c + +Patch 8.2.3668 +Problem: Messages may be corrupted. +Solution: Use another buffer instead of IObuff. (Yegappan Lakshmanan, + closes #9195) +Files: src/highlight.c, src/testdir/test_highlight.vim + +Patch 8.2.3669 +Problem: Buffer overflow with long help argument. +Solution: Use snprintf(). +Files: src/help.c, src/testdir/test_help.vim + +Patch 8.2.3670 +Problem: Error checks repeated several times. +Solution: Move the checks to functions. (closes #9213) +Files: src/xxd/xxd.c + +Patch 8.2.3671 +Problem: Restarting Insert mode in prompt buffer too often when a callback + switches windows and comes back. (Sean Dewar) +Solution: Do not set "restart_edit" when already in Insert mode. + (closes #9212) +Files: src/window.c, src/testdir/test_prompt_buffer.vim + +Patch 8.2.3672 (after 8.2.3670) +Problem: Build failure with unsigned char. +Solution: Use int instead of char. +Files: src/xxd/xxd.c + +Patch 8.2.3673 +Problem: Crash when allocating signal stack fails. +Solution: Only using sourcing info when available. (closes #9215) +Files: src/globals.h, src/message.c + +Patch 8.2.3674 +Problem: When ml_get_buf() fails it messes up IObuff. +Solution: Return a local pointer. (closes #9214) +Files: src/memline.c + +Patch 8.2.3675 +Problem: Using freed memory when vim_strsave() fails. +Solution: Clear "last_sourcing_name". Check for msg_source() called + recursively. (closes #8217) +Files: src/message.c + +Patch 8.2.3676 +Problem: Unused runtime file. +Solution: Remove rgb.txt. +Files: runtime/rgb.txt + +Patch 8.2.3677 +Problem: After a put the '] mark is on the last byte of a multi-byte + character. +Solution: Move it to the first byte. (closes #9047) +Files: src/register.c, src/testdir/test_put.vim + +Patch 8.2.3678 (after 8.2.3677) +Problem: Illegal memory access. +Solution: Ignore changed indent when computing byte offset. +Files: src/register.c + +Patch 8.2.3679 +Problem: objc file detected as Octave. (Antony Lee) +Solution: Detect objc by preprocessor lines. (Doug Kearns, closes #9223, + closes #9220) +Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim + +Patch 8.2.3680 +Problem: Repeated code in xxd. +Solution: Change exit_on_ferror() to getc_or_die(). (closes #9226) +Files: src/xxd/xxd.c + +Patch 8.2.3681 +Problem: Cannot drag popup window after click on a status line. (Sergey + Vlasov) +Solution: Reset on_status_line. (closes #9221) +Files: src/mouse.c, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_drag_04.dump + +Patch 8.2.3682 +Problem: Vim9: assigning to a script variable drops the required type. +Solution: Lookup the type of the variable and use it. (closes #9219) +Files: src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3683 +Problem: Vim9: cannot use `=expr` in :...do commands. +Solution: Add EX_EXPAND to the commands. (closes #9232) +Files: src/ex_cmds.h, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3684 +Problem: Blockwise insert does not handle autoindent properly. +Solution: Adjust text column for indent. (closes #9229) +Files: src/ops.c, src/testdir/test_blockedit.vim + +Patch 8.2.3685 +Problem: Visual Studio project files are not recognized. +Solution: Use the xml file type. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3686 +Problem: Filetype detection often mixes up Forth and F#. +Solution: Add a function to inspect the file contents. (Doug Kearns) +Files: runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt, + runtime/doc/syntax.txt, runtime/filetype.vim, runtime/scripts.vim, + src/testdir/test_filetype.vim + +Patch 8.2.3687 +Problem: Blockwise insert does not handle autoindent properly when tab is + inserted. +Solution: Adjust text column for indent before computing column. + (closes #9229) +Files: src/ops.c, src/testdir/test_blockedit.vim + +Patch 8.2.3688 +Problem: The window title is not updated when dragging the scrollbar. +Solution: Call maketitle(). (Christian Brabandt, closes #9238, closes #5383) +Files: src/gui.c + +Patch 8.2.3689 +Problem: ex_let_one() is too long. +Solution: Split into multiple functions. +Files: src/evalvars.c + +Patch 8.2.3690 +Problem: Vim9: "filter #pat# cmd" does not work. +Solution: Do not see #pat# as a comment. +Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3691 +Problem: Build failure with small features. +Solution: Add #ifdef. (Dominique Pellé) +Files: src/gui.c + +Patch 8.2.3692 +Problem: Vim9: cannot use :func inside a :def function. +Solution: Make it work. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h, + src/structs.h, src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3693 +Problem: Coverity warns for possibly using a NULL pointer. +Solution: Check for NULL and give an error. +Files: src/vim9execute.c, src/errors.h + +Patch 8.2.3694 +Problem: Cannot use quotes in the count of an Ex command. +Solution: Add getdigits_quoted(). Give an error when misplacing a quote in + a range. (closes #9240) +Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, + src/testdir/test_usercommands.vim + +Patch 8.2.3695 +Problem: Confusing error for missing key. +Solution: Use the actual key for the error. (closes #9241) +Files: src/eval.c, src/testdir/test_listdict.vim + +Patch 8.2.3696 +Problem: Vim9: error for invalid assignment when skipping. +Solution: Do not check white space when skipping. (closes #9243) +Files: src/evalvars.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3697 +Problem: Cannot drag a popup without a border. +Solution: Add the "dragall" option. (closes #9218) +Files: runtime/doc/popup.txt, src/mouse.c, src/popupwin.c, src/vim.h, + src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_drag_05.dump, + src/testdir/dumps/Test_popupwin_drag_06.dump + +Patch 8.2.3698 +Problem: Match highlighting continues over breakindent. +Solution: Stop before the end column. (closes #9242) +Files: src/match.c, src/proto/match.pro, src/drawline.c, + src/testdir/test_match.vim, + src/testdir/dumps/Test_match_linebreak.dump + +Patch 8.2.3699 +Problem: The +title feature adds a lot of #ifdef but little code. +Solution: Graduate the +title feature. +Files: src/feature.h, src/alloc.c, src/arglist.c, src/autocmd.c, + src/buffer.c, src/bufwrite.c, src/change.c, src/drawscreen.c, + src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui.c, + src/gui_gtk_x11.c, src/if_xcmdsrv.c, src/locale.c, src/main.c, + src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c, + src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, + src/regexp.c, src/term.c, src/ui.c, src/version.c, src/window.c, + src/globals.h, src/option.h, src/optiondefs.h, + runtime/doc/options.txt, runtime/doc/various.txt + +Patch 8.2.3700 +Problem: Text property highlighting continues over breakindent. +Solution: Stop before the end column. (closes #9242) +Files: src/drawline.c, src/testdir/test_textprop.vim, + src/testdir/dumps/Test_prop_linebreak.dump + +Patch 8.2.3701 +Problem: Vim9: invalid LHS is not possible. +Solution: Remove unreachable error message. +Files: src/vim9compile.c + +Patch 8.2.3702 +Problem: First key in dict is seen as curly expression and fails. +Solution: Ignore failure of curly expression. (closes #9247) +Files: src/typval.c, src/dict.c, src/testdir/test_listdict.vim + +Patch 8.2.3703 (after 8.2.3686) +Problem: Most people call F# "fsharp" and not "fs". +Solution: Rename filetype "fs" to "fsharp". +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.3704 +Problem: Vim9: cannot use a list declaration in a :def function. +Solution: Make it work. +Files: runtime/doc/vim9.txt, src/vim9compile.c, src/errors.h, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3705 +Problem: Cannot pass a lambda name to function() or funcref(). (Yegappan + Lakshmanan) +Solution: Handle a lambda name differently. +Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, + src/testdir/test_expr.vim + +Patch 8.2.3706 (after 8.2.3700) +Problem: Text property highlighting is used on Tab. +Solution: Only set in_linebreak when not on a Tab. (closes #9242) +Files: src/drawline.c, src/testdir/test_textprop.vim, + src/testdir/dumps/Test_prop_after_tab.dump + +Patch 8.2.3707 +Problem: Vim9: constant expression of elseif not recognized. +Solution: Set instruction count before generating the expression. +Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3708 (after 8.2.3707) +Problem: Vim9: test fails with different error. +Solution: Correct the error number. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.3709 +Problem: Vim9: backtick expression expanded when not desired. +Solution: Only expand a backtick expression for commands that expand their + argument. Remove a few outdated TODO comments. +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3710 +Problem: Vim9: backtick expression expanded for :global. +Solution: Check the following command. +Files: runtime/doc/vim9.txt, src/vim9compile.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3711 +Problem: Vim9: memory leak when compiling :elseif fails. +Solution: Cleanup ppconst. +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3712 +Problem: Cannot use Vim9 lambda for 'tagfunc'. +Solution: Make it work, add more tests. (Yegappan Lakshmanan, closes #9250) +Files: runtime/doc/options.txt, src/insexpand.c, src/option.c, + src/testdir/test_tagfunc.vim + +Patch 8.2.3713 +Problem: MS-Windows: No error message if vimgrep pattern is not matching. +Solution: Give an error message. (Christian Brabandt, closes #9245, + closes #8762) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.3714 +Problem: Some unused assignments and ugly code in xxd. +Solution: Leave out assignments. Use marcro for fprintf(). (closes #9246) +Files: src/xxd/xxd.c + +Patch 8.2.3715 +Problem: Vim9: valgrind reports spurious problems for a test. +Solution: Move the test to the set that is known to fail. +Files: src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_fails.vim + +Patch 8.2.3716 +Problem: Vim9: range without a command is not compiled. +Solution: Add the ISN_EXECRANGE byte code. +Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c, + src/vim9execute.c, src/vim9.h, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3717 +Problem: Vim9: error for constant list size is only given at runtime. +Solution: Give the error at compile time if possible. +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3718 +Problem: Compiler warns for unused variable without the +textprop feature. + (John Marriott) +Solution: Adjust #ifdefs. +Files: src/drawline.c + +Patch 8.2.3719 +Problem: MS-Windows: test sometimes runs into existing swap file. +Solution: Use a different file name. +Files: src/testdir/test_buffer.vim + +Patch 8.2.3720 +Problem: Vim9: Internal error when invoking closure in legacy context. +Solution: Give a more appropriate error message. (closes #9251) +Files: src/errors.h, src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3721 +Problem: Using memory freed by losing the clipboard selection. (Dominique + Pellé) +Solution: Check y_array is still valid after calling changed_lines(). + (closes #9253) +Files: src/errors.h, src/register.c + +Patch 8.2.3722 +Problem: Amiga: superfluous messages for freeing lots of yanked text. +Solution: Assume that the machine isn't that slow these days. +Files: src/register.c + +Patch 8.2.3723 +Problem: When using 'linebreak' a text property starts too early. +Solution: Decrement "bcol" when looking for property start. (closes #9242) +Files: src/drawline.c, src/testdir/test_textprop.vim, + src/testdir/dumps/Test_prop_after_linebreak.dump + +Patch 8.2.3724 +Problem: Build error for missing error message in small build. +Solution: Correct #ifdef. +Files: src/errors.h + +Patch 8.2.3725 +Problem: Cannot use a lambda for 'completefunc' and 'omnifunc'. +Solution: Implement lambda support. (Yegappan Lakshmanan, closes #9257) +Files: runtime/doc/options.txt, src/buffer.c, src/insexpand.c, + src/option.c, src/optionstr.c, src/proto/insexpand.pro, + src/proto/tag.pro, src/proto/userfunc.pro, src/structs.h, + src/tag.c, src/userfunc.c, src/testdir/test_ins_complete.vim, + src/testdir/test_tagfunc.vim + +Patch 8.2.3726 +Problem: README file in a config directory gets wrong filetype. +Solution: Match README before patterns that match everything in a directory. +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3727 +Problem: In a gnome terminal keys are recognized as mouse events. +Solution: Only recognize DEC mouse events when four numbers are following. + (closes #9256) +Files: src/term.c, src/testdir/test_termcodes.vim + +Patch 8.2.3728 +Problem: Internal error when passing range() to list2blob(). +Solution: Materialize the list first. (closes #9262) +Files: src/blob.c, src/testdir/test_blob.vim + +Patch 8.2.3729 +Problem: No support for squirrels. +Solution: Recognize nuts. (closes #9259) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3730 +Problem: "/etc/Muttrc.d/README" gets filetype muttrc. +Solution: Move the Muttrc.d pattern down, add exception for *.rc files. +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3731 +Problem: "set! termcap" shows codes in one column, but not keys. +Solution: Also use one column for keys. (closes #9258) +Files: src/option.c, src/term.c, src/proto/term.pro, + src/testdir/test_set.vim + +Patch 8.2.3732 (after 8.2.3731) +Problem: "set! termcap" test fails. +Solution: Account for keys without a t_xx entry. +Files: src/testdir/test_set.vim + +Patch 8.2.3733 +Problem: Vim9: using "legacy" before range does not work. +Solution: Skip over range before parsing command. (closes #9270) +Files: src/vim9compile.c, src/usercmd.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.3734 +Problem: Vim9: crash when no pattern match found. +Solution: Check for error. +Files: src/vim9execute.c + +Patch 8.2.3735 +Problem: Cannot use a lambda for 'imactivatefunc'. +Solution: Add lambda support for 'imactivatefunc' and 'imstatusfunc'. + (Yegappan Lakshmanan, closes #9275) +Files: runtime/doc/options.txt, src/alloc.c, src/gui_xim.c, + src/optionstr.c, src/proto/gui_xim.pro, + src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim + +Patch 8.2.3736 +Problem: Test fails without the channel feature. (Dominique Pellé) +Solution: Source the check.vim script. (closes #9277) +Files: src/testdir/test_vim9_fails.vim + +Patch 8.2.3737 +Problem: Test fails without the 'autochdir' option. +Solution: Check that the option is available. (Dominique Pellé, closes #9272) +Files: src/testdir/test_cd.vim + +Patch 8.2.3738 +Problem: Screen is cleared when a FocusLost autocommand triggers. +Solution: Do not redraw when at the hit-enter or more prompt. (closes #9274) +Files: src/misc1.c + +Patch 8.2.3739 +Problem: In wrong directory when using win_execute() with 'acd' set. +Solution: Restore the directory when returning to the window. (closes #9276) +Files: src/window.c, src/testdir/test_autochdir.vim + +Patch 8.2.3740 +Problem: Memory left allocated on exit when using Tcl. +Solution: Call Tcl_Finalize(). +Files: src/if_tcl.c, src/proto/if_tcl.pro, src/alloc.c + +Patch 8.2.3741 +Problem: Using freed memory in open command. +Solution: Make a copy of the current line. +Files: src/ex_docmd.c, src/testdir/test_ex_mode.vim + +Patch 8.2.3742 +Problem: Dec mouse test fails without gnome terminfo entry. +Solution: Check if there is a gnome entry. Also fix 'acd' test on + MS-Windows. (Ozaki Kiichi, closes #9282) +Files: src/testdir/test_termcodes.vim, src/testdir/test_autochdir.vim + +Patch 8.2.3743 +Problem: ":sign" can add a highlight group without a name. +Solution: Give an error if the group name is missing. (closes #9280) +Files: src/sign.c, src/errors.h, src/testdir/test_signs.vim + +Patch 8.2.3744 +Problem: E854 is not tested; some spelling suggestions are not tested. +Solution: Add a couple of tests. (Dominique Pellé, closes #9279) +Files: src/testdir/test_options.vim, src/testdir/test_spell.vim + +Patch 8.2.3745 +Problem: Autochdir test fails without the +channel feature. +Solution: Remove the ch_logfile() call. (Dominique Pellé, closes #9281) +Files: src/testdir/test_autochdir.vim + +Patch 8.2.3746 +Problem: Cannot disassemble function starting with "debug" or "profile". +Solution: Check for white space following. (closes #9273) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3747 (after 8.2.3743) +Problem: Cannot remove highlight from an existing sign. (James McCoy) +Solution: Only reject empty argument for a new sign. +Files: src/sign.c, src/testdir/test_signs.vim + +Patch 8.2.3748 (after 8.2.3747) +Problem: Giving an error for an empty sign argument breaks a plugin. +Solution: Do not give an error. +Files: src/sign.c, src/errors.h, src/testdir/test_signs.vim + +Patch 8.2.3749 +Problem: Error messages are everywhere. +Solution: Move more error messages to errors.h and adjust the names. +Files: src/errors.h, src/regexp_bt.c, src/regexp.c, src/regexp_nfa.c, + src/globals.h, src/memfile.c, src/tag.c, src/getchar.c, + src/bufwrite.c, src/cmdexpand.c + +Patch 8.2.3750 +Problem: Error messages are everywhere. +Solution: Move more error messages to errors.h and adjust the names. +Files: src/globals.h, src/errors.h, src/blob.c, src/buffer.c, + src/channel.c, src/ex_docmd.c, src/job.c, src/list.c, src/mark.c, + src/misc1.c, src/os_unix.c, src/popupwin.c, src/register.c, + src/session.c, src/spellfile.c, src/term.c, src/userfunc.c + +Patch 8.2.3751 +Problem: Cannot assign a lambda to an option that takes a function. +Solution: Automatically convert the lambda to a string. (Yegappan + Lakshmanan, closes #9286) +Files: runtime/doc/options.txt, src/eval.c, src/proto/eval.pro, + src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, + src/option.c, src/option.h, src/optiondefs.h, + src/proto/option.pro, src/spell.c, src/typval.c, + src/vim9compile.c, src/testdir/test_iminsert.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim + +Patch 8.2.3752 +Problem: Build error when using Photon GUI. +Solution: Adjust #ifdef. (closes #9288) +Files: src/beval.c + +Patch 8.2.3753 +Problem: Vim9: function unreferenced while called is never deleted. +Solution: Delete a function when no longer referenced. +Files: src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro + +Patch 8.2.3754 (after 8.2.3615) +Problem: Undesired changing of the indent of the first formatted line. +Solution: Do not indent the first formatted line. +Files: src/textformat.c, src/testdir/test_indent.vim + +Patch 8.2.3755 +Problem: Coverity warns for using a buffer in another scope. +Solution: Declare the buffer in a common scope. +Files: src/evalvars.c + +Patch 8.2.3756 +Problem: might crash when callback is not valid. +Solution: Check for valid callback. (Yegappan Lakshmanan, closes #9293) +Files: src/insexpand.c, src/option.c, src/tag.c, src/job.c, + src/userfunc.c, src/testdir/test_iminsert.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim + +Patch 8.2.3757 +Problem: An overlong highlight group name is silently truncated. +Solution: Give an error if the name is too long. (closes #9289) +Files: src/errors.h, src/highlight.c, src/testdir/test_highlight.vim + +Patch 8.2.3758 +Problem: Options that take a function insufficiently tested. +Solution: Add additional tests and enhance existing tests. (Yegappan + Lakshmanan, closes #9298) +Files: src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, + src/testdir/test_tagfunc.vim + +Patch 8.2.3759 +Problem: Quickfix buffer becomes hidden while still in a window. +Solution: Check if the closed window is the last window showing the quickfix + buffer. (Yegappan Lakshmanan, closes #9303, closes #9300) +Files: src/quickfix.c, src/testdir/test_quickfix.vim, src/window.c + +Patch 8.2.3760 +Problem: Not automatically handling gnome terminal mouse like xterm. +Solution: Default 'ttymouse' to "xterm" and recognize Focus events. + (issue #9296) +Files: src/os_unix.c + +Patch 8.2.3761 +Problem: Focus change is not passed on to a terminal window. +Solution: If the current window is a terminal and focus events are enabled + send a focus event escape sequence to the terminal. +Files: src/ui.c, src/terminal.c, src/proto/terminal.pro, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_focus_1.dump, + src/testdir/dumps/Test_terminal_focus_2.dump + +Patch 8.2.3762 +Problem: If the quickfix buffer is wiped out getqflist() still returns its + number. +Solution: Use zero if the buffer is no longer present. (Yegappan Lakshmanan, + closes #9306) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.2.3763 +Problem: When editing the command line a FocusLost callback may cause the + screen to scroll up. +Solution: Do not redraw at the last line but at the same place where the + command line was before. (closes #9295) +Files: src/ex_getln.c, src/ui.c, src/beval.c, src/channel.c, + src/drawscreen.c, src/proto/drawscreen.pro, src/job.c, + src/popupwin.c, src/sound.c, src/terminal.c, src/time.c, + src/testdir/test_terminal.vim, + src/testdir/dumps/Test_terminal_focus_1.dump, + src/testdir/dumps/Test_terminal_focus_2.dump, + src/testdir/dumps/Test_terminal_focus_3.dump + +Patch 8.2.3764 +Problem: Cannot see any text when window was made zero lines or zero + columns. +Solution: Ensure there is at least one line and column. (fixes #9307) +Files: src/window.c, src/proto/window.pro, src/normal.c, src/edit.c, + src/testdir/test_window_cmd.vim + +Patch 8.2.3765 +Problem: Vim9: cannot use a lambda for 'opfunc' and others. +Solution: Convert the lambda to a string. +Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, + src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3766 +Problem: Converting a funcref to a string leaves out "g:", causing the + meaning of the name depending on the context. +Solution: Prepend "g:" for a global function. +Files: src/eval.c, src/testdir/test_functions.vim + +Patch 8.2.3767 (after 8.2.3766) +Problem: Crash when using NULL partial. +Solution: Check for NULL. +Files: src/eval.c + +Patch 8.2.3768 +Problem: timer_info() has the wrong repeat value in a timer callback. + (Sergey Vlasov) +Solution: Do not add one to the repeat value when in the callback. + (closes #9294) +Files: src/time.c, src/testdir/test_timers.vim + +Patch 8.2.3769 +Problem: Zig files are not recognized. +Solution: Add *.zig. (Gregory Anders, closes #9313) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3770 +Problem: New compiler warnings from clang-12 and clang-13. +Solution: Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314) +Files: .github/workflows/ci.yml, ci/config.mk.clang-12.sed, + src/os_unix.c, src/spellfile.c + +Patch 8.2.3771 +Problem: Vim9: accessing freed memory when checking type. +Solution: Make a copy of a function type. +Files: src/structs.h, src/evalvars.c, src/vim9script.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.3772 +Problem: Timer info test fails on slow machine. +Solution: Use WaitForAssert(). +Files: src/testdir/test_timers.vim + +Patch 8.2.3773 +Problem: Wrong window size when a modeline changes 'columns' and there is + more than one tabpage. (Michael Soyka) +Solution: Adjust the frames of all tabpages. (closes #9315) +Files: src/window.c + +Patch 8.2.3774 (after 8.2.3773) +Problem: Test for command line height fails. +Solution: Use another way to handle window size change. +Files: src/structs.h, src/window.c + +Patch 8.2.3775 +Problem: Vim9: lambda compiled without outer context when debugging. +Solution: When compiling a lambda for debugging also compile it without. + (closes #9302) +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3776 +Problem: When a tags file line is long a tag may not be found. +Solution: When increasing the buffer size read the same line again. +Files: src/tag.c, src/testdir/test_taglist.vim + +Patch 8.2.3777 +Problem: Spell file write error not checked. +Solution: Check writing the prefix conditions. (Bjorn Linse, closes #9323) +Files: src/spellfile.c + +Patch 8.2.3778 +Problem: Lambda debug test fails in some configurations. +Solution: Check feature in a legacy function. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.3779 +Problem: Using freed memory when defining a user command from a user + command. +Solution: Do not use the command pointer after executing the command. + (closes #9318) +Files: src/usercmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.3780 +Problem: ":cd" works differently on MS-Windows. +Solution: Add the 'cdhome' option. (closes #9324) +Files: runtime/doc/editing.txt, runtime/doc/options.txt, + runtime/doc/quickref.txt, runtime/optwin.vim, src/ex_docmd.c, + src/option.h, src/optiondefs.h, src/testdir/runtest.vim, + src/testdir/test_options.vim + +Patch 8.2.3781 +Problem: The option window script is outdated. +Solution: Add several changes. +Files: runtime/optwin.vim + +Patch 8.2.3782 +Problem: Vim9: no error if a function shadows a script variable. +Solution: Check the function doesn't shadow a variable. (closes #9310) +Files: src/userfunc.c, src/evalvars.c, src/vim.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.3783 +Problem: Confusing error for using a variable as a function. +Solution: If a function is not found but there is a variable, give a more + useful error. (issue #9310) +Files: src/eval.c, src/userfunc.c, src/proto/userfunc.pro, + src/structs.h, src/vim9execute.c, src/testdir/test_functions.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.3784 +Problem: The help for options is outdated. +Solution: Include all the recent changes. +Files: runtime/doc/options.txt + +Patch 8.2.3785 +Problem: Running CI on macOS with gcc is not useful. +Solution: Only use clang. (Ozaki Kiichi, closes #9326) Also build with + normal features. +Files: .github/workflows/ci.yml + +Patch 8.2.3786 +Problem: Test fails because of using Vim9 syntax in legacy function. +Solution: Add "call". +Files: src/testdir/test_functions.vim + +Patch 8.2.3787 +Problem: No proper formatting of a C line comment after a statement. +Solution: Find the start of the line comment, insert the comment leader and + indent the comment properly. +Files: src/change.c, src/proto/change.pro, src/search.c, + src/proto/search.pro, src/cindent.c, src/edit.c, src/normal.c, + src/textformat.c, src/testdir/test_textformat.vim, + src/testdir/test_cindent.vim + +Patch 8.2.3788 +Problem: Lambda for option that is a function may be garbage collected. +Solution: Set a reference in the funcref. (Yegappan Lakshmanan, + closes #9330) +Files: src/eval.c, src/evalbuffer.c, src/evalvars.c, src/gui_xim.c, + src/insexpand.c, src/ops.c, src/proto/eval.pro, + src/proto/gui_xim.pro, src/proto/insexpand.pro, src/proto/ops.pro, + src/proto/tag.pro, src/quickfix.c, src/tag.c, + src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, + src/testdir/test_tagfunc.vim + +Patch 8.2.3789 +Problem: Test_window_minimal_size can fail on a slow machine. +Solution: Do not rely on timers firing at the expected time. (Ozaki Kiichi, + closes #9335) +Files: src/testdir/test_window_cmd.vim + +Patch 8.2.3790 +Problem: Test for term_gettitle() fails in some environments. +Solution: Make the digits after "VIM" optional. (Kenta Sato, closes #9334) +Files: src/testdir/test_terminal2.vim + +Patch 8.2.3791 +Problem: Build error with +cindent but without +smartindent. +Solution: Move declaration of "do_cindent". (John Marriott) +Files: src/change.c + +Patch 8.2.3792 +Problem: Setting *func options insufficiently tested. +Solution: Improve tests. (Yegappan Lakshmanan, closes #9337) +Files: src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, + src/testdir/test_tagfunc.vim + +Patch 8.2.3793 +Problem: Using "g:Func" as a funcref does not work in script context + because "g:" is dropped. +Solution: Keep "g:" in the name. Also add parenthesis to avoid confusing + operator precedence. (closes #9336) +Files: src/evalvars.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3794 +Problem: Vim9: cannot find script-local func using "s:". (Yegappan + Lakshmanan) +Solution: Skip the "s:". +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3795 +Problem: Too many #ifdefs. +Solution: Graduate the jumplist feature. +Files: runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h, + src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c, + src/mark.c, src/normal.c, src/undo.c, src/version.c, + src/viminfo.c, src/window.c, src/structs.h, + src/testdir/test_changelist.vim, src/testdir/test_jumplist.vim, + src/testdir/test_normal.vim + +Patch 8.2.3796 +Problem: The funcexe_T struct members are not named consistently. +Solution: Prefix "fe_" to all the members. +Files: src/structs.h, src/eval.c, src/list.c, src/regexp.c, + src/terminal.c, src/userfunc.c, src/vim9execute.c + +Patch 8.2.3797 +Problem: No good reason to limit the message history in the tiny version. +Solution: Always use 200. +Files: runtime/doc/message.txt, src/feature.h + +Patch 8.2.3798 +Problem: A :def callback function postpones an error message. +Solution: Display the error after calling the function. (closes #9340) +Files: src/userfunc.c, src/testdir/test_vim9_func.vim, + src/testdir/dumps/Test_opfunc_error.dump + +Patch 8.2.3799 (after 8.2.3798) +Problem: Edit test hangs or fails. +Solution: Do not rethrow an exception when inside try/catch. +Files: src/userfunc.c + +Patch 8.2.3800 +Problem: When cross compiling the output of "uname" cannot be set. (Ben + Reeves) +Solution: Use cache variables. (closes #9338) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.3801 +Problem: If a terminal shows in two windows, only one is redrawn. +Solution: Reset the dirty row range only after redrawing all windows. + (closes #9341) +Files: src/terminal.c, src/proto/terminal.pro, src/drawscreen.c, + src/testdir/test_terminal.vim + +Patch 8.2.3802 +Problem: Terminal in two windows test fails on some systems. +Solution: Wait a bit between commands. +Files: src/testdir/test_terminal.vim + +Patch 8.2.3803 +Problem: Crash when 'writedelay' is set and using a terminal window to + execute a shell command. +Solution: Check that "tl_vterm" isn't NULL. (closes #9346) +Files: src/terminal.c + +Patch 8.2.3804 +Problem: Script context not set when copying 'swf' and 'ts'. +Solution: Use COPY_OPT_SCTX with the right argument. (closes #9347) +Files: src/option.c + +Patch 8.2.3805 +Problem: i3config files are not recognized. +Solution: Add patterns to match i3config files. (Quentin Hibon, + closes #7969) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3806 +Problem: Terminal focus test fails sometimes. +Solution: Run the test function before others. +Files: src/testdir/test_terminal.vim + +Patch 8.2.3807 +Problem: Vim9: can call import with star directly. +Solution: Check that the import used star. +Files: src/userfunc.c, src/eval.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3808 +Problem: Vim9: obsolete TODO items +Solution: Remove the comments. +Files: src/vim9execute.c + +Patch 8.2.3809 +Problem: Vim9: crash when garbage collecting a nested partial. (Virginia + Senioria) +Solution: Set references in all the funcstacks. (closes #9348) +Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, + src/eval.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3810 +Problem: Vim9: expr4 test fails on MS-Windows. +Solution: Do not give an error for a missing function name when skipping. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3811 +Problem: The opfunc error test fails on a slow machine. +Solution: Use WaitForAssert(). +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.3812 +Problem: Vim9: leaking memory in numbered function test. +Solution: Skip "g:" when checking for numbered function. Clean up after + errors properly. +Files: src/userfunc.c + +Patch 8.2.3813 +Problem: confusing error when using :cc without error list. (Gary Johnson) +Solution: Give the "no errors" error. +Files: src/ex_docmd.c, src/testdir/test_quickfix.vim + +Patch 8.2.3814 +Problem: .csx files and .sln files are not recognized. +Solution: Add filetype patterns. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3815 +Problem: Vim9: cannot have a multi-line dict inside a block. +Solution: Do not split the command at a line break, handle NL characters + as white space. +Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro, + src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3816 +Problem: Compiler warning for possible loss of data on MS-Windows. +Solution: Add type cast. (Mike Williams, closes #9349) +Files: src/userfunc.c + +Patch 8.2.3817 (after 8.2.3815) +Problem: Vim9: Not using NL as command end does not work for :autocmd. +Solution: Only ignore NL for commands with an expression argument. +Files: src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.3818 +Problem: Cannot filter or map characters in a string. +Solution: Make filter() and map() work on a string. (Naruhiko Nishino, + closes #9327) +Files: runtime/doc/eval.txt, src/errors.h, src/list.c, + src/testdir/test_filter_map.vim + +Patch 8.2.3819 (after 8.2.3818) +Problem: Test fails because error message changed. +Solution: Update screendumps. +Files: src/testdir/dumps/Test_popupwin_three_errors_1.dump, + src/testdir/dumps/Test_popupwin_three_errors_2.dump + +Patch 8.2.3820 +Problem: "vrc" does not replace composing characters, while "rc" does. +Solution: Check the byte length including composing characters. + (closes #9351) +Files: src/ops.c, src/testdir/test_visual.vim + +Patch 8.2.3821 +Problem: ASAN test run fails. +Solution: Use asan_symbolize-13 instead of asan_symbolize-11. +Files: .github/workflows/ci.yml + +Patch 8.2.3822 +Problem: Leaking memory in map() and filter(), cannot use a string argument + in Vim9 script. +Solution: Fix the leak, adjust the argument check, also run the tests as + Vim9 script. (Yegappan Lakshmanan, closes #9354) +Files: src/errors.h, src/evalfunc.c, src/list.c, src/proto/typval.pro, + src/testdir/test_filter_map.vim, + src/testdir/test_vim9_builtin.vim, src/typval.c + +Patch 8.2.3823 +Problem: Test for visual replace is in wrong function. +Solution: Move it to another function. +Files: src/testdir/test_visual.vim + +Patch 8.2.3824 +Problem: No ASAN support for MSVC. +Solution: Add ASAN support and fix a couple of uncovered problems. (Yegappan + Lakshmanan, closes #9357) +Files: src/Make_mvc.mak, src/findfile.c, src/os_mswin.c, + src/testdir/test_fnamemodify.vim + +Patch 8.2.3825 +Problem: Various comments could be improved. +Solution: Improve the comments. +Files: src/getchar.c, src/mbyte.c, src/regexp_nfa.c, + src/testdir/test_edit.vim, src/gui_motif.c + +Patch 8.2.3826 +Problem: Vim9: using "g:Func" as a funcref does not work in a :def + function. +Solution: Include "g:" in the function name. (closes #9336) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3827 +Problem: Huntr badge does not really fit in the list. +Solution: Move the link to Huntr to the issue template. +Files: Filelist, .github/ISSUE_TEMPLATE/bug_report.yml, README.md + +Patch 8.2.3828 +Problem: when opening a terminal from a timer the first typed character + is lost. (Virginia Senioria) +Solution: When opening a terminal while waiting for a character put K_IGNORE + in the input buffer. +Files: src/terminal.c, src/edit.c, src/testdir/test_terminal.vim + +Patch 8.2.3829 +Problem: No error when setting a func option to a script-local function. +Solution: Give an error if the name starts with "s:". (closes #9358) +Files: src/option.c, src/testdir/test_tagfunc.vim, + src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump + +Patch 8.2.3830 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/globals.h, src/errors.h, src/buffer.c, src/dict.c, src/diff.c, + src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, + src/misc2.c, src/quickfix.c, src/typval.c, src/ui.c, + src/userfunc.c, src/vim9compile.c, src/vim9execute.c, + src/vim9type.c, src/window.c + +Patch 8.2.3831 +Problem: Opfunc test fails when missing feature changes function name. + (Dominique Pellé) +Solution: Check the relevant screen line instead of using a screendump. + (closes #9360) +Files: src/testdir/test_vim9_func.vim, + src/testdir/dumps/Test_opfunc_error.dump + +Patch 8.2.3832 (after 8.2.3830) +Problem: Test fails because of changed error message. +Solution: Adjust the expected error message. +Files: src/testdir/test_vimscript.vim + +Patch 8.2.3833 +Problem: Error from term_start() not caught by try/catch. +Solution: save and restore did_emsg when applying autocommands. (Ozaki + Kiichi, closes #9361) +Files: src/autocmd.c, src/testdir/test_terminal3.vim + +Patch 8.2.3834 +Problem: Test_out_cb often fails on Mac. +Solution: Increase the timeout with every retry. +Files: src/testdir/test_channel.vim + +Patch 8.2.3835 +Problem: The inline-function example does not work. +Solution: Drop ":let". Add EX_EXPR_ARG to CMD_var. (issue #9352) +Files: runtime/doc/vim9.txt, src/ex_cmds.h, + src/testdir/test_vim9_expr.vim + +Patch 8.2.3836 +Problem: Vim9: comment after expression not skipped to find NL. +Solution: After evaluating an expression look for a newline after a # + comment. +Files: src/eval.c + +Patch 8.2.3837 +Problem: QNX: crash when compiled with GUI but using terminal. +Solution: Check gui.in_use is set. (Hirohito Higashi, closes #9363) +Files: src/autocmd.c + +Patch 8.2.3838 +Problem: Cannot use script-local function for setting *func options. +Solution: Use the script context. (Yegappan Lakshmanan, closes #9362) +Files: src/option.c, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump, + src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, + src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim + +Patch 8.2.3839 +Problem: Using \z() with \z1 not tested for syntax highlighting. +Solution: Add a test. (Dominique Pellé, closes #9365) +Files: src/testdir/test_syntax.vim + +Patch 8.2.3840 +Problem: Useless test for negative index in check functions. +Solution: Remove the test for negative index. (Naruhiko Nishino, + closes #9364) +Files: src/typval.c + +Patch 8.2.3841 +Problem: Vim9: outdated TODO items, disabled tests that work. +Solution: Remove TODO items, run tests that work now. Check that a dict + item isn't locked. +Files: src/vim9execute.c, src/evalvars.c, src/errors.h, src/globals.h, + src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim + +Patch 8.2.3842 +Problem: Vim9: can change locked list and list items. +Solution: Check that a list and list item isn't locked. +Files: src/vim9execute.c, src/testdir/test_listdict.vim + +Patch 8.2.3843 +Problem: Dep3patch files are not recognized. +Solution: Recognize dep3patch files by their location and content. (James + McCoy, closes #9367) +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.3844 +Problem: Vim9: no type error if assigning a value with type func(number) to + a variable of type func(string). +Solution: Use check_type_maybe(): return MAYBE if a runtime type check is + useful. (issue #8492) +Files: src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3845 +Problem: Vim9: test fails when the channel feature is missing. +Solution: Check for the channel feature. (Dominique Pellé, closes #9368) +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.3846 +Problem: No error when using control character for 'lcs' or 'fcs'. +Solution: Use char2cells() to check the width. (closes #9369) +Files: src/screen.c, src/testdir/test_display.vim, + src/testdir/test_listchars.vim + +Patch 8.2.3847 +Problem: Illegal memory access when using a lambda with an error. +Solution: Avoid skipping over the NUL after a string. +Files: src/eval.c, src/testdir/test_lambda.vim + +Patch 8.2.3848 +Problem: Cannot use reduce() for a string. +Solution: Make reduce() work with a string. (Naruhiko Nishino, closes #9366) +Files: runtime/doc/eval.txt, src/errors.h, src/evalfunc.c, src/list.c, + src/typval.c, src/proto/typval.pro, src/testdir/test_listdict.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3849 +Problem: Functions implementing reduce and map are too long. +Solution: Use a function for each type of value. Add a few more test cases + and add to the help. (Yegappan Lakshmanan, closes #9370) +Files: runtime/doc/eval.txt, src/list.c, src/testdir/test_listdict.vim + +Patch 8.2.3850 +Problem: Illegal memory access when displaying a partial. +Solution: Terminate the string with a NUL. (closes #9371) +Files: src/eval.c, src/testdir/test_messages.vim + +Patch 8.2.3851 +Problem: Vim9: overhead when comparing string, dict or function. +Solution: Call the intended compare function directly. Refactor to avoid + duplicated code. +Files: src/vim9execute.c, src/typval.c, src/proto/typval.pro + +Patch 8.2.3852 +Problem: Vim9: not enough tests. +Solution: Also run existing tests for Vim9 script. Make errors more + consistent. +Files: src/testdir/test_listdict.vim, src/eval.c, src/vim9compile.c, + src/errors.h + +Patch 8.2.3853 +Problem: Vim9: not enough tests. +Solution: Run more existing tests for Vim9 script. +Files: src/testdir/test_listdict.vim + +Patch 8.2.3854 +Problem: Vim9: inconsistent arguments for test functions. +Solution: When :def function and script have different arguments use a list + with two items instead of a separate function. +Files: src/testdir/vim9.vim, src/testdir/test_execute_func.vim, + src/testdir/test_float_func.vim, src/testdir/test_functions.vim, + src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.3855 +Problem: Illegal memory access when displaying a blob. +Solution: Append a NUL at the end. (Yegappan Lakshmanan, closes #9372) +Files: src/blob.c, src/regexp_nfa.c, src/testdir/test_blob.vim, + src/testdir/test_messages.vim + +Patch 8.2.3856 +Problem: Vim9: not enough tests. +Solution: Run more expression tests also with Vim9. Fix an uncovered + problem. +Files: src/vim9compile.c, src/testdir/test_expr.vim, src/testdir/vim9.vim + +Patch 8.2.3857 +Problem: Vim9: inconsistent error for using function(). +Solution: Use a runtime type check for the result of function(). + (closes #8492) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3858 +Problem: Vim9: not enough tests. +Solution: Add tests for :try/:catch and :redir. Add missing type check. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.3859 +Problem: Vim9: some code lines not tested. +Solution: Add a few specific tests. +Files: src/vim9compile.c, src/testdir/test_vim9_cmd.vim, src/errors.h, + src/testdir/test_vim9_script.vim + +Patch 8.2.3860 +Problem: Vim9: codecov struggles with the file size. +Solution: Split vim9compile.c into four files. +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9instr.c, + src/proto/vim9instr.pro, src/vim9expr.c, src/proto/vim9expr.pro, + src/vim9cmds.c, src/proto/vim9cmds.pro, src/vim9.h, + src/vim9execute.c, src/vim9script.c, src/proto.h, + src/Makefile, src/Make_ami.mak, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/Make_vms.mms + +Patch 8.2.3861 +Problem: List of distributed files is outdated. +Solution: Add new files. +Files: Filelist + +Patch 8.2.3862 +Problem: Crash on exit with EXITFREE and using win_execute(). +Solution: Also save and restore tp_topframe. (issue #9374) +Files: src/evalwindow.c, src/testdir/test_execute_func.vim + +Patch 8.2.3863 (after 8.2.3860) +Problem: Various build flags accidentally enabled. +Solution: Revert several lines in Makefile. +Files: src/Makefile + +Patch 8.2.3864 +Problem: Cannot disable requesting key codes from xterm. +Solution: Add the 'xtermcodes' option, default on. +Files: runtime/doc/options.txt, runtime/doc/term.txt, src/option.h, + src/optiondefs.h, src/term.c, runtime/optwin.vim + +Patch 8.2.3865 +Problem: Vim9: compiler complains about using "try" as a struct member. +Solution: Rename "try" to "tryref". +Files: src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/vim9instr.c + +Patch 8.2.3866 +Problem: Vim9: type checking global variables is inconsistent. +Solution: Use the "unknown" type in more places. +Files: src/globals.h, src/vim9expr.c, src/vim9instr.c, src/vim9cmds.c, + src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3867 +Problem: Implementation of some list functions too complicated. +Solution: Refactor do_sort_uniq(), f_count() and extend() (Yegappan + Lakshmanan, closes #9378) +Files: src/list.c + +Patch 8.2.3868 (after 8.2.3866) +Problem: Vim9: function test fails. +Solution: Add missing changes. Add test for earlier patch. +Files: src/vim9type.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3869 +Problem: Vim9: type checking for "any" is inconsistent. +Solution: Always use a runtime type check for using "any" for a more + specific type. +Files: src/vim9type.c, src/vim9compile.c, src/vim9expr.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.3870 +Problem: MS-Windows: wrong working directory when opening two files with + right-click context menu. (Gabriel Dupras) +Solution: Use the working directory and pass it on to the process creation. + (Nir Lichtman, closes #9382, closes #8874) +Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h + +Patch 8.2.3871 +Problem: List.c contains code for dict and blob. +Solution: Refactor to put code where it belongs. (Yegappan Lakshmanan, + closes #9386) +Files: src/blob.c, src/dict.c, src/list.c, src/proto/blob.pro, + src/proto/dict.pro, src/proto/list.pro, src/proto/strings.pro, + src/strings.c, src/structs.h, src/testdir/test_filter_map.vim, + src/testdir/test_listdict.vim, src/testdir/test_sort.vim + +Patch 8.2.3872 +Problem: Vim9: finddir() and uniq() return types can be more specific. +Solution: Adjust the return type. +Files: src/evalfunc.c, src/testdir/vim9.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3873 +Problem: go.mod files are not recognized. +Solution: Check for the file name. (closes #9380) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3874 +Problem: Cannot highlight the number column for a sign. +Solution: Add the "numhl" argument. (James McCoy, closes #9381) +Files: runtime/doc/options.txt, runtime/doc/sign.txt, src/drawline.c, + src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h, + src/testdir/test_signs.vim + +Patch 8.2.3875 +Problem: gcc complains about buffer overrun. +Solution: Use mch_memmove() instead of STRCPY(). (John Marriott) +Files: src/dict.c + +Patch 8.2.3876 +Problem: 'cindent' does not recognize inline namespace. +Solution: Skip over "inline" to find "namespace". (closes #9383) +Files: src/cindent.c, src/testdir/test_cindent.vim + +Patch 8.2.3877 +Problem: Function does not abort after a type error in compare +Solution: Check getting number fails. (closes #9384) +Files: src/typval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.3878 +Problem: Vim9: debugger tries to read more lines than there are. +Solution: Check the number of lines. (closes #9394) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.3879 +Problem: getreg() and getregtype() contain dead code. +Solution: Remove the needless check. (closes #9392) Also refactor to put + common code in a shared function. +Files: src/evalfunc.c + +Patch 8.2.3880 +Problem: Solution filter files are not recognized. +Solution: Add pattern *.slnf and use json. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3881 +Problem: QNX: crash when compiled with GUI but using terminal. +Solution: Check the gui.in_use flag. (Hirohito Higashi, closes #9391) +Files: src/main.c + +Patch 8.2.3882 (after 8.2.3879) +Problem: More duplicated code in f_getreginfo(). +Solution: Also use getreg_get_regname(). (closes #9398) +Files: src/evalfunc.c + +Patch 8.2.3883 +Problem: Crash when switching to other regexp engine fails. +Solution: Check for regprog being NULL. +Files: src/ex_cmds.c + +Patch 8.2.3884 +Problem: Crash when clearing the argument list while using it. +Solution: Lock the argument list for ":all". +Files: src/arglist.c, src/testdir/test_arglist.vim + +Patch 8.2.3885 +Problem: Arglist test fails. +Solution: Adjust for locking the arglist for ":all". +Files: src/testdir/test_arglist.vim + +Patch 8.2.3886 +Problem: Can define autocmd for every event by using "au!". +Solution: Check if a command is present also for "au!". +Files: src/autocmd.c, src/testdir/test_autocmd.vim, + src/testdir/test_arglist.vim + +Patch 8.2.3887 +Problem: E1135 is used for two different errors. +Solution: Renumber one error. +Files: src/errors.h, src/testdir/test_mapping.vim + +Patch 8.2.3888 +Problem: The argument list may contain duplicates. +Solution: Add the :argdedeupe command. (Nir Lichtman, closes #6235) +Files: runtime/doc/editing.txt, runtime/doc/index.txt, src/arglist.c, + src/ex_cmdidxs.h, src/ex_cmds.h, src/proto/arglist.pro, + src/testdir/test_arglist.vim + +Patch 8.2.3889 +Problem: Duplicate code for translating script-local function name. +Solution: Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan, + closes #9393) +Files: src/evalfunc.c, src/evalvars.c, src/option.c, src/userfunc.c, + src/proto/userfunc.pro, src/testdir/test_expr.vim, + src/testdir/test_normal.vim + +Patch 8.2.3890 +Problem: Vim9: type check for using v: variables is basic. +Solution: Specify a more precise type. +Files: src/evalvars.c, src/proto/evalvars.pro, src/vim9instr.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.3891 +Problem: Github CI: workflows may overlap. +Solution: Cancel previous workflows when starting a new one. (Yegappan + Lakshmanan, closes #9400) +Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml + +Patch 8.2.3892 +Problem: When modifyOtherKeys is used CTRL-C is not recognized. +Solution: Check for uppercase C as well, fix minimum length. +Files: src/ui.c + +Patch 8.2.3893 +Problem: Vim9: many local variables are initialized with an instruction. +Solution: Initialize local variables to zero to avoid the instructions. +Files: src/vim9execute.c, src/vim9compile.c, src/vim9instr.c, + src/proto/vim9instr.pro, src/vim9cmds.c, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3894 +Problem: Vim9: no proper type check for first argument of call(). +Solution: Add specific type check. +Files: src/evalfunc.c, src/typval.c, src/proto/typval.pro, + src/errors.h, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3895 +Problem: Vim9: confusing error when using function() with a number. +Solution: Check for a function or string argument. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3896 +Problem: Vim9: no test for nested function not available later. +Solution: Add a test. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.3897 +Problem: Vim9: the second argument of map() and filter() is not checked at + compile time. +Solution: Add more specific type check for the second argument. +Files: src/evalfunc.c, src/globals.h, src/list.c, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.3898 +Problem: Vim9: not sufficient testing for variable initialization. +Solution: Add another test case. +Files: src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3899 (after 8.2.3897) +Problem: Vim9: test for map() on string fails. +Solution: Expect string return type. +Files: src/evalfunc.c + +Patch 8.2.3900 +Problem: It is not easy to use a script-local function for an option. +Solution: recognize s: and <SID> at the start of the expression. (Yegappan + Lakshmanan, closes #9401) +Files: runtime/doc/diff.txt, runtime/doc/fold.txt, + runtime/doc/options.txt, runtime/doc/print.txt, src/optionstr.c, + src/testdir/test_diffmode.vim, src/testdir/test_edit.vim, + src/testdir/test_fold.vim, src/testdir/test_gf.vim, + src/testdir/test_gui.vim, src/testdir/test_hardcopy.vim, + src/testdir/test_normal.vim + +Patch 8.2.3901 +Problem: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script. +Solution: Do not restore 'cpo' at the end of the main .vimrc. +Files: runtime/doc/vim9.txt, runtime/doc/options.txt, src/scriptfile.c, + src/structs.h, src/testdir/test_vim9_script.vim + +Patch 8.2.3902 +Problem: Vim9: double free with nested :def function. +Solution: Pass "line_to_free" from compile_def_function() and make sure + cmdlinep is valid. +Files: src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro, + src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3903 +Problem: "gM" does not count tabs as expected. +Solution: Use linetabsize() instead of mb_string2cells(). (closes #9409) +Files: src/normal.c, src/testdir/test_normal.vim + +Patch 8.2.3904 +Problem: Vim9: skip expression type is not checked at compile time. +Solution: Add argument type checks. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3905 +Problem: Dockerfile using prefix name not recognized. +Solution: Recognize Dockerfile.*. (closes #9410) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3906 +Problem: Vim9 help still contains "under development" warnings. +Solution: Remove the explicit warning. +Files: runtime/doc/vim9.txt + +Patch 8.2.3907 +Problem: Error messages are spread out. +Solution: Move error messages to errors.h. Avoid duplicates. +Files: src/userfunc.c, src/ex_cmds.c, src/viminfo.c, src/errors.h, + src/testdir/test_user_func.vim + +Patch 8.2.3908 +Problem: Cannot use a script-local function for 'foldtext'. +Solution: Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411) +Files: runtime/doc/fold.txt, src/optionstr.c, src/strings.c, + src/testdir/test_blob.vim, src/testdir/test_expr.vim, + src/testdir/test_filter_map.vim, src/testdir/test_fold.vim, + src/testdir/test_listdict.vim + +Patch 8.2.3909 +Problem: Containerfile using prefix name not recognized. +Solution: Recognize Containerfile.*. +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3910 +Problem: When the compare function of sort() produces and error then sort() + does not abort. +Solution: Check if did_emsg was incremented. +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3911 +Problem: Vim9: type check for filter() does not accept unknown. +Solution: Also accept unknown for the return type. (closes #9413) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3912 +Problem: The ins_complete() function is much too long. +Solution: Split it up into multiple functions. (Yegappan Lakshmanan, + closes #9414) +Files: src/insexpand.c + +Patch 8.2.3913 +Problem: Help for expressions does not mention Vim9 syntax. +Solution: Add the rules for Vim9 to the expression help. Rename functions + to match the help. +Files: runtime/doc/vim9.txt, runtime/doc/eval.txt, src/vim9expr.c + +Patch 8.2.3914 +Problem: Various spelling mistakes in comments. +Solution: Fix the mistakes. (Dominique Pellé, closes #9416) +Files: src/alloc.c, src/blowfish.c, src/buffer.c, src/cindent.c, + src/clipboard.c, src/diff.c, src/drawline.c, src/edit.c, + src/ex_cmds.c, src/ex_docmd.c, src/findfile.c, src/fold.c, + src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk.c, + src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c, + src/if_python.c, src/if_python3.c, src/if_xcmdsrv.c, src/main.c, + src/memline.c, src/menu.c, src/message.c, src/misc1.c, src/move.c, + src/option.c, src/os_amiga.c, src/os_mac.h, src/os_mac_conv.c, + src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/os_win32.h, + src/quickfix.c, src/regexp_nfa.c, src/screen.c, src/scriptfile.c, + src/spell.c, src/spellfile.c, src/spellsuggest.c, src/strings.c, + src/term.c, src/terminal.c, src/testdir/test_debugger.vim, + src/testdir/test_source.vim, src/textformat.c, src/userfunc.c, + src/vim.h, src/vim9.h, src/vim9cmds.c, src/vim9execute.c, + src/winclip.c, src/window.c + +Patch 8.2.3915 +Problem: illegal memory access when completing with invalid bytes. +Solution: Avoid going over the end of the completion text. +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.3916 +Problem: No error for passing an invalid line number to append(). +Solution: In Vim9 script check for a non-negative number. (closes #9417) +Files: src/evalbuffer.c, src/textprop.c, src/errors.h, src/indent.c, + src/eval.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3917 +Problem: The eval.txt help file is way too big. +Solution: Move the builtin function details to a separate file. +Files: runtime/doc/eval.txt, runtime/doc/builtin.txt, + runtime/doc/Makefile, runtime/doc/help.txt, runtime/doc/remote.txt + +Patch 8.2.3918 (after 8.2.3916) +Problem: Function list test fails. +Solution: Adjust the test for the new location of the function list. +Files: src/testdir/test_function_lists.vim + +Patch 8.2.3919 +Problem: Vim9: wrong argument for append() results in two errors. +Solution: Check did_emsg. Also for setline(). Adjust the help for + appendbufline(). +Files: runtime/doc/builtin.txt, src/evalbuffer.c, src/typval.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3920 +Problem: Restoring directory after using another window is inefficient. +Solution: Only restore the directory for win_execute(). Apply 'autochdir' + only when needed. +Files: src/evalwindow.c, src/testdir/test_autochdir.vim + +Patch 8.2.3921 +Problem: The way xdiff is used is inefficient. +Solution: Use hunk_func instead of the out_line callback. (Lewis Russell, + closes #9344) +Files: src/diff.c + +Patch 8.2.3922 +Problem: Cannot build with dynamic Ruby 3.1. +Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki + Kiichi, closes #9420) +Files: ci/config.mk.clang-12.sed, ci/config.mk.clang.sed, + ci/config.mk.sed, src/Makefile, src/auto/configure, + src/config.mk.in, src/configure.ac, src/if_ruby.c, src/vim.h + +Patch 8.2.3923 +Problem: Vim9: double free if a nested function has a line break in the + argument list. +Solution: Set cmdlinep when freeing the previous line. +Files: src/userfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3924 +Problem: Vim9: no error if something follows :enddef in a nested function. +Solution: Give an error. Move common code to a function. +Files: src/userfunc.c, src/vim9compile.c, src/errors.h, + src/testdir/test_vim9_func.vim + +Patch 8.2.3925 +Problem: Diff mode confused by NUL bytes. +Solution: Handle NUL bytes differently. (Christian Brabandt, closes #9421, + closes #9418) +Files: src/diff.c, src/testdir/test_diffmode.vim, + src/testdir/dumps/Test_diff_bin_01.dump, + src/testdir/dumps/Test_diff_bin_02.dump, + src/testdir/dumps/Test_diff_bin_03.dump, + src/testdir/dumps/Test_diff_bin_04.dump + +Patch 8.2.3926 (after 8.2.3920) +Problem: Build failure without the 'autochdir' option. (John Marriott) +Solution: Add #ifdefs. +Files: src/evalwindow.c + +Patch 8.2.3927 +Problem: Vim9: double free when using lambda. +Solution: Don't free both cmdline and line_to_free. +Files: src/userfunc.c + +Patch 8.2.3928 +Problem: Heredoc test fails. +Solution: Correct order of function arguments. +Files: src/userfunc.c + +Patch 8.2.3929 +Problem: Using uninitialized variable. +Solution: Set the option flags to zero for a terminal option. +Files: src/option.c + +Patch 8.2.3930 +Problem: getcmdline() argument has a misleading type. +Solution: Use the correct type, even though the value is not used. +Files: src/ex_getln.c, src/proto/ex_getln.pro, src/ex_docmd.c, + src/normal.c, src/register.c, src/userfunc.c + +Patch 8.2.3931 +Problem: Coverity reports a memory leak. +Solution: Free memory in case of failure. +Files: src/diff.c + +Patch 8.2.3932 +Problem: C line comment not formatted properly. +Solution: If a line comment follows after "#if" the next line is not the end + of a paragraph. +Files: src/textformat.c, src/testdir/test_textformat.vim + +Patch 8.2.3933 +Problem: After ":cd" fails ":cd -" is incorrect. +Solution: Set the previous directory only after successfully changing + directory. (Richard Doty, closes #9419, closes #8983) +Files: src/ex_docmd.c, src/testdir/test_cd.vim + +Patch 8.2.3934 +Problem: Repeating line comment is undesired for "O" command. +Solution: Do not copy line comment leader for "O". (closes #9426) +Files: src/change.c, src/testdir/test_textformat.vim + +Patch 8.2.3935 +Problem: CTRL-U in Insert mode does not fix the indent. +Solution: Fix the indent when 'cindent' is set. +Files: src/edit.c, src/testdir/test_textformat.vim + +Patch 8.2.3936 +Problem: No proper test for maintaining change mark in diff mode. +Solution: Run the test with internal and external diff. (Sean Dewar, + closes #9424) +Files: src/testdir/test_diffmode.vim + +Patch 8.2.3937 +Problem: Insert mode completion function is too long. +Solution: Refactor into multiple functions. (Yegappan Lakshmanan, + closes #9423) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.3938 +Problem: Line comment start is also found in a string. +Solution: Skip line comments in a string. +Files: src/cindent.c, src/proto/cindent.pro, src/search.c, + src/testdir/test_textformat.vim + +Patch 8.2.3939 +Problem: MS-Windows: fnamemodify('', ':p') does not work. +Solution: Do not consider an empty string a full path. (Yegappan Lakshmanan, + closes #9428, closes #9427) +Files: src/os_mswin.c, src/testdir/test_fnamemodify.vim + +Patch 8.2.3940 +Problem: Match highlight disappears when doing incsearch for ":s/pat". +Solution: Only use line limit for incsearch highlighting. (closes #9425) +Files: src/match.c, src/testdir/test_match.vim, + src/testdir/dumps/Test_match_with_incsearch_1.dump, + src/testdir/dumps/Test_match_with_incsearch_2.dump + +Patch 8.2.3941 +Problem: SIGTSTP is not handled. +Solution: Handle SIGTSTP like pressing CTRL-Z. (closes #9422) +Files: runtime/doc/autocmd.txt, src/ex_docmd.c, src/os_unix.c, + src/proto/ex_docmd.pro, src/testdir/test_signals.vim + +Patch 8.2.3942 +Problem: Coverity reports a possible memory leak. +Solution: Free the array if allocation fails. +Files: src/insexpand.c + +Patch 8.2.3943 +Problem: Compiler warning from gcc for uninitialized variable. +Solution: Initialize variable. (closes #9429) +Files: src/diff.c + +Patch 8.2.3944 +Problem: Insert mode completion functions are too long. +Solution: Split up into multiple functions. (Yegappan Lakshmanan, + closes #9431) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.3945 +Problem: Vim9: partial variable argument types are wrong, leading to a + crash. +Solution: When adjusting the argument count also adjust the argument types. + (closes #9433) +Files: src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.3946 +Problem: When an internal error makes Vim exit the error is not seen. +Solution: Add the error to the test output. +Files: src/message.c, src/testdir/runtest.vim + +Patch 8.2.3947 +Problem: Unnecessary check for NULL pointer. +Solution: Remove the check. (closes #9434) +Files: src/ex_docmd.c + +Patch 8.2.3948 +Problem: Vim9: failure with partial with unknown argument count. +Solution: Do not copy argument types if there aren't any. +Files: src/vim9type.c + +Patch 8.2.3949 +Problem: Using freed memory with /\%V. +Solution: Get the line again after getvvcol(). +Files: src/regexp.c, src/testdir/test_regexp_latin.vim + +Patch 8.2.3950 +Problem: Going beyond the end of the line with /\%V. +Solution: Check for valid column in getvcol(). +Files: src/charset.c, src/testdir/test_regexp_latin.vim + +Patch 8.2.3951 +Problem: Vim9: memory leak when text after a nested function. +Solution: Free the function if text is found after "enddef". +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.3952 +Problem: First line not redrawn when adding lines to an empty buffer. +Solution: Adjust the argument to appended_lines(). (closes #9439, + closes #9438) +Files: src/ex_cmds.c, src/testdir/test_excmd.vim + +Patch 8.2.3953 +Problem: Insert completion code is too complicated. +Solution: More refactoring. Move function arguments into a struct. + (Yegappan Lakshmanan, closes #9437) +Files: src/insexpand.c + +Patch 8.2.3954 +Problem: Vim9: no error for shadowing if script var is declared later. +Solution: Check argument names when compiling a function. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.3955 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/globals.h, src/debugger.c, src/ex_cmds.c, + src/help.c, src/sign.c, src/spellfile.c + +Patch 8.2.3956 +Problem: Duplicate assignment. +Solution: Remove the second assignment. (closes #9442) +Files: src/evalfunc.c + +Patch 8.2.3957 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c, + src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, + src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c, + src/vim9cmds.c, src/vim9compile.c + +Patch 8.2.3958 +Problem: Build failure compiling xxd with "-std=c2x". +Solution: define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes #9444) +Files: src/xxd/xxd.c + +Patch 8.2.3959 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/autocmd.c, src/bufwrite.c, src/evalvars.c, + src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, + src/getchar.c, src/gui.c, src/locale.c, src/map.c + +Patch 8.2.3960 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/alloc.c, src/arglist.c, src/autocmd.c, + src/blob.c, src/blowfish.c, src/buffer.c, src/bufwrite.c + +Patch 8.2.3961 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c, + src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c, + src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c, + src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c, + src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c, + src/filepath.c, src/gui_gtk_x11.c, src/gui_haiku.cc, + src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/highlight.c, + src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c, + src/map.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c, + src/message.c, src/misc2.c, src/ops.c, src/option.c, + src/optionstr.c, src/popupwin.c, src/quickfix.c, src/screen.c, + src/scriptfile.c, src/search.c, src/sign.c, src/spell.c, + src/spellfile.c, src/strings.c, src/syntax.c, src/terminal.c, + src/testing.c, src/textprop.c, src/time.c, src/userfunc.c, + src/vim9cmds.c, src/vim9execute.c, src/vim9script.c, src/window.c + +Patch 8.2.3962 (after 8.2.3961) +Problem: Build fails for missing error message. +Solution: Add changes in missed file. +Files: src/regexp_bt.c + +Patch 8.2.3963 +Problem: Build failure with tiny and small features. (Tony Mechelynck) +Solution: Adjust #ifdefs. +Files: src/errors.h, src/message.c + +Patch 8.2.3964 +Problem: Some common lisp and scheme files not recognized. +Solution: Recognize *.asd as lisp and *.sld as scheme. (Alex Vear, + closes #9447) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3965 +Problem: Vim9: no easy way to check if Vim9 script is supported. +Solution: Add has('vim9script'). +Files: runtime/doc/vim9.txt, src/evalfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.3966 +Problem: When using feedkeys() abbreviations may be blocked. +Solution: Reset tb_no_abbr_cnt when running out of characters. + (closes #9448) +Files: src/getchar.c, src/testdir/test_feedkeys.vim + +Patch 8.2.3967 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/globals.h, src/feature.h, src/arglist.c, + src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c, + src/cmdexpand.c, src/dict.c, src/diff.c, src/eval.c, + src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, + src/fileio.c, src/filepath.c, src/getchar.c, src/gui_gtk_x11.c, + src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c, + src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, + src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c, + src/if_xcmdsrv.c, src/indent.c, src/insexpand.c, src/job.c, + src/list.c, src/main.c, src/map.c, src/match.c, src/mbyte.c, + src/message.c, src/misc1.c, src/option.c, src/optionstr.c, + src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/popupwin.c, + src/profiler.c, src/quickfix.c, src/scriptfile.c, src/search.c, + src/session.c, src/sign.c, src/spell.c, src/spellfile.c, + src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c, + src/testing.c, src/textprop.c, src/typval.c, src/userfunc.c, + src/vim9execute.c, src/vim9expr.c, src/vim9instr.c, + src/vim9script.c + +Patch 8.2.3968 +Problem: Build failure. +Solution: Add missing changes. +Files: src/strings.c, src/vim9compile.c + +Patch 8.2.3969 +Problem: Value of MAXCOL not available in Vim script. +Solution: Add v:maxcol. (Naohiro Ono, closes #9451) +Files: runtime/doc/builtin.txt, runtime/doc/eval.txt, src/evalvars.c, + src/testdir/test_cursor_func.vim, src/testdir/test_normal.vim, + src/testdir/test_put.vim, src/vim.h + +Patch 8.2.3970 +Problem: Error messages are spread out. +Solution: Move more errors to errors.h. +Files: src/errors.h, src/globals.h, src/buffer.c, src/bufwrite.c, + src/clientserver.c, src/cmdhist.c, src/dict.c, src/edit.c, + src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, + src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/gui_w32.c, + src/gui_x11.c, src/if_xcmdsrv.c, src/insexpand.c, src/json.c, + src/match.c, src/menu.c, src/option.c, src/optionstr.c, + src/os_mswin.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c, + src/scriptfile.c, src/sign.c, src/spellfile.c, src/undo.c, + src/userfunc.c, src/vim9cmds.c, src/vim9compile.c, + src/vim9execute.c, src/vim9expr.c, src/window.c + +Patch 8.2.3971 +Problem: Build fails. +Solution: Use the right error message name. +Files: src/typval.c + +Patch 8.2.3972 +Problem: Error messages are spread out. +Solution: Move the last errors from globals.h to errors.h. +Files: src/errors.h, src/globals.h, src/eval.c, src/evalfunc.c, + src/evalvars.c, src/evalwindow.c, src/ex_eval.c, src/list.c, + src/match.c, src/menu.c, src/popupmenu.c, src/search.c, + src/vim9cmds.c, src/vim9expr.c + +Patch 8.2.3973 +Problem: Tiny build fails. +Solution: Adjust #ifdefs +Files: src/errors.h + +Patch 8.2.3974 +Problem: Vim9: LISTAPPEND instruction does not check for a locked list. +Solution: Check whether the list is locked. (closes #9452) +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3975 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/clientserver.c, src/fileio.c, src/gui.c, + src/gui_beval.c, src/gui_w32.c, src/gui_x11.c, src/if_cscope.c, + src/if_xcmdsrv.c, src/os_mswin.c, src/sign.c, src/viminfo.c, + src/window.c + +Patch 8.2.3976 +Problem: FEARG_LAST is never used. (Dominique Pellé) +Solution: Remove FEARG_LAST and the related code. +Files: src/evalfunc.c + +Patch 8.2.3977 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/change.c, src/clientserver.c, src/eval.c, + src/gui_xim.c, src/if_cscope.c, src/if_py_both.h, src/if_python.c, + src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/main.c, + src/mark.c, src/match.c, src/memfile.c, src/memline.c, + src/terminal.c, src/textprop.c, src/userfunc.c + +Patch 8.2.3978 +Problem: Build error when using dynamically loaded Python 3. +Solution: Adjust #ifdef. +Files: src/errors.h + +Patch 8.2.3979 +Problem: Vim9: the feature is not mentioned in the right places. +Solution: Add +vim9script to the help and :version output. +Files: runtime/doc/builtin.txt, runtime/doc/various.txt, src/version.c + +Patch 8.2.3980 +Problem: If 'operatorfunc' invokes an operator the remembered Visual mode + may be changed. (Naohiro Ono) +Solution: Save and restore the information for redoing the Visual area. + (closes #9455) +Files: src/ops.c, src/testdir/test_normal.vim + +Patch 8.2.3981 +Problem: Vim9: debugging a for loop doesn't stop before it starts. +Solution: Keep the DEBUG instruction before the expression is evaluated. + (closes #9456) +Files: src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3982 +Problem: Some lines of code not covered by tests. +Solution: Add a few more test cases. (Dominique Pellé, closes #9453) +Files: src/testdir/test_filter_map.vim, src/testdir/test_highlight.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3983 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/ex_docmd.c, src/fileio.c, src/filepath.c, + src/findfile.c, src/hardcopy.c, src/memfile.c, src/memline.c, + src/menu.c, src/normal.c, src/regexp_bt.c + +Patch 8.2.3984 (after 8.2.3981) +Problem: Debugger test fails. +Solution: Adjust the test for modified debugging of a for loop. +Files: src/testdir/test_debugger.vim + +Patch 8.2.3985 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/findfile.c, src/fold.c, src/hardcopy.c, + src/highlight.c, src/map.c, src/message.c, src/normal.c, + src/option.c, src/os_amiga.c, src/os_unix.c, src/os_win32.c, + src/quickfix.c, src/regexp.c, src/register.c, src/search.c, + src/syntax.c, src/tag.c, src/term.c, src/typval.c, src/undo.c, + src/window.c + +Patch 8.2.3986 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, + src/fileio.c, src/fold.c, src/gui_x11.c, src/hardcopy.c, + src/help.c, src/highlight.c, src/if_cscope.c, src/json.c, + src/map.c, src/netbeans.c, src/popupwin.c, src/usercmd.c, + src/userfunc.c + +Patch 8.2.3987 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/digraph.c, src/ex_eval.c, src/gui.c, + src/hardcopy.c, src/if_cscope.c, src/if_tcl.c, src/if_xcmdsrv.c, + src/mbyte.c, src/misc2.c, src/netbeans.c, src/option.c, + src/optionstr.c, src/quickfix.c, src/regexp.c, src/tag.c, + src/term.c, src/viminfo.c + +Patch 8.2.3988 (after 8.2.3987) +Problem: Tiny build fails. +Solution: Fix misplaced #ifdef. +Files: src/errors.h + +Patch 8.2.3989 +Problem: Some insert completion code is not tested. +Solution: Add a few tests. Refactor thesaurus completion. (Yegappan + Lakshmanan, closes #9460) +Files: src/insexpand.c, src/testdir/test_edit.vim, + src/testdir/test_ins_complete.vim + +Patch 8.2.3990 +Problem: Testing wrong operator. +Solution: Test "g@" instead of "r_". (Naohiro Ono, closes #9463) +Files: src/testdir/test_normal.vim + +Patch 8.2.3991 +Problem: Vim9: error when extending dict<any> with another type that it was + initialized with. +Solution: Also set the type for dict<any> if the initializer has a more + specific type. (closes #9461) +Files: src/vim9compile.c, src/vim9type.c, src/vim9.h, src/eval.c, + src/list.c, src/vim9script.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.3992 +Problem: Wrong local-additions in the help with language mix. +Solution: Adjust how the local additions list is generated. (Hirohito + Higashi, closes #9464) +Files: src/help.c, src/testdir/test_help.vim + +Patch 8.2.3993 +Problem: When recording a change in Select mode the first typed character + appears twice. +Solution: When putting the character back into typeahead remove it from + recorded characters. (closes #9462) +Files: src/getchar.c, src/proto/getchar.pro, src/normal.c, + src/testdir/test_registers.vim + +Patch 8.2.3994 +Problem: Vim9: extend() complains about the type even when it was not + declared. +Solution: Only check the list or dict type when it was declared. +Files: src/list.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.3995 +Problem: Not all sshconfig files are detected as such. +Solution: Adjust the patterns used for sshconfig detection. (David Auer, + closes #9322) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.3996 +Problem: Vim9: type checking for list and dict lacks information about + declared type. +Solution: Add dv_decl_type and lv_decl_type. Refactor the type stack to + store two types in each entry. +Files: src/structs.h, src/dict.c, src/list.c, src/vim9type.c, + src/proto/vim9type.pro, src/vim9instr.c, src/proto/vim9instr.pro, + src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro, + src/evalbuffer.c, src/proto/evalbuffer.pro, src/vim9expr.c, + src/vim9cmds.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.3997 +Problem: Vim9: not enough testing for extend() and map(). +Solution: Add more test cases. Fix uncovered problems. Remove unused type + fields. +Files: src/structs.h, src/dict.c, src/list.c, src/vim9compile.c, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.3998 +Problem: Asan error for adding zero to NULL. +Solution: Do not compute pointer if there are no entries. +Files: src/vim9type.c + +Patch 8.2.3999 +Problem: Redundant check for NUL byte. +Solution: Remove the check for a NUL byte. (closes #9471) +Files: src/ex_docmd.c + +Patch 8.2.4000 +Problem: Coverity warns for checking for NULL pointer after using it. +Solution: Remove check for NULL. +Files: src/help.c + +Patch 8.2.4001 +Problem: Insert complete code uses global variables. +Solution: Make variables local to the file and use accessor functions. + (Yegappan Lakshmanan, closes #9470) +Files: src/edit.c, src/getchar.c, src/globals.h, src/insexpand.c, + src/proto/insexpand.pro, src/search.c + +Patch 8.2.4002 +Problem: First char typed in Select mode can be wrong. +Solution: Escape special bytes in the input buffer. (closes #9469) +Files: src/getchar.c, src/testdir/test_utf8.vim + +Patch 8.2.4003 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/channel.c, src/ex_docmd.c, src/ex_eval.c, + src/gui_at_fs.c, src/hardcopy.c, src/if_cscope.c, src/menu.c, + src/netbeans.c, src/optionstr.c, src/os_mswin.c, src/sign.c, + src/typval.c + +Patch 8.2.4004 +Problem: Old compiler complains about struct init with variable. +Solution: Set the struct member later. (John Marriott) +Files: src/evalfunc.c + +Patch 8.2.4005 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/dict.c, src/eval.c, src/evalfunc.c, + src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, + src/filepath.c, src/gui.c, src/gui_w32.c, src/hardcopy.c, + src/help.c, src/highlight.c, src/if_python.c, src/list.c, + src/misc1.c, src/normal.c, src/quickfix.c, src/regexp.c, + src/regexp_bt.c, src/regexp_nfa.c, src/typval.c, src/userfunc.c + +Patch 8.2.4006 +Problem: Vim9: crash when declaring variable on the command line. +Solution: Use a temporary type list. (closes #9474) +Files: src/eval.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.4007 +Problem: Session does not restore help buffer properly when "options' is + missing from 'sessionoptions'. +Solution: Use a ":help" command to create the help window. (closes #9475, + closes #9458, closes #9472) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4008 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/diff.c, src/digraph.c, src/evalfunc.c, + src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, + src/insexpand.c, src/match.c, src/memline.c, src/menu.c, + src/ops.c, src/profiler.c, src/quickfix.c, src/regexp.c, + src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/spell.c, + src/spell.h, src/spellfile.c, src/strings.c, src/syntax.c, + src/typval.c, src/undo.c, src/userfunc.c + +Patch 8.2.4009 +Problem: Reading one byte beyond the end of the line. +Solution: Check for NUL byte first. +Files: src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4010 +Problem: Error messages are spread out. +Solution: Move more error messages to errors.h. +Files: src/errors.h, src/crypt.c, src/diff.c, src/ex_docmd.c, + src/ex_getln.c, src/fileio.c, src/findfile.c, src/float.c, + src/gui.c, src/highlight.c, src/if_mzsch.c, src/if_py_both.h, + src/if_python.c, src/if_python3.c, src/insexpand.c, src/match.c, + src/memline.c, src/option.c, src/popupwin.c, src/regexp.c, + src/regexp_nfa.c, src/spellfile.c, src/strings.c, src/syntax.c, + src/textprop.c, src/typval.c, src/undo.c, src/usercmd.c, + src/userfunc.c, src/window.c + +Patch 8.2.4011 +Problem: Test fails because of changed error number. +Solution: Restore old duplicate error message. +Files: src/errors.h, src/match.c + +Patch 8.2.4012 +Problem: Error messages are spread out. +Solution: Move the last error messages to errors.h. +Files: src/errors.h, src/channel.c, src/clientserver.c, src/diff.c, + src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, + src/gui_w32.c, src/help.c, src/if_mzsch.c, src/if_py_both.h, + src/if_python.c, src/job.c, src/json.c, src/list.c, src/option.c, + src/optionstr.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c, + src/register.c, src/scriptfile.c, src/sign.c, src/syntax.c, + src/tag.c, src/terminal.c, src/textprop.c, src/typval.c, + src/undo.c, src/userfunc.c, src/vim9compile.c, src/viminfo.c + +Patch 8.2.4013 +Problem: Build failure without the spell feature. +Solution: Adjust #ifdefs. +Files: src/errors.h + +Patch 8.2.4014 +Problem: Git and gitcommit file types not properly recognized. +Solution: Adjust filetype detection. (Tim Pope, closes #9477) +Files: runtime/filetype.vim, runtime/scripts.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4015 +Problem: Build failure with tiny features. (Tony Mechelynck) +Solution: Adjust #ifdefs. +Files: src/errors.h + +Patch 8.2.4016 +Problem: Vim9: incorrect error for argument that is shadowing var. +Solution: Ignore variable that is not in block where the function was + defined. +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4017 +Problem: Gcc warns for misleading indent in Athena menu code. +Solution: Add curlies around the two statements. (Dominique Pellé, + closes #9480) +Files: src/gui_athena.c + +Patch 8.2.4018 +Problem: ml_get error when win_execute redraws with Visual selection. +Solution: Disable Visual area temporarily. (closes #9479) +Files: src/evalwindow.c, src/proto/evalwindow.pro, src/structs.h, + src/evalbuffer.c, src/proto/evalbuffer.pro, src/evalvars.c, + src/if_py_both.h, src/evalfunc.c, + src/testdir/test_execute_func.vim + +Patch 8.2.4019 +Problem: Vim9: import mechanism is too complicated. +Solution: Do not use the Javascript mechanism but a much simpler one. +Files: runtime/doc/vim9.txt, src/vim9script.c, src/proto/vim9script.pro, + src/errors.h, src/structs.h, src/eval.c, src/proto/eval.pro, + src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, + src/vim9expr.c, src/vim9compile.c, src/vim9execute.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.4020 (after 8.2.4019) +Problem: Debugger test fails. +Solution: Fix import statement. +Files: src/testdir/test_debugger.vim + +Patch 8.2.4021 (after 8.2.4019) +Problem: Missing part of the :import changes. +Solution: Add changes in vim9cmds.c. +Files: src/vim9cmds.c + +Patch 8.2.4022 +Problem: Two error messages in the wrong file. +Solution: Use the error message from errors.h. +Files: src/popupwin.c, src/usercmd.c + +Patch 8.2.4023 +Problem: Using uninitialized variable. +Solution: Initialize "ufunc" also when an item is not exported. +Files: src/vim9script.c + +Patch 8.2.4024 +Problem: Confusing error message if imported name is used directly. +Solution: Give a better error message. +Files: src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4025 +Problem: Error for import not ending in .vim does not work for .vimrc. +Solution: Check that .vim is the end. (closes #9484) +Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim + +Patch 8.2.4026 +Problem: ml_get error with specific win_execute() command. (Sean Dewar) +Solution: Check cursor and Visual area are OK. +Files: src/evalwindow.c, src/testdir/test_execute_func.vim + +Patch 8.2.4027 +Problem: Import test fails on MS-Windows. +Solution: Use a different directory name. +Files: src/testdir/test_vim9_script.vim + +Patch 8.2.4028 +Problem: ml_get error with :doautoall and Visual area. (Sean Dewar) +Solution: Disable Visual mode while executing autocommands. +Files: src/structs.h, src/autocmd.c, src/testdir/test_autocmd.vim + +Patch 8.2.4029 +Problem: Debugging NFA regexp my crash, cached indent may be wrong. +Solution: Fix some debug warnings in the NFA regexp code. Make sure log_fd + is set when used. Fix breakindent and indent caching. (Christian + Brabandt, closes #9482) +Files: src/indent.c, src/optionstr.c, src/regexp_nfa.c + +Patch 8.2.4030 +Problem: A script local funcref is not found from a mapping. +Solution: When looking for a function, also find a script-local funcref. + (closes #9485) +Files: src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4031 +Problem: Crash in xterm with only two lines. (Dominique Pellé) +Solution: Only perform xterm compatibility test if possible. (closes #9488) +Files: src/term.c, src/testdir/test_startup.vim + +Patch 8.2.4032 +Problem: ATTRIBUTE_NORETURN is not needed. +Solution: Use NORETURN(). (Ozaki Kiichi, closes #9487) +Files: src/if_ruby.c, src/vim.h + +Patch 8.2.4033 +Problem: Running filetype tests leaves directory behind. +Solution: Delete the top directory. (closes #9483) +Files: src/testdir/test_filetype.vim + +Patch 8.2.4034 +Problem: Coverity warns for possibly using a NULL pointer. +Solution: Check v_partial is not NULL. +Files: src/vim9type.c + +Patch 8.2.4035 +Problem: Timer triggered at the debug prompt may cause trouble. +Solution: Do not trigger any timer at the debug prompt. (closes #9481) +Files: src/time.c + +Patch 8.2.4036 +Problem: Vim9: script test file is getting too long. +Solution: Split the import/export functionality to a separate file. +Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim, + src/testdir/Make_all.mak + +Patch 8.2.4037 +Problem: Insert mode completion is insufficiently tested. +Solution: Add more tests. Fix uncovered memory leak. (Yegappan Lakshmanan, + closes #9489) +Files: src/insexpand.c, src/testdir/test_ins_complete.vim + +Patch 8.2.4038 +Problem: Various code not used when features are disabled. +Solution: Add #ifdefs. (Dominique Pellé, closes #9491) +Files: src/alloc.c, src/buffer.c, src/charset.c, src/clipboard.c, + src/cmdhist.c, src/crypt.c, src/edit.c, src/eval.c, + src/evalbuffer.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h, + src/gui_xim.c, src/hashtab.c, src/highlight.c, src/insexpand.c, + src/main.c, src/mark.c, src/message.c, src/misc1.c, src/misc2.c, + src/ops.c, src/option.c, src/option.h, src/optionstr.c, + src/register.c, src/scriptfile.c, src/tag.c, src/term.c, + src/typval.c, src/usercmd.c, src/userfunc.c, src/vim9script.c, + src/vim9type.c + +Patch 8.2.4039 +Problem: The xdiff library is linked in even when not used. +Solution: Use configure to decide whether xdiff object files are included. +Files: src/Makefile, src/config.mk.in, src/configure.ac, + src/auto/configure, src/feature.h + +Patch 8.2.4040 +Problem: Keeping track of allocated lines in user functions is too + complicated. +Solution: Instead of freeing individual lines keep them all until the end. +Files: src/alloc.c, src/proto/alloc.pro, src/vim9compile.c, + src/userfunc.c, src/proto/userfunc.pro, src/message.c, + src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4041 +Problem: Using uninitialized pointer. +Solution: Store "ht" when variable is in another script. +Files: src/evalvars.c + +Patch 8.2.4042 +Problem: Vim9: build error. +Solution: Use grow array instead of character pointer. +Files: src/vim9execute.c + +Patch 8.2.4043 +Problem: Using int for second argument of ga_init2(). +Solution: Remove unnecessary type cast (int) when using sizeof(). +Files: src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c, + src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, + src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, + src/findfile.c, src/fold.c, src/hardcopy.c, src/help.c, + src/job.c, src/list.c, src/menu.c, src/os_win32.c, src/register.c, + src/scriptfile.c, src/spellfile.c, src/spellsuggest.c, + src/strings.c, src/syntax.c, src/tag.c, src/terminal.c, + src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9execute.c, + src/viminfo.c, src/window.c, src/if_py_both.h + +Patch 8.2.4044 +Problem: Vim9: no error when importing the same script twice. +Solution: Give an error, unless it is a reload. +Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim + +Patch 8.2.4045 +Problem: Some global functions are only used in one file. +Solution: Make the functions static. (Yegappan Lakshmanan, closes #9492) +Files: src/ex_getln.c, src/highlight.c, src/proto/ex_getln.pro, + src/proto/highlight.pro, src/proto/vim9compile.pro, + src/proto/vim9instr.pro, src/proto/window.pro, src/vim9compile.c, + src/vim9instr.c, src/window.c + +Patch 8.2.4046 +Problem: Some error messages not in the right place. +Solution: Adjust the errors file. Fix typo. +Files: src/errors.h, src/regexp_bt.c, src/typval.c, + +Patch 8.2.4047 +Problem: Depending on the build features error messages are unused. +Solution: Add #ifdefs. (Dominique Pellé, closes #9493) +Files: src/errors.h + +Patch 8.2.4048 +Problem: gcc complains about use of "%p" in printf. +Solution: Add (void *) typecast. (Dominique Pellé, closes #9494) +Files: src/if_py_both.h + +Patch 8.2.4049 +Problem: Vim9: reading before the start of the line with "$" by itself. +Solution: Do not subtract one when reporting the error. +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4050 +Problem: Vim9: need to prefix every item in an autoload script. +Solution: First step in supporting "vim9script autoload" and "import + autoload". +Files: runtime/doc/repeat.txt, runtime/doc/vim9.txt, src/structs.h, + src/errors.h, src/vim9script.c, src/scriptfile.c, + src/proto/scriptfile.pro, src/userfunc.c, src/eval.c, + src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim9expr.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4051 +Problem: Compiler complains about possibly uninitialized variable. +Solution: Add code to avoid a compiler warning. (John Marriott) +Files: src/scriptfile.c + +Patch 8.2.4052 +Problem: Not easy to resize a window from a plugin. +Solution: Add win_move_separator() and win_move_statusline() functions. + (Daniel Steinberg, closes #9486) +Files: runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c, + src/evalwindow.c, src/proto/evalwindow.pro, + src/testdir/test_window_cmd.vim + +Patch 8.2.4053 +Problem: Vim9: autoload mechanism doesn't fully work yet. +Solution: Define functions and variables with their autoload name, add the + prefix when calling a function, find the variable in the table of + script variables. +Files: src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro, + src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c, + src/evalvars.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4054 (after 8.2.4053) +Problem: Vim9 script test fails. +Solution: Add missing change. +Files: src/vim9compile.c + +Patch 8.2.4055 +Problem: Vim9: line break in expression causes v:errmsg to be filled. + (Yegappan Lakshmanan) +Solution: Do not give an error when skipping over an expression. +Files: src/userfunc.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4056 +Problem: Vim9: memory leak when exporting function in autoload script. +Solution: Free the name if replacing it. +Files: src/scriptfile.c + +Patch 8.2.4057 +Problem: Vim9: not fully implementing the autoload mechanism. +Solution: Allow for exporting a legacy function. Improve test coverage. +Files: src/vim9script.c, src/testdir/test_vim9_import.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.4058 +Problem: Vim9: import test failure in wrong line. +Solution: Adjust line number. +Files: src/testdir/test_vim9_import.vim + +Patch 8.2.4059 +Problem: Vim9: an expression of a map cannot access script-local items. + (Maxim Kim) +Solution: Use the script ID of where the map was defined. +Files: src/getchar.c, src/map.c, src/proto/map.pro, + src/testdir/test_vim9_import.vim + +Patch 8.2.4060 +Problem: win_execute() is slow on systems where getcwd() or chdir() is + slow. (Rick Howe) +Solution: Avoid using getcwd() and chdir() if no local directory is used and + 'acd' is not set. (closes #9504) +Files: src/evalwindow.c + +Patch 8.2.4061 +Problem: Codecov bash script is deprecated. +Solution: Use the codecov action. (Ozaki Kiichi, closes #9505) +Files: .github/workflows/ci.yml + +Patch 8.2.4062 +Problem: Match highlighting of tab too short. +Solution: Do not stop match highlighting if on a Tab. (Christian Brabandt, + closes #9507, closes #9500) +Files: src/drawline.c, src/testdir/test_match.vim, + src/testdir/dumps/Test_match_tab_linebreak.dump + +Patch 8.2.4063 +Problem: Vim9: exported function in autoload script not found. (Yegappan + Lakshmanan) +Solution: Use the autoload prefix to search for the function. +Files: src/userfunc.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4064 +Problem: Foam files are not detected. +Solution: Detect the foam filetype by the path and file contents. (Mohammed + Elwardi Fadeli, closes #9501) +Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4065 +Problem: Computation overflow with large count for :yank. +Solution: Avoid an overflow. +Files: src/ex_docmd.c, src/testdir/test_excmd.vim + +Patch 8.2.4066 +Problem: Vim9: imported autoload script loaded again. +Solution: Do not create a new imported_T every time. +Files: src/vim9script.c, src/vim9compile.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4067 +Problem: Vim9: cannot call imported function with :call. (Drew Vogel) +Solution: Translate the function name. (closes #9510) +Files: src/userfunc.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4068 (after 8.2.4066) +Problem: Vim9: import test fails. +Solution: Add missing change. +Files: src/scriptfile.c + +Patch 8.2.4069 +Problem: Vim9: import test fails on MS-Windows. +Solution: Ignore case. Adjust test to avoid name that only differs in case. +Files: src/eval.c, src/scriptfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4070 +Problem: Using uninitialized memory when reading empty file. +Solution: Check for empty file before checking for NL. (Dominique Pellé, + closes #9511) +Files: src/filepath.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.4071 +Problem: Vim9: no detection of return in try/endtry. (Dominique Pellé) +Solution: Check if any of the blocks inside try/endtry did not end in + return. +Files: src/vim9.h, src/vim9compile.c, src/vim9cmds.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4072 +Problem: Vim9: compiling function fails when autoload script is not loaded + yet. +Solution: Depend on runtime loading. +Files: src/vim9expr.c, src/vim9script.c, src/vim9instr.c, + src/vim9execute.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4073 +Problem: Coverity warns for using NULL pointer. +Solution: Bail out when running out of memory. Check for running over end of + a string. +Files: src/userfunc.c, + +Patch 8.2.4074 +Problem: Going over the end of NameBuff. +Solution: Check length when appending a space. +Files: src/drawscreen.c, src/testdir/test_edit.vim + +Patch 8.2.4075 (after 8.2.4073) +Problem: Test failures. +Solution: Change check for NULL pointer. +Files: src/userfunc.c + +Patch 8.2.4076 +Problem: Memory leak in autoload import. +Solution: Do not overwrite the autoload prefix. +Files: src/vim9script.c + +Patch 8.2.4077 +Problem: Not all Libsensors files are recognized. +Solution: Add "sensors.d/*" pattern. (Doug Kearns) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4078 +Problem: Terminal test for current directory not used on FreeBSD. +Solution: Make it work on FreeBSD. (Ozaki Kiichi, closes #9516) Add + TermWait() inside Run_shell_in_terminal() as a generic solution. +Files: src/testdir/test_terminal3.vim, src/testdir/term_util.vim, + src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim, + src/testdir/test_mapping.vim + +Patch 8.2.4079 +Problem: MS-Windows: "gvim --version" didn't work when build with VIMDLL. +Solution: Adjust #ifdef. (Ken Takata, closes #9517) +Files: src/main.c + +Patch 8.2.4080 +Problem: Not sufficient test coverage for xxd. +Solution: Add a few more test cases. (Erki Auerswald, closes #9515) +Files: src/testdir/test_xxd.vim + +Patch 8.2.4081 +Problem: CodeQL reports problem in if_cscope causing it to fail. +Solution: Use execvp() instead of execl(). Merge the header file into the + source file. (Ozaki Kiichi, closes #9519) +Files: Filelist, src/Make_cyg_ming.mak, src/Make_mvc.mak, + src/Make_vms.mms, src/Makefile, src/if_cscope.c, src/if_cscope.h, + src/testdir/test_cscope.vim + +Patch 8.2.4082 +Problem: Check for autoload file name and prefix fails. (Christian J. + Robinson) +Solution: Only lower case the prefix on systems where the file name is not + case sensitive. +Files: src/scriptfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4083 +Problem: Vim9: no test for "vim9script autoload" and using script variable + in the same script. +Solution: Add a simple test. Fix uncovered problem. +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4084 +Problem: Memory leak when looking for autoload prefixed variable. +Solution: Free the concatenated string. +Files: src/evalvars.c + +Patch 8.2.4085 +Problem: Vim9: no test for using import in legacy script. +Solution: Add a test. +Files: src/testdir/test_vim9_import.vim + +Patch 8.2.4086 +Problem: "cctx" argument of find_func_even_dead() is unused. +Solution: Remove the argument. +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c, + src/vim9instr.c, src/evalfunc.c, src/evalvars.c, src/testing.c, + src/vim9execute.c, src/vim9expr.c, src/vim9script.c, + src/vim9type.c + +Patch 8.2.4087 +Problem: Cannot test items from an autoload script easily. +Solution: Add the "autoload" value for test_override(). +Files: runtime/doc/testing.txt, src/testing.c, src/globals.h, + src/vim9script.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4088 +Problem: Xxd cannot output everything in one line. +Solution: Make zero columns mean infinite columns. (Erik Auerswald, + closes #9524) +Files: runtime/doc/xxd.1, runtime/doc/xxd.man, src/testdir/test_xxd.vim, + src/xxd/xxd.c + +Patch 8.2.4089 (after 8.2.4078) +Problem: Terminal test for current directory fails on FreeBSD. +Solution: Skip the test. +Files: src/testdir/test_terminal3.vim + +Patch 8.2.4090 +Problem: After restoring a session buffer order can be quite different. +Solution: Create buffers first. (Evgeni Chasnovski, closes #9520) +Files: src/session.c, src/testdir/test_mksession.vim + +Patch 8.2.4091 +Problem: Virtcol is recomputed for statusline unnecessarily. +Solution: Just use "w_virtcol". (closes #9523) +Files: src/buffer.c, src/testdir/test_statusline.vim + +Patch 8.2.4092 +Problem: macOS CI: unnecessarily doing "Install packages". +Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, + closes #9521) +Files: .github/workflows/ci.yml + +Patch 8.2.4093 +Problem: Cached breakindent values not initialized properly. +Solution: Initialize and cache formatlistpat. (Christian Brabandt, + closes #9526, closes #9512) +Files: runtime/doc/options.txt, src/indent.c, src/option.c, + src/proto/option.pro, src/testdir/test_breakindent.vim + +Patch 8.2.4094 +Problem: 'virtualedit' is window-local but using buffer-local enum. +Solution: Use window-local enum. (closes #9529) +Files: src/option.h, src/optiondefs.h + +Patch 8.2.4095 +Problem: Sed script not recognized by the first line. +Solution: Recognize a sed script starting with "#n". (Doug Kearns) +Files: runtime/scripts.vim, src/testdir/test_filetype.vim + +Patch 8.2.4096 +Problem: Linux CI: unnecessarily installing packages +Solution: Only install packages for huge build. (Ozaki Kiichi, + closes #9530) +Files: .github/workflows/ci.yml + +Patch 8.2.4097 +Problem: Wrong number in error message on 32 bit system. (John Paul Adrian + Glaubitz) +Solution: Add type cast. (closes #9527) +Files: src/vim9compile.c + +Patch 8.2.4098 +Problem: Typing "interrupt" at debug prompt may keep exception around, + causing function calls to fail. +Solution: Discard any exception at the toplevel. (closes #9532) +Files: src/main.c + +Patch 8.2.4099 +Problem: Vim9: cannot use Vim9 syntax in mapping. +Solution: Add <ScriptCmd> to use the script context for a command. +Files: runtime/doc/map.txt, src/normal.c, src/getchar.c, + src/proto/getchar.pro, src/ex_getln.c, src/edit.c, src/terminal.c, + src/keymap.h, src/insexpand.c, src/misc2.c, src/ops.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4100 +Problem: Early return when getting the 'formatlistpat' value. +Solution: Remove the first line. (Christian Brabandt) +Files: src/option.c, src/testdir/test_breakindent.vim + +Patch 8.2.4101 +Problem: Warning for unused argument in tiny version. +Solution: Add "UNUSED". +Files: src/getchar.c + +Patch 8.2.4102 +Problem: Vim9: import cannot be used after method. +Solution: Recognize an imported function name. (closes #9496) +Files: src/eval.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4103 +Problem: Vim9: variable declared in for loop not initialized. +Solution: Always initialize the variable. (closes #9535) +Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4104 +Problem: Vim9: lower casing the autoload prefix causes problems. +Solution: Always store the prefix with case preserved. +Files: src/scriptfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4105 +Problem: Translation related comment in the wrong place. +Solution: Move it back with the text. (Ken Takata, closes #9537) +Files: src/errors.h, src/ex_docmd.c + +Patch 8.2.4106 +Problem: Going over the end of the w_lines array. +Solution: Break out of the loop when "idx" is too big. (issue #9540) +Files: src/drawscreen.c + +Patch 8.2.4107 +Problem: Script context not restored after using <ScriptCmd>. +Solution: Also restore context when not in a script. (closes #9536) + Add the 'c' flag to feedkeys() to be able to test this. +Files: runtime/doc/builtin.txt, src/getchar.c, src/evalfunc.c, + src/testdir/test_mapping.vim + +Patch 8.2.4108 +Problem: Going over the end of the w_lines array. +Solution: Check not going over the end and limit to Rows. (issue #9540) +Files: src/drawscreen.c + +Patch 8.2.4109 +Problem: MS-Windows: high dpi support is outdated. +Solution: Improve High DPI support by using PerMonitorV2. (Ken Takata + closes #9525, closes #3102) +Files: src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest + +Patch 8.2.4110 +Problem: Coverity warns for using NULL pointer. +Solution: Check "evalarg" is not NULL. Skip errors when "verbose" is false. +Files: src/eval.c + +Patch 8.2.4111 +Problem: Potential problem when map is deleted while executing. +Solution: Reset last used map pointer when deleting a mapping. +Files: src/map.c + +Patch 8.2.4112 +Problem: Function not deleted at end of test. +Solution: Delete the function. +Files: src/testdir/test_diffmode.vim + +Patch 8.2.4113 +Problem: Typo on DOCMD_RANGEOK results in not recognizing command. +Solution: Correct the typo. (closes #9539) +Files: src/vim.h, src/testdir/test_mapping.vim + +Patch 8.2.4114 +Problem: Vim9: type checking for a funcref does not work for when it is + used in a method. +Solution: Pass the base to where the type is checked. +Files: src/vim9type.c, src/proto/vim9type.pro, src/userfunc.c, + src/testdir/test_vim9_expr.vim + +Patch 8.2.4115 +Problem: Cannot use a method with a complex expression. +Solution: Evaluate the expression after "->" and use the result. +Files: src/eval.c, src/errors.h, src/testdir/test_vim9_expr.vim + +Patch 8.2.4116 +Problem: Vim9: cannot use a method with a complex expression in a :def + function. +Solution: Implement compiling the expression. +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4117 +Problem: Vim9: wrong white space error after using imported item. +Solution: Don't skip over white space. (closes #9544) +Files: src/eval.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4118 +Problem: Using UNUSED for argument that is used. +Solution: Remove UNUSED. +Files: src/usercmd.c + +Patch 8.2.4119 +Problem: Build failure when disabling the channel feature. +Solution: Adjust #ifdef. (Dominique Pellé, closes #9545) +Files: src/misc2.c + +Patch 8.2.4120 +Problem: Block insert goes over the end of the line. +Solution: Handle invalid byte better. Fix inserting the wrong text. +Files: src/ops.c, src/testdir/test_visual.vim + +Patch 8.2.4121 +Problem: Visual test fails on MS-Windows. +Solution: Set 'isprint' so that the character used is not printable. +Files: src/testdir/test_visual.vim + +Patch 8.2.4122 +Problem: ":command Cmd" does not show custom completion argument. +Solution: Show the completion argument when using ":verbose". +Files: src/usercmd.c, src/testdir/test_usercommands.vim + +Patch 8.2.4123 +Problem: Complete function cannot be import.Name. +Solution: Dereference the function name if needed. Also: do not see + "import.Name" as a builtin function. (closes #9541) +Files: src/userfunc.c, src/eval.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4124 +Problem: Vim9: method in compiled function may not see script item. +Solution: Make sure not to skip to the next line. (closes #9496) +Files: src/vim9expr.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4125 +Problem: Completion tests fail. +Solution: Disable error messages while dereferencing the function name. +Files: src/eval.c + +Patch 8.2.4126 +Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. + (Dominique Pellé) +Solution: Only call Tcl_Finalize() when initialized. (closes #9546) +Files: src/if_tcl.c + +Patch 8.2.4127 +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. +Files: src/usercmd.c + +Patch 8.2.4128 +Problem: Crash when method cannot be found. (Christian J. Robinson) +Solution: Don't mix up pointer names. +Files: src/eval.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4129 +Problem: Building with +sound but without +eval fails. (Dominique Pellé) +Solution: Disable canberra in tiny and small build. (closes #9548) +Files: src/configure.ac, src/auto/configure + +Patch 8.2.4130 +Problem: MS-Windows: MSVC build may have libraries duplicated. +Solution: Improve the MSVC Makefile. (Ken Takata, closes #9547) +Files: src/Make_mvc.mak + +Patch 8.2.4131 +Problem: Vim9: calling function in autoload import does not work in a :def + function. +Solution: When a variable is not found and a PCALL follows use a funcref. + (closes #9550) +Files: src/vim9execute.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4132 +Problem: Vim9: wrong error message when autoload script can't be found. +Solution: Correct check for using autoload with wrong name. +Files: src/vim9script.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4133 +Problem: output of ":scriptnames" goes into the message history, while this + does not happen for other commands, such as ":ls". +Solution: Use msg_outtrans() instead of smsg(). (closes #9551) +Files: src/scriptfile.c, src/testdir/test_scriptnames.vim + +Patch 8.2.4134 +Problem: MS-Windows: test for import with absolute path fails. +Solution: Handle path starting with slash as an absolute path. +Files: src/vim9script.c + +Patch 8.2.4135 +Problem: Vim9: ":scriptnames" shows unloaded imported autoload script. +Solution: Mark the unloaded script with "A". (closes #9552) +Files: runtime/doc/repeat.txt, src/scriptfile.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4136 +Problem: Vim9: the "autoload" argument of ":vim9script" is not useful. +Solution: Remove the argument. (closes #9555) +Files: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/vim9script.c, + src/errors.h, src/testdir/test_vim9_import.vim + +Patch 8.2.4137 +Problem: Vim9: calling import with and without method is inconsistent. +Solution: Set a flag that a parenthesis follows to compile_load_scriptvar(). + Add some more tests. Improve error message. +Files: src/vim9expr.c, src/vim9execute.c, src/vim9script.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4138 +Problem: Vim9: no error for return with argument when the function does not + return anything. +Solution: Give an error for the invalid argument. (issue #9497) +Files: src/vim9cmds.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4139 +Problem: Using freed memory if an expression abbreviation deletes the + abbreviation. +Solution: Do not access the pointer after evaluating the expression. +Files: src/map.c, src/testdir/test_mapping.vim + +Patch 8.2.4140 +Problem: maparg() does not indicate the type of script where it was defined. +Solution: Add "scriptversion". +Files: runtime/doc/builtin.txt, src/map.c, src/testdir/test_maparg.vim + +Patch 8.2.4141 (after 8.2.4140) +Problem: Vim9 builtin functions test fails. +Solution: Add "scriptversion" item to maparg() result. +Files: src/testdir/test_vim9_builtin.vim + +Patch 8.2.4142 +Problem: Build failure with normal features without persistent undo. +Solution: Adjust #ifdef. (closes #9557) +Files: src/fileio.c + +Patch 8.2.4143 +Problem: MS-Windows: IME support for Win9x is obsolete. +Solution: Remove the Win9x code. (Ken Takata, closes #9559) +Files: src/gui_w32.c + +Patch 8.2.4144 +Problem: Cannot load libsodium dynamically. +Solution: Support dynamic loading on MS-Windows. (Ken Takata, closes #9554) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/buffer.c, + src/crypt.c, src/memline.c, src/proto/crypt.pro + +Patch 8.2.4145 +Problem: Confusing error when using name of import for a function. +Solution: Pass a flag to trans_function_name(). +Files: src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4146 +Problem: Vim9: shadowed function can be used in compiled function but not + at script level. +Solution: Also give an error in a compiled function. (closes #9563) +Files: src/vim9expr.c + +Patch 8.2.4147 +Problem: E464 does not always include the offending command. +Solution: Add another error message with "%s". (closes #9564) +Files: src/errors.h, src/vim9compile.c, src/ex_docmd.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4148 +Problem: Deleting any mapping may cause <ScriptCmd> to not set the script + context. +Solution: Only reset last_used_map if it is the deleted mapping. + (closes #9568) +Files: src/map.c, src/getchar.c, src/proto/getchar.pro, + src/testdir/test_mapping.vim + +Patch 8.2.4149 +Problem: Test override not restored, autocommand left behind. +Solution: Correct restoring test override. Delete autocommand afterwards. +Files: src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim + +Patch 8.2.4150 +Problem: Coverity warns for using pointer after free. +Solution: Swap statements, even though using the pointer is no problem. +Files: src/map.c + +Patch 8.2.4151 +Problem: Reading beyond the end of a line. +Solution: For block insert only use the offset for correcting the length. +Files: src/ops.c, src/testdir/test_visual.vim + +Patch 8.2.4152 +Problem: Block insert with double wide character fails. +Solution: Adjust the expected output. +Files: src/testdir/test_utf8.vim + +Patch 8.2.4153 +Problem: MS-Windows: Global IME is no longer supported. +Solution: Remove the Global IME implementation. (Ken Takata, closes #9562) +Files: Filelist, runtime/doc/mbyte.txt, src/Make_mvc.mak, src/dimm.idl, + src/glbl_ime.cpp, src/glbl_ime.h, src/gui_w32.c, src/vim.h + +Patch 8.2.4154 +Problem: ml_get error when exchanging windows in Visual mode. +Solution: Correct end of Visual area when entering another buffer. +Files: src/window.c, src/testdir/test_visual.vim + +Patch 8.2.4155 +Problem: Translating strftime() argument results in check error. +Solution: Add gettext comment. +Files: src/time.c + +Patch 8.2.4156 +Problem: Fileinfo message overwrites echo'ed message. +Solution: Reset need_fileinfo when displaying a message. (Rob Pilling, + closes #9569) +Files: src/message.c, src/testdir/test_messages.vim, + src/testdir/dumps/Test_fileinfo_after_echo.dump + +Patch 8.2.4157 +Problem: Terminal test fails because Windows sets the title. +Solution: Add the "vterm_title" testing override and use it in the test. + (Ozaki Kiichi, closes #9556) +Files: runtime/doc/testing.txt, src/globals.h, src/terminal.c, + src/testing.c, src/testdir/test_terminal.vim + +Patch 8.2.4158 +Problem: MS-Windows: memory leak in :browse. +Solution: Free stuff before returning. (Ken Takata, closes #9574) +Files: src/gui_w32.c + +Patch 8.2.4159 +Problem: MS-Windows: _WndProc() is very long. +Solution: Move code to separate functions. (Ken Takata, closes #9573) +Files: src/gui_w32.c + +Patch 8.2.4160 +Problem: Cannot change the register used for Select mode delete. +Solution: Make CTRL-R set the register to be used when deleting text for + Select mode. (Shougo Matsushita, closes #9531) +Files: runtime/doc/visual.txt, src/globals.h, src/normal.c, src/ops.c, + src/testdir/test_selectmode.vim + +Patch 8.2.4161 +Problem: Vim9: warning for missing white space after imported variable. +Solution: Do not skip white space. (closes #9567) +Files: src/vim9expr.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4162 +Problem: Vim9: no error for redefining function with export. +Solution: Check for existing function with/without prefix. (closes #9577) +Files: src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4163 +Problem: No error for omitting function name after autoload prefix. +Solution: Check for missing function name. (issue #9577) +Files: src/userfunc.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4164 (after 8.2.4162) +Problem: Error in legacy code for function shadowing variable. +Solution: Only give the error in Vim9 script. +Files: src/userfunc.c + +Patch 8.2.4165 +Problem: The nv_g_cmd() function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #9576) +Files: src/normal.c + +Patch 8.2.4166 +Problem: Undo synced when switching buffer in another window. +Solution: Do not sync undo when not needed. (closes #9575) +Files: src/buffer.c, src/testdir/test_timers.vim + +Patch 8.2.4167 +Problem: Vim9: error message for old style import. +Solution: Use another error message. Add a test. +Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_import.vim + +Patch 8.2.4168 (after 8.2.4163) +Problem: Disallowing empty function name breaks existing plugins. +Solution: Allow empty function name in legacy script. +Files: src/userfunc.c, src/testdir/test_autoload.vim, + src/testdir/sautest/autoload/foo.vim + +Patch 8.2.4169 +Problem: MS-Windows: unnecessary casts and other minor things. +Solution: Clean up the MS-Windows code. (Ken Takata, closes #9583) +Files: src/gui_w32.c + +Patch 8.2.4170 +Problem: MS-Windows: still using old message API calls. +Solution: Call the "W" functions directly. (Ken Takata, closes #9582) +Files: src/gui_w32.c, src/os_mswin.c, src/os_win32.c, src/os_win32.h + +Patch 8.2.4171 +Problem: Cannot invoke option function using autoload import. +Solution: Expand the import to an autoload function name. (closes #9578) +Files: src/userfunc.c, src/evalvars.c, src/proto/evalvars.pro, + src/option.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4172 +Problem: Filetype detection for BASIC is not optimal. +Solution: Improve BASIC filetype detection. (Doug Kearns) +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4173 +Problem: Cannot use an import in 'foldexpr'. +Solution: Set the script context to where 'foldexpr' was set. (closes #9584) + Fix that the script context was not set for all buffers. +Files: src/eval.c, src/proto/eval.pro, src/fold.c, src/structs.h, + src/option.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4174 +Problem: Vim9: can use an autoload name in normal script. +Solution: Disallow using an autoload name. +Files: src/userfunc.c, src/errors.h, src/testdir/test_vim9_import.vim + +Patch 8.2.4175 +Problem: MS-Windows: runtime check for multi-line balloon is obsolete. +Solution: Remove the obsolete code. (Ken Takata, closes #9592) +Files: src/evalfunc.c, src/gui_w32.c, src/proto/gui_w32.pro + +Patch 8.2.4176 +Problem: Vim9: cannot use imported function with call(). +Solution: Translate the function name. (closes #9590) +Files: src/evalfunc.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4177 +Problem: Vim9: autoload script not loaded after "vim9script noclear". +Solution: Check IMP_FLAGS_AUTOLOAD properly. (closes #9593) +Files: src/vim9compile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4178 +Problem: Vim9: invalid error for return type of lambda when debugging. +Solution: Do not check the return type of a lambda. (closes #9589) +Files: src/vim9cmds.c + +Patch 8.2.4179 +Problem: 'foldtext' is evaluated in the current script context. +Solution: Use the script context where the option was set. +Files: src/fold.c, src/buffer.c, src/eval.c, src/proto/eval.pro, + src/findfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4180 +Problem: 'balloonexpr' is evaluated in the current script context. +Solution: Use the script context where the option was set. +Files: src/beval.c, src/option.c, src/proto/option.pro, + src/testdir/test_balloon.vim, + src/testdir/dumps/Test_balloon_eval_term_01.dump, + src/testdir/dumps/Test_balloon_eval_term_01a.dump, + src/testdir/dumps/Test_balloon_eval_term_02.dump + +Patch 8.2.4181 +Problem: Vim9: cannot use an import in 'diffexpr'. +Solution: Set the script context when evaluating 'diffexpr'. Do not require + 'diffexpr' to return a bool, it was ignored anyway. +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4182 (after 8.2.4182) +Problem: Memory leak when evaluating 'diffexpr'. +Solution: Use free_tv() instead of clear_tv(). +Files: src/evalvars.c + +Patch 8.2.4183 +Problem: Cannot use an import in 'formatexpr'. +Solution: Set the script context when evaluating 'formatexpr'. +Files: src/textformat.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4184 +Problem: Cannot use an import in 'includeexpr'. +Solution: Set the script context when evaluating 'includeexpr' +Files: src/findfile.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4185 +Problem: Cannot use an import in 'indentexpr'. +Solution: Set the script context when evaluating 'indentexpr' +Files: src/indent.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4186 +Problem: Cannot use an import in 'patchexpr'. +Solution: Set the script context when evaluating 'patchexpr'. Do not + require 'patchexpr' to return a bool, it was ignored anyway. +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4187 +Problem: Gnuplot file not recognized. +Solution: Recognize ".gnuplot". (closes #9588) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4188 +Problem: Not all gitconfig files are recognized. +Solution: Add a few more patterns. (Tim Pope, closes #9597) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4189 +Problem: MS-Windows: code for "old look" is obsolete. +Solution: Delete obsolete code. Use "MS Shell Dlg" font. (Ken Takata, + closes #9596) +Files: src/gui_w32.c + +Patch 8.2.4190 +Problem: All conceal tests are skipped without the screendumps feature. +Solution: Only skip the tests that use screendumps. (closes #9599) +Files: src/testdir/test_conceal.vim + +Patch 8.2.4191 +Problem: json5 files are not recognized. +Solution: Add a pattern for json5 files. (closes #9601) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4192 +Problem: Cannot use an import in 'printexpr'. +Solution: Set the script context when evaluating 'printexpr'. +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4193 +Problem: Cannot use an import in 'charconvert'. +Solution: Set the script context when evaluating 'charconvert'. Also expand + script-local functions in 'charconvert'. +Files: src/evalvars.c, src/optionstr.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4194 +Problem: MS-Windows: code for calculating font size is duplicated. +Solution: Move the code to a function. (Ken Takata, closes #9603) +Files: src/gui_w32.c + +Patch 8.2.4195 +Problem: Resizing terminal may cause to behave like CTRL-Z. +Solution: Set "got_tstp" only when in_mch_suspend is set. (Dorian Bivolaru, + closes #9602, closes #9586) +Files: src/os_unix.c + +Patch 8.2.4196 +Problem: Various file types not recognized. +Solution: Add patterns to recognize more file types (closes #9607) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4197 +Problem: Cannot use an import in the "expr" part of 'spellsuggest'. +Solution: Set the script context when evaluating "expr" of 'spellsuggest'. +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4198 +Problem: Vim9: the switch for executing instructions is too long. +Solution: Move some code to separate functions. +Files: src/vim9execute.c + +Patch 8.2.4199 +Problem: MS-Windows: Support for MSVC before 2003 is not useful. +Solution: Remove the exceptions for MSVC 6.0. (Ken Takata, closes #9616) +Files: src/GvimExt/gvimext.h, src/ex_docmd.c, src/feature.h, + src/gui_w32.c, src/if_cscope.c, src/if_ole.cpp, src/if_ruby.c, + src/macros.h, src/os_mswin.c, src/os_win32.c, src/os_win32.h, + src/proto/os_win32.pro, src/time.c, src/vim.h + +Patch 8.2.4200 +Problem: Some tests do not clean up properly. +Solution: Delete created files. (Yegappan Lakshmanan, closes #9611) +Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, + src/testdir/test_vim9_import.vim + +Patch 8.2.4201 +Problem: When using the GUI CTRL-Z does not stop gvim. +Solution: When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev, + closes #9570) +Files: src/os_unix.c + +Patch 8.2.4202 +Problem: Vim9: cannot export function that exists globally. +Solution: When checking if a function already exists only check for + script-local functions. (closes #9615) +Files: src/userfunc.c, src/proto/userfunc.pro, src/vim.h, + src/vim9compile.c, src/vim9instr.c, + src/testdir/test_vim9_import.vim + +Patch 8.2.4203 +Problem: Entering a character with CTRL-V may include modifiers. +Solution: Reset "mod_mask" when entering a character with digits after + CTRL-V. (closes #9610) +Files: src/edit.c, src/testdir/test_edit.vim + +Patch 8.2.4204 +Problem: screenpos() has non-zero row for invisible text. +Solution: Only add the window row when the text is visible. (closes #9618) +Files: src/move.c, src/testdir/test_cursor_func.vim + +Patch 8.2.4205 +Problem: The normal_cmd() function is too long. +Solution: Move parts to separate functions. (Yegappan Lakshmanan, + closes #9608) +Files: src/normal.c + +Patch 8.2.4206 +Problem: Condition with many "(" causes a crash. +Solution: Limit recursion to 1000. +Files: src/errors.h, src/eval.c, src/testdir/test_eval_stuff.vim + +Patch 8.2.4207 (after 8.2.4206) +Problem: Recursion test fails with MSVC. +Solution: Use a smaller limit for MSVC. +Files: src/eval.c + +Patch 8.2.4208 +Problem: Using setbufvar() may change the window title. +Solution: Do not redraw when creating the autocommand window. (closes #9613) +Files: src/autocmd.c, src/testdir/test_functions.vim + +Patch 8.2.4209 +Problem: partial in 'opfunc' cannot use an imported function. +Solution: Also expand the function name in a partial. (closes #9614) +Files: src/evalvars.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4210 (after 8.2.4208) +Problem: Window title test fails in some configurations. +Solution: Only run the test if the title can be obtained. +Files: src/testdir/test_functions.vim + +Patch 8.2.4211 (after 8.2.4208) +Problem: Window title test still fails in some configurations. +Solution: Use WaitForAssert(). +Files: src/testdir/test_functions.vim + +Patch 8.2.4212 (after 8.2.4208) +Problem: Window title test still fails in some configurations. +Solution: Explicitly set the 'title' option. +Files: src/testdir/test_functions.vim + +Patch 8.2.4213 +Problem: Too much code for supporting old MSVC versions. +Solution: Remove MSVC 2003 support. (Ken Takata, closes #9623) +Files: Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c, + src/msvcsetup.bat, src/os_win32.c + +Patch 8.2.4214 +Problem: Illegal memory access with large 'tabstop' in Ex mode. +Solution: Allocate enough memory. +Files: src/ex_getln.c, src/testdir/test_ex_mode.vim + +Patch 8.2.4215 +Problem: Illegal memory access when copying lines in Visual mode. +Solution: Adjust the Visual position after copying lines. +Files: src/ex_cmds.c, src/testdir/test_visual.vim + +Patch 8.2.4216 +Problem: Vim9: cannot use a function from an autoload import directly. +Solution: Add the AUTOLOAD instruction to figure out at runtime. + (closes #9620) +Files: src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c, + src/proto/vim9instr.pro, src/testdir/test_vim9_import.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4217 +Problem: Illegal memory access when undo makes Visual area invalid. +Solution: Correct the Visual area after undo. +Files: src/undo.c, src/testdir/test_visual.vim + +Patch 8.2.4218 +Problem: Illegal memory access with bracketed paste in Ex mode. +Solution: Reserve space for the trailing NUL. +Files: src/edit.c, src/testdir/test_paste.vim + +Patch 8.2.4219 +Problem: Reading before the start of the line. +Solution: Check boundary before trying to read the character. +Files: src/register.c, src/testdir/test_visual.vim + +Patch 8.2.4220 +Problem: MS-Windows: some old compiler support remains. +Solution: Remove obsolete compiler support. (Ken Takata, closes #9627) +Files: src/Make_mvc.mak, src/vim.h + +Patch 8.2.4221 +Problem: Some functions in normal.c are very long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #9628) +Files: src/normal.c + +Patch 8.2.4222 +Problem: MS-Windows: clumsy way to suppress progress on CI. +Solution: Check for "$CI" in the Makefile itself. (Ken Takata, closes #9631) +Files: .github/workflows/ci.yml, ci/appveyor.bat, src/Make_mvc.mak + +Patch 8.2.4223 +Problem: Long/int compiler warnings; function arguments swapped. +Solution: Add type casts. Swap arguments. (Ken Takata, closes #9632) +Files: src/alloc.c, src/eval.c, src/vim9script.c + +Patch 8.2.4224 +Problem: Vim9: no error when using a number for map() second argument +Solution: Disallow number to string conversion. (closes #9630) +Files: src/eval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4225 +Problem: Vim9: depth argument of :lockvar not parsed in :def function. +Solution: Parse the optional depth argument. (closes #9629) + Fix that locking doesn't work for a non-materialize list. +Files: src/vim9cmds.c, src/evalvars.c, src/structs.h, src/evalfunc.c, + src/errors.h, src/vim9execute.c, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4226 (after 8.2.4224) +Problem: Filter-map test fails. +Solution: Only reject number argument in Vim9 script. +Files: src/eval.c + +Patch 8.2.4227 +Problem: Vim9: using "lockvar!" in :def function does not work. +Solution: Add "!" instead of "-1". (closes #9634) +Files: src/vim9cmds.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4228 +Problem: No tests for clicking in the GUI tabline. +Solution: Add test functions to generate the events. Add tests using the + functions. (Yegappan Lakshmanan, closes #9638) +Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/normal.c, + src/proto/testing.pro, src/testdir/test_diffmode.vim, + src/testdir/test_gui.vim, src/testdir/test_normal.vim, + src/testing.c + +Patch 8.2.4229 +Problem: Possible crash when invoking timer callback fails. +Solution: Initialize the typval. Give an error for an empty callback. + (closes #9636) +Files: src/time.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4230 +Problem: MS-Windows: set_guifontwide() is included but won't work. +Solution: Include set_guifontwide() only for X11. (Ken Takata, closes #9640) +Files: src/gui.c + +Patch 8.2.4231 +Problem: Vim9: map() gives type error when type was not declared. +Solution: Only check the type when it was declared, like extend() does. + (closes #9635) +Files: src/list.c, src/evalfunc.c, src/vim9instr.c, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4232 (after 8.2.4231) +Problem: Some compilers don't like a goto label without statement. +Solution: Return instead of using a goto. +Files: src/list.c + +Patch 8.2.4233 +Problem: Crash when recording and using Select mode. +Solution: When deleting the last recorded character check there is something + to delete. +Files: src/getchar.c, src/testdir/test_registers.vim + +Patch 8.2.4234 +Problem: test_garbagecollect_now() does not check v:testing as documented. +Solution: Give an error if v:testing is not set. +Files: src/testing.c, src/errors.h, src/testdir/test_functions.vim + +Patch 8.2.4235 +Problem: Invalid check for NULL pointer. +Solution: Remove the check. +Files: src/getchar.c + +Patch 8.2.4236 +Problem: Accessing freed memory. +Solution: Set the bh_curr pointer to NULL. +Files: src/getchar.c + +Patch 8.2.4237 +Problem: Record buffer wrong if character in Select mode was not typed. +Solution: Only delete the tail from the record buffer if the character was + typed. (closes #9650) +Files: src/normal.c, src/testdir/test_registers.vim + +Patch 8.2.4238 +Problem: *.tf file could be filetype "tf" or "terraform". +Solution: Detect the type from the file contents. (closes #9642) +Files: runtime/filetype.vim, runtime/autoload/dist/ft.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4239 +Problem: Build fails with unusual configuration. +Solution: Adjust #ifdef. (closes #9651) +Files: src/testing.c + +Patch 8.2.4240 +Problem: Error for using flatten() in Vim9 script is unclear. +Solution: Add a remark to use flattennew(). +Files: src/errors.h + +Patch 8.2.4241 +Problem: Some type casts are redundant. +Solution: Remove the type casts. (closes #9643) +Files: src/blob.c, src/buffer.c, src/channel.c, src/clientserver.c, + src/clipboard.c, src/drawline.c, src/drawscreen.c, src/edit.c, + src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, + src/fold.c, src/if_cscope.c, src/json.c, src/match.c, + src/memline.c, src/message.c, src/misc1.c, src/normal.c, + src/ops.c, src/option.c, src/optionstr.c, src/os_unix.c, + src/register.c, src/sign.c, src/spellfile.c, src/tag.c, src/ui.c, + src/undo.c, src/window.c + +Patch 8.2.4242 +Problem: Put in Visual mode cannot be repeated. +Solution: Use "P" to put without yanking the deleted text into the unnamed + register. (Shougo Matsushita, closes #9591) +Files: runtime/doc/visual.txt, src/normal.c, src/register.c, + src/testdir/test_visual.vim + +Patch 8.2.4243 +Problem: Lua tests fail with Lua 5.4.4. +Solution: Check messages like before Lua 5.4.3. (Jakub Kulík, closes #9652) +Files: src/testdir/test_lua.vim + +Patch 8.2.4244 +Problem: MS-Windows: warning from MSVC on debug build. +Solution: Adjust "/opt" options. Remove unused variables. Make variables + uppercase for consistency. (Ken Takata, closes #9647) +Files: src/Make_mvc.mak + +Patch 8.2.4245 +Problem: ":retab 0" may cause illegal memory access. +Solution: Limit the value of 'tabstop' to 10000. +Files: src/option.c, src/vim.h, src/indent.c, + src/testdir/test_options.vim + +Patch 8.2.4246 +Problem: One error message not in errors.h. (Antonio Colombo) +Solution: Move the message and rename. +Files: src/errors.h, src/if_perl.xs + +Patch 8.2.4247 +Problem: Stack corruption when looking for spell suggestions. +Solution: Prevent the depth increased too much. Add a five second time + limit to finding suggestions. +Files: src/spellsuggest.c, src/testdir/test_spell.vim + +Patch 8.2.4248 +Problem: No proper test for moving the window separator. +Solution: Add a test. Add comment in code. (closes #9656) +Files: src/window.c, src/testdir/test_window_cmd.vim + +Patch 8.2.4249 +Problem: The timeout limit for spell suggestions is always 5000 milli + seconds. +Solution: Add the "timeout" entry to 'spellsuggest'. +Files: runtime/doc/options.txt, src/spellsuggest.c, + src/testdir/test_spell.vim + +Patch 8.2.4250 +Problem: Channel out callback test is flaky on Mac. +Solution: Assign high priority to the test process. (Ozaki Kiichi, + closes #9653) +Files: src/testdir/test_channel_pipe.py, src/testdir/thread_util.py + +Patch 8.2.4251 +Problem: Vala files are not recognized. +Solution: Add the *.vala pattern. (closes #9654) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4252 +Problem: Generating the normal command table at runtime is inefficient. +Solution: Generate the table with a Vim script and put it in a header file. + (Yegappan Lakshmanan, closes #9648) +Files: Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt, + src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms, + src/Makefile, src/create_nvcmdidxs.vim, src/evalfunc.c, + src/main.c, src/normal.c, src/nv_cmdidxs.h, src/proto/normal.pro + +Patch 8.2.4253 +Problem: Using freed memory when substitute uses a recursive function call. +Solution: Make a copy of the substitute text. +Files: src/ex_cmds.c, src/testdir/test_substitute.vim + +Patch 8.2.4254 +Problem: Using short instead of int. +Solution: Use int. (closes #9658) +Files: src/if_cscope.c + +Patch 8.2.4255 +Problem: Theoretical computation overflow. +Solution: Perform multiplication in a wider type. (closes #9657) +Files: src/alloc.c, src/drawline.c, src/eval.c, src/evalfunc.c, + src/ex_docmd.c, src/hardcopy.c, src/list.c, src/memfile.c, + src/memline.c, src/popupwin.c + +Patch 8.2.4256 +Problem: MS-Windows: compiler warnings when compiled with /W4. +Solution: Small adjustments to the code. (Ken Takata, closes #9659) +Files: src/gui_w32.c, src/os_win32.c + +Patch 8.2.4257 +Problem: Vim9: finding global function without g: prefix but not finding + global variable is inconsistent. +Solution: Require using g: for a global function. Change the vim9.vim + script into a Vim9 script with exports. Fix that import in legacy + script does not work. +Files: src/vim9expr.c, src/evalfunc.c, src/eval.c, src/userfunc.c, + src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_import.vim, + src/testdir/test_vim9_script.vim, src/testdir/test_blob.vim, + src/testdir/test_execute_func.vim, src/testdir/test_debugger.vim, + src/testdir/test_expr.vim, src/testdir/test_filter_map.vim, + src/testdir/test_float_func.vim, src/testdir/test_functions.vim, + src/testdir/test_glob2regpat.vim, src/testdir/test_highlight.vim, + src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, + src/testdir/test_listdict.vim, src/testdir/test_mapping.vim, + src/testdir/test_normal.vim, src/testdir/test_popupwin.vim, + src/testdir/test_profile.vim, src/testdir/test_quickfix.vim, + src/testdir/test_tagfunc.vim, src/testdir/test_textprop.vim, + src/testdir/test_usercommands.vim + +Patch 8.2.4258 +Problem: Coverity warns for array overrun. +Solution: Restrict depth to MAXWLEN - 1. +Files: src/spellsuggest.c + +Patch 8.2.4259 +Problem: Number of test functions for GUI events is growing. +Solution: Use one function with a dictionary. (Yegappan Lakshmanan, + closes #9660) +Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro, + src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim, + src/testing.c + +Patch 8.2.4260 +Problem: Vim9: can still use a global function without g: at the script + level. +Solution: Also check for g: at the script level. (issue #9637) +Files: src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c, + src/vim9expr.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_import.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_scroll_11.dump, + src/testdir/dumps/Test_popupwin_scroll_12.dump + +Patch 8.2.4261 +Problem: Accessing invalid memory when a regular expression checks the + Visual area while matching in a string. +Solution: Do not try matching the Visual area in a string. +Files: src/regexp.c, src/testdir/test_help.vim + +Patch 8.2.4262 (after 8.2.4261) +Problem: Some search tests fail. +Solution: Use a better way to reject searching for the Visual area. +Files: src/regexp.c + +Patch 8.2.4263 +Problem: No test for the GUI find/replace dialog. +Solution: Add a test function and a test. (Yegappan Lakshmanan, + closes #9662) +Files: runtime/doc/testing.txt, src/testdir/test_gui.vim, src/testing.c + +Patch 8.2.4264 +Problem: Vim9: can use old style autoload function name. +Solution: Give an error for old style autoload function name. +Files: src/errors.h, src/userfunc.c, src/testdir/test_vim9_import.vim, + src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.4265 (after 8.2.4264) +Problem: Autoload tests fails. +Solution: Use export instead of name with #. +Files: src/testdir/sautest/autoload/auto9.vim, + src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim + +Patch 8.2.4266 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize saved_did_emsg. +Files: src/userfunc.c + +Patch 8.2.4267 +Problem: Unused entry in keymap enum. +Solution: Remove the entry. +Files: src/keymap.h + +Patch 8.2.4268 +Problem: CI log output is long. +Solution: Group output in sections. (Ozaki Kiichi, closes #9670) +Files: .github/workflows/ci.yml + +Patch 8.2.4269 +Problem: Coverity warns for using a NULL pointer. +Solution: Check for "name" to not be NULL. +Files: src/userfunc.c + +Patch 8.2.4270 +Problem: Generating nv_cmdidxs.h requires building Vim twice. +Solution: Move the table into a separate file and use a separate executable + to extract the command characters. (Ozaki Kiichi, closes #9669) +Files: src/normal.c, src/nv_cmds.h, Filelist, runtime/doc/builtin.txt, + runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak, + src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.c, + src/create_nvcmdidxs.vim, src/evalfunc.c, src/proto/normal.pro + +Patch 8.2.4271 +Problem: MS-Windows: cannot build with Ruby 3.1.0. +Solution: Adjust the DLL name and include directory. (Ken Takata, + closes #9666) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak + +Patch 8.2.4272 +Problem: Vim9 expr test fails without the channel feature. (Dominique + Pellé) +Solution: Remove "g:" before "CheckFeature". (closes #9671) +Files: src/testdir/test_vim9_expr.vim + +Patch 8.2.4273 +Problem: The EBCDIC support is outdated. +Solution: Remove the EBCDIC support. +Files: src/ascii.h, src/charset.c, src/cindent.c, src/digraph.c, + src/edit.c, src/eval.c, src/evalfunc.c, src/ex_cmds.c, + src/feature.h, src/filepath.c, src/findfile.c, src/getchar.c, + src/gui.c, src/gui_motif.c, src/hardcopy.c, src/help.c, + src/macros.h, src/map.c, src/mark.c, src/misc2.c, src/normal.c, + src/ops.c, src/option.c, src/option.h, src/optiondefs.h, + src/os_unix.c, src/proto/evalfunc.pro, src/regexp.c, + src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/screen.c, + src/spell.c, src/strings.c, src/structs.h, src/term.c, + src/version.c, src/viminfo.c, src/testdir/test_edit.vim, + src/testdir/test_exec_while_if.vim, src/testdir/test_expr.vim, + src/testdir/test_gf.vim, src/testdir/test_regexp_utf8.vim + +Patch 8.2.4274 +Problem: Basic and form filetype detection is incomplete. +Solution: Add a separate function for .frm files. (Doug Kearns, closes #9675) +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4275 +Problem: Cannot use an autoload function from a package under start. +Solution: Also look in the "start" package directory. (Bjorn Linse, + closes #7193) +Files: src/scriptfile.c, src/testdir/test_packadd.vim + +Patch 8.2.4276 +Problem: Separate test function for the GUI scrollbar. +Solution: Use test_gui_event(). (Yegappan Lakshmanan, closes #9674) +Files: runtime/doc/builtin.txt, runtime/doc/testing.txt, + runtime/doc/usr_41.txt, src/evalfunc.c, src/testing.c, + src/proto/testing.pro, src/testdir/test_gui.vim, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4277 +Problem: Vim9: an import does not shadow a command modifier. +Solution: Do not accept a command modifier followed by a dot. +Files: src/ex_docmd.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4278 +Problem: Build with Athena GUI fails. (Elimar Riesebieter) +Solution: Add #ifdef. +Files: src/testing.c + +Patch 8.2.4279 +Problem: Vim9: cannot change item type with map() after range(). +Solution: Split the return type in current type and declared type. + (closes #9665) +Files: src/evalfunc.c, src/proto/evalfunc.pro, src/vim9instr.c, + src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4280 (after 8.2.4279) +Problem: list-dict test crashes. +Solution: Check declared type for add(). +Files: src/vim9expr.vim + +Patch 8.2.4281 +Problem: Using freed memory with :lopen and :bwipe. +Solution: Do not use a wiped out buffer. +Files: src/buffer.c, src/testdir/test_quickfix.vim + +Patch 8.2.4282 +Problem: Restricted mode requires the -Z command line option. +Solution: Use restricted mode when $SHELL ends in "nologin" or "false". + (closes #9681) +Files: runtime/doc/starting.txt, src/option.c, + src/testdir/test_restricted.vim + +Patch 8.2.4283 +Problem: Using a variable for the return value is not needed. +Solution: Return the value directly. (closes #9687) +Files: src/ex_docmd.c, src/misc2.c + +Patch 8.2.4284 +Problem: Old mac resources files are no longer used. +Solution: Delete the unused files. (Ozaki Kiichi, closes #9688) +Files: Filelist, src/Makefile, src/dehqx.py, src/infplist.xml, + src/os_mac.rsr.hqx, src/os_mac_rsrc/app.icns, + src/os_mac_rsrc/doc-txt.icns, src/os_mac_rsrc/doc.icns + +Patch 8.2.4285 +Problem: Vim9: type of item in for loop not checked properly. +Solution: Adjust the type checking. (closes #9683) +Files: src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c, + src/testdir/test_vim9_script.vim + +Patch 8.2.4286 +Problem: Vim9: strict type checking after copy() and deepcopy(). +Solution: Allow type to change after making a copy. (closes #9644) +Files: src/eval.c, src/proto/eval.pro, src/dict.c, src/proto/dict.pro, + src/list.c, src/proto/list.pro, src/evalfunc.c, src/vim9execute.c, + src/vim9type.c, src/proto/vim9type.pro, src/evalvars.c, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4287 +Problem: Cannot assign empty list with any list type to variable with + specific list type. +Solution: Use unknown list type for empty list if the specified type is any. +Files: src/vim9type.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.4288 +Problem: Preprocessor indents are inconsistent. +Solution: Fix preprocessor indents. (Ken Takata, closes #9691) +Files: src/arglist.c, src/change.c, src/ex_cmds.c, src/gui.c, + src/hashtab.c, src/indent.c, src/ops.c, src/os_win32.c + +Patch 8.2.4289 +Problem: Warnings reported by MSVC. +Solution: Rename variables and other fixes. (Ken Takata, closes #9689) +Files: src/cmdexpand.c, src/drawscreen.c, src/filepath.c, src/getchar.c, + src/menu.c, src/os_win32.c, src/version.c + +Patch 8.2.4290 +Problem: MS-Windows: using type casts for timer IDs. +Solution: Remove type casts and use the right type. (Ken Takata, + closes #9690) Remove old debug comments. Rename variables and + functions. +Files: src/gui_w32.c + +Patch 8.2.4291 +Problem: Error number used twice. +Solution: Renumber the errors. +Files: src/errors.h + +Patch 8.2.4292 (after 8.2.4291) +Problem: Test fails. +Solution: Adjust the expected error number. +Files: src/testdir/test_vim9_cmd.vim + +Patch 8.2.4293 +Problem: Vim9: when copying a list it gets type list<any> even when the + original list did not have a type. +Solution: Only set the type when the original list has a type. (closes #9692) +Files: src/list.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4294 +Problem: MS-Windows: #ifdefs for Cygwin are too complicated. +Solution: Simplify the conditions. (Ken Takata, closes #9693) +Files: src/evalfunc.c, src/main.c, src/os_unix.c, src/os_win32.c, + src/os_win32.h + +Patch 8.2.4295 +Problem: Vim9: concatenating two lists may result in wrong type. +Solution: Remove the type instead of using list<any>. (closes #9692) +Files: src/list.c, src/testdir/test_vim9_expr.vim + +Patch 8.2.4296 +Problem: Vim9: not all code covered by tests. +Solution: Add a few more tests for corner cases. Fix hang when single quote + is missing. +Files: src/vim9expr.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim + +Patch 8.2.4297 +Problem: Vim9: not all code covered by tests. +Solution: Add a couple more tests. +Files: src/testdir/test_vim9_script.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4298 +Problem: Divide by zero with huge tabstop value. +Solution: Reject tabstop value that overflows to zero. +Files: src/indent.c, src/testdir/test_vartabs.vim + +Patch 8.2.4299 +Problem: SafeState autocommand interferes with debugging. +Solution: Do not trigger SafeState while debugging. (closes #9697) +Files: src/main.c + +Patch 8.2.4300 (after 8.2.4299) +Problem: Cannot build tiny version. (Tony Mechelynck) +Solution: Add #ifdef. +Files: src/main.c + +Patch 8.2.4301 +Problem: Vim9: type error for copy of dict. +Solution: Do not use dict<any> but no type. (closes #9696) +Files: src/dict.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4302 +Problem: Vim9: return type of getline() is too strict. +Solution: Make the declared type list<any>. Also do this for other + functions returning a list of a specific type. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4303 +Problem: A few messages should not be translated. +Solution: Remove _(). (Dominique Pellé, closes #9702) +Files: src/syntax.c + +Patch 8.2.4304 +Problem: Vim9: slice() makes a copy but doesn't change the type. +Solution: Change the declared type like copy(). (closes #9696) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4305 +Problem: Tex filetype detection fails. +Solution: Check value to be positive. (closes #9704) +Files: runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim + +Patch 8.2.4306 +Problem: No test for fixed perl filetype check. +Solution: Add a test. Sort test functions. +Files: src/testdir/test_filetype.vim + +Patch 8.2.4307 +Problem: A few more messages should not be translated. +Solution: Remove _(). +Files: src/syntax.c + +Patch 8.2.4308 +Problem: Vim9: cannot list autoload function. +Solution: Don't give an error for using # when listing a function. + (closes #9703) +Files: src/userfunc.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4309 +Problem: Vim9: crash when using a partial in the wrong context. +Solution: Don't use an NULL outer pointer. (closes #9706) +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4310 +Problem: Vim9: constant list and dict get a declaration type other than + "any". +Solution: A constant list and dict have a declared member type "any". + (closes #9701) +Files: src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4311 +Problem: Vim9: changing script variable type not caught at compile time. +Solution: Set the declared type. +Files: src/vim9instr.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.4312 +Problem: No error for using :vim9script in a :def function. +Solution: Give an error when compiling. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4313 +Problem: Vim9: cannot change type of list after making a slice. +Solution: Adjust the declared member type. (closes #9696) +Files: src/vim9expr.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4314 (after 8.2.4312) +Problem: Test fails where lines are skipped. +Solution: Only give an error when not skipping commands. +Files: src/vim9compile.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4315 +Problem: Put in Visual mode not fully tested. +Solution: Add a few more test cases. (closes #9708) +Files: src/testdir/test_visual.vim + +Patch 8.2.4316 +Problem: __CYGWIN32__ is not defined on 64 bit systems. +Solution: Update #ifdefs. (Ken Takata, closes #9709) +Files: src/main.c, src/os_unix.c, src/pty.c, src/vim.h + +Patch 8.2.4317 +Problem: MS-Windows: Vim exits when Python 3 initialisation fails. +Solution: Hook into the exit() function to recover from the failure. + (Ken Takata, closes #9710) +Files: runtime/doc/if_pyth.txt, src/if_python3.c, src/os_win32.c, + src/errors.h, src/proto/os_win32.pro + +Patch 8.2.4318 +Problem: Various comment and indent mistakes, returning wrong zero. +Solution: Fix the mistakes. Return NULL instead of FAIL. +Files: src/clientserver.c, src/eval.c, src/evalvars.c, src/vim9cmds.c, + src/window.c + +Patch 8.2.4319 +Problem: :put does not work properly in compiled function. (John Beckett) +Solution: Adjust the direction when using line zero. +Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4320 +Problem: Athena and Motif: when maximized scrollbar position is wrong. +Solution: Implement the scrollbar padding functions. (closes #9712) +Files: src/gui_athena.c, src/gui_motif.c + +Patch 8.2.4321 +Problem: Vim9: crash when using a funcref to a closure. +Solution: Copy pt_outer to the new partial. (closes #9714) +Files: src/evalfunc.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4322 +Problem: Vim9: crash when using funcref with closure. +Solution: Keep a reference to the funcref that has the outer context. + (closes #9716) +Files: src/evalfunc.c, src/structs.h, src/eval.c, src/vim9execute.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.4323 +Problem: Vim9: nested function name can start with "_". +Solution: Use same rule for function name for nested functions. + (closes #9713) +Files: src/vim9compile.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4324 +Problem: Vim9: script-local function name can start with "_". +Solution: Check for leading capital after "s:". Correct error message. +Files: src/userfunc.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.4325 +Problem: 'wildmenu' only shows few matches. +Solution: Add the "pum" option: use a popup menu to show the matches. + (Yegappan Lakshmanan et al., closes #9707) +Files: runtime/doc/options.txt, src/vim.h, src/cmdexpand.c, + src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h, + src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro, + src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_01.dump, + src/testdir/dumps/Test_wildmenu_pum_02.dump, + src/testdir/dumps/Test_wildmenu_pum_03.dump, + src/testdir/dumps/Test_wildmenu_pum_04.dump, + src/testdir/dumps/Test_wildmenu_pum_05.dump, + src/testdir/dumps/Test_wildmenu_pum_06.dump, + src/testdir/dumps/Test_wildmenu_pum_07.dump, + src/testdir/dumps/Test_wildmenu_pum_08.dump, + src/testdir/dumps/Test_wildmenu_pum_09.dump, + src/testdir/dumps/Test_wildmenu_pum_10.dump, + src/testdir/dumps/Test_wildmenu_pum_11.dump, + src/testdir/dumps/Test_wildmenu_pum_12.dump, + src/testdir/dumps/Test_wildmenu_pum_13.dump, + src/testdir/dumps/Test_wildmenu_pum_14.dump, + src/testdir/dumps/Test_wildmenu_pum_15.dump, + src/testdir/dumps/Test_wildmenu_pum_16.dump, + src/testdir/dumps/Test_wildmenu_pum_17.dump, + src/testdir/dumps/Test_wildmenu_pum_18.dump, + src/testdir/dumps/Test_wildmenu_pum_19.dump, + src/testdir/dumps/Test_wildmenu_pum_20.dump, + src/testdir/dumps/Test_wildmenu_pum_21.dump, + src/testdir/dumps/Test_wildmenu_pum_22.dump, + src/testdir/dumps/Test_wildmenu_pum_23.dump, + src/testdir/dumps/Test_wildmenu_pum_24.dump, + src/testdir/dumps/Test_wildmenu_pum_25.dump, + src/testdir/dumps/Test_wildmenu_pum_26.dump, + src/testdir/dumps/Test_wildmenu_pum_27.dump, + src/testdir/dumps/Test_wildmenu_pum_28.dump, + src/testdir/dumps/Test_wildmenu_pum_29.dump + +Patch 8.2.4326 +Problem: "o" and "O" copying comment not sufficiently tested. +Solution: Add a test case. (closes #9718) +Files: src/testdir/test_textformat.vim + +Patch 8.2.4327 +Problem: May end up with no current buffer. +Solution: When deleting the current buffer to not pick a quickfix buffer as + the new current buffer. +Files: src/buffer.c, src/testdir/test_quickfix.vim + +Patch 8.2.4328 +Problem: Command line complete matches cleared when typing character. + (Dominique Pellé) +Solution: Only remove a popup menu if there is one. +Files: src/ex_getln.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_30.dump, + src/testdir/dumps/Test_wildmenu_pum_31.dump + +Patch 8.2.4329 +Problem: No support for end line number and column in 'errorformat'. +Solution: Add %e and %k. (closes #9624) +Files: runtime/doc/quickfix.txt, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.4330 +Problem: Vim9: no error if script imports itself. +Solution: Give an error when a script imports itself. +Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim + +Patch 8.2.4331 +Problem: Vim9: no test for existing script variable in block. +Solution: Add a test. +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.4332 +Problem: Vim9: incomplete test for existing script variable in block. +Solution: Add a couple more tests. Fix uncovered problem. +Files: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro, + src/vim9script.c, src/vim9expr.c, src/testdir/test_vim9_func.vim + +Patch 8.2.4333 +Problem: cstack not always passed to where it is needed. +Solution: Pass cstack through functions. +Files: src/eval.c, src/vim9expr.c, src/vim9script.c, + src/proto/vim9script.pro, src/vim9compile.c, + src/proto/vim9compile.pro + +Patch 8.2.4334 +Problem: Command line popup menu not positioned correctly. +Solution: Also use vim_strsize() on the existing text. (Naruhiko Nishino, + closes #9727) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_32.dump + +Patch 8.2.4335 +Problem: No autocommand event triggered before changing directory. (Ronnie + Magatti) +Solution: Add DirChangedPre. (closes #9721) +Files: runtime/doc/autocmd.txt, src/ex_docmd.c, src/proto/ex_docmd.pro, + src/vim.h, src/autocmd.c, src/misc2.c, + src/testdir/test_autocmd.vim + +Patch 8.2.4336 +Problem: Using :filter for :scriptnames does not work. (Ben Jackson) +Solution: Call message_filtered(). (closes #9720) +Files: src/scriptfile.c, src/testdir/test_filter_cmd.vim + +Patch 8.2.4337 +Problem: Part of condition is always true. +Solution: Remove that part of the condition. (closes #9729) +Files: src/filepath.c + +Patch 8.2.4338 +Problem: An error from an expression mapping messes up the display. +Solution: When the expression results in an empty string return K_IGNORE. + In cmdline mode redraw the command line. (closes #9726) +Files: src/getchar.c, src/testdir/test_mapping.vim, + src/testdir/dumps/Test_map_expr_2.dump, + src/testdir/dumps/Test_map_expr_3.dump, + src/testdir/dumps/Test_map_expr_4.dump + +Patch 8.2.4339 +Problem: CTRL-A does not work properly with the cmdline popup menu. +Solution: Fix issues with CTRL-A. Add more tests for the cmdline popup + menu. Remove TermWait() before VeriryScreenDump(). Refactor the + cmdline popup code. (Yegappan Lakshmanan, closes #9735) +Files: src/cmdexpand.c, src/ex_getln.c, src/popupmenu.c, + src/testdir/screendump.vim, src/testdir/test_bufline.vim, + src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim, + src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim, + src/testdir/test_display.vim, src/testdir/test_highlight.vim, + src/testdir/test_match.vim, src/testdir/test_popup.vim, + src/testdir/test_search_stat.vim, src/testdir/test_terminal.vim, + src/testdir/test_textprop.vim, + src/testdir/dumps/Test_wildmenu_pum_33.dump, + src/testdir/dumps/Test_wildmenu_pum_34.dump, + src/testdir/dumps/Test_wildmenu_pum_35.dump, + src/testdir/dumps/Test_wildmenu_pum_36.dump, + src/testdir/dumps/Test_wildmenu_pum_37.dump + +Patch 8.2.4340 +Problem: Amiga: mch_can_exe() is not implemented. +Solution: Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731) +Files: src/os_amiga.c + +Patch 8.2.4341 +Problem: Command line not redrawn when finishing popup menu and the screen + has scrolled up. +Solution: Redraw the command line after updating the screen. (closes #9722) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_38.dump + +Patch 8.2.4342 +Problem: CI will soon switch to other windows version. +Solution: Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi, + closes #9740) +Files: .github/workflows/ci.yml + +Patch 8.2.4343 +Problem: When reloading not all properties are detected. +Solution: Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579) +Files: runtime/doc/editing.txt, runtime/doc/eval.txt, src/fileio.c, + src/proto/fileio.pro, src/message.c, src/spellfile.c, + src/testdir/test_filechanged.vim + +Patch 8.2.4344 +Problem: Amiga: header file included twice. +Solution: Remove #include. (Ola Söder, closes #9733) +Files: src/memfile.c + +Patch 8.2.4345 +Problem: <amatch> is expanded like a file name for DirChangedPre. +Solution: Do not expand <amatch>. (closes #9742) Also for the User event. +Files: src/autocmd.c, src/testdir/test_autocmd.vim + +Patch 8.2.4346 +Problem: A custom statusline may cause Esc to work like Enter on the + command line when the popup menu is displayed. +Solution: Save and restore KeyTyped. (closes #9749) +Files: src/drawscreen.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_39.dump + +Patch 8.2.4347 +Problem: In some build setups UNUSED is not defined. +Solution: Change the logic of how UNUSED is defined. (Ola Söder, + closes #9734) +Files: src/vim.h + +Patch 8.2.4348 +Problem: "legacy exe cmd" does not do what one would expect. +Solution: Apply the "legacy" and "vim9script" command modifiers to the + argument of ":execute". +Files: runtime/doc/vim9.txt, src/globals.h, src/eval.c, src/ex_docmd.c, + src/testdir/test_vim9_cmd.vim + +Patch 8.2.4349 +Problem: FileChangedShell test fails on MS-Windows. +Solution: Skip the test on MS-Windows. +Files: src/testdir/test_filechanged.vim + +Patch 8.2.4350 +Problem: FEAT_GUI_ENABLED defined but never used. +Solution: Remove the #define. (Ola Söder, closes #9732) +Files: src/vim.h + +Patch 8.2.4351 +Problem: No coverage is measured on MS-Windows CI. +Solution: Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750) +Files: .github/workflows/ci.yml + +Patch 8.2.4352 +Problem: ReScript files are not recognized. +Solution: Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4353 +Problem: CI does not use the latest Lua and Python. +Solution: Use Lua 5.4.2 and Python 3.10. (closes #9744) +Files: .github/workflows/ci.yml + +Patch 8.2.4354 +Problem: Dynamic loading of libsodium not handled properly. +Solution: Fix has() and :version. Show an error message when loading fails. + Fix memory leaks. (Ken Takata, closes #9754) +Files: src/crypt.c, src/evalfunc.c, src/gui_dwrite.cpp, src/if_cscope.c, + src/os_win32.c, src/proto/crypt.pro, src/proto/os_win32.pro, + src/version.c + +Patch 8.2.4355 +Problem: Unnecessary call to check_colorcolumn(). +Solution: Remove the call. (Sean Dewar, closes #9748) +Files: src/option.c, src/window.c + +Patch 8.2.4356 +Problem: Command line completion functions are very long. +Solution: Refactor into multiple functions. (Yegappan Lakshmanan, + closes #9753) +Files: src/cmdexpand.c + +Patch 8.2.4357 (after 8.2.4348) +Problem: sticky command modifiers are too sticky. +Solution: Do not apply command modifiers to a sourced script. (closes #9751) +Files: src/scriptfile.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4358 +Problem: Vim9: line number of exception is not set. +Solution: Set the line number before throwing an exception. (closes #9755) +Files: src/vim9execute.c, src/testdir/test_vim9_script.vim + +Patch 8.2.4359 +Problem: crash when repeatedly using :retab. +Solution: Bail out when the line is getting too long. +Files: src/indent.c, src/testdir/test_retab.vim + +Patch 8.2.4360 +Problem: Vim9: allowing use of "s:" leads to inconsistencies. +Solution: Disallow using "s:" in Vim9 script at the script level. +Files: src/userfunc.c, src/proto/userfunc.pro, src/errors.h, + src/vim9compile.c, src/eval.c, src/testdir/vim9.vim, + src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_disassemble.vim, + src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim + +Patch 8.2.4361 (after 8.2.4360) +Problem: Vim9: some tests fail. +Solution: Fix the tests, mostly by removing "s:". +Files: src/testdir/test_expr.vim, src/testdir/test_functions.vim, + src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim, + src/testdir/test_tagfunc.vim + +Patch 8.2.4362 +Problem: :retab may allocate too much memory. +Solution: Bail out when allocating more than MAXCOL bytes. +Files: src/indent.c + +Patch 8.2.4363 +Problem: MS-Windows: running out of memory for a very long line. +Solution: Use a 32 bit value for MAXCOL also when ints are 64 bits. +Files: src/vim.h + +Patch 8.2.4364 +Problem: MS-Windows: still running out of memory for a very long line. +Solution: Check for negative length. +Files: src/indent.c + +Patch 8.2.4365 (after 8.2.4348) +Problem: sticky command modifiers are too sticky. +Solution: Do not apply command modifiers to a called function. (closes #9751) +Files: src/userfunc.c, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4366 +Problem: Not enough tests for command line completion. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9760) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim, + src/testdir/test_usercommands.vim + +Patch 8.2.4367 +Problem: Calling in_vim9script() multiple times. +Solution: Call it once and keep the result. +Files: src/userfunc.c, src/eval.c + +Patch 8.2.4368 +Problem: Amiga: a few compiler warnings. +Solution: Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756, + closes #9757) +Files: src/term.c, src/os_amiga.c + +Patch 8.2.4369 +Problem: Redundant #ifdef argument. +Solution: Remove unused MSWIN. (Ola Söder, closes #9758) +Files: src/feature.h + +Patch 8.2.4370 +Problem: MS-Windows: libsodium.dll not included with the installer. +Solution: Add the file to the installer if it exists. (Christian Brabandt, + closes #9762) +Files: nsis/gvim.nsi + +Patch 8.2.4371 +Problem: Vim9: can create a script variable from a legacy function. +Solution: Disallow creating a script variable from a function. +Files: src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim + +Patch 8.2.4372 +Problem: Filetype detection from file contents is in legacy script. +Solution: Use a compiled function for filetype detection. +Files: runtime/scripts.vim, runtime/autoload/dist/script.vim + +Patch 8.2.4373 +Problem: Expression test fails. +Solution: Make the test work with latest Vim9 syntax. +Files: src/testdir/test_expr.vim + +Patch 8.2.4374 +Problem: Unreachable code. +Solution: Remove outdated code lines. +Files: src/vim9compile.c + +Patch 8.2.4375 +Problem: ctx_imports is not used. +Solution: Delete ctx_imports. Add missing dependency. +Files: src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro, + src/eval.c, src/evalfunc.c, src/evalvars.c, src/userfunc.c, + src/vim9expr.c, src/vim9script.c, src/Makefile + +Patch 8.2.4376 +Problem: Not enough tests for command line completion. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9771) +Files: src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim + +Patch 8.2.4377 +Problem: CI steps for Windows are a bit unorganized. +Solution: Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764) +Files: .github/workflows/ci.yml + +Patch 8.2.4378 +Problem: Incsearch highlight broken when calling searchcount() in 'tabLine' + function. (Mirko Palmer) +Solution: Save and restore the incsearch state. (Christian Brabandt, + closes #9763, closes #9633) +Files: src/search.c, src/testdir/test_search_stat.vim, + src/testdir/dumps/Test_searchstat_inc_1.dump, + src/testdir/dumps/Test_searchstat_inc_2.dump, + src/testdir/dumps/Test_searchstat_inc_3.dump + +Patch 8.2.4379 +Problem: An empty change is reported to a listener. +Solution: Do not report an empty change. (closes #9768) Remove unused + return value. +Files: src/undo.c, src/change.c, src/testdir/test_listener.vim + +Patch 8.2.4380 +Problem: Small differences between Chinese translation files. +Solution: Add rule for converting UTF-8 to gb2312. (closes #9773) +Files: src/po/Makefile, src/po/Make_all.mak + +Patch 8.2.4381 (after 8.2.4380) +Problem: Translation file listed twice. +Solution: Remove one entry. +Files: src/po/Make_all.mak + +Patch 8.2.4382 (after 8.2.4346) +Problem: A custom 'tabline' may cause Esc to work like Enter on the + command line when the popup menu is displayed. +Solution: Save and restore KeyTyped. (closes #9776) +Files: src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.vim, + src/testdir/dumps/Test_wildmenu_pum_40.dump + +Patch 8.2.4383 +Problem: Vim9: unused code lines. +Solution: Rely on either "cctx" or "cstack" to not be NULL. +Files: src/vim9compile.c + +Patch 8.2.4384 +Problem: Vim9: error message not tested, some code not tested. +Solution: Add a couple of test cases. Give an error for a command modifier + without a command. +Files: src/errors.h, src/vim9compile.c, src/ex_docmd.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim + +Patch 8.2.4385 (after 8.2.4384) +Problem: Cannot build tiny version. +Solution: Adjust #ifdefs. +Files: src/errors.h + +Patch 8.2.4386 (after 8.2.4384) +Problem: Still cannot build tiny version. +Solution: Adjust #ifdefs. +Files: src/ex_docmd.c + +Patch 8.2.4387 +Problem: Command line completion doesn't always work properly. +Solution: Adjust triggering after a "|". Add more tests. (Yegappan + Lakshmanan, closes #9779) +Files: src/cmdexpand.c, src/testdir/test_cmdline.vim + +Patch 8.2.4388 +Problem: Dead code in op_insert(). +Solution: Remove condition and else block. (closes #9782) +Files: src/ops.c + +Patch 8.2.4389 +Problem: screenpos() does not handle a position in a closed fold. +Solution: Check if the position is inside a closed fold. (closes #9778) +Files: src/move.c, src/testdir/test_cursor_func.vim + +Patch 8.2.4390 +Problem: Vim9: list from declaration with inferred type does not set the + type on the value. +Solution: When inferring the type in a variable declaration also set the + type of the list or dictionary. (closes #9705) Do not set the + type when the member is "any". +Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_disassemble.vim + +Patch 8.2.4391 +Problem: Command line executed when typing Esc in the GUI. +Solution: Move saving/restoring KeyTyped to build_stl_str_hl(). + (closes #9783) +Files: src/buffer.c, src/screen.c + +Patch 8.2.4392 (after 8.2.4002) +Problem: MS-Windows with VIMDLL: Escaping CSI is wrong. +Solution: Put back #ifdef. (Ken Takata, closes #9769) +Files: src/getchar.c + +Patch 8.2.4393 +Problem: Possible number overflow with nested folds. +Solution: Avoid a negative line number. +Files: src/fold.c + +Patch 8.2.4394 (after 8.2.4392) +Problem: UTF8 select mode test fails on MS-Windows. +Solution: Revert the #ifdef change. +Files: src/getchar.c + +Patch 8.2.4395 +Problem: Some code lines not covered by tests. +Solution: Add a few more test cases. Fix getting more than one error for + invalid assignment. +Files: src/evalvars.c, src/errors.h, src/vim9compile.c, + src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.4396 (after 8.2.4395) +Problem: Python3 test fails. +Solution: Remove "let". +Files: src/testdir/test_vim9_func.vim + +Patch 8.2.4397 +Problem: Crash when using many composing characters in error message. +Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). +Files: src/testing.c, src/testdir/test_assert.vim + +Patch 8.2.4398 +Problem: Some command completion functions are too long. +Solution: Refactor code into separate functions. Add a few more tests. + (Yegappan Lakshmanan, closes #9785) +Files: src/cmdexpand.c, src/ex_getln.c, src/usercmd.c, + src/proto/usercmd.pro, src/testdir/test_cmdline.vim + +Patch 8.2.4399 +Problem: Crash after ml_get error. +Solution: When returning "???" flush the line and set ml_line_lnum. +Files: src/memline.c + +Patch 8.2.4400 (after 8.2.4394) +Problem: MS-Windows: cannot use the mouse in the console with VIMDLL. +Solution: use add_char2buf() instead of fix_input_buffer(). (closes #9784, + closes #9769) +Files: src/getchar.c + +Patch 8.2.4401 +Problem: Map listing does not clear the rest of the command line. +Solution: Call msg_clear_eos(). (closes #5623, closes #5962) +Files: src/map.c, src/testdir/test_mapping.vim, + src/testdir/dumps/Test_map_list_1.dump + +Patch 8.2.4402 +Problem: Missing parenthesis may cause unexpected problems. +Solution: Add more parenthesis is macros. (closes #9788) +Files: src/autocmd.c, src/charset.c, src/drawline.c, src/drawscreen.c, + src/evalfunc.c, src/fileio.c, src/fold.c, src/getchar.c, + src/highlight.c, src/memline.c, src/normal.c, src/quickfix.c, + src/regexp.c, src/search.c, src/sha256.c, src/spell.c, + src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/window.c + +Patch 8.2.4403 +Problem: ml_get error with nested folds and deleting lines. +Solution: Correct the last line number before calling hasFoldingWin(). +Files: src/change.c + +Patch 8.2.4404 +Problem: Vim9: some code not covered by tests. +Solution: Add a few specific test cases. +Files: src/vim9execute.c, src/testdir/test_vim9_func.vim, + src/testdir/test_vim9_import.vim + +Patch 8.2.4405 +Problem: Compiler warning for unused variable without the +folding feature. + (Tony Mechelynck) +Solution: Add #ifdef. +Files: src/change.c + +Patch 8.2.4406 +Problem: Expand functions use confusing argument names. +Solution: Rename "file" to "match". Refactor some completion code. Add a + few more tests. (Yegappan Lakshmanan, closes #9790) +Files: src/cmdexpand.c, src/testdir/test_usercommands.vim + +Patch 8.2.4407 +Problem: Vim9: some code not covered by tests. +Solution: Add more tests. Avoid giving two errors. Remove dead code. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim + +Patch 8.2.4408 +Problem: Vim9: some code not covered by tests. +Solution: Add a few more tests. Correct error message. Allow unlet on dict + with a number key. +Files: src/vim9execute.c, src/errors.h, src/testdir/test_vim9_assign.vim + +Patch 8.2.4409 +Problem: Vim9: some code not covered by tests. +Solution: Add a few more tests. Fix reported line number. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim + +Patch 8.2.4410 +Problem: Vim9: some code not covered by tests. +Solution: Add a few more tests. Remove dead code. +Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim, + src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim, + src/testdir/test_vim9_script.vim + +Patch 8.2.4411 +Problem: Bicep files are not recognized. +Solution: Match *.bicep files. (Dundar Goc, closes #9791) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4412 +Problem: Translation cleanup script does not remove empty lines at end. +Solution: Remove empty lines at the end. (Ken Takata, closes #9794) +Files: src/po/cleanup.vim + +Patch 8.2.4413 +Problem: Vim9: Coverity warns for using NULL pointer. +Solution: Give an internal error when funcref function can't be found. +Files: src/vim9execute.c + +Patch 8.2.4414 +Problem: Solidity files are not recognized. +Solution: Add the *.sol pattern. (Dundar Goc, closes #9792) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4415 +Problem: Function argument name conflicts with C++ keyword. +Solution: Rename the argument. +Files: src/usercmd.c, src/proto/usercmd.pro + +Patch 8.2.4416 +Problem: Vim9: using a script-local function requires using "s:" when + setting 'completefunc'. +Solution: Do not require "s:" in Vim9 script. (closes #9796) +Files: runtime/doc/options.txt, src/userfunc.c, + src/testdir/test_ins_complete.vim + +Patch 8.2.4417 (after 8.2.4416) +Problem: Using NULL pointer. +Solution: Set offset after checking for NULL pointer. +Files: src/userfunc.c + +Patch 8.2.4418 +Problem: Crash when using special multi-byte character. +Solution: Don't use isalpha() for an arbitrary character. +Files: src/charset.c, src/proto/charset.pro, src/filepath.c, + src/testdir/test_autochdir.vim + +Patch 8.2.4419 +Problem: Illegal memory access when using exactly 20 highlights. +Solution: Add one more item in the array. (Brandon Richardson, + closes #9800) +Files: src/buffer.c, src/testdir/test_tabline.vim + +Patch 8.2.4420 +Problem: Menu translations are inconsistent. +Solution: Add a Makefile to convert between encodings. (Ada (Haowen) Yu, + closes #9801) +Files: runtime/lang/Makefile, runtime/lang/menu_af_af.latin1.vim, + runtime/lang/menu_ca_es.latin1.vim, + runtime/lang/menu_chinese_gb.936.vim, + runtime/lang/menu_chinese_taiwan.950.vim, + runtime/lang/menu_cs_cz.iso_8859-2.vim, + runtime/lang/menu_cs_cz.utf-8.vim, + runtime/lang/menu_czech_czech_republic.1250.vim, + runtime/lang/menu_czech_czech_republic.ascii.vim, + runtime/lang/menu_da.utf-8.vim, + runtime/lang/menu_de_de.latin1.vim, + runtime/lang/menu_eo.utf-8.vim, + runtime/lang/menu_es_es.latin1.vim, + runtime/lang/menu_fi_fi.latin1.vim, + runtime/lang/menu_fr_fr.latin1.vim, + runtime/lang/menu_hu_hu.iso_8859-2.vim, + runtime/lang/menu_hu_hu.utf-8.vim, + runtime/lang/menu_is_is.latin1.vim, + runtime/lang/menu_it_it.latin1.vim, + runtime/lang/menu_ja_jp.euc-jp.vim, + runtime/lang/menu_ja_jp.utf-8.vim, + runtime/lang/menu_japanese_japan.932.vim, + runtime/lang/menu_ko_kr.euckr.vim, + runtime/lang/menu_ko_kr.utf-8.vim, + runtime/lang/menu_nl_nl.latin1.vim, + runtime/lang/menu_no_no.latin1.vim, + runtime/lang/menu_pl_pl.iso_8859-2.vim, + runtime/lang/menu_pl_pl.utf-8.vim, + runtime/lang/menu_polish_poland.1250.vim, + runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim, + runtime/lang/menu_ru.utf-8.vim, + runtime/lang/menu_ru_ru.koi8-r.vim, + runtime/lang/menu_ru_ru.utf-8.vim, runtime/lang/menu_ru_ru.vim, + runtime/lang/menu_sk_sk.iso_8859-2.vim, + runtime/lang/menu_sl_si.cp1250.vim, + runtime/lang/menu_sl_si.latin2.vim, + runtime/lang/menu_sl_si.utf-8.vim, + runtime/lang/menu_slovak_slovak_republic.1250.vim, + runtime/lang/menu_sr_rs.ascii.vim, + runtime/lang/menu_sr_rs.iso_8859-2.vim, + runtime/lang/menu_sr_rs.iso_8859-5.vim, + runtime/lang/menu_sr_rs.utf-8.vim, + runtime/lang/menu_sv_se.latin1.vim, + runtime/lang/menu_tr_tr.cp1254.vim, + runtime/lang/menu_tr_tr.iso_8859-9.vim, + runtime/lang/menu_tr_tr.utf-8.vim, + runtime/lang/menu_uk_ua.cp1251.vim, + runtime/lang/menu_uk_ua.koi8-u.vim, + runtime/lang/menu_uk_ua.utf-8.vim, runtime/lang/menu_vi_vn.vim, + runtime/lang/menu_zh_cn.utf-8.vim, + runtime/lang/menu_zh_tw.utf-8.vim + +Patch 8.2.4421 +Problem: Some installed files and directories have wrong permissions. +Solution: Adjust the Makefile and shell to set permissions. (closes #9793) +Files: src/Makefile, src/installman.sh + +Patch 8.2.4422 +Problem: Autochdir test fails on MS-Windows. +Solution: Expect another error on MS-Windows. +Files: src/testdir/test_autochdir.vim + +Patch 8.2.4423 +Problem: "make nvcmdidxs" fails. +Solution: Use "-S" instead of "-u" to source the script. +Files: src/Makefile + +Patch 8.2.4424 +Problem: ".gts" and ".gjs" files are not recognized. +Solution: Recognize Glimmer flavored typescript and javascript. + (closes #9799) +Files: runtime/filetype.vim, src/testdir/test_filetype.vim + +Patch 8.2.4425 +Problem: map() function does not check function arguments at compile time. +Solution: Give an error if the arguments of a map() function are wrong. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim, + src/testdir/test_vim9_func.vim + +Patch 8.2.4426 +Problem: map() function on string and blob does not check argument types at + compile time. +Solution: Check string and blob argument types. Support "0z1234->func()". +Files: src/vim9compile.c, src/evalfunc.c, src/ex_docmd.c, + src/testdir/test_vim9_builtin.vim + +Patch 8.2.4427 +Problem: getchar() may return modifiers if no character is available. +Solution: Do not process modifiers when there is no character. (closes #9806) +Files: src/getchar.c, src/testdir/test_functions.vim + +Patch 8.2.4428 +Problem: Crash when switching tabpage while in the cmdline window. +Solution: Disallow switching tabpage when in the cmdline window. +Files: src/window.c, src/proto/window.pro, src/evalvars.c, + src/evalvars.c, src/usercmd.c + +Patch 8.2.4429 +Problem: Using script-local function from the wrong script when using a + partial. (Yegappan Lakshmanan) +Solution: Include the script ID in the partial name. +Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c, + src/vim9type.c, src/testdir/test_vim9_import.vim + +Patch 8.2.4430 +Problem: GTK: crash when using 'guiligatures' and reading from stdin. +Solution: Make a copy of the message. (Amon Sha, closes #9719, closes #9814) +Files: src/fileio.c + +Patch 8.2.4431 +Problem: Unnecessary condition when assigning to a variable. +Solution: Remove the condition. +Files: src/evalvars.c + +Patch 8.2.4432 (after 8.2.4428) +Problem: Cannot use settabvar() while the cmdline window is open. +Solution: Only give an error when actually switching tabpage. + (closes #9813) +Files: src/window.c + +Patch 8.2.4433 +Problem: CI: cannot see interface versions for MS-Windows. +Solution: List the interface versions. (Ken Takata, closes #9811) +Files: .github/workflows/ci.yml + +Patch 8.2.4434 +Problem: Duplicate check for cmdline window. +Solution: Remove the second check. (Sean Dewar, closes #9816) +Files: src/window.c + +Patch 8.2.4435 +Problem: Dead code in checking map() arguments. (Dominique Pellé) +Solution: Remove the first return statement. (closes #9815) +Files: src/evalfunc.c + +Patch 8.2.4436 +Problem: Crash with weird 'vartabstop' value. +Solution: Check for running into the end of the line. +Files: src/indent.c, src/testdir/test_vartabs.vim + +Patch 8.2.4437 +Problem: Vartabs test fails on MS-Windows. +Solution: Use iso8859-1 'encoding'. (Ken Takata, closes #9818) +Files: src/testdir/test_vartabs.vim + +Patch 8.2.4438 +Problem: Crash on exit when using cmdline window. +Solution: Reset "cmdwin_type" before exiting. (closes #9817) +Files: src/ui.c, src/testdir/test_exit.vim + +Patch 8.2.4439 +Problem: Accepting "iso8859" 'encoding' as "iso-8859-". +Solution: use "iso8859" as "iso-8859-1". +Files: src/mbyte.c, src/testdir/test_options.vim + +Patch 8.2.4440 +Problem: Crash with specific regexp pattern and string. +Solution: Stop at the start of the string. +Files: src/regexp_bt.c, src/testdir/test_regexp_utf8.vim + +Patch 8.2.4441 +Problem: Vim9: function argument of filter() not checked like map(). +Solution: Also check the function argument of filter(). +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4442 (after 8.2.4438) +Problem: Test for error reading input fails on MS-Windows. +Solution: Don't run the test on MS-Windows. +Files: src/testdir/test_exit.vim + +Patch 8.2.4443 (after 8.2.4440) +Problem: Regexp pattern test fails on Mac. +Solution: Do not use a swapfile for the buffer. +Files: src/testdir/test_regexp_utf8.vim + +Patch 8.2.4444 +Problem: Beep caused by test. ASAN reports leaks. +Solution: Do not put a NL at the end of the script. Make the text work on + MS-Windows. Do not run the test with ASAN. +Files: src/testdir/test_exit.vim + +Patch 8.2.4445 +Problem: Exit test fails on MS-Windows anyway. +Solution: Skip the test on MS-Windows. +Files: src/testdir/test_exit.vim + +Patch 8.2.4446 +Problem: Vim9: cannot refer to a global function like a local one. +Solution: When g:name is not a variable but a function, use a function + reference. (closes #9826) +Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4447 +Problem: Vim9: can still use s:var in a compiled function. +Solution: Disallow using s:var for Vim9 script. (closes #9824) +Files: runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c, + src/testdir/test_vim9_assign.vim + +Patch 8.2.4448 (after 8.2.4447) +Problem: Filetype detection is failing. +Solution: Do not use "s:" where it is no longer allowed. +Files: runtime/autoload/dist/ft.vim, + +Patch 8.2.4449 +Problem: vim9: function argument of sort() not checked at compile time. +Solution: Add a compile time check. +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4450 (after 8.2.4449) +Problem: List sort test fails. +Solution: Pass a valid "how" argument. +Files: src/testdir/test_listdict.vim + +Patch 8.2.4451 (after 8.2.4450) +Problem: sort() fails when ignoring case. +Solution: Accept a number one argument in sort(). +Files: src/evalfunc.c, src/testdir/test_listdict.vim + +Patch 8.2.4452 +Problem: Test for what 8.2.4436 fixes does not check for regression. +Solution: Set several options. (Ken Takata, closes #9830) +Files: src/testdir/test_vartabs.vim + +Patch 8.2.4453 +Problem: :helpgrep may free an option that was not allocated. (Yegappan + Lakshmanan) +Solution: Check if the value was allocated. +Files: src/option.c, src/proto/option.pro, src/quickfix.c, + src/testdir/test_quickfix.vim + +Patch 8.2.4454 +Problem: Resetting cmdwin_type only for one situation. +Solution: Reset cmdwin_type before closing windows. (closes #9822) +Files: src/ui.c, src/window.c, src/testdir/test_exit.vim + +Patch 8.2.4455 +Problem: Accepting one and zero for the second sort() argument is strange. +Solution: Disallow using one and zero in Vim9 script. +Files: runtime/doc/builtin.txt, src/evalfunc.c, src/list.c, + src/testdir/test_listdict.vim + +Patch 8.2.4456 +Problem: Terminal test may fail on some machines. +Solution: Increase wait time. (Zdenek Dohnal, closes #9834) +Files: src/testdir/test_terminal.vim + +Patch 8.2.4457 +Problem: The GPM library can only be linked statically. +Solution: Make it possible to load the GPM library dynamically. (Damien) +Files: runtime/doc/various.txt, src/config.h.in, src/configure.ac, + src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c, + src/proto/os_unix.pro, src/version.c + +Patch 8.2.4458 +Problem: Vim9: compiling filter() call fails with funcref that has unknown + arguments. +Solution: Do not check the arguments if they are unknown at compile time. + (closes #9835) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4459 +Problem: Vim9: compiling sort() call fails with a funcref that has unknown + arguments. +Solution: Do not check the arguments if they are unknown at compile time. + (closes #9835) +Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim + +Patch 8.2.4460 +Problem: Vim9: wrong error for defining dict function. +Solution: Explicitly check for trying to define a dict function. + (closes #9827) +Files: src/errors.h, src/userfunc.c, src/vim9compile.c, + src/testdir/test_vim9_func.vim + +Patch 8.2.4461 +Problem: MS-Windows: garbage characters on stdout with VIMDLL. +Solution: Don't call gui_focus_change() when about to quit. (Ken Takata, + closes #9840) +Files: src/gui_w32.c + +Patch 8.2.4462 +Problem: Not enough testing for quickfix code. +Solution: Add more tests. Fix uncovered problem. (Yegappan Lakshmanan, + closes #9839) +Files: src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim, + src/testdir/test_quickfix.vim + +Patch 8.2.4463 +Problem: Completion only uses strict matching. +Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan, + closes #9803) +Files: runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c, + src/option.c, src/option.h, src/optionstr.c, + src/proto/cmdexpand.pro, src/proto/option.pro, + src/proto/search.pro, src/search.c, src/structs.h, + src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim + +Patch 8.2.4464 +Problem: Dtrace files are recognized as filetype D. +Solution: Add a pattern for Dtrace files. (Teubel György, closes #9841) + Add some more testing. +Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim, + src/testdir/test_filetype.vim + +Patch 8.2.4465 +Problem: Fuzzy completion does not order matches properly. +Solution: Do not use regular expression match. (Yegappan Lakshmanan, + closes #9843) +Files: src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim + +Patch 8.2.4466 +Problem: MS-Windows: illegal memory access in installer when using + "create-directories" as the final argument. +Solution: Check the argument count. (Cam Sinclair, closes #9844) +Files: src/dosinst.c + +Patch 8.2.4467 +Problem: Running filetype test leaves file behind. +Solution: Delete the file. +Files: src/testdir/test_filetype.vim + +Patch 8.2.4468 +Problem: Coverity warns for uninitialized struct member. +Solution: Set color.index to zero. +Files: src/terminal.c + +Patch 8.2.4469 +Problem: Coverity warns for uninitialized variable. +Solution: Set the value to zero. +Files: src/ex_getln.c + +Patch 8.2.4470 +Problem: Coverity warns for uninitialized variable. +Solution: Set can_spell to zero. +Files: src/drawline.c + +Patch 8.2.4471 +Problem: Coverity warns for uninitialized variable. +Solution: Set flags to zero. +Files: src/vim9cmds.c + +Patch 8.2.4472 +Problem: Coverity warns for use of a freed function name. +Solution: Only check an autoload name when is prefixed. +Files: src/userfunc.c + +Patch 8.2.4473 +Problem: Coverity warns 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 completion 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 substitute 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 configurable. 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 modifier ":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 the 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 Cherti, + 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 implementation 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 solution. (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. (Justin 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 Elixir 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 extensions 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 outdated 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 typeahead. +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 generate 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 expected 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/decrement. +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-Windows 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 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 than 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 closable 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 an 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 compiler. +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 + +Patch 8.2.5130 +Problem: Edit test for mode message fails when using valgrind. +Solution: Use WaitForAssert(). Run beep test later. +Files: src/testdir/test_edit.vim + +Patch 8.2.5131 +Problem: Timeout implementation is not optimal. +Solution: Further improvements for timeouts. Add a test for searchpair() + timeout. (partly by Paul Ollis) +Files: src/configure.ac, src/auto/configure, + src/testdir/test_hlsearch.vim, src/testdir/test_search.vim + +Patch 8.2.5132 +Problem: :mkview test doesn't test much. +Solution: Save the view with the folds closed. (James McCoy, closes #10596) +Files: src/testdir/test_mksession.vim + +Patch 8.2.5133 +Problem: MacOS: build fails. +Solution: Remove "#if 0" from timer_delete(). +Files: src/os_macosx.m + +Patch 8.2.5134 +Problem: Function has confusing name. +Solution: Rename tgetent_error() to invoke_tgetent(). +Files: src/term.c + +Patch 8.2.5135 +Problem: Running configure gives warnings for main() return type. +Solution: Specify "int" return type. Avoid a few more warnings. +Files: src/configure.ac, src/auto/configure + +Patch 8.2.5136 +Problem: Debugger test fails when run with valgrind. +Solution: Wait longer when using valgrind. +Files: src/testdir/shared.vim, src/testdir/test_debugger.vim, + src/testdir/test_search.vim + +Patch 8.2.5137 +Problem: Cannot build without the +channel feature. (Dominique Pellé) +Solution: Add #ifdef around ch_log() calls. (closes #10598) +Files: src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c + +Patch 8.2.5138 +Problem: Various small issues. +Solution: Various small improvements. +Files: src/filepath.c, src/job.c, src/mark.c, src/move.c, + src/popupwin.c, src/testdir/test_filetype.vim + +Patch 8.2.5139 +Problem: TIME_WITH_SYS_TIME is no longer supported by autoconf. +Solution: Always include time.h. +Files: src/os_unix.h + +Patch 8.2.5140 +Problem: Seachpair timeout test is flaky. +Solution: Mark the test as flaky so it is retried. +Files: src/testdir/test_search.vim + +Patch 8.2.5141 +Problem: Using "volatile int" in a signal handler might be wrong. +Solution: Use "volatile sig_atomic_t". +Files: src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c, + src/proto/os_win32.pro, src/regexp.c, + +Patch 8.2.5142 +Problem: Startup test fails if there is a status bar at the top of the + screen. (Ernie Rael) +Solution: Use a larger vertical offset in the test. +Files: src/testdir/test_startup.vim + +Patch 8.2.5143 +Problem: Some tests fail when using valgrind. Spurious leak reports. +Solution: Use WaitForAssert(). Avoid failing fork/exec. Skip tests where a + job is killed when running valgrind. +Files: src/testdir/test_iminsert.vim, src/testdir/test_popup.vim, + src/testdir/test_cscope.vim, src/testdir/test_channel.vim + +Patch 8.2.5144 +Problem: With 'lazyredraw' set completion menu may be displayed wrong. +Solution: When the popup menu is visible do not insert a screen line. + (closes #10601) +Files: src/screen.c + +Patch 8.2.5145 +Problem: Exit test causes spurious valgrind reports. +Solution: Skip test. Add CheckNotValgrind. +Files: src/testdir/test_exit.vim, src/testdir/check.vim, + src/testdir/test_channel.vim + +Patch 8.2.5146 +Problem: Memory leak when substitute expression nests. +Solution: Use an array of expression results. +Files: src/alloc.c, src/regexp.c, src/proto/regexp.pro, + src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim + +Patch 8.2.5147 +Problem: Flaky test always fails on retry. +Solution: Delete the created function. +Files: src/testdir/test_search.vim + +Patch 8.2.5148 +Problem: Invalid memory access when using an expression on the command line. +Solution: Make sure the position does not go negative. +Files: src/ex_getln.c, src/testdir/test_cmdline.vim + +Patch 8.2.5149 (after 8.2.5148) +Problem: Cannot build without the +eval feature. (Tony Mechelynck) +Solution: Add #ifdefs. +Files: src/ex_getln.c + +Patch 8.2.5150 +Problem: Read past the end of the first line with ":0;'{". +Solution: When on line zero check the column is valid for line one. +Files: src/ex_docmd.c, src/testdir/test_cmdline.vim + +Patch 8.2.5151 +Problem: Reading beyond the end of the line with lisp indenting. +Solution: Avoid going over the NUL at the end of the line. +Files: src/indent.c, src/testdir/test_lispwords.vim + +Patch 8.2.5152 +Problem: search() gets stuck with "c" and skip evaluates to true. +Solution: Reset the SEARCH_START option. (closes #10608) +Files: src/evalfunc.c, src/testdir/test_syntax.vim + +Patch 8.2.5153 +Problem: "make uninstall" does not remove colors/lists. +Solution: Add a line to the Makefile. (closes #10609) +Files: src/Makefile + +Patch 8.2.5154 +Problem: Still mentioning version8, some cosmetic issues. +Solution: Prefer mentioning version9, cosmetic improvements. +Files: src/version.c, src/if_tcl.c, src/regexp.c, + src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile + +Patch 8.2.5155 +Problem: In diff mode windows may get out of sync. (Gary Johnson) +Solution: Avoid that the other window scrolls for 'cursorbind'. +Files: src/move.c, src/testdir/test_diffmode.vim, + src/testdir/dumps/Test_diff_scroll_1.dump, + src/testdir/dumps/Test_diff_scroll_2.dump + +Patch 8.2.5156 +Problem: Search timeout test often fails with FreeBSD. +Solution: Double the maximum time. +Files: src/testdir/test_search.vim + +Patch 8.2.5157 +Problem: MS-Windows GUI: CTRL-key combinations do not always work. +Solution: Handle special key combinations better. (closes #10613, + closes #10602, closes #10579) +Files: src/gui_w32.c + +Patch 8.2.5158 +Problem: TSTP and INT signal tests are not run with valgrind. +Solution: Sleep a bit longer. (closes #10614) +Files: src/testdir/test_signals.vim + +Patch 8.2.5159 (after 8.2.5157) +Problem: Fix for CTRL-key combinations causes more problems than it solves. +Solution: Roll back the change. +Files: src/gui_w32.c + +Patch 8.2.5160 +Problem: Accessing invalid memory after changing terminal size. +Solution: Adjust cmdline_row and msg_row to the value of Rows. +Files: src/term.c + +Patch 8.2.5161 +Problem: Might still access invalid memory. +Solution: Add extra check for negative value. +Files: src/message.c + +Patch 8.2.5162 +Problem: Reading before the start of the line with BS in Replace mode. +Solution: Check the cursor column is more than zero. +Files: src/edit.c + +Patch 8.2.5163 +Problem: Crash when deleting buffers in diff mode. +Solution: Recompute diffs later. Skip window without a valid buffer. +Files: src/diff.c, src/testdir/test_diffmode.vim + +Patch 8.2.5164 +Problem: Invalid memory access after diff buffer manipulations. +Solution: Use zero offset when change removes all lines in a diff block. +Files: src/diff.c, src/testdir/test_diffmode.vim + +Patch 8.2.5165 +Problem: Import test fails because 'diffexpr' isn't reset. +Solution: Reset 'diffexpr'. +Files: src/testdir/test_vim9_import.vim + +Patch 8.2.5166 +Problem: Test for DiffUpdated fails. +Solution: Also accept a count of two. +Files: src/testdir/test_diffmode.vim + +Patch 8.2.5167 +Problem: get(Fn, 'name') on funcref returns special byte code. +Solution: Use the printable name. +Files: src/evalfunc.c, src/testdir/test_getvar.vim + +Patch 8.2.5168 +Problem: Cannot build with Python 3.11. +Solution: Adjust define for _PyObject_TypeCheck. (Zdenek Dohnal, + closes #10627) +Files: src/if_python3.c + +Patch 8.2.5169 +Problem: Nested :source may use NULL pointer. +Solution: Do not use the NULL pointer. +Files: src/eval.c, src/testdir/test_vimscript.vim + +Patch 8.2.5170 +Problem: Tiny issues. +Solution: Tiny improvements. +Files: src/misc1.c, src/screen.c, src/vim.h + +Patch 8.2.5171 +Problem: Dependencies and proto files are outdated. +Solution: Update dependencies and proto files. Avoid errors. +Files: src/Makefile, src/gui_w32.c, src/os_mswin.c, src/proto/buffer.pro, + src/proto/cmdexpand.pro, src/proto/getchar.pro, + src/proto/help.pro, src/proto/mbyte.pro, src/proto/option.pro, + src/proto/screen.pro, src/proto/syntax.pro, + src/proto/textformat.pro, src/proto/textobject.pro, + src/proto/time.pro, src/proto/gui_x11.pro, src/proto/if_tcl.pro, + src/proto/os_mswin.pro + +Patch 8.2.5172 +Problem: "make menu" still uses legacy script. +Solution: make menu generation script use Vim9 script, fix errors. +Files: runtime/makemenu.vim + + +============================================================================== +VERSION 9.1 *version-9.1* *version9.1* *vim-9.1* + +This section is about improvements made between version 9.0 and 9.1. +The release 9.1 is dedicated to Vim's Benevolent dictator for life +|Bram-Moolenaar|. + +This release has hundreds of bug fixes, there are a few new features and there +are many minor improvements. + +Vim9 classes +------------ +Support for classes and objects in a Vim9 script are added. This is described +in |vim9-class|. The following features are supported: + - Defining classes and instantiating objects + - Multiple constructors + - Class variables and methods + - Object variables and methods + - Public and protected access for variables and methods + - Constant and final object/class variables + - Extending classes (single inheritance) + - Interfaces + - Abstract classes + - Exporting classes + +Support for creating a type alias for an existing type is added. + +Virtual text +------------ +Support for adding |virtual-text| to a buffer is added. This is useful for +language server features (e.g. inlay hints) + +Smooth Scroll +------------- +Support for scrolling text using screen lines instead of file lines is added. +Refer to the 'smoothscroll' option. + +The EditorConfig (|editorconfig-install|) and the JSON formatting +(|ft-json-plugin|) plugins are included. + +OpenVMS x86_64 platform port: http://www.polarhome.com/vim/ + +Other improvements *new-other-9.1* +------------------ +- Support for undercurl (|t_Ce|), double underline (|t_Us|), dotted underline + (|t_ds|) and dashed underline (|t_Ds|) termcap entries and + highlight modes (|highlight-term|). +- The 'fillchars' option is now a global-local option and allows to + specify the character used for the last window line. +- The |:vertical| and |:horizontal| modifiers can be used with ":wincmd =" + command to equalize windows vertically or horizontally. +- |:defer| command to defer the execution of a function till the end of a + function. +- Support for closing a tab page using the middle mouse button. +- Sound support in MacOS. +- The |prop_remove()| function can now remove multiple text properties. +- The |items()| function now supports a List or a String argument. +- The |repeat()| function now supports blob repeat. +- Command line completion support for |:runtime| command. +- Support for custom completion using |getcompletion()|. +- Command-line completion support for option values. +- Support for multiple "%=" items in 'statusline'. +- Support for the PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel + highlight groups. +- Text properties can override 'cursorline' highlight. +- Support for echoing messages in a popup window |:echowindow|. +- Control scroll behavior when splitting windows 'splitkeep'. +- Support for mouse scrolling in the MS-Windows console. +- Support for using different keyboard protocols 'keyprotocol' + (xterm |modifyOtherKeys| and Kitty terminal protocol (CSI u) support). +- Support for UTF-16 string index. +- Quickfix list items can have associated custom user data. +- |reverse()| supports reversing a string. +- 'switchbuf' is used by more commands. +- |undotree()| can be used with any buffer. +- |printf()| supports positional arguments. +- |col()|, |charcol()| and |virtcol()| can be used with different windows. +- Support for Python3 stable ABI (|python-stable|). +- Use |jumplist| like a stack 'jumpoptions'. +- Support for writing extended attributes in Linux (|xattr|). +- 'errorformat' supports parsing a buffer number ("%b"). +- Support for building the python interface using Python 3.12. +- |matchaddpos()| is no longer limited to 8 positions. +- |readblob()| allows to read part of a file. +- 'shortmess' allows to suppress "scanning" messages. +- Add the XChaCha20v2 encryption method 'cryptmethod'. +- Add support for testing syntax files. +- Support "**" for filename expansion with bash using globstar setting. +- Add quadruple prime digraph using 4'. +- Better high dpi support on Windows. +- Various fixes for unsafe memory access, memory leaks, buffer overflows + and potential crashes. +- Termdebug: Support for the variables window (|termdebug_variables_window|), + moving up/down the stack frames (|termdebug-frames|) and setting temporary + breakpoints (|:Tbreak|). +- xxd: support for using colors in the hex dump output (xxd -R). +- xxd: reversing a bit dump (xxd -r). +- xxd: customize the variable name used in the C include output (xxd -n). + +Changed *changed-9.1* +------- +- The features |++builtin_terms|, |+cmdline_info|, |+cmdwin|, |+file_in_path|, + |+float|, |+path_extra|, |+textobjects|, |+wildignore| and |+wildmenu| are + available in all the builds. +- Support for Windows-XP is dropped. +- Support for VisVim is removed. +- The "small" and "big" builds are dropped in favor of "tiny" and "huge" + builds. +- Mention the detected 'keyprotocol' on ":verbose map" when listing mappings. +- The optional Content-Type header is removed from the LSP messages. +- |charidx()| returns the character length when the index is one more than the + last byte index. +- Ctrl-Q works like Ctrl-V in replace mode. +- |popup_filter_menu()| now wraps around. +- |popup_create()| now aborts on an error. +- |g<End>| now jumps to the last non-blank character. +- dot and hyphen are supported in highlight group names. +- |executable()| resolves symlinks on MS-Windows. +- Ruby 1.8 support is dropped. +- 'ttyfast' is always set. +- |virtcol2col()| returns the first byte for a multi-byte character. +- |i_CTRL-O| resets Select Mode. +- |mode()| returns more submodes. +- r with CTRL-C on a visual area replaces using CTRL-C consistently. +- The matchparen plugin no longer uses hard coded match id 3. +- The Statusline no longer uses hard coded values "^" and "=" if the + highlighting groups for the statusline have been cleared. +- 'maxfuncdepth' setting is also used for the maximum callback depth. +- Migrate to autoconf 2.71. +- Start using C99 feature (declare variable in for loops). + +Added *added-9.1* +----- + +Various syntax, indent and other plugins were added. + +Functions: ~ + +|err_teapot()| produce error 418 or 503 +|getbufoneline()| get a single line from the specified buffer +|getcellwidths()| get character cell width overrides +|getmouseshape()| get name of the current mouse shape +|getscriptinfo()| get list of sourced vim scripts +|indexof()| index in a List or Blob of a true expression +|instanceof()| check if a variable is an instance of a given class +|keytrans()| translate internal key codes to be usable with |:map| +|popup_findecho()| get window ID for popup used for |:echowindow| +|setcmdline()| set the current command line +|strutf16len()| number of UTF-16 code units in a string +|swapfilelist()| list of existing swap files in 'directory' +|test_mswin_event()| generate an MS-Windows event for testing +|utf16idx()| UTF-16 index of a byte in a string + + +Autocommands: ~ + +|TextChangedT| after a change was made to the text in Terminal mode +|WinResized| after a window in the current tab page is resized + + +Commands: ~ + +|:abstract| define a Vim9 abstract class +|:class| start of a class specification +|:defer| call function when current function is done +|:echowindow| same as :echomsg, but use a popup window +|:endinterface| end of an interface specification +|:endclass| end of a class specification +|:horizontal| following window command works horizontally +|:interface| start of an interface specification +|:public| prefix for a class or object member +|:static| prefix for a class member or function +|:this| prefix for an object member +|:type| create a type alias + + +Options: ~ + +'endoffile' write CTRL-Z at end of the file +'jumpoptions' specifies how jumping is done +'keyprotocol' what keyboard protocol to use for what terminal +'lispoptions' changes how Lisp indenting is done +'showcmdloc' where to show (partial) command +'smoothscroll' scroll by screen lines when 'wrap' is set +'splitkeep' determines scroll behavior for split windows + +============================================================================== +PATCHES *patches-9.1* *bug-fixes-9.1* + *patches-after-9.0* + +The list of patches that got included since 9.0.0. This includes all the new +features, but does not include runtime file changes (syntax, indent, ftplugin, +documentation, etc.) + +Note: authorship and the list of changed files is left out and only visible +through `git log` for each commit. + +Patch 9.0.0001 +Problem: Travis CI is no longer used. +Solution: Delete the Travis CI configuration. (Hugo Osvaldo Barrera, + closes #10636) + +Patch 9.0.0002 +Problem: Map functionality outside of map.c. +Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611) + +Patch 9.0.0003 +Problem: Functions are global while they could be local. +Solution: Add "static". Add a few tests. (Yegappan Lakshmanan, + closes #10612) + +Patch 9.0.0004 +Problem: Plural messages not translated properly. +Solution: Use ngettext() in a few more places. (Matvey Tarasov, + closes #10606) + +Patch 9.0.0005 +Problem: Hare files are not recognized. +Solution: Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630) + +Patch 9.0.0006 +Problem: Not all Visual Basic files are recognized. +Solution: Change detection of *.cls files. (Doug Kearns) + +Patch 9.0.0007 +Problem: No support for double, dotted and dashed underlines. +Solution: Add the termcap entries and highlight modes. (closes #9553) + +Patch 9.0.0008 +Problem: Cannot specify the variable name for "xxd -i". +Solution: Add the "-name" argument. (David Gow, closes #10599) + +Patch 9.0.0009 +Problem: Going past the end of a menu item with only modifier. +Solution: Check for NUL. + +Patch 9.0.0010 +Problem: Returning 0 for has('patch-9.0.0') is inconsistent. +Solution: Make it return 1. (closes #10640) + +Patch 9.0.0011 +Problem: Reading beyond the end of the line with put command. +Solution: Adjust the end mark position. + +Patch 9.0.0012 +Problem: Signature files not detected properly. +Solution: Add a function to better detect signature files. (Doug Kearns) + +Patch 9.0.0013 +Problem: Reproducing memory access errors can be difficult. +Solution: When testing, copy each line to allocated memory, so that valgrind + can detect accessing memory before and/or after it. Fix uncovered + problems. + +Patch 9.0.0014 +Problem: Missing part of the test override change. +Solution: Add the missing part. + +Patch 9.0.0015 +Problem: With EXITFREE defined terminal menus are not cleared. +Solution: Also clear terminal menus. Remove condition that is always true. + (closes #10641) + +Patch 9.0.0016 +Problem: Comparing line pointer for 'breakindent' is not reliable. +Solution: Make a copy of the line. + +Patch 9.0.0017 +Problem: Accessing memory beyond the end of the line. +Solution: Stop Visual mode when closing a window. + +Patch 9.0.0018 +Problem: Going over the end of the typeahead. +Solution: Put a NUL after the typeahead. + +Patch 9.0.0019 +Problem: Timers test not run where possible. +Solution: Adjust platform checks. (closes #10645) + +Patch 9.0.0020 +Problem: With some completion reading past end of string. +Solution: Check the length of the string. + +Patch 9.0.0021 +Problem: Invalid memory access when adding word with a control character to + the internal spell word list. +Solution: Disallow adding a word with control characters or a trailing + slash. + +Patch 9.0.0022 +Problem: Spell test fails. +Solution: Expect new error is given. + +Patch 9.0.0023 +Problem: On Solaris timer_create() exists but does not work. +Solution: Adjust the configure check to run the test program. + (closes #10647) + +Patch 9.0.0024 +Problem: May access part of typeahead buf that isn't filled. +Solution: Check length of typeahead. + +Patch 9.0.0025 +Problem: Accessing beyond allocated memory when using the cmdline window in + Ex mode. +Solution: Use "*" instead of "'<,'>" for Visual mode. + +Patch 9.0.0026 +Problem: Accessing freed memory with diff put. +Solution: Bail out when diff pointer is no longer valid. + +Patch 9.0.0027 +Problem: The command line test is getting quite big. +Solution: Move command line window tests to a separate file. + +Patch 9.0.0028 +Problem: MS-Windows: tests fail if there is a stray "runtime" directory. +Solution: Only use a "runtime" directory if it contains "defaults.vim". + +Patch 9.0.0029 +Problem: The bitmaps/vim.ico file is not in the distribution. +Solution: Add it back to the distribution. Adjust the build rules to have + it end up in the right place. + +Patch 9.0.0030 +Problem: Matchfuzzy test depends on path of current directory. +Solution: Use fnamemodify() to remove the path. (Robin Becker, + closes #10650) + +Patch 9.0.0031 +Problem: <cmod> of user command does not have correct verbose value. +Solution: Use the value from the command modifier. (closes #10651) + +Patch 9.0.0032 +Problem: In the quickfix window 'cursorline' overrules QuickFixLine + highlighting. +Solution: Combine the attributes. Add a test. (closes #10654) + +Patch 9.0.0033 +Problem: On a Belgian keyboard CTRL-[ does not work. +Solution: Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658) + +Patch 9.0.0034 +Problem: Spell tests do not always clear the word list. +Solution: Clear the word list in TearDown(). (closes #10659) + +Patch 9.0.0035 +Problem: Spell dump may go beyond end of an array. +Solution: Limit the word length. + +Patch 9.0.0036 +Problem: 'fillchars' cannot have window-local values. +Solution: Make 'fillchars' global-local. (closes #5206) + +Patch 9.0.0037 +Problem: Build error. +Solution: Add missing change. + +Patch 9.0.0038 +Problem: 'listchars' test fails. +Solution: Use window-local value after setting the global value + +Patch 9.0.0039 +Problem: Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka) +Solution: Add an #ifdef. + +Patch 9.0.0040 +Problem: Use of set_chars_option() is confusing. +Solution: Add "apply" argument to store the result or not. Merge similar + code. + +Patch 9.0.0041 +Problem: A couple of filetype patterns do not have "*" before "/etc". +Solution: Add the star. (Jonas Strittmatter, closes #10662) + +Patch 9.0.0042 +Problem: Missing change for filetype detection. +Solution: Include change to detect guile from shebang line. + +Patch 9.0.0043 +Problem: Insufficient testing for bracket commands. +Solution: Add a few more tests. (closes #10668) + +Patch 9.0.0044 +Problem: Typos in comments, wrapping lines. +Solution: Adjust comments. Wrap lines. + +Patch 9.0.0045 +Problem: Reading past end of completion with a long line and 'infercase' + set. +Solution: Allocate the string if needed. + +Patch 9.0.0046 +Problem: Reading past end of completion with duplicate match. +Solution: Check string length + +Patch 9.0.0047 +Problem: Using freed memory with recursive substitute. +Solution: Always make a copy for reg_prev_sub. + +Patch 9.0.0048 +Problem: Cursor in wrong column with mouse click after concealed text. +Solution: Store the text column when drawing text. + +Patch 9.0.0049 +Problem: Csv and tsv files are not recognized. +Solution: Add patterns fo csv and tsv files. (Leandro Lourenci, + closes #10680) + +Patch 9.0.0050 +Problem: Split else-of is confusing. +Solution: Join the lines. (closes #10696) + +Patch 9.0.0051 +Problem: Using CTRL-C with :append may hang Vim. +Solution: Reset got_int. (closes #10729, closes #10728) + +Patch 9.0.0052 +Problem: "zG" may throw an error if invalid character follows. +Solution: Pass the word length to valid_spell_word(). (Ken Takata, + closes #10737) + +Patch 9.0.0053 +Problem: E1281 not tested with the old regexp engine. +Solution: Loop over the values of 'regexp'. (Dominique Pellé, closes #10695) + +Patch 9.0.0054 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type cast. (Mike Williams, closes #10741) + +Patch 9.0.0055 +Problem: Bitbake files are not detected. +Solution: Add bitbake filetype detection by file name and contents. (Gregory + Anders, closes #10697) + +Patch 9.0.0056 +Problem: Wrong line number reported when :cexpr fails in :def function. +Solution: Set line_number before executing :cexpr. (closes #10735) + +Patch 9.0.0057 +Problem: has('patch-xxx') returns true. +Solution: Check for digit. (closes #10751) + +Patch 9.0.0058 +Problem: Win32: cannot test low level events. +Solution: Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan, + closes #10679) + +Patch 9.0.0059 +Problem: Test file has wrong name. +Solution: Rename the file. Various small fixes. (closes #10674) + +Patch 9.0.0060 +Problem: Accessing uninitialized memory when completing long line. +Solution: Terminate string with NUL. + +Patch 9.0.0061 +Problem: ml_get error with nested autocommand. +Solution: Also check line numbers for a nested autocommand. (closes #10761) + +Patch 9.0.0062 +Problem: Compiler warnings for signed/unsigned char. +Solution: Add type casts. (John Marriott) + +Patch 9.0.0063 +Problem: Too many type casts for dict_get functions. +Solution: Change the key argument from "char_u *" to "char *". + +Patch 9.0.0064 +Problem: Confusing error when using "q:" in command line window. +Solution: Check for the situation and give a better error message. + (closes #10756) + +Patch 9.0.0065 +Problem: Cross-compiling doesn't work because of timer_create check. +Solution: Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777) + +Patch 9.0.0066 +Problem: Switching window unnecessarily when getting buffer options. +Solution: Do not switch window when getting buffer options. (closes #10767) + +Patch 9.0.0067 +Problem: Cannot show virtual text. +Solution: Initial changes for virtual text support, using text properties. + +Patch 9.0.0068 +Problem: Build fails with tiny features. +Solution: Add #ifdef. + +Patch 9.0.0069 +Problem: Leaking memory when using text prop with inserted text. +Solution: Clear the growarray with text. + +Patch 9.0.0070 +Problem: Using utfc_ptr2char_len() when length is negative. +Solution: Check value of length. (closes #10760) + +Patch 9.0.0071 +Problem: Command overlaps with printed text in scrollback. +Solution: Clear until end-of-line and use correct message chunk. + (closes #10765, closes #10764) + +Patch 9.0.0072 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. (John Marriott) + +Patch 9.0.0073 +Problem: Too many files recognized as bsdl. +Solution: Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij, + closes #10783) + +Patch 9.0.0074 +Problem: Coverity warns for double free. +Solution: Reset cts_text_prop_count when freeing cts_text_props. + +Patch 9.0.0075 +Problem: Some compilers warn for using an uninitialized variable. (Tony + Mechelynck) +Solution: Initialize the variable. + +Patch 9.0.0076 +Problem: No test for what patch 8.1.1424 fixes. +Solution: Add a test. (closes #10789) + +Patch 9.0.0077 +Problem: When switching window in autocmd the restored cursor position may + be wrong. +Solution: Do not restore the cursor if it was not set. (closes #10775) + +Patch 9.0.0078 +Problem: Star register is changed when deleting and both "unnamed" and + "unnamedplus" are in 'clipboard'. +Solution: Make the use of the star register work as documented. (Ernie Rael, + closes #10669) + +Patch 9.0.0079 +Problem: Error in autoload script not reported for 'foldexpr'. +Solution: Reset "emsg_off" when auto-loading a script. (closes #10685) + +Patch 9.0.0080 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type casts. (Mike Williams, closes #10795) + +Patch 9.0.0081 +Problem: Command line completion of user command may have duplicates. + (Dani Dickstein) +Solution: Skip global user command if an identical buffer-local one is + defined. (closes #10797) + +Patch 9.0.0082 +Problem: Cannot interrupt global command from command line. +Solution: Reset got_int in another place. (closes #10739) + +Patch 9.0.0083 +Problem: ModeChanged event not triggered when leaving the cmdline window. +Solution: Call may_trigger_modechanged(). (closes #10791) + +Patch 9.0.0084 +Problem: Using "terraform" filetype for .tfvars file is bad. +Solution: use "terraform-vars", so that different completion and other + mechanisms can be used. (Radek Simko, closes #10755) + +Patch 9.0.0085 +Problem: ":write" fails after ":file name" and the ":edit". +Solution: Reset BF_NOTEDITED when using ":edit". (closes #10790) + +Patch 9.0.0086 +Problem: Tabline is not redrawn when entering command line. +Solution: Set "redraw_tabline". (closes #10771) + +Patch 9.0.0087 +Problem: MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc. +Solution: Figure out what the key code means. (Anton Sharonov, + closes #10687, closes #10454) + +Patch 9.0.0088 +Problem: Pattern for detecting bitbake files is not sufficient. +Solution: Adjust the pattern. (Gregory Anders, closes #10743) + +Patch 9.0.0089 +Problem: Fuzzy argument completion doesn't work for shell commands. +Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan, + closes #10769) + +Patch 9.0.0090 +Problem: No error when assigning bool to a string option with setwinvar(). +Solution: Give an error (closes #10766) + +Patch 9.0.0091 +Problem: Duplicate error number. +Solution: Use unique error number. + +Patch 9.0.0092 +Problem: Plugins cannot change v:completed_item. +Solution: Make v:completed_item writeable. (Shougo Matsushita, + closes #10801) + +Patch 9.0.0093 +Problem: Sway config files are recognized as i3config. +Solution: Recognize swayconfig separately. (James Eapen, closes #10672) + +Patch 9.0.0094 +Problem: Cursor restored unexpected with nested autocommand. +Solution: Do not restore the cursor when it was moved intentionally. + (closes #10780) + +Patch 9.0.0095 +Problem: Conditions are always true. +Solution: Remove useless conditions. (closes #10802) + +Patch 9.0.0096 +Problem: Flag "new_value_alloced" is always true. +Solution: Remove "new_value_alloced". (closes #10792) + +Patch 9.0.0097 +Problem: Long quickfix line is truncated for :clist. +Solution: Allocate a buffer if needed. + +Patch 9.0.0098 +Problem: missing include file in timer_create configure check. +Solution: Include stdlib.h. + +Patch 9.0.0099 +Problem: Scrollback can be wrong after redrawing the command line. +Solution: Clear unfinished scrollback when redrawing. (closes #10807) + +Patch 9.0.0100 +Problem: Get hit-enter prompt for system() when '!' is in 'guioptions'. +Solution: Do not call wait_return() when not redrawing. (closes #3327) + +Patch 9.0.0101 +Problem: Invalid memory access in diff mode with "dp" and undo. +Solution: Make sure the line number does not go below one. + +Patch 9.0.0102 +Problem: Reading past end of line with insert mode completion. +Solution: Check text length. + +Patch 9.0.0103 +Problem: If running configure with cached results -lrt may be missing. +Solution: Use two cache variables, one without and one with -lrt. + (closes #10799) Swap checks to avoid adding -lrt unnecessarily. + +Patch 9.0.0104 +Problem: Going beyond allocated memory when evaluating string constant. +Solution: Properly skip over <Key> form. + +Patch 9.0.0105 +Problem: Illegal memory access when pattern starts with illegal byte. +Solution: Do not match a character with an illegal byte. + +Patch 9.0.0106 +Problem: Illegal byte regexp test doesn't fail when fix is reversed. +Solution: Make sure illegal bytes end up in sourced script file. + +Patch 9.0.0107 +Problem: Condition always has the same value. +Solution: Remove the condition. + +Patch 9.0.0108 +Problem: Configure check for timer_create may give wrong error. +Solution: Give a warning instead of an error. + +Patch 9.0.0109 +Problem: Writing over the end of a buffer on stack when making list of + spell suggestions. +Solution: Make sure suggested word is not too long. (closes #10812) + +Patch 9.0.0110 +Problem: Help tag generation picks up words in code examples. +Solution: Skip over examples. (Carlo Teubner, closes #10813) + +Patch 9.0.0111 +Problem: "nocombine" is missing from synIDattr(). +Solution: Add "nocombine". (Muni Tanjim, closes #10816) + +Patch 9.0.0112 +Problem: MS-Windows: test fails because file already exists. +Solution: Wait a little while until the file is gone. + +Patch 9.0.0113 +Problem: has() is not strict about parsing the patch version. +Solution: Check the version more strictly. (Ken Takata, closes #10752) + +Patch 9.0.0114 +Problem: The command line takes up space even when not used. +Solution: Allow for 'cmdheight' to be set to zero. (Shougo Matsushita, + closes #10675, closes #940) + +Patch 9.0.0115 +Problem: When 'cmdheight' is zero pressing ':' may scroll a window. +Solution: Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero. + +Patch 9.0.0116 +Problem: Virtual text not displayed if 'signcolumn' is "yes". +Solution: Set c_extra and c_final to NUL. + +Patch 9.0.0117 +Problem: Text of removed textprop with text is not freed. +Solution: Free the text when the property is removed. Reduce the array size + to ignore NULLs at the end. + +Patch 9.0.0118 +Problem: No test for what patch 9.0.0155 fixes. +Solution: Add a test. Fix typos. (closes #10822) + +Patch 9.0.0119 +Problem: Tiny chance that creating a backup file fails. +Solution: Check for EEXIST error. (Ken Takata, closes #10821) + +Patch 9.0.0120 +Problem: MS-Windows GUI: cannot use AltGr + Space. +Solution: Check for VK_MENU instead of VK_LMENU. (Anton Sharonov, + closes #10820, closes #10753) + +Patch 9.0.0121 +Problem: Cannot put virtual text after or below a line. +Solution: Add "text_align" and "text_wrap" arguments. + +Patch 9.0.0122 +Problem: Breakindent test fails. +Solution: Fix condition. + +Patch 9.0.0123 +Problem: Cannot build with small features. +Solution: Add #ifdef. + +Patch 9.0.0124 +Problem: Code has more indent than needed. +Solution: Use continue and return statements. (closes #10824) + +Patch 9.0.0125 +Problem: Cursor positioned wrong with virtual text after the line. +Solution: Clear cts_with_trailing. + +Patch 9.0.0126 +Problem: Expanding file names fails in directory with more than 255 + entries. +Solution: Use an int instead of char_u to count. (John Drouhard, + closes #10818) + +Patch 9.0.0127 +Problem: Unused variable. +Solution: Remove the variable. (closes #10829) + +Patch 9.0.0128 +Problem: Coverity complains about possible double free. +Solution: Clear the pointer to avoid warnings. + +Patch 9.0.0129 +Problem: Compiler warning for int/size_t usage. +Solution: Add a type cast. (Mike Williams, closes #10830) + +Patch 9.0.0130 +Problem: Cursor position wrong when inserting around virtual text. +Solution: Update the cursor position properly. + +Patch 9.0.0131 +Problem: Virtual text with Tab is not displayed correctly. +Solution: Change any Tab to a space. + +Patch 9.0.0132 +Problem: Multi-byte characters in virtual text not handled correctly. +Solution: Count screen cells instead of bytes. + +Patch 9.0.0133 +Problem: Virtual text after line moves to joined line. (Yegappan + Lakshmanan) +Solution: When joining lines only keep virtual text after the last line. + +Patch 9.0.0134 +Problem: No test for text property with column zero. +Solution: Add a test. Add message to assert for no open popups. + +Patch 9.0.0135 +Problem: Comment about tabpage line above the wrong code. +Solution: Move the comment. (closes #10836) + +Patch 9.0.0136 +Problem: After CTRL-Left-mouse click a mouse scroll also has CTRL. +Solution: Reset orig_mouse_code also for wheel events. (closes #10840) + +Patch 9.0.0137 +Problem: Debugger test may fail when $CWD is very long. +Solution: Skip the test if the directory name is too long. (James McCoy, + closes #10837) + +Patch 9.0.0138 +Problem: Not enough characters accepted for 'spellfile'. +Solution: Add vim_is_fname_char() and use it for 'spellfile'. + +Patch 9.0.0139 +Problem: Truncating virtual text after a line not implemented. + Cursor positioning wrong with Newline in the text. +Solution: Implement truncating. Disallow control characters in the text. + (closes #10842) + +Patch 9.0.0140 +Problem: execute() does not use the "legacy" command modifier. +Solution: pass the command modifier in sticky_cmdmod_flags. (Kota Kato, + closes #10845) + +Patch 9.0.0141 +Problem: "delmenu" does not remove autocommands. Running menu test function + alone fails. +Solution: Delete autocommands Make sure there is at least one menu. + (closes #10848) + +Patch 9.0.0142 +Problem: Crash when adding and removing virtual text. (Ben Jackson) +Solution: Check that the text of the text property still exists. + +Patch 9.0.0143 +Problem: Cursor positioned after virtual text in empty line. +Solution: Keep cursor in the first column. (closes #10786) + +Patch 9.0.0144 +Problem: Text property cannot override 'cursorline' highlight. +Solution: Add the "override" flag to prop_type_add(). (closes #5533, + closes #8225). + +Patch 9.0.0145 +Problem: Substitute that joins lines drops text properties. +Solution: Move text properties of the last line to the new line. + +Patch 9.0.0146 +Problem: Missing part of change for "override" flag. +Solution: Add the missing change. + +Patch 9.0.0147 +Problem: Cursor positioned wrong after two text properties with virtual + text and "below" alignment. (Tim Pope) +Solution: Do not stop after a text property using MAXCOL. (closes #10849) + +Patch 9.0.0148 +Problem: A "below" aligned text property gets 'showbreak' displayed. +Solution: Do not use 'showbreak' before or in virtual text. (issue #10851) + +Patch 9.0.0149 +Problem: Test for fuzzy completion fails sometimes. +Solution: Use a more specific file name to minimize the chance of matching a + random directory name. (closes #10854) + +Patch 9.0.0150 +Problem: Error for using #{ in an expression is a bit confusing. +Solution: Mention that this error is only given for an expression. + Avoid giving the error more than once. (closes #10855) + +Patch 9.0.0151 +Problem: A "below" aligned text property does not work with 'nowrap'. +Solution: Start a new screen line to display the virtual text. + (closes #10851) + +Patch 9.0.0152 +Problem: Warning for unused argument in small build. +Solution: Add "UNUSED". + +Patch 9.0.0153 +Problem: No fold and sign column for virtual text with "below" align and + 'nowrap'. +Solution: Go back to draw state WL_START when moving to the next line. + (closes #10851) + +Patch 9.0.0154 +Problem: Text properties wrong after splitting a line. +Solution: Check for text properties after the line. (closes #10857) + +Patch 9.0.0155 + +Patch 9.0.0156 +Problem: Giving E1170 only in an expression is confusing. +Solution: Give E1170 for any "#{ comment". (closes #10855) + +Patch 9.0.0157 +Problem: 'showbreak' displayed below truncated "after" text prop. +Solution: Suppress 'showbreak' when "after" prop doesn't wrap. + +Patch 9.0.0158 +Problem: With 'nowrap' "below" property not displayed correctly. +Solution: Adjust virtual text with 'nowrap', do not truncate. + +Patch 9.0.0159 +Problem: Cannot build with small features. +Solution: Check for E1170 only with FEAT_EVAL. + +Patch 9.0.0160 +Problem: Some diff mode tests fail. +Solution: Only advance "ptr" when a text property follows. + +Patch 9.0.0161 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize line_attr_save. + +Patch 9.0.0162 +Problem: Text property "below" gets indent if 'breakindent' is set. (Tim + Pope) +Solution: Do not put indent before text property. (closes #10859) + +Patch 9.0.0163 +Problem: Text property not adjusted for text inserted with "p". +Solution: Adjust column and length of text properties. + +Patch 9.0.0164 +Problem: Using freed memory with put command. +Solution: Get byte offset before replacing the line. + +Patch 9.0.0165 +Problem: Looking up a text property type by ID is slow. +Solution: Keep an array of property types sorted on ID. + +Patch 9.0.0166 +Problem: When using text properties the line text length is computed twice. +Solution: If the text length was already computed don't do it again. + +Patch 9.0.0167 +Problem: Checking for text properties could be a bit more efficient. +Solution: Return early when there are no text properties. Update TODO + items. + +Patch 9.0.0168 +Problem: Cursor positioned wrong with two virtual text properties close + together. (Ben Jackson) +Solution: Add the original size, not the computed one. (closes #10864) + +Patch 9.0.0169 +Problem: Insufficient testing for line2byte() with text properties. +Solution: Add tests with a lot of text. + +Patch 9.0.0170 +Problem: Various minor code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0171 +Problem: Quickfix line highlight is overruled by 'cursorline'. +Solution: Reverse the combination of attributes. (closes #10654) + +Patch 9.0.0172 +Problem: Trying to allocate zero bytes. +Solution: Do not allocate the proptype array when there are none. + (closes #10867) + +Patch 9.0.0173 +Problem: Assert fails only on MS-Windows. +Solution: Disable the assert for now. + +Patch 9.0.0174 +Problem: No error for using "#{ comment" in a compiled function. +Solution: Make error checking for "#{" consistent. (closes #10855) + +Patch 9.0.0175 +Problem: Spell checking for capital not working with trailing space. +Solution: Do not calculate cap_col at the end of the line. (Christian + Brabandt, closes #10870, issue #10838) + +Patch 9.0.0176 +Problem: Checking character options is duplicated and incomplete. +Solution: Move checking to check_chars_options(). (closes #10863) + +Patch 9.0.0177 +Problem: Cursor position wrong with 'virtualedit' and mouse click after end + of the line. (Hermann Mayer) +Solution: Do not use ScreenCols[] when 'virtualedit' is active. + (closes #10868) + +Patch 9.0.0178 +Problem: Cursor position wrong with virtual text before Tab. +Solution: Use the byte length, not the cell with, to compare the column. + Correct tab size after text prop. (closes #10866) + +Patch 9.0.0179 +Problem: Cursor position wrong with wrapping virtual text in empty line. +Solution: Adjust handling of an empty line. (closes #10875) + +Patch 9.0.0180 +Problem: Stray logfile appears when running tests. +Solution: Remove ch_logfile() calls. + +Patch 9.0.0181 +Problem: Textprop test with line2byte() fails on MS-Windows. +Solution: Fix updating chunks in ml_delete_int(). + +Patch 9.0.0182 +Problem: Quarto files are not recognized. +Solution: Recognize quarto files by the extension. (Jonas Strittmatter, + closes #10880) + +Patch 9.0.0183 +Problem: Extra space after virtual text when 'linebreak' is set. +Solution: Do not count virtual text when getting linebreak value. + (closes #10884) + +Patch 9.0.0184 +Problem: Virtual text prop highlight continues after truncation. +Solution: Recompute the length of attributes. + +Patch 9.0.0185 +Problem: Virtual text does not show if there is a text prop at same + position. (Ben Jackson) +Solution: Fix the sorting of properties. (closes #10879) + +Patch 9.0.0186 +Problem: Virtual text without highlighting does not show. (Ben Jackson) +Solution: Use a text property when it has highlighting or when it has text. + (closes #10878) + +Patch 9.0.0187 +Problem: Command line height changes when maximizing window height. +Solution: Do not change the command line height. (closes #10885) + +Patch 9.0.0188 +Problem: Strange effects when using virtual text with "text_align" and + non-zero column. (Martin Tournoij) +Solution: Give an error. (closes #10888) + +Patch 9.0.0189 +Problem: Invalid memory access for text prop without highlight. +Solution: Check for a valid highlight ID. + +Patch 9.0.0190 +Problem: The way 'cmdheight' can be made zero is inconsistent. +Solution: Only make 'cmdheight' zero when setting it explicitly, not when + resizing windows. (closes #10890) + +Patch 9.0.0191 +Problem: Messages test fails; window size incorrect when 'cmdheight' is + made smaller. +Solution: Properly cleanup after test with cmdheight zero. Resize windows + correctly when 'cmdheight' gets smaller. + +Patch 9.0.0192 +Problem: Possible invalid memory access when 'cmdheight' is zero. (Martin + Tournoij) +Solution: Avoid going over the end of w_lines[] when w_height is Rows. + (closes #10882) + +Patch 9.0.0193 +Problem: Search and match highlight interfere with virtual text highlight. + (Ben Jackson) +Solution: Check for match highlight after text properties. Reset and + restore search highlight when showing virtual text. + (closes #10892) + +Patch 9.0.0194 +Problem: Cursor displayed in wrong position after removing text prop. (Ben + Jackson) +Solution: Invalidate the cursor position. (closes #10898) + +Patch 9.0.0195 +Problem: Metafun files are not recognized. +Solution: Add filetype detection patterns. + +Patch 9.0.0196 +Problem: Finding value in list may require a for loop. +Solution: Add indexof(). (Yegappan Lakshmanan, closes #10903) + +Patch 9.0.0197 +Problem: Astro files are not detected. +Solution: Add a pattern to match Astro files. (Emilia Zapata, closes #10904) + +Patch 9.0.0198 +Problem: ml_get error when switching buffer in Visual mode. +Solution: End Visual mode when switching buffer. (closes #10902) + +Patch 9.0.0199 +Problem: Cursor position wrong with two right-aligned virtual texts. +Solution: Add the padding for right-alignment. (issue #10906) + +Patch 9.0.0200 +Problem: cursor in a wrong position if 'wrap' is off and using two right + aligned text props in one line. +Solution: Count an extra line for a right aligned text property after a + below or right aligned text property. (issue #10909) + +Patch 9.0.0201 +Problem: CursorLine highlight overrules virtual text highlight. +Solution: Let extra attribute overrule line attribute. (closes #10909) + +Patch 9.0.0202 +Problem: Code and help for indexof() is not ideal. +Solution: Refactor the code, improve the help. (Yegappan Lakshmanan, + closes #10908) + +Patch 9.0.0203 +Problem: Confusing variable name. +Solution: Use "prim_aep" instead of "spell_aep". + +Patch 9.0.0204 +Problem: indexof() may leak memory. +Solution: Free allocated values. (Yegappan Lakshmanan, closes #10916) + +Patch 9.0.0205 +Problem: Cursor in wrong position when inserting after virtual text. (Ben + Jackson) +Solution: Put the cursor after the virtual text, where the text will be + inserted. (closes #10914) + +Patch 9.0.0206 +Problem: Redraw flags are not named specifically. +Solution: Prefix "UPD_" to the flags, for UPDate_screen(). + +Patch 9.0.0207 +Problem: Stacktrace not shown when debugging. +Solution: Set msg_scroll in msg_source(). (closes #10917) + +Patch 9.0.0208 +Problem: The override flag has no effect for virtual text. (Ben Jackson) +Solution: Make the override flag work. (closes #10915) + +Patch 9.0.0209 +Problem: Build error with small features. +Solution: Add #ifdef. + +Patch 9.0.0210 +Problem: 'list' mode does not work properly with virtual text. +Solution: Show the "$" at the right position. (closes #10913) + +Patch 9.0.0211 +Problem: Invalid memory access when compiling :lockvar. +Solution: Don't read past the end of the line. + +Patch 9.0.0212 +Problem: Invalid memory access when compiling :unlet. +Solution: Don't read past the end of the line. + +Patch 9.0.0213 +Problem: Using freed memory with error in assert argument. +Solution: Make a copy of the error. + +Patch 9.0.0214 +Problem: Splitting a line may duplicate virtual text. (Ben Jackson) +Solution: Don't duplicate a text property with virtual text. Make + auto-indenting work better. (closes #10919) + +Patch 9.0.0215 +Problem: Not passing APC_INDENT flag. +Solution: Pass the flag where it's needed. + +Patch 9.0.0216 +Problem: Undo earlier test sometimes fails on MS-Windows. +Solution: Use another file name. + +Patch 9.0.0217 +Problem: 'shellslash' works differently when sourcing a script again. +Solution: Use the name from the script item. (closes #10920) + +Patch 9.0.0218 +Problem: Reading before the start of the line. +Solution: When displaying "$" check the column is not negative. + +Patch 9.0.0219 +Problem: Cannot make a funcref with "s:func" in a def function in legacy + script. +Solution: Allow for using a lower case function name after "s:". (Kota Kato, + closes #10926) + +Patch 9.0.0220 +Problem: Invalid memory access with for loop over NULL string. +Solution: Make sure mb_ptr2len() consistently returns zero for NUL. + +Patch 9.0.0221 +Problem: Accessing freed memory if compiling nested function fails. +Solution: Mess up the variable name so that it won't be found. + +Patch 9.0.0222 +Problem: No good reason why text objects are only in larger builds. +Solution: Graduate +textobjects. + +Patch 9.0.0223 +Problem: Typo in diffmode test. +Solution: Fix the typo. (closes #10932) + +Patch 9.0.0224 +Problem: Using NULL pointer when skipping compiled code. +Solution: Check for skipping. + +Patch 9.0.0225 +Problem: Using freed memory with multiple line breaks in expression. +Solution: Free eval_tofree later. + +Patch 9.0.0226 +Problem: job_start() test may fail under valgrind. +Solution: Wait until the job is running. + +Patch 9.0.0227 +Problem: Cannot read error message when abort() is called. +Solution: Output a newline before calling abort(). + +Patch 9.0.0228 +Problem: Crash when pattern looks below the last line. +Solution: Consider invalid lines to be empty. (closes #10938) + +Patch 9.0.0229 +Problem: Vim9: error message for missing type is not clear. +Solution: Mention the context. (issue #10944) + +Patch 9.0.0230 +Problem: No error for comma missing in list in :def function. +Solution: Check for missing comma. (closes #10943) + +Patch 9.0.0231 +Problem: Expanding "**" may loop forever with directory links. +Solution: Check for being interrupted. (closes #10946) + +Patch 9.0.0232 +Problem: Test with BufNewFile autocmd is flaky. +Solution: Use another file name. + +Patch 9.0.0233 +Problem: Removing multiple text properties takes many calls. +Solution: Pass a list to prop_remove(). (Ben Jackson, closes #10945) + +Patch 9.0.0234 +Problem: Cannot make difference between the end of :normal and a character + in its argument. +Solution: Add the "typebuf_was_empty" flag. (closes #10950) + +Patch 9.0.0235 +Problem: 'autoshelldir' does not work with chunked response. +Solution: Collect chunks before parsing OSC 7. (closes #10949) + +Patch 9.0.0236 +Problem: Popup menu not removed when 'wildmenu' reset while it is visible. +Solution: Do not check p_wmnu, only pum_visible(). (closes #10953) + +Patch 9.0.0237 +Problem: Mac: cannot build if dispatch.h is not available. +Solution: Add #ifdef. (Evan Miller, closes #10954) + +Patch 9.0.0238 +Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. +Solution: Only show matches when 'wildmode' contains "list". (closes #10951) + +Patch 9.0.0239 +Problem: Build failure without the +wildmenu feature. +Solution: Move parenthesis. + +Patch 9.0.0240 +Problem: Crash when using ":mkspell" with an empty .dic file. +Solution: Check for an empty word tree. + +Patch 9.0.0241 +Problem: "make install" does not install shared syntax file. (James McCoy) +Solution: Install and uninstall the shared syntax files. (closes #10956) + +Patch 9.0.0242 +Problem: "make install" still fails. (Wilhelm Payne) +Solution: Also add the directory to installrtbase. (Dominique Pellé) + +Patch 9.0.0243 +Problem: Text properties "below" sort differently on MS-Windows. +Solution: Use the ID as a tie breaker. (closes #10958) + +Patch 9.0.0244 +Problem: Cannot easily get the list of sourced scripts. +Solution: Add the getscriptinfo() function. (Yegappan Lakshmanan, + closes #10957) + +Patch 9.0.0245 +Problem: Mechanism to prevent recursive screen updating is incomplete. +Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). + (issue #10952) + +Patch 9.0.0246 +Problem: Using freed memory when 'tagfunc' deletes the buffer. +Solution: Make a copy of the tag name. + +Patch 9.0.0247 +Problem: Cannot add padding to virtual text without highlight. +Solution: Add the "text_padding_left" argument. (issue #10906) + +Patch 9.0.0248 +Problem: Duplicate code in finding a script in the execution stack. +Solution: Reduce duplicate code. (closes #10961) + +Patch 9.0.0249 +Problem: No test for what 9.0.0234 fixes. +Solution: Add a test. (issue #10950) + +Patch 9.0.0250 +Problem: Slightly inconsistent error messages. +Solution: Make it "Using a Float". (closes #10959) + +Patch 9.0.0251 +Problem: Test output shows up in git. +Solution: Ignore the "failed" directory. (Yao-Ching Huang, closes #10969) + +Patch 9.0.0252 +Problem: Cursor in wrong place after virtual text. +Solution: Do not change the length of a virtual text property. + (closes #10964) + +Patch 9.0.0253 +Problem: A symlink to an autoload script results in two entries in the list + of scripts, items expected in one are actually in the other. +Solution: Have one script item refer to the actually sourced one. + (closes #10960) + +Patch 9.0.0254 +Problem: Typo in function name. +Solution: Rename the function. (closes #10971) + +Patch 9.0.0255 +Problem: Build failure without the eval feature. +Solution: Add #ifdef. + +Patch 9.0.0256 +Problem: Compiler warning for uninitialized variables. +Solution: Initialize the variables. + +Patch 9.0.0257 +Problem: "->" in ":scriptnames" output not tested yet. +Solution: Add a check. + +Patch 9.0.0258 +Problem: MS-Windows installer skips syntax/shared. +Solution: Use "File /r" in the installer script. (Ken Takata, closes #10972) + +Patch 9.0.0259 +Problem: Crash with mouse click when not initialized. +Solution: Check TabPageIdxs[] is not NULL. + +Patch 9.0.0260 +Problem: Using freed memory when using 'quickfixtextfunc' recursively. +Solution: Do not allow for recursion. + +Patch 9.0.0261 +Problem: bufload() reads a file even if the name is not a file name. (Cyker + Way) +Solution: Do not read the file when the buffer name is not a file name. + (closes #10975) + +Patch 9.0.0262 +Problem: Build failure without the +quickfix feature. +Solution: Add #ifdef. + +Patch 9.0.0263 +Problem: Too many #ifdefs. +Solution: Make some functions always available. + +Patch 9.0.0264 +Problem: CI still runs on Ubuntu 18.04. +Solution: Run CI on Ubuntu 20.04. (closes #10582) + +Patch 9.0.0265 +Problem: No good reason why the "gf" command is not in the tiny version. +Solution: Graduate the file_in_path feature. + +Patch 9.0.0266 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0267 +Problem: Coverity workflow still uses Ubuntu 18.04. +Solution: Use Ubuntu 20.04 + +Patch 9.0.0268 +Problem: Build error without the +eval feature. +Solution: Remove #ifdef. + +Patch 9.0.0269 +Problem: getscriptinfo() does not include the version. Cannot select + entries by script name. +Solution: Add the "version" item and the "name" argument. (Yegappan + Lakshmanan, closes #10962) + +Patch 9.0.0270 +Problem: Some values of 'path' and 'tags' do not work in the tiny version. +Solution: Graduate the +path_extra feature. + +Patch 9.0.0271 +Problem: Using INIT() in non-header files. +Solution: Remove INIT(). (closes #10981) + +Patch 9.0.0272 +Problem: BufReadCmd not triggered when loading a "nofile" buffer. (Maxim + Kim) +Solution: Call readfile() but bail out before reading a file. + (closes #10983) + +Patch 9.0.0273 +Problem: Konsole termresponse not recognized. +Solution: Handle Konsole like libvterm, set 'ttymouse' to "sgr". + (closes #10990) + +Patch 9.0.0274 +Problem: Netrw plugin does not show remote files. +Solution: Do read a file when 'buftype' is "acwrite". (closes #10983) + +Patch 9.0.0275 +Problem: BufEnter not triggered when using ":edit" in "nofile" buffer. +Solution: Let readfile() return NOTDONE. (closes #10986) + +Patch 9.0.0276 +Problem: 'buftype' values not sufficiently tested. +Solution: Add and extend tests with 'buftype' values. (closes #10988) + +Patch 9.0.0277 +Problem: Coverity CI: update-alternatives not needed with Ubuntu 20.04. +Solution: Remove update-alternatives for Lua. (closes #10987) + +Patch 9.0.0278 +Problem: The +wildignore feature is nearly always available. +Solution: Graduate +wildignore for consistency. + +Patch 9.0.0279 +Problem: The tiny version has the popup menu but not 'wildmenu'. +Solution: Graduate the wildmenu feature. + +Patch 9.0.0280 +Problem: The builtin termcap list depends on the version. +Solution: Always include all termcap entries. Remove duplicate lines. + +Patch 9.0.0281 +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. + +Patch 9.0.0282 +Problem: A nested timeout stops the previous timeout. +Solution: Ignore any nested timeout. + +Patch 9.0.0283 +Problem: Cannot complete "syn list @cluster". +Solution: Recognize and handle "list @". (Björn Linse, closes #10990) + +Patch 9.0.0284 +Problem: Using static buffer for multiple completion functions. +Solution: Use one buffer in expand_T. + +Patch 9.0.0285 +Problem: It is not easy to change the command line from a plugin. +Solution: Add setcmdline(). (Shougo Matsushita, closes #10869) + +Patch 9.0.0286 +Problem: Using freed memory when location list changed in autocmd. +Solution: Return QF_ABORT and handle it. (Yegappan Lakshmanan, + closes #10993) + +Patch 9.0.0287 +Problem: Irix systems no longer exist. +Solution: Remove references to Irix. (Yegappan Lakshmanan, closes #10994) + +Patch 9.0.0288 +Problem: When 'cmdheight' is zero some messages are not displayed. +Solution: Use a popup notification window. + +Patch 9.0.0289 +Problem: Invalid memory write. +Solution: Do not put NUL in a static string. + +Patch 9.0.0290 +Problem: Compiler warning for variable set but not used. +Solution: Add #ifdef. + +Patch 9.0.0291 +Problem: Test failing. +Solution: Run test with cmdheight=0 last. + +Patch 9.0.0292 +Problem: Test causes another test to fail. +Solution: Redraw to remove the popup window + +Patch 9.0.0293 +Problem: Messages window not hidden when starting a command line. +Solution: Hide the messages window. (closes #10996) + +Patch 9.0.0294 +Problem: Crash when 'cmdheight' is 0 and popup_clear() used. +Solution: Reset "message_win" when the message popup is cleared. Close the + popup when 'cmdheight' is non-zero. Add a screendump test. + +Patch 9.0.0295 +Problem: GUI drop files test sometimes fails. +Solution: Mark the test as flaky. + +Patch 9.0.0296 +Problem: Message in popup is shortened unnecessary. +Solution: Do not use 'showcmd' and 'ruler' for a message in the popup. + Set the timer when unhiding the message popup. + +Patch 9.0.0297 +Problem: Cursor position wrong after right aligned virtual text. (Iizuka + Masashi) +Solution: Take the width of the column offset into account. (closes #10997) + Also fix virtual text positioning. + +Patch 9.0.0298 +Problem: Compiler warning for size_t to int conversion. +Solution: Add a type cast. (Wilhelm Payne, closes #11000) + +Patch 9.0.0299 +Problem: Error messages for setcmdline() could be better. +Solution: Use more specific error messages. (Yegappan Lakshmanan, + closes #10995) + +Patch 9.0.0300 +Problem: 'cpoptions' tests are flaky. +Solution: Use a different file name for each test. + +Patch 9.0.0301 +Problem: The message window popup is delayed after an error message. +Solution: Do not set emsg_on_display when using the message window. + +Patch 9.0.0302 +Problem: CI for Coverity is bothered by deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11002) + +Patch 9.0.0303 +Problem: It is not easy to get information about a script. +Solution: Make getscriptinfo() return the version. When selecting a specific + script return functions and variables. (Yegappan Lakshmanan, + closes #10991) + +Patch 9.0.0304 +Problem: WinScrolled is not triggered when only skipcol changes. +Solution: Add w_last_skipcol and use it. (closes #10998) + +Patch 9.0.0305 +Problem: CI lists useless deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11003) + +Patch 9.0.0306 +Problem: Buffer write message is two lines in message popup window. +Solution: Overwrite message if "msg_scroll" is off. + +Patch 9.0.0307 +Problem: :echomsg doesn't work properly with cmdheight=0. +Solution: Improve scrolling and displaying. + +Patch 9.0.0308 +Problem: When cmdheight is zero the attention prompt doesn't show. +Solution: Do not use the message window for a prompt. + +Patch 9.0.0309 +Problem: Invalid memory access when cmdheight is zero. +Solution: Check index in w_lines is smaller than Rows. + +Patch 9.0.0310 +Problem: Output of :messages disappears when cmdheight is zero. +Solution: Do not use the messages window for :messages. Make Esc close the + messages window. + +Patch 9.0.0311 +Problem: Test for hit-Enter prompt fails. +Solution: Only reset cmdline_row when 'cmdheight' is zero. + +Patch 9.0.0312 +Problem: Test for cmdheight zero fails. +Solution: Do not close the messages window for CTRL-C. + +Patch 9.0.0313 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0314 +Problem: VDM files are not recognized. +Solution: Add patterns for VDM files. (Alessandro Pezzoni, closes #11004) + +Patch 9.0.0315 +Problem: Shell command is displayed in message window. +Solution: Do not echo the shell command in the message window. + +Patch 9.0.0316 +Problem: Screen flickers when 'cmdheight' is zero. +Solution: Redraw over existing text instead of clearing. + +Patch 9.0.0317 +Problem: When updating the whole screen a popup may not be redrawn. +Solution: Mark the screen and windows for redraw also when not clearing. + Also mark popup windows for redraw. + +Patch 9.0.0318 +Problem: Clearing screen causes flicker. +Solution: Do not clear but redraw in more cases. Add () to "wait_return". + +Patch 9.0.0319 +Problem: Godot shader files are not recognized. +Solution: Add patterns for "gdshader". (Maxim Kim, closes #11006) + +Patch 9.0.0320 +Problem: Command line type of CmdlineChange differs from getcmdtype(). +Solution: Use the same type. (closes #11005) + +Patch 9.0.0321 +Problem: Cannot use the message popup window directly. +Solution: Add ":echowindow". + +Patch 9.0.0322 +Problem: Crash when no errors and 'quickfixtextfunc' is set. +Solution: Do not handle errors if there aren't any. + +Patch 9.0.0323 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0324 +Problem: MS-Windows: resolve() test fails. +Solution: Revert renaming the directory. + +Patch 9.0.0325 +Problem: MS-Windows: completion test fails. +Solution: Adjust directory prefix. + +Patch 9.0.0326 +Problem: Some changes for cmdheight=0 are not needed. +Solution: Revert resize behavior if height is greater than the available + space. (Shougo Matsushita, closes #11008) + +Patch 9.0.0327 +Problem: items() does not work on a list. (Sergey Vlasov) +Solution: Make items() work on a list. (closes #11013) + +Patch 9.0.0328 +Problem: OLD_DIGRAPHS is unused. +Solution: Remove OLD_DIGRAPHS. Also drop HPUX_DIGRAPHS. + +Patch 9.0.0329 +Problem: ":highlight" hangs when 'cmdheight' is zero. +Solution: Add to msg_col when using the message window. (closes #11014) + +Patch 9.0.0330 +Problem: Method tests fail. +Solution: Adjust for change of items(). + +Patch 9.0.0331 +Problem: Cannot use items() on a string. +Solution: Make items() work on a string. (closes #11016) + +Patch 9.0.0332 +Problem: Overwrite check may block BufWriteCmd. +Solution: Do not use overwrite check when 'buftype' is "acwrite". + (closes #11011) + +Patch 9.0.0333 +Problem: Method test fails. +Solution: Adjust test for items() now working on string. + +Patch 9.0.0334 +Problem: Test does not properly clean up. +Solution: Fix typo in argument of delete(). (Dominique Pellé, closes #11010) + +Patch 9.0.0335 +Problem: Checks for Dictionary argument often give a vague error message. +Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009) + +Patch 9.0.0336 +Problem: Tests are flaky because of using a common file name. +Solution: Rename files and directories to be more unique. + +Patch 9.0.0337 +Problem: Flicker when resetting cmdline_row after updating the screen. +Solution: Do not update cmdline_row. (issue #11017) + +Patch 9.0.0338 +Problem: Return value of list_append_list() not always checked. +Solution: Check return value and handle failure. + +Patch 9.0.0339 +Problem: No check if the return value of XChangeGC() is NULL. +Solution: Only use the return value when it is not NULL. (closes #11020) + +Patch 9.0.0340 +Problem: The 'cmdheight' zero support causes too much trouble. +Solution: Revert support for 'cmdheight' being zero. + +Patch 9.0.0341 +Problem: mapset() does not restore <Nop> mapping properly. +Solution: Use an empty string for <Nop>. (closes #11022) + +Patch 9.0.0342 +Problem: ":wincmd =" equalizes in two directions. +Solution: Make ":vertical wincmd =" equalize vertically only and + ":horizontal wincmd =" equalize horizontally only. + +Patch 9.0.0343 +Problem: ColorScheme autocommand triggered when colorscheme is not found. + (Romain Lafourcade) +Solution: Only trigger ColorScheme when loading the colorscheme succeeds. + (closes #11024) + +Patch 9.0.0344 +Problem: MS-Windows: background color wrong in Console. +Solution: Figure out the default console background color. (Yasuhiro + Matsumoto, issue #10310) + +Patch 9.0.0345 +Problem: Error message for list argument could be clearer. +Solution: Include the argument number. (Yegappan Lakshmanan, closes #11027) + +Patch 9.0.0346 +Problem: :horizontal modifier not fully supported. +Solution: Also use :horizontal for completion and user commands. + (closes #11025) + +Patch 9.0.0347 +Problem: MS-Windows: cannot set cursor shape in Windows Terminal. +Solution: Make cursor shape work with Windows Terminal. (Ken Takata, + closes #11028, closes #6576) + +Patch 9.0.0348 +Problem: MS-Windows: GUI mouse move event test is flaky. +Solution: Wait for a little while for the first move event. + +Patch 9.0.0349 +Problem: Filetype of *.sil files not well detected. +Solution: Inspect the file contents to guess the filetype. + +Patch 9.0.0350 +Problem: :echowindow does not work in a compiled function. +Solution: Handle the expression at compile time. + +Patch 9.0.0351 +Problem: Message window may obscure the command line. +Solution: Reduce the maximum height of the message window. + +Patch 9.0.0352 +Problem: using :echowindow in a timer clears part of message +Solution: Do not use msg_clr_eos(). + +Patch 9.0.0353 +Problem: Missing entry in switch. +Solution: Add ISN_ECHOWINDOW. + +Patch 9.0.0354 +Problem: MS-Windows: starting a python server for test sometimes fails. +Solution: Increase the waiting time for the port. + +Patch 9.0.0355 +Problem: Check for uppercase char in autoload name is wrong, it checks the + name of the script. +Solution: Remove the check. (closes #11031) + +Patch 9.0.0356 +Problem: :echowindow sets the in_echowindow flag too early. +Solution: Set in_echowindow only when outputting the text. (Yasuhiro + Matsumoto, closes #11033) + +Patch 9.0.0357 +Problem: 'linebreak' interferes with text property highlight if there is + syntax highlighting. +Solution: Check the text prop attributes after combining with syntax + attributes. (closes #11035) + +Patch 9.0.0358 +Problem: 'breakindent' does not indent non-lists with + "breakindentopt=list:-1". +Solution: Adjust indent computation. (Maxim Kim, closes #11038) + +Patch 9.0.0359 +Problem: Error message for wrong argument type is not specific. +Solution: Include more information in the error. (Yegappan Lakshmanan, + closes #11037) + +Patch 9.0.0360 +Problem: Crash when invalid line number on :for is ignored. +Solution: Do not check breakpoint for non-existing line. + +Patch 9.0.0361 +Problem: Removing a listener may result in a memory leak and remove + subsequent listeners. +Solution: Init the "prev" pointer only once. (Yegappan Lakshmanan, + closes #11039) + +Patch 9.0.0362 +Problem: Expanding ":e %" does not work for remote files. +Solution: If the "%" or "#" file does not exist add the expansion anyway. + +Patch 9.0.0363 +Problem: Common names in test files causes tests to be flaky. +Solution: Use more specific names. + +Patch 9.0.0364 +Problem: Clang static analyzer gives warnings. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #11043) + +Patch 9.0.0365 +Problem: File name used in test is unusual. +Solution: Rename it. (Dominique Pellé, closes #11044) + +Patch 9.0.0366 +Problem: Cannot use import->Func() in lambda. (Israel Chauca Fuentes) +Solution: Adjust how an expression in a lambda is parsed. (closes #11042) + +Patch 9.0.0367 +Problem: Coverity complains about dropping sign of character. +Solution: Add explicit type cast. + +Patch 9.0.0368 +Problem: Old Coverity warning for using NULL pointer. +Solution: Bail out if dictionary allocation fails. + +Patch 9.0.0369 +Problem: A failing flaky test doesn't mention the time. +Solution: Add the time for debugging. Improve error message. + +Patch 9.0.0370 +Problem: Cleaning up afterwards can make a function messy. +Solution: Add the :defer command. + +Patch 9.0.0371 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize the variable. (John Marriott) + +Patch 9.0.0372 +Problem: MS-Windows: "%T" time format does not appear to work. +Solution: Use "%H:%M:%S" instead. + +Patch 9.0.0373 +Problem: Coverity warns for NULL check and unused return value. +Solution: Remove the NULL check, it was already checked earlier. Add (void) + to ignore the return value. + +Patch 9.0.0374 +Problem: Coverity still complains about dropping sign of character. +Solution: Add intermediate variable. + +Patch 9.0.0375 +Problem: The footer feature is unused. +Solution: Remove FEAT_FOOTER and code. + +Patch 9.0.0376 +Problem: Clang warns for dead assignments. +Solution: Adjust the code. (Yegappan Lakshmanan, closes #11048) + +Patch 9.0.0377 +Problem: Argument assignment does not work. +Solution: Skip over "=". + +Patch 9.0.0378 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize it. + +Patch 9.0.0379 +Problem: Cleaning up after writefile() is a hassle. +Solution: Add the 'D' flag to defer deleting the written file. Very useful + in tests. + +Patch 9.0.0380 +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + + +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + +Patch 9.0.0381 +Problem: Writefile test leaves files behind. +Solution: Fix the file names of files to be deleted. (Dominique Pellé, + closes #11056) + +Patch 9.0.0382 +Problem: Freeing the wrong string on failure. +Solution: Adjust the argument. Reorder the code. + +Patch 9.0.0383 +Problem: Coverity complains about unused value. +Solution: Use the value. + +Patch 9.0.0384 +Problem: Coverity still complains about using return value of getc(). +Solution: Check for EOF. + +Patch 9.0.0385 +Problem: GUI: when CTRL-D is mapped in Insert mode it gets inserted. + (Yasuhiro Matsumoto) +Solution: Also recognize modifier starting with CSI. (closes #11057) + +Patch 9.0.0386 +Problem: Some code blocks are nested too deep. +Solution: Bail out earlier. (Yegappan Lakshmanan, closes #11058) + +Patch 9.0.0387 +Problem: repeating a <ScriptCmd> mapping does not use the right script + context. +Solution: When using a mapping put <SID>{sid}; in the redo buffer. + (closes #11049) + +Patch 9.0.0388 +Problem: The do_arg_all() function is too long. +Solution: Split the function in smaller parts. (Yegappan Lakshmanan, + closes #11062) + +Patch 9.0.0389 +Problem: Crash when 'tagfunc' closes the window. +Solution: Bail out when the window was closed. + +Patch 9.0.0390 +Problem: Cannot use a partial with :defer. +Solution: Add the partial arguments before the other arguments. Disallow + using a dictionary. + +Patch 9.0.0391 +Problem: Using separate delete() call instead of writefile() 'D' flag. +Solution: Use the writefile 'D' flag. + +Patch 9.0.0392 +Problem: Inverted condition is a bit confusing. +Solution: Remove the "!" and swap the blocks. (Ken Takata) + +Patch 9.0.0393 +Problem: Signals test often fails on FreeBSD. +Solution: Use separate files for Suspend and Resume. (Ken Takata, + closes #11065) + +Patch 9.0.0394 +Problem: Cygwin: multibyte characters may be broken in terminal window. +Solution: Adjust how to read and write on the channel. (Ken Takata, + closes #11063) + +Patch 9.0.0395 +Problem: Clang warnings for function prototypes. +Solution: Remove incomplete function prototypes. (closes #11068) + +Patch 9.0.0396 +Problem: :findrepl does not escape '&' and '~' properly. +Solution: Escape depending on the value of 'magic'. (closes #11067) + +Patch 9.0.0397 +Problem: :defer not tested with exceptions and ":qa!". +Solution: Test :defer works when exceptions are thrown and when ":qa!" is + used. Invoke the deferred calls on exit. + +Patch 9.0.0398 +Problem: Members of funccall_T are inconsistently named. +Solution: Use the "fc_" prefix for all members. + +Patch 9.0.0399 +Problem: Using :defer in expression funcref not tested. +Solution: Add a test. Fix uncovered problems. + +Patch 9.0.0400 +Problem: GUI test sometimes hangs on CI. +Solution: Delete a test file explicitly. (Ken Takata, closes #11072) + +Patch 9.0.0401 +Problem: CI uses older clang version. +Solution: Switch from clang 14 to 15. (closes #11066) + +Patch 9.0.0402 +Problem: Javascript module files are not recognized. +Solution: Recognize "*.jsm" files as Javascript. (Brett Holman, + closes #11069) + +Patch 9.0.0403 +Problem: 'equalalways' may be off when 'laststatus' is zero. +Solution: call last_status() before win_equal(). (Luuk van Baal, + closes #11070) + +Patch 9.0.0404 +Problem: Crash when passing invalid arguments to assert_fails(). +Solution: Check for NULL string. + +Patch 9.0.0405 +Problem: Arguments in a partial not used by a :def function. +Solution: Put the partial arguments on the stack. + +Patch 9.0.0406 +Problem: Deferred functions not invoked when partial func exits. +Solution: Create a funccall_T when calling a :def function. + +Patch 9.0.0407 +Problem: matchstr() does match column offset. (Yasuhiro Matsumoto) +Solution: Accept line number zero. (closes #10938) + +Patch 9.0.0408 +Problem: GUI test sometimes fails on MS-Windows. +Solution: Make sure Vim is the foreground window. (Ken Takata, closes #11077) + +Patch 9.0.0409 +Problem: #{g:x} was seen as a curly-braces expression. +Solution: Do never see #{} as a curly-braces expression. (closes #11075) + +Patch 9.0.0410 +Problem: Struct member cts_lnum is unused. +Solution: Delete it. + +Patch 9.0.0411 +Problem: Only created files can be cleaned up with one call. +Solution: Add flags to mkdir() to delete with a deferred function. + Expand the writefile() name to a full path to handle changing + directory. + +Patch 9.0.0412 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0413 +Problem: ASAN reports a memory leak. +Solution: Free the string received from the server. (Ken Takata, + closes #11080) + +Patch 9.0.0414 +Problem: matchstr() still does not match column offset when done after a + text search. +Solution: Only use the line number for a multi-line search. Fix the test. + (closes #10938) + +Patch 9.0.0415 +Problem: On MS-Windows some tests are flaky. +Solution: Add sleeps, disable swapfile, mark test as flaky. (Ken Takata, + closes #11082) + +Patch 9.0.0416 +Problem: ml_get error when appending lines in popup window. +Solution: Only update w_topline when w_buffer matches curbuf. + (closes #11074) + +Patch 9.0.0417 +Problem: Jsonnet files are not recognized. +Solution: Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073, + closes #11081) + +Patch 9.0.0418 +Problem: Manually deleting temp test files. +Solution: Use the 'D' flag of writefile() and mkdir(). + +Patch 9.0.0419 +Problem: The :defer command does not check the function argument count and + types. +Solution: Check the function arguments when adding a deferred function. + +Patch 9.0.0420 +Problem: Function went missing. +Solution: Add the function back. + +Patch 9.0.0421 +Problem: MS-Windows makefiles are inconsistently named. +Solution: Use consistent names. (Ken Takata, closes #11088) + +Patch 9.0.0422 +Problem: Not enough testing of the :all command. +Solution: Add more testing. (Yegappan Lakshmanan, closes #11091) + +Patch 9.0.0423 +Problem: "for" and "while" not recognized after :vim9cmd and :legacy. + (Emanuele Torre) +Solution: Recognize all the command modifiers. (closes #11087) + Add a test to check the list of modifiers. + +Patch 9.0.0424 +Problem: gitattributes files are not recognized. +Solution: Add patterns to match gitattributes files. (closes #11085) + +Patch 9.0.0425 +Problem: Autocmd test is a bit flaky on MS-Windows. +Solution: Add a bit more sleeping. (Ken Takata, closes #11095) + +Patch 9.0.0426 +Problem: Failed flaky tests reports only start time. +Solution: Also report the end time. + +Patch 9.0.0427 +Problem: Drupal theme files are not recognized. +Solution: Use php filetype for Drupl theme files. Remove trailing spaces. + (Rodrigo Aguilera, closes #11096) + +Patch 9.0.0428 +Problem: Autocmd test uses common file name. +Solution: Use unique name to reduce flakiness. + +Patch 9.0.0429 +Problem: Not all keys are tested for the MS-Windows GUI. +Solution: Add more key codes to the list. (Yegappan Lakshmanan, + closes #11097) + +Patch 9.0.0430 +Problem: Cannot use repeat() with a blob. +Solution: Implement blob repeat. (closes #11090) + +Patch 9.0.0431 +Problem: Current mode shows in message window. +Solution: Reset in_echowindow before redrawing. (issue #11094) + +Patch 9.0.0432 +Problem: Crash when using for loop variable in closure. +Solution: Check that the variable wasn't deleted. (issue #11094) + +Patch 9.0.0433 +Problem: Coverity warns for not checking allocation failure. +Solution: Check that allocating a list or blob succeeded. + +Patch 9.0.0434 +Problem: gitignore files are not recognized. +Solution: Add patterns for the gitignore filetype. (closes #11102) + +Patch 9.0.0435 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. + +Patch 9.0.0436 +Problem: CI: running tests in parallel causes flakiness. +Solution: Reorganize the MS-Windows runs. (Ken Takata, closes #11101) + +Patch 9.0.0437 +Problem: No error when a custom completion function returns something else + than the expected list. +Solution: Give an error. (closes #11100) + +Patch 9.0.0438 +Problem: Cannot put virtual text above a line. +Solution: Add the "above" value for "text_align". + +Patch 9.0.0439 +Problem: Cursor wrong if inserting before line with virtual text above. +Solution: Add the width of the "above" virtual text to the cursor position. + (issue #11084) + +Patch 9.0.0440 +Problem: Crash when using mkdir() with "R" flag in compiled function. +Solution: Reserve a variable for deferred function calls. Handle more than + one argument. + +Patch 9.0.0441 +Problem: Closure in for loop test fails on some systems. +Solution: Do not wait for the ruler to show up. (issue #11106) + +Patch 9.0.0442 +Problem: Virtual text "above" doesn't handle line numbers. +Solution: Take the left column offset into account. (issue #11084) + Also make padding work. + +Patch 9.0.0443 +Problem: Blueprint files are not recognized. +Solution: Add a pattern for blueprint files. (Gabriele Musco, closes #11107) + +Patch 9.0.0444 +Problem: Trying to declare g:variable gives confusing error. +Solution: Give a better error message. (closes #11108) + +Patch 9.0.0445 +Problem: When opening/closing window text moves up/down. +Solution: Add the 'splitscroll' option. When off text will keep its + position as much as possible. + +Patch 9.0.0446 +Problem: Message window may be positioned too low. +Solution: Compute cmdline_row before computing the position. + +Patch 9.0.0447 +Problem: Using :echowin while at the hit-enter prompt causes problems. +Solution: Do not prompt for :echowin. Postpone showing the message window. + Start the timer when the window is displayed. + +Patch 9.0.0448 +Problem: SubRip files are not recognized. +Solution: Add a pattern for SubRip. (closes #11113) + +Patch 9.0.0449 +Problem: There is no easy way to translate a string with a key code into a + readable string. +Solution: Add the keytrans() function. (closes #11114) + +Patch 9.0.0450 +Problem: Return value of argument check functions is inconsistent. +Solution: Return OK/FAIL instead of TRUE/FALSE. (closes #11112) + +Patch 9.0.0451 +Problem: Virtual text "above" does not work with 'nowrap'. +Solution: Do wrap the line after. (closes #11084) + +Patch 9.0.0452 +Problem: Visual highlighting extends into virtual text prop. +Solution: Do not highlight what isn't actually selected. Fix ordering of + stored text props. + +Patch 9.0.0453 +Problem: On an AZERTY keyboard digit keys get the shift modifier. +Solution: Remove the shift modifier from digit keys. (closes #11109) + +Patch 9.0.0454 +Problem: Incorrect color for modeless selection with GTK. +Solution: Use simple inversion instead of XOR. (closes #11111) + +Patch 9.0.0455 +Problem: A few problems with 'splitscroll'. +Solution: Fix 'splitscroll' problems. (Luuk van Baal, closes #11117) + +Patch 9.0.0456 +Problem: Function called at debug prompt is also debugged. +Solution: Reset the debug level while entering the debug command. + (closes #11118) + +Patch 9.0.0457 +Problem: Substitute prompt does not highlight an empty match. +Solution: Highlight at least one character. + +Patch 9.0.0458 +Problem: Splitting a line with a text prop "above" moves it to a new line + below. +Solution: Keep an "above" text prop above the first line. + +Patch 9.0.0459 +Problem: Vim9: block in for loop doesn't behave like a code block. +Solution: Use a new block ID for each loop at the script level. + +Patch 9.0.0460 +Problem: Loop variable can't be found. +Solution: Adjust block_id of the loop variable each round. + +Patch 9.0.0461 +Problem: 'scroll' is not always updated. +Solution: Call win_init_size() at the right place. + +Patch 9.0.0462 +Problem: ASAN warning for integer overflow. +Solution: Check for tp_col to be MAXCOL. + +Patch 9.0.0463 +Problem: Command line test leaves directory behind. +Solution: Use the "R" flag on the first mkdir(). (Dominique Pellé, + closes #11127) + +Patch 9.0.0464 +Problem: With virtual text "above" indenting doesn't work well. +Solution: Ignore text properties while adjusting indent. (issue #11084) + +Patch 9.0.0465 +Problem: Cursor moves when cmdwin is closed when 'splitscroll' is off. +Solution: Temporarily set 'splitscroll' when jumping back to the original + window. (closes #11128) + +Patch 9.0.0466 +Problem: Virtual text wrong after adding line break after line. +Solution: Pass an "eol" flag to where text properties are adjusted. + (closes #11131) + +Patch 9.0.0467 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0468 +Problem: Execution stack underflow without the +eval feature. (Dominique + Pellé) +Solution: Add to execution stack without FEAT_EVAL. (closes #11135) + +Patch 9.0.0469 +Problem: Cursor moves if cmdwin is closed when 'splitscroll' is off. +Solution: Skip win_fix_cursor if called when cmdwin is open or closing. + (Luuk van Baal, closes #11134) + +Patch 9.0.0470 +Problem: In a :def function all closures in a loop get the same variables. +Solution: When in a loop and a closure refers to a variable declared in the + loop, prepare for making a copy of variables for each closure. + +Patch 9.0.0471 +Problem: No test for what patch 9.0.0469 fixes. +Solution: Add a test. (closes #11140) + +Patch 9.0.0472 +Problem: Virtual text "below" doesn't show in list mode. +Solution: Reset lcs_eol_one when displaying text property. + +Patch 9.0.0473 +Problem: fullcommand() only works for the current script version. +Solution: Add an optional argument for the script version. + +Patch 9.0.0474 +Problem: fullcommand() test failure. +Solution: Update function table. + +Patch 9.0.0475 +Problem: Not using deferred delete in tests. +Solution: Use deferred delete more often. + +Patch 9.0.0476 +Problem: Varargs does not work for replacement function of substitute(). +Solution: Check the varargs flag of the function. (closes #11142) + +Patch 9.0.0477 +Problem: Missing dependency may cause crashes on incomplete build. +Solution: Add dependency. + +Patch 9.0.0478 +Problem: Test for 'splitscroll' takes too much time. +Solution: Only test some of the combinations. (Luuk van Baal, closes #11139) + +Patch 9.0.0479 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and SAVEOUTER. + +Patch 9.0.0480 +Problem: Cannot use a :def varargs function with substitute(). +Solution: Use has_varargs(). (closes #11146) + +Patch 9.0.0481 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and STOREOUTER. + Not copied at end of loop yet. + +Patch 9.0.0482 +Problem: "g0" moves to wrong location with virtual text "above". +Solution: Compensate for the extra columns. (closes #11141) Also fix "g$" + +Patch 9.0.0483 +Problem: Illegal memory access when replacing in virtualedit mode. +Solution: Check for replacing NUL after Tab. + +Patch 9.0.0484 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Add ENDLOOP at break, continue and return if needed. + +Patch 9.0.0485 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Make a copy of loop variables used in a closure. + +Patch 9.0.0486 +Problem: Text scrolled with 'nosplitscroll', autocmd win opened and help + window closed. +Solution: Skip win_fix_scroll() in more situations. (Luuk van Baal, + closes #11150) + +Patch 9.0.0487 +Problem: Using freed memory with combination of closures. +Solution: Do not use a partial after it has been freed through the + funcstack. + +Patch 9.0.0488 +Problem: Cursor in wrong position with virtual text "above" and + 'showbreak'. +Solution: Take the first character column into account. (closes #11149) + +Patch 9.0.0489 +Problem: Using "end_lnum" with virtual text causes problems. +Solution: Disallow using "end_lnum" with virtual text. (closes #11151) + Also disallow "end_col" and "length". + +Patch 9.0.0490 +Problem: Using freed memory with cmdwin and BufEnter autocmd. +Solution: Make sure pointer to b_p_iminsert is still valid. + +Patch 9.0.0491 +Problem: No good reason to build without the float feature. +Solution: Remove configure check for float and "#ifdef FEAT_FLOAT". + +Patch 9.0.0492 +Problem: Cmdwin test fails on MS-Windows. +Solution: Skip test on MS-Windows. + +Patch 9.0.0493 +Problem: Perl test fails. +Solution: Remove remaining FEAT_EVAL. + +Patch 9.0.0494 +Problem: Small build misses float function declarations. +Solution: Adjust #ifdefs. + +Patch 9.0.0495 +Problem: Closure doesn't work properly in nested loop. +Solution: Save variables up to the outer loop. + +Patch 9.0.0496 +Problem: No good reason to keep supporting Windows-XP. +Solution: Drop Windows-XP support. (Ken Takata, closes #11089) + +Patch 9.0.0497 +Problem: LyRiCs files are not recognized. +Solution: Add a pattern to detect LyRiCs files. (closes #11155) + +Patch 9.0.0498 +Problem: Various small issues. +Solution: Various small fixes. + +Patch 9.0.0499 +Problem: In :def function list created after const is locked. +Solution: Reset v_lock. (closes #11154) + +Patch 9.0.0500 +Problem: When quitting the cmdline window with CTRL-C it remains visible. +Solution: Redraw to avoid confusion. Adjust the error message. + (closes #11152) Adjust the cursor position after CTRL-C. + +Patch 9.0.0501 +Problem: Warning for using uninitialized value in mouse test. +Solution: Clear ScreenCols when allocating it. (Dominique Pellé) + +Patch 9.0.0502 +Problem: A closure in a nested loop in a :def function does not work. +Solution: Use an array of loopvars, one per loop level. + +Patch 9.0.0503 +Problem: Build failure. +Solution: Add missing changes. + +Patch 9.0.0504 +Problem: still a Build failure. +Solution: Add another missing changes. Avoid compiler warning. + +Patch 9.0.0505 +Problem: Various problems with 'nosplitscroll'. +Solution: Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166) + +Patch 9.0.0506 +Problem: Line number argument for :badd does not work. +Solution: Set the last cursor position in the new buffer. (closes #11161) + +Patch 9.0.0507 +Problem: Command line cleared when using :redrawstatus in CmdlineChanged + autocommand event. +Solution: Postpone the redraw. (closes #11162) + +Patch 9.0.0508 +Problem: When the channel test fails there is no clue why. +Solution: Add info about the job status. (Ken Takata, closes #11175) + +Patch 9.0.0509 +Problem: Confusing error for "saveas" command with "nofile" buffer. +Solution: Give a clearer error message. (closes #11171) + +Patch 9.0.0510 +Problem: Chatito files are not recognized. +Solution: Add a pattern for Chatito files. (closes #11174) + +Patch 9.0.0511 +Problem: Unnecessary scrolling for message of only one line. +Solution: Only set msg_scroll when needed. (closes #11178) + +Patch 9.0.0512 +Problem: Cannot redraw the status lines when editing a command. +Solution: Only postpone the redraw when messages have scrolled. + (closes #11170) + +Patch 9.0.0513 +Problem: May not be able to use a pattern ad the debug prompt. +Solution: Temporarily disable the timeout. (closes #11164) + +Patch 9.0.0514 +Problem: Terminal test sometimes hangs. +Solution: Add a bit more information to the test output. (issue #11179) + +Patch 9.0.0515 +Problem: Virtual text highlight starts too early when 'number' is set. +Solution: Set column offset when wrapping. (issue #11138) + +Patch 9.0.0516 +Problem: Virtual text "above" highlights gap after it. +Solution: Do not highlight the gap. (closes #11138) + +Patch 9.0.0517 +Problem: When at the command line :redrawstatus does not work well. +Solution: Only update the statuslines instead of the screen. (closes #11180) + +Patch 9.0.0518 +Problem: Virtual text highlight starts too early with 'nowrap' and 'number' + set. +Solution: Add the offset to the attribute skip count. (issue #11138) + +Patch 9.0.0519 +Problem: The win_line() function is much too long. +Solution: Move the code to draw the line number to a separate function. + +Patch 9.0.0520 +Problem: Declaring a loop variable at the start of a block is clumsy. +Solution: Declare the variable inside the loop in a few places to see if + this works. + +Patch 9.0.0521 +Problem: Compiler warns for unused argument in small version. +Solution: Add UNUSED. + +Patch 9.0.0522 +Problem: Build fails on Appveyor. +Solution: Select Visual Studio 2015 for the build tools. + +Patch 9.0.0523 +Problem: more compiler warnings for arguments in small version +Solution: Adjust #ifdefs. + +Patch 9.0.0524 +Problem: Build instructions for MS-Windows are outdated. +Solution: Remove instructions for old MSVC versions. + +Patch 9.0.0525 +Problem: Manually deleting temp test files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0526 +Problem: MS-Windows: still some support for XP and old compilers. +Solution: Remove XP support and mention of old compilers. (Ken Takata, + closes #11183) + +Patch 9.0.0527 +Problem: Long sign text may overflow buffer. +Solution: Use a larger buffer. Prevent for overflow. + +Patch 9.0.0528 +Problem: MS-Windows: no batch files for more recent MSVC versions. +Solution: Add batch files for 2017, 2019 and 2022. (Ken Takata, + closes #11184) + +Patch 9.0.0529 +Problem: Appveyor setup contains outdated lines. +Solution: Remove outdated lines. (Ken Takata, closes #11182) + +Patch 9.0.0530 +Problem: Using freed memory when autocmd changes mark. +Solution: Copy the mark before editing another buffer. + +Patch 9.0.0531 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0532 +Problem: Edit test is flaky when run under valgrind. +Solution: Send some text to the terminal to trigger a redraw. + +Patch 9.0.0533 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0534 +Problem: Line number is displayed at virtual text "above". +Solution: Show the line number at the text line. + +Patch 9.0.0535 +Problem: Closure gets wrong value in for loop with two loop variables. +Solution: Correctly compute the number of loop variables to clear. + +Patch 9.0.0536 +Problem: CI: codecov action update available. +Solution: Update Codecov 3.1.0 to 3.3.1. (closes #11188) + +Patch 9.0.0537 +Problem: The do_set() function is much too long. +Solution: Move setting of a string option to a separate function. + +Patch 9.0.0538 +Problem: Manually deleting test temp files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0539 +Problem: Long message test can be flaky. +Solution: Wait for more prompt instead of ruler. + +Patch 9.0.0540 +Problem: Assigning stack variable to argument confuses Coverity. +Solution: Use a local pointer, also makes the code simpler. + +Patch 9.0.0541 +Problem: Terminal pwd test fails with a very long path name. +Solution: Join two lines. + +Patch 9.0.0542 +Problem: MSVC build still has support for 2012 edition. +Solution: Drop MSVC 2012 support. (Ken Takata, closes #11191) + +Patch 9.0.0543 +Problem: Insufficient testing for assert and test functions. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #11190) + +Patch 9.0.0544 +Problem: Minor issues with setting a string option. +Solution: Adjust the code, add a test. (closes #11192) + +Patch 9.0.0545 +Problem: When a test is slow and CI times out there is no time info. +Solution: Add the elapsed time to the "Executing" message. + +Patch 9.0.0546 +Problem: Supporting Ruby 1.8 makes code complicated. +Solution: Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195) + +Patch 9.0.0547 +Problem: Looping over empty out_loop[] entries. +Solution: Store the array size. + +Patch 9.0.0548 +Problem: reduce() with a compiled lambda could be faster. +Solution: Call eval_expr_typval() instead of call_func() directly. + +Patch 9.0.0549 +Problem: Duplicated code in calling a :def function. +Solution: Simplify the code. + +Patch 9.0.0550 +Problem: Crash when closing a tabpage and buffer is NULL. +Solution: Adjust how autocommands are triggered when closing a window. + (closes #11198, closes #11197) + +Patch 9.0.0551 +Problem: Mode message is delayed when :echowin was used. (Maxim Kim) +Solution: Save and restore msg_didout in :echowin. (closes #11193) + +Patch 9.0.0552 +Problem: Crash when using NUL in buffer that uses :source. +Solution: Don't get a next line when skipping over NL. + +Patch 9.0.0553 +Problem: No error for "|" after "{" in lambda. +Solution: Check for invalid "|". (closes #11199) + +Patch 9.0.0554 +Problem: Using freed memory when command follows lambda. +Solution: Don't free what is still in use. (closes #11201) + +Patch 9.0.0555 +Problem: Scrolling with 'nosplitscroll' in callback changing curwin. +Solution: Invalidate w_cline_row in the right place. (Luuk van Baal, + closes #11185) + +Patch 9.0.0556 +Problem: Leaking memory with nested functions. +Solution: Free saved pointer. + +Patch 9.0.0557 +Problem: Valgrind reports possibly leaked memory. +Solution: Move the problematic test function to the "fails" test file to + avoid obscuring real memory leaks. + +Patch 9.0.0558 +Problem: Coverity warns for possibly using NULL pointer. +Solution: Only use "evalarg" when not NULL. + +Patch 9.0.0559 +Problem: Timer test may get stuck at hit-enter prompt. +Solution: Feed some more characters. + +Patch 9.0.0560 +Problem: Elapsed time since testing started is not visible. +Solution: Show the elapsed time while running tests. + +Patch 9.0.0561 +Problem: When a test gets stuck it just hangs forever. +Solution: Set a timeout of 30 seconds. + +Patch 9.0.0562 +Problem: HSL playlist files are not recognized. +Solution: Add a pattern to recognize HSL playlist files. (Benoît Ryder, + closes #11204) + +Patch 9.0.0563 +Problem: Timer_info() test fails. +Solution: Ignore test timeout timer. Don't use test_null_job() when not + available. + +Patch 9.0.0564 +Problem: A few tests keep failing on MacOS M1. +Solution: Add a test check CheckNotMacM1. Fix timer tests. + +Patch 9.0.0565 +Problem: Cscope test causes problems when code for test timeout timer is + included (even when commented out). +Solution: Disable part of the cscope test for now. + +Patch 9.0.0566 +Problem: Nim files are not recognized. +Solution: Add patterns for Nim files. (Nbiba Bedis, closes #11205) + +Patch 9.0.0567 +Problem: 'completeopt' "longest" is not used for complete(). +Solution: Also use "longest" for complete(). (Bjorn Linse, closes #11206) + +Patch 9.0.0568 +Problem: Autocmd code is indented more than needed. +Solution: Break out sooner. (Yegappan Lakshmanan, closes #11208) + Also in user function code. + +Patch 9.0.0569 +Problem: Cannot easily get out when using "vim file | grep word". +Solution: Without changes let CTRL-C exit Vim. Otherwise give a message on + stderr. (closes #11209) + +Patch 9.0.0570 +Problem: CI for Windows is still using codecov action 3.1.0. +Solution: Use action 3.1.1. (closes #11212) + +Patch 9.0.0571 +Problem: MS-Windows: CTRL-C can make Vim exit. +Solution: Check the not-a-term argument. + +Patch 9.0.0572 +Problem: Insert complete tests leave a mapping behind. +Solution: Use a buffer-local mapping. (closes #11211) + +Patch 9.0.0573 +Problem: Outdated dependencies go unnoticed. +Solution: Use github Dependabot. (closes #11213) + +Patch 9.0.0574 +Problem: Timer garbage collect test hangs on Mac M1. +Solution: Properly check for Mac M1 and skip the test. + +Patch 9.0.0575 +Problem: The getchar() function behaves strangely with bracketed paste. +Solution: Do not handle paste-start in getchar(). (issue #11172) + +Patch 9.0.0576 +Problem: Unused loop variables. +Solution: Use a while loop instead. (closes #11214) + +Patch 9.0.0577 +Problem: Buffer underflow with unexpected :finally. +Solution: Check CSF_TRY can be found. + +Patch 9.0.0578 +Problem: One timer test fails on Mac M1. +Solution: Skip the test on Mac M1. + +Patch 9.0.0579 +Problem: Using freed memory when 'tagfunc' wipes out buffer that holds + 'complete'. +Solution: Make a copy of the option. Make sure cursor position is valid. + +Patch 9.0.0580 +Problem: No CI running for MacOS on M1. +Solution: Add a cirrus CI task. (closes #11203) + +Patch 9.0.0581 +Problem: Adding a character for incsearch fails at end of line. +Solution: Only check cursor line number. + +Patch 9.0.0582 +Problem: Channel cwd test fails on Cirrus CI. +Solution: Also remove /private from the expected directory. + +Patch 9.0.0583 +Problem: Only recognizing .m3u8 files is inconsistent. +Solution: Also match .m3u files. (issue #11204) + +Patch 9.0.0584 +Problem: Cscope test with wrong executable name fails. +Solution: Use /bin/sh to execute the command. (Yegappan Lakshmanan) + +Patch 9.0.0585 +Problem: When long message test fails the error message is not visible. +Solution: Dump more lines. + +Patch 9.0.0586 +Problem: Missing change in test. +Solution: Add the test change. + +Patch 9.0.0587 +Problem: Unicode tables are outdated. +Solution: Update to Unicode release 15. (Christian Brabandt, closes #11220) + +Patch 9.0.0588 +Problem: MorphOS build is broken. +Solution: Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder, + closes #11222) + +Patch 9.0.0589 +Problem: On AmigaOS4 the pid is available but the task address is used. +Solution: Use getpid(). (Ola Söder, closes #11224) + +Patch 9.0.0590 +Problem: After exiting Insert mode spelling is not checked in the next + line. +Solution: When spelling is enabled redraw the next line after exiting Insert + mode in case the spell highlight needs updating. + +Patch 9.0.0591 +Problem: Message window popup shows on only one tab page. (Naruhiko + Nishino) +Solution: Show the message window popup on all tab pages. (closes #11231) + +Patch 9.0.0592 +Problem: Display not cleared when scrolling back in messages, a background + color is set and t_ut is empty. +Solution: Clear to the end of the display if needed. (closes #8973) + +Patch 9.0.0593 +Problem: CI actions have too many permissions. +Solution: Restrict permissions to what is required. (closes #11223) + +Patch 9.0.0594 +Problem: Makefile error message causes a shell error. +Solution: Put the message in single quotes. (closes #11232) + +Patch 9.0.0595 +Problem: Extra newline in messages after a verbose shell message. +Solution: Output the newline with msg_putchar_attr(). (closes #11233) + Make it possible to filter a screendump before comparing it. + +Patch 9.0.0596 +Problem: CI on Mac M1 has the channel feature disabled. +Solution: Include the channel feature. + +Patch 9.0.0597 +Problem: Cannot close a tab page with the middle mouse button. +Solution: Support closing a tab page with the middle mouse button, like many + other programs. (closes #10746) + +Patch 9.0.0598 +Problem: Using negative array index with negative width window. +Solution: Make sure the window width does not become negative. + +Patch 9.0.0599 +Problem: Latexmkrc files are not recognized. +Solution: Use Perl filetype for latexmkrc files. (closes #11241) + +Patch 9.0.0600 +Problem: GYP files are not recognized. +Solution: Recognize GYP files. (closes #11242) + +Patch 9.0.0601 +Problem: Too much indent. +Solution: Return out early from a function. (Yegappan Lakshmanan, + close #11238) + +Patch 9.0.0602 +Problem: New TypeScript extensions are not recognized. +Solution: Recognize .mts and .cts files. (closes #11237) + +Patch 9.0.0603 +Problem: With 'nosplitscroll' folds are not handled correctly. +Solution: Take care of closed folds when moving the cursor. (Luuk van Baal, + closes #11234) + +Patch 9.0.0604 +Problem: Luacheckrc file is not recognized. +Solution: Use lua filetype for luacheckrc. (closes #11236) + +Patch 9.0.0605 +Problem: Dump file missing. +Solution: Add the missing dump file. (issue #11234) + +Patch 9.0.0606 +Problem: system() opens a terminal window when using the GUI and "!" is in + 'guioptions'. +Solution: Do not use a terminal window when the SHELL_SILENT flag is used. + (closes #11202) + +Patch 9.0.0607 +Problem: Verbose echo message test fails on Mac OS. +Solution: Skip the test on Mac OS. + +Patch 9.0.0608 +Problem: With spell checking, deleting a full stop at the end of a line + does not update SpellCap at the start of the next line. +Solution: Update the next line when characters have been deleted. Also when + using undo. + +Patch 9.0.0609 +Problem: Blockedit test fails because of wrong indent. +Solution: Adjust the expected text temporarily + +Patch 9.0.0610 +Problem: Global interrupt test fails when run under valgrind. +Solution: Use TermWait(). + +Patch 9.0.0611 +Problem: Tests delete files with a separate delete() call. +Solution: Use deferred delete. + +Patch 9.0.0612 +Problem: Blockedit test passes with wrong result. +Solution: Add a "vim9script" line to make indenting work. + +Patch 9.0.0613 +Problem: Running source tests leaves file behind. +Solution: Add the "D" flag to writefile(). (Dominique Pellé, closes #11243) + Also do this for other writefile() calls and drop delete(). + +Patch 9.0.0614 +Problem: SpellFileMissing autocmd may delete buffer. +Solution: Disallow deleting the current buffer to avoid using freed memory. + +Patch 9.0.0615 +Problem: Using reduce() on a list from range() is a bit slow. +Solution: Avoid materializing the list. + +Patch 9.0.0616 +Problem: Spell test fails because error message changed. +Solution: Adjust expected error message. + +Patch 9.0.0617 +Problem: Calling function for reduce() has too much overhead. +Solution: Only call clear_tv() when needed. + +Patch 9.0.0618 +Problem: Calling function for reduce() has too much overhead. +Solution: Do not create a funccall_T every time. + +Patch 9.0.0619 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0620 +Problem: matchaddpos() can only add up to 8 matches. +Solution: Allocate the array of positions. (closes #11248) + +Patch 9.0.0621 +Problem: Filetype test leaves file behind. +Solution: Add deferred delete flag to writefile(). (Dominique Pellé, + closes #11249) + +Patch 9.0.0622 +Problem: matchaddpos() can get slow when adding many matches. +Solution: Update the next available match ID when manually picking an ID and + remove check if the available ID can be used. (idea by Rick Howe) + +Patch 9.0.0623 +Problem: Error for modifying a const is not detected at compile time. +Solution: Add TTFLAG_CONST and check for it in add() and extend(). + +Patch 9.0.0624 +Problem: Leaking argument type array. +Solution: Add allocated memory to type_gap. + +Patch 9.0.0625 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0626 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0627 +Problem: "const" and "final" both make the type a constant. (Daniel + Steinberg) +Solution: Only have "const" make the type a constant. + +Patch 9.0.0628 +Problem: Coverity warns for not checking return value. +Solution: Check the return value and simplify the code. + +Patch 9.0.0629 +Problem: Get an error for using const only when executing. +Solution: Check for const at compile time for filter(), map(), remove(), + reverse(), sort() and uniq(). + +Patch 9.0.0630 +Problem: In Vim9 script a numbered function cannot be called. +Solution: Do not require "g:" before a numbered function name. + (closes #11254) + +Patch 9.0.0631 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0632 +Problem: Calling a function from an "expr" option has too much overhead. +Solution: Add call_simple_func() and use it for 'foldexpr' + +Patch 9.0.0633 +Problem: FEAT_TITLE was removed but is still used. +Solution: Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256) + +Patch 9.0.0634 +Problem: Evaluating "expr" options has more overhead than needed. +Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', + "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', + 'formatexpr', 'indentexpr' and 'charconvert'. + +Patch 9.0.0635 +Problem: Build error and compiler warnings. +Solution: Add missing change. Add type casts. + +Patch 9.0.0636 +Problem: Underline color does not work in terminals that don't send a + termresponse. +Solution: Do output t_8u if it was set explicitly. (closes #11253) + +Patch 9.0.0637 +Problem: Syntax of commands in Vim9 script depends on +eval feature. +Solution: Use same syntax with and without the +eval feature. + +Patch 9.0.0638 +Problem: Popup menu highlight wrong on top of preview popup. (Yegappan + Lakshmanan) +Solution: Also check for the popup menu in screen_line(). + +Patch 9.0.0639 +Problem: Checking for popup in screen_char() is too late, the attribute has + already been changed. +Solution: Move check for popup to where screen_char() is called. + +Patch 9.0.0640 +Problem: Cannot scroll by screen line if a line wraps. +Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y + so far. + +Patch 9.0.0641 +Problem: Missing part of the new option code. +Solution: Add missing WV_SMS. + +Patch 9.0.0642 +Problem: Breakindent test fails. +Solution: Correct logic for resetting need_showbreak. + +Patch 9.0.0643 +Problem: Smoothscroll test fails. +Solution: Check if skipcol changed. + +Patch 9.0.0644 +Problem: 'smoothscroll' is not copied to a new window on :split. +Solution: Copy the option value. Add a test. + +Patch 9.0.0645 +Problem: CTRL-Y does not stop at line 1. (John Marriott) +Solution: Stop at line 1 when 'smoothscroll' is not set. (closes #11261) + +Patch 9.0.0646 +Problem: with 'smoothscroll' set CTRL-E does not work properly when + 'foldmethod' is set to "indent". (Yee Cheng Chin) +Solution: Merge the code for scrolling with folds and 'smoothscroll'. + (closes #11262) + +Patch 9.0.0647 +Problem: The 'splitscroll' option is not a good name. +Solution: Rename 'splitscroll' to 'splitkeep' and make it a string option, + also supporting "topline". (Luuk van Baal, closes #11258) + +Patch 9.0.0648 +Problem: When using powershell input redirection does not work. +Solution: Use a different shell command for powershell. (Yegappan + Lakshmanan, closes #11257) + +Patch 9.0.0649 +Problem: No indication when the first line is broken for 'smoothscroll'. +Solution: Show "<<<" in the first line. + +Patch 9.0.0650 +Problem: Some tests are failing. +Solution: Adjust for "<<<" showing up. + +Patch 9.0.0651 +Problem: Build fails without the +conceal feature. +Solution: Rename called function. + +Patch 9.0.0652 +Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'. +Solution: Add tests, fix uncovered problem. + +Patch 9.0.0653 +Problem: BS and DEL do not work properly in an interactive shell. (Gary + Johnson) +Solution: Adjust the length for replaced codes. + +Patch 9.0.0654 +Problem: Breakindent test fails. +Solution: Temporarily accept wrong result. + +Patch 9.0.0655 +Problem: passing modifier codes to a shell running in the GUI. (Gary + Johnson) +Solution: Include modifier codes into the key and drop the modifiers. + +Patch 9.0.0656 +Problem: Cannot specify another character to use instead of '@' at the end + of the window. +Solution: Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264, + closes #10963) + +Patch 9.0.0657 +Problem: Too many #ifdefs. +Solution: Graduate the +cmdwin feature. Now the tiny and small builds are + equal, drop the small build. (Martin Tournoij, closes #11268) + +Patch 9.0.0658 +Problem: Tiny build fails on Mac OS. +Solution: Define FEAT_CLIPBOARD only for normal build. + +Patch 9.0.0659 +Problem: Wrong type of comment in SetSyn() function. +Solution: Use Vim9 comment. (closes #11278) + +Patch 9.0.0660 +Problem: Mapping with CTRL keys does not work in the GUI. +Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270) + +Patch 9.0.0661 +Problem: Multi-byte "lastline" item in 'fillchars' does not work properly + when the window is two columns wide. +Solution: Compute the text length correctly. (closes #11280) + +Patch 9.0.0662 +Problem: Concealed characters do not work correctly. +Solution: Subtract boguscols instead of adding them. (closes #11273) + +Patch 9.0.0663 +Problem: Tests check for +cmdwin feature which is always present. +Solution: Remove the checks. (closes #11287) + +Patch 9.0.0664 +Problem: Bad redrawing with spell checking, using "C" and "$" in 'cpo'. +Solution: Do not redraw the next line when "$" is in 'cpo'. (closes #11285) + +Patch 9.0.0665 +Problem: Setting 'cmdheight' has no effect if last window was resized. +Solution: Do apply 'cmdheight' when told to. Use the frame height instead + of the cmdline_row. (closes #11286) + +Patch 9.0.0666 +Problem: Spacing-combining characters handled as composing, causing text to + take more space than expected. +Solution: Handle characters marked with "Mc" not as composing. + (closes #11282) + +Patch 9.0.0667 +Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) +Solution: Check the botline is not too large. (Luuk van Baal, + closes #11293, closes #11292) + +Patch 9.0.0668 +Problem: CI on Mac M1 only uses clang +Solution: Also run with gcc. (closes #11263) + +Patch 9.0.0669 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0670 +Problem: No space for command line when there is a tabline. +Solution: Correct computation of where the command line should be. + (closes #11295) + +Patch 9.0.0671 +Problem: Negative topline using CTRL-Y with 'smoothscroll' and 'diff'. + (Ernie Rael) +Solution: Only use 'smoothscroll' when 'wrap' is set. + +Patch 9.0.0672 +Problem: Cursor line only partly shows with 'smoothscroll' and 'scrolloff' + zero. +Solution: Do not use 'smoothscroll' when adjusting the bottom of the window. + (closes #11269) + +Patch 9.0.0673 +Problem: First line not scrolled properly with 'smoothscroll' and + 'scrolloff' zero and using "k". +Solution: Make sure the cursor position is visible. + +Patch 9.0.0674 +Problem: Build error with tiny version. +Solution: Use PLINES_NOFILL macro. + +Patch 9.0.0675 +Problem: Search test screendump is outdated. +Solution: Update the screendump for improved display. + +Patch 9.0.0676 +Problem: CI on Mac M1 with gcc actually uses clang. +Solution: Remove the gcc task. (Ozaki Kiichi, closes #11297) + +Patch 9.0.0677 +Problem: Breakindent test accepts wrong result. +Solution: Fix the number column and adjust the expected text. + +Patch 9.0.0678 +Problem: Using exclamation marks on :function. +Solution: Use :func and :endfunc as usual. + +Patch 9.0.0679 +Problem: Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'. +Solution: Do not count number column in topline if columns are skipped. + +Patch 9.0.0680 +Problem: Tests failing with 'breakindent', 'number' and "n" in 'cpo'. +Solution: Do count the number column in topline if 'breakindent' is set. + +Patch 9.0.0681 +Problem: "<<<" shows for 'smoothscroll' even when 'showbreak is set. +Solution: When 'showbreak' is set do not display "<<<". + +Patch 9.0.0682 +Problem: Crash when popup with deleted timer is closed. (Igbanam + Ogbuluijah) +Solution: Check the timer still exists. (closes #11301) + +Patch 9.0.0683 +Problem: Cannot specify a time for :echowindow. +Solution: A count can be used to specify the display time. Add + popup_findecho(). + +Patch 9.0.0684 +Problem: Skipped :exe command fails compilation on MS-Windows. +Solution: Adjust return value when skipping. + +Patch 9.0.0685 +Problem: FORTIFY_SOURCE causes a crash in Vim9 script. +Solution: Use a pointer to the first char. (Yee Cheng Chin, closes #11302) + +Patch 9.0.0686 +Problem: The right ALT key does not work on some MS-Windows keyboards. +Solution: Adjust the modifiers based on GetKeyState(). (Anton Sharonov, + closes #11300) + +Patch 9.0.0687 +Problem: "export def" does not work in a nested block. +Solution: Do not handle "export" with a separate function but in the same + command stack. (closes #11304) + +Patch 9.0.0688 +Problem: Debugger does not display the whole command. +Solution: Set ea.cmd before checking for a breakpoint. + +Patch 9.0.0689 +Problem: Compiler warning for unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0690 +Problem: Buffer size for expanding tab not correctly computed. +Solution: Correctly use size of end character. + +Patch 9.0.0691 +Problem: lalloc(0) error in listchars test. +Solution: Skip generating text for tab if tab_len is zero. + +Patch 9.0.0692 +Problem: PoE filter files are not recognized. +Solution: Add a pattern to detect PoE filter files. (closes #11305) + +Patch 9.0.0693 +Problem: browse() first argument cannot be a bool. +Solution: Use tv_get_bool_chk() instead of tv_get_number_chk(). + (closes #11308) + +Patch 9.0.0694 +Problem: No native sound support on Mac OS. +Solution: Add sound support for Mac OS. (Yee Cheng Chin, closes #11274) + +Patch 9.0.0695 +Problem: Failing check for dictionary type for const any. +Solution: Check for any type properly. (closes #11310) + +Patch 9.0.0696 +Problem: It is unclear if the +rightleft and +arabic features are actively + being used. +Solution: Disable the features, await feedback. + +Patch 9.0.0697 +Problem: Cursor in wrong position with Visual substitute. +Solution: When restoring 'linebreak' mark the virtual column as invalid. + (closes #11309, closes #11311) + +Patch 9.0.0698 +Problem: VisVim is outdated, does not work with current Visual Studio. +Solution: Remove VisVim. (Martin Tournoij) + +Patch 9.0.0699 +Problem: Tiny build fails. +Solution: Add #ifdef. + +Patch 9.0.0700 +Problem: There is no real need for a "big" build. +Solution: Move common features to "normal" build, less often used features + to the "huge" build. (Martin Tournoij, closes #11283) + +Patch 9.0.0701 +Problem: With 'smoothscroll' the cursor position s not adjusted in a long + line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0702 +Problem: Incomplete testing cursor position after change with 'linebreak' + set. +Solution: Add a test and move test cases together. (closes #11313) + +Patch 9.0.0703 +Problem: Failing check for argument type for const any. +Solution: Check for any type properly. (closes #11316) + +Patch 9.0.0704 +Problem: CI runs "tiny" and "small" builds, which are the same. +Solution: Remove the "small" build. (Naruhiko Nishino, closes #11315) + +Patch 9.0.0705 +Problem: Virtual text truncation does not take padding into account. +Solution: Subtract the padding from the available space. (closes #11318) + +Patch 9.0.0706 +Problem: :help in a narrow window always opens at the top. +Solution: Respect 'splitbelow'. (closes #11319) + +Patch 9.0.0707 +Problem: With 'smoothscroll' and 'scrolloff' non-zero the cursor position + is not properly adjusted in a long line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0708 +Problem: :confirm does not work properly for a terminal buffer. +Solution: Handle :confirm for a terminal buffer differently. (Yee Cheng + Chin, closes #11312) + +Patch 9.0.0709 +Problem: Virtual text "after" not correct with 'nowrap'. +Solution: Do not display "after" text prop on the next line when 'wrap' is + off. + +Patch 9.0.0710 +Problem: Quitting/unloading/hiding a terminal buffer does not always work + properly. +Solution: Avoid that ":q!" leaves an empty buffer behind. ":bunload!" also + kills the job and unloads the buffer. ":hide" does not unload the + buffer. (Yee Cheng Chin, closes #11323) + +Patch 9.0.0711 +Problem: SubStation Alpha files are not recognized. +Solution: Add patterns for SubStation Alpha files. (closes #11332) + +Patch 9.0.0712 +Problem: Wrong column when calling setcursorcharpos() with zero lnum. +Solution: Set the line number before calling buf_charidx_to_byteidx(). + (closes #11329) + +Patch 9.0.0713 +Problem: <amatch> of MenuPopup event is expanded like a file name. +Solution: Do not expand <amatch> for MenuPopup. (closes #11328) + +Patch 9.0.0714 +Problem: With 'nowrap' two virtual text below not displayed correctly. +Solution: Set text_prop_follows before continuing. Correct for number + column. (closes #11333) + +Patch 9.0.0715 +Problem: Wrong argument for append() gives two error messages. +Solution: When getting an error for a number argument don't try using it as + a string. (closes #11335) + +Patch 9.0.0716 +Problem: With 'nowrap' virtual text "after" does not scroll left. +Solution: Skip part of the virtual text that is left of the window. + (closes #11320) Fix going beyond the last column of the window. + +Patch 9.0.0717 +Problem: Compiler warning for unused variable in tiny build. +Solution: Add #ifdefs. + +Patch 9.0.0718 +Problem: Extra empty line between two virtual text "below" when 'wrap' and + 'number' are set. +Solution: Reset "before" when there is no text in the screen line. + (closes #11334) + +Patch 9.0.0719 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0720 +Problem: MS-Windows GUI may have pixel dust from antialiasing. +Solution: When a character changes also redraw the next one. (issue #8532) + +Patch 9.0.0721 +Problem: Virtual text "above" with padding not displayed correctly. +Solution: Take padding into account when truncating. (closes #11340) + +Patch 9.0.0722 +Problem: Virtual text "after" does not show with 'list' set. +Solution: Do not break out of the loop when another text prop follows. + (closes #11337) + +Patch 9.0.0723 +Problem: Extra empty line below virtual text when 'list' is set. +Solution: Do not reset lcs_eol_one but set text_prop_follows. (closes #11339) + +Patch 9.0.0724 +Problem: Closure in compiled function gets same variable in block. +Solution: At the end of a block to not always reset the variable count. + (issue #11094) + +Patch 9.0.0725 +Problem: Virtual text "after" wraps to next line even when 'wrap' is off + and 'list' is set. +Solution: Do not use the minimum width when 'wrap' is off. (issue #11336) + +Patch 9.0.0726 +Problem: Looping over list of lists and changing the list contents works in + Vim9 script, not in a compiled function. +Solution: Mark the loop variable final instead of const. (closes #11347) + +Patch 9.0.0727 +Problem: Help in the repository differs from patched version too much. +Solution: Make a patch for a few help files. + +Patch 9.0.0728 +Problem: extend() test fails. +Solution: Item is final, not const. + +Patch 9.0.0729 +Problem: The rightleft and arabic features are disabled. +Solution: Re-enable the features, some users want to use the functionality. + +Patch 9.0.0730 +Problem: Startup test fails with right-left feature. +Solution: Do not delete test file too early. + +Patch 9.0.0731 +Problem: clang-tidy configuration files are not recognized. +Solution: Recognize clang-tidy files as yaml. (closes #11350) + +Patch 9.0.0732 +Problem: No check for white space before and after "=<<". (Doug Kearns) +Solution: Check for white space in Vim9 script. (closes #11351) + +Patch 9.0.0733 +Problem: Use of strftime() is not safe. +Solution: Check the return value of strftime(). Use a larger buffer and + correctly pass the available space. (Dominique Pellé, closes + #11348) + +Patch 9.0.0734 +Problem: Cursor position invalid when scrolling with 'smoothscroll' set. + (Ernie Rael) +Solution: Add w_valid_skipcol and clear flags when it changes. Adjust + w_skipcol after moving the cursor. + +Patch 9.0.0735 +Problem: Breakindent and scrolloff tests fail. +Solution: Temporarily skip the assertions. + +Patch 9.0.0736 +Problem: Quickfix listing does not handle very long messages. +Solution: Use a growarray instead of a fixed size buffer. (Yegappan + Lakshmanan, closes #11357) + +Patch 9.0.0737 +Problem: Lisp word only recognized when a space follows. +Solution: Also match a word at the end of a line. Rename the test. Use a + compiled function to avoid backslashes. + +Patch 9.0.0738 +Problem: Cannot suppress completion "scanning" messages. +Solution: Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354) + +Patch 9.0.0739 +Problem: Mouse column not correctly used for popup_setpos. +Solution: Adjust off-by-one error and handle Visual line selection properly. + (Yee Cheng Chin, closes #11356) + +Patch 9.0.0740 +Problem: prop_add_list() gives multiple errors for invalid argument. +Solution: Only give one error message. + +Patch 9.0.0741 +Problem: Cannot specify an ID for each item with prop_add_list(). (Sergey + Vlasov) +Solution: Add an optional fifth number to the item. (closes #11360) + +Patch 9.0.0742 +Problem: Reading past end of the line when compiling a function with + errors. +Solution: Do not return an invalid pointer. Fix skipping redirection. + +Patch 9.0.0743 +Problem: Starting cscope on Unix does not quote the arguments correctly. + (Gary Johnson) +Solution: Move the final quote after the arguments. + +Patch 9.0.0744 +Problem: In script in autoload dir exported variable is not found. (Doug + Kearns) +Solution: Find the variable with the "script#" prefix. (closes #11361) + +Patch 9.0.0745 +Problem: Wrong cursor position when using "gj" and "gk" in a long line. +Solution: Adjust computations for the cursor position and skipcol. Re-enable + tests that pass now, disable failing breakindent test. + +Patch 9.0.0746 +Problem: Breakindent test cases are commented out. +Solution: Adjust expected result to slightly different behavior. Correct + computations for cursor position. + +Patch 9.0.0747 +Problem: Too many #ifdefs. +Solution: Graduate the +cmdline_info feature. (Martin Tournoij, + closes #11330) + +Patch 9.0.0748 +Problem: Kitty may send key without modifiers with CSI u code. +Solution: Handle CSI u code without modifiers. (Trygve Aaberge, + closes #11364) + +Patch 9.0.0749 +Problem: Alloc/free of buffer for each quickfix entry is inefficient. +Solution: Use a shared grow array. (Yegappan Lakshmanan, closes #11365) + +Patch 9.0.0750 +Problem: Crash when popup closed in callback. (Maxim Kim) +Solution: In syntax_end_parsing() check that syn_block is valid. + +Patch 9.0.0751 +Problem: 'scrolloff' does not work well with 'smoothscroll'. +Solution: Make positioning the cursor a bit better. Rename functions. + +Patch 9.0.0752 +Problem: Rprofile files are not recognized. +Solution: Recognize Rprofile files as "r". (closes #11369) + +Patch 9.0.0753 +Problem: Some Ex commands are not in the help index. +Solution: Add the missing commands. Add a script to check all Ex commands + are in the help index. (Yee Cheng Chin, closes #11371) + +Patch 9.0.0754 +Problem: 'indentexpr' overrules lisp indenting in one situation. +Solution: Add "else" to keep the lisp indent. (issue #11327) + +Patch 9.0.0755 +Problem: Huge build on macos always fails on CI. +Solution: Temporarily disable the perl interface. + +Patch 9.0.0756 +Problem: No autocmd event for changing text in a terminal window. +Solution: Add TextChangedT. (Shougo Matsushita, closes #11366) + +Patch 9.0.0757 +Problem: Line number not visible with 'smoothscroll', 'nu' and 'rnu'. +Solution: Put the ">>>" after the line number instead of on top. + +Patch 9.0.0758 +Problem: "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'. +Solution: Keep the "precedes" character. + +Patch 9.0.0759 +Problem: Huge build on macos does not use Perl. +Solution: Re-enable the Perl interface using "dynamic". (closes #11375) + +Patch 9.0.0760 +Problem: Display test for 'listchars' "precedes" fails. +Solution: Correct the expected result. + +Patch 9.0.0761 +Problem: Cannot use 'indentexpr' for Lisp indenting. +Solution: Add the 'lispoptions' option. + +Patch 9.0.0762 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0763 +Problem: MS-Windows: warning for using int for size_t. +Solution: Declare variable as size_t. + +Patch 9.0.0764 +Problem: Indent and option tests fail. +Solution: Change OP_INDENT. Add entry to options test table. + +Patch 9.0.0765 +Problem: With a Visual block a put command column may go negative. +Solution: Check that the column does not become negative. + +Patch 9.0.0766 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0767 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0768 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0769 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0770 +Problem: Quickfix commands may keep memory allocated. +Solution: Free memory when it's a bit much. (Yegappan Lakshmanan, + closes #11379) + +Patch 9.0.0771 +Problem: Cannot always tell the difference between tex and rexx files. +Solution: Recognize tex by a leading backslash. (Martin Tournoij, + closes #11380) + +Patch 9.0.0772 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 790 to 801. + +Patch 9.0.0773 +Problem: Huge build on MacOS uses dynamic Perl. +Solution: Use built-in Perl, uninstall the brew one. (closes #11382) + +Patch 9.0.0774 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 802 to 817. Revert some + changes made for C89. + +Patch 9.0.0775 +Problem: MS-Windows: mouse scrolling not supported in the console. +Solution: Add event handling for mouse scroll events. (Christopher + Plewright, closes #11374) + +Patch 9.0.0776 +Problem: MSVC can't have field name "small". +Solution: Rename small to smallfont. + +Patch 9.0.0777 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11386) + +Patch 9.0.0778 +Problem: Indexing of unknown const type fails during compilation. +Solution: Check for "any" properly. (closes #11389) + +Patch 9.0.0779 +Problem: lsl and lm3 file extensions are not recognized. +Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384) + +Patch 9.0.0780 +Problem: 'scroll' value computed in unexpected location. +Solution: Compute 'scroll' when the window height is changed. (Luuk van + Baal, closes #11387) + +Patch 9.0.0781 +Problem: Workaround to rename "small" to "smallfont" is clumsy. +Solution: Undefine "small" after including windows.h. (Ken Takata) + +Patch 9.0.0782 +Problem: OpenVPN files are not recognized. +Solution: Add patterns for OpenVPN files. (closes #11391) + +Patch 9.0.0783 +Problem: ":!" doesn't do anything but does update the previous command. +Solution: Do not have ":!" change the previous command. (Martin Tournoij, + closes #11372) + +Patch 9.0.0784 +Problem: Text prop "above" not displayed correctly with 'number' and "n" in + 'cpo'. +Solution: Draw the line number column until the line text is reached. + +Patch 9.0.0785 +Problem: Memory leak with empty shell command. +Solution: Free the allocated memory when bailing out. + +Patch 9.0.0786 +Problem: User command does not get number from :tab modifier. +Solution: Include the number. (closes #11393, closes #6901) + +Patch 9.0.0787 +Problem: MS-Windows: mouse scrolling in terminal misbehaves without dll. +Solution: Add #ifdef as a temporary solution. (Christopher Plewright, + closes #11392) + +Patch 9.0.0788 +Problem: ModeChanged autocmd not executed when Visual mode is ended with + CTRL-C. +Solution: Do not trigger the autocmd when got_int is set. (closes #11394) + +Patch 9.0.0789 +Problem: Dummy buffer ends up in a window. +Solution: Disallow navigating to a dummy buffer. + +Patch 9.0.0790 +Problem: Test for dummy buffer does not always produce the E86 error. +Solution: Do not check if the error is produced. + +Patch 9.0.0791 +Problem: At the hit-Enter prompt the End and Home keys may not work. +Solution: Use the special "@" code for End and Home, like it was done for + the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396) + +Patch 9.0.0792 +Problem: MS-Windows: compiler complains about unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0793 +Problem: MS-Windows: mouse scroll events only work with the dll. +Solution: Accept CSI codes for MS-Windows without the GUI. (Christopher + Plewright, closes #11401) + +Patch 9.0.0794 +Problem: There is no way to find out if an escape sequence with + modifyOtherKeys has been seen. +Solution: Add a notice with ":verbose map". + +Patch 9.0.0795 +Problem: readblob() always reads the whole file. +Solution: Add arguments to read part of the file. (Ken Takata, + closes #11402) + +Patch 9.0.0796 +Problem: Mapping test fails in some situations. +Solution: Find the line with the verbose information. + +Patch 9.0.0797 +Problem: Order of assert function arguments is reverted. +Solution: Swap the arguments. (closes #11399) + +Patch 9.0.0798 +Problem: Clang format configuration files are not recognized. +Solution: Use yaml for Clang format configuration files. (Marwin Glaser, + closes #11398) + +Patch 9.0.0799 +Problem: In compiled function ->() on next line not recognized. +Solution: Also check for "(". (closes #11405) + +Patch 9.0.0800 +Problem: Compiler complains about repeated typedef. +Solution: Remove one typedef. + +Patch 9.0.0801 +Problem: The modifyOtherKeys flag is set when it should not. +Solution: Do not handle special key codes with a modifier value above 16 as + a modifyOtherKeys value. (issue #11403) + +Patch 9.0.0802 +Problem: MS-Windows: cannot map console mouse scroll events. +Solution: Change CSI to K_SPECIAL when checking for a mapping. (Christopher + Plewright, closes #11410) + +Patch 9.0.0803 +Problem: readblob() cannot read from character device. +Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407) + +Patch 9.0.0804 +Problem: Crash when trying to divide the largest negative number by -1. +Solution: Handle this case specifically. + +Patch 9.0.0805 +Problem: Filetype autocmd may cause freed memory access. +Solution: Set the quickfix-busy flag while filling the buffer. + +Patch 9.0.0806 +Problem: 'langmap' works differently when there are modifiers. +Solution: Only apply 'langmap' to a character where modifiers have no + effect. (closes #11395, closes #11404) + +Patch 9.0.0807 +Problem: With 'smoothscroll' typing "0" may not go to the first column. +Solution: Recompute w_cline_height when needed. Do not scroll up when it + would move the cursor. + +Patch 9.0.0808 +Problem: jsonnet filetype detection has a typo. +Solution: Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412) + +Patch 9.0.0809 +Problem: Test for job writing to buffer fails. +Solution: Correct w_topline when deleting a buffer line. + +Patch 9.0.0810 +Problem: readblob() returns empty when trying to read too much. +Solution: Return what is available. + +Patch 9.0.0811 +Problem: Error if :echowin is preceded by a command modifier. +Solution: Do not give an error for range when there is a modifier. + (closes #11414) + +Patch 9.0.0812 +Problem: GUI mouse scrollwheel mappings don't work. +Solution: Add check for "gui.in_use". (Christopher Plewright, closes #11418) + +Patch 9.0.0813 +Problem: Kitty terminal is not recognized. +Solution: Recognize Kitty by the termresponse and then do not set + seenModifyOtherKeys, since Kitty doesn't support that. + (issue #11413) + +Patch 9.0.0814 +Problem: Aws config files are not recognized. +Solution: Use "confini" for aws config files. (Justin M. Keyes, + closes #11416) + +Patch 9.0.0815 +Problem: ":!" does not switch to the alternate screen. +Solution: For ":!" don't clear the previous command. (closes #11420, + closes #11409) + +Patch 9.0.0816 +Problem: CTRL-Z at end of file is always dropped. +Solution: Add the 'endoffile' option, like the 'endofline' option. + (closes #11408, closes #11397) + +Patch 9.0.0817 +Problem: Build error. +Solution: correct variable name. + +Patch 9.0.0818 +Problem: "!ls" does not work. +Solution: Do not free memory that is in use. + +Patch 9.0.0819 +Problem: Still a build error, tests are failing. +Solution: Correct recent changes. Add missing init for 'eof'. + +Patch 9.0.0820 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0821 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0822 +Problem: Crash when dragging the statusline with a mapping. +Solution: Check for valid window pointer. (issue #11427) + +Patch 9.0.0823 +Problem: Mouse drag test fails. +Solution: Only reset the mouse click flag when actually switching to another + tab page. Disable test that keeps failing. + +Patch 9.0.0824 +Problem: Crash when using win_move_separator() in other tab page. +Solution: Check for valid window in current tab page. + (closes #11479, closes #11427) + +Patch 9.0.0825 +Problem: Cannot drag an entry in the tabpage line. +Solution: Clear dragwin instead of got_click. (closes #11483, + closes #11482) + +Patch 9.0.0826 +Problem: If 'endofline' is set the CTRL-Z may be written in the wrong + place. +Solution: Write CTRL-Z at the end of the file. Update the help to explain + the possibilities better. (Ken Takata, closes #11486) + +Patch 9.0.0827 +Problem: The <Home> key in tmux doesn't work when 'term' is set to "xterm". + (Dominique Pellé) +Solution: Only use '@' in a termcap key entry for "1" when ";" follows. + (closes #11429) + +Patch 9.0.0828 +Problem: Various typos. +Solution: Correct typos. (closes #11432) + +Patch 9.0.0829 +Problem: Wrong counts in macro comment. +Solution: Update the value counts. (closes #11480) + +Patch 9.0.0830 +Problem: Compiling with Perl on Mac 12 fails. +Solution: Suppress infinite warnings. (closes #11499) + +Patch 9.0.0831 +Problem: Compiler warning for redefining HAVE_DUP. +Solution: Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484) + +Patch 9.0.0832 +Problem: Deprecation warning causes build failure. +Solution: Suppress deprecation warning. (closes #11503) + +Patch 9.0.0833 +Problem: Mac: no +sound feature in huge build. +Solution: Enable +sound in Mac huge build. (closes #11497) + +Patch 9.0.0834 +Problem: Warning for missing return type. +Solution: Add "int". (San James, closes #11496) + +Patch 9.0.0835 +Problem: The window title is not redrawn when 'endoffile' changes. +Solution: redraw the window title when 'endoffile' is changed. (Ken Takata, + closes #11488) + +Patch 9.0.0836 +Problem: Wrong error when using extend() with funcref. +Solution: Better check the variable type. (closes #11468, closes #11455) + +Patch 9.0.0837 +Problem: append() reports failure when not appending anything. +Solution: Only report failure when appending something. (closes #11498) + +Patch 9.0.0838 +Problem: Compiler warnings for unused variables. +Solution: Adjust #ifdef and remove unused variables. (John Marriott) + +Patch 9.0.0839 +Problem: Test may fail depending on sequence of events. +Solution: Accept error codes in either order. (Yee Cheng Chin, + closes #11510) + +Patch 9.0.0840 +Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA) +Solution: Remove the const flag from the slice type. (closes #11490) + +Patch 9.0.0841 +Problem: deletebufline() does not always return 1 on failure. +Solution: Refactor the code to make it work more predictable. (closes #11511) + +Patch 9.0.0842 +Problem: Unicode range for Apple SF symbols is outdated. +Solution: Update to SF Symbols 4. (Yee Cheng Chin, closes #11474) + +Patch 9.0.0843 +Problem: VHS tape files are not recognized. +Solution: Add a filetype pattern. (Carlos Alexandro Becker, closes #11452) + +Patch 9.0.0844 +Problem: Handling 'statusline' errors is spread out. +Solution: Pass the option name to the lower levels so the option can be + reset there when an error is encountered. (Luuk van Baal, + closes #11467) + +Patch 9.0.0845 +Problem: Shell command with just space gives strange error. +Solution: Skip white space at start of the argument. (Christian Brabandt, + Shane-XB-Qian, closes #11515, closes #11495) + +Patch 9.0.0846 +Problem: Using assert_fails() may cause hit-enter prompt. +Solution: Set no_wait_return. (closes #11522) + +Patch 9.0.0847 +Problem: CI: not totally clear what MS-Windows version is used. +Solution: Show the Windows version. (Ken Takata, closes #11524) + +Patch 9.0.0848 +Problem: Help item for --log argument is not aligned nicely. +Solution: Add a Tab. (Ken Takata, closes #11521) + +Patch 9.0.0849 +Problem: Terminal mouse test is a bit flaky. +Solution: Add WaitFor() calls. (James McCoy closes #11519) Tune wait times + to reduce flakiness. + +Patch 9.0.0850 +Problem: MS-Windows Terminal has unstable color control. +Solution: Do not try to read the old command prompt colortable, use modern + VT sequences. (Christopher Plewright, closes #11450, + closes #11373) + +Patch 9.0.0851 +Problem: Terminal mouse test is still flaky. +Solution: Also use WaitForAssert(). + +Patch 9.0.0852 +Problem: Crypt test is skipped if xxd is not found. +Solution: Find xxd where it was supposed to be build. + +Patch 9.0.0853 +Problem: Terminal mouse test is still flaky on MacOS M1. +Solution: Also wait for the file to have some contents. + +Patch 9.0.0854 +Problem: No proper test for what 9.0.0846 fixes. +Solution: Run test in a terminal so that the hit-enter prompt can show up. + (closes #11523) + +Patch 9.0.0855 +Problem: Comment not located above the code it refers to. +Solution: Move the comment. (closes #11527) + +Patch 9.0.0856 +Problem: MS-Windows: executable not found when running individual test. +Solution: Also look for vimd.exe. (Christopher Plewright, closes #11525) + +Patch 9.0.0857 +Problem: Selecting MSVC 2017 does not set $PLATFORM. +Solution: Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485) + +Patch 9.0.0858 +Problem: "!!sort" in a closed fold sorts too many lines. +Solution: Round to end of fold after adding the line count. (closes #11487) + +Patch 9.0.0859 +Problem: Compiler warning for unused variable. +Solution: Add #ifdef. + +Patch 9.0.0860 +Problem: MS-Windows: windres fails with clang 15.0.4. +Solution: Use llvm-windres. (John Marriott) + +Patch 9.0.0861 +Problem: Solution for "!!sort" in closed fold is not optimal. +Solution: Use a different range instead of the subtle difference in handling + a range with an offset. (issue #11487) + +Patch 9.0.0862 +Problem: Default value of 'endoffile' is wrong. +Solution: The default must be 'noendoffile'. + +Patch 9.0.0863 +Problem: col() and charcol() only work for the current window. +Solution: Add an optional winid argument. (Yegappan Lakshmanan, + closes #11466, closes #11461) + +Patch 9.0.0864 +Problem: Crash when using "!!" without a previous shell command. +Solution: Check "prevcmd" is not NULL. (closes #11487) + +Patch 9.0.0865 +Problem: Duplicate arguments are not always detected. +Solution: Expand to full path before comparing arguments. (Nir Lichtman, + closes #11505, closes #9402) + +Patch 9.0.0866 +Problem: No test for what patch 8.2.2207 fixes. +Solution: Add a test case. (closes #11531) + +Patch 9.0.0867 +Problem: Wildmenu redrawing code is spread out. +Solution: Refactor to move code together. (closes #11528) + +Patch 9.0.0868 +Problem: MS-Windows: after Vim exits console resizing does not work + properly. +Solution: Restore screen behavior checks for various WT and VTP + combinations. (Christopher Plewright, closes #11526, + closes #11507) + +Patch 9.0.0869 +Problem: Bogus error when string used after :elseif. +Solution: Do not consider a double quote the start of a comment. + (closes #11534) + +Patch 9.0.0870 +Problem: Get E967 when using text property in quickfix window. (Sergey + Vlasov) +Solution: Do not add an extra NUL and compute the text length correctly. + (closes #11513) + +Patch 9.0.0871 +Problem: Using freed memory when clearing augroup at more prompt. +Solution: Delay clearing augroup until it's safe. (closes #11441) + +Patch 9.0.0872 +Problem: Code is indented more than needed. +Solution: Return early. (Yegappan Lakshmanan, closes #11538) + +Patch 9.0.0873 +Problem: Using freed memory when executing mapclear at the more prompt. +Solution: Do not clear mappings while listing them. (closes #11438) + +Patch 9.0.0874 +Problem: Using freed memory when executing unmenu at the more prompt. +Solution: Do not clear menus while listing them. (closes #11439) + +Patch 9.0.0875 +Problem: Using freed memory when executing delfunc at the more prompt. +Solution: Check function list not changed in another place. (closes #11437) + +Patch 9.0.0876 +Problem: Code is indented more than needed. +Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539) + +Patch 9.0.0877 +Problem: Using freed memory with :comclear while listing commands. +Solution: Bail out when the command list has changed. (closes #11440) + +Patch 9.0.0878 +Problem: Coverity warns for dead code. +Solution: Remove the dead code. + +Patch 9.0.0879 +Problem: Unnecessary nesting in makefile. +Solution: Join "else" and "ifeq". (Ken Takata, closes #11547) + +Patch 9.0.0880 +Problem: Preprocessor indenting is off. +Solution: Adjust preprocessor indentation. (Ken Takata, closes #11546) + +Patch 9.0.0881 +Problem: Cannot get the currently showing mouse shape. +Solution: Add getmouseshape(). + +Patch 9.0.0882 +Problem: Using freed memory after SpellFileMissing autocmd uses bwipe. +Solution: Bail out if the window no longer exists. + +Patch 9.0.0883 +Problem: A silent mapping may cause dots on the command line. +Solution: Don't show dots for completion if they are not going to be removed + again. (closes #11501) + +Patch 9.0.0884 +Problem: Mouse shape remains in op-pending mode after failed change. +Solution: Reset finish_op and restore it. (closes #11545) + +Patch 9.0.0885 +Problem: Informational message has an error message number. +Solution: Use a message without an error number. (closes #11530) + +Patch 9.0.0886 +Problem: Horizontal mouse scroll only works in the GUI. +Solution: Make horizontal mouse scroll also work in a terminal. + (Christopher Plewright, closes #11448) + +Patch 9.0.0887 +Problem: Cannot easily try out what codes various keys produce. +Solution: Add a script to gather key code information, with an initial list + of codes to compare with. + +Patch 9.0.0888 +Problem: MS-Windows GUI: CTRL-] does not work on Swiss keyboard. +Solution: Check the key code and don't consider it as a dead key. (Aedin + Louis Xavier, closes #11556) + +Patch 9.0.0889 +Problem: Keycode check script has a few flaws. +Solution: Sort on terminal name. Ignore XTGETTCAP responses. Check for + version and status response. Update entries. + +Patch 9.0.0890 +Problem: No test for what patch 9.0.0827 fixes. +Solution: Add a test (still doesn't fail when fix is reverted). + +Patch 9.0.0891 +Problem: Virtual text below after match has wrong highlight. +Solution: Restore search_attr only after the virtual text. + (closes #11446) + +Patch 9.0.0892 +Problem: May redraw when not needed, causing slow scrolling. +Solution: Do not redraw when w_skipcol doesn't change. When w_skipcol + changes only redraw from the top. (issue #11559) + +Patch 9.0.0893 +Problem: 'smoothscroll' cursor calculations wrong when 'number' is set. +Solution: Correct the code that computes the width. (closes #11492) + +Patch 9.0.0894 +Problem: Virtual text property highlight ignores window background. +Solution: Combine text prop attribute with win_attr into extra_attr. + (closes #11462) + +Patch 9.0.0895 +Problem: File renamed twice in test; missing feature check. +Solution: Remove a rename() call. Add check for cryptv feature. + (closes #11564) + +Patch 9.0.0896 +Problem: Test for home key fails when 'term' is "tmux". +Solution: Only save termcap entries that exist. Adjust code for xHome to + what xterm uses. (closes #11566) + +Patch 9.0.0897 +Problem: Clinical Quality Language files are not recognized. +Solution: Add the "*.cql" pattern. (Matthew Gramigna, closes #11452) + +Patch 9.0.0898 +Problem: With 'smoothscroll' cursor is one screen line too far down. (Ernie + Rael) +Solution: Add a test that currently has the wrong result so that a fix can + be made. (issue #11436) + +Patch 9.0.0899 +Problem: The builtin terminals are in one long list. +Solution: Refactor into multiple lists and an index of the lists. + +Patch 9.0.0900 +Problem: Cursor moves too far with 'smoothscroll'. +Solution: Only move as far as really needed. (Yee Cheng Chin, closes #11504) + +Patch 9.0.0901 +Problem: Setting w_leftcol and handling side effects is confusing. +Solution: Use a function to set w_leftcol() and handle side effects. + +Patch 9.0.0902 +Problem: Some mouse scroll code is not in a good place. +Solution: Refactor the code. (Christopher Plewright, closes #11561) + +Patch 9.0.0903 +Problem: Key code checker doesn't check modifyOtherKeys resource. +Solution: Request the modifyOtherKeys resource value. Drop resource DCS + responses. + +Patch 9.0.0904 +Problem: Various comment and indent flaws. +Solution: Improve comments and indenting. + +Patch 9.0.0905 +Problem: Virtual text after the line wraps when 'wrap' is off. +Solution: Only set text_prop_follows when wrapping. (closes #11463) + +Patch 9.0.0906 +Problem: Mouse scroll code is not optimal. +Solution: Properly organise Normal mode, Insert mode and common code. + (Christopher Plewright, closes #11572) + +Patch 9.0.0907 +Problem: Restoring window after WinScrolled may fail. +Solution: Lock the window layout when triggering WinScrolled. + +Patch 9.0.0908 +Problem: With 'smoothscroll' cursor may end up in wrong position. +Solution: Correct the computation of screen lines. (Yee Cheng Chin, + closes #11502) + +Patch 9.0.0909 +Problem: Error message for layout change does not match action. +Solution: Pass the command to where the error is given. (closes #11573) + +Patch 9.0.0910 +Problem: Setting lines in another buffer may not work well. +Solution: Make sure the buffer being changed has a window. (issue #11558) + +Patch 9.0.0911 +Problem: With 'smoothscroll' set mouse click position may be wrong. +Solution: Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514) + +Patch 9.0.0912 +Problem: libvterm with modifyOtherKeys level 2 does not match xterm. +Solution: Adjust key code escape sequences to be the same as what xterm + sends in modifyOtherKeys level 2 mode. Check the value of + no_reduce_keys before using it. + +Patch 9.0.0913 +Problem: Only a change in the current window triggers the WinScrolled + event. +Solution: Trigger WinScrolled if any window scrolled or changed size. + (issue #11576) + +Patch 9.0.0914 +Problem: deletebufline() may move marks in the wrong window. +Solution: Find a window for the buffer being changed. (closes #11583) + +Patch 9.0.0915 +Problem: WinScrolled may trigger immediately when defined. +Solution: Initialize the fields in all windows. (closes #11582) + +Patch 9.0.0916 +Problem: getbufline() is inefficient for getting a single line. +Solution: Add getbufoneline(). + +Patch 9.0.0917 +Problem: The WinScrolled autocommand event is not enough. +Solution: Add WinResized and provide information about what changed. + (closes #11576) + +Patch 9.0.0918 +Problem: MS-Windows: modifier keys do not work with mouse scroll events. +Solution: Use K_SPECIAL instead of CSI for the modifier keys. (Christopher + Plewright, closes #11587) + +Patch 9.0.0919 +Problem: Build failure with tiny features. +Solution: Adjust #ifdef's. + +Patch 9.0.0920 +Problem: Cannot find an import prefixed with "s:". (Doug Kearns) +Solution: Skip over the "s:". (closes #11585) + +Patch 9.0.0921 +Problem: Missing defined(PROTO) in #ifdef. +Solution: Adjust #ifdef so that proto works with different features. + Clean up some preprocessor indenting. + +Patch 9.0.0922 +Problem: Mermaid files are not recognized. +Solution: Add patterns for Mermaid. (Crag MacEachern) + +Patch 9.0.0923 +Problem: Second SIGWINCH signal may be ignored. +Solution: When set_shellsize() is busy when called then run the inner code + again when it's done. (issue #424) + +Patch 9.0.0924 +Problem: The first termcap entry of a builtin termcap is not used. +Solution: Remove increment that was previously skipping the KS_NAME entry. + +Patch 9.0.0925 +Problem: Two conditions are always false. +Solution: Remove the conditions. Update return value types to make clear + what could be returned. (closes #11593) + +Patch 9.0.0926 +Problem: Coverity warns for not using return value of dict_add(). +Solution: When dict_add() fails then don't call hash_remove(). + +Patch 9.0.0927 +Problem: Coverity warns for using a NULL pointer. +Solution: Check for memory allocation failure. + +Patch 9.0.0928 +Problem: Using Ruby LDFLAGS may cause build problems. +Solution: Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal, + closes #11592) + +Patch 9.0.0929 +Problem: Build failure with tiny version. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.0930 +Problem: Cannot debug the Kitty keyboard protocol with TermDebug. +Solution: Add Kitty keyboard protocol support to the libvterm fork. + Recognize the escape sequences that the protocol generates. Add + the 'keyprotocol' option to allow the user to specify for which + terminal what protocol is to be used, instead of hard-coding this. + Add recognizing the kitty keyboard protocol status. + +Patch 9.0.0931 +Problem: MS-Windows: mouse column limited to 223. +Solution: Use two bytes for each mouse coordinate. Add the mouse position + to scroll events. (Christopher Plewright, closes #11597) + +Patch 9.0.0932 +Problem: Oblivion files are not recognized. +Solution: Recognize Oblivion files and alike as "obse". (closes #11540) + +Patch 9.0.0933 +Problem: Kitty shows "already at oldest change" on startup. +Solution: When receiving the keyboard protocol state return the ignore key. + (closes #11601) + +Patch 9.0.0934 +Problem: Various code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0935 +Problem: When using dash it may not be recognize as filetype "sh". +Solution: Add checks for "dash". (Eisuke Kawashima, closes #11600) + +Patch 9.0.0936 +Problem: Wrong type for "isunnamed" returned by getreginfo(). +Solution: Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598) + +Patch 9.0.0937 +Problem: Forked repositories send out useless email. +Solution: When Coverity fails to run just ignore it. (Shane-XB-Qian, + closes #11604) + +Patch 9.0.0938 +Problem: MS-Windows: debug executable not found when running test. +Solution: Look for vimd.exe. (Christopher Plewright, closes #11602) + +Patch 9.0.0939 +Problem: Still using simplified mappings when using the kitty keyboard + protocol. +Solution: Use the kitty_protocol_state value to decide whether to use + simplified mappings. Improve how seenModifyOtherKeys is set and + reset. + +Patch 9.0.0940 +Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian) +Solution: Use the "vterm" variable instead of getting the terminal pointer + from the current buffer. (closes #11608) + +Patch 9.0.0941 +Problem: CI failures in sound dummy. +Solution: Temporarily disable building sound dummy. (closes #11610) + +Patch 9.0.0942 +Problem: Workflow Description Language files are not recognized. +Solution: Add a pattern for the "wdl" filetype. (Matt Dunford, + closes #11611) + +Patch 9.0.0943 +Problem: Pretending to go out of Insert mode when Esc is received has side + effects. +Solution: When the kitty keyboard protocol is enabled expect Esc to always + be the start of an escape sequence. + +Patch 9.0.0944 +Problem: 'cursorline' causes virtual text highlight to continue. +Solution: Save and restore line_attr. (closes #11588) + +Patch 9.0.0945 +Problem: Failures in the cursorline test. +Solution: Reset extra_attr only after a text property. + +Patch 9.0.0946 +Problem: CI: Error in Coverity flow is not reported. +Solution: Use another way to avoid errors in a forked repository. (Ken + Takata, closes #11609) + +Patch 9.0.0947 +Problem: Invalid memory access in substitute with function that goes to + another file. +Solution: Check for text locked in CTRL-W gf. + +Patch 9.0.0948 +Problem: 'ttyfast' is set for arbitrary terminals. +Solution: Always set 'ttyfast'. (closes #11549) + +Patch 9.0.0949 +Problem: Crash when unletting a variable while listing variables. +Solution: Disallow changing a hashtable while going over the entries. + (closes #11435) + +Patch 9.0.0950 +Problem: The pattern "\_s\zs" matches at EOL. +Solution: Make the pattern "\_s\zs" match at the start of the next line. + (closes #11617) + +Patch 9.0.0951 +Problem: Trying every character position for a match is inefficient. +Solution: Use the start position of the match ignoring "\zs". + +Patch 9.0.0952 +Problem: Eclipse preference files are not recognized. +Solution: Add a pattern to use "jproperties" for Eclipse preference files. + (closes #11618) + +Patch 9.0.0953 +Problem: Part of making search more efficient is missing. +Solution: Add the change in searchit(). + +Patch 9.0.0954 +Problem: Cannot detect whether modifyOtherKeys is enabled. +Solution: Use XTQMODKEYS introduced by xterm version 377 to request the + modifyOtherKeys level. Update the keycode check results. + +Patch 9.0.0955 +Problem: Libvterm does not support the XTQMODKEYS request. +Solution: Implement the XTQMODKEYS request and response. Update the keycode + check results. + +Patch 9.0.0956 +Problem: Terminal tests fail when using key with modifier. +Solution: Use the modifyOtherKeys encoding when using RunVimInTerminal(). + +Patch 9.0.0957 +Problem: Tests fail without the terminal feature. +Solution: Move functions to another utility script. + +Patch 9.0.0958 +Problem: Messages test is flaky. +Solution: Add a short delay. + +Patch 9.0.0959 +Problem: Error when using the "File Settings / Text Width" menu. +Solution: Use str2nr(). (closes #11624) + +Patch 9.0.0960 +Problem: Error when using the "Tools / Spelling / Find More Languages" + menu. +Solution: Remove "<SID>". Reset "g:menutrans_set_lang_to" when 'encoding' + changes. (closes #11625) + +Patch 9.0.0961 +Problem: Using deletebufline() may jump to another window. +Solution: Do not use a window where the buffer was only in the past. + (closes #11594) + +Patch 9.0.0962 +Problem: Virtual text below cannot be placed below empty lines. +Solution: Add one character. (James Alvarado, closes #11606, closes #11520) + +Patch 9.0.0963 +Problem: Function name does not match autocmd event name. +Solution: Rename "optionsset" to "optionset". (closes #11630) + +Patch 9.0.0964 +Problem: Status line of other window not redrawn when dragging it when + 'splitkeep' is set to "screen". +Solution: Set w_redr_status earlier. (Luuk van Baal, closes #11635, + closes #11632) + +Patch 9.0.0965 +Problem: Using one window for executing autocommands is insufficient. +Solution: Use up to five windows for executing autocommands. + +Patch 9.0.0966 +Problem: Some compilers don't allow a declaration after a label. +Solution: Move the declaration to the start of the block. (John Marriott) + +Patch 9.0.0967 +Problem: Leaking memory from autocmd windows. +Solution: Free window when auc_win is not NULL. + +Patch 9.0.0968 +Problem: GUI mouse event test is a bit flaky. +Solution: Mark the test case as flaky. Move test function failure checks to + a separate test function. + +Patch 9.0.0969 +Problem: Matchparen highlight is not updated when switching buffers. +Solution: Listen to the BufLeave and the BufWinEnter autocmd events. + (closes #11626) + +Patch 9.0.0970 +Problem: Coverity warns for uninitialized variable. +Solution: Initialize "ren_ret". + +Patch 9.0.0971 +Problem: Escape sequences not recognized without the termresponse feature. +Solution: Recognize escape sequences to avoid display mess up. + +Patch 9.0.0972 +Problem: Build failure on some systems. +Solution: Adjust #ifdefs related to the termresponse feature. + +Patch 9.0.0973 +Problem: Kitty keyboard protocol key not decoded when it has an unsupported + modifier, such as NumLock. +Solution: Accept a key with any modifier. (closes #11638) + +Patch 9.0.0974 +Problem: Even when Esc is encoded a timeout is used. +Solution: Use K_ESC when an encoded Esc is found. + +Patch 9.0.0975 +Problem: Virtual text below an empty line is misplaced when 'number' is + set. +Solution: Adjust the computations. (closes #11629) + +Patch 9.0.0976 +Problem: Enabling the kitty keyboard protocol uses push/pop. +Solution: Use the start/stop codes to avoid unpredictable behavior. + +Patch 9.0.0977 +Problem: It is not easy to see what client-server commands are doing. +Solution: Add channel log messages if ch_log() is available. Move the + channel logging and make it available with the +eval feature. + +Patch 9.0.0978 +Problem: Build errors without the +channel feature. (John Marriott) +Solution: Adjust #ifdefs. + +Patch 9.0.0979 +Problem: ch_log() text can be hard to find in the log file. +Solution: Prepend "ch_log()" to the text. + +Patch 9.0.0980 +Problem: The keyboard state response may end up in a shell command. +Solution: Only request the keyboard protocol state when the typeahead is + empty, no more commands are following and not exiting. Add the + t_RK termcap entry for this. + +Patch 9.0.0981 +Problem: Build error in tiny version. +Solution: Add #ifdef. + +Patch 9.0.0982 +Problem: 'cursorline' not drawn before virtual text below. +Solution: Add the 'cursorline' attribute to the empty space. (closes #11647) + +Patch 9.0.0983 +Problem: Stray characters displayed when starting the GUI. +Solution: Add t_RK to the list of terminal options. + +Patch 9.0.0984 +Problem: GUI: remote_foreground() does not always work. (Ron Aaron) +Solution: For GTK use gtk_window_set_keep_above(). (issue #11641) + +Patch 9.0.0985 +Problem: When using kitty keyboard protocol function keys may not work. + (Kovid Goyal) +Solution: Recognize CSI ending in [ABCDEFHPQRS] also when the termcap + entries are not specified. (closes #11648) + +Patch 9.0.0986 +Problem: Build failure with tiny version. +Solution: Add #ifdef. + +Patch 9.0.0987 +Problem: File missing from list of distributed files. +Solution: Add logfile.pro to list of distributed files. + +Patch 9.0.0988 +Problem: Using feedkeys() does not show up in a channel log. +Solution: Add ch_log() calls and clean up the code. + +Patch 9.0.0989 +Problem: Popupwin test is more flaky on MacOS. +Solution: Use a longer wait time. + +Patch 9.0.0990 +Problem: Callback name argument is changed by setqflist(). +Solution: Use the expanded function name for the callback, do not store it + in the argument. (closes #11653) + +Patch 9.0.0991 +Problem: Crash when reading help index with various options set. (Marius + Gedminas) +Solution: Do not set wlv.c_extra to NUL when wlv.p_extra is NULL. + (closes #11651) + +Patch 9.0.0992 +Problem: Vim9 script: get E1096 when comment follows return. +Solution: Adjust condition for return without expression. (closes #11654) + +Patch 9.0.0993 +Problem: Display errors when adding or removing text property type. +Solution: Perform a full redraw. Only use text properties for which the + type is defined. (closes #11655) + +Patch 9.0.0994 +Problem: Tests for empty prop type name fail. +Solution: Correct the error number. + +Patch 9.0.0995 +Problem: Padding before virtual text below is highlighted when 'number' and + 'nowrap' are set. +Solution: Save and restore n_attr_skip. (closes #11643) + +Patch 9.0.0996 +Problem: If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys. +Solution: Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and + let the default value of 'keyprotocol' add those. + +Patch 9.0.0997 +Problem: Coverity warns for dead code. +Solution: Don't use ASCII_ISUPPER() for a negative value. + +Patch 9.0.0998 +Problem: "gk" may reset skipcol when not needed. +Solution: Only reset skipcol if the cursor column is less. + +Patch 9.0.0999 +Problem: Memory may leak. +Solution: Free the sound callback function name if it was allocated. + +Patch 9.0.1000 +Problem: With 'smoothscroll' skipcol may be reset unnecessarily. +Solution: Check the line does actually fit in the window. + +Patch 9.0.1001 +Problem: Classes are not documented or implemented yet. +Solution: Make the first steps at documenting Vim9 objects, classes and + interfaces. Make initial choices for the syntax. Add a skeleton + implementation. Add "public" and "this" in the command table. + +Patch 9.0.1002 +Problem: Command list test fails. +Solution: Add commands added to the list. + +Patch 9.0.1003 +Problem: Tiny build fails. +Solution: Remove #ifdef from error message. + +Patch 9.0.1004 +Problem: Suspend test sometimes fails on MacOS. +Solution: Wait a short while for terminal responses. + +Patch 9.0.1005 +Problem: A failed test may leave a swap file behind. +Solution: Delete the swap file to avoid another test to fail. Use another + file name. + +Patch 9.0.1006 +Problem: Suspend test still sometimes fails on MacOS. +Solution: Wait a little while for terminal responses. + +Patch 9.0.1007 +Problem: There is no way to get a list of swap file names. +Solution: Add the swapfilelist() function. Use it in the test script to + clean up. Remove deleting individual swap files. + +Patch 9.0.1008 +Problem: Test for swapfilelist() fails on MS-Windows. +Solution: Only check the tail of the path. Mark a test as flaky. + +Patch 9.0.1009 +Problem: Test for catch after interrupt is flaky on MS-Windows. +Solution: Mark the test as flaky. + +Patch 9.0.1010 +Problem: Stray warnings for existing swap files. +Solution: Wipe out the buffer until it has no name and no swap file. + +Patch 9.0.1011 +Problem: ml_get error when using screenpos(). +Solution: Give an error for the line number. (closes #11661) + +Patch 9.0.1012 +Problem: Tests may get stuck in buffer with swap file. +Solution: Bail out when bwipe! doesn't get another buffer. + +Patch 9.0.1013 +Problem: Suspend test often fails on Mac OS. +Solution: Make t_RP empty. + +Patch 9.0.1014 +Problem: Zir files are not recognized. +Solution: Add a pattern for Zir files. (closes #11664) + +Patch 9.0.1015 +Problem: Without /dev/urandom srand() seed is too predictable. +Solution: Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto, + closes #11656) + +Patch 9.0.1016 +Problem: screenpos() does not count filler lines for diff mode. +Solution: Add filler lines. (closes 11658) + +Patch 9.0.1017 +Problem: Test for srand() fails on MS-Windows. +Solution: Do not expect the same result a second time. + +Patch 9.0.1018 +Problem: Suspend test still fails on Mac OS. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1019 +Problem: 'smoothscroll' and virtual text above don't work together. + (Yee Cheng Chin) +Solution: Skip virtual text above when w_skipcol is non-zero. + (closes #11665) + +Patch 9.0.1020 +Problem: Tests call GetSwapFileList() before it is defined. +Solution: Move the call to after defining the function. (Christopher + Plewright) + +Patch 9.0.1021 +Problem: Test trips over g:name. +Solution: Delete g:name after using it. + +Patch 9.0.1022 +Problem: Suspend test fails on Mac OS when suspending Vim. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1023 +Problem: MS-Windows: dynamic loading of libsodium doesn't work. +Solution: Add "randombytes_random". (Ken Takata, closes #11667) + +Patch 9.0.1024 +Problem: CI doesn't use the latest FreeBSD version. +Solution: Go from 12.3 to 12.4. (closes #11423) + +Patch 9.0.1025 +Problem: WinScrolled is not triggered when filler lines change. +Solution: Add "topfill" to the values that WinScrolled triggers on. + (closes #11668) + +Patch 9.0.1026 +Problem: type of w_last_topfill is wrong. +Solution: Use "int" instead of "linenr_T". (closes #11670) + +Patch 9.0.1027 +Problem: LGTM is soon shutting down. +Solution: Remove LGTM from CI. (closes #11671) + +Patch 9.0.1028 +Problem: Mouse shape test is flaky, especially on Mac OS. +Solution: Instead of starting all timers at the same time, start the next + one in the callback of the previous one. (Yee Cheng Chin, + closes #11673) Also use "bwipe!" instead of "close!" to avoid + swap files remaining. + +Patch 9.0.1029 +Problem: Autoload directory missing from distribution. +Solution: Add the autoload/zig directory to the list of distributed files. + +Patch 9.0.1030 +Problem: Using freed memory with the cmdline popup menu. +Solution: Clear the popup menu when clearing the matches. (closes #11677) + +Patch 9.0.1031 +Problem: Vim9 class is not implemented yet. +Solution: Add very basic class support. + +Patch 9.0.1032 +Problem: Test fails when terminal feature is missing. +Solution: Use CheckRunVimInTerminal. + +Patch 9.0.1033 +Problem: Tiny build fails because of conflicting typedef. +Solution: Remove one typedef. + +Patch 9.0.1034 +Problem: Reporting swap file when windows are split. +Solution: Close extra windows after running a test. + +Patch 9.0.1035 +Problem: Object members are not being marked as used, garbage collection + may free them. +Solution: Mark object members as used. Fix reference counting. + +Patch 9.0.1036 +Problem: Undo misbehaves when writing from an insert mode mapping. +Solution: Sync undo when writing. (closes #11674) + +Patch 9.0.1037 +Problem: lalloc(0) error for a class without members. +Solution: Don't allocate room for members if there aren't any. + Don't create the class if there was an error. + +Patch 9.0.1038 +Problem: Function name does not match what it is used for. +Solution: Include the modifier in the name. (closes #11679) + +Patch 9.0.1039 +Problem: Using a <Cmd> mapping CmdlineChanged may be triggered twice. +Solution: Count the number of times CmdlineChanged is triggered and avoid + doing it twice. (closes #116820 + +Patch 9.0.1040 +Problem: Test for <Cmd> mapping with CmdlineChanged fails. +Solution: Put back the check for the cmdline length not changing. + +Patch 9.0.1041 +Problem: Cannot define a method in a class. +Solution: Implement defining an object method. Make calling an object + method work. + +Patch 9.0.1042 +Problem: ASAN gives false alarm about array access. +Solution: Use an intermediate pointer. + +Patch 9.0.1043 +Problem: Macro has confusing name and is duplicated. +Solution: Use one macro with an understandable name. (closes #11686) + +Patch 9.0.1044 +Problem: Setting window height using Python may cause errors. +Solution: When setting "curwin" also set "curbuf". (closes #11687) + +Patch 9.0.1045 +Problem: In a class object members cannot be initialized. +Solution: Support initializing object members. Make "disassemble" work on + an object method. + +Patch 9.0.1046 +Problem: Class method disassemble test fails on MS-Windows. +Solution: Do not match with a specific size. + +Patch 9.0.1047 +Problem: Matchparen is slow. +Solution: Actually use the position where the match started, not the + position where the search started. (closes #11644) + +Patch 9.0.1048 +Problem: With "screenline" in 'culopt' cursorline highlight is wrong. +Solution: Apply the priority logic also when "screenline is in 'culopt'. + (closes #11696) + +Patch 9.0.1049 +Problem: Crash when opening a very small terminal window. +Solution: Instead of crashing fix the cursor position. (closes #11697) + +Patch 9.0.1050 +Problem: Using freed memory when assigning to variable twice. +Solution: Make copy of the list type. (closes #11691) + +Patch 9.0.1051 +Problem: After a failed CTRL-W ] next command splits window. +Solution: Reset postponed_split. (Rob Pilling, closes #11698) + +Patch 9.0.1052 +Problem: Using freed memory on exit when EXITFREE is defined. +Solution: Make a deep copy of the type. Make sure TTFLAG_STATIC is not set + in the copy. + +Patch 9.0.1053 +Problem: Default constructor arguments are not optional. +Solution: Use "= v:none" to make constructor arguments optional. + +Patch 9.0.1054 +Problem: Object member can't get type from initializer. +Solution: If there is no type specified try to use the type of the + initializer. Check for a valid type. + +Patch 9.0.1055 +Problem: Coverity warns for using uninitialized memory. +Solution: Clear the "lhs" field earlier. + +Patch 9.0.1056 +Problem: Leaking memory when disassembling an object method. +Solution: Free the typval of the class. + +Patch 9.0.1057 +Problem: Conflict between supercollider and scala filetype detection. +Solution: Do not check for "Class : Method", it can appear in both + filetypes. (Chris Kipp, closes #11699) + +Patch 9.0.1058 +Problem: String value of class and object do not have useful information. +Solution: Add the class name and for the object the member values. + +Patch 9.0.1059 +Problem: Build failure with some compilers that can't handle a + declaration directly after a "case" statement. +Solution: Add a block to put the declarations in. + +Patch 9.0.1060 +problem: Private and public object members are not implemented yet. +Solution: Implement private and public object members. + +Patch 9.0.1061 +Problem: Cannot display 'showcmd' somewhere else. +Solution: Add the 'showcmdloc' option. (Luuk van Baal, closes #11684) + +Patch 9.0.1062 +Problem: Some test function names do not match what they are doing. +Solution: Leave out user data for the test that is called "NoUserData". + (closes #11703) + +Patch 9.0.1063 +Problem: When using Kitty a shell command may mess up the key protocol + state. +Solution: Output t_te before t_TE. If t_te switches between the main and + the alternate screen then deactivating the key protocol by t_TE + should happen after switching screen. (issue #11705) + +Patch 9.0.1064 +Problem: Code for making 'shortmess' temporarily empty is repeated. +Solution: Add functions for making 'shortmess' empty and restoring it. + (Christian Brabandt, closes #11709) + +Patch 9.0.1065 +Problem: A shell command switching screens may still have a problem with + the kitty keyboard protocol. +Solution: Disable the kitty keyboard protocol both in the current and the + alternate screen, if there are indications it might be needed. + (issue #11705) Also fix naming. + +Patch 9.0.1066 +Problem: Test function name is wrong. +Solution: Rename to what is actually being tested. (closes #11712) + +Patch 9.0.1067 +Problem: In diff mode virtual text is highlighted incorrectly. (Rick Howe) +Solution: Do not use diff attributes for virtual text. (closes #11714) + +Patch 9.0.1068 +Problem: No information about whether requesting term codes has an effect. +Solution: Add ch_log() calls to report the effect of term code responses. + Avoid deleting an entry and then adding back the same one. + +Patch 9.0.1069 +Problem: Diff mode highlight fails for special characters. +Solution: Adjust condition for setting "diff_hlf". + +Patch 9.0.1070 +Problem: Reading beyond array size. +Solution: Only use name[0] and name[1], do not use "name" as a string. + +Patch 9.0.1071 +Problem: Codecov action version is too specific. +Solution: Only use "v3" to automatically use the latest stable version. + (closes #11720) + +Patch 9.0.1072 +Problem: screenpos() column result in fold may be too small. +Solution: Add space of 'number', sign column, etc. (closes #11715) + +Patch 9.0.1073 +Problem: Using "xterm-kitty" for 'term' causes problems. +Solution: Remove the "xterm-" part when 'term' is set from $TERM. Detect a + few kitty-specific properties based on the version response + instead of the terminal name. + +Patch 9.0.1074 +Problem: Class members are not supported yet. +Solution: Add initial support for class members. + +Patch 9.0.1075 +Problem: build fails if the compiler doesn't allow for a declaration right + after "case". +Solution: Add a block. + +Patch 9.0.1076 +Problem: ASAN complains about NULL argument. +Solution: Skip memmove() when there is nothing to move. + +Patch 9.0.1077 +Problem: Can add text property with negative ID before virtual text + property. +Solution: Remember that a text property with a negative ID was used and give + an appropriate error message. (closes #11725) + Fix index computation. + +Patch 9.0.1078 +Problem: With the +vartabs feature indent folding may use wrong 'tabstop'. +Solution: Use the "buf" argument instead of "curbuf". + +Patch 9.0.1079 +Problem: Leaking memory when defining a user command fails. +Solution: Free "compl_arg" when needed. (closes #11726) + +Patch 9.0.1080 +Problem: The "kitty" terminfo entry is not widespread, resulting in the + kitty terminal not working properly. +Solution: Go back to using "xterm-kitty" and avoid the problems it causes in + another way. + +Patch 9.0.1081 +Problem: Using "->" with split lines does not always work. +Solution: Avoid trying to get another line. (closes #11723) + +Patch 9.0.1082 +Problem: Some jsonc files are not recognized. +Solution: Add patterns for jsonc and move some from json to jsonc. + (closes #11711) + +Patch 9.0.1083 +Problem: Empty and comment lines in a class cause an error. +Solution: Skip empty and comment lines. (closes #11734) + +Patch 9.0.1084 +Problem: Code handling low level MS-Windows events cannot be tested. +Solution: Add test_mswin_event() and tests using it. (Christopher Plewright, + closes #11622) + +Patch 9.0.1085 +Problem: Compiler warns for uninitialized variable. +Solution: Initialize the variable. Remove unused function. (John Marriott) + +Patch 9.0.1086 +Problem: Display wrong in Windows terminal after exiting Vim. +Solution: Apply screen restore fix for Windows 11 also to Windows 10 builds. + (Christopher Plewright, closes #11713, closes #11706) + +Patch 9.0.1087 +Problem: Autocommand test sometimes fails. +Solution: Add a short delay. (James McCoy, closes #11737) + +Patch 9.0.1088 +Problem: Clang warns for unused variable. +Solution: Adjust #ifdef. (John Marriott) + +Patch 9.0.1089 +Problem: unnecessary assignment +Solution: Remove the assignment. (Luuk van Baal, closes #1136) + +Patch 9.0.1090 +Problem: FHIR Shorthand files are not recognized. +Solution: Add a pattern to detect FSH files. (Matthew Gramigna, + closes #11738) + +Patch 9.0.1091 +Problem: Assignment to non-existing member causes a crash. (Yegappan + Lakshmanan) +Solution: Give an error message and bail out when a member cannot be found. + +Patch 9.0.1092 +Problem: Search error message doesn't show used pattern. +Solution: Pass the actually used pattern to where the error message is + given. (Rob Pilling, closes #11742) + +Patch 9.0.1093 +Problem: Using freed memory of object member. (Yegappan Lakshmanan) +Solution: Make a copy of the object member when getting it. + +Patch 9.0.1094 +Problem: Compiler warning when HAS_MESSAGE_WINDOW is not defined. +Solution: Add UNUSED. + +Patch 9.0.1095 +Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan) +Solution: After unreferencing an object set the reference to NULL. + +Patch 9.0.1096 +Problem: Reallocating hashtab when the size didn't change. +Solution: Bail out when the hashtab is already the desired size. + +Patch 9.0.1097 +Problem: Tests are failing. +Solution: Do clean up a hashtab when at the initial size. + +Patch 9.0.1098 +Problem: Code uses too much indent. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11747) + +Patch 9.0.1099 +Problem: Trying to resize a hashtab may cause a problem. +Solution: Do not try to resize a hashtab before adding an item. + +Patch 9.0.1100 +Problem: A hashtab with many removed items is not cleaned up. +Solution: Re-hash a hashtab even when the size didn't change if too many + items were removed. + +Patch 9.0.1101 +Problem: Unused global variable. +Solution: Remove the variable. (closes #11752) + +Patch 9.0.1102 +Problem: Complicated use of #ifdef. +Solution: Simplify #ifdef use. (Ken Takata, closes #11745) + +Patch 9.0.1103 +Problem: jq files are not recognized. +Solution: Add detection of Jq files. (David McDonald, closes #11743) + +Patch 9.0.1104 +Problem: Invalid memory access when checking function argument types. +Solution: Do not check beyond the number of arguments. (closes #11755) + +Patch 9.0.1105 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11756) + +Patch 9.0.1106 +Problem: Not all postfix files are recognized. +Solution: Recognize main.cf.proto files. (closes #11732) + +Patch 9.0.1107 +Problem: Float constant not recognized as float. +Solution: Check the vartype instead of comparing with t_float. + (closes #11754) + +Patch 9.0.1108 +Problem: Type error when using "any" type and adding a number to a float. +Solution: Accept both a number and a float. (closes #11753) + +Patch 9.0.1109 +Problem: Leaking allocated type. +Solution: Reset the "static" flag in the allocated type copy. + +Patch 9.0.1110 +Problem: Build fails on Mac OS X 10.4/10.5 . +Solution: Check if the dispatch/dispatch.h header exists. (Evan Miller, + closes #11746) + +Patch 9.0.1111 +Problem: Termcap entries for RGB colors are not set automatically. +Solution: Always set the termcap entries when +termguicolors is enabled. + +Patch 9.0.1112 +Problem: test_mswin_event() can hang. +Solution: Add the "execute" argument to process events right away. + (Christopher Plewright, closes #11760) + +Patch 9.0.1113 +Problem: Users cannot easily try out a PR. +Solution: Add an "artifacts" section to the AppVeyor CI config. (Christian + Brabandt, closes #11762) + +Patch 9.0.1114 +Problem: CI does not use the latest Python version. +Solution: Switch from Python 3.10 to 3.11. (closes #11761) + +Patch 9.0.1115 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indenting. (Yegappan Lakshmanan, + closes #11758) + +Patch 9.0.1116 +Problem: Compiler may complain about an unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.1117 +Problem: Terminfo entries for bracketed paste are not used. +Solution: Use the newly added terminfo entries for bracketed paste. + Correct mixup of output strings and key codes. + +Patch 9.0.1118 +Problem: Sporadic test failures when using a terminal window. +Solution: Adjust waiting times. (James McCoy, closes #11763) + +Patch 9.0.1119 +Problem: Type of arguments not checked when calling a partial. +Solution: Give an error for a wrong argument type. (closes #11753) + +Patch 9.0.1120 +Problem: Tex filetype detection not sufficiently tested. +Solution: Add more test cases for "tex" detection. (Jonas Strittmatter, + closes #11765) + +Patch 9.0.1121 +Problem: Cursor positioning and display problems with 'smoothscroll' and + using "zt", "zb" or "zz". +Solution: Adjust computations and conditions. (Yee Cheng Chin, + closes #11764) + +Patch 9.0.1122 +Problem: Class member access is not fully tested yet. +Solution: Add more tests. + +Patch 9.0.1123 +Problem: Class function not implemented yet. +Solution: Implement defining and calling a class function. + +Patch 9.0.1124 +Problem: Virtual text at a column position is truncated at the window edge. + (Yegappan Lakshmanan) +Solution: Do not truncated virtual text that is placed at a column. + +Patch 9.0.1125 +Problem: Memory leak when using class functions. +Solution: Clear and free the array with class functions. + +Patch 9.0.1126 +Problem: Bracketed paste can be enabled when pasted text is not recognized. +Solution: Output t_BE only when t_PS and t_PE are set. + +Patch 9.0.1127 +Problem: No error if function argument shadows class member. +Solution: Give an error for shadowing a class member. + +Patch 9.0.1128 +Problem: Build failure. +Solution: Add type cast. Add missing error messages. + +Patch 9.0.1129 +Problem: Sporadic Test_range() failure. +Solution: Clear typeahead. Move to a separate function. (issue #22771) + +Patch 9.0.1130 +Problem: Unexpected output when autoloading a script for an interactive + operation. +Solution: Reset "KeyTyped" while loading a script and when handling a nested + function. (closes #11773) + +Patch 9.0.1131 +Problem: Build failure without the +eval feature. +Solution: Move code inside #ifdef. + +Patch 9.0.1132 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indentation. (Yegappan Lakshmanan, + closes #11769) + +Patch 9.0.1133 +Problem: Error message names do not match the items. +Solution: Add "_str" when the text contains "%s". + +Patch 9.0.1134 +Problem: Comparing objects uses identity instead of equality. +Solution: Compare the object values. + +Patch 9.0.1135 +Problem: Missing function argument. +Solution: Add ignore case flag. + +Patch 9.0.1136 +Problem: Memory leak when getting class member type from expr. +Solution: Clear the expression result. + +Patch 9.0.1137 +Problem: Some conditions are always false. +Solution: Remove the useless conditions. (closes #11776) + +Patch 9.0.1138 +Problem: Crash when expecting varargs but it is something else. +Solution: Only use the member when the type is a list. (closes #11774) + +Patch 9.0.1139 +Problem: Cannot create a new object in a compiled function. +Solution: Compile the instructions to create a new object. + +Patch 9.0.1140 +Problem: Cannot call an object method in a compiled function. +Solution: Compile the instructions to invoke an object method. + +Patch 9.0.1141 +Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and + wrapping line. +Solution: Reset "wlv.vcol_off" after each screen line. (Alexey Radkov, + closes #11777) + +Patch 9.0.1142 +Problem: Crash and/or memory leak when redefining function after error. +Solution: Clear pointer after making a copy. Clear arrays on failure. + (closes #11774) + +Patch 9.0.1143 +Problem: Invalid memory access with bad 'statusline' value. +Solution: Avoid going over the NUL at the end. + +Patch 9.0.1144 +Problem: Reading beyond text. +Solution: Add strlen_maxlen() and use it. + +Patch 9.0.1145 +Problem: Invalid memory access with recursive substitute expression. +Solution: Check the return value of vim_regsub(). + +Patch 9.0.1146 +Problem: MS-Windows: various special keys and modifiers are not mappable. +Solution: Adjust the handling of keys with modifiers. (Christian Plewright, + closes #11768) + +Patch 9.0.1147 +Problem: Cannot access a class member in a compiled function. +Solution: Implement looking up a class member. + +Patch 9.0.1148 +Problem: Cmdline test fails in the GUI. +Solution: Skip the test when running in the GUI. + +Patch 9.0.1149 +Problem: Class members may be garbage collected. +Solution: Mark class members as being in use. + +Patch 9.0.1150 +Problem: :interface is not implemented yet. +Solution: Implement the basics of :interface. + +Patch 9.0.1151 +Problem: Build failure. +Solution: Add missing part of :interface change. + +Patch 9.0.1152 +Problem: Class "implements" argument not implemented. +Solution: Implement "implements" argument. Add basic checks for when a + class implements an interface. + +Patch 9.0.1153 +Problem: Build error with some compilers. +Solution: Clear pointer the right way. + +Patch 9.0.1154 +Problem: Coverity warns for dead code. +Solution: Remove condition that is always true. + +Patch 9.0.1155 +Problem: Cannot use a class as a type. +Solution: Accept a class and interface name as a type. + +Patch 9.0.1156 +Problem: Tests fail because of a different error message. +Solution: Don't give an error if a type name can't be found. + +Patch 9.0.1157 +Problem: "implements" only handles one interface name. +Solution: Handle a comma separated list of names. Check for duplicate + names. + +Patch 9.0.1158 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11787) + +Patch 9.0.1159 +Problem: Extends argument for class not implemented yet. +Solution: Basic implementation of "extends". + +Patch 9.0.1160 +Problem: ASAN error for ufunc_T allocated with wrong size. +Solution: Make sure the size can always fit the struct. + +Patch 9.0.1161 +Problem: Coverity warns for using strcpy(). +Solution: Call a function to set the function name. + +Patch 9.0.1162 +Problem: Configure does not handle all FORTIFY_SOURCE variants. +Solution: Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal, + closes #11794) + +Patch 9.0.1163 +Problem: Compiler warning for implicit size_t/int conversion. +Solution: Add a type cast. (Mike Williams, closes #11795) + +Patch 9.0.1164 +Problem: Evaluating string expression advances function line. +Solution: Disable function lines while parsing a string expression. + (Hirohito Higashi, closes #11796) + +Patch 9.0.1165 +Problem: Tests using IPv6 sometimes fail. +Solution: Use getaddrinfo() and use try/catch. (James McCoy, + closes #11783) + +Patch 9.0.1166 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11792) + +Patch 9.0.1167 +Problem: EditorConfig files do not have their own filetype. +Solution: Add the "editorconfig" filetype. (Gregory Anders, closes #11779) + +Patch 9.0.1168 +Problem: Code to enable/disable mouse is not from terminfo/termcap. +Solution: Request the "XM" entry and use it to set 'ttymouse' if possible. + +Patch 9.0.1169 +Problem: Some key+modifier tests fail on some AppVeyor images. +Solution: Adjust the tests for key movements and fix the revealed bugs. + (Christopher Plewright, closes #11798) + +Patch 9.0.1170 +Problem: LGTM badge no longer works. +Solution: Remove the LGTM badge. (closes #11799) + +Patch 9.0.1171 +Problem: Screen is not redrawn after using setcellwidths(). +Solution: Redraw the screen when the cell widths have changed. (Yasuhiro + Matsumoto, closes #11800) + +Patch 9.0.1172 +Problem: When 'selection' is "exclusive" then "1v" is one char short. +Solution: Add one character when 'selection' is "exclusive". (closes #11791) + +Patch 9.0.1173 +Problem: Compiler warning for unused variable on non-Unix systems. +Solution: Move #ifdef. (John Marriott) + +Patch 9.0.1174 +Problem: Smali files are not recognized. +Solution: Add a pattern for Smali files. (Amaan Qureshi, closes #11801) + +Patch 9.0.1175 +Problem: The set_ref_in_item() function is too long. +Solution: Use a separate function for more complicated types. (Yegappan + Lakshmanan, closes #11802) + +Patch 9.0.1176 +Problem: smithy files are not recognized. +Solution: Add a pattern for Smithy files. (Chris Kipp, closes #11804) + +Patch 9.0.1177 +Problem: AppVeyor uses some older tools. +Solution: Switch to Visual Studio 2022 and Python 3.11. (Christopher + Plewright, closes #11793) + +Patch 9.0.1178 +Problem: A child class cannot override functions from a base class. +Solution: Allow overriding and implement "super". + +Patch 9.0.1179 +Problem: Not all errors around inheritance are tested. +Solution: Add more tests. Fix uncovered problems. + +Patch 9.0.1180 +Problem: Compiler warnings without the +job feature. +Solution: Adjust #ifdefs. (John Marriott) + +Patch 9.0.1181 +Problem: Class inheritance and typing insufficiently tested. +Solution: Add more tests. Implement missing behavior. + +Patch 9.0.1182 +Problem: go checksum files are not recognized. +Solution: Add the name of go checksum files. (Amaan Qureshi, closes #11803) + +Patch 9.0.1183 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11805) + +Patch 9.0.1184 +Problem: Interface of an object is not recognized when checking type. +Solution: Use the interface implemented by an object. + +Patch 9.0.1185 +Problem: Using class from imported script not tested. +Solution: Add tests. Implement what is missing. + +Patch 9.0.1186 +Problem: Imported class does not work when used twice in a line. +Solution: Fix the type parsing. + +Patch 9.0.1187 +Problem: Test for using imported class fails. +Solution: Skip over rest of type. + +Patch 9.0.1188 +Problem: Return value of type() for class and object unclear. +Solution: Add v:t_object and v:t_class. + +Patch 9.0.1189 +Problem: Invalid memory access with folding and using "L". +Solution: Prevent the cursor from moving to line zero. + +Patch 9.0.1190 +Problem: AppVeyor runs much slower with MSVC 2022. +Solution: Go back to MSVC 2015. (Christopher Plewright, closes #11810) + +Patch 9.0.1191 +Problem: Some Bazel files are not recognized. +Solution: Add an extra Bazel pattern. (Keith Smily, closes #11807) + +Patch 9.0.1192 +Problem: No error when class function argument shadows a member. +Solution: Check for shadowing. + +Patch 9.0.1193 +Problem: Cannot map <Esc> when using the Kitty key protocol. +Solution: Add a non-simplified mapping for K_ESC. (closes #11811) + +Patch 9.0.1194 +Problem: Compiler warning for comparing pointer with int. +Solution: Change NULL to zero. + +Patch 9.0.1195 +Problem: Restoring KeyTyped when building statusline not tested. +Solution: Add a test. Clean up and fix other tests. (closes #11815) + +Patch 9.0.1196 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11813) + +Patch 9.0.1197 +Problem: Dump file missing from patch. +Solution: Add missing dump file. + +Patch 9.0.1198 +Problem: Abstract class not supported yet. +Solution: Implement abstract class and add tests. + +Patch 9.0.1199 +Problem: Crash when using kitty and using a mapping with <Esc>. +Solution: Do not try setting did_simplify when it is NULL. (closes #11817) + +Patch 9.0.1200 +Problem: AppVeyor builds with an old Python version. +Solution: Switch from Python 3.8 to 3.11. (Christopher Plewright, + closes #11814) + +Patch 9.0.1201 +Problem: Assignment with operator doesn't work in object method. +Solution: Handle loading the object member. (closes #11820) Add a few more + tests. + +Patch 9.0.1202 +Problem: Crash when iterating over list of objects. +Solution: Do not make a copy of tt_member for object or class. + (closes #11823) + +Patch 9.0.1203 +Problem: Return type of values() is always list<any>. +Solution: Use the member type if possible. (issue #11822) + +Patch 9.0.1204 +Problem: Expression compiled the wrong way after using an object. +Solution: Generate constants before getting the type. + +Patch 9.0.1205 +Problem: Crash when handling class that extends another class with more + than one object members. +Solution: Correct pointer computations. (closes #11824) + +Patch 9.0.1206 +Problem: Testing with Python on AppVeyor does not work properly. +Solution: Fix typo. Move most lines to the .bat file. (Christopher + Plewright, closes #11828) + +Patch 9.0.1207 +Problem: Error when object type is expected but getting "any". +Solution: When actual type is "any" use a runtime type check. + (closes #11826) + +Patch 9.0.1208 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11819) + +Patch 9.0.1209 +Problem: Getting interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + (closes #11825) + +Patch 9.0.1210 +Problem: Compiler complains about declaration after label. +Solution: Move declaration to beginning of block (John Marriott) + +Patch 9.0.1211 +Problem: Storing value in interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + +Patch 9.0.1212 +Problem: Cannot read back what setcellwidths() has done. +Solution: Add getcellwidths(). (Kota Kato, closes #11837) + +Patch 9.0.1213 +Problem: Adding a line below the last one does not expand fold. +Solution: Do not skip mark_adjust() when adding lines below the last one. + (Brandon Simmons, closes #11832, closes #10698) + +Patch 9.0.1214 +Problem: File left behind after running tests. +Solution: Delete the file. (Dominique Pellé, closes #11839) + +Patch 9.0.1215 +Problem: Using isalpha() adds dependency on current locale. +Solution: Do not use isalpha() for recognizing a URL or the end of an Ex + command. (closes #11835) + +Patch 9.0.1216 +Problem: Coverity warns for ignoring return value. +Solution: Break out of loop if function fails. + +Patch 9.0.1217 +Problem: Using an object member in a closure doesn't work. +Solution: Initialize lv_loop_depth. (closes #11840) + +Patch 9.0.1218 +Problem: Completion includes functions that don't work. +Solution: Skip functions that are not implemented. (Kota Kato, + closes #11845) + +Patch 9.0.1219 +Problem: Handling of FORTIFY_SOURCE flags doesn't match Fedora usage. +Solution: Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847) + +Patch 9.0.1220 +Problem: Termcap/terminfo entries do not indicate where modifiers might + appear. +Solution: Add ";*" for function keys where modifiers are likely to be used. + +Patch 9.0.1221 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11833) + +Patch 9.0.1222 +Problem: Terminal tests are flaky on MacOS. +Solution: Add TermWait() calls. (Yegappan Lakshmanan, closes #11852) + +Patch 9.0.1223 +Problem: Cannot use setcellwidths() below 0x100. +Solution: Also accept characters between 0x80 and 0x100. (Ken Takata, + closes #11834) + +Patch 9.0.1224 +Problem: Cannot call a :def function with a number for a float argument. +Solution: Accept a number as well, convert it to a float. + +Patch 9.0.1225 +Problem: Reading past the end of a line when formatting text. +Solution: Check for not going over the end of the line. + +Patch 9.0.1226 +Problem: Spurious empty line when using text properties and virtual text. +Solution: Do not set "text_prop_follows" when the other text property is not + virtual text. (closes #11846) + +Patch 9.0.1227 +Problem: No cmdline completion for :runtime. +Solution: Add completion for :runtime. (closes #11853, closes #11447) + Improve the resulting matches. + +Patch 9.0.1228 +Problem: Fuzzy menu completion is only tested in the GUI. +Solution: Make fuzzy menu completion test work without GUI. + (closes #11861) + +Patch 9.0.1229 +Problem: Cap'n Proto files are not recognized. +Solution: Add a pattern and the "capnp" filetype. (Amaan Qureshi, + closes #11862) + +Patch 9.0.1230 +Problem: Apache thrift files are not recognized. +Solution: Add a pattern for thrift files. (Amaan Qureshi, closes #11859) + +Patch 9.0.1231 +Problem: Completion of :runtime does not handle {where} argument. +Solution: Parse the {where} argument. (closes #11863) + +Patch 9.0.1232 +Problem: ColorTable saving and restoring does not work properly. +Solution: Restore ColorTable[16] usage. (Christopher Plewright, + closes #11836) + +Patch 9.0.1233 +Problem: search() loops forever if "skip" is TRUE for all matches. +Solution: Keep the position of the first match. + +Patch 9.0.1234 +Problem: The code style has to be checked manually. +Solution: Add basic code style checks in a test. Fix or avoid uncovered + problems. + +Patch 9.0.1235 +Problem: MS-Windows console: not flushing termguicolors. +Solution: Flush termguicolors. (Christopher Plewright, closes #11871) + +Patch 9.0.1236 +Problem: Code in same_leader() can be simplified. +Solution: Simplify code that is executed only once. (closes #11867) + +Patch 9.0.1237 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11858) + +Patch 9.0.1238 +Problem: :runtime completion can be further improved. +Solution: Also complete the {where} argument values and adjust the + completion for that. (closes #11874) + +Patch 9.0.1239 +Problem: Cannot have a line break before an object member access. +Solution: Check for "." in next line. (closes #11864) + +Patch 9.0.1240 +Problem: Cannot access a private object member in a lambda defined inside + the class. +Solution: Go up the context stack to find the class. (closes #11866) + +Patch 9.0.1241 +Problem: Coverity warns for not checking function return value. +Solution: Explicitly ignore the return value. + +Patch 9.0.1242 +Problem: Code for :runtime completion is not consistent. +Solution: Make code for cmdline expansion more consistent. (closes #11875) + +Patch 9.0.1243 +Problem: :setglobal cannot use script-local function for "expr" option. +Solution: Use the pointer to the option value properly. (closes #11883) + +Patch 9.0.1244 +Problem: Cursor briefly displayed in a wrong position when pressing Esc in + Insert mode after autoindent was used. +Solution: Do not adjust the cursor position for assumed deleted white space + if text is following. (closes #11877) + +Patch 9.0.1245 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11879) + +Patch 9.0.1246 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11887) + +Patch 9.0.1247 +Problem: Divide by zero with 'smoothscroll' set and a narrow window. +Solution: Bail out when the window is too narrow. + +Patch 9.0.1248 +Problem: Cannot export an interface. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :interface. (closes #11884) + +Patch 9.0.1249 +Problem: Cannot export an abstract class. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :abstract. (closes #11884) + +Patch 9.0.1250 +Problem: Cannot use an object method with :defer. (Ernie Rael) +Solution: Find the object method and generate code to call it. + (closes #11886) + +Patch 9.0.1251 +Problem: Checking returned value of ga_grow() is inconsistent. +Solution: Check for FAIL instead of "not OK". (Yegappan Lakshmanan, + closes #11897) + +Patch 9.0.1252 +Problem: MS-Windows: scrollback cropped off on Vim exit. +Solution: Don't call SetConsoleScreenBufferInfoEx when using the alternate + screen buffer. (Christopher Plewright, closes #11882) + +Patch 9.0.1253 +Problem: CI adds repository unnecessarily. +Solution: Remove the line from the workflow. (closes #11900) + +Patch 9.0.1254 +Problem: Calling a method on an interface does not work. +Solution: At runtime figure out what method to call. (closes #11901) + +Patch 9.0.1255 +Problem: Changing 'virtualedit' does not have immediate effect. +Solution: Correct how is checked for a changed value. (closes #11878) + +Patch 9.0.1256 +Problem: NetworkManager connection files are not recognized. +Solution: Add a pattern for NetworkManager connection files. (closes #11893) + +Patch 9.0.1257 +Problem: Code style is not check in test scripts. +Solution: Add basic code style check for test files. + +Patch 9.0.1258 +Problem: Code style test fails. +Solution: Adjust test files. + +Patch 9.0.1259 +Problem: Diffmode test fails. +Solution: Adjust expected result for adjusted indenting. + +Patch 9.0.1260 +Problem: Coverity warns for possible NULL pointer usage. +Solution: Change the condition. + +Patch 9.0.1261 +Problem: Elsa files are not recognized. +Solution: Add a pattern for Elsa files. (Amaan Qureshi, closes #11908) + +Patch 9.0.1262 +Problem: The did_set_string_option function is too long. +Solution: Split off functionality to individual functions. (Yegappan + Lakshmanan, Lewis Russell, closes #11904) + +Patch 9.0.1263 +Problem: KDL files are not recognized. +Solution: Add a pattern for KDL files. (Amaan Qureshi, closes #11898) + +Patch 9.0.1264 +Problem: Motif: compiler warning for unused argument. +Solution: Add "UNUSED". + +Patch 9.0.1265 +Problem: Using an interface method may give a compilation error. +Solution: Do not try to compile the body of a method of an interface. + (closes #11885) + +Patch 9.0.1266 +Problem: Error for space before ": type" is inconsistent. +Solution: Give E1059 in more places. (closes #11868) + +Patch 9.0.1267 +Problem: The did_set_string_option function is too long. +Solution: Further cleanup of handling string options. (Yegappan Lakshmanan, + Lewis Russell, closes #11920) + +Patch 9.0.1268 +Problem: .clangd and .stylelintrc files don't get a filetype. +Solution: Use yaml for .clangd and json for .stylelintrc files. (Mark + Skelton, closes #11916) + +Patch 9.0.1269 +Problem: Channel test often fails on Mac OS. +Solution: Increase the wait time from one to 15 milliseconds. (D. Ben + Knoble, closes #11894) + +Patch 9.0.1270 +Problem: Crash when using search stat in narrow screen. +Solution: Check length of message. (closes #11921) + +Patch 9.0.1271 +Problem: Using sizeof() and subtract array size is tricky. +Solution: Use offsetof() instead. (closes #11926) + +Patch 9.0.1272 +Problem: Typo in pattern for filetype detection. +Solution: Fix the typo. (closes #11924) + +Patch 9.0.1273 +Problem: "1v" may select block with wrong size. (Evgeni Chasnovski) +Solution: Compute "curswant" in the right line. (closes #11925) + +Patch 9.0.1274 +Problem: FIRRTL files are not recognized. +Solution: Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931) + +Patch 9.0.1275 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11932) + +Patch 9.0.1276 +Problem: Some mappings with Meta and Shift do not work. +Solution: Apply the Shift modifier to the key. (issue #11913) + +Patch 9.0.1277 +Problem: Cursor may move with autocmd in Visual mode. +Solution: Restore "VIsual_active" before calling check_cursor(). + (closes #11939) + +Patch 9.0.1278 +Problem: go.work.sum files are not recognized. +Solution: Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi, + closes #11940) + +Patch 9.0.1279 +Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) +Solution: Do not change "wl_lnum" at index zero. (closes #11938) + +Patch 9.0.1280 +Problem: Insufficient testing for what 9.0.1265 fixes. +Solution: Add a couple of test cases. (issue #11885) + +Patch 9.0.1281 +Problem: Cadence files are not recognized. +Solution: Recognize Cadence files. (Janez Podhostnik, closes #11951) + +Patch 9.0.1282 +Problem: Ron files are not recognized. +Solution: Recognize Ron files. (Amaan Qureshi, closes #11948) + +Patch 9.0.1283 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11945) + +Patch 9.0.1284 +Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck) +Solution: Add variable initializations. + +Patch 9.0.1285 +Problem: Various small problems. +Solution: Adjust white space and comments. + +Patch 9.0.1286 +Problem: Coverity warns for using a NULL pointer. +Solution: Bail out whan "varp" is NULL. + +Patch 9.0.1287 +Problem: With the Kitty key protocol Esc with NumLock cannot be mapped. +Solution: Also use K_ESC when there is a modifier. (closes #11811) + +Patch 9.0.1288 +Problem: FunC files are not recognized. +Solution: Recognize FunC files. (Amaan Qureshi, closes #11949) + +Patch 9.0.1289 +Problem: A newer version of clang can be used for CI. +Solution: Switch from clang-15 to clang-16. (closes #11577) + +Patch 9.0.1290 +Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged. +Solution: Jump to cmdline_changed instead of cmdline_not_changed. + (closes #11956) + +Patch 9.0.1291 +Problem: Move language files are not recognized. +Solution: Recognize Move language files. (Amaan Qureshi, closes #11947) + +Patch 9.0.1292 +Problem: :defer may call the wrong method for an object. (Ernie Rael) +Solution: When en object is from a class that extends or implements, figure + out the method to call at runtime. (closes #11910) + +Patch 9.0.1293 +Problem: The set_num_option() is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11954) + +Patch 9.0.1294 +Problem: The set_bool_option() function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11964) + +Patch 9.0.1295 +Problem: The option initialization function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11966) + +Patch 9.0.1296 +Problem: Calling an object method with arguments does not work. (Ernie + Rael) +Solution: Take the argument count into account when looking up the object. + (closes #11911) + +Patch 9.0.1297 +Problem: Wrong value for $LC_CTYPE makes the environ test fail. +Solution: Unset $LC_CTYPE when running tests. (closes #11963) + +Patch 9.0.1298 +Problem: Inserting a register on the command line does not trigger + incsearch or update hlsearch. +Solution: Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate + and handle it correctly. (Ken Takata, closes #11960) + +Patch 9.0.1299 +Problem: Change for triggering incsearch not sufficiently tested. +Solution: Add a test case. Simplify the code. (closes #11971) + +Patch 9.0.1300 +Problem: 'statusline' only supports one "%=" item. +Solution: Add support for multiple "%=" items. (TJ DeVries, Yegappan + Lakshmanan, closes #11970, closes #11965) + +Patch 9.0.1301 +Problem: Virtual text below empty line not displayed. +Solution: Adjust flags and computations. (closes #11959) + +Patch 9.0.1302 +Problem: On a Belgian keyboard CTRL-] does not work. +Solution: Translate CTRL-$ into CTRL-]. (closes #11831) + +Patch 9.0.1303 +Problem: Motif: scrollbar width/height wrong when maximized. +Solution: Set the width/height when creating the scrollbar. (closes #11946) + +Patch 9.0.1304 +Problem: "$" for 'list' option displayed in wrong position when there are + text properties. +Solution: Adjust logic for order of displayed items. (closes #11959) + +Patch 9.0.1305 +Problem: Cursor in wrong line with virtual text above. +Solution: Count extra line for text property above/below. (closes #11959) + +Patch 9.0.1306 +Problem: No regression test for solved problem of #11959. +Solution: Add a test, also with 'list' set. (closes #11959) + +Patch 9.0.1307 +Problem: Setting 'formatoptions' with :let doesn't check for errors. +Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan, + closes #11974, closes #11972) + +Patch 9.0.1308 +Problem: The code for setting options is too complicated. +Solution: Refactor the code for setting options. (Yegappan Lakshmanan, + closes #11989) + +Patch 9.0.1309 +Problem: Scrolling two lines with even line count and 'scrolloff' set. +Solution: Adjust how the topline is computed. (closes #10545) + +Patch 9.0.1310 +Problem: 'splitkeep' test has failures. +Solution: Adjust expected cursor line position. + +Patch 9.0.1311 +Problem: Coverity warns for using a NULL pointer. +Solution: Use "empty_option" instead of NULL. + +Patch 9.0.1312 +Problem: Cursor position wrong when splitting window in insert mode. +Solution: Pass the actual mode to win_fix_cursor(). (Luuk van Baal, + closes #11999, + +Patch 9.0.1313 +Problem: Some settings use the current codepage instead of 'encoding'. +Solution: Adjust how options are initialized. (Ken Takata, closes #11992) + +Patch 9.0.1314 +Problem: :messages behavior depends on 'fileformat' of current buffer. +Solution: Pass the buffer pointer to where it is used. (Mirko Ceroni, + closes #11995) + +Patch 9.0.1315 +Problem: Escaping for completion of map command not properly tested. +Solution: Add a few test cases. (closes #12009) + +Patch 9.0.1316 +Problem: MS-Windows: vimfiles dir created with admin group. +Solution: Use ShellExecAsUser to create the vimfiles directory. (Christopher + Plewright, Ken Takata, closes #12000, closes #11888) + +Patch 9.0.1317 +Problem: Crash when using an unset object variable. +Solution: Give an error instead. (closes #12005) + +Patch 9.0.1318 +Problem: Code style test fails. +Solution: Remove trailing white space. + +Patch 9.0.1319 +Problem: PRQL files are not recognized. +Solution: Add a filetype pattern for PRQL files. (Matthias Queitsch, + closes #12018) + +Patch 9.0.1320 +Problem: Checking the type of a null object causes a crash. +Solution: Don't try to get the class of a null object. (closes #12005) + Handle error from calling a user function better. + +Patch 9.0.1321 +Problem: vimscript test fails where using {expr} syntax. +Solution: Only return FCERR_FAILED in call_user_func() for Vim9 script. + +Patch 9.0.1322 +Problem: Crash when indexing "any" which is an object. +Solution: Check the index is a number. Do not check the member type of an + object. (closes #12019) + +Patch 9.0.1323 +Problem: Build failure with +eval feature. +Solution: Add missing part for using funcerror_T. + +Patch 9.0.1324 +Problem: "gj" and "gk" do not move correctly over a closed fold. +Solution: Use the same code as used for "j"/"k" to go to the next/previous + line. (Luuk van Baal, closes #12007) + +Patch 9.0.1325 +Problem: 'colorcolumn' highlight wrong with virtual text above. +Solution: Adjust column of 'colorcolumn' for text property. (closes #12004) + +Patch 9.0.1326 +Problem: Relative line number not updated with virtual text above. +Solution: Adjust the row for the line number for virtual text above. + (closes #12004) + +Patch 9.0.1327 +Problem: Cursor in wrong position below line with virtual text below ending + in multi-byte character. +Solution: When checking for last character take care of multi-byte + character. + +Patch 9.0.1328 +Problem: Error when using "none" for GUI color is confusing. +Solution: Mention that the name should perhaps be "NONE". (closes #1400) + +Patch 9.0.1329 +Problem: Completion of map includes simplified ones. +Solution: Do not complete simplified mappings. (closes #12013) + +Patch 9.0.1330 +Problem: Handling new value of an option has a long "else if" chain. +Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015) + +Patch 9.0.1331 +Problem: Illegal memory access when using :ball in Visual mode. +Solution: Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923) + +Patch 9.0.1332 +Problem: Crash when using buffer-local user command in cmdline window. + (Karl Yngve Lervåg) +Solution: Use the right buffer to find the user command. (closes #12030, + closes #12029) + +Patch 9.0.1333 +Problem: When redo'ing twice <ScriptCmd> may not get the script ID. +Solution: When "last_used_map" map is not set use "last_used_sid". + (closes #11930) + +Patch 9.0.1334 +Problem: Using tt_member for the class leads to mistakes. +Solution: Add a separate tt_class field. + +Patch 9.0.1335 +Problem: No test for bad use of spaces in help files. +Solution: Add checks for use of spaces in help files. Ignore intentional + spaces. (Hirohito Higashi, closes #11952) + +Patch 9.0.1336 +Problem: Functions without arguments are not always declared properly. +Solution: Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031) + +Patch 9.0.1337 +Problem: Yuck files are not recognized. +Solution: Add a filetype pattern for yuck files. (Amaan Qureshi, + closes #12033) + +Patch 9.0.1338 +Problem: :defcompile and :disassemble can't find class method. (Ernie Rael) +Solution: Make a class name and class.method name work. (closes #11984) + +Patch 9.0.1339 +Problem: No test for :disassemble with class function. +Solution: Add a test. + +Patch 9.0.1340 +Problem: Coverity warns for using NULL pointer. +Solution: Check that lhs_type is not NULL. + +Patch 9.0.1341 +Problem: Build error with mzscheme but without GUI. +Solution: Adjust #ifdefs. (Ken Takata, closes #12042) Also fix function + argument. + +Patch 9.0.1342 +Problem: MS-Windows: linking may fail with space in directory name. +Solution: Add quotes. (closes #12050) + +Patch 9.0.1343 +Problem: Check for OSC escape sequence doesn't work. +Solution: Move square bracket to the right place. (Johan Mattsson, + closes #12048) + +Patch 9.0.1344 +Problem: Check for OSC escape sequence doesn't work. +Solution: Fix typo in index. + +Patch 9.0.1345 +Problem: Too many "else if" statements for handling options. +Solution: Add more functions to handle options. (Yegappan Lakshmanan, + closes #12051) + +Patch 9.0.1346 +Problem: Starlark files are not recognized. +Solution: Add patterns for Starlark files. (Amaan Qureshi, closes #12049) + +Patch 9.0.1347 +Problem: "gr CTRL-O" stays in Insert mode. (Pierre Ganty) +Solution: Do not set restart_edit when "cmdchar" is 'v'. (closes #12045) + +Patch 9.0.1348 +Problem: Un-grammar files are not recognized. +Solution: Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034) + +Patch 9.0.1349 +Problem: "gr" with a count fails. +Solution: Break out of the loop only after using the count. + +Patch 9.0.1350 +Problem: CPON files are not recognized. +Solution: Add patterns for CPON files. (Amaan Qureshi, closes #12053) + +Patch 9.0.1351 +Problem: Dhall files are not recognized. +Solution: Add patterns for Dhall files. (Amaan Qureshi, closes #12052) + +Patch 9.0.1352 +Problem: "ignore" files are outdated. +Solution: Update "ignore" files. (Ken Takata, closes #12056) + +Patch 9.0.1353 +Problem: Too many "else if" statements to handle option values. +Solution: Add more functions to handle option value changes. (Yegappan + Lakshmanan, closes #12058) + +Patch 9.0.1354 +Problem: "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty) +Solution: Prepend CTRL-V before control characters. (closes #12045) + +Patch 9.0.1355 +Problem: No error when declaring a class twice. (Ernie Rael) +Solution: Pass different flags when declaring the class. (closes #12057) + +Patch 9.0.1356 +Problem: Cannot cancel "gr" with Esc. +Solution: Make "gr<Esc>" do nothing. (closes #12064) + +Patch 9.0.1357 +Problem: Using null_object results in an internal error. (Ernie Rael) +Solution: Add instructions for pushing an object and class. (closes #12044) + +Patch 9.0.1358 +Problem: Compilation error with some compilers. +Solution: Avoid using "class" as member name. + +Patch 9.0.1359 +Problem: Too many "else if" statements in handling options. +Solution: Add more functions for handling option changes. (Yegappan + Lakshmanan, closes #12060) + +Patch 9.0.1360 +Problem: Cue files are not recognized. +Solution: Add patterns for Cue files. (Amaan Qureshi, closes #12067) + +Patch 9.0.1361 +Problem: extendnew() not sufficiently tested. +Solution: Add a few more test cases for extendnew(). (closes #12075) + +Patch 9.0.1362 +Problem: ml_get error when going to another tab. (Daniel J. Perry) +Solution: Do not call update_topline() if "curwin" is invalid. + (closes #11907) + +Patch 9.0.1363 +Problem: Crash when :def function has :break in skipped block. (Ernie Rael) +Solution: Don't generate a jump for a skipped :break. (closes #12077) + +Patch 9.0.1364 +Problem: Build error with older Mac OS. +Solution: Adjust #ifdef. (Yee Cheng Chin, closes #12074) + +Patch 9.0.1365 +Problem: Dead test code. +Solution: Remove code that depends on Farsi, which has been removed. + (closes #12084) + +Patch 9.0.1366 +Problem: Functions for setting options are in random order. +Solution: Sort functions alphabetically. (Yegappan Lakshmanan, + closes #12082) + +Patch 9.0.1367 +Problem: Divide by zero in zero-width window. +Solution: Check the width is positive. + +Patch 9.0.1368 +Problem: Bass files are not recognized. +Solution: Add patterns for Bass files. (Amaan Qureshi, closes #12088) + +Patch 9.0.1369 +Problem: Still some "else if" constructs for setting options. +Solution: Add a few more functions for handling options. (Yegappan + Lakshmanan, closes #12090) + +Patch 9.0.1370 +Problem: Crash when using a NULL object. (Ernie Rael) +Solution: Check for NULL and give an error message. (closes #12083) + +Patch 9.0.1371 +Problem: Ballooneval interferes with Insert completion. +Solution: Ignore mouse-move events when completing. (closes #12094, + closes #12092) + +Patch 9.0.1372 +Problem: Test for 'toolbariconsize' may fail. +Solution: Only test 'toolbariconsize' when it is supported. (James McCoy, + closes #12095) + +Patch 9.0.1373 +Problem: Wrong text displayed when using both 'linebreak' and 'list'. +Solution: Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito + Higashi, closes #12065) + +Patch 9.0.1374 +Problem: Function for setting options not used consistently. +Solution: Use a function for 'encoding' and terminal options. (Yegappan + Lakshmanan, closes #12099) + +Patch 9.0.1375 +Problem: Crash when getting member of obj of unknown class. +Solution: Check for NULL class and give an error message. (Ernie Rael, + closes #12096) + +Patch 9.0.1376 +Problem: Accessing invalid memory with put in Visual block mode. +Solution: Adjust the cursor column if needed. + +Patch 9.0.1377 +Problem: job_status() may return "dead" if the process parent changed. +Solution: Call mch_process_running() to check if the job is still alive. + +Patch 9.0.1378 +Problem: Illegal memory access when using virtual editing. +Solution: Make sure "startspaces" is not negative. + +Patch 9.0.1379 +Problem: Functions for handling options are not ordered. +Solution: Put functions in alphabetical order. (Yegappan Lakshmanan, + closes #12101) + +Patch 9.0.1380 +Problem: CTRL-X on 2**64 subtracts two. (James McCoy) +Solution: Correct computation for large number. (closes #12103) + +Patch 9.0.1381 +Problem: ACCESS_ names have a conflict with on some systems. +Solution: Rename by prepending VIM_. (Ola Söder, closes #12105) + +Patch 9.0.1382 +Problem: Failing test for strptime() doesn't show returned value. +Solution: Use assert_equal() instead of assert_true(). + +Patch 9.0.1383 +Problem: xxd: combination of little endian and cols fails. (Aapo + Rantalainen) +Solution: Round up the space taken by the hex output. (closes #12097) + +Patch 9.0.1384 +Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew + version 4. +Solution: Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008) + +Patch 9.0.1385 +Problem: g'Esc is considered an error. +Solution: Make g'Esc silently abandon the command. (closes #12110) + +Patch 9.0.1386 +Problem: Options test fails with some window width. +Solution: Adjust what text the test checks with. (closes #12111) + +Patch 9.0.1387 +Problem: Scrollbar test sporadically fails. +Solution: Mark the scrollbar test as flaky. (Christian Brabandt, + closes #12113) + +Patch 9.0.1388 +Problem: Amiga: not all builds use gethostname(). +Solution: Use gethostname() for all builds except AROS. (Ola Söder, + closes #12107) + +Patch 9.0.1389 +Problem: Amiga: a couple of include files are included twice. +Solution: Remove duplicate includes. (Ola Söder, closes #12106) + +Patch 9.0.1390 +Problem: FOR_ALL_ macros are defined in an unexpected file. +Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS. + (Yegappan Lakshmanan, closes #12109) + +Patch 9.0.1391 +Problem: "clear" macros are not always used. +Solution: Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more + places. (Yegappan Lakshmanan, closes #12104) + +Patch 9.0.1392 +Problem: Using NULL pointer with nested :open command. +Solution: Check that ccline.cmdbuff is not NULL. + +Patch 9.0.1393 +Problem: Cairo files are not recognized. +Solution: Add a pattern for Cairo files. (Amaan Qureshi, closes #12118) + +Patch 9.0.1394 +Problem: Unx Tal files are not recognized. +Solution: Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117) + +Patch 9.0.1395 +Problem: Odin files are not recognized. +Solution: Add a pattern for Odin files. (Amaan Qureshi, closes #12122) + +Patch 9.0.1396 +Problem: sort(list, 'N') does not work in Vim9 script context. +Solution: Convert string to number without giving an error. (closes #12061) + +Patch 9.0.1397 +Problem: Highlight for popupmenu kind and extra cannot be set. +Solution: Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel + highlight groups and use them. (Gianmaria Bajo, closes #12114) + +Patch 9.0.1398 +Problem: Profile test repeats the headers many times. +Solution: Put the headers in script variables. + +Patch 9.0.1399 +Problem: Highlight test script has a few problems. +Solution: Rewrite the script in Vim9 syntax. (closes #10379) + +Patch 9.0.1400 +Problem: find_file_in_path() is not reentrant. +Solution: Instead of global variables pass pointers to the functions. + (closes #12093) + +Patch 9.0.1401 +Problem: Condition is always true. +Solution: Remove the condition. (closes #12139) + +Patch 9.0.1402 +Problem: Crash when using null_class. +Solution: Give an error when trying to use a null class. + +Patch 9.0.1403 +Problem: Unused variables and functions. +Solution: Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145) + +Patch 9.0.1404 +Problem: Compilation error with some compilers. +Solution: Adjust array initialization. (John Marriott) + +Patch 9.0.1405 +Problem: Missing check for out-of-memory. +Solution: Check for alloc() returning NULL pointer. (closes #12149) + +Patch 9.0.1406 +Problem: ILE RPG files are not recognized. +Solution: Add patterns for ILE RPG files. (Andreas Louv, issue #12152) + +Patch 9.0.1407 +Problem: TableGen files are not recognized. +Solution: Add a pattern for TableGen files. (Amaan Qureshi, closes #12156) + +Patch 9.0.1408 +Problem: QMLdir files are not recognized. +Solution: Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161) + +Patch 9.0.1409 +Problem: Racket files are recognized as scheme. +Solution: Recognize rackets files separately. (Gabriel Kakizaki, + closes #12164, closes #12162) + +Patch 9.0.1410 +Problem: MacOS: sed fails on .po files. +Solution: Set $LANG to "C". (Yee Cheng Chin, closes #12153) + +Patch 9.0.1411 +Problem: Accuracy of profiling is not optimal. +Solution: Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129) + +Patch 9.0.1412 +Problem: Pony files are not recognized. +Solution: Add a pattern for Pony files. (Amaan Qureshi, closes #12155) + +Patch 9.0.1413 +Problem: Compiler warning for unused variable. +Solution: Move variable declaration. (John Marriott) + +Patch 9.0.1414 +Problem: <M-S-x> in Kitty does not use the Shift modifier. +Solution: Apply the Shift modifier to ASCII letters. (closes #11913) + +Patch 9.0.1415 +Problem: Crystal files are not recognized. +Solution: Add a pattern for Crystal files. (Amaan Qureshi, closes #12175) + +Patch 9.0.1416 +Problem: Crash when collection is modified when using filter(). +Solution: Lock the list/dict/blob. (Ernie Rael, closes #12183) + +Patch 9.0.1417 +Problem: ESDL files are not recognized. +Solution: Add a pattern for ESDL files. (Amaan Qureshi, closes #12174) + +Patch 9.0.1418 +Problem: The included xdiff code is a bit outdated. +Solution: Sync with the latest git xdiff code. (Yee Cheng Chin, + closes #12181) + +Patch 9.0.1419 +Problem: Lean files are not recognized. +Solution: Add a pattern for Lean files. (Amaan Qureshi, closes #12177) + +Patch 9.0.1420 +Problem: Build failure because SIZE_MAX is not defined. +Solution: Define SIZE_MAX when missing. (John Marriott) + +Patch 9.0.1421 +Problem: Nu files are not recognized. +Solution: Add a pattern for Nu files. (Amaan Qureshi, closes #12172) + +Patch 9.0.1422 +Problem: Sage files are not recognized. +Solution: Add a pattern for Sage files. (Amaan Qureshi, closes #12176) + +Patch 9.0.1423 +Problem: WebAssembly Interface Type files are not recognized. +Solution: Add a pattern for WIT files. (Amaan Qureshi, closes #12173) + +Patch 9.0.1424 +Problem: Unused macros are defined. +Solution: Remove the unused macros. + +Patch 9.0.1425 +Problem: "wat" and "wast" files are one filetype. +Solution: Add a separate filetype for "wat" files. (Amaan Qureshi, + closes #12165) + +Patch 9.0.1426 +Problem: Indent wrong after "export namespace" in C++. +Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, + closes #12134, closes #12133) + +Patch 9.0.1427 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.1428 +Problem: Cursor in wrong position when leaving insert mode. +Solution: Update the w_valid flags. Position the cursor also when not + redrawing. (closes #12137) + +Patch 9.0.1429 +Problem: Invalid memory access when ending insert mode. +Solution: Check if the insert_skip value is valid. + +Patch 9.0.1430 +Problem: Livebook files are not recognized. +Solution: Add a pattern for Livebook files. (Mathias Jean Johansen, + closes #12203) + +Patch 9.0.1431 +Problem: getscriptinfo() loops even when specific SID is given. +Solution: Only loop when needed. Give a clearer error message. + (closes #12207) + +Patch 9.0.1432 +Problem: Completion popup in wrong position with virtual text "above". +Solution: Adjust the column. (closes #12210) + +Patch 9.0.1433 +Problem: On some systems the Lua library is not found. +Solution: Check if a subdirectory for Lua exists. (closes #4475) + +Patch 9.0.1434 +Problem: Crash when adding package already in 'runtimepath'. +Solution: Change order for using 'runtimepath' entries. (closes #12215) + +Patch 9.0.1435 +Problem: Scrolling too many lines when 'wrap' and 'diff' are set. +Solution: Only scroll by screenlines for 'diff' when 'wrap' is not set. + (closes #12211) + +Patch 9.0.1436 +Problem: Cannot compare a typed variable with v:none. +Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194) + +Patch 9.0.1437 +Problem: Test fails with different error number. +Solution: Adjust the expected error. + +Patch 9.0.1438 +Problem: .fs files are falsely recognized as forth files. +Solution: Check 100 lines for something that looks like forth. (Johan + Kotlinski, closes #12219, closes #11988) + +Patch 9.0.1439 +Problem: Start Insert mode when accessing a hidden prompt buffer. +Solution: Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst, + closes #12148, closes #12147) + +Patch 9.0.1440 +Problem: "rvim" can execute a shell through :diffpatch. +Solution: Disallow the shell "patch" command. + +Patch 9.0.1441 +Problem: MacOS: Python 3 using framework do not set dll name properly. +Solution: Use the framework prefix. (Yee Cheng Chin, closes #12189) + +Patch 9.0.1442 +Problem: mapset() does not restore non-script context. +Solution: Also accept negative sid. (closes #12132) + +Patch 9.0.1443 +Problem: Ending Insert mode when accessing a hidden prompt buffer. +Solution: Don't stop Insert mode when it was active before. (closes #12237) + +Patch 9.0.1444 +Problem: Crash when passing NULL to setcmdline(). (Andreas Louv) +Solution: Use tv_get_string() instead of using v_string directly. + (closes #12231, closes #12227) + +Patch 9.0.1445 +Problem: openSUSE: configure doesn't find the Motif library. (Tony + Mechelynck) +Solution: Also search in /usr/lib64. + +Patch 9.0.1446 +Problem: Unnecessary checks for the "skip" flag when skipping. +Solution: Remove the unnecessary checks. (closes #12254) + +Patch 9.0.1447 +Problem: Condition is always true. +Solution: Remove the useless condition. (closes #12253) + +Patch 9.0.1448 +Problem: Diff test fails on MacOS 13. +Solution: Install GNU diffutils. (Ozaki Kiichi, closes #12258) + +Patch 9.0.1449 +Problem: Test for prompt buffer is flaky. +Solution: Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi, + closes #12247) + +Patch 9.0.1450 +Problem: MacOS: building fails if clock_gettime() is not available. +Solution: Add a configure check for clock_gettime(). (closes #12242) + +Patch 9.0.1451 +Problem: Unnecessary redrawing when 'showcmdloc' is not "last". +Solution: Redraw later when "showcmd_is_clear" is set. (Luuk van Baal, + closes #12260) + +Patch 9.0.1452 +Problem: Code using EVAL_CONSTANT is dead, it is never set. +Solution: Remove EVAL_CONSTANT. (closes #12252) + +Patch 9.0.1453 +Problem: Typos in source code and tests. +Solution: Fix the typos. (Dominique Pellé, closes #12217) + +Patch 9.0.1454 +Problem: Code indenting is confused by macros. +Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi, + closes #12257) + +Patch 9.0.1455 +Problem: C++ 20 modules are not recognized. +Solution: Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson, + closes #12261) + +Patch 9.0.1456 +Problem: Shortmess test depends on order of test execution. +Solution: Clear messages. (closes #12264) + +Patch 9.0.1457 +Problem: No regression test for what patch 9.0.1333 fixes. +Solution: Extend existing test to cover the fixed problem. (issue #11930) + +Patch 9.0.1458 +Problem: Buffer overflow when expanding long file name. +Solution: Use a larger buffer and avoid overflowing it. (Yee Cheng Chin, + closes #12201) + +Patch 9.0.1459 +Problem: Typo in name of type. +Solution: Change funccal_T to funccall_T. (closes #12265) + +Patch 9.0.1460 +Problem: Insufficient testing for getcmdcompltype(). +Solution: Add a few more test cases. (closes #12268) + +Patch 9.0.1461 +Problem: Ruler not drawn correctly when using 'rulerformat'. +Solution: Adjust formatting depending on whether the ruler is drawn in the + statusline or the command line. (Sean Dewar, closes #12246) + +Patch 9.0.1462 +Problem: Recursively calling :defer function if it does :qa. +Solution: Clear the defer entry before calling the function. (closes #12266) + +Patch 9.0.1463 +Problem: Virtual text truncation only works with Unicode 'encoding'. +Solution: Convert the ellipsis character to 'encoding' if needed. (Hirohito + Higashi, closes #12233) + +Patch 9.0.1464 +Problem: Strace filetype detection is expensive. +Solution: Match with a cheap pattern first. (Federico Mengozzi, + closes #12220) + +Patch 9.0.1465 +Problem: Haiku build fails. +Solution: Do not include globals.h and proto.h twice. (Ozaki Kiichi, + closes #12273) + +Patch 9.0.1466 +Problem: Cannot use an object member name as a method argument. +Solution: Do not give an error for using an object member name for a method + argument. (Hirohito Higashi, closes #12241, closes #12225) + Fix line number for other argument error. + +Patch 9.0.1467 +Problem: Jenkinsfiles are not recognized as groovy. +Solution: Add a pattern for Jenkinsfiles. (closes #12236) + +Patch 9.0.1468 +Problem: Recursively calling :defer function if it does :qa in a compiled + function. +Solution: Clear the defer entry before calling the function. (closes #12271) + +Patch 9.0.1469 +Problem: Deferred functions not called from autocommands. +Solution: Also go through the funccal_stack. (closes #12267) + +Patch 9.0.1470 +Problem: Deferred functions invoked in unexpected order when using :qa and + autocommands. +Solution: Call deferred functions for the current funccal before using the + stack. (closes #12278) + +Patch 9.0.1471 +Problem: Warnings for function declarations. +Solution: Add argument types. (Michael Jarvis, closes #12277) + +Patch 9.0.1472 +Problem: ":drop fname" may change the last used tab page. +Solution: Restore the last used tab page when :drop has changed it. + (closes #12087) + +Patch 9.0.1473 +Problem: CI does not run sound tests. +Solution: Re-enable sound tests. Use "apt-get" instead of "apt". (Ozaki + Kiichi, closes #12280) + +Patch 9.0.1474 +Problem: CI runs with old version of Ubuntu and tools. +Solution: Update CI to more recent versions. (closes #11092) + +Patch 9.0.1475 +Problem: Busted configuration files are not recognized. +Solution: Recognize busted configuration files as Lua. (Craig MacEachern, + closes #12209) + +Patch 9.0.1476 +Problem: Lines put in non-current window are not displayed. (Marius + Gedminas) +Solution: Don't increment the topline when inserting just above it. + (closes #12212) + +Patch 9.0.1477 +Problem: Crash when recovering from corrupted swap file. +Solution: Check for a valid page count. (closes #12275) + +Patch 9.0.1478 +Problem: Filetypes for *.v files not detected properly. +Solution: Use the file contents to detect the filetype. (Turiiya, + closes #12281) + +Patch 9.0.1479 +Problem: Small source file problems; outdated list of distributed files. +Solution: Small updates to source files and list of distributed files. + +Patch 9.0.1480 +Problem: Using popup menu may leave text in the command line. +Solution: Clear the command line if the popup menu covered it. (Luuk van + Baal, closes #12286) + +Patch 9.0.1481 +Problem: Decrypting with libsodium may fail if the library changes. +Solution: Add parameters used to the encrypted file header. (Christian + Brabandt, closes #12279) + +Patch 9.0.1482 +Problem: Crash when textprop has a very large "padding" value. (Yegappan + Lakshmanan) +Solution: Avoid the "after" count to go negative. + +Patch 9.0.1483 +Problem: += operator does not work on class member. +Solution: Do not skip as if "this." was used. (Christian Brabandt, + closes #12263) + +Patch 9.0.1484 +Problem: Coverity warns for using invalid array index. +Solution: Add entry for Xchacha, even though it is not used. + +Patch 9.0.1485 +Problem: no functions for converting from/to UTF-16 index. +Solution: Add UTF-16 flag to existing functions and add strutf16len() and + utf16idx(). (Yegappan Lakshmanan, closes #12216) + +Patch 9.0.1486 +Problem: Parallel make might not work. +Solution: Add missing dependencies. (Samuel Dionne-Riel, closes #12288) + +Patch 9.0.1487 +Problem: Content-type header for LSP channel not according to spec. +Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan + Lakshmanan, closes #12295) + +Patch 9.0.1488 +Problem: xchacha20v2 crypt header is platform dependent. +Solution: Avoid using "size_t". (Ozaki Kiichi, closes #12296) + +Patch 9.0.1489 +Problem: Crypt with libsodium is not tested on CI. +Solution: Configure testing with libsodium. (Ozaki Kiichi, closes #12297) + +Patch 9.0.1490 +Problem: The ModeChanged event may be triggered too often. +Solution: Only trigger ModeChanged when no operator is pending. + (closes #12298) + +Patch 9.0.1491 +Problem: Wrong scrolling with ls=0 and :botright split. +Solution: Add statusline before calling frame_new_height(). (closes #12299) + +Patch 9.0.1492 +Problem: Using uninitialized memory when argument is missing. +Solution: Check there are sufficient arguments before the base. + (closes #12302) + +Patch 9.0.1493 +Problem: Popup menu position wrong in window with toolbar. +Solution: Take the window toolbar into account when positioning the popup + menu. (closes #12308) + +Patch 9.0.1494 +Problem: Crash when recovering from corrupted swap file. +Solution: Bail out when the line index looks wrong. (closes #12276) + +Patch 9.0.1495 +Problem: GTK3: hiding the mouse pointer does not work. (Rory O’Kane) +Solution: Set alpha level to zero. (Kenny Stauffer, closes #12293, + closes #3256) + +Patch 9.0.1496 +Problem: Test restoring register with wrong value. +Solution: Correct name of variable. (closes #12310) + +Patch 9.0.1497 +Problem: The ruler percentage can't be localized. +Solution: Use a string that can be translated. (Emir Sari, closes #12311) + +Patch 9.0.1498 +Problem: In a terminal window the cursor may jump around. (Kenny Stauffer) +Solution: Do not move the cursor to the position for terminal-normal mode. + (closes #12312) + +Patch 9.0.1499 +Problem: Using uninitialized memory with fuzzy matching. +Solution: Initialize the arrays used to store match positions. + +Patch 9.0.1500 +Problem: The falsy operator is not tested properly. +Solution: Add a few more test cases. (closes #12319) + +Patch 9.0.1501 +Problem: Crash with nested :try and :throw in catch block. +Solution: Jump to :endtry before returning from function. (closes #12245) + +Patch 9.0.1502 +Problem: No test for deleting the end of a long wrapped line. +Solution: Add a test to check the right text is displayed. (Luuk van Baal, + closes #12318) + +Patch 9.0.1503 +Problem: Luau files are not recognized. +Solution: Add a patter for Luau files. (Amaan Qureshi, closes #12317) + +Patch 9.0.1504 +Problem: No error when calling remote_startserver() with an empty string. +Solution: Give an error for an empty string. (Hirohito Higashi, + closes #12327) + +Patch 9.0.1505 +Problem: Error when heredoc content looks like heredoc. +Solution: Handle curly expressions. (closes #12325) + +Patch 9.0.1506 +Problem: Line number not displayed when using 'smoothscroll'. +Solution: Adjust condition for showing the line number. (closes #12333) + +Patch 9.0.1507 +Problem: Assert message is confusing with boolean result. assert_inrange() + replaces message instead of adding it. +Solution: Don't put quotes around expected boolean value. Append message + for assert_inrange(). (closes #12342, closes #12341) + +Patch 9.0.1508 +Problem: Catch does not work when lines are joined with a newline. +Solution: Set "nextcmd" appropriately. (closes #12348) + +Patch 9.0.1509 +Problem: Error message lacks mentioning the erroneous argument. +Solution: Specify the argument that the error is for. + +Patch 9.0.1510 +Problem: Misleading variable name for error message. +Solution: Change "name" to "number". (closes #12345) + +Patch 9.0.1511 +Problem: Crash when using wrong arg types to assert_match(). +Solution: Check for NULL pointer. (closes #12349) + +Patch 9.0.1512 +Problem: Inserting lines when scrolling with 'smoothscroll' set. +Solution: Adjust line height computation for w_skipcol. (Luuk van Baal, + closes #12350) + +Patch 9.0.1513 +Problem: Text scrolls unnecessarily when splitting and 'splitkeep' is not + "cursor". +Solution: Avoid resetting w_skipcol. (Luuk van Baal, closes #12334) + +Patch 9.0.1514 +Problem: Test waits unnecessarily long before checking screendump. +Solution: Remove TermWait() call. + +Patch 9.0.1515 +Problem: reverse() does not work for a String. +Solution: Implement reverse() for a String. (Yegappan Lakshmanan, + closes #12179) + +Patch 9.0.1516 +Problem: Cannot use special keys in <Cmd> mapping. +Solution: Do allow for special keys in <Cmd> and <ScriptCmd> mappings. + (closes #12326) + +Patch 9.0.1517 +Problem: MacOS: configure removes -O2 from $CFLAGS. +Solution: Only adjust $CFLAGS for gcc. (closes #12351) + +Patch 9.0.1518 +Problem: Search stats not always visible when searching backwards. +Solution: Do not display the top/bot message on top of the search stats. + (Christian Brabandt, closes #12322, closes #12222) + +Patch 9.0.1519 +Problem: Global 'filetype' is set when it is detected from the file content. +Solution: Set the local 'filetype' option value. + +Patch 9.0.1520 +Problem: Completion for option name includes all bool options. +Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when + appropriate. + +Patch 9.0.1521 +Problem: Failing redo of command with control characters. +Solution: Use AppendToRedobuffLit() for colon commands. (closes #12354) + +Patch 9.0.1522 +Problem: Some functions give two error messages. +Solution: Do not give a second error message. (closes #12352) + +Patch 9.0.1523 +Problem: Some error messages are not marked for translation. +Solution: Surround the messages in _(). (closes #12356) + +Patch 9.0.1524 +Problem: Passing -1 for bool is not always rejected. +Solution: Check for error in a better way. (closes #12358) + +Patch 9.0.1525 +Problem: 'smoothscroll' does not always work properly. +Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van + Baal, closes #12360, closes #12199, closes #12323) + +Patch 9.0.1526 +Problem: Condition is always true. +Solution: Remove unnecessary condition. (closes #12359) + +Patch 9.0.1527 +Problem: Crash when using negative value for term_cols. +Solution: Check for invalid term_cols value. (Kenta Sato, closes #12362) + +Patch 9.0.1528 +Problem: Libsodium encryption is only used with "huge" features, even when + manually enabled through configure. (Tony Mechelynck) +Solution: Remove the condition on FEAT_HUGE. + +Patch 9.0.1529 +Problem: Code style test doesn't check for space after "if". +Solution: Add a test for space. + +Patch 9.0.1530 +Problem: Cursor moves to wrong line when 'foldmethod' is "diff". (Rick + Howe) +Solution: Adjust logic for scrolling. (Luuk van Baal, closes #12364, + closes #12218) + +Patch 9.0.1531 +Problem: Crash when register contents ends up being invalid. +Solution: Check "y_array" is not NULL. + +Patch 9.0.1532 +Problem: Crash when expanding "~" in substitute causes very long text. +Solution: Limit the text length to MAXCOL. + +Patch 9.0.1533 +Problem: Test for 'smoothscroll' is ineffective. +Solution: Change the order of testing "zb" and "zt". (Luuk van Baal, + closes #12366) + +Patch 9.0.1534 +Problem: Test for expanding "~" in substitute takes too long. +Solution: Disable the test for now. + +Patch 9.0.1535 +Problem: Test commented out in a wrong way. +Solution: Use legacy script comment character. + +Patch 9.0.1536 +Problem: CI: sound dummy stopped working. +Solution: Temporarily stop using sound dummy. + +Patch 9.0.1537 +Problem: Message for opening the cmdline window is not translated. +Solution: Add gettext() and scan the defaults script for text to be + translated. (closes #12371) + +Patch 9.0.1538 +Problem: :wqall does not trigger ExitPre. (Bart Libert) +Solution: Move preparations for :qall to a common function. (closes #12374) + +Patch 9.0.1539 +Problem: Typst filetype is not recognized. +Solution: Distinguish between sql and typst. (Gaetan Lepage, closes #12363) + +Patch 9.0.1540 +Problem: reverse() on string doesn't work in compiled function. +Solution: Accept string in argument type check. (Yegappan Lakshmanan, + closes #12377) + +Patch 9.0.1541 +Problem: CI: sound dummy is disabled. +Solution: Make sound dummy work again. (closes #12380) + +Patch 9.0.1542 +Problem: Line not fully displayed if it doesn't fit in the screen. +Solution: Do not reset s_skipcol if not needed. (Luuk van Baal, + closes #12376) + +Patch 9.0.1543 +Problem: Display errors when making topline shorter and 'smoothscroll' is + set. +Solution: Reset w_skipcol when the topline becomes shorter than its current + value. (Luuk van Baal, closes #12367) + +Patch 9.0.1544 +Problem: Recent glibc marks sigset() as a deprecated. +Solution: Use sigaction() in mch_signal() if possible. (Ozaki Kiichi, + closes #12373) + +Patch 9.0.1545 +Problem: Text not scrolled when cursor moved with "g0" and "h". +Solution: Adjust w_skipcol when needed. (Luuk van Baal, closes #12387) + +Patch 9.0.1546 +Problem: Some commands for opening a file don't use 'switchbuf'. +Solution: Use 'switchbuf' for more commands. (Yegappan Lakshmanan, + closes #12383, closes #12381) + +Patch 9.0.1547 +Problem: Coveralls workflow on CI is commented out. +Solution: Remove the Coveralls workflow. (closes #12389) + +Patch 9.0.1548 +Problem: CI: check in sound-dummy module may throw an error. +Solution: Check whether apt-cache can show the package description. + (Christian Brabandt, closes #12390) + +Patch 9.0.1549 +Problem: USD filetype is not recognized. +Solution: Add patterns for USD filetype. (Colin Kennedy, closes #12370) + +Patch 9.0.1550 +Problem: In cmdline window S-Tab does not select previous completion. + (Maxim Kim) +Solution: Add a mapping for S-Tab. (closes #12116) + +Patch 9.0.1551 +Problem: Position of marker for 'smoothscroll' not computed correctly. +Solution: Take 'list' and other options into account. (Luuk van Baal, + closes #12393) + +Patch 9.0.1552 +Problem: CI: sound-dummy module is not installed. +Solution: Invert using the result of the condition. (closes #12394) + +Patch 9.0.1553 +Problem: CI: using slightly outdated gcc version. +Solution: Use "brew" to get a more recent gcc version. (closes #12391) + +Patch 9.0.1554 +Problem: Code for handling 'switchbuf' is repeated. +Solution: Add a function to handle 'switchbuf'. (Yegappan Lakshmanan, + closes #12397) + +Patch 9.0.1555 +Problem: setcharsearch() does not clear last searched char properly. +Solution: Do not accept lastc_bytelen smaller than one. (closes #12398) + +Patch 9.0.1556 +Problem: Vim9: error for missing "return" after "throw". +Solution: Set had_return flag for "throw". (closes #12262) + +Patch 9.0.1557 +Problem: Test failures for unreachable code. +Solution: Add a test override to ignore unreachable code. + +Patch 9.0.1558 +Problem: Wrong error for unreachable code after :throw. +Solution: Adjust the error message. + +Patch 9.0.1559 +Problem: Function argument types not always checked and using v:none may + cause an error. +Solution: Check argument types once the function type is known. Do not give + an error for using v:none as an argument. (closes #12200) + +Patch 9.0.1560 +Problem: Win32: When 'encoding' is set $PATH has duplicate entries. +Solution: Only append the directory if it is not there yet. (Ken Takata, + closes #12400, closes #12372) + +Patch 9.0.1561 +Problem: Display wrong when moving cursor to above the top line and + 'smoothscroll' is set. +Solution: Call adjust_skipcol() in more places and make it work better. + (Luuk van Baal, closes #12395) + +Patch 9.0.1562 +Problem: Mixing package managers is not a good idea. +Solution: Install gcc 13 with apt-get. (closes #12405) + +Patch 9.0.1563 +Problem: GTK3: window manager resize hints are incomplete. +Solution: Use NULL for second argument of gtk_window_set_geometry_hints(). + (Kenny Stauffer closes #11055) + +Patch 9.0.1564 +Problem: Display moves up and down with 'incsearch' and 'smoothscroll'. +Solution: Do not check if w_skipcol changed. (Luuk van Baal, closes #12410, + closes #12409) + +Patch 9.0.1565 +Problem: Json lines files are not recognized. +Solution: Add a pattern to detect "jsonl" files. (issue #7520) + +Patch 9.0.1566 +Problem: Motif: GUI scrollbar test fails in 24 lines terminal. +Solution: Skip the part of the test that fails for now. + +Patch 9.0.1567 +Problem: Profiler calculation may be wrong on 32 bit builds. +Solution: Use 64 bit variable if possible. (Isao Sato, closes #12412) + +Patch 9.0.1568 +Problem: With 'smoothscroll' cursor may move below botline. +Solution: Call redraw_later() if needed, Compute cursor row with adjusted + condition. (Luuk van Baal, closes #12415) + +Patch 9.0.1569 +Problem: Cannot use "this.member" in lambda in class method. +Solution: Adjust check for reserved keyword. (Hirohito Higashi, + closes #12416, closes #12076, closes #12336) + +Patch 9.0.1570 +Problem: Some tests are slow. +Solution: Make a few test cases faster. + +Patch 9.0.1571 +Problem: RedrawingDisabled not used consistently. +Solution: Avoid RedrawingDisabled going negative. Set RedrawingDisabled in + win_split_ins(). (closes #11961) + +Patch 9.0.1572 +Problem: Error messages are not translated. +Solution: Add _(). + +Patch 9.0.1573 +Problem: Error for function name has wrong line number. +Solution: Set the line number before giving the error. + +Patch 9.0.1574 +Problem: MS-Windows: list of translation input files incomplete. +Solution: Move the list of files to a common file. (closes #12426) + +Patch 9.0.1575 +Problem: "file N of M" message is not translated. +Solution: Make argument count message translatable. (close #12429) + +Patch 9.0.1576 +Problem: Users may not know what to do with an internal error. +Solution: Add a translated message with instructions. + +Patch 9.0.1577 +Problem: MS-Windows: context menu translations may be wrong. +Solution: Set the encoding before using gettext(). (Ken Takata, + closes #12441, closes #12431) + +Patch 9.0.1578 +Problem: SpellCap highlight not always updated when needed. +Solution: Handle updating line below closed fold and other situations where + only part of the window is redrawn. (Luuk van Baal, closes #12428, + closes #12420) + +Patch 9.0.1579 +Problem: Some error messages are not translated. +Solution: Add the N_() marker on messages. (closes #12427) + +Patch 9.0.1580 +Problem: CI: indent test hangs on FreeBSD. +Solution: Set 'nomore' when running the indent tests. (Ozaki Kiichi, + closes #12446) + +Patch 9.0.1581 +Problem: Translation does not work for plural argument. +Solution: Use PLURAL_MSG() for errors and with xgettext. (closes #12443) + +Patch 9.0.1582 +Problem: :stopinsert may not work in a popup close handler. (Ben Jackson) +Solution: Restore stop_insert_mode when appropriate. (closes #12452, + closes #12434) + +Patch 9.0.1583 +Problem: Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott) +Solution: Add 4th crypt method to block zero ID check. Avoid syncing a swap + file before reading the file. (closes #12433) + +Patch 9.0.1584 +Problem: Not all meson files are recognized. +Solution: Add "meson.options". (Liam Beguin, closes #12444) + +Patch 9.0.1585 +Problem: Weird use of static variables for spell checking. +Solution: Move the variables to a structure and pass them from win_update() + to win_line(). (Luuk van Baal, closes #12448) + +Patch 9.0.1586 +Problem: Checking translations gives an error for using two messages with + ngettext() that differ in "%" items. +Solution: Adjust the check script to tolerate omitting one "%" item. + +Patch 9.0.1587 +Problem: Corn config files are not recognized. +Solution: Add a pattern for Corn config files. (Jake Stanger, closes #12449) + +Patch 9.0.1588 +Problem: Incsearch not triggered when pasting clipboard register on the + command line. +Solution: Also set "literally" when using a clipboard register. (Ken Takata, + closes #12460) + +Patch 9.0.1589 +Problem: Filetype test contains too many special characters. +Solution: Use Vim9 syntax for a few things. + +Patch 9.0.1590 +Problem: Filetype test has trailing white space. +Solution: Remove trailing white space. + +Patch 9.0.1591 +Problem: Some "gomod" files are not recognized. +Solution: Check for "go.mod" file name before checking out the contents. + (Omar El Halabi, closes #12462) + +Patch 9.0.1592 +Problem: Not all timer tests are marked as flaky. +Solution: Set the flaky flag for all timer tests. (closes #12355) + +Patch 9.0.1593 +Problem: MS-Windows: assert error when compiled with debug mode. +Solution: Adjust arguments to setvbuf(). (Ken Takata, closes #12467) + +Patch 9.0.1594 +Problem: Some internal error messages are translated. +Solution: Consistently do not translate internal error messages. + (closes #12459) + +Patch 9.0.1595 +Problem: Line pointer becomes invalid when using spell checking. +Solution: Call ml_get() at the right places. (Luuk van Baal, closes #12456) + +Patch 9.0.1596 +Problem: :registers command does not work in sandbox. +Solution: Add flag to the command. (closes #12473) + +Patch 9.0.1597 +Problem: Cursor ends up below the window after a put. +Solution: Mark w_crow and w_botline invalid when changing the cursor line. + (closes #12465) + +Patch 9.0.1598 +Problem: screenchar(), screenchars() and screenstring() do not work + properly when 'encoding' is set to a double-byte encoding. +Solution: Fix the way the bytes of the characters are obtained. + (issue #12469) + +Patch 9.0.1599 +Problem: Cursor not adjusted when near top or bottom of window and + 'splitkeep' is not "cursor". +Solution: Move boundary checks to outer cursor move functions, inner + functions should only return valid cursor positions. (Luuk van + Baal, closes #12480) + +Patch 9.0.1600 +Problem: screenpos() does not take w_skipcol into account. +Solution: Subtract w_skipcol from column. (closes #12486, closes #12476) + +Patch 9.0.1601 +Problem: Filetype detection fails for *.conf file without comments. + (Dmitrii Tcyganok) +Solution: Use "conf" filetype as a fallback for an empty .conf file. + (closes #12487, closes #12483) + +Patch 9.0.1602 +Problem: Stray character is visible if 'smoothscroll' marker is displayed + on top of a double-wide character. +Solution: When overwriting a double-width character with the 'smoothscroll' + marker clear the second half. (closes #12469) + +Patch 9.0.1603 +Problem: Display wrong when scrolling multiple lines with 'smoothscroll' + set. +Solution: Redraw when w_skipcol changed. (closes #12477, closes #12468) + +Patch 9.0.1604 +Problem: Errors from the codestyle test are a bit confusing. +Solution: Use assert_report() with a clearer message. Avoid a warning for + an existing swap file. + +Patch 9.0.1605 +Problem: Crash when calling method on super in child constructor. (Israel + Chauca Fuentes) +Solution: Clear the type list. (Ernie Rael, closes #12489, closes #12471) + +Patch 9.0.1606 +Problem: Using freed memory when 'foldcolumn' is set. +Solution: Save extra pointer to free it later. (closes #12492) + +Patch 9.0.1607 +Problem: screenpos() returns wrong row with diff filler lines. +Solution: Only add filler lines when appropriate. Also don't add the + 'smoothscroll' marker when w_skipcol is zero. (closes #12485, + closes #12484) + +Patch 9.0.1608 +Problem: update_topline() is called twice. +Solution: Do not call update_topline() before curs_columns(). (Luuk van + Baal, closes #12495) + +Patch 9.0.1609 +Problem: Crash when an object indirectly references itself. +Solution: Avoid clearing an object while it is already being cleared. + (closes #12494) + +Patch 9.0.1610 +Problem: Display is wrong when 'smoothscroll' is set and scrolling multiple + lines. +Solution: Redraw with UPD_NOT_VALID when "skipcol" is or was set. + (closes #12490, closes #12468) + +Patch 9.0.1611 +Problem: v:maxcol can be changed in a :for loop. +Solution: Check for read-only loop variable. (closes #12470) + +Patch 9.0.1612 +Problem: "skipcol" not reset when using multi-byte characters. +Solution: Compare with w_virtcol instead of w_cursor.col. (closes #12457) + +Patch 9.0.1613 +Problem: Some make output gets picked up by 'errorformat'. +Solution: Ignore make output by default. (Gregory Anders, closes #12481) + +Patch 9.0.1614 +Problem: strlen() called too often for :spellrepall. +Solution: Store the result in a variable. (closes #12497) + +Patch 9.0.1615 +Problem: URL shortcut files are not recognized. +Solution: Add a pattern for URL shortcut files. (closes #12474) + +Patch 9.0.1616 +Problem: Quickfix text field is truncated. +Solution: Fix output of text field after pattern field in quickfix buffer. + (Shane Harper, closes #12498) + +Patch 9.0.1617 +Problem: charidx() and utf16idx() result is not consistent with byteidx(). +Solution: When the index is equal to the length of the text return the + length of the text instead of -1. (Yegappan Lakshmanan, + closes #12503) + +Patch 9.0.1618 +Problem: Trace32 files are not recognized. +Solution: Add patterns for the t32 filetype. (Christoph Sax, closes #12505) + +Patch 9.0.1619 +Problem: The focus gained/lost escape sequences cause trouble for a + terminal where Vim does not expect them. +Solution: Always recognize the codes for focus gained/lost. (closes #12499) + +Patch 9.0.1620 +Problem: Nix files are not recognized from the hashbang line. +Solution: Add a hashbang check. (issue #12507) + +Patch 9.0.1621 +Problem: FILETYPE_FILE is defined to the same value multiple times. Same + for a few similar macros. +Solution: Define FILETYPE_FILE and others in feature.h only + +Patch 9.0.1622 +Problem: Filetype name t32 is a bit obscure. +Solution: Rename t32 to trace32. (Christoph Sax, closes #12512) + +Patch 9.0.1623 +Problem: The program to filetype translation is not exported. +Solution: Export Exe2filetype(). + +Patch 9.0.1624 +Problem: Crash when calling object constructor from legacy script. (Israel + Chauca Fuentes) +Solution: Pass a pointer for "ufunc". (closes #12502) + +Patch 9.0.1625 +Problem: "super" is not considered a reserved name. +Solution: Add "super" to the list of reserved names. (closes #12515) + +Patch 9.0.1626 +Problem: Visual area not shown when using 'showbreak' and start of line is + not visible. (Jaehwang Jung) +Solution: Adjust "fromcol" for the space taken by 'showbreak'. + (closes #12514) + +Patch 9.0.1627 +Problem: No generic mechanism to test syntax plugins. +Solution: Add a syntax plugin test mechanism, using screendumps. Add a + simple test for "c". + +Patch 9.0.1628 +Problem: Syntax tests fail on FreeBSD. +Solution: Pass the Vim executable path with VIMPROG. (Ken Takata, + closes #12535) Adjust the paths. + +Patch 9.0.1629 +Problem: Having utf16idx() rounding up is inconvenient. +Solution: Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523) + +Patch 9.0.1630 +Problem: "make clean" at the toplevel fails. +Solution: Clean the indent and syntax directories in a sub-shell. (Ben + Jackson, closes #12536, closes #12526) + +Patch 9.0.1631 +Problem: Passing a wrong variable type to an option gives multiple errors. +Solution: Bail out early on failure. (closes #12504) + +Patch 9.0.1632 +Problem: Not all cabal config files are recognized. +Solution: Add a couple of patterns. (Marcin Szamotulski, closes #12463) + +Patch 9.0.1633 +Problem: Duplicate code for converting float to string. +Solution: Use tv_get_string(). (closes #12521) + +Patch 9.0.1634 +Problem: Message is cleared when removing mode message (Gary Johnson). +Solution: Do not clear the command line after displaying a message. + +Patch 9.0.1635 +Problem: Error message is cleared when removing mode message. +Solution: Also reset flags when the message is further down. + +Patch 9.0.1636 +Problem: Expanding a pattern interferes with command line completion. +Solution: Set the file index only when appropriate. (closes #12519) + +Patch 9.0.1637 +Problem: Compiler warning for uninitialized variable. +Solution: Move the variable to an inner block and initialize it. (Christian + Brabandt, closes #12549) + +Patch 9.0.1638 +Problem: crypt tests hang and cause memory errors +Solution: Move variable to start of function. + +Patch 9.0.1639 +Problem: Build failure without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1640 +Problem: Compiler warning for unused variables without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1641 +Problem: The log file does not give information about window sizes. +Solution: Add a few log messages about obtaining the window size. + +Patch 9.0.1642 +Problem: Build failure with tiny features. +Solution: Add #ifdef's. + +Patch 9.0.1643 +Problem: Filetype detection fails if file name ends in many '~'. +Solution: Strip multiple '~' at the same time. (closes #12553) + +Patch 9.0.1644 +Problem: Not all filetype file name matches are tested. +Solution: Add more file names to test with. (Jonas Strittmatter, + closes #12569) + +Patch 9.0.1645 +Problem: zserio files are not recognized. +Solution: Add a pattern for zserio files. (Dominique Pellé, + closes #12544) + +Patch 9.0.1646 +Problem: CI: codecov may take a very long time to run. +Solution: Add a timeout. (Philip Heiduck, closes #12559) + +Patch 9.0.1647 +Problem: Insufficient testing for syntax plugins. +Solution: Add shell file examples. (Charles Campbell) Create a messages + file for easier debugging and reporting the test results. + +Patch 9.0.1648 +Problem: Result of syntax tests is hard to see. +Solution: List the failed tests. + +Patch 9.0.1649 +Problem: Syntax test failure causes script to abort. +Solution: Fix appending string to list. + +Patch 9.0.1650 +Problem: MS-Windows: default 'viewdir' may include read-only directory. +Solution: Use $HOME instead of $VIM for 'viewdir' default. (closes #12119) + +Patch 9.0.1651 +Problem: Unclear why syntax test fails on Mac. +Solution: Temporarily show the whole "messages" file. + +Patch 9.0.1652 +Problem: Unclear why syntax test fails on Mac. +Solution: Echo v:errors when it's not empty. + +Patch 9.0.1653 +Problem: Amiga: default 'viewdir' may not work. +Solution: Use "home:" instead of "$VIM". Add a test. (Christian Brabandt, + closes #12576) + +Patch 9.0.1654 +Problem: MS-Windows: test for default 'viewdir' fails. +Solution: Escape the pattern. + +Patch 9.0.1655 +Problem: Syntax test fails when Vim window is not tall enough. +Solution: Make sure each terminal window is closed. + +Patch 9.0.1656 +Problem: Syntax test fails when detected shell type differs. +Solution: Avoid using "/bin/sh", it depends on the system. Add a check that + the shell type detection is correct. + +Patch 9.0.1657 +Problem: One more syntax test depends on the system. +Solution: Use "dash" instead of "sh". + +Patch 9.0.1658 +Problem: Autoload files for "zig" are not installed. +Solution: Add install and uninstall rules in the makefile. (Christian + Brabandt, closes #12577, closes #12567) + +Patch 9.0.1659 +Problem: Termdebug: default highlight cleared when changing colorscheme. +Solution: Use a ColorScheme autocommand. (Christian Brabandt, closes #12566, + closes #12555) + +Patch 9.0.1660 +Problem: Error for using matchfuzzy() in Vim9 script returning a list of + dicts. +Solution: Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan, + closes #12574) + +Patch 9.0.1661 +Problem: BUCK files are not recognized. +Solution: Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564) + +Patch 9.0.1662 +Problem: Crash when using a class member twice. (Christian J. Robinson) +Solution: Make a copy of the value. + +Patch 9.0.1663 +Problem: Termdebug on MS-Windows: some file names are not recognized. +Solution: Do not always change \t and \n. (Christian Brabandt, + closes #12565, closes #12560, closes #12550) + +Patch 9.0.1664 +Problem: Divide by zero when scrolling with 'smoothscroll' set. +Solution: Avoid using a negative width. (closes #12540, closes #12528) + +Patch 9.0.1665 +Problem: Empty CmdlineEnter autocommand causes errors in Ex mode. +Solution: Save and restore ex_pressedreturn. (Christian Brabandt, + closes # 12581, closes #12578) + +Patch 9.0.1666 +Problem: Compiler may warn for uninitialized variable. +Solution: Initialize this_props_len. (Christian Brabandt, closes #12599) + +Patch 9.0.1667 +Problem: Regression test doesn't fail when fix is reverted. +Solution: Add "n" to 'cpoptions' instead of using :winsize. (closes #12587, + issue #12528) + +Patch 9.0.1668 +Problem: PEM files are not recognized. +Solution: Add patterns to match PEM files. (closes #12582) + +Patch 9.0.1669 +Problem: Crash syncing swapfile in new buffer when using sodium crypt. + (James McCoy) +Solution: Add checks for sodium encryption. (Christian Brabandt, + closes #12591, closes #12585) + +Patch 9.0.1670 +Problem: Resetting local option to global value is inconsistent. +Solution: Handle "<" specifically for 'scrolloff' and 'sidescrolloff'. + (closes #12594) + +Patch 9.0.1671 +Problem: Termdebug: error with more than 99 breakpoints. +Solution: Use a different sign for breakpoint 100 and over. (closes #12589, + closes #12588) + +Patch 9.0.1672 +Problem: Tabline highlight wrong after truncated double width label. +Solution: Fill up half a double width character later. (closes #12614) + +Patch 9.0.1673 +Problem: Cannot produce a status 418 or 503 message. +Solution: Add err_teapot(). + +Patch 9.0.1674 +Problem: Help for builtin functions is not sorted properly. +Solution: Put err_teapot() help in the right position. + +Patch 9.0.1675 +Problem: Test may run into timeout when using valgrind. +Solution: Use a longer timeout when using valgrind. + +Patch 9.0.1676 +Problem: Warning for buffer in use when exiting early. +Solution: Change file names to be able to see what buffer is in use when + exiting. + +Patch 9.0.1677 +Problem: Typo in syntax test input file. +Solution: Fix the typo and the expected dump files. (THARAK HEGDE, + closes #12635) + +Patch 9.0.1678 +Problem: Blade files are not recognized. +Solution: Add a pattern for Blade files. (closes #12650) + +Patch 9.0.1679 +Problem: Tests may leave leftover files around +Solution: Clean up tests and remove files + +Patch 9.0.1680 +Problem: sodium test fails in Github CI +Solution: Catch sodium_mlock() errors and do not error out + +Patch 9.0.1681 +Problem: Build Failure with Perl 5.38 +Solution: Fix Build Failure + +Patch 9.0.1682 +Problem: crypt: sodium encryption is not portable +Solution: use little-endian byte order for sodium encrypted files + +Patch 9.0.1683 +Problem: need runtime files updated +Solution: merge various github PRs + +Patch 9.0.1684 +Problem: libvterm slightly outdated +Solution: Update libvterm from rev 818 to rev 839 + +Patch 9.0.1685 +Problem: Python 3.11 interface throws deprecation warnings +Solution: ignore those warnings for gcc and clang + +Patch 9.0.1686 +Problem: undotree() only works for the current buffer +Solution: Add an optional "buffer number" parameter to undotree(). If + omitted, use the current buffer for backwards compatibility. + +Patch 9.0.1687 +Problem: mapset() not properly handling script ID +Solution: replace_termcodes() may accept a script ID + +Patch 9.0.1688 +Problem: cannot store custom data in quickfix list +Solution: add `user_data` field for the quickfix list + +Patch 9.0.1689 +Problem: python 3.12 produces warnings and fails test +Solution: Make use of raw strings in python3 tests + +Patch 9.0.1690 +Problem: popup_create() not aborting on errors +Solution: check for errors in arguments given and abort if an error + occurred + +Patch 9.0.1691 +Problem: wrong viewport restored for incsearch and smoothscroll +Solution: Save and restore skipcol as well + +Patch 9.0.1692 +Problem: Android not handling AI_V4MAPPED ai_flag +Solution: don't set AI_V4MAPPED flag when on Android, since + Android's getaddrinfo returns EAI_BADFLAGS if ai_flags + contains it + +Patch 9.0.1693 +Problem: Ctrl-Q not handled like Ctrl-V in replace mode +Solution: Handle Ctrl-Q like Ctrl-V + +Patch 9.0.1694 +Problem: wrong mapping applied when replaying a char search +Solution: Store a NOP after the ESC + +Patch 9.0.1695 +Problem: Crash with overlong textprop above +Solution: Consider only positive padding + +Patch 9.0.1696 +Problem: sodium_mlock may still fail in CI +Solution: Catch E1230 in testscript and skip test + +Patch 9.0.1697 +Problem: incsearch test not sufficient (after 9.0.1691) +Solution: add an additional test + +Patch 9.0.1698 +Problem: Test_map_restore_sid fails in GUI +Solution: Feed an unsimplified Ctrl-B + +Patch 9.0.1699 +Problem: compile warning for xdiff/xutils on MS-Windows +Solution: add explicit type cast from size_t to long + +Patch 9.0.1700 +Problem: Cannot compile with dynamic perl < 5.38 (after 9.0.1681) +Solution: Fix if_perl/dyn from perl 5.32 to 5.38 + +Patch 9.0.1701 +Problem: vim9 crash when class member overridden +Solution: Use method_count field instead + +Patch 9.0.1702 +Problem: Undo test is flaky. +Solution: Apply filter and change time to "1 second ago" in both dumps. + +Patch 9.0.1703 +Problem: Vim9 Calling a method in an extended class fails +Solution: use method index directly + +Patch 9.0.1704 +Problem: Cannot use positional arguments for printf() +Solution: Support positional arguments in string formatting + +Patch 9.0.1705 +Problem: cursor position wrong when clicking on an unprintable char +Solution: Don't update prev_ptr when wlv.n_extra is not zero. + +Patch 9.0.1706 +Problem: typos in the xxd manpage +Solution: Fix typos and formatting + +Patch 9.0.1707 +Problem: Cannot wrap around in popup_filter_menu() +Solution: Allow to wrap around by default + +Patch 9.0.1708 +Problem: getcompletion() fails for user-defined commands +Solution: set context for completion function + +Patch 9.0.1709 +Problem: dynamic build with python 3.12 breaks +Solution: if_python3.c: Fix building dynamic Python3 interpreter + +Patch 9.0.1710 +Problem: sidescrolloff and scrolloff options work slightly + different than other global-local options +Solution: Make it behave consistent for all global-local options + +Patch 9.0.1711 +Problem: dead code in charset.c +Solution: remove it + +Patch 9.0.1712 +Problem: missing null check in object_clear() +Solution: Add null check of cl + +Patch 9.0.1713 +Problem: Github CI fails to load snd-dummy kernel module +Solution: Make installation of linux-modules-extra optional + +Patch 9.0.1714 +Problem: getcompletion() "cmdline" fails after :autocmd +Solution: Use set_cmd_context() instead of set_one_cmd_context(). + +Patch 9.0.1715 +Problem: duplicate test in message_test.c +Solution: Remove duplicate test and make functions static + +Patch 9.0.1716 +Problem: Windows build with python 3.12 and clang fails +Solution: Remove the PyBool_Type function pointer for python 3.12 + +Patch 9.0.1717 +Problem: virtcol2col returns last byte of a multi-byte char +Solution: Make it return the first byte for a multi-byte char + +Patch 9.0.1718 +Problem: dict-completion does not respect region +Solution: respect selected region in dict completion + +Patch 9.0.1719 +Problem: if_lua: crash for Lua functions invoked via Vim callbacks +Solution: Use Lua registry rather than upvalues for udata cache + +Patch 9.0.1720 +Problem: Vim9 class using wrong index for overridden method +Solution: Use correct index for overridden method + +Patch 9.0.1721 +Problem: Build failure on Windows with dynamic lua (after 9.0.1719) +Solution: move definition further down in if_lua + +Patch 9.0.1722 +Problem: wrong error messages when passing wrong types to count() +Solution: fix it + +Patch 9.0.1723 +Problem: Fix regression in {func} argument of reduce() +Solution: pass function name as string again + +Patch 9.0.1724 +Problem: vim9class constructor argument type checking bug +Solution: fix it + +Patch 9.0.1725 +Problem: Wrong cursor position when clicking after concealed text + with 'virtualedit'. +Solution: Store virtual columns in ScreenCols[] instead of text + columns, and always use coladvance() when clicking. + +Patch 9.0.1726 +Problem: incorrect heights in win_size_restore() +Solution: avoid restoring incorrect heights in win_size_restore() + +Patch 9.0.1727 +Problem: minor problems with the teapot() +Solution: remove the null check, update documentation + +Patch 9.0.1728 +Problem: missing winid argument for virtcol() +Solution: Add a {winid} argument to virtcol() + +Patch 9.0.1729 +Problem: screenpos() wrong result with w_skipcol and cpoptions+=n +Solution: Use adjust_plines_for_skipcol() instead of subtracting + w_skipcol. + +Patch 9.0.1730 +Problem: passing multiple patterns to runtime not working +Solution: prepend prefix to each argument separately + +Patch 9.0.1731 +Problem: blockwise Visual highlight not working with virtual text +Solution: Reset the correct variable at the end of virtual selection and + Check for double-width char inside virtual text. + +Patch 9.0.1732 +Problem: vimexpr: shadowing variable +Solution: Rename local variable + +Patch 9.0.1733 +Problem: CI: cannot cache linux-modules-extra +Solution: Enable caching and reduce failed downloads + +Patch 9.0.1734 +Problem: runtime completion fails for multiple args +Solution: Make it work + +Patch 9.0.1735 +Problem: Rename completion specific findex var +Solution: Move "findex" static variable to xp_selected in expand_T + +Patch 9.0.1736 +Problem: Github Actions times out after 20 minutes +Solution: Increase the timeout to 25 minutes + +Patch 9.0.1737 +Problem: Calling a base class method through an extended class fails +Solution: Create lookup table for member index in the interface to + to the member class implementing the interface + +Patch 9.0.1738 +Problem: Duplicate code to reverse a string +Solution: Move reverse_text() to strings.c and remove string_reverse(). + +Patch 9.0.1739 +Problem: leftover files in libvterm +Solution: Fix cleaning of libvterm directory + +Patch 9.0.1740 +Problem: segfault when reading invalid viminfo file +Solution: Check the expected type in the viminfo file + +Patch 9.0.1741 +Problem: No type checking in interfaces +Solution: Implement member type check in vim9 interfaces + +Patch 9.0.1742 +Problem: Wrong curswant when clicking and the second cell of a + double-width char. +Solution: Don't copy virtcol of the first char to the second one. + +Patch 9.0.1743 +Problem: Parameter of gui_gtk:gui_mch_browse incorrectly marked as + UNUSED. +Solution: Remove UNUSED flag. + +Patch 9.0.1744 +Problem: Dead code in open_cmdwin() +Solution: Remove it + +Patch 9.0.1745 +Problem: Missing test coverage for blockwise Visual highlight with + virtual that starts with a double-width char. +Solution: Add a new virtual text to the test. Some other small fixes. + +Patch 9.0.1746 +Problem: vim9class compile error for char/char_u conversion +Solution: Correctly cast to (char *) + +Patch 9.0.1747 +Problem: screenpos() may cause unnecessary redraw. +Solution: Don't unnecessarily reset VALID_WROW flag. + +Patch 9.0.1748 +Problem: CI: cannot label issues automatically +Solution: Create CI labeler + +Patch 9.0.1749 +Problem: Text property highlight doesn't override a sign highlight over + a tab character +Solution: Let text_property override tab highlighting + +Patch 9.0.1750 +Problem: CI: fails because of changed error messages + (after: 9.0.1741) +Solution: Adjust expected error messages + +Patch 9.0.1751 +Problem: CI: labeler configuration not found + (after 9.0.1748) +Solution: set configuration path + +Patch 9.0.1752 +Problem: CI: Coveralls is no longer used +Solution: Remove .coveralls.yml + +Patch 9.0.1753 +Problem: can't move to last non-blank char +Solution: Make g<end> behave like that + +Patch 9.0.1754 +Problem: still ci breakage (after 9.0.1741) +Solution: fix remaining issue + +Patch 9.0.1755 +Problem: CI still fails with sodium mlock error +Solution: catch mlock failure + +Patch 9.0.1756 +Problem: failing cursorline sign test +Solution: only reset char attr, if cursorline + option is not set + +Patch 9.0.1757 +Problem: ex_class() function is too long +Solution: refactor it + +Patch 9.0.1758 +Problem: vim9 no class identifiers in stack dumps +Solution: Prefix class members in stack traces with the class name + followed by a dot. + +Patch 9.0.1759 +Problem: Visual highlight not working with cursor at end of screen line + and 'showbreak'. +Solution: Only update "vcol_prev" when drawing buffer text. + +Patch 9.0.1760 +Problem: vim9 class problem with new() constructor +Solution: Don't allow a return type for the new() class constructor. + +Patch 9.0.1761 +Problem: g<kEnd> behaves different from g<end> +Solution: Make g<kEnd> behave like g<End> + +Patch 9.0.1762 +Problem: Not able to get the virtual text property +Solution: Make prop_list() return virtual text and alignment + +Patch 9.0.1763 +Problem: crash when passing invalid buffer to undotree() +Solution: Use get_buf_arg() instead of tv_get_buf_from_arg(). + +Patch 9.0.1764 +Problem: CI: label should not be set on all yml files +Solution: only set it for specific yml files in .github + +Patch 9.0.1765 +Problem: Error when cross-compiling Vim +Solution: use AC_CHECK_SIZEOF to find sizeof(wchar_t) + +Patch 9.0.1766 +Problem: Runtime: Missing QML support +Solution: Add QML support to Vim + +Patch 9.0.1767 +Problem: '.-' no allowed in highlight group names +Solution: Allow dot and hyphen characters in highlight group names + +Patch 9.0.1768 +Problem: Runtime: no support for bicep files +Solution: Add filetype support for bicepparam + +Patch 9.0.1769 +Problem: executable() ignoring symlinks on Windows +Solution: resolve reparse points + +Patch 9.0.1770 +Problem: lines disappear when modifying chars before virt text +Solution: take virtual text property length into account + +Patch 9.0.1771 +Problem: regex: combining chars in collections not handled +Solution: Check for following combining characters for NFA and BT engine + +Patch 9.0.1772 +Problem: Cursor is adjusted in window that did not change in size by + 'splitkeep'. +Solution: Only check that cursor position is valid in a window that + has changed in size. + +Patch 9.0.1773 +Problem: cannot distinguish Forth and Fortran *.f files +Solution: Add Filetype detection Code + +Patch 9.0.1774 +Problem: no support for custom cmdline completion +Solution: Add new vimscript functions + +Patch 9.0.1775 +Problem: Wrong comparison in vim9type.c +Solution: Change condition to false + +Patch 9.0.1776 +Problem: No support for stable Python 3 ABI +Solution: Support Python 3 stable ABI + +Patch 9.0.1777 +Problem: patch 9.0.1771 causes problems +Solution: revert it + +Patch 9.0.1778 +Problem: if_py_both: code-style issue +Solution: add space + +Patch 9.0.1779 +Problem: Need more state() tests +Solution: Add a few more tests for operator pending mode and register + yank command + +Patch 9.0.1780 +Problem: Vim9 type not defined during object creation +Solution: Define type during object creation and not during class + definition, parse multi-line member initializers, fix lock + initialization + +Patch 9.0.1781 +Problem: Problems when setting bin/paste option +Solution: When setting binary/paste, remember that this also affects + depending options, so that :verbose set returns the right + location. + +Patch 9.0.1782 +Problem: prop_list() does not return text_padding_left +Solution: Store and return the text_padding_left value for text + properties + +Patch 9.0.1783 +Problem: Wrong display with wrapping virtual text or unprintable chars, + 'showbreak' and 'smoothscroll'. +Solution: Don't skip cells taken by 'showbreak' in screen lines before + "w_skipcol". Combined "n_skip" and "skip_cells". + +Patch 9.0.1784 +Problem: redundant else in pum_set_selected() +Solution: Remove it + +Patch 9.0.1785 +Problem: wrong cursor position with 'showbreak' and lcs-eol +Solution: Add size of 'showbreak' before when 'listchars' "eol" is used. + Also fix wrong cursor position with wrapping virtual text on + empty line and 'showbreak'. + +Patch 9.0.1786 +Problem: Vim9: need instanceof() function +Solution: Implement instanceof() builtin + +Patch 9.0.1787 +Problem: Cannot build with latest luajit +Solution: adjust sed regexp and don't expect '-' in version output + +Patch 9.0.1788 +Problem: C4090 warnings in strings.c +Solution: Add type casts + +Patch 9.0.1789 +Problem: too early declaration of variable in pum_set_selected() +Solution: Move declaration to where it is actually used + +Patch 9.0.1790 +Problem: The Content-Type header is an optional header that some LSP + servers struggle with and may crash when encountering it. +Solution: Drop the Content-Type header from all messages, because we use + the default value anyway. + +Patch 9.0.1791 +Problem: No tests for the Termdebug plugin +Solution: Add some simple tests for the Termdebug plugin + +Patch 9.0.1792 +Problem: Normal mode "gM", "gj", "gk" commands behave incorrectly with + virtual text. +Solution: Use linetabsize() instead of linetabsize_str(). + +Patch 9.0.1793 +Problem: obsolete macros in configure script +Solution: Remove those and start moving to autoconf 2.71 + +Patch 9.0.1794 +Problem: autoconf: not correctly detecting include dirs +Solution: make use of python3 to generate includedirs + +Patch 9.0.1795 +Problem: Indentation issues +Solution: Fix code indentation issues. + +Patch 9.0.1796 +Problem: Vim9 problems with null_objects +Solution: Vim9 improve null_object usage + +Patch 9.0.1797 +Problem: Vimball/Visual Basic filetype detection conflict +Solution: runtime(vb): Improve Vimball and Visual Basic detection logic + +Patch 9.0.1798 +Problem: The 'syntax' option has no completion. +Solution: Add syntax option completion. + +Patch 9.0.1799 +Problem: Russian menu translation can be improved +Solution: update the Russian menu files + +Patch 9.0.1800 +Problem: Cursor position still wrong with 'showbreak' and virtual text + after last character or 'listchars' "eol". +Solution: Remove unnecessary w_wcol adjustment in curs_columns(). Also + fix first char of virtual text not shown at the start of a screen + line. + +Patch 9.0.1801 +Problem: Vim9 instanceof() fails in a def func +Solution: allow Objects in compile time check + +Patch 9.0.1802 +Problem: Multiline regex with Visual selection fails when Visual + selection contains virtual text after last char. +Solution: Only include virtual text after last char when getting full + line length. + +Patch 9.0.1803 +Problem: Cannot detect norg markup files +Solution: Add norg markup language detection + +Patch 9.0.1804 +Problem: Vim9: no support for private object methods +Solution: Add support for private object/class methods + +Patch 9.0.1805 +Problem: Vim9: problem compiling object method as function call arg +Solution: After a object/class method call, remove the object/class from + the stack. + +Patch 9.0.1806 +Problem: Vim9: bogus error on export +Solution: Don't error out when the export command is not executed + +Patch 9.0.1807 +Problem: runtime: crystal scripts not recognised +Solution: Filetype detect Crystal scripts by shebang line + +Patch 9.0.1808 +Problem: Termdebug: Typo in Termdebug test +Solution: fix the typos + +Patch 9.0.1809 +Problem: Termdebug test flaky +Solution: wait slightly longer + +Patch 9.0.1810 +Problem: camel-case spelling has issues with digits +Solution: Improve the camCase spell checking by taking digits + and caps into account + +Patch 9.0.1811 +Problem: still some issues with term_debug test +Solution: Use WaitForAssert() + +Patch 9.0.1812 +Problem: CI still fails with sodium_mlock error() +Solution: Catch and ignore E1230 error in test_crypt + +Patch 9.0.1813 +Problem: 'linebreak' is incorrectly drawn after 'breakindent'. +Solution: Don't include 'breakindent' size when already after it. + +Patch 9.0.1814 +Problem: Vim9 no error on duplicate object member var +Solution: detect duplicate members and error out + +Patch 9.0.1815 +Problem: pango_coverage_unref() deprecated in pango > 1.51 +Solution: use g_object_unref() instead + +Patch 9.0.1816 +Problem: configure: sed uses non-portable regex +Solution: use '*' modifier instead of '\?' in regex + for luajit version detection + +Patch 9.0.1817 +Problem: configure: using obsolete AC_HEADER_STDC +Solution: Remove it and re-create configure + +Patch 9.0.1818 +Problem: dynamically linking perl is broken +Solution: Fix all issues + +Patch 9.0.1819 +Problem: Github CI too complex +Solution: CI: Tidy up matrix + +Patch 9.0.1820 +Problem: Rexx files may not be recognised +Solution: Add shebang detection and improve disambiguation of *.cls + files + +Patch 9.0.1821 +Problem: Vim9 constructors are always static +Solution: make the "static" keyword an error + +Patch 9.0.1822 +Problem: Vim9: no check for duplicate members in extended classes +Solution: Check for duplicate members in extended classes. + Fix memory leak. + +Patch 9.0.1823 +Problem: Autoconf 2.69 too old +Solution: Migrate to Autoconf 2.71 + +Patch 9.0.1824 +Problem: Vim9: private members may be modifiable +Solution: prevent modification for def function + +Patch 9.0.1825 +Problem: Wrong cursor position with virtual text before a whitespace + character and 'linebreak'. +Solution: Always set "col_adj" to "size - 1" and apply 'linebreak' after + adding the size of 'breakindent' and 'showbreak'. + +Patch 9.0.1826 +Problem: keytrans() doesn't translate recorded key typed in a GUI +Solution: Handle CSI like K_SPECIAL, like in mb_unescape() + +Patch 9.0.1827 +Problem: xxd: no color support +Solution: Add color support using xxd -R + +Patch 9.0.1828 +Problem: Wrong cursor position with virtual text before double-width + char at window edge. +Solution: Check for double-width char before adding virtual text size. + +Patch 9.0.1829 +Problem: Vim9 missing access-checks for private vars +Solution: Use the proper check for private/readonly variable. Access + level for a member cannot be changed in a class implementing an + interface. Update the code indentation + +Patch 9.0.1830 +Problem: Vim9: crash when accessing a null object +Solution: Check accessing a NULL object in def function + +Patch 9.0.1831 +Problem: Vim9: failing null test +Solution: Use required public keyword + +Patch 9.0.1832 +Problem: xxd: reporting wrong version (after 9.0.1827) +Solution: Update version string + +Patch 9.0.1833 +Problem: runtime files may execute code in current dir +Solution: only execute, if not run from current directory + +Patch 9.0.1834 +Problem: Some problems with xxd coloring +Solution: Fix the following problems: + +Patch 9.0.1835 +Problem: Perl interface has problems with load PL_current_context +Solution: Fix Perl interface to load PL_current_context from library + +Patch 9.0.1836 +Problem: Wrong display with "above" virtual text and 'linebreak' or + 'breakindent' and 'showbreak'. +Solution: Exclude size of "above" virtual text when calculating them. + +Patch 9.0.1837 +Problem: Vim9: class_member_type() can be optimized +Solution: class_member_type() provides more information; + safe an additional alloc()/free() + +Patch 9.0.1838 +Problem: Vim9: Cannot modify class member vars from def function +Solution: Add support for modifying class member variables from a def + function + +Patch 9.0.1839 +Problem: No Makefile rule to build cscope database +Solution: Add rule + +Patch 9.0.1840 +Problem: use-after-free in do_ecmd +Solution: Verify oldwin pointer after reset_VIsual() + +Patch 9.0.1841 +Problem: style: trailing whitespace in ex_cmds.c +Solution: remove it + +Patch 9.0.1842 +Problem: Need more accurate profiling +Solution: Improve profiling results + +Patch 9.0.1843 +Problem: xxd color test flaky +Solution: Filter unneeded lines + +Patch 9.0.1844 +Problem: doc helptags may not be up to date +Solution: Add CI jobs to verify helptags are updated + +Patch 9.0.1845 +Problem: xxd: Test_xxd_color start failing +Solution: Revert changes to dump file + +Patch 9.0.1846 +Problem: crash in fullcommand +Solution: Check for typeval correctly + +Patch 9.0.1847 +Problem: potential oob write in do_addsub() +Solution: don't overflow buf2, check size in for loop() + +Patch 9.0.1848 +Problem: buffer-overflow in vim_regsub_both() +Solution: Check remaining space + +Patch 9.0.1849 +Problem: CI error on different signedness +Solution: cast unsigned to int + +Patch 9.0.1850 +Problem: Vim9: wrong line number where options set +Solution: Set source line number earlier + +Patch 9.0.1851 +Problem: Virtual text at a column causes 'breakindent' and 'showbreak' + to be missing (after patch 9.0.1124). +Solution: Add check for "tp_col" in another place where TP_FLAG_WRAP is + checked. + +Patch 9.0.1852 +Problem: i_CTRL-O does not reset Select Mode +Solution: Reset select mode on CTRL-O in insert mode + +Patch 9.0.1853 +Problem: CI error on different signedness in regexp.c + (after patch 9.0.1848) +Solution: Cast strlen() call to int + +Patch 9.0.1854 +Problem: test_crash1() fails on CI +Solution: don't run Screendump test, verify that it doesn't crash + by running it through a shell command line, testing + the exit value and concatenating success cmd using '&&' + +Patch 9.0.1855 +Problem: mode() doesn't indicate command line for terminal +Solution: make it return 'ct' for command-line from Terminal mode + +Patch 9.0.1856 +Problem: issues with formatting positional arguments +Solution: fix them, add tests and documentation + +Patch 9.0.1857 +Problem: heap-use-after-free in is_qf_win() +Solution: Check buffer is valid before accessing it + +Patch 9.0.1858 +Problem: heap use after free in ins_compl_get_exp() +Solution: validate buffer before accessing it + +Patch 9.0.1859 +Problem: heap-use-after-free in bt_normal() +Solution: check that buffer is still valid + +Patch 9.0.1860 +Problem: CI: test_crash1() is flaky +Solution: Wait a bit longer + +Patch 9.0.1861 +Problem: xxd: issue when -R is specified several times +Solution: Fix command line parsing + +Patch 9.0.1862 +Problem: Vim9 Garbage Collection issues +Solution: Class members are garbage collected early leading to + use-after-free problems. Handle the garbage + collection of classes properly. + +Patch 9.0.1863 +Problem: wrong format specifiers in e_aptypes_is_null_str_nr +Solution: Fix the wrong format specifier + +Patch 9.0.1864 +Problem: crash with bt_quickfix1_poc when cleaning up + and EXITFREE is defined +Solution: Test if buffer is valid in a window, else close + window directly, don't try to access buffer properties + +Patch 9.0.1865 +Problem: Vim9: garbage collection may cause crash +Solution: validate that class members typeval is not null + +Patch 9.0.1866 +Problem: Undo is synced after character find. +Solution: Set no_u_sync when calling gotchars_nop(). + +Patch 9.0.1867 +Problem: Vim9: access to interface statics possible +Solution: Prevent direct access to interface statics + +Patch 9.0.1868 +Problem: test_crash still fails for circle ci +Solution: give even more time to complete + +Patch 9.0.1869 +Problem: Coverity warns about uninitialized var +Solution: initialize it + +Patch 9.0.1870 +Problem: Vim9: disassemble does not show static +Solution: Show static flag + +Patch 9.0.1871 +Problem: Github CI does not run i386 job +Solution: Add a i386 architecture + +Patch 9.0.1872 +Problem: CI: test_crash() fails on CI +Solution: Skip test on BSD + +Patch 9.0.1873 +Problem: heap-buffer-overflow in vim_regsub_both +Solution: Disallow exchanging windows when textlock is active + +Patch 9.0.1874 +Problem: CI may fail in test_recover_empty_swap +Solution: Set directory option + +Patch 9.0.1875 +Problem: Vim9: improve test for disassemble + static +Solution: Add a Vim9 script disassemble test for an interface with + static members + +Patch 9.0.1876 +Problem: Vim9: parsing commands with newlines wrong +Solution: Accept a '\n' for parsing lists and command arguments + +Patch 9.0.1877 +Problem: missing test for patch 9.0.1873 +Solution: add a test trying to exchange windows + +Patch 9.0.1878 +Problem: tests running sh have problems +Solution: Check that dash is installed + +Patch 9.0.1879 +Problem: Vim9: incorrect duplicate class member detection +Solution: Incorrect duplicate class member detection when variable names + have the same prefix. Not able to access class member variables + using an object. Fix coding style issues + +Patch 9.0.1880 +Problem: Vim9: Need more tests for inheritance +Solution: Add access tests and fixes. + +Patch 9.0.1881 +Problem: Test_crash fails on Mac +Solution: Skip test on Mac + +Patch 9.0.1882 +Problem: Trailing white space in tests +Solution: Delete it + +Patch 9.0.1883 +Problem: Vim9: Calling an interface method using a child object fails +Solution: Search methods of parent class + +Patch 9.0.1884 +Problem: Wrong order of arguments for error messages +Solution: Reverse order or arguments for e_aptypes_is_null_nr_str + +Patch 9.0.1885 +Problem: Vim9: no support for abstract methods +Solution: Add support for defining abstract methods in an abstract class + +Patch 9.0.1886 +Problem: Various Typos +Solution: Fix Typos + +Patch 9.0.1887 +Problem: Vim9: class members are accessible via object +Solution: Disable class member variable access using an object + +Patch 9.0.1888 +Problem: Vim9: Problem trying to invoke class method +Solution: Lookup the class method insider other classes + +Patch 9.0.1889 +Problem: Vim9 static tests fail +Solution: Fix tests, make CI happy ;) + +Patch 9.0.1890 +Problem: Vim9: lookup code for class/object repeated +Solution: Refactor and make use of lookup functions + +Patch 9.0.1891 +Problem: No runtime support for Mojo +Solution: Add basic filetype and syntax plugins + +Patch 9.0.1892 +Problem: CI: no FreeBSD 14 support +Solution: Drop support for FreeBSD 12, add FreeBSD 14 + +Patch 9.0.1893 +Problem: CI: strptime test fails on BSD14 +Solution: Skip the test + +Patch 9.0.1894 +Problem: CI: trailing white space in tests +Solution: clean up the trailing white space + +Patch 9.0.1895 +Problem: Vim9: finding method/member is inefficient +Solution: Use lookups + +Patch 9.0.1896 +Problem: "below" virtual text doesn't work with 'rightleft'. +Solution: Use column from right border with 'rightleft'. + +Patch 9.0.1897 +Problem: Vim9: confusing error with .= in compiled functions +Solution: Check in error condition, if .= was attempted and in that case + give a different error message. + +Patch 9.0.1898 +Problem: Vim9: restrict access to static vars and methods +Solution: Class members are accessible only from the class where they are + defined. + +Patch 9.0.1899 +Problem: potential buffer overflow in PBYTE macro +Solution: Check returned memline length + +Patch 9.0.1900 +Problem: Configure script uses non-portable == comparison +Solution: Use the standard and portable "=" instead + +Patch 9.0.1901 +Problem: win32: not correctly freeing environment +Solution: After we call GetEnvironmentStringsW, we should call + FreeEnvironmentStringsW + +Patch 9.0.1902 +Problem: Vim9: Coverity complains about dead code +Solution: Copy only object methods from the super class + to a subclass when extending a class. Fix + Coverity warning. + +Patch 9.0.1903 +Problem: Github Actions fails because snd-dummy modules missing + in current runner images +Solution: ignore modprobe error + +Patch 9.0.1904 +Problem: Cirrus-CI fails because we have used all credits +Solution: Remove FreeBSD 13.1 and MacOS M1 + +Patch 9.0.1905 +Problem: FEAT_FLOAT no longer defined +Solution: Remove last existing FEAT_FLOAT ifdefs in + message_test + +Patch 9.0.1906 +Problem: Vim9: Interfaces should not support class methods and + variables +Solution: Make sure interface follow the interface specification + +Patch 9.0.1907 +Problem: No support for liquidsoap filetypes +Solution: Add liquidsoap filetype detection code + +Patch 9.0.1908 +Problem: undefined behaviour upper/lower function ptrs +Solution: Fix UBSAN error in regexp and simplify upper/lowercase + modifier code + +Patch 9.0.1909 +Problem: Vim9: problem calling class method from other class +Solution: Fix this problem, fix readonly object access, update error + messages. + +Patch 9.0.1910 +Problem: Mac OS X: missing sound support on older versions +Solution: Check Macro MAC_OS_X_VERSION_MIN_REQUIRED + +Patch 9.0.1911 +Problem: Vim9: segfault with null object and instanceof() +Solution: return early + +Patch 9.0.1912 +Problem: Cirrus-CI running out of credits +Solution: disable Cirrus-CI for now + +Patch 9.0.1913 +Problem: if_python: undefined behaviour for function pointers +Solution: Fix if_python undefined behavior for function pointer casts + +Patch 9.0.1914 +Problem: Vim9: few issues when accessing object members +Solution: When calling an object method, check for null object. + Accessing a Dict object member doesn't work. + +Patch 9.0.1915 +Problem: r_CTRL-C works differently in visual mode +Solution: Make r_CTRL-C behave consistent in visual mode + in terminal and Windows GUI + +Patch 9.0.1916 +Problem: Crash when allocating large terminal screen +Solution: Don't allow values > 1000 for terminal + screen columns and rows + +Patch 9.0.1917 +Problem: undefined behaviour with python function pointer +Solution: correctly cast function pointers from void + +Patch 9.0.1918 +Problem: No filetype detection for Authzed filetypes +Solution: Detect the *.zed file extension as authzed filetype + +Patch 9.0.1919 +Problem: Wrong curswant when clicking on empty line or with vsplits. +Solution: Don't check for ScreenCols[] before the start of the window + and handle empty line properly. + +Patch 9.0.1920 +Problem: Vim9: cannot write public var in nested object +Solution: Write variable in nested read-only object reference. + Also test write fails. + +Patch 9.0.1921 +Problem: not possible to use the jumplist like a stack +Solution: Add the 'jumpoptions' setting to make the jumplist + a stack. + +Patch 9.0.1922 +Problem: LSP server request message is misinterpreted as a response message +Solution: Check that the message does not have the "message" field + +Patch 9.0.1923 +Problem: curswant wrong on click with 've' and 'wrap' set +Solution: Add w_leftcol to mouse click column. + +Patch 9.0.1924 +Problem: LSP server message still wrongly handled (after 9.0.1922) +Solution: Handle 'method' messages properly, don't discard them, add + tests. + +Patch 9.0.1925 +Problem: if_python: still undefined behaviour with function pointer +Solution: fix remaining problems + +Patch 9.0.1926 +Problem: Vim9: not enough info in error message +Solution: Add class name, change member to variable, quote names + +Patch 9.0.1927 +Problem: patch 1916 (fixed terminal size) not optimal +Solution: Add defines to make it easier changeable later + +Patch 9.0.1928 +Problem: Vim9: constructor type checking bug +Solution: Fix class constructor regression + +Patch 9.0.1929 +Problem: runtime tests fail with tiny vim +Solution: check for tiny vim, run runtime tests in CI + even for tiny version + +Patch 9.0.1930 +Problem: compiler warnings with clang-17 +Solution: Fix function prototypes and function pointer + +Patch 9.0.1931 +Problem: make test_compilers fails on ubuntu +Solution: set LC_ALL=C + +Patch 9.0.1932 +Problem: Vim9: error when using null object constructor +Solution: Check for a null object only when calling an object method + +Patch 9.0.1933 +Problem: Can change the type of a v: variable using if_lua. +Solution: Add additional handling of v: variables like :let. + +Patch 9.0.1934 +Problem: bwipe fails after switching window from aucmd_win. +Solution: Decrement b_nwindows after switching back to aucmd_win. + +Patch 9.0.1935 +Problem: Vim9: not consistent error messages +Solution: Make error messages more consistent. Use "variable" for + (object/class) member + +Patch 9.0.1936 +Problem: test: using wrong expected message in test_crypt +Solution: make use of single quotes + +Patch 9.0.1937 +Problem: missing test for mouse click + 'virtedit' +Solution: Add test for clicking after eol with 'virtualedit' and wrapped + line + +Patch 9.0.1938 +Problem: multispace wrong when scrolling horizontally +Solution: Update position in "multispace" or "leadmultispace" also in + skipped chars. Reorder conditions to be more consistent. + +Patch 9.0.1939 +Problem: still a problem when processing LSP RPC requests +Solution: When processing async LSP RPC requests, compare sequence + numbers only in response messages + +Patch 9.0.1940 +Problem: wrong upstream version in libvterm README +Solution: correct version to 839 + +Patch 9.0.1941 +Problem: Memory leak detected (after 9.0.1928) +Solution: Free arg_objm in get_lambda_tv() + +Patch 9.0.1942 +Problem: Vim9: execution stack invalidated with null object +Solution: Check for a null object before adjusting the execution stack + +Patch 9.0.1943 +Problem: CI not run with clang-17 +Solution: Update CI to use clang-17 + +Patch 9.0.1944 +Problem: Vim9: function instruction pointer invalidated +Solution: Use the funcref index instead of the instruction pointer + +Patch 9.0.1945 +Problem: Vim9: missing support for ro-vars in interface +Solution: Support only read-only object variables in an interface, + add additional checks when parsing class definitions. + +Patch 9.0.1946 +Problem: filename expansion using ** in bash may fail +Solution: Try to enable the globstar setting + +Patch 9.0.1947 +Problem: Bash Expansion test fails on Windows/MacOS +Solution: Disable Test_glob_extended_bash for now + +Patch 9.0.1948 +Problem: Vim9: object variable "this." should only be used in + constructor +Solution: Disallow to this in normal object methods (other than + constructors) + +Patch 9.0.1949 +Problem: Vim9: allows reserved keywords as members +Solution: Disallow reserved keywords, disallow + duplicate object and class variables + +Patch 9.0.1950 +Problem: Vim9: error codes spread out +Solution: group them together and reserve 100 + more for future use + +Patch 9.0.1951 +Problem: Vim9: hard to debug vim9_class errors from CI +Solution: Include the line number in assert_xxx() calls. Include the + entire error message in the tests. Fix the indentation in the + test file. Add tags for new error codes. + +Patch 9.0.1952 +Problem: Vim9: unused static field +Solution: remove it and simplify code + +Patch 9.0.1953 +Problem: Misplaced comment in errors.h +Solution: Move it up + +Patch 9.0.1954 +Problem: CI: change netrw label in labeller bot +Solution: Rename it to 'plugin-netrw' + +Patch 9.0.1955 +Problem: Vim9: lockvar issues with objects/classes +Solution: fix `get_lhs()` object/class access and avoid `SEGV`, + make error messages more accurate. + +Patch 9.0.1956 +Problem: Custom cmdline completion skips original cmdline when pressing + Ctrl-P at first match if completion function invokes glob(). +Solution: Move orig_save into struct expand_T. + +Patch 9.0.1957 +Problem: termcap options should change on keyprotocol setting +Solution: Apply termcap entries when 'keyprotocol' changes + +Patch 9.0.1958 +Problem: cannot complete option values +Solution: Add completion functions for several options + +Patch 9.0.1959 +Problem: Vim9: methods parameters and types are covariant +Solution: Support contra-variant type check for object method arguments + (similar to Dart). + +Patch 9.0.1960 +Problem: Make CI checks more strict +Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, + fix uncovered problems + +Patch 9.0.1961 +Problem: Cmdline completion for 'listchars' fields doesn't include + "multispace" and "leadmultispace" (after 9.0.1958). +Solution: Include "multispace" and "leadmultispace" in lcstab. + +Patch 9.0.1962 +Problem: No support for writing extended attributes +Solution: Add extended attribute support for linux + +Patch 9.0.1963 +Problem: Configure script may not detect xattr correctly +Solution: include sys/xattr instead of attr/xattr, + make Test_write_with_xattr_support() test + xattr feature correctly + +Patch 9.0.1964 +Problem: xattr support fails to build on MacOS X +Solution: Disable xattr support for MacOS X + +Patch 9.0.1965 +Problem: wrong auto/configure script +Solution: regenerate with autoconf 2.71 + +Patch 9.0.1966 +Problem: configure prints stray 6 when checking libruby +Solution: redirect stdout to dev/null + +Patch 9.0.1967 +Problem: xattr errors not translated +Solution: mark for translation, consistently capitalize + first letter. + +Patch 9.0.1968 +Problem: cmdline completion should consider key option +Solution: Disable cmdline completion for key option, slightly + refactor how P_NO_CMD_EXPAND is handled + +Patch 9.0.1969 +Problem: buffer-overflow in trunc_string() +Solution: Add NULL at end of buffer + +Patch 9.0.1970 +Problem: win32: high-dpi support can be improved +Solution: implement WM_GETDPISCALEDSIZE + +Patch 9.0.1971 +Problem: macOS: FEAT_SOUND guard too restrictive +Solution: check for older macOS support properly + +Patch 9.0.1972 +Problem: win32: missing '**' expansion test (after v9.0.1947) +Solution: Add test for MS-Windows + +Patch 9.0.1973 +Problem: Clean up cmdline option completion code +Solution: Fix various minor problems + +Patch 9.0.1974 +Problem: vim9: using contra-variant type-checks (after v9.0.1959) +Solution: Use invariant type checking instead + +Patch 9.0.1975 +Problem: xattr: permission-denied errors on write +Solution: ignore those errors + +Patch 9.0.1976 +Problem: style: space before tab in optionstr.c +Solution: remove the space + +Patch 9.0.1977 +Problem: Vim9: object members can change type +Solution: Check type during assignment to object/class var + +Patch 9.0.1978 +Problem: No filetype detection for just files +Solution: Detect just files (*.just, justfile, etc) + +Patch 9.0.1979 +Problem: Cirrus CI disabled +Solution: re-enable Cirrus CI + +Patch 9.0.1980 +Problem: win32: issues with stable python ABI +Solution: if_python3,win32: Fix Python3 stable ABI + +Patch 9.0.1981 +Problem: Cannot scroll up in diff mode with many filler lines and zero + 'scrolloff'. +Solution: Invalidate w_cline_row before calling comp_botline(). + +Patch 9.0.1982 +Problem: vim9: clean up from v9.0.1955 +Solution: Fix a few remaining issues, improve error message + +Patch 9.0.1983 +Problem: Scrolling non-current window using mouse is inconsistent + depending on 'scrollbind'/'scrolloff' and different from GUI + vertical scrollbar when 'cursorbind' is set. +Solution: Don't move cursor in non-current windows for 'cursorbind' if + cursor in the current window didn't move. + +Patch 9.0.1984 +Problem: CI: Test_open_delay*() fails on FreeBSD 14 +Solution: Skip it on BSD + +Patch 9.0.1985 +Problem: CI: codecov is intrusive +Solution: disable codecov comments + +Patch 9.0.1986 +Problem: Vim9: accepting type-annotations +Solution: Reject type annotations outside of declarations. + +Patch 9.0.1987 +Problem: win32: font-size calculation can be improved +Solution: calculate font size before the window size + +Patch 9.0.1988 +Problem: Vim9: potential use-after-free for class members +Solution: Use the class-related grow array for storing the + member type instead of using a temporary type + list grow array + +Patch 9.0.1989 +Problem: Vim9: double error message given +Solution: Only give second error message, if ther + wasn't one given before + +Patch 9.0.1990 +Problem: strange error number +Solution: change error number, + add doc tag for E1507 + +Patch 9.0.1991 +Problem: no cmdline completion for setting the font +Solution: enable it on Win32 and GTK builds + +Patch 9.0.1992 +Problem: segfault in exmode when redrawing +Solution: skip gui_scroll when exmode_active + +Patch 9.0.1993 +Problem: warning about unused function definition +Solution: add ifdefs + +Patch 9.0.1994 +Problem: inconsistent feature description +Solution: delete old mentioned feature sets small and big + +Patch 9.0.1995 +Problem: Invalid memory access when 'foldexpr' returns empty string. +Solution: Check for NUL. + +Patch 9.0.1996 +Problem: Cannot build with python312 +Solution: Define wrapper types and functions for python 3.12 + +Patch 9.0.1997 +Problem: Some unused code in move.c and string.c +Solution: Remove it + +Patch 9.0.1998 +Problem: xxd: cannot reverse a bit dump +Solution: implement reversing the bit dump using -b -r + +Patch 9.0.1999 +Problem: Vim9: some error messages can be improved +Solution: Mention the defining class for variable access error message + +Patch 9.0.2000 +Problem: Vim9: use-after-free in deep call stack +Solution: Get the objct pointer from execution stack + +Patch 9.0.2001 +Problem: Vim9: segfault with islocked() +Solution: Check that the lval pointer is not null for objects and + class variables + +Patch 9.0.2002 +Problem: Vim9: need cleanup of class related interface code +Solution: Remove the unused class variable and class method related code + for interfaces. + +Patch 9.0.2003 +Problem: xxd: compilation warning +Solution: initialize variables + +Patch 9.0.2004 +Problem: Missing test file +Solution: git-add the file to the repo + +Patch 9.0.2005 +Problem: partially revert patch v9.0.1997 +Solution: add a comment, to make clear it's not used + +Patch 9.0.2006 +Problem: Vim9: need more tests +Solution: add additional disassembly tests + +Patch 9.0.2007 +Problem: Vim9: covariant parameter types allowed when assigning + functions +Solution: Enforce invariant type check for arguments and return value + when assigning a funcref + +Patch 9.0.2008 +Problem: test: undofile left behind +Solution: cleanup undofile + +Patch 9.0.2009 +Problem: cmdline-completion for comma-separated options wrong +Solution: Fix command-line expansions for options with filenames with + commas + +Patch 9.0.2010 +Problem: [security] use-after-free from buf_contents_changed() +Solution: block autocommands + +Patch 9.0.2011 +Problem: INI files not detected +Solution: detect uppercase .INI as dosini files + +Patch 9.0.2012 +Problem: Vim9: error message can be more accurate +Solution: Fix the error messages + +Patch 9.0.2013 +Problem: Unicode tables outdated +Solution: Update Unicode tables to v15.1 (released 23.09.2023) + +Patch 9.0.2014 +Problem: confusing ifdefs in if_<lang>.c +Solution: refactor ifndefs to #ifdefs + +Patch 9.0.2015 +Problem: Vim9: does not handle islocked() from a method correctly +Solution: Handle islocked() builtin from a method. + +Patch 9.0.2016 +Problem: Vim9: assignment operators don't work for class vars +Solution: implement it + +Patch 9.0.2017 +Problem: linebreak applies for leading whitespace +Solution: only apply linebreak, once we have found non-breakat chars in + the line + +Patch 9.0.2018 +Problem: complete_info() returns wrong index +Solution: Make order of 'info' in completion_info consistent + +Patch 9.0.2019 +Problem: Vim9: no support for funcrefs +Solution: Add support for object/class funcref members + +Patch 9.0.2020 +Problem: Vim9: islocked() needs more work +Solution: rework islocked() and remove sync_root + from get_lval() + +Patch 9.0.2021 +Problem: Coverity complains about change in charset (after v9.0.2017) +Solution: check pointer t at index 0 + +Patch 9.0.2022 +Problem: When clicking in the middle of a TAB, getmousepos() returns + the column of the next char instead of the TAB. +Solution: Break out of the loop when the vcol to find is inside current + char. Fix invalid memory access when calling virtcol2col() on + an empty line. + +Patch 9.0.2023 +Problem: need more tests for :cq +Solution: Add more tests, including wraparound on linux + +Patch 9.0.2024 +Problem: no filetype detection for Debian sources +Solution: Add new deb822sources filetype + +Patch 9.0.2025 +Problem: no cmdline completion for ++opt args +Solution: Add cmdline completion for :e ++opt=arg and :terminal + [++options] + +Patch 9.0.2026 +Problem: win32: python3 dll loading can be improved +Solution: Load DLL from registry path + +Patch 9.0.2027 +Problem: Vim9: no support for bitwise operators in lambda funcs +Solution: move "evaluate" assignment a bit up in order to decide + to perform bitwise operations + +Patch 9.0.2028 +Problem: confusing build dependencies +Solution: clean them up, make them parallelizable + +Patch 9.0.2029 +Problem: Vim9: no support for partials using call() +Solution: Add support + +Patch 9.0.2030 +Problem: no max callback recursion limit +Solution: bail out, if max call recursion for callback functions + has been reached. + +Patch 9.0.2031 +Problem: `TextChangedI` can trigger on entering Insert mode if there + was previously a change not in Insert mode. +Solution: Make it trigger only when text is actually changed in Insert + mode. + +Patch 9.0.2032 +Problem: Cannot accurately get mouse clicking position when clicking on + a TAB or with virtual text. +Solution: Add a "coladd" field to getmousepos() result. + +Patch 9.0.2033 +Problem: gcc overflow-warning for f_resolve +Solution: use pointer p instead of pointer q[-1] + +Patch 9.0.2034 +Problem: don't try to copy SMACK attribute, when none exist +Solution: return early if SMACK extended attributes do not exist or + if they are not supported + +Patch 9.0.2035 +Problem: [security] use-after-free with wildmenu +Solution: properly clean up the wildmenu when exiting + +Patch 9.0.2036 +Problem: if_python: rework python3.12 build dependency + (after 9.0.1996) +Solution: use PyTuple_Size instead of inlining the Py_SIZE + into the Vim code base + +Patch 9.0.2037 +Problem: A few remaining cmdline completion issues with C-E/Y +Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not + used at the end + +Patch 9.0.2038 +Problem: Vim9: object method funcref not cleaned up after use +Solution: Clean up type stack after using object method funcref, + remove now longer used ISN_DEFEROBJ instruction + +Patch 9.0.2039 +Problem: completion shows current word after completion restart +Solution: remove the word being completed after completion restart + +Patch 9.0.2040 +Problem: trim(): hard to use default mask +Solution: Use default 'mask' when it is v:none + +Patch 9.0.2041 +Problem: trim(): hard to use default mask (partly revert v9.0.2040) +Solution: use default mask when it is empty + +Patch 9.0.2042 +Problem: Test_cq_zero_exmode fails without channel feature +Solution: Make the test check the channel feature + +Patch 9.0.2043 +Problem: Vim9: issue with funcref assignment and varargs +Solution: Fix funcref type checking + +Patch 9.0.2044 +Problem: Vim9: exceptions confuse deferred functions +Solution: save and restore exception state when calling deferred + functions + +Patch 9.0.2045 +Problem: tests: checking for swap files takes time +Solution: don't check for swap files when test has been skipped + +Patch 9.0.2046 +Problem: win32,python: warning that MS_WIN64 got re-defined +Solution: Do not define MS_WIN64, as it is no longer used + +Patch 9.0.2047 +Problem: perl: warning about inconsistent dll linkage +Solution: suppress warning + +Patch 9.0.2048 +Problem: python: uninitialized warning +Solution: initialize 'minor' always + +Patch 9.0.2049 +Problem: Vim9: not recognizing qualified class vars for infix ops +Solution: Drop the class type from the stack before generating the + CLASSMEMBER instruction + +Patch 9.0.2050 +Problem: Vim9: crash with deferred function call and exception +Solution: Save and restore exception state + +Patch 9.0.2051 +Problem: Vim9: wrong error for non-existing object var +Solution: mention object or class depending on whether + the var is an object or class variable. + +Patch 9.0.2052 +Problem: win32: using deprecated wsock32 api +Solution: Use winsock2 (ws2_32) consistently + +Patch 9.0.2053 +Problem: zig filetype detection test wrong +Solution: Remove .zir pattern, add new test for .zon pattern + +Patch 9.0.2054 +Problem: win32: iscygpty needs update +Solution: Update iscygpty to the latest version, make use iswascii() + API function + +Patch 9.0.2055 +Problem: Vim9: non-consistent error messages +Solution: make error messages more consistent with common structure + +Patch 9.0.2056 +Problem: no digraph for quadruple prime +Solution: add quadruple prime digraph using 4' + +Patch 9.0.2057 +Problem: Vim9: no strict type checks for funcrefs varargs +Solution: Perform strict type checking when declaring funcrefs + with vararg declaration, add tests + +Patch 9.0.2058 +Problem: tests: avoid error when no swap files exist +Solution: use unlet! so that no error message is reported + in case the variable does not exists + +Patch 9.0.2059 +Problem: outstanding exceptions may be skipped +Solution: When restoring exception state, process remaining outstanding + exceptions + +Patch 9.0.2060 +Problem: *.{gn,gni} files are not recognized +Solution: Detect some as gn filetype (without adding an extra filetype) + +Patch 9.0.2061 +Problem: not able to detect xkb filetypes +Solution: Detect files below /u/s/X11/xkb as xkb files (without adding + an extra filetype) + +Patch 9.0.2062 +Problem: Janet files are not recognised +Solution: Add filename and shebang detection (without + adding an extra filetype plugin) + +Patch 9.0.2063 +Problem: pacman hooks are detected as conf filetype +Solution: make it consistent to pacman.conf and detect those + hooks as confini + +Patch 9.0.2064 +Problem: cannot use buffer-number for errorformat +Solution: add support for parsing a buffer number using '%b' in + 'errorformat' + +Patch 9.0.2065 +Problem: EXPAND flag set for filetype option +Solution: Remove P_EXPAND flag from the 'filetype' option + +Patch 9.0.2066 +Problem: xxd: corrupting files when reversing bit dumps +Solution: handle reversing bit dump slightly differently + +Patch 9.0.2067 +Problem: xxd: coloring was disabled on Cygwin +Solution: don't include WIN32 + +Patch 9.0.2068 +Problem: [security] overflow in :history +Solution: Check that value fits into int + +Patch 9.0.2069 +Problem: possible to escape bracketed paste mode with Ctrl-C +Solution: Do not handle Ctrl-C specially when key_protocol + is in use, makes bracketed paste mode more robust + +Patch 9.0.2070 +Problem: [security] disallow setting env in restricted mode +Solution: Setting environment variables in restricted mode could + potentially be used to execute shell commands. Disallow this. + +Patch 9.0.2071 +Problem: objdump files not recognized +Solution: detect *.objdump files, add a filetype plugin + +Patch 9.0.2072 +Problem: Vim9: no nr2str conversion in list-unpack +Solution: Generate 2STRING instruction to convert dict index to string + +Patch 9.0.2073 +Problem: typo in quickfix.c comments +Solution: fix them + +Patch 9.0.2074 +Problem: Completion menu may be wrong +Solution: Check for the original direction of the completion menu, + add more tests, make it work with 'noselect' + +Patch 9.0.2075 +Problem: TextChangedI may not always trigger +Solution: trigger it in more cases: for insert/ + append/change operations, and when + opening a new line, + +Patch 9.0.2076 +Problem: Vim9: No support for type aliases +Solution: Implement :type command + +Patch 9.0.2077 +Problem: CI fails because of trailing whitespace in test +Solution: Remove it + +Patch 9.0.2078 +Problem: several problems with type aliases +Solution: Check for more error conditions, add tests, + fix issues + +Patch 9.0.2079 +Problem: Not all Dart files detected +Solution: Add shebang filetype detection for Dart + +Patch 9.0.2080 +Problem: vim9_script test too large +Solution: split vim9 type alias test into + separate test file + +Patch 9.0.2081 +Problem: With 'smoothscroll' set, "w_skipcol" is not reset when unsetting + 'wrap'. Resulting in incorrect calculation of the cursor position. +Solution: Reset "w_skipcol" when unsetting 'wrap'. + +Patch 9.0.2082 +Problem: test_channel may fail because of IPv6 config issues +Solution: Catch and skip the test, if getaddrinfo() fails with + 'Address family not supported' + +Patch 9.0.2083 +Problem: Perl: xsubpp may be in non-standard location +Solution: Add --with-subpp configure option + +Patch 9.0.2084 +Problem: Vim9: abstract static methods are possible +Solution: Disallow abstract static methods + +Patch 9.0.2085 +Problem: Vim9: abstract can be used in interface +Solution: Disallow the use of abstract in an interface + +Patch 9.0.2086 +Problem: code cleanup for option callbacks needed +Solution: remove flag os_doskip, it's not necessary, as we can check, + whether an error message was returned + +Patch 9.0.2087 +Problem: build-failure in vim9class +Solution: reference correct error message, + disable non-failing test + +Patch 9.0.2088 +Problem: Vim9: still allows abstract static methods + (after v9.0.2084, v9.0.2085 and v9.0.2087) +Solution: Disallow abstract static methods + +Patch 9.0.2089 +Problem: sound_playfile() fails when using powershell +Solution: quote filename using doublequotes, don't escape filename, + because it doesn't use the shell + +Patch 9.0.2090 +Problem: complete_info() skips entries with 'noselect' +Solution: Check, if first entry is at original text state + +Patch 9.0.2091 +Problem: Vim9: cannot convert list to string using += + (after 9.0.2072) +Solution: convert dict index to string later in compile_member() + +Patch 9.0.2092 +Problem: tests: failure in test_arabic +Solution: adjust the test for the changed arabic keymap + +Patch 9.0.2093 +Problem: Unsupported option causes rest of modeline test to be skipped. +Solution: Revert the change from patch 8.2.1432. + +Patch 9.0.2094 +Problem: Vim9: need more assignment tests +Solution: Add test for using different types in assignment, function + arguments and return values + +Patch 9.0.2095 +Problem: statusline may look different than expected +Solution: do not check for highlighting of stl and stlnc characters + +Patch 9.0.2096 +Problem: Vim9: confusing usage of private +Solution: clarify and use protected keyword instead + +Patch 9.0.2097 +Problem: No support for cypher files +Solution: Add cypher filetype detection + +Patch 9.0.2098 +Problem: No filetype support for xcompose files +Solution: Add filetype detection + +Patch 9.0.2099 +Problem: Terminal control codes¹ are sent even when silent + mode is on, causing the terminal to clear up +Solution: Block any terminal codes when silent mode is on + +Patch 9.0.2100 +Problem: CI: test_Termdebug fails +Solution: only test for a changed winlayout, if the window + width actually changed + +Patch 9.0.2101 +Problem: CI: test_termdebug may still fail +Solution: use term_wait() to make it more robust + +Patch 9.0.2102 +Problem: matchparen highlight not cleared in completion mode +Solution: Clear matchparen highlighting in completion mode + +Patch 9.0.2103 +Problem: recursive callback may cause issues on some archs +Solution: Decrease the limit drastically to 20 + +Patch 9.0.2104 +Problem: wast filetype should be replaced by wat filetype +Solution: start using the official wat filetype name + +Patch 9.0.2105 +Problem: Skipcol is not reset when topline changed scrolling cursor to top +Solution: reset skipcol + +Patch 9.0.2106 +Problem: [security]: Use-after-free in win_close() +Solution: Check window is valid, before accessing it + +Patch 9.0.2107 +Problem: [security]: FPE in adjust_plines_for_skipcol +Solution: don't divide by zero, return zero + +Patch 9.0.2108 +Problem: [security]: overflow with count for :s command +Solution: Abort the :s command if the count is too large + +Patch 9.0.2109 +Problem: [security]: overflow in nv_z_get_count +Solution: break out, if count is too large + +Patch 9.0.2110 +Problem: [security]: overflow in ex address parsing +Solution: Verify that lnum is positive, before subtracting from + LONG_MAX + +Patch 9.0.2111 +Problem: [security]: overflow in get_number +Solution: Return 0 when the count gets too large + +Patch 9.0.2112 +Problem: [security]: overflow in shift_line +Solution: allow a max indent of INT_MAX + +Patch 9.0.2113 +Problem: Coverity warns for another overflow in shift_line() +Solution: Test for INT_MAX after the if condition, cast integer values + to (long long) before multiplying. + +Patch 9.0.2114 +Problem: overflow detection not accurate when adding digits +Solution: Use a helper function + +Patch 9.0.2115 +Problem: crash when callback function aborts because of recursiveness +Solution: correctly initialize rettv + +Patch 9.0.2116 +Problem: No test for defining sign without attribute +Solution: Add test for defining sign without attributes + +Patch 9.0.2117 +Problem: [security] use-after-free in qf_free_items +Solution: only access qfpnext, if it hasn't been freed + +Patch 9.0.2118 +Problem: [security]: avoid double-free +Solution: Only fee plain_font, when it is not the same as bold_font + +Patch 9.0.2119 +Problem: remove dead-condition in ex_class() +Solution: remove the extra condition + +Patch 9.0.2120 +Problem: un-used assignment in do_source_buffer_init +Solution: Remove it + +Patch 9.0.2121 +Problem: [security]: use-after-free in ex_substitute +Solution: always allocate memory + +Patch 9.0.2122 +Problem: [security]: prevent overflow in indenting +Solution: use long long and remove cast to (int) + +Patch 9.0.2123 +Problem: Problem with initializing the length of range() lists +Solution: Set length explicitly when it shouldn't contain any items + +Patch 9.0.2124 +Problem: INT overflow logic can be simplified +Solution: introduce trim_to_int() function + +Patch 9.0.2125 +Problem: File info disappears immediately when 'cmdheight' has just + decreased due to switching tabpage and 'shortmess' doesn't + contain 'o' or 'O'. +Solution: Make sure msg_row isn't smaller than cmdline_row. + +Patch 9.0.2126 +Problem: Unused assignments when checking the value of 'listchars'. +Solution: Loop only once when just checking the value. Add a test to + check that this change doesn't cause double-free. + +Patch 9.0.2127 +Problem: translation Makefiles can be improved +Solution: Modified and extended po-related Makefiles and + related files + +Patch 9.0.2128 +Problem: No runtime files for SWIG filetypes +Solution: Add syntax and filetype plugins for SWIG (Simplified Wrapper + Interface Generator) description files. + +Patch 9.0.2129 +Problem: [security]: use-after-free in call_dfunc() +Solution: Refresh dfunc pointer + +Patch 9.0.2130 +Problem: some errors with translation Makefiles +Solution: fix issues + +Patch 9.0.2131 +Problem: not all nushell files detected +Solution: use *.nu to detect nushell files + +Patch 9.0.2132 +Problem: Duplicate Netbeans Error Message +Solution: Remove duplicate message + +Patch 9.0.2133 +Problem: Cannot detect overstrike mode in Cmdline mode +Solution: Make mode() return "cr" for overstrike + +Patch 9.0.2134 +Problem: ml_get error when scrolling after delete +Solution: mark topline to be validated in main_loop + if it is larger than current buffers line + count + +Patch 9.0.2135 +Problem: No test for mode() when executing Ex commands +Solution: Add some test cases and simplify several other test cases. + Also add a few more test cases for ModeChanged. + +Patch 9.0.2136 +Problem: MSVC errorformat can be improved +Solution: parse error type and column number in MSVC errorformat + +Patch 9.0.2137 +Problem: Can't detect angular & mustache filetypes +Solution: Detect *.mustache as Mustache filetype; + detect *.component.html as html.angular filetype + +Patch 9.0.2138 +Problem: Overflow logic requires long long +Solution: Define vimlong_T data type to make life easier + for porters + +Patch 9.0.2139 +Problem: html.angular ft is problematic +Solution: partly revert v9.0.2137 + +Patch 9.0.2140 +Problem: [security]: use-after-free in win-enter +Solution: validate window pointer before calling win_enter() + +Patch 9.0.2141 +Problem: [security]: buffer-overflow in suggest_trie_walk +Solution: Check n before using it as index into bytes array + +Patch 9.0.2142 +Problem: [security]: stack-buffer-overflow in option callback functions +Solution: pass size of errbuf down the call stack, use snprintf() + instead of sprintf() + +Patch 9.0.2143 +Problem: [security]: buffer-overflow in ex_substitute +Solution: clear memory after allocating + +Patch 9.0.2144 +Problem: Text properties causes wrong line wrapping to be drawn. +Solution: Find the index of the last text property that inserts text. + +Patch 9.0.2145 +Problem: Wrong scrolling in Insert mode with 'smoothscroll' at the + bottom of the window. +Solution: Don't use set_topline() when 'smoothscroll' is set. + +Patch 9.0.2146 +Problem: text-property without type errors when joining +Solution: count all text-properties, with or without type + before joining lines + +Patch 9.0.2147 +Problem: Type check tests fail without the channel feature +Solution: only run tests, when Vim was build with +channel + +Patch 9.0.2148 +Problem: Vim does not detect pacman.log file +Solution: Detect pacmanlogs and add syntax highlighting + +Patch 9.0.2149 +Problem: [security]: use-after-free in exec_instructions() +Solution: get tv pointer again + +Patch 9.0.2150 +Problem: Using int for errbuflen in option funcs +Solution: Use size_t for errbuflen in string option functions + +Patch 9.0.2151 +Problem: 'breakindent' is not drawn after diff filler lines. +Solution: Correct check for whether 'breakindent' should be drawn. + +Patch 9.0.2152 +Problem: Using type unknown for List/Dict containers +Solution: Use 'any' instead + +Patch 9.0.2153 +Problem: no support to build on OpenVMS +Solution: Add OpenVMS X86_64 platform port + +Patch 9.0.2154 +Problem: The options[] array is not sorted alphabetically. +Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop + iterations in findoption(). + +Patch 9.0.2155 +Problem: Vim9: type not kept when assigning vars +Solution: When assigning a List or a Dict value to a variable of type + 'any', keep the type + +Patch 9.0.2156 +Problem: Vim9: can use typealias in an assignment +Solution: Generate errors when class/typealias involved in the rhs of an + assignment + +Patch 9.0.2157 +Problem: Vim9: incorrectly parses :def func definitions +Solution: check for more context when parsing function args + +Patch 9.0.2158 +Problem: [security]: use-after-free in check_argument_type +Solution: Reset function type pointer when freeing the function type + list + +Patch 9.0.2159 +Problem: screenpos() may crash with neg. column +Solution: validate and correct column + +Patch 9.0.2160 +Problem: instanceof() should use varargs as second arg +Solution: Modify `instanceof()` to use varargs instead of list + +Patch 9.0.2161 +Problem: Vim9: not able to use imported interfaces and classes +Solution: Detect imported class/interfaces names correctly + +Patch 9.0.2162 +Problem: Vim9: type documentation out-dated +Solution: Update documentation, fix typo in type alias + definition + +Patch 9.0.2163 +Problem: Vim9: type can be assigned to list/dict +Solution: Prevent assigning a `type` to a `list` or `dict` + +Patch 9.0.2164 +Problem: Vim9: can use type a func arg/return value +Solution: Check if using type as function argument or return value + +Patch 9.0.2165 +Problem: Vim9: can simplify arg type checking code +Solution: In `f_argcheck` array use `arg_any`, instead of NULL + +Patch 9.0.2166 +Problem: Memory leak in Configure Script when checking GTK +Solution: Free the allocated memory + +Patch 9.0.2167 +Problem: Vim9-script object/class variable declarations use syntax + that is inconsistent with the rest of the language. +Solution: Use :var to declare object and class variables. + +Patch 9.0.2168 +Problem: Moving tabpages on :drop may cause an endless loop +Solution: Disallow moving tabpages on :drop when cleaning up the arglist + first + +Patch 9.0.2169 +Problem: Vim9: builtin funcs may accept a non-value +Solution: Restrict builtin functions that accept `type` + +Patch 9.0.2170 +Problem: Vim9: no support for const/final class/objects vars +Solution: Support final and const object and class variables + +Patch 9.0.2171 +Problem: The options[] array is still not sorted alphabetically + (after: v9.0.2154), causing test failures +Solution: Sort the remaining items + +Patch 9.0.2172 +Problem: Vim9: compiling :defer may fail +Solution: compile defer, when ctx_skip is not SKIP_YES + +Patch 9.0.2173 +Problem: Vim9: Vim crashes when compiling a for statement with a + non-existing type +Solution: Error out when lhs_type is not null + +Patch 9.0.2174 +Problem: Vim9: segfault when assigning to type +Solution: do not clear typeval, add missing patch number + +Patch 9.0.2175 +Problem: Compiler warning for uninitialized var +Solution: initialize variable to NULL + +Patch 9.0.2176 +Problem: Compile error with Motif UI + mouse support (after v9.0.1262) +Solution: Use correct oldval option pointer + +Patch 9.0.2177 +Problem: Wrong cursor position when dragging out of window. +Solution: Don't use ScreenCols[] when mouse is not in current window. + +Patch 9.0.2178 +Problem: reg_executing() returns wrong result in :normal with range + when 'showcmd' is set (after 8.2.4705). +Solution: Reset "pending_end_reg_executing" when executing a register. + +Patch 9.0.2179 +Problem: no filetype detection for execline scripts +Solution: Add filetype detection for execline + +Patch 9.0.2180 +Problem: POSIX function name in exarg struct causes issues + on OpenVMS +Solution: Rename getline member in exarg struct to ea_getline, + remove isinf() workaround for VMS + +Patch 9.0.2181 +Problem: Vim9: missing error messages +Solution: Add one more error message + +Patch 9.0.2182 +Problem: Vim9: need a way to reserve future extension +Solution: reserve double underscore prefix for future use + (Yegappan Lakshmanan) + +Patch 9.0.2183 +Problem: Maximum callback depth is not configurable. +Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test. + (zeertzjq) + +Patch 9.0.2184 +Problem: Vim9: inconsistent :type/:class messages +Solution: Update the Messages (Ernie Rael) + +Patch 9.0.2185 +Problem: Coverity complains about not checking return value + in compare_isn_not_values (after 9.0.2184) +Solution: cast return value to "(void)" to make intention clear + +Patch 9.0.2186 +Problem: LTCG compile error on Win/ARM64 for `write_chars()` +Solution: Explicitly initialise the storage to use data rather than BSS + (Saleem Abdulrasool) + +Patch 9.0.2187 +Problem: Visual selection isn't drawn with 'breakindent' when the line + doesn't fit in the window (Jaehwang Jung) +Solution: Adjust wlv->fromcol also for 'breakindent' (zeertzjq) + +Patch 9.0.2188 +Problem: cursor wrong after { in single line buffer + (Edwin Chan) +Solution: do not place the cursor at the end for a single + line buffer when moving backwards (Gary Johnson) + +Patch 9.0.2189 +Problem: Wrong display when 'breakindentopt' contains "sbr" and + 'showbreak' and 'nobreakindent' are set. +Solution: Always reset wlv->need_showbreak regardless of the values of + 'breakindent' and 'showbreak', as they aren't checked when + setting wlv->need_showbreak (zeertzjq) + +Patch 9.0.2190 +Problem: proto files need update +Solution: re-generate them + + vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual: |