*version9.txt*  For Vim version 9.0.  Last change: 2022 Nov 23


		  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|


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!

==============================================================================
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:   Declear 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 xchaha20 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 xchaha20 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 Eelixir for the similar filetypes. (Aaron Tinio, closes #10124)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.4730
Problem:    MS-Windows GUI: cannot use CTRL-/.
Solution:   Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141)
Files:      src/gui_w32.c

Patch 8.2.4731
Problem:    The changelist index is not remembered per buffer.
Solution:   Keep the changelist index per window and buffer. (closes #10135,
            closes #2173)
Files:      src/buffer.c, src/evalfunc.c, src/structs.h,
            src/testdir/test_changelist.vim

Patch 8.2.4732
Problem:    Duplicate code to free fuzzy matches.
Solution:   Bring back fuzmatch_str_free().
Files:      src/search.c, src/proto/search.pro, src/cmdexpand.c

Patch 8.2.4733 (after 8.2.4729)
Problem:    HEEx and Surface do need a separate filetype.
Solution:   Revert 8.2.4729. (closes #10147)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.4734
Problem:    getcharpos() may change a mark position.
Solution:   Copy the mark position. (closes #10148)
Files:      src/eval.c, src/testdir/test_cursor_func.vim

Patch 8.2.4735
Problem:    Quickfix tests can be a bit hard to read.
Solution:   Use heredoc instead of strings and line continuation. (Yegappan
            Lakshmanan, closes #10145)
Files:      src/testdir/test_quickfix.vim

Patch 8.2.4736
Problem:    Build problem for Cygwin with Motif.
Solution:   Undefine ControlMask. (Kelvin Lee, closes #10152)
Files:      src/mbyte.c

Patch 8.2.4737
Problem:    // in JavaScript string recognized as comment.
Solution:   Only check for linecomment if 'cindent' is set. (closes #10151)
Files:      src/change.c, src/testdir/test_textformat.vim

Patch 8.2.4738
Problem:    Esc on commandline executes command instead of abandoning it.
Solution:   Save and restore KeyTyped when removing the popup menu.
            (closes #10154)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
            src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_1.dump,
            src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_2.dump

Patch 8.2.4739
Problem:    Accessing freed memory after WinScrolled autocmd event.
Solution:   Check the window pointer is still valid. (closes #10156)
            Remove the argument from may_trigger_winscrolled().
Files:      src/window.c, src/proto/window.pro, src/edit.c, src/gui.c,
            src/main.c, src/testdir/test_autocmd.vim

Patch 8.2.4740
Problem:    When expand() fails there is no error message.
Solution:   When 'verbose' is set give an error message.
Files:      runtime/doc/builtin.txt, src/evalfunc.c,
            src/testdir/test_expand.vim

Patch 8.2.4741 (after 8.2.4740)
Problem:    Startup test fails.
Solution:   Avoid an error for verbose expansion.  Fix that the "0verbose"
            command modifier doesn't work.
Files:      runtime/syntax/syntax.vim, runtime/syntax/synload.vim,
            src/structs.h, src/ex_docmd.c, src/testdir/test_excmd.vim

Patch 8.2.4742
Problem:    There is no way to start logging very early in startup.
Solution:   Add the --log argument.  Include the date in the start message in
            the log file.  Avoid a duplicate message when forking.  Log an
            executed shell command.
Files:      runtime/doc/starting.txt, runtime/doc/channel.txt,
            src/main.c, src/channel.c, src/os_unix.c, src/os_win32.c,
            src/testdir/test_startup.vim

Patch 8.2.4743
Problem:    Clang 14 is available on CI.
Solution:   Switch from clang 13 to 14. (closes #10157)
Files:      .github/workflows/ci.yml

Patch 8.2.4744
Problem:    A terminal window can't use the bell.
Solution:   Add bell support for the terminal window. (closes #10178)
Files:      runtime/doc/options.txt, src/gui_w32.c, src/option.h,
            src/optionstr.c, src/terminal.c

Patch 8.2.4745 (after 8.2.4744)
Problem:    Using wrong flag for using bell in the terminal.
Solution:   Change to use BO_TERM.
Files:      src/terminal.c, src/misc1.c

Patch 8.2.4746
Problem:    Supercollider filetype not recognized.
Solution:   Match file 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 typahead.
Solution:   Only loop when the typeahead changed.
Files:      src/channel.c

Patch 8.2.4831
Problem:    Crash when using maparg() and unmapping simplified keys.
Solution:   Do not keep a mapblock pointer. (closes #10294)
Files:      src/map.c, src/testdir/test_map_functions.vim

Patch 8.2.4832
Problem:    Passing zero instead of NULL to a pointer argument.
Solution:   Use NULL. (closes #10296)
Files:      src/getchar.c, src/term.c

Patch 8.2.4833
Problem:    Failure of mapping not checked for.
Solution:   Check return value of ins_typebuf(). (closes #10299)
Files:      src/getchar.c, src/term.c, src/testdir/test_termcodes.vim

Patch 8.2.4834
Problem:    Vim9: some lines not covered by tests.
Solution:   Add a few more tests.  Remove dead code.
Files:      src/vim9execute.c, src/vim9instr.c, src/vim9.h,
            src/testdir/test_vim9_expr.vim

Patch 8.2.4835
Problem:    Vim9: some lines not covered by tests.
Solution:   Add a few more tests.  Fix disassemble output.
Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim,
            src/testdir/test_vim9_script.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.4836
Problem:    Vim9: some lines not covered by tests.
Solution:   Remove dead code.  Add disassemble tests.
Files:      src/vim9execute.c, src/vim9.h,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.4837 (after patch 8.2.0919)
Problem:    Modifiers not simplified when timed out or using feedkeys() with
            'n" flag.
Solution:   Adjust how mapped flag and timeout are used. (closes #10305)
Files:      src/getchar.c, src/testdir/test_paste.vim,
            src/testdir/test_termcodes.vim

Patch 8.2.4838
Problem:    Checking for absolute path is not trivial.
Solution:   Add isabsolutepath(). (closes #10303)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/filepath.c, src/proto/filepath.pro,
            src/testdir/test_functions.vim

Patch 8.2.4839
Problem:    Compiler warning for unused argument.
Solution:   Add "UNUSED".
Files:      src/gui_gtk_x11.c

Patch 8.2.4840
Problem:    Heredoc expression evaluated even when skipping.
Solution:   Don't evaluate when "skip" is set. (closes #10306)
Files:      src/evalvars.c, src/testdir/test_let.vim

Patch 8.2.4841
Problem:    Empty string considered an error for expand() when 'verbose' is
            set. (Christian Brabandt)
Solution:   Do not give an error for an empty result. (closes #10307)
Files:      src/evalfunc.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/filepath.c, src/testdir/test_expand_func.vim

Patch 8.2.4842 (after 8.2.4841)
Problem:    expand("%:p") is not empty when there is no buffer name.
Solution:   When ignoring errors still return NULL. (closes #10311)
Files:      src/ex_docmd.c, src/testdir/test_expand_func.vim

Patch 8.2.4843 (after 8.2.4807)
Problem:    Win32 GUI: Treating CTRL + ALT as AltGr is not backwards
            compatible. (Axel Bender)
Solution:   Make a difference between left and right menu keys.
            (closes #10308)
Files:      src/gui_w32.c

Patch 8.2.4844
Problem:    <C-S-I> is simplified to <S-Tab>.
Solution:   Do not simplify CTRL if there is also SHIFT. (closes #10313)
Files:      src/getchar.c, src/testdir/test_gui.vim

Patch 8.2.4845
Problem:    Duplicate code.
Solution:   Move code below if/else. (closes #10314)
Files:      src/misc1.c

Patch 8.2.4846 (after 8.2.4844)
Problem:    Termcodes test fails.
Solution:   use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316)
Files:      runtime/doc/cmdline.txt, src/edit.c, src/getchar.c,
            src/testdir/test_gui.vim

Patch 8.2.4847
Problem:    Crash when using uninitialized function pointer.
Solution:   Check for NULL pointer. (closes #10319, closes #10319)
Files:      src/eval.c, src/testdir/test_vim9_script.vim

Patch 8.2.4848
Problem:    Local completion with mappings and simplification not working.
Solution:   Fix local completion <C-N>/<C-P> mappings not ignored if keys are
            not simplified. (closes #10323)
Files:      src/getchar.c, src/testdir/test_popup.vim

Patch 8.2.4849
Problem:    Gleam filetype not detected.
Solution:   Add a pattern for Gleam files. (Mathias Jean Johansen,
            closes #10326)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.4850
Problem:    Mksession mixes up "tabpages" and "curdir" arguments.
Solution:   Correct logic for storing tabpage in session. (closes #10312)
Files:      src/session.c, src/testdir/test_mksession.vim

Patch 8.2.4851
Problem:    Compiler warning for uninitialized variable.
Solution:   Use another variable to decide to restore option values.
Files:      src/session.c

Patch 8.2.4852
Problem:    ANSI color index to RGB value not correct.
Solution:   Convert the cterm index to ANSI index. (closes #10321,
            closes #9836)
Files:      src/term.c

Patch 8.2.4853
Problem:    CI with FreeBSD is a bit outdated.
Solution:   Use 12.3 instead of 12.1. (closes #10333)
Files:      .cirrus.yml

Patch 8.2.4854
Problem:    Array size does not match usage.
Solution:   Make array size 3 instead of 4. (Christian Brabandt, closes #10336)
Files:      src/term.c

Patch 8.2.4855
Problem:    Robot files are not recognized.
Solution:   Add patterns for robot files. (Zoe Roux, closes #10339)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.4856
Problem:    MinGW compiler complains about unknown escape sequence.
Solution:   Avoid using a backslash in path. (Christian Brabandt,
            closes #10337)
Files:      .github/workflows/ci.yml

Patch 8.2.4857
Problem:    Yaml indent for multiline is wrong.
Solution:   Adjust patterns. (closes #10328, closes #8740)
Files:      runtime/indent/yaml.vim, runtime/indent/testdir/yaml.in,
            runtime/indent/testdir/yaml.ok

Patch 8.2.4858
Problem:    K_SPECIAL may be escaped twice.
Solution:   Avoid double escaping. (closes #10340)
Files:      src/highlight.c, src/misc2.c, src/proto/misc2.pro, src/term.c,
            src/typval.c, src/testdir/test_eval_stuff.vim,
            src/testdir/test_feedkeys.vim, src/testdir/test_functions.vim,
            src/testdir/test_mapping.vim

Patch 8.2.4859
Problem:    wget2 files are not recognized.
Solution:   Add patterns to recognize wget2. (Doug Kearns)
Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

Patch 8.2.4860
Problem:    MS-Windows: always uses current directory for executables.
Solution:   Check the NoDefaultCurrentDirectoryInExePath environment variable.
            (Yasuhiro Matsumoto, closes #10341)
Files:      runtime/doc/builtin.txt, src/os_win32.c,
            src/testdir/test_functions.vim

Patch 8.2.4861
Problem:    It is not easy to restore saved mappings.
Solution:   Make mapset() accept a dict argument. (Ernie Rael, closes #10295)
Files:      runtime/doc/builtin.txt, src/errors.h, src/evalfunc.c, src/map.c,
            src/typval.c, src/proto/typval.pro,
            src/testdir/test_map_functions.vim,
            src/testdir/test_vim9_builtin.vim

Patch 8.2.4862
Problem:    Vim9: test may fail when run with valgrind.
Solution:   Wait longer for callback if needed.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.4863
Problem:    Accessing freed memory in test without the +channel feature.
            (Dominique Pellé)
Solution:   Do not generted PUSHCHANNEL or PUSHJOB if they are not
            implemented. (closes #10350)
Files:      src/vim9instr.c, src/errors.h, src/vim9compile.c,
            src/testdir/test_vim9_script.vim

Patch 8.2.4864 (after 8.2.4863)
Problem:    Vim9: script test fails.
Solution:   Remove "if" around declaration.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.4865
Problem:    :startinsert right after :stopinsert does not work when popup menu
            is still visible.
Solution:   Use ins_compl_active() instead of pum_visible(). (closes #10352)
Files:      src/edit.c, src/testdir/test_ins_complete.vim

Patch 8.2.4866
Problem:    Duplicate code in "get" functions.
Solution:   Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar()
            and getbufvar(). (closes #10335)
Files:      src/evalvars.c

Patch 8.2.4867
Problem:    Listing of mapping with K_SPECIAL is wrong.
Solution:   Adjust escaping of special characters. (closes #10351)
Files:      src/map.c, src/message.c, src/testdir/test_mapping.vim

Patch 8.2.4868
Problem:    When closing help window autocmds triggered for the wrong window.
Solution:   Figure out the new current window earlier. (closes #10348)
Files:      src/window.c, src/testdir/test_help.vim

Patch 8.2.4869
Problem:    Expression in command block does not look after NL.
Solution:   Skip over NL to check what follows. (closes #10358)
Files:      src/eval.c, src/proto/eval.pro, src/vim9script.c,
            src/testdir/test_usercommands.vim

Patch 8.2.4870
Problem:    Vim9: expression in :substitute is not compiled.
Solution:   Use an INSTR instruction if possible. (closes #10334)
Files:      src/evalfunc.c, src/regexp.c, src/vim9execute.c, src/vim9expr.c,
            src/testdir/test_vim9_builtin.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.4871
Problem:    Vim9: in :def function no error for using a range with a command
            that does not accept one.
Solution:   Check for the command to accept a range. (closes #10330)
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

Patch 8.2.4872
Problem:    Vim9: no error for using an expression only at the script level
            when followed by an empty line.
Solution:   Do not check the line number but whether something follows.
            (closes #10357)
Files:      src/ex_eval.c, src/testdir/test_vim9_cmd.vim

Patch 8.2.4873
Problem:    Vim9: using "else" differs from using "endif/if !cond".
Solution:   Leave the block and enter another one. (closes #10320)
Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

Patch 8.2.4874
Problem:    Win32 GUI: horizontal scroll wheel not handled properly.
Solution:   Also handle WM_MOUSEHWHEEL. (closes #10309)
Files:      src/gui_w32.c

Patch 8.2.4875
Problem:    MS-Windows: some .exe files are not recognized.
Solution:   Parse APPEXECLINK junctions. (closes #10302)
Files:      src/os_mswin.c, src/proto/os_mswin.pro, src/os_win32.c,
            src/os_win32.h, src/testdir/test_functions.vim

Patch 8.2.4876
Problem:    MS-Windows: Shift-BS results in strange character in powershell.
Solution:   Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279)
Files:      src/edit.c, src/keymap.h, src/term.c, src/testdir/shared.vim,
            src/testdir/test_edit.vim

Patch 8.2.4877
Problem:    MS-Windows: Using Normal colors for termguicolors causes problems.
Solution:   Do not use Normal colors to set sg_gui_fg and sg_gui_bg.
            (Christian Brabandt, closes #10317, closes #10241)
Files:      src/highlight.c

Patch 8.2.4878
Problem:    Valgrind warning for using uninitialized variable.
Solution:   Initialize the type of newtv.
Files:      src/strings.c

Patch 8.2.4879
Problem:    Screendump test may fail when using valgrind.
Solution:   Wait longer for the first screendump.
Files:      src/testdir/test_vim9_builtin.vim, src/testdir/screendump.vim

Patch 8.2.4880
Problem:    Vim9: misplaced elseif causes invalid memory access.
Solution:   Check cs_idx not to be negative.
Files:      src/ex_eval.c

Patch 8.2.4881
Problem:    "P" in Visual mode still changes some registers.
Solution:   Make "P" in Visual mode not change any register. (Shougo
            Matsushita, closes #10349)
Files:      runtime/doc/change.txt, runtime/doc/index.txt,
            runtime/doc/visual.txt, src/normal.c, src/testdir/test_visual.vim

Patch 8.2.4882
Problem:    Cannot make 'breakindent' use a specific column.
Solution:   Add the "column" entry in 'breakindentopt'. (Christian Brabandt,
            closes #10362, closes #10325)
Files:      runtime/doc/options.txt, src/indent.c, src/structs.h,
            src/testdir/test_breakindent.vim

Patch 8.2.4883
Problem:    String interpolation only works in heredoc.
Solution:   Support interpolated strings.  Use syntax for heredoc consistent
            with strings, similar to C#. (closes #10327)
Files:      runtime/doc/eval.txt, src/errors.h, src/eval.c, src/evalvars.c,
            src/proto/evalvars.pro, src/typval.c, src/proto/typval.pro,
            src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c,
            src/testdir/test_debugger.vim, src/testdir/test_expr.vim,
            src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim,
            src/testdir/test_vim9_disassemble.vim

Patch 8.2.4884
Problem:    Test fails without the job/channel feature. (Dominique Pellé)
Solution:   Add condition.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.4885 (after 8.2.4884)
Problem:    Test fails with the job/channel feature.
Solution:   Move check for job/channel separately.
Files:      src/testdir/test_vim9_script.vim

Patch 8.2.4886
Problem:    Vim9: redir in skipped block seen as assignment.
Solution:   Check for valid assignment.
Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim

Patch 8.2.4887
Problem:    Channel log does not show invoking a timer callback.
Solution:   Add a ch_log() call.
Files:      src/time.c

Patch 8.2.4888
Problem:    Line number of lambda ignores line continuation.
Solution:   Use the line number of where the arguments are. Avoid outputting
            "..." twice. (closes #10364)
Files:      src/userfunc.c

Patch 8.2.4889
Problem:    CI only tests with FreeBSD 12.
Solution:   Also test with FreeBSD 13. (closes #10366)
Files:      .cirrus.yml

Patch 8.2.4890
Problem:    Inconsistent capitalization in error messages.
Solution:   Make capitalization consistent. (Doug Kearns)
Files:      src/errors.h

Patch 8.2.4891
Problem:    Vim help presentation could be better.
Solution:   Add an imported file for extra Vim help support.  Show highlight
            names in the color they have.
Files:      Filelist, runtime/import/dist/vimhelp.vim

Patch 8.2.4892
Problem:    Test failures because of changed error messages.
Solution:   Adjust the 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


 vim:tw=78:ts=8:noet:ft=help:norl:
