# Vim documentation: version9

main help file

    *version9.txt*	For Vim version 9.2.  Last change: 2026 Feb 14

    		  VIM REFERENCE MANUAL	  by Bram Moolenaar

    				*vim-9.0* *vim-9* *version-9.0* *version9.0*
    Welcome to Vim 9!  Several years have passed since the previous release.
    A large number of bugs have been fixed, many nice features have been added
    and the Vim9 script syntax is here!  This file mentions all the new things and
    changes to existing features since Vim 8.2.0. The patches up to Vim 8.2 can be
    found here: |vim-8.2|.

    Use this command to see the full version and features information of the Vim
    program you are using:
    	:version

    NEW FEATURES					|new-9|
       Vim script enhancements			|new-vim-script-9|
       Command line completion in a popup menu	|new-popup-compl|
       Updated colorschemes				|new-colorschemes-9|
       Various new items				|new-items-9|

    INCOMPATIBLE CHANGES				|incompatible-9|

    IMPROVEMENTS					|improvements-9|

    COMPILE TIME CHANGES				|compile-changes-9|

    PATCHES						|patches-9|

    VERSION 9.1					|version-9.1|
       Changed					|changed-9.1|
       Added					|added-9.1|
       Patches					|patches-9.1|

    VERSION 9.2					|version-9.2|
       Changed					|changed-9.2|
       Added					|added-9.2|
       Patches					|patches-9.2|

    See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
    See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
    |version8.txt| for differences between Vim versions.

    You can find an overview of the most important changes (according to Martin
    Tournoij) on this site: https://www.arp242.net/vimlog/

    							*Sven-Guckes*
    Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
    when the release was being prepared.  Sven was a long time supporter of Vim.
    He registered the vim.org domain and created the first Vim website.  We will
    remember him!

    						 *Bram* *Moolenaar* *Bram-Moolenaar*
    Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd
    2023 while still working full-time on Vim.  The Vim project would not exist
    without his ongoing passion to lead and develop Vim and the community for more
    than 30 years.  Bram was also passionate about his ICCF foundation to help
    children in Uganda.  If you enjoy using Vim, please consider donating! We will
    miss his guidance, passion and leadership.

    Obituary Articles: https://github.com/vim/vim/discussions/12742
    Say Farewell: https://github.com/vim/vim/discussions/12737

    ==============================================================================

    NEW FEATURES						*new-9*

    First an overview of the more interesting new features.  A comprehensive list
    is below.

    Vim9 script

    							*new-vim-script-9*
    The Vim script language has been changed step by step over many years,
    preserving backwards compatibility.  Several choices made in the early days
    got in the way of making it work better.  At the same time, Vim script is
    being used much more often, since there are so many plugins being used.

    Vim9 script provides a syntax that is much more similar to other languages.
    In other words: "less weird".  Compiled functions are introduced which allow
    for a large speed improvement.  You can expect around ten times faster
    execution, or even more.  The price to pay is that Vim9 script is not
    backwards compatible.  But don't worry, you can still use your old scripts,
    the new script language is added, it does not replace the legacy script.

    Information about Vim9 script can be found in the |Vim9| help file.

    Command line completion in a popup menu

    							*new-popup-compl*
    Before there was the 'wildmenu' option, which uses the space of one line above
    the statusline to show matches.  Only a few matches fit there.

    Now a popup menu can be used by setting 'wildoptions' to "pum".  This allows
    for showing many more matches.  This requires redrawing more of the display,
    but since computers are fast enough that is not a problem.

    Updated colorschemes

    							*new-colorschemes-9*
    Colorschemes from https://github.com/vim/colorschemes have been included.
    They were made to work consistently across many types of terminals.  Although
    generally an improvement, a lot of personal preference is involved.  You can
    always get the old version if you prefer it, look here:
    https://github.com/vim/colorschemes/blob/master/legacy_colors/

    Various new items

    							*new-items-9*
    Options:

    'autoshelldir'		change directory to the shell's current directory
    'cdhome'		change directory to the home directory by ":cd"
    'cinscopedecls'		words that are recognized by 'cino-g'
    'guiligatures'		GTK GUI: ASCII characters that can form shapes
    'mousemoveevent'	report mouse moves with <MouseMove>
    'quickfixtextfunc'	function for the text in the quickfix window
    'spelloptions'		options for spell checking
    'thesaurusfunc'		function to be used for thesaurus completion
    'xtermcodes'		request terminal codes from an xterm

    Ex commands:

    |:abstract|		(reserved for future use)
    |:argdedupe|		remove duplicates from the argument list
    |:balt|			like ":badd" but also set the alternate file
    |:class|		(reserved for future use)
    |:def|			define a Vim9 user function
    |:defcompile|		compile Vim9 user functions in current script
    |:disassemble|		disassemble Vim9 user function
    |:echoconsole|		like :echomsg but write to stdout
    |:endinterface|		(reserved for future use)
    |:endclass|		(reserved for future use)
    |:enddef|		end of a user function started with :def
    |:endenum|		(reserved for future use)
    |:enum|			(reserved for future use)
    |:eval|			evaluate an expression and discard the result
    |:export|		Vim9: export an item from a script
    |:final|		declare an immutable variable in Vim9
    |:import|		Vim9: import an item from another script
    |:interface|		(reserved for future use)
    |:static|		(reserved for future use)
    |:type|			(reserved for future use)
    |:var|			variable declaration in Vim9
    |:vim9script|		indicates Vim9 script file

    Ex command modifiers:

    |:legacy|		make following command use legacy script syntax
    |:vim9cmd|		make following command use Vim9 script syntax

    New and extended functions:

    |assert_nobeep()|	assert that a command does not cause a beep
    |autocmd_add()|		add a list of autocmds and groups
    |autocmd_delete()|	delete a list of autocmds and groups
    |autocmd_get()|		return a list of autocmds
    |blob2list()|		get a list of numbers from a blob
    |charclass()|		class of a character
    |charcol()|		character number of the cursor or a mark
    |charidx()|		character index of a byte in a string
    |digraph_get()|		get digraph
    |digraph_getlist()|	get all digraphs
    |digraph_set()|		register digraph
    |digraph_setlist()|	register multiple digraphs
    |echoraw()|		output characters as-is
    |exists_compiled()|	like exists() but check at compile time
    |extendnew()|		make a new Dictionary and append items
    |flatten()|		flatten a List
    |flattennew()|		flatten a copy of a List
    |fullcommand()|		get full command name
    |getcharpos()|		get character position of cursor, mark, etc.
    |getcharstr()|		get a character from the user as a string
    |getcmdcompltype()|	return current cmdline completion type
    |getcmdscreenpos()|	return the current cursor position in the cmdline
    |getcursorcharpos()|	get character position of the cursor
    |getmarklist()|		list of global/local marks
    |getreginfo()|		get information about a register
    |gettext()|		lookup message translation
    |hlget()|		get highlight group attributes
    |hlset()|		set highlight group attributes
    |isabsolutepath()|	check if a path is absolute
    |list2blob()|		get a blob from a list of numbers
    |maplist()|		list of all mappings, a dict for each
    |mapnew()|		make a new List with changed items
    |mapset()|		restore a mapping
    |matchfuzzy()|		fuzzy matches a string in a list of strings
    |matchfuzzypos()|	fuzzy matches a string in a list of strings
    |menu_info()|		get information about a menu item
    |popup_list()|		get list of all popup window IDs
    |prompt_getprompt()|	get the effective prompt text for a buffer
    |prop_add_list()|	attach a property at multiple positions
    |prop_find()|		search for a property
    |readblob()|		read a file into a Blob
    |readdirex()|		get a List of file information in a directory
    |reduce()|		reduce a List to a value
    |searchcount()|		get number of matches before/after the cursor
    |setcellwidths()|	set character cell width overrides
    |setcharpos()|		set character position of cursor, mark, etc.
    |setcursorcharpos()|	set character position of the cursor
    |slice()|		take a slice of a List
    |strcharlen()|		length of a string in characters
    |terminalprops()|	properties of the terminal
    |test_gui_event()|	generate a GUI event for testing
    |test_null_function()|	return a null Funcref
    |test_srand_seed()|	set the seed value for srand()
    |test_unknown()|	return a value with unknown type
    |test_void()|		return a value with void type
    |typename()|		type of a variable as text
    |virtcol2col()|		byte index of a character on screen
    |win_gettype()|		get type of window
    |win_move_separator()|	move window vertical separator
    |win_move_statusline()|	move window status line
    |windowsversion()|	get MS-Windows version

    New Vim variables:

    |v:numbermax|		maximum value of a number
    |v:numbermin|		minimum value of a number (negative)
    |v:numbersize|		number of bits in a Number
    |v:collate|		current locale setting for collation order
    |v:exiting|		vim exit code
    |v:colornames|		dictionary that maps color names to hex color strings
    |v:sizeofint|		number of bytes in an int
    |v:sizeoflong|		number of bytes in a long
    |v:sizeofpointer|	number of bytes in a pointer
    |v:maxcol|		maximum line length

    New autocommand events:

    |CompleteDonePre|	after Insert mode completion done, before clearing info
    |DirChangedPre|		before the working directory will change
    |InsertLeavePre|	just before leaving Insert mode
    |ModeChanged|		after changing the mode
    |SigUSR1|		after the SIGUSR1 signal has been detected
    |WinClosed|		after closing a window
    |WinScrolled|		after scrolling or resizing a window
    |VimSuspend|		when suspending Vim
    |VimResume|		when Vim is resumed after being suspended

    New operators:

    |>>|			bitwise right shift
    |<<|			bitwise left shift
    |??|			falsy operator

    New runtime files:

    Too many to list here.

    ==============================================================================

    INCOMPATIBLE CHANGES				*incompatible-9*

    There is only one change that is incompatible with previous releases:

    - Lua arrays are now one-based, they used to be zero-based.

    Note that when using |Vim9| script several things work differently, see
    |vim9-differences|.

    ==============================================================================

    IMPROVEMENTS						*improvements-9*

    Various small and useful improvements have been made since Vim 8.2, here is a
    summary.

    Many memory leaks, invalid memory accesses and crashes have been fixed.
    See the list of patches below: |bug-fixes-9|.

    Support for Vim expression evaluation in a string. |interpolated-string|
    Support for evaluating Vim expressions in a heredoc. |:let-heredoc|

    Support for fuzzy matching:
    - a string in a List of strings. |fuzzy-matching|
    - completion support for command line completion using 'wildoptions'.
    - for |:vimgrep|.

    Added support for the |Haiku| OS.

    Support for "lsp" channel mode to simplify LSP server RPC communication
    |language-server-protocol|.  Support for using a Unix domain socket with a
    |channel|.  IPv6 support in channels |channel-address|.

    Support for sourcing lines from the current buffer. |:source-range|

    Terminal window improvements:
    - Support for opening a terminal in a popup window. |popup-terminal|
    - Allow setting underline color in terminal.
    - Detect focus events in terminal (|FocusGained| and |FocusLost|).
    - Add bell support for the terminal window. ('belloff')
    - Support mouse left-right scrolling in a terminal window.

    Support for stopping profiling a Vim script: `:profile stop` and dumping the
    report to a file: `:profile dump` .  |:profile|

    Completion improvements:
    - Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
      |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
    - Support using any Vim type for user_data with the completion functions
      (|complete-items|).
    - Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
    - Add the "cmdline" option to |getcompletion()| to return the command line
      arguments.

    Support for setting the 'foldtext', 'completefunc', 'omnifunc',
    'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
    'imactivatefunc' and 'imstatusfunc' options to a function reference or a
    lambda function or a script-local function.

    Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
    'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
    'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.

    Improvements in 'fillchars':
    - Support for configuring the character used to mark the beginning of a fold,
      show a closed fold and show a fold separator using "foldopen", "foldclose"
      and "foldsep" respectively in 'fillchars'.
    - Support for configuring the character displayed in non existing lines using
      "eob" in 'fillchars'.
    - Support for using multibyte items with the "stl", "stlnc", "foldopen",
      "foldclose" and "foldsep" items in the 'fillchars' option.

    Support for the XChaCha20 encryption method. 'cryptmethod'

    Spell checking:
    - Spell check current word with |z=| even when 'spell' is off.
    - Add "timeout" to 'spellsuggest' to limit the searching time for spell
      suggestions.
    - Add support for spell checking CamelCased words by adding "camel" to
      'spelloptions'.

    Support for executing Ex commands in a map without changing the current mode
    |<Cmd>| and |<ScriptCmd>|.

    Add optional error code to |:cquit|.

    Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.

    Expand script ID using expand('<SID>') and script name using
    expand('<script>'). |expand()|

    Jump to the last accessed tab page using |g<Tab>| and support using the
    last accessed tab page in |:tabnext| et al.

    Locale aware sorting using |:sort| and |sort()|.

    Hide cursor when sleeping using |:sleep!|.

    Add "multispace" to 'listchars' to show two or more spaces no matter where
    they appear.  Add "leadmultispace" to 'listchars' to show two or more leading
    spaces.  Add "lead" to 'listchars' to set the character used to show leading
    spaces.  Support specifying a character using the hexadecimal notation in
    'listchars' (\x, \u and \U).

    Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.

    Support for looping over a string using `:for`.

    Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.

    Support for re-evaluating the 'statusline' expression as a statusline format
    string (%{% expr %})

    Add |zp| and |zP| to paste in block mode without adding trailing white space.
    Add |zy| to yank without trailing white space in block mode.

    Add the 'P' command in visual mode to paste text in Visual mode without
    yanking the deleted text to the unnamed register.  |put-Visual-mode|

    Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
    See |/\%l| for more information.

    Add "list" to 'breakindentopt' to add additional indent for lines that match
    a numbered or bulleted list.  Add "column" to 'breakindentopt' to indent
    soft-wrapped lines at a specific column.

    Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
    adjust sign highlighting for 'cursorline'.

    Add the |hl-CurSearch| default highlight group for the current search match.

    Add support for logging on Vim startup (|--log|).

    Add support for customizing the quickfix buffer contents using
    'quickfixtextfunc'.  Support for the "note" error type (%t) in |errorformat|.
    Add support for parsing the end line number (%e) and end column number (%k)
    using 'errorformat'.

    Support truncating the tag stack using |settagstack()|.

    Display every option in a separate line when "!" is used with |:set|.

    Add "nostop" to 'backspace' to allow backspacing over the start of insert for
    |CTRL-W| and |CTRL-U| also.

    Sync the undo file if 'fsync' is set.

    Support excluding the 'runtimepath' and 'packpath' options from a session file
    using "skiprtp" in 'sessionoptions'.

    Support for getting the number of lines (line count) in a buffer using
    |getbufinfo()|.

    Support |filter()| and |map()| for blob and string types.

    Support for using a multi-byte character for the tag kind. |tags-file-format|

    Add support for checking whether a function name is valid using |exists()|.

    Update xdiff to version 2.33.  Update libvterm to revision 789.

    Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.

    Add the |t_AU| and |t_8u| termcap codes for underline and undercurl.  Add the
    t_fd and t_fe termcap codes for detecting focus events.

    Support for indenting C pragmas like normal code. (|cino-P|)

    Add support for defining the syntax fold level. (|:syn-foldlevel|)

    Add support for using \<*xxx> in a string to prepend a modifier to a
    character. (|expr-quote|)

    Add support trimming characters at the beginning or end of a string using
    |trim()|.

    Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|

    Add the "0o" notation for specifying octal numbers. |scriptversion-4|

    Support for changing to the previous tab-local and window-local directories
    using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)

    Add support for skipping an expression using |search()|.

    Add support for sorting the directory contents returned by the |readdir()|
    and |readdirex()| functions by case.

    Add support for executing (|:@|) a register containing line continuation.

    Lua support:
    - Call Vim functions from Lua (vim.call() and vim.fn()).
    - Convert a Lua function and a closure to a Vim funcref so that it can be
      accessed in a Vim script (|lua-funcref|).
    - Not backwards compatible: Make Lua arrays one based.
    - Add support for using table.insert() and table.remove() functions with Vim
      lists.
    - Support for running multiple Ex-mode commands using vim.command().
    - Add vim.lua_version to get the Lua version.
    - Add support for accessing Vim namespace dictionaries from Lua
      (|lua-vim-variables|).

    Support for new UTF-8 characters from Unicode release 13.

    Support for using a command block (|:command-repl|) when defining a |:command|
    or an |:autocmd|.

    Support for using |:z!| to use the Vim display height instead of the current
    window height.

    Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".

    When formatting a // comment after a statement, find the start of the line
    comment, insert the comment leader and indent the comment properly (|fo-/|).

    Add the "numhl" argument to `:sign define` to use a separate highlight group
    for the line number on a line where a sign is placed.  |:sign-define|

    When $SHELL ends in "nologin" or "false", start Vim in restricted mode.

    TermDebug enhancements:
    - Support for showing the disassembled code in a separate window.
    - Support for the GDB until command.
    - Use a separate group for the signs.

    xxd: Support for showing offset as a decimal number (-d).

    The C omni-complete plugin (|ft-c-omni|), the file type detection script
    (ft.vim) and the syntax menu generation script (makemenu.vim) have been
    rewritten using the Vim9 script syntax.

    A large number of tests have been added to verify the Vim functionality.  Most
    of the old style tests have been converted to new style tests using the new
    style assert_* functions.

    Many Coverity static analysis warnings have been fixed.

    ==============================================================================

    COMPILE TIME CHANGES					*compile-changes-9*

    The following features are now enabled in all the builds:
      |+cindent|
      |+jumplist|
      |+lispindent|
      |+num64|
      |+smartindent|
      |+tag_binary|
      |+title|

    The following features have been removed.  They are either obsolete or didn't
    work properly:
      - Athena and neXTaw GUI support (use Motif instead)
      - EBCDIC support
      - Atari MiNT and BeOS
      - Mac Carbon GUI (use MacVim instead)

    The rgb.txt file is no longer included, use colors/lists/default.vim instead.

    Several large source files were split, mainly to make it easier to inspect
    code coverage information.  Source files have also been refactored for
    maintainability.

    Support for building Vim with Mingw64 clang compiler on MS-Windows.

    Support for building Vim with Python 3.10, Lua 5.4.4, Perl 5.34 and
    Ruby 3.1.0.

    ==============================================================================

    PATCHES						*patches-9* *bug-fixes-9*

    						*patches-after-8.2*

    The list of patches that got included since 8.2.0.  This includes all the new
    features, but does not include runtime file changes (syntax, indent, help,
    etc.)

    Patch 8.2.0001
    Problem:    #endif comments do not reflect corresponding #ifdef.
    Solution:   Update the comments. (Rene Nyffenegger, closes #5351)
    Files:      src/ui.c

    Patch 8.2.0002
    Problem:    "dj" only deletes first line of closed fold.
    Solution:   Adjust last line of operator for linewise motion. (closes #5354)
    Files:      src/ops.c, src/testdir/test_fold.vim

    Patch 8.2.0003
    Problem:    Build file dependencies are incomplete.
    Solution:   Fix the dependencies. (Ken Takata, closes #5356)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
                src/Makefile

    Patch 8.2.0004
    Problem:    Get E685 and E931 if buffer reload is interrupted.
    Solution:   Do not abort deleting a dummy buffer. (closes #5361)
    Files:      src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.vim,
                src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c,
                src/window.c, src/vim.h

    Patch 8.2.0005
    Problem:    Duplication in version info.
    Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)
    Files:      src/version.h

    Patch 8.2.0006
    Problem:    Test using long file name may fail. (Vladimir Lomov)
    Solution:   Limit the name length. (Christian Brabandt, closes #5358)
    Files:      src/testdir/test_display.vim

    Patch 8.2.0007
    Problem:    Popup menu positioned wrong with folding in two tabs.
    Solution:   Update the cursor line height. (closes #5353)
    Files:      src/move.c, src/proto/move.pro, src/popupmenu.c,
                src/testdir/test_ins_complete.vim,
                src/testdir/dumps/Test_pum_with_folds_two_tabs.dump

    Patch 8.2.0008
    Problem:    Test72 is old style.
    Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test72.in, src/testdir/test72.ok,
                src/testdir/test_undo.vim

    Patch 8.2.0009
    Problem:    VMS: terminal version doesn't build.
    Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)
    Files:      src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms

    Patch 8.2.0010
    Problem:    Test64 is old style.
    Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test64.in, src/testdir/test64.ok,
                src/testdir/test95.in, src/testdir/test_regexp_latin.vim

    Patch 8.2.0011
    Problem:    Screen updating wrong when opening preview window.
    Solution:   Redraw the window when the preview window opens.
    Files:      src/popupmenu.c, src/testdir/test_ins_complete.vim,
                src/testdir/dumps/Test_pum_with_preview_win.dump

    Patch 8.2.0012
    Problem:    Some undo functionality is not tested.
    Solution:   Add a few more test cases. (Dominique Pellé, closes #5364)
    Files:      src/testdir/test_undo.vim

    Patch 8.2.0013
    Problem:    Not using a typedef for condstack.
    Solution:   Add a typedef.
    Files:      src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c,
                src/ex_cmds.h, src/proto/ex_eval.pro

    Patch 8.2.0014
    Problem:    Test69 and test95 are old style.
    Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test69.in, src/testdir/test69.ok,
                src/testdir/test95.in, src/testdir/test95.ok,
                src/testdir/test_regexp_utf8.vim, src/testdir/test_textformat.vim

    Patch 8.2.0015
    Problem:    Not all modeline variants are tested.
    Solution:   Add modeline tests. (Dominique Pellé, closes #5369)
    Files:      src/testdir/test_modeline.vim

    Patch 8.2.0016
    Problem:    Test name used twice, option not restored properly.
    Solution:   Rename function, restore option with "&".
    Files:      src/testdir/test_textformat.vim

    Patch 8.2.0017
    Problem:    OS/2 and MS-DOS are still mentioned, even though support was
                removed long ago.
    Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)
    Files:      runtime/doc/autocmd.txt, runtime/doc/change.txt,
                runtime/doc/cmdline.txt, runtime/doc/editing.txt,
                runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt,
                runtime/doc/options.txt, runtime/doc/print.txt,
                runtime/doc/quickfix.txt, runtime/doc/repeat.txt,
                runtime/doc/starting.txt, runtime/doc/usr_01.txt,
                runtime/doc/usr_05.txt, runtime/doc/usr_41.txt,
                runtime/doc/vi_diff.txt, runtime/gvimrc_example.vim,
                runtime/tools/README.txt, runtime/vimrc_example.vim, src/feature.h

    Patch 8.2.0018
    Problem:    :join does not add white space where it should. (Zdenek Dohnal)
    Solution:   Handle joining multiple lines properly.
    Files:      src/ops.c, src/testdir/test_join.vim

    Patch 8.2.0019
    Problem:    Cannot get number of lines of another buffer.
    Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
                closes #5370)
    Files:      src/evalbuffer.c, src/testdir/test_bufwintabinfo.vim,
                runtime/doc/eval.txt

    Patch 8.2.0020
    Problem:    Mouse clicks in the command line not tested.
    Solution:   Add tests. (Dominique Pellé, closes #5366)
    Files:      src/testdir/test_termcodes.vim

    Patch 8.2.0021
    Problem:    Timer test fails too often on Travis with macOS.
    Solution:   Be less strict with the time.
    Files:      src/testdir/test_timers.vim

    Patch 8.2.0022
    Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
    Solution:   When processing the selection also send a button release event.
                (closes #5367)
    Files:      src/gui.c

    Patch 8.2.0023
    Problem:    Command line editing not sufficiently tested.
    Solution:   Add more tests. (Dominique Pellé, closes #5374)
    Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim

    Patch 8.2.0024
    Problem:    Filetype Rego not recognized.
    Solution:   Add *.rego. (Matt Dunford, closes #5376)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0025
    Problem:    Repeated word in comment.
    Solution:   Remove one. (Rene Nyffenegger, closes #5384)
    Files:      src/structs.h

    Patch 8.2.0026
    Problem:    Still some /* */ comments.
    Solution:   Convert to // comments.
    Files:      src/message.c, src/message_test.c, src/misc1.c, src/misc2.c,
                src/move.c

    Patch 8.2.0027
    Problem:    Still some /* */ comments.
    Solution:   Convert to // comments.
    Files:      src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,
                src/version.c

    Patch 8.2.0028
    Problem:    Searchpairpos() is not tested.
    Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pellé,
                closes #5388)
    Files:      src/testdir/test_search.vim

    Patch 8.2.0029
    Problem:    MS-Windows: crash with empty job command.
    Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
    Files:      src/channel.c, src/testdir/test_channel.vim

    Patch 8.2.0030
    Problem:    "gF" does not work on output of "verbose command".
    Solution:   Recognize " line " and translations. (closes #5391)
    Files:      src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.vim

    Patch 8.2.0031 (after 8.2.0029)
    Problem:    MS-Windows: test for empty job fails
    Solution:   Check for error message, make it also fail on Unix.
    Files:      src/channel.c, src/testdir/test_channel.vim

    Patch 8.2.0032 (after 8.2.0031)
    Problem:    MS-Windows: test for blank job fails
    Solution:   Check before escaping.
    Files:      src/channel.c, src/testdir/test_channel.vim

    Patch 8.2.0033
    Problem:    Crash when make_extmatch() runs out of memory.
    Solution:   Check for NULL. (Dominique Pellé, closes #5392)
    Files:      src/regexp_bt.c, src/regexp_nfa.c

    Patch 8.2.0034
    Problem:    Missing check for out of memory.
    Solution:   Check for NULL after vim_strsave(). (Dominique Pellé,
                closes #5393)
    Files:      src/filepath.c

    Patch 8.2.0035
    Problem:    Saving and restoring called_emsg is clumsy.
    Solution:   Count the number of error messages.
    Files:      src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c,
                src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c,
                src/regexp.c, src/search.c, src/testing.c, src/globals.h

    Patch 8.2.0036
    Problem:    Not enough test coverage for match functions.
    Solution:   Add a few more test cases.  (Dominique Pellé, closes #5394)
                Add error number.
    Files:      src/testdir/test_match.vim

    Patch 8.2.0037
    Problem:    Missing renamed message.
    Solution:   Now really add the error number.
    Files:      src/highlight.c

    Patch 8.2.0038
    Problem:    Spell suggestions insufficiently tested.
    Solution:   Add spell suggestion tests. (Dominique Pellé, closes #5398)
    Files:      src/testdir/test_spell.vim

    Patch 8.2.0039
    Problem:    Memory access error when "z=" has no suggestions.
    Solution:   Check for negative index.
    Files:      src/testdir/test_spell.vim, src/spellsuggest.c

    Patch 8.2.0040
    Problem:    Timers test is still flaky on Travis for Mac.
    Solution:   Run separately instead of as part of test_alot.
    Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim

    Patch 8.2.0041
    Problem:    Leaking memory when selecting spell suggestion.
    Solution:   Free previous value at the right time.
    Files:      src/spellsuggest.c

    Patch 8.2.0042
    Problem:    Clearing funccal values twice.
    Solution:   Remove clearing individual fields.
    Files:      src/userfunc.c

    Patch 8.2.0043
    Problem:    Timers test is still flaky on Travis for Mac.
    Solution:   Increase maximum expected time.
    Files:      src/testdir/test_timers.vim

    Patch 8.2.0044
    Problem:    Expression type is used inconsistently.
    Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
                "TYPE_" to "ETYPE_" to avoid confusion.
    Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c

    Patch 8.2.0045 (after 8.2.0044)
    Problem:    Script test fails.
    Solution:   For numbers "is" and "isnot" work like "==" and "!=".
    Files:      src/eval.c

    Patch 8.2.0046
    Problem:    Tests for spell suggestions are slow.
    Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
                (Dominique Pellé, closes #5399)
    Files:      src/testdir/test_spell.vim

    Patch 8.2.0047
    Problem:    Cannot skip tests for specific MS-Windows platform.
    Solution:   Add windowsversion().
    Files:      src/os_win32.c, src/globals.h, src/evalfunc.c,
                runtime/doc/eval.txt, src/testdir/gen_opt_test.vim,
                src/testdir/test_options.vim

    Patch 8.2.0048
    Problem:    Another timers test is flaky on Travis for Mac.
    Solution:   Increase maximum expected time.
    Files:      src/testdir/test_timers.vim

    Patch 8.2.0049
    Problem:    Command line completion not fully tested.
    Solution:   Add more test cases.  Make help sorting stable. (Dominique Pellé,
                closes #5402)
    Files:      src/ex_cmds.c, src/testdir/test_cd.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_help.vim,
                src/testdir/test_menu.vim, src/testdir/test_options.vim,
                src/testdir/test_syntax.vim

    Patch 8.2.0050
    Problem:    After deleting a file mark it is still in viminfo.
    Solution:   When a file mark was deleted more recently than the mark in the
                merged viminfo file was updated, do not store the mark. (Pavol
                Juhas, closes #5401, closes #1339)
    Files:      src/mark.c, src/testdir/test_marks.vim,
                src/testdir/test_viminfo.vim, src/viminfo.c

    Patch 8.2.0051 (after 8.2.0049)
    Problem:    Command line completion test skipped. (Christian Brabandt)
    Solution:   Invert condition.
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.0052
    Problem:    More-prompt not properly tested.
    Solution:   Add a test case. (Dominique Pellé, closes #5404)
    Files:      src/testdir/test_messages.vim

    Patch 8.2.0053
    Problem:    windowsversion() does not always return the right value.
    Solution:   Add a compatibility section in the manifest. (Ken Takata,
                closes #5407)
    Files:      src/gvim.exe.mnf

    Patch 8.2.0054
    Problem:    :diffget and :diffput don't have good completion.
    Solution:   Add proper completion. (Dominique Pellé, closes #5409)
    Files:      runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c,
                src/testdir/test_diffmode.vim, src/usercmd.c, src/vim.h

    Patch 8.2.0055
    Problem:    Cannot use ":gui" in vimrc with VIMDLL enabled.
    Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)
    Files:      src/gui.c

    Patch 8.2.0056
    Problem:    Execution stack is incomplete and inefficient.
    Solution:   Introduce a proper execution stack and use it instead of
                sourcing_name/sourcing_lnum.  Create a string only when used.
    Files:      src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c
                src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c,
                src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro,
                src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c,
                src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c,
                src/kword_test.c, src/testdir/test_debugger.vim

    Patch 8.2.0057 (after 8.2.0056)
    Problem:    Cannot build with small features.
    Solution:   Add #ifdefs.
    Files:      src/scriptfile.c

    Patch 8.2.0058
    Problem:    Running tests changes ~/.viminfo.
    Solution:   Make 'viminfo' empty when summarizing tests results. (closes #5414)
    Files:      src/testdir/summarize.vim

    Patch 8.2.0059
    Problem:    Compiler warnings for unused variables in small build. (Tony
                Mechelynck)
    Solution:   Add #ifdef.
    Files:      src/scriptfile.c

    Patch 8.2.0060
    Problem:    Message test only runs with one encoding. (Dominique Pellé)
    Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related
                to #5410)
    Files:      src/message_test.c, src/message.c

    Patch 8.2.0061
    Problem:    The execute stack can grow big and never shrinks.
    Solution:   Reduce the size in garbage collect.
    Files:      src/eval.c

    Patch 8.2.0062
    Problem:    Memory test is flaky on FreeBSD.
    Solution:   Add a short sleep before getting the first size.
    Files:      src/testdir/test_memory_usage.vim

    Patch 8.2.0063
    Problem:    Wrong size argument to vim_snprintf(). (Dominique Pellé)
    Solution:   Reduce the size by the length. (related to #5410)
    Files:      src/ops.c

    Patch 8.2.0064
    Problem:    Diffmode completion doesn't use per-window setting.
    Solution:   Check if a window is in diff mode. (Dominique Pellé, closes #5419)
    Files:      src/buffer.c, src/testdir/test_diffmode.vim

    Patch 8.2.0065
    Problem:    Amiga and alikes: autoopen only used on Amiga OS4.
    Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)
    Files:      src/os_amiga.c

    Patch 8.2.0066
    Problem:    Some corners of vim_snprintf() are not tested.
    Solution:   Add a test in C. (Dominique Pellé, closes #5422)
    Files:      src/message_test.c

    Patch 8.2.0067
    Problem:    ERROR_UNKNOWN clashes on some systems.
    Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
    Files:      src/evalfunc.c, src/userfunc.c, src/vim.h

    Patch 8.2.0068
    Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pellé)
    Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)
    Files:      src/testdir/test_python3.vim, src/if_py_both.h

    Patch 8.2.0069
    Problem:    ETYPE_ is used for two different enums.
    Solution:   Rename one to use EXPR_.
    Files:      src/structs.h, src/eval.c, src/debugger.c

    Patch 8.2.0070
    Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pellé)
    Solution:   Use "euc-jp" whenever enc_dbcs is set.
    Files:      src/testdir/test_python3.vim, src/if_py_both.h

    Patch 8.2.0071
    Problem:    Memory test often fails on Cirrus CI.
    Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
    Files:      src/testdir/test_memory_usage.vim

    Patch 8.2.0072 (after 8.2.0071)
    Problem:    Memory test still fails on Cirrus CI.
    Solution:   Allow for a tiny bit more tolerance in the upper limit.
    Files:      src/testdir/test_memory_usage.vim

    Patch 8.2.0073
    Problem:    Initializing globals with COMMA is clumsy.
    Solution:   Use INIT2(), INIT3(), etc.
    Files:      src/vim.h, src/globals.h

    Patch 8.2.0074
    Problem:    Python 3 unicode test sometimes fails.
    Solution:   Make 'termencoding' empty.  Correct number of error message.
    Files:      src/change.c, runtime/doc/options.txt, runtime/doc/message.txt,
                src/testdir/test_python3.vim

    Patch 8.2.0075
    Problem:    Python 3 unicode test still sometimes fails.
    Solution:   Skip the test when 'termencoding' is not empty.
    Files:      src/testdir/test_python3.vim

    Patch 8.2.0076
    Problem:    Python 3 unicode test fails on MS-Windows.
    Solution:   Do not set 'encoding' to "debug" on MS-Windows.
    Files:      src/testdir/test_python3.vim

    Patch 8.2.0077
    Problem:    settagstack() cannot truncate at current index.
    Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/tag.c,
                src/testdir/test_tagjump.vim

    Patch 8.2.0078
    Problem:    Expanding <sfile> works differently the second time.
    Solution:   Keep the expanded name when redefining a function. (closes #5425)
    Files:      src/testdir/test_vimscript.vim, src/userfunc.c

    Patch 8.2.0079
    Problem:    Python 3 unicode test still fails on MS-Windows.
    Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
    Files:      src/testdir/test_python3.vim

    Patch 8.2.0080
    Problem:    Globals using INIT4() are not in the tags file.
    Solution:   Adjust the tags command.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.0081
    Problem:    MS-Windows also need the change to support INIT4().
    Solution:   Add the ctags arguments. (Ken Takata)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

    Patch 8.2.0082
    Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)
    Solution:   Clear listeners when reusing a buffer. (closes #5431)
    Files:      src/testdir/test_listener.vim, src/buffer.c

    Patch 8.2.0083
    Problem:    Text properties wrong when tabs and spaces are exchanged.
    Solution:   Take text properties into account. (Nobuhiro Takasaki,
                closes #5427)
    Files:      src/edit.c, src/testdir/test_textprop.vim

    Patch 8.2.0084
    Problem:    Complete item "user_data" can only be a string.
    Solution:   Accept any type of variable. (closes #5412)
    Files:      src/testdir/test_ins_complete.vim, src/insexpand.c, src/dict.c,
                src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt

    Patch 8.2.0085
    Problem:    Dead code in builtin functions.
    Solution:   Clean up the code.
    Files:      src/evalvars.c, src/sound.c, src/textprop.c

    Patch 8.2.0086 (after 8.2.0084)
    Problem:    Build error for small version. (Tony Mechelynck)
    Solution:   Only use "user_data" with the +eval feature. Remove unused
                variable.
    Files:      src/insexpand.c, src/dict.c

    Patch 8.2.0087
    Problem:    Crash in command line expansion when out of memory.
    Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
                (Dominique Pellé, closes #5437)
    Files:      src/cmdexpand.c, src/proto/cmdexpand.pro

    Patch 8.2.0088
    Problem:    Insufficient tests for tags; bug in using extra tag field when
                using an ex command to position the cursor.
    Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
    Files:      runtime/doc/tagsrch.txt, src/tag.c,
                src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim

    Patch 8.2.0089
    Problem:    Crash when running out of memory in :setfiletype completion.
    Solution:   Do not allocate memory. (Dominique Pellé, closes #5438)
    Files:      src/cmdexpand.c

    Patch 8.2.0090
    Problem:    Generated files show up in git status.
    Solution:   Ignore a few more files.
    Files:      .gitignore

    Patch 8.2.0091
    Problem:    Compiler warnings for size_t / int types.
    Solution:   Change type to size_t. (Mike Williams)
    Files:      src/scriptfile.c

    Patch 8.2.0092
    Problem:    Tags functionality insufficiently tested.
    Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)
    Files:      src/testdir/test_tagjump.vim

    Patch 8.2.0093
    Problem:    win_splitmove() can make Vim hang.
    Solution:   Check windows exists in the current tab page. (closes #5444)
    Files:      src/testdir/test_window_cmd.vim, src/evalwindow.c

    Patch 8.2.0094
    Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.
    Solution:   Define __builtin_expect() as a workaround. (Ken Takata,
                closes #5267)
    Files:      src/if_perl.xs

    Patch 8.2.0095
    Problem:    Cannot specify exit code for :cquit.
    Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
    Files:      runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.0096
    Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)
    Solution:   Remove position limit. (closes #5447)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_20.dump,
                src/testdir/dumps/Test_popupwin_21.dump

    Patch 8.2.0097
    Problem:    Crash with autocommand and spellfile. (Tim Pope)
    Solution:   Do not pop exestack when not pushed. (closes #5450)
    Files:      src/testdir/test_autocmd.vim, src/spellfile.c

    Patch 8.2.0098
    Problem:    Exe stack length can be wrong without being detected.
    Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.
    Files:      src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c,
                src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c,
                src/userfunc.c

    Patch 8.2.0099
    Problem:    Use of NULL pointer when out of memory.
    Solution:   Check for NULL pointer. (Dominique Pellé, closes #5449)
    Files:      src/cmdexpand.c

    Patch 8.2.0100
    Problem:    Macros for Ruby are too complicated.
    Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
                closes #5452)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
                src/configure.ac, src/if_ruby.c

    Patch 8.2.0101
    Problem:    Crash when passing null object to ":echomsg".
    Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
    Files:      src/eval.c, src/testdir/test_messages.vim

    Patch 8.2.0102
    Problem:    Messages test fails in small version.
    Solution:   Only use test_null_job() when available.
    Files:      src/testdir/test_messages.vim

    Patch 8.2.0103
    Problem:    Using null object with execute() has strange effects.
    Solution:   Give an error message for Job and Channel.
    Files:      src/testdir/test_execute_func.vim, src/globals.h, src/eval.c,
                src/evalfunc.c

    Patch 8.2.0104
    Problem:    Using channel or job with ":execute" has strange effects.
    Solution:   Give an error message for Job and Channel.
    Files:      src/testdir/test_eval_stuff.vim, src/eval.c

    Patch 8.2.0105
    Problem:    Vim license not easy to find on github.
    Solution:   Add a separate LICENCE file. (closes #5458)
    Files:      LICENSE, Filelist

    Patch 8.2.0106
    Problem:    Printf formats are not exactly right.
    Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
    Files:      runtime/tools/ccfilter.c, src/libvterm/src/parser.c,
                src/libvterm/src/pen.c, src/ui.c

    Patch 8.2.0107
    Problem:    Hgignore is out of sync from gitignore.
    Solution:   Add lines to hgignore. (Ken Takata)
    Files:      .hgignore

    Patch 8.2.0108
    Problem:    When sign text is changed a manual redraw is needed. (Pontus
                Lietzler)
    Solution:   Redraw automatically. (closes #5455)
    Files:      src/testdir/test_signs.vim, src/sign.c,
                src/testdir/dumps/Test_sign_cursor_1.dump,
                src/testdir/dumps/Test_sign_cursor_2.dump,
                src/testdir/dumps/Test_sign_cursor_3.dump,
                src/testdir/dumps/Test_sign_cursor_01.dump,
                src/testdir/dumps/Test_sign_cursor_02.dump

    Patch 8.2.0109
    Problem:    Corrupted text properties when expanding spaces.
    Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)
    Files:      src/edit.c, src/testdir/test_textprop.vim

    Patch 8.2.0110
    Problem:    prop_find() is not implemented.
    Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
    Files:      src/evalfunc.c, src/proto/textprop.pro,
                src/testdir/test_textprop.vim, src/textprop.c,
                runtime/doc/textprop.txt

    Patch 8.2.0111
    Problem:    VAR_SPECIAL is also used for booleans.
    Solution:   Add VAR_BOOL for better type checking.
    Files:      src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c,
                src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h,
                src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro,
                src/testing.c, src/vim.h, src/viminfo.c

    Patch 8.2.0112
    Problem:    Illegal memory access when using 'cindent'.
    Solution:   Check for NUL byte. (Dominique Pellé, closes #5470)
    Files:      src/cindent.c, src/testdir/test_cindent.vim

    Patch 8.2.0113 (after 8.2.0095)
    Problem:    "make cmdidxs" fails.
    Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
    Files:      src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak,
                src/Make_mvc.mak

    Patch 8.2.0114
    Problem:    Info about sourced scripts is scattered.
    Solution:   Use scriptitem_T for info about a script, including s: variables.
                Drop ga_scripts.
    Files:      src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c

    Patch 8.2.0115
    Problem:    Byte2line() does not work correctly with text properties. (Billie
                Cleek)
    Solution:   Take the bytes of the text properties into account.
                (closes #5334)
    Files:      src/testdir/test_textprop.vim, src/memline.c

    Patch 8.2.0116
    Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
    Solution:   Decrement autocmd_no_enter for the last file. (closes #1660,
                closes #5473)
    Files:      src/arglist.c, src/testdir/test_tabpage.vim

    Patch 8.2.0117
    Problem:    Crash when using gettabwinvar() with invalid arguments. (Yilin
                Yang)
    Solution:   Use "curtab" if "tp" is NULL. (closes #5475)
    Files:      src/evalwindow.c, src/testdir/test_getvar.vim

    Patch 8.2.0118
    Problem:    Crash when cycling to buffers involving popup window.
    Solution:   Do not decrement buffer reference count.
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_infopopup_7.dump

    Patch 8.2.0119
    Problem:    Message test fails on some platforms. (Elimar Riesebieter)
    Solution:   Add type cast to vim_snprintf() argument. (Dominique Pellé)
    Files:      src/message_test.c

    Patch 8.2.0120
    Problem:    virtcol() does not check arguments to be valid, which may lead to
                a crash.
    Solution:   Check the column to be valid.  Do not decrement MAXCOL.
                (closes #5480)
    Files:      src/evalfunc.c, src/testdir/test_marks.vim

    Patch 8.2.0121
    Problem:    filter() and map() on blob don't work.
    Solution:   Correct the code. (closes #5483)
    Files:      src/list.c, src/testdir/test_blob.vim

    Patch 8.2.0122
    Problem:    Readme files still mention MS-DOS.
    Solution:   Update readme files. (Ken Takata, closes #5486)
    Files:      README.md, README.txt, READMEdir/README_dos.txt,
                READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt,
                runtime/doc/os_win32.txt

    Patch 8.2.0123
    Problem:    complete_info() does not work when CompleteDone is triggered.
    Solution:   Trigger CompleteDone before clearing the info.
    Files:      src/insexpand.c, runtime/doc/autocmd.txt,
                src/testdir/test_ins_complete.vim

    Patch 8.2.0124
    Problem:    Compiler warnings for variable types.
    Solution:   Change type, add type cast. (Mike Williams)
    Files:      src/memline.c

    Patch 8.2.0125
    Problem:    :mode no longer works for any system.
    Solution:   Always give an error message.
    Files:      src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c,
                src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
                src/os_unix.c, src/proto/os_unix.pro

    Patch 8.2.0126 (after 8.2.0124)
    Problem:    Textprop test fails.
    Solution:   Fix sign in computation.
    Files:      src/memline.c

    Patch 8.2.0127
    Problem:    Some buffer commands work in a popup window.
    Solution:   Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
    Files:      src/ex_docmd.c, src/testdir/test_popupwin.vim

    Patch 8.2.0128
    Problem:    Cannot list options one per line.
    Solution:   Use ":set!" to list one option per line.
    Files:      src/ex_docmd.c, src/option.c, src/proto/option.pro, src/vim.h,
                src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.vim,
                runtime/doc/options.txt

    Patch 8.2.0129
    Problem:    MS-Windows installer doesn't use Turkish translations.
    Solution:   Enable the Turkish translations and fix a few. (Emir Sarı,
                closes #5493)
    Files:      nsis/gvim.nsi, nsis/lang/turkish.nsi

    Patch 8.2.0130
    Problem:    Python3 ranges are not tested.
    Solution:   Add test. (Dominique Pellé, closes #5498)
    Files:      src/testdir/test_python3.vim

    Patch 8.2.0131
    Problem:    Command line is not cleared when switching tabs and the command
                line height differs.
    Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
                closes #5495)
    Files:      src/testdir/dumps/Test_cmdlineclear_tabenter.dump,
                src/testdir/test_cmdline.vim, src/window.c

    Patch 8.2.0132
    Problem:    Script may be re-used when deleting and creating a new one.
    Solution:   When the inode matches, also check the file name.
    Files:      src/scriptfile.c, src/testdir/test_source.vim

    Patch 8.2.0133
    Problem:    Invalid memory access with search command.
    Solution:   When :normal runs out of characters in bracketed paste mode break
                out of the loop.(closes #5511)
    Files:      src/testdir/test_search.vim, src/edit.c

    Patch 8.2.0134
    Problem:    Some map functionality not covered by tests.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
    Files:      src/testdir/test_maparg.vim, src/testdir/test_mapping.vim

    Patch 8.2.0135 (after 8.2.0133)
    Problem:    Bracketed paste can still cause invalid memory access. (Dominique
                Pellé)
    Solution:   Check for NULL pointer.
    Files:      src/edit.c, src/testdir/test_search.vim

    Patch 8.2.0136
    Problem:    Stray ch_logfile() call.
    Solution:   Remove it. (closes #5503)
    Files:      src/testdir/test_source.vim

    Patch 8.2.0137
    Problem:    Crash when using win_execute() from a new tab.
    Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
    Files:      src/testdir/test_winbuf_close.vim, src/window.c

    Patch 8.2.0138
    Problem:    Memory leak when starting a job fails.
    Solution:   Free the list of arguments. (Ozaki Kiichi, closes #5510)
    Files:      src/channel.c, src/testdir/test_channel.vim

    Patch 8.2.0139
    Problem:    MS-Windows: default for IME is inconsistent.
    Solution:   Also make IME default enabled with MVC. (Ken Takata, closes #5508)
    Files:      src/Make_mvc.mak

    Patch 8.2.0140
    Problem:    CI does not test building doc tags.
    Solution:   Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi,
                closes #5513)
    Files:      .travis.yml, Filelist, ci/if_ver-1.vim, ci/if_ver-2.vim,
                ci/if_ver-cmd.vim, runtime/doc/Makefile, runtime/doc/doctags.vim,
                src/testdir/if_ver-1.vim, src/testdir/if_ver-2.vim

    Patch 8.2.0141
    Problem:    No swift filetype detection.
    Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes #5517)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0142
    Problem:    Possible to enter popup window with CTRL-W p. (John Devin)
    Solution:   Check entered window is not a popup window. (closes #5515)
    Files:      src/window.c, src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_previewpopup_9.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_10.dump

    Patch 8.2.0143
    Problem:    Coverity warning for possible use of NULL pointer.
    Solution:   Check argv is not NULL.
    Files:      src/channel.c

    Patch 8.2.0144
    Problem:    Some mapping code is not fully tested.
    Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5519)
    Files:      src/testdir/test_langmap.vim, src/testdir/test_maparg.vim,
                src/testdir/test_mapping.vim

    Patch 8.2.0145
    Problem:    Using #error for compilation errors should be OK now.
    Solution:   Use #error. (Ken Takata, closes #5299)
    Files:      src/blowfish.c, src/vim.h

    Patch 8.2.0146
    Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
                'briopt' includes "sbr".
    Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes #5523)
    Files:      src/drawline.c, src/testdir/test_breakindent.vim

    Patch 8.2.0147
    Problem:    Block Visual mode operators not correct when 'linebreak' set.
    Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524)
    Files:      src/ops.c, src/testdir/test_listlbr.vim

    Patch 8.2.0148
    Problem:    Mapping related function in wrong source file.
    Solution:   Move the function.  Add a few more test cases. (Yegappan
                Lakshmanan, closes #5528)
    Files:      src/map.c, src/proto/term.pro, src/term.c,
                src/testdir/test_mapping.vim

    Patch 8.2.0149
    Problem:    Maintaining a Vim9 branch separately is more work.
    Solution:   Merge the Vim9 script changes.
    Files:      README.md, README_VIM9.md, runtime/doc/Makefile,
                runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/tags,
                runtime/doc/vim9.txt, runtime/ftplugin/vim.vim,
                runtime/indent/vim.vim, runtime/syntax/vim.vim,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/blob.c,
                src/channel.c, src/dict.c, src/eval.c, src/evalbuffer.c,
                src/evalfunc.c, src/evalvars.c, src/ex_cmdidxs.h, src/ex_cmds.h,
                src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/globals.h,
                src/gui.c, src/if_lua.c, src/if_py_both.h, src/insexpand.c,
                src/json.c, src/list.c, src/macros.h, src/main.c, src/message.c,
                src/misc1.c, src/proto.h, src/proto/blob.pro, src/proto/eval.pro,
                src/proto/evalfunc.pro, src/proto/evalvars.pro,
                src/proto/ex_docmd.pro, src/proto/ex_eval.pro, src/proto/list.pro,
                src/proto/message.pro, src/proto/scriptfile.pro,
                src/proto/userfunc.pro, src/proto/vim9compile.pro,
                src/proto/vim9execute.pro, src/proto/vim9script.pro,
                src/scriptfile.c, src/session.c, src/structs.h, src/syntax.c,
                src/testdir/Make_all.mak, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim, src/testing.c, src/userfunc.c,
                src/vim.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/vim9script.c, src/viminfo.c

    Patch 8.2.0150
    Problem:    Cannot define python function when using :execute. (Yasuhiro
                Matsumoto)
    Solution:   Do not recognize "def" inside "function.
    Files:      src/testdir/test_vim9_script.vim, src/userfunc.c

    Patch 8.2.0151
    Problem:    Detecting a script was already sourced is unreliable.
    Solution:   Do not use the inode number.
    Files:      src/scriptfile.c, src/structs.h, src/testdir/test_vim9_script.vim

    Patch 8.2.0152
    Problem:    Restoring ctrl_x_mode is not needed.
    Solution:   Remove restoring the old value, it's changed again soon.
    Files:      src/insexpand.c

    Patch 8.2.0153
    Problem:    Warning shows when listing version info.
    Solution:   Use "-u NONE". (Ozaki Kiichi, closes #5534)
    Files:      .travis.yml

    Patch 8.2.0154
    Problem:    Reallocating the list of scripts is inefficient.
    Solution:   Instead of using a growarray of scriptitem_T, store pointers and
                allocate each scriptitem_T separately.  Also avoids that the
                growarray pointers change when sourcing a new script.
    Files:      src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c,
                src/profiler.c, src/scriptfile.c, src/vim9compile.c,
                src/vim9execute.c, src/vim9script.c

    Patch 8.2.0155
    Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
                building without +float feature.
    Solution:   Init variables. Fix Json parsing. Skip a few tests that require
                the +float feature.
    Files:      src/vim9script.c, src/vim9compile.c, src/vim9execute.c,
                src/if_py_both.h, src/json.c, src/testdir/test_method.vim

    Patch 8.2.0156
    Problem:    Various typos in source files and tests.
    Solution:   Fix the typos. (Emir Sarı, closes #5532)
    Files:      Makefile, src/INSTALLvms.txt, src/Make_vms.mms, src/beval.h,
                src/buffer.c, src/charset.c, src/evalvars.c, src/ex_cmds.c,
                src/ex_docmd.c, src/getchar.c, src/gui.c, src/gui_mac.c,
                src/gui_photon.c, src/if_perl.xs,
                src/libvterm/t/11state_movecursor.test,
                src/libvterm/t/41screen_unicode.test, src/mbyte.c, src/memline.c,
                src/normal.c, src/ops.c, src/option.c, src/option.h,
                src/os_unix.c, src/os_win32.c, src/quickfix.c, src/register.c,
                src/spell.c, src/tag.c, src/term.c,
                src/testdir/test_breakindent.vim, src/testdir/test_channel.vim,
                src/testdir/test_cindent.vim, src/testdir/test_digraph.vim,
                src/testdir/test_edit.vim, src/testdir/test_netbeans.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_registers.vim,
                src/testdir/test_stat.vim, src/ui.c, src/xxd/xxd.c

    Patch 8.2.0157
    Problem:    Vim9 script files not in list of distributed files.
    Solution:   Add the entries.
    Files:      Filelist

    Patch 8.2.0158 (after 8.2.0123)
    Problem:    Triggering CompleteDone earlier is not backwards compatible.
                (Daniel Hahler)
    Solution:   Add CompleteDonePre instead.
    Files:      src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c,
                src/vim.h, src/testdir/test_ins_complete.vim

    Patch 8.2.0159
    Problem:    Non-materialized range() list causes problems. (Fujiwara Takuya)
    Solution:   Materialize the list where needed.
    Files:      src/testdir/test_functions.vim, src/testdir/test_python3.vim,
                src/userfunc.c, src/evalfunc.c, src/highlight.c, src/evalvars.c,
                src/popupmenu.c, src/insexpand.c, src/json.c, src/channel.c,
                src/eval.c

    Patch 8.2.0160 (after 8.2.0159)
    Problem:    Range test fails.
    Solution:   Include change in list code. (#5541)
    Files:      src/list.c

    Patch 8.2.0161
    Problem:    Not recognizing .gv file as dot filetype.
    Solution:   Add *.gv to dot pattern. (closes #5544)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0162
    Problem:    Balloon test fails in the GUI.
    Solution:   Skip test in the GUI.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.0163
    Problem:    Test hangs on MS-Windows console.
    Solution:   use feedkeys() instead of test_feedinput(). (Ken Takata)
    Files:      src/testdir/test_functions.vim, src/testing.c

    Patch 8.2.0164
    Problem:    Test_alot takes too long.
    Solution:   Run several tests individually.
    Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak

    Patch 8.2.0165
    Problem:    Coverity warning for using NULL pointer.
    Solution:   Add missing "else".
    Files:      src/vim9compile.c

    Patch 8.2.0166
    Problem:    Coverity warning for using uninitialized variable.
    Solution:   Check for failure.
    Files:      src/vim9execute.c

    Patch 8.2.0167
    Problem:    Coverity warning for ignoring return value.
    Solution:   Check the return value and jump if failed.
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0168
    Problem:    Coverity warning for assigning NULL to an option.
    Solution:   Use empty string instead of NULL.
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0169
    Problem:    Coverity warning for dead code.
    Solution:   Check if inside try-finally.
    Files:      src/vim9execute.c

    Patch 8.2.0170
    Problem:    Coverity warning for ignoring return value.
    Solution:   Check the return value and return if failed.
    Files:      src/vim9compile.c

    Patch 8.2.0171
    Problem:    Coverity warning for using uninitialized buffer.
    Solution:   Check the skip flag.
    Files:      src/userfunc.c

    Patch 8.2.0172
    Problem:    Coverity warning for not restoring character.
    Solution:   Restore the character also in case of failure.
    Files:      src/vim9script.c

    Patch 8.2.0173
    Problem:    Build fails with old compiler.
    Solution:   Do not use anonymous unions. (John Marriott)
    Files:      src/vim9compile.c, src/evalvars.c, src/list.c, src/structs.h,
                src/evalfunc.c, src/channel.c, src/if_mzsch.c, src/if_py_both.h

    Patch 8.2.0174
    Problem:    Various commands not completely tested.
    Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5551)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_fnameescape.vim,
                src/testdir/test_ga.vim, src/testdir/test_global.vim,
                src/testdir/test_move.vim, src/testdir/test_options.vim,
                src/testdir/test_packadd.vim, src/testdir/test_sort.vim,
                src/testdir/test_substitute.vim, src/testdir/test_textformat.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0175
    Problem:    Crash when removing list element in map().
    Solution:   Lock the list. (closes #2652)
    Files:      src/testdir/test_filter_map.vim, src/list.c

    Patch 8.2.0176
    Problem:    Generating os headers does not work for Swedish.
    Solution:   Set the locale to C. (Christian Brabandt, closes #5258)
    Files:      src/osdef.sh

    Patch 8.2.0177
    Problem:    Memory leak in get_tags().
    Solution:   Free matches when finding a pseudo-tag line. (Dominique Pellé,
                closes #5553)
    Files:      src/tag.c

    Patch 8.2.0178
    Problem:    With VTP the screen may not be restored properly.
    Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
                closes #5548)
    Files:      src/os_win32.c

    Patch 8.2.0179
    Problem:    Still a few places where range() does not work.
    Solution:   Fix using range() causing problems.
    Files:      src/terminal.c, src/testdir/test_functions.vim,
                src/testdir/test_popupwin.vim, src/popupwin.c, src/tag.c,
                src/testdir/dumps/Test_popupwin_20.dump,
                src/testdir/dumps/Test_popupwin_21.dump,
                src/testdir/dumps/Test_popup_settext_07.dump, src/globals.h

    Patch 8.2.0180
    Problem:    Test for wrapmargin fails if terminal is not 80 columns.
    Solution:   Vertical split the window. (Ken Takata, closes #5554)
    Files:      src/testdir/test_textformat.vim

    Patch 8.2.0181
    Problem:    Problems parsing :term arguments.
    Solution:   Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
                closes #5536)
    Files:      src/channel.c, src/proto/channel.pro, src/structs.h,
                src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.0182
    Problem:    Min() and max() materialize a range() list.
    Solution:   Compute the result without materializing the list. (#5541)
    Files:      src/evalfunc.c

    Patch 8.2.0183
    Problem:    Tests fail when the float feature is disabled.
    Solution:   Skip tests that don't work without float support.
    Files:      src/testdir/shared.vim, src/testdir/test_blob.vim,
                src/testdir/test_channel.vim, src/testdir/test_cscope.vim,
                src/testdir/test_execute_func.vim, src/testdir/test_expr.vim,
                src/testdir/test_functions.vim, src/testdir/test_lambda.vim,
                src/testdir/test_listdict.vim, src/testdir/test_lua.vim,
                src/testdir/test_options.vim, src/testdir/test_partial.vim,
                src/testdir/test_ruby.vim, src/testdir/test_sort.vim,
                src/testdir/test_timers.vim, src/testdir/test_true_false.vim,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vimscript.vim, src/testdir/test_regexp_latin.vim,
                src/testdir/test_glob2regpat.vim

    Patch 8.2.0184
    Problem:    Blob test fails.
    Solution:   Check for different error when float feature is missing.
    Files:      src/testdir/test_blob.vim

    Patch 8.2.0185
    Problem:    Vim9 script: cannot use "if has()" to skip lines.
    Solution:   Evaluate constant expression at runtime.
    Files:      src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0186
    Problem:    A couple of tests may fail when features are missing.
    Solution:   Check for features. (Dominique Pellé, closes #5561)
    Files:      src/testdir/test_functions.vim, src/testdir/test_highlight.vim

    Patch 8.2.0187
    Problem:    Redundant code.
    Solution:   Remove unused assignments. (Dominique Pellé, closes #5557)
    Files:      src/vim9compile.c

    Patch 8.2.0188
    Problem:    Check commands don't work well with Vim9 script.
    Solution:   Improve constant expression handling.
    Files:      src/vim9compile.c, src/testdir/check.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0189
    Problem:    cd() with NULL argument crashes.
    Solution:   Check for NULL. (Ken Takata, closes #5558)
    Files:      src/testdir/test_cd.vim, src/ex_docmd.c

    Patch 8.2.0190
    Problem:    Kotlin files are not recognized.
    Solution:   Detect Kotlin files. (Alkeryn, closes #5560)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0191
    Problem:    Cannot put a terminal in a popup window.
    Solution:   Allow opening a terminal in a popup window.  It will always have
                keyboard focus until closed.
    Files:      src/popupwin.c, src/proto/popupwin.pro, src/terminal.c,
                src/proto/terminal.pro, src/macros.h, src/mouse.c,
                src/highlight.c, src/drawline.c, src/optionstr.c, src/window.c,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_1.dump,
                src/testdir/dumps/Test_terminal_popup_2.dump,
                src/testdir/dumps/Test_terminal_popup_3.dump

    Patch 8.2.0192 (after 8.2.0191)
    Problem:    Build failure without +terminal feature.
    Solution:   Add #ifdefs.
    Files:      src/popupwin.c

    Patch 8.2.0193 (after 8.2.0191)
    Problem:    Still build failure without +terminal feature.
    Solution:   Add more #ifdefs.
    Files:      src/macros.h

    Patch 8.2.0194 (after 8.2.0193)
    Problem:    Some commands can cause problems in terminal popup.
    Solution:   Disallow more commands.
    Files:      src/macros.h, src/popupwin.c, src/proto/popupwin.pro,
                src/arglist.c, src/ex_docmd.c, src/window.c,
                src/testdir/test_terminal.vim

    Patch 8.2.0195
    Problem:    Some tests fail when run in the GUI.
    Solution:   Make sure the window width is enough.  In the GUI run terminal Vim
                in the terminal, if possible.
    Files:      src/testdir/test_highlight.vim, src/testdir/check.vim,
                src/testdir/test_terminal.vim

    Patch 8.2.0196
    Problem:    Blocking commands for a finished job in a popup window.
    Solution:   Do not block commands if the job has finished.  Adjust test.
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim, src/window.c,
                src/terminal.c, src/proto/terminal.pro

    Patch 8.2.0197
    Problem:    Some Ex commands not sufficiently tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5565)
    Files:      src/testdir/test_global.vim, src/testdir/test_help.vim,
                src/testdir/test_help_tagjump.vim, src/testdir/test_options.vim,
                src/testdir/test_substitute.vim, src/testdir/test_textformat.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0198
    Problem:    No tests for y/n prompt.
    Solution:   Add tests. (Dominique Pellé, closes #5564)
    Files:      src/testdir/test_messages.vim

    Patch 8.2.0199
    Problem:    Vim9 script commands not sufficiently tested.
    Solution:   Add more tests.  Fix script-local function use.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim,
                src/userfunc.c

    Patch 8.2.0200
    Problem:    Vim9 script commands not sufficiently tested.
    Solution:   Add more tests.  Fix storing global variable.  Make script
                variables work.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/evalvars.c,
                src/proto/evalvars.pro, src/testdir/test_vim9_script.vim,
                src/misc1.c, src/proto/misc1.pro

    Patch 8.2.0201
    Problem:    Cannot assign to an imported variable.
    Solution:   Make it work.
    Files:      src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0202
    Problem:    When 'lazyredraw' is set the window title may not be updated.
    Solution:   Set "do_redraw" before entering the main loop. (Jason Franklin)
    Files:      src/main.c

    Patch 8.2.0203
    Problem:    :helptags and some other functionality not tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5567)
    Files:      src/testdir/test_compiler.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_excmd.vim, src/testdir/test_filechanged.vim,
                src/testdir/test_help.vim, src/testdir/test_help_tagjump.vim,
                src/testdir/test_timers.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.0204
    Problem:    Crash when using winnr('j') in a popup window.
    Solution:   Do not search for neighbors in a popup window. (closes #5568)
    Files:      src/window.c, src/testdir/test_popupwin.vim, src/evalwindow.c

    Patch 8.2.0205
    Problem:    Error code E899 used twice.
    Solution:   Use E863 for the terminal in popup error.
    Files:      src/popupwin.c

    Patch 8.2.0206
    Problem:    Calling Vim9 function using default argument fails.
    Solution:   Give an appropriate error. (closes #5572)
    Files:      src/testdir/test_vim9_script.vim, src/vim9compile.c,
                src/vim9execute.c

    Patch 8.2.0207
    Problem:    Crash when missing member type on list argument.
    Solution:   Check for invalid type. (closes #5572)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0208
    Problem:    Fnamemodify() does not apply ":~" when followed by ":.".
    Solution:   Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
                Matsumoto, closes #5577)
    Files:      runtime/doc/cmdline.txt, src/filepath.c,
                src/testdir/test_fnamemodify.vim

    Patch 8.2.0209
    Problem:    Function a bit far away from where it's used.
    Solution:   Move function close to where it's used. (Ken Takata, closes #5569)
    Files:      src/fileio.c, src/filepath.c

    Patch 8.2.0210
    Problem:    Coverity complains about uninitialized field.
    Solution:   Initialize the field.
    Files:      src/vim9compile.c

    Patch 8.2.0211
    Problem:    Test for ANSI colors fails without an "ls" command.
    Solution:   Use "dir". (Ken Takata, closes #5582)
    Files:      src/testdir/test_functions.vim

    Patch 8.2.0212
    Problem:    Missing search/substitute pattern hardly tested.
    Solution:   Add test_clear_search_pat() and tests. (Yegappan Lakshmanan,
                closes #5579)
    Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
                src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
                src/search.c, src/testdir/test_quickfix.vim,
                src/testdir/test_search.vim, src/testdir/test_sort.vim,
                src/testdir/test_substitute.vim, src/testing.c

    Patch 8.2.0213
    Problem:    Configure does not recognize gcc 10.0 and later.
    Solution:   Adjust the pattern matching the version number. (Sergei
                Trofimovich, closes #5580)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.0214
    Problem:    A popup window with a terminal can be made hidden.
    Solution:   Disallow hiding a terminal popup.
    Files:      src/testdir/test_terminal.vim, src/popupwin.c,
                src/testdir/dumps/Test_terminal_popup_4.dump

    Patch 8.2.0215 (after 8.2.0208)
    Problem:    Wrong file name shortening. (Ingo Karkat)
    Solution:   Better check for path separator. (Yasuhiro Matsumoto,
                closes #5583, closes #5584)
    Files:      src/filepath.c, src/testdir/test_fnamemodify.vim

    Patch 8.2.0216
    Problem:    Several Vim9 instructions are not tested.
    Solution:   Add more tests. Fix :disassemble output. Make catch with pattern
                work.
    Files:      src/testdir/test_vim9_script.vim, src/vim9execute.c,
                src/vim9compile.c

    Patch 8.2.0217 (after 8.2.0214)
    Problem:    Terminal test fails on Mac.
    Solution:   Add a short wait.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0218
    Problem:    Several Vim9 instructions are not tested.
    Solution:   Add more tests.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0219 (after 8.2.0217)
    Problem:    Terminal test still fails on Mac.
    Solution:   Skip part of the test on Mac.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0220
    Problem:    Terminal test did pass on Mac.
    Solution:   Remove the skip again.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0221
    Problem:    No test for Vim9 += and ..=.
    Solution:   Add tests.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0222
    Problem:    Vim9: optional function arguments don't work yet.
    Solution:   Implement optional function arguments.
    Files:      src/userfunc.c, src/vim9compile.c, src/vim9execute.c,
                src/structs.h, src/testdir/test_vim9_script.vim

    Patch 8.2.0223
    Problem:    Some instructions not yet tested.
    Solution:   Disassemble more instructions.  Move tests to a new file.  Compile
                call to s:function().
    Files:      src/testdir/test_vim9_script.vim, src/testdir/Make_all.mak,
                src/testdir/test_vim9_disassemble.vim, src/vim9compile.c,
                src/userfunc.c, src/proto/userfunc.pro, src/vim.h

    Patch 8.2.0224
    Problem:    compiling :elseif not tested yet.
    Solution:   Add test for :elseif.  Fix generating jumps.
    Files:      src/testdir/test_vim9_script.vim, src/vim9compile.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0225
    Problem:    compiling lambda not tested yet.
    Solution:   Add test for lambda and funcref. Drop unused instruction arg.
    Files:      src/testdir/test_vim9_disassemble.vim, src/vim9.h,
                src/vim9execute.c

    Patch 8.2.0226
    Problem:    Compiling for loop not tested.
    Solution:   Add a test.  Make variable initialization work for more types.
    Files:      src/testdir/test_vim9_disassemble.vim, src/vim9compile.c

    Patch 8.2.0227
    Problem:    Compiling a few instructions not tested.
    Solution:   Add more test cases.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0228
    Problem:    Configure does not recognize gcc version on BSD.
    Solution:   Do not use "\+" in the pattern matching the version number. (Ozaki
                Kiichi, closes #5590)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.0229
    Problem:    Compare instructions not tested.
    Solution:   Add test cases.  Fix disassemble with line continuation.
    Files:      src/testdir/test_vim9_disassemble.vim, src/vim9execute.c,
                src/vim9compile.c

    Patch 8.2.0230
    Problem:    Terminal popup test is flaky.
    Solution:   Increase wait time a bit.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0231
    Problem:    Silent system command may clear the screen.
    Solution:   Do not clear the screen in t_te.
    Files:      src/term.c

    Patch 8.2.0232
    Problem:    The :compiler command causes a crash. (Daniel Steinberg)
    Solution:   Do not use the script index if it isn't set.
    Files:      src/ex_docmd.c, src/testdir/test_compiler.vim

    Patch 8.2.0233
    Problem:    Crash when using garbagecollect() in between rand().
    Solution:   Redesign the rand() and srand() implementation. (Yasuhiro
                Matsumoto, closes #5587, closes #5588)
    Files:      src/evalfunc.c, src/testdir/test_random.vim,
                runtime/doc/testing.txt, runtime/doc/eval.txt

    Patch 8.2.0234
    Problem:    Message test fails on SunOS.
    Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595)
    Files:      src/message_test.c

    Patch 8.2.0235
    Problem:    Draw error when an empty group is removed from 'statusline'.
    Solution:   Do not use highlighting from a removed group.
    Files:      src/buffer.c, src/testdir/test_statusline.vim,
                src/testdir/dumps/Test_statusline_1.dump

    Patch 8.2.0236
    Problem:    MS-Windows uninstall doesn't delete vimtutor.bat.
    Solution:   Change directory before deletion. (Ken Takata, closes #5603)
    Files:      src/uninstall.c

    Patch 8.2.0237
    Problem:    Crash when setting 'wincolor' on finished terminal window.
                (Bakudankun)
    Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
                #5607, closes #5610)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.0238
    Problem:    MS-Windows: job_stop() results in exit value zero.
    Solution:   Call TerminateJobObject() with -1 instead of 0. (Yasuhiro
                Matsumoto, closes #5150, closes #5614)
    Files:      src/os_win32.c, src/testdir/test_channel.vim

    Patch 8.2.0239
    Problem:    MS-Windows: 'env' job option does not override existing
                environment variables.  (Tim Pope)
    Solution:   Set the environment variables later. (Yasuhiro Matsumoto,
                closes #5485, closes #5608)
    Files:      src/os_win32.c, src/testdir/test_channel.vim

    Patch 8.2.0240
    Problem:    Using memory after it was freed. (Dominique Pellé)
    Solution:   Do not mix conversion buffer with other buffer.
    Files:      src/viminfo.c, src/vim.h

    Patch 8.2.0241
    Problem:    Crash when setting 'buftype' to "quickfix".
    Solution:   Check that error list is not NULL. (closes #5613)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.0242
    Problem:    Preview popup window test fails with long directory name. (Jakub
                Kądziołka)
    Solution:   Use "silent cd". (closes #5615)
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.0243
    Problem:    Insufficient code coverage for ex_docmd.c functions.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5618)
    Files:      src/testdir/Make_all.mak, src/testdir/test_arglist.vim,
                src/testdir/test_buffer.vim, src/testdir/test_cd.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_excmd.vim, src/testdir/test_mapping.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_search.vim,
                src/testdir/test_sort.vim, src/testdir/test_source.vim,
                src/testdir/test_substitute.vim, src/testdir/test_undo.vim,
                src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0244
    Problem:    Compiler warning in Lua interface.
    Solution:   Add type cast. (Ken Takata, closes #5621)
    Files:      src/if_lua.c

    Patch 8.2.0245
    Problem:    MSVC: error message if the auto directory already exists.
    Solution:   Add "if not exists". (Ken Takata, closes #5620)
    Files:      src/Make_mvc.mak

    Patch 8.2.0246
    Problem:    MSVC: deprecation warnings with Ruby.
    Solution:   Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata,
                closes #5622)
    Files:      src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/vim.h,
                src/vimio.h

    Patch 8.2.0247
    Problem:    Misleading comment in NSIS installer script.
    Solution:   Negate the meaning of the comment. (Ken Takata, closes #5627)
    Files:      nsis/gvim.nsi

    Patch 8.2.0248
    Problem:    MS-Windows: dealing with deprecation is too complicated.
    Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
                file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
                Takata, closes #5626)
    Files:      src/Make_mvc.mak, src/dosinst.h, src/vim.h, src/vimio.h,
                src/winclip.c, Filelist

    Patch 8.2.0249
    Problem:    MS-Windows: various warnings.
    Solution:   Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_.
                (Ken Takata, closes #5625)
    Files:      src/GvimExt/Makefile, src/Make_mvc.mak

    Patch 8.2.0250
    Problem:    test_clear_search_pat() is unused.
    Solution:   Remove the function. (Yegappan Lakshmanan, closes #5624)
    Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
                src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
                src/search.c, src/testdir/test_writefile.vim, src/testing.c

    Patch 8.2.0251
    Problem:    A couple of function return types can be more specific.
    Solution:   Use a better return type. (Ken Takata, closes #5629)
    Files:      src/evalfunc.c, src/globals.h

    Patch 8.2.0252
    Problem:    Windows compiler warns for using size_t.
    Solution:   Change to int. (Mike Williams)
    Files:      src/vim9compile.c

    Patch 8.2.0253
    Problem:    Crash when using :disassemble without argument. (Dhiraj Mishra)
    Solution:   Check for missing argument. (Dominique Pellé, closes #5635,
                closes #5637)
    Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim,
                src/ex_cmds.h

    Patch 8.2.0254
    Problem:    Compiler warning for checking size_t to be negative.
    Solution:   Only check for zero. (Zoltan Arpadffy)
    Files:      src/vim9compile.c

    Patch 8.2.0255
    Problem:    VMS: missing files in build.
    Solution:   Add the files. (Zoltan Arpadffy)
    Files:      src/Make_vms.mms

    Patch 8.2.0256
    Problem:    Time and timer related code is spread out.
    Solution:   Move time and timer related code to a new file. (Yegappan
                Lakshmanan, closes #5604)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/evalfunc.c, src/ex_cmds.c, src/ex_cmds2.c, src/main.c,
                src/memline.c, src/misc1.c, src/misc2.c, src/proto.h,
                src/proto/ex_cmds.pro, src/proto/ex_cmds2.pro, src/proto/main.pro,
                src/proto/memline.pro, src/proto/misc1.pro, src/proto/misc2.pro,
                src/proto/time.pro, src/time.c

    Patch 8.2.0257
    Problem:    Cannot recognize a terminal in a popup window.
    Solution:   Add the win_gettype() function.
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/evalwindow.c,
                src/proto/evalwindow.pro, src/testdir/test_cmdline.vim,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_1.dump

    Patch 8.2.0258
    Problem:    ModifyOtherKeys cannot be temporarily disabled.
    Solution:   Add echoraw() with an example for modifyOtherKeys.
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_functions.vim,
                src/testdir/dumps/Test_functions_echoraw.dump

    Patch 8.2.0259
    Problem:    Terminal in popup test sometimes fails.
    Solution:   Clear the command line.
    Files:      src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_1.dump

    Patch 8.2.0260
    Problem:    Several lines of code are duplicated.
    Solution:   Move duplicated code to a function. (Yegappan Lakshmanan,
                closes #5330)
    Files:      src/option.c, src/os_unix.c, src/os_win32.c, src/proto/term.pro,
                src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
                src/term.c

    Patch 8.2.0261
    Problem:    Some code not covered by tests.
    Solution:   Add test cases. (Yegappan Lakshmanan, closes #5645)
    Files:      src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_exists.vim, src/testdir/test_filechanged.vim,
                src/testdir/test_fileformat.vim, src/testdir/test_mapping.vim,
                src/testdir/test_marks.vim, src/testdir/test_normal.vim,
                src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_tabpage.vim, src/testdir/test_visual.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim

    Patch 8.2.0262 (after 8.2.0261)
    Problem:    Fileformat test fails on MS-Windows.
    Solution:   Set fileformat of buffer.
    Files:      src/testdir/test_fileformat.vim

    Patch 8.2.0263
    Problem:    A few new Vim9 messages are not localized.
    Solution:   Add the gettext wrapper. (Dominique Pellé, closes #5647)
    Files:      src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0264 (after 8.2.0262)
    Problem:    Fileformat test still fails on MS-Windows.
    Solution:   Set fileformat of buffer in the right place.
    Files:      src/testdir/test_fileformat.vim

    Patch 8.2.0265
    Problem:    "eval" after "if 0" doesn't check for following command.
    Solution:   Add "eval" to list of commands that check for a following command.
                (closes #5640)
    Files:      src/ex_docmd.c, src/testdir/test_expr.vim

    Patch 8.2.0266
    Problem:    Terminal in popup test sometimes fails on Mac.
    Solution:   Add a short delay.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0267
    Problem:    No check for a following command when calling a function fails.
    Solution:   Also check for a following command when inside a try block.
                (closes #5642)
    Files:      src/userfunc.c, src/testdir/test_user_func.vim

    Patch 8.2.0268 (after 8.2.0267)
    Problem:    Trycatch test fails.
    Solution:   When calling function fails only check for following command, do
                not give another error.
    Files:      src/userfunc.c

    Patch 8.2.0269
    Problem:    Vim9: operator after list index does not work. (Yasuhiro
                Matsumoto)
    Solution:   After indexing a list change the type to the list member type.
                (closes #5651)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0270
    Problem:    Some code not covered by tests.
    Solution:   Add test cases. (Yegappan Lakshmanan, closes #5649)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
                src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_excmd.vim, src/testdir/test_expand.vim,
                src/testdir/test_filetype.vim, src/testdir/test_findfile.vim,
                src/testdir/test_join.vim, src/testdir/test_move.vim,
                src/testdir/test_normal.vim, src/testdir/test_registers.vim,
                src/testdir/test_source.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_vimscript.vim,
                src/testdir/test_visual.vim, src/testdir/test_window_cmd.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0271
    Problem:    The "num64" feature is available everywhere and building without
                it causes problems.
    Solution:   Graduate the "num64" feature. (James McCoy, closes #5650)
    Files:      src/evalfunc.c, src/feature.h, src/message.c, src/structs.h,
                src/testdir/test_expr.vim, src/testdir/test_largefile.vim,
                src/testdir/test_sort.vim, src/testdir/test_vimscript.vim,
                src/version.c

    Patch 8.2.0272
    Problem:    ":helptags ALL" gives error for directories without write
                permission. (Matěj Cepl)
    Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes #5026,
                closes #5652)
    Files:      src/ex_cmds.c, src/testdir/test_help.vim

    Patch 8.2.0273
    Problem:    MS-Windows uninstall may delete wrong batch file.
    Solution:   Add specific marker in the generated batch file. (Ken Takata,
                closes #5654)
    Files:      src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c

    Patch 8.2.0274
    Problem:    Hang with combination of feedkeys(), Ex mode and :global.
                (Yegappan Lakshmanan)
    Solution:   Add the pending_exmode_active flag.
    Files:      src/ex_docmd.c, src/globals.h, src/getchar.c,
                src/testdir/test_ex_mode.vim

    Patch 8.2.0275
    Problem:    Some Ex code not covered by tests.
    Solution:   Add test cases. (Yegappan Lakshmanan, closes #5659)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim,
                src/testdir/test_excmd.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_search.vim, src/testdir/test_swap.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.0276
    Problem:    Vim9: not allowing space before ")" in function call is too
                restrictive. (Ben Jackson)
    Solution:   Skip space before the ")".  Adjust other space checks.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0277
    Problem:    Vim9: not all instructions covered by tests.
    Solution:   Add more test cases.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0278
    Problem:    Channel test is flaky on Mac.
    Solution:   Reset variable before sending message.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.0279
    Problem:    Vim9: no test for deleted :def function.
    Solution:   Add a test.  Clear uf_cleared flag when redefining a function.
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0280
    Problem:    Vim9: throw in :def function not caught higher up.
    Solution:   Set "need_rethrow".
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0281
    Problem:    Two placed signs in the same line are not combined.  E.g. in the
                terminal debugger a breakpoint and the PC cannot be both be
                displayed.
    Solution:   Combine the sign column and line highlight attributes.
    Files:      src/sign.c, src/testdir/test_signs.vim,
                src/testdir/dumps/Test_sign_cursor_3.dump,
                src/testdir/dumps/Test_sign_cursor_4.dump

    Patch 8.2.0282
    Problem:    Vim9: setting number option not tested.
    Solution:   Add more tests.   Fix assigning to global variable.
    Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
                src/vim9execute.c

    Patch 8.2.0283
    Problem:    Vim9: failing to load script var not tested.
    Solution:   Add more tests.   Fix using s: in old script.
    Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0284
    Problem:    Vim9: assignment test fails.
    Solution:   Avoid duplicating "s:".
    Files:      src/vim9compile.c

    Patch 8.2.0285
    Problem:    Unused error message. Cannot create s:var.
    Solution:   Remove the error message. Make assignment to s:var work.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0286
    Problem:    Cannot use popup_close() for a terminal popup.
    Solution:   Allow using popup_close(). (closes #5666)
    Files:      src/popupwin.c, runtime/doc/popup.txt,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_5.dump,
                src/testdir/dumps/Test_terminal_popup_6.dump

    Patch 8.2.0287
    Problem:    Vim9: return in try block not tested; catch with pattern not
                tested.
    Solution:   Add tests.  Make it work.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0288
    Problem:    Vim9: some float and blob operators not tested.
    Solution:   Add float and blob tests.  Fix addition.
    Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c

    Patch 8.2.0289
    Problem:    Vim9: :echo did not clear the rest of the line.
    Solution:   Call msg_clr_eos(). (Ken Takata, closes #5668)
    Files:      src/vim9execute.c

    Patch 8.2.0290
    Problem:    Running individual test differs from all tests.
    Solution:   Pass on environment variables. (Yee Cheng Chin, closes #5672)
    Files:      src/testdir/Makefile, src/testdir/README.txt

    Patch 8.2.0291
    Problem:    Vim9: assigning [] to list<string> doesn't work.
    Solution:   Use void for empty list and dict. (Ken Takata, closes #5669)
    Files:      src/vim9compile.c, src/globals.h, src/testdir/test_vim9_script.vim

    Patch 8.2.0292
    Problem:    Vim9: CHECKNR and CHECKTYPE instructions not tested.
    Solution:   Add tests.
    Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0293
    Problem:    Various Ex commands not sufficiently tested.
    Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5673)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_ex_mode.vim, src/testdir/test_excmd.vim,
                src/testdir/test_expand.vim, src/testdir/test_filetype.vim,
                src/testdir/test_filter_cmd.vim, src/testdir/test_global.vim,
                src/testdir/test_normal.vim, src/testdir/test_plus_arg_edit.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_trycatch.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.0294
    Problem:    Cannot use Ex command that is also a function name.
    Solution:   Recognize an Ex command by a colon prefix.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                runtime/doc/vim9.txt

    Patch 8.2.0295
    Problem:    Highlighting for :s wrong when using different separator.
    Solution:   Use separate argument for search direction and separator. (Rob
                Pilling, closes #5665)
    Files:      src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/normal.c,
                src/proto/search.pro, src/quickfix.c, src/search.c, src/spell.c,
                src/tag.c, src/testdir/dumps/Test_incsearch_substitute_15.dump,
                src/testdir/test_search.vim

    Patch 8.2.0296
    Problem:    Mixing up "long long" and __int64 may cause problems. (John
                Marriott)
    Solution:   Pass varnumber_T to vim_snprintf().  Add v:numbersize.
    Files:      src/message.c, src/eval.c, src/fileio.c, src/json.c, src/ops.c,
                src/vim.h, src/structs.h, src/evalvars.c, runtime/doc/eval.txt,
                runtime/doc/various.txt, src/testdir/test_eval_stuff.vim

    Patch 8.2.0297
    Problem:    Compiler warnings for the Ruby interface.
    Solution:   Undefine a few macros, fix initialization. (Ozaki Kiichi,
                closes #5677)
    Files:      src/if_ruby.c

    Patch 8.2.0298
    Problem:    Vim9 script: cannot start command with a string constant.
    Solution:   Recognize expression starting with '('.
    Files:      src/ex_docmd.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim, runtime/doc/vim9.txt

    Patch 8.2.0299
    Problem:    Vim9: ISN_STORE with argument not tested.  Some cases in tv2bool()
                not tested.
    Solution:   Add tests.  Add test_unknown() and test_void().
    Files:      src/testing.c, src/proto/testing.pro, src/evalfunc.c,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, runtime/doc/eval.txt,
                runtime/doc/testing.txt

    Patch 8.2.0300
    Problem:    Vim9: expression test fails without channel support.
    Solution:   Add has('channel') check.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.0301
    Problem:    Insufficient testing for exception handling and the "attention"
                prompt.
    Solution:   Add test cases. (Yegappan Lakshmanan, closes #5681)
    Files:      src/testdir/test_swap.vim, src/testdir/test_trycatch.vim

    Patch 8.2.0302
    Problem:    Setting 'term' may cause error in TermChanged autocommand.
    Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
                is to be executed. (closes #5682)
    Files:      src/term.c, src/testdir/test_autocmd.vim

    Patch 8.2.0303
    Problem:    TermChanged test fails in the GUI.
    Solution:   Skip the test when running the GUI.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.0304
    Problem:    Terminal test if failing on some systems.
    Solution:   Wait for the job to finish. (James McCoy)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0305
    Problem:    Relativenumber test fails on some systems. (James McCoy)
    Solution:   Clear the command line.
    Files:      src/testdir/test_number.vim,
                src/testdir/dumps/Test_relnr_colors_2.dump,
                src/testdir/dumps/Test_relnr_colors_3.dump

    Patch 8.2.0306
    Problem:    Vim9: :substitute(pat(repl does not work in Vim9 script.
    Solution:   Remember starting with a colon. (closes #5676)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0307
    Problem:    Python 3 vim.eval not well tested.
    Solution:   Add a test. (Dominique Pellé, closes #5680)
    Files:      src/testdir/test_python3.vim

    Patch 8.2.0308
    Problem:    'showbreak' does not work for a very long line. (John Little)
    Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
                closes #5684)
    Files:      src/drawline.c, src/testdir/test_breakindent.vim

    Patch 8.2.0309
    Problem:    Window-local values have confusing name.
    Solution:   Rename w_p_bri* to w_briopt_*.
    Files:      src/structs.h, src/indent.c, src/drawline.c

    Patch 8.2.0310
    Problem:    Autocmd test fails on a slow system.
    Solution:   Adjust the expectations. (James McCoy, closes #5685)
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.0311
    Problem:    Vim9: insufficient script tests.
    Solution:   Add tests.  Free imports when re-using a script.
    Files:      src/testdir/test_vim9_script.vim, src/scriptfile.c

    Patch 8.2.0312
    Problem:    Vim9: insufficient script tests.
    Solution:   Add more tests.  Make "import * as Name" work.
    Files:      src/testdir/test_vim9_script.vim, src/vim9script.c,
                src/proto/vim9script.pro, src/vim9compile.c

    Patch 8.2.0313
    Problem:    Vim9: insufficient script tests.
    Solution:   Add tests.  Make import of alphanumeric name work.
    Files:      src/testdir/test_vim9_script.vim, src/vim9script.c

    Patch 8.2.0314
    Problem:    Short name not set for terminal buffer.
    Solution:   Set the short name. (closes #5687)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.0315
    Problem:    Build failure on HP-UX system.
    Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
                statement. (John Marriott)
    Files:      src/structs.h, src/json.c

    Patch 8.2.0316
    Problem:    ex_getln.c code has insufficient test coverage.
    Solution:   Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693)
    Files:      src/cmdhist.c, src/testdir/test_cmdline.vim,
                src/testdir/test_functions.vim, src/testdir/test_history.vim,
                src/testdir/test_menu.vim

    Patch 8.2.0317
    Problem:    MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build.
    Solution:   Move where CFLAGS is updated. (Ken Takata, closes #5692)
    Files:      src/Make_mvc.mak

    Patch 8.2.0318
    Problem:    Vim9: types not sufficiently tested.
    Solution:   Add tests with more types.
    Files:      src/globals.h, src/vim9compile.c,
                src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.0319
    Problem:    File missing in distribution, comments outdated.
    Solution:   Correct path of README file.  Update comments.
    Files:      Filelist, src/evalvars.c, src/register.c, src/if_python3.c

    Patch 8.2.0320
    Problem:    No Haiku support.
    Solution:   Add support for Haiku. (Emir Sarı, closes #5605)
    Files:      Filelist, runtime/doc/Makefile, runtime/doc/eval.txt,
                runtime/doc/gui.txt, runtime/doc/help.txt,
                runtime/doc/options.txt, runtime/doc/os_haiku.txt,
                runtime/doc/starting.txt, runtime/doc/tags,
                runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
                src/INSTALL, src/Makefile, src/auto/configure, src/configure.ac,
                src/evalfunc.c, src/feature.h, src/fileio.c, src/globals.h,
                src/gui.c, src/gui.h, src/gui_haiku.cc, src/gui_haiku.h,
                src/mbyte.c, src/menu.c, src/misc1.c, src/mouse.c, src/option.h,
                src/os_haiku.h, src/os_haiku.rdef, src/os_unix.c, src/os_unix.h,
                src/osdef1.h.in, src/proto.h, src/proto/gui_haiku.pro, src/pty.c,
                src/screen.c, src/structs.h, src/term.c, src/version.c, src/vim.h

    Patch 8.2.0321
    Problem:    Vim9: ":execute" does not work yet.
    Solution:   Add ISN_EXECUTE. (closes #5699) Also make :echo work with more
                than one argument.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0322
    Problem:    Vim9: error checks not tested.
    Solution:   Add more test cases.  Avoid error for function loaded later.
    Files:      src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0323
    Problem:    Vim9: calling a function that is defined later is slow.
    Solution:   Once the function is found update the instruction so it can be
                called directly.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0324
    Problem:    Text property not updated correctly when inserting/deleting.
    Solution:   Use the right column when deleting. Make zero-width text
                properties respect start_incl and end_incl. (Axel Forsman,
                closes #5696, closes #5679)
    Files:      src/change.c, src/textprop.c, src/testdir/test_listener.vim,
                src/testdir/test_textprop.vim

    Patch 8.2.0325
    Problem:    Ex_getln.c code not covered by tests.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5702)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_functions.vim, src/testdir/test_history.vim,
                src/testdir/test_options.vim

    Patch 8.2.0326
    Problem:    Compiler warning for using uninitialized variable. (Yegappan
                Lakshmanan)
    Solution:   Do not jump to failed but return.
    Files:      src/vim9execute.c

    Patch 8.2.0327
    Problem:    Crash when opening and closing two popup terminal windows.
    Solution:   Check that prevwin is valid. (closes #5707)
    Files:      src/popupwin.c, src/testdir/test_terminal.vim

    Patch 8.2.0328
    Problem:    No redraw when leaving terminal-normal mode in a terminal popup
                window.
    Solution:   Redraw the popup window. (closes #5708)
    Files:      src/macros.h, src/vim.h, src/terminal.c, src/drawscreen.c,
                src/move.c, src/popupwin.c, src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_7.dump,
                src/testdir/dumps/Test_terminal_popup_8.dump

    Patch 8.2.0329
    Problem:    Popup filter converts 0x80 bytes.
    Solution:   Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.0330
    Problem:    Build error with popup window but without terminal.
    Solution:   Add #ifdef.
    Files:      src/popupwin.c

    Patch 8.2.0331
    Problem:    Internal error when using test_void() and test_unknown().
                (Dominique Pellé)
    Solution:   Give a normal error.
    Files:      src/evalfunc.c, src/testdir/test_functions.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.0332
    Problem:    Some code in ex_getln.c not covered by tests.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5710)
    Files:      src/testdir/test_arabic.vim, src/testdir/test_cmdline.vim

    Patch 8.2.0333
    Problem:    Terminal in popup test is flaky.
    Solution:   Make sure redraw is done before opening the popup.
    Files:      src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_1.dump

    Patch 8.2.0334
    Problem:    Abort called when using test_void(). (Dominique Pellé)
    Solution:   Only give an error, don't abort.
    Files:      src/message.c, src/proto/message.pro, src/evalfunc.c,
                src/eval.c, src/json.c, src/testdir/test_functions.vim

    Patch 8.2.0335
    Problem:    No completion for :disassemble.
    Solution:   Make completion work.  Also complete script-local functions if the
                name starts with "s:".
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
                runtime/doc/vim9.txt

    Patch 8.2.0336
    Problem:    Vim9: insufficient test coverage for compiling.
    Solution:   Add more tests.
    Files:      src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
                src/vim9.h, src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0337
    Problem:    Build fails on a few systems.
    Solution:   Use vim_snprintf() instead of snprintf().
    Files:      src/cmdexpand.c

    Patch 8.2.0338
    Problem:    Build failure without the channel feature.
    Solution:   Add #ifdef
    Files:      src/vim9compile.c

    Patch 8.2.0339
    Problem:    Vim9: function return type may depend on arguments.
    Solution:   Instead of a fixed return type use a function to figure out the
                return type.
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c,
                src/evalbuffer.c, src/proto/evalbuffer.pro,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0340
    Problem:    Vim9: function and partial types not tested.
    Solution:   Support more for partial, add tests.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0341
    Problem:    Using ":for" in Vim9 script gives an error.
    Solution:   Pass the LET_NO_COMMAND flag. (closes #5715)
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0342
    Problem:    Some code in ex_getln.c not covered by tests.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5717)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_history.vim, src/testdir/test_iminsert.vim

    Patch 8.2.0343
    Problem:    Vim9: using wrong instruction, limited test coverage.
    Solution:   Use ISN_PUSHJOB.  Add a few more tests.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0344
    Problem:    ":def" not skipped properly.
    Solution:   Add CMD_def to list of commands the require evaluation even when
                not being executed.
    Files:      src/ex_docmd.c

    Patch 8.2.0345
    Problem:    Compiler warning when building without the float feature.
    Solution:   Add #ifdef. (John Marriott)
    Files:      src/evalfunc.c

    Patch 8.2.0346
    Problem:    Vim9: finding common list type not tested.
    Solution:   Add more tests.  Fix listing function.  Fix overwriting type.
    Files:      src/vim9compile.c, src/userfunc.c,
                src/testdir/test_vim9_script.vim, src/testdir/runtest.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0347
    Problem:    Various code not covered by tests.
    Solution:   Add more test coverage. (Yegappan Lakshmanan, closes #5720)
    Files:      src/testdir/gen_opt_test.vim, src/testdir/test86.in,
                src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim,
                src/testdir/test_ex_mode.vim, src/testdir/test_history.vim

    Patch 8.2.0348
    Problem:    Vim9: not all code tested.
    Solution:   Add a few more tests. fix using "b:" in literal dictionary.
    Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c,
                src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim

    Patch 8.2.0349
    Problem:    Vim9: constant expression not well tested.
    Solution:   Add tests for "if" with constant expression.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0350
    Problem:    Vim9: expression tests don't use recognized constants.
    Solution:   Recognize "true" and "false" as constants.  Make skipping work for
                assignment and expression evaluation.
    Files:      src/vim9compile.c

    Patch 8.2.0351
    Problem:    Terminal in popup test is still a bit flaky.
    Solution:   Clear and redraw before opening the popup.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0352
    Problem:    FreeBSD: test for sourcing utf-8 is skipped.
    Solution:   Run the matchadd_conceal test separately to avoid that setting
                'term' to "ansi" causes problems for other tests. (Ozaki Kiichi,
                closes #5721)
    Files:      src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim,
                src/testdir/test_source_utf8.vim

    Patch 8.2.0353
    Problem:    Vim9: while loop not tested.
    Solution:   Add test with "while", "break" and "continue"
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0354
    Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
    Solution:   Remove it, it was only for debugging.
    Files:      src/if_python3.c

    Patch 8.2.0355
    Problem:    Vim9: str_val is confusing, it's a number
    Solution:   Rename to stnr_val.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0356
    Problem:    MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly.
    Solution:   Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken
                Takata, closes #5726)
    Files:      src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.vim

    Patch 8.2.0357
    Problem:    Cannot delete a text property matching both id and type. (Axel
                Forsman)
    Solution:   Add the "both" argument.
    Files:      src/textprop.c, runtime/doc/textprop.txt,
                src/testdir/test_textprop.vim

    Patch 8.2.0358
    Problem:    Insufficient testing for indent.c.
    Solution:   Add indent tests. (Yegappan Lakshmanan, closes #5736)
    Files:      src/testdir/Make_all.mak, src/testdir/test_ex_mode.vim,
                src/testdir/test_expand_func.vim, src/testdir/test_indent.vim,
                src/testdir/test_lispwords.vim, src/testdir/test_smartindent.vim,
                src/testdir/test_vartabs.vim

    Patch 8.2.0359
    Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
    Solution:   Take the decoration into account. (closes #5728)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.0360
    Problem:    Yaml files are only recognized by the file extension.
    Solution:   Check for a line starting with "%YAML". (Jason Franklin)
    Files:      runtime/scripts.vim, src/testdir/test_filetype.vim

    Patch 8.2.0361
    Problem:    Internal error when using "0" for a callback.
    Solution:   Give a normal error. (closes #5743)
    Files:      src/evalvars.c, src/testdir/test_timers.vim

    Patch 8.2.0362
    Problem:    MS-Windows: channel test fails if grep is not available.
    Solution:   Use another command. (Ken Takata, closes #5739)
    Files:      src/testdir/test_channel.vim

    Patch 8.2.0363
    Problem:    Some Normal mode commands not tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5746)
    Files:      src/testdir/test_cindent.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_edit.vim, src/testdir/test_indent.vim,
                src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim,
                src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim

    Patch 8.2.0364
    Problem:    Printf test failing on Haiku.
    Solution:   Make a difference between int and short. (Dominique Pellé,
                closes #5749)
    Files:      src/message.c

    Patch 8.2.0365
    Problem:    Tag kind can't be a multibyte character. (Marcin Szamotulski)
    Solution:   Recognize multibyte character. (closes #5724)
    Files:      src/tag.c, src/testdir/test_taglist.vim

    Patch 8.2.0366
    Problem:    Hardcopy command not tested enough.
    Solution:   Add tests for printing. (Dominique Pellé, closes #5748)
    Files:      src/testdir/test_hardcopy.vim

    Patch 8.2.0367
    Problem:    Can use :pedit in a popup window.
    Solution:   Disallow it.
    Files:      src/ex_docmd.c, src/testdir/test_popupwin.vim

    Patch 8.2.0368
    Problem:    Vim9: import that redefines local variable does not fail.
    Solution:   Check for already defined symbols.
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c,
                src/proto/vim9compile.pro, src/testdir/test_vim9_script.vim

    Patch 8.2.0369
    Problem:    Various Normal mode commands not fully tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5751)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_changelist.vim,
                src/testdir/test_charsearch.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_edit.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_excmd.vim, src/testdir/test_gf.vim,
                src/testdir/test_iminsert.vim, src/testdir/test_increment.vim,
                src/testdir/test_marks.vim, src/testdir/test_normal.vim,
                src/testdir/test_prompt_buffer.vim, src/testdir/test_put.vim,
                src/testdir/test_registers.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_visual.vim

    Patch 8.2.0370
    Problem:    The typebuf_was_filled flag is sometimes not reset, which may
                cause a hang.
    Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
                empty.
    Files:      src/edit.c, src/getchar.c,

    Patch 8.2.0371
    Problem:    Crash with combination of terminal popup and autocmd.
    Solution:   Disallow closing a popup that is the current window.  Add a check
                that the current buffer is valid. (closes #5754)
    Files:      src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c,
                src/testdir/test_terminal.vim

    Patch 8.2.0372
    Problem:    Prop_find() may not find text property at start of the line.
    Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
                closes #5663)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.0373
    Problem:    Type of term_sendkeys() is unknown.
    Solution:   Just return zero. (closes #5762)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.0374
    Problem:    Using wrong printf directive for jump location.
    Solution:   Change "%lld" to "%d". (James McCoy, closes #5773)
    Files:      src/vim9execute.c

    Patch 8.2.0375
    Problem:    Coverity warning for not using return value.
    Solution:   Move error message to separate function.
    Files:      src/popupwin.c

    Patch 8.2.0376
    Problem:    Nasty callback test fails on some systems.
    Solution:   Increase the sleep time.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0377
    Problem:    No CI test for a big-endian system.
    Solution:   Test with s390x. (James McCoy, closes #5772)
    Files:      .travis.yml

    Patch 8.2.0378
    Problem:    prop_find() does not find all props.
    Solution:   Check being in the start line. (Axel Forsman, closes #5776)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.0379
    Problem:    Gcc warns for ambiguous else.
    Solution:   Add braces. (Dominique Pellé, closes #5778)
    Files:      src/textprop.c

    Patch 8.2.0380
    Problem:    Tiny popup when creating a terminal popup without minwidth.
    Solution:   Use a default minimum size of 5 lines of 20 characters.
    Files:      src/popupwin.c, src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_m1.dump

    Patch 8.2.0381
    Problem:    Using freed memory with :lvimgrep and autocommand. (extracted from
                POC by Dominique Pellé)
    Solution:   Avoid deleting a dummy buffer used in a window. (closes #5777)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.0382
    Problem:    Some tests fail when run under valgrind.
    Solution:   Increase timeouts.
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_debugger.vim,
                src/testdir/test_channel.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_popup_1.dump,
                src/testdir/dumps/Test_terminal_popup_2.dump,
                src/testdir/dumps/Test_terminal_popup_3.dump,
                src/testdir/dumps/Test_terminal_popup_5.dump,
                src/testdir/dumps/Test_terminal_popup_6.dump,
                src/testdir/dumps/Test_terminal_popup_7.dump,
                src/testdir/dumps/Test_terminal_popup_8.dump,
                src/testdir/dumps/Test_terminal_popup_m1.dump

    Patch 8.2.0383
    Problem:    Wrong feature check causes test not to be run.
    Solution:   Use CheckFunction instead of CheckFeature. (Ozaki Kiichi,
                closes #5781)
    Files:      src/testdir/test_channel.vim

    Patch 8.2.0384
    Problem:    Travis CI has warnings.
    Solution:   Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779)
    Files:      .travis.yml

    Patch 8.2.0385
    Problem:    Menu functionality insufficiently tested.
    Solution:   Add tests.  Add menu_info(). (Yegappan Lakshmanan, closes #5760)
    Files:      runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/usr_41.txt,
                src/evalfunc.c, src/menu.c, src/proto/menu.pro,
                src/testdir/test_menu.vim, src/testdir/test_popup.vim,
                src/testdir/test_termcodes.vim

    Patch 8.2.0386 (after 8.2.0385)
    Problem:    Part from unfinished patch got included.
    Solution:   Undo that part.
    Files:      src/evalfunc.c

    Patch 8.2.0387
    Problem:    Error for possible NULL argument to qsort().
    Solution:   Don't call qsort() when there is nothing to sort. (Dominique
                Pellé, closes #5780)
    Files:      src/spellsuggest.c

    Patch 8.2.0388
    Problem:    Printmbcharset option not tested.
    Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
                Pellé, closes #5783)
    Files:      appveyor.yml, src/testdir/test_hardcopy.vim

    Patch 8.2.0389
    Problem:    Delayed redraw when shifting text from Insert mode.
    Solution:   Use msg_attr_keep() instead of msg(). (closes #5782)
    Files:      src/ops.c

    Patch 8.2.0390
    Problem:    Terminal postponed scrollback test is flaky.
    Solution:   Add delay in between sending keys.  Rename dump files.
    Files:      src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_01.dump,
                src/testdir/dumps/Test_terminal_02.dump,
                src/testdir/dumps/Test_terminal_03.dump,
                src/testdir/dumps/Test_terminal_scrollback_1.dump,
                src/testdir/dumps/Test_terminal_scrollback_2.dump,
                src/testdir/dumps/Test_terminal_scrollback_3.dump

    Patch 8.2.0391 (after 8.2.0377)
    Problem:    CI test coverage dropped.
    Solution:   Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788)
    Files:      .travis.yml

    Patch 8.2.0392
    Problem:    Coverity warns for using array index out of range.
    Solution:   Add extra "if" to avoid warning.
    Files:      src/menu.c

    Patch 8.2.0393
    Problem:    Coverity warns for not using return value.
    Solution:   Add (void).
    Files:      src/popupmenu.c

    Patch 8.2.0394
    Problem:    Coverity complains about using NULL pointer.
    Solution:   Use empty string when option value is NULL.
    Files:      src/optionstr.c

    Patch 8.2.0395
    Problem:    Build fails with FEAT_EVAL but without FEAT_MENU.
    Solution:   Add #ifdef. (John Marriott)
    Files:      src/evalfunc.c

    Patch 8.2.0396
    Problem:    Cmdexpand.c insufficiently tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5789)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_taglist.vim,
                src/testdir/test_terminal.vim, src/testdir/test_usercommands.vim

    Patch 8.2.0397
    Problem:    Delayed screen update when using undo from Insert mode.
    Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
    Files:      src/normal.c

    Patch 8.2.0398
    Problem:    Profile test fails when two functions take same time.
    Solution:   Add a short sleep in once function. (closes #5797)
    Files:      src/testdir/test_profile.vim

    Patch 8.2.0399
    Problem:    Various memory leaks.
    Solution:   Avoid the leaks. (Ozaki Kiichi, closes #5803)
    Files:      src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c,
                src/scriptfile.c, src/userfunc.c

    Patch 8.2.0400
    Problem:    Not all tests using a terminal are in the list of flaky tests.
    Solution:   Introduce the test_is_flaky flag.
    Files:      src/testdir/runtest.vim, src/testdir/term_util.vim,
                src/testdir/screendump.vim, src/testdir/test_autocmd.vim

    Patch 8.2.0401
    Problem:    Not enough test coverage for evalvars.c.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_const.vim,
                src/testdir/test_diffmode.vim, src/testdir/test_excmd.vim,
                src/testdir/test_functions.vim, src/testdir/test_let.vim,
                src/testdir/test_listdict.vim, src/testdir/test_spell.vim,
                src/testdir/test_unlet.vim, src/testdir/test_user_func.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.0402 (after 8.2.0401)
    Problem:    Setting local instead of global flag.
    Solution:   Prepend "g:" to "test_is_flaky".
    Files:      src/testdir/term_util.vim, src/testdir/screendump.vim,
                src/testdir/test_autocmd.vim

    Patch 8.2.0403
    Problem:    When 'buftype' is "nofile" there is no overwrite check.
    Solution:   Also check for existing file when 'buftype' is set.
                (closes #5807)
    Files:      src/ex_cmds.c, src/testdir/test_options.vim

    Patch 8.2.0404
    Problem:    Writefile() error does not give a hint.
    Solution:   Add remark about first argument.
    Files:      src/filepath.c, src/testdir/test_writefile.vim

    Patch 8.2.0405
    Problem:    MSVC: build fails with some combination of features.
    Solution:   Enable CHANNEL if TERMINAL is enabled. (Mike Williams)
    Files:      src/Make_mvc.mak

    Patch 8.2.0406
    Problem:    FileReadCmd event not well tested.
    Solution:   Add a test.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.0407
    Problem:    No early check if :find and :sfind have an argument.
    Solution:   Add EX_NEEDARG.
    Files:      src/ex_cmds.h, src/testdir/test_findfile.vim,
                src/testdir/test_find_complete.vim

    Patch 8.2.0408
    Problem:    Delete() commented out for testing.
    Solution:   Undo commenting-out.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0409
    Problem:    Search test leaves file behind.
    Solution:   Delete the file.  Also use Check commands.
    Files:      src/testdir/test_search.vim

    Patch 8.2.0410
    Problem:    Channel test fails too often on slow Mac.
    Solution:   Increase waiting time to 10 seconds.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.0411
    Problem:    Mac: breakcheck is using a value from the stone ages.
    Solution:   Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson)
    Files:      src/os_mac.h

    Patch 8.2.0412
    Problem:    MS-Windows: cannot use vimtutor from the start menu.
    Solution:   Better check for writable directory. Use the right path for the
                executable. (Wu Yongwei, closes #5774, closes #5756)
    Files:      vimtutor.bat

    Patch 8.2.0413
    Problem:    Buffer menu does not handle special buffers properly.
    Solution:   Keep a dictionary with buffer names to reliably keep track of
                entries.
                Also trigger BufFilePre and BufFilePost for command-line and
                terminal buffers when the name changes.
    Files:      src/testdir/test_alot.vim, src/testdir/Make_all.mak,
                runtime/menu.vim, src/ex_getln.c, src/terminal.c,
                src/testdir/test_menu.vim

    Patch 8.2.0414
    Problem:    Channel connect_waittime() test is flaky.
    Solution:   Set the test_is_flaky flag.  Use test_is_flaky for more tests.
    Files:      src/testdir/test_channel.vim, src/testdir/test_terminal.vim,
                src/testdir/runtest.vim

    Patch 8.2.0415
    Problem:    Bsdl filetype is not detected.
    Solution:   Add an entry in the filetype list. (Daniel Kho, closes #5810)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0416
    Problem:    Test leaves file behind.
    Solution:   Delete the file.
    Files:      src/testdir/test_indent.vim

    Patch 8.2.0417
    Problem:    Travis CI config can be improved.
    Solution:   Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE"
                to avoid messages about viminfo. (Ozaki Kiichi, closes #5813)
    Files:      .travis.yml, ci/load-snd-dummy.sh

    Patch 8.2.0418
    Problem:    Code in eval.c not sufficiently covered by tests.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5815)
    Files:      src/testdir/test_blob.vim, src/testdir/test_channel.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_eval_stuff.vim,
                src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_job_fails.vim, src/testdir/test_lambda.vim,
                src/testdir/test_let.vim, src/testdir/test_listdict.vim,
                src/testdir/test_marks.vim, src/testdir/test_method.vim,
                src/testdir/test_normal.vim, src/testdir/test_unlet.vim,
                src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.0419
    Problem:    Various memory leaks in Vim9 script code.
    Solution:   Fix the leaks. (Ozaki Kiichi, closes #5814)
    Files:      src/proto/vim9compile.pro, src/scriptfile.c, src/structs.h,
                src/testdir/test_vim9_script.vim, src/vim9.h, src/vim9compile.c,
                src/vim9execute.c, src/vim9script.c

    Patch 8.2.0420
    Problem:    Vim9: cannot interrupt a loop with CTRL-C.
    Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
    Files:      src/misc1.c, src/proto/misc1.pro,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0421
    Problem:    Interrupting with CTRL-C does not always work.
    Solution:   Recognize CTRL-C while modifyOtherKeys is set.
    Files:      src/ui.c, src/testdir/test_vim9_script.vim, src/evalfunc.c

    Patch 8.2.0422
    Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
    Solution:   Disallow moving a popup window. (closes #5816)
    Files:      src/testdir/test_popupwin.vim, src/evalwindow.c

    Patch 8.2.0423
    Problem:    In some environments a few tests are expected to fail.
    Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
                fail.
    Files:      src/testdir/runtest.vim

    Patch 8.2.0424
    Problem:    Checking for wrong return value. (Tom)
    Solution:   Invert the check and fix the test.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0425
    Problem:    Code for modeless selection not sufficiently tested.
    Solution:   Add tests.  Move mouse code functionality to a common script file.
                (Yegappan Lakshmanan, closes #5821)
    Files:      src/testdir/Make_all.mak, src/testdir/gen_opt_test.vim,
                src/testdir/mouse.vim, src/testdir/test_edit.vim,
                src/testdir/test_global.vim, src/testdir/test_modeless.vim,
                src/testdir/test_normal.vim, src/testdir/test_selectmode.vim,
                src/testdir/test_termcodes.vim, src/testdir/test_visual.vim,
                src/ui.c

    Patch 8.2.0426
    Problem:    Some errors were not tested for.
    Solution:   Add tests. (Dominique Pellé, closes #5824)
    Files:      src/testdir/test_buffer.vim, src/testdir/test_options.vim,
                src/testdir/test_tcl.vim, src/testdir/test_terminal.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.0427
    Problem:    It is not possible to check for a typo in a feature name.
    Solution:   Add an extra argument to has().
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.vim,
                src/testdir/test_functions.vim

    Patch 8.2.0428
    Problem:    Buffer name may leak.
    Solution:   Free the buffer name before overwriting it.
    Files:      src/terminal.c

    Patch 8.2.0429
    Problem:    No warning when test checks for option that never exists.
    Solution:   In tests check that the option can exist.
    Files:      src/testdir/check.vim

    Patch 8.2.0430
    Problem:    Window creation failure not properly tested.
    Solution:   Improve the test. (Yegappan Lakshmanan, closes #5826)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.0431
    Problem:    Some compilers don't support using \e for Esc. (Yegappan
                Lakshmanan)
    Solution:   use \033 instead.
    Files:      src/ui.c

    Patch 8.2.0432
    Problem:    A few tests fail in a huge terminal.
    Solution:   Make the tests pass. (Dominique Pellé, closes #5829)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_options.vim,
                src/testdir/test_termcodes.vim, src/testdir/test_terminal.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.0433
    Problem:    INT signal not properly tested.
    Solution:   Add a test.  Also clean up some unnecessary lines. (Dominique
                Pellé, closes #5828)
    Files:      src/testdir/test_display.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_excmd.vim, src/testdir/test_messages.vim,
                src/testdir/test_signals.vim

    Patch 8.2.0434
    Problem:    MS-Windows with VTP: Normal color not working.
    Solution:   After changing the Normal color update the VTP console color.
                (Nobuhiro Takasaki, closes #5836)
    Files:      src/highlight.c

    Patch 8.2.0435
    Problem:    Channel contents might be freed twice.
    Solution:   Call either channel_free_channel() or channel_free(), not both.
                (Nobuhiro Takasaki, closes #5835)
    Files:      src/channel.c

    Patch 8.2.0436
    Problem:    No warnings for incorrect printf arguments.
    Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
                Pellé, closes #5834)
    Files:      src/proto.h, src/eval.c, src/ops.c, src/spellfile.c,
                src/vim9compile.c, src/vim9execute.c, src/viminfo.c, src/gui.c

    Patch 8.2.0437
    Problem:    MS-Windows installer contains old stuff.
    Solution:   Rely on Windows NT. (Ken Takata, closes #5832)
    Files:      src/dosinst.c

    Patch 8.2.0438
    Problem:    Terminal noblock test is very flaky on BSD.
    Solution:   Change WaitFor() to WaitForAssert() to be able to see why it
                failed.  Add a short wait in between sending keys.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0439
    Problem:    :disassemble has minor flaws.
    Solution:   Format the code.  Use (int) instead of (char) for %c.
                (also by James McCoy, closes #5831)
    Files:      src/vim9execute.c

    Patch 8.2.0440
    Problem:    Terminal noblock test is still very flaky on BSD.
    Solution:   Increase the waiting time.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0441
    Problem:    Terminal noblock test is still failing on BSD.
    Solution:   Reduce the amount of text.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0442
    Problem:    Channel contents might be used after being freed.
    Solution:   Reset the job channel before freeing the channel.
    Files:      src/channel.c

    Patch 8.2.0443
    Problem:    Clipboard code is spread out.
    Solution:   Move clipboard code to its own file. (Yegappan Lakshmanan,
                closes #5827)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/clipboard.c, src/ops.c, src/proto.h, src/proto/clipboard.pro,
                src/proto/ops.pro, src/proto/register.pro, src/proto/ui.pro,
                src/register.c, src/ui.c

    Patch 8.2.0444
    Problem:    Swap file test fails on some systems.
    Solution:   Preserve the swap file. Send NL terminated keys.
    Files:      src/testdir/test_swap.vim

    Patch 8.2.0445
    Problem:    Png and xpm files not in MS-Windows zip file.
    Solution:   Move files to shared between Unix and Windows target.
    Files:      Filelist

    Patch 8.2.0446
    Problem:    Listener with undo of deleting all lines not tested.
    Solution:   Add a test.
    Files:      src/testdir/test_listener.vim

    Patch 8.2.0447
    Problem:    Terminal scroll tests fails on some systems.
    Solution:   Remove the fixed 100msec wait for Win32.  Add a loop to wait until
                scrolling has finished. (James McCoy, closes #5842)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0448
    Problem:    Various functions not properly tested.
    Solution:   Add more tests, especially for failures. (Yegappan Lakshmanan,
                closes #5843)
    Files:      runtime/doc/eval.txt, src/testdir/test_blob.vim,
                src/testdir/test_breakindent.vim, src/testdir/test_charsearch.vim,
                src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_exists.vim, src/testdir/test_expand_func.vim,
                src/testdir/test_expr.vim, src/testdir/test_file_perm.vim,
                src/testdir/test_functions.vim, src/testdir/test_gui.vim,
                src/testdir/test_listdict.vim, src/testdir/test_marks.vim,
                src/testdir/test_partial.vim, src/testdir/test_registers.vim,
                src/testdir/test_search.vim, src/testdir/test_spell.vim,
                src/testdir/test_substitute.vim, src/testdir/test_syn_attr.vim,
                src/testdir/test_syntax.vim, src/testdir/test_taglist.vim,
                src/testdir/test_utf8.vim, src/testdir/test_vartabs.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.0449
    Problem:    Vim9: crash if return type is invalid. (Yegappan Lakshmanan)
    Solution:   Always return some type, not NULL.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0450
    Problem:    Not enough testing for restricted mode and function calls.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5847)
    Files:      src/testdir/test_method.vim, src/testdir/test_restricted.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0451
    Problem:    Win32: double-width character displayed incorrectly.
    Solution:   First move the cursor to the first column. (Nobuhiro Takasaki,
                closes #5848)
    Files:      src/os_win32.c

    Patch 8.2.0452
    Problem:    channel_parse_messages() fails when called recursively.
    Solution:   Return for a recursive call. (closes #5835)
    Files:      src/channel.c

    Patch 8.2.0453
    Problem:    Trailing space in job_start() command causes empty argument.
    Solution:   Ignore trailing space. (closes #5851)
    Files:      src/misc2.c, src/testdir/test_channel.vim

    Patch 8.2.0454
    Problem:    Some tests fail when the system is slow.
    Solution:   Make the run number global, use in the test to increase the
                waiting time. (closes #5841)
    Files:      src/testdir/runtest.vim, src/testdir/test_functions.vim

    Patch 8.2.0455
    Problem:    Cannot set the highlight group for a specific terminal.
    Solution:   Add the "highlight" option to term_start(). (closes #5818)
    Files:      src/terminal.c, src/structs.h, src/channel.c,
                src/testdir/test_terminal.vim, runtime/doc/terminal.txt,
                src/testdir/dumps/Test_terminal_popup_Terminal.dump,
                src/testdir/dumps/Test_terminal_popup_MyTermCol.dump

    Patch 8.2.0456
    Problem:    Test_confirm_cmd is flaky.
    Solution:   Add a term_wait() call. (closes #5854)
    Files:      src/testdir/test_excmd.vim

    Patch 8.2.0457
    Problem:    Test_quotestar() often fails when run under valgrind.
    Solution:   Wait longer for the GUI to start.
    Files:      src/testdir/test_quotestar.vim

    Patch 8.2.0458
    Problem:    Missing feature check in test function.
    Solution:   Add check commands.
    Files:      src/testdir/test_excmd.vim

    Patch 8.2.0459
    Problem:    Cannot check if a function name is correct.
    Solution:   Add "?funcname" to exists().
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.vim,
                src/testdir/check.vim

    Patch 8.2.0460 (after 8.2.0459)
    Problem:    Build failure because of wrong feature name.
    Solution:   Correct feature name.
    Files:      src/evalfunc.c

    Patch 8.2.0461
    Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
    Solution:   Add an extra WaitForAssert(). (Dominique Pellé)
    Files:      src/testdir/test_excmd.vim

    Patch 8.2.0462
    Problem:    Previewwindow test fails on some systems. (James McCoy)
    Solution:   Wait a bit after sending the "o". (closes #5849)
    Files:      src/testdir/test_popup.vim,
                src/testdir/dumps/Test_popup_and_previewwindow_01.dump

    Patch 8.2.0463
    Problem:    Build error without float and channel feature. (John Marriott)
    Solution:   Define return types always.
    Files:      src/globals.h, src/evalfunc.c

    Patch 8.2.0464
    Problem:    Typos and other small problems.
    Solution:   Fix the typos.  Add missing files to the distribution.
    Files:      Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c,
                src/os_unixx.h, src/proto/popupwin.pro

    Patch 8.2.0465
    Problem:    Vim9: dead code and wrong return type.
    Solution:   Remove dead code.  Fix return type.  Add more tests.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0466 (after 8.2.0452)
    Problem:    Not parsing messages recursively breaks the govim plugin.
    Solution:   When called recursively do handle messages but do not close
                channels.
    Files:      src/channel.c

    Patch 8.2.0467
    Problem:    Vim9: some errors are not tested
    Solution:   Add more tests.  Fix that Vim9 script flag is not reset.
    Files:      src/vim9compile.c, src/scriptfile.c, src/dict.c,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0468
    Problem:    GUI: pixel dust with some fonts and characters.
    Solution:   Always redraw the character before the cursor. (Nir Lichtman,
                closes #5549, closes #5856)
    Files:      src/gui.c, src/proto/gui.pro, src/screen.c

    Patch 8.2.0469
    Problem:    Vim9: no error for missing ] after list.
    Solution:   Add error message. Add more tests.
    Files:      src/globals.h, src/list.c, src/userfunc.c,
                src/testdir/test_vim9_expr.vim, src/testdir/test_lambda.vim

    Patch 8.2.0470
    Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
    Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes #5861)
    Files:      src/testdir/test_excmd.vim

    Patch 8.2.0471
    Problem:    Missing change to compile_list().
    Solution:   Add error message.
    Files:      src/vim9compile.c

    Patch 8.2.0472
    Problem:    Terminal highlight name is set twice, leaking memory.
    Solution:   Delete one.
    Files:      src/terminal.c

    Patch 8.2.0473
    Problem:    Variables declared in an outer scope.
    Solution:   Declare variables only in the scope where they are used.
    Files:      src/evalvars.c

    Patch 8.2.0474 (after 8.2.0403)
    Problem:    Cannot use :write when using a plugin with BufWriteCmd.
    Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes #5807)
    Files:      src/fileio.c, src/testdir/test_autocmd.vim

    Patch 8.2.0475
    Problem:    Channel out_cb test still fails sometimes on Mac.
    Solution:   Use an even longer timeout.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.0476
    Problem:    Terminal nasty callback test fails sometimes.
    Solution:   use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0477
    Problem:    Vim9: error messages not tested.
    Solution:   Add more tests.
    Files:      src/testdir/test_vim9_expr.vim, src/vim9execute.c

    Patch 8.2.0478
    Problem:    New buffers are not added to the Buffers menu.
    Solution:   Turn number into string. (Yee Cheng Chin, closes #5864)
    Files:      runtime/menu.vim, src/testdir/test_menu.vim

    Patch 8.2.0479
    Problem:    Unloading shared libraries on exit has no purpose.
    Solution:   Do not unload shared libraries on exit.
    Files:      src/if_lua.c, src/if_perl.xs, src/if_python.c, src/if_python3.c,
                src/if_ruby.c, src/if_tcl.c

    Patch 8.2.0480
    Problem:    Vim9: some code is not tested.
    Solution:   Add more tests.
    Files:      src/testdir/test_vim9_expr.vim, src/vim9compile.c

    Patch 8.2.0481
    Problem:    Travis is still using trusty.
    Solution:   Adjust config to use bionic. (Ozaki Kiichi, closes #5868)
    Files:      .travis.yml, src/testdir/lsan-suppress.txt

    Patch 8.2.0482
    Problem:    Channel and sandbox code not sufficiently tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5855)
    Files:      src/option.h, src/testdir/test_channel.vim,
                src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
                src/testdir/test_normal.vim, src/testdir/test_prompt_buffer.vim,
                src/testdir/test_restricted.vim, src/testdir/test_smartindent.vim,
                src/testdir/test_substitute.vim, src/testdir/test_terminal.vim,
                src/testdir/test_textformat.vim, src/testdir/test_visual.vim

    Patch 8.2.0483
    Problem:    Vim9: "let x = x + 1" does not give an error.
    Solution:   Hide the variable when compiling the expression.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0484
    Problem:    Vim9: some error messages not tested.
    Solution:   Add more tests.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.0485 (after 8.2.0483)
    Problem:    Vim9 script test fails.
    Solution:   Stricter condition for adding new local variable.
    Files:      Stricter condition for adding new local variable.

    Patch 8.2.0486
    Problem:    Vim9: some code and error messages not tested.
    Solution:   Add more tests.
    Files:      src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0487
    Problem:    Vim9: compiling not sufficiently tested.
    Solution:   Add more tests.  Fix bug with PCALL.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0488
    Problem:    Vim9: Compiling can break when using a lambda inside :def.
    Solution:   Do not keep a pointer to the dfunc_T for longer time.
    Files:      src/vim9compile.c, src/vim9.h

    Patch 8.2.0489
    Problem:    Vim9: memory leaks.
    Solution:   Free memory in the right place.  Add hints for using asan.
    Files:      src/vim9compile.c, src/testdir/lsan-suppress.txt, src/Makefile

    Patch 8.2.0490
    Problem:    Win32: VTP doesn't respect 'restorescreen'.
    Solution:   Use escape codes to switch to alternate screen. (Nobuhiro
                Takasaki, closes #5872)
    Files:      src/os_win32.c

    Patch 8.2.0491
    Problem:    Cannot recognize a <script> mapping using maparg().
    Solution:   Add the "script" key. (closes #5873)
    Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim

    Patch 8.2.0492
    Problem:    Vim9: some error messages not tested.
    Solution:   Add more tests.  Remove dead code.  Fix uncovered bugs.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0493
    Problem:    Vim9: some error messages not tested.
    Solution:   Add more tests.  Fix uncovered bugs.
    Files:      src/vim9compile.c, src/vim9execute.c, src/testing.c, src/eval.c,
                src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt,
                runtime/doc/testing.txt, src/testdir/test_vim9_script.vim

    Patch 8.2.0494
    Problem:    Vim9: asan error.
    Solution:   Only get the type when there is one.
    Files:      src/vim9compile.c

    Patch 8.2.0495
    Problem:    Vim9: some code not tested.
    Solution:   Add more tests.  Support more const expressions.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0496
    Problem:    Vim9: disassemble test fails.
    Solution:   Separate test cases with recognized constant expressions.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0497
    Problem:    Too verbose output from the asan build in Travis.
    Solution:   Filter out suppression messages. (Ozaki Kiichi, closes #5874)
    Files:      .travis.yml

    Patch 8.2.0498
    Problem:    Coverity complains about uninitialized field.
    Solution:   Initialize the whole typval_T.
    Files:      src/vim9compile.c

    Patch 8.2.0499
    Problem:    Calling a lambda is slower than evaluating a string.
    Solution:   Make calling a lambda faster. (Ken Takata, closes #5727)
    Files:      src/userfunc.c

    Patch 8.2.0500
    Problem:    Using the same loop in many places.
    Solution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
    Files:      src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c,
                src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c,
                src/evalbuffer.c, src/evalfunc.c, src/evalvars.c,
                src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h,
                src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c,
                src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c,
                src/quickfix.c, src/screen.c, src/sign.c, src/spell.c,
                src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c,
                src/userfunc.c, src/window.c

    Patch 8.2.0501
    Problem:    Vim9: script test fails when channel feature is missing.
    Solution:   Add a has() condition.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0502
    Problem:    Vim9: some code is not tested.
    Solution:   Add more tests.  Fix uncovered problems.
    Files:      src/vim9compile.c, src/regexp.c, src/proto/regexp.pro,
                src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c,
                src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c,
                src/tag.c, src/userfunc.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0503
    Problem:    Vim9: some code is not tested.
    Solution:   Add tests.  Fix uncovered problems.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0504
    Problem:    Vim9: leaking scope memory when compilation fails.
    Solution:   Cleanup the scope list.
    Files:      src/vim9compile.c

    Patch 8.2.0505
    Problem:    term_gettty() not sufficiently tested.
    Solution:   Add more asserts. (Dominique Pellé, closes #5877)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0506
    Problem:    Coverity complains about ignoring return value.
    Solution:   Add (void).
    Files:      src/userfunc.c

    Patch 8.2.0507 (after 8.2.0472)
    Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
    Solution:   Check for empty name. (closes #5878)
    Files:      src/evalvars.c, src/testdir/test_functions.vim

    Patch 8.2.0508
    Problem:    Vim9: func and partial types not done yet
    Solution:   Fill in details about func declaration, drop a separate partial
                declaration.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/globals.h,
                src/structs.h, src/evalfunc.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0509
    Problem:    various code is not properly tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5871)
    Files:      src/main.c, src/testdir/check.vim, src/testdir/shared.vim,
                src/testdir/term_util.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_ex_mode.vim, src/testdir/test_expand.vim,
                src/testdir/test_functions.vim, src/testdir/test_options.vim,
                src/testdir/test_startup.vim, src/testdir/test_textformat.vim,
                src/testdir/test_trycatch.vim, src/testdir/test_viminfo.vim

    Patch 8.2.0510
    Problem:    Coverity complains about using uninitialized variable.
    Solution:   Assign a value to "scol".  Move code inside NULL check.
    Files:      src/beval.c, src/popupwin.c

    Patch 8.2.0511
    Problem:    Cscope code not fully tested.
    Solution:   Add more test cases. (Dominique Pellé, closes #5886)
    Files:      src/testdir/test_cscope.vim

    Patch 8.2.0512
    Problem:    Vim9: no optional arguments in func type.
    Solution:   Check for question mark after type.  Find function reference
                without function().
    Files:      src/vim9compile.c, src/vim9execute.c, src/structs.h,
                src/globals.h, src/vim.h, src/vim9.h, src/userfunc.c,
                src/testdir/Make_all.mak, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0513
    Problem:    Reading past allocated memory when using varargs.
    Solution:   Fix copying function argument types.
    Files:      src/vim9compile.c

    Patch 8.2.0514
    Problem:    Several global functions are used in only one file.
    Solution:   Make the functions static. (Yegappan Lakshmanan, closes #5884)
    Files:      src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c,
                src/proto/drawscreen.pro, src/proto/evalvars.pro,
                src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro,
                src/version.c

    Patch 8.2.0515
    Problem:    Some compilers cannot add to "void *".
    Solution:   Cast to "char *".
    Files:      src/vim9compile.c

    Patch 8.2.0516
    Problem:    Client-server code is spread out.
    Solution:   Move client-server code to a new file. (Yegappan Lakshmanan,
                closes #5885)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h,
                src/proto/clientserver.pro, src/proto/main.pro

    Patch 8.2.0517
    Problem:    Vim9: cannot separate "func" and "func(): void".
    Solution:   Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
    Files:      src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c,
                src/evalvars.c, src/testing.c, src/vim9compile.c,
                src/vim9execute.c, src/viminfo.c, src/if_py_both.h, src/json.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0518
    Problem:    A terminal falls back to setting $TERM to "xterm".
    Solution:   Use "xterm-color" if more than 16 colors are supported and
                "xterm-256color" if at least 256 colors are supported.
                (closes #5887)
    Files:      src/os_unix.c

    Patch 8.2.0519
    Problem:    Vim9: return type not properly checked.
    Solution:   Check type properly, also at runtime.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0520
    Problem:    Tests are not listed in sorted order.
    Solution:   Move test_ex_mode. (Doug Richardson, closes #5889)
    Files:      src/testdir/Make_all.mak

    Patch 8.2.0521
    Problem:    Crash when reading a blob fails.
    Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pellé,
                closes #5890)  Adjust error messages.
    Files:      src/filepath.c, src/testdir/test_blob.vim

    Patch 8.2.0522
    Problem:    Several errors are not tested for.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_digraph.vim, src/testdir/test_expand.vim,
                src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_gui.vim, src/testdir/test_highlight.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_lambda.vim,
                src/testdir/test_listdict.vim, src/testdir/test_normal.vim,
                src/testdir/test_options.vim, src/testdir/test_preview.vim,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim,
                src/testdir/test_vimscript.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.0523
    Problem:    Loops are repeated.
    Solution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
    Files:      src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c,
                src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c,
                src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c,
                src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c,
                src/userfunc.c, src/vim9compile.c

    Patch 8.2.0524
    Problem:    Win32: searching for file matches is slow.
    Solution:   Instead of making another round to find any short filename, check
                for the short name right away. Avoid using an ordinary file like a
                directory.  (Nir Lichtman, closes #5883)
    Files:      src/filepath.c

    Patch 8.2.0525 (after 8.2.0524)
    Problem:    Win32: typo in assignment and misplaced paren.
    Solution:   Fix the syntax.
    Files:      src/filepath.c

    Patch 8.2.0526
    Problem:    Gcc 9 complains about empty statement.
    Solution:   Add {}. (Dominique Pellé, closes #5894)
    Files:      src/evalfunc.c

    Patch 8.2.0527
    Problem:    Vim9: function types insufficiently tested.
    Solution:   Add more tests.  Fix white space check.  Add "test_vim9" target.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim, src/Makefile,
                src/testdir/Makefile, src/testdir/Make_all.mak

    Patch 8.2.0528
    Problem:    Vim9: function arguments insufficiently tested.
    Solution:   Check types.  Add more tests.  Fix function with varargs only.
    Files:      src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0529
    Problem:    Vim9: function argument with default not checked.
    Solution:   Check type of argument with default value.
    Files:      src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0530
    Problem:    Test crashes on s390. (James McCoy)
    Solution:   Explicitly define an 8 big signed type. (closes #5897)
    Files:      src/structs.h

    Patch 8.2.0531
    Problem:    Various errors not tested.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
    Files:      src/testdir/test_search.vim, src/testdir/test_source.vim,
                src/testdir/test_syntax.vim, src/testdir/test_user_func.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.0532
    Problem:    Cannot use simplify() as a method.
    Solution:   Add FEARG_1. (closes #5896)
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_functions.vim

    Patch 8.2.0533
    Problem:    Tests using term_wait() can still be flaky.
    Solution:   Increase the wait time when rerunning a test. (James McCoy,
                closes #5899)  Halve the initial times to make tests run faster
                when there is no rerun.
    Files:      src/testdir/term_util.vim, src/testdir/test_arglist.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_balloon.vim,
                src/testdir/test_bufline.vim, src/testdir/test_channel.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim,
                src/testdir/test_cursorline.vim, src/testdir/test_debugger.vim,
                src/testdir/test_diffmode.vim, src/testdir/test_display.vim,
                src/testdir/test_functions.vim, src/testdir/test_highlight.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_mapping.vim,
                src/testdir/test_match.vim, src/testdir/test_matchadd_conceal.vim,
                src/testdir/test_messages.vim, src/testdir/test_number.vim,
                src/testdir/test_popup.vim, src/testdir/test_popupwin.vim,
                src/testdir/test_profile.vim, src/testdir/test_search.vim,
                src/testdir/test_search_stat.vim, src/testdir/test_startup.vim,
                src/testdir/test_startup_utf8.vim,
                src/testdir/test_statusline.vim, src/testdir/test_suspend.vim,
                src/testdir/test_swap.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_terminal.vim, src/testdir/test_terminal_fail.vim,
                src/testdir/test_timers.vim, src/testdir/test_vimscript.vim

    Patch 8.2.0534
    Problem:    Client-server test fails under valgrind.
    Solution:   Use WaitForAssert().
    Files:      src/testdir/test_clientserver.vim

    Patch 8.2.0535
    Problem:    Regexp patterns not fully tested.
    Solution:   Add more regexp tests and others. (Yegappan Lakshmanan,
                closes #5901)
    Files:      src/testdir/test_marks.vim, src/testdir/test_options.vim,
                src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim

    Patch 8.2.0536
    Problem:    Vim9: some compilation code not tested.
    Solution:   Add more test cases.
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0537
    Problem:    Vim9: no check for sandbox when setting v:var.
    Solution:   Check for sandbox.
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0538
    Problem:    Vim9: VAR_PARTIAL is not used during compilation.
    Solution:   Remove VAR_PARTIAL.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0539
    Problem:    Comparing two NULL list fails.
    Solution:   Change the order of comparing two lists.
    Files:      src/list.c, src/testdir/test_assert.vim

    Patch 8.2.0540
    Problem:    Regexp and other code not tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5904)
    Files:      src/testdir/test_backspace_opt.vim, src/testdir/test_expr.vim,
                src/testdir/test_increment.vim, src/testdir/test_normal.vim,
                src/testdir/test_options.vim, src/testdir/test_regexp_latin.vim,
                src/testdir/test_search.vim, src/testdir/test_substitute.vim,
                src/testdir/test_terminal.vim, src/testdir/test_virtualedit.vim

    Patch 8.2.0541
    Problem:    Travis CI does not give compiler warnings.
    Solution:   Add flags for warnings.  Fix uncovered problems. (Ozaki Kiichi,
                closes #5898)
    Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
                ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c,
                src/libvterm/t/harness.c

    Patch 8.2.0542
    Problem:    No test for E386.
    Solution:   Add a test. (Dominique Pellé, closes #5911)
    Files:      src/testdir/test_search.vim

    Patch 8.2.0543
    Problem:    Vim9: function with varargs does not work properly.
    Solution:   Improve function type spec and add tests.  Fix bugs.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c,
                src/structs.h, src/testdir/test_vim9_func.vim

    Patch 8.2.0544
    Problem:    Memory leak in search test.
    Solution:   Free msgbuf. (Dominique Pellé, closes #5912)
    Files:      src/search.c

    Patch 8.2.0545
    Problem:    Unused arguments ignored in non-standard way.
    Solution:   Add UNUSED instead of (void).
    Files:      src/libvterm/t/harness.c

    Patch 8.2.0546
    Problem:    Vim9: varargs implementation is inefficient.
    Solution:   Create list without moving the arguments.
    Files:      src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0547
    Problem:    Win32: restoring screen not always done right.
    Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
    Files:      src/os_win32.c

    Patch 8.2.0548
    Problem:    Vim9: not all possible func type errors tested.
    Solution:   Add more tests.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0549
    Problem:    User systemd files not recognized.
    Solution:   Add filetype patterns. (Kevin Locke, closes #5914)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0550
    Problem:    Some changes in the libvterm upstream code.
    Solution:   Include some changes.
    Files:      src/libvterm/t/harness.c

    Patch 8.2.0551
    Problem:    Not all code for options is tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5913)
    Files:      src/testdir/test_options.vim, src/testdir/test_python3.vim,
                src/testdir/test_undo.vim, src/testdir/test_vimscript.vim

    Patch 8.2.0552
    Problem:    Vim9: some errors not covered by tests.
    Solution:   Add more tests.  Check Funcref argument types.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0553 (after 8.2.0550)
    Problem:    Error for unused argument.
    Solution:   Add UNUSED.
    Files:      src/libvterm/t/harness.c

    Patch 8.2.0554
    Problem:    The GUI doesn't set t_Co.
    Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes #5903)
    Files:      src/term.c, src/proto/term.pro, src/gui.c,
                src/testdir/test_gui.vim

    Patch 8.2.0555
    Problem:    Vim9: line continuation is not always needed.
    Solution:   Recognize continuation lines automatically in list and dict.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0556
    Problem:    Vim9: memory leak when finding common type.
    Solution:   Store allocated memory in type growarray.
    Files:      src/vim9compile.c

    Patch 8.2.0557
    Problem:    No IPv6 support for channels.
    Solution:   Add IPv6 support. (Ozaki Kiichi, closes #5893)
    Files:      .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
                src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c,
                src/proto/channel.pro, src/testdir/check.vim,
                src/testdir/runtest.vim, src/testdir/test_cdo.vim,
                src/testdir/test_channel.py, src/testdir/test_channel.vim,
                src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.vim,
                src/testdir/test_getcwd.vim, src/testdir/test_hide.vim

    Patch 8.2.0558
    Problem:    Vim9: dict code not covered by tests.
    Solution:   Remove dead code, adjust test case.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0559
    Problem:    Clearing a struct is verbose.
    Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
    Files:      src/vim.h, src/blowfish.c, src/channel.c, src/charset.c,
                src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c,
                src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c,
                src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c,
                src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c,
                src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c,
                src/main.c, src/map.c, src/memfile.c, src/message_test.c,
                src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c,
                src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c,
                src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
                src/search.c, src/sign.c, src/spell.c, src/spellfile.c,
                src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c,
                src/time.c, src/undo.c, src/userfunc.c, src/vim9compile.c,
                src/vim9execute.c, src/if_py_both.h

    Patch 8.2.0560
    Problem:    Compiler warning in tiny build.
    Solution:   Move declaration inside #ifdef. (Dominique Pellé, closes #5915)
    Files:      src/ex_docmd.c

    Patch 8.2.0561
    Problem:    Vim9: cannot split function call in multiple lines.
    Solution:   Find more arguments in following lines.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0562
    Problem:    Vim9: cannot split an expression into multiple lines.
    Solution:   Continue in next line after an operator.
    Files:      runtime/doc/vim9.txt, src/macros.h, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0563
    Problem:    Vim9: cannot split a function line.
    Solution:   Continue in next line so long as the function isn't done.
    Files:      runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro,
                src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0564
    Problem:    Vim9: calling a def function from non-vim9 may fail.
    Solution:   Convert varargs to a list.
    Files:      src/testdir/test_vim9_func.vim, src/vim9execute.c

    Patch 8.2.0565
    Problem:    Vim9: tests contain superfluous line continuation.
    Solution:   Remove line continuation no longer needed.  Skip empty lines.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0566
    Problem:    Vim9: variable can be used uninitialized.
    Solution:   Jump to after where variable is used.
    Files:      src/vim9execute.c

    Patch 8.2.0567
    Problem:    Vim9: cannot put comments halfway expressions.
    Solution:   Support # comments in many places.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c,
                src/ex_docmd.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0568
    Problem:    The man filetype plugin overwrites the unnamed register.
    Solution:   Use the black hole register. (Jason Franklin)
    Files:      runtime/ftplugin/man.vim, src/testdir/test_man.vim

    Patch 8.2.0569
    Problem:    Build failure with tiny version.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.0570
    Problem:    Vim9: no error when omitting type from argument.
    Solution:   Enforce specifying argument types.
    Files:      src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0571
    Problem:    Double free when passing invalid argument to job_start().
    Solution:   Clear the argument when freed. (Masato Nishihata, closes #5926)
    Files:      src/misc2.c, src/testdir/test_channel.vim

    Patch 8.2.0572 (after 8.2.0571)
    Problem:    Using two lines for free and reset.
    Solution:   Use VIM_CLEAR() instead. (Yegappan Lakshmanan)
    Files:      src/misc2.c

    Patch 8.2.0573
    Problem:    using :version twice leaks memory
    Solution:   Only initialize variables once. (Dominique Pellé, closes #5917)
    Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
                src/testdir/test_version.vim, src/version.c, src/globals.h

    Patch 8.2.0574
    Problem:    Ipv6 feature not shown in :version output.
    Solution:   Add ipv6 in :version output. (Ozaki Kiichi, closes #5924)
    Files:      runtime/doc/eval.txt, src/version.c

    Patch 8.2.0575
    Problem:    :digraph! not tested.
    Solution:   Add a test. (Dominique Pellé, closes #5925)
    Files:      src/testdir/test_digraph.vim

    Patch 8.2.0576
    Problem:    Some errors are not covered by tests.
    Solution:   Add a few more tests. (Dominique Pellé, closes #5920)
    Files:      src/testdir/test_buffer.vim, src/testdir/test_digraph.vim,
                src/testdir/test_expr.vim, src/testdir/test_messages.vim

    Patch 8.2.0577
    Problem:    Not all modifiers supported for :options.
    Solution:   Use all cmdmod.split flags. (closes #4401)
    Files:      src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c,
                src/testdir/test_options.vim, src/testdir/test_usercommands.vim

    Patch 8.2.0578
    Problem:    Heredoc for interfaces does not support "trim".
    Solution:   Update the script heredoc support to be same as the :let command.
                (Yegappan Lakshmanan, closes #5916)
    Files:      runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt,
                runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt,
                runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c,
                src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in,
                src/testdir/test87.in, src/testdir/test_lua.vim,
                src/testdir/test_perl.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim, src/testdir/test_pyx2.vim,
                src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim,
                src/testdir/test_tcl.vim, src/userfunc.c, src/vim9compile.c

    Patch 8.2.0579
    Problem:    Coverity warns for unused value.
    Solution:   Change order and use "else if".
    Files:      src/os_unix.c

    Patch 8.2.0580
    Problem:    Window size wrong if 'ea' is off and 'splitright' is on and
                splitting then closing a window.
    Solution:   Put abandoned window space in the right place. (Mark Waggoner)
    Files:      src/testdir/test_winbuf_close.vim, src/window.c

    Patch 8.2.0581 (after 8.2.0547)
    Problem:    Win32 console: the cursor position is always top-left.
    Solution:   Revert the patch for restoring screen.
    Files:      src/os_win32.c

    Patch 8.2.0582
    Problem:    Color ramp test does not show text colors.
    Solution:   Add a row of 16 text colors and 16 bold text colors.
    Files:      src/testdir/color_ramp.vim

    Patch 8.2.0583
    Problem:    Vim9: # comment not recognized in :def function.
    Solution:   Recognize and skip # comment.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0584
    Problem:    Viminfo file uses obsolete function file_readable().
    Solution:   Use filereadable(). (closes #5934)
    Files:      src/session.c

    Patch 8.2.0585
    Problem:    Vim9: # comment not recognized after :vim9script.
    Solution:   Check script type. Make comment after ":echo" work.  And in
                several other places.
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c,
                src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0586
    Problem:    Vim9: # comment not sufficiently tested
    Solution:   Check for preceding white space.
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0587
    Problem:    Compiler warning for unused variable.
    Solution:   Add UNUSED.
    Files:      src/ex_docmd.c

    Patch 8.2.0588
    Problem:    Putty does not use "sgr" 'ttymouse' by default.
    Solution:   Make "sgr" the default for Putty. (Christian Brabandt,
                closes #5942)
    Files:      src/term.c

    Patch 8.2.0589
    Problem:    .bsd file type not recognized.
    Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes #5945)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0590
    Problem:    No 'backspace' value allows ignoring the insertion point.
    Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes #5940)
    Files:      runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h,
                src/optionstr.c, src/testdir/gen_opt_test.vim,
                src/testdir/test_backspace_opt.vim

    Patch 8.2.0591
    Problem:    MS-Windows: should always support IPv6
    Solution:   Add build flag. (Ozaki Kiichi, closes #5944)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

    Patch 8.2.0592
    Problem:    MS-Windows with VTP: cursor is not made invisible.
    Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
                Takasaki, closes #5941)
    Files:      src/os_win32.c

    Patch 8.2.0593
    Problem:    Finding a user command is not optimal.
    Solution:   Start further down in the list of commands.
    Files:      src/ex_cmds.h, src/ex_docmd.c

    Patch 8.2.0594
    Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
    Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
                src/channel.c, src/config.h.in, src/configure.ac

    Patch 8.2.0595
    Problem:    Vim9: not all commands using ends_excmd() tested.
    Solution:   Find # comment after regular commands. Add more tests.  Report
                error for where it was caused.
    Files:      src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c, src/usercmd.c,
                src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0596
    Problem:    Crash in test49.
    Solution:   Check the right pointer.
    Files:      src/userfunc.c, src/testdir/test_eval.ok

    Patch 8.2.0597
    Problem:    Test_eval is old style.
    Solution:   Change some tests to a new style test.
    Files:      src/testdir/test_eval.in, src/testdir/test_eval.ok,
                src/testdir/test_eval_stuff.vim

    Patch 8.2.0598
    Problem:    Test_eval_stuff fails in normal terminal.
    Solution:   Close the new window.
    Files:      src/testdir/test_eval_stuff.vim

    Patch 8.2.0599
    Problem:    Netbeans interface insufficiently tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5921)
    Files:      runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c,
                src/testdir/runtest.vim, src/testdir/test_netbeans.py,
                src/testdir/test_netbeans.vim

    Patch 8.2.0600
    Problem:    Vim9: cannot read or write w:, t: and b: variables.
    Solution:   Implement load and store for w:, t: and b: variables.
                (closes #5950)
    Files:      src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
                src/vim9.h, src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0601
    Problem:    Vim9: :unlet is not compiled.
    Solution:   Implement :unlet instruction and check for errors.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9.h,
                src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro,
                src/eval.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0602
    Problem:    :unlet $VAR does not work properly.
    Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
    Files:      src/evalvars.c, src/globals.h, src/testdir/test_vimscript.vim

    Patch 8.2.0603
    Problem:    Configure does not detect moonjit.
    Solution:   Add check for moonjit. (Shlomi Fish, closes #5947)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.0604
    Problem:    :startinsert in a terminal window used later.
    Solution:   Ignore :startinsert in a terminal window. (closes #5952)
    Files:      src/ex_docmd.c, src/testdir/test_terminal.vim

    Patch 8.2.0605
    Problem:    Vim9: cannot unlet an environment variable.
    Solution:   Implement unlet for $VAR.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0606
    Problem:    Several syntax HL errors not checked.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #5954)
    Files:      src/testdir/test_syntax.vim

    Patch 8.2.0607
    Problem:    Gcc warns for using uninitialized variable. (John Marriott)
    Solution:   Set name_end also for environment variables.
    Files:      src/evalvars.c

    Patch 8.2.0608
    Problem:    Warning from clang when building message test.
    Solution:   Use a void pointer.  (Dominique Pellé, closes #5958)
    Files:      src/message_test.c

    Patch 8.2.0609
    Problem:    Configure does not detect moonjit correctly.
    Solution:   Double the brackets. (Ozaki Kiichi)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.0610
    Problem:    Some tests are still old style.
    Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
    Files:      src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim,
                src/testdir/test_eval.in, src/testdir/test_eval.ok,
                src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim,
                src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
                src/testdir/test_functions.vim, src/testdir/test_listdict.vim,
                src/testdir/test_sort.vim, src/testdir/test_syntax.vim,
                src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim

    Patch 8.2.0611
    Problem:    Vim9: no check for space before #comment.
    Solution:   Add space checks.
    Files:      src/eval.c, src/evalvars.c, src/ex_docmd.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0612
    Problem:    Vim9: no check for space before #comment.
    Solution:   Add space checks.
    Files:      src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro,
                src/gui.c, src/highlight.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_sort.vim

    Patch 8.2.0613
    Problem:    Vim9: no check for space before #comment.
    Solution:   Add space checks.
    Files:      src/highlight.c, src/menu.c, src/syntax.c,
                src/testdir/test_vim9_script.vim,
                runtime/lang/menu_de_de.latin1.vim

    Patch 8.2.0614
    Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
                Lakshmanan)
    Solution:   Lock the text while evaluating 'completefunc'.
    Files:      src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c,
                src/undo.c, src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
                src/testdir/test_gf.vim, src/testdir/test_popup.vim,
                src/testdir/test_ex_mode.vim, runtime/doc/insert.txt

    Patch 8.2.0615
    Problem:    Regexp benchmark test is old style.
    Solution:   Make it a new style test.  Fix using a NULL list.  Add more tests.
                (Yegappan Lakshmanan, closes #5963)
    Files:      src/evalbuffer.c, src/testdir/Make_dos.mak,
                src/testdir/Make_ming.mak, src/testdir/Makefile,
                src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_bench_regexp.vim,
                src/testdir/test_blob.vim, src/testdir/test_bufline.vim,
                src/testdir/test_channel.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_functions.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_prompt_buffer.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.0616
    Problem:    Build error when disabling the diff feature.
    Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
    Files:      src/drawline.c

    Patch 8.2.0617
    Problem:    New error check triggers in Swedish menu.
    Solution:   Insert backslash. (Mats Tegner, closes #5966)
    Files:      runtime/lang/menu_sv_se.latin1.vim

    Patch 8.2.0618
    Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
    Solution:   Return "[]" instead of NULL in echo_string_core().
    Files:      src/eval.c, src/testdir/test_messages.vim

    Patch 8.2.0619
    Problem:    Null dict is not handled like an empty dict.
    Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
    Files:      src/dict.c, src/eval.c, src/testdir/test_blob.vim,
                src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
                src/testdir/test_let.vim, src/testdir/test_listdict.vim,
                src/testdir/test_search.vim, src/testdir/test_unlet.vim,
                src/testdir/test_usercommands.vim, src/testdir/test_vimscript.vim

    Patch 8.2.0620
    Problem:    Error in menu translations.
    Solution:   Insert a backslash before a space.
    Files:      runtime/lang/menu_it_it.latin1.vim,
                runtime/lang/menu_chinese_gb.936.vim

    Patch 8.2.0621
    Problem:    After running tests asan files may remain.
    Solution:   Clean up asan files with "make testclean".
    Files:      src/testdir/Makefile, src/Makefile

    Patch 8.2.0622
    Problem:    Haiku: GUI does not compile.
    Solution:   Various fixes. (Emir Sarı, closes #5961)
    Files:      Filelist, README.md, READMEdir/README_haiku.txt,
                runtime/doc/os_haiku.txt, src/Makefile, src/beval.h,
                src/gui_haiku.cc, src/proto/gui_haiku.pro

    Patch 8.2.0623
    Problem:    Typo in test comment. (Christ van Willegen)
    Solution:   Avoid mixing up a data structure with a body part.
    Files:      src/testdir/test_listdict.vim

    Patch 8.2.0624
    Problem:    Vim9: no check for space before #comment.
    Solution:   Add space checks.  Fix :throw with double quoted string.
    Files:      src/usercmd.c, src/userfunc.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0625
    Problem:    Vim9: confusing error when calling unknown function.
    Solution:   Give error while compiling.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0626
    Problem:    Vim9: wrong syntax of function in Vim9 script.
    Solution:   Give error for missing space. Implement :echomsg and :echoerr.
                (closes #5670)
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c,
                src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0627
    Problem:    Vim9: error message does not work. (Yegappan Lakshmanan)
    Solution:   Swap lines.
    Files:      src/userfunc.c

    Patch 8.2.0628
    Problem:    Error in menu translations.
    Solution:   Insert a backslash before a space in one more file. (Shun Bai,
                Emir Sarı)
    Files:      runtime/lang/menu_zh_cn.utf-8.vim,
                runtime/lang/menu_ca_es.latin1.vim,
                runtime/lang/menu_cs_cz.iso_8859-2.vim,
                runtime/lang/menu_cs_cz.utf-8.vim,
                runtime/lang/menu_czech_czech_republic.1250.vim,
                runtime/lang/menu_czech_czech_republic.ascii.vim,
                runtime/lang/menu_da.utf-8.vim,
                runtime/lang/menu_fi_fi.latin1.vim,
                runtime/lang/menu_hu_hu.iso_8859-2.vim,
                runtime/lang/menu_hu_hu.utf-8.vim,
                runtime/lang/menu_is_is.latin1.vim,
                runtime/lang/menu_no_no.latin1.vim, runtime/lang/menu_pt_br.vim,
                runtime/lang/menu_pt_pt.vim,
                runtime/lang/menu_sk_sk.iso_8859-2.vim,
                runtime/lang/menu_sl_si.latin2.vim,
                runtime/lang/menu_slovak_slovak_republic.1250.vim,
                runtime/lang/menu_tr_tr.cp1254.vim,
                runtime/lang/menu_tr_tr.iso_8859-9.vim,
                runtime/lang/menu_tr_tr.utf-8.vim, runtime/lang/menu_vi_vn.vim

    Patch 8.2.0629
    Problem:    Setting a boolean option to v:false does not work.
    Solution:   Do not use the string representation of the value. (Christian
                Brabandt, closes #5974)
    Files:      src/evalvars.c, src/testdir/test_options.vim

    Patch 8.2.0630
    Problem:    "make tags" does not cover Haiku GUI file.
    Solution:   Add *.cc files.
    Files:      src/Make_all.mak

    Patch 8.2.0631
    Problem:    Haiku file formatted with wrong tabstop.
    Solution:   Use normal tabstop. Fix white space.
    Files:      src/gui_haiku.cc

    Patch 8.2.0632
    Problem:    Crash when using Haiku.
    Solution:   Lock the screen. (closes #5975, closes #5973)
    Files:      src/screen.c

    Patch 8.2.0633
    Problem:    Crash when using null partial in filter().
    Solution:   Fix crash.  Add more tests. (Yegappan Lakshmanan, closes #5976)
    Files:      src/eval.c, src/testdir/test_blob.vim,
                src/testdir/test_channel.vim, src/testdir/test_eval_stuff.vim,
                src/testdir/test_execute_func.vim, src/testdir/test_expr.vim,
                src/testdir/test_filter_map.vim, src/testdir/test_fold.vim,
                src/testdir/test_functions.vim, src/testdir/test_let.vim,
                src/testdir/test_listdict.vim, src/testdir/test_partial.vim,
                src/testdir/test_usercommands.vim

    Patch 8.2.0634
    Problem:    Crash with null partial and blob.
    Solution:   Check for NULL pointer.  Add more tests. (Yegappan Lakshmanan,
                closes #5984)
    Files:      src/eval.c, src/list.c, src/testdir/test_blob.vim,
                src/testdir/test_bufwintabinfo.vim, src/testdir/test_cd.vim,
                src/testdir/test_channel.vim, src/testdir/test_cursor_func.vim,
                src/testdir/test_eval_stuff.vim, src/testdir/test_expr.vim,
                src/testdir/test_filter_map.vim, src/testdir/test_fnamemodify.vim,
                src/testdir/test_functions.vim, src/testdir/test_getvar.vim,
                src/testdir/test_listdict.vim, src/testdir/test_messages.vim,
                src/testdir/test_partial.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_tabpage.vim, src/testdir/test_vimscript.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0635
    Problem:    When using 256 colors DarkYellow does not show expected color.
    Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes #5985)
    Files:      src/highlight.c

    Patch 8.2.0636
    Problem:    :messages does not show the maintainer when $LANG is unset.
    Solution:   Call get_mess_lang() if available. (closes #5978)
    Files:      src/message.c

    Patch 8.2.0637
    Problem:    Incsearch highlighting does not work for ":sort!".
    Solution:   Skip over the exclamation point. (closes #5983)
    Files:      src/ex_getln.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_incsearch_sort_02.dump

    Patch 8.2.0638
    Problem:    MS-Windows: messages test fails.
    Solution:   Clear environment variables.
    Files:      src/testdir/test_messages.vim

    Patch 8.2.0639
    Problem:    MS-Windows: messages test still fails.
    Solution:   Filter out the maintainer message.
    Files:      src/testdir/test_messages.vim

    Patch 8.2.0640
    Problem:    Vim9: expanding `=expr` does not work.
    Solution:   Find wildcards in not compiled commands.  Reorganize test files.
    Files:      Filelist, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/vim9.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
                src/testdir/Make_all.mak

    Patch 8.2.0641
    Problem:    Vim9: `=expr` not expanded in :hardcopy and "syntax include".
    Solution:   Add the EX_EXPAND flag.  Expend "syntax include".
    Files:      src/ex_cmds.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.0642
    Problem:    Vim9: using invalid index.
    Solution:   Check index for being valid.  Fix memory leak.
    Files:      src/vim9compile.c, src/clientserver.c

    Patch 8.2.0643 (after 8.2.0635)
    Problem:    Terminal uses brown instead of dark yellow. (Romain Lafourcade)
    Solution:   Use color index 3 instead of 130. (closes #5993)
    Files:      src/terminal.c

    Patch 8.2.0644
    Problem:    Insufficient testing for invalid function arguments.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5988)
    Files:      runtime/doc/eval.txt, src/testdir/test_bufline.vim,
                src/testdir/test_channel.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_listener.vim, src/testdir/test_match.vim,
                src/testdir/test_menu.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_registers.vim, src/testdir/test_reltime.vim,
                src/testdir/test_terminal.vim, src/testdir/test_textprop.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0645
    Problem:    MS-Windows terminal: CTRL-C does not get to child job.
    Solution:   Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro
                Takasaki, closes #5987)
    Files:      src/terminal.c

    Patch 8.2.0646
    Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
    Solution:   Ignore $COLORS for the GUI. (closes #5992)
    Files:      src/os_unix.c, src/term.c

    Patch 8.2.0647
    Problem:    MS-Windows: repeat count for events was not used.
    Solution:   Check the repeat count. (Nobuhiro Takasaki, closes #5989)
    Files:      src/os_win32.c

    Patch 8.2.0648
    Problem:    Semicolon search does not work in first line.
    Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
                closes #5996)
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.0649
    Problem:    Undo problem when an InsertLeave autocommand resets undo. (Kutsan
                Kaplan)
    Solution:   Do not create a new undo block when leaving Insert mode.
    Files:      src/edit.c, src/testdir/test_edit.vim

    Patch 8.2.0650
    Problem:    Vim9: script function can be deleted.
    Solution:   Disallow deleting script function.  Delete functions when sourcing
                a script again.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
                src/vim9compile.c, src/vim9execute.c, src/vim9script.c,
                src/scriptfile.c, src/testing.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0651
    Problem:    Old style benchmark test still in list of distributed files.
    Solution:   Remove the files from the list.
    Files:      Filelist

    Patch 8.2.0652 (after 8.2.0650)
    Problem:    Compiler warning for char conversion.
    Solution:   Use unsigned char buffer.
    Files:      src/userfunc.c

    Patch 8.2.0653 (after 8.2.0650)
    Problem:    using uninitialized pointer.
    Solution:   Move assignment up. (John Marriott)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0654
    Problem:    Building with Python fails.
    Solution:   Add missing argument.
    Files:      src/if_py_both.h

    Patch 8.2.0655
    Problem:    Search code not sufficiently tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #5999)
    Files:      src/testdir/test_charsearch.vim, src/testdir/test_gn.vim,
                src/testdir/test_goto.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_normal.vim, src/testdir/test_search.vim,
                src/testdir/test_textformat.vim, src/testdir/test_textobjects.vim,
                src/testdir/test_visual.vim

    Patch 8.2.0656
    Problem:    MS-Windows: redrawing right screen edge may not be needed.
    Solution:   Check the build version. (Nobuhiro Takasaki, closes #6002)
    Files:      src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro

    Patch 8.2.0657
    Problem:    Vim9: no check if called variable is a FuncRef.
    Solution:   Add a type check.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0658 (after 8.2.0646)
    Problem:    HP-UX build fails when setenv() is not defined.
    Solution:   Change "colors" to "t_colors". (John Marriott)
    Files:      src/os_unix.c

    Patch 8.2.0659
    Problem:    Vim9: no test for equal func type.
    Solution:   Add a test.  Improve type check.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0660
    Problem:    The search.c file is a bit big.
    Solution:   Split off the text object code to a separate file. (Yegappan
                Lakshmanan, closes #6007)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/proto.h, src/proto/search.pro, src/proto/textobject.pro,
                src/search.c, src/textobject.c

    Patch 8.2.0661
    Problem:    Eval test is still old style.
    Solution:   Change into new style tests. (Yegappan Lakshmanan, closes #6009)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test_eval.in, src/testdir/test_eval.ok,
                src/testdir/test_eval_stuff.vim

    Patch 8.2.0662
    Problem:    Cannot use input() in a channel callback.
    Solution:   Reset vgetc_busy. (closes #6010)
    Files:      src/globals.h, src/ex_getln.c, src/evalfunc.c,
                src/testdir/test_channel.vim

    Patch 8.2.0663
    Problem:    Not all systemd temp files are recognized.
    Solution:   Add two more patterns. (Jamie Macdonald, closes #6003)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0664
    Problem:    Included undesired changes in Makefile.
    Solution:   Revert the changes.
    Files:      src/Makefile

    Patch 8.2.0665
    Problem:    Wrongly assuming Python executable is called "python".
    Solution:   Use detected python command. (Ken Takata, closes #6016)
                Also use CheckFunction if possible.
    Files:      src/testdir/test_terminal.vim, src/testdir/check.vim

    Patch 8.2.0666
    Problem:    Ruby test fails on MS-Windows.
    Solution:   Remove the "maintainer" line. (Ken Takata, closes #6015)
    Files:      src/testdir/shared.vim, src/testdir/test_messages.vim,
                src/testdir/test_ruby.vim

    Patch 8.2.0667
    Problem:    Cannot install Haiku version from source.
    Solution:   Update Makefile and rdef file. (Emir Sarı, closes #6013)
    Files:      Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt,
                src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef

    Patch 8.2.0668
    Problem:    Compiler warning for int/size_t usage.
    Solution:   Change "int" to "size_t". (Mike Williams)
    Files:      src/vim9execute.c

    Patch 8.2.0669
    Problem:    MS-Windows: display in VTP is a bit slow.
    Solution:   Optimize the code. (Nobuhiro Takasaki, closes #6014)
    Files:      src/os_win32.c, src/screen.c

    Patch 8.2.0670
    Problem:    Cannot change window when evaluating 'completefunc'.
    Solution:   Make a difference between not changing text or buffers and also
                not changing window.
    Files:      src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c,
                src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c,
                src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c,
                src/undo.c, src/testdir/test_edit.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim

    Patch 8.2.0671
    Problem:    Haiku: compiler warnings.
    Solution:   Avoid the warnings. Drop display_errors() copy. (Emir Sarı,
                closes #6018)
    Files:      .gitignore, src/gui.c, src/gui_haiku.cc

    Patch 8.2.0672
    Problem:    Heredoc in scripts does not accept lower case marker.
    Solution:   Allow lower case only in non-Vim scripts. (Ken Takata,
                closes #6019)
    Files:      src/evalvars.c, src/testdir/test_lua.vim,
                src/testdir/test_perl.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim, src/testdir/test_pyx2.vim,
                src/testdir/test_pyx3.vim, src/testdir/test_ruby.vim

    Patch 8.2.0673
    Problem:    Cannot build Haiku in shadow directory.
    Solution:   Add symlink. (Ozaki Kiichi, closes #6023)
    Files:      src/Makefile

    Patch 8.2.0674
    Problem:    Some source files are too big.
    Solution:   Move text formatting functions to a new file. (Yegappan
                Lakshmanan, closes #6021)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h,
                src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro,
                src/proto/option.pro, src/proto/textformat.pro, src/textformat.c

    Patch 8.2.0675
    Problem:    Vim9: no support for closures.
    Solution:   Do not re-use stack entries.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/evalvars.c, src/proto/evalvars.pro

    Patch 8.2.0676
    Problem:    Pattern in list of distributed files does not match.
    Solution:   Drop "testdir/test_[a-z]*.ok".  Add CI sed files.
    Files:      Filelist

    Patch 8.2.0677
    Problem:    Vim9: no support for closures.
    Solution:   Find variables in the outer function scope, so long as the scope
                exists.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/vim9execute.c, src/structs.h, src/vim9.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0678
    Problem:    Rare crash for popup menu.
    Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes #6027)
    Files:      src/popupmenu.c

    Patch 8.2.0679
    Problem:    Vim9: incomplete support for closures.
    Solution:   At the end of a function copy arguments and local variables if
                they are still used by a referenced closure.
    Files:      src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0680
    Problem:    PTYGROUP and PTYMODE are unused.
    Solution:   Remove from autoconf. (closes #6024)
    Files:      src/configure.ac, src/auto/configure, src/config.h.in

    Patch 8.2.0681
    Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé)
    Solution:   Call end_search_hl() to make sure the previous pattern is freed.
                (closes #6028)
    Files:      src/screen.c

    Patch 8.2.0682
    Problem:    Vim9: parsing function argument type can get stuck.
    Solution:   Bail out when not making progress.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0683
    Problem:    Vim9: parsing type does not always work.
    Solution:   Handle func type without return value.  Test more closures.
                Fix type check offset.  Fix garbage collection.
    Files:      src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro,
                src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0684
    Problem:    Vim9: memory leak when using lambda.
    Solution:   Move the funccal context to the partial. Free the function when
                exiting.
    Files:      src/vim9.h, src/structs.h, src/vim9execute.c, src/userfunc.c,
                src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0685 (after 8.2.0684)
    Problem:    Build failure.
    Solution:   Include missing changes.
    Files:      src/vim9compile.c

    Patch 8.2.0686
    Problem:    Formatoptions not sufficiently tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6031)
    Files:      src/testdir/test_normal.vim, src/testdir/test_textformat.vim

    Patch 8.2.0687
    Problem:    Some tests do not work on FreeBSD.
    Solution:   Enable modeline.  Use WaitFor() in more cases. (Ozaki Kiichi,
                closes #6036)
    Files:      src/testdir/test_quickfix.vim, src/testdir/test_terminal.vim

    Patch 8.2.0688
    Problem:    Output clobbered if setting 'verbose' to see shell commands.
    Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
    Files:      src/scriptfile.c, runtime/doc/options.txt

    Patch 8.2.0689
    Problem:    When using getaddrinfo() the error message is unclear.
    Solution:   Use gai_strerror() to get the message. (Ozaki Kiichi,
                closes #6034)
    Files:      src/channel.c

    Patch 8.2.0690
    Problem:    Line number of option set by modeline is wrong.
    Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
    Files:      src/option.c, src/testdir/test_modeline.vim

    Patch 8.2.0691
    Problem:    Startup test fails.
    Solution:   Adjust expected output from -V2 argument.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.0692
    Problem:    Startup test fails on MS-Windows.
    Solution:   Allow for any path.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.0693
    Problem:    Closure using argument not tested.
    Solution:   Add a test, make it work.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0694
    Problem:    Haiku: channel and terminal do not work.
    Solution:   Close files when the job has finished. (Ozaki Kiichi,
                closes #6039)
    Files:      src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c

    Patch 8.2.0695
    Problem:    Vim9: cannot define a function inside a function.
    Solution:   Initial support for :def inside :def.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c,
                src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0696
    Problem:    Vim9: nested function does not work properly
    Solution:   Create a function reference.  Check argument count.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0697
    Problem:    Vim9: memory leak when using nested function.
    Solution:   Unreference function when deleting instructions. Adjust reference
                count for local variables.
    Files:      src/vim9compile.c, src/vim9execute.c

    Patch 8.2.0698
    Problem:    Insert mode completion not fully tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6041)
    Files:      src/testdir/test_edit.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_textformat.vim

    Patch 8.2.0699
    Problem:    Vim9: not all errors tested.
    Solution:   Add test for deleted function.  Bail out on first error.
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim

    Patch 8.2.0700
    Problem:    Vim9: converting error message to exception not tested.
    Solution:   Test exception from error.  Do not continue after :echoerr.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0701
    Problem:    Vim9 test fails without job feature.
    Solution:   Add feature check.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0702
    Problem:    Running channel tests may leave running process behind.
    Solution:   Make Python client exit when running into EOF. (Kurtis Rader,
                part of #6046)
    Files:      src/testdir/test_channel_pipe.py

    Patch 8.2.0703
    Problem:    Vim9: closure cannot store value in outer context.
    Solution:   Make storing value in outer context work.  Make :disassemble
                accept a function reference.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/eval.c,
                src/structs.h, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0704
    Problem:    Vim9: memory leak in disassemble test.
    Solution:   Decrement refcount when creating funccal.
    Files:      src/vim9execute.c

    Patch 8.2.0705
    Problem:    Indent tests don't run on CI for FreeBSD.
    Solution:   Set modeline. (Ozaki Kiichi, closes #6048)
    Files:      .cirrus.yml, runtime/indent/testdir/runtest.vim

    Patch 8.2.0706
    Problem:    Vim9: using assert_fails() causes function to finish.
    Solution:   Check did_emsg instead of called_emsg.
    Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0707
    Problem:    Vim9 function test fails.
    Solution:   Adjust expected error code.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.0708
    Problem:    Vim9: constant expressions are not simplified.
    Solution:   Simplify string concatenation.
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0709
    Problem:    MS-Windows: compiler warning for int vs size_t.
    Solution:   Add type cast. (Mike Williams)
    Files:      src/channel.c

    Patch 8.2.0710
    Problem:    Netbeans test sometimes fails.
    Solution:   Mark any test using an external command as flaky.
    Files:      src/testdir/shared.vim

    Patch 8.2.0711
    Problem:    With a long running Vim the temp directory might be cleared on
                some systems.
    Solution:   Lock the temp directory. (closes #6044)
    Files:      src/config.h.in, src/configure.ac, src/auto/configure,
                src/fileio.c, src/globals.h, src/os_unix.h

    Patch 8.2.0712
    Problem:    Various code not fully tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6049)
    Files:      src/testdir/test_functions.vim, src/testdir/test_options.vim,
                src/testdir/test_system.vim, src/testdir/test_termcodes.vim

    Patch 8.2.0713
    Problem:    The pam_environment file is not recognized.
    Solution:   Add a filetype pattern for pamenv. (closes #6051)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0714
    Problem:    Vim9: handling constant expression does not scale.
    Solution:   Use another solution, passing typval_T.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0715
    Problem:    Vim9: leaking memory.
    Solution:   Free strings after concatenating them.
    Files:      src/vim9compile.c

    Patch 8.2.0716
    Problem:    Vim9: another memory leak.
    Solution:   Clear typval when failing.
    Files:      src/vim9compile.c

    Patch 8.2.0717
    Problem:    Vim9: postponed constant expressions does not scale.
    Solution:   Add a structure to pass around postponed constants.
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0718
    Problem:    Gcc warning for returning pointer to local variable. (John
                Marriott)
    Solution:   Return another pointer.
    Files:      src/evalvars.c

    Patch 8.2.0719
    Problem:    Vim9: more expressions can be evaluated at compile time
    Solution:   Recognize has('name').
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.0720
    Problem:    Occasional exit when encountering an X error. (Manfred Lotz)
    Solution:   On an X error do not exit, do preserve files.
    Files:      src/os_unix.c

    Patch 8.2.0721
    Problem:    Vim9: leaking memory when skipping.
    Solution:   Disable skipping in generate_ppconst().
    Files:      src/vim9compile.c

    Patch 8.2.0722
    Problem:    Vim9: not handling constant expression for elseif.
    Solution:   Use postponed constants.  Delete the code for evaluating a
                constant expression.
    Files:      src/vim9compile.c

    Patch 8.2.0723
    Problem:    Vim9: nested constant expression not evaluated compile time.
    Solution:   Use compile_expr1() for parenthesis.
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0724
    Problem:    Vim9: appending to buffer/window/tab variable not tested
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0725
    Problem:    Vim9: cannot call a function declared later in Vim9 script.
    Solution:   Make two passes through the script file.
    Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/vim9script.c,
                src/vim9compile.c, src/vim9execute.c, src/proto/vim9compile.pro,
                src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c,
                src/proto/evalvars.pro, src/vim.h,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0726
    Problem:    Vim9: leaking memory when calling not compiled :def function.
    Solution:   Check if function is compiled earlier.
    Files:      src/vim9execute.c

    Patch 8.2.0727
    Problem:    MS-Windows: new gcc compiler does not support scanf format.
    Solution:   Use "%ll" instead of "%I". (Ken Takata)
    Files:      src/vim.h

    Patch 8.2.0728
    Problem:    Messages about a deadly signal are not left aligned.
    Solution:   Output a CR before the NL. (Dominique Pellé, #6055)
    Files:      src/misc1.c, src/os_unix.c

    Patch 8.2.0729
    Problem:    Vim9: When reloading a script variables are not cleared.
    Solution:   When sourcing a script again clear all script-local variables.
    Files:      src/dict.c, src/proto/dict.pro, src/scriptfile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0730
    Problem:    Vim9: Assignment to dict member does not work.
    Solution:   Parse dict assignment. Implement getting dict member.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/globals.h,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0731
    Problem:    Vim9: parsing declarations continues after :finish.
    Solution:   Bail out when encountering :finish.
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0732
    Problem:    Vim9: storing value in dict messes up stack.
    Solution:   Correct item count of stack.
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.0733
    Problem:    Vim9: assigning to dict or list argument does not work.
    Solution:   Recognize an argument as assignment target.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0734
    Problem:    Vim9: leaking memory when using :finish.
    Solution:   Do not check for next line in third pass.
    Files:      src/scriptfile.c

    Patch 8.2.0735
    Problem:    Vim9: using uninitialized memory.
    Solution:   Clear the arg_lvar field.
    Files:      src/vim9compile.c

    Patch 8.2.0736
    Problem:    Some files not recognized as pamenv.
    Solution:   Add pam_inv.conf. (closes #6065)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0737
    Problem:    When shell doesn't support CTRL-Z Vim still handles it.
    Solution:   Ignore the STOP signal if it was ignored on startup.
                (Kurtis Rader, closes #5990, closes #6058)
    Files:      src/os_unix.c

    Patch 8.2.0738
    Problem:    Mouse handling in a terminal window not well tested.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #6052)
    Files:      src/testdir/term_util.vim, src/testdir/test_gui.vim,
                src/testdir/test_modeless.vim, src/testdir/test_terminal.vim

    Patch 8.2.0739
    Problem:    Incomplete profiling when exiting because of a deadly signal.
    Solution:   Call __gcov_flush() if available.
    Files:      src/os_unix.c, src/Makefile, .travis.yml

    Patch 8.2.0740
    Problem:    Minor message mistakes.
    Solution:   Change vim to Vim and other fixes.
    Files:      src/if_py_both.h, src/if_tcl.c, src/main.c

    Patch 8.2.0741
    Problem:    Python tests fail because of changed message.
    Solution:   Adjust the expected messages (Dominique Pellé, closes #6066)
    Files:      src/testdir/test86.ok, src/testdir/test87.ok

    Patch 8.2.0742
    Problem:    Handling of a TERM signal not tested.
    Solution:   Add a test for SIGTERM. (Dominique Pellé, closes #6055)
    Files:      src/testdir/test_signals.vim

    Patch 8.2.0743
    Problem:    Can move to another buffer from a terminal in popup window.
    Solution:   Do not allow "gf" or editing a file. (closes #6072)
    Files:      src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.vim

    Patch 8.2.0744
    Problem:    The name vim is not capitalized in a message.
    Solution:   Use "Vim" instead of "vim".
    Files:      src/main.c

    Patch 8.2.0745
    Problem:    Crash on exit when not all popups are closed.
    Solution:   Close popups when freeing all memory.  Disable checking for popup
                when editing a file for now.
    Files:      src/misc2.c, src/ex_cmds.c

    Patch 8.2.0746
    Problem:    popup_clear() hangs when a popup can't be closed.
    Solution:   Bail out when a popup can't be closed.
    Files:      src/popupwin.c, src/proto/popupwin.pro

    Patch 8.2.0747
    Problem:    Cannot forcefully close all popups.
    Solution:   Add the "force" argument to popup_clear().  Use it after running a
                test.  Put back the check for a popup when editing a file.
    Files:      runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c,
                src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c,
                src/ex_cmds.c, src/channel.c, src/testdir/runtest.vim,
                src/testdir/test_terminal.vim

    Patch 8.2.0748
    Problem:    Cannot get a list of all popups.
    Solution:   Add popup_list().  Use it in the test runner.
    Files:      runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c,
                src/proto/popupwin.pro, src/evalfunc.c,
                src/testdir/test_popupwin.vim, src/testdir/runtest.vim

    Patch 8.2.0749
    Problem:    TERM signal test fails on FreeBSD.
    Solution:   Do not check the messages, the may appear anywhere. (Dominique
                Pellé, closes #6075)
    Files:      src/testdir/test_signals.vim

    Patch 8.2.0750
    Problem:    Netbeans test is a bit flaky.
    Solution:   Allow for standard sign to be defined.  Use WaitForAssert().
    Files:      src/testdir/test_netbeans.vim

    Patch 8.2.0751
    Problem:    Vim9: performance can be improved.
    Solution:   Don't call break.  Inline check for list materialize.  Make an
                inline version of ga_grow().
    Files:      src/macros.h, src/evalfunc.c, src/misc2.c,
                src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c,
                src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c,
                src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c,
                src/userfunc.c, src/if_py_both.h

    Patch 8.2.0752
    Problem:    Terminal in popup window test is a bit flaky.
    Solution:   Wait for shell job status to be "run".  Mark as flaky test.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.0753
    Problem:    Vim9: expressions are evaluated in the discovery phase.
    Solution:   Bail out if an expression is not a constant.  Require a type for
                declared constants.
    Files:      src/vim.h, src/evalvars.c, src/eval.c, src/ex_eval.c,
                src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c,
                src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0754
    Problem:    Vim9: No test for forward declaration.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0755
    Problem:    Vim9: No error when variable initializer is not a constant.
    Solution:   Return FAIL when trying to get a variable value.  Do not execute a
                script when an error is detected in the first or second phase.
    Files:      src/eval.c, src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0756 (after 8.2.0249)
    Problem:    MS-Windows: still a compiler warning.
    Solution:   Move flag to another place in the Makefile. (Ken Takata,
                closes #6083)
    Files:      src/Make_mvc.mak

    Patch 8.2.0757
    Problem:    Vim9: no test for MEMBER instruction.
    Solution:   Add a test.  Make matches stricter.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0758
    Problem:    Vim9: no test for STORELIST and STOREDICT.
    Solution:   Add a test.  Make matches stricter.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.0759 (after 8.2.0751)
    Problem:    Vim9: missing changes for performance improvements
    Solution:   Use GA_GROW().  Don't call breakcheck so often.
    Files:      src/vim9execute.c

    Patch 8.2.0760
    Problem:    Vim9: dict member errors not tested.
    Solution:   Delete unreachable error.  Add tests.
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.0761
    Problem:    Vim9: instructions not tested
    Solution:   Use a variable instead of a constant.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.0762
    Problem:    Buffer is not considered modified after setting crypt key.
    Solution:   Set the modified flag. (Christian Brabandt, closes #6082)
    Files:      src/optionstr.c, src/testdir/test_crypt.vim

    Patch 8.2.0763
    Problem:    GUI test fails without the terminal feature.
    Solution:   Check the terminal feature is supported. (Ken Takata,
                closes #6084)
    Files:      src/testdir/test_gui.vim

    Patch 8.2.0764
    Problem:    Vim9: assigning to option not fully tested.
    Solution:   Add more test cases. Allow using any type for assignment.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0765
    Problem:    In the GUI can't use all the modifiers. (Andri Möll)
    Solution:   Do not apply Alt/Meta early, do it later like with the terminal.
                Avoid the Motif test from crashing.
    Files:      src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c,
                src/gui_motif.c

    Patch 8.2.0766
    Problem:    Display error when using 'number' and 'breakindent'.
    Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
                closes #5986)
    Files:      src/drawline.c, src/testdir/test_breakindent.vim

    Patch 8.2.0767
    Problem:    ModifyOtherKeys active when using a shell command in autocmd.
    Solution:   Output T_CTE when going to cooked mode. (closes 5617)
    Files:      src/term.c

    Patch 8.2.0768
    Problem:    Vim9: memory leak in script test.
    Solution:   Clear typval before giving an error message.
    Files:      src/vim9execute.c

    Patch 8.2.0769
    Problem:    VimLeavePre not triggered when Vim is terminated.
    Solution:   Unblock autocommands.
    Files:      src/main.c, src/testdir/test_signals.vim

    Patch 8.2.0770
    Problem:    Cannot map CTRL-B when using the GUI.
    Solution:   Reset the CTRL modifier when used. (closes #6092)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.0771
    Problem:    Vim9: cannot call a compiled closure from not compiled code.
    Solution:   Pass funcexe to call_user_func().
    Files:      src/userfunc.c, src/vim9execute.c, src/proto/vim9execute.pro,
                src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.0772
    Problem:    Vim9: some variable initializations not tested.
    Solution:   Add a few more tests
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0773
    Problem:    Switching to raw mode every time ":" is used.
    Solution:   When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the
                next time TMODE_RAW is used it is set, but not every time.
    Files:      src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c,
                src/os_win32.c

    Patch 8.2.0774
    Problem:    t_TI and t_TE are output when using 'visualbell'. (Dominique
                Pellé)
    Solution:   Do not change the terminal mode for a short sleep.  Do not output
                t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an
                enum.
    Files:      src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c,
                src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
                src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c,
                src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h

    Patch 8.2.0775
    Problem:    Not easy to call a Vim function from Lua.
    Solution:   Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063)
    Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.0776
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revision 719.
    Files:      Filelist, src/libvterm/README, src/libvterm/Makefile,
                src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc,
                src/libvterm/src/unicode.c

    Patch 8.2.0777 (after 8.2.0776)
    Problem:    Terminal test fails.
    Solution:   Adjust character position for double-wide characters.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0778
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 720 - 723.
    Files:      src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile,
                src/libvterm/t/run-test.pl, src/libvterm/src/state.c,
                src/libvterm/t/92lp1805050.test

    Patch 8.2.0779
    Problem:    Tmode_T not used everywhere.
    Solution:   Also use tmode_T for settmode().
    Files:      src/term.c, src/proto/term.pro

    Patch 8.2.0780
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 724 - 726.
    Files:      Filelist, src/libvterm/t/40screen_ascii.test,
                src/libvterm/t/60screen_ascii.test,
                src/libvterm/t/41screen_unicode.test,
                src/libvterm/t/61screen_unicode.test,
                src/libvterm/t/42screen_damage.test,
                src/libvterm/t/62screen_damage.test,
                src/libvterm/t/43screen_resize.test,
                src/libvterm/t/63screen_resize.test,
                src/libvterm/t/44screen_pen.test,
                src/libvterm/t/64screen_pen.test,
                src/libvterm/t/45screen_protect.test,
                src/libvterm/t/65screen_protect.test,
                src/libvterm/t/46screen_extent.test,
                src/libvterm/t/66screen_extent.test,
                src/libvterm/t/47screen_dbl_wh.test,
                src/libvterm/t/67screen_dbl_wh.test,
                src/libvterm/t/48screen_termprops.test,
                src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test,
                src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test,
                src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt

    Patch 8.2.0781 (after 8.2.0775)
    Problem:    Compiler warning for not using value in Lua.
    Solution:   Add "(void)".
    Files:      src/if_lua.c

    Patch 8.2.0782
    Problem:    Cannot build with Lua on MS-Windows.
    Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
    Files:      src/if_lua.c

    Patch 8.2.0783
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 728 - 729.
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile,
                src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test,
                src/libvterm/t/harness.c, src/libvterm/src/vterm.c,
                src/libvterm/src/vterm_internal.h,
                src/libvterm/t/26state_query.test

    Patch 8.2.0784
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 730 - 733.
    Files:      src/libvterm/src/vterm.c, src/libvterm/src/state.c,
                src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h,
                src/libvterm/t/harness.c

    Patch 8.2.0785
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 734 - 740.
    Files:      src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
                src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt,
                src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl,
                src/libvterm/Makefile, src/libvterm/CONTRIBUTING

    Patch 8.2.0786
    Problem:    Channel test is flaky on FreeBSD.
    Solution:   Set the socket TCP_NODELAY option. Adjust expected line count in
                netbeans test. (Ozaki Kiichi, closes #6097)
    Files:      src/testdir/test_channel.py, src/testdir/test_netbeans.vim

    Patch 8.2.0787
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 741 - 742.
    Files:      Filelist, src/libvterm/src/screen.c

    Patch 8.2.0788
    Problem:    Memory leak in libvterm.
    Solution:   free tmpbuffer.
    Files:      src/libvterm/src/vterm.c

    Patch 8.2.0789
    Problem:    Vim9: expression testing lost coverage using constants.
    Solution:   Use a few variables instead of constants.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.0790
    Problem:    Vim9: list index not well tested.
    Solution:   Add a few more tests.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0791
    Problem:    A second popup window with terminal causes trouble.
    Solution:   Disallow opening a second terminal-popup window. (closes #6101,
                closes #6103) Avoid defaulting to an invalid line number.
    Files:      runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c,
                src/testdir/test_popupwin.vim, src/testdir/test_terminal.vim

    Patch 8.2.0792
    Problem:    Build failure with small features.
    Solution:   Add #ifdef.
    Files:      src/popupwin.c

    Patch 8.2.0793
    Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
    Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
    Files:      src/os_win32.c

    Patch 8.2.0794
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 743 - 747.
    Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c,
                src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h,
                src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl

    Patch 8.2.0795
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 748 - 754.
    Files:      src/libvterm/include/vterm.h, src/libvterm/src/screen.c,
                src/libvterm/src/state.c, src/libvterm/t/32state_flow.test,
                src/libvterm/t/60screen_ascii.test,
                src/libvterm/t/62screen_damage.test,
                src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c,
                src/libvterm/t/run-test.pl

    Patch 8.2.0796
    Problem:    MS-Windows: compiler can't handle C99 construct in libvterm.
    Solution:   Change to C90 construct.
    Files:      src/libvterm/src/state.c

    Patch 8.2.0797
    Problem:    MS-Windows: compiler still can't handle C99 construct.
    Solution:   Change to C90 construct. (Dominique Pellé, closes #6106)
    Files:      src/libvterm/src/state.c

    Patch 8.2.0798
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 755 - 758.
    Files:      src/libvterm/t/run-test.pl, src/libvterm/src/screen.c,
                src/libvterm/t/harness.c, src/libvterm/include/vterm.h,
                src/libvterm/src/parser.c, src/libvterm/src/state.c,
                src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
                src/libvterm/t/02parser.test,
                src/libvterm/t/18state_termprops.test,
                src/libvterm/t/29state_fallback.test,
                src/libvterm/t/68screen_termprops.test, src/terminal.c

    Patch 8.2.0799
    Problem:    Build fails if snprintf is not available.
    Solution:   Use vim_snprintf().
    Files:      src/libvterm/src/state.c

    Patch 8.2.0800
    Problem:    Errors from failing test are unclear.
    Solution:   Include text where parsing failed.
    Files:      src/json.c, src/testdir/test_json.vim

    Patch 8.2.0801
    Problem:    Terminal test fails on Mac.
    Solution:   Concatenate OSC pieces.
    Files:      src/terminal.c

    Patch 8.2.0802
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 759 - 762.
    Files:      src/terminal.c, src/libvterm/doc/seqs.txt,
                src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
                src/libvterm/src/screen.c, src/libvterm/src/state.c,
                src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
                src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test

    Patch 8.2.0803
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revisions 764 - 767
    Files:      src/Makefile, src/libvterm/src/parser.c,
                src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test,
                src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl,
                src/libvterm/src/fullwidth.inc

    Patch 8.2.0804
    Problem:    Libvterm code lags behind the upstream version.
    Solution:   Include revision 727, but add the index instead of switching
                between RGB and indexed.
    Files:      src/terminal.c, src/term.c, src/libvterm/include/vterm.h,
                src/libvterm/src/pen.c, src/libvterm/src/screen.c,
                src/libvterm/src/vterm_internal.h,
                src/libvterm/t/30state_pen.test,
                src/libvterm/t/harness.c, src/libvterm/src/state.c,
                src/libvterm/t/26state_query.test,
                src/libvterm/t/64screen_pen.test

    Patch 8.2.0805
    Problem:    Terminal key codes test fails on some systems.
    Solution:   Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0806
    Problem:    using "func!" after vim9script gives confusing error.
    Solution:   Give E477. (closes #6107)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0807
    Problem:    Cannot easily restore a mapping.
    Solution:   Add mapset().
    Files:      runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c
                src/testdir/test_maparg.vim

    Patch 8.2.0808
    Problem:    Not enough testing for the terminal window.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6069)  Fix memory
                leak.
    Files:      src/testdir/test_gui.vim, src/testdir/test_terminal.vim,
                src/terminal.c

    Patch 8.2.0809
    Problem:    Build failure with small features. (Tony Mechelynck)
    Solution:   Move "expr" inside #ifdef.
    Files:      src/map.c

    Patch 8.2.0810
    Problem:    Error when appending "tagfile" to 'wildoptions'.
    Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
                closes #6105)
    Files:      src/optiondefs.h, src/testdir/test_options.vim

    Patch 8.2.0811
    Problem:    Terminal keycode test is flaky.
    Solution:   Use WaitForAssert()
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.0812
    Problem:    mapset() does not properly handle <> notation.
    Solution:   Convert <> codes. (closes #6116)
    Files:      src/map.c, src/testdir/test_maparg.vim

    Patch 8.2.0813
    Problem:    libvterm code is slightly different from upstream.
    Solution:   Use upstream text to avoid future merge problems.  Mainly comment
                style changes.
    Files:      src/libvterm/include/vterm.h, src/libvterm/src/rect.h,
                src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h,
                src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c,
                src/libvterm/src/mouse.c, src/libvterm/src/parser.c,
                src/libvterm/src/pen.c, src/libvterm/src/screen.c,
                src/libvterm/src/state.c, src/libvterm/src/unicode.c,
                src/libvterm/src/vterm.c

    Patch 8.2.0814
    Problem:    Clang warning for implicit conversion.
    Solution:   Add type cast. (Dominique Pellé, closes #6124)
    Files:      src/evalfunc.c

    Patch 8.2.0815
    Problem:    maparg() does not provide enough information for mapset().
    Solution:   Add "lhsraw" and "lhsrawalt" items.  Drop "simplified"
    Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.vim

    Patch 8.2.0816
    Problem:    Terminal test fails when compiled with Athena.
    Solution:   Do give an error when the GUI is not running. (hint by Dominique
                Pellé, closes #5928, closes #6132)
    Files:      src/globals.h, src/gui.c, src/term.c, src/channel.c,
                src/testdir/test_terminal.vim

    Patch 8.2.0817
    Problem:    Not enough memory allocated when converting string with special
                character.
    Solution:   Reserve space for modifier code. (closes #6130)
    Files:      src/eval.c, src/testdir/test_functions.vim

    Patch 8.2.0818
    Problem:    Vim9: using a discovery phase doesn't work well.
    Solution:   Remove the discovery phase, instead compile a function only when
                it is used.  Add :defcompile to compile def functions earlier.
    Files:      runtime/doc/vim9.txt, src/vim9script.c, src/structs.h,
                src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
                src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
                src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h,
                src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.0819
    Problem:    Compiler warning for unused variable.
    Solution:   Remove the variable.
    Files:      src/evalvars.c

    Patch 8.2.0820
    Problem:    Vim9: function type isn't set until compiled.
    Solution:   Set function type early.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.0821
    Problem:    Vim9: memory leak in expr test.
    Solution:   Do not decrement the length of the list of functions if the
                current function is not at the end.
    Files:      src/vim9compile.c

    Patch 8.2.0822
    Problem:    Vim9: code left over from discovery phase.
    Solution:   Remove the dead code.
    Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h,
                src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c

    Patch 8.2.0823
    Problem:    Vim9: script reload test is disabled.
    Solution:   Compile a function in the context of the script where it was
                defined.  Set execution stack for compiled function.  Add a test
                that an error is reported for the right file/function.
    Files:      src/vim9compile.c, src/vim9execute.c, src/scriptfile.c,
                src/proto/scriptfile.pro, src/userfunc.c, src/globals.h,
                src/structs.h, src/ex_docmd.c, src/ex_eval.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0824 (after 8.2.0817)
    Problem:    Still not enough memory allocated when converting string with
                special character.
    Solution:   Reserve space for expanding K_SPECIAL. (closes #6130)
    Files:      src/eval.c, src/testdir/test_functions.vim

    Patch 8.2.0825
    Problem:    def_function() may return pointer that was freed.
    Solution:   Set "fp" to NULL after freeing it.
    Files:      src/userfunc.c

    Patch 8.2.0826
    Problem:    Vim9: crash in :defcompile.
    Solution:   Restart the loop after a call to compile_def_function() caused the
                hash table to resize.
    Files:      src/userfunc.c

    Patch 8.2.0827
    Problem:    Vim9: crash in :defcompile.
    Solution:   Fix off-by-one error.
    Files:      src/userfunc.c

    Patch 8.2.0828
    Problem:    Travis: regexp pattern doesn't work everywhere.
    Solution:   Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146)
    Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
                ci/config.mk.sed, src/if_ruby.c

    Patch 8.2.0829
    Problem:    filter() may give misleading error message.
    Solution:   Also mention Blob as an allowed argument.
    Files:      src/list.c, src/testdir/test_filter_map.vim

    Patch 8.2.0830
    Problem:    Motif: can't map "!". (Ben Jackson)
    Solution:   Remove the shift modifier if it's already included in the key.
                (closes #6147)
    Files:      src/gui_x11.c

    Patch 8.2.0831
    Problem:    Compiler warnings for integer sizes.
    Solution:   Add type casts. (Mike Williams)
    Files:      src/libvterm/src/pen.c, src/terminal.c

    Patch 8.2.0832
    Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Add initial value.
    Files:      src/map.c

    Patch 8.2.0833
    Problem:    Mapping <C-bslash> doesn't work in the GUI.
    Solution:   Reset seenModifyOtherKeys when starting the GUI. (closes #6150)
    Files:      src/gui.c

    Patch 8.2.0834
    Problem:    :drop command in terminal popup causes problems.
    Solution:   Check for using a popup window. (closes #6151)
    Files:      src/ex_cmds.c, src/testdir/test_popupwin.vim

    Patch 8.2.0835
    Problem:    Motif: mapping <C-bslash> still doesn't work.
    Solution:   Accept CSI for K_SPECIAL.  Do not apply CTRL to the character
                early.  (closes #6150)
    Files:      src/getchar.c, src/gui_x11.c

    Patch 8.2.0836
    Problem:    Not all :cdo output is visible.
    Solution:   Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155)
    Files:      src/ex_cmds2.c, src/testdir/test_cdo.vim

    Patch 8.2.0837
    Problem:    Compiler warning for value set but not used.
    Solution:   Move variable inside #ifdef.
    Files:      src/channel.c

    Patch 8.2.0838
    Problem:    MS-Windows: compiler warning for uninitialized variables.
    Solution:   Initialize variables.
    Files:      src/screen.c

    Patch 8.2.0839
    Problem:    Dropping modifier when putting a character back in typeahead.
    Solution:   Add modifier to ins_char_typebuf(). (closes #6158)
    Files:      src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c,
                src/terminal.c, src/globals.h, src/testdir/test_messages.vim

    Patch 8.2.0840
    Problem:    Search match count wrong when only match is in fold.
    Solution:   Update search stats when in a closed fold. (Christian Brabandt,
                closes #6160, closes #6152)
    Files:      src/search.c, src/testdir/dumps/Test_searchstat_3.dump,
                src/testdir/test_search_stat.vim

    Patch 8.2.0841
    Problem:    'verbose' value 16 causes duplicate output.
    Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
                closes #6153)
    Files:      runtime/doc/options.txt, src/ex_docmd.c

    Patch 8.2.0842 (after 8.2.0837)
    Problem:    MS-Windows: channel tests fail.
    Solution:   Adjust #ifdefs. (closes #6162)
    Files:      src/channel.c

    Patch 8.2.0843
    Problem:    Filetype elm not detected.
    Solution:   Recognize *.elm files. (closes #6157)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0844
    Problem:    Text properties crossing lines not handled correctly.
    Solution:   When saving for undo include an extra line when needed and do not
                adjust properties when undoing. (Axel Forsman, closes #5875)
    Files:      src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h

    Patch 8.2.0845
    Problem:    Text properties crossing lines not handled correctly.
    Solution:   When joining lines merge text properties if possible.
                (Axel Forsman, closes #5839, closes #5683)
    Files:      src/testdir/test_textprop.vim, src/memline.c, src/ops.c,
                src/proto/textprop.pro, src/textprop.c,
                src/testdir/dumps/Test_textprop_01.dump

    Patch 8.2.0846
    Problem:    Build failure with small features.
    Solution:   Add #ifdef.
    Files:      src/undo.c

    Patch 8.2.0847
    Problem:    Typval related code is spread out.
    Solution:   Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h,
                src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro,
                src/typval.c

    Patch 8.2.0848
    Problem:    MS-Windows: the Windows terminal code has some flaws.
    Solution:   Do not redraw the right edge of the screen.  Remove the background
                color trick.  Flush the screen output buffer often.  (Nobuhiro
                Takasaki, #5546)
    Files:      src/os_win32.c, src/proto/os_win32.pro, src/term.c

    Patch 8.2.0849
    Problem:    BeOS code is not maintained and probably unused.
    Solution:   Remove the BeOS code. (Emir Sarı, closes #5817)
    Files:      Filelist, src/Makefile, src/configure.ac, src/auto/configure,
                src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h,
                src/os_beos.rsrc, src/os_unix.c, src/proto.h,
                src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c,
                src/testdir/test_functions.vim, src/ui.c, src/vim.h

    Patch 8.2.0850
    Problem:    MS-Windows: exepath() works differently from cmd.exe.
    Solution:   Make exepath() work better on MS-Windows. (closes #6115)
    Files:      runtime/doc/eval.txt, src/os_win32.c,
                src/testdir/test_functions.vim

    Patch 8.2.0851 (after 8.2.0833)
    Problem:    Can't distinguish <M-a> from accented "a" in the GUI.
    Solution:   Use another way to make mapping <C-bslash> work. (closes #6163)
    Files:      src/gui.c, src/gui_gtk_x11.c, src/getchar.c

    Patch 8.2.0852
    Problem:    Cannot map CTRL-S on some systems.
    Solution:   Do not use CTRL-S for flow control.
    Files:      src/os_unix.c

    Patch 8.2.0853
    Problem:    ml_delete() often called with FALSE argument.
    Solution:   Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
    Files:      src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c,
                src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c,
                src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c,
                src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c,
                src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c,
                src/proto/memline.pro

    Patch 8.2.0854
    Problem:    Xxd cannot show offset as a decimal number.
    Solution:   Add the "-d" flag. (Aapo Rantalainen, closes #5616)
    Files:      src/testdir/test_xxd.vim, src/xxd/xxd.c

    Patch 8.2.0855
    Problem:    GUI tests fail because the test doesn't use a modifier.
    Solution:   Add "\{xxx}" to be able to encode a modifier.
    Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h,
                src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c,
                src/term.c, src/testdir/test_backspace_opt.vim,
                src/testdir/test_mapping.vim, src/testdir/test_messages.vim

    Patch 8.2.0856 (after 8.2.0852)
    Problem:    CTRL-S stops output.
    Solution:   Invert the IXON flag. (closes #6166)
    Files:      src/os_unix.c

    Patch 8.2.0857
    Problem:    GTK cell height can be a pixel too much.
    Solution:   Subtract 3 instead of 1 when rounding. (closes #6168)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.0858
    Problem:    Not easy to require Lua modules.
    Solution:   Improve use of Lua path. (Prabir Shrestha, closes #6098)
    Files:      Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro,
                src/testdir/test_lua.vim,
                src/testdir/testluaplugin/lua/testluaplugin/hello.lua,
                src/testdir/testluaplugin/lua/testluaplugin/init.lua

    Patch 8.2.0859
    Problem:    No Turkish translation of the manual.
    Solution:   Add Turkish translations. (Emir Sarı, closes #5641)
    Files:      Filelist, runtime/doc/Makefile, runtime/doc/evim-tr.1,
                runtime/doc/evim-tr.UTF-8.1, runtime/doc/vim-tr.1,
                runtime/doc/vim-tr.UTF-8.1, runtime/doc/vimdiff-tr.1,
                runtime/doc/vimdiff-tr.UTF-8.1, runtime/doc/vimtutor-tr.1,
                runtime/doc/vimtutor-tr.UTF-8.1, src/Makefile

    Patch 8.2.0860
    Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
    Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144)
    Files:      runtime/doc/options.txt, src/ops.c, src/optionstr.c,
                src/testdir/test_increment.vim

    Patch 8.2.0861
    Problem:    Cannot easily get all the current marks.
    Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/mark.c, src/proto/mark.pro, src/testdir/test_marks.vim

    Patch 8.2.0862
    Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
                Hennepe)
    Solution:   Do not hide the current buffer. (closes #6170)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.0863
    Problem:    Cannot set a separate color for underline/undercurl.
    Solution:   Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011)
    Files:      runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h,
                src/highlight.c, src/optiondefs.h, src/proto/term.pro,
                src/screen.c, src/structs.h, src/term.c, src/term.h,
                src/testdir/test_options.vim

    Patch 8.2.0864
    Problem:    Pragmas are indented all the way to the left.
    Solution:   Add an option to indent pragmas like normal code. (Max Rumpf,
                closes #5468)
    Files:      runtime/doc/indent.txt, src/cindent.c, src/structs.h,
                src/testdir/test_cindent.vim

    Patch 8.2.0865
    Problem:    Syntax foldlevel is taken from the start of the line.
    Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in
                the line. (Brad King, closes #6087)
    Files:      runtime/doc/syntax.txt, src/structs.h, src/syntax.c,
                src/testdir/test_syntax.vim

    Patch 8.2.0866
    Problem:    Not enough tests for buffer writing.
    Solution:   Add more tests. Use CheckRunVimInTerminal in more places.
                (Yegappan Lakshmanan, closes #6167)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_match.vim,
                src/testdir/test_messages.vim, src/testdir/test_netbeans.py,
                src/testdir/test_netbeans.vim, src/testdir/test_search.vim,
                src/testdir/test_signals.vim, src/testdir/test_signs.vim,
                src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim,
                src/testdir/test_syntax.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_timers.vim, src/testdir/test_vimscript.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.0867
    Problem:    Using \{xxx} for encoding a modifier is not nice.
    Solution:   Use \<*xxx> instead, since it's the same as \<xxx> but producing a
                different code.
    Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/vim.h,
                src/testdir/test_backspace_opt.vim, src/testdir/test_mapping.vim,
                src/testdir/test_messages.vim

    Patch 8.2.0868
    Problem:    trim() always trims both ends.
    Solution:   Add an argument to only trim the beginning or end. (Yegappan
                Lakshmanan, closes #6126)
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_functions.vim

    Patch 8.2.0869
    Problem:    It is not possible to customize the quickfix window contents.
    Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465)
    Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
                runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h,
                src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.0870
    Problem:    MS-Windows: Control keys don't work in the GUI.
    Solution:   Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto,
                closes #6175)
    Files:      src/gui.c

    Patch 8.2.0871
    Problem:    Cannot use getmarklist() as a method.
    Solution:   Make getmarklist() work as a method.  Add one to the column
                number to match getpos(). (Yegappan Lakshmanan, closes #6176)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/mark.c,
                src/testdir/test_marks.vim

    Patch 8.2.0872
    Problem:    XIM code is mixed with multibyte code.
    Solution:   Move the XIM code to a separate file. (Yegappan Lakshmanan,
                closes #6177)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c,
                src/mbyte.c, src/proto.h, src/proto/gui_xim.pro,
                src/proto/mbyte.pro

    Patch 8.2.0873
    Problem:    A .jl file can be sawfish (lisp) or Julia.
    Solution:   Do not recognize *.jl as lisp, since it might be Julia.
                (closes #6178)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0874
    Problem:    Signals test is a bit flaky.
    Solution:   Flush the XautoOut file.  Delete files that may be left behind
                from a failure. (Dominique Pellé, closes #6179)
    Files:      src/testdir/test_signals.vim

    Patch 8.2.0875
    Problem:    Getting attributes for directory entries is slow.
    Solution:   Add readdirex(). (Ken Takata, closes #5619)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/fileio.c, src/filepath.c, src/proto/fileio.pro,
                src/proto/filepath.pro, src/testdir/test_functions.vim

    Patch 8.2.0876
    Problem:    :pwd does not give a hint about the scope of the directory
    Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
    Files:      runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.vim

    Patch 8.2.0877
    Problem:    Cannot get the search statistics.
    Solution:   Add the searchcount() function. (Fujiwara Takuya, closes #4446)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/macros.h,
                src/proto/search.pro, src/search.c,
                src/testdir/test_search_stat.vim

    Patch 8.2.0878
    Problem:    No reduce() function.
    Solution:   Add a reduce() function. (closes #5481)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c,
                src/proto/list.pro, src/testdir/test_listdict.vim

    Patch 8.2.0879
    Problem:    Compiler warning for unused function argument.
    Solution:   Add UNUSED.
    Files:      src/search.c

    Patch 8.2.0880 (after 8.2.0877)
    Problem:    Leaking memory when using searchcount().
    Solution:   Free the last used search pattern.
    Files:      src/search.c

    Patch 8.2.0881
    Problem:    Compiler warning for argument type.
    Solution:   Add type cast. (Mike Williams)
    Files:      src/ops.c

    Patch 8.2.0882
    Problem:    Leaking memory when using reduce().
    Solution:   Free the intermediate value.
    Files:      src/list.c

    Patch 8.2.0883
    Problem:    Memory leak in test 49.
    Solution:   Free "sfile" from the exception.
    Files:      src/ex_docmd.c

    Patch 8.2.0884
    Problem:    Searchcount() test fails on slower systems.
    Solution:   Set a longer timeout.
    Files:      src/search.c, src/testdir/test_search_stat.vim

    Patch 8.2.0885
    Problem:    "make shadow" does not link new lua test dir.
    Solution:   Also link testdir/testluaplugin. (Elimar Riesebieter)
    Files:      src/Makefile

    Patch 8.2.0886
    Problem:    Cannot use octal numbers in scriptversion 4.
    Solution:   Add the "0o" notation. (Ken Takata, closes #5304)
    Files:      runtime/doc/eval.txt, src/charset.c, src/evalfunc.c,
                src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim,
                src/vim.h

    Patch 8.2.0887
    Problem:    Searchcount().exact_match is 1 right after a match.
    Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
    Files:      src/search.c, src/testdir/test_search_stat.vim

    Patch 8.2.0888
    Problem:    Readdirex() returns size -2 for a directory.
    Solution:   Add missing "else". (Ken Takata, closes #6185)
    Files:      src/fileio.c, src/testdir/test_functions.vim

    Patch 8.2.0889
    Problem:    Using old style comments.
    Solution:   Use // comments. (Yegappan Lakshmanan, closes #6190)
    Files:      src/gui_xim.c

    Patch 8.2.0890
    Problem:    No color in terminal window when 'termguicolors' is set.
    Solution:   Clear the underline color. (closes #6186)
    Files:      src/highlight.c

    Patch 8.2.0891
    Problem:    Clang warns for invalid conversion.
    Solution:   Use zero instead of INVALCOLOR.
    Files:      src/highlight.c

    Patch 8.2.0892
    Problem:    Ubsan warns for undefined behavior.
    Solution:   Use unsigned instead of signed variable. (Dominique Pellé,
                closes #6193)
    Files:      src/regexp_nfa.c

    Patch 8.2.0893
    Problem:    Assert_equalfile() does not take a third argument.
    Solution:   Implement the third argument. (Gary Johnson)
    Files:      runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c,
                src/testdir/test_assert.vim, src/testing.c

    Patch 8.2.0894
    Problem:    :mkspell can take very long if the word count is high.
    Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
                the compression did not have effect.
    Files:      src/spellfile.c

    Patch 8.2.0895
    Problem:    :mkspell output does not mention the tree type.
    Solution:   Back out increasing the limits, it has no effect.  Mention the
                tree being compressed.  Only give a message once per second.
    Files:      src/spellfile.c

    Patch 8.2.0896
    Problem:    Crash when calling searchcount() with a string.
    Solution:   Check the argument is a dict. (closes #6192)
    Files:      src/search.c, src/testdir/test_search_stat.vim

    Patch 8.2.0897
    Problem:    List of functions in patched version is outdated.
    Solution:   Update the function lists only.
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt

    Patch 8.2.0898
    Problem:    Missing help for a function goes unnoticed.
    Solution:   Add a test. (Gary Johnson)
    Files:      src/testdir/test_function_lists.vim, src/testdir/Make_all.mak

    Patch 8.2.0899
    Problem:    Assert_equalfile() does not give a hint about the difference.
    Solution:   Display the last seen text.
    Files:      src/testing.c, src/testdir/test_assert.vim

    Patch 8.2.0900
    Problem:    Function list test fails on MS-Windows.
    Solution:   Make sure the fileformat is "unix"
    Files:      src/testdir/test_function_lists.vim

    Patch 8.2.0901
    Problem:    Formatting CJK text isn't optimal.
    Solution:   Properly break CJK lines. (closes #3875)
    Files:      runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h,
                src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c,
                src/testdir/test_cjk_linebreak.vim

    Patch 8.2.0902
    Problem:    Using searchcount() in 'statusline' causes an error.
    Solution:   Avoid saving/restoring the search pattern recursively.
                (closes #6194)
    Files:      src/search.c, src/testdir/test_search_stat.vim,
                src/testdir/dumps/Test_searchstat_4.dump

    Patch 8.2.0903
    Problem:    comparing WINVER does not work correctly.
    Solution:   Use arithmetic expansion. (Ozaki Kiichi, closes #6197)
    Files:      src/Make_cyg_ming.mak

    Patch 8.2.0904
    Problem:    Assuming modifyOtherKeys for rhs of mapping.
    Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes #6200)
    Files:      src/getchar.c, src/testdir/test_gui.vim

    Patch 8.2.0905
    Problem:    Test coverage could be better.
    Solution:   Add a couple of tests. (Dominique Pellé, closes #6202)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_ga.vim

    Patch 8.2.0906
    Problem:    When setting 'termguicolors' SpellBad is no longer red.
    Solution:   Only use the RGB guisp color for cterm when using the "underline"
                or "undercurl" attributes to avoid the background color to be
                cleared. Also make t_8u empty when the termresponse indicates a
                real xterm. (closes #6207)
    Files:      src/highlight.c, src/term.c

    Patch 8.2.0907
    Problem:    When using :global clipboard isn't set correctly.
    Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
                Brabandt, closes #6203, closes #6198)
    Files:      src/clipboard.c, src/testdir/test_global.vim

    Patch 8.2.0908
    Problem:    Crash when changing the function table while listing it.
    Solution:   Bail out when the function table changes. (closes #6209)
    Files:      src/userfunc.c, src/testdir/test_timers.vim

    Patch 8.2.0909
    Problem:    Cannot go back to the previous local directory.
    Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362)
    Files:      runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c,
                src/structs.h, src/testdir/test_cd.vim, src/window.c

    Patch 8.2.0910
    Problem:    Vim is not reproducibly buildable.
    Solution:   Use the $SOURCE_DATE_EPOCH environment variable in configure.
                (James McCoy, closes #513)  Give a warning about using it.
    Files:      src/config.h.in, src/config.mk.in, src/configure.ac,
                src/auto/configure, src/version.c, src/Makefile

    Patch 8.2.0911
    Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
                Barber)
    Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
                more prompt. (closes #6211)
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_cmdwin_interrupted.dump

    Patch 8.2.0912
    Problem:    A few test cases for CJK formatting are disabled.
    Solution:   Fix the tests and enable them. (closes #6212)
    Files:      src/testdir/test_cjk_linebreak.vim

    Patch 8.2.0913
    Problem:    Code for resetting v:register is duplicated.
    Solution:   Add reset_reg_var().
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c

    Patch 8.2.0914
    Problem:    MS-Windows: cannot specify a "modified by" text.
    Solution:   Add MODIFIED_BY in the MSVC build file.  (Chen Lei, closes #1275)
    Files:      src/Make_mvc.mak

    Patch 8.2.0915
    Problem:    Search() cannot skip over matches like searchpair() can.
    Solution:   Add an optional "skip" argument. (Christian Brabandt, closes #861)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.vim,
                src/structs.h, src/evalvars.c, src/proto/evalvars.pro

    Patch 8.2.0916
    Problem:    Mapping with partly modifyOtherKeys code does not work.
    Solution:   If there is no mapping with a separate modifier include the
                modifier in the key and then try mapping again. (closes #6200)
    Files:      src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c,
                src/proto/term.pro, src/testdir/test_termcodes.vim

    Patch 8.2.0917
    Problem:    Quickfix entries do not support a "note" type.
    Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
                closes #5527, closes #6216)
    Files:      runtime/doc/quickfix.txt, src/quickfix.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.0918
    Problem:    Duplicate code for evaluating expression argument.
    Solution:   Merge the code and make the use more flexible.
    Files:      src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c,
                src/proto/evalvars.pro, src/structs.h

    Patch 8.2.0919
    Problem:    Merging modifier for modifyOtherKeys is done twice.
    Solution:   Remove the merging done in vgetc().
    Files:      src/getchar.c, src/ex_getln.c

    Patch 8.2.0920
    Problem:    Writing viminfo fails with a circular reference.
    Solution:   Use copyID to detect the cycle. (closes #6217)
    Files:      src/testdir/test_viminfo.vim, src/viminfo.c

    Patch 8.2.0921
    Problem:    CTRL-W T in cmdline window causes trouble.
    Solution:   Disallow CTRL-W T in the cmdline window.  Add more tests.
                (Naruhiko Nishino, closes #6219)
    Files:      src/testdir/test_cmdline.vim, src/window.c

    Patch 8.2.0922
    Problem:    Search test fails.
    Solution:   Remove failure tests for calls that no longer fail.
    Files:      src/testdir/test_search.vim

    Patch 8.2.0923
    Problem:    Cmdline test is slow.
    Solution:   Use WaitForAssert().
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.0924
    Problem:    Cannot save and restore a register properly.
    Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
                Massimino, closes #3370)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/proto/register.pro, src/register.c,
                src/testdir/test_eval_stuff.vim, src/testdir/test_registers.vim

    Patch 8.2.0925
    Problem:    Getcompletion() does not return command line arguments.
    Solution:   Add the "cmdline" option. (Shougo, closes #1140)
    Files:      runtime/doc/eval.txt, src/cmdexpand.c,
                src/testdir/test_cmdline.vim

    Patch 8.2.0926
    Problem:    Cmdline test fails on Appveyor.
    Solution:   Add CR to the commands. (Naruhiko Nishino, closes #6220)
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.0927
    Problem:    Some sshconfig and ssdhconfig files are not recognized.
    Solution:   Add filetype patterns.
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0928
    Problem:    Many type casts are used for vim_strnsave().
    Solution:   Make the length argument size_t instead of int. (Ken Takata,
                closes #5633)  Remove some type casts.
    Files:      src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c,
                src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c,
                src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c

    Patch 8.2.0929
    Problem:    v:register is not cleared after an operator was executed.
    Solution:   Clear v:register after finishing an operator (Andy Massimino,
                closes #5305)
    Files:      src/normal.c, src/testdir/test_registers.vim

    Patch 8.2.0930
    Problem:    Script filetype detection trips over env -S argument.
    Solution:   Remove "-S" and "--ignore-environment". (closes #5013)
                Add tests.
    Files:      runtime/scripts.vim, src/testdir/test_filetype.vim

    Patch 8.2.0931
    Problem:    Some remarks about BeOS remain.
    Solution:   Remove BeOS remarks from the help and other files. (Emir Sarı,
                closes #6221)
    Files:      READMEdir/README_extra.txt, runtime/doc/options.txt,
                runtime/doc/os_beos.txt, runtime/doc/os_vms.txt,
                runtime/doc/vi_diff.txt, src/INSTALL

    Patch 8.2.0932
    Problem:    Misspelling spelllang.
    Solution:   Add an "l". (Dominique Pellé)
    Files:      src/optionstr.c, src/proto/spell.pro, src/spell.c

    Patch 8.2.0933
    Problem:    'quickfixtextfunc' does not get window ID of location list.
    Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
                closes #6222)
    Files:      runtime/doc/quickfix.txt, src/quickfix.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.0934
    Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
                topic.
    Solution:   Check whether any window with the location list is present.
                (Yegappan Lakshmanan, closes #6215)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.0935
    Problem:    Flattening a list with existing code is slow.
    Solution:   Add flatten(). (Mopp, closes #3676)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/list.c, src/proto/list.pro, src/testdir/Make_all.mak,
                src/testdir/test_flatten.vim

    Patch 8.2.0936
    Problem:    Some terminals misinterpret the code for getting cursor style.
    Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
                Kouichi, closes #2126)  Merged with current code.
    Files:      src/main.c, src/term.c, src/proto/term.pro,
                src/testdir/term_util.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_terminal.vim, src/testdir/test_startup_utf8.vim,
                src/testdir/dumps/Test_balloon_eval_term_01.dump,
                src/testdir/dumps/Test_balloon_eval_term_01a.dump,
                src/testdir/dumps/Test_balloon_eval_term_02.dump,
                src/testdir/dumps/Test_terminal_all_ansi_colors.dump

    Patch 8.2.0937
    Problem:    Asan failure in the flatten() test.
    Solution:   Free the flattened list.
    Files:      src/list.c

    Patch 8.2.0938
    Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
    Solution:   Use utf_fold() when possible. (ref. neovim #12456)
    Files:      src/macros.h, src/diff.c, src/regexp_nfa.c,
                src/testdir/test_regexp_utf8.vim

    Patch 8.2.0939
    Problem:    checking for term escape sequences is long and confusing
    Solution:   Refactor code into separate functions.
    Files:      src/term.c

    Patch 8.2.0940 (after 8.2.0939)
    Problem:    Build failure with tiny features.
    Solution:   Add #ifdef.  Add UNUSED.  A bit more cleaning up.
    Files:      src/term.c

    Patch 8.2.0941
    Problem:    Detecting terminal properties is unstructured.
    Solution:   Add a table with terminal properties.  Set properties when a
                terminal is detected.
    Files:      src/term.c

    Patch 8.2.0942
    Problem:    Expanding to local dir after homedir keeps "~/".
    Solution:   Adjust modify_fname(). (Christian Brabandt, closes #6205,
                closes #5979)
    Files:      src/filepath.c, src/testdir/test_fnamemodify.vim

    Patch 8.2.0943
    Problem:    Displaying ^M or ^J depends on current buffer.
    Solution:   Pass the displayed buffer to transchar(). (closes #6225)
    Files:      src/drawline.c, src/charset.c, src/proto/charset.pro,
                src/ex_cmds.c, src/gui_beval.c, src/message.c,
                src/testdir/test_display.vim,
                src/testdir/dumps/Test_display_unprintable_01.dump,
                src/testdir/dumps/Test_display_unprintable_02.dump

    Patch 8.2.0944
    Problem:    Xxd test leaves file behind.
    Solution:   Delete the file "XXDfile". (Christian Brabandt, closes #6228)
    Files:      src/testdir/test_xxd.vim

    Patch 8.2.0945
    Problem:    Cannot use "z=" when 'spell' is off.
    Solution:   Make "z=" work even when 'spell' is off. (Christian Brabandt,
                Gary Johnson, closes #6227)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/spell.c,
                src/spellsuggest.c, src/testdir/test_spell.vim, src/globals.h

    Patch 8.2.0946
    Problem:    Cannot use "q" to cancel a number prompt.
    Solution:   Recognize "q" instead of ignoring it.
    Files:      src/misc1.c, src/testdir/test_functions.vim

    Patch 8.2.0947
    Problem:    Readdirex() doesn't handle broken link properly.
    Solution:   Small fixes to readdirex(). (Christian Brabandt, closes #6226,
                closes #6213)
    Files:      src/fileio.c, src/testdir/test_functions.vim

    Patch 8.2.0948
    Problem:    Spell test fails.
    Solution:   Adjust expected text of the prompt.
    Files:      src/testdir/test_spell.vim

    Patch 8.2.0949
    Problem:    Strptime() does not use DST.
    Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230)
    Files:      src/time.c, src/testdir/test_functions.vim

    Patch 8.2.0950
    Problem:    Tagjump test fails.
    Solution:   Adjust expected text of the prompt.
    Files:      src/testdir/test_tagjump.vim

    Patch 8.2.0951
    Problem:    Search stat test has leftover from debugging.
    Solution:   Remove line that writes a file. (Christian Brabandt, closes #6224)
    Files:      src/testdir/test_search_stat.vim

    Patch 8.2.0952
    Problem:    No simple way to interrupt Vim.
    Solution:   Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes,
                closes #1718)
    Files:      runtime/doc/autocmd.txt, src/vim.h, src/autocmd.c, src/getchar.c,
                src/globals.h, src/os_unix.c, src/testdir/test_autocmd.vim

    Patch 8.2.0953
    Problem:    Spell checking doesn't work for CamelCased words.
    Solution:   Add the "camel" value in the new option 'spelloptions'.
                (closes #1235)
    Files:      runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h,
                src/option.h, src/option.c, src/buffer.c, src/optionstr.c,
                src/testdir/gen_opt_test.vim, src/testdir/test_spell.vim

    Patch 8.2.0954
    Problem:    Not all desktop files are recognized.
    Solution:   Add the *.directory pattern. (Eisuke Kawashima, closes #3317)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0955 (after 8.2.0953)
    Problem:    Build fails.
    Solution:   Add missing struct change.
    Files:      src/structs.h

    Patch 8.2.0956 (after 8.2.0953)
    Problem:    Spell test fails.
    Solution:   Add missing change the spell checking.
    Files:      src/spell.c

    Patch 8.2.0957
    Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize one variable.
    Files:      src/spell.c

    Patch 8.2.0958
    Problem:    Not sufficient testing for buffer writing.
    Solution:   Add a few tests. (Yegappan Lakshmanan, closes #6238)
    Files:      src/testdir/test_backup.vim, src/testdir/test_writefile.vim

    Patch 8.2.0959
    Problem:    Using 'quickfixtextfunc' is a bit slow.
    Solution:   Process a list of entries. (Yegappan Lakshmanan, closes #6234)
    Files:      runtime/doc/quickfix.txt, src/quickfix.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.0960
    Problem:    Cannot use :import in legacy Vim script.
    Solution:   Support :import in any Vim script.
    Files:      src/vim9script.c, src/evalvars.c, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0961
    Problem:    MS-Windows: no completion for locales.
    Solution:   Use the directories in $VIMRUNTIME/lang to complete locales.
                (Christian Brabandt, closes 36248)
    Files:      src/cmdexpand.c, src/ex_cmds2.c, src/testdir/test_cmdline.vim

    Patch 8.2.0962
    Problem:    Terminal test sometimes hangs on Travis.
    Solution:   Do show output for this test temporarily.
    Files:      src/testdir/Makefile

    Patch 8.2.0963
    Problem:    Number increment/decrement does not work with 'virtualedit'.
    Solution:   Handle coladd changing. (Christian Brabandt, closes #6240,
                closes #923)
    Files:      runtime/doc/options.txt, runtime/doc/various.txt, src/ops.c,
                src/testdir/test_increment.vim

    Patch 8.2.0964
    Problem:    TextYankPost does not provide info about Visual selection.
    Solution:   Add the 'visual' key in v:event. (closes #6249)
    Files:      runtime/doc/autocmd.txt, src/register.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.0965
    Problem:    Has_funcundefined() is not used.
    Solution:   Delete the function. (Dominique Pellé, closes #6242)
    Files:      src/autocmd.c, src/proto/autocmd.pro

    Patch 8.2.0966
    Problem:    'shortmess' flag "n" not used in two places.
    Solution:   Make use of the "n" flag consistent. (Nick Jensen, closes #6245,
                closes #6244)
    Files:      src/bufwrite.c, src/proto/bufwrite.pro, src/buffer.c,
                src/fileio.c, src/testdir/dumps/Test_popup_textprop_corn_5.dump,
                src/testdir/dumps/Test_start_with_tabs.dump

    Patch 8.2.0967
    Problem:    Unnecessary type casts for vim_strnsave().
    Solution:   Remove the type casts.
    Files:      src/evalvars.c, src/ex_cmds.c, src/ex_eval.c, src/fileio.c,
                src/filepath.c, src/findfile.c, src/highlight.c, src/if_ruby.c,
                src/insexpand.c, src/json.c, src/mark.c, src/memline.c,
                src/menu.c, src/misc1.c, src/ops.c, src/os_win32.c, src/regexp.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c,
                src/sign.c, src/syntax.c, src/term.c, src/terminal.c, src/undo.c,
                src/usercmd.c, src/userfunc.c, src/vim9compile.c, src/if_perl.xs

    Patch 8.2.0968
    Problem:    No proper testing of the 'cpoptions' flags.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #6251)
    Files:      src/testdir/Make_all.mak, src/testdir/test_cpoptions.vim,
                src/testdir/test_edit.vim, src/testdir/test_normal.vim

    Patch 8.2.0969
    Problem:    Assert_equal() output for dicts is hard to figure out.
    Solution:   Only show the different items.
    Files:      src/testing.c, src/testdir/test_assert.vim

    Patch 8.2.0970
    Problem:    Terminal properties are not available in Vim script.
    Solution:   Add the terminalprops() function.
    Files:      src/term.c, src/proto/term.pro, src/evalfunc.c, src/main.c,
                src/testing.c, src/globals.h, src/testdir/test_termcodes.vim,
                runtime/doc/usr_41.txt, runtime/doc/eval.txt,
                runtime/doc/testing.txt

    Patch 8.2.0971
    Problem:    Build with tiny features fails.
    Solution:   Add #ifdef.
    Files:      src/term.c

    Patch 8.2.0972
    Problem:    Vim9 script variable declarations need a type.
    Solution:   Make "let var: type" declare a script-local variable.
    Files:      src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro,
                src/globals.h, src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0973
    Problem:    Vim9: type is not checked when assigning to a script variable.
    Solution:   Check the type.
    Files:      src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro,
                src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_script.vim

    Patch 8.2.0974
    Problem:    Vim9: memory leak when script var has wrong type.
    Solution:   Free the variable name.
    Files:      src/vim9script.vim

    Patch 8.2.0975
    Problem:    Vim9: script variable does not accept optional s: prefix.
    Solution:   Adjust the accepted syntax.
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0976
    Problem:    Some 'cpoptions' not tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6253)
    Files:      src/testdir/test_cd.vim, src/testdir/test_charsearch.vim,
                src/testdir/test_cpoptions.vim, src/testdir/test_normal.vim

    Patch 8.2.0977
    Problem:    t_8u is made empty for the wrong terminals. (Dominique Pelle)
    Solution:   Invert the check for TPR_YES. (closes #6254)
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.0978
    Problem:    Leaking memory in termcodes test.
    Solution:   Set t_8u with set_option_value().
    Files:      src/term.c

    Patch 8.2.0979
    Problem:    A couple of screendump tests fail.
    Solution:   Do not redraw when clearing t_8u.
    Files:      src/term.c

    Patch 8.2.0980
    Problem:    Raku file extension not recognized. (Steven Penny)
    Solution:   Recognize .raku and .rakumod. (closes #6255)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0981
    Problem:    Vim9: cannot compile "[var, var] = list".
    Solution:   Implement list assignment.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c,
                src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0982
    Problem:    Insufficient testing for reading/writing files.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6257)
                Add "ui_delay" to test_override() and use it for the CTRL-O test.
    Files:      src/testing.c, src/globals.h, src/ui.c, runtime/doc/testing.txt,
                src/testdir/test_autocmd.vim, src/testdir/test_edit.vim,
                src/testdir/test_filechanged.vim, src/testdir/test_writefile.vim

    Patch 8.2.0983
    Problem:    SConstruct file type not recognized.
    Solution:   Use python for SConstruct files. (Roland Hieber)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.0984
    Problem:    Not using previous window when closing a shell popup window.
    Solution:   Use "prevwin" if it was set. (closes #6267)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.0985
    Problem:    Simplify() does not remove slashes from "///path".
    Solution:   Reduce > 2 slashes to one. (closes #6263)
    Files:      src/findfile.c, src/testdir/test_functions.vim

    Patch 8.2.0986 (after 8.2.0985)
    Problem:    MS-Windows: functions test fails.
    Solution:   Only simplify ///path on Unix.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.0987
    Problem:    Vim9: cannot assign to [var; var].
    Solution:   Assign rest of items to a list.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/list.c,
                src/proto/list.pro, src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.0988
    Problem:    Getting directory contents is always case sorted.
    Solution:   Add sort options and v:collate. (Christian Brabandt, closes #6229)
    Files:      runtime/doc/eval.txt, runtime/doc/mlang.txt, src/auto/configure,
                src/cmdexpand.c, src/config.h.in, src/configure.ac,
                src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c,
                src/filepath.c, src/globals.h, src/proto/fileio.pro,
                src/testdir/test_cmdline.vim, src/testdir/test_functions.vim,
                src/vim.h

    Patch 8.2.0989
    Problem:    Crash after resizing a terminal window. (August Masquelier)
    Solution:   Add check for valid row in libvterm. (closes #6273)
    Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c

    Patch 8.2.0990 (after 8.2.0988)
    Problem:    Using duplicate error number.
    Solution:   Use an unused error number.  Add a test for it.
    Files:      src/globals.h, src/testdir/test_functions.vim

    Patch 8.2.0991
    Problem:    Cannot get window type for autocmd and preview window.
    Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)
    Files:      runtime/doc/eval.txt, src/evalwindow.c,
                src/testdir/test_autocmd.vim, src/testdir/test_preview.vim

    Patch 8.2.0992
    Problem:    Vim9: crash when using :import in the Vim command.
    Solution:   Give an error when using :import outside of a script.
                (closes #6271)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim,
                src/testdir/term_util.vim

    Patch 8.2.0993
    Problem:    Vim9 script test fails with normal features.
    Solution:   Use :func instead of :def for now.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0994
    Problem:    Vim9: missing function causes compilation error.
    Solution:   Call test function indirectly.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.0995
    Problem:    Insufficient testing for the readdir() sort option.
    Solution:   Add a few more tests. (Christian Brabandt, closes #6278)
    Files:      src/testdir/test_functions.vim

    Patch 8.2.0996
    Problem:    Using "aucmdwin" in win_gettype() is not ideal.
    Solution:   Rename to "autocmd".
    Files:      runtime/doc/eval.txt, src/evalwindow.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.0997
    Problem:    Cannot execute a register containing line continuation.
    Solution:   Concatenate lines where needed. (Yegappan Lakshmanan,
                closes #6272)
    Files:      runtime/doc/repeat.txt, src/register.c,
                src/testdir/test_registers.vim

    Patch 8.2.0998
    Problem:    Not all tag code is tested.
    Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6284)
    Files:      src/testdir/test_tagjump.vim

    Patch 8.2.0999
    Problem:    Moving to next sentence gets stuck on quote.
    Solution:   When moving to the next sentence doesn't result in moving, advance
                a character and try again. (closes #6291)
    Files:      src/textobject.c, src/testdir/test_textobjects.vim

    Patch 8.2.1000
    Problem:    Get error when leaving Ex mode with :visual and a CmdLineEnter
                autocommand was used.
    Solution:   Reset ex_pressedreturn. (closes #6293)
    Files:      src/ex_docmd.c, src/testdir/test_ex_mode.vim

    Patch 8.2.1001
    Problem:    Vim9: crash with nested "if" and assignment.
    Solution:   Skip more of the assignment.  Do not set ctx_skip when code is
                reachable.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1002
    Problem:    Test may fail when run directly.
    Solution:   Check if g:run_nr exists. (Christian Brabandt, closes #6285)
    Files:      src/testdir/term_util.vim

    Patch 8.2.1003
    Problem:    Vim9: return type of sort() is too generic.
    Solution:   Get type from the first argument. (closes #6292)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1004
    Problem:    Line numbers below filler lines not always updated.
    Solution:   Don't break out of the win_line() loop too early. (Christian
                Brabandt, closes #6294, closes #6138)
    Files:      src/drawline.c, src/testdir/dumps/Test_diff_rnu_01.dump,
                src/testdir/dumps/Test_diff_rnu_02.dump,
                src/testdir/dumps/Test_diff_rnu_03.dump,
                src/testdir/test_diffmode.vim

    Patch 8.2.1005
    Problem:    Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing.
    Solution:   Use an enum value.
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1006
    Problem:    Vim9: require unnecessary return statement.
    Solution:   Improve the use of the had_return flag. (closes #6270)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1007
    Problem:    Completion doesn't work after ":r ++arg !".
    Solution:   Skip over "++arg". (Christian Brabandt, closes #6275,
                closes #6258)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.1008
    Problem:    Vim9: no test for disassembling newly added instructions.
    Solution:   Add a function and check disassembly.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1009
    Problem:    Vim9: some failures not checked for.
    Solution:   Add test cases.  Remove unused code.
    Files:      src/testdir/test_vim9_script.vim, src/vim9execute.c

    Patch 8.2.1010
    Problem:    Build failure in libvterm with debug enabled. (John Little)
    Solution:   Use "->" instead of ".".
    Files:      src/libvterm/src/state.c

    Patch 8.2.1011
    Problem:    Vim9: some code not tested.
    Solution:   Add a few more test cases.  Reorder checks for clearer error.
                Remove unreachable code.
    Files:      src/evalvars.c, src/vim9script.c, src/vim9execute.c,
                src/proto/vim9script.pro, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1012
    Problem:    Vim9: cannot declare single character script variables.
    Solution:   Don't see "b:", "s:", etc. as namespace.  Fix item size of
                sn_var_vals.
    Files:      src/vim9script.c, src/scriptfile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1013
    Problem:    Channel tests can be a bit flaky.
    Solution:   Set the g:test_is_flaky flag in SetUp().
    Files:      src/testdir/test_channel.vim

    Patch 8.2.1014
    Problem:    Using "name" for a string result is confusing.
    Solution:   Rename to "end".
    Files:      src/typval.c

    Patch 8.2.1015
    Problem:    Popup filter gets key with modifier prepended when using
                modifyOtherKeys.
    Solution:   Remove the shift modifier when it is included in the key, also
                when the Alt or Meta modifier is used.
    Files:      src/term.c, src/misc2.c, src/testdir/test_popupwin.vim

    Patch 8.2.1016
    Problem:    Vim9: test fails when channel feature is missing.
    Solution:   Process an :if command when skipping
    Files:      src/vim9compile.c

    Patch 8.2.1017
    Problem:    Appveyor output doesn't show MinGW console features.
    Solution:   List the features of the console build.
    Files:      ci/appveyor.bat

    Patch 8.2.1018
    Problem:    Typo in enum value. (James McCoy)
    Solution:   Fix the typo.
    Files:      src/vim9compile.c

    Patch 8.2.1019
    Problem:    Mapping <M-S-a> does not work in the GUI.
    Solution:   Move the logic to remove the shift modifier to
                may_remove_shift_modifier() and also use it in the GUI.
    Files:      src/gui_gtk_x11.c, src/misc2.c, src/proto/misc2.pro, src/term.c

    Patch 8.2.1020
    Problem:    Popupwin test fails in the GUI.
    Solution:   Send GUI byte sequence for <C-S-a>.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.1021
    Problem:    Ruby interface not tested enough.
    Solution:   Add a couple more tests. (Dominique Pellé, closes #6301)
    Files:      src/testdir/test_ruby.vim

    Patch 8.2.1022
    Problem:    Various parts of code not covered by tests.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6300)
    Files:      src/testdir/test_blob.vim, src/testdir/test_cpoptions.vim,
                src/testdir/test_digraph.vim, src/testdir/test_edit.vim,
                src/testdir/test_iminsert.vim, src/testdir/test_paste.vim,
                src/testdir/test_prompt_buffer.vim,
                src/testdir/test_selectmode.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_textformat.vim,
                src/testdir/test_viminfo.vim, src/testdir/test_virtualedit.vim,
                src/testdir/test_visual.vim

    Patch 8.2.1023
    Problem:    Vim9: redefining a function uses a new index every time.
    Solution:   When redefining a function clear the contents and re-use the
                index.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/structs.h, src/eval.c, src/evalvars.c, src/vim9execute.c

    Patch 8.2.1024
    Problem:    Vim9: no error for using "let g:var = val".
    Solution:   Add an error.
    Files:      src/evalvars.c, src/globals.h, src/structs.h, src/vim9compile.c,
                src/scriptfile.c, src/userfunc.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1025
    Problem:    Tabpage menu and tabline not sufficiently tested.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #6307)
    Files:      src/testdir/test_digraph.vim, src/testdir/test_tabpage.vim

    Patch 8.2.1026
    Problem:    Vim9: cannot break the line after "->".
    Solution:   Check for a continuation line after "->", "[" and ".".  Ignore
                trailing white space.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1027
    Problem:    GUI: multibyte characters do not work in a terminal.
    Solution:   Do not assume a key is one byte. (closes #6304)
    Files:      src/gui_gtk_x11.c, src/gui_x11.c

    Patch 8.2.1028
    Problem:    Vim9: no error for declaring buffer, window, etc. variable.
    Solution:   Give an error.  Unify the error messages.
    Files:      src/evalvars.c, src/globals.h, src/vim9compile.c,
                src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1029
    Problem:    Vim9: cannot chain function calls with -> at line start.
    Solution:   Peek ahead for a following line starting with "->". (closes #6306)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1030
    Problem:    Reducing size of a terminal window may cause a crash.
    Solution:   Make sure the row and column don't become negative. (closes #6273)
    Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c

    Patch 8.2.1031
    Problem:    Build failure with Perl5.32.
    Solution:   Define a few more functions. (Felix Yan, closes #6310)
    Files:      src/if_perl.xs

    Patch 8.2.1032
    Problem:    Error message for declaring a variable cannot be translated.
    Solution:   Enclose in _().  Make environment variable a separate message.
    Files:      src/globals.h, src/vim9compile.c

    Patch 8.2.1033
    Problem:    Not easy to read the test time in the test output.
    Solution:   Align the times.  Make slow tests bold.
    Files:      src/testdir/runtest.vim

    Patch 8.2.1034
    Problem:    Compiler warning for uninitialized variables.
    Solution:   Add initializations. (John Marriott)
    Files:      src/vim9compile.c

    Patch 8.2.1035
    Problem:    setreg() does not always clear the register.
    Solution:   Clear the register if the dict argument is empty. (Andy Massimino,
                closes #3370)
    Files:      src/evalfunc.c, src/testdir/test_registers.vim

    Patch 8.2.1036
    Problem:    Popupwin test fails sometimes.
    Solution:   Use WaitForAssert() instead of a sleep.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.1037
    Problem:    Vim9: crash when using line continuation inside :def.
    Solution:   Check for no more lines available.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1038
    Problem:    Popupwin test fails.
    Solution:   Fix WaitForAssert() argument.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.1039
    Problem:    Cannot put NUL byte on clipboard.
    Solution:   Use the text length. (Christian Brabandt, closes #6312,
                closes #6149)
    Files:      src/winclip.c, src/testdir/test_registers.vim

    Patch 8.2.1040
    Problem:    Not enough testing for movement commands.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6313)
    Files:      src/testdir/test_cursor_func.vim, src/testdir/test_functions.vim,
                src/testdir/test_gf.vim, src/testdir/test_normal.vim,
                src/testdir/test_options.vim, src/testdir/test_quickfix.vim

    Patch 8.2.1041
    Problem:    Test summary is missing executed count.
    Solution:   Adjust pattern used for counting.
    Files:      src/testdir/summarize.vim

    Patch 8.2.1042
    Problem:    Vim9: cannot put an operator on the next line.
    Solution:   Require a colon before a range to see if that causes problems.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/ex_docmd.c,
                src/globals.h, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1043
    Problem:    %a item in 'statusline' not tested.
    Solution:   Add a test. (Dominique Pellé, closes #6318)
    Files:      src/testdir/test_statusline.vim

    Patch 8.2.1044
    Problem:    Not all systemd file types are recognized.
    Solution:   Match several more files. (Guido Cella, closes #6319)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1045
    Problem:    Vim9: line break before operator does not work.
    Solution:   Peek the next line for an operator.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1046
    Problem:    Insufficient tests for src/buffer.c.
    Solution:   Add more tests.  Move comments related tests to a separate file.
                (Yegappan Lakshmanan, closes #6325)
    Files:      src/testdir/Make_all.mak, src/testdir/test_buffer.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_comments.vim,
                src/testdir/test_normal.vim, src/testdir/test_textformat.vim

    Patch 8.2.1047
    Problem:    Vim9: script cannot use line continuation like in a :def function.
    Solution:   Pass the getline function pointer to the eval() functions.  Use it
                for addition and multiplication operators.
    Files:      src/vim.h, src/structs.h, src/globals.h, src/ex_eval.c,
                src/eval.c, src/proto/eval.pro, src/dict.c, src/evalfunc.c,
                src/evalvars.c, src/list.c, src/userfunc.c, src/scriptfile.c,
                src/proto/scriptfile.pro, src/testdir/test_vim9_expr.vim

    Patch 8.2.1048 (after 8.2.1047)
    Problem:    Build failure without the eval feature.
    Solution:   Add dummy typedef.
    Files:      src/structs.h

    Patch 8.2.1049 (after 8.2.1047)
    Problem:    Vim9: leaking memory when using continuation line.
    Solution:   Keep a pointer to the continuation line in evalarg_T.  Centralize
                checking for a next command.
    Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/beval.c,
                src/buffer.c, src/clientserver.c, src/evalvars.c, src/ex_docmd.c,
                src/ex_eval.c, src/filepath.c, src/findfile.c, src/fold.c,
                src/globals.h, src/if_ole.cpp, src/if_perl.xs, src/if_tcl.c,
                src/map.c, src/quickfix.c, src/regexp.c, src/register.c,
                src/screen.c, src/userfunc.c

    Patch 8.2.1050 (after 8.2.1049)
    Problem:    Missing change in struct.
    Solution:   Add missing change.
    Files:      src/ex_cmds.h

    Patch 8.2.1051
    Problem:    Crash when changing a list while using reduce() on it.
    Solution:   Lock the list. (closes #6330)
    Files:      src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.1052
    Problem:    Build failure with older compilers.
    Solution:   Move declaration to start of block.
    Files:      src/eval.c

    Patch 8.2.1053
    Problem:    Insufficient testing for 'statusline' and 'tabline'.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6333)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_statusline.vim,
                src/testdir/test_tabline.vim

    Patch 8.2.1054
    Problem:    Not so easy to pass a lua function to Vim.
    Solution:   Convert a Lua function and closure to a Vim funcref. (Prabir
                Shrestha, closes #6246)
    Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/proto/userfunc.pro,
                src/structs.h, src/testdir/test_lua.vim, src/userfunc.c

    Patch 8.2.1055
    Problem:    No filetype set for pacman config files.
    Solution:   Recognize pacman.conf and *.hook. (Guido Cella, closes #6335)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1056
    Problem:    Wrong display when mixing match conceal and syntax conceal.
    Solution:   Adjust how conceal flags are used. (closes #6327, closes #6303)
    Files:      src/drawline.c, src/highlight.c,
                src/testdir/test_matchadd_conceal.vim

    Patch 8.2.1057 (after 8.2.1054)
    Problem:    Cannot build with dynamic Lua.
    Solution:   Add dll variables.
    Files:      src/if_lua.c

    Patch 8.2.1058
    Problem:    Multiline conceal causes display errors.
    Solution:   Do not allow conceal cross over EOL. (closes #6326, closes #4854,
                closes #6302)
    Files:      src/drawline.c, src/testdir/test_conceal.vim,
                src/testdir/test_diffmode.vim

    Patch 8.2.1059
    Problem:    Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan)
    Solution:   Do not allow the autocommand window to be closed.
    Files:      src/ex_docmd.c, src/window.c, src/globals.h,
                src/testdir/test_autocmd.vim

    Patch 8.2.1060
    Problem:    Not all elinks files are recognized.
    Solution:   Just check for "elinks.conf". (Guido Cella, closes #6337)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1061
    Problem:    Insufficient testing for src/window.c.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6345)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_gf.vim,
                src/testdir/test_options.vim, src/testdir/test_popupwin.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim,
                src/window.c

    Patch 8.2.1062
    Problem:    Vim9: no line break allowed inside "cond ? val1 : val2".
    Solution:   Check for operator after line break.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1063
    Problem:    Vim9: no line break allowed before || or &&.
    Solution:   Check for operator after line break.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1064
    Problem:    Vim9: no line break allowed before comparators.
    Solution:   Check for comparator after line break.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1065
    Problem:    Vim9: no line break allowed inside a list.
    Solution:   Handle line break inside a list in Vim9 script.
    Files:      src/eval.c, src/proto/eval.pro, src/list.c, src/proto/list.pro,
                src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_arglist.vim

    Patch 8.2.1066
    Problem:    Lua arrays are zero based.
    Solution:   Make Lua arrays one based. (Prabir Shrestha, closes #6347)
                Note: this is not backwards compatible.
    Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.1067
    Problem:    Expression "!expr->func()" does not work.
    Solution:   Apply plus and minus earlier. (closes #6348)
    Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
                src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.1068
    Problem:    Vim9: no line break allowed inside a dict.
    Solution:   Handle line break inside a dict in Vim9 script.
    Files:      src/eval.c, src/dict.c, src/proto/dict.pro,
                src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1069
    Problem:    Vim9: fail to check for white space in list.
    Solution:   Add check for white space.
    Files:      src/list.c

    Patch 8.2.1070
    Problem:    Vim9: leaking memory when lacking white space in dict.
    Solution:   Clear the typval.
    Files:      src/dict.c

    Patch 8.2.1071
    Problem:    Vim9: no line break allowed inside a lambda.
    Solution:   Handle line break inside a lambda in Vim9 script.
    Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
                src/proto/userfunc.pro, src/popupwin.c, src/vim9compile.c,
                src/ex_eval.c, src/globals.h, src/structs.h,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1072
    Problem:    Missing libvterm test.
    Solution:   Sync with libvterm revision 768.
    Files:      src/libvterm/src/state.c, src/libvterm/t/63screen_resize.test

    Patch 8.2.1073
    Problem:    Vim9: no line break allowed in () expression.
    Solution:   Skip a line break.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1074
    Problem:    Vim9: no line break allowed after some operators.
    Solution:   Skip a line break after the operator.  Add
                eval_may_get_next_line() to simplify checking for a line break.
    Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c,
                src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1075
    Problem:    Vim9: no line break allowed in :echo expression.
    Solution:   Skip linebreak.
    Files:      src/eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1076
    Problem:    Vim9: no line break allowed in :if expression.
    Solution:   Skip linebreak.
    Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.1077
    Problem:    No enough test coverage for highlighting.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6351)
    Files:      runtime/doc/syntax.txt, src/testdir/test_cmdline.vim,
                src/testdir/test_highlight.vim, src/testdir/test_match.vim

    Patch 8.2.1078
    Problem:    Highlight and match functionality together in one file.
    Solution:   Move match functionality to a separate file. (Yegappan Lakshmanan,
                closes #6352)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/highlight.c, src/match.c, src/proto.h,
                src/proto/highlight.pro, src/proto/match.pro

    Patch 8.2.1079
    Problem:    Vim9: no line break allowed in a while loop.
    Solution:   Update stored loop lines when finding line breaks.
    Files:      src/structs.h, src/globals.h, src/eval.c, src/evalvars.c,
                src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.1080
    Problem:    Vim9: no line break allowed in a for loop.
    Solution:   Skip line breaks in for command.
    Files:      src/eval.c, src/ex_eval.c, src/proto/eval.pro, src/userfunc.c,
                src/structs.h, src/globals.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1081
    Problem:    Lua: cannot use table.insert() and table.remove().
    Solution:   Add the list functions. (Prabir Shrestha, closes #6353)
    Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.1082
    Problem:    Coverity complains about ignoring dict_add() return value.
    Solution:   Add (void).
    Files:      src/evalfunc.c

    Patch 8.2.1083
    Problem:    Crash when using reduce() on a NULL list.
    Solution:   Only access the list when not NULL.
    Files:      src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.1084
    Problem:    Lua: registering function has useless code.
    Solution:   Remove clearing grow arrays.
    Files:      src/userfunc.c

    Patch 8.2.1085
    Problem:    Coverity complains about ignoring dict_add() return value.
    Solution:   Add (void).
    Files:      src/register.c

    Patch 8.2.1086
    Problem:    Possibly using freed memory when text properties used when
                changing indent of a line.
    Solution:   Compute the offset before calling ml_replace().
    Files:      src/indent.c

    Patch 8.2.1087
    Problem:    Possible memory leak when file expansion fails.
    Solution:   Clear the grow array when returning FAIL.  Use an error message
                instead of an empty string.
    Files:      src/filepath.c

    Patch 8.2.1088
    Problem:    A very long translation might cause a buffer overflow.
    Solution:   Truncate the message if needed.
    Files:      src/fileio.c

    Patch 8.2.1089
    Problem:    Coverity warns for pointer computation.
    Solution:   Avoid computing a pointer to invalid memory.
    Files:      src/spellfile.c

    Patch 8.2.1090
    Problem:    May use NULL pointer when skipping over name.
    Solution:   Always set ll_name_end.
    Files:      src/eval.c

    Patch 8.2.1091
    Problem:    No check if opening a pty works.
    Solution:   Check for invalid file descriptor.
    Files:      src/os_unix.c

    Patch 8.2.1092
    Problem:    Not checking if saving for undo succeeds.
    Solution:   Bail out if u_savesub() returns FAIL.
    Files:      src/textprop.c

    Patch 8.2.1093
    Problem:    Python: double free when adding item to dict fails.
    Solution:   Remove vim_free() call.
    Files:      src/if_py_both.h

    Patch 8.2.1094
    Problem:    Dead code in libvterm.
    Solution:   Remove condition that is always true.
    Files:      src/libvterm/src/pen.c

    Patch 8.2.1095
    Problem:    May use pointer after freeing it when text properties are used.
    Solution:   Update redo buffer before calling ml_replace().
    Files:      src/spellsuggest.c

    Patch 8.2.1096
    Problem:    Vim9: return type of getqflist() is wrong.
    Solution:   Let the return type depend on the arguments.  Also for
                getloclist(). (closes #6357)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1097
    Problem:    Highlight code not sufficiently tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6359)
    Files:      src/testdir/test_filter_cmd.vim, src/testdir/test_highlight.vim

    Patch 8.2.1098
    Problem:    Vim9: cannot use line break in :throw argument.
    Solution:   Check for line break.
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1099
    Problem:    Vim9: cannot use line break in :cexpr argument.
    Solution:   Check for line break.
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1100
    Problem:    Vim9: cannot use line break in :execute, :echomsg and :echoerr
                argument.
    Solution:   Check for line break.
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1101
    Problem:    No error when using wrong arguments for setqflist() or
                setloclist().
    Solution:   Check for the error.
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1102
    Problem:    Coverity gets confused by an unnecessary NULL check.
    Solution:   Remove the check for NULL.
    Files:      src/quickfix.c

    Patch 8.2.1103
    Problem:    Coverity reports an unnecessary NULL check.
    Solution:   Remove the check for NULL.
    Files:      src/eval.c

    Patch 8.2.1104
    Problem:    Coverity warns for possible NULL pointer use.
    Solution:   Check "pbyts" is not NULL.
    Files:      src/spellsuggest.c

    Patch 8.2.1105
    Problem:    Insufficient test coverage for Lua.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #6368)  Fix uncovered
                memory leak.  Avoid unnecessary copy/free.
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.1106
    Problem:    Crash when trying to use s: variable in typed command.
    Solution:   Don't use the script index when not set. (Ken Takata,
                closes #6366)
    Files:      src/vim9compile.c, src/testdir/test_vimscript.vim

    Patch 8.2.1107
    Problem:    'imactivatefunc' and 'imstatusfunc' are not used in the GUI.
    Solution:   Adjust the #ifdefs. (closes #6367)
    Files:      runtime/doc/options.txt, src/gui_xim.c,
                src/testdir/test_iminsert.vim

    Patch 8.2.1108
    Problem:    Mouse left-right scroll is not supported in terminal window.
    Solution:   Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363)
    Files:      src/libvterm/src/mouse.c, src/mouse.c, src/terminal.c,
                src/testdir/mouse.vim, src/testdir/test_termcodes.vim

    Patch 8.2.1109 (after 8.2.1106)
    Problem:    Still crashing when using s:variable.
    Solution:   Remove assignment. (Ken Takata)
    Files:      src/vim9compile.c

    Patch 8.2.1110
    Problem:    Vim9: line continuation does not work in function arguments.
    Solution:   Pass "evalarg" to get_func_tv().  Fix seeing double quoted string
                as comment.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/ex_eval.c,
                src/list.c, src/dict.c, src/proto/eval.pro,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.1111
    Problem:    Inconsistent naming of get_list_tv() and eval_dict().
    Solution:   Rename get_list_tv() to eval_list().  Similarly for eval_number(),
                eval_string(), eval_lit_string() and a few others.
    Files:      src/eval.c, src/list.c, src/proto/list.pro, src/vim9compile.c,
                src/typval.c, src/proto/typval.pro, src/vim9script.c,
                src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro,
                src/vim9execute.c

    Patch 8.2.1112
    Problem:    Vim9: no line continuation allowed in method call.
    Solution:   Handle line continuation in expression before method call.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1113
    Problem:    No test for verbose output of :call.
    Solution:   Add a test.
    Files:      src/testdir/test_user_func.vim

    Patch 8.2.1114
    Problem:    Terminal test sometimes times out.
    Solution:   Split the test in two parts.
    Files:      src/testdir/Makefile, src/testdir/Make_all.mak,
                src/testdir/term_util.vim, src/testdir/test_terminal.vim,
                src/testdir/test_terminal2.vim

    Patch 8.2.1115
    Problem:    Iminsert test fails when compiled with VIMDLL.
    Solution:   Change condition. (Ken Takata, closes #6376)
    Files:      src/testdir/test_iminsert.vim

    Patch 8.2.1116
    Problem:    Vim9: parsing command checks for list twice.
    Solution:   Adjust how a command is parsed.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1117
    Problem:    Coverity warns for using uninitialized field.
    Solution:   Initialize v_lock.
    Files:      src/if_lua.c

    Patch 8.2.1118
    Problem:    Condition can never be true, dead code.
    Solution:   Remove the dead code.
    Files:      src/move.c

    Patch 8.2.1119
    Problem:    Configure fails with Xcode 12 beta.
    Solution:   use "return" instead of "exit()". (Nico Weber, closes #6381)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.1120
    Problem:    Python code not tested properly.
    Solution:   Add more tests and convert old-style test into new-style test.
                (Yegappan Lakshmanan, closes #6370)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test86.in, src/testdir/test86.ok,
                src/testdir/test_python2.vim

    Patch 8.2.1121
    Problem:    Command completion not working after ++arg.
    Solution:   Move skipping up. (Christian Brabandt, closes #6382)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.1122
    Problem:    Vim9: line continuation in dict member not recognized.
    Solution:   Check for line continuation.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1123
    Problem:    Python 3 test is old style.
    Solution:   Turn into new style test. (Yegappan Lakshmanan, closes #6385)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test87.in, src/testdir/test87.ok,
                src/testdir/test_python2.vim, src/testdir/test_python3.vim

    Patch 8.2.1124
    Problem:    Vim9: no line break allowed in :import command.
    Solution:   Skip over line breaks.
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1125
    Problem:    Vim9: double quote can be a string or a comment.
    Solution:   Only support comments starting with # to avoid confusion.
    Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c,
                src/vim9script.c

    Patch 8.2.1126
    Problem:    Vim9: using :copen causes an error.
    Solution:   Add flag LET_NO_COMMAND in set_var().
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1127
    Problem:    Vim9: getting a dict member may not work.
    Solution:   Clear the dict only after copying the item. (closes #6390)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1128
    Problem:    The write message mentions characters, but it's actually bytes.
    Solution:   Change "C" to "B" and "characters" to "bytes".
    Files:      runtime/doc/options.txt, src/fileio.c,
                src/testdir/test_cscope.vim, src/testdir/test_netbeans.vim,
                src/testdir/dumps/Test_diff_syntax_1.dump,
                src/testdir/dumps/Test_long_file_name_1.dump,
                src/testdir/dumps/Test_display_unprintable_01.dump,
                src/testdir/dumps/Test_tselect_1.dump

    Patch 8.2.1129
    Problem:    Vim9: bar not recognized after not compiled command.
    Solution:   Check for bar for commands where this is possible. (closes #6391)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1130
    Problem:    Vim9: bar not recognized after function call
    Solution:   Skip whitespace. (closes #6391)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1131
    Problem:    Vim9: error message for returning a value in a function that does
                not return anything is not clear.
    Solution:   Add a specific message.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1132
    Problem:    Vim9: return type of repeat() is not specific enough.
    Solution:   Return the type of the first argument. (closes #6395)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1133
    Problem:    Vim9: return type of add() is not specific enough.
    Solution:   Return the type of the first argument. (closes #6395)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1134
    Problem:    Vim9: getting a list member may not work.
    Solution:   Clear the list only after copying the item. (closes #6393)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1135
    Problem:    Vim9: getting a dict member may not work.
    Solution:   Clear the dict only after copying the item.
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1136
    Problem:    Vim9: return type of argv() is always any.
    Solution:   Use list<string> if there is no argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1137
    Problem:    Vim9: modifiers not cleared after compiling function.
    Solution:   Clear command modifiers. (closes #6396)
    Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/testdir/test_vim9_func.vim,
                src/testdir/dumps/Test_vim9_silent_echo.dump

    Patch 8.2.1138
    Problem:    Vim9: return type of copy() and deepcopy() is any.
    Solution:   Use type of the argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1139 (after 8.2.1137)
    Problem:    Vim9: test for silent echo fails in some environments.
    Solution:   Use :function instead of :def.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1140
    Problem:    Vim9: return type of extend() is any.
    Solution:   Use type of the argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1141
    Problem:    Vim9: return type of filter() is any.
    Solution:   Use type of the argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1142
    Problem:    Vim9: return type of insert() is any.
    Solution:   Use type of the first argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1143
    Problem:    Vim9: return type of remove() is any.
    Solution:   Use the member type of the first argument, if known.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1144
    Problem:    Vim9: return type of reverse() is any.
    Solution:   Use the type of the first argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1145
    Problem:    Vim9: "for" only accepts a list at compile time.
    Solution:   Also accept a list at runtime.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1146
    Problem:    Not enough testing for Python.
    Solution:   Add more tests.  Fix uncovered problems. (Yegappan Lakshmanan,
                closes #6392)
    Files:      src/if_py_both.h, src/if_python3.c, src/testdir/shared.vim,
                src/testdir/test_python2.vim, src/testdir/test_python3.vim

    Patch 8.2.1147
    Problem:    :confirm may happen in cooked mode. (Jason Franklin)
    Solution:   Switch to raw mode before prompting. (Brandon Pfeifer)
    Files:      src/message.c, src/testdir/test_excmd.vim

    Patch 8.2.1148
    Problem:    Warning for using int instead of size_t.
    Solution:   Change "len" argument to size_t. (Mike Williams)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9script.c

    Patch 8.2.1149
    Problem:    Vim9: :eval command not handled properly.
    Solution:   Compile the :eval command. (closes #6408)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1150
    Problem:    ml_get error when using Python. (Yegappan Lakshmanan)
    Solution:   Check the line number is not out of range.  Call "Check" with
                "fromObj" instead of "from".
    Files:      src/if_py_both.h, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim

    Patch 8.2.1151
    Problem:    Insufficient test coverage for Python.
    Solution:   Add more test cases. (Yegappan Lakshmanan, closes #6415)
    Files:      src/testdir/test_python2.vim, src/testdir/test_python3.vim

    Patch 8.2.1152
    Problem:    Vim9: function reference is missing script prefix.
    Solution:   Use the actual function name instead of the name searched for in
                the script context. (closes #6412)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1153
    Problem:    Vim9: script test fails on some systems.
    Solution:   Return proper value from Compare().
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1154
    Problem:    Vim9: crash when using imported function.
    Solution:   Check for a function type.  Set the script context when calling a
                function. (closes #6412)
    Files:      src/evalvars.c, src/scriptfile.c, src/proto/scriptfile.pro,
                src/vim9execute.c, src/structs.h, src/testdir/test_vim9_script.vim

    Patch 8.2.1155
    Problem:    Vim9: cannot handle line break inside lambda.
    Solution:   Pass the compilation context through. (closes #6407, closes #6409)
    Files:      src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro,
                src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1156
    Problem:    Vim9: No error for invalid command in compiled function.
    Solution:   Handle CMD_SIZE.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1157
    Problem:    Vim9: dict.name is not recognized as an expression.
    Solution:   Recognize ".name". (closes #6418)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1158 (after 8.2.1155)
    Problem:    Build error.
    Solution:   Add missing change to globals.
    Files:      src/globals.h

    Patch 8.2.1159
    Problem:    Vim9: no error for missing space after a comma.
    Solution:   Check for white space.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1160
    Problem:    Vim9: memory leak in allocated types.
    Solution:   Free the type pointers.
    Files:      src/vim9script.c, src/userfunc.c, src/vim9compile.c,
                src/proto/vim9compile.pro

    Patch 8.2.1161
    Problem:    Vim9: using freed memory.
    Solution:   Put pointer back in evalarg instead of freeing it.
    Files:      src/userfunc.c, src/vim9compile.c, src/eval.c, src/proto/eval.pro,
                src/structs.h

    Patch 8.2.1162
    Problem:    Crash when using a lambda.
    Solution:   Check for evalarg to be NULL.
    Files:      src/userfunc.c

    Patch 8.2.1163 (after 8.2.1161)
    Problem:    Build error.
    Solution:   Add missing change to globals.
    Files:      src/globals.h

    Patch 8.2.1164
    Problem:    Text cleared by checking terminal properties not redrawn. (Alexey
                Radkov)
    Solution:   Mark the screen characters as invalid. (closes #6422)
    Files:      src/screen.c, src/proto/screen.pro, src/term.c

    Patch 8.2.1165
    Problem:    Insufficient testing for the Tcl interface.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #6423)
    Files:      src/testdir/test_tcl.vim

    Patch 8.2.1166
    Problem:    Once mouse move events are enabled getchar() returns them.
    Solution:   Ignore K_MOUSEMOVE in getchar(). (closes #6424)
    Files:      runtime/doc/eval.txt, src/getchar.c

    Patch 8.2.1167
    Problem:    Vim9: builtin function method call only supports first argument.
    Solution:   Shift arguments when needed. (closes #6305, closes #6419)
    Files:      src/evalfunc.c, src/vim9compile.c, src/vim9execute.c,
                src/vim9.h, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1168
    Problem:    Wrong method argument for appendbufline().
    Solution:   Use FEARG_3.
    Files:      src/evalfunc.c

    Patch 8.2.1169
    Problem:    Write NUL past allocated space using corrupted spell file.
                (Markus Vervier)
    Solution:   Init "c" every time.
    Files:      src/spellfile.c

    Patch 8.2.1170
    Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
    Solution:   Adjust condition. (Hugo Gualandi, closes #6430)
    Files:      src/register.c, src/testdir/test_registers.vim

    Patch 8.2.1171
    Problem:    Possible crash when out of memory.
    Solution:   Check for NULL pointer. (Dominique Pellé, closes #6432)
    Files:      src/syntax.c

    Patch 8.2.1172
    Problem:    Error messages when doing "make clean" in the runtime/doc or
                src/tee directories.
    Solution:   Use "rm -f".
    Files:      runtime/doc/Makefile, src/tee/Makefile

    Patch 8.2.1173
    Problem:    Tee doesn't build on some systems.
    Solution:   Include header files. (Dominique Pelle, closes #6431)
    Files:      src/tee/tee.c

    Patch 8.2.1174
    Problem:    No test for the "recording @x" message.
    Solution:   Add a test. (Dominique Pellé, closes #6427)
    Files:      src/testdir/test_registers.vim

    Patch 8.2.1175
    Problem:    Vim9: Cannot split a line before ".member".
    Solution:   Check for ".member" after line break.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1176
    Problem:    Vim9: not enough type checking in Vim9 script.
    Solution:   Use same type checking as in a :def function.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro,
                src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1177
    Problem:    Terminal2 test sometimes hangs in the GUI.
    Solution:   Move some tests to other files to further locate the problem.
                Set the GUI to a fixed screen size.
    Files:      src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim,
                src/testdir/test_terminal3.vim, src/testdir/Make_all.mak,
                src/testdir/runtest.vim

    Patch 8.2.1178
    Problem:    Vim9: filter function recognized as command modifier, leading to a
                crash.
    Solution:   Clear cmdmod after freeing items.  Do not recognize a command
                modifier followed by non-white space. (closes #6434)
    Files:      src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1179
    Problem:    Test_termwinscroll() sometimes hangs in the GUI.
    Solution:   Skip the test in the GUI.
    Files:      src/testdir/test_terminal2.vim

    Patch 8.2.1180
    Problem:    Build failure in small version.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.1181
    Problem:    Json code not fully tested.
    Solution:   Add more test coverage. (Dominique Pellé, closes #6433)
    Files:      src/testdir/test_json.vim

    Patch 8.2.1182
    Problem:    Vim9: no check for whitespace after comma in lambda.
    Solution:   Give error if white space is missing.
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1183
    Problem:    assert_fails() checks the last error message.
    Solution:   Check the first error, it is more relevant.  Fix all the tests
                that rely on the old behavior.
    Files:      runtime/doc/testing.txt, src/message.c, src/globals.h,
                src/testing.c, src/testdir/test_autocmd.vim,
                src/testdir/test_buffer.vim, src/testdir/test_cd.vim,
                src/testdir/test_channel.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_cpoptions.vim,
                src/testdir/test_cscope.vim, src/if_cscope.c,
                src/testdir/test_excmd.vim, src/evalvars.c,
                src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_json.vim, src/testdir/test_let.vim,
                src/testdir/test_listdict.vim, src/testdir/test_listener.vim,
                src/testdir/test_match.vim, src/testdir/test_menu.vim,
                src/testdir/test_method.vim, src/testdir/test_normal.vim,
                src/testdir/test_popup.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_random.vim, src/testdir/test_search.vim,
                src/testdir/test_signs.vim, src/testdir/test_spell.vim,
                src/testdir/test_substitute.vim, src/testdir/test_syntax.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim,
                src/testdir/test_terminal.vim, src/testdir/test_textprop.vim,
                src/testdir/test_trycatch.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim, src/vim9compile.c,
                src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim,
                src/testdir/test_winbuf_close.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim,
                src/testdir/test_regexp_latin.vim, src/testdir/test_utf8.vim,
                src/testdir/test_global.vim, src/testdir/test_tagfunc.vim

    Patch 8.2.1184 (after 8.2.1183)
    Problem:    Some tests fail.
    Solution:   Adjust tests for different assert_fails() behavior.  Remove unused
                variable.
    Files:      src/testdir/test_assert.vim, src/testdir/test_eval_stuff.vim,
                src/evalvars.c

    Patch 8.2.1185 (after 8.2.1183)
    Problem:    Some other tests fail.
    Solution:   Adjust tests for different assert_fails() behavior.
    Files:      src/testdir/test_lua.vim, src/testdir/test_tcl.vim

    Patch 8.2.1186
    Problem:    With SGR mouse codes balloon doesn't show up after click.
    Solution:   Add the MOUSE_RELEASE bits to mouse_code.
    Files:      src/mouse.c

    Patch 8.2.1187
    Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
    Solution:   Disable Test_zz2_terminal_guioptions_bang() for now.
    Files:      src/testdir/test_terminal2.vim

    Patch 8.2.1188
    Problem:    Memory leak with invalid json input.
    Solution:   Free all keys at the end. (Dominique Pellé, closes #6443,
                closes #6442)
    Files:      src/json.c, src/testdir/test_json.vim

    Patch 8.2.1189
    Problem:    Vim9: line continuation in lambda doesn't always work.
    Solution:   Do not use a local evalarg unless there isn't one. (closes #6439)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1190
    Problem:    Vim9: checking for Vim9 syntax is spread out.
    Solution:   Use in_vim9script().
    Files:      src/vim9script.c, src/dict.c, src/eval.c, src/evalvars.c,
                src/ex_docmd.c, src/list.c, src/scriptfile.c, src/userfunc.c

    Patch 8.2.1191
    Problem:    Vim9: crash when function calls itself.
    Solution:   Add status UF_COMPILING. (closes #6441)
    Files:      src/structs.h, src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1192
    Problem:    Lua test fails with older Lua version.
    Solution:   Adjust expected error messages. (closes #6444)
    Files:      src/testdir/test_lua.vim

    Patch 8.2.1193
    Problem:    Terminal window not redrawn when dragging a popup window over it.
    Solution:   Redraw terminal window. (fixes #6438)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_term_01.dump,
                src/testdir/dumps/Test_popupwin_term_02.dump

    Patch 8.2.1194
    Problem:    Test failure because shell prompt differs.
    Solution:   Set the shell prompt.
    Files:      src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_term_01.dump,
                src/testdir/dumps/Test_popupwin_term_02.dump

    Patch 8.2.1195
    Problem:    Clientserver test fails on MS-Windows.
    Solution:   Expect a different error message.
    Files:      src/testdir/test_clientserver.vim

    Patch 8.2.1196
    Problem:    Build failure with normal features.
    Solution:   Add #ifdef.
    Files:      src/popupwin.c

    Patch 8.2.1197
    Problem:    Clientserver test still fails on MS-Windows.
    Solution:   Expect a different error message.
    Files:      src/testdir/test_clientserver.vim

    Patch 8.2.1198
    Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
    Solution:   Move test function to terminal3 to see if the problem moves too.
    Files:      src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim

    Patch 8.2.1199
    Problem:    Not all assert functions are fully tested.
    Solution:   Test more assert functions.
    Files:      src/testing.c, src/testdir/test_assert.vim

    Patch 8.2.1200
    Problem:    Vim9: cannot disassemble a lambda function.
    Solution:   Recognize "<lambda>123" as a function name.
    Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1201
    Problem:    Vim9: crash when passing number as dict key.
    Solution:   Check key type to be string. (closes #6449)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1202
    Problem:    Vim9: crash when calling a closure from a builtin function.
    Solution:   Use the current execution context. (closes #6441)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1203
    Problem:    Unused assignments in expression evaluation.
    Solution:   Move declarations and assignments to inner blocks where possible.
    Files:      src/eval.c

    Patch 8.2.1204
    Problem:    Vim9: true and false not recognized in Vim9 script.
    Solution:   Recognize true and false.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1205
    Problem:    Vim9: && and || work differently when not compiled.
    Solution:   Keep the value.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1206
    Problem:    Vim9: crash in expr test when run in the GUI.
    Solution:   Temporarily comment out two test lines.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1207
    Problem:    Vim9: crash in expr test when run in the GUI.
    Solution:   Break out of loop over hashtab also when function got removed and
                added.
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1208
    Problem:    Build failure.
    Solution:   Add missing change.
    Files:      src/structs.h

    Patch 8.2.1209
    Problem:    Vim9: test failure.
    Solution:   Add missing changes to hashtab.
    Files:      src/hashtab.c

    Patch 8.2.1210
    Problem:    Using ht_used when looping through a hashtab is less reliable.
    Solution:   Use ht_changed in a few more places.
    Files:      src/userfunc.c, src/if_py_both.h

    Patch 8.2.1211 (after 8.2.1118)
    Problem:    Removed more than dead code.
    Solution:   Put back the decrement.
    Files:      src/move.c, src/testdir/test_diffmode.vim

    Patch 8.2.1212
    Problem:    Cannot build with Lua 5.4.
    Solution:   Use luaL_typeerror instead defining it. (closes #6454)
    Files:      src/if_lua.c

    Patch 8.2.1213
    Problem:    Mouse codes not tested sufficiently.
    Solution:   Add more tests for mouse codes. (closes #6436)
    Files:      src/testdir/test_termcodes.vim

    Patch 8.2.1214
    Problem:    MS-Windows: default _vimrc not correct in silent install mode.
    Solution:   Add the LoadDefaultVimrc macro. (Ken Takata, closes #6451)
    Files:      nsis/gvim.nsi

    Patch 8.2.1215
    Problem:    Atari MiNT support is outdated.
    Solution:   Nobody responded this code is still useful, so let's delete it.
    Files:      Filelist, src/os_mint.h, src/vim.h, src/Make_mint.mak,
                src/digraph.c, src/fileio.c, src/memfile.c, src/os_unix.c,
                src/term.c, READMEdir/README_extra.txt, runtime/doc/os_mint.txt,
                src/INSTALL

    Patch 8.2.1216
    Problem:    Startup test fails.
    Solution:   Adjust expected values for deleted lines.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.1217
    Problem:    Startup test depends on random source file.
    Solution:   Write a test file to find quickfix errors in.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.1218
    Problem:    Vim9: cannot use 'text'->func().
    Solution:   Recognize string at start of command.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1219
    Problem:    Symlink not followed if dirname ends in //.
    Solution:   Resolve symlink earlier. (Tomáš Janoušek, closes #6454)
    Files:      src/memline.c, src/testdir/test_swap.vim

    Patch 8.2.1220
    Problem:    memory access error when dragging a popup window over a buffer
                with folding.
    Solution:   Avoid going over the end of the cache. (closes #6438)
    Files:      src/mouse.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_term_01.dump,
                src/testdir/dumps/Test_popupwin_term_02.dump,
                src/testdir/dumps/Test_popupwin_term_03.dump,
                src/testdir/dumps/Test_popupwin_term_04.dump

    Patch 8.2.1221
    Problem:    Memory leak when updating popup window.
    Solution:   Clear search highlighting.
    Files:      src/popupwin.c

    Patch 8.2.1222
    Problem:    When using valgrind a Vim command started by a test uses the same
                log file name which gets overwritten.
    Solution:   Fix regexp to rename the log file.
    Files:      src/testdir/shared.vim

    Patch 8.2.1223
    Problem:    Vim9: invalid type error for function default value.
    Solution:   Use right argument index. (closes #6458)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1224
    Problem:    Vim9: arguments from partial are not used.
    Solution:   Put the partial arguments on the stack. (closes #6460)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1225
    Problem:    Linker errors when building with dynamic Python 3.9.
    Solution:   Add #defined items. (closes #6461)
    Files:      src/if_python3.c

    Patch 8.2.1226
    Problem:    MS-Windows: windows positioning wrong when the taskbar is placed
                at the top or left of the screen.
    Solution:   Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira,
                Ken Takata, closes #6455)
    Files:      src/gui_w32.c

    Patch 8.2.1227
    Problem:    Vim9: allowing both quoted and # comments is confusing.
    Solution:   Only support # comments in Vim9 script.
    Files:      runtime/doc/vim9.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/vim9compile.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1228
    Problem:    Scrollbars not flush against the window edges when maximised.
    Solution:   Add padding. (Ken Takata, closes #5602, closes #6466)
    Files:      src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_haiku.cc,
                src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c,
                src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
                src/proto/gui_haiku.pro, src/proto/gui_mac.pro,
                src/proto/gui_motif.pro, src/proto/gui_photon.pro,
                src/proto/gui_w32.pro

    Patch 8.2.1229
    Problem:    Build error without the eval feature.
    Solution:   Declare starts_with_colon. Make function local.
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro

    Patch 8.2.1230
    Problem:    Vim9: list index error not caught by try/catch.
    Solution:   Do not bail out if an error is inside try/catch. (closes #6462)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1231
    Problem:    MS-Windows: GUI code can be cleaned up.
    Solution:   Do a bit of cleaning up. (Ken Takata, closes #6465)
    Files:      src/gui_w32.c, src/proto/gui_w32.pro

    Patch 8.2.1232
    Problem:    MS-Windows GUI: Snap cancelled by split command.
    Solution:   Do not cancel Snap when splitting a window. (Ken Takata,
                closes #6467)
    Files:      src/gui_w32.c

    Patch 8.2.1233
    Problem:    Vim9: various errors not caught by try/catch.
    Solution:   Do not bail out if an error is inside try/catch.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1234
    Problem:    Lua build problem with old compiler.
    Solution:   Move declarations to start of the block. (Taro Muraoka,
                closes #6477)
    Files:      src/if_lua.c

    Patch 8.2.1235
    Problem:    Not all mouse codes covered by tests.
    Solution:   Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472)
    Files:      src/testdir/mouse.vim, src/testdir/test_termcodes.vim

    Patch 8.2.1236
    Problem:    Vim9: a few errors not caught by try/catch.
    Solution:   Do not bail out if an error is inside try/catch.  Fix that a not
                matching catch doesn't jump to :endtry.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1237
    Problem:    Changing 'completepopup' after opening a popup has no effect. (Jay
                Sitter)
    Solution:   Close the popup when the options are changed. (closes #6471)
    Files:      runtime/doc/options.txt, src/popupwin.c, src/proto/popupwin.pro,
                src/optionstr.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_infopopup_8.dump

    Patch 8.2.1238
    Problem:    Vim9: a few remaining errors not caught by try/catch.
    Solution:   Do not bail out if an error is inside try/catch.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1239
    Problem:    "maxwidth" in 'completepopup' not obeyed. (Jay Sitter)
    Solution:   Add separate field for value from option. (closes #6470)
    Files:      src/structs.h, src/popupwin.c, src/popupmenu.c,
                src/testdir/dumps/Test_popupwin_infopopup_9.dump

    Patch 8.2.1240
    Problem:    GUI tests sometimes fail because of translations.
    Solution:   Reload the menus without translation. (Taro Muraoka, closes #6486)
    Files:      src/testdir/runtest.vim

    Patch 8.2.1241
    Problem:    Cannot use getbufinfo() as a method.
    Solution:   Support using getbufinfo() as a method. (closes #6458)
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_bufwintabinfo.vim

    Patch 8.2.1242
    Problem:    Vim9: no error if calling a function with wrong argument type.
    Solution:   Check types of arguments. (closes #6469)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1243
    Problem:    Vim9: cannot have a comment or empty line halfway a list at script
                level.
    Solution:   Skip more than one line if needed.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/eval.c,
                src/scriptfile.c

    Patch 8.2.1244
    Problem:    Vim9: in lambda index assumes a list.
    Solution:   Use the value type to decide about list or dict. (closes #6479)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1245
    Problem:    Build failure in tiny version.
    Solution:   Add #ifdef.
    Files:      src/scriptfile.c

    Patch 8.2.1246
    Problem:    Vim9: comment after assignment doesn't work.
    Solution:   Skip over white space. (closes #6481)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1247
    Problem:    Vim9: cannot index a character in a string.
    Solution:   Add ISN_STRINDEX instruction. (closes #6478)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1248
    Problem:    Netbeans test is flaky in the GUI.
    Solution:   Filter out geometry messages. (Taro Muraoka, closes #6487)
    Files:      src/testdir/test_netbeans.vim

    Patch 8.2.1249
    Problem:    Vim9: disassemble test fails.
    Solution:   Change INDEX to LISTINDEX.  Add test for STRINDEX.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1250
    Problem:    Vim9: cannot use the g:, b:, t: and w: namespaces.
    Solution:   Add instructions to push a dict for the namespaces. (closes #6480)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1251
    Problem:    Vim9: warning for pointer usage, test failure undetected.
    Solution:   Fix pointer indirection.  Give error when executing function
                failed for any reason.  Fix instruction names.
    Files:      src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro

    Patch 8.2.1252
    Problem:    ":marks" may show '< and '> mixed up.
    Solution:   Show the mark position as where '< and '> would jump.
    Files:      src/mark.c, src/testdir/test_marks.vim

    Patch 8.2.1253
    Problem:    CTRL-K in Insert mode gets <CursorHold> inserted. (Roland
                Puntaier)
    Solution:   Do not reset did_cursorhold, restore it. (closes #6447)
    Files:      src/normal.c

    Patch 8.2.1254
    Problem:    MS-Windows: regexp test may fail if 'iskeyword' set wrongly.
    Solution:   Override the 'iskeyword' value. (Taro Muraoka, closes #6502)
    Files:      src/testdir/test_regexp_utf8.vim

    Patch 8.2.1255
    Problem:    Cannot use a lambda with quickfix functions.
    Solution:   Add support for lambda. (Yegappan Lakshmanan, closes #6499)
    Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
                runtime/doc/quickfix.txt, src/channel.c, src/evalvars.c,
                src/optionstr.c, src/proto/evalvars.pro, src/proto/quickfix.pro,
                src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1256
    Problem:    Vim9: type wrong after getting dict item in lambda.
    Solution:   Set the type to "any" after enforcing dict type. (closes #6491)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1257
    Problem:    Vim9: list unpack doesn't work at the script level.
    Solution:   Detect unpack assignment better. (closes #6494)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1258 (after 8.2.1253)
    Problem:    CursorHold does not work well.a (Shane-XB-Qian)
    Solution:   Only restore did_cursorhold when using :normal.
    Files:      src/normal.c

    Patch 8.2.1259
    Problem:    Empty group in 'tabline' may cause using an invalid pointer.
    Solution:   Set the group start position. (closes #6505)
    Files:      src/buffer.c, src/testdir/test_tabline.vim

    Patch 8.2.1260
    Problem:    There is no good test for CursorHold.
    Solution:   Add a test.  Remove duplicated test. (Yegappan Lakshmanan,
                closes #6503)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
                src/testdir/test_normal.vim

    Patch 8.2.1261
    Problem:    Vim9: common type of function not tested.
    Solution:   Add a test.  Fix uncovered problems.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1262
    Problem:    src/ex_cmds.c file is too big.
    Solution:   Move help related code to src/help.c. (Yegappan Lakshmanan,
                closes #6506)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/cmdexpand.c, src/ex_cmds.c, src/help.c, src/proto.h,
                src/proto/ex_cmds.pro, src/proto/help.pro

    Patch 8.2.1263
    Problem:    Vim9: comparators use 'ignorecase' in Vim9 script.
    Solution:   Ignore 'ignorecase'.  Use true and false instead of 1 and 0.
                (closes #6497)
    Files:      src/eval.c, src/typval.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1264
    Problem:    Terminal getwinpos() test is a bit flaky.
    Solution:   Call getwinpos() a bit later.
    Files:      src/testdir/test_terminal3.vim

    Patch 8.2.1265
    Problem:    Crash with EXITFREE when split() fails.
    Solution:   Restore 'cpoptions'.
    Files:      src/evalfunc.c

    Patch 8.2.1266 (after 8.2.1262)
    Problem:    Makefile preference were accidentally included.
    Solution:   Revert the Makefile changes.
    Files:      src/Makefile

    Patch 8.2.1267
    Problem:    MS-Windows: tests may fail due to $PROMPT value.
    Solution:   Set $PROMPT for testing. (Taro Muraoka, closes #6510)
    Files:      src/testdir/runtest/vim

    Patch 8.2.1268
    Problem:    Vim9: no error for using double quote comment after :func or :def.
    Solution:   Only accept double quote when not in Vim9 script and not after
                :def. (closes #6483)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1269
    Problem:    Language and locale code spread out.
    Solution:   Move relevant code to src/locale.c. (Yegappan Lakshmanan,
                closes #6509)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/ex_cmds2.c, src/locale.c, src/main.c, src/proto.h,
                src/proto/ex_cmds2.pro, src/proto/locale.pro

    Patch 8.2.1270
    Problem:    Vim9: not skipping over function type declaration with only a
                return type.
    Solution:   Skip over the return type. (issue #6507)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1271
    Problem:    Vim9: Error for Funcref function argument type.
    Solution:   Find the actual function type if possible. (issue #6507)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1272
    Problem:    Vim9: type not checked if declaration also assigns value.
    Solution:   Check the type. (issue #6507)
    Files:      src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim9script.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1273
    Problem:    MS-Windows: terminal test may leave file behind.
    Solution:   Wait a moment for process to end before deleting the file.
                (Taro Muraoka, closes #6513)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.1274
    Problem:    Vim9: no error for missing white space in assignment at script
                level.
    Solution:   Check for white space. (closes #6495)
    Files:      src/eval.c, src/evalvars.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_let.vim

    Patch 8.2.1275
    Problem:    Vim9: compiler warning for buffer size.
    Solution:   Change the offset from 10 to 15. (Dominique Pellé, closes #6518)
    Files:      src/vim9script.c

    Patch 8.2.1276
    Problem:    MS-Windows: system test may fail if more.exe is installed.
    Solution:   Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517)
    Files:      src/testdir/test_system.vim

    Patch 8.2.1277
    Problem:    Tests on Travis do not run with EXITFREE.
    Solution:   Add EXITFREE to all builds to uncover any mistakes.
    Files:      .travis.yml

    Patch 8.2.1278
    Problem:    Vim9: line break after "->" only allowed in :def function.
    Solution:   Only allow line break after "->". (closes #6492)
    Files:      src/vim9compile.c, src/globals.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.1279
    Problem:    Some tests on Travis have EXITFREE duplicated.
    Solution:   Remove EXITFREE from shadowopt.  Add "shadow" to job name.
    Files:      .travis.yml

    Patch 8.2.1280
    Problem:    Ex command error cannot contain an argument.
    Solution:   Add ex_errmsg() and translate earlier.  Use e_trailing_arg where
                possible.
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/buffer.c,
                src/ex_eval.c, src/match.c, src/testdir/test_tabpage.vim

    Patch 8.2.1281
    Problem:    The "trailing characters" error can be hard to understand.
    Solution:   Add the trailing characters to the message.
    Files:      src/cmdhist.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
                src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/json.c,
                src/menu.c, src/quickfix.c, src/sign.c, src/userfunc.c

    Patch 8.2.1282
    Problem:    Vim9: crash when using CheckScriptFailure() in
                Test_vim9script_call_fail_decl().
    Solution:   Do not decrement the def_functions len unless the function was
                newly added.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1283
    Problem:    Vim9: error for misplaced -> lacks argument.
    Solution:   Use the pointer before it was advanced.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1284
    Problem:    Vim9: skipping over type includes following white space, leading
                to an error for missing white space.
    Solution:   Do not skip over white space after the type.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1285
    Problem:    Vim9: argument types are not checked on assignment.
    Solution:   Check function argument types. (issue #6507)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1286
    Problem:    Vim9: No error when using a type on a window variable
    Solution:   Recognize the syntax and give an error. (closes #6521)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1287
    Problem:    Vim9: crash when using an imported function.
    Solution:   Add the function type to the imported entry. (closes #6522)
    Files:      src/vim9script.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1288
    Problem:    Vim9: cannot use mark in range.
    Solution:   Use the flag that a colon was seen. (closes #6528)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1289
    Problem:    Crash when using a custom completion function.
    Solution:   Initialize all of the expand_T. (closes #6532)
    Files:      src/cmdexpand.c

    Patch 8.2.1290
    Problem:    Vim9: cannot replace a global function.
    Solution:   Allow for "!" on a global function. (closes #6524)  Also fix that
                :delfunc on a :def function only made it empty.
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1291
    Problem:    Vim9: type of varargs items is not checked.
    Solution:   Check the list item types. (closes #6523)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1292
    Problem:    AIDL filetype not recognized.
    Solution:   Add filetype detection. (Dominique Pellé, closes #6533)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1293
    Problem:    Vim9: :execute mixes up () expression and function call.
    Solution:   Do not skip white space when looking for the "(". (closes #6531)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1294
    Problem:    Vim9: error when using vim9script in TextYankPost.
    Solution:   Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can
                be used when text is locked. (closes #6529)
    Files:      src/ex_cmds.h, src/ex_docmd.c

    Patch 8.2.1295
    Problem:    Tests 44 and 99 are old style.
    Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #6536)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
                src/testdir/test44.in, src/testdir/test44.ok,
                src/testdir/test99.in, src/testdir/test99.ok,
                src/testdir/test_regexp_utf8.vim

    Patch 8.2.1296
    Problem:    Some part of using 'smartcase' was not tested.
    Solution:   Add more tests. (Dominique Pellé, closes #6538)
    Files:      src/testdir/test_search.vim

    Patch 8.2.1297
    Problem:    When a test fails it's often not easy to see what the call stack
                is.
    Solution:   Add more entries from the call stack in the exception message.
    Files:      runtime/doc/cmdline.txt, src/scriptfile.c,
                src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c,
                src/ex_eval.c, src/message.c, src/testing.c,
                src/testdir/test_expand_func.vim

    Patch 8.2.1298
    Problem:    Compiler warning for unused argument in small version.
    Solution:   Add UNUSED.
    Files:      src/scriptfile.c

    Patch 8.2.1299
    Problem:    Compiler warning for using size_t for int and void pointer.
    Solution:   Add type casts.
    Files:      src/scriptfile.c

    Patch 8.2.1300
    Problem:    Vim9: optional argument type not parsed properly.
    Solution:   Skip over the "?". (issue #6507)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/evalvars.c,
                src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1301
    Problem:    Vim9: varargs argument type not parsed properly.
    Solution:   Skip over the "...". (issue #6507)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1302
    Problem:    Vim9: varargs arg after optional arg does not work
    Solution:   Check for the "..." first. (issue #6507)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1303
    Problem:    Calling popup_setoptions() resets 'signcolumn'.
    Solution:   Only set 'signcolumn' when creating the popup. (closes #6542)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.1304
    Problem:    Debug backtrace isn't tested much.
    Solution:   Add more specific tests. (Ben Jackson, closes #6540)
    Files:      src/testdir/runtest.vim, src/testdir/test_debugger.vim

    Patch 8.2.1305
    Problem:    Some tests are still old style.
    Solution:   Convert tests 52 and 70 to new style. (Yegappan Lakshmanan,
                closes #6544)  Fix error in FinishTesting().
    Files:      src/testdir/runtest.vim, src/Makefile, src/testdir/Make_all.mak,
                src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms,
                src/testdir/test52.in, src/testdir/test52.ok,
                src/testdir/test70.in, src/testdir/test70.ok,
                src/testdir/test_mzscheme.vim, src/testdir/test_writefile.vim

    Patch 8.2.1306
    Problem:    Checking for first character of dict key is inconsistent.
    Solution:   Add eval_isdictc(). (closes #6546)
    Files:      src/eval.c, src/proto/eval.pro, src/vim9compile.c,
                src/testdir/test_listdict.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_let.vim

    Patch 8.2.1307
    Problem:    popup window width does not include number, fold of sign column
                width.
    Solution:   Take number, fold and sign column with into account.
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_sign_2.dump

    Patch 8.2.1308
    Problem:    Vim9: accidentally using "x" causes Vim to exit.
    Solution:   Disallow using ":x" or "xit" in Vim9 script. (closes #6399)
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c,
                src/proto/vim9script.pro, src/ex_docmd.c, src/ex_cmds.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1309
    Problem:    Build failure with tiny version.
    Solution:   Add #ifdef.
    Files:      src/ex_cmds.c, src/ex_docmd.c

    Patch 8.2.1310
    Problem:    Configure with Xcode 12 fails to check for tgetent.
    Solution:   Declare tgetent(). (Ozaki Kiichi, closes #6558)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.1311
    Problem:    Test failures with legacy Vim script.
    Solution:   Actually check for Vim9 script.
    Files:      src/vim9script.c

    Patch 8.2.1312
    Problem:    MS-Windows: terminal test may fail if dir.exe exists.
    Solution:   Use dir.com. (Ken Takata, closes #6557)
    Files:      src/testdir/test_terminal3.vim

    Patch 8.2.1313
    Problem:    Vim9 script: cannot assign to environment variable.
    Solution:   Recognize environment variable assignment. (closes #6548)
                Also options and registers.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1314
    Problem:    Vim9: rule for comment after :function is confusing.
    Solution:   Allow double quoted comment after :function in vim9script.
                (closes #6556)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1315
    Problem:    MS-Windows: test log contains escape sequences.
    Solution:   Do not use t_md and t_me but ANSI escape sequences. (Ken Takata,
                closes #6559)
    Files:      src/testdir/runtest.vim

    Patch 8.2.1316
    Problem:    Test 42 is still old style.
    Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #6561)
    Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak,
                src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
                src/testdir/test42.in, src/testdir/test42.ok,
                src/testdir/test_writefile.vim

    Patch 8.2.1317
    Problem:    MS-Windows tests on AppVeyor are slow.
    Solution:   Use GitHub Actions. (Ken Takata, closes #6569)
    Files:      Filelist, .github/workflows/ci-windows.yaml, appveyor.yml,
                ci/appveyor.bat

    Patch 8.2.1318
    Problem:    No status badge for Github CI.
    Solution:   Add a badge.
    Files:      README.md

    Patch 8.2.1319
    Problem:    Status badge for Github CI has wrong link.
    Solution:   Rename and use the right link
    Files:      README.md, .github/workflows/ci-windows.yaml

    Patch 8.2.1320
    Problem:    Vim9: cannot declare some single letter variables.
    Solution:   Do not recognize a colon for a namespace for single letter
                variables. (closes #6547)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1321
    Problem:    GitHub CI also runs on tag push.
    Solution:   Skip CI on push. (Ken Takata, closes #6571)
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1322
    Problem:    Vim9: method on double quoted string doesn't work.
    Solution:   Recognize double quoted string. (closes #6562)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1323
    Problem:    Vim9: invalid operators only rejected in :def function.
    Solution:   Also reject them at script level. (closes #6564)
    Files:      src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1324
    Problem:    Vim9: line break after "=" does not work.
    Solution:   Also allow for NUL after "=". (closes #6549)
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1325
    Problem:    Vim9: using Vim9 script for autoload not tested.
    Solution:   Add a test.  Update help.
    Files:      runtime/doc/vim9.txt, src/testdir/test_autoload.vim,
                src/testdir/sautest/autoload/auto9.vim

    Patch 8.2.1326
    Problem:    Vim9: skipping over white space after list.
    Solution:   Do not skip white space, a following [] would be misinterpreted.
                (closes #6552)  Fix a few side effects.
    Files:      src/list.c, src/dict.c, src/eval.c, src/userfunc.c,
                src/testdir/test_functions.vim, src/testdir/test_gn.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_textprop.vim, src/testdir/test_textobjects.vim

    Patch 8.2.1327
    Problem:    Mac: configure can't find Tcl libraries.
    Solution:   Adjust configure check. (closes #6575)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.1328
    Problem:    No space allowed before comma in list.
    Solution:   Legacy Vim script allows it. (closes #6577)
    Files:      src/dict.c, src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.1329
    Problem:    Vim9: cannot define global function inside :def function.
    Solution:   Assign to global variable instead of local. (closes #6584)
    Files:      src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro,
                src/vim9.h, src/vim9execute.c, src/structs.h,
                src/misc2.c, src/proto/misc2.pro, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1330
    Problem:    Github workflow takes longer than needed.
    Solution:   Do two test runs in parallel instead of sequentially. (Ken Takata,
                closes #6579)
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1331
    Problem:    Vim9: :echo with two lists doesn't work.
    Solution:   Do not skip white space before []. (closes #6552)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1332
    Problem:    Vim9: memory leak when using nested global function.
    Solution:   Delete the function when deleting the instruction.  Disable test
                that still causes a leak.
    Files:      src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1333
    Problem:    Vim9: memory leak when using nested global function.
    Solution:   Swap from and to when copying the lines.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1334
    Problem:    Github workflow timeout needs tuning
    Solution:   Use a 10 minute timeout. Fail when timing out. (Ken Takata,
                closes #6590)
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1335
    Problem:    CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov)
    Solution:   Recognize "C" with CTRL modifier as CTRL-C. (issue #6565)
    Files:      src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c, src/gui_x11.c,
                src/gui_photon.c

    Patch 8.2.1336 (after 8.2.1335)
    Problem:    Build failure on non-Unix systems.
    Solution:   Add #ifdef.
    Files:      src/gui.c

    Patch 8.2.1337
    Problem:    Vim9: cannot use empty key in dict assignment.
    Solution:   Allow empty key. (closes #6591)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1338
    Problem:    Vim9: assigning to script-local variable doesn't check type.
    Solution:   Use the type. (issue #6591)
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1339
    Problem:    Vim9: assigning to global dict variable doesn't work.
    Solution:   Guess variable type based in index type. (issue #6591)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1340
    Problem:    Some tests fail on Cirrus CI and/or with FreeBSD.
    Solution:   Make 'backupskip' empty. Do not run tests as root. Check for
                directory when using viminfo. (Ozaki Kiichi, closes #6596)
    Files:      .cirrus.yml, src/testdir/test_backup.vim,
                src/testdir/test_edit.vim, src/testdir/test_viminfo.vim,
                src/testdir/test_writefile.vim, src/viminfo.c

    Patch 8.2.1341
    Problem:    Build failures.
    Solution:   Add missing error message.
    Files:      src/globals.h

    Patch 8.2.1342
    Problem:    Vim9: accidentally using "x" gives a confusing error.
    Solution:   Disallow using ":t" in Vim9 script. (issue #6399)
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9script.c,
                src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1343
    Problem:    Vim9: cannot find global function when using g: when local
                function with the same name exists.
    Solution:   Find global function when using g:.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1344
    Problem:    Vim9: No test for trying to redefine global function.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1345
    Problem:    Redraw error when using visual block and scroll.
    Solution:   Add check for w_topline. (closes #6597)
    Files:      src/drawscreen.c, src/testdir/test_display.vim,
                src/testdir/dumps/Test_display_visual_block_scroll.dump

    Patch 8.2.1346
    Problem:    Small build fails.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.1347
    Problem:    Cannot easily get the script ID.
    Solution:   Support expand('<SID>').
    Files:      runtime/doc/map.txt, src/ex_docmd.c,
                src/testdir/test_expand_func.vim

    Patch 8.2.1348
    Problem:    Build failure without the eval feature.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.1349
    Problem:    Vim9: can define a function with the name of an import.
    Solution:   Disallow using an existing name. (closes #6585)
    Files:      src/userfunc.c, src/vim9compile.c, src/globals.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1350
    Problem:    Vim9: no test for error message when redefining function.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1351
    Problem:    Vim9: no proper error if using namespace for nested function.
    Solution:   Specifically check for a namespace. (closes #6582)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1352
    Problem:    Vim9: no error for shadowing a script-local function by a nested
                function.
    Solution:   Check for script-local function. (closes #6586)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1353
    Problem:    Crash when drawing double-wide character in terminal window.
                (Masato Nishihata)
    Solution:   Check getcell() returning NULL. (issue #6141)
    Files:      src/libvterm/src/screen.c, src/testdir/test_terminal.vim

    Patch 8.2.1354
    Problem:    Test 59 is old style.
    Solution:   Convert into a new style test. (Yegappan Lakshmanan, closes #6604)
    Files:      runtime/doc/eval.txt, src/Makefile, src/testdir/Make_all.mak,
                src/testdir/Make_vms.mms, src/testdir/test59.in,
                src/testdir/test59.ok, src/testdir/test_spell_utf8.vim

    Patch 8.2.1355
    Problem:    Vim9: no error using :let for options and registers.
    Solution:   Give an error. (closes #6568)
    Files:      src/evalvars.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1356
    Problem:    Vim9: cannot get the percent register.
    Solution:   Check for readable registers instead of writable. (closes #6566)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1357
    Problem:    Vim9: cannot assign to / register.
    Solution:   Adjust check for assignment. (issue #6566)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1358
    Problem:    Vim9: test fails with +dnd is not available.
    Solution:   Add condition.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1359
    Problem:    Vim9: cannot assign to / register in Vim9 script.
    Solution:   Adjust check for assignment in Vim9 script. (closes #6567)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1360
    Problem:    Stray error for white space after expression.
    Solution:   Ignore trailing white space. (closes #6608)
    Files:      src/eval.c, src/testdir/test_filter_map.vim

    Patch 8.2.1361
    Problem:    Error for white space after expression in assignment.
    Solution:   Skip over white space. (closes #6617)
    Files:      src/eval.c, src/testdir/test_expr.vim

    Patch 8.2.1362
    Problem:    Last entry of ":set term=xxx" overwritten by error message when
                'cmdheight' is two or more. (Tony Mechelynck)
    Solution:   Output extra line breaks.
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.1363
    Problem:    Test trying to run terminal when it is not supported.
    Solution:   Check if Vim can be run in a terminal.
    Files:      src/testdir/test_termcodes.vim

    Patch 8.2.1364
    Problem:    Invalid memory access when searching for raw string.
    Solution:   Check for delimiter match before following quote. (closes #6578)
    Files:      src/search.c

    Patch 8.2.1365
    Problem:    Vim9: no error for missing white space around operator.
    Solution:   Check for white space. (closes #6618)
    Files:      src/eval.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/evalvars.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1366
    Problem:    Test 49 is old style.
    Solution:   Convert several tests to new style. (Yegappan Lakshmanan,
                closes #6629)
    Files:      src/testdir/script_util.vim, src/testdir/test49.ok,
                src/testdir/test49.vim, src/testdir/test_vimscript.vim

    Patch 8.2.1367
    Problem:    Vim9: no error for missing white space around operator.
    Solution:   Check for white space around *, / and %.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1368
    Problem:    Vim9: no error for missing white space around operator.
    Solution:   Check for white space around <, !=, etc.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1369
    Problem:    MS-Windows: autocommand test sometimes fails.
    Solution:   Do not rely on the cat command.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.1370
    Problem:    MS-Windows: warning for using fstat() with stat_T.
    Solution:   use _fstat64() if available. (Naruhiko Nishino, closes #6625)
    Files:      src/macros.h

    Patch 8.2.1371
    Problem:    Vim9: no error for missing white space around operator.
    Solution:   Check for white space around && and ||.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1372
    Problem:    Vim9: no error for missing white space around operator.
    Solution:   Check for white space around ? and :.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1373
    Problem:    Vim9: no error for assigning to non-existing script var.
    Solution:   Check that in Vim9 script the variable was defined. (closes #6630)
    Files:      src/vim9compile.c, src/userfunc.c, src/structs.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1374
    Problem:    Vim9: error for assigning empty list to script variable.
    Solution:   Use t_unknown for empty list member. (closes #6595)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1375
    Problem:    Vim9: method name with digit not accepted.
    Solution:   Use eval_isnamec() instead of eval_isnamec1(). (closes #6613)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1376
    Problem:    Vim9: expression mapping causes error for using :import.
    Solution:   Add EX_LOCK_OK to :import and :export. (closes #6606)
    Files:      src/ex_cmds.h, src/testdir/test_vim9_script.vim

    Patch 8.2.1377
    Problem:    Triggering the ATTENTION prompt causes typeahead to be messed up.
    Solution:   Increment tb_change_cnt. (closes #6541)
    Files:      src/getchar.c

    Patch 8.2.1378
    Problem:    Cannot put space between function name and paren.
    Solution:   Allow this for backwards compatibility.
    Files:      src/eval.c, src/testdir/test_expr.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1379
    Problem:    Curly braces expression ending in " }" does not work.
    Solution:   Skip over white space when checking for "}". (closes #6634)
    Files:      src/dict.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.1380
    Problem:    Vim9: return type of getreg() is always a string.
    Solution:   Use list of strings when there are three arguments. (closes #6633)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1381
    Problem:    MS-Windows: crash with Python 3.5 when stdin is redirected.
    Solution:   Reconnect stdin. (Yasuhiro Matsumoto, Ken Takata, closes #6641)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_python3.c

    Patch 8.2.1382
    Problem:    Vim9: using :import in filetype plugin gives an error.
    Solution:   Allow commands with the EX_LOCK_OK flag. (closes #6636)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1383
    Problem:    Test 49 is old style.
    Solution:   Convert test cases to new style. (Yegappan Lakshmanan,
                closes #6638)
    Files:      src/testdir/test49.ok, src/testdir/test49.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.1384
    Problem:    No ATTENTION prompt for :vimgrep first match file.
    Solution:   When there is an existing swap file do not keep the dummy buffer.
                (closes #6649)
    Files:      src/quickfix.c, src/testdir/runtest.vim,
                src/testdir/test_quickfix.vim

    Patch 8.2.1385
    Problem:    No testing on ARM.
    Solution:   Add a test on Travis for ARM. (Ozaki Kiichi, closes #6615)
    Files:      .travis.yml

    Patch 8.2.1386
    Problem:    Backslash not removed after space in option with space in
                'isfname'.
    Solution:   Do remove backslash before space, also when it is in 'isfname'.
                (Yasuhiro Matsumoto, closes #6651)
    Files:      src/option.c, src/testdir/test_options.vim

    Patch 8.2.1387
    Problem:    Vim9: cannot assign to single letter variable with type.
    Solution:   Exclude the colon from the variable name. (closes #6647)
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1388
    Problem:    Vim9: += only works for numbers.
    Solution:   Use += as concatenate for a list. (closes #6646)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1389
    Problem:    File missing from the distribution.
    Solution:   Add script_util.vim to the list of distributes files.
    Files:      Filelist

    Patch 8.2.1390
    Problem:    Vim9: type error after storing an option value.
    Solution:   Drop the type after a STOREOPT instruction. (closes #6632)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1391
    Problem:    Vim9: no error for shadowing a script function.
    Solution:   Check for already defined items. (closes #6652)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1392
    Problem:    Vim9: error line number incorrect after skipping over comment
                lines.
    Solution:   Insert empty lines for skipped lines.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1393
    Problem:    Insufficient testing for script debugging.
    Solution:   Add more tests. (Ben Jackson)
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.1394
    Problem:    Vim9: compiling a function interferes with command modifiers.
    Solution:   Save and restore command modifiers. (closes #6658)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1395
    Problem:    Vim9: no error if declaring a funcref with a lower case letter.
    Solution:   Check the name after the type is inferred. Fix confusing name.
    Files:      src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c,
                src/proto/evalvars.pro, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1396
    Problem:    Vim9: no error for unexpectedly returning a value.
    Solution:   Only set the return type for lambda's.  Make using function type
                in a function reference work.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1397
    Problem:    Vim9: return type of maparg() not adjusted for fourth argument.
    Solution:   Check if fourth argument is present. (closes #6645)
    Files:      src/evalfunc.c, src/testdir/test_maparg.vim

    Patch 8.2.1398
    Problem:    Autoload script sourced twice if sourced directly.
    Solution:   Do not source an autoload script again. (issue #6644)
    Files:      src/scriptfile.c, src/testdir/sautest/autoload/sourced.vim

    Patch 8.2.1399
    Problem:    Vim9: may find imported item in wrong script.
    Solution:   When looking up script-local function use the embedded script ID.
                (issue #6644)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1400
    Problem:    Vim9: test does not delete written files.
    Solution:   Correct file names.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1401
    Problem:    Cannot jump to the last used tabpage.
    Solution:   Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes #6661,
                neovim #11626)
    Files:      runtime/doc/eval.txt, runtime/doc/index.txt,
                runtime/doc/tabpage.txt, src/evalwindow.c, src/globals.h,
                src/normal.c, src/proto/window.pro, src/testdir/test_tabpage.vim,
                src/window.c

    Patch 8.2.1402
    Problem:    s390x tests always fail.
    Solution:   Temporarily disable s390x tests.
    Files:      .travis.yml

    Patch 8.2.1403
    Problem:    Vim9: Vim highlighting fails in cmdline window if it uses Vim9
                commands.
    Solution:   Allow using :vim9script, :import and :export while in the cmdline
                window. (closes #6656)
    Files:      src/ex_cmds.h, src/testdir/test_vim9_script.vim

    Patch 8.2.1404
    Problem:    Vim9: script test fails in the GUI.
    Solution:   Use another key to map.  Improve cleanup.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1405
    Problem:    Vim9: vim9compile.c is getting too big.
    Solution:   Split off type code to vim9type.c.
    Files:      Filelist, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim9type.c, src/proto/vim9type.pro, src/proto.h,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile

    Patch 8.2.1406
    Problem:    Popupwindow lacks scrollbar if no "maxheight" is used.
    Solution:   Compute the max height depending on the position. (closes #6664)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_toohigh_1.dump,
                src/testdir/dumps/Test_popupwin_toohigh_2.dump

    Patch 8.2.1407
    Problem:    Vim9: type of list and dict only depends on first item.
    Solution:   Use all items to decide about the type.
    Files:      src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vim9_expr.vim, runtime/doc/vim9.txt

    Patch 8.2.1408
    Problem:    Vim9: type casting not supported.
    Solution:   Introduce type casting.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1409
    Problem:    Npmrc and php.ini filetypes not recognized.
    Solution:   Add filetype detection. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1410
    Problem:    Adding compiler plugin requires test change.
    Solution:   Include compiler plugin and adjust test.
    Files:      src/testdir/test_compiler.vim, runtime/compiler/xo.vim

    Patch 8.2.1411
    Problem:    when splitting a window localdir is copied but prevdir is not.
    Solution:   Also copy prevdir. (closes #6667)
    Files:      src/window.c, src/testdir/test_cd.vim

    Patch 8.2.1412
    Problem:    Vim: not operator does not result in boolean.
    Solution:   Make type depend on operator. (issue 6678)  Fix using "false" and
                "true" in Vim9 script.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1413 (after 8.2.1401)
    Problem:    Previous tab page not usable from an Ex command.
    Solution:   Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan,
                closes #6677)
    Files:      runtime/doc/tabpage.txt, src/ex_docmd.c, src/window.c,
                src/testdir/test_tabpage.vim

    Patch 8.2.1414
    Problem:    Popupwindow missing last couple of lines when cursor is in the
                first line.
    Solution:   Compute the max height also when top aligned. (closes #6664)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_toohigh_3.dump,
                src/testdir/dumps/Test_popupwin_nospace.dump

    Patch 8.2.1415
    Problem:    Closing a popup window with CTRL-C interrupts 'statusline' if it
                calls a function.
    Solution:   Reset got_int while redrawing. (closes #6675)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_ctrl_c.dump

    Patch 8.2.1416
    Problem:    Vim9: boolean evaluation does not work as intended.
    Solution:   Use tv2bool() in Vim9 script. (closes #6681)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim

    Patch 8.2.1417
    Problem:    Test 49 is old style.
    Solution:   Convert more parts to new style test. (Yegappan Lakshmanan,
                closes #6682)
    Files:      src/testdir/test49.ok, src/testdir/test49.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.1418
    Problem:    Vim9: invalid error for missing white space after function.
    Solution:   Do not skip over white space. (closes #6679)
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1419
    Problem:    Vim9: not operator applied too early.
    Solution:   Implement the "numeric_only" argument. (closes #6680)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1420
    Problem:    Test 49 is old style.
    Solution:   Convert remaining parts to new style. Remove obsolete items.
                (Yegappan Lakshmanan, closes #6683)
    Files:      Filelist, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile,
                src/testdir/Make_all.mak, src/testdir/Make_amiga.mak,
                src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
                src/testdir/Make_vms.mms, src/testdir/Makefile,
                src/testdir/README.txt, src/testdir/test49.in,
                src/testdir/test49.ok, src/testdir/test49.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_vimscript.vim

    Patch 8.2.1421
    Problem:    Vim9: handling "+" and "-" before number differs from Vim script.
    Solution:   Use the same sequence of commands.
    Files:      src/vim9compile.c

    Patch 8.2.1422
    Problem:    The Mac GUI implementation is outdated and probably doesn't even
                work.
    Solution:   Remove the Mac GUI code.  The MacVim project provides the
                supported Vim GUI version.
    Files:      Filelist, src/gui_mac.c, src/proto/gui_mac.pro, src/proto.h,
                src/Makefile, src/configure.ac, src/auto/configure,
                src/evalfunc.c, src/fileio.c, src/gui.c, src/if_mzsch.c,
                src/main.c, src/misc2.c, src/mouse.c, src/os_mac_conv.c,
                src/os_unix.c, src/feature.h, src/globals.h, src/gui.h,
                src/option.h, src/optiondefs.h, src/os_mac.h, src/structs.h,
                src/vim.h, src/INSTALLmac.txt

    Patch 8.2.1423
    Problem:    Vim9: find global function when looking for script-local.
    Solution:   Don't strip prefix if name starts with "s:". (closes #6688)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1424 (after 8.2.1422)
    Problem:    Mac build fails.
    Solution:   Adjust configure to not fall back to Athena.  Adjust some other
                files.
    Files:      src/configure.ac, src/auto/configure, src/os_macosx.m,
                src/version.c

    Patch 8.2.1425
    Problem:    Vim9: cannot use call() without :call.
    Solution:   Do not skip over "call(". (closes #6689)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1426
    Problem:    Vim9: cannot call autoload function in :def function.
    Solution:   Load the autoload script. (closes #6690)
    Files:      src/vim9execute.c, src/vim9compile.c, src/scriptfile.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1427
    Problem:    Vim9: cannot use a range with marks in :def function.
    Solution:   Parse range after colon. (closes #6686)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1428
    Problem:    Vim9: :def function does not abort on nested function error.
    Solution:   Check whether an error message was given. (closes #6691)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1429
    Problem:    Vim9: no error for missing white after : in dict.
    Solution:   Check for white space. (closes #6671)  Also check that there is no
                white before the :.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1430
    Problem:    Vim9: error for missing comma instead of extra white space.
    Solution:   Check if comma can be found after white space. (closes #6668)
                Also check for extra white space in literal dict. (closes #6670)
    Files:      src/list.c, src/dict.c, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1431
    Problem:    Vim9: no error for white space before comma in dict.
    Solution:   Check for extra white space. (closes #6674)
    Files:      src/vim9compile.c, src/dict.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1432
    Problem:    Various inconsistencies in test files.
    Solution:   Add modelines where they were missing.  Use Check commands instead
                of silently skipping over tests.  Adjust indents and comments.
                (Ken Takata, closes #6695)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_assert.vim,
                src/testdir/test_autochdir.vim, src/testdir/test_autocmd.vim,
                src/testdir/test_autoload.vim, src/testdir/test_balloon.vim,
                src/testdir/test_balloon_gui.vim, src/testdir/test_behave.vim,
                src/testdir/test_blockedit.vim, src/testdir/test_breakindent.vim,
                src/testdir/test_bufline.vim, src/testdir/test_bufwintabinfo.vim,
                src/testdir/test_cd.vim, src/testdir/test_changedtick.vim,
                src/testdir/test_changelist.vim, src/testdir/test_channel.vim,
                src/testdir/test_checkpath.vim, src/testdir/test_cindent.vim,
                src/testdir/test_cjk_linebreak.vim,
                src/testdir/test_clientserver.vim,
                src/testdir/test_close_count.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_command_count.vim,
                src/testdir/test_comparators.vim, src/testdir/test_compiler.vim,
                src/testdir/test_crypt.vim, src/testdir/test_cursorline.vim,
                src/testdir/test_curswant.vim, src/testdir/test_debugger.vim,
                src/testdir/test_delete.vim, src/testdir/test_diffmode.vim,
                src/testdir/test_digraph.vim, src/testdir/test_display.vim,
                src/testdir/test_edit.vim, src/testdir/test_environ.vim,
                src/testdir/test_erasebackword.vim,
                src/testdir/test_escaped_glob.vim, src/testdir/test_ex_equal.vim,
                src/testdir/test_ex_undo.vim, src/testdir/test_ex_z.vim,
                src/testdir/test_exec_while_if.vim, src/testdir/test_exists.vim,
                src/testdir/test_exists_autocmd.vim, src/testdir/test_exit.vim,
                src/testdir/test_expand_dllpath.vim,
                src/testdir/test_expr_utf8.vim, src/testdir/test_feedkeys.vim,
                src/testdir/test_file_size.vim, src/testdir/test_fileformat.vim,
                src/testdir/test_filter_cmd.vim,
                src/testdir/test_find_complete.vim, src/testdir/test_findfile.vim,
                src/testdir/test_fixeol.vim, src/testdir/test_flatten.vim,
                src/testdir/test_fnameescape.vim, src/testdir/test_fold.vim,
                src/testdir/test_functions.vim, src/testdir/test_ga.vim,
                src/testdir/test_getcwd.vim, src/testdir/test_getvar.vim,
                src/testdir/test_glob2regpat.vim, src/testdir/test_global.vim,
                src/testdir/test_gui.vim, src/testdir/test_gui_init.vim,
                src/testdir/test_highlight.vim, src/testdir/test_hlsearch.vim,
                src/testdir/test_iminsert.vim,
                src/testdir/test_increment_dbcs.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_interrupt.vim,
                src/testdir/test_job_fails.vim, src/testdir/test_join.vim,
                src/testdir/test_json.vim, src/testdir/test_jumplist.vim,
                src/testdir/test_jumps.vim, src/testdir/test_lambda.vim,
                src/testdir/test_langmap.vim, src/testdir/test_largefile.vim,
                src/testdir/test_lineending.vim, src/testdir/test_listchars.vim,
                src/testdir/test_listener.vim, src/testdir/test_listlbr.vim,
                src/testdir/test_listlbr_utf8.vim,
                src/testdir/test_makeencoding.vim, src/testdir/test_man.vim,
                src/testdir/test_mapping.vim, src/testdir/test_marks.vim,
                src/testdir/test_matchadd_conceal.vim,
                src/testdir/test_matchadd_conceal_utf8.vim,
                src/testdir/test_memory_usage.vim, src/testdir/test_menu.vim,
                src/testdir/test_messages.vim, src/testdir/test_mksession.vim,
                src/testdir/test_modeline.vim,
                src/testdir/test_nested_function.vim, src/testdir/test_number.vim,
                src/testdir/test_options.vim, src/testdir/test_packadd.vim,
                src/testdir/test_partial.vim, src/testdir/test_paste.vim,
                src/testdir/test_plus_arg_edit.vim, src/testdir/test_preview.vim,
                src/testdir/test_profile.vim, src/testdir/test_prompt_buffer.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_quotestar.vim,
                src/testdir/test_random.vim, src/testdir/test_recover.vim,
                src/testdir/test_regex_char_classes.vim,
                src/testdir/test_regexp_latin.vim, src/testdir/test_registers.vim,
                src/testdir/test_rename.vim, src/testdir/test_retab.vim,
                src/testdir/test_scriptnames.vim, src/testdir/test_scroll_opt.vim,
                src/testdir/test_scrollbind.vim, src/testdir/test_search_stat.vim,
                src/testdir/test_searchpos.vim, src/testdir/test_set.vim,
                src/testdir/test_sha256.vim, src/testdir/test_shift.vim,
                src/testdir/test_shortpathname.vim, src/testdir/test_signs.vim,
                src/testdir/test_sort.vim, src/testdir/test_sound.vim,
                src/testdir/test_source_utf8.vim, src/testdir/test_spellfile.vim,
                src/testdir/test_startup.vim, src/testdir/test_startup_utf8.vim,
                src/testdir/test_stat.vim, src/testdir/test_suspend.vim,
                src/testdir/test_swap.vim, src/testdir/test_syntax.vim,
                src/testdir/test_tab.vim, src/testdir/test_tabline.vim,
                src/testdir/test_tagcase.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_taglist.vim, src/testdir/test_termcodes.vim,
                src/testdir/test_termencoding.vim, src/testdir/test_terminal.vim,
                src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim,
                src/testdir/test_terminal_fail.vim,
                src/testdir/test_true_false.vim,
                src/testdir/test_utf8_comparisons.vim,
                src/testdir/test_vartabs.vim, src/testdir/test_version.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_winbar.vim,
                src/testdir/test_winbuf_close.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_window_id.vim,
                src/testdir/test_windows_home.vim, src/testdir/test_wnext.vim,
                src/testdir/test_wordcount.vim, src/testdir/test_writefile.vim,
                src/testdir/test_xxd.vim

    Patch 8.2.1433
    Problem:    Vim9: cannot mingle comments in multi-line lambda.
    Solution:   Skip over NULL lines. (closes #6694)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1434
    Problem:    Vim9: crash when lambda uses outer function argument.
    Solution:   Set the flag that the outer context is used.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1435
    Problem:    Vim9: always converting to string for ".." leads to mistakes.
    Solution:   Only automatically convert simple types.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9.h,
                src/vim9execute.c, src/proto/vim9execute.pro, src/eval.c,
                src/evalfunc.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1436
    Problem:    Function implementing :substitute has unexpected name.
    Solution:   Rename from do_sub() to ex_substitute().
    Files:      src/ex_cmds.c, src/proto/ex_cmds.pro, src/ex_docmd.c,
                src/ex_cmds.h

    Patch 8.2.1437
    Problem:    Vim9: 'statusline' is evaluated using Vim9 script syntax.
    Solution:   Always use legacy script syntax.
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1438
    Problem:    Missing tests for interrupting script execution from debugger.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #6697)
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.1439
    Problem:    Tiny and small builds have no test coverage.
    Solution:   Restore tests that do not depend on the +eval feature.
                (Ken Takata, closes #6696)
    Files:      .travis.yml, Filelist, Makefile, runtime/doc/testing.txt,
                src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak,
                src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
                src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
                src/testdir/Makefile, src/testdir/runtest.vim,
                src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in,
                src/testdir/test20.ok, src/testdir/test21.in,
                src/testdir/test21.ok, src/testdir/test22.in,
                src/testdir/test22.ok, src/testdir/test23.in,
                src/testdir/test23.ok, src/testdir/test24.in,
                src/testdir/test24.ok, src/testdir/test25.in,
                src/testdir/test25.ok, src/testdir/test26.in,
                src/testdir/test26.ok, src/testdir/test27.in,
                src/testdir/test27.ok, src/testdir/test_options.vim

    Patch 8.2.1440
    Problem:    Debugger code insufficiently tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6700)
    Files:      src/testdir/test_debugger.vim, src/testdir/test_vimscript.vim

    Patch 8.2.1441
    Problem:    Running tests in tiny version gives error for summarize.vim.
    Solution:   Set 'cpoptions' to allow for line continuation.  Restore
                redirecting test output to /dev/null.
    Files:      src/testdir/summarize.vim, src/testdir/Makefile

    Patch 8.2.1442
    Problem:    Outdated references to the Mac Carbon GUI.
    Solution:   Remove or update references. (Yee Cheng Chin, closes #6703)
    Files:      READMEdir/README_extra.txt, src/Makefile, src/configure.ac,
                src/auto/configure, src/gui_haiku.cc, src/os_macosx.m,
                src/testdir/test_iminsert.vim, src/vim.h

    Patch 8.2.1443
    Problem:    Vim9: crash when interrupting a nested :def function.
    Solution:   Push a dummy return value onto the stack. (closes #6701)
    Files:      src/vim9execute.c

    Patch 8.2.1444
    Problem:    Error messages are spread out and names can be confusing.
    Solution:   Start moving error messages to a separate file and use clear
                names.
    Files:      Filelist, src/vim.h, src/globals.h, src/errors.h, src/Makefile,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
                src/dict.c, src/evalvars.c, src/ex_docmd.c, src/list.c,
                src/userfunc.c, src/vim9compile.c, src/vim9execute.c,
                src/vim9script.c, src/vim9type.c

    Patch 8.2.1445
    Problem:    Vim9: function expanded name is cleared when sourcing a script
                again.
    Solution:   Only clear the expanded name when deleting the function.
                (closes #6707)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1446
    Problem:    Vim9: line number in error message is not correct.
    Solution:   Set SOURCING_LNUM before calling emsg(). (closes #6708)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1447
    Problem:    Vim9: return type of keys() is list<any>.
    Solution:   Should be list<string>. (closes #6711)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1448
    Problem:    Test 77a for VMS depends on small.vim which does not exist.
    Solution:   Use the 'silent while 0" trick. (issue #6696)
    Files:      src/testdir/test77a.in

    Patch 8.2.1449
    Problem:    Some test makefiles delete files that are not generated.
    Solution:   Remove the deletion commands.
    Files:      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
                src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms

    Patch 8.2.1450
    Problem:    Vim9: no check that script-local items don't become global.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1451
    Problem:    Vim9: list type at script level only uses first item.
    Solution:   Use all members, like in a compiled function. (closes #6712)
                Also for dictionary.
    Files:      src/vim9type.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1452
    Problem:    Vim9: dead code in to_name_end().
    Solution:   Remove check for lambda and dict, it won't be used.
    Files:      src/vim9compile.c

    Patch 8.2.1453
    Problem:    Vim9: failure to compile lambda not tested.
    Solution:   Add a test case.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1454
    Problem:    Vim9: failure invoking lambda with wrong arguments.
    Solution:   Handle invalid arguments.  Add a test.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1455
    Problem:    Vim9: crash when using typecast before constant.
    Solution:   Generate constant before checking type.  Add tets.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1456
    Problem:    MS-Windows: test files are not deleted.
    Solution:   use "del" instead of $(DEL).
    Files:      src/testdir/Make_dos.mak

    Patch 8.2.1457
    Problem:    Vim9: the output of :disassemble cannot be interrupted.
    Solution:   Check got_int. (closes #6715)
    Files:      src/vim9execute.c

    Patch 8.2.1458
    Problem:    .gawk files not recognized.
    Solution:   Recognize .gawk files. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1459
    Problem:    Vim9: declaring a script variable at the script level does not
                infer the type.
    Solution:   Get the type from the value. (closes #6716)
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1460
    Problem:    Error messages are spread out.
    Solution:   Move more messages into errors.h.
    Files:      src/errors.h, src/globals.h, src/vim9compile.c, src/vim9execute.c,
                src/vim9script.c, src/vim9type.c, src/scriptfile.c, src/ex_cmds.c,
                src/ex_docmd.c, src/match.c, src/eval.c, src/evalvars.c,
                src/userfunc.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1461
    Problem:    Vim9: string indexes are counted in bytes.
    Solution:   Use character indexes. (closes #6574)
    Files:      runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro,
                src/vim9execute.c, src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1462
    Problem:    Vim9: string slice not supported yet.
    Solution:   Add support for string slicing.
    Files:      src/errors.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/eval.c, src/proto/eval.pro, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1463
    Problem:    Vim9: list slice not supported yet.
    Solution:   Add support for list slicing.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c,
                src/list.c, src/proto/list.pro, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1464
    Problem:    Vim9: build warning for unused variable.
    Solution:   Delete the variable declaration.
    Files:      src/vim9execute.c

    Patch 8.2.1465
    Problem:    Vim9: subscript not handled properly.
    Solution:   Adjust error message.  Remove dead code.  Disallow string to
                number conversion in scripts.
    Files:      src/errors.h, src/vim9compile.c, src/vim9execute.c, src/eval.c,
                src/typval.c, src/list.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1466
    Problem:    Vim9: cannot index or slice a variable with type "any".
    Solution:   Add runtime index and slice.
    Files:      src/eval.c, src/proto/eval.pro, src/vim9compile.c,
                src/vim9execute.c, src/vim9.h, src/errors.h, src/list.c,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1467
    Problem:    Vim9: :echomsg doesn't like a dict argument.
    Solution:   Convert arguments like in legacy script. (closes #6717)
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1468
    Problem:    Vim9: invalid error for missing white space.
    Solution:   Don't skip over white space after index. (closes #6718)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1469
    Problem:    Vim9: cannot assign string to string option.
    Solution:   Change checks for option value. (closes #6720)
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1470
    Problem:    Errors in spell file not tested.
    Solution:   Add test for spell file errors. (Yegappan Lakshmanan,
                closes #6721)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.1471
    Problem:    :const only locks the variable, not the value.
    Solution:   Lock the value as ":lockvar 1 var" would do. (closes #6719)
    Files:      src/evalvars.c, src/testdir/test_const.vim

    Patch 8.2.1472
    Problem:    ":argdel" does not work like ":.argdel" as documented. (Alexey
                Demin)
    Solution:   Make ":argdel" work like ":.argdel". (closes #6727)
                Also fix giving the error "0 more files to edit".
    Files:      src/arglist.c, src/ex_docmd.c, src/testdir/test_arglist.vim

    Patch 8.2.1473
    Problem:    Items in a list given to :const can still be modified.
    Solution:   Work like ":lockvar! name" but don't lock referenced items.
                Make locking a blob work.
    Files:      runtime/doc/eval.txt, src/evalvars.c, src/eval.c,
                src/testdir/test_const.vim

    Patch 8.2.1474
    Problem:    /usr/lib/udef/rules.d not recognized as udevrules.
    Solution:   Adjust match pattern. (Haochen Tong, closes 36722)
    Files:      runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim

    Patch 8.2.1475
    Problem:    Vim9: can't use v:true for option flags.
    Solution:   Add tv_get_bool_chk(). (closes #6725)
    Files:      src/typval.c, src/proto/typval.pro, src/channel.c

    Patch 8.2.1476 (after 8.2.1474)
    Problem:    Filetype test fails on MS-Windows.
    Solution:   Remove "^" from pattern.
    Files:      runtime/autoload/dist/ft.vim

    Patch 8.2.1477
    Problem:    Vim9: error when using bufnr('%').
    Solution:   Don't give an error for using a string argument. (closes #6723)
    Files:      src/evalbuffer.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1478
    Problem:    Vim9: cannot use "true" for some popup options.
    Solution:   Add dict_get_bool(). (closes #6725)
    Files:      src/dict.c, src/proto/dict.pro, src/popupwin.c

    Patch 8.2.1479
    Problem:    Vim9: error for list index uses wrong line number.
    Solution:   Set source line number. (closes #6724)  Add a way to assert the
                line number of the error with assert_fails().
    Files:      runtime/doc/testing.txt, src/vim9execute.c, src/testing.c,
                src/evalfunc.c, src/message.c, src/globals.h, src/testdir/vim9.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1480
    Problem:    Vim9: skip expression in search() gives error.
    Solution:   use tv_get_bool() eval_expr_to_bool(). (closes #6729)
    Files:      src/eval.c, src/typval.c, src/proto/typval.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1481
    Problem:    Vim9: line number reported with error may be wrong.
    Solution:   Check line number in tests.
    Files:      src/testdir/test_vim9_expr.vim, src/testdir/vim9.vim,
                src/vim9execute.c

    Patch 8.2.1482
    Problem:    Vim9: crash when using a nested lambda.
    Solution:   Do not clear the growarray when not evaluating.  Correct pointer
                when getting the next line. (closes #6731)
    Files:      src/eval.c, src/scriptfile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1483
    Problem:    Vim9: error for using special as number when returning "false"
                from a popup filter.
    Solution:   Use tv_get_bool(). (closes #6733)
    Files:      src/popupwin.c

    Patch 8.2.1484
    Problem:    Flaky failure in assert_fails().
    Solution:   Only used fourth argument if there is a third argument.
    Files:      src/testing.c

    Patch 8.2.1485
    Problem:    Vim9: readdirex() expression doesn't accept bool.
    Solution:   Accept both -1 and bool. (closes #6737)
    Files:      src/filepath.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1486
    Problem:    Vim9: readdir() expression doesn't accept bool.
    Solution:   Merge with code for readdirex(). (closes #6737)
    Files:      src/filepath.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1487
    Problem:    Travis: installing snd-dummy is not always useful.
    Solution:   Only install snd-dummy on amd64. (Ozaki Kiichi, closes #6738)
    Files:      .travis.yml, ci/load-snd-dummy.sh

    Patch 8.2.1488
    Problem:    Text does not scroll when inserting above first line.
    Solution:   Adjust off-by-one error. (Ken Takata, closes #6739)
    Files:      src/drawscreen.c, src/testdir/test_display.vim,
                src/testdir/dumps/Test_display_scroll_at_topline.dump

    Patch 8.2.1489
    Problem:    Vim9: error when setting an option with setbufvar().
    Solution:   Do not get a number from a string value. (closes #6740)
    Files:      src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1490
    Problem:    Vim9: using /= with float and number doesn't work.
    Solution:   Better support assignment with operator. (closes #6742)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1491
    Problem:    Vim9: crash when compiling heredoc lines start with comment.
    Solution:   Skip over NULL pointers. Do not remove comment and empty lines
                when fetching function lines. (closes #6743)
    Files:      src/vim9compile.c, src/scriptfile.c, src/proto/scriptfile.pro,
                src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/ex_cmds.h, src/autocmd.c, src/proto/autocmd.pro,
                src/ex_getln.c, src/proto/ex_getln.pro, src/userfunc.c,
                src/proto/userfunc.pro, src/evalfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1492
    Problem:    Build failures.
    Solution:   Move typedef out of #ifdef.  Adjust argument types.  Discover
                America.
    Files:      src/structs.h, src/ex_docmd.c

    Patch 8.2.1493
    Problem:    Not enough test coverage for the spell file handling.
    Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6728)
    Files:      src/spellfile.c, src/testdir/test_spellfile.vim

    Patch 8.2.1494
    Problem:    Missing change to calling eval_getline().
    Solution:   Change last argument.
    Files:      src/eval.c

    Patch 8.2.1495
    Problem:    "make clean" may delete too many files.
    Solution:   Do not delete $APPDIR. (closes #6751)
    Files:      src/Makefile

    Patch 8.2.1496
    Problem:    Vim9: cannot use " #" in a mapping.
    Solution:   Do not remove a comment with the EX_NOTRLCOM flag. (closes #6746)
    Files:      src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1497
    Problem:    CursorHold test is flaky. (Jakub Kądziołka)
    Solution:   Use WaitForAssert() (closes #6754)
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.1498
    Problem:    On slow systems tests can be flaky.
    Solution:   Use TermWait() instead of term-wait(). (Yegappan Lakshmanan,
                closes #6756)
    Files:      src/testdir/test_digraph.vim, src/testdir/test_display.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_termcodes.vim,
                src/testdir/test_terminal.vim, src/testdir/test_terminal3.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.1499
    Problem:    Vim9: error when using "$" with col().
    Solution:   Reorder getting the column value. (closes #6744)
    Files:      src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1500
    Problem:    Vim9: error when using address without a command.
    Solution:   Execute the range itself. (closes #6747)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1501
    Problem:    Vim9: concatenating to constant reverses order.
    Solution:   Generate constant before option, register and environment
                variable. (closes #6757)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1502
    Problem:    Vim9: can use += with a :let command at script level.
    Solution:   Give an error.
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1503
    Problem:    Vim9: error for an autocmd defined in a :def function in legacy
                Vim script.
    Solution:   Don't check the variable type. (closes #6758)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1504
    Problem:    Vim9: white space checks are only done for a :def function.
    Solution:   Also do checks at the script level.  Adjust the name of a few
                error messages.
    Files:      src/userfunc.c, src/errors.h, src/dict.c, src/list.c,
                src/vim9compile.c, src/vim9script.c, src/vim9type.c,
                src/evalvars.c, src/testdir/test_vim9_expr.vim,
                src/testdir/vim9.vim

    Patch 8.2.1505
    Problem:    Not all file read and writecode is tested.
    Solution:   Add a few tests. (Dominique Pellé, closes #6764)
    Files:      src/testdir/test_eval_stuff.vim, src/testdir/test_fnamemodify.vim,
                src/testdir/test_functions.vim

    Patch 8.2.1506
    Problem:    Vim9: no error when using a number other than 0 or 1 as bool.
    Solution:   Check the number is 0 or 1.
    Files:      src/errors.h, src/typval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1507
    Problem:    Using malloc() directly.
    Solution:   Use ALLOC_ONE().  Remove superfluous typecast.  (Hussam al-Homsi,
                closes #6768)
    Files:      src/eval.c, src/memline.c, src/vimrun.c

    Patch 8.2.1508
    Problem:    Not all debugger commands covered by tests.
    Solution:   Add tests for going up/down in the stack. (Ben Jackson,
                closes #6765)
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.1509
    Problem:    Vertical separator is cleared when dragging a popup window using a
                multi-byte character for the border.
    Solution:   Only clear the character before the window if it is using a
                multi-byte character. (closes #6766)
    Files:      src/screen.c

    Patch 8.2.1510
    Problem:    Using "var" in a :def function may refer to a legacy Vim script
                variable.
    Solution:   Require using "s:" to refer to a legacy Vim script variable.
                (closes #6771)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1511
    Problem:    Putting a string in Visual block mode ignores multi-byte
                characters.
    Solution:   Adjust the column for Visual block mode. (closes #6767)
    Files:      src/register.c, src/testdir/test_visual.vim

    Patch 8.2.1512
    Problem:    Failure after ternary expression fails.
    Solution:   Restore eval_flags. (Yasuhiro Matsumoto, closes #6776)
    Files:      src/eval.c, src/testdir/test_vimscript.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1513
    Problem:    Cannot interrupt shell used for filename expansion. (Dominique
                Pellé)
    Solution:   Do set tmode in mch_delay(). (closes #6770)
    Files:      src/vim.h, src/os_unix.c, src/proto/os_unix.pro, src/term.c,
                src/channel.c, src/if_cscope.c, src/os_amiga.c, src/ui.c,
                src/proto/os_amiga.pro, src/os_win32.c, src/proto/os_win32.pro

    Patch 8.2.1514
    Problem:    Multibyte vertical separator is cleared when dragging a popup
                window using a multi-byte character for the border.
    Solution:   Only clear the character before the window if it is double width.
                (closes #6766)
    Files:      src/screen.c

    Patch 8.2.1515
    Problem:    Vim9: can create s:var in legacy script but cannot unlet.
    Solution:   Allow :unlet for legacy script var.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1516
    Problem:    Vim9: error for :exe has wrong line number.
    Solution:   Set line number before calling do_cmdline_cmd(). (closes #6774)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1517
    Problem:    Cannot easily get the character under the cursor.
    Solution:   Add the {chars} argument to strpart().
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_functions.vim

    Patch 8.2.1518
    Problem:    Vim9: cannot assign to local option.
    Solution:   Skip over "&l:" and "&g:". (closes #6749)
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim,
                src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1519
    Problem:    Vim9: Ex command default range is not set.
    Solution:   When range is not given use default. (closes #6779)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1520
    Problem:    Vim9: CTRL-] used in :def function does not work.
    Solution:   Omit count or prepend colon. (closes #6769)
    Files:      src/normal.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1521
    Problem:    Reading past end of buffer when reading spellfile. (Yegappan
                Lakshmanan)
    Solution:   Store the byte length and check for it.
    Files:      src/spellfile.c, src/spell.h

    Patch 8.2.1522
    Problem:    Not enough test coverage for the spell file handling.
    Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6763)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.1523
    Problem:    Still not enough test coverage for the spell file handling.
    Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6790)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.1524
    Problem:    No longer get an error for string concatenation with float.
                (Tsuyoshi Cho)
    Solution:   Only convert float for Vim9 script. (closes #6787)
    Files:      src/eval.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.1525
    Problem:    Messages from tests were not always displayed.
    Solution:   Always show messages, the timing is always useful. (Ken Takata,
                closes #6792)
    Files:      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
                src/testdir/Makefile

    Patch 8.2.1526
    Problem:    Line in testdir Makefile got commented out. (Christian Brabandt)
    Solution:   Revert.
    Files:      src/testdir/Makefile

    Patch 8.2.1527
    Problem:    Vim9: cannot use a function name as a function reference at script
                level.
    Solution:   Check if a name is a function name. (closes #6789)
    Files:      src/evalvars.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1528
    Problem:    Vim9: :endif not found after "if false".
    Solution:   When skipping still check for a following command. (closes #6797)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1529
    Problem:    Vim9: :elseif may be compiled when not needed.
    Solution:   Do evaluate the :elseif expression.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1530
    Problem:    Vim9: test fails on MS-Windows.
    Solution:   Skip Ex command inside "if false".
    Files:      src/vim9compile.c

    Patch 8.2.1531
    Problem:    Vim9: test still fails on MS-Windows.
    Solution:   When skipping expect function to be NULL.
    Files:      src/vim9compile.c

    Patch 8.2.1532
    Problem:    Compiler warning for conversion of size_t to long.
    Solution:   Add type cast.
    Files:      src/eval.c

    Patch 8.2.1533
    Problem:    Vim9: error when passing getreginfo() result to setreg().
    Solution:   Use dict_get_bool() for "isunnamed". (closes #6784)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1534
    Problem:    Vim9: type error for argument type is not at call position.
    Solution:   Set the context and stack after checking the arguments.
                (issue #6785)
    Files:      src/userfunc.c, src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1535
    Problem:    It is not possible to specify cell widths of characters.
    Solution:   Add setcellwidths().
    Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c,
                src/proto/mbyte.pro, src/errors.h, src/testdir/test_utf8.vim

    Patch 8.2.1536
    Problem:    Cannot get the class of a character; emoji widths are wrong in
                some environments.
    Solution:   Add charclass(). Update some emoji widths.  Add script to check
                emoji widths.
    Files:      Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt,
                src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro,
                src/testdir/emoji_list.vim, src/testdir/test_functions.vim

    Patch 8.2.1537
    Problem:    Memory access error when using setcellwidths().
    Solution:   Use array and pointers correctly.
    Files:      src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim

    Patch 8.2.1538
    Problem:    Python: iteration over vim objects fails to keep reference.
    Solution:   Keep a reference for the object. (Paul Ollis, closes #6803,
                closes #6806)
    Files:      src/if_py_both.h, src/testdir/test_python3.vim

    Patch 8.2.1539
    Problem:    Using invalid script ID causes a crash.
    Solution:   Check the script ID to be valid. (closes #6804)
    Files:      src/globals.h, src/evalvars.c, src/profiler.c, src/scriptfile.c,
                src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1540
    Problem:    The user cannot try out emoji character widths.
    Solution:   Move the emoji script to the runtime/tools directory.
    Files:      Filelist, src/testdir/emoji_list.vim, runtime/tools/emoji_list.vim

    Patch 8.2.1541
    Problem:    Vim9: cannot find function reference for s:Func.
    Solution:   Recognize <SNR> prefix. (closes #6805)
    Files:      src/userfunc.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1542
    Problem:    Vim9: test with invalid SID does not work in the GUI.
    Solution:   Skip the test in the GUI.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1543
    Problem:    Vim9: test with invalid SID is skipped in the GUI.
    Solution:   Read the CTRL-C that feedkeys() put in typeahead.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1544
    Problem:    Cannot translate messages in a Vim script.
    Solution:   Add gettext().  Try it out for a few messages in the options
                window.
    Files:      Filelist, src/po/Makefile, src/po/README.txt, runtime/optwin.vim,
                src/evalfunc.c, src/po/tojavascript.vim, src/po/fixfilenames.vim,
                runtime/doc/eval.txt, runtime/doc/usr_41.txt

    Patch 8.2.1545
    Problem:    ch_logfile() is unclear about closing when forking.
    Solution:   Adjust the log messages.
    Files:      src/channel.c, src/os_unix.c

    Patch 8.2.1546
    Problem:    Build rule for Vim.app is unused.
    Solution:   Delete the related build rules.
    Files:      src/Makefile

    Patch 8.2.1547
    Problem:    Various comment problems.
    Solution:   Update comments.
    Files:      src/arglist.c, src/map.c, src/mbyte.c, src/tag.c, src/undo.c,
                src/testdir/README.txt, src/testdir/test_put.vim,
                src/libvterm/README

    Patch 8.2.1548
    Problem:    Cannot move position of "%%" in message translations. (Emir Sarı)
    Solution:   Improve the check script.
    Files:      src/po/check.vim

    Patch 8.2.1549
    Problem:    The "r" command fails for keys with modifiers if 'esckeys' is off
                and modifyOtherKeys is used. (Lauri Tirkkonen)
    Solution:   Temporarily disable bracketed paste and modifyOtherKeys if
                'esckeys' is off. (closes #6809)
    Files:      src/normal.c

    Patch 8.2.1550
    Problem:    Vim9: bufname('%') gives an error.
    Solution:   Only give an error for wrong argument type. (closes #6807)
    Files:      src/evalbuffer.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1551
    Problem:    Vim9: error for argument type does not mention the number.
    Solution:   Pass the argument number to where the error is given.
    Files:      src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c,
                src/vim9execute.c, src/vim9script.c, src/eval.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1552
    Problem:    Warnings from asan with clang-11. (James McCoy)
    Solution:   Avoid using a NULL pointer. (issue #6811)
    Files:      src/fold.c

    Patch 8.2.1553 (after 8.2.1552)
    Problem:    Crash in edit test.
    Solution:   Avoid using invalid pointer.
    Files:      src/fold.c

    Patch 8.2.1554
    Problem:    Crash in normal test.
    Solution:   Skip adjusting marks if there are no folds.
    Files:      src/fold.c

    Patch 8.2.1555
    Problem:    Not all tests are executed on Github Actions.
    Solution:   Copy "src" to "src2" earlier. Recognize "src2" in a couple more
                places.  Add two tests to the list of flaky tests. (Ken Takata,
                closes #6798)
    Files:      .github/workflows/ci-windows.yaml, src/testdir/runtest.vim,
                src/testdir/test_python2.vim, src/testdir/test_python3.vim

    Patch 8.2.1556
    Problem:    Cursorline highlighting always overrules sign highlighting.
    Solution:   Combine the highlighting, use the priority to decide how.
                (closes #6812)
    Files:      runtime/doc/sign.txt, src/structs.h, src/drawline.c,
                runtime/pack/dist/opt/termdebug/plugin/termdebug.vim,
                src/testdir/test_signs.vim,
                src/testdir/dumps/Test_sign_cursor_5.dump,
                src/testdir/dumps/Test_sign_cursor_6.dump

    Patch 8.2.1557
    Problem:    Crash in :vimgrep when started as "vim -n". (Raul Segura)
    Solution:   Check mfp pointer. (Yegappan Lakshmanan, closes #6827)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1558
    Problem:    Signs test fails.
    Solution:   Add missing change to sign.c.
    Files:      src/sign.c

    Patch 8.2.1559
    Problem:    s390x tests work again.
    Solution:   re-enable s390x tests. (James McCoy, closes #6829)
    Files:      .travis.yml

    Patch 8.2.1560
    Problem:    Using NULL pointers in some code. (James McCoy)
    Solution:   Avoid adding to a NULL pointer.  Use byte as unsigned.
    Files:      src/fold.c, src/eval.c, src/spellsuggest.c, src/spellfile.c,
                src/vim9compile.c

    Patch 8.2.1561
    Problem:    Using NULL pointers in fold code.
    Solution:   Avoid using a NULL pointer. (Dominique Pellé, closes #6831,
                closes #6831)
    Files:      src/fold.c

    Patch 8.2.1562
    Problem:    Vim9: error when using "%" where a buffer is expected.
    Solution:   Add tv_get_buf_from_arg(). (closes #6814)
    Files:      src/typval.c, src/proto/typval.pro, src/evalbuffer.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1563
    Problem:    Vim9: error when using '%" with setbufvar() or getbufvar().
    Solution:   Use tv_get_buf_from_arg(). (closes #6816)
    Files:      src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1564
    Problem:    A few remaining errors from ubsan.
    Solution:   Avoid the warnings. (Dominique Pellé, closes #6837)
    Files:      src/spellfile.c, src/spellsuggest.c, src/viminfo.c

    Patch 8.2.1565
    Problem:    Spellfile test sometimes fails.
    Solution:   Check running into the end of the file.
    Files:      src/spellfile.c

    Patch 8.2.1566
    Problem:    Not all Bazel files are recognized.
    Solution:   Add *.bazel and *.BUILD. (closes #6836)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1567
    Problem:    No example to use ubsan with clang.
    Solution:   Add example commands. (Dominique Pellé, issue #6811)
    Files:      src/Makefile

    Patch 8.2.1568
    Problem:    prop_find() skips properties in the same line if "skipstart" is
                used.
    Solution:   Use "continue" instead of "break". (closes #6840)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.1569
    Problem:    Vim9: fixes for functions not tested; failure in getchangelist().
    Solution:   Add tests. (closes #6813, closes #6815, closes #6817)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1570
    Problem:    Configure check for dirfd() does not work on HPUX. (Michael Osipov)
    Solution:   Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes #6838)
    Files:      src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h

    Patch 8.2.1571
    Problem:    Vim9: count() third argument cannot be "true".
    Solution:   Use tv_get_bool_chk(). (closes #6818)
    Files:      src/typval.c, src/list.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1572
    Problem:    Vim9: expand() does not take "true" as argument.
    Solution:   Use tv_get_bool_chk().  (closes #6819)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1573
    Problem:    Vim9: getreg() does not take "true" as argument.
    Solution:   Use tv_get_bool_chk().  (closes #6820)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1574
    Problem:    Vim9: glob() does not take "true" as argument.
    Solution:   Use tv_get_bool_chk(). (closes #6821)
    Files:      src/filepath.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1575
    Problem:    Vim9: globpath() does not take "true" as argument.
    Solution:   Use tv_get_bool_chk(). (closes #6821)
    Files:      src/filepath.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1576
    Problem:    Vim9: index() does not take "true" as argument.
    Solution:   Use tv_get_bool_chk(). (closes #6823)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1577
    Problem:    Vim9: hasmapto(), mapcheck() and maparg() do not take "true" as
                argument.
    Solution:   Use tv_get_bool(). (closes #6822, closes #6824)
    Files:      src/evalfunc.c, src/map.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1578
    Problem:    Vim9: popup_clear() does not take "true" as argument.
    Solution:   Use tv_get_bool(). (closes #6826)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.1579
    Problem:    Reports from asan are not optimal.
    Solution:   Use clang with ubsan. (James McCoy, closes #6811)
    Files:      .travis.yml

    Patch 8.2.1580
    Problem:    Wildmenu does not work properly.
    Solution:   Do not call may_do_incsearch_highlighting() if completion is in
                progress.
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_1.dump,
                src/testdir/dumps/Test_wildmenu_2.dump,
                src/testdir/dumps/Test_wildmenu_3.dump,
                src/testdir/dumps/Test_wildmenu_4.dump

    Patch 8.2.1581
    Problem:    Using line() for global popup window doesn't work.
    Solution:   Set tabpage to "curtab". (closes #6847)
    Files:      src/evalwindow.c, src/testdir/test_popupwin.vim

    Patch 8.2.1582
    Problem:    The channel log does not show typed text.
    Solution:   Add raw typed text to the log file.
    Files:      src/ui.c, src/os_win32.c

    Patch 8.2.1583
    Problem:    MS-Windows: cannot easily measure code coverage.
    Solution:   Add the COVERAGE option. (Ken Takata, closes #6842)
    Files:      src/Make_cyg_ming.mak

    Patch 8.2.1584
    Problem:    Vim9: cannot use "true" for "skipstart" in prop_find().
    Solution:   Use dict_get_bool() instead of tv_get_number(). (closes #6852)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.1585
    Problem:    Messages in errors.h not translated, xgettext on MS-Windows not
                fully supported.
    Solution:   Add errors.h to list of input files.  Update MS-Windows makefiles
                to improve message translations. (Ken Takata, closes #6858)
    Files:      src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak,
                src/po/Makefile, src/po/README.txt, src/po/fixfilenames.vim

    Patch 8.2.1586
    Problem:    :resize command not fully tested.
    Solution:   Add a couple of tests. (Dominique Pellé, closes #6857)
    Files:      src/testdir/test_window_cmd.vim

    Patch 8.2.1587
    Problem:    Loop for handling keys for the command line is too long.
    Solution:   Move wild menu handling to separate functions. (Yegappan
                Lakshmanan, closes #6856)
    Files:      src/cmdexpand.c, src/proto/cmdexpand.pro, src/ex_getln.c

    Patch 8.2.1588
    Problem:    Cannot read back the prompt of a prompt buffer.
    Solution:   Add prompt_getprompt(). (Ben Jackson, closes #6851)
    Files:      runtime/doc/channel.txt, runtime/doc/eval.txt,
                runtime/doc/usr_41.txt, src/channel.c, src/edit.c, src/evalfunc.c,
                src/proto/channel.pro, src/proto/edit.pro,
                src/testdir/test_prompt_buffer.vim

    Patch 8.2.1589
    Problem:    Term_start() options for size are overruled by 'termwinsize'.
                (Sergey Vlasov)
    Solution:   Set 'termwinsize' to the specified size.
    Files:      src/terminal.c, src/testdir/test_terminal2.vim,
                src/testdir/term_util.vim

    Patch 8.2.1590
    Problem:    Vim9: bufnr() doesn't take "true" argument.
    Solution:   use tv_get_bool_chk(). (closes #6863)
    Files:      src/evalbuffer.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1591
    Problem:    Using winheight('.') in tests works but is wrong.
    Solution:   Use winheight(0). (issue #6863)
    Files:      src/testdir/test_functions.vim, src/testdir/test_quickfix.vim

    Patch 8.2.1592
    Problem:    Vim9: passing "true" to char2nr() fails.
    Solution:   Use tv_get_bool_chk(). (closes #6865)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1593
    Problem:    Tests do not check the error number properly.
    Solution:   Add a colon after the error number. (closes #6869)
    Files:      src/testdir/test_assert.vim, src/testdir/test_autocmd.vim,
                src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim,
                src/testdir/test_clientserver.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_const.vim, src/testdir/test_cscope.vim,
                src/testdir/test_eval_stuff.vim, src/testdir/test_functions.vim,
                src/testdir/test_global.vim, src/testdir/test_gui.vim,
                src/testdir/test_hlsearch.vim, src/testdir/test_lambda.vim,
                src/testdir/test_let.vim, src/testdir/test_listdict.vim,
                src/testdir/test_move.vim, src/testdir/test_normal.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_put.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_rename.vim,
                src/testdir/test_search.vim, src/testdir/test_signs.vim,
                src/testdir/test_substitute.vim, src/testdir/test_syntax.vim,
                src/testdir/test_tagfunc.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_taglist.vim, src/testdir/test_terminal.vim,
                src/testdir/test_terminal2.vim, src/testdir/test_textprop.vim,
                src/testdir/test_timers.vim, src/testdir/test_true_false.vim,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_vimscript.vim,
                src/testdir/test_winbar.vim, src/testdir/test_winbuf_close.vim,
                src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim

    Patch 8.2.1594
    Problem:    Pull requests on github do not notify a maintainer.
    Solution:   Add a CODEOWNERS file with a few initial entries.
    Files:      Filelist, .github/CODEOWNERS

    Patch 8.2.1595
    Problem:    Cannot easily see what Vim sends to the terminal.
    Solution:   Write output to the channel log if it contains terminal control
                sequences.  Avoid warnings for tputs() argument.
    Files:      src/term.c, src/globals.h, src/edit.c, src/normal.c,
                src/optionstr.c

    Patch 8.2.1596
    Problem:    Using win_screenpos('.') in tests works but is wrong.
    Solution:   Use win_screenpos(0).
    Files:      src/testdir/test_terminal3.vim

    Patch 8.2.1597
    Problem:    The channel source file is too big.
    Solution:   Move job related code to a new source file.
    Files:      Filelist, src/Makefile, src/Make_mvc.mak, src/Make_cyg_ming.mak,
                src/channel.c, src/proto/channel.pro, src/job.c,
                src/proto/job.pro, src/proto.h, src/edit.c, src/proto/edit.pro,
                src/globals.h, src/configure.ac, src/auto/configure

    Patch 8.2.1598
    Problem:    Starting a hidden terminal resizes the current window.
    Solution:   Do not resize the current window for a hidden terminal.
                (closes #6872)
    Files:      src/terminal.c, src/testdir/test_terminal2.vim

    Patch 8.2.1599
    Problem:    Missing line end when skipping a long line with :cgetfile.
    Solution:   Fix off-by-one error. (closes #6870)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1600
    Problem:    Vim9: cannot use "true" with deepcopy().
    Solution:   Use tv_get_bool_chk(). (closes #6867)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_listdict.vim

    Patch 8.2.1601
    Problem:    Vim9: cannot use "true" with garbagecollect().
    Solution:   Use tv_get_bool(). (closes #6871)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1602
    Problem:    Vim9: cannot use "true" with getbufinfo().
    Solution:   Use dict_get_bool(). (closes #6873)
    Files:      src/evalbuffer.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1603
    Problem:    Vim9: cannot use "true" with getchar().
    Solution:   use tv_get_bool_chk(). (closes #6874)
    Files:      src/getchar.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1604
    Problem:    Vim9: cannot use "true" with getcompletion().
    Solution:   use tv_get_bool_chk(). (closes #6875)
    Files:      src/cmdexpand.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1605
    Problem:    Default maintainer on github is wrong.
    Solution:   Use Bram's account.
    Files:      .github/CODEOWNERS

    Patch 8.2.1606
    Problem:    Vim9: cannot use "true" with has().
    Solution:   Use tv_get_bool(). (closes #6876)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1607
    Problem:    Vim9: getchar() test fails on MS-Windows.
    Solution:   First consume any available input.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1608
    Problem:    Vim9: getchar() test fails with GUI.
    Solution:   Avoid that getchar(0) gets stuck on K_IGNORE.
    Files:      src/getchar.c

    Patch 8.2.1609
    Problem:    Vim9: test fails when build without +channel.
    Solution:   Add check for +channel. (closes #6879)
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1610
    Problem:    Vim9: cannot pass "true" to list2str() and str2list().
    Solution:   Use tv_get_bool_chk(). (closes #6877)
    Files:      src/evalfunc.c, src/list.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1611
    Problem:    Vim9: cannot pass "true" to nr2char().
    Solution:   use tv_get_bool_chk(). (closes #6878)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1612
    Problem:    Vim9: cannot pass "true" to prop_remove().
    Solution:   Use dict_get_bool(). (closes #6853)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.1613
    Problem:    Vim9: cannot pass "true" to prop_type_add().
    Solution:   Use tv_get_bool(). (closes #6850)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.1614
    Problem:    Vim9: cannot pass "true" to searchcount().
    Solution:   Use tv_get_bool_chk(). (closes #6854)
    Files:      src/search.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1615
    Problem:    Vim9: cannot pass "true" to searchdecl().
    Solution:   use tv_get_bool_chk(). (closes #6881)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1616
    Problem:    Vim9: cannot pass "true" to synID().
    Solution:   Use tv_get_bool_chk(). (closes #6860)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1617
    Problem:    Vim9: cannot pass "true" to win_splitmove().
    Solution:   Use dict_get_bool(). (closes #6862)  Alphabetize test functions.
    Files:      src/evalwindow.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1618
    Problem:    Vim9: cannot pass "true" to setloclist().
    Solution:   Use dict_get_bool(). (closes #6882)
    Files:      src/quickfix.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1619
    Problem:    Vim9: cannot pass "true" to spellsuggest().
    Solution:   Use tv_get_bool_chk(). (closes #6883)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1620
    Problem:    searchcount() test fails.
    Solution:   Restore default flag value.
    Files:      src/search.c

    Patch 8.2.1621
    Problem:    Crash when using submatch(0, 1) in substitute().
    Solution:   Increment reference count. (closes #6887)
    Files:      src/regexp.c, src/testdir/test_substitute.vim

    Patch 8.2.1622
    Problem:    Loop to handle keys for the command line is too long.
    Solution:   Move code to functions. (Yegappan Lakshmanan, closes #6880)
    Files:      src/ex_getln.c

    Patch 8.2.1623
    Problem:    Vim9: using :call where it is not needed.
    Solution:   Remove :call. (closes #6892)
    Files:      src/testdir/test_maparg.vim, src/testdir/test_textprop.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1624
    Problem:    Vim9: cannot pass "true" to split(), str2nr() and strchars().
    Solution:   Use tv_get_bool_chk(). (closes #6884, closes #6885, closes #6886)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1625
    Problem:    Compiler warning for use of fptr_T.
    Solution:   Make the type less strict.
    Files:      src/regexp.c

    Patch 8.2.1626
    Problem:    Test for strchars() fails with different error number.
    Solution:   Adjust the error number.
    Files:      src/testdir/test_utf8.vim

    Patch 8.2.1627
    Problem:    Vim9: cannot pass "true" to submatch(), term_gettty() and
                term_start()
    Solution:   Use tv_get_bool_chk(). (closes #6888, closes #6890, closes #6889)
    Files:      src/evalfunc.c, src/terminal.c, src/job.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1628
    Problem:    Vim9: cannot pass "true" to timer_paused().
    Solution:   Use tv_get_bool(). (closes #6891)
    Files:      src/time.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1629
    Problem:    Test fails without terminal feature.
    Solution:   Check for terminal feature.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1630
    Problem:    Terminal test fails.
    Solution:   Correct argument to term_start().  Correct error number.
    Files:      src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim

    Patch 8.2.1631
    Problem:    test_fails() does not check the context of the line number.
    Solution:   Use another argument to specify the context of the line number.
    Files:      runtime/doc/testing.txt, runtime/doc/eval.txt,
                src/testdir/test_vim9_func.vim, src/testing.c, src/globals.h,
                src/evalfunc.c, src/message.c

    Patch 8.2.1632
    Problem:    Not checking the context of test_fails().
    Solution:   Add the line number and context arguments.  Give error if
                assert_fails() argument types are wrong.
    Files:      src/testing.c, src/errors.h, src/testdir/test_assert.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1633
    Problem:    Some error messages are internal but do not use iemsg().
    Solution:   Use iemsg(). (Dominique Pellé, closes #6894)
    Files:      src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c

    Patch 8.2.1634
    Problem:    Loop to handle keys for the command line is too long.
    Solution:   Move a few more parts to separate functions. (Yegappan Lakshmanan,
                closes #6895)
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.1635
    Problem:    No digraph for 0x2022 BULLET.
    Solution:   Use "oo". (Hans Ginzel, closes #6904)
    Files:      src/digraph.c, runtime/doc/digraph.txt

    Patch 8.2.1636
    Problem:    Get stuck if a popup filter causes an error.
    Solution:   Check whether the function can be called and does not cause an
                error.  (closes #6902)
    Files:      src/structs.h, src/popupwin.c, src/testdir/test_popupwin.vim
                src/testdir/dumps/Test_popupwin_wrong_name.dump,
                src/testdir/dumps/Test_popupwin_three_errors_1.dump,
                src/testdir/dumps/Test_popupwin_three_errors_2.dump

    Patch 8.2.1637
    Problem:    Vim9: :put ={expr} does not work inside :def function.
    Solution:   Add ISN_PUT. (closes #6397)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/register.c,
                src/proto/register.pro, src/edit.c, src/ex_docmd.c, src/mouse.c,
                src/normal.c, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1638
    Problem:    Leaking memory when popup filter function can't be called.
    Solution:   Don't return too soon.
    Files:      src/popupwin.c

    Patch 8.2.1639
    Problem:    Options window cannot be translated.
    Solution:   Get the translation for "local to" texts once and use them in many
                places. Fix that 'whichwrap' is not a local option. (issue #6800)
    Files:      runtime/optwin.vim

    Patch 8.2.1640
    Problem:    Amiga: missing header for getgrgid().
    Solution:   Add the grp.h header. (Ola Söder, closes #6906)
    Files:      src/os_amiga.h

    Patch 8.2.1641
    Problem:    Vim9: cannot use 0 or 1 where a bool is expected.
    Solution:   Allow using 0 and 1 for a bool type. (closes #6903)
    Files:      src/vim9compile.c, src/vim9type.c, src/proto/vim9type.pro,
                src/structs.h, src/testdir/test_vim9_script.vim

    Patch 8.2.1642
    Problem:    Options test fails.
    Solution:   Correct call to OptionG().
    Files:      runtime/optwin.vim

    Patch 8.2.1643
    Problem:    Vim9: :defcompile compiles dead functions.
    Solution:   Skip over dead functions.
    Files:      src/userfunc.c

    Patch 8.2.1644
    Problem:    Vim9: cannot assign 1 and 0 to bool at script level.
    Solution:   Add the TTFLAG_BOOL_OK flag to the type. Fix name of test
                function.
    Files:      src/vim9type.c, src/testdir/test_vim9_script.vim,
                src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.1645
    Problem:    GTK3: icons become broken images when resized.
    Solution:   Use gtk_image_new_from_icon_name(). (closes #6916)
                Fix compiler warnings.
    Files:      src/gui_gtk_x11.c

    Patch 8.2.1646
    Problem:    Amiga: Unnecessary #include.
    Solution:   Remove the #include. (Ola Söder, closes #6908)
    Files:      src/version.c

    Patch 8.2.1647
    Problem:    Vim9: result of expression with && and || cannot be assigned to a
                bool variable.
    Solution:   Add the TTFLAG_BOOL_OK flag and convert the value if needed.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1648
    Problem:    Amiga: no common build file for Amiga (-like) systems.
    Solution:   Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes #6805)
    Files:      Filelist, src/Make_ami.mak, src/Make_morph.mak, src/INSTALLami.txt

    Patch 8.2.1649
    Problem:    GTK3: using old file chooser.
    Solution:   Use native file chooser on GTK 3.20 and above. (Yogeshwar
                Velingker, closes #6909)
    Files:      src/gui_gtk.c

    Patch 8.2.1650
    Problem:    Vim9: result of && and || expression cannot be assigned to a bool
                at the script level.
    Solution:   Add the VAR_BOOL_OK flag.  Convert to bool when needed.
    Files:      src/structs.h, src/vim9type.c, src/proto/vim9type.pro,
                src/vim9script.c, src/evalvars.c, src/eval.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1651
    Problem:    Spellfile code not completely tested.
    Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6918)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.1652
    Problem:    Cannot translate lines in the options window.
    Solution:   Use the AddOption() function to split descriptions where indicated
                by a line break. (issue #6800)
    Files:      runtime/optwin.vim

    Patch 8.2.1653
    Problem:    Expand('<stack>') does not include the final line number.
    Solution:   Add the line number. (closes #6927)
    Files:      src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro,
                src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c,
                src/testing.c, src/testdir/test_expand_func.vim

    Patch 8.2.1654
    Problem:    When job writes to hidden buffer current window has display
                errors.  (Johnny McArthur)
    Solution:   Use aucmd_prepbuf() instead of switch_to_win_for_buf().
                (closes #6925)
    Files:      src/channel.c

    Patch 8.2.1655
    Problem:    Cannot build with Strawberry Perl 5.32.0.
    Solution:   Use Perl_sv_2pvbyte_flags. (closes #6921)
    Files:      src/if_perl.xs

    Patch 8.2.1656
    Problem:    Vim9: callstack wrong if :def function calls :def function.
    Solution:   Set the line number before calling. (closes #6914)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1657
    Problem:    Vim9: no proper error for nested ":def!".
    Solution:   Check for "!". (closes #6920)
    Files:      src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1658
    Problem:    Expand('<stack>') has trailing "..".
    Solution:   Remove the "..". (closes #6927)
    Files:      src/scriptfile.c, src/testdir/test_expand_func.vim

    Patch 8.2.1659
    Problem:    Spellfile code not completely tested.
    Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6929)
    Files:      src/testdir/test_spell.vim, src/testdir/test_spellfile.vim

    Patch 8.2.1660
    Problem:    Assert functions require passing expected result as the first
                argument, which isn't obvious.
    Solution:   Use a method, as in "runtest()->assert_equal(expected)".
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1661
    Problem:    Cannot connect to 127.0.0.1 for host with only IPv6 addresses.
    Solution:   pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger,
                closes #6931)
    Files:      src/channel.c

    Patch 8.2.1662
    Problem:    :mksession does not restore shared terminal buffer properly.
    Solution:   Keep a hashtab with terminal buffers. (Rob Pilling, closes #6930)
    Files:      src/hashtab.c, src/proto/terminal.pro, src/session.c,
                src/terminal.c, src/testdir/test_mksession.vim

    Patch 8.2.1663
    Problem:    Options window entries cannot be translated.
    Solution:   Use AddOption() for all explanations. (closes #6800)
    Files:      runtime/optwin.vim

    Patch 8.2.1664
    Problem:    Memory leak when using :mkview with a terminal buffer.
    Solution:   Don't use a hastab for :mkview. (Rob Pilling, closes #6935)
    Files:      src/session.c, src/terminal.c, src/testdir/test_mksession.vim

    Patch 8.2.1665
    Problem:    Cannot do fuzzy string matching.
    Solution:   Add matchfuzzy(). (Yegappan Lakshmanan, closes #6932)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/proto/search.pro, src/search.c, src/testdir/test_functions.vim

    Patch 8.2.1666
    Problem:    The initial value of 'backupskip' can have duplicate items.
    Solution:   Remove duplicates, like when it is set later. (Tom Ryder,
                closes #6940)
    Files:      src/option.c, src/testdir/test_options.vim

    Patch 8.2.1667
    Problem:    Local function name cannot shadow a global function name.
    Solution:   Ignore global functions when checking a script-local or scoped
                function name. (closes #6926)
    Files:      src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1668
    Problem:    Vim9: not accepting 0 or 1 as bool when type is any.
    Solution:   Convert the type with the CHECKTYPE instruction. (closes #6913)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1669
    Problem:    Vim9: memory leak when storing a value fails.
    Solution:   Free the value when not storing it.
    Files:      src/evalvars.c

    Patch 8.2.1670
    Problem:    A couple of gcc compiler warnings.
    Solution:   Initialize local variables. (Dominique Pellé, closes #6944)
    Files:      src/memline.c, src/option.c

    Patch 8.2.1671
    Problem:    Vim9: stray error for missing white space.
    Solution:   Do not skip over white space after member. (closes #6917)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1672
    Problem:    v_lock is used when it is not initialized. (Yegappan Lakshmanan)
    Solution:   Initialize the typval in eval1().
    Files:      src/eval.c

    Patch 8.2.1673
    Problem:    complete_info() selected index has an invalid value. (Ben Jackson)
    Solution:   Set the index when there is only one match. (closes #6945)
                Add test for complete_info().
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.1674
    Problem:    Vim9: internal error when using variable that was not set.
    Solution:   Give a meaningful error. (closes #6937)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1675
    Problem:    MinGW: testdir makefile deletes non-existing file.
    Solution:   Use another way to delete the output file if it already exists.
                (Michael Soyka)
    Files:      src/testdir/Make_ming.mak

    Patch 8.2.1676
    Problem:    Compiler warnings for function typecast.
    Solution:   Add an intermediate cast to "void *".
    Files:      src/os_unix.c

    Patch 8.2.1677
    Problem:    Memory access errors when calling setloclist() in an autocommand.
    Solution:   Give an error if the list was changed unexpectedly. (closes #6946)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1678
    Problem:    Crash when using ":set" after ":ownsyntax". (Dhiraj Mishra)
    Solution:   Make sure 'spelloptions' is not NULL. (closes #6950)
    Files:      src/syntax.c, src/testdir/test_syntax.vim

    Patch 8.2.1679
    Problem:    Vim9: ":*" is not recognized as a range.
    Solution:   Move recognizing "*" into skip_range(). (closes #6938)
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c,
                src/ex_getln.c, src/userfunc.c, src/vim9compile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.1680
    Problem:    Vim9: line number for compare error is wrong.
    Solution:   Set SOURCING_LNUM. (closes #6936)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1681
    Problem:    Vim9: unnecessary :call commands in tests.
    Solution:   Remove the commands. (issue #6936)
    Files:      src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1682
    Problem:    Vim9: const works in an unexpected way.
    Solution:   ":const" only disallows changing the variable, not the value.
                Make "list[0] = 9" work at the script level.
    Files:      src/vim9compile.c, src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1683
    Problem:    Vim9: assignment test fails.
    Solution:   Include changes to find Ex command.
    Files:      src/ex_docmd.c

    Patch 8.2.1684
    Problem:    "gF" does not use line number after file in Visual mode.
    Solution:   Look for ":123" after the Visual area. (closes #6952)
    Files:      src/findfile.c, src/testdir/test_gf.vim

    Patch 8.2.1685
    Problem:    Vim9: cannot declare a constant value.
    Solution:   Introduce ":const!".
    Files:      runtime/doc/vim9.txt, src/ex_cmds.h, src/vim9compile.c,
                src/vim9.h, src/vim9execute.c, src/evalvars.c,
                src/proto/evalvars.pro, src/errors.h, src/vim.h, src/eval.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1686
    Problem:    Vim9: "const!" not sufficiently tested.
    Solution:   Add a few more test cases.  Fix type checking.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1687
    Problem:    Vim9: out of bounds error.
    Solution:   Check that cmdidx is not negative.
    Files:      src/vim9compile.c

    Patch 8.2.1688
    Problem:    Increment/decrement removes text property.
    Solution:   Insert the new number before deleting the old one. (closes #6962)
    Files:      src/ops.c, src/testdir/test_textprop.vim

    Patch 8.2.1689
    Problem:    'colorcolumn' doesn't show in indent.
    Solution:   Also draw the column when draw_state is WL_BRI or WL_SBR.
                (Alexey Demin, closes #6948, closes #6619)
    Files:      src/drawline.c, src/testdir/dumps/Test_colorcolumn_2.dump,
                src/testdir/dumps/Test_colorcolumn_3.dump,
                src/testdir/test_highlight.vim

    Patch 8.2.1690
    Problem:    Text properties not adjusted for "I" in Visual block mode.
    Solution:   Call inserted_bytes(). (closes #6961)
    Files:      src/ops.c, src/change.c, src/proto/change.pro,
                src/testdir/test_textprop.vim

    Patch 8.2.1691
    Problem:    Vim9: list<any> is not accepted where list<number> is expected.
    Solution:   Add functions to allocate and free a type_T, use it in
                ISN_CHECKTYPE. (closes #6959)
    Files:      src/vim9.h, src/globals.h, src/vim9compile.c, src/vim9execute.c,
                src/vim9type.c, src/proto/vim9type.pro, src/errors.h,
                src/evalfunc.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1692
    Problem:    Build fails because TTFLAG_STATIC is missing.
    Solution:   Include missing change.
    Files:      src/structs.h

    Patch 8.2.1693
    Problem:    "hi def" does not work for cleared highlight.
    Solution:   Check the "sg_cleared" flag. (Maxim Kim, closes #6956,
                closes #4405)
    Files:      src/highlight.c, src/testdir/test_highlight.vim

    Patch 8.2.1694
    Problem:    Compiler warning for loss if data.
    Solution:   Add typecast.
    Files:      src/ops.c

    Patch 8.2.1695
    Problem:    Vim9: crash when using varargs type "any".
    Solution:   Check if uf_va_type is &t_any. (closes #6957)
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1696
    Problem:    Unused (duplicate) macros.
    Solution:   Remove the macros.
    Files:      src/spell.c

    Patch 8.2.1697
    Problem:    Inconsistent capitalization of error messages.
    Solution:   Always start with a capital.
    Files:      src/errors.h, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim,
                src/testdir/test_assert.vim

    Patch 8.2.1698
    Problem:    Cannot lock a variable in legacy Vim script like in Vim9.
    Solution:   Make ":lockvar 0" work.
    Files:      runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro,
                src/dict.c, src/eval.c, src/list.c, src/typval.c, src/userfunc.c,
                src/testdir/test_const.vim, src/testdir/test_listdict.vim

    Patch 8.2.1699
    Problem:    Build failure due to missing error message.
    Solution:   Add error message.
    Files:      src/errors.h

    Patch 8.2.1700
    Problem:    Vim9: try/catch causes wrong value to be returned.
    Solution:   Reset tcd_return. (closes #6964)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1701
    Problem:    Vim9: sort("i") does not work.
    Solution:   Don't try getting a number for a string argument. (closes #6958)
    Files:      src/list.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1702
    Problem:    Crash when using undo after deleting folded lines.
    Solution:   Check for NULL pointer. (closes #6968)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.1703
    Problem:    ":highlight clear" does not restore default link.
    Solution:   Remember the default link and restore it. (Antony Scriven,
                closes #6970, closes #4405)
    Files:      runtime/doc/syntax.txt, src/highlight.c,
                src/testdir/test_highlight.vim

    Patch 8.2.1704
    Problem:    Vim9: crash in for loop when autoload script has an error.
    Solution:   Reset suppress_errthrow.  Check for NULL list. (closes #6967)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1705
    Problem:    "verbose hi Name" reports incorrect info after ":hi clear".
    Solution:   Store the script context. (Antony Scriven, closes #6975)
    Files:      src/highlight.c, src/testdir/test_highlight.vim

    Patch 8.2.1706
    Problem:    Vim9: crash after running into the "Multiple closures" error.
    Solution:   When a function fails still update any closures. (closes #6973)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1707
    Problem:    Small inconsistency in highlight test.
    Solution:   Use one argument for :execute. (Antony Scriven, #6975)
    Files:      src/testdir/test_highlight.vim

    Patch 8.2.1708
    Problem:    Vim9: error message for function has unprintable characters.
    Solution:   use printable_func_name(). (closes #6965)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1709
    Problem:    Vim9: memory leak when using multiple closures.
    Solution:   Free the partial.
    Files:      src/vim9execute.c

    Patch 8.2.1710
    Problem:    Vim9: list of list type can be wrong.
    Solution:   Use VAR_UNKNOWN for empty list.  Recognize VAR_UNKNOWN when
                looking for a common type. (closes #6979)
    Files:      src/vim9type.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1711
    Problem:    Vim9: leaking memory when using partial.
    Solution:   Do delete the function even when it was compiled.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/vim9execute.c

    Patch 8.2.1712
    Problem:    Vim9: leaking memory when calling a lambda.
    Solution:   Decrement function reference from ISN_DCALL.
    Files:      src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro

    Patch 8.2.1713
    Problem:    Motif GUI: crash when setting menu colors. (Andrzej Bylicki)
    Solution:   Add {} to make "n" incremented correctly. (closes #6989,
                closes #5948)
    Files:      src/gui_motif.c

    Patch 8.2.1714
    Problem:    Text properties corrupted with substitute command. (Filipe
                Brandenburger)
    Solution:   Get the changed line again after using u_savesub(). (closes #6984)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.1715
    Problem:    Motif GUI: commented out code missed {}.
    Solution:   Add {} and reenable the code. (similar to #6989)
    Files:      src/gui_motif.c

    Patch 8.2.1716
    Problem:    Options window has duplicate translations.
    Solution:   Make one entry for "global or local to buffer".  Fix wrong text.
                (closes #6983)
    Files:      runtime/optwin.vim

    Patch 8.2.1717
    Problem:    MS-Windows installer doesn't have Russian translations.
    Solution:   Add Russian translations. (closes #6985)
    Files:      nsis/gvim.nsi, nsis/lang/russian.nsi

    Patch 8.2.1718
    Problem:    Vim9: :def function disallows "firstline" and "lastline" argument
                names for no good reason.
    Solution:   Don't check the arguments for a :def function. (closes #6986)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1719
    Problem:    Vim9: no error if comma is missing in between arguments.
    Solution:   Give an error message.
    Files:      src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1720
    Problem:    Vim9: memory leak with heredoc that isn't executed. (Dominique
                Pellé)
    Solution:   Don't clear the list items. (closes #6991)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1721
    Problem:    MS-Windows installer doesn't work.
    Solution:   Write "Russian" in ASCII. (closes #6995, see #6985).
    Files:      nsis/lang/russian.nsi

    Patch 8.2.1722
    Problem:    Vim9: cannot assign a lambda to a variable of type function.
    Solution:   Allow for assigning a partial to a variable of type function.
                (Naruhiko Nishino, closes #6996)
    Files:      src/vim9type.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1723
    Problem:    Vim9: Variable argument name cannot start with underscore.
    Solution:   Use eval_isnamec1(). (closes #6988)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1724
    Problem:    Vim9: assignment tests spread out.
    Solution:   Create new test file for assignment tests.
    Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/Make_all.mak

    Patch 8.2.1725
    Problem:    Not all Pascal files are recognized.
    Solution:   Add filetype patterns. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1726
    Problem:    Fuzzy matching only works on strings.
    Solution:   Support passing a dict.  Add matchfuzzypos() to also get the match
                positions. (Yegappan Lakshmanan, closes #6947)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/proto/search.pro, src/search.c, src/testdir/Make_all.mak,
                src/testdir/test_functions.vim, src/testdir/test_matchfuzzy.vim

    Patch 8.2.1727
    Problem:    A popup created with "cursorline" will ignore "firstline".
    Solution:   When both "cursorline" and "firstline" are present put the cursor
                on "firstline". (closes #7000)  Add the "winid" argument to
                getcurpos().
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/popupwin.c,
                src/evalwindow.c, src/testdir/test_popupwin.vim,
                src/testdir/test_functions.vim

    Patch 8.2.1728
    Problem:    Compiler warning for using uninitialized variable. (John Marriott)
    Solution:   Initialize "neighbor".
    Files:      src/search.c

    Patch 8.2.1729
    Problem:    Endless loop when ":normal" feeds popup window filter.
    Solution:   Add the ex_normal_busy_done flag.
    Files:      src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c,
                src/menu.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_normal_cmd.dump

    Patch 8.2.1730
    Problem:    Vim9: cannot use member of unknown type.
    Solution:   When type is unknown use "any". (closes #6997)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1731
    Problem:    Vim9: cannot use += to append to empty NULL list.
    Solution:   Copy the list instead of extending it. (closes #6998)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1732
    Problem:    Stuck when win_execute() for a popup causes an error.
    Solution:   Disable the filter callback on error. (issue #6999)
    Files:      src/popupwin.c, src/testdir/term_util.vim,
                src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_win_execute.dump

    Patch 8.2.1733
    Problem:    Vim9: memory leaks when using nested function.
    Solution:   Free function when compilation fails.
    Files:      src/vim9compile.c

    Patch 8.2.1734
    Problem:    Vim9: cannot use a funcref for a closure twice.
    Solution:   Instead of putting the funcref on the stack use a growarray on the
                execution context.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1735
    Problem:    Github actions appear to timeout too soon.
    Solution:   use "timeout" instead of "ping".
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1736
    Problem:    Failure to compile a pattern not tested much.
    Solution:   Add tests where a pattern fails to compile. (Yegappan Lakshmanan,
                closes #7004)
    Files:      src/testdir/gen_opt_test.vim, src/testdir/test_arglist.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
                src/testdir/test_checkpath.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_debugger.vim, src/testdir/test_functions.vim,
                src/testdir/test_history.vim, src/testdir/test_listdict.vim,
                src/testdir/test_options.vim, src/testdir/test_search_stat.vim,
                src/testdir/test_sort.vim, src/testdir/test_substitute.vim,
                src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_user_func.vim

    Patch 8.2.1737
    Problem:    Cursor line highlight in popup window is not always updated.
    Solution:   Check if the cursor has moved. (closes #7010)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim
                src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump

    Patch 8.2.1738
    Problem:    Mac: str2float() recognizes comma instead of decimal point.
    Solution:   Set LC_NUMERIC to "C". (closes #7003)
    Files:      src/os_mac_conv.c

    Patch 8.2.1739
    Problem:    Vim9: crash when compiling a manually defined function. (Antony
                Scriven)
    Solution:   Check that the script ID is positive. (closes #7012)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1740
    Problem:    Test fails without the terminal feature.
    Solution:   Skip test if the terminal feature is not available.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1741
    Problem:    pathshorten() only supports using one character.
    Solution:   Add an argument to control the length. (closes #7006)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/filepath.c,
                src/proto/filepath.pro, src/testdir/test_functions.vim

    Patch 8.2.1742
    Problem:    Test still fails without the terminal feature.
    Solution:   Put check for terminal feature in separate function.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.1743
    Problem:    Cannot build without the eval feature.
    Solution:   Move shorten_dir outside of #ifdef.
    Files:      src/filepath.c

    Patch 8.2.1744
    Problem:    Vim9: using ":const!" is weird.
    Solution:   Use "var" - "final" - "const" like Dart.  "let" still works for
                now.
    Files:      runtime/doc/vim9.txt, src/ex_cmds.h, src/errors.h, src/evalvars.c,
                src/proto/evalvars.pro, src/cmdexpand.c, src/eval.c,
                src/ex_docmd.c, src/vim9compile.c, src/vim9execute.c,
                src/vim9script.c, src/vim.h, src/ex_cmdidxs.h,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1745
    Problem:    Tiny version doesn't build.
    Solution:   Add dummy ex_var() function.
    Files:      src/ex_docmd.c

    Patch 8.2.1746
    Problem:    Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino)
    Solution:   Specifically check for "fina". (closes #7020)
    Files:      src/ex_docmd.c, src/testdir/test_trycatch.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1747
    Problem:    Result of expand() unexpectedly depends on 'completeslash'.
    Solution:   Temporarily reset 'completeslash'. (Yasuhiro Matsumoto,
                closes #7021)
    Files:      src/evalfunc.c, src/testdir/test_ins_complete.vim

    Patch 8.2.1748
    Problem:    Closing split window in other tab may cause a crash.
    Solution:   Set tp_curwin properly. (Rob Pilling, closes #7018)
    Files:      src/window.c, src/testdir/test_winbuf_close.vim

    Patch 8.2.1749
    Problem:    Vim9: crash when closure fails in nested function.
    Solution:   Handle function returns before dereferencing remaining closures.
                (closes #7008)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1750
    Problem:    Setting firstline with popup_setoptions() fails if cursorline is
                set.
    Solution:   Use apply_options(). Update the popup before applying "zz".
                (closes #7010)
    Files:      src/popupwin.c, src/proto/popupwin.pro, src/move.c,
                src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump,
                src/testdir/dumps/Test_popupwin_set_firstline_1.dump,
                src/testdir/dumps/Test_popupwin_set_firstline_2.dump

    Patch 8.2.1751
    Problem:    Using 2 where bool is expected may throw an error.
    Solution:   Make this backwards compatible.
    Files:      src/typval.c, src/evalfunc.c, src/testdir/test_search.vim,
                src/testdir/test_terminal2.vim

    Patch 8.2.1752
    Problem:    GTK GUI: cannot map alt-? with <A-?>. (Ingo Karkat)
    Solution:   Adjust the characters for which the shift modifier is removed.
                (closes #7016)  Make Motif and Win32 use the same function as GTK.
    Files:      src/misc2.c, src/gui_x11.c, src/gui_w32.c,
                src/testdir/test_termcodes.vim

    Patch 8.2.1753
    Problem:    Vim9: crash when using import at script level.
    Solution:   Give a "not implemented yet" error. (closes #7026)
    Files:      src/evalvars.c

    Patch 8.2.1754
    Problem:    Completion with spell checking not tested.
    Solution:   Add a test case. (Dominique Pellé, closes #7024)
    Files:      src/testdir/test_spell.vim

    Patch 8.2.1755
    Problem:    Vim9: crash when using invalid heredoc marker. (Dhiraj Mishra)
    Solution:   Check for NULL list. (closes #7027)  Fix comment character.
    Files:      src/vim9compile.c, src/evalvars.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.1756
    Problem:    Vim9: :let will soon be disallowed.
    Solution:   Add v:disallow_let temporarily.  Fix tests.
    Files:      src/vim.h, src/errors.h, src/evalvars.c, src/vim9compile.c,
                src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1757
    Problem:    Mac: default locale is lacking the encoding.
    Solution:   Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022)
    Files:      src/os_mac_conv.c, src/testdir/test_environ.vim

    Patch 8.2.1758
    Problem:    Vim9: type of unmaterialized list is wrong.
    Solution:   Use list<number>.
    Files:      src/vim9type.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1759
    Problem:    Vim9: Some tests are still using :let.
    Solution:   Change more declarations to use :var.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1760
    Problem:    Vim9: crash when end marker is missing. (Dhiraj Mishra)
    Solution:   Check for end of function lines. (closes #7031)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1761
    Problem:    Vim9: Some tests are still using :let.
    Solution:   Change more declarations to use :var.
    Files:      src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1762
    Problem:    When a timer uses :stopinsert Insert mode completion isn't
                stopped. (Stanley Chan)
    Solution:   Call ins_compl_prep(ESC).
    Files:      src/edit.c, src/testdir/test_ins_complete.vim,
                src/testdir/dumps/Test_pum_stopped_by_timer.dump

    Patch 8.2.1763
    Problem:    Vim9: cannot use "true" for popup window scrollbar option.
    Solution:   use dict_get_bool(). (closes #7029)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.1764
    Problem:    Vim9: no error when assigning to script var with wrong type.
    Solution:   Fix off-by-one error. (closes #7028)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1765
    Problem:    Vim9: some tests use "var var".
    Solution:   Use "var name". (closes #7032)
    Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.1766
    Problem:    Vim9: Some tests are still using :let.
    Solution:   Change the last few declarations to use :var.
    Files:      src/testdir/runtest.vim, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_maparg.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_textprop.vim

    Patch 8.2.1767
    Problem:    Vim9: test fails with python support.
    Solution:   Use "let" in legacy function.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1768
    Problem:    Cannot use the help menu from a terminal window.
    Solution:   Add ":tlnoremenu" commands. (Yee Cheng Chin, closes #7023)
    Files:      runtime/menu.vim, src/testdir/test_gui.vim

    Patch 8.2.1769
    Problem:    A popup filter interferes with using :normal to move the cursor in
                a popup.
    Solution:   Do not invoke the filter when ex_normal_busy is set.
    Files:      runtime/doc/popup.txt, src/getchar.c, src/evalfunc.c,
                src/ex_docmd.c, src/menu.c, src/globals.h,
                src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_normal_cmd.dump

    Patch 8.2.1770
    Problem:    Invalid memory use when using SpellFileMissing autocmd.
    Solution:   Add test case. (Dominique Pellé, closes #7036)  Fix using a window
                that was closed.
    Files:      src/spell.c, src/testdir/test_spell.vim

    Patch 8.2.1771
    Problem:    synIDattr() cannot get the value of ctermul.
    Solution:   Add the "ul" value for "what". (closes #7037)
    Files:      runtime/doc/eval.txt, src/highlight.c, src/evalfunc.c,
                src/testdir/test_highlight.vim

    Patch 8.2.1772
    Problem:    Cannot use CTRL-W <Down> to move out of a terminal window.
    Solution:   Use special_to_buf() instead of mb_char2bytes(). (closes #7045)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.1773
    Problem:    Crash when calling mapset() with a list as first argument.
    Solution:   Check for NULL. (closes #7040)
    Files:      src/map.c, src/testdir/test_maparg.vim

    Patch 8.2.1774
    Problem:    GTK: hang when forced to exit.
    Solution:   Do not clean up "mainwin" when really_exiting is set.
                (Zdenek Dohnal, closes #7042)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.1775
    Problem:    MS-Windows: adding a long quickfix list is slow.
    Solution:   Shorten the buffer name only for the first entry. (Yegappan
                Lakshmanan, closes #7039, closes #7033)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1776
    Problem:    Filetype.vim may be loaded twice.
    Solution:   Do "syntax on" after "filetype on". (Adam Stankiewicz,
                closes #7049)
    Files:      runtime/defaults.vim

    Patch 8.2.1777
    Problem:    Vim9: some assignment tests in the wrong file.
    Solution:   Move assignment tests to test_vim9_assign.
    Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1778
    Problem:    Vim9: returning from a partial call clears outer context, causing
                a crash.
    Solution:   Put the outer context in the stack frame. (closes #7044)
    Files:      src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim

    Patch 8.2.1779
    Problem:    Some debian changelog files are not recognized.
    Solution:   Add */debian/changelog. (Jason Franklin)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1780
    Problem:    Statusline not updated when splitting windows.
    Solution:   Call status_redraw_all(). (Jason Franklin, closes #5496)
    Files:      src/window.c, src/testdir/test_statusline.vim

    Patch 8.2.1781
    Problem:    Writing to prompt buffer interferes with insert mode.
    Solution:   Use win_enter() instead of just setting "curwin". (Ben Jackson,
                closes #7035)
    Files:      src/autocmd.c, src/testdir/test_prompt_buffer.vim

    Patch 8.2.1782
    Problem:    Vim9: cannot pass boolean to mapset().
    Solution:   Use get_tv_bool(). (closes #7041)
    Files:      src/map.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1783 (after 8.2.1781)
    Problem:    Try-catch test fails.
    Solution:   Don't call win_enter(), only call entering_window().
    Files:      src/autocmd.c, src/window.c, src/proto/window.pro,
                src/testdir/runtest.vim

    Patch 8.2.1784
    Problem:    commits are not scanned for security problems
    Solution:   Enable Github code scanning. (Christian Brabandt, closes #7057)
    Files:      .github/workflows/codeql-analysis.yml

    Patch 8.2.1785
    Problem:    Compiler warning for strcpy() out of bounds. (Christian Brabandt)
    Solution:   use memmove() instead.
    Files:      src/dict.c

    Patch 8.2.1786
    Problem:    Various Normal mode commands not fully tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #7059)
    Files:      src/testdir/test_normal.vim, src/testdir/test_regexp_utf8.vim,
                src/testdir/test_registers.vim, src/testdir/test_spellfile.vim,
                src/testdir/test_tagjump.vim, src/testdir/test_visual.vim

    Patch 8.2.1787
    Problem:    Crash with 'incsearch' and very long line.
    Solution:   Check whether regprog becomes NULL. (closes #7063)
    Files:      src/search.c, src/testdir/test_search.vim

    Patch 8.2.1788
    Problem:    Vim9: still allows :let for declarations.
    Solution:   Make the default for v:disallow_let one.  It can still be set to
                zero to allow for using :let.
    Files:      src/evalvars.c, src/testdir/runtest.vim

    Patch 8.2.1789
    Problem:    Vim9: crash with invalid list constant. (Dhiraj Mishra)
    Solution:   Return FAIL when compiling the list fails. (closes #7066)
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.1790
    Problem:    MS-Windows with Python: crash when executed from Vifm.
    Solution:   Use NUL instead of CONIN. (Ken Takata, closes #7061, closes #7053)
    Files:      src/if_python3.c

    Patch 8.2.1791
    Problem:    Vim9: debugger test fails.
    Solution:   Use "var" instead of "let".
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.1792
    Problem:    Configure does not recognize Racket 6.1+.
    Solution:   Add a check for "rktio". (closes #7062)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.1793
    Problem:    Not consistently giving the "is a directory" warning.
    Solution:   Adjust check for illegal file name and directory. (Yasuhiro
                Matsumoto, closes #7067)
    Files:      src/fileio.c, src/testdir/test_edit.vim

    Patch 8.2.1794
    Problem:    No falsy Coalescing operator.
    Solution:   Add the "??" operator.  Fix mistake with function argument count.
    Files:      runtime/doc/eval.txt, src/eval.c, src/vim9compile.c,
                src/vim9type.c, src/testdir/test_expr.vim,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1795
    Problem:    Vim9: operators && and || have a confusing result.
    Solution:   Make the result a boolean.
    Files:      runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c,
                src/vim9execute.c, src/vim9type.c, src/structs.h, src/vim9.h,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1796
    Problem:    Vim9: invalid memory access with weird function name. (Dhiraj
                Mishra)
    Solution:   Check the name is valid.  Add a test.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1797
    Problem:    Vim9: some parts of the code not tested.
    Solution:   Add a few tests.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1798
    Problem:    Vim9: ternary operator condition is too permissive.
    Solution:   Use tv_get_bool_chk().
    Files:      runtime/doc/vim9.txt, src/eval.c, src/vim9compile.c,
                src/vim9execute.c, src/testdir/vim9.vim,
                src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.1799
    Problem:    Some Normal mode commands not fully tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #7073)
    Files:      src/testdir/test_gf.vim, src/testdir/test_goto.vim,
                src/testdir/test_normal.vim, src/testdir/test_registers.vim,
                src/testdir/test_startup.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_visual.vim

    Patch 8.2.1800
    Problem:    Vim9: memory leak if "if" condition is invalid.
    Solution:   Free ppconst earlier.
    Files:      src/vim9compile.c

    Patch 8.2.1801
    Problem:    Undo file not found when using ":args" or ":next".
    Solution:   Handle like editing another file. (closes #7072)
    Files:      src/ex_cmds.c, src/testdir/test_undo.vim

    Patch 8.2.1802
    Problem:    Vim9: crash with unterminated dict. (Dhiraj Mishra)
    Solution:   Return empty string instead of NULL. (closes #7084)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1803
    Problem:    A few failures are not tested.
    Solution:   Test a few failures. (Dominique Pellé, closes #7075)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_json.vim, src/testdir/test_listdict.vim

    Patch 8.2.1804
    Problem:    resolve('/') returns an empty string.
    Solution:   Don't remove single slash. (closes #7074)
    Files:      src/filepath.c, src/testdir/test_functions.vim

    Patch 8.2.1805
    Problem:    Unix: terminal mode changed when using ":shell".
    Solution:   Avoid calling settmode() when not needed. (issue #7079)
    Files:      src/os_unix.c

    Patch 8.2.1806
    Problem:    MS-Windows with Python: Vim freezes after import command.
    Solution:   Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro
                Matsumoto, closes #7083)
    Files:      src/if_python3.c

    Patch 8.2.1807
    Problem:    Can use :help in a terminal popup window.
    Solution:   Give an error. (closes #7088)
    Files:      src/help.c, src/testdir/test_popupwin.vim

    Patch 8.2.1808
    Problem:    No test coverage for ":spelldump!".
    Solution:   Add a test. (Dominique Pellé, closes #7089)
    Files:      src/testdir/test_spell.vim

    Patch 8.2.1809
    Problem:    Mapping some keys with Ctrl does not work properly.
    Solution:   For terminal, GTK and Motif handle "@", "^" and "_" codes.
    Files:      src/misc2.c, src/proto/misc2.pro, src/term.c, src/gui_gtk_x11.c,
                src/gui_x11.c, src/testdir/test_termcodes.vim

    Patch 8.2.1810
    Problem:    Some code in normal.c not covered by tests.
    Solution:   Add normal mode tests. (Yegappan Lakshmanan, closes #7086)
    Files:      src/testdir/test_charsearch.vim, src/testdir/test_normal.vim

    Patch 8.2.1811
    Problem:    Mapping Ctrl-key does not work for '{', '}' and '|'.
    Solution:   Remove the shift modifier. (closes #6457)
    Files:      runtime/doc/map.txt, src/misc2.c, src/testdir/test_termcodes.vim

    Patch 8.2.1812
    Problem:    Vim9: nested closure throws an internal error.
    Solution:   Do not skip a local variable with a partial. (closes #7065)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1813
    Problem:    Vim9: can assign wrong type to script dict. (Christian J. Robinson)
    Solution:   Check the type if known.
    Files:      src/structs.h, src/eval.c, src/vim9script.c,
                src/proto/vim9script.pro, src/proto/evalvars.pro,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1814 (after 8.2.1813)
    Problem:    Missing change to remove "static".
    Solution:   Add the change.
    Files:      src/evalvars.c

    Patch 8.2.1815
    Problem:    Vim9: memory leak when using function reference.
    Solution:   Temporarily disable the test.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1816
    Problem:    Vim9: another memory leak when using function reference.
    Solution:   Temporarily disable the tests.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1817
    Problem:    Vim9: wrong instruction when reusing a local variable spot.
    Solution:   Clear a newly allocated local variable. (closes #7080)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1818
    Problem:    SE Linux: deprecation warning for security_context_t.
    Solution:   Use "char *" instead. (James McCoy, closes #7093)
    Files:      src/os_unix.c

    Patch 8.2.1819
    Problem:    Vim9: Memory leak when using a closure.
    Solution:   Compute the minimal refcount in the funcstack.  Reenable disabled
                tests.
    Files:      src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h,
                src/eval.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1820
    Problem:    Vim9: crash when error happens in timer callback.
    Solution:   Check that current_exception is not NULL. (closes #7100)
    Files:      src/ex_docmd.c

    Patch 8.2.1821
    Problem:    Vim9: concatenating to a NULL list doesn't work.
    Solution:   Handle a NULL list like an empty list. (closes #7064)
    Files:      src/list.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1822 (after 8.2.1821)
    Problem:    List test doesn't fail.
    Solution:   Adjust the test for NULL list handling.
    Files:      src/testdir/test_listdict.vim

    Patch 8.2.1823
    Problem:    "gN" does not select the matched string.
    Solution:   Move the cursor to the start of the match.
    Files:      src/search.c, src/testdir/test_gn.vim

    Patch 8.2.1824
    Problem:    Vim9: variables at the script level escape their scope.
    Solution:   When leaving a scope remove variables declared in it.
    Files:      src/structs.h, src/ex_eval.c, src/evalvars.c,
                src/proto/evalvars.pro, src/testdir/test_vim9_script.vim

    Patch 8.2.1825
    Problem:    Vim9: accessing freed memory.
    Solution:   Clear sv_name when the variable is deleted.
    Files:      src/ex_eval.c

    Patch 8.2.1826
    Problem:    Vim9: cannot use a {} block at script level.
    Solution:   Recognize a {} block.
    Files:      src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_eval.c,
                src/structs.h, src/proto/ex_eval.pro, src/errors.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1827
    Problem:    Filetype detection does not test enough file names.
    Solution:   Test more file names. (Adam Stankiewicz, closes #7099)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1828
    Problem:    Build failure without the +eval feature.
    Solution:   Add dummies for ex_block and ex_endblock.
    Files:      src/ex_docmd.c

    Patch 8.2.1829
    Problem:    Warnings when executing Github actions.
    Solution:   Use another method to set environment variables. (Ken Takata,
                closes #7107)
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1830
    Problem:    MS-Windows: Python3 issue with stdin.
    Solution:   Check if stdin is readable. (Ken Takata, closes #7106)
    Files:      src/if_python3.c

    Patch 8.2.1831
    Problem:    File missing from distribution.
    Solution:   Add the github code analyses file.
    Files:      Filelist

    Patch 8.2.1832
    Problem:    readdirex() error is displayed as a message. (Yegappan Lakshmanan)
    Solution:   Use semsg() instead of smsg().
    Files:      src/fileio.c, src/testdir/test_functions.vim

    Patch 8.2.1833
    Problem:    When reading from stdin dup() is called twice.
    Solution:   Remove the dup() in main.c. (Ken Takata, closes #7110)
    Files:      src/main.c

    Patch 8.2.1834
    Problem:    PyEval_InitThreads() is deprecated in Python 3.9.
    Solution:   Do not call PyEval_InitThreads in Python 3.9 and later. (Ken
                Takata, closes #7113)  Avoid warnings for functions.
    Files:      src/if_python3.c, src/if_py_both.h

    Patch 8.2.1835
    Problem:    ":help ??" finds the "!!" tag.
    Solution:   Do not translate "?" into ".".  (Naruhiko Nishino, closes #7114,
                closes #7115)
    Files:      src/help.c, src/testdir/test_help_tagjump.vim

    Patch 8.2.1836
    Problem:    Autocmd test fails on pacifist systems.
    Solution:   Check that /bin/kill exists. (James McCoy, closes #7117)
                Tune the timing, make the autocmd test run faster.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.1837
    Problem:    Using "gn" after "gN" does not work.
    Solution:   Extend the other end of the Visual area. (closes #7109)
    Files:      src/search.c, src/testdir/test_gn.vim

    Patch 8.2.1838
    Problem:    Vim9: cannot insert a comment line in an expression.
    Solution:   Skip comment lines at the script level. (closes #7111)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1839
    Problem:    Vim9: memory leaks reported in assign test.
    Solution:   Move the failing job_start() call to separate test files, it
                causes false leak reports.
    Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_fails.vim,
                src/testdir/Make_all.mak

    Patch 8.2.1840
    Problem:    Vim9: error message is not clear about compilation error.
    Solution:   Say "compiling" instead of "processing".
    Files:      src/vim9compile.c, src/message.c, src/globals.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1841
    Problem:    Vim9: test for compilation error fails in normal build.
    Solution:   Invoke CheckRunVimInTerminal in a separate function.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.1842
    Problem:    Crash when USE_FNAME_CASE is defined and using :browse.
    Solution:   Don't use read-only memory for ".". (Yegappan Lakshmanan,
                closes #7123)
    Files:      src/ex_cmds.c, src/ex_docmd.c, src/testdir/test_edit.vim

    Patch 8.2.1843
    Problem:    Netbeans: with huge buffer number memory allocation may fail.
    Solution:   Check for size overflow.
    Files:      src/netbeans.c

    Patch 8.2.1844
    Problem:    Using "q" at the more prompt doesn't stop a long message.
    Solution:   Check for "got_int". (closes #7122)
    Files:      src/message.c, src/testdir/test_messages.vim,
                src/testdir/dumps/Test_quit_long_message.dump

    Patch 8.2.1845
    Problem:    Vim9: function defined in a block can't use variables defined in
                that block.
    Solution:   First step: Make a second hashtab that holds all script variables,
                also block-local ones, with more information.
    Files:      src/structs.h, src/evalvars.c, src/ex_eval.c, src/vim9script.c,
                src/proto/vim9script.pro, src/scriptfile.c

    Patch 8.2.1846
    Problem:    Vim9: variables declared in a local block are not found in
                when a function is compiled.
    Solution:   Look for script variables in sn_all_vars.
    Files:      src/structs.h, src/vim9compile.c, src/proto/vim9compile.pro,
                src/userfunc.c, src/proto/userfunc.pro, src/ex_eval.c,
                src/vim9script.c, src/proto/vim9script.pro, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1847
    Problem:    Vim9: using negative value for unsigned type.
    Solution:   Use zero instead of -1.
    Files:      src/vim9compile.c

    Patch 8.2.1848
    Problem:    Crash when passing a NULL string or list to popup_settext().
    Solution:   Check for NULL pointers. (closes #7132)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.1849
    Problem:    Vim9: garbage collection frees block-local variables.
    Solution:   Mark all script variables as used.
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1850
    Problem:    "vat" does not select tags correctly over line break.
    Solution:   Adjust the search pattern. (Aufar Gilbran, closes #7136)
    Files:      src/textobject.c, src/testdir/test_textobjects.vim

    Patch 8.2.1851
    Problem:    Vim9: "!" followed by space incorrectly used.
    Solution:   Skip over trailing spaces. (closes #7131)
    Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1852
    Problem:    map() returning zero for NULL list is unexpected.
    Solution:   Return the empty list. (closes #7133)
    Files:      src/list.c, src/testdir/test_filter_map.vim,
                src/testdir/test_blob.vim

    Patch 8.2.1853
    Problem:    "to_f" is recognized at "topleft" modifier.
    Solution:   Do not recognize modifier when "_" follows. (closes #7019)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1854
    Problem:    Vim9: crash when throwing exception for NULL string. (Dhiraj
                Mishra)
    Solution:   Handle NULL string like empty string. (closes #7139)
    Files:      src/vim9execute.c, src/errors.h, src/testdir/test_vim9_script.vim

    Patch 8.2.1855
    Problem:    Vim9: get error message when nothing is wrong.
    Solution:   Check called_emsg instead of did_emsg. (closes #7143)
    Files:      src/vim9compile.c, src/vim9execute.c, src/errors.h

    Patch 8.2.1856
    Problem:    "2resize" uses size of current window. (Daniel Steinberg)
    Solution:   Use size of resized window. (Yasuhiro Matsumoto, closes #7152)
    Files:      src/ex_docmd.c, src/testdir/test_window_cmd.vim

    Patch 8.2.1857
    Problem:    Vim9: using job_status() on an unused var gives an error.
    Solution:   Return "fail". (closes #7158)
    Files:      src/job.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1858
    Problem:    Vim9: filter functions return number instead of bool.
    Solution:   Return v:true instead of one. (closes #7144)
    Files:      src/popupwin.c, src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1859
    Problem:    Vim9: crash in unpack assignment.
    Solution:   Make sure an error message is turned into an exception.
                (closes #7159)
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1860
    Problem:    Vim9: memory leak when throwing empty string.
    Solution:   Free the empty string.
    Files:      src/vim9execute.c

    Patch 8.2.1861
    Problem:    Vim9: no specific error when parsing lambda fails.
    Solution:   Also give syntax errors when not evaluating. (closes #7154)
    Files:      src/dict.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1862
    Problem:    vim9: memory leak when compiling lambda fails.
    Solution:   Call clear_evalarg().
    Files:      src/vim9compile.c

    Patch 8.2.1863
    Problem:    Json code not sufficiently tested.
    Solution:   Add more test cases. (Dominique Pellé, closes #7166)
    Files:      src/testdir/test_json.vim

    Patch 8.2.1864
    Problem:    Vim9: no error for wrong list type.
    Solution:   Add flag to indicate a constant. (closes #7160)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.1865
    Problem:    Vim9: add() does not check type of argument.
    Solution:   Inline the add() call. (closes #7160)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1866
    Problem:    Vim9: appending to pushed blob gives wrong result.
    Solution:   Set ga_maxlen when copying a blob.
    Files:      src/blob.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1867
    Problem:    Vim9: argument to add() not checked for blob.
    Solution:   Add the BLOBAPPEND instruction.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1868
    Problem:    Vim9: no error for missing space after comma in dict.
    Solution:   Check for white space. (closes #6672)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1869
    Problem:    Vim9: memory leak when using add().
    Solution:   Free the added item.
    Files:      src/vim9execute.c

    Patch 8.2.1870
    Problem:    Vim9: no need to keep all script variables.
    Solution:   Only keep script variables when a function was defined that could
                use them.  Fix freeing static string on exit.
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/structs.h,
                src/ex_eval.c, src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.1871
    Problem:    Using %v in 'errorformat' may fail before %Z.
    Solution:   Set qf_viscol only when qf_col is set. (closes #7169)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1872
    Problem:    Matchfuzzy() does not prefer sequential matches.
    Solution:   Give sequential matches a higher bonus. (Christian Brabandt,
                closes #7140)
    Files:      src/search.c, src/testdir/test_matchfuzzy.vim

    Patch 8.2.1873
    Problem:    Vim9: missing white space when using <f-args>.
    Solution:   Add spaces. (Christian J. Robinson)
    Files:      src/usercmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1874
    Problem:    Can't do something just before leaving Insert mode.
    Solution:   Add the InsertLeavePre autocommand event. (closes #7177)
    Files:      runtime/doc/autocmd.txt, src/edit.c, src/vim.h,
                src/autocmd.c, src/testdir/test_edit.vim

    Patch 8.2.1875
    Problem:    Warning when building GTK gui.
    Solution:   Add missing function parameter.
    Files:      src/gui_gtk_f.c

    Patch 8.2.1876
    Problem:    Vim9: argument types for builtin functions are not checked at
                compile time.
    Solution:   Add an argument type checking mechanism. Implement type checks for
                one function.
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/Make_all.mak

    Patch 8.2.1877 (after 8.2.1876)
    Problem:    Test for function list fails.
    Solution:   Move "obsolete" comments one line up.
    Files:      src/evalfunc.c

    Patch 8.2.1878
    Problem:    GTK: error for redefining function. (Tony Mechelynck)
    Solution:   Remove "gtk_" prefix from local functions and prepend "gui_" to
                global functions.
    Files:      src/gui_gtk_f.c, src/gui_gtk_f.h, src/gui_gtk.c, src/gui_gtk_x11.c

    Patch 8.2.1879
    Problem:    Vim9: argument types of insert() not checked when compiling.
    Solution:   Add argument type checks for insert().
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.1880
    Problem:    Vim9: Asan complains about adding zero to NULL.
    Solution:   Check for argument count first.
    Files:      src/vim9compile.c

    Patch 8.2.1881
    Problem:    Cannot build with GTK3.
    Solution:   Adjust form functions.
    Files:      src/gui_gtk_f.c

    Patch 8.2.1882
    Problem:    Vim9: v:disallow_let is no longer needed.
    Solution:   Remove v:disallow_let.
    Files:      src/evalvars.c, src/vim.h, src/vim9compile.c

    Patch 8.2.1883
    Problem:    Compiler warnings when using Python.
    Solution:   Adjust PyCFunction to also have the second argument.  Use "int"
                return type for some functions.  Insert "(void *)" to get rid of
                the remaining warnings.
    Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c

    Patch 8.2.1884
    Problem:    Compiler warning for uninitialized variable. (John Marriott)
    Solution:   Initialize with NULL.
    Files:      src/vim9compile.c, src/evalfunc.c

    Patch 8.2.1885
    Problem:    Filetype tests unnecessarily creates swap files.
    Solution:   Disable 'swapfile'. (Ken Takata, closes #7183)
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.1886
    Problem:    Using ":silent!" in a popup filter has unexpected effect.
    Solution:   Use did_emsg instead of called_emsg. (closes #7178)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.1887
    Problem:    Github actions not optimally configured.
    Solution:   Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi,
                closes #7184)
    Files:      .github/workflows/ci-windows.yaml

    Patch 8.2.1888
    Problem:    Vim9: Getbufline(-1, 1, '$') gives an error.
    Solution:   Return an empty list. (closes #7180)
    Files:      src/evalbuffer.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.1889
    Problem:    Vim9: erroneous error for missing white space after {}.
    Solution:   Don't skip over white space after {}. (issue #7167)
    Files:      src/dict.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1890
    Problem:    Vim9: strange error for subtracting from a list.
    Solution:   Check getting a number, not a string. (closes #7167)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1891
    Problem:    Vim9: skipping over expression doesn't handle line breaks.
    Solution:   Pass evalarg to skip_expr(). (closes #7157)
    Files:      src/vim9compile.c, src/eval.c, src/proto/eval.pro, src/ex_docmd.c,
                src/misc1.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1892
    Problem:    Valgrind warns for using uninitialized access in tests.
    Solution:   Fix condition for breaking out of loop. (Dominique Pellé,
                closes #7187)
    Files:      src/terminal.c

    Patch 8.2.1893
    Problem:    Fuzzy matching does not support multiple words.
    Solution:   Add support for matching white space separated words. (Yegappan
                Lakshmanan, closes #7163)
    Files:      runtime/doc/eval.txt, src/search.c,
                src/testdir/test_matchfuzzy.vim

    Patch 8.2.1894
    Problem:    Vim9: command modifiers are not supported.
    Solution:   Support "silent" and "silent!".
    Files:      src/structs.h, src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/evalvars.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.1895 (after 8.2.1894)
    Problem:    Vim9: silent command modifier test fails.
    Solution:   Add missing changes.
    Files:      src/ex_docmd.c

    Patch 8.2.1896
    Problem:    Valgrind warns for using uninitialized memory.
    Solution:   NUL terminate the SmcOpenConnection() error message. (Dominique
                Pellé, closes #7194)
    Files:      src/os_unix.c

    Patch 8.2.1897
    Problem:    Command modifiers are saved and set inconsistently.
    Solution:   Separate parsing and applying command modifiers.  Save values in
                cmdmod_T.
    Files:      src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/ex_cmds.h, src/vim9compile.c

    Patch 8.2.1898
    Problem:    Command modifier parsing always uses global cmdmod.
    Solution:   Pass in cmdmod_T to use.  Rename struct fields consistently.
    Files:      src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c,
                src/diff.c, src/change.c, src/cmdhist.c, src/edit.c,
                src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c,
                src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c,
                src/help.c, src/if_cscope.c, src/indent.c, src/mark.c,
                src/memline.c, src/message.c, src/option.c, src/ops.c,
                src/os_unix.c, src/quickfix.c, src/register.c, src/scriptfile.c,
                src/search.c, src/session.c, src/tag.c, src/terminal.c,
                src/textformat.c, src/usercmd.c, src/vim9compile.c, src/window.c,
                src/proto/ex_docmd.pro

    Patch 8.2.1899
    Problem:    Crash in out-of-memory situation.
    Solution:   Bail out if shell_name is NULL. (Dominique Pellé, closes #7196)
    Files:      src/ex_cmds.c

    Patch 8.2.1900
    Problem:    Vim9: command modifiers do not work.
    Solution:   Make most command modifiers work.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1901
    Problem:    Variable completion does not work in command line window.
    Solution:   Use the "prevwin". (closes #7198)
    Files:      src/evalvars.c, src/testdir/test_ins_complete.vim

    Patch 8.2.1902
    Problem:    Default option values are changed when using :badd for an existing
                buffer.
    Solution:   When calling buflist_new() pass a zero line number. (closes #7195)
    Files:      src/ex_cmds.c, src/testdir/test_buffer.vim

    Patch 8.2.1903 (after 8.2.1902)
    Problem:    Buffer test fails with normal features.
    Solution:   Use 'numberwidth' instead of 'conceallevel' in the test.
    Files:      src/testdir/test_buffer.vim

    Patch 8.2.1904
    Problem:    Still using default option values after using ":badd +1".
    Solution:   Find a window where options were set.  Don't set the window when
                using ":badd".
    Files:      src/buffer.c, src/ex_cmds.c, src/vim.h,
                src/testdir/test_buffer.vim

    Patch 8.2.1905
    Problem:    The wininfo list may contain stale entries.
    Solution:   When closing a window remove any other entry where the window
                pointer is NULL.
    Files:      src/buffer.c, src/proto/buffer.pro, src/window.c

    Patch 8.2.1906
    Problem:    Warning for signed/unsigned.
    Solution:   Use size_t instead of int. (Mike Williams)
    Files:      src/proto/usercmd.pro, src/usercmd.c, src/vim9execute.c

    Patch 8.2.1907
    Problem:    Complete_info().selected may be wrong.
    Solution:   Update cp_number if it was never set. (issue #6945)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.1908
    Problem:    Lua is initialized even when not used.
    Solution:   Put lua_init() after check for "eap->skip". (Christian Brabandt,
                closes #7191).  Avoid compiler warnings.
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.1909
    Problem:    Number of status line items is limited to 80.
    Solution:   Dynamically allocate the arrays. (Rom Grk, closes #7181)
    Files:      runtime/doc/options.txt, src/buffer.c, src/optionstr.c,
                src/proto/buffer.pro, src/screen.c, src/structs.h,
                src/testdir/test_options.vim, src/testdir/test_statusline.vim,
                src/vim.h

    Patch 8.2.1910
    Problem:    Reading past the end of the command line.
    Solution:   Check for NUL. (closes #7204)
    Files:      src/ex_docmd.c, src/testdir/test_edit.vim

    Patch 8.2.1911
    Problem:    Tiny build fails.
    Solution:   Add #ifdef.
    Files:      src/insexpand.c

    Patch 8.2.1912
    Problem:    With Python 3.9 some tests fail.
    Solution:   Take into account the different error message. (James McCoy,
                closes #7210)
    Files:      src/testdir/test_python3.vim

    Patch 8.2.1913
    Problem:    GTK GUI: rounding for the cell height is too strict.
    Solution:   Round up above 15/16 of a pixel. (closes #7203)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.1914
    Problem:    Vim9: cannot put line break in expression for '=' register.
    Solution:   Pass fgetline to set_expr_line(). (closes #7209)
    Files:      src/register.c, src/proto/register.pro, src/ex_docmd.c,
                src/eval.c, src/proto/eval.pro, src/misc2.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.1915
    Problem:    Vim9: error for wrong number of arguments is not useful.
    Solution:   Mention whatever we have for the name. (closes #7208)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1916
    Problem:    Vim9: function call is aborted even when "silent!" is used.
    Solution:   Use did_emsg instead of called_emsg. (closes #7213)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1917
    Problem:    No test for improved Man command.
    Solution:   Test that shell arguments are properly escaped.
    Files:      src/testdir/test_man.vim

    Patch 8.2.1918
    Problem:    Vim9: E1100 mentions :let.
    Solution:   Mention "var". (closes #7207)
    Files:      src/vim9script.c, src/errors.h

    Patch 8.2.1919
    Problem:    Assert_fails() setting emsg_silent changes normal execution.
    Solution:   Use a separate flag in_assert_fails.
    Files:      src/testing.c, src/globals.h, src/buffer.c, src/change.c,
                src/fileio.c, src/insexpand.c, src/message.c, src/misc1.c,
                src/normal.c, src/screen.c, src/term.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim, src/testdir/gen_opt_test.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim,
                src/testdir/test_popup.vim, src/testdir/test_terminal.vim

    Patch 8.2.1920
    Problem:    Listlbr test fails when run after another test.
    Solution:   Add test separately to list of test targets.
    Files:      src/testdir/Make_all.mak, src/testdir/test_alot_utf8.vim

    Patch 8.2.1921
    Problem:    Fuzzy matching does not recognize path separators.
    Solution:   Add a bonus for slash and backslash. (Yegappan Lakshmanan,
                closes #7225)
    Files:      src/search.c, src/testdir/test_matchfuzzy.vim

    Patch 8.2.1922
    Problem:    Win32: scrolling doesn't work properly when part of window is
                off-screen.
    Solution:   Fall back to GDI scrolling if part of the window is off-screen.
                Handle multi-monitor setup better. (Ken Takata, closes #7219)
    Files:      src/gui_w32.c

    Patch 8.2.1923
    Problem:    Vim9: "filter" command modifier doesn't work.
    Solution:   Check for space on char before argument. (closes #7216,
                closes #7222)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1924
    Problem:    Vim9: crash when indexing dict with NULL key.
    Solution:   Use empty string instead of NULL. (closes #7229)  Make error
                message more useful for empty string.
    Files:      src/vim9execute.c, src/globals.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.1925 (after 8.2.1924)
    Problem:    List/dict test fails.
    Solution:   Correct expected exception.
    File:       src/testdir/test_listdict.vim

    Patch 8.2.1926
    Problem:    Cannot use a space in 'spellfile'. (Filipe Brandenburger)
    Solution:   Permit using a space. (closes #7230)
    Files:      src/spell.c, src/testdir/gen_opt_test.vim

    Patch 8.2.1927
    Problem:    Vim9: get unknown error with an error in a timer function.
    Solution:   Use did_emsg instead of called_emsg. (closes #7231)
    Files:      src/vim9compile.c, src/vim9execute.c

    Patch 8.2.1928
    Problem:    Vim9: "silent!" not effective when list index is wrong.
    Solution:   Ignore list index failure when emsg_silent is set. (closes #7232)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.1929
    Problem:    MS-Windows: problem loading Perl 5.32.
    Solution:   Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes #7234)
    Files:      src/if_perl.xs

    Patch 8.2.1930
    Problem:    Wrong input if removing shift results in special key code.
    Solution:   Handle special key codes. (closes #7189)
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.1931
    Problem:    Vim9: arguments of extend() not checked at compile time.
    Solution:   Add argument type checking for extend().
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.1932
    Problem:    Compiler warnings when building with Athena GUI.
    Solution:   Fix function signatures.
    Files:      src/gui_at_fs.c

    Patch 8.2.1933
    Problem:    Cannot sort using locale ordering.
    Solution:   Add a flag for :sort and sort() to use the locale. (Dominique
                Pellé, closes #7237)
    Files:      runtime/doc/change.txt, runtime/doc/eval.txt, src/ex_cmds.c,
                src/list.c, src/testdir/test_sort.vim

    Patch 8.2.1934
    Problem:    Vim9: command modifiers in :def function not tested.
    Solution:   Add tests.  Fix using modifier before filter command.
    Files:      src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1935 (after 8.2.1933)
    Problem:    Sort test fails on Mac.
    Solution:   Disable the sort test with locale on Mac.
    Files:      src/testdir/test_sort.vim

    Patch 8.2.1936
    Problem:    Session sets the local 'scrolloff' value to the global value.
    Solution:   Do not let restoring the global option value change the local
                value.
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.1937
    Problem:    Vim9: test for confirm modifier fails in some situations.
    Solution:   Add a short wait.  Handle failure better.
    Files:      src/testdir/term_util.vim, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1938
    Problem:    Wiping out a terminal buffer makes some tests fail.
    Solution:   Do not wipe out the terminal buffer unless wanted.
    Files:      src/testdir/term_util.vim, src/testdir/test_terminal.vim,
                src/testdir/test_terminal3.vim

    Patch 8.2.1939
    Problem:    Invalid memory access in Ex mode with global command.
    Solution:   Make sure the cursor is on a valid line. (closes #7238)
    Files:      src/move.c, src/testdir/test_ex_mode.vim

    Patch 8.2.1940
    Problem:    Vim9: browse modifier test fails on Mac.
    Solution:   Only test when the +browse feature is available.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.1941
    Problem:    Ex mode test fails on MS-Windows with GUI.
    Solution:   Skip the test when using gvim.
    Files:      src/testdir/test_ex_mode.vim

    Patch 8.2.1942
    Problem:    Insufficient test coverage for the Netbeans interface.
    Solution:   Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan,
                closes #7240)
    Files:      runtime/doc/netbeans.txt, src/mouse.c,
                src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim,
                src/testdir/test_quickfix.vim

    Patch 8.2.1943
    Problem:    Vim9: wrong error message when colon is missing.
    Solution:   Check for a missing colon. (issue #7239)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1944
    Problem:    Netbeans test is flaky.
    Solution:   Add a short delay. (Yegappan Lakshmanan, closes #7246)
    Files:      src/testdir/test_netbeans.vim

    Patch 8.2.1945
    Problem:    Crash when passing NULL function to reduce().
    Solution:   Check for NULL pointer and give an error. (Dominique Pellé,
                closes #7243)
    Files:      src/list.c, src/errors.h, src/testdir/test_listdict.vim

    Patch 8.2.1946
    Problem:    sort() with NULL string not tested.
    Solution:   Add a test.  use v:collate. (Dominique Pellé, closes #7247)
    Files:      src/testdir/test_sort.vim

    Patch 8.2.1947
    Problem:    Crash when using "zj" without folds. (Sean Dewar)
    Solution:   Check for at least one fold. (closes #7245)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.1948
    Problem:    GUI: crash when handling message while closing a window. (Srinath
                Avadhanula)
    Solution:   Don't handle message while closing a window. (closes #7250)
    Files:      src/window.c, src/globals.h, src/getchar.c

    Patch 8.2.1949
    Problem:    Vim9: using extend() on null dict is silently ignored.
    Solution:   Give an error message.  Initialize a dict variable with an empty
                dictionary. (closes #7251)
    Files:      src/errors.h, src/list.c, src/evalvars.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.1950
    Problem:    Vim9: crash when compiling function fails when getting type.
    Solution:   Handle NULL type. (closes #7253)
    Files:      src/vim9type.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1951 (after 8.2.1949)
    Problem:    Test for list and dict fails.
    Solution:   Adjust for using an empty list/dict for a null one.
    Files:      src/testdir/test_listdict.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim

    Patch 8.2.1952
    Problem:    Vim9: crash when using a NULL dict key.
    Solution:   Use a NULL dict key like an empty string. (closes #7249)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.1953
    Problem:    Vim9: extra "unknown" error after other error.
    Solution:   Restore did_emsg count after EXEC instruction. (closes #7254)
                Improve error message from assert_fails()
    Files:      src/vim9execute.c, src/testing.c,
                src/testdir/test_vim9_script.vim, src/testdir/test_assert.vim

    Patch 8.2.1954
    Problem:    Vim9: not all command modifiers are tested.
    Solution:   Add tests for "keep" modifiers.  Fix that marks are lost even
                though ":lockmarks" is used.
    Files:      src/ex_cmds.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.1955
    Problem:    Vim9: not all command modifiers are tested.
    Solution:   Add tests for remaining modifiers.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.1956
    Problem:    Vim9: cannot specify argument types for lambda.
    Solution:   Allow adding argument types.  Check arguments when calling a
                function reference.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c,
                src/eval.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.1957
    Problem:    Diff and cursorcolumn highlighting don't mix.
    Solution:   Fix condition for what attribute to use. (Christian Brabandt,
                closes #7258, closes #7260)
    Files:      src/drawline.c, src/testdir/dumps/Test_diff_cuc_01.dump,
                src/testdir/dumps/Test_diff_cuc_02.dump,
                src/testdir/dumps/Test_diff_cuc_03.dump,
                src/testdir/dumps/Test_diff_cuc_04.dump,
                src/testdir/test_diffmode.vim

    Patch 8.2.1958 (after 8.2.1956)
    Problem:    Build failure with timers.
    Solution:   Add missing change.
    Files:      src/popupwin.c

    Patch 8.2.1959
    Problem:    Crash when terminal buffer name is made empty. (Dhiraj Mishra)
    Solution:   Fall back to "[No Name]". (closes #7262)
    Files:      src/buffer.c, src/proto/buffer.pro, src/terminal.c,
                src/testdir/test_terminal.vim

    Patch 8.2.1960
    Problem:    Warning for uninitialized variable.
    Solution:   Initialize the variable.
    Files:      src/evalfunc.c

    Patch 8.2.1961
    Problem:    Various comments can be improved.
    Solution:   Various comment adjustments.
    Files:      src/dict.c, src/structs.h, src/time.c, src/testdir/shared.vim,
                src/testdir/test_netbeans.vim, src/gui_motif.c

    Patch 8.2.1962
    Problem:    Netbeans may access freed memory.
    Solution:   Check the buffer pointer is still valid.  Add a test. (Yegappan
                Lakshmanan, closes #7248)
    Files:      src/netbeans.c, src/testdir/test_netbeans.vim

    Patch 8.2.1963
    Problem:    Crash when using a popup window with "latin1" encoding.
    Solution:   Don't use ScreenLinesUC when enc_utf8 is false. (closes #7241)
    Files:      src/screen.c, src/terminal.c, src/testdir/test_popupwin.vim

    Patch 8.2.1964
    Problem:    Not all ConTeXt files are recognized.
    Solution:   Add two patterns. (closes #7263)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.1965
    Problem:    Vim9: tests fail without the channel feature.
    Solution:   Check if the channel feature is present. (Dominique Pellé,
                closes #7270)
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1966
    Problem:    Popup becomes current window after closing a terminal window.
    Solution:   When restoring the window after executing autocommands, check that
                the window ID is still the same.  (Naruhiko Nishino,
                closes #7272)
    Files:      src/autocmd.c, src/window.c, src/proto/window.pro, src/structs.h,
                src/testdir/test_popupwin.vim

    Patch 8.2.1967
    Problem:    The session file does not restore the alternate file.
    Solution:   Add ":balt".  Works like ":badd" and also sets the buffer as the
                alternate file.  Use it in the session file. (closes #7269,
                closes #6714)
    Files:      runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmdidxs.h,
                src/ex_docmd.c, src/vim.h, src/ex_cmds.c, src/session.c,
                src/testdir/test_buffer.vim

    Patch 8.2.1968
    Problem:    Vim9: has() assumes a feature does not change dynamically.
    Solution:   Check whether a feature may change dynamically. (closes #7265)
    Files:      src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.1969
    Problem:    Vim9: map() may change the list or dict item type.
    Solution:   Add mapnew().
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/list.c, src/proto/list.pro, src/testdir/test_filter_map.vim

    Patch 8.2.1970
    Problem:    It is easy to make mistakes when cleaning up swap files after the
                system crashed.
    Solution:   Warn for the process still running after recovery.  Do not
                automatically delete a swap file created on another system.
                (David Fries, closes #7273)
    Files:      src/memline.c, src/testdir/test_swap.vim

    Patch 8.2.1971
    Problem:    Memory leak when map() fails.
    Solution:   Clear the typval.
    Files:      src/list.c

    Patch 8.2.1972
    Problem:    Crash when recreating nested fold.
    Solution:   Check for empty growarray. (closes #7278)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.1973
    Problem:    Finding a patch number can be a bit slow.
    Solution:   Use binary search. (closes #7279)
    Files:      src/version.c

    Patch 8.2.1974
    Problem:    Vim9: test for has('gui_running') fails with VIMDLL.
    Solution:   Adjust the #ifdef. (Ken Takata, closes #7276)
    Files:      src/evalfunc.c

    Patch 8.2.1975
    Problem:    Win32: memory leak when encoding conversion fails.
    Solution:   Free the allocated memory. (Ken Takata, closes #7277)
    Files:      src/os_win32.c

    Patch 8.2.1976
    Problem:    Cannot backspace in prompt buffer after using cursor-left. (Maxim
                Kim)
    Solution:   Ignore "arrow_used" in a prompt buffer. (closes #7281)
    Files:      src/edit.c, src/testdir/test_prompt_buffer.vim

    Patch 8.2.1977
    Problem:    Vim9: error for using a string in a condition is confusing.
    Solution:   Give a more specific error.  Also adjust the compile time type
                checking for || and &&.
    Files:      src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro,
                src/typval.c, src/errors.h, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1978
    Problem:    Making a mapping work in all modes is complicated.
    Solution:   Add the <Cmd> special key. (Yegappan Lakshmanan, closes #7282,
                closes 4784, based on patch by Bjorn Linse)
    Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt,
                runtime/doc/map.txt, src/edit.c, src/errors.h, src/ex_docmd.c,
                src/ex_getln.c, src/getchar.c, src/insexpand.c, src/keymap.h,
                src/map.c, src/misc2.c, src/normal.c, src/ops.c,
                src/proto/getchar.pro, src/screen.c, src/terminal.c,
                src/testdir/test_mapping.vim

    Patch 8.2.1979
    Problem:    "term_opencmd" option of term_start() is truncated. (Sergey
                Vlasov)
    Solution:   Allocate the buffer to hold the command. (closes #7284)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.1980
    Problem:    Vim9: some tests are not done at the script level.
    Solution:   Use CheckDefAndScriptSuccess() in more places.  Fix uncovered
                problems.
    Files:      src/eval.c, src/list.c, src/scriptfile.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.1981
    Problem:    MinGW: parallel compilation might fail.
    Solution:   Add dependencies on $(OUTDIR). (Masamichi Abe, closes #7287)
    Files:      src/Make_cyg_ming.mak

    Patch 8.2.1982
    Problem:    Quickfix window not updated when adding invalid entries.
    Solution:   Update the quickfix buffer properly. (Yegappan Lakshmanan, closes
                #7291, closes #7271)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.1983
    Problem:    ml_get error when using <Cmd> to open a terminal.
    Solution:   If the window changed reset the incsearch state. (closes #7289)
    Files:      src/ex_getln.c, src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_from_cmd.dump

    Patch 8.2.1984
    Problem:    Cannot use :vimgrep in omni completion, causing C completion to
                fail.
    Solution:   Add the EX_LOCK_OK flag to :vimgrep. (closes #7292)
    Files:      src/ex_cmds.h, src/testdir/test_quickfix.vim

    Patch 8.2.1985
    Problem:    Crash when closing terminal popup with <Cmd> mapping.
    Solution:   Check b_term is not NULL. (closes #7294)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.1986
    Problem:    Expression test is flaky on Appveyor.
    Solution:   Temporarily disable the test in MS-Windows.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.1987
    Problem:    MS-Windows: Win32.mak is no longer needed.
    Solution:   Do not include Win32.mak. (Jason McHugh, closes #7290)
    Files:      src/Make_mvc.mak, src/INSTALLpc.txt

    Patch 8.2.1988
    Problem:    Still in Insert mode when opening terminal popup with a <Cmd>
                mapping in Insert mode.
    Solution:   Exit Insert mode. (closes #7295)
    Files:      src/edit.c, src/testdir/test_terminal.vim

    Patch 8.2.1989
    Problem:    Info popup triggers WinEnter and WinLeave autocommands.
    Solution:   Suppress autocommands for the info popup. (closes #7296)
    Files:      src/popupmenu.c, src/testdir/test_popupwin.vim

    Patch 8.2.1990
    Problem:    Cursor position wrong in terminal popup with finished job.
    Solution:   Only add the top and left offset when not done already.
                (closes #7298)
    Files:      src/popupwin.c, src/structs.h, src/drawline.c, src/move.c,
                src/terminal.c, src/testdir/dumps/Test_terminal_popup_m1.dump

    Patch 8.2.1991
    Problem:    Coverity warns for not using the ga_grow() return value.
    Solution:   Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes #7303)
    Files:      src/getchar.c

    Patch 8.2.1992
    Problem:    Build fails with small features.
    Solution:   Add #ifdef.
    Files:      src/move.c

    Patch 8.2.1993
    Problem:    Occasional failure of the netbeans test.
    Solution:   Add "silent!". (Yegappan Lakshmanan, closes #7304)
    Files:      src/testdir/test_netbeans.vim

    Patch 8.2.1994 (after 8.2.1981)
    Problem:    MS-Windows: MinGW always does a full build.
    Solution:   Only check if $OUTDIR exists. (Masamichi Abe, closes #7311)
    Files:      src/Make_cyg_ming.mak

    Patch 8.2.1995
    Problem:    The popup menu can cause too much redrawing.
    Solution:   Reduce the length of the displayed text. (Yasuhiro Matsumoto,
                closes #7306)
    Files:      src/popupmenu.c

    Patch 8.2.1996
    Problem:    Vim9: invalid error for argument of extend().
    Solution:   Check if the type could match. (closes #7299)
    Files:      src/evalfunc.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.1997
    Problem:    Window changes when using bufload() while in a terminal popup.
    Solution:   When searching for a window by ID also find a popup window.
                (closes #7307)
    Files:      src/window.c, src/testdir/test_terminal.vim

    Patch 8.2.1998
    Problem:    Terminal Cmd test sometimes fails to close popup.
    Solution:   Add "term_finish" option.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.1999
    Problem:    Terminal popup test sometimes fails.
    Solution:   Wait for the popup to close.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.2000
    Problem:    Vim9: dict.key assignment not implemented yet.
    Solution:   Implement dict.key assignment. (closes #7312)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2001
    Problem:    Vim9: :def function does not apply 'maxfuncdepth'.
    Solution:   Use 'maxfuncdepth'. (issue #7313)
    Files:      src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2002
    Problem:    Vim9: lambda argument shadowed by function name.
    Solution:   Let function name be shadowed by lambda argument. (closes #7313)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2003
    Problem:    Build error with +conceal but without +popupwin.
    Solution:   Add #ifdef. (Tom Ryder, closes #7316)
    Files:      src/drawline.c

    Patch 8.2.2004 (after 8.2.2002)
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize "ufunc". (John Marriott)
    Files:      src/vim9compile.c

    Patch 8.2.2005
    Problem:    Redoing a mapping with <Cmd> doesn't work properly.
    Solution:   Fill the redo buffer.  Use "<SNR>" instead of a key code.
                (closes #7282)
    Files:      src/ops.c, src/getchar.c, src/testdir/test_mapping.vim

    Patch 8.2.2006
    Problem:    .pbtxt files are not recognized.
    Solution:   Recognize .pbtxt as protobuf text buffers. (closes #7326)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2007
    Problem:    Test for insert mode in popup is not reliable.
    Solution:   Wait for the popup to disappear. (Ozaki Kiichi, closes #7321)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.2008
    Problem:    MS-Windows GUI: handling channel messages lags.
    Solution:   Reduce the wait time from 100 to 10 msec. (closes #7097)
    Files:      src/gui_w32.c

    Patch 8.2.2009
    Problem:    MS-Windows: setting $LANG in gvimext only causes problems.
    Solution:   Do not set $LANG. (Ken Takata, closes #7325)
    Files:      src/GvimExt/gvimext.cpp

    Patch 8.2.2010
    Problem:    Vim9: compiling fails for unreachable return statement.
    Solution:   Fix it. (closes #7319)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2011
    Problem:    "syn sync" reports a very large number.
    Solution:   Use "at the first line".
    Files:      src/syntax.c, src/testdir/test_syntax.vim

    Patch 8.2.2012
    Problem:    Vim9: confusing error message when using bool wrongly.
    Solution:   Mention "Bool" instead of "Special". (closes #7323)
    Files:      src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.2013
    Problem:    Vim9: not skipping white space after unary minus.
    Solution:   Skip whitespace. (closes #7324)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2014
    Problem:    Using CTRL-O in a prompt buffer moves cursor to start of the line.
    Solution:   Do not move the cursor when restarting edit. (closes #7330)
    Files:      src/job.c, src/testdir/test_prompt_buffer.vim

    Patch 8.2.2015
    Problem:    Vim9: literal dict #{} is not like any other language.
    Solution:   Support the JavaScript syntax.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c,
                src/proto/vim9compile.pro, src/errors.h,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.2016
    Problem:    Swap file test is a little flaky.
    Solution:   Don't set a byte to a fixed value, increment it.
    Files:      src/testdir/test_swap.vim

    Patch 8.2.2017 (after 8.2.2015)
    Problem:    Missing part of the dict change.
    Solution:   Also change the script level dict.
    Files:      src/dict.c

    Patch 8.2.2018
    Problem:    Vim9: script variable not found from lambda.
    Solution:   In a lambda also check the script hashtab for a variable without a
                scope. (closes #7329)
    Files:      src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2019 (after 8.2.2016)
    Problem:    Swap file test fails on MS-Windows.
    Solution:   Add four to the process ID. (Ken Takata, closes #7333)
    Files:      src/testdir/test_swap.vim

    Patch 8.2.2020
    Problem:    Some compilers do not like the "namespace" argument.
    Solution:   Rename to "use_namespace". (closes #7332)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro

    Patch 8.2.2021
    Problem:    Vim9: get E1099 when autocommand resets did_emsg.
    Solution:   Add did_emsg_cumul. (closes #7336)
    Files:      src/globals.h, src/ex_docmd.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2022
    Problem:    Vim9: star command recognized erroneously.
    Solution:   Give an error for missing colon. (issue #7335)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2023
    Problem:    Vim: memory leak when :execute fails.
    Solution:   Clear the growarray.
    Files:      src/vim9execute.c

    Patch 8.2.2024
    Problem:    Flicker when redrawing a popup with a title and border.
    Solution:   Do not redraw the border where the title is displayed. (Naruhiko
                Nishino, closes #7334)
    Files:      src/popupwin.c

    Patch 8.2.2025
    Problem:    Amiga: Not all colors are used on OS4.
    Solution:   Adjust the #ifdef to include __amigaos4__. (Ola Söder,
                closes #7328)
    Files:      src/term.c

    Patch 8.2.2026
    Problem:    Coverity warns for possibly using not NUL terminated string.
    Solution:   Put a NUL in b0_hname just in case.
    Files:      src/memline.c

    Patch 8.2.2027
    Problem:    Coverity warns for uninitialized field.
    Solution:   Set "v_lock".
    Files:      src/list.c

    Patch 8.2.2028
    Problem:    Coverity warns for using an uninitialized variable.
    Solution:   Initialize to NULL.
    Files:      src/eval.c

    Patch 8.2.2029
    Problem:    Coverity warns for not checking return value.
    Solution:   Check that u_save_cursor() returns OK.
    Files:      src/ops.c

    Patch 8.2.2030
    Problem:    Some tests fail on Mac.
    Solution:   Avoid Mac test failures.  Add additional test for wildmenu.
                (Yegappan Lakshmanan, closes #7341)
    Files:      src/testdir/runtest.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_options.vim, src/testdir/test_popupwin.vim

    Patch 8.2.2031
    Problem:    Some tests fail when run under valgrind.
    Solution:   Avoid timing problems.
    Files:      src/testdir/test_vim9_func.vim, src/testdir/test_channel.vim,
                src/testdir/test_clientserver.vim, src/testdir/test_debugger.vim,
                src/testdir/test_quotestar.vim

    Patch 8.2.2032
    Problem:    Cabalconfig and cabalproject filetypes not recognized.
    Solution:   Detect more cabal files. (Marcin Szamotulski, closes #7339)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2033
    Problem:    Vim9: :def without argument gives compilation error.
    Solution:   Add the DEF instruction. (closes #7344)
    Files:      src/ex_docmd.c, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2034
    Problem:    Vim9: list unpack in for statement not compiled yet.
    Solution:   Compile list unpack. (closes #7345)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/errors.h,
                src/eval.c, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2035
    Problem:    MS-Windows: some tests may fail.
    Solution:   Avoid test failures. (Yegappan Lakshmanan, closes #7346)
    Files:      src/testdir/test_channel.vim, src/testdir/test_ex_mode.vim,
                src/testdir/test_functions.vim

    Patch 8.2.2036
    Problem:    Current buffer is messed up if creating a new buffer for the
                quickfix window fails.
    Solution:   Check that creating the buffer succeeds. (closes #7352)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim,
                src/testdir/dumps/Test_quickfix_window_fails.dump

    Patch 8.2.2037
    Problem:    Compiler test depends on list of compiler plugins.
    Solution:   Compare with the actual list of compiler plugins.
    Files:      src/testdir/test_compiler.vim

    Patch 8.2.2038
    Problem:    Compiler test fails on MS-Windows.
    Solution:   Sort the found compiler plugin names.
    Files:      src/testdir/test_compiler.vim

    Patch 8.2.2039
    Problem:    Viminfo is not written when creating a new file.
    Solution:   Set "b_marks_read" in the new buffer. (Christian Brabandt,
                closes #7350)
    Files:      src/bufwrite.c, src/testdir/test_viminfo.vim

    Patch 8.2.2040
    Problem:    Terminal buffer disappears even when 'bufhidden' is "hide".
                (Sergey Vlasov)
    Solution:   Check 'bufhidden' when a terminal buffer becomes hidden.
                (closes #7358)
    Files:      src/buffer.c, src/testdir/test_terminal.vim

    Patch 8.2.2041
    Problem:    Haskell filetype not optimally recognized.
    Solution:   Recognize all *.hsc files as Haskell. (Marcin Szamotulski,
                closes #7354)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2042
    Problem:    Build failure with +profile but without +reltime.
    Solution:   Adjust #ifdef. (Christian Brabandt, closes #7361)
    Files:      src/syntax.c

    Patch 8.2.2043
    Problem:    GTK3: white border around text stands out.
    Solution:   Use current theme color. (closes #7357, issue #349)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.2044
    Problem:    MS-Windows: swap file test sometimes fails.
    Solution:   Use a more reliable way to change the process ID. When "timeout"
                fails use "ping" to wait up to ten minutes. (Ken Takata,
                closes #7365)
    Files:      .github/workflows/ci-windows.yaml, src/testdir/test_swap.vim

    Patch 8.2.2045
    Problem:    Highlighting a character too much with incsearch.
    Solution:   Check "search_match_endcol". (Christian Brabandt, closes #7360)
    Files:      src/drawline.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_incsearch_newline1.dump,
                src/testdir/dumps/Test_incsearch_newline2.dump,
                src/testdir/dumps/Test_incsearch_newline3.dump,
                src/testdir/dumps/Test_incsearch_newline4.dump,
                src/testdir/dumps/Test_incsearch_newline5.dump

    Patch 8.2.2046
    Problem:    Some test failures don't give a clear error.
    Solution:   Use assert_match() and assert_fails() instead of assert_true().
                (Ken Takata, closes #7368)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_backspace_opt.vim

    Patch 8.2.2047
    Problem:    Amiga: FEAT_ARP defined when it should not.
    Solution:   Adjust #ifdef. (Ola Söder, closes #7370)
    Files:      src/feature.h

    Patch 8.2.2048
    Problem:    Amiga: obsolete code.
    Solution:   Remove the unused lines. (Ola Söder, closes #7373)
    Files:      src/gui.c

    Patch 8.2.2049
    Problem:    Amiga: obsolete function.
    Solution:   Remove the function. (Ola Söder, closes #7374)
    Files:      src/memfile.c

    Patch 8.2.2050
    Problem:    Search test contains unneeded sleeps.
    Solution:   Rename the function, remove sleeps. (Christian Brabandt,
                closes #7369)
    Files:      src/testdir/test_search.vim

    Patch 8.2.2051
    Problem:    Vim9: crash when aborting a user function call.
    Solution:   Do not use the return value when aborting. (closes #7372)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2052
    Problem:    Vim9: "edit +4 fname" gives an error. (Naruhiko Nishino)
    Solution:   Allow using a range in the +cmd argument. (closes #7364)
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/ex_cmds.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2053
    Problem:    Vim9: lambda doesn't accept argument types.
    Solution:   Optionally accept argument types at the script level.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2054
    Problem:    Amiga: FEAT_ARP defined when it should not.
    Solution:   Adjust "||" to "&&" in #ifdef. (Ola Söder, closes #7375)
    Files:      src/feature.h

    Patch 8.2.2055
    Problem:    MS-Windows: two Vim instances may use the same temp file.
    Solution:   Use the process ID for the temp name. (Ken Takata, closes #7378)
    Files:      src/fileio.c

    Patch 8.2.2056
    Problem:    Configure fails when building with the
                "implicit-function-declaration" error enabled, specifically on Mac.
    Solution:   Declare the functions like in the source code. (suggestion by
                Clemens Lang, closes #7380)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2057
    Problem:    Getting the selection may trigger TextYankPost autocmd.
    Solution:   Only trigger the autocommand when yanking in Vim, not for getting
                the selection. (closes #7367)
    Files:      src/clipboard.c, src/normal.c, src/register.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.2058
    Problem:    Using mkview/loadview changes the jumplist.
    Solution:   Use ":keepjumps".  Don't let ":badd" or ":balt" change the
                jumplist. (closes #7371)
    Files:      src/session.c, src/ex_docmd.c, src/testdir/test_mksession.vim

    Patch 8.2.2059
    Problem:    Amiga: can't find plugins.
    Solution:   Do not use "**" in the pattern. (Ola Söder, closes #7384)
    Files:      src/main.c

    Patch 8.2.2060
    Problem:    Check for features implemented with "if".
    Solution:   Use the Check commands. (Ken Takata, closes #7383)
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_compiler.vim,
                src/testdir/test_delete.vim, src/testdir/test_diffmode.vim,
                src/testdir/test_expr.vim, src/testdir/test_fold.vim

    Patch 8.2.2061
    Problem:    Vim9: E1030 error when using empty string for term_sendkeys().
    Solution:   Don't check for an invalid type unless the terminal can't be
                found. (closes #7382)
    Files:      src/terminal.c, src/testdir/test_termcodes.vim

    Patch 8.2.2062
    Problem:    <Cmd> does not handle CTRL-V.
    Solution:   Call get_literal() after encountering CTRL-V. (closes #7387)
    Files:      src/getchar.c, src/testdir/test_mapping.vim

    Patch 8.2.2063
    Problem:    Vim9: only one level of indexing supported.
    Solution:   Handle more than one index in an assignment.
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim

    Patch 8.2.2064
    Problem:    terminal: cursor is on while redrawing, causing flicker.
    Solution:   Switch the cursor off while redrawing.  Always add the top and
                left offset to the cursor position when not done already.
                (closes #5943)
    Files:      src/terminal.c, src/popupwin.c

    Patch 8.2.2065
    Problem:    Using map() and filter() on a range() is inefficient.
    Solution:   Do not materialize the range. (closes #7388)
    Files:      src/list.c, src/testdir/test_functions.vim

    Patch 8.2.2066
    Problem:    Vim9: assignment with += doesn't work.
    Solution:   Do not see the "+" as an addition operator.
    Files:      src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2067 (after 8.2.2064)
    Problem:    Cursor position in popup terminal is wrong.
    Solution:   Don't check the flags.
    Files:      src/terminal.c, src/testdir/test_popupwin.vim

    Patch 8.2.2068
    Problem:    Transparent syntax item uses start/end of containing region.
    Solution:   Do not change the startpos and endpos of a transparent region to
                that of its containing region. (Adrian Ghizaru, closes #7349,
                closes #7391)
    Files:      src/syntax.c, src/testdir/test_syntax.vim

    Patch 8.2.2069
    Problem:    The quickfix window is not updated after setqflist().
    Solution:   Update the quickfix buffer. (Yegappan Lakshmanan, closes #7390,
                closes #7385)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.2070
    Problem:    Can't get the exit value in VimLeave or VimLeavePre autocommands.
    Solution:   Add v:exiting like in Neovim. (Yegappan Lakshmanan, closes #7395)
    Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/evalvars.c,
                src/main.c, src/testdir/test_exit.vim, src/vim.h

    Patch 8.2.2071
    Problem:    Vim9: list assign doesn't accept an empty remainder list.
    Solution:   Recognize list assignment with ";".
    Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2072
    Problem:    Vim9: list assign not well tested.
    Solution:   Test with different destinations.  Fix white space error.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2073
    Problem:    Vim9: for with unpack only works for local variables.
    Solution:   Recognize different destinations.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2074
    Problem:    Vim9: using :normal from Vim9 script can't handle range.
    Solution:   Execute a :normal command in legacy script context. (closes #7401)
    Files:      src/structs.h, src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2075
    Problem:    Error for const argument to mapnew().
    Solution:   Don't give an error. (closes #7400)
    Files:      src/list.c, src/testdir/test_filter_map.vim

    Patch 8.2.2076
    Problem:    MS-Windows console: sometimes drops typed characters.
    Solution:   Do not wait longer than 10 msec for input. (issue #7164)
    Files:      src/os_win32.c

    Patch 8.2.2077
    Problem:    Build failure with small features.
    Solution:   Add #ifdef.
    Files:      src/structs.h, src/ex_docmd.c

    Patch 8.2.2078
    Problem:    Illegal memory access when using :print on invalid text. (Dhiraj
                Mishra)
    Solution:   Check for more composing characters than supported. (closes #7399)
    Files:      src/message.c, src/testdir/test_utf8.vim

    Patch 8.2.2079
    Problem:    Vim9: cannot put a linebreak before or after "in" of ":for".
    Solution:   Skip over linebreak.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2080
    Problem:    Vim9: no proper error message for using s:var in for loop.
    Solution:   Give a specific error.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2081
    Problem:    Vim9: cannot handle a linebreak after "=" in assignment.
    Solution:   Skip over linebreak. (closes #7407)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2082
    Problem:    Vim9: can still use the deprecated #{} dict syntax.
    Solution:   Remove support for #{} in Vim9 script. (closes #7406, closes #7405)
    Files:      src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_popupwin.vim,
                src/testdir/test_textprop.vim

    Patch 8.2.2083
    Problem:    Vim9: crash when using ":silent!" and getting member fails.
    Solution:   Jump to on_fatal_error. (closes #7412)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2084
    Problem:    CTRL-V U doesn't work to enter a Unicode character when
                modifyOtherKeys is effective. (Ken Takata)
    Solution:   Add a flag to get_literal() for the shift key. (closes #7413)
    Files:      src/edit.c, src/proto/edit.pro, src/ex_getln.c, src/getchar.c,
                src/normal.c, src/testdir/test_termcodes.vim

    Patch 8.2.2085
    Problem:    Qt translation file is recognized as typescript.
    Solution:   Check the first line for "<?xml". (closes #7418)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2086
    Problem:    Libvterm tests are only run on Linux.
    Solution:   Use static libraries. (Ozaki Kiichi, closes #7419)
    Files:      .travis.yml, src/Makefile, src/libvterm/Makefile,
                src/libvterm/t/run-test.pl

    Patch 8.2.2087
    Problem:    Vim9: memory leak when statement is truncated.
    Solution:   Increment the number of local variables.
    Files:      src/vim9compile.c

    Patch 8.2.2088
    Problem:    Vim9: script test sometimes fails.
    Solution:   Unlet variables.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2089
    Problem:    Libvterm test fails to build on Mac.
    Solution:   Adjust configure to remove a space between -L and the path that
                follows.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2090
    Problem:    Vim9: dict does not accept a key in quotes.
    Solution:   Recognize a key in single or double quotes.
    Files:      runtime/doc/vim9.txt, src/dict.c, src/proto/dict.pro,
                src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2091
    Problem:    MS-Windows: build warnings.
    Solution:   Add a #pragma to suppress the deprecation warning. (Ken Takata)
                Avoid using a non-ASCII character. (closes #7421)
    Files:      src/message.c, src/os_win32.c

    Patch 8.2.2092
    Problem:    Vim9: unpredictable errors for script tests.
    Solution:   Use a different script file name for each run.
    Files:      src/testdir/vim9.vim, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2093
    Problem:    Vim9: script test sometimes fails.
    Solution:   Do not find a script variable by its typval if the name was
                cleared.
    Files:      src/vim9script.c

    Patch 8.2.2094
    Problem:    When an expression fails getting the next command may be wrong.
    Solution:   Do not check for a next command after :eval fails. (closes #7415)
    Files:      src/eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2095
    Problem:    Vim9: crash when failed dict member is followed by concatenation.
    Solution:   Remove the dict from the stack. (closes #7416)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2096
    Problem:    Vim9: command modifiers not restored after assignment.
    Solution:   Jump to nextline instead of using continue.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2097
    Problem:    Vim9: using :silent! when calling a function prevents aborting
                that function.
    Solution:   Add emsg_silent_def and did_emsg_def.
    Files:      src/globals.h, src/message.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2098
    Problem:    Vim9: function argument of sort() and map() not tested.
    Solution:   Add a couple of tests.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.2099
    Problem:    Vim9: some checks are not tested.
    Solution:   Add a few more tests.  Give better error messages.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2100
    Problem:    Insufficient testing for function range and dict.
    Solution:   Add a few tests. (Dominique Pellé, closes #7428)
    Files:      src/testdir/test_functions.vim, src/testdir/test_lambda.vim,
                src/testdir/test_signals.vim, src/testdir/test_user_func.vim

    Patch 8.2.2101
    Problem:    Vim9: memory leak when literal dict has an error and when an
                expression is not complete.
    Solution:   Clear the typval and the growarray.
    Files:      src/dict.c, src/vim9compile.c

    Patch 8.2.2102
    Problem:    Vim9: not all error messages tested.
    Solution:   Add a few test cases.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.2103
    Problem:    Vim9: unreachable code.
    Solution:   Remove the code to prepend s: to the variable name
    Files:      src/vim9compile.c

    Patch 8.2.2104
    Problem:    Build problem with Ruby 2.7.
    Solution:   Adjust function declarations. (Ozaki Kiichi, closes #7430)
    Files:      src/configure.ac, src/auto/configure, src/if_ruby.c

    Patch 8.2.2105
    Problem:    Sound test is a bit flaky.
    Solution:   Use WaitForAssert(). (Dominique Pellé, closes #7429)
    Files:      src/testdir/test_sound.vim

    Patch 8.2.2106
    Problem:    TOML files are not recognized.
    Solution:   Match *.toml. (issue #7432)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2107
    Problem:    Vim9: some errors not tested.
    Solution:   Add tests.  Fix getting the right error.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2108
    Problem:    Vim9: no test to check for :let error.
    Solution:   Add a test.  Rename tests from _let_ to _var_.
    Files:      src/testdir/test_vim9_assign.vim

    Patch 8.2.2109
    Problem:    "vim -" does not work well when modifyOtherKeys is enabled and a
                shell command is executed on startup.
    Solution:   Only change modifyOtherKeys when executing a shell command in raw
                mode.
    Files:      src/os_unix.c

    Patch 8.2.2110
    Problem:    Cannot use ":shell" when reading from stdin. (Gary Johnson)
    Solution:   Revert patch 8.2.1833.
    Files:      src/main.c

    Patch 8.2.2111
    Problem:    GTK: Menu background is the same color as the main window.
    Solution:   Fix white space around the text in another way. (closes #7437,
                closes #7427)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.2112
    Problem:    Running tests may leave some files behind.
    Solution:   Delete the right files.  Fix a few typos. (Dominique Pellé,
                closes #7436)
    Files:      src/testdir/test_filetype.vim, src/testdir/test_messages.vim,
                src/testdir/test_mksession.vim

    Patch 8.2.2113
    Problem:    MS-Windows GUI: crash after using ":set guifont=" four times.
    Solution:   Check for NULL pointer. (Ken Takata, closes #7434)
    Files:      src/gui_dwrite.cpp, src/testdir/test_gui.vim

    Patch 8.2.2114
    Problem:    Vim9: unreachable code in assignment.
    Solution:   Remove impossible condition and code.
    Files:      src/vim9compile.c

    Patch 8.2.2115
    Problem:    Vim9: some errors not tested for; dead code.
    Solution:   Add a test.  Remove dead code.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2116
    Problem:    MS-Windows GUI: test for 'guifont' is incomplete.
    Solution:   Set 'renderoptions'. (Christian Brabandt)
    Files:      src/testdir/test_gui.vim

    Patch 8.2.2117
    Problem:    Some functions use any value as a string.
    Solution:   Check that the value is a non-empty string.
    Files:      src/typval.c, src/proto/typval.pro, src/mbyte.c, src/filepath.c,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.2118
    Problem:    Dead code in the job support. (Dominique Pellé)
    Solution:   Define USE_ARGV before checking for it.
    Files:      src/job.c

    Patch 8.2.2119
    Problem:    GTK3: status line background color is wrong.
    Solution:   Don't change the code for earlier GTK3 versions. (closes #7444)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.2120
    Problem:    Not all Perl functionality is tested.
    Solution:   Add a few more test cases. (Dominique Pellé, closes #7440)
    Files:      src/testdir/test_perl.vim

    Patch 8.2.2121
    Problem:    Internal error when using \ze before \zs in a pattern.
    Solution:   Check the end is never before the start. (closes #7442)
    Files:      src/regexp_bt.c, src/regexp_nfa.c,
                src/testdir/test_regexp_latin.vim

    Patch 8.2.2122
    Problem:    Vim9: crash when sourcing vim9script early.
    Solution:   Use set_option_value() instead of setting p_cpo directly.
                (closes #7441)
    Files:      src/scriptfile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2123
    Problem:    After using a complete popup the buffer is listed. (Boris
                Staletic)
    Solution:   Make the buffer unlisted.
    Files:      src/popupmenu.c, src/testdir/test_popupwin.vim

    Patch 8.2.2124
    Problem:    Vim9: a range cannot be computed at runtime.
    Solution:   Add the ISN_RANGE instruction.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2125 (after 8.2.2122)
    Problem:    Vim9: leaking memory.
    Solution:   Free the saved 'cpo' value.
    Files:      src/scriptfile.c

    Patch 8.2.2126
    Problem:    Ruby: missing function prototype.
    Solution:   Add the prototype.
    Files:      src/if_ruby.c

    Patch 8.2.2127
    Problem:    Vim9: executing user command defined in Vim9 script not tested.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2128
    Problem:    There is no way to do something on CTRL-Z.
    Solution:   Add VimSuspend and VimResume autocommand events. (closes #7450)
    Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/ex_docmd.c,
                src/normal.c, src/testdir/test_suspend.vim, src/vim.h

    Patch 8.2.2129
    Problem:    MS-Windows: Checking if a file name is absolute is slow.
    Solution:   Do not use mch_FullName(). (closes #7033)
    Files:      src/os_mswin.c

    Patch 8.2.2130
    Problem:    Insert mode completion messages end up in message history.
    Solution:   Set msg_hist_off. (closes #7452)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.2131
    Problem:    Vim9: crash when lambda uses same var as assignment.
    Solution:   Do not let lookup_local change lv_from_outer, make a copy.
                (closes #7461)
    Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2132
    Problem:    Padding not drawn properly for popup window with title.
    Solution:   Draw the padding below the title. (closes #7460)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_longtitle_3.dump,
                src/testdir/dumps/Test_popupwin_longtitle_4.dump

    Patch 8.2.2133
    Problem:    Vim9: checking for a non-empty string is too strict.
    Solution:   Check for any string. (closes #7447)
    Files:      src/typval.c, src/proto/typval.pro, src/errors.h, src/filepath.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2134
    Problem:    Vim9: get E1099 when autocmd triggered in builtin function.
    Solution:   Check that did_emsg increased instead of checking that it changed.
                (closes #7448)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2135
    Problem:    Vim9: #{ still seen as start of dict in some places.
    Solution:   Remove check for { after #. (closes #7456)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2136
    Problem:    Vim9: Using uninitialized variable.
    Solution:   Initialize "len" to zero.  Clean up fnamemodify().
    Files:      src/filepath.c

    Patch 8.2.2137
    Problem:    Vim9: :echo and :execute give error for empty argument.
    Solution:   Ignore an empty argument. (closes #7468)
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2138
    Problem:    Vim9: "exit_cb" causes Vim to exit.
    Solution:   Require white space after a command in Vim9 script. (closes #7467)
                Also fix that Vim9 style heredoc was not always recognized.
    Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_let.vim

    Patch 8.2.2139
    Problem:    Vim9: unreachable code in assignment.
    Solution:   Don't check "new_local" when "has_index" is set.  Add test for
                wrong type of list index.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2140
    Problem:    Build failure with tiny features.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.2141
    Problem:    A user command with try/catch may not catch an expression error.
    Solution:   When an expression fails check for following "|". (closes #7469)
    Files:      src/eval.c, src/testdir/test_trycatch.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.2142
    Problem:    Memory leak when heredoc is not terminated.
    Solution:   Free heredoc_trimmed.
    Files:      src/userfunc.c

    Patch 8.2.2143
    Problem:    Vim9: dead code in compiling :unlet.
    Solution:   Don't check for "!" a second time.
    Files:      src/vim9compile.c

    Patch 8.2.2144
    Problem:    Vim9: some corner cases not tested.
    Solution:   Add a few tests.
    Files:      src/testdir/test_vim9_script.vim, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2145
    Problem:    Vim9: concatenating lists does not adjust type of result.
    Solution:   When list member types differ use "any" member type.
                (closes #7473)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2146
    Problem:    Vim9: automatic conversion of number to string for dict key.
    Solution:   Do not convert number to string. (closes #7474)
    Files:      src/dict.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2147
    Problem:    Quickfix window title not updated in all tab pages.
    Solution:   Update the quickfix window title in all tab pages. (Yegappan
                Lakshmanan, closes #7481, closes #7466)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.2148
    Problem:    Vim9: crash when user command doesn't match.
    Solution:   Adjust command index. (closes #7479)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2149
    Problem:    Popupwin test for latin1 sometimes fails.
    Solution:   Wait for the script to finish.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.2150
    Problem:    Github actions CI isn't used for all available platforms.
    Solution:   Update the github workflows. (Ozaki Kiichi, closes #7433)
    Files:      .coveralls.yml, .github/workflows/ci-windows.yaml,
                .github/workflows/ci.yml, .travis.yml, README.md,
                ci/build-snd-dummy.sh, ci/setup-xvfb.sh

    Patch 8.2.2151
    Problem:    $dir not expanded when configure checks for moonjit.
    Solution:   Use double quotes instead of single quotes. (closes #7478)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2152
    Problem:    screenpos() does not include the WinBar offset.
    Solution:   Use W_WINROW() instead of directly using w_window. (closes #7487)
    Files:      src/move.c, src/testdir/test_cursor_func.vim

    Patch 8.2.2153
    Problem:    Popupwin test for latin1 still fails sometimes.
    Solution:   Wait for the "cat" command to finish.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.2154
    Problem:    Popupwin test for terminal buffer fails sometimes.
    Solution:   Wait for the prompt to appear.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.2155
    Problem:    Warning from Github actions for code analysis.
    Solution:   Remove the "git checkout HEAD^2" block.
    Files:      .github/workflows/codeql-analysis.yml

    Patch 8.2.2156
    Problem:    Github actions run on pushing a tag.
    Solution:   Don't run CI on tag push. Omit coveralls on pull-request.
                (Ozaki Kiichi, closes #7489)
    Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml

    Patch 8.2.2157
    Problem:    Vim9: can delete a Vim9 script variable from a function.
    Solution:   Check the variable is defined in Vim9 script. (closes #7483)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2158
    Problem:    CI on cirrus times out, coveralls doesn't always run.
    Solution:   Set timeout to 20 minutes. Adjust condition. (closes #7493)
    Files:      .cirrus.yml, .github/workflows/ci.yml

    Patch 8.2.2159
    Problem:    Vim9: when declaring a list it is not allocated yet, causing a
                following extend() to fail.
    Solution:   When fetching a variable value for a list or dict that is null
                allocate the list or dict, so it can be used. (closes #7491)
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2160
    Problem:    Various typos.
    Solution:   Fix spelling mistakes. (closes #7494)
    Files:      src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c,
                src/ex_cmds.c, src/feature.h, src/getchar.c, src/gui_haiku.cc,
                src/gui_xmdlg.c, src/help.c, src/if_ole.cpp, src/insexpand.c,
                src/list.c, src/map.c, src/memline.c, src/normal.c,
                src/os_win32.c, src/search.c, src/term.c,
                src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim,
                src/testdir/test_debugger.vim, src/testdir/test_increment.vim,
                src/testdir/test_menu.vim, src/testdir/test_netbeans.vim,
                src/testdir/test_popupwin.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim, src/testdir/test_sort.vim,
                src/testdir/test_terminal2.vim, src/testdir/test_terminal3.vim,
                src/testdir/test_vartabs.vim, src/testdir/test_vimscript.vim,
                src/textprop.c, src/userfunc.c, src/vim9.h, src/vim9compile.c,
                src/vim9execute.c

    Patch 8.2.2161
    Problem:    Arguments -T and -x not tested yet.
    Solution:   Add a test. (Dominique Pellé, closes #7490)
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2162
    Problem:    Vim9: Cannot load or store autoload variables.
    Solution:   Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485)
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/dict.c,
                src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2163
    Problem:    Crash when discarded exception is the current exception.
    Solution:   Compare the exception with current_exception. (closes #7499)
    Files:      src/ex_eval.c

    Patch 8.2.2164
    Problem:    Vim9: autoload function doesn't work in script that starts with
                an upper case letter.
    Solution:   Check for the autoload character. (closes #7502)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2165
    Problem:    Vim9: assignment to dict member does not work.
    Solution:   Fix recognizing dict member. (closes #7484)
    Files:      src/ex_docmd.c, src/eval.c, src/evalvars.c, src/vim.h

    Patch 8.2.2166
    Problem:    Auto format doesn't work when deleting text.
    Solution:   Make "x" trigger auto format. (closes #7504)
    Files:      src/ops.c, src/testdir/test_textformat.vim

    Patch 8.2.2167
    Problem:    Vim9: assign test fails. (Elimar Riesebieter)
    Solution:   Adjust the test for dict assignment.
    Files:      src/testdir/test_vim9_assign.vim

    Patch 8.2.2168
    Problem:    Vim9: error for assigning to dict of dict.
    Solution:   Remember the destination type. (closes #7506)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2169
    Problem:    Vim9: test leaves file behind.
    Solution:   Rename script files. (Dominique Pellé, closes #7511)
                Use try/finally.
    Files:      src/testdir/test_vim9_script.vim, src/testdir/vim9.vim

    Patch 8.2.2170
    Problem:    Vim9: a global function defined in a :def function fails if it
                uses the context.
    Solution:   Create a partial to store the closure context. (see #7410)
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c,
                src/structs.h, src/testdir/test_vim9_func.vim

    Patch 8.2.2171
    Problem:    Valgrind warning for using uninitialized value.
    Solution:   Do not use "startp" or "endp" unless there is a match.
    Files:      src/regexp_nfa.c

    Patch 8.2.2172
    Problem:    Vim9: number of arguments is not always checked. (Yegappan
                Lakshmanan)
    Solution:   Check number of arguments when calling function by name.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9execute.c,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.2173
    Problem:    Vim9: get internal error when assigning to undefined variable.
    Solution:   Add error message. (closes #7475)
    Files:      src/vim9compile.c, src/vim9execute.c, src/errors.h,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2174
    Problem:    Mac version doesn't specify the CPU architecture.
    Solution:   Add "arm64" or "x86_64". (Yee Cheng Chin, closes #7519)
    Files:      src/version.c

    Patch 8.2.2175
    Problem:    Github actions: clang-11 handling suboptimal.
    Solution:   Separate step of installing clang-11. Get ubuntu release name
                dynamically. (Ozaki Kiichi, closes #7514)
    Files:      .github/workflows/ci.yml

    Patch 8.2.2176
    Problem:    Crash with a sequence of fold commands.
    Solution:   Bail out when there are no folds at all.  Add a test (Dominique
                Pellé) (closes #7515)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.2177
    Problem:    Pattern "^" does not match if the first character in the line is
                combining. (Rene Kita)
    Solution:   Do accept a match at the start of the line. (closes #6963)
    Files:      src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim

    Patch 8.2.2178
    Problem:    Python 3: non-utf8 character cannot be handled.
    Solution:   Change the string decode. (Björn Linse, closes #1053)
    Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c,
                src/testdir/test_python3.vim, src/testdir/test_python2.vim

    Patch 8.2.2179
    Problem:    Vim9: crash when indexing a dict with a number.
    Solution:   Add ISN_STOREINDEX. (closes #7513)
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/errors.h, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2180
    Problem:    Vim9: test for error after error is flaky.
    Solution:   Wait for job to finish instead of a fixed delay.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2181
    Problem:    Valgrind warnings for using uninitialized value.
    Solution:   Do not use "start" or "end" unless there is a match.
    Files:      src/regexp_nfa.c, src/regexp_bt.c

    Patch 8.2.2182
    Problem:    Vim9: value of 'magic' is still relevant.
    Solution:   Always behave like 'magic' is on in Vim9 script (closes #7509)
    Files:      src/option.c, src/proto/option.pro, src/arglist.c, src/buffer.c,
                src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
                src/insexpand.c, src/normal.c, src/search.c, src/tag.c,
                src/structs.h, src/globals.h, src/ex_cmds.h,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2183
    Problem:    Vim9: value of 'edcompatible' and 'gdefault' are used.
    Solution:   Ignore these deprecated options in Vim9 script. (closes #7508)
    Files:      src/ex_cmds.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2184
    Problem:    Vim9: no error when using "2" for a line number.
    Solution:   Give an error message if the line number is invalid. (closes #7492)
    Files:      src/typval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_cursor_func.vim

    Patch 8.2.2185
    Problem:    BufUnload is not triggered for the quickfix dummy buffer.
    Solution:   Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517)
                Fix white space around "=".
    Files:      src/quickfix.c, src/testdir/test_autocmd.vim

    Patch 8.2.2186
    Problem:    Vim9: error when using 'opfunc'.
    Solution:   Do not expect a return value from 'opfunc'. (closes #7510)
    Files:      src/eval.c, src/proto/eval.pro, src/ops.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2187
    Problem:    Python 3 test fails sometimes. (Christian Brabandt)
    Solution:   Accept two SystemError messages.
    Files:      src/testdir/test_python3.vim

    Patch 8.2.2188
    Problem:    Vim9: crash when calling global function from :def function.
    Solution:   Set the outer context.  Define the partial for the context on the
                original function. Use a refcount to keep track of which ufunc is
                using a dfunc. (closes #7525)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9execute.c,
                src/proto/vim9execute.pro, src/userfunc.c, src/proto/userfunc.pro,
                src/structs.h, src/vim9.h, src/testdir/test_vim9_func.vim

    Patch 8.2.2189
    Problem:    Cannot repeat a command that uses the small delete register.
    Solution:   Store the register name instead of the contents. (Christian
                Brabandt, closes #7527)
    Files:      src/ops.c, src/register.c, src/testdir/test_registers.vim

    Patch 8.2.2190
    Problem:    Vim9: crash when compiled with EXITFREE.
    Solution:   Check that df_ufunc is not NULL.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2191
    Problem:    Vim9: using wrong name with lambda in nested function.
    Solution:   Copy the lambda name earlier. (closes #7525)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2192
    Problem:    Codecov on github actions fails.
    Solution:   Revert to codecov script. (Ozaki Kiichi, closes #7529)
    Files:      Filelist, .github/workflows/ci.yml

    Patch 8.2.2193
    Problem:    Vim9: can change constant in :def function.
    Solution:   Check if a variable is locked. (issue #7526)
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2194
    Problem:    Vim9: cannot use :const or :final at the script level.
    Solution:   Support using :const and :final. (closes #7526)
    Files:      src/vim.h, src/evalvars.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2195
    Problem:    Failing tests for :const.
    Solution:   Add missing check for ASSIGN_FINAL.
    Files:      src/eval.c, src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2196
    Problem:    :version output has extra spaces in compile and link command.
    Solution:   Adjust QUOTESED. (closes #7505)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2197
    Problem:    Assert arguments order reversed.
    Solution:   Swap the arguments. (Christian Brabandt, closes #7531)
    Files:      src/testdir/test_registers.vim

    Patch 8.2.2198
    Problem:    ml_get error when resizing window and using text property.
    Solution:   Validate botline of the right window. (closes #7528)
    Files:      src/move.c, src/proto/move.pro, src/textprop.c,
                src/testdir/test_textprop.vim

    Patch 8.2.2199
    Problem:    First write after setting 'eol' does not have NL added. (Tomáš
                Janoušek)
    Solution:   Only use b_no_eol_lnum when doing a binary write. (closes #7535)
    Files:      src/bufwrite.c, src/testdir/test_writefile.vim

    Patch 8.2.2200
    Problem:    Vim9: lambda without white space around -> is confusing.
    Solution:   Require white space in a :def function. (issue #7503)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2201
    Problem:    Write file test fails on MS-Windows.
    Solution:   Force edit after setting 'fileformat'.
    Files:      src/testdir/test_writefile.vim

    Patch 8.2.2202
    Problem:    Write file test still fails on MS-Windows.
    Solution:   Set fileformat with the :edit command
    Files:      src/testdir/test_writefile.vim

    Patch 8.2.2203
    Problem:    Moodle gift files are not recognized.
    Solution:   Add a filetype pattern. (Delim Temizer)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2204
    Problem:    Vim9: using -> both for method and lambda is confusing.
    Solution:   Use => for lambda in :def function.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2205
    Problem:    Vim9: memory leak when parsing lambda fails.
    Solution:   Clear growarrays.
    Files:      src/userfunc.c

    Patch 8.2.2206
    Problem:    :exe command line completion only works for first argument.
    Solution:   Skip over text if more is following. (closes #7546)
    Files:      src/eval.c, src/testdir/test_cmdline.vim

    Patch 8.2.2207
    Problem:    Illegal memory access if popup menu items are changed while the
                menu is visible. (Tomáš Janoušek)
    Solution:   Make a copy of the text. (closes #7537)
    Files:      src/popupmenu.c, src/testdir/test_popup.vim,
                src/testdir/dumps/Test_popup_command_04.dump,
                src/testdir/dumps/Test_popup_command_05.dump

    Patch 8.2.2208
    Problem:    Vim9: after reloading a script variable index may be invalid.
    Solution:   When the sequence number doesn't match give an error for using a
                script-local variable from a compiled function. (closes #7547)
    Files:      src/vim9.h, src/structs.h, src/errors.h, src/vim9compile.c,
                src/vim9execute.c, src/scriptfile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2209
    Problem:    Vim9: return type of => lambda not parsed.
    Solution:   Parse and use the return type.
    Files:      src/vim9compile.c, src/userfunc.c, src/vim9type.c,
                src/proto/vim9type.pro, src/vim9script.c, src/eval.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2210
    Problem:    Vim9: allocating a type to set TTFLAG_BOOL_OK.
    Solution:   Add t_number_bool.
    Files:      src/globals.h, src/vim9type.c, src/vim9compile.c

    Patch 8.2.2211
    Problem:    MS-Windows: can't load Python dll if not in the path.
    Solution:   Use the InstallPath registry entry. (Kelvin Lee, closes #7540)
    Files:      src/if_python3.c

    Patch 8.2.2212
    Problem:    Vim9: lambda with => does not work at the script level.
    Solution:   Make it work.
    Files:      src/eval.c, src/vim9type.c, src/userfunc.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.2213
    Problem:    Checking white space around -> is not backwards compatible.
    Solution:   Only check white space around =>.
    Files:      src/userfunc.c

    Patch 8.2.2214
    Problem:    ":e#" does not give a warning for missing white space.
    Solution:   Adjust the check for white space. (closes #7545)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2215
    Problem:    Vim9: `=expr` not recognized in global command.
    Solution:   Skip over pattern. (issue #7541)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2216
    Problem:    Vim9: range with missing colon can be hard to spot.
    Solution:   Include the start of the range in the error. (closes #7543)
    Files:      src/errors.h, src/ex_docmd.c, src/vim9compile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2217
    Problem:    Vim9: command modifiers not restored in catch block.
    Solution:   Restore command modifiers. (closes #7542)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2218
    Problem:    Vim9: failure if passing more arguments to a lambda than expected.
    Solution:   Only put expected arguments on the stack. (closes #7548)
    Files:      src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2219
    Problem:    Vim9: method call with expression not supported.
    Solution:   Implement expr->(expr)().
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2220
    Problem:    Vim9: memory leak when parsing nested parenthesis.
    Solution:   Clear newargs.
    Files:      src/userfunc.c

    Patch 8.2.2221
    Problem:    If <Down> is mapped on the command line 'wildchar' is inserted.
    Solution:   Set KeyTyped when using 'wildchar'. (closes #7552)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.2222
    Problem:    Vim9: cannot keep script variables when reloading.
    Solution:   Add the "noclear" argument to :vim9script.
    Files:      runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c,
                src/vim9script.c, src/ex_cmds.h, src/ex_docmd.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2223
    Problem:    Vim9: Reloading marks a :def function as deleted.
    Solution:   Clear the function contents but keep the index.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2224
    Problem:    Vim9: crash if script reloaded with different variable type.
    Solution:   Check the type when accessing the variable.
    Files:      src/vim9execute.c, src/vim9compile.c, src/vim9.h, src/vim9type.c,
                src/proto/vim9type.pro, src/errors.h, src/evalvars.c,
                src/vim9script.c, src/proto/vim9script.pro,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2225
    Problem:    Vim9: error when using :import in legacy script twice.
    Solution:   Make it possible to redefine an import when reloading.
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/structs.h,
                src/evalvars.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2226
    Problem:    Vim9: script test fails.
    Solution:   Add missing change.
    Files:      src/scriptfile.c

    Patch 8.2.2227
    Problem:    Vim9: recognizing lambda is too complicated.
    Solution:   Call compile_lambda() and check for NOTDONE.
    Files:      src/vim9compile.c, src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2228
    Problem:    Vim9: cannot use ":e #" because # starts a comment.
    Solution:   Support using %% instead of #.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2229
    Problem:    build failure without the +eval feature.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.2230
    Problem:    Vim9: insert completion runs into error.
    Solution:   Insert colon before range. (closes #7556)
    Files:      src/insexpand.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2231
    Problem:    When "--remote file" is used "file" is not reloaded.
    Solution:   When a :drop command is used for a file that is already displayed
                in a window and it has not been changed, check if it needs to be
                reloaded. (closes #7560)
    Files:      src/ex_cmds.c, src/testdir/test_clientserver.vim

    Patch 8.2.2232
    Problem:    Compiler error for falling through into next case.
    Solution:   Move FALLTHROUGH below the #endif
    Files:      src/ex_docmd.c

    Patch 8.2.2233
    Problem:    Cannot convert a byte index into a character index.
    Solution:   Add charidx(). (Yegappan Lakshmanan, closes #7561)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/testdir/test_functions.vim

    Patch 8.2.2234
    Problem:    Command line wildmenu test often fails with Unix GUI.
    Solution:   Skip the test where it is expected to fail.
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.2235
    Problem:    Build failure with some Ruby versions.
    Solution:   Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes #7564)
    Files:      ci/config.mk.clang.sed, src/if_ruby.c

    Patch 8.2.2236
    Problem:    'scroll' option can change when setting the statusline or tabline
                but the option context is not updated.
    Solution:   Update the script context when the scroll option is changed as a
                side effect. (Christian Brabandt, closes #7533)
    Files:      runtime/doc/options.txt, src/scriptfile.c,
                src/testdir/test_options.vim, src/vim.h, src/window.c

    Patch 8.2.2237
    Problem:    CI on Mac fails in sed command.
    Solution:   Set LC_ALL to "C". (Ozaki Kiichi, closes #7565)
    Files:      .github/workflows/ci.yml

    Patch 8.2.2238
    Problem:    Vim9: cannot load a Vim9 script without the +eval feature.
    Solution:   Support Vim9 script syntax without the +eval feature.
    Files:      src/ex_docmd.c, src/vim9script.c, src/globals.h, src/main.c,
                src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c,
                src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h

    Patch 8.2.2239
    Problem:    Vim9: concatenating lines with backslash is inconvenient.
    Solution:   Support concatenating lines starting with '|', useful for
                :autocmd, :command, etc. (closes #6702)
    Files:      runtime/doc/vim9.txt, src/scriptfile.c, src/vim9script.c,
                src/proto/vim9script.pro, src/vim9compile.c,
                src/proto/vim9compile.pro, src/userfunc.c, src/structs.h,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2240
    Problem:    Clientserver test fails if full path is used.
    Solution:   Ignore the path preceding the file name.
    Files:      src/testdir/test_clientserver.vim

    Patch 8.2.2241
    Problem:    Build with Ruby and clang may fail.
    Solution:   Adjust configure and sed script. (Ozaki Kiichi, closes #7566)
    Files:      ci/config.mk.clang.sed, src/auto/configure, src/configure.ac

    Patch 8.2.2242
    Problem:    Vim9: line continuation with bar does not work at script level.
    Solution:   Check for Vim9 script.
    Files:      src/structs.h, src/ex_docmd.c, src/userfunc.c, src/scriptfile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2243
    Problem:    Crash when popup mask contains zeroes.
    Solution:   Check boundaries properly. (closes #7569)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.2244
    Problem:    Crash when making the window width of the not-current window
                negative.
    Solution:   Make sure the window width is not negative. (closes #7568)
    Files:      src/window.c, src/testdir/test_window_cmd.vim

    Patch 8.2.2245
    Problem:    Vim9: return value of winrestcmd() cannot be executed.
    Solution:   Put colons before each range. (closes #7571)
    Files:      src/evalwindow.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2246
    Problem:    Cursor keys not recognized at the hit-Enter prompt after executing
                an external command.
    Solution:   Change the codes for the extra cursor keys. (closes #7562)
                Tune the delays to avoid test flakiness.
    Files:      runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim

    Patch 8.2.2247
    Problem:    VMS: various smaller problems.
    Solution:   Fix VMS building and other problems. (Zoltan Arpadffy)
    Files:      src/term.c, src/gui_gtk_vms.h, src/os_vms_conf.h, src/gui_x11.c,
                src/Make_vms.mms, src/macros.h, src/gui.h, src/os_unix.h

    Patch 8.2.2248
    Problem:    ASAN error on exit with GUI.
    Solution:   Check the window still has lines. (Christian Brabandt,
                closes #7573)
    Files:      src/term.c

    Patch 8.2.2249
    Problem:    Termcodes test is flaky when used over ssh with X forwarding.
    Solution:   Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576,
                closes #7563)
    Files:      src/testdir/test_termcodes.vim

    Patch 8.2.2250
    Problem:    Vim9: sublist is ambiguous.
    Solution:   Require white space around the colon. (closes #7409)
    Files:      src/vim9compile.c, src/eval.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2251
    Problem:    Test failures in legacy script.
    Solution:   Check for Vim9 script.
    Files:      src/eval.c

    Patch 8.2.2252
    Problem:    Vim9: crash when using lambda without return type in dict.
    Solution:   Without a return type use t_unknown. (closes #7587)
    Files:      src/vim9type.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2253
    Problem:    Vim9: expr test fails.
    Solution:   Add missing assignment.
    Files:      src/userfunc.c

    Patch 8.2.2254
    Problem:    Vim9: bool option type is number.
    Solution:   Have get_option_value() return a different value for bool and
                number options. (closes #7583)
    Files:      src/option.h, src/option.c, src/proto/option.pro, src/evalvars.c,
                src/if_mzsch.c, src/if_ruby.c, src/spell.c, src/typval.c,
                src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2255 (after 8.2.2254)
    Problem:    Tcl test fails.
    Solution:   Change option handling.
    Files:      src/if_tcl.c

    Patch 8.2.2256
    Problem:    Vim9: cannot use function( after line break in :def function.
    Solution:   Check for "(" after "function". (closes #7581)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2257
    Problem:    Vim9: using -> for lambda is ambiguous.
    Solution:   Stop supporting ->, must use =>.
    Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2258
    Problem:    Not all OCaml related files are detected.
    Solution:   Update OCaml file type detection.  (Markus Mottl, closes #7590)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2259
    Problem:    Test_Executable() fails when using chroot.
    Solution:   Ignore the difference between "sbin" and "bin".
    Files:      src/testdir/test_functions.vim

    Patch 8.2.2260
    Problem:    Window resize test fails in very wide terminal.
    Solution:   Resize using the 'columns' option.  (Vladimir Lomov, closes #7592)
    Files:      src/testdir/test_window_cmd.vim

    Patch 8.2.2261
    Problem:    Vim9: boolean option gets string type.
    Solution:   Check for VAR_BOOL. (closes #7588)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2262
    Problem:    Vim9: converting bool to string prefixes v:.
    Solution:   Do not use the v: prefix.
    Files:      src/evalvars.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2263
    Problem:    Vim9: compilation error with try-catch in skipped block.
    Solution:   Do not bail out when generate_instr() returns NULL. (closes #7584)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2264
    Problem:    Vim9: no error for mismatched :endfunc or :enddef.
    Solution:   Check for the mismatch. (issue #7582)
    Files:      src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2265
    Problem:    Error message for missing endfunc/enddef is last line.
    Solution:   Report the line where the function starts. (closes #7582)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2266
    Problem:    Vim9: it can be hard to see where white space is missing.
    Solution:   Mention the text where the error was seen. (closes #7580)
    Files:      src/errors.h, src/eval.c, src/evalvars.c, src/userfunc.c,
                src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2267
    Problem:    Vim9: cannot use unlet for a dict member.
    Solution:   Pass GLV_NO_DECL to get_lval(). (closes #7585)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2268
    Problem:    Vim9: list unpack seen as declaration.
    Solution:   Check for "var". (closes #7594)
    Files:      src/vim9compile.c, src/evalvars.c, src/eval.c, src/vim.h,
                src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2269
    Problem:    Not all :hardcopy code covered by tests.
    Solution:   Test more combinations. (Dominique Pellé, closes #7595)
    Files:      src/testdir/test_hardcopy.vim

    Patch 8.2.2270
    Problem:    Warning for size_t to int conversion. (Randall W. Morris)
    Solution:   Add a type cast.
    Files:      src/vim9execute.c

    Patch 8.2.2271
    Problem:    ml_get error when changing hidden buffer in Python.
    Solution:   Block updating folds. (closes #7598)
    Files:      src/evalbuffer.c, src/testdir/test_python3.vim

    Patch 8.2.2272
    Problem:    Vim9: extend() can violate the type of a variable.
    Solution:   Add the type to the dictionary or list and check items against it.
                (closes #7593)
    Files:      src/structs.h, src/evalvars.c, src/dict.c, src/list.c,
                src/vim9script.c, src/proto/vim9script.pro, src/vim9compile.c,
                src/vim9execute.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2273
    Problem:    Build failure.
    Solution:   Add missing changes to header file.
    Files:      src/vim9.h

    Patch 8.2.2274
    Problem:    badge for Travis is outdated.
    Solution:   Update badge for move from travis-ci.org to travis-ci.com.
    Files:      README.md

    Patch 8.2.2275
    Problem:    CTRL-C not recognized in Mintty.
    Solution:   Recognize the modifyOtherKeys code ending in "u". (Christian
                Brabandt, closes #7575)
    Files:      src/ui.c

    Patch 8.2.2276
    Problem:    List of distributed files is outdated.
    Solution:   Update the file list.  Minor comment updates.
    Files:      Filelist, src/clipboard.c, src/fileio.c, src/option.c,
                src/screen.c, src/testdir/test_signals.vim,
                src/testdir/Make_vms.mms

    Patch 8.2.2277
    Problem:    Missing backslash.
    Solution:   Add backslash.
    Files:      Filelist

    Patch 8.2.2278
    Problem:    Falling back to old regexp engine can some patterns.
    Solution:   Do not fall back once [[:lower:]] or [[:upper:]] is used.
                (Christian Brabandt, closes #7572)
    Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim

    Patch 8.2.2279
    Problem:    Vim9: memory leak with catch in skipped block.
    Solution:   Free the pattern if not used.
    Files:      src/vim9compile.c

    Patch 8.2.2280
    Problem:    Fuzzy matching doesn't give access to the scores.
    Solution:   Return the scores with a third list. (Yegappan Lakshmanan,
                closes #7596)
    Files:      runtime/doc/eval.txt, src/search.c,
                src/testdir/test_matchfuzzy.vim

    Patch 8.2.2281
    Problem:    Vim9: compiled "wincmd" cannot be followed by bar.
    Solution:   Check for bar after "wincmd". (closes #7599)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2282
    Problem:    Length check mismatch with argument of strncmp(). (Christian
                Brabandt)
    Solution:   Adjust length check.
    Files:      src/ui.c

    Patch 8.2.2283
    Problem:    Vim9: crash when lambda has fewer arguments than expected.
    Solution:   Don't check arguments when already failed. (closes #7606)
    Files:      src/vim9type.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2284
    Problem:    Vim9: cannot set an option to a boolean value.
    Solution:   Check for VAR_BOOL. (closes #7603)
    Files:      src/evalvars.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2285
    Problem:    Vim9: cannot set an option to a false.
    Solution:   For VAR_BOOL use string "0". (closes #7603)
    Files:      src/evalvars.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2286
    Problem:    Sort test fails when locale is Canadian English. (Neil H Watson)
    Solution:   Expect a different sort order. (closes #7609)
    Files:      src/testdir/test_sort.vim

    Patch 8.2.2287
    Problem:    Sort test fails when locale is French Canadian.
    Solution:   Expect a different sort order. (Dominique Pellé, closes #7609)
    Files:      src/testdir/test_sort.vim

    Patch 8.2.2288
    Problem:    Vim9: line break and comment not always skipped.
    Solution:   Skip over white space and then line break more consistently.
                (closes #7610)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2289
    Problem:    Vim9: 'cpo' can become empty.
    Solution:   Use empty_option instead of an empty string.  Update quickfix
                buffer after restoring 'cpo'.  (closes #7608)
    Files:      src/evalfunc.c, src/syntax.c, src/eval.c, src/quickfix.c,
                src/evalbuffer.c, src/ex_eval.c, src/gui_motif.c, src/map.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.2290
    Problem:    Vim9: unlet of global variable cannot be compiled.
    Solution:   Skip over variables that might be defined later. Give an error if
                a subscript is found. (closes #7585)
    Files:      src/eval.c, src/vim9compile.c, src/vim.h,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2291
    Problem:    Vim9: cannot use "null" for v:null.
    Solution:   Support "null" like "true" and "false". (closes #7495)
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/evalvars.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2292
    Problem:    Vim: expr test fails.
    Solution:   Add missing part of "null" support.
    Files:      src/eval.c

    Patch 8.2.2293
    Problem:    Build failure with Motif. (Tony Mechelynck)
    Solution:   Use empty_option instead of empty_options.
    Files:      src/gui_motif.c

    Patch 8.2.2294
    Problem:    VMS: a few remaining problems.
    Solution:   Add VMS specific changes. Add Lua support. (Zoltan Arpadffy)
    Files:      src/fileio.c, src/os_vms_conf.h, src/Make_vms.mms, src/macros.h,
                src/os_vms.c, src/vim9execute.c, src/gui_xmebw.c, src/os_unix.h

    Patch 8.2.2295
    Problem:    Incsearch does not detect empty pattern properly.
    Solution:   Return magic state when skipping over a pattern. (Christian
                Brabandt, closes #7612, closes #6420)
    Files:      src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h,
                src/option.c, src/tag.c, src/proto/regexp.pro, src/regexp.c,
                src/search.c, src/structs.h, src/vim9compile.c,
                src/testdir/dumps/Test_incsearch_sub_01.dump,
                src/testdir/dumps/Test_incsearch_sub_02.dump,
                src/testdir/test_search.vim

    Patch 8.2.2296
    Problem:    Cannot use CTRL-N and CTRL-P in a popup menu.
    Solution:   Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614)
    Files:      runtime/doc/popup.txt, src/popupwin.c,
                src/testdir/test_popupwin.vim

    Patch 8.2.2297
    Problem:    Vim9: cannot set 'number' to a boolean value.
    Solution:   Use tv_get_bool(). (closes #7615)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2298
    Problem:    Vim9: comment right after "(" of function not recognized.
    Solution:   Do not skip over white space before calling get_function_args().
                (closes #7613)
    Files:      src/userfunc.c, src/proto/userfunc.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2299
    Problem:    Vim9: invalid memory access making error message flaky.
    Solution:   Do not check cmd_argt for CMD_USER. (issue #7467)
    Files:      src/ex_docmd.c, src/vim9execute.c, src/errors.h,
                src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2300
    Problem:    Vim9: wrong order on type stack when using dict.
    Solution:   Generate constants before a dict. (closes #7619)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2301
    Problem:    Vim9: cannot unlet a dict or list item.
    Solution:   Add ISN_UNLETINDEX.  Refactor assignment code to use for unlet.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2302
    Problem:    Vim9: using an option value may use uninitialized memory.
    Solution:   Clear v_lock. (closes #7620)
    Files:      src/typval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2303
    Problem:    Vim9: backtick expansion doesn't work for :foldopen.
    Solution:   Do recognize backtick expansion. (closes #7621)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2304
    Problem:    Vim9: no test for unletting an imported variable.
    Solution:   Add a test.  Fix line number in error.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2305
    Problem:    Vim9: "++var" and "--var" are silently accepted.
    Solution:   Give an error message.
    Files:      src/vim9compile.c, src/eval.c, src/proto/eval.pro,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2306
    Problem:    Vim9: when using function reference type is not checked.
    Solution:   When using a function reference lookup the type and check the
                argument types. (issue #7629)
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/structs.h,
                src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c,
                src/vim9execute.c, src/evalvars.c, src/evalfunc.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2307
    Problem:    A shell command in the vimrc causes terminal output.
    Solution:   Do not call starttermcap() after a shell command if the termcap
                wasn't active before.
    Files:      src/ex_cmds.c

    Patch 8.2.2308
    Problem:    Vim9: no error when assigning lambda to funcref without return
                value.
    Solution:   Default return value to "any". (closes #7629)
    Files:      src/userfunc.c, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.2309
    Problem:    0o777 not recognized as octal.
    Solution:   Use vim_isodigit(). (Ken Takata, closes #7633, closes #7631)
    Files:      src/charset.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.2310
    Problem:    Vim9: winsaveview() return type is too generic.
    Solution:   use dict<number> instead of dict<any>. (closes #7626)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2311
    Problem:    Vim9: cannot assign to a variable that shadows a command modifier.
    Solution:   Check for assignment after possible command modifier.
                (closes #7632)
    Files:      src/vim9compile.c, src/ex_docmd.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2312
    Problem:    Build failure with Ruby 3.0 and 32 bits.
    Solution:   Add #ifdef. (closes #7638)
    Files:      src/if_ruby.c

    Patch 8.2.2313
    Problem:    Vim9: using uninitialized field when parsing range. ":silent!" not
                respected when parsing range fails.
    Solution:   Initialize ea.skip.  On pattern failure handle it like an error.
                (closes #7636)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2314
    Problem:    Vim9: returning zero takes two instructions.
    Solution:   Add ISN_RETURN_ZERO.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2315
    Problem:    Vim9: "enddef" as dict key misinterpreted as function end.
    Solution:   Check for following colon. (closes #7640)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2316
    Problem:    Vim9: cannot list a lambda function.
    Solution:   Support the <lambda>9 notation, like :disassemble. (closes #7634)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2317
    Problem:    Vim9: command modifier before list unpack doesn't work.
    Solution:   Only recognize "[" directly after the name. (closes #7641)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2318
    Problem:    Vim9: string and list index work differently.
    Solution:   Make string index work like list index. (closes #7643)
    Files:      src/eval.c, src/proto/eval.pro, src/vim9execute.c, src/list.c,
                src/proto/vim9execute.pro, src/testdir/test_vim9_expr.vim

    Patch 8.2.2319
    Problem:    "exptype_T" can be read as "expected type".
    Solution:   Rename to "exprtype_T", expression type.
    Files:      src/eval.c, src/typval.c, src/proto/typval.pro, src/vim9compile.c,
                src/proto/vim9compile.pro, src/vim9execute.c, src/structs.h,
                src/vim9.h

    Patch 8.2.2320
    Problem:    Vim9: no error for comparing bool with string.
    Solution:   Check for wrong types when comparing. (closes #7639)
    Files:      src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.2321
    Problem:    Vim9: cannot nest closures.
    Solution:   Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER.
                (closes #7150, closes #7635)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/structs.h,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2322
    Problem:    Vim9: closure nested limiting to one level.
    Solution:   Add outer_T.  Also make STOREOUTER work.
    Files:      src/vim9execute.c, src/vim9.h, src/structs.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2323
    Problem:    Vim9: error when inferring type from empty dict/list.
    Solution:   When the member is t_unknown use t_any. (closes #7009)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2324
    Problem:    Not easy to get mark en cursor position by character count.
    Solution:   Add functions that use character index. (Yegappan Lakshmanan,
                closes #7648)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
                src/evalfunc.c, src/proto/eval.pro, src/tag.c,
                src/testdir/test_cursor_func.vim, src/typval.c

    Patch 8.2.2325
    Problem:    Vim9: crash if map() changes the item type.
    Solution:   Check that the item type is still OK. (closes #7652)
                Fix problem with mapnew() on range list.
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9compile.c,
                src/list.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.2326
    Problem:    Build error with +eval feature but without +spell.
    Solution:   Adjust #ifdef. (John Marriott)
    Files:      src/mbyte.c

    Patch 8.2.2327
    Problem:    Debugging code included.
    Solution:   Remove the debugging code.
    Files:      src/vim9execute.c

    Patch 8.2.2328
    Problem:    Some test files may not be deleted.
    Solution:   Add a delete() call, correct name. (Dominique Pellé, closes #7654)
    Files:      src/testdir/test_clientserver.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2329
    Problem:    Not all ways Vim can be started are tested.
    Solution:   Add a test for different program names. (Dominique Pellé,
                closes #7651)
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2330
    Problem:    Vim9: crash when using :trow in a not executed block.
    Solution:   Don't generate the instruction when skipping. (closes #7659)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2331
    Problem:    Vim9: wrong error when modifying dict declared with :final.
    Solution:   Do not check for writable variable when an index follows.
                (closes #7657)
    Files:      src/vim9compile.c, src/structs.h, src/vim9script.c,
                src/proto/vim9script.pro, src/evalvars.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2332
    Problem:    Vim9: missing :endif not reported when using :windo.
    Solution:   Pass a getline function to do_cmdline(). (closes #7650)
    Files:      src/vim9execute.c, src/structs.h, src/scriptfile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2333
    Problem:    Vim9: warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize "res".
    Files:      src/vim9execute.c

    Patch 8.2.2334
    Problem:    Pascal-like filetypes not always detected.
    Solution:   Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns,
                closes #7662)
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                runtime/scripts.vim, src/testdir/test_filetype.vim

    Patch 8.2.2335
    Problem:    Vim9: "silent return" does not restore command modifiers.
    Solution:   Restore command modifiers before returning. (closes #7649)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2336
    Problem:    Vim9: it is not possible to extend a dictionary with different
                item types.
    Solution:   Add extendnew(). (closes #7666)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/list.c, src/proto/list.pro, src/testdir/test_listdict.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2337
    Problem:    Configure test for GTK only says "no". (Harm te Hennepe)
    Solution:   Hint that a -def package is needed. (closes #5229)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2338
    Problem:    Vim9: no error if using job_info() result wrongly.
    Solution:   Adjust return type on number of arguments. (closes #7667)
    Files:      src/evalfunc.c, src/globals.h, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2339
    Problem:    Cannot get the type of a value as a string.
    Solution:   Add typename().
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vimscript.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2340
    Problem:    win_execute() unexpectedly returns number zero when failing.
    Solution:   Return an empty string. (closes #7665)
    Files:      src/evalwindow.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_execute_func.vim

    Patch 8.2.2341
    Problem:    Expression command line completion shows variables but not
                functions after "g:". (Gary Johnson)
    Solution:   Prefix "g:" when needed to a global function.
    Files:      src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_cmdline.vim

    Patch 8.2.2342
    Problem:    "char" functions return the wrong column in Insert mode when the
                cursor is beyond the end of the line.
    Solution:   Compute the column correctly. (Yegappan Lakshmanan, closes #7669)
    Files:      src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim

    Patch 8.2.2343
    Problem:    Vim9: return type of readfile() is any.
    Solution:   Add readblob() so that readfile() can be expected to always
                return a list of strings. (closes #7671)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/filepath.c, src/proto/filepath.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2344
    Problem:    Using inclusive index for slice is not always desired.
    Solution:   Add the slice() method, which has an exclusive index. (closes
                #7408)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/eval.c, src/proto/eval.pro, src/vim9execute.c,
                src/proto/vim9execute.pro, src/list.c, src/proto/list.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2345
    Problem:    No focus events in a terminal.
    Solution:   Add the t_fd and t_fe termcap entries and implement detecting
                focus events. (Hayaki Saito, Magnus Groß, closes #7673,
                closes #609, closes #5526)
    Files:      runtime/doc/term.txt, src/optiondefs.h, src/term.c, src/term.h

    Patch 8.2.2346
    Problem:    Codecov reports every little coverage drop.
    Solution:   Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki
                Kiichi, closes #7678)
    Files:      .appveyor.yml, appveyor.yml, .codecov.yml

    Patch 8.2.2347
    Problem:    Build failure without GUI.
    Solution:   Add #ifdef.
    Files:      src/term.c

    Patch 8.2.2348 (after 8.2.2345)
    Problem:    No check for modified files after focus gained. (Mathias Stearn)
    Solution:   Call ui_focus_change().
    Files:      src/term.c, src/ui.c

    Patch 8.2.2349
    Problem:    Vim9: cannot handle line break after parenthesis at line end.
    Solution:   Skip over line break. (closes #7677)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2350
    Problem:    Using "void" for no reason.
    Solution:   Use "char *".
    Files:      src/ex_docmd.c

    Patch 8.2.2351
    Problem:    Vim9: error message for "throw" in function that was called with
                "silent!".
    Solution:   Do not throw the exception when not caught or displayed.
                (closes #7672)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2352
    Problem:    If the focus lost/gained escape sequence is received twice it is
                not ignored. (Christ van Willegen)
    Solution:   Adjust the logic to ignore the escape code.
    Files:      src/term.c

    Patch 8.2.2353
    Problem:    Sparql files are not detected.
    Solution:   Add the sparql filetype.  (closes #7679)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2354
    Problem:    Crash with a weird combination of autocommands.
    Solution:   Increment b_nwindows when needed. (closes #7674)
    Files:      src/ex_cmds.c, src/buffer.c, src/proto/buffer.pro,
                src/testdir/test_autocmd.vim

    Patch 8.2.2355
    Problem:    Stray test failure on Appveyor.
    Solution:   Finish insert command.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.2356
    Problem:    Vim9: ":put =expr" does not handle a list properly.
    Solution:   Use the same logic as eval_to_string_eap(). (closes #7684)
    Files:      src/vim9execute.c, src/eval.c, src/proto/eval.pro,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2357
    Problem:    Vim9: crash when parsing function return type fails.
    Solution:   Bail out and set return type to "unknown". (closes #7685)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2358
    Problem:    Wrong #ifdef for use_xterm_like_mouse().
    Solution:   Use FEAT_MOUSE_XTERM.
    Files:      src/term.c

    Patch 8.2.2359
    Problem:    Strange test failure with MS-Windows.
    Solution:   Skip the system() call for now.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.2360
    Problem:    Test leaves file behind.
    Solution:   Delete the right file. (Dominique Pellé, closes #7689)
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.2361
    Problem:    Vim9: no highlight for "s///gc" when using 'opfunc'.
    Solution:   Reset 'lazyredraw' temporarily. (closes #7687)
    Files:      src/ex_cmds.c

    Patch 8.2.2362
    Problem:    Vim9: check of builtin function argument type is incomplete.
    Solution:   Use need_type() instead of check_arg_type().
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/evalfunc.c,
                src/proto/evalfunc.pro, src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2363
    Problem:    curpos() does not accept a string argument as before.
    solution:   Make a string argument work again. (Yegappan Lakshmanan,
                closes #7690)
    Files:      src/evalfunc.c, src/testdir/test_cursor_func.vim

    Patch 8.2.2364
    Problem:    Vim9: line break in lambda accesses freed memory.
    Solution:   Make a copy of the return type. (closes #7664)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2365
    Problem:    Vim9: no check for map() changing item type at script level.
    Solution:   Check the new value type.
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2366
    Problem:    When using ":sleep" the cursor is always displayed.
    Solution:   Do not display the cursor when using ":sleep!". (Jeremy Lerner,
                closes #7688)
    Files:      runtime/doc/index.txt, runtime/doc/various.txt, src/ex_cmds.h,
                src/ex_docmd.c, src/normal.c, src/proto/ex_docmd.pro, src/term.c,
                src/testdir/Make_all.mak, src/testdir/test_sleep.vim

    Patch 8.2.2367
    Problem:    Test failures on some less often used systems.
    Solution:   Adjust printf formats and types. (James McCoy, closes #7691)
    Files:      src/errors.h, src/evalfunc.c, src/list.c, src/vim9execute.c

    Patch 8.2.2368
    Problem:    Insufficient tests for setting options.
    Solution:   Add a few tests. (Dominique Pellé, closes #7695)
    Files:      src/testdir/test_options.vim

    Patch 8.2.2369
    Problem:    Vim9: functions return true/false but can't be used as bool.
    Solution:   Add ret_number_bool(). (closes #7693)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2370
    Problem:    Vim9: command fails in catch block.
    Solution:   Reset force_abort and need_rethrow. (closes #7692)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2371
    Problem:    Vim9: crash when using types in :for with unpack.
    Solution:   Check for skip_var_list() failing. Pass include_type to
                skip_var_one(). Skip type when compiling. (closes #7694)
    Files:      src/vim9compile.c, src/evalvars.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2372 (after 8.2.2371)
    Problem:    Confusing error message for wrong :let command.
    Solution:   Only check for type in Vim9 script.
    Files:      src/evalvars.c

    Patch 8.2.2373
    Problem:    Vim9: list assignment only accepts a number index.
    Solution:   Accept "any" and do a runtime type check. (closes #7694)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2374
    Problem:    Accessing uninitialized memory in test_undo.
    Solution:   Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé,
                closes #7697)
    Files:      src/edit.c

    Patch 8.2.2375
    Problem:    Test for RGB color skipped in the terminal.
    Solution:   Run the GUI if possible.
    Files:      src/testdir/test_highlight.vim

    Patch 8.2.2376
    Problem:    Vim9: crash when dividing by zero in compiled code using
                constants.
    Solution:   Call num_divide() and num_modulus(). (closes #7704)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2377
    Problem:    Vim9: crash when using a range after another expression.
    Solution:   Set the variable type to number. Fix using :put with a range and
                the "=" register. (closes #7706)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2378
    Problem:    Vim9: no error message for dividing by zero.
    Solution:   Give an error message. (issue #7704)
    Files:      src/errors.h, src/eval.c, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2379
    Problem:    Finding spell suggestions twice if 'spellsuggest' contains number.
    Solution:   Only do internal suggestions once.  (closes #7713)
    Files:      src/spellsuggest.c

    Patch 8.2.2380
    Problem:    Vim9: occasional crash when using try/catch and a timer.
    Solution:   Save and restore "need_rethrow" when invoking a timer callback.
                (closes #7708)
    Files:      src/time.c

    Patch 8.2.2381
    Problem:    Vim9: divide by zero does not abort expression execution.
    Solution:   Use a "failed" flag. (issue #7704)
    Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/vim9compile.c,
                src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim

    Patch 8.2.2382 (after 8.2.2381)
    Problem:    Build failure.
    Solution:   Add missing changes.
    Files:      src/vim9execute.c

    Patch 8.2.2383
    Problem:    Focus escape sequences are not named in ":set termcap" output.
    Solution:   Add the names to the list. (closes #7718)
    Files:      src/misc2.c

    Patch 8.2.2384
    Problem:    Turtle filetype not recognized.
    Solution:   Add a rule to detect turtle files. (closes #7722)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2385
    Problem:    "gj" and "gk" do not work correctly when inside a fold.
    Solution:   Move check for folding. (closes #7724, closes #4095)
    Files:      src/normal.c, src/testdir/test_fold.vim

    Patch 8.2.2386
    Problem:    Vim9: crash when using ":silent! put".
    Solution:   When ignoring an error for ":silent!" rewind the stack and skip
                ahead to restoring the cmdmod. (closes #7717)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2387
    Problem:    Runtime type check does not mention argument index.
    Solution:   Add ct_arg_idx. (closes #7720)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2388
    Problem:    No easy way to get the maximum or minimum number value.
    Solution:   Add v:numbermax and v:numbermin.
    Files:      src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim,
                runtime/doc/eval.txt

    Patch 8.2.2389
    Problem:    Test failure on a few systems.
    Solution:   Avoid that "char" value is negative.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h

    Patch 8.2.2390
    Problem:    Vim9: using positive offset is unexpected.
    Solution:   Use int8_T instead of char. (James McCoy)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c

    Patch 8.2.2391
    Problem:    Memory leak when creating a global function with closure.
    Solution:   Create a separate partial for every instantiated function.
    Files:      src/userfunc.c, src/vim9execute.c

    Patch 8.2.2392
    Problem:    Fennel filetype not recognized.
    Solution:   Detect with pattern and hashbang. (Chinmay Dalal, closes #7729)
    Files:      runtime/filetype.vim, runtime/scripts.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.2393
    Problem:    Vim9: error message when script line starts with "[{".
    Solution:   Do not give an error for checking for end of list.
    Files:      src/dict.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2394
    Problem:    Vim9: min() and max() return type is "any".
    Solution:   Use return type "number". (closes #7728)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2395
    Problem:    Vim9: error for wrong type may report wrong line number.
    Solution:   Save and restore the line number when evaluating the expression.
                (closes #7727)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2396
    Problem:    Vim9: no white space allowed before "->".
    Solution:   Allow for white space. (closes #7725)
    Files:      src/ex_docmd.c, src/eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2397
    Problem:    Vim9: "%%" not seen as alternate file name for commands with a
                buffer name argument.
    Solution:   Recognize "%%" like "#". (closes #7732)
    Files:      src/buffer.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2398 (after 8.2.2396)
    Problem:    Method test fails.
    Solution:   Adjust test for allowed white space.
    Files:      src/testdir/test_method.vim

    Patch 8.2.2399 (after 8.2.2385)
    Problem:    Fold test fails in wide terminal.
    Solution:   Adjust the test. (Dominique Pelle, closes #7731, closes #7739)
    Files:      src/testdir/test_fold.vim

    Patch 8.2.2400
    Problem:    Vim9: compiled functions are not profiled.
    Solution:   Add initial changes to profile compiled functions.  Fix that a
                script-local function was hard to debug.
    Files:      runtime/doc/repeat.txt, src/vim9.h, src/vim9compile.c,
                src/vim9execute.c, src/userfunc.c, src/proto/vim9compile.pro,
                src/structs.h, src/vim9type.c, src/debugger.c, src/ex_cmds.h,
                src/ex_docmd.c, src/profiler.c, src/proto/profiler.pro,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_profile.vim

    Patch 8.2.2401
    Problem:    Build fails without +profiling feature.
    Solution:   Add #ifdefs.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/structs.h,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2402
    Problem:    Some filetypes not detected.
    Solution:   Detect Ruby Signature and Puppet related files. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2403
    Problem:    Vim9: profiling if/elseif/endif not correct.
    Solution:   Add profile instructions.  Fix that "elseif" was wrong.
    Files:      src/vim9compile.c, src/testdir/test_profile.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2404
    Problem:    Vim9: profiling try/catch not correct.
    Solution:   Add profile instructions.  Fix that "entry" did not rethrow an
                exception.
    Files:      src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim

    Patch 8.2.2405
    Problem:    Vim9: no need to allow white space before "(" for :def.
    Solution:   Give an error for stray white space. (issue #7734)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2406
    Problem:    Vim9: profiled :def function leaks memory.
    Solution:   Delete the profiled instructions.
    Files:      src/vim9compile.c

    Patch 8.2.2407
    Problem:    Old jumplist code is never used.
    Solution:   Delete the dead code. (Yegappan Lakshmanan, closes #7740)
    Files:      src/mark.c

    Patch 8.2.2408
    Problem:    MinGW: "--preprocessor" flag no longer supported.
    Solution:   Remove the flag, use the defaults. (Christopher Wellons,
                closes #7741)
    Files:      src/GvimExt/Make_ming.mak, src/Make_cyg_ming.mak

    Patch 8.2.2409
    Problem:    Vim9: profiling only works for one function.
    Solution:   Select the right instructions when calling and returning.
                (closes #7743)
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/testdir/test_profile.vim

    Patch 8.2.2410
    Problem:    Build failure without the +profiling feature.
    Solution:   Add dummy argument to macro.
    Files:      src/vim9.h

    Patch 8.2.2411
    Problem:    Profile test fails on MS-Windows.
    Solution:   Do the profiling in a separate Vim command.
    Files:      src/testdir/test_profile.vim

    Patch 8.2.2412
    Problem:    Not all fields in "cstack" are initialized which might cause a
                crash.
    Solution:   Use CLEAR_FIELD().
    Files:      src/ex_docmd.c

    Patch 8.2.2413
    Problem:    Crash when using :all while using a cmdline window. (Zdenek Dohnal)
    Solution:   Disallow :all from the cmdline window.
    Files:      src/arglist.c, src/ex_getln.c, src/testdir/test_arglist.vim

    Patch 8.2.2414
    Problem:    Using freed memory when closing the cmdline window.
    Solution:   Check the window is still valid.
    Files:      src/ex_getln.c

    Patch 8.2.2415
    Problem:    No way to check for the cmdwin feature, cmdline_hist is now always
                enabled.
    Solution:   Add has('cmdwin') support. Skip arglist test on Windows
                temporarily.
    Files:      runtime/doc/cmdline.txt, src/evalfunc.c,
                src/testdir/test_autocmd.vim, src/testdir/test_arglist.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_normal.vim, src/testdir/test_tabpage.vim,
                src/testdir/test_termcodes.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.2416
    Problem:    May get stuck in command line window state.
    Solution:   Reset "cmdwin_type" when editing buffer fails.  Make arglist test
                pass on MS-Windows.
    Files:      src/ex_getln.c, src/testdir/test_arglist.vim

    Patch 8.2.2417
    Problem:    Condition stack values may be used when not set.
    Solution:   Clear cs_script_var_len and cs_block_id just in case they get used
                later. (issue #7733)
    Files:      src/ex_eval.c

    Patch 8.2.2418
    Problem:    Color not changed if ModeMsg highlight is set in InsertEnter
                autocmd event. (Paul Swanson)
    Solution:   Call highlight_changed() after triggering InsertEnter.
                (closes #7751)
    Files:      src/edit.c

    Patch 8.2.2419
    Problem:    Autocmd test was failing on MS-Windows with GUI.
    Solution:   Remove stray feedkeys().
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.2420
    Problem:    Too many problems with using all autocommand events.
    Solution:   Disallow defining an autocommand for all events.
    Files:      src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.2421
    Problem:    Double free when using autocommand with "argdel". (Houyunsong)
    Solution:   Add the arglist_locked flag.
    Files:      src/arglist.c, src/testdir/test_autocmd.vim

    Patch 8.2.2422
    Problem:    Crash when deleting with line number out of range. (Houyunsong)
    Solution:   Avoid using a negative line number.
    Files:      src/normal.c, src/testdir/test_ex_mode.vim

    Patch 8.2.2423 (after 8.2.2422)
    Problem:    Missing error message.
    Solution:   Add the error message.
    Files:      src/errors.h

    Patch 8.2.2424
    Problem:    Some tests are known to cause an error with ASAN.
    Solution:   Add CheckNotAsan.
    Files:      src/testdir/check.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_memory_usage.vim, src/testdir/test_ex_mode.vim

    Patch 8.2.2425
    Problem:    Cursor on invalid line with range and :substitute.
    Solution:   Do not move the cursor when skipping commands. (closes #3434)
    Files:      src/ex_cmds.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.2426
    Problem:    Allowing 'completefunc' to switch windows causes trouble.
    Solution:   use "textwinlock" instead of "textlock".
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim,
                src/testdir/test_popup.vim

    Patch 8.2.2427
    Problem:    Can still switch windows for 'completefunc'.
    Solution:   Also disallow switching windows for other completions.
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim,
                src/testdir/test_popup.vim

    Patch 8.2.2428
    Problem:    FocusGained does not work when 'ttymouse' is empty.
    Solution:   Don't use the short mouse code if there is a longer matching code.
                (closes #7755)  Add a test.
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.2429
    Problem:    :goto does not work correctly with text properties. (Sam McCall)
    Solution:   Add a test. (Andrew Radev)  Also use the text property size when
                computing the remaining offset. (closes #5930)
    Files:      src/memline.c, src/testdir/test_textprop.vim

    Patch 8.2.2430
    Problem:    :vimgrep expands wildcards twice.
    Solution:   Do not expand wildcards a second time.
    Files:      src/quickfix.c, src/arglist.c, src/testdir/test_quickfix.vim

    Patch 8.2.2431
    Problem:    Warning for -fno-strength-reduce with Clang 11.
    Solution:   Adjust check for clang version number.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2432
    Problem:    Libvterm tests are executed even when libtool doesn't work.
    Solution:   Only run libvterm tests if /usr/bin/gcc exists.
    Files:      src/Makefile

    Patch 8.2.2433
    Problem:    Opening cmdline window gives error in BufLeave autocommand.
    Solution:   Reset cmdwin_type when triggering the autocommand.
    Files:      src/ex_cmds.c, src/testdir/test_cmdline.vim

    Patch 8.2.2434
    Problem:    Vim9: no error when compiling str2nr() with a number.
    Solution:   Add argument type checks. (closes #7759)
    Files:      src/evalfunc.c, src/typval.c, src/proto/typval.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2435
    Problem:    setline() gives an error for some types.
    Solution:   Allow any type, convert each item to a string.
    Files:      runtime/doc/eval.txt, src/evalbuffer.c, src/typval.c,
                src/proto/typval.pro, src/debugger.c, src/vim9execute.c,
                src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2436
    Problem:    Vim9 script test is a bit flaky.
    Solution:   Wait longer for exit callback.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2437
    Problem:    Deprecation warnings with default configuration.
    Solution:   Add -Wno-deprecated-declarations.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2438
    Problem:    Out of bounds compiler warning.
    Solution:   Increase the size of uf_name.
    Files:      src/structs.h

    Patch 8.2.2439
    Problem:    Not easy to figure out what packages to get when installing Vim on
                a new Ubuntu system.
    Solution:   Mention explicit commands that are easy to follow.
    Files:      src/INSTALL

    Patch 8.2.2440
    Problem:    Documentation based on patches is outdated.
    Solution:   Add changes to documentation in a patch.
    Files:      runtime/doc/arabic.txt, runtime/doc/autocmd.txt,
                runtime/doc/change.txt, runtime/doc/channel.txt,
                runtime/doc/cmdline.txt, runtime/doc/debugger.txt,
                runtime/doc/develop.txt, runtime/doc/digraph.txt,
                runtime/doc/editing.txt, runtime/doc/eval.txt,
                runtime/doc/filetype.txt, runtime/doc/ft_sql.txt,
                runtime/doc/gui.txt, runtime/doc/gui_w32.txt,
                runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt,
                runtime/doc/helphelp.txt, runtime/doc/help.txt,
                runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt,
                runtime/doc/if_tcl.txt, runtime/doc/indent.txt,
                runtime/doc/index.txt, runtime/doc/insert.txt,
                runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt,
                runtime/doc/message.txt, runtime/doc/mlang.txt,
                runtime/doc/motion.txt, runtime/doc/netbeans.txt,
                runtime/doc/options.txt, runtime/doc/os_dos.txt,
                runtime/doc/os_haiku.txt, runtime/doc/os_unix.txt,
                runtime/doc/os_vms.txt, runtime/doc/os_win32.txt,
                runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt,
                runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt,
                runtime/doc/pi_tar.txt, runtime/doc/pi_vimball.txt,
                runtime/doc/pi_zip.txt, runtime/doc/popup.txt,
                runtime/doc/print.txt, runtime/doc/quickfix.txt,
                runtime/doc/quickref.txt, runtime/doc/recover.txt,
                runtime/doc/remote.txt, runtime/doc/repeat.txt,
                runtime/doc/rileft.txt, runtime/doc/sign.txt,
                runtime/doc/spell.txt, runtime/doc/starting.txt,
                runtime/doc/syntax.txt, runtime/doc/tabpage.txt,
                runtime/doc/tagsrch.txt, runtime/doc/terminal.txt,
                runtime/doc/term.txt, runtime/doc/testing.txt,
                runtime/doc/textprop.txt, runtime/doc/tips.txt,
                runtime/doc/todo.txt, runtime/doc/uganda.txt,
                runtime/doc/undo.txt, runtime/doc/usr_02.txt,
                runtime/doc/usr_03.txt, runtime/doc/usr_04.txt,
                runtime/doc/usr_05.txt, runtime/doc/usr_07.txt,
                runtime/doc/usr_08.txt, runtime/doc/usr_10.txt,
                runtime/doc/usr_11.txt, runtime/doc/usr_20.txt,
                runtime/doc/usr_22.txt, runtime/doc/usr_23.txt,
                runtime/doc/usr_24.txt, runtime/doc/usr_27.txt,
                runtime/doc/usr_30.txt, runtime/doc/usr_31.txt,
                runtime/doc/usr_40.txt, runtime/doc/usr_41.txt,
                runtime/doc/usr_42.txt, runtime/doc/usr_44.txt,
                runtime/doc/usr_45.txt, runtime/doc/usr_46.txt,
                runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt,
                runtime/doc/various.txt, runtime/doc/version5.txt,
                runtime/doc/version6.txt, runtime/doc/version7.txt,
                runtime/doc/version8.txt, runtime/doc/vi_diff.txt,
                runtime/doc/vim9.txt, runtime/doc/visual.txt,
                runtime/doc/windows.txt

    Patch 8.2.2441
    Problem:    Vim9: extend() does not give an error for a type mismatch.
    Solution:   Check the type of the second argument. (closes #7760)
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2442
    Problem:    Automatic GUI selection does not check for GTK 3.
    Solution:   Make SKIP_GTK3 empty for automatic GUI support.  Set SKIP_GTK3 to
                YES when checking for GTK2.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2443
    Problem:    Vim9: no compile time error for wrong str2float argument.
    Solution:   Check argument type. (closes #7759)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2444
    Problem:    Vim9: compile error with combination of operator and list.
    Solution:   Generate constants before parsing a list or dict. (closes #7757)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2445
    Problem:    Vim9: no proper error for lambda missing return type.
    Solution:   Check for this error. (closes #7758)
    Files:      src/errors.h, src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2446
    Problem:    Setting 'term' empty has different error if compiled with GUI.
    Solution:   Insert "else". (closes #7766)
    Files:      src/optionstr.c, src/testdir/test_options.vim

    Patch 8.2.2447
    Problem:    'foldlevel' not applied to folds restored from session.
    Solution:   Set 'foldlevel' after creating the folds. (closes #7767)
    Files:      src/fold.c, src/testdir/test_mksession.vim

    Patch 8.2.2448
    Problem:    Compilation error with Ruby 3.0.
    Solution:   Adjust #ifdefs and declaration. (Ken Takata, closes #7761)
    Files:      src/if_ruby.c

    Patch 8.2.2449
    Problem:    Vim9: flatten() always changes the list type.
    Solution:   Disallow using flatten() and add flattennew().
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/list.c, src/proto/list.pro, src/errors.h, src/vim9compile.c,
                src/testdir/test_flatten.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2450
    Problem:    MS-Windows: ADS was not preserved if 'backupcopy' is "yes".
    Solution:   Copy ADS before truncating the file. (Ken Takata, closes #7762)
    Files:      src/bufwrite.c

    Patch 8.2.2451
    Problem:    MS-Windows: Extended Attributes not preserved.
    Solution:   Preserve Extended Attributes when writing a file. (Ken Takata,
                closes #7765)
    Files:      src/os_win32.c

    Patch 8.2.2452
    Problem:    No completion for the 'filetype' option.
    Solution:   Add filetype completion. (Martin Tournoij, closes #7747)
    Files:      src/option.c, src/optiondefs.h, src/testdir/test_options.vim

    Patch 8.2.2453
    Problem:    Vim9: a variable name with "->" in the next line doesn't work.
    Solution:   Recognize a variable name by itself. (closes #7770)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2454
    Problem:    Leading space can not be made visible.
    Solution:   Add "lead:" to 'listchars'. (closes #7772)
    Files:      runtime/doc/options.txt, src/drawline.c, src/globals.h,
                src/message.c, src/screen.c, src/testdir/test_listchars.vim

    Patch 8.2.2455
    Problem:    Vim9: key type that can be used for literal dict and indexing is
                inconsistent.
    Solution:   Allow using number and bool as key for a literal dict. (#7771)
    Files:      runtime/doc/vim9.txt, src/dict.c, src/eval.c, src/vim9compile.c,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2456
    Problem:    Coverity warning for strcpy() into fixed size array.
    Solution:   Add a type cast to hopefully silence the bogus warning.
    Files:      src/userfunc.c

    Patch 8.2.2457
    Problem:    Coverity warns for memory leak.
    Solution:   Free memory when out of memory.
    Files:      src/if_cscope.c

    Patch 8.2.2458
    Problem:    Coverity warns for :retab using freed memory.
    Solution:   Use the updated line pointer when moving text properties.
    Files:      src/indent.c

    Patch 8.2.2459
    Problem:    Coverity reports dead code.
    Solution:   Remove the dead code.
    Files:      src/eval.c

    Patch 8.2.2460
    Problem:    Coverity warns for unused value.
    Solution:   Do not reset the return value to OK.
    Files:      src/vim9compile.c

    Patch 8.2.2461
    Problem:    Coverity warns for unchecked return value.
    Solution:   Add "(void)" to avoid the warning.
    Files:      src/vim9execute.c

    Patch 8.2.2462
    Problem:    Coverity warns for not checking for fseek() error.
    Solution:   Give an error message if fseek() fails.
    Files:      src/spellfile.c

    Patch 8.2.2463
    Problem:    Using :arglocal in an autocommand may use freed memory.
                (houyunsong)
    Solution:   Check if the arglist is locked.
    Files:      src/arglist.c, src/testdir/test_autocmd.vim

    Patch 8.2.2464
    Problem:    Using freed memory if window closed in autocommand. (houyunsong)
    Solution:   Check the window still exists.
    Files:      src/ex_cmds.c, src/testdir/test_autocmd.vim

    Patch 8.2.2465
    Problem:    Using freed memory in :psearch. (houyunsong)
    Solution:   Check the current window is still valid.  Fix flaky test.
    Files:      src/search.c, src/testdir/test_autocmd.vim

    Patch 8.2.2466
    Problem:    Max() and min() can give many error messages.
    Solution:   Bail out at the first error. (closes #1039, closes #7778)
    Files:      src/evalfunc.c, src/testdir/test_functions.vim

    Patch 8.2.2467
    Problem:    Script generated by :mkview changes alternate file.
    Solution:   Only write :balt in the session file. (Harish Rajagopal,
                closes #7779)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.2468
    Problem:    Not easy to get the full command name from a shortened one.
    Solution:   Add fullcommand(). (Martin Tournoij, closes #7777)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/ex_docmd.c, src/proto/evalfunc.pro,
                src/testdir/test_cmdline.vim

    Patch 8.2.2469
    Problem:    Confusing error if :winsize has a wrong argument.
    Solution:   Quote the argument in the error. (closes #2523)
    Files:      src/ex_docmd.c, src/testdir/test_excmd.vim

    Patch 8.2.2470
    Problem:    Popup_getoptions() does not get textprop from other tab.
    Solution:   use win_valid_any_tab(). (closes #7786)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.2471
    Problem:    Popup_setoptions() does not set textprop in other tab.
    Solution:   use win_valid_any_tab(). (closes #7788)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.2472
    Problem:    Crash when using command line window in an autocommand.
                (houyunsong)
    Solution:   Save and restore au_new_curbuf.
    Files:      src/ex_cmds.c, src/testdir/test_autocmd.vim

    Patch 8.2.2473
    Problem:    Crash when leaving command line window triggers autocommand.
                (houyunsong)
    Solution:   Make sure not to close the current window or buffer.
    Files:      src/ex_getln.c, src/testdir/test_autocmd.vim

    Patch 8.2.2474
    Problem:    Using freed memory when window is closed by autocommand.
                (houyunsong)
    Solution:   Check the window pointer is still valid.
    Files:      src/quickfix.c, src/testdir/test_autocmd.vim

    Patch 8.2.2475
    Problem:    Autocommand tests hangs on MS-Windows.
    Solution:   Skip one test.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.2476
    Problem:    Using freed memory when using an autocommand to split a window
                while a buffer is being closed.
    Solution:   Disallow splitting when the buffer has b_locked_split set.
    Files:      src/buffer.c, src/window.c, src/errors.h, src/structs.h,
                src/popupwin.c, src/testdir/test_autocmd.vim

    Patch 8.2.2477
    Problem:    Autocommand tests hang on MS-Windows.
    Solution:   Skip a couple of tests.  Fix file name.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.2478
    Problem:    MS-Windows: backup files for plugins are loaded.
    Solution:   Do not use the alternate file name for files ending in "~".
    Files:      src/filepath.c

    Patch 8.2.2479
    Problem:    set/getbufline test fails without the job feature.
    Solution:   Check whether the job feature is supported. (Dominique Pellé,
                closes #7790)
    Files:      src/testdir/test_bufline.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2480
    Problem:    Vim9: some errors for white space do not show context.
    Solution:   Include the text at the error.
    Files:      src/errors.h, src/dict.c, src/list.c, src/userfunc.c,
                src/vim9compile.c, src/vim9script.c, src/vim9type.c

    Patch 8.2.2481
    Problem:    Vim9: confusing error when variable arguments have a default
                value.
    Solution:   Give a specific error message. (closes #7793)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2482
    Problem:    Build error.
    Solution:   Add new error message.
    Files:      src/errors.h

    Patch 8.2.2483
    Problem:    Vim9: type error for malformed expression.
    Solution:   Check for end of command before checking type. (closes #7795)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2484
    Problem:    Vim9: Cannot use a comment starting with #{ after an expression.
    Solution:   Remove the check for "{" since #{ dictionaries are not supported.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2485
    Problem:    When sourcing a script again the script version isn't reset.
    Solution:   Set sn_version to one when sourcing a script again. Clear
                sn_save_cpo properly. (closes #7608)
    Files:      src/scriptfile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2486
    Problem:    Vim9: some errors for white space do not show context.
    Solution:   Include the text at the error.
    Files:      src/errors.h, src/dict.c, src/list.c, src/userfunc.c,
                src/vim9compile.c, src/vim9type.c

    Patch 8.2.2487
    Problem:    Terminal shows garbage after double-wide character with a
                combining character. (Kyoichiro Yamada)
    Solution:   Libvterm: do not add the width of the combining character to the
                glyph width. (closes #7801)
    Files:      src/libvterm/src/state.c, src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_combining.dump

    Patch 8.2.2488
    Problem:    json_encode() gives generic argument error.
    Solution:   Mention the type that can't be encoded. (issue #7802)
    Files:      src/json.c, src/errors.h, src/testdir/test_json.vim

    Patch 8.2.2489
    Problem:    current buffer is wrong after deletebufline() fails to delete a
                line in another buffer.
    Solution:   Restore the current buffer.
    Files:      src/evalbuffer.c, src/testdir/test_bufline.vim

    Patch 8.2.2490
    Problem:    'wrap' option is always reset when starting diff mode.
    Solution:   Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797)
    Files:      runtime/doc/diff.txt, runtime/doc/options.txt, src/diff.c,
                src/testdir/test_diffmode.vim

    Patch 8.2.2491
    Problem:    Popup window for text property may show in first screen line.
    Solution:   If the text position is invisible do not show the popup window.
                (closes #7807)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popup_prop_not_visible_01.dump,
                src/testdir/dumps/Test_popup_prop_not_visible_02.dump,
                src/testdir/dumps/Test_popup_prop_not_visible_03.dump

    Patch 8.2.2492
    Problem:    Command line buffer name cannot be translated.
    Solution:   Add _(). (Gabriel Dupras, closes #7812)
    Files:      src/ex_getln.c

    Patch 8.2.2493
    Problem:    Text property for text left of window shows up.
    Solution:   Check if the text property ends before the current column.
                (closes #7806)
    Files:      src/drawline.c, src/testdir/test_textprop.vim,
                src/testdir/dumps/Test_textprop_nowrap_01.dump,
                src/testdir/dumps/Test_textprop_nowrap_02.dump

    Patch 8.2.2494
    Problem:    ":rviminfo!" clears most of oldfiles.
    Solution:   Add VIF_ONLY_CURBUF to read_viminfo(). (closes #1781)
    Files:      src/viminfo.c, src/vim.h

    Patch 8.2.2495
    Problem:    Text jumps up and down when moving the cursor in a small window
                with wrapping text and 'scrolloff' set.
    Solution:   Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre,
                closes #7813)
    Files:      src/move.c, src/testdir/test_breakindent.vim

    Patch 8.2.2496 (after 8.2.2495)
    Problem:    Insufficient testing for text jumping fix.
    Solution:   Add another test case.
    Files:      src/testdir/test_breakindent.vim

    Patch 8.2.2497
    Problem:    No error when using more than one character for a register name.
    Solution:   In Vim9 script check for a single character string. (closes #7814)
                Fix that VAR_BOOL and VAR_SPECIAL are not considered equal.
    Files:      src/errors.h, src/evalfunc.c, src/typval.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2498
    Problem:    No test for what 8.2.2494 fixes.
    Solution:   Add a simple change to test the fix. (closes #7818)
    Files:      src/testdir/test_viminfo.vim

    Patch 8.2.2499
    Problem:    "vim -g --version" does not redirect output.
    Solution:   Reset gui.starting when showing version info. (closes #7815)
    Files:      src/main.c, src/testdir/test_version.vim

    Patch 8.2.2500 (after 8.2.2499)
    Problem:    Build fails without the GUI feature.
    Solution:   Add #ifdef.
    Files:      src/main.c

    Patch 8.2.2501
    Problem:    Not always clear where an error is reported.
    Solution:   Add the where_T structure and pass it around. (closes #7796)
    Files:      src/structs.h, src/vim9type.c, src/proto/vim9type.pro,
                src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/eval.c,
                src/proto/eval.pro, src/vim9execute.c, src/vim9script.c,
                src/proto/vim9script.pro, src/dict.c, src/list.c,
                src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2502
    Problem:    A few github actions are failing.
    Solution:   Install setuptools-rust. (closes #7823)
    Files:      .github/workflows/ci.yml

    Patch 8.2.2503
    Problem:    Vim9: a caught error may leave something on the stack.
    Solution:   Drop items from the stack if needed. (closes #7826)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2504
    Problem:    Vim9: crash when using an argument from a closure.
    Solution:   Check if gen_load_outer is NULL. (closes #7821)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2505
    Problem:    Vim9: crash after defining function with invalid return type.
    Solution:   Clear function growarrays.  Fix memory leak.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2506
    Problem:    Vim9: :continue does not work correctly in a :try block
    Solution:   Add the TRYCLEANUP instruction. (closes #7827)
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2507
    Problem:    Github build may fail if Ubuntu 20.04 is used.  Installing rust is
                not needed.
    Solution:   Specify ubuntu-18.04 instead of latest. Update "pip" instead of
                installing rust. (Ozaki Kiichi, closes #7820)
    Files:      .github/workflows/ci.yml

    Patch 8.2.2508
    Problem:    Cannot change the character displayed in non existing lines.
    Solution:   Add the "eob" item to 'fillchars'. (closes #7832, closes #3820)
    Files:      runtime/doc/options.txt, runtime/doc/todo.txt,
                runtime/doc/windows.txt, src/drawscreen.c, src/globals.h,
                src/optiondefs.h, src/screen.c, src/testdir/test_display.vim

    Patch 8.2.2509
    Problem:    Tests fail on s390 build.
    Solution:   Initialize trycmd_T.
    Files:      src/vim9execute.c

    Patch 8.2.2510
    Problem:    Internal error when popup with mask is zero height or width.
    Solution:   Bail out if width or height is zero. (closes #7831)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.2511
    Problem:    Vim9: cannot use Vim9 script syntax in some places.
    Solution:   Add the :vim9cmd command modifier. Incompatible: Makes ":vim9"
                mean ":vim9cmd" instead of ":vim9script".
    Files:      runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/ex_docmd.c,
                src/ex_cmds.h, src/structs.h, src/ex_cmdidxs.h, src/errors.h,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_1.dump,
                src/testdir/dumps/Test_wildmenu_2.dump,
                src/testdir/dumps/Test_wildmenu_3.dump,
                src/testdir/dumps/Test_wildmenu_4.dump,
                src/testdir/test_quickfix.vim

    Patch 8.2.2512
    Problem:    Vim9: compiling error test sometimes fails.
    Solution:   use WaitForAssert() instead of sleeping for a bit. (Dominique
                Pellé, closes #7837)
    Files:      src/testdir/term_util.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2513 (after 8.2.2511)
    Problem:    Vim9: missing part of :vim9cmd change.
    Solution:   Use command modifier in in_vim9script().
    Files:      src/vim9script.c

    Patch 8.2.2514 (after 8.2.2511)
    Problem:    Vim9: build error in tiny version.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.2515
    Problem:    Memory access error when truncating an empty message.
    Solution:   Check for an empty string. (Dominique Pellé, closes #7841)
    Files:      src/message.c, src/message_test.c

    Patch 8.2.2516
    Problem:    Test failure on s390. (analyses by James McCoy)
    Solution:   Only set the try_finally label when not skipping.
    Files:      src/vim9compile.c

    Patch 8.2.2517
    Problem:    Vim9: fix for s390 not tested on other systems.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2518
    Problem:    'listchars' should be window-local.
    Solution:   Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz,
                closes #5206, closes #7850)
    Files:      runtime/doc/options.txt, src/buffer.c, src/charset.c,
                src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/globals.h,
                src/indent.c, src/message.c, src/misc1.c, src/option.c,
                src/option.h, src/optiondefs.h, src/optionstr.c,
                src/proto/screen.pro, src/screen.c, src/structs.h,
                src/testdir/test_listchars.vim, src/testdir/test_listlbr.vim

    Patch 8.2.2519
    Problem:    Vim9: no reason to keep strange Vi behavior.
    Solution:   ":3" and ":3|" both go to line 3. ":|" does not print the line.
                (closes #7840)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2520
    Problem:    Missing tests for 'listchars'.
    Solution:   Add a few more checks. (Yegappan Lakshmanan, closes #7854)
    Files:      src/testdir/test_listchars.vim

    Patch 8.2.2521
    Problem:    Some compilers can't handle pointer initialization. (John
                Marriott)
    Solution:   Use a local struct and assign it afterwards.
    Files:      src/screen.c

    Patch 8.2.2522
    Problem:    Beancount filetype not recognized.
    Solution:   Add a detection rule. (Brian Ryall, closes #7859)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2523
    Problem:    Svelte filetype not recognized.
    Solution:   Add a detection rule. (Brian Ryall, closes #7858)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2524
    Problem:    Cannot change the characters displayed in the foldcolumn.
    Solution:   Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron,
                closes #7860)
    Files:      runtime/doc/options.txt, src/globals.h, src/mouse.c, src/screen.c,
                src/testdir/test_display.vim

    Patch 8.2.2525
    Problem:    Vim9: only local variables checked for a name.
    Solution:   Also check arguments and script variables. (closes #7838)
    Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2526 (after 8.2.2525)
    Problem:    Build failure.
    Solution:   Change lookup_scriptvar() arguments.
    Files:      src/evalvars.c, src/proto/evalvars.pro

    Patch 8.2.2527
    Problem:    Vim9: lambda return type is not determined at script level.
    Solution:   Compile the lambda to get the return type. (closes #7843)
    Files:      src/eval.c, src/vim.h, src/vim9.h,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2528
    Problem:    Vim9: crash when compiling lambda fails.
    Solution:   Bail out after compilation fails. (closes #7862)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2529
    Problem:    Vim9: Not possible to use legacy and Vim9 script in one file.
    Solution:   Vim9: allow for "if false" before :vim9script. (closes #7851)
    Files:      runtime/doc/vim9.txt, src/ex_docmd.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2530
    Problem:    Vim9: not enough testing for profiling.
    Solution:   Add a test with nested functions and a lambda.  Fix profiling
                for calling a compiled function.
    Files:      src/profiler.c, src/proto/profiler.pro, src/userfunc.c,
                src/vim9execute.c, src/testdir/test_profile.vim

    Patch 8.2.2531
    Problem:    Vim9: the :k command is obscure.
    Solution:   Disallow using :k, can use :mark instead. (closes #7874)
    Files:      runtime/doc/vim9.txt, src/ex_docmd.c, src/vim9script.c,
                src/vim9compile.c, src/ex_cmds.h, src/testdir/test_vim9_script.vim

    Patch 8.2.2532
    Problem:    Vim9: confusing error if :k is used with a range.
    Solution:   Give an error about the range. (issue #7874)
    Files:      src/vim9script.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2533
    Problem:    Vim9: cannot use a range with :unlet.
    Solution:   Implement ISN_UNLETRANGE.
    Files:      src/errors.h, src/eval.c, src/evalvars.c, src/list.c,
                src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h,
                src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2534
    Problem:    Missing test coverage.
    Solution:   Improve test coverage for completion with different encodings,
                mapset(), and term function failures. (Dominique Pellé,
                closes #7877)
    Files:      src/testdir/test_edit.vim, src/testdir/test_maparg.vim,
                src/testdir/test_terminal3.vim

    Patch 8.2.2535
    Problem:    MS-Windows: cannot run all vim9 tests.
    Solution:   Make test_vim9 target work.
    Files:      src/Make_mvc.mak

    Patch 8.2.2536
    Problem:    Coverity complains about unchecked return value.
    Solution:   Add (void).
    Files:      src/userfunc.c

    Patch 8.2.2537
    Problem:    Vim9: crash when map() fails.
    Solution:   Clear typval before using it. (closes #7884)
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2538
    Problem:    Crash when using Python list iterator.
    Solution:   Increment the list reference count. (closes #7886)
    Files:      src/if_py_both.h, src/testdir/test_python3.vim

    Patch 8.2.2539
    Problem:    Vim9: return from finally block causes a hang.
    Solution:   Store both the finally and endtry indexes. (closes #7885)
    Files:      src/vim9execute.c, src/vim9compile.c, src/vim9.h,
                src/testdir/test_vim9_script.vim,

    Patch 8.2.2540
    Problem:    Vim9: no error for using script var name for argument.
    Solution:   Check for this error. (closes #7868)
    Files:      src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2541
    Problem:    Popup_create() does not allow boolean for "cursorline".
    Solution:   Use dict_get_bool(). (issue #7869)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.2542
    Problem:    Highlight of char beyond line end is not correct. (Chuan Wei Foo)
    Solution:   Fix counting NUL as one cell.  Draw one more character if the EOL
                is part of the match. (closes #7883)
    Files:      src/match.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_1.dump,
                src/testdir/dumps/Test_hlsearch_2.dump

    Patch 8.2.2543
    Problem:    Vim9: a return inside try/catch does not restore exception state
                properly.
    Solution:   When there is no ":finally" jump to ":endtry". (closes #7882)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2544
    Problem:    Vim9: error for argument when checking for lambda.
    Solution:   Respect the skip flag. (closes #7887)
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2545
    Problem:    Errors and crash when terminal window is zero height. (Leonid V.
                Fedorenchik)
    Solution:   Do not resize when width or height is zero. (closes #7890)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.2546
    Problem:    Typo in mouse key name.
    Solution:   Fix the typo. (issue #4725)
    Files:      src/misc2.c

    Patch 8.2.2547
    Problem:    "%" command not accurate for big files.
    Solution:   Make it more accurate for files up to 21M lines. (Dominique Pellé,
                closes #7889)
    Files:      src/normal.c

    Patch 8.2.2548
    Problem:    May get stuck in the cmdline window using :normal.
    Solution:   Have nv_esc() return K_IGNORE.
    Files:      src/normal.c

    Patch 8.2.2549
    Problem:    Crash after using "g:" in a for loop.
    Solution:   Increment the reference count. (closes #7892)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2550
    Problem:    Signal stack size is wrong with latest glibc 2.34.
    Solution:   Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes
                #7895)
    Files:      src/config.h.in, src/configure.ac, src/os_unix.c,
                src/auto/configure

    Patch 8.2.2551
    Problem:    MS-Windows: colors test file is not installed.
    Solution:   Also copy runtime/colors/tools. (Ken Takata, closes #7902)
    Files:      nsis/gvim.nsi

    Patch 8.2.2552
    Problem:    Vim9: no reason to consider "{{{{{{{{" a command.
    Solution:   Just use "{". (issue #7904)
    Files:      src/ex_cmds.h

    Patch 8.2.2553
    Problem:    Vim9: Cannot put "|" after "{".
    Solution:   Add the EX_TRLBAR flag. (issue #7904)
    Files:      src/ex_cmds.h, src/ex_eval.c

    Patch 8.2.2554
    Problem:    Vim9: exporting a final is not tested.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2555
    Problem:    Vim9: missing test for 8.2.2553.
    Solution:   Add a simple test.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2556
    Problem:    Vim9: :import with "as" not fully supported.
    Solution:   Implement "as" for more cases.
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2557
    Problem:    Compiler warning for shadowed variable.
    Solution:   Declare "p" only once.
    Files:      src/vim9script.c

    Patch 8.2.2558
    Problem:    No error if a lambda argument shadows a variable.
    Solution:   Check that the argument name shadows a local, argument or script
                variable. (closes #7898)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/userfunc.c,
                src/vim9script.c, src/errors.h, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.2559
    Problem:    MS-Windows: guifont test fails on Windows XP.
    Solution:   Check windowsversion().
    Files:      src/testdir/test_gui.vim

    Patch 8.2.2560
    Problem:    Setting 'winminheigt' does not take tabline into account.
    Solution:   Subtract the tabline from the available height. (closes #7899)
    Files:      src/window.c, src/testdir/test_options.vim

    Patch 8.2.2561
    Problem:    Not all textprop code is covered by tests.
    Solution:   Add a few more test cases. (Dominique Pellé, closes #7908)
    Files:      src/testdir/test_textprop.vim

    Patch 8.2.2562
    Problem:    GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo
                Karkat)
    Solution:   Do not change the star register when 'clipboard' contains
                "unnamedplus" and not "unnamed". (closes #1516)
    Files:      src/register.c

    Patch 8.2.2563
    Problem:    Cannot use multibyte characters for folding in 'fillchars'.
    Solution:   Port pull request 11568 to Vim. (Yegappan Lakshmanan,
                closes #7924)
    Files:      src/drawline.c, src/drawscreen.c, src/macros.h,
                src/proto/screen.pro, src/screen.c, src/testdir/test_fold.vim,
                src/testdir/test_profile.vim

    Patch 8.2.2564
    Problem:    Focus events end Insert mode if 'esckeys' is not set.
    Solution:   Do not enable focus events when 'esckeys' is off. (closes #7926)
    Files:      src/term.c

    Patch 8.2.2565
    Problem:    Vim9: "..=" not always recognized.
    Solution:   Do not consider "..=" to be string concatenation. (closes #7905)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2566
    Problem:    Vim9: Function name is not recognized.
    Solution:   Change lookup_scriptvar() to also find function names.
                (closes #7770)
    Files:      src/vim9script.c, src/evalvars.c, src/proto/evalvars.pro,
                src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2567
    Problem:    Vim9: no error if variable is defined for existing function.
    Solution:   Check if name isn't already in use. (closes #7897)
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2568
    Problem:    Second time a preview popup is opened highlight is not set.
                (Gabriel Dupras)
    Solution:   Apply 'previewpopup' after getting the file. (closes #7928)
    Files:      src/tag.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_previewpopup_2.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_3.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_4.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_5.dump

    Patch 8.2.2569
    Problem:    'fillchars' "stl" and "stlnc" items must be single byte.
    Solution:   Accept multi-byte characters. (Christian Wellenbrock, Yegappan
                Lakshmanan, closes #7927)
    Files:      runtime/doc/options.txt, src/buffer.c, src/macros.h, src/screen.c,
                src/testdir/test_fold.vim, src/testdir/test_statusline.vim

    Patch 8.2.2570
    Problem:    Tests fail when run as root.
    Solution:   Add a comment mentioning the expected failure. (issue #7919)
    Files:      src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
                src/testdir/test_help.vim, src/testdir/test_writefile.vim

    Patch 8.2.2571
    Problem:    Test may leave file behind.
    Solution:   Delete the temporary file.  Don't profile in the running Vim
                instance.
    Files:      src/testdir/test_quickfix.vim, src/testdir/test_profile.vim

    Patch 8.2.2572
    Problem:    Vim9: crash when getting the types for a legacy function.
    Solution:   Initialize the type list growarray. (closes #7929)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2573
    Problem:    Vim9: using invalid pointer for error message.
    Solution:   Use the right pointer. (closes #7921)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2574
    Problem:    Vim9: crash when calling partial with wrong function.
    Solution:   Check argument types of called function. (closes #7912)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2575
    Problem:    Vim9: a function name with "->" in the next line doesn't work.
    Solution:   Recognize a function name by itself. (closes #7770)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2576
    Problem:    Vim9: defining a :func function checks for white space after a
                comma in the arguments.
    Solution:   Only check for white space in a :def function. (closes #7930)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2577
    Problem:    Compiler warning for type conversion.
    Solution:   Add a typecast. (Mike Williams)
    Files:      src/drawline.c

    Patch 8.2.2578
    Problem:    Lua cannot handle a passed in lambda.
    Solution:   Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936)
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.2579
    Problem:    Vim9: crash in garbagecollect after for loop.
    Solution:   Do not set a reference in script item when the name was cleared.
                (closes #7935)
    Files:      src/evalvars.c

    Patch 8.2.2580
    Problem:    Vim9: checking vararg type is wrong when function is auto-loaded.
    Solution:   Use the member type. (closes #7933)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2581
    Problem:    Vim9: sourcing Vim9 script triggers a redraw.
    Solution:   Do not let setting/restoring 'cpoptions' cause a redraw.
                (closes #7920)
    Files:      src/vim.h, src/option.c, src/optionstr.c, src/scriptfile.c,
                src/vim9script.c, src/testdir/test_vim9_script.vim,
                src/testdir/dumps/Test_vim9_no_redraw.dump

    Patch 8.2.2582 (after 8.2.2581)
    Problem:    Vim9: screendump test fails on MS-Windows.
    Solution:   Use :function instead of :def.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2583
    Problem:    Vim9: cannot compare result of getenv() with null.
    Solution:   Make the return type of getenv() "any". (closes #7943)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2584
    Problem:    Vim9: type error for assigning the result of list concatenation to
                a list.
    Solution:   Do not consider concatenation result in a constant. (closes #7942)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2585
    Problem:    Vim9: illegal memory access.
    Solution:   Check byte right after "null", not one more.
    Files:      src/vim9compile.c

    Patch 8.2.2586
    Problem:    Process id may be invalid.
    Solution:   Use sysinfo.uptime to check for recent reboot. (suggested by Hugo
                van der Sanden, closes #7947)
    Files:      src/configure.ac, src/auto/configure, src/config.h.in,
                src/memline.c, src/testing.c, src/globals.h,
                src/testdir/test_recover.vim

    Patch 8.2.2587 (after 8.2.2586)
    Problem:    Recover test fails on FreeBSD.
    Solution:   Check for Linux.
    Files:      src/testdir/check.vim, src/testdir/test_recover.vim

    Patch 8.2.2588 (after 8.2.2586)
    Problem:    Build failure with tiny features.
    Solution:   Add #ifdef.  Run recover test separately.
    Files:      src/memline.c, src/testdir/Make_all.mak, src/testdir/test_alot.vim

    Patch 8.2.2589 (after 8.2.2586)
    Problem:    Recover test hangs in the GUI.
    Solution:   Add g:skipped_reason to skip a _nocatch_ test.
    Files:      src/testdir/runtest.vim, src/testdir/test_recover.vim

    Patch 8.2.2590
    Problem:    Vim9: default argument value may cause internal error.
    Solution:   Hide later function arguments when compiling the expression.
                (closes #7948)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2591
    Problem:    Poke files are not recognized.
    Solution:   Add a filetype entry. (Matt Ihlenfield)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2592
    Problem:    Code coverage could be improved.
    Solution:   Add a few more tests. (Dominique Pellé, closes #7957)
    Files:      src/testdir/test_fileformat.vim, src/testdir/test_normal.vim,
                src/testdir/test_sleep.vim, src/testdir/test_textformat.vim,
                src/testdir/test_viminfo.vim

    Patch 8.2.2593
    Problem:    List of distributed files is incomplete.
    Solution:   Add a file and rename another.
    Files:      Filelist

    Patch 8.2.2594
    Problem:    Alternate buffer added to session file even when it's hidden.
    Solution:   Check the 'buflisted' option. (closes #7951)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.2595
    Problem:    Setting 'winminheight' may cause 'lines' to change.
    Solution:   Also take minimal height of other tabpages into account. (#7899)
    Files:      src/window.c, src/testdir/test_options.vim

    Patch 8.2.2596
    Problem:    :doautocmd may confuse scripts listening to WinEnter.
    Solution:   Do the current buffer last. (closes #7958)
    Files:      src/autocmd.c, src/testdir/test_autocmd.vim

    Patch 8.2.2597
    Problem:    Vim9: "import * as" does not work at script level.
    Solution:   Implement using an imported namespace.
    Files:      src/vim.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
                src/vim9execute.c, src/errors.h, src/vim9script.c,
                src/proto/vim9script.pro, src/testdir/test_vim9_script.vim

    Patch 8.2.2598
    Problem:    Vim9: :open does not need to be supported.
    Solution:   Do not support :open in Vim9 script.
    Files:      src/ex_docmd.c, src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2599 (after 8.2.2597)
    Problem:    Build failure.
    Solution:   Add missing change.
    Files:      src/vim9compile.c

    Patch 8.2.2600
    Problem:    Vim9: crash when putting an unknown type in a dictionary.
                (Yegappan Lakshmanan)
    Solution:   Handle a NULL type pointer.
    Files:      src/vim9type.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2601
    Problem:    Memory usage test often fails on FreeBSD.
    Solution:   Increase multiplier for upper limit.
    Files:      src/testdir/test_memory_usage.vim

    Patch 8.2.2602
    Problem:    Vim9: continue doesn't work if :while is very first command.
                (Yegappan Lakshmanan)
    Solution:   Add one to the continue instruction index.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2603
    Problem:    Vim9: no effect if user command is also a function.
    Solution:   Check for paren following. (closes #7960)
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c,
                src/proto/ex_docmd.pro, src/vim9compile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2604
    Problem:    GUI-specific command line arguments not tested.
    Solution:   Add tests for several arguments. (Dominique Pellé, closes #7962)
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2605
    Problem:    Vim9: string index and slice does not include composing chars.
    Solution:   Include composing characters. (issue #6563)
    Files:      runtime/doc/vim9.txt, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2606
    Problem:    strchars() defaults to counting composing characters.
    Solution:   Add strcharlen() which ignores composing characters.
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/testdir/test_utf8.vim

    Patch 8.2.2607
    Problem:    strcharpart() cannot include composing characters.
    Solution:   Add the {skipcc} argument.
    Files:      runtime/doc/eval.txt, src/evalfunc.c,
                src/testdir/test_expr_utf8.vim

    Patch 8.2.2608
    Problem:    Character input not fully tested.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #7963)
    Files:      src/testdir/test_functions.vim, src/testdir/test_messages.vim,
                src/testdir/test_paste.vim, src/testdir/test_registers.vim,
                src/testdir/test_undo.vim

    Patch 8.2.2609
    Problem:    Test disabled on MS-Windows even though it should work.
    Solution:   Restore the condition for skipping the test. (Ken Takata,
                closes #7970)
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2610
    Problem:    Mouse click test fails when using remote connection.
    Solution:   Use a larger 'mousetime'. (Dominique Pellé, closes #7968)
    Files:      src/testdir/test_selectmode.vim

    Patch 8.2.2611
    Problem:    Conditions for startup tests are not exactly right.
    Solution:   Check for type of GUI instead of MS-Windows. (Ozaki Kiichi,
                closes #7976)
    Files:      src/main.c, src/testdir/check.vim, src/testdir/test_startup.vim

    Patch 8.2.2612
    Problem:    col('.') may get outdated column value.
    Solution:   Add a note to the help how to make this work and add a test for
                it. (closes #7971)
    Files:      runtime/doc/map.txt, src/testdir/test_mapping.vim

    Patch 8.2.2613 (after 8.2.2612)
    Problem:    New test throws exception.
    Solution:   Adjust the function cleanup.
    Files:      src/testdir/test_mapping.vim

    Patch 8.2.2614
    Problem:    Vim9: function is deleted while executing.
    Solution:   increment the call count, when more than zero do not delete the
                function but mark it as dead. (closes #7977)
    Files:      src/vim9execute.c, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2615 (after 8.2.2614)
    Problem:    Test is sourcing the wrong file.
    Solution:   Correct the file name.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2616
    Problem:    Vim9: if 'cpo' is changed in Vim9 script it may be restored.
    Solution:   Apply the changes to 'cpo' to the restored value.
    Files:      runtime/doc/vim9.txt, src/scriptfile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2617
    Problem:    Vim9: script variable in a block scope not found by a nested
                function.
    Solution:   Copy the block scope IDs before compiling the function.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2618
    Problem:    Vim9: cannot use a normal list name to store function refs.
    Solution:   Allow a lower case name if it is indexed.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2619
    Problem:    Vim9: no test for return type of lambda.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.2620
    Problem:    Vim9: Using #{ for a dictionary gives strange errors.
    Solution:   Give an error when using #{ for a comment after a command.
    Files:      src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro,
                src/errors.h, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2621
    Problem:    typval2type() cannot handle recursive structures.
    Solution:   Use copyID. (closes #7979)
    Files:      src/list.c, src/vim9script.c, src/vim9type.c,
                src/proto/vim9type.pro, src/testdir/test_vimscript.vim

    Patch 8.2.2622
    Problem:    GTK: error when starting up and -geometry is given. (Dominique
                Pellé)
    Solution:   Use another function to get the monitor if the window has not been
                created yet. (closes #7978)
    Files:      src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c,
                src/gui_xim.c

    Patch 8.2.2623
    Problem:    Some tests fail when run as root.
    Solution:   Use CheckNotRoot.
    Files:      src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
                src/testdir/test_help.vim, src/testdir/test_writefile.vim

    Patch 8.2.2624
    Problem:    Atom files not recognized.
    Solution:   Recognize .atom as XML. (Kivin Locke, closes #7986)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2625
    Problem:    Rss files not recognized.
    Solution:   Recognize .rss as XML. (Kivin Locke, closes #7987)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2626
    Problem:    GTK3: error when starting up and -geometry is given. (Dominique
                Pellé)
    Solution:   Use another function to get the monitor if the window has not been
                created yet. (closes #7978)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.2627
    Problem:    No need to check for BSD after checking for not root.
    Solution:   Remove CheckNotBSD. (Ozaki Kiichi, closes #7989)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_help.vim,
                src/testdir/check.vim

    Patch 8.2.2628
    Problem:    Vim9: #{ can still be used at the script level.
    Solution:   Give an error for #{ like in a :def function.
    Files:      src/eval.c, src/ex_docmd.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2629
    Problem:    Vim9: error for #{{ is not desired.
    Solution:   Adjust the checks. (closes #7990)
    Files:      src/errors.h, src/vim9script.c, src/ex_docmd.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2630
    Problem:    Hard to see where a test gets stuck.
    Solution:   Print the executed test function. (Dominique Pellé, closes #7975)
    Files:      src/testdir/Makefile

    Patch 8.2.2631
    Problem:    Commands from winrestcmd() do not always work properly. (Leonid V.
                Fedorenchik)
    Solution:   Repeat the size commands twice. (closes #7988)
    Files:      src/evalwindow.c, src/testdir/test_window_cmd.vim

    Patch 8.2.2632
    Problem:    Not all command line arguments are tested.
    Solution:   Add tests for -D and -serverlist. (Dominique Pellé, closes #7992)
    Files:      src/testdir/test_clientserver.vim, src/testdir/test_startup.vim

    Patch 8.2.2633
    Problem:    Multi-byte 'fillchars' for folding do not show properly.
    Solution:   Handle multi-byte characters correctly. (Yegappan Lakshmanan,
                closes #7983, closes #7955)
    Files:      src/screen.c, src/testdir/test_fold.vim

    Patch 8.2.2634
    Problem:    'tagfunc' does not indicate using a pattern.
    Solution:   Add the "r" flag. (Andy Massimino, closes #7982)
    Files:      runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_tagfunc.vim

    Patch 8.2.2635
    Problem:    Vim9: cannot define an inline function.
    Solution:   Make an inline function mostly work.
    Files:      src/userfunc.c, src/errors.h, src/vim9compile.c, src/misc2.c,
                src/proto/vim9compile.pro, src/testdir/test_vim9_expr.vim

    Patch 8.2.2636 (after 8.2.2635)
    Problem:    Memory leak when compiling inline function.
    Solution:   Free the prefetched line.
    Files:      src/userfunc.c, src/vim9compile.c, src/structs.h, src/globals.h,
                src/eval.c

    Patch 8.2.2637
    Problem:    prop_remove() causes a redraw even when nothing changed.
    Solution:   Only redraw if a property was removed. (Dominique Pellé)
    Files:      src/textprop.c

    Patch 8.2.2638
    Problem:    Cannot write a message to the terminal from the GUI.
    Solution:   Add :echoconsole and use it in the test runner. (issue #7975)
    Files:      runtime/doc/eval.txt, runtime/doc/index.txt, src/ex_cmds.h,
                src/ex_cmdidxs.h, src/eval.c, src/ui.c, src/proto/ui.pro,
                src/term.c, src/testdir/runtest.vim

    Patch 8.2.2639 (after 8.2.2638)
    Problem:    Build failure when fsync() is not available.
    Solution:   Add #ifdef.
    Files:      src/ui.c

    Patch 8.2.2640
    Problem:    screenstring() returns non-existing composing characters.
    Solution:   Only use composing characters if there is a base character.
    Files:      src/evalfunc.c, src/testdir/test_listchars.vim

    Patch 8.2.2641
    Problem:    Display test fails because of lacking redraw.
    Solution:   Add a redraw command.
    Files:      src/testdir/test_display.vim

    Patch 8.2.2642
    Problem:    Vim9: no clear error for wrong inline function.
    Solution:   Check for something following the "{".
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2643
    Problem:    Various code not covered by tests.
    Solution:   Add a few more test. (Yegappan Lakshmanan, closes #7995)
    Files:      src/testdir/test_edit.vim, src/testdir/test_functions.vim,
                src/testdir/test_mapping.vim, src/testdir/test_termcodes.vim,
                src/testdir/test_undo.vim

    Patch 8.2.2644
    Problem:    prop_clear() causes a screen update even when nothing changed.
    Solution:   Only redraw when a property was cleared. (Dominique Pellé)
    Files:      src/textprop.c

    Patch 8.2.2645
    Problem:    Using inline function is not properly tested.
    Solution:   Add test cases, esp. for errors.  Minor code improvements.
    Files:      src/userfunc.c, src/errors.h, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2646
    Problem:    Vim9: error for not using string doesn't mention argument.
    Solution:   Add argument number.
    Files:      src/filepath.c, src/typval.c, src/proto/typval.pro, src/errors.h,
                src/mbyte.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2647
    Problem:    Terminal test sometimes hangs.
    Solution:   Wait for the shell to display a prompt.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.2648
    Problem:    Terminal resize test sometimes hangs.
    Solution:   Wait for the shell to display a prompt and other output.
    Files:      src/testdir/test_terminal2.vim

    Patch 8.2.2649
    Problem:    Vim9: some wincmd arguments cause a white space error.
    Solution:   Insert a space before the count. (closes #8001)
    Files:      src/window.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2650
    Problem:    Vim9: command modifiers not handled in nested function.
    Solution:   Keep function-local info in a structure and save it on the stack.
    Files:      src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_func.vim

    Patch 8.2.2651
    Problem:    Vim9: restoring command modifiers happens after jump.
    Solution:   Move the restore instruction to before the jump. (closes #8006)
                Also handle for and while.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2652
    Problem:    Vim9: can use command modifier without an effect.
    Solution:   Give an error for a misplaced command modifier.  Fix error message
                number.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/ex_eval.c, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2653
    Problem:    Build failure.
    Solution:   Add missing changes.
    Files:      src/errors.h

    Patch 8.2.2654
    Problem:    Vim9: getting a character from a string can be slow.
    Solution:   Avoid a function call to get the character byte size. (#8000)
    Files:      src/vim9execute.vim

    Patch 8.2.2655
    Problem:    The -w command line argument doesn't work.
    Solution:   Don't set 'window' when set with the -w argument. (closes #8011)
    Files:      src/term.c, src/testdir/test_startup.vim

    Patch 8.2.2656
    Problem:    Some command line arguments and regexp errors not tested.
    Solution:   Add a few test cases. (Dominique Pellé, closes #8013)
    Files:      src/testdir/test_regexp_latin.vim, src/testdir/test_startup.vim

    Patch 8.2.2657
    Problem:    Vim9: error message for declaring variable in for loop.
    Solution:   Clear variables when entering block again. (closes #8012)
    Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2658
    Problem:    :for cannot loop over a string.
    Solution:   Accept a string argument and iterate over its characters.
    Files:      runtime/doc/eval.txt, src/eval.c, src/vim9compile.c,
                src/vim9execute.c, src/errors.h, src/testdir/test_vimscript.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2659 (after 8.2.2658)
    Problem:    Eval test fails because for loop on string works.
    Solution:   Check looping over function reference fails.
    Files:      src/testdir/test_eval_stuff.vim

    Patch 8.2.2660
    Problem:    Vim9: no error for declaration with trailing text.
    Solution:   Give an error. (closes #8014)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2661
    Problem:    Leaking memory when looping over a string.
    Solution:   Free the memory.
    Files:      src/eval.c

    Patch 8.2.2662
    Problem:    There is no way to avoid some escape sequences.
    Solution:   Suppress escape sequences when the --not-a-term argument is used.
                (Gary Johnson)
    Files:      src/main.c, src/os_unix.c, src/testdir/test_startup.vim

    Patch 8.2.2663
    Problem:    Vim9: leaking memory when inline function has an error.
    Solution:   Free the partially allocated function.
    Files:      src/userfunc.c

    Patch 8.2.2664
    Problem:    Vim9: not enough function arguments checked for string.
    Solution:   Check in balloon functions.  Refactor function arguments.
    Files:      src/typval.c, src/proto/typval.pro, src/filepath.c,
                src/evalfunc.c, src/mbyte.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2665 (after 8.2.2664)
    Problem:    Test failures.
    Solution:   Check more specific feature.  Add missing change.
    Files:      src/testdir/test_vim9_builtin.vim, src/evalbuffer.c

    Patch 8.2.2666
    Problem:    Vim9: not enough function arguments checked for string.
    Solution:   Check in ch_logfile(), char2nr() and others.
    Files:      src/channel.c, src/evalfunc.c, src/filepath.c, src/eval.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2667
    Problem:    prop_find() cannot find item matching both id and type.
    Solution:   Add the "both" argument. (Naohiro Ono, closes #8019)
    Files:      runtime/doc/textprop.txt, src/testdir/test_textprop.vim,
                src/textprop.c

    Patch 8.2.2668
    Problem:    Vim9: omitting "call" for "confirm()" does not give an error.
    Solution:   Do not recognize a modifier followed by "(".
    Files:      src/ex_docmd.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2669
    Problem:    Command line completion does not work after "vim9".
    Solution:   Include the "9". (Naohiro Ono, closes #8025)
    Files:      src/cmdexpand.c, src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.2670
    Problem:    Vim9: error for append(0, text).
    Solution:   Check for negative number. (closes #8022)
    Files:      src/typval.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2671 (after 8.2.2670)
    Problem:    Error for line number in legacy script.
    Solution:   Check for number type.
    Files:      src/typval.c

    Patch 8.2.2672
    Problem:    Vim9: cannot use :lockvar and :unlockvar in compiled script.
    Solution:   Implement locking support.
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2673
    Problem:    Vim9: script-local funcref can have lower case name.
    Solution:   Require an upper case name.
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2674
    Problem:    Motif: cancelling the font dialog resets the font.
    Solution:   When no font is selected to not change the font. (closes #7825,
                closes #8035)  Fix compiler warnings.
    Files:      src/gui_x11.c, src/gui_motif.c

    Patch 8.2.2675
    Problem:    Directory change in a terminal window shell is not followed.
    Solution:   Add the 'autoshelldir' option. (closes #6290)
    Files:      runtime/doc/options.txt, runtime/doc/quickref.txt,
                runtime/optwin.vim, src/charset.c, src/feature.h, src/option.h,
                src/optiondefs.h, src/terminal.c, src/testdir/check.vim,
                src/testdir/test_terminal3.vim

    Patch 8.2.2676
    Problem:    Missing error message.
    Solution:   Add new error message.
    Files:      src/errors.h

    Patch 8.2.2677
    Problem:    Vim9: cannot use only some of the default arguments.
    Solution:   Use v:none to use default argument value.  Remove
                uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504)
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/vim9execute.c,
                src/userfunc.c, src/structs.h, src/vim9.h,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2678
    Problem:    Test for 'autoshelldir' does not reset the option.
    Solution:   Reset the option after testing.
    Files:      src/testdir/test_terminal3.vim

    Patch 8.2.2679
    Problem:    Winbar drawn over status line for non-current window with winbar
                if frame is zero height. (Leonid V. Fedorenchik)
    Solution:   Do not draw the window if the frame height is zero. (closes #8037)
    Files:      src/drawscreen.c, src/testdir/test_winbar.vim,
                src/testdir/dumps/Test_winbar_not_visible.dump

    Patch 8.2.2680
    Problem:    Vim9: problem defining a script variable from legacy function.
    Solution:   Check if the script is Vim9, not the current syntax.
                (closes #8032)
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/evalvars.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2681
    Problem:    Vim9: test fails for redeclaring script variable.
    Solution:   It's OK to assign to an existing script variable in legacy.
    Files:      src/evalvars.c

    Patch 8.2.2682
    Problem:    Vim9: cannot find Name.Func from "import * as Name". (Alexander
                Goussas)
    Solution:   When no variable found try finding a function. (closes #8045)
                Check that the function was exported.
    Files:      src/vim9compile.c, src/vim9script.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2683
    Problem:    Build failure without the +eval feature.
    Solution:   Add #ifdef.
    Files:      src/vim9script.c

    Patch 8.2.2684
    Problem:    Not enough folding code is tested.
    Solution:   Add more test cases. (Yegappan Lakshmanan, closes #8046)
    Files:      src/testdir/test_fold.vim, src/testdir/test_mksession.vim,
                src/testdir/test_source.vim

    Patch 8.2.2685 (after 8.2.2152)
    Problem:    Custom statusline not drawn correctly with WinBar.
    Solution:   Also adjust the column for the custom status line. (Yee Cheng
                Chin, closes #8047)
    Files:      src/drawscreen.c, src/proto/drawscreen.pro, src/screen.c,
                src/testdir/dumps/Test_winbar_not_visible_custom_statusline.dump,
                src/testdir/test_winbar.vim

    Patch 8.2.2686
    Problem:    Status line is not updated when going to cmdline mode.
    Solution:   Redraw status lines if 'statusline' is set and going to status
                line mode. (based on patch from Justin M. Keyes et al.,
                closes #8044)
    Files:      src/ex_getln.c, src/testdir/test_statusline.vim,
                src/testdir/dumps/Test_statusline_mode_1.dump,
                src/testdir/dumps/Test_statusline_mode_2.dump

    Patch 8.2.2687
    Problem:    Vim9: cannot use "const" for global variable in :def function.
    Solution:   Do allow using :const for a global variable. (closes #8030)
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2688
    Problem:    Vim9: crash when using s: for script variable.
    Solution:   Pass the end pointer. (closes #8045)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2689
    Problem:    Tiny build fails.
    Solution:   Add #ifdef around use of p_stl.
    Files:      src/ex_getln.c

    Patch 8.2.2690
    Problem:    PowerShell files are not recognized.
    Solution:   Recognize several PowerShell extension. (Heath Stewart,
                closes #8051)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2691
    Problem:    Autoconf may mess up compiler flags.
    Solution:   Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov,
                closes #8049)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2692
    Problem:    Vim9: locked script variable can be changed.
    Solution:   Check for locked value. (closes #8031)
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2693
    Problem:    Vim9: locked script variable can be changed.
    Solution:   Check legacy script variable for being locked. (issue #8031)
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2694
    Problem:    When 'matchpairs' is empty every character beeps. (Marco Hinz)
    Solution:   Bail out when no character in 'matchpairs' was found.
                (closes #8053)  Add assert_nobeep().
    Files:      runtime/doc/testing.txt, runtime/doc/eval.txt, src/search.c,
                src/testing.c, src/proto/testing.pro, src/evalfunc.c,
                src/testdir/test_textformat.vim

    Patch 8.2.2695
    Problem:    Cursor position reset with nested autocommands.
    Solution:   Only check and reset line numbers for not nested autocommands.
                (closes #5820)
    Files:      src/autocmd.c, src/testdir/test_terminal.vim

    Patch 8.2.2696
    Problem:    Lua test fails with Lua 5.4.3 and later.
    Solution:   Check for different error messages. (Yegappan Lakshmanan,
                closes #8050)
    Files:      src/testdir/test_lua.vim

    Patch 8.2.2697
    Problem:    Function list test fails.
    Solution:   Add missing function. (Yegappan Lakshmanan)
    Files:      runtime/doc/usr_41.txt

    Patch 8.2.2698 (after 8.2.2696)
    Problem:    Lua test fails on MS-Windows.
    Solution:   Fall back to old method if "lua -v" doesn't work.
    Files:      src/testdir/test_lua.vim

    Patch 8.2.2699
    Problem:    Lua test fails.
    Solution:   Fix condition. (Yegappan Lakshmanan, closes #8060)
    Files:      src/testdir/test_lua.vim

    Patch 8.2.2700
    Problem:    Nested autocmd test fails sometimes.
    Solution:   Wait for the job to finish.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.2701
    Problem:    Order of removing FORTIFY_SOURCE is wrong.
    Solution:   Use the more specific pattern first.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2702
    Problem:    Compiler completion test fails when more scripts are added.
    Solution:   Add a more generic pattern.
    Files:      src/testdir/test_compiler.vim

    Patch 8.2.2703
    Problem:    Vim9: memory leak when failing on locked variable.
    Solution:   Free the memory.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2704
    Problem:    Adding a lot of completions can be a bit slow.
    Solution:   Use fast_breakcheck() instead of ui_breakcheck() when adding a
                list of completions. (Ben Jackson, closes #8061)
    Files:      src/insexpand.c

    Patch 8.2.2705
    Problem:    Vim9: misleading reported line number for wrong type.
    Solution:   Remember and use the line number at the start. (closes #8059)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2706
    Problem:    Vim9: wrong line number reported for boolean operator.
    Solution:   Use the line number before skipping over line break.
                (closes #8058)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2707 (after 8.2.2704)
    Problem:    Adding a lot of completions can still be a bit slow.
    Solution:   Add the check for CP_FAST. (Ben Jackson)
    Files:      src/insexpand.c

    Patch 8.2.2708
    Problem:    Test sometimes fails waiting for shell in terminal.
    Solution:   Use WaitForAssert() so we can see the actual job status.  Use
                Run_shell_in_terminal().
    Files:      src/testdir/term_util.vim, src/testdir/test_mksession.vim

    Patch 8.2.2709
    Problem:    The GTK GUI has a gap next to the scrollbar.
    Solution:   Calculate the scrollbar padding for GTK. (closes #8027)
    Files:      src/gui_gtk.c

    Patch 8.2.2710
    Problem:    Vim9: not all tests cover script and :def function.
    Solution:   Run tests in both if possible. Fix differences.
    Files:      src/eval.c, src/vim9compile.c, src/vim9execute.c,
                src/testdir/vim9.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.2711
    Problem:    "gj" in a closed fold does not move out of the fold. (Marco Hinz)
    Solution:   Add a check for being in a closed fold. (closes #8062)
    Files:      src/normal.c, src/testdir/test_fold.vim

    Patch 8.2.2712
    Problem:    Memory leak when adding to a blob fails.
    Solution:   Clear the second typval before returning.
    Files:      src/eval.c

    Patch 8.2.2713
    Problem:    Folding code not sufficiently tested.
    Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #8064)
    Files:      src/testdir/test_fold.vim

    Patch 8.2.2714
    Problem:    Filetype pattern ending in star is too far up.
    Solution:   Move down to where patterns ending in star belong. (closes #8065)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2715
    Problem:    Vim9: tests fail without the channel feature. (Dominique Pellé)
    Solution:   Check for the channel feature. (closes #8063)
    Files:      src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.2716
    Problem:    The equivalent class regexp is missing some characters.
    Solution:   Update the list of equivalent characters. (Dominique Pellé,
                closes #8029)
    Files:      src/regexp_bt.c, src/regexp_nfa.c,
                src/testdir/test_regexp_utf8.vim

    Patch 8.2.2717
    Problem:    GTK menu items don't show a tooltip.
    Solution:   Add a callback to show the tooltip. (Leonid V. Fedorenchik,
                closes #8067, closes #7810)
    Files:      src/gui_gtk.c

    Patch 8.2.2718
    Problem:    Vim9: no explicit test for using a global function without the g:
                prefix.
    Solution:   Add a test case.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.2719
    Problem:    Vim9: appending to dict item doesn't work in a :def function.
    Solution:   Implement assignment with operator on indexed item.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2720
    Problem:    GTK menu tooltip moves the cursor.
    Solution:   Position the cursor after displaying the tooltip.  Do not show the
                tooltip when editing the command line.
    Files:      src/gui_gtk.c

    Patch 8.2.2721
    Problem:    Vim9: cannot have a linebreak inside a lambda.
    Solution:   Compile the expression before the arguments.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2722
    Problem:    Vim9: crash when using LHS with double index.
    Solution:   Handle lhs_dest which is "dest_expr". (closes #8068)
                Fix confusing error message for missing dict item.
    Files:      src/vim9compile.c, src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2723 (after 8.2.2722)
    Problem:    Assignment test fails.
    Solution:   Adjust error number.
    Files:      src/testdir/test_let.vim

    Patch 8.2.2724 (after 8.2.2722)
    Problem:    Vim9: concatenating to list in dict not tested.
    Solution:   Add a test. (issue #8068)
    Files:      src/testdir/test_vim9_assign.vim

    Patch 8.2.2725
    Problem:    Vim9: message about compiling is wrong when using try/catch.
    Solution:   Store the compiling flag with the message. (closes #8071)
    Files:      src/ex_docmd.c, src/ex_eval.c, src/structs.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2726
    Problem:    Confusing error message with white space before comma in the
                arguments of a function declaration.
    Solution:   Give a specific error message. (closes #2235)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2727 (after 8.2.2726)
    Problem:    Function test fails.
    Solution:   Adjust expected error number.
    Files:      src/testdir/test_user_func.vim

    Patch 8.2.2728
    Problem:    Special key names don't work if 'isident' is cleared.
    Solution:   Add vim_isNormalIDc() and use it for special key names.
                (closes #2389)
    Files:      src/charset.c, src/proto/charset.pro, src/misc2.c,
                src/testdir/test_mapping.vim

    Patch 8.2.2729
    Problem:    Vim9: wrong error message for referring to legacy script variable.
    Solution:   Do allow referring to a variable in legacy script without "s:" if
                it exists at compile time. (closes #8076)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2730
    Problem:    Coverity complains about not restoring character.
    Solution:   Also restore the character in case of an error.
    Files:      src/vim9compile.c

    Patch 8.2.2731
    Problem:    Mac: SF symbols are not displayed properly.
    Solution:   Add custom range to list of double-width characters. (Yee Cheng
                Chin, closes #8077)
    Files:      src/mbyte.c

    Patch 8.2.2732
    Problem:    Prompt for s///c in Ex mode can be wrong.
    Solution:   Position the cursor before showing the prompt. (closes #8073)
    Files:      src/ex_cmds.c, src/testdir/test_ex_mode.vim

    Patch 8.2.2733
    Problem:    Detecting Lua version is not reliable.
    Solution:   Add "vim.lua_version". (Ozaki Kiichi, closes #8080)
    Files:      runtime/doc/if_lua.txt, ci/if_ver-1.vim, src/if_lua.c,
                src/testdir/test_lua.vim

    Patch 8.2.2734
    Problem:    Vim9: cannot use legacy script-local var from :def function.
    Solution:   Do not insist on using "s:" prefix. (closes #8076)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2735
    Problem:    Vim9: function reference found with prefix, not without.
    Solution:   Also find function reference without prefix.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2736
    Problem:    Vim9: for loop over string is a bit slow.
    Solution:   Avoid using strlen().
    Files:      src/vim9execute.c

    Patch 8.2.2737
    Problem:    Status line not updated when local 'statusline' option set.
    Solution:   Check the 'statusline' option of each window.
    Files:      src/ex_getln.c, src/testdir/test_statusline.vim,
                src/testdir/dumps/Test_statusline_mode_1.dump,
                src/testdir/dumps/Test_statusline_mode_2.dump

    Patch 8.2.2738
    Problem:    Extending a list with itself can give wrong result.
    Solution:   Remember the item before where the insertion happens and skip to
                after the already inserted items. (closes #1112)
    Files:      src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.2739
    Problem:    Vim9: a lambda accepts too many arguments at the script level.
    Solution:   Do not set uf_varargs in Vim9 script.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2740
    Problem:    Vim9: lambda with varargs doesn't work.
    Solution:   Make "...name" work.  Require type to be a list.
    Files:      src/userfunc.c, src/vim9compile.c, src/vim9execute.c,
                src/errors.h, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2741
    Problem:    Vim9: Partial call does not check right arguments.
    Solution:   Adjust the offset for whether the partial is before or after the
                arguments. (closes #8091)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2742
    Problem:    Vim9: when compiling a function fails it is cleared.
    Solution:   Keep the function lines, prevent execution with a different
                status. (closes #8093)
    Files:      src/vim9compile.c, src/structs.h, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2743
    Problem:    Vim9: function state stuck when compiling with ":silent!".
    Solution:   Check for uf_def_status to be UF_COMPILING.
    Files:      src/vim9compile.c, src/message.c, src/globals.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2744
    Problem:    Vim9: no way to explicitly ignore an argument.
    Solution:   Use the underscore as the name for an ignored argument.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/eval.c,
                src/evalvars.c, src/errors.h, src/testdir/test_vim9_func.vim

    Patch 8.2.2745 (after 8.2.2744)
    Problem:    Vim9: missing part of the argument change.
    Solution:   Add missing changes.
    Files:      src/userfunc.c

    Patch 8.2.2746 (after 8.2.2745)
    Problem:    Check for duplicate arguments does not work.
    Solution:   Correct condition.
    Files:      src/userfunc.c

    Patch 8.2.2747
    Problem:    Vim9: not always an error for too many function arguments.
    Solution:   Check for getting too many arguments.
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2748
    Problem:    Vim9: memory leak when calling :def function fails.
    Solution:   Jump to failed_early instead of returning.
    Files:      src/vim9execute.c

    Patch 8.2.2749
    Problem:    Vim9: test for error can be a bit flaky.
    Solution:   Increase the wait time a bit.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.2750
    Problem:    Vim9: error for using underscore in nested function.
    Solution:   Do not consider "_" already defined. (closes #8096)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2751
    Problem:    Coverity warns for using NULL pointer.
    Solution:   Check for NULL in calling function.
    Files:      src/userfunc.c

    Patch 8.2.2752
    problem:    coverity reports unreachable code.
    Solution:   Remove check for positive index.
    Files:      src/typval.c

    Patch 8.2.2753
    Problem:    Vim9: cannot ignore an item in assignment unpack.
    Solution:   Allow using an underscore.
    Files:      runtime/doc/vim9.txt, src/vim.h, src/evalvars.c, src/eval.c,
                src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2754
    Problem:    :sleep! does not always hide the cursor.
    Solution:   Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097,
                closes #7998)
    Files:      src/drawscreen.c, src/ex_docmd.c, src/gui.c, src/proto/term.pro,
                src/term.c

    Patch 8.2.2755
    Problem:    Vim9: no error for using a number in a condition.
    Solution:   Also use ISN_COND2BOOL if the type is t_number_bool.
                (closes #7644)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2756
    Problem:    Vim9: blob index and slice not implemented yet.
    Solution:   Implement blob index and slice.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/eval.c,
                src/blob.c, src/proto/blob.pro, src/testdir/test_vim9_expr.vim

    Patch 8.2.2757
    Problem:    Vim9: blob tests for legacy and Vim9 script are separate.
    Solution:   Add CheckLegacyAndVim9Success().  Make blob index assign work.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h,
                src/blob.c, src/proto/blob.pro, src/eval.c, src/ex_docmd.c,
                src/testdir/vim9.vim, src/testdir/test_blob.vim

    Patch 8.2.2758
    Problem:    Vim9: wrong line number for autoload function with wrong name.
    Solution:   Set and restore SOURCING_LNUM. (closes #8100)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2759
    Problem:    Vim9: for loop infers type of loop variable.
    Solution:   Do not get the member type. (closes #8102)
    Files:      src/vim9type.c, src/proto/vim9type.pro, src/list.c,
                src/vim9script.c, src/proto/vim9script.pro, src/vim.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2760
    Problem:    Vim9: no error for changing a for loop variable.
    Solution:   Make the loop variable read-only. (issue #8102)
    Files:      src/eval.c, src/evalvars.c, src/vim9compile.c, src/vim.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2761
    Problem:    Using "syn include" does not work properly.
    Solution:   Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung,
                closes #8104)
    Files:      src/syntax.c, src/testdir/test_syntax.vim

    Patch 8.2.2762
    Problem:    Vim9: function line truncated when compiling.
    Solution:   Copy the line before processing it. (closes #8101)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2763
    Problem:    Vim9: cannot use type in for loop unpack at script level.
    Solution:   Advance over the type name.
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2764
    Problem:    Memory leak when default function argument is allocated.
    Solution:   Free the expression result.
    Files:      src/userfunc.c, src/testdir/test_functions.vim

    Patch 8.2.2765
    Problem:    Vim9: not all blob operations work.
    Solution:   Run more tests also with Vim9 script and :def functions.  Fix what
                doesn't work.
    Files:      src/eval.c, src/blob.c, src/proto/blob.pro, src/vim9execute.c,
                src/errors.h, src/testdir/vim9.vim, src/testdir/test_blob.vim

    Patch 8.2.2766 (after 8.2.2765)
    Problem:    Test failure.
    Solution:   Add change to Vim9 compilation error message.
    Files:      src/vim9compile.c

    Patch 8.2.2767 (after 8.2.2765)
    Problem:    Compiler warning for unused argument.
    Solution:   Remove the argument.
    Files:      src/blob.c, src/proto/blob.pro, src/vim9execute.c, src/eval.c

    Patch 8.2.2768
    Problem:    Vim9: memory leak with blob range error.
    Solution:   Jump to end instead of returning.
    Files:      src/vim9compile.c

    Patch 8.2.2769
    Problem:    Modula-3 config files are not recognized.
    Solution:   Add filetype patterns. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2770
    Problem:    Vim9: type of loop variable is not used.
    Solution:   Parse and check the variable type. (closes #8107)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2771
    Problem:    Vim9: assignment not recognized if declaration was skipped.
    Solution:   Also recognized an assignment if the variable does not exist.
                (closes #8108)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2772
    Problem:    Problems when restoring 'runtimepath' from a session file.
    Solution:   Add the "skiprtp" item in 'sessionoptions'.
    Files:      runtime/doc/options.txt, src/session.c, src/optionstr.c,
                src/option.h, src/vim.h, src/option.c,
                src/testdir/test_mksession.vim

    Patch 8.2.2773
    Problem:    PSL filetype not recognized.
    Solution:   Add a filetype pattern. (Daniel Kho, closes #8117)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2774
    Problem:    Vim9: cannot import an existing name even when using "as".
    Solution:   Do not check for an existing name when using "as". (closes #8113)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2775
    Problem:    Vim9: wrong line number used for some commands.
    Solution:   For :exe, :echo and the like use the line number of the start of
                the command.  When calling a function set the line number in the
                script context.
    Files:      src/vim9compile.c, src/vim9execute.c, src/structs.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2776
    Problem:    :mksession uses current value of 'splitbelow' and 'splitright'
                even though "options" is not in 'sessionoptions'. (Maxim Kim)
    Solution:   Save and restore the values, instead of setting to the current
                value. (closes #8119)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.2777
    Problem:    Vim9: blob operations not tested in all ways.
    Solution:   Run tests with CheckLegacyAndVim9Success().  Make blob assign with
                index work.
    Files:      src/vim9compile.c, src/vim9execute.c, src/errors.h, src/blob.c,
                src/proto/blob.pro, src/testdir/test_blob.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2778
    Problem:    Problem restoring 'packpath' in session.
    Solution:   Let "skiprtp" also apply to 'packpath'.
    Files:      runtime/doc/options.txt, src/option.c,
                src/testdir/test_mksession.vim

    Patch 8.2.2779
    Problem:    Memory access error in remove() for blob.
    Solution:   Adjust length for memmove().
    Files:      src/blob.c

    Patch 8.2.2780
    Problem:    Vim9: for loop over blob doesn't work.
    Solution:   Make it work.
    Files:      src/vim9compile.c, src/vim9execute.c, src/testdir/test_blob.vim

    Patch 8.2.2781
    Problem:    Add() silently skips when adding to null list or blob.
    Solution:   Give an error in Vim9 script.  Allocate blob when it is NULL like
                with list and dict.
    Files:      src/list.c, src/evalvars.c, src/vim9execute.c,
                src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2782
    Problem:    Vim9: blob operations not fully tested.
    Solution:   Make more blob tests run in Vim9 script.  Fix filter().  Make
                insert() give an error for a null blob, like add().
    Files:      src/list.c, src/testdir/test_blob.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2783
    Problem:    Duplicate code for setting byte in blob, blob test may fail.
    Solution:   Call blob_set_append().  Test sort failure with "N".
    Files:      src/eval.c, src/testdir/test_blob.vim

    Patch 8.2.2784
    Problem:    Vim9: cannot use \=expr in :substitute.
    Solution:   Compile the expression into instructions and execute them when
                invoked.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/proto/vim9execute.pro, src/regexp.c, src/ex_cmds.c,
                src/proto/ex_cmds.pro, src/globals.h,
                src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2785
    Problem:    Vim9: cannot redirect to local variable.
    Solution:   Compile :redir when redirecting to a variable.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h,
                src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2786
    Problem:    Vim9: memory leak when using :s with expression.
    Solution:   Clean up the instruction list.
    Files:      src/vim9compile.c

    Patch 8.2.2787
    Problem:    MS-Windows: crash when using :echoconsole.
    Solution:   Do not write a NUL when it's already there.
    Files:      src/os_win32.c

    Patch 8.2.2788
    Problem:    Raku is now the only name what once was called perl6.
    Solution:   Adjust the filetype detection. (closes #8120)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2789
    Problem:    Vim9: using \=expr in :substitute does not handle jumps.
    Solution:   Start with instruction count zero. (closes #8128)
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2790 (after 8.2.2788)
    Problem:    filetype test fails
    Solution:   Also update the scripts detection
    Files:      runtime/scripts.vim

    Patch 8.2.2791
    Problem:    Vim9: memory leak when using \=expr in :substitute.
    Solution:   Do not allocate a new instruction list.
    Files:      src/vim9compile.c

    Patch 8.2.2792
    Problem:    Vim9: :disas shows instructions for default args but no text.
    Solution:   Show the expression test above the default argument instructions.
                (closes #8129)
    Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2793
    Problem:    MS-Windows: string literals are writable with MSVC.
    Solution:   Add the /GF compiler flag.  Make mch_write() safer. (Ken Takata,
                closes #8133)
    Files:      src/Make_mvc.mak, src/os_win32.c

    Patch 8.2.2794
    Problem:    Linux users don't know how to get ncurses.
    Solution:   Add the name of the package. (closes #8132)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2795
    Problem:    Coverity warns for not using return value.
    Solution:   Check the return value of compiling the substitute expression.
    Files:      src/vim9compile.c

    Patch 8.2.2796
    Problem:    Vim9: redir to variable does not accept an index.
    Solution:   Make the index work.
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2797
    Problem:    Search highlight disappears in the Visual area.
    Solution:   Combine the search attributes. (closes #8134)
    Files:      src/drawline.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_visual_1.dump

    Patch 8.2.2798
    Problem:    Vim9: redir to variable with append does not accept an index.
    Solution:   Make the appending work.
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2799
    Problem:    Vim9: type casts don't fully work at the script level.
    Solution:   Implement the missing piece.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2800
    Problem:    After a timer displays text a hit-enter prompt is given.
    Solution:   Reset msg_didany and need_wait_return. (closes #8136)
    Files:      src/drawscreen.c, src/testdir/test_timers.vim

    Patch 8.2.2801
    Problem:    Free Pascal makefile not recognized.
    Solution:   Add the fpcmake filetype. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2802
    Problem:    Vim9: illegal memory access.
    Solution:   Check for comment before checking for white space. (closes #8142)
    Files:      src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2803
    Problem:    Flicker when the popup menu has an info popup.
    Solution:   Avoid drawing over the popup when it's going to be redrawn in the
                same position. (closes #8131)  Also avoid redrawing the scrollbar.
    Files:      src/popupmenu.c, src/proto/popupmenu.pro, src/drawscreen.c,
                src/globals.h

    Patch 8.2.2804
    Problem:    Setting buffer local mapping with mapset() changes global mapping.
    Solution:   Only set the local mapping. (closes #8143)
    Files:      src/map.c, src/testdir/test_maparg.vim

    Patch 8.2.2805
    Problem:    Vim9: cannot use legacy syntax in Vim9 script.
    Solution:   Add the :legacy command.
    Files:      src/ex_cmds.h, runtime/doc/vim9.txt, runtime/doc/index.txt
                src/ex_cmdidxs.h, src/ex_docmd.c, src/structs.h, src/vim9script.c,
                src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.2806
    Problem:    Vim9: using "++nr" as a command might not work.
    Solution:   Do not recognize "++" and "--" in a following line as addition or
                subtraction.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h,
                src/vim9script.c, src/proto/vim9script.pro, src/eval.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.2807
    Problem:    Build fails with tiny features.
    Solution:   Use a dummy function for ex_incdec().
    Files:      src/ex_docmd.c

    Patch 8.2.2808
    Problem:    Vim9: increment and decrement not sufficiently tested.
    Solution:   Add assertions.
    Files:      src/testdir/test_vim9_assign.vim

    Patch 8.2.2809
    Problem:    Vim9: :def function compilation fails when using :legacy.
    Solution:   Reset CMOD_LEGACY when compiling a function. (closes #8137)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2810
    Problem:    Vim9: crash when calling a function in a substitute expression.
    Solution:   Set the instructions back to the substitute expression
                instructions. (closes #8148)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2811
    Problem:    Vim9: error for missing white space doesn't say where it is
                missing
    Solution:   Mention the command. (closes #8149)
    Files:      src/ex_docmd.c, src/errors.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2812
    Problem:    Vim9: still crash when using substitute expression.
    Solution:   Put the instruction list in the stack frame. (closes #8154)
    Files:      src/vim9execute.c, src/vim9.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2813
    Problem:    Cannot grep using fuzzy matching.
    Solution:   Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes #8152)
    Files:      runtime/doc/quickfix.txt, src/ex_cmds.c, src/proto/search.pro,
                src/quickfix.c, src/search.c, src/vim.h,
                src/testdir/test_quickfix.vim

    Patch 8.2.2814 (after 8.2.2812)
    Problem:    Vim9: unused variable. (John Marriott)
    Solution:   Adjust #ifdef.
    Files:      src/vim9execute.c

    Patch 8.2.2815
    Problem:    Status line flickers when redrawing popup menu info.
    Solution:   Do not redraw the status line when the focus is in the popup
                window. (issue #8144)
    Files:      src/popupmenu.c

    Patch 8.2.2816
    Problem:    Vim9: comment below expression in lambda causes problems.
    Solution:   Use a single space for empty and comment lines. (closes #8156)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2817
    Problem:    Vim9: script sourcing continues after an error.
    Solution:   Make an error in any command in "vim9script" abort sourcing.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2818
    Problem:    No jump added to jumplist when opening terminal in current window.
    Solution:   Call setpcmark(). (closes #8158)
    Files:      src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.2819
    Problem:    Finishing an abbreviation with a multi-byte char may not work.
    Solution:   Escape K_SPECIAL in the typed character. (closes #8160)
    Files:      src/map.c, src/testdir/test_mapping.vim

    Patch 8.2.2820
    Problem:    Session file may divide by zero.
    Solution:   Avoid writing divide by zero. (closes #8162)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.2821
    Problem:    MS-Windows: unnecessarily loading libraries when registering OLE.
    Solution:   Skip loading libraries when invoked with "-register".
    Files:      src/main.c, src/globals.h, src/os_win32.c

    Patch 8.2.2822 (after 8.2.2821)
    Problem:    MS-Windows: unnecessarily loading libraries when unregistering OLE.
    Solution:   Also skip loading libraries when invoked with "-unregister".  Run
                Vim for README.txt with user privileges.
    Files:      src/main.c, nsis/gvim.nsi, nsis/README.txt

    Patch 8.2.2823
    Problem:    MS-Windows: launching Vim from installer doesn't open README.
    Solution:   Adjust the quotes.
    Files:      nsis/gvim.nsi

    Patch 8.2.2824
    Problem:    MS-Windows: build failure with MSVC.
    Solution:   Adjust the list of distributed files.  Add hint about python.
                Adjust path for reading runtime files.
    Files:      Filelist, src/testdir/shared.vim,
                src/testdir/test_function_lists.vim

    Patch 8.2.2825
    Problem:    Code in checkreadonly() not fully tested.
    Solution:   Add more tests. (Dominique Pellé, closes #8169)
    Files:      src/testdir/test_excmd.vim

    Patch 8.2.2826
    Problem:    Compiler warnings for int to size_t conversion. (Randall W.
                Morris)
    Solution:   Add type casts.
    Files:      src/map.c, src/quickfix.c

    Patch 8.2.2827
    Problem:    Test file was not deleted.
    Solution:   Uncomment the delete() call. (Dominique Pellé, closes #8172)
    Files:      src/testdir/test_mksession.vim

    Patch 8.2.2828
    Problem:    Coverity complains about not checking the rename() return value.
    Solution:   Add "(void)", can't do anything in case of a failure.
    Files:      src/fileio.c

    Patch 8.2.2829
    Problem:    Some comments are not correct or clear.
    Solution:   Adjust the comments.  Add test for cursor position.
    Files:      src/regexp_bt.c, src/regexp_nfa.c,
                src/testdir/test_exec_while_if.vim,
                src/testdir/test_substitute.vim

    Patch 8.2.2830
    Problem:    Terminal colors are not updated when 'background' is set.
    Solution:   Call term_update_colors() for all terminals. (Marcin Szamotulski,
                closes #8171, closes #8150)
    Files:      src/terminal.c, src/proto/terminal.pro, src/optionstr.c

    Patch 8.2.2831
    Problem:    Vim9: expandcmd() not tested.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.2832
    Problem:    Operator cancelled by moving mouse when using popup. (Sergey
                Vlasov)
    Solution:   Do not trigger an operator for a mouse move events. (closes #8176)
    Files:      src/normal.c

    Patch 8.2.2833
    Problem:    Two key command cancelled by moving mouse when using popup.
                (Sergey Vlasov)
    Solution:   Ignore K_MOUSEMOVE in plain_vgetc().
    Files:      src/getchar.c

    Patch 8.2.2834
    Problem:    Vim9: :cexpr does not work with local variables.
    Solution:   Compile :cexpr.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/quickfix.c,
                src/proto/quickfix.pro, src/testdir/test_quickfix.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2835 (after 8.2.2834)
    Problem:    Vim9: leaking memory in :cexpr.
    Solution:   Also free the command line copy.
    Files:      src/vim9compile.c

    Patch 8.2.2836 (after 8.2.2834)
    Problem:    Build failure without the +quickfix feature. (John Marriott)
    Solution:   Add #ifdef.
    Files:      src/vim9compile.c, src/vim9execute.c, src/tag.c

    Patch 8.2.2837
    Problem:    Various code lines not covered by tests.
    Solution:   Add test cases. (Dominique Pellé, closes #8178)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_functions.vim,
                src/testdir/test_options.vim, src/testdir/test_startup.vim,
                src/testdir/test_syntax.vim, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2838
    Problem:    File extension .wrap not recognized.
    Solution:   Use dosini filetype for .wrap files. (Liam Beguin, closes #8177)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2839
    Problem:    Default redirection missing "ash" and "dash".
    Solution:   Recognize "ash" and "dash". (Natanael Copa, closes #8180)
    Files:      runtime/doc/options.txt, src/option.c

    Patch 8.2.2840
    Problem:    Vim9: member operation not fully tested.
    Solution:   Add a few tests.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2841
    Problem:    MS-Windows: cursor in wrong position when 'lazyredraw' and
                'statusline' are set.
    Solution:   Call compute_cmdrow(). (closes #8170, closes #8184)
    Files:      src/os_win32.c

    Patch 8.2.2842
    Problem:    Vim9: skip argument to searchpair() is not compiled.
    Solution:   Add VAR_INSTR.
    Files:      src/structs.h, src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/proto/vim9execute.pro, src/eval.c, src/evalfunc.c, src/vim.h,
                src/evalvars.c, src/typval.c, src/vim9type.c, src/testing.c,
                src/viminfo.c, src/if_py_both.h, src/json.c,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2843 (after 8.2.2842)
    Problem:    Vim9: skip argument to searchpairpos() is not compiled.
    Solution:   Handle like searchpair().  Also for search() and searchpos().
    Files:      src/vim9compile.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2844
    Problem:    Vim9: memory leak when using searchpair().
    Solution:   Free the v_instr field.
    Files:      src/typval.c

    Patch 8.2.2845
    Problem:    MS-Windows: warning for signed/unsigned comparison.
    Solution:   Add type cast.
    Files:      src/terminal.c

    Patch 8.2.2846
    Problem:    Vim9: "echo Func()" does not give an error for a function without
                a return value.
    Solution:   Give an error.  Be more specific about why a value is invalid.
    Files:      src/globals.h, src/errors.h, src/eval.c, src/evalfunc.c,
                src/typval.c, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.2847
    Problem:    Perl not tested sufficiently.
    Solution:   Add test.  Also test W17. (Dominique Pellé, closes #8193)
    Files:      src/testdir/test_arabic.vim, src/testdir/test_perl.vim

    Patch 8.2.2848
    Problem:    Crash when calling partial.
    Solution:   Check for NULL pointer. (Dominique Pellé, closes #8202)
    Files:      src/eval.c, src/evalfunc.c, src/testdir/test_functions.vim,
                src/testdir/test_listdict.vim

    Patch 8.2.2849
    Problem:    Bufwrite not sufficiently tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8192)
    Files:      src/testdir/test_startup.vim, src/testdir/test_writefile.vim

    Patch 8.2.2850
    Problem:    Recalling commands from history is not tested.
    Solution:   Add tests. (closes #8194)
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.2851
    Problem:    Using <Cmd> mapping on the command line triggers CmdlineChanged.
                (Naohiro Ono)
    Solution:   Jump to cmdline_not_changed if the command line didn't change.
                (closes #8208)
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.2852
    Problem:    Configure can add --as-needed a second time.
    Solution:   Only add --as-needed if not already there.  (Natanael Copa,
                closes #8189, closes #8181)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2853 (after 8.2.2851)
    Problem:    Window is not updated after using <Cmd> mapping.
    Solution:   So jump to cmdline_changed but skip autocommand.
    Files:      src/ex_getln.c

    Patch 8.2.2854
    Problem:    Custom statusline cannot contain % items.
    Solution:   Add "%{% expr %}". (closes #8190)
    Files:      runtime/doc/options.txt, src/buffer.c, src/optionstr.c,
                src/testdir/test_statusline.vim

    Patch 8.2.2855
    Problem:    White space after "->" does not give E274.
    Solution:   Do not skip white space in legacy script. (closes #8212)
    Files:      src/eval.c, src/testdir/test_method.vim

    Patch 8.2.2856
    Problem:    Get readonly error for device that can't be written to.
    Solution:   Check for being able to write first. (closes #8205)
    Files:      src/ex_cmds.c, src/testdir/test_writefile.vim

    Patch 8.2.2857
    Problem:    Vim9: exception in ISN_INSTR caught at wrong level.
    Solution:   Set the starting trylevel in exec_instructions(). (closes #8214)
    Files:      src/vim9compile.c, src/vim9execute.c, src/globals.h,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2858 (after 8.2.2857)
    Problem:    Test fails because of changed error message.
    Solution:   Adjust the expected error message.
    Files:      src/testdir/test_ex_mode.vim

    Patch 8.2.2859 (after 8.2.2857)
    Problem:    Tcl test fails because of changed error message.
    Solution:   Adjust the expected error message.
    Files:      src/testdir/test_tcl.vim

    Patch 8.2.2860
    Problem:    Adding a text property causes the whole window to be redrawn.
    Solution:   Use changed_lines_buf() to only redraw the affected lines.
    Files:      src/change.c, src/proto/change.pro, src/textprop.c

    Patch 8.2.2861
    Problem:    Vim9: "legacy return" is not recognized as a return statement.
    Solution:   Specifically check for a return command. (closes #8213)
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.2862
    Problem:    Removing a text property causes the whole window to be redrawn.
    Solution:   Use changed_lines_buf() to only redraw the affected lines.
    Files:      src/textprop.c

    Patch 8.2.2863 (after 8.2.2862)
    Problem:    Removing a text property does not redraw optimally.
    Solution:   Only redraw the lines that mithg actually have been changed.
    Files:      src/textprop.c

    Patch 8.2.2864
    Problem:    Vim9: crash when using inline function.
    Solution:   Check for NULL pointer. Make using inline function work inside
                lambda. (closes #8217)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2865 (after 8.2.2864)
    Problem:    Skipping over function body fails.
    Solution:   Do not define the function when skipping.
    Files:      src/userfunc.c

    Patch 8.2.2866
    Problem:    Vim9: memory leak when using inline function.
    Solution:   Remember what strings to free.
    Files:      src/userfunc.c, src/structs.h, src/eval.c

    Patch 8.2.2867 (after 8.2.2866)
    Problem:    Build failure.
    Solution:   Add missing part of the change.
    Files:      src/globals.h

    Patch 8.2.2868
    Problem:    Vim9: When executing a compiled expression the trylevel at start
                is changed but not restored. (closes #8214)
    Solution:   Restore the trylevel at start.
    Files:      src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2869
    Problem:    Using unified diff is not tested.
    Solution:   Test all cases also with unified diff. (issue #8197)
    Files:      src/testdir/test_diffmode.vim

    Patch 8.2.2870
    Problem:    CmdlineChange event triggered twice for CTRL-R.
    Solution:   Return CMDLINE_NOT_CHANGED from cmdline_insert_reg().
                (closes #8219)
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.2871
    Problem:    Unnecessary VIM_ISDIGIT() calls, badly indented code.
    Solution:   Call skipdigits() on the next character.  Improve indenting.
                (Dominique Pellé, closes #8227)
    Files:      src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c,
                src/ops.c, src/tag.c, src/vim9compile.c

    Patch 8.2.2872
    Problem:    Python tests fail without the channel feature.
    Solution:   Add a feature check. (Dominique Pellé, closes #8226)
    Files:      src/testdir/test_python2.vim, src/testdir/test_python3.vim

    Patch 8.2.2873
    Problem:    Not enough tests for writing buffers.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8229)
    Files:      src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_functions.vim, src/testdir/test_writefile.vim

    Patch 8.2.2874
    Problem:    MS-Windows: screen redraws too often.
    Solution:   Do not redraw when peeking for a character. (closes #8230,
                closes #8211)
    Files:      src/os_win32.c

    Patch 8.2.2875
    Problem:    Cancelling inputlist() after a digit does not return zero.
    Solution:   Always return zero when cancelling. (closes #8231)
    Files:      src/misc1.c, src/testdir/test_functions.vim

    Patch 8.2.2876
    Problem:    Configure cannot detect Python 3.10.
    Solution:   Use sys.version_info. (closes #8233)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2877
    Problem:    Insufficient tests for popup menu rightleft.
    Solution:   Add tests. (Yegappan Lakshmanan, closes #8235)
    Files:      src/testdir/test_popup.vim,
                src/testdir/dumps/Test_pum_rightleft_01.dump,
                src/testdir/dumps/Test_pum_rightleft_02.dump,
                src/testdir/dumps/Test_pum_scrollbar_01.dump,
                src/testdir/dumps/Test_pum_scrollbar_02.dump

    Patch 8.2.2878
    Problem:    Vim9: for loop list unpack only allows for one "_".
    Solution:   Drop the value when the variable is "_". (closes #8232)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2879
    Problem:    File extension .hsig not recognized.
    Solution:   Use Haskell filetype for .hsig files. (Marcin Szamotulski,
                closes #8236)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2880
    Problem:    Unified diff fails if actually used.
    Solution:   Invoke :diffupdate in the test.  Fix the check for working external
                diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197)
    Files:      src/diff.c, src/testdir/test_diffmode.vim

    Patch 8.2.2881
    Problem:    Various pieces of code not covered by tests.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8245)
    Files:      src/testdir/test_const.vim, src/testdir/test_functions.vim,
                src/testdir/test_python2.vim, src/testdir/test_python3.vim,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2882
    Problem:    Vim9: memory leak when lambda has an error.
    Solution:   Free the list of argument types on failure.
    Files:      src/userfunc.c

    Patch 8.2.2883
    Problem:    MS-Windows manifest file name is misleading.
    Solution:   Rename the file. (closes #8241)
    Files:      .gitignore, .hgignore, Filelist, Makefile, src/Make_cyg_ming.mak,
                src/Make_mvc.mak, src/gvim.exe.mnf, src/vim.manifest, src/vim.rc

    Patch 8.2.2884
    Problem:    Not enough cscope code is covered by tests.
    Solution:   Add a few test cases. (Dominique Pellé, closes #8246)
    Files:      src/testdir/test_cscope.vim

    Patch 8.2.2885
    Problem:    searching for \%'> does not match linewise end of line. (Tim Chase)
    Solution:   Match end of line if column is MAXCOL. (closes #8238)
    Files:      src/regexp_nfa.c, src/regexp_bt.c, src/testdir/test_search.vim

    Patch 8.2.2886
    Problem:    Various pieces of code not covered by tests.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8255)
    Files:      src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_listdict.vim, src/testdir/test_registers.vim,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.2887
    Problem:    Crash when passing null string to fullcommand().
    Solution:   Check for NULL pointer. (closes #8256)
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.2888
    Problem:    Vim9: "k" command recognized in Vim9 script.
    Solution:   Do not recognize "k" or "s" and "d" with flags.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.2889
    Problem:    Typo and verbose comment in Makefiles.
    Solution:   Fix typo. Use @#. (Ken Takata, closes #8252)
    Files:      Makefile, src/testdir/Makefile

    Patch 8.2.2890
    Problem:    Text property duplicated when data block splits.
    Solution:   Do not continue text prop from previous line. (closes #8261)
    Files:      src/memline.c, src/structs.h, src/testdir/test_textprop.vim

    Patch 8.2.2891
    Problem:    Cannot build with Perl 5.34.
    Solution:   Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266,
                closes #8250)
    Files:      src/if_perl.xs

    Patch 8.2.2892
    Problem:    Error message contains random characters.
    Solution:   Pass the right pointer to error_white_both(). (closes #8272,
                closes #8263)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2893
    Problem:    Multi-byte text in popup title shows up wrong.
    Solution:   Use the character width instead of the byte length. (Ralf Schandl,
                closes #8267, closes #8264)
    Files:      src/popupwin.c, src/message_test.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_multibytetitle.dump

    Patch 8.2.2894
    Problem:    MS-Windows: using enc_locale() for strftime() might not work.
    Solution:   Use wcsftime(). (Ken Takata, closes #8271)
    Files:      src/time.c

    Patch 8.2.2895
    Problem:    Vim9: random characters appear in some error messages.
    Solution:   Pass the correct pointer. (closes #8277)
    Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2896
    Problem:    Spellfile functionality not fully tested.
    Solution:   Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé,
                closes #8270)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.2897
    Problem:    Vim9: can use reserved words at the script level.
    Solution:   Check variable names for reserved words. (closes #8253)
    Files:      src/vim9compile.c, src/vim9script.c, src/proto/vim9script.pro,
                src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2898
    Problem:    QuitPre and ExitPre not triggered when GUI window is closed.
    Solution:   Call before_quit_autocmds(). (closes #8242)
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/gui.c

    Patch 8.2.2899
    Problem:    Appveyor script does not detect nmake failure.
    Solution:   Explicitly check for executable. (Ken Takata, closes #8281)
    Files:      ci/appveyor.bat

    Patch 8.2.2900
    Problem:    QuitPre is triggered before :wq writes the file, which is
                different from other commands.
    Solution:   Trigger QuitPre after writing the file. (closes #8279)
    Files:      src/ex_docmd.c, src/testdir/test_writefile.vim

    Patch 8.2.2901
    Problem:    Some operators not fully tested.
    Solution:   Add a few test cases. (Yegappan Lakshmanan, closes #8282)
    Files:      src/testdir/test_cpoptions.vim, src/testdir/test_increment.vim,
                src/testdir/test_normal.vim, src/testdir/test_virtualedit.vim,
                src/testdir/test_visual.vim

    Patch 8.2.2902
    Problem:    Spellfile functionality not fully tested.
    Solution:   Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé,
                closes #8283)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.2903
    Problem:    Cursor position wrong on wrapped line with 'signcolumn'.
    Solution:   Don't add space for showbreak twice. (Christian Brabandt,
                closes #8262)
    Files:      src/drawline.c, src/testdir/test_display.vim

    Patch 8.2.2904
    Problem:    "g$" causes scroll if half a double width char is visible.
    Solution:   Advance to the last fully visible character. (closes #8254)
    Files:      src/normal.c, src/testdir/test_normal.vim

    Patch 8.2.2905
    Problem:    No error when defaults.vim cannot be loaded.
    Solution:   Add an error message. (Christian Brabandt, closes #8248)
    Files:      runtime/doc/starting.txt, src/errors.h, src/main.c,
                src/testdir/test_startup.vim

    Patch 8.2.2906 (after 8.2.2905)
    Problem:    ASAN reports errors for test_startup for unknown reasons.
    Solution:   Temporarily disable the new test.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2907
    Problem:    Memory leak when running out of memory.
    Solution:   Free the allocated memory. (Dominique Pellé, closes #8284)
    Files:      src/term.c

    Patch 8.2.2908
    Problem:    Crash when using a terminal popup window from the cmdline window.
    Solution:   Instead of checking cmdwin_type call cmdwin_is_active().
                (closes #8286)
    Files:      src/terminal.c, src/errors.h, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_cmdwin_no_terminal.dump

    Patch 8.2.2909
    Problem:    Build error with non-Unix system.
    Solution:   Always include limits.h.
    Files:      src/vim.h

    Patch 8.2.2910
    Problem:    Test for cmdline window and terminal fails on MS-Windows.
    Solution:   Skip the test on MS-Windows.
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.2911
    Problem:    Pattern "\%V" does not match all of block selection. (Rick Howe)
    Solution:   Use the value of vi_curswant. (closes #8285)
    Files:      src/regexp.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_block_visual_match.dump

    Patch 8.2.2912
    Problem:    MS-Windows: most users expect using Unicode.
    Solution:   Default 'encoding' to utf-8 on MS-Windows. (Ken Takata,
                closes #3907)
    Files:      runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h,
                src/testdir/test_writefile.vim

    Patch 8.2.2913
    Problem:    MS-Windows conpty supports using mouse events.
    Solution:   When enabling the mouse enable mouse input and disable quick edit
                mode. (Wez Furlong, closes #8280)
    Files:      src/os_win32.c

    Patch 8.2.2914
    Problem:    Cannot paste a block without adding padding.
    Solution:   Add "zp" and "zP" which paste without adding padding. (Christian
                Brabandt, closes #8289)
    Files:      runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c,
                src/register.c, src/vim.h, src/testdir/test_normal.vim,
                src/testdir/test_visual.vim

    Patch 8.2.2915
    Problem:    MS-Windows: when using "default" for encoding utf-8 is used.
    Solution:   Use the system encoding. (Ken Takata, closes #8300)
    Files:      src/mbyte.c, runtime/doc/options.txt

    Patch 8.2.2916
    Problem:    Operators are not fully tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8290)
    Files:      src/ops.c, src/testdir/test_netbeans.vim,
                src/testdir/test_normal.vim, src/testdir/test_visual.vim

    Patch 8.2.2917
    Problem:    Spellfile functionality not fully tested.
    Solution:   Add tests for SFX with removal of characters, spelling
                suggestions with NOBREAK and others. (Dominique Pellé,
                closes #8293)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.2918
    Problem:    Builtin function can be shadowed by global variable.
    Solution:   Check for builtin function before variable. (Yasuhiro Matsumoto,
                closes #8302)
    Files:      src/eval.c, src/testdir/test_functions.vim

    Patch 8.2.2919
    Problem:    Using ":!command" does not work if the command uses posix_spawn().
    Solution:   Do not call ioctl() with TIOCSCTTY. (Felipe Contreras)
    Files:      src/os_unix.c

    Patch 8.2.2920
    Problem:    Still a way to shadow a builtin function. (Yasuhiro Matsumoto)
    Solution:   Check the key when using extend(). (issue #8302)
    Files:      src/eval.c, src/dict.c, src/proto/dict.pro,
                src/testdir/test_functions.vim

    Patch 8.2.2921
    Problem:    E704 for script local variable is not backwards compatible.
                (Yasuhiro Matsumoto)
    Solution:   Only give the error in Vim9 script.  Also check for function-local
                variable.
    Files:      src/dict.c, src/testdir/test_functions.vim

    Patch 8.2.2922
    Problem:    Computing array length is done in various ways.
    Solution:   Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305)
    Files:      src/arabic.c, src/blowfish.c, src/cindent.c, src/cmdexpand.c,
                src/cmdhist.c, src/dosinst.c, src/eval.c, src/evalfunc.c,
                src/ex_docmd.c, src/fileio.c, src/gui_athena.c, src/gui_gtk_x11.c,
                src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c,
                src/gui_xmebw.c, src/hardcopy.c, src/help.c, src/highlight.c,
                src/if_mzsch.c, src/macros.h, src/main.c, src/map.c, src/mbyte.c,
                src/memline.c, src/menu.c, src/misc2.c, src/normal.c, src/ops.c,
                src/option.c, src/optiondefs.h, src/os_win32.c, src/popupwin.c,
                src/quickfix.c, src/regexp.c, src/screen.c, src/search.c,
                src/syntax.c, src/term.c, src/terminal.c, src/time.c,
                src/usercmd.c, src/version.c

    Patch 8.2.2923
    Problem:    EBCDIC build is broken.
    Solution:   Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306)
    Files:      src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro

    Patch 8.2.2924
    Problem:    Superfluous extern declaration.
    Solution:   Delete the declaration. (Ken Takata, closes #8307)
    Files:      src/main.c

    Patch 8.2.2925
    Problem:    Vim9: line continuation comment uses legacy syntax.
    Solution:   Check for #\ instead of "\. (closes #8295)
    Files:      src/scriptfile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2926
    Problem:    Vim9: no good error for using :legacy in a :def function.
    Solution:   Give an explicit error where :legacy is not working.
                (closes #8309)
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_func.vim

    Patch 8.2.2927
    Problem:    Test commented out because it fails with ASAN.
    Solution:   Only skip the test when running with ASAN.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.2928
    Problem:    The evalfunc.c file is too big.
    Solution:   Move float related functionality to a separate file. (Yegappan
                Lakshmanan, closes #8287)
    Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/eval.c, src/evalfunc.c, src/float.c, src/proto.h,
                src/proto/eval.pro, src/proto/float.pro

    Patch 8.2.2929
    Problem:    Accidentally enable tcl by default.
    Solution:   Revert change to Makefile
    Files:      src/Makefile

    Patch 8.2.2930
    Problem:    When a popup is visible a mouse move my restart Visual mode.
    Solution:   Reset held_button when ending Visual mode. (closes #8318)
    Files:      src/mouse.c, src/proto/mouse.pro, src/normal.c

    Patch 8.2.2931
    Problem:    Vim9: line continuation comment still uses legacy syntax in one
                place.
    Solution:   Check for #\ instead of "\ earlier. (closes #8316)
    Files:      src/scriptfile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.2932 (after 8.2.2930)
    Problem:    Select mode test fails.
    Solution:   Do not always reset the held mouse button.
    Files:      src/mouse.c, src/normal.c, src/proto/normal.pro

    Patch 8.2.2933
    Problem:    When 'clipboard' is "unnamed" zp and zP do not work correctly.
    Solution:   Pass -1 to str_to_reg() and fix computing the character width
                instead of using the byte length. (Christian Brabandt,
                closes #8301, closes #8317)
    Files:      src/clipboard.c, src/mbyte.c, src/register.c

    Patch 8.2.2934 (after 8.2.2933)
    Problem:    ASAN error when using text from the clipboard.
    Solution:   Get width of each character.
    Files:      src/register.c

    Patch 8.2.2935 (after 8.2.2934)
    Problem:    Calculating register width is not always needed. (Christian
                Brabandt)
    Solution:   Only calculate the width when the type is MBLOCK.
    Files:      src/register.c

    Patch 8.2.2936
    Problem:    Vim9: converting number to bool uses wrong stack offset. (Salman
                Halim)
    Solution:   Include the offset in the 2BOOL command.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2937
    Problem:    Popup test fails if rightleft feature not enabled.
    Solution:   Check that the rightleft feature is available. (Dominique Pellé,
                closes #8321)
    Files:      src/testdir/test_popup.vim

    Patch 8.2.2938
    Problem:    After using motion force from feedkeys() it may not be reset.
    Solution:   Clear motion_force in clearop(). (closes #8323)
    Files:      src/normal.c, src/testdir/test_visual.vim

    Patch 8.2.2939
    Problem:    GTK: righthand scrollbar does not show with split window.
    Solution:   Adjust padding when two scrollbars are used. (Matt Wozniski,
                closes #8324)
    Files:      src/gui_gtk.c

    Patch 8.2.2940
    Problem:    MS-Windows: cannot see the size of the text area when resizing the
                gvim window.
    Solution:   Show a tooltip with the text size. (Ken Takata, closes #8326)
    Files:      src/gui_w32.c

    Patch 8.2.2941
    Problem:    Vim9: using `=expr` does not handle a list of strings.
    Solution:   Convert a list to a string and escape each item. (closes #8310)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2942
    Problem:    Vim9: internal error when calling function with too few arguments
    Solution:   Check for argument count to be too few. (closes #8325)
    Files:      src/errors.h, src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.2943
    Problem:    Vim9: check for argument count ignores default values.
    Solution:   Take default argument values into account.
    Files:      src/vim9execute.c

    Patch 8.2.2944
    Problem:    Vim9: no error when using job or channel as a string.
    Solution:   Be more strict about conversion to string. (closes #8312)
    Files:      src/typval.c, src/job.c, src/proto/job.pro, src/channel.c,
                src/proto/channel.pro, src/eval.c, src/vim9execute.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.2945
    Problem:    Some buffer related code is not tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8320)
    Files:      src/termlib.c, src/testdir/test_excmd.vim,
                src/testdir/test_recover.vim, src/testdir/test_swap.vim,
                src/testdir/test_visual.vim

    Patch 8.2.2946
    Problem:    Vim9: substitute expression cannot be a List in a :def function.
    Solution:   Use typval2string(). (closes #8330)
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2947
    Problem:    Build failure without the channel feature.
    Solution:   Add back #ifdef. (John Marriott)
    Files:      src/eval.c

    Patch 8.2.2948
    Problem:    Substitute() accepts a number but not a float expression.
    Solution:   Also accept a float. (closes #8331)
    Files:      src/typval.c, src/testdir/test_substitute.vim

    Patch 8.2.2949 (after 8.2.2948)
    Problem:    Tests failing because there is no error for float to string
                conversion.
    Solution:   Change the check for failure to check for correct result.  Make
                some conversions strict in Vim9 script.
    Files:      src/evalfunc.c, src/float.c, src/findfile.c, src/json.c,
                src/filepath.c, src/testdir/test_eval_stuff.vim,
                src/testdir/test_execute_func.vim,
                src/testdir/test_float_func.vim, src/testdir/test_functions.vim,
                src/testdir/test_listdict.vim, src/testdir/test_glob2regpat.vim

    Patch 8.2.2950
    Problem:    Sound code not fully tested.
    Solution:   Add more sound tests. (Dominique Pellé, closes #8332)
    Files:      src/testdir/test_sound.vim

    Patch 8.2.2951
    Problem:    Vim9: cannot use heredoc in :def function for :python, :lua, etc.
    Solution:   Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT
                instruction.
    Files:      src/userfunc.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2952
    Problem:    Recover test fails on big endian systems.
    Solution:   Disable the failing test on big endian systems. (Yegappan
                Lakshmanan, closes #8335)
    Files:      src/testdir/test_recover.vim, src/testdir/test_swap.vim

    Patch 8.2.2953 (after 8.2.2951)
    Problem:    Vim9: leaking memory when using heredoc script.
    Solution:   Free the first line.
    Files:      src/vim9execute.c

    Patch 8.2.2954
    Problem:    Short file name extension for Scala not recognized.
    Solution:   Recognize *.sc. (closes #8337)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2955
    Problem:    Vim9: using filter in compiled command does not work.
    Solution:   Generate EXEC including the command modifier.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/ex_cmds.c,
                src/proto/ex_cmds.pro, src/testdir/test_vim9_cmd.vim

    Patch 8.2.2956
    Problem:    Vim9: need to plan for future additions.
    Solution:   Reserve commands for future use: :type, :class, :enum.
    Files:      src/ex_cmds.h, src/ex_cmdidxs.h

    Patch 8.2.2957
    Problem:    Using getchar() in Vim9 script is problematic.
    Solution:   Add getcharstr(). (closes #8343)
    Files:      runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c,
                src/proto/getchar.pro, src/testdir/test_functions.vim

    Patch 8.2.2958 (after 8.2.2957)
    Problem:    Function list test fails.
    Solution:   Add newly added function to the list.  Fix typo.
    Files:      runtime/doc/usr_41.txt, src/testdir/test_function_lists.vim

    Patch 8.2.2959
    Problem:    sound_playfile() is not tested on MS-Windows.
    Solution:   Make it work and enable the test. (Dominique Pellé, closes #8338)
    Files:      src/sound.c, src/testdir/test_sound.vim

    Patch 8.2.2960
    Problem:    Swap file recovery not sufficiently tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8339)
    Files:      src/testdir/test_recover.vim

    Patch 8.2.2961
    Problem:    Keys typed during a :normal command are discarded.
    Solution:   Concatenate saved typeahead and typed keys. (closes #8340)
    Files:      src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c,
                src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro

    Patch 8.2.2962
    Problem:    MS-Windows command line arguments have wrong encoding.
    Solution:   Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347)
    Files:      src/os_win32.c

    Patch 8.2.2963
    Problem:    GUI: mouse move may start Visual mode with a popup visible.
    Solution:   Add special code for mouse move. (closes #8318)
    Files:      src/vim.h, src/gui.c, src/keymap.h, src/term.c

    Patch 8.2.2964
    Problem:    Vim9: hang when using space after ->. (Naohiro Ono)
    Solution:   Skip over white space to find the function name. (closes #8341)
    Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.2965
    Problem:    Vim9: crash when calling function that failed to compile.
    Solution:   Fail when trying to call the function. (closes #8344)
    Files:      src/errors.h, src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2966
    Problem:    ml_get errors after recovering a file. (Yegappan Lakshmanan)
    Solution:   Fix the cursor position after deleting lines.
    Files:      src/memline.c

    Patch 8.2.2967
    Problem:    Vim9: crash when using two levels of partials.
    Solution:   Add outer_ref_T and use it in the execution context.
    Files:      src/structs.h, src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.2968 (after 8.2.2967)
    Problem:    Vim9: memory leak
    Solution:   Unreference pt_outer of partial.
    Files:      src/eval.c

    Patch 8.2.2969
    Problem:    Subtracting from number option fails when result is zero. (Ingo
                Karkat)
    Solution:   Reset the string value when using the numeric value.
                (closes #8351)
    Files:      src/evalvars.c, src/testdir/test_vimscript.vim

    Patch 8.2.2970
    Problem:    Python configure check uses deprecated command.
    Solution:   Use sysconfig instead of distutils if possible. (Zdenek Dohnal,
                closes #8354)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.2971
    Problem:    Cannot yank a block without trailing spaces.
    Solution:   Add the "zy" command. (Christian Brabandt, closes #8292)
    Files:      runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c,
                src/ops.c, src/register.c, src/structs.h,
                src/testdir/test_visual.vim

    Patch 8.2.2972
    Problem:    "%bd" tries to delete popup window buffers, which fails. (Ralf
                Schandl)
    Solution:   Do not try to delete a popup window buffer. (closes #8349)
    Files:      src/buffer.c, src/vim.h, src/testdir/test_popupwin.vim

    Patch 8.2.2973
    Problem:    Fix for recovery and diff mode not tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8352)
    Files:      src/testdir/test_diffmode.vim, src/testdir/test_prompt_buffer.vim,
                src/testdir/test_recover.vim

    Patch 8.2.2974
    Problem:    Greek spell checking uses wrong case folding.
    Solution:   Fold capital sigma depending on whether it is at the end of a
                word or not. (closes #299)
    Files:      src/spell.c, src/proto/spell.pro, src/spellfile.c,
                src/spellsuggest.c

    Patch 8.2.2975
    Problem:    Vim9: can only use an autoload function name as a string.
    Solution:   Load the autoload script when encountered. (closes #8124)
    Files:      src/vim9compile.c, src/evalvars.c, src/scriptfile.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2976 (after 8.2.2975)
    Problem:    Build failure without the +eval feature.
    Solution:   Add #ifdefs.
    Files:      src/scriptfile.c

    Patch 8.2.2977
    Problem:    Crash when using a null function reference. (Naohiro Ono)
    Solution:   Check for an invalid function name. (closes #8367)
    Files:      src/eval.c, src/errors.h, src/testdir/test_functions.vim

    Patch 8.2.2978 (after 8.2.2977)
    Problem:    Warning for uninitialized variable.
    Solution:   Set return value to FAIL.
    Files:      src/eval.c

    Patch 8.2.2979
    Problem:    Not all options code is covered by tests.
    Solution:   Add more tests for options. (Yegappan Lakshmanan, closes #8369)
    Files:      src/testdir/test_edit.vim, src/testdir/test_excmd.vim,
                src/testdir/test_help.vim, src/testdir/test_mksession.vim,
                src/testdir/test_options.vim, src/testdir/test_vartabs.vim,
                src/testdir/test_window_cmd.vim

    Patch 8.2.2980
    Problem:    Popup window test is a bit flaky.
    Solution:   Add a redraw command.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.2981
    Problem:    Recovery test is not run on big-endian systems.
    Solution:   Make it work on big-endian systems. (James McCoy, closes #8368)
    Files:      src/testdir/test_recover.vim

    Patch 8.2.2982
    Problem:    Vim9: future commands are not reserved yet.
    Solution:   Add commands to be implemented later.  Make "this" a reserved
                name.
    Files:      runtime/doc/vim9.txt, src/ex_cmds.h, src/ex_cmdidxs.h,
                src/vim9script.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.2983
    Problem:    Vim9: an inline function requires specifying the return type.
    Solution:   Make the return type optional.
    Files:      src/eval.c, src/vim9compile.c, src/userfunc.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.2984 (after 8.2.2983)
    Problem:    Vim9: Test fails because of missing return statement.
    Solution:   When type is unknown set type to void.
    Files:      src/vim9compile.c

    Patch 8.2.2985
    Problem:    Vim9: a compiled function cannot be debugged.
    Solution:   Add initial debugging support.
    Files:      src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim.h, src/eval.c, src/vim9execute.c, src/userfunc.c,
                src/vim9type.c, src/testdir/test_debugger.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2986
    Problem:    Build failure without the profile feature.
    Solution:   Add #ifdef.
    Files:      src/vim9compile.c

    Patch 8.2.2987
    Problem:    Build failure with normal features.
    Solution:   Remove #define.
    Files:      src/vim9execute.c

    Patch 8.2.2988
    Problem:    Vim9: debugger test fails.
    Solution:   Get the debugger instructions when needed.
    Files:      src/vim.h, src/vim9.h

    Patch 8.2.2989
    Problem:    Vim9: memory leak when debugging a :def function.
    Solution:   Free the debug instructions.
    Files:      src/vim9compile.c

    Patch 8.2.2990
    Problem:    Jupyter Notebook files are not recognized.
    Solution:   Recognize *.ipynb. (closes #8375)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.2991
    Problem:    Vim9: no completion for :vim9 and :legacy.
    Solution:   Expand argument as a command. (closes #8377)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.2992
    Problem:    Vim9: completion for :disassemble is incomplete.
    Solution:   Recognize the "debug" and "profile" arguments.
    Files:      src/cmdexpand.c, src/vim9execute.c, src/proto/vim9execute.pro,
                src/vim.h, src/testdir/test_cmdline.vim

    Patch 8.2.2993
    Problem:    'fileencodings' default value should depend on 'encoding'. (Gary
                Johnson)
    Solution:   When 'encoding' is "utf-8" use a different default value for
                'fileencodings'.
    Files:      src/mbyte.c, src/option.c, src/proto/option.pro,
                src/testdir/test_options.vim

    Patch 8.2.2994
    Problem:    Various code is not fully tested.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8378)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_mapping.vim,
                src/testdir/test_modeline.vim, src/testdir/test_options.vim,
                src/testdir/test_paste.vim, src/vim9compile.c

    Patch 8.2.2995
    Problem:    Linker errors with dynamic Python 3.10.
    Solution:   Add a couple of library entries. (Zdenek Dohnal, closes #8381,
                closes #8356)
    Files:      src/if_python3.c

    Patch 8.2.2996
    Problem:    Vim9: when debugging cannot inspect local variables.
    Solution:   Make local variables available when debugging.
    Files:      src/vim9execute.c, src/proto/vim9execute.pro, src/vim9compile.c,
                src/vim9.h, src/debugger.c, src/testdir/test_debugger.vim

    Patch 8.2.2997 (after 8.2 2996)
    Problem:    Vim9: disassemble test fails.
    Solution:   Adjust expected output.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.2998 (after 8.2 2996)
    Problem:    Vim9: disassemble test fails.
    Solution:   Add missing call to lookup_debug_var().
    Files:      src/evalvars.c

    Patch 8.2.2999
    Problem:    Balloon sometimes does not hide with GTK 3.
    Solution:   Also listen to GDK_LEAVE_NOTIFY. (Johannes Stezenbach)
    Files:      src/gui_beval.c

    Patch 8.2.3000
    Problem:    Vim9: warning for uninitialized variable.
    Solution:   Add initialization. (John Marriott)
    Files:      src/vim9compile.c

    Patch 8.2.3001
    Problem:    Vim9: memory leak when compilation fails.
    Solution:   Free the list of variable names.
    Files:      src/vim9compile.c

    Patch 8.2.3002
    Problem:    Vim doesn't abort on a fatal Tcl error.
    Solution:   Change emsg() to iemsg(). (Dominique Pellé, closes #8383)
    Files:      src/if_tcl.c

    Patch 8.2.3003
    Problem:    Vim9: closure compiled with wrong compile type.
    Solution:   Use COMPILE_TYPE() when calling a function. (closes #8384)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3004
    Problem:    Vim9: error for missing colon given while skipping.
    Solution:   Do not give the error when skipping. (closes #8385)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3005
    Problem:    Vim9: using a void value does not give a proper error message.
    Solution:   Give a clear error message. (closes #8387)
    Files:      src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3006
    Problem:    Crash when echoing a value very early. (Naruhiko Nishino)
    Solution:   Do not use a NUL to truncate the message, make a copy.
                (closes #8388)
    Files:      src/message.c, src/testdir/test_startup.vim

    Patch 8.2.3007 (after 8.2.3005)
    Problem:    Vim9: test for void value fails.
    Solution:   Adjust expected error.  Do not make a copy of void.
    Files:      src/typval.c, src/testdir/test_functions.vim

    Patch 8.2.3008 (after 8.2.3006)
    Problem:    Startup test may hang.
    Solution:   Add quit command in the script.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.3009 (after 8.2.3006)
    Problem:    Startup test may hang.
    Solution:   Do not run the test in the GUI.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.3010
    Problem:    Not enough testing for viminfo code.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8390)
    Files:      src/register.c, src/testdir/test_fileformat.vim,
                src/testdir/test_smartindent.vim, src/testdir/test_viminfo.vim

    Patch 8.2.3011
    Problem:    Vim9: cannot get argument values during debugging.
    Solution:   Lookup names in the list of arguments.  Put debug instruction
                halfway for command.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_debugger.vim

    Patch 8.2.3012
    Problem:    When 'rightleft' is set the line number is sometimes drawn
                reversed.
    Solution:   Adjust how space is handled. (Christian Brabandt, closes #8389,
                closes #8391)
    Files:      src/drawline.c, src/testdir/test_number.vim

    Patch 8.2.3013
    Problem:    Vim: when debugging only the first line of a command using line
                continuation is displayed.
    Solution:   Find the next command and concatenate lines until that one.
                (closes #8392)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3014
    Problem:    Coverity warns for freeing static string.
    Solution:   Do not assign static string to pointer. (Dominique Pellé,
                closes #8397)
    Files:      src/vim9execute.c

    Patch 8.2.3015
    Problem:    Vim9: Assigning to @# requires a string. (Naohiro Ono)
    Solution:   Accent a number or a string. (closes #8396)
    Files:      src/vim9compile.c, src/vim9execute.c, src/globals.h,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3016
    Problem:    Confusing error when expression is followed by comma.
    Solution:   Give a different error for trailing text. (closes #8395)
    Files:      src/eval.c, src/testdir/test_let.vim,
                src/testdir/test_eval_stuff.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.3017
    Problem:    Vim9: debugger shows too many lines.
    Solution:   Truncate at a comment, "enddef", etc. (closes #8392)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3018
    Problem:    Formatting using quickfixtextfunc is lost when updating location
                lists for different buffers.  (Yorick Peterse)
    Solution:   Use the right window for the location list. (Yegappan Lakshmanan,
                closes #8400, closes #8403)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.3019
    Problem:    Location list only has the start position.
    Solution:   Make it possible to add an end position. (thinca, closes #8393)
    Files:      runtime/doc/eval.txt, src/quickfix.c,
                src/testdir/dumps/Test_quickfix_cwindow_1.dump,
                src/testdir/dumps/Test_quickfix_cwindow_2.dump,
                src/testdir/test_quickfix.vim, src/testdir/test_tagjump.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.3020
    Problem:    Unreachable code.
    Solution:   Remove the code. (closes #8406)
    Files:      src/ex_docmd.c

    Patch 8.2.3021
    Problem:    Spaces allowed between option name and "!", "?", etc.
    Solution:   Disallow spaces in Vim9 script, it was not documented.
                (closes #8408)
    Files:      src/option.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3022
    Problem:    Available encryption methods are not strong enough.
    Solution:   Add initial support for xchacha20. (Christian Brabandt,
                closes #8394)
    Files:      .github/workflows/ci.yml, runtime/doc/eval.txt,
                runtime/doc/options.txt, runtime/doc/various.txt,
                src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
                src/auto/configure, src/blowfish.c, src/bufwrite.c,
                src/config.h.in, src/configure.ac, src/crypt.c, src/crypt_zip.c,
                src/errors.h, src/evalfunc.c, src/feature.h, src/fileio.c,
                src/memline.c, src/option.c, src/optionstr.c,
                src/proto/blowfish.pro, src/proto/crypt.pro,
                src/proto/crypt_zip.pro, src/structs.h,
                src/testdir/samples/crypt_sodium_invalid.txt,
                src/testdir/test_crypt.vim, src/undo.c, src/version.c

    Patch 8.2.3023
    Problem:    Vim9: arguments for execute() not checked at compile time.
    Solution:   Add a function to check the argument types.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3024 (after 8.2.3023)
    Problem:    execute() function test fails.
    Solution:   Adjust test for different error.
    Files:      src/testdir/test_execute_func.vim

    Patch 8.2.3025
    Problem:    Not enough tests for quickfix end_col and end_lnum.
    Solution:   Add a few more test cases. (Shane-XB-Qian, closes #8409)
    Files:      src/testdir/test_quickfix.vim

    Patch 8.2.3026
    Problem:    Vim9: cannot set breakpoint in compiled function.
    Solution:   Check for breakpoint when calling a function.
    Files:      src/vim9execute.c, src/structs.h, src/vim.h, src/vim9.h,
                src/debugger.c, src/testdir/test_debugger.vim

    Patch 8.2.3027
    Problem:    Vim9: breakpoint in compiled function not always checked.
    Solution:   Check for breakpoint when calling compiled function from compiled
                function.
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3028
    Problem:    GUI mouse events not tested.
    Solution:   Add test_gui_mouse_event().  Add mouse tests. Also add a few
                viminfo tests. (Yegappan Lakshmanan, closes #8407)
    Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro,
                src/testdir/test_gui.vim, src/testdir/test_viminfo.vim,
                src/testing.c

    Patch 8.2.3029
    Problem:    Vim9: crash when using operator and list unpack assignment.
                (Naohiro Ono)
    Solution:   Get variable value before operation. (closes #8416)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c, src/ex_docmd.c,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3030
    Problem:    Coverity reports a memory leak.
    Solution:   Fix the leak and a few typos. (Dominique Pellé, closes #8418)
    Files:      src/crypt.c, src/errors.h

    Patch 8.2.3031
    Problem:    No error if a function name starts with an underscore. (Naohiro
                Ono)
    Solution:   In Vim9 script disallow a function name starting with an
                underscore, as is mentioned in the help. (closes #8414)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3032
    Problem:    Build problems with MSVC, other crypt issues with libsodium.
    Solution:   Adjust MSVC makefile. Disable swap file only when 'key' is set.
                Adjust error message used when key is wrong.  Fix Coverity issues.
                (Christian Brabandt, closes #8420, closes #8411)
    Files:      src/Make_mvc.mak, src/crypt.c, src/errors.h, src/fileio.c,
                src/memline.c, src/proto/crypt.pro

    Patch 8.2.3033
    Problem:    No error when using alpha delimiter with :global.
    Solution:   Check the delimiter like with :substitute. (closes #8415)
    Files:      src/ex_cmds.c, src/testdir/test_global.vim

    Patch 8.2.3034
    Problem:    Installing packages on github CI sometimes fails.
    Solution:   Update package information first. (Christian Brabandt,
                closes #8432)
    Files:      .github/workflows/ci.yml

    Patch 8.2.3035
    Problem:    Vim9: crash when calling :def function with partial and return
                type is not set.
    Solution:   When the return type is not set handle like the return type is
                unknown. (closes #8422)
    Files:      src/vim9type.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3036
    Problem:    Vim9: builtin function arguments not checked at compile time.
    Solution:   Add more argument type specs. Check arguments to test_setmouse()
                and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425)
    Files:      src/evalfunc.c, src/testdir/test_assert.vim,
                src/testdir/test_gui.vim, src/testdir/test_popupwin.vim,
                src/testdir/test_vim9_builtin.vim, src/testing.c

    Patch 8.2.3037
    Problem:    Configure reports libcanberra when checking for libsodium.
    Solution:   Adjust the message. (Ozaki Kiichi, closes #8435)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.3038
    Problem:    Amiga built-in version string doesn't include build date.
    Solution:   Add the build date if available. (Ola Söder, closes #8437)
    Files:      src/os_amiga.c

    Patch 8.2.3039
    Problem:    Vim9: breakpoint at a comment line does not work.
    Solution:   Add the comment line number to the debug instruction.
                (closes #8429)
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_debugger.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3040
    Problem:    GUI: dropping files not tested.
    Solution:   Add test_gui_drop_files() and tests. (Yegappan Lakshmanan,
                closes #8434)
    Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/gui.c,
                src/proto/testing.pro, src/testdir/test_gui.vim, src/testing.c

    Patch 8.2.3041
    Problem:    Detecting if the process of a swap file is running fails if the
                process is owned by another user.
    Solution:   Check for the ESRCH error. (closes #8436)
    Files:      src/os_unix.c

    Patch 8.2.3042 (after 8.2.3041)
    Problem:    Swap file test fails.
    Solution:   Check for a very high process ID instead of one, which should be
                running.
    Files:      src/testdir/test_swap.vim

    Patch 8.2.3043
    Problem:    Amiga: cannot get the shell size on MorphOS and AROS.
    Solution:   Use control sequences. (Ola Söder, closes #8438)
    Files:      src/os_amiga.c

    Patch 8.2.3044
    Problem:    Amiga MorphOS and AROS: process ID is not valid.
    Solution:   Use FindTask to return something which is unique to all processes.
                (Ola Söder, closes #8444)
    Files:      src/os_amiga.c

    Patch 8.2.3045
    Problem:    Minor typos.
    Solution:   Fix the typos. (Christian Brabandt, closes #8441)
    Files:      src/VisVim/README_VisVim.txt, src/evalfunc.c, src/testdir/vim9.vim

    Patch 8.2.3046
    Problem:    Amiga MorphOS: Term mode is set using DOS packets.
    Solution:   Use the same way of setting term mode on all next gen Amiga-like
                systems.  (Ola Söder, closes #8445)
    Files:      src/os_amiga.c

    Patch 8.2.3047
    Problem:    Increment and decrement don't allow for next command.
    Solution:   Allow for comment and next command. (closes #8442)
    Files:      src/ex_cmds.h, src/vim9script.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3048
    Problem:    Strange error for white space after ++ command.
    Solution:   Check for white space explicitly. (closes #8440)
    Files:      src/vim9script.c, src/errors.h, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3049
    Problem:    JSON patch file not recognized.
    Solution:   Recognize json-patch as json. (Kevin Locke, closes #8450)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3050
    Problem:    Cannot recognize elixir files.
    Solution:   Recognize Elixir-specific files.  Check if an .ex file is Euphoria
                or Elixir. (Austin Gatlin, closes #8401, closes #8446)
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.3051
    Problem:    Vim9: for loop with one list variable does not work.
    Solution:   Use a separate flag for unpacking a list. (closes #8452)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3052
    Problem:    Vim9: "legacy call" does not work.
    Solution:   Do not skip "call" after "legacy". (closes #8454)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3053
    Problem:    Vim9: cannot assign to @@ in :def function
    Solution:   Handle '@' like '"''. (closes #8456)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3054
    Problem:    Vim9: unpack assignment using "_" after semicolon fails.
    Solution:   Drop the expression result. (closes #8453)
    Files:      src/vim9compile.c, src/errors.h, src/testdir/test_vim9_assign.vim

    Patch 8.2.3055
    Problem:    Strange error for assigning to "x.key" on non-dictionary.
    Solution:   Add a specific error message. (closes #8451)
    Files:      src/eval.c, src/errors.h, src/testdir/test_vim9_assign.vim,
                src/testdir/test_listdict.vim, src/testdir/test_let.vim

    Patch 8.2.3056
    Problem:    Vim9: using default value in lambda gives confusing error.
    Solution:   Pass "default_args" on the first pass to get the arguments.
                (closes #8455)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3057
    Problem:    Vim9: debugger test fails with normal features and +terminal.
                (Dominique Pellé)
    Solution:   Adjust the INSTRUCTIONS macro. (closes #8460)
    Files:      src/vim9.h

    Patch 8.2.3058 (after 8.2.3056)
    Problem:    Vim9: cannot use ternary operator in parentheses.
    Solution:   Do not use "==" for a default argument value.  (closes #8462)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3059 (after 8.2.3056)
    Problem:    Vim9: memory leak when using lambda.
    Solution:   Do not store the default value strings when skipping.
    Files:      src/userfunc.c

    Patch 8.2.3060 (after 8.2.3056)
    Problem:    Vim9: cannot use ternary operator in parentheses.
    Solution:   Do not use "=~" for a default argument value.  (closes #8462)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3061
    Problem:    Testing the shell option is incomplete and spread out.
    Solution:   Move shell tests to one file and increase coverage. (Yegappan
                Lakshmanan, closes #8464)
    Files:      src/testdir/Make_all.mak, src/testdir/test_functions.vim,
                src/testdir/test_options.vim, src/testdir/test_shell.vim,
                src/testdir/test_system.vim

    Patch 8.2.3062
    Problem:    Internal error when adding several text properties.
    Solution:   Do not handle text properties when deleting a line for splitting a
                data block. (closes #8466)
    Files:      src/structs.h, src/memline.c, src/testdir/test_textprop.vim

    Patch 8.2.3063
    Problem:    Crash when switching 'cryptmethod' to xchacha20 with an existing
                undo file. (Martin Tournoij)
    Solution:   Disable reading undo file when decoding can't be done inplace.
                (issue #8467)
    Files:      src/fileio.c, src/bufwrite.c

    Patch 8.2.3064
    Problem:    Vim9: in script cannot set item in uninitialized list.
    Solution:   When a list is NULL allocate an empty one. (closes #8461)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3065
    Problem:    Vim9: error when sourcing script twice and reusing a function
                name.
    Solution:   Check if the function is dead. (closes #8463)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3066
    Problem:    Vim9: debugging lambda does not work.
    Solution:   Use the compile type of the function when compiling a lambda.
                (closes #8412)
    Files:      src/vim9compile.c, src/testdir/test_debugger.vim

    Patch 8.2.3067
    Problem:    Building fails with Athena. (Elimar Riesebieter)
    Solution:   Adjust #ifdefs and add the 'drop_file' feature.
    Files:      src/evalfunc.c, src/testing.c, src/testdir/test_gui.vim

    Patch 8.2.3068
    Problem:    Unicode tables are slightly outdated.
    Solution:   Update the tables for Unicode release 13. (Christian Brabandt
                closes #8430)
    Files:      runtime/tools/unicode.vim, src/mbyte.c

    Patch 8.2.3069
    Problem:    Error messages are spread out.
    Solution:   Move some error messages to errors.h.  Use clearer names.
    Files:      src/errors.h, src/globals.h, src/arglist.c, src/buffer.c,
                src/channel.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
                src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
                src/filepath.c, src/fold.c, src/getchar.c, src/indent.c,
                src/list.c, src/map.c, src/mark.c, src/normal.c, src/ops.c,
                src/optionstr.c, src/popupwin.c, src/quickfix.c, src/spellfile.c,
                src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c,
                src/vim9compile.c, src/window.c

    Patch 8.2.3070
    Problem:    Not enough testing for shell use.
    Solution:   Add a bit more testing. (Yegappan Lakshmanan, closes #8469)
    Files:      src/testdir/test_shell.vim, src/testdir/test_startup.vim

    Patch 8.2.3071
    Problem:    Shell options are not set properly for PowerShell.
    Solution:   Use better option defaults. (Mike Williams, closes #8459)
    Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
                runtime/doc/os_dos.txt, src/fileio.c, src/misc2.c, src/option.c,
                src/os_win32.c, src/testdir/test_shell.vim

    Patch 8.2.3072
    Problem:    The "zy" command does not work well when 'virtualedit' is set to
                "block". (Johann Höchtl)
    Solution:   Make endspaces zero. (Christian Brabandt, closes #8468,
                closes #8448)
    Files:      src/register.c, src/testdir/test_visual.vim

    Patch 8.2.3073
    Problem:    When cursor is moved for block append wrong text is inserted.
    Solution:   Calculate an offset. (Christian Brabandt, closes #8433,
                closes #8288)
    Files:      src/ops.c, src/testdir/test_blockedit.vim,
                src/testdir/test_visual.vim

    Patch 8.2.3074
    Problem:    popup_atcursor() uses wrong position with concealing.
    Solution:   Keep w_wcol in conceal_check_cursor_line(). (closes #8476)
    Files:      src/screen.c, src/proto/screen.pro, src/normal.c, src/edit.c,
                src/ui.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_atcursor_pos.dump

    Patch 8.2.3075
    Problem:    Xxd always reports an old version string. (Åsmund Ervik)
    Solution:   Update the version string with the last known change date.
                (Jürgen Weigert, closes #8475)
    Files:      src/xxd/xxd.c, src/testdir/test_xxd.vim

    Patch 8.2.3076
    Problem:    Vim9: using try in catch block causes a hang.
    Solution:   Save and restore the ec_in_catch flag. (closes #8478)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3077
    Problem:    Vim9: an error in a catch block is not reported.
    Solution:   Put the "in catch" flag in the try stack. (closes #8478)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3078
    Problem:    Vim9: profile test fails.
    Solution:   Make throw in :catch jump to :finally.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3079
    Problem:    Powershell core not supported by default.
    Solution:   Set option defaults for "pwsh". (Mike Williams, closes #8481)
    Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
                runtime/doc/os_dos.txt, runtime/doc/os_win32.txt, src/fileio.c,
                src/misc2.c, src/option.c, src/os_win32.c,
                src/testdir/test_shell.vim

    Patch 8.2.3080
    Problem:    Recover test fails on 32bit systems. (Ondřej Súkup)
    Solution:   Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485,
                closes #8479)
    Files:      src/testdir/test_recover.vim

    Patch 8.2.3081
    Problem:    Cannot catch errors in a channel command.
    Solution:   Instead of skipping the error make it silent. (closes #8477)
    Files:      src/channel.c

    Patch 8.2.3082
    Problem:    A channel command "echoerr" does not show anything.
    Solution:   Do not use silent errors when using an "echoerr" command.
                (closes #8494)
    Files:      src/channel.c, src/testdir/test_channel.py,
                src/testdir/test_channel.vim

    Patch 8.2.3083
    Problem:    Crash when passing null string to charclass().
    Solution:   Bail out when string pointer is NULL. (Christian Brabandt,
                closes #8498, closes #8260)
    Files:      src/mbyte.c, src/testdir/test_functions.vim

    Patch 8.2.3084
    Problem:    Vim9: builtin function argument types are not checked at compile
                time.
    Solution:   Add argument types. (Yegappan Lakshmanan, closes #8503)
    Files:      src/evalfunc.c, src/testdir/test_functions.vim,
                src/testdir/test_glob2regpat.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.3085
    Problem:    JSONC files are not recognized.
    Solution:   Recognize .jsonc files. (Izhak Jakov, closes #8500)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3086
    Problem:    Vim9: breakpoint on "for" does not work.
    Solution:   Use the right line number in ISN_DEBUG. (closes #8486)
    Files:      src/vim9compile.c, src/testdir/test_debugger.vim

    Patch 8.2.3087
    Problem:    Gemtext files are not recognized.
    Solution:   Recognize .gmi and .gemini files. (closes #8427)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3088
    Problem:    With 'virtualedit' set to "block" Visual highlight is wrong after
                using "$".  (Marco Trosi)
    Solution:   Do not set w_old_cursor_lcol to MAXCOL. (closes #8495)
    Files:      src/drawscreen.c, src/testdir/test_visual.vim,
                src/testdir/dumps/Test_visual_block_with_virtualedit.dump

    Patch 8.2.3089
    Problem:    Garbage collection has useless code.
    Solution:   Bail out when aborting. (closes #8504)
    Files:      src/userfunc.c

    Patch 8.2.3090
    Problem:    With concealing enabled and indirectly closing a fold the cursor
                may be somewhere in a folded line.
    Solution:   Recompute the cursor position when the cursor line can be
                concealed. (closes #8480)
    Files:      src/drawscreen.c

    Patch 8.2.3091
    Problem:    Vim9: default argument expression cannot use previous argument
    Solution:   Correct argument index. (closes #8496)
    Files:      src/vim9compile.c, src/structs.h, src/testdir/test_vim9_func.vim

    Patch 8.2.3092
    Problem:    Vim9: builtin function test fails without the +channel feature.
    Solution:   Check the +channel feature is supported. (Dominique Pellé,
                closes #8507)
    Files:      runtime/doc/eval.txt, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3093
    Problem:    tablabel_tooltip test fails with Athena. (Dominique Pellé)
    Solution:   Skip the test when using Athena. (closes #8508)
    Files:      src/testdir/test_gui.vim, src/testdir/check.vim

    Patch 8.2.3094
    Problem:    Test_popup_atcursor_pos() fails without the conceal feature.
    Solution:   Add a check for the conceal feature. (Dominique Pellé,
                closes #8505)
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.3095 (after 8.2.3088)
    Problem:    With 'virtualedit' set to "block" block selection is wrong after
                using "$".  (Marco Trosi)
    Solution:   Compute the longest selected line. (closes #8495)
    Files:      src/drawscreen.c, src/testdir/test_visual.vim,
                src/testdir/dumps/Test_visual_block_with_virtualedit2.dump

    Patch 8.2.3096
    Problem:    Temp files remain after running tests.
    Solution:   Delete the right files. (Dominique Pellé, closes #8509)
    Files:      src/testdir/test_debugger.vim, src/testdir/test_lambda.vim,
                src/testdir/test_visual.vim

    Patch 8.2.3097
    Problem:    Crash when using "quit" at recovery prompt and autocommands are
                triggered.
    Solution:   Block autocommands when creating an empty buffer to use as the
                current buffer. (closes #8506)
    Files:      src/buffer.c, src/testdir/test_swap.vim

    Patch 8.2.3098
    Problem:    Popup window test is flaky on MS-Windows with GUI.
    Solution:   Skip the check in this situation.
    Files:      src/testdir/test_popupwin.vim

    Patch 8.2.3099
    Problem:    Vim9: missing catch/finally not reported at script level.
    Solution:   Give an error. (closes #8487)
    Files:      src/structs.h, src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3100
    Problem:    Vim9: no error when using type with unknown number of arguments.
    Solution:   Do not ignore argument count of -1. (closes #8492)
    Files:      src/vim9type.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.3101
    Problem:    Missing function prototype for vim_round().
    Solution:   Add the prototype.
    Files:      src/proto/float.pro

    Patch 8.2.3102 (after 8.2.3097)
    Problem:    Test for crash fix does not fail without the fix.
    Solution:   Adjust the test sequence. (closes #8506)
    Files:      src/testdir/test_swap.vim

    Patch 8.2.3103 (after 8.2.3102)
    Problem:    Swap test may fail on some systems when jobs take longer to exit.
    Solution:   Use different file names.
    Files:      src/testdir/test_swap.vim

    Patch 8.2.3104
    Problem:    Vim9: unspecified function type causes type error.
    Solution:   Don't check type when min_argcount is negative. (issue #8492)
    Files:      src/globals.h, src/vim9type.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3105
    Problem:    Vim9: type of partial is wrong when it has arguments.
    Solution:   Subtract arguments from the count. (issue #8492)
    Files:      src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3106
    Problem:    Vim9: confusing line number reported for error.
    Solution:   Use the start line number for the store instruction.
                (closes #8488)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3107
    Problem:    Vim9: error for arguments while type didn't specify arguments.
    Solution:   Do not update that type to check when no argument count is
                specified. (closes #8492)
    Files:      src/userfunc.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3108
    Problem:    Test for remote_foreground() fails. (Elimar Riesebieter)
    Solution:   Check that $DISPLAY is set. (Christian Brabandt)
    Files:      src/testdir/check.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3109
    Problem:    Check for $DISPLAY never fails.
    Solution:   Use eval().
    Files:      src/testdir/check.vim

    Patch 8.2.3110
    Problem:    A pattern that matches the cursor position is a bit complicated.
    Solution:   Use a dot to indicate the cursor line and column. (Christian
                Brabandt, closes #8497, closes #8179)
    Files:      runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
                src/regexp_nfa.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.3111
    Problem:    Vim9: confusing error with extra whitespace before colon.
    Solution:   Check for colon after white space. (closes #8513)
    Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3112 (after 8.2.3090)
    Problem:    With concealing enabled and indirectly closing a fold the cursor
                may be somewhere in a folded line when it is not on the first line
                of the fold.
    Solution:   Check if the cursor is somewhere in the folded text.
    Files:      src/drawscreen.c

    Patch 8.2.3113
    Problem:    No error when for loop variable shadows script variable.
    Solution:   Check for the error. (closes #8512)
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3114
    Problem:    Amiga-like systems: build error checking for running process
    Solution:   Only build swapfile_process_running() on systems where it is
                actually used. (Ola Söder, closes #8519)
    Files:      src/memline.c

    Patch 8.2.3115
    Problem:    Coverity complains about free_wininfo() use.
    Solution:   Add a condition that "wip2" is not equal to "wip". (Neovim #14996)
    Files:      src/window.c

    Patch 8.2.3116
    Problem:    Vim9: crash when debugging a function with line continuation.
    Solution:   Check for a NULL pointer. (closes #8521)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3117
    Problem:    Vim9: type not properly checked in for loop.
    Solution:   Have items() return a list of lists.  Add runtime type checks.
                (closes #8515)
    Files:      src/evalfunc.c, src/globals.h, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3118
    Problem:    Vim9: "any" type not handled correctly in for loop.
    Solution:   Change compile time check into runtime check. (closes #8516)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3119
    Problem:    Compiler warning for unused argument.
    Solution:   Add UNUSED.
    Files:      src/evalfunc.c

    Patch 8.2.3120
    Problem:    Crypt with sodium test fails on MS-Windows.
    Solution:   Make the tests pass. (closes #8428)
    Files:      src/testdir/test_crypt.vim

    Patch 8.2.3121
    Problem:    'listchars' "exceeds" character appears in foldcolumn. Window
                separator is missing. (Leonid V.  Fedorenchik)
    Solution:   Only draw the "exceeds" character in the text area.  Break the
                loop when not drawing the text. (closes #8524)
    Files:      src/drawline.c, src/testdir/test_listchars.vim,
                src/testdir/dumps/Test_listchars_01.dump,
                src/testdir/dumps/Test_listchars_02.dump,
                src/testdir/dumps/Test_listchars_03.dump,
                src/testdir/dumps/Test_listchars_04.dump,
                src/testdir/dumps/Test_listchars_05.dump

    Patch 8.2.3122
    Problem:    With 'nowrap' cursor position is unexpected in narrow window.
                (Leonid V.  Fedorenchik)
    Solution:   Put cursor on the last non-empty line. (closes #8525)
    Files:      src/move.c, src/testdir/test_listchars.vim,
                src/testdir/dumps/Test_listchars_06.dump,
                src/testdir/dumps/Test_listchars_07.dump

    Patch 8.2.3123
    Problem:    Vim9: confusing error when using white space after option, before
                one of "!&<".
    Solution:   Give a specific error. (issue #8408)
    Files:      src/errors.h, src/option.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3124
    Problem:    Vim9: no error for white space between option and "=9".
    Solution:   Check for extraneous white space. (issue #8408)
    Files:      src/option.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3125
    Problem:    Variables are set but not used.
    Solution:   Move the declarations to the block where they are used.
                (closes #8527)
    Files:      src/regexp_nfa.c

    Patch 8.2.3126
    Problem:    Vim9: for loop error reports wrong line number.
    Solution:   Save and restore the line number when evaluating the expression.
                (closes #8514)
    Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3127
    Problem:    Vim9: no error when adding number to list of string.
    Solution:   Check the value type. (closes #8529)
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3128
    Problem:    Vim9: uninitialized list does not get type checked.
    Solution:   Set the type when initializing the variable. (closes #8529)
    Files:      src/eval.c, src/evalvars.c, src/vim9script.c,
                src/userfunc.c, src/proto/vim9script.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3129
    Problem:    Vim9: imported uninitialized list does not get type checked.
    Solution:   Get type from imported variable.
    Files:      src/eval.c, src/evalvars.c, src/vim9script.c,
                src/proto/vim9script.pro, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3130
    Problem:    Vim9: import test fails.
    Solution:   Rename directory back to "import", use "p" to avoid an error when
                the directory already exists.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3131
    Problem:    MS-Windows: ipv6 channel test is very flaky in the GUI.
    Solution:   Skip the test.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.3132
    Problem:    Compiler warns for size_t to colnr_T conversion. (Randall W.
                Morris)
    Solution:   Add a type cast.
    Files:      src/drawscreen.c

    Patch 8.2.3133
    Problem:    Vim9: memory leak when add() fails.
    Solution:   Allocate listitem_T after type check.
    Files:      src/list.c

    Patch 8.2.3134
    Problem:    Crash when using typename() on a function reference. (Naohiro Ono)
    Solution:   Initialize pointer to NULL. (closes #8531)
    Files:      src/vim9type.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3135
    Problem:    Vim9: builtin function arguments not checked at compile time.
    Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8539)
    Files:      src/channel.c, src/errors.h, src/evalfunc.c, src/proto/typval.pro,
                src/terminal.c, src/testdir/test_search.vim,
                src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim,
                src/testing.c, src/textprop.c, src/typval.c

    Patch 8.2.3136
    Problem:    No test for E187 and "No swap file".
    Solution:   Add a test. (Dominique Pellé, closes #8540)
    Files:      src/testdir/test_cd.vim, src/testdir/test_swap.vim

    Patch 8.2.3137
    Problem:    Vim9: no error when a line only has a variable name.
    Solution:   Give an error when an expression is evaluated without an effect.
                (closes #8538)
    Files:      src/ex_eval.c, src/errors.h, src/vim9compile.c,
                src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.3138 (after 8.2.3137)
    Problem:    Debugger test fails.
    Solution:   Adjust eval command.
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.3139
    Problem:    Functions for string manipulation are spread out.
    Solution:   Move string related functions to a new source file. (Yegappan
                Lakshmanan, closes #8470)
    Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/eval.c, src/evalfunc.c, src/mbyte.c, src/misc1.c, src/misc2.c,
                src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro,
                src/proto/mbyte.pro, src/proto/misc1.pro, src/proto/misc2.pro,
                src/proto/strings.pro, src/strings.c

    Patch 8.2.3140 (after 8.2.3131)
    Problem:    MS-Windows: ipv6 channel test is very flaky also without the GUI.
    Solution:   Skip the test also without the GUI.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.3141
    Problem:    No error when using :complete for :command without -nargs.
    Solution:   Give an error. (Martin Tournoij, closes #8544, closes #8541)
    Files:      src/usercmd.c, src/errors.h, src/testdir/test_usercommands.vim

    Patch 8.2.3142
    Problem:    Vim9: type check for has_key() argument is too strict.
    Solution:   Also allow for a number key argument. (closes #8542)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3143
    Problem:    Vim9: A lambda may be compiled with the wrong context if it is
                called from a profiled function.
    Solution:   Compile the lambda with and without profiling. (closes #8543)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3144
    Problem:    Vim9: no error when using an invalid value for a line number.
    Solution:   Give an error if the string value is not recognized.
                (closes #8536)
    Files:      src/errors.h, src/eval.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3145
    Problem:    Vim9: profile test fails without profile feature.
    Solution:   Check the profile feature is present.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3146
    Problem:    Vim9: line number wrong for :execute argument.
    Solution:   Use the line number of the :execute command itself. (closes #8537)
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3147
    Problem:    Vim9: profiling does not work with a nested function.
    Solution:   Also compile a nested function without profiling. (closes #8543)
                Handle that compiling may cause the table of compiled functions to
                change.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3148
    Problem:    Vim9: function arg type check does not handle base offset.
    Solution:   Take the base offset into account when checking builtin function
                argument types.
    Files:      src/evalfunc.c, src/vim9compile.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3149 (after 8.2.3141)
    Problem:    Some plugins have a problem with the error check for using
                :command with -complete but without -nargs.
    Solution:   In legacy script only give a warning message.
    Files:      src/usercmd.c, src/message.c, src/proto/message.pro,
                src/testdir/test_usercommands.vim

    Patch 8.2.3150
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8545)
    Files:      src/evalfunc.c, src/testing.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3151
    Problem:    Vim9: profiling fails if nested function is also profiled.
    Solution:   Use the compile type from the outer function. (closes #8543)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3152
    Problem:    Vim9: accessing "s:" results in an error.
    Solution:   Do not try to lookup a script variable for "s:". (closes #8549)
    Files:      src/evalvars.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3153
    Problem:    URLs with a dash in the scheme are not recognized.
    Solution:   Allow for a scheme with a dash, but not at the start or end.
                (Tsuyoshi CHO, closes #8299)
    Files:      src/misc1.c, src/testdir/test_buffer.vim

    Patch 8.2.3154
    Problem:    Vim9: some type checks for builtin functions fail.
    Solution:   Correct the type checks. (Yegappan Lakshmanan, closes #8551,
                closes #8550)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3155
    Problem:    Some option related code not covered by tests.
    Solution:   Add a few test cases. (Dominique Pellé, closes #8552)
    Files:      src/testdir/test_options.vim, src/testdir/test_set.vim

    Patch 8.2.3156
    Problem:    Vim9: term_getansicolors() test fails without +termguicolors.
    Solution:   Add a check for the feature. (Dominique Pellé, closes #8555)
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3157
    Problem:    Crypt test may fail on MS-Windows.
    Solution:   Ignore "[unix]" in the file message. (Christian Brabandt,
                closes #8561)
    Files:      src/testdir/test_crypt.vim

    Patch 8.2.3158
    Problem:    Strange error message when using islocked() with a number.
                (Yegappan Lakshmanan)
    Solution:   Check that the name is empty.
    Files:      src/evalfunc.c, src/testdir/test_functions.vim

    Patch 8.2.3159
    Problem:    Cursor displayed in wrong position after deleting line.
    Solution:   When deleting lines do not approximate botline. (fixes #8559)
    Files:      src/change.c

    Patch 8.2.3160
    Problem:    'breakindent' does not work well for bulleted and numbered lists.
    Solution:   Add the "list" entry to 'breakindentopt'. (Christian Brabandt,
                closes #8564, closes #1661)
    Files:      runtime/doc/options.txt, src/indent.c, src/structs.h,
                src/testdir/test_breakindent.vim

    Patch 8.2.3161
    Problem:    Vim9: no error when reltime() has invalid arguments.
    Solution:   Add an error. (closes #8562)
    Files:      src/time.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3162
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8560)
    Files:      runtime/doc/channel.txt, src/clientserver.c, src/cmdhist.c,
                src/errors.h, src/evalfunc.c, src/evalwindow.c, src/filepath.c,
                src/globals.h, src/popupwin.c, src/proto/typval.pro, src/sign.c,
                src/strings.c, src/terminal.c, src/testdir/test_normal.vim,
                src/testdir/test_reltime.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_expr.vim, src/testing.c, src/textprop.c,
                src/time.c, src/typval.c

    Patch 8.2.3163
    Problem:    Location list window may open a wrong file.
    Solution:   Also update the qf_ptr field. (Wei-Chung Wen, closes #8565,
                closes #8566)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.3164
    Problem:    MS-Windows: reported version lacks patchlevel, causing some update
                tools to update too often. (Klaus Frank)
    Solution:   Add the patchlevel to the version. (Christian Brabandt)
    Files:      src/dosinst.c

    Patch 8.2.3165
    Problem:    Vim9: in a || expression the error line number may be wrong.
    Solution:   Save and restore the line number when checking the type.
                (closes #8569)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3166
    Problem:    Vim9: nested autoload call error overruled by "Unknown error".
    Solution:   Check need_rethrow before giving an "Unknown error".
                (closes #8568)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3167
    Problem:    Get E12 in a job callback when searching for tags. (Andy Stewart)
    Solution:   Use the sandbox only for executing a command, not for searching.
                (closes #8511)
    Files:      src/tag.c

    Patch 8.2.3168
    Problem:    Vim9: type error for constant of type any.
    Solution:   Do add a runtime type check if a constant has type any.
                (closes #8570)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3169
    Problem:    Vim9: cannot handle nested inline function.
    Solution:   Check for nested inline function. (closes #8575)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.3170
    Problem:    Illegal memory access in test.
    Solution:   Check pointer is not before the start of the line.
    Files:      src/userfunc.c

    Patch 8.2.3171
    Problem:    Another illegal memory access in test.
    Solution:   Check pointer is after the start of the line.
    Files:      src/userfunc.c

    Patch 8.2.3172
    Problem:    MzScheme test fails. (Christian Brabandt)
    Solution:   Correct function name.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3173
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8581)
    Files:      src/diff.c, src/errors.h, src/evalfunc.c, src/globals.h,
                src/job.c, src/proto/typval.pro, src/strings.c, src/terminal.c,
                src/testdir/test_vim9_builtin.vim, src/typval.c

    Patch 8.2.3174
    Problem:    Vim9: "legacy undo" finds "undo" variable.
    Solution:   Do not pass lookup function to find_ex_command(). (closes #8563)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3175
    Problem:    Vim9: using illegal pointer with inline function inside a lambda.
    Solution:   Clear eval_tofree_cmdline when advancing to the next line.
                (closes #8578)
    Files:      src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3176
    Problem:    Vim9: no type error for comparing number with string.
    Solution:   Add a runtime type check. (closes #8571)
    Files:      src/typval.c, src/errors.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.3177
    Problem:    Vim9: can not use "for _ in expr" at script level.
    Solution:   Skip assignment if the loop variable is "_".
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3178
    Problem:    Vim9: the file name of an :import cannot be an expression.
    Solution:   Accept an expression that results in a string.  Do not support
                :import in a function.
    Files:      runtime/doc/vim9.txt, src/vim9script.c, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3179
    Problem:    Vim9: cannot assign to an imported variable at script level.
    Solution:   Lookup imported items when assigning.
    Files:      src/evalvars.c, src/errors.h, src/eval.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3180
    Problem:    Vim9: memory leak when concatenating to an imported string.
    Solution:   Clear the destination.
    Files:      src/evalvars.c

    Patch 8.2.3181
    Problem:    Vim9: builtin function test fails without channel feature.
    Solution:   Add feature checks. (Dominique Pellé, closes #8586)  Make feature
                checks more consistent.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3182
    Problem:    Vim9: crash when using removing items from a constant list.
                (Yegappan Lakshmanan)
    Solution:   When a list was allocated with items copy them.
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3183
    Problem:    Duplicate error numbers.
    Solution:   Adjust the error numbers.
    Files:      src/errors.h, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3184
    Problem:    Cannot add a digraph with a leading space.  It is not easy to list
                existing digraphs.
    Solution:   Add setdigraph(), setdigraphlist(), getdigraph() and
                getdigraphlist(). (closes #8580)
    Files:      runtime/doc/digraph.txt, runtime/doc/eval.txt,
                runtime/doc/usr_41.txt, src/digraph.c, src/evalfunc.c,
                src/ex_docmd.c, src/globals.h, src/errors.h,
                src/proto/digraph.pro, src/testdir/test_digraph.vim

    Patch 8.2.3185
    Problem:    Vim9: start of inline function found in comment line.
    Solution:   Do not check for inline function in comment line. (closes #8589)
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3186
    Problem:    Vim9: not all failures for import tested
    Solution:   Test more import failures
    Files:      src/errors.h, src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3187
    Problem:    Vim9: popup timer callback is not compiled.
    Solution:   Compile the callback when creating the timer.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/popupwin.c

    Patch 8.2.3188
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks, also at runtime. (Yegappan
                Lakshmanan, closes #8587)
    Files:      src/blob.c, src/channel.c, src/clientserver.c, src/cmdexpand.c,
                src/cmdhist.c, src/dict.c, src/diff.c, src/errors.h, src/eval.c,
                src/evalbuffer.c, src/evalfunc.c, src/evalvars.c,
                src/evalwindow.c, src/filepath.c, src/globals.h, src/insexpand.c,
                src/job.c, src/list.c, src/map.c, src/match.c,
                src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c,
                src/strings.c, src/terminal.c, src/testdir/test_blob.vim,
                src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim,
                src/testing.c, src/textprop.c, src/time.c, src/typval.c

    Patch 8.2.3189
    Problem:    Vim9: error when using "try|".
    Solution:   Allow for "|" right after a command.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3190
    Problem:    Error messages are spread out.
    Solution:   Move error messages to errors.h and give them a clear name.
    Files:      src/globals.h, src/errors.h, src/buffer.c, src/debugger.c,
                src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c,
                src/ex_docmd.c, src/ex_eval.c, src/gui.c, src/list.c, src/main.c,
                src/map.c, src/match.c, src/quickfix.c, src/regexp.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c,
                src/session.c, src/spell.c, src/syntax.c, src/time.c,
                src/userfunc.c, src/vim9execute.c, src/window.c

    Patch 8.2.3191
    Problem:    Vim9: not enough code is tested.
    Solution:   Use CheckLegacyAndVim9Success() in more places.  Fix uncovered
                problems.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_listdict.vim

    Patch 8.2.3192 (after 8.2.3190)
    Problem:    Build failure with small version (Tony Mechelynck).
    Solution:   Remove stray #ifdef.
    Files:      src/errors.h

    Patch 8.2.3193
    Problem:    screenpos() is wrong when the last line is partially visible and
                'display' is "lastline".
    Solution:   Also compute the position for a partially visible line.
                (closes #8599)
    Files:      src/move.c, src/testdir/test_cursor_func.vim

    Patch 8.2.3194
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks, simplify some. (Yegappan
                Lakshmanan, closes #8598)
    Files:      src/diff.c, src/evalbuffer.c, src/evalfunc.c, src/job.c,
                src/proto/typval.pro, src/sign.c, src/terminal.c,
                src/testdir/test_vim9_builtin.vim, src/typval.c

    Patch 8.2.3195
    Problem:    Vim9: unclear error when passing too many arguments to lambda.
    Solution:   Pass the expression itself instead of "[expression]".
                (closes #8604)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3196
    Problem:    Vim9: bool expression with numbers only fails at runtime.
    Solution:   Check constant to be bool at compile time. (closes #8603)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3197
    Problem:    Error messages are spread out.
    Solution:   Move a few more error messages to errors.h.
    Files:      src/globals.h, src/errors.h, src/edit.c, src/ex_cmds.c,
                src/ex_docmd.c, src/evalvars.c, src/option.c, src/quickfix.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/regexp.c, src/undo.c,
                src/vim9compile.c, src/vim9script.c

    Patch 8.2.3198
    Problem:    Cannot use 'formatlistpat' for breakindent.
    Solution:   Use a negative list indent. (Maxim Kim, closes #8594)
    Files:      runtime/doc/options.txt, src/indent.c,
                src/testdir/test_breakindent.vim

    Patch 8.2.3199
    Problem:    Vim9: execution speed can be improved.
    Solution:   Make the break counter static.
    Files:      src/vim9execute.c

    Patch 8.2.3200
    Problem:    Vim9: hard to guess where a type error is given.
    Solution:   Add the function name where possible. (closes #8608)
    Files:      src/dict.c, src/proto/dict.pro, src/eval.c, src/list.c,
                src/vim9compile.c, src/vim9execute.c, src/structs.h,
                src/vim9type.c, src/proto/vim9type.pro, src/if_py_both.h,
                src/errors.h, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3201 (after 8.2.3200)
    Problem:    Crash in test.
    Solution:   Initialize "where".
    Files:      src/eval.c, src/evalvars.c

    Patch 8.2.3202
    Problem:    Vim9: tests are only executed for legacy script.
    Solution:   Run more tests also for Vim9 script.  Fix uncovered problems.
    Files:      src/vim9execute.c, src/ex_docmd.c, src/testdir/test_listdict.vim

    Patch 8.2.3203
    Problem:    Vim9: compiled string expression causes type error. (Yegappan
                Lakshmanan)
    Solution:   Remove the string type from the stack.
    Files:      src/vim9compile.c, src/evalfunc.c

    Patch 8.2.3204
    Problem:    Display garbled when 'cursorline' is set and lines wrap. (Gabriel
                Dupras)
    Solution:   Avoid inserting lines twice. (closes #7255)
    Files:      src/drawscreen.c, src/testdir/test_cursorline.vim,
                src/testdir/dumps/Test_cursorline_redraw_1.dump,
                src/testdir/dumps/Test_cursorline_redraw_2.dump

    Patch 8.2.3205
    Problem:    Coverity reports a null pointer dereference.
    Solution:   Change the logic to avoid Coverity gets confused.
    Files:      src/vim9compile.c

    Patch 8.2.3206
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks. (Yegappan Lakshmanan, closes #8611)
    Files:      runtime/doc/eval.txt, src/blob.c, src/cmdhist.c, src/dict.c,
                src/errors.h, src/evalfunc.c, src/filepath.c, src/globals.h,
                src/job.c, src/list.c, src/match.c, src/misc1.c, src/popupwin.c,
                src/proto/typval.pro, src/sign.c, src/terminal.c,
                src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim,
                src/typval.c

    Patch 8.2.3207
    Problem:    Vim9: crash when compiling string fails. (Yegappan Lakshmanan)
    Solution:   Adjust the type stack length.
    Files:      src/vim9compile.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3208
    Problem:    Dynamic library load error does not mention why it failed.
    Solution:   Add the error message. (Martin Tournoij, closes #8621)
    Files:      src/globals.h, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c,
                src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c,
                src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/os_win32.pro,
                src/terminal.c

    Patch 8.2.3209
    Problem:    Vim9: lambda doesn't find block-local variable.
    Solution:   Adjust how a script-local variable is found. (closes #8614)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3210
    Problem:    Vim9: searchpair() sixth argument is compiled. (Yegappan
                Lakshmanan)
    Solution:   Only compile the fifth argument.
    Files:      src/vim9compile.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3211
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks. Fix type check for matchaddpos().
                (Yegappan Lakshmanan, closes #8619)
    Files:      src/channel.c, src/evalfunc.c, src/evalvars.c, src/if_cscope.c,
                src/job.c, src/proto/typval.pro,
                src/testdir/test_vim9_builtin.vim, src/time.c, src/typval.c

    Patch 8.2.3212
    Problem:    Vim9: execution speed can be improved.
    Solution:   Use __builtin_expect() to have the compiler produce better code.
                (Dominique Pellé, closes #8613)
    Files:      src/vim9execute.c

    Patch 8.2.3213
    Problem:    NOCOMPOUNDSUGS entry in spell file not tested.
    Solution:   Add a test. (Dominique Pellé, closes #8624)
    Files:      src/testdir/test_spellfile.vim

    Patch 8.2.3214
    Problem:    MS-Windows: passing /D does not set the install location.
    Solution:   Adjust how the installer uses $VIM. Update the documentation.
                (Christian Brabandt, Ken Takata, closes #8605)
    Files:      nsis/gvim.nsi, runtime/doc/os_win32.txt

    Patch 8.2.3215
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks. Sort the argument lists.
                (Yegappan Lakshmanan, closes #8626)
    Files:      src/change.c, src/evalfunc.c, src/filepath.c, src/sound.c,
                src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim,
                src/testing.c

    Patch 8.2.3216
    Problem:    Vim9: crash when using variable in a loop at script level.
    Solution:   Do not clear the variable if a function was defined.
                Do not create a new entry in sn_var_vals every time.
                (closes #8628)
    Files:      src/eval.c, src/ex_eval.c, src/vim9script.c, src/userfunc.c,
                src/evalvars.c, src/structs.h

    Patch 8.2.3217 (after 8.2.3216)
    Problem:    Build failure.
    Solution:   Add missing changes.
    Files:      src/globals.h

    Patch 8.2.3218
    Problem:    When using xchacha20 crypt undo file is not removed.
    Solution:   Reset 'undofile' and delete the file. (Christian Brabandt,
                closes #8630, closes #8467)
    Files:      src/bufwrite.c, src/crypt.c, src/proto/undo.pro,
                src/testdir/test_crypt.vim, src/undo.c

    Patch 8.2.3219
    Problem:    :find searches non-existing directories.
    Solution:   Check the path is not "..".  Update help. (Christian Brabandt,
                closes #8612, closes #8533)
    Files:      runtime/doc/editing.txt, src/findfile.c,
                src/testdir/test_findfile.vim

    Patch 8.2.3220
    Problem:    Test_term_setansicolors() fails in some configurations.
    Solution:   Check available features. (Dominique Pellé, closes #8636)
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3221
    Problem:    Vim9: argument types are not checked at compile time.
    Solution:   Add several more type checks. (Yegappan Lakshmanan, closes #8632)
    Files:      src/evalfunc.c, src/popupwin.c, src/proto/typval.pro,
                src/testdir/test_assert.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c

    Patch 8.2.3222
    Problem:    Vim9: cannot use loop variable later as lambda argument.
    Solution:   When not in function context check the current block ID.
                (closes #8637)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3223
    Problem:    Vim: using {} block in autoloaded omnifunc fails.
    Solution:   Allow using {} block when text is locked. (closes #8631)
    Files:      src/ex_cmds.h, src/testdir/test_ins_complete.vim

    Patch 8.2.3224
    Problem:    Cannot call script-local function after :vim9cmd. (Christian J.
                Robinson)
    Solution:   Skip over "<SNR>123".
    Files:      src/vim9compile.c, src/eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3225
    Problem:    Incsearch highlighting is attempted halfway a mapping.
    Solution:   Only do incsearch highlighting if keys were typed or there is no
                more typeahead.
    Files:      src/ex_getln.c

    Patch 8.2.3226
    Problem:    New digraph functions use old naming scheme.
    Solution:   Use the digraph_ prefix. (Hirohito Higashi, closes #8642)
    Files:      runtime/doc/digraph.txt, runtime/doc/eval.txt,
                runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h,
                src/evalfunc.c, src/proto/digraph.pro,
                src/testdir/test_digraph.vim

    Patch 8.2.3227
    Problem:    'virtualedit' can only be set globally.
    Solution:   Make 'virtualedit' global-local. (Gary Johnson, closes #8638)
    Files:      runtime/doc/options.txt, src/buffer.c, src/change.c,
                src/drawscreen.c, src/edit.c, src/misc2.c, src/normal.c,
                src/ops.c, src/option.c, src/option.h, src/optiondefs.h,
                src/optionstr.c, src/proto/option.pro, src/register.c,
                src/structs.h, src/testdir/test_virtualedit.vim

    Patch 8.2.3228
    Problem:    Cannot use a simple block for the :command argument. (Maarten
                Tournoij)
    Solution:   Recognize a simple {} block. (issue #8623)
    Files:      runtime/doc/map.txt, src/misc2.c, src/proto/misc2.pro,
                src/usercmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.3229
    Problem:    Vim9: runtime and compile time type checks are not the same.
    Solution:   Add more runtime type checks for builtin functions. (Yegappan
                Lakshmanan, closes #8646)
    Files:      src/arglist.c, src/change.c, src/channel.c, src/cindent.c,
                src/clientserver.c, src/cmdhist.c, src/dict.c, src/diff.c,
                src/digraph.c, src/errors.h, src/eval.c, src/evalbuffer.c,
                src/evalfunc.c, src/evalwindow.c, src/ex_docmd.c, src/ex_getln.c,
                src/filepath.c, src/findfile.c, src/float.c, src/fold.c,
                src/getchar.c, src/indent.c, src/insexpand.c, src/job.c,
                src/json.c, src/list.c, src/mark.c, src/match.c, src/mbyte.c,
                src/menu.c, src/misc1.c, src/move.c, src/popupwin.c,
                src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c,
                src/sound.c, src/strings.c, src/terminal.c,
                src/testdir/test_assert.vim, src/testdir/test_blob.vim,
                src/testdir/test_execute_func.vim,
                src/testdir/test_float_func.vim, src/testdir/test_functions.vim,
                src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_script.vim, src/testing.c, src/textprop.c,
                src/time.c, src/typval.c, src/undo.c

    Patch 8.2.3230
    Problem:    Vim9: type error when function return type is not known yet.
    Solution:   When return type is unknown, use "any". (closes #8644)
    Files:      src/vim9compile.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3231
    Problem:    Build failure with small features.
    Solution:   Adjust #ifdef.
    Files:      src/errors.h

    Patch 8.2.3232 (after 8.2.3229)
    Problem:    system() does not work without a second argument.
    Solution:   Do not require a second argument. (Yegappan Lakshmanan,
                closes #8651, closes #8650)
    Files:      src/misc1.c, src/proto/typval.pro,
                src/testdir/test_vim9_builtin.vim, src/typval.c

    Patch 8.2.3233
    Problem:    prop_list() and prop_find() do not indicate the buffer for the
                used type.
    Solution:   Add "type_bufnr" to the results. (closes #8647)
    Files:      runtime/doc/textprop.txt, src/testdir/test_textprop.vim,
                src/textprop.c

    Patch 8.2.3234
    Problem:    Crash when printing long string with Lua.
    Solution:   Remove lua_pop(). (Martin Tournoij, closes #8648)
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.3235
    Problem:    Cannot use lambda in {} block in user command. (Martin Tournoij)
    Solution:   Do not go over the end of the lambda.
    Files:      src/userfunc.c, src/testdir/test_usercommands.vim

    Patch 8.2.3236
    Problem:    mode() does not indicate using CTRL-O in Select mode.
    Solution:   Use "vs" and similar. (closes #8640)
    Files:      runtime/doc/eval.txt, src/globals.h, src/misc1.c, src/normal.c,
                src/testdir/test_functions.vim

    Patch 8.2.3237
    Problem:    When a builtin function gives an error processing continues.
    Solution:   In Vim9 script return FAIL in get_func_tv().
    Files:      src/userfunc.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3238
    Problem:    Vim9: error message does not indicate the location.
    Solution:   Add the relevant text. (issue #8634)
    Files:      src/errors.h, src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3239
    Problem:    Vim9: no error using heredoc for a number variable.
    Solution:   Add a type check. (closes #8627)
    Files:      src/vim9compile.c, src/evalvars.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3240
    Problem:    Lua print() does not work properly.
    Solution:   Put back lua_pop().
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.3241
    Problem:    Vim9: memory leak when function reports an error.
    Solution:   Clear the return value.
    Files:      src/userfunc.c

    Patch 8.2.3242
    Problem:    Vim9: valgrind reports leaks in builtin function test.
    Solution:   Do not start a job.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3243
    Problem:    MS-Windows: the "edit with multiple Vim" choice is not that
                useful.
    Solution:   Change it to "Edit with multiple tabs". (Michael Soyka,
                closes #8645)
    Files:      src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h

    Patch 8.2.3244
    Problem:    Lua 5.3 print() with a long string crashes.
    Solution:   Use a growarray instead of a Lua buffer. (Yegappan Lakshmanan,
                closes #8655)
    Files:      src/if_lua.c, src/misc2.c, src/proto/misc2.pro

    Patch 8.2.3245
    Problem:    The crypt key may appear in a swap partition.
    Solution:   When using xchacha20 use sodium_mlock(). (Christian Brabandt,
                closes #8657)
    Files:      src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c,
                src/memline.c, src/vim.h

    Patch 8.2.3246
    Problem:    Memory use after free.
    Solution:   When clearing a string option set the pointer to "empty_option".
    Files:      src/option.c

    Patch 8.2.3247
    Problem:    Using uninitialized memory when checking for crypt method.
    Solution:   Check the header length before using the salt and seed.
    Files:      src/fileio.c

    Patch 8.2.3248
    Problem:    Vim9: error message for wrong input uses wrong line number.
    Solution:   Use the line number of the start of the command. (issue #8653)
    Files:      src/vim9script.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3249
    Problem:    Vim9: error for re-imported function with default argument.
    Solution:   Do not check argument type if it is still unknown. (closes #8653)
    Files:      src/vim9type.c, src/proto/vim9type.pro, src/vim9script.c,
                src/vim.h, src/eval.c, src/vim9execute.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3250
    Problem:    MS-Windows: cannot build with libsodium.
    Solution:   Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt,
                closes #8668, closes #8663)
    Files:      src/Make_mvc.mak

    Patch 8.2.3251
    Problem:    Listing builtin_gui as an available terminal is confusing.
    Solution:   Do not list builtin_gui. (Christian Brabandt, closes #8669,
                closes #8661)
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.3252
    Problem:    Duplicated code for adding buffer lines.
    Solution:   Move code to a common function.  Also move map functions to map.c.
                (Yegappan Lakshmanan, closes #8665)
    Files:      src/evalbuffer.c, src/evalfunc.c, src/map.c, src/proto/map.pro

    Patch 8.2.3253
    Problem:    Channel test fails randomly.
    Solution:   Add a sleep after sending the "echoerr" command. (Michael Soyka)
    Files:      src/testdir/test_channel.vim, src/testdir/test_channel.py

    Patch 8.2.3254
    Problem:    win_gettype() does not recognize a quickfix window.
    Solution:   Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676)
    Files:      runtime/doc/eval.txt, src/evalwindow.c, src/misc2.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.3255
    Problem:    ci" finds following string but ci< and others don't.
    Solution:   When not inside an object find the start. (Connor Lane Smit,
                closes #8670)
    Files:      src/search.c, src/testdir/test_textobjects.vim, src/textobject.c

    Patch 8.2.3256
    Problem:    Executable test may fail on new Ubuntu system.
    Solution:   Consider /usr/bin/cat and /bin/cat the same.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.3257
    Problem:    Calling prop_find() with -1 for ID gives erroneous error. (Naohiro
                Ono)
    Solution:   When passing -1 use -2. (closes #8674)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.3258
    Problem:    Error messages have the wrong text.
    Solution:   Adjust the error message.
    Files:      src/errors.h, src/typval.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3259
    Problem:    When 'indentexpr' causes an error the did_throw flag may remain
                set.
    Solution:   Reset did_throw and show the error. (closes #8677)
    Files:      src/indent.c, src/ex_docmd.c, src/proto/ex_docmd.pro

    Patch 8.2.3260
    Problem:    Build failure with small features.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.3261
    Problem:    Vim9: when compiling repeat(123, N) return type is number.
    Solution:   Make return type a string. (closes #8664)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3262
    Problem:    Build failure when ABORT_ON_INTERNAL_ERROR is defined.
    Solution:   Adjust how estack_len_before is used.
    Files:      src/ex_docmd.c

    Patch 8.2.3263
    Problem:    Vim9: "..=" does not accept same types as the ".." operator.
    Solution:   Convert value to string like ".." does. (issue #8664)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3264 (after 8.2.3263)
    Problem:    Vim9: assign test fails.
    Solution:   Add missing change.
    Files:      src/eval.c

    Patch 8.2.3265
    Problem:    Smartcase does not work correctly in very magic pattern.
    Solution:   Take the magicness into account when skipping over regexp items.
                (Christian Brabandt, closes #8682, closes #7845)
    Files:      src/search.c, src/testdir/test_search.vim

    Patch 8.2.3266
    Problem:    Vim9: assignment with two indexes may check next line.
    Solution:   Limit the number of lines to avoid checking the next line when
                assigning to a LHS subscript. (closes #8660)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3267
    Problem:    Vim9: crash when disassembling a function that uses a deleted
                script variable.
    Solution:   Check the variable still exists. (closes #8683)
    Files:      src/vim9execute.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3268
    Problem:    Cannot use a block with :autocmd like with :command.
    Solution:   Add support for a {} block after :autocmd. (closes #8620)
    Files:      runtime/doc/autocmd.txt, runtime/doc/map.txt, src/autocmd.c,
                src/proto/autocmd.pro, src/usercmd.c, src/proto/usercmd.pro,
                src/ex_docmd.c, src/vim.h, src/testdir/test_autocmd.vim

    Patch 8.2.3269
    Problem:    Vim9: wrong argument check for partial. (Naohiro Ono)
    Solution:   Handle getting return type without arguments. Correct the minimal
                number of arguments for what is included in the partial.
                (closes #8667)
    Files:      src/evalfunc.c, src/vim9type.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3270
    Problem:    prop_find() finds property with ID -2.
    Solution:   Use a separate flag to indicate an ID was specified. (issue #8674)
    Files:      src/textprop.c

    Patch 8.2.3271
    Problem:    Vim9: cannot use :command or :au with a block in a :def function.
    Solution:   Recognize the start of the block.
    Files:      src/userfunc.c, src/usercmd.c, src/ex_docmd.c,
                src/proto/ex_docmd.pro, src/vim9compile.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3272
    Problem:    Cannot use id zero with prop_find(). (Naohiro Ono)
    Solution:   Also accept id zero.
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.3273
    Problem:    Autocmd test fails.
    Solution:   Require white space before the "{" that starts a block.
    Files:      src/userfunc.c

    Patch 8.2.3274
    Problem:    Macro for printf format check can be simplified.
    Solution:   Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique Pellé, issue #8635)
    Files:      src/channel.c, src/gui_xim.c, src/if_mzsch.c, src/nbdebug.c,
                src/nbdebug.h, src/netbeans.c, src/proto.h, src/term.c, src/vim.h,
                src/vim9execute.c

    Patch 8.2.3275
    Problem:    Optimizer can use hints about ga_grow() normally succeeding.
    Solution:   Use GA_GROW_FAILS() and GA_GROW_OK() in several places. (Dominique
                Pellé, issue #8635)
    Files:      src/arglist.c, src/macros.h, src/vim9execute.c, src/vim9compile.c

    Patch 8.2.3276
    Problem:    Vim9: exists() can only be evaluated at runtime.
    Solution:   Evaluate at compile time for option name literals. (closes #8437)
    Files:      src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3277 (after 8.2.3276)
    Problem:    Vim9: compiled has() does not work properly.
    Solution:   Fix check for has() vs exists().
    Files:      src/vim9compile.c

    Patch 8.2.3278
    Problem:    Vim9: error when adding 1 to float.
    Solution:   Accept t_number_bool. (closes #8687)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3279
    Problem:    Vim9: cannot use block in cmdline window.
    Solution:   Add EX_CMDWIN to the CMD_block flags. (closes #8689)
    Files:      src/ex_cmds.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3280
    Problem:    'virtualedit' local to buffer is not the best solution.
    Solution:   Make it window-local. (Gary Johnson, closes #8685)
    Files:      runtime/doc/options.txt, src/buffer.c, src/drawscreen.c,
                src/ops.c, src/option.c, src/option.h, src/optionstr.c,
                src/structs.h, src/testdir/test_virtualedit.vim

    Patch 8.2.3281
    Problem:    Vim9: TODO items in tests can be taken care of.
    Solution:   Update test for now working functionality. (closes #8694)
    Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3282
    Problem:    Vim9: error about using -complete without -nargs is confusing.
    Solution:   Change the wording.
    Files:      src/usercmd.c, src/errors.h

    Patch 8.2.3283
    Problem:    Julia filetype is not recognized
    Solution:   Add filetype detection. (Christian Clason, closes #8700)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3284
    Problem:    No error for insert() or remove() changing a locked blob.
    Solution:   Check a blob is not locked before changing it. (Sean Dewar,
                closes #8696)
    Files:      src/blob.c, src/errors.h, src/eval.c, src/list.c,
                src/proto/blob.pro, src/testdir/test_blob.vim,
                src/testdir/test_eval_stuff.vim

    Patch 8.2.3285
    Problem:    Scdoc filetype is not recognized.
    Solution:   Add filetype detection. (Gregory Anders, closes #8701)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3286
    Problem:    win_enter_ext() has too many boolean arguments.
    Solution:   use one flags argument with defined values.
    Files:      src/window.c

    Patch 8.2.3287
    Problem:    Channel events not handled in BufEnter autocommand.
    Solution:   Decrement dont_parse_messages earlier. (Tim Pope, closes #8697)
    Files:      src/window.c, src/testdir/test_channel.vim

    Patch 8.2.3288
    Problem:    Cannot easily access namespace dictionaries from Lua.
    Solution:   Add vim.g, vim.b, etc. (Yegappan Lakshmanan, closes #8693,
                from NeoVim)
    Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.3289 (after 8.2.3287)
    Problem:    Compiler warning for unused variable with small features.
    Solution:   Rearrange #ifdefs.
    Files:      src/window.c

    Patch 8.2.3290
    Problem:    Vim9: compiling dict may use pointer after free and leak memory on
                failure.
    Solution:   Pass a pointer to generate_PUSHS().  (Zdenek Dohnal, closes #8699)
    Files:      src/vim9compile.c

    Patch 8.2.3291
    Problem:    Coverity warns for not checking return value.
    Solution:   If dict_add() fails give an error message.
    Files:      src/if_lua.c, src/testdir/test_lua.vim

    Patch 8.2.3292
    Problem:    Underscore in very magic pattern causes a hang.  Pattern with \V
                are case sensitive. (Yutao Yuan)
    Solution:   Adjust condition for magicness and advance pointer. (Christian
                Brabandt, closes #8707, closes #8704, closes #8705)
    Files:      src/search.c, src/testdir/test_search.vim

    Patch 8.2.3293
    Problem:    Finding completions may cause an endless loop.
    Solution:   Use a better way to check coming back where the search started.
                (Andy Gozas, closes #8672, closes #8671)
    Files:      src/insexpand.c, src/testdir/Make_all.mak,
                src/testdir/test_ins_complete_no_halt.vim

    Patch 8.2.3294
    Problem:    Lua: memory leak when adding dict item fails.
    Solution:   Free the typval and the dict item.
    Files:      src/if_lua.c

    Patch 8.2.3295
    Problem:    'cursorline' should not apply to 'breakindent'.
    Solution:   Make 'cursorline' apply to 'breakindent' and 'showbreak'
                consistently. (closes #8684)
    Files:      src/drawline.c, src/testdir/dumps/Test_Xcursorline_19.dump,
                src/testdir/dumps/Test_Xcursorline_20.dump,
                src/testdir/dumps/Test_Xcursorline_21.dump,
                src/testdir/dumps/Test_Xcursorline_22.dump,
                src/testdir/dumps/Test_Xcursorline_23.dump,
                src/testdir/dumps/Test_Xcursorline_24.dump,
                src/testdir/dumps/Test_diff_with_cul_bri_01.dump,
                src/testdir/dumps/Test_diff_with_cul_bri_02.dump,
                src/testdir/dumps/Test_diff_with_cul_bri_03.dump,
                src/testdir/dumps/Test_diff_with_cul_bri_04.dump,
                src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim

    Patch 8.2.3296
    Problem:    Vim9: cannot add a number to a float.
    Solution:   Accept a number if the destination is a float. (closes #8703)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3297
    Problem:    Cannot use all commands inside a {} block after :command and
                :autocmd.
    Solution:   Do consider \n to separate commands. (closes #8620)
    Files:      runtime/doc/map.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/ex_eval.c, src/proto/ex_eval.pro, src/eval.c, src/evalvars.c,
                src/ex_cmds.c, src/syntax.c, src/userfunc.c, src/vim9compile.c,
                src/vim9script.c, src/errors.h, src/testdir/test_autocmd.vim,
                src/testdir/test_usercommands.vim

    Patch 8.2.3298
    Problem:    Build failure with small features.
    Solution:   Add #ifdef.
    Files:      src/ex_docmd.c

    Patch 8.2.3299
    Problem:    Vim9: exists() does not handle much at compile time.
    Solution:   Handle variable names. (closes #8688)
    Files:      src/vim9compile.c, src/evalfunc.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3300
    Problem:    Lua: can only execute one Vim command at a time.  Not easy to get
                the Vim version.
    Solution:   Make vim.command() accept multiple lines.  Add vim.version().
                (Yegappan Lakshmanan, closes #8716)
    Files:      runtime/doc/if_lua.txt, src/evalfunc.c, src/if_lua.c,
                src/proto/evalfunc.pro, src/testdir/test_lua.vim,
                src/testdir/test_shell.vim

    Patch 8.2.3301
    Problem:    Memory allocation functions don't have their own place.
    Solution:   Move memory allocation functions to alloc.c.  (Yegappan
                Lakshmanan, closes #8717)
    Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
                src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
                src/alloc.c, src/misc2.c, src/proto.h, src/proto/alloc.pro,
                src/proto/misc2.pro

    Patch 8.2.3302
    Problem:    Coverity is not run from github.
    Solution:   Add a coverity script. (James McCoy, closes #8714)
    Files:      .github/workflows/coverity.yml, Filelist

    Patch 8.2.3303
    Problem:    Some structures could be smaller.
    Solution:   Rearrange members to reduce size. (Dominique Pellé, closes #8725)
    Files:      src/structs.h, src/vim9.h, src/vim9execute.c

    Patch 8.2.3304
    Problem:    Popup window title with wide characters is truncated.
    Solution:   Use vim_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino,
                closes #8721)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_multibytetitle.dump

    Patch 8.2.3305
    Problem:    Vim9: :finally in skipped block not handled correctly.
    Solution:   Check whether :finally is in a skipped block. (Naruhiko Nishino,
                closes #8724)
    Files:      src/ex_eval.c, src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3306
    Problem:    Unexpected "No matching autocommands".
    Solution:   Do not give the message when aborting.  Mention the arguments in
                the message. (closes #8690)
    Files:      src/autocmd.c,

    Patch 8.2.3307
    Problem:    Vim9: :echoconsole cannot access local variables.
    Solution:   Handle like other :echo commands. (closes #8708)
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3308
    Problem:    Vim9: no runtime check for argument type if a function only has
                varargs.
    Solution:   Also check argument types if uf_va_type is set. (closes #8715)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3309
    Problem:    Vim9: divide by zero causes a crash.
    Solution:   Give an error message. (closes #8727)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3310
    Problem:    Vim9: unpack assignment does not mention source of type error.
    Solution:   Mention the argument number. (closes #8719)
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3311
    Problem:    Vim9: check for DO_NOT_FREE_CNT is very slow.
    Solution:   Move to a separate function so it can be skipped by setting
                $TEST_SKIP_PAT.
    Files:      src/testdir/test_vim9_expr.vim, src/testdir/runtest.vim

    Patch 8.2.3312
    Problem:    Vim9: after "if false" line breaks in expression not skipped.
    Solution:   Do parse the expression. (closes #8723)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3313
    Problem:    Unused code in win_exchange() and frame_remove().
    Solution:   Remove the code. (closes #8728)
    Files:      src/window.c

    Patch 8.2.3314
    Problem:    Behavior of exists() in a :def function is unpredictable.
    Solution:   Add exists_compiled().
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/errors.h, src/vim9compile.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3315
    Problem:    Cannot use single quote in a float number for readability.
    Solution:   Support single quotes like in numbers. (closes #8713)
    Files:      src/typval.c, src/float.c, src/proto/float.pro, src/json.c,
                src/viminfo.c, src/testdir/test_float_func.vim

    Patch 8.2.3316 (after 8.2.3315)
    Problem:    Float test fails.
    Solution:   Add missing change.
    Files:      src/evalfunc.c

    Patch 8.2.3317
    Problem:    Vim9: No error for missing white space before return type.
    Solution:   Check for white space. (closes #8733)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3318
    Problem:    Vim9: cannot ignore quotes in number at the command line.
    Solution:   Use in_vim9script() so that after ":vim9" quotes are ignored.
    Files:      src/typval.c, src/testdir/test_float_func.vim

    Patch 8.2.3319
    Problem:    Coverity action on github does not work.
    Solution:   Remove undefined $SRCDIR. (James McCoy, closes #8739)
    Files:      .github/workflows/coverity.yml

    Patch 8.2.3320
    Problem:    Some local functions are not static.
    Solution:   Add "static".  Move snprintf() related code to strings.c.
                (Yegappan Lakshmanan, closes #8734)
    Files:      src/alloc.c, src/channel.c, src/dict.c, src/digraph.c, src/edit.c,
                src/ex_docmd.c, src/getchar.c, src/job.c, src/list.c,
                src/message.c, src/profiler.c, src/proto/channel.pro,
                src/proto/dict.pro, src/proto/digraph.pro, src/proto/edit.pro,
                src/proto/ex_docmd.pro, src/proto/getchar.pro, src/proto/job.pro,
                src/proto/list.pro, src/proto/profiler.pro, src/proto/spell.pro,
                src/proto/vim9compile.pro, src/proto/vim9script.pro,
                src/proto/vim9type.pro, src/spell.c, src/strings.c,
                src/vim9compile.c, src/vim9script.c, src/vim9type.c, src/window.c

    Patch 8.2.3321
    Problem:    Some code is not tested.
    Solution:   Add some more tests. (Dominique Pellé, closes #8735)
    Files:      src/testdir/test_excmd.vim, src/testdir/test_writefile.vim

    Patch 8.2.3322
    Problem:    Vim9: checking type of dict does not check member type.
    Solution:   When getting the type of a typval use dv_type and lv_type.
                (closes #8732)
    Files:      src/vim9type.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3323
    Problem:    Help tag for exists_compiled() is wrong. (Maxim Kim)
    Solution:   Adjust the help tag.
    Files:      runtime/doc/eval.txt

    Patch 8.2.3324
    Problem:    Vim9: Cannot use :silent with :endwhile.
    Solution:   Allow for using the :silent modifier. (closes #8737)
    Files:      src/ex_eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3325
    Problem:    Digraph test fails when LC_ALL is set to "C".
    Solution:   When restoring 'encoding' set it to "utf-8". (closes #8742)
    Files:      src/testdir/test_digraph.vim

    Patch 8.2.3326
    Problem:    Vim9: no error passing an empty list of the wrong type.
    Solution:   Use ISN_SETTYPE also for "list<any>". (closes #8732)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3327
    Problem:    No check for sysconf() failing.
    Solution:   If sysconf() fails use SIGSTKSZ for the signal stack size.
                (Zdenek Dohnal, closes #8743)
    Files:      src/os_unix.c

    Patch 8.2.3328
    Problem:    Coverity error for not checking return value.
    Solution:   Check value is not negative.
    Files:      src/spellfile.c

    Patch 8.2.3329
    Problem:    v_lock not set when getting value of environment variable.
    Solution:   Set v_lock to zero.
    Files:      src/typval.c

    Patch 8.2.3330
    Problem:    Coverity reports using uninitialized field.
    Solution:   Initialize the field early.
    Files:      src/tag.c

    Patch 8.2.3331
    Problem:    Coverity warns for using value without boundary check.
    Solution:   Add a boundary check.
    Files:      src/viminfo.c

    Patch 8.2.3332
    Problem:    Vim9: cannot assign to range in list.
    Solution:   Implement overwriting a list range.
    Files:      src/vim9compile.c, src/vim9execute.c, src/list.c,
                src/proto/list.pro, src/eval.c, src/proto/eval.pro,
                src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim

    Patch 8.2.3333
    Problem:    Vim9: not enough tests run with Vim9.
    Solution:   Run a few more tests in Vim9 script and :def function.
    Files:      src/testdir/test_listdict.vim, src/testdir/vim9.vim

    Patch 8.2.3334
    Problem:    Vim9: not enough tests run with Vim9.
    Solution:   Run a few more tests in Vim9 script and :def function. Fix
                islocked().  Fix error for locking local variable.
    Files:      src/evalfunc.c, src/vim9compile.c, src/testdir/test_listdict.vim

    Patch 8.2.3335
    Problem:    Vim9: not enough tests run with Vim9.
    Solution:   Run a few more tests in Vim9 script and :def function.  Fix that
                items(), keys() and values() return zero for a NULL dict.
                Make join() return an empty string for a NULL list.  Make sort()
                return an empty list for a NULL list.
    Files:      src/dict.c, src/list.c, src/testdir/test_listdict.vim,
                src/testdir/vim9.vim

    Patch 8.2.3336
    Problem:    Behavior of negative index in list change changed. (Naruhiko
                Nishino)
    Solution:   Only change it for Vim9 script. (closes #8749)
    Files:      src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.3337
    Problem:    Completing "call g:" returns entries with just "g:". (Naohiro Ono)
    Solution:   Skip empty strings returned by get_user_func_name(). (closes #8753)
    Files:      src/evalfunc.c, src/testdir/test_cmdline.vim

    Patch 8.2.3338
    Problem:    Vim9: no type check when assigning a list range. (Naohiro Ono)
    Solution:   Check the member type. (closes #8750)
    Files:      src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.3339
    Problem:    Vim9: cannot lock a member in a local dict.
    Solution:   Get the local dict from the stack and pass it to get_lval().
    Files:      src/eval.c, src/vim9execute.c, src/vim9compile.c, src/vim9.h,
                src/globals.h, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3340 (after 8.2.3339)
    Problem:    Accessing uninitialized pointer.
    Solution:   Set pointer to NULL.
    Files:      src/eval.c

    Patch 8.2.3341
    Problem:    Vim9: function call aborted despite try/catch. (Naohiro Ono)
    Solution:   Ignore error caught by try/catch. (closes #8755)
    Files:      src/evalvars.c, src/vim9execute.c, src/message.c, src/time.c,
                src/globals.h, src/testdir/vim9.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.3342 (after 8.2.3341)
    Problem:    Test for :let errors fails.
    Solution:   Adjust the test and how to avoid a second error message.
    Files:      src/evalvars.c, src/testdir/test_let.vim

    Patch 8.2.3343 (after 8.2.3342)
    Problem:    Vim9: autoload test fails.
    Solution:   Adjust the way the second message is avoided
    Files:      src/evalvars.c

    Patch 8.2.3344 (after 8.2.3343)
    Problem:    Vimscript test fails.
    Solution:   Have test verify first error instead of second
    Files:      src/testdir/test_vimscript.vim

    Patch 8.2.3345
    Problem:    Some code not covered by tests.
    Solution:   Add a few more tests. (Dominique Pellé, closes #8757)
    Files:      src/testdir/test_arglist.vim, src/testdir/test_cmdline.vim,
                src/testdir/test_spellfile.vim, src/testdir/test_substitute.vim

    Patch 8.2.3346
    Problem:    Vim9: no error for using "." for concatenation after ":vim9cmd".
                (Naohiro Ono)
    Solution:   Check for Vim9 script syntax. (closes #8756)
    Files:      src/eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3347
    Problem:    Check for legacy script is incomplete. (Naohiro Ono)
    Solution:   Also check the :legacy modifier.  Use for string concatenation
                with "." and others (issue #8756)
    Files:      src/vim9script.c, src/proto/vim9script.pro, src/eval.c,
                src/typval.c, src/evalvars.c, src/errors.h, src/ex_docmd.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3348
    Problem:    line2byte() returns wrong value after adding textprop. (Yuto
                Kimura)
    Solution:   Reduce the length by the size of the text property. (closes #8759)
    Files:      src/memline.c, src/testdir/test_textprop.vim

    Patch 8.2.3349 (after 8.2.3347)
    Problem:    Eval test for scriptversion fails.
    Solution:   Fix off-by-one error.
    Files:      src/vim9script.c

    Patch 8.2.3350 (after 8.2.3348)
    Problem:    Text properties test fails on MS-Windows.
    Solution:   Set fileformat to unix.
    Files:      src/testdir/test_textprop.vim

    Patch 8.2.3351
    Problem:    Vim9: using a function by name may delete it. (Naohiro Ono)
    Solution:   Increment the reference count when using a function by name.
                (closes #8760)
    Files:      src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3352
    Problem:    Vim9: error for nested :enddef has wrong line number.
    Solution:   Compute the line number.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3353
    Problem:    Vim9: type of argument for negate not checked at compile time.
    Solution:   Add a compile time check.
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3354
    Problem:    Build failure with +byte_offset but without +textprop. (John
                Marriott)
    Solution:   Adjust the #ifdef.
    Files:      src/memline.c

    Patch 8.2.3355
    Problem:    MS-Windows: compiler warning for 64-32 bit conversion.
    Solution:   Add type casts.
    Files:      src/memline.c

    Patch 8.2.3356
    Problem:    Adding many text properties requires a lot of function calls.
    Solution:   Add the prop_add_list() function. (Yegappan Lakshmanan,
                closes #8751)
    Files:      runtime/doc/eval.txt, runtime/doc/textprop.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/textprop.pro,
                src/testdir/test_textprop.vim, src/testdir/test_vim9_builtin.vim,
                src/textprop.c

    Patch 8.2.3357
    Problem:    Crash when 'virtualedit' is set and window is narrow.
    Solution:   Check that width is not zero. (closes #8767)
    Files:      src/misc2.c, src/testdir/test_number.vim

    Patch 8.2.3358
    Problem:    Structurizr files are not recognized.
    Solution:   Recognize the file by contents. (Bastian Venthur, closes #8764)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3359
    Problem:    Vim9: error for type when variable is not set.
    Solution:   Give a specific error for a NULL function. (closes #8773)
    Files:      src/vim9type.c, src/errors.h, src/testdir/test_vim9_func.vim

    Patch 8.2.3360
    Problem:    User function completion fails with dict function.
    Solution:   Do not stop sequencing through the list if user functions when
                encountering an empty name. (Naohiro Ono, closes #8765,
                closes #8774)
    Files:      src/evalfunc.c, src/testdir/test_cmdline.vim

    Patch 8.2.3361
    Problem:    Vim9: crash with nested :while.
    Solution:   Handle skipping better. (Naruhiko Nishino, closes #8778)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3362
    Problem:    Buffer overflow when completing long tag name.
    Solution:   Allocate the buffer dynamically. (Gregory Anders, closes #8769)
    Files:      src/tag.c, src/testdir/test_tagjump.vim

    Patch 8.2.3363
    Problem:    When :edit reuses the current buffer the alternate file is set to
                the same buffer.
    Solution:   Only set the alternate file when not reusing the buffer.
                (closes #8783)
    Files:      src/ex_cmds.c, src/testdir/test_undo.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3364
    Problem:    Vim9: crash when :for is skipped.
    Solution:   Skip more code generation. (Naruhiko Nishino, closes #8777)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3365
    Problem:    Vim9: cannot use option for all operations.
    Solution:   Recognize more operations. (closes #8779)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/ex_docmd.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3366
    Problem:    Vim9: debugging elseif does not stop before condition.
    Solution:   Move debug statement to after the jump. (closes #8781)
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3367
    Problem:    Vim9: :@r executing a register is inconsistent.
    Solution:   Use "@r" as the start of an expression. (issue #8779)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3368
    Problem:    Not all Racket files are recognized.
    Solution:   Also recognize .rktl and .rktd files. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3369
    Problem:    Auto formatting after "cw" leaves cursor in wrong spot.
    Solution:   Do not auto-format after the delete. (closes #8789)
    Files:      src/ops.c, src/testdir/test_textformat.vim

    Patch 8.2.3370
    Problem:    Vim9: no check for white space before type in declaration.
                (Naohiro Ono)
    Solution:   Check for white space like in a compiled function. (closes #8785)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3371
    Problem:    Vim9: :$ENV cannot be followed by ->func() in next line.
    Solution:   Use "$ENV" as the start of an expression. (closes #8790)
    Files:      src/ex_docmd.c, src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3372
    Problem:    line2byte() value wrong when adding a text property. (Yuto Kimura)
    Solution:   Adjust length for text property. (closes #8772)  Also fix it for
                deleting a line.
    Files:      src/memline.c, src/testdir/test_textprop.vim

    Patch 8.2.3373 (after 8.2.3372)
    Problem:    text property test fails on MS-Windows.
    Solution:   Set fileformat to "unix"
    Files:      src/testdir/test_textprop.vim

    Patch 8.2.3374
    Problem:    Pyret files are not recognized.
    Solution:   Recognize .arr files as Pyret. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3375
    Problem:    Using uninitialized memory.
    Solution:   Initialize textprop_save_len.
    Files:      src/memline.c

    Patch 8.2.3376
    Problem:    Vim9: no warning that "@r" does not do anything.
    Solution:   Give a "no effect" error. (closes #8779)
    Files:      src/ex_eval.c, src/proto/ex_eval.pro, src/vim9compile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3377
    Problem:    Vim9: :disass completion does not understand "s:".
    Solution:   Expand "s:" to a pattern. (closes #8780)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3378
    Problem:    MS-Windows: completing environment variables with % is wrong.
    Solution:   Only complete environment variables with $. (Albert Liu,
                closes #8791)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3379
    Problem:    Crash when using NULL job.
    Solution:   Copy static string into buffer. (issue #8260)
    Files:      src/job.c, src/testdir/test_channel.vim

    Patch 8.2.3380
    Problem:    Crash when using NULL string for funcref().
    Solution:   Check for NULL argument. (issue #8260)
    Files:      src/evalfunc.c, src/testdir/test_expr.vim

    Patch 8.2.3381
    Problem:    Crash when using NULL list with sign functions.
    Solution:   Handle a NULL list like an empty list. (issue #8260)
    Files:      src/globals.h, src/testdir/test_signs.vim

    Patch 8.2.3382
    Problem:    Crash when getting the type of a NULL partial.
    Solution:   Check for NULL. (closes #8260)
    Files:      src/vim9type.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3383
    Problem:    Vim9: completion for :disassemble adds parenthesis.
    Solution:   Don't add parenthesis. (Naohiro Ono, closes #8802)
    Files:      src/userfunc.c, src/testdir/test_cmdline.vim

    Patch 8.2.3384
    Problem:    Cannot disable modeline for an individual file.
    Solution:   Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798)
    Files:      runtime/doc/options.txt, src/buffer.c,
                src/testdir/test_modeline.vim

    Patch 8.2.3385
    Problem:    Escaping for fish shell does not work properly.
    Solution:   Insert a backslash before a backslash. (Jason Cox, closes #8810)
    Files:      runtime/doc/eval.txt, src/strings.c, src/testdir/test_shell.vim

    Patch 8.2.3386
    Problem:    Using uninitialized memory.
    Solution:   Initialize the rm_ic field. (Dominique Pellé, closes #8800)
    Files:      src/indent.c

    Patch 8.2.3387
    Problem:    Compiler warning for non-static function.
    Solution:   Make the function static. (Dominique Pellé, closes #8816)
    Files:      src/strings.c

    Patch 8.2.3388
    Problem:    fnamemodify('path/..', ':p') differs from using 'path/../'. (David
                Briscoe)
    Solution:   Include the "/.." in the directory name. (closes #8808)
    Files:      src/os_unix.c, src/testdir/test_fnamemodify.vim

    Patch 8.2.3389
    Problem:    Cannot stop insert mode completion without side effects.
    Solution:   Add CTRL-X CTRL-Z. (closes #8821)
    Files:      runtime/doc/index.txt, runtime/doc/insert.txt, src/insexpand.c,
                src/testdir/test_ins_complete.vim

    Patch 8.2.3390
    Problem:    Included xdiff code is outdated.
    Solution:   Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431)
    Files:      src/diff.c, src/xdiff/README.txt, src/xdiff/xdiff.h,
                src/xdiff/xdiffi.c, src/xdiff/xdiffi.h, src/xdiff/xemit.c,
                src/xdiff/xemit.h, src/xdiff/xhistogram.c, src/xdiff/xinclude.h,
                src/xdiff/xmacros.h, src/xdiff/xpatience.c, src/xdiff/xprepare.h,
                src/xdiff/xtypes.h, src/xdiff/xutils.c, src/xdiff/xutils.h

    Patch 8.2.3391
    Problem:    Crash with combination of 'linebreak' and other options.
    Solution:   Avoid n_extra to become negative. (Christian Brabandt,
                closes #8817)
    Files:      src/drawline.c

    Patch 8.2.3392
    Problem:    augroup completion escapes regexp pattern characters.
    Solution:   Do not escape the augroup name. (closes #8826)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3393
    Problem:    Escaping for fish shell is skipping some characters.
    Solution:   Escape character after backslash if needed. (Jason Cox,
                closes #8827)
    Files:      src/strings.c, src/testdir/test_shell.vim

    Patch 8.2.3394
    Problem:    Filler lines are wrong when changing text in diff mode.
    Solution:   Don't change the filler lines on every change.  Check
                scrollbinding when updating the filler lines. (closes #8809)
    Files:      src/move.c, src/diff.c, src/testdir/test_diffmode.vim,
                src/testdir/dumps/Test_diff_scroll_change_01.dump,
                src/testdir/dumps/Test_diff_scroll_change_02.dump

    Patch 8.2.3395
    Problem:    Vim9: expression breakpoint not checked in :def function.
    Solution:   Always compile a function for debugging if there is an expression
                breakpoint. (closes #8803)
    Files:      src/vim9execute.c, src/proto/vim9execute.pro, src/debugger.c,
                src/proto/debugger.pro, src/vim.h, src/vim9.h,
                src/testdir/test_debugger.vim

    Patch 8.2.3396
    Problem:    When libcall() fails invalid pointer may be used.
    Solution:   Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829)
    Files:      src/evalfunc.c

    Patch 8.2.3397
    Problem:    No test for what 8.2.3391 fixes.
    Solution:   Add a test. (Yegappan Lakshmanan, closes #8828)
    Files:      src/testdir/test_breakindent.vim

    Patch 8.2.3398
    Problem:    Html text objects are not fully tested.
    Solution:   Add tests for dbcs encoding and different number of backslashes.
                (Dominique Pellé, closes #8831)
    Files:      src/testdir/test_textobjects.vim

    Patch 8.2.3399
    Problem:    Octave files are not recognized.
    Solution:   Detect Octave files. (Doug Kearns)
    Files:      runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt,
                runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3400
    Problem:    ":z!" is not supported.
    Solution:   Make ":z!" work and add tests. (Dominique Pellé, closes #8836)
                Use display height instead of current window height.
    Files:      runtime/doc/various.txt, src/ex_cmds.h, src/ex_cmds.c,
                src/testdir/test_ex_z.vim

    Patch 8.2.3401
    Problem:    Vim9: cannot use a negative count with finddir() and findfile().
    Solution:   Adjust the return type. (closes #8776)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3402
    Problem:    Invalid memory access when using :retab with large value.
    Solution:   Check the number is positive.
    Files:      src/indent.c, src/option.c, src/optionstr.c,
                src/testdir/test_retab.vim

    Patch 8.2.3403 (after 8.2.3402)
    Problem:    Memory leak for :retab with invalid argument.
    Solution:   Free the memory.  Make error messages consistent.
    Files:      src/indent.c

    Patch 8.2.3404
    Problem:    Vim9: no error for white space before "(".
    Solution:   Give an error, like in a compiled function.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3405
    Problem:    Cannot have a comment line in a {} block of a user command.
    Solution:   Continue after the line break. (closes #8837)
    Files:      src/ex_docmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.3406
    Problem:    On some systems tests fail without _REENTRANT. (Elimar
                Riesebieter)
    Solution:   Add -D_REENTRANT in configure. (closes #7402)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.3407
    Problem:    Using uninitialized memory with "let g:['bar'] = 2".
    Solution:   Initialize v_type of a new dict item.
    Files:      src/dict.c

    Patch 8.2.3408
    Problem:    Can delete a numbered function. (Naohiro Ono)
    Solution:   Disallow deleting a numbered function. (closes #8760)
    Files:      src/userfunc.c, src/testdir/test_user_func.vim

    Patch 8.2.3409
    Problem:    Reading beyond end of line with invalid utf-8 character.
    Solution:   Check for NUL when advancing.
    Files:      src/regexp_nfa.c, src/testdir/test_regexp_utf8.vim

    Patch 8.2.3410
    Problem:    Crash with linebreak, listchars and large tabstop.
    Solution:   Account for different size listchars for a tab. (closes #8841)
    Files:      src/drawline.c, src/testdir/test_listlbr_utf8.vim

    Patch 8.2.3411
    Problem:    Vim9: crash when using base name of import. (Naohiro Ono)
    Solution:   Check the import flags. (closes #8843)
    Files:      src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim

    Patch 8.2.3412 (after 8.2.3411)
    Problem:    Vim9: importing the wrong file.
    Solution:   Correct the file name.  Delete the file afterwards.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3413
    Problem:    Vim9: too many characters are allowed in import name.
    Solution:   Disallow ':' and '#', check for white space. (closes #8845)
    Files:      src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim

    Patch 8.2.3414
    Problem:    fullcommand() gives the wrong name if there is a buffer-local user
                command. (Naohiro Ono)
    Solution:   Use a separate function to get the user command name.
                (closes #8840)
    Files:      src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c,
                src/testdir/test_cmdline.vim

    Patch 8.2.3415
    Problem:    Vim9: Not all function argument types are properly checked.
    Solution:   Add and improve argument type checks. (Yegappan Lakshmanan,
                closes #8839)
    Files:      src/channel.c, src/digraph.c, src/evalfunc.c, src/terminal.c,
                src/testdir/test_digraph.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3416
    Problem:    Second error is reported while exception is being thrown.
    Solution:   Do not check for trailing characters when already aborting.
                (closes #8842)
    Files:      src/userfunc.c, src/testdir/test_trycatch.vim

    Patch 8.2.3417
    Problem:    Vim9: a failing debug expression aborts script sourcing.
    Solution:   Do not let expression failure abort script sourcing. (closes #8848)
    Files:      src/debugger.c, src/testdir/test_debugger.vim

    Patch 8.2.3418
    Problem:    Garbage collection while evaluating may cause trouble.
    Solution:   Disable garbage collection while evaluating an expression.
                (Christian Brabandt, issue #8848)
    Files:      src/eval.c

    Patch 8.2.3419
    Problem:    A failing debug expression may make Vim unusable.
    Solution:   Suppress error messages. (closes #8848)
    Files:      src/debugger.c, src/testdir/test_debugger.vim

    Patch 8.2.3420
    Problem:    _REENTRANT defined more than once.
    Solution:   Fix configure script. (Christian Brabandt, closes #8852)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.3421
    Problem:    A bit of code is not covered by tests.
    Solution:   Add a few more test cases. (Dominique Pellé, closes #8857)
    Files:      src/testdir/test_functions.vim, src/testdir/test_history.vim,
                src/testdir/test_startup.vim

    Patch 8.2.3422
    Problem:    Vim9: no failure if return type differs from returned variable.
    Solution:   Copy type when copying a list. (closes #8847)
    Files:      src/list.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3423
    Problem:    Vim9: list += list creates a new list in :def function.
    Solution:   Append to the existing list.
    Files:      src/structs.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3424
    Problem:    A sequence of spaces is hard to see in list mode.
    Solution:   Add the "multispace" option to 'listchars'. (closes #8834)
    Files:      runtime/doc/options.txt, src/drawline.c, src/message.c,
                src/screen.c, src/structs.h, src/testdir/test_listchars.vim

    Patch 8.2.3425
    Problem:    Warning for using uninitialized variable.
    Solution:   Initialize it. (John Marriott)
    Files:      src/screen.c

    Patch 8.2.3426
    Problem:    Crash when deleting a listener in a listener callback. (Naohiro
                Ono)
    Solution:   Mark the listener and delete it later. (closes #8863)
    Files:      src/change.c, src/testdir/test_listener.vim

    Patch 8.2.3427
    Problem:    Double free when list is copied.
    Solution:   Allocate the type when making a copy. (closes #8862)
                Clear the type for flattennew().  Avoid a memory leak when
                flattennew() fails.
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3428
    Problem:    Using freed memory when replacing. (Dhiraj Mishra)
    Solution:   Get the line pointer after calling ins_copychar().
    Files:      src/normal.c, src/testdir/test_edit.vim

    Patch 8.2.3429
    Problem:    Leaking memory when assigning to list or dict.
    Solution:   Free the list or dict type before overwriting it.
    Files:      src/vim9type.c, src/evalvars.c

    Patch 8.2.3430
    Problem:    No generic way to trigger an autocommand on mode change.
    Solution:   Add the ModeChanged autocommand event. (Magnus Gross, closes #8856)
    Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/edit.c,
                src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/misc1.c,
                src/normal.c, src/proto/autocmd.pro, src/proto/misc1.pro,
                src/testdir/test_edit.vim, src/vim.h

    Patch 8.2.3431
    Problem:    Completion for :disas sorts local functions first.
    Solution:   Sort local functions last, like with :delfunc. (Naohiro Ono,
                closes #8860)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3432
    Problem:    Octave/Matlab filetype detection does not work properly.
    Solution:   Update the patterns used for matching. (Doug Kearns)
    Files:      runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim

    Patch 8.2.3433
    Problem:    :delcommand does not take a -buffer option.
    Solution:   Add the -buffer option.
    Files:      runtime/doc/map.txt, src/usercmd.c, src/errors.h,
                src/testdir/test_usercommands.vim

    Patch 8.2.3434 (after 8.2.3430)
    Problem:    Function prototype for trigger_modechanged() is incomplete.
    Solution:   Add "void".
    Files:      src/proto/misc1.pro

    Patch 8.2.3435
    Problem:    Vim9: dict is not passed to dict function.
    Solution:   Keep the dict used until a function call.
    Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3436
    Problem:    Check for optional bool type has confusing return type.
    Solution:   Explicitly return OK.
    Files:      src/typval.c

    Patch 8.2.3437
    Problem:    Compiler warnings for 32/64 bit usage.
    Solution:   Add type casts. (Mike Williams, closes #8870)
    Files:      src/screen.c, src/xdiff/xemit.c, src/xdiff/xutils.c

    Patch 8.2.3438
    Problem:    Cannot manipulate blobs.
    Solution:   Add blob2list() and list2blob(). (Yegappan Lakshmanan,
                closes #8868)
    Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/blob.c,
                src/errors.h, src/evalfunc.c, src/proto/blob.pro,
                src/proto/typval.pro, src/testdir/test_blob.vim,
                src/testdir/test_vim9_builtin.vim, src/typval.c

    Patch 8.2.3439
    Problem:    Deleted lines go to wrong yank register.
    Solution:   Reset y_append when not calling get_yank_register(). (Christian
                Brabandt, closes #8872)
    Files:      src/ops.c, src/proto/register.pro, src/register.c,
                src/testdir/test_registers.vim

    Patch 8.2.3440
    Problem:    Recover test fails if there is an old swap file.
    Solution:   Delete old swap files.
    Files:      src/testdir/test_recover.vim

    Patch 8.2.3441
    Problem:    MS-Windows: vimtutor can't handle path with spaces.
    Solution:   Add double quotes. (Christian Brabandt, closes #8871)
    Files:      vimtutor.bat

    Patch 8.2.3442
    Problem:    Vim9: || and && are not handled at compile time when possible.
    Solution:   When using constants generate fewer instructions.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3443
    Problem:    Vim9: memory leak when and/or fails.
    Solution:   Also clear the growarray when the length is zero.
    Files:      src/vim9compile.c

    Patch 8.2.3444
    Problem:    concealed text not revealed when leaving insert mode. (Michael
                Soyka)
    Solution:   Check if concealing changed when leaving insert mode.
                (closes #8880)
    Files:      src/edit.c, src/testdir/test_conceal.vim,
                src/testdir/dumps/Test_conceal_two_windows_07in.dump

    Patch 8.2.3445
    Problem:    On Solaris longVersion may be declared twice. (Vladimir Marek)
    Solution:   Always declare longVersion in version.c
    Files:      src/globals.h, src/version.c

    Patch 8.2.3446
    Problem:    Not enough tests for empty string arguments.
    Solution:   Add tests, fix type check. (Yegappan Lakshmanan, closes #8881)
    Files:      runtime/doc/sign.txt, runtime/doc/textprop.txt, src/sign.c,
                src/testdir/test_blob.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3447
    Problem:    A couple of declarations are not ANSI C.
    Solution:   Put argument type inside (). (Yegappan Lakshmanan, closes #8890)
    Files:      src/os_unix.h

    Patch 8.2.3448
    Problem:    :endtry after function call that throws not found.
    Solution:   Do check for following :endtry if an exception is being thrown.
                (closes #8889)
    Files:      src/userfunc.c, src/testdir/test_trycatch.vim

    Patch 8.2.3449
    Problem:    Sort fails if the sort compare function returns 999.
    Solution:   Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884)
    Files:      src/list.c, src/testdir/test_sort.vim

    Patch 8.2.3450
    Problem:    Coveralls action fails.
    Solution:   Disable it for now.
    Files:      .github/workflows/ci.yml

    Patch 8.2.3451
    Problem:    Not all apache files are recognized.
    Solution:   Adjust the filetype pattern. (Zdenek Dohnal, closes #8882)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3452
    Problem:    MPD files are not recognized.
    Solution:   Recognize MPD files as XML. (Steven Penny, closes #8893)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3453
    Problem:    Autocmd not executed when editing a directory ending in a path
                separator inside try block.
    Solution:   Return NOTDONE instead of FAIL. (closes #8885)
    Files:      src/fileio.c, src/testdir/test_autocmd.vim

    Patch 8.2.3454
    Problem:    Using a count with "gp" leaves cursor in wrong position. (Naohiro
                Ono)
    Solution:   Count the inserted lines. (closes #8899)
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.3455 (after 8.2.3454)
    Problem:    Using a count with "gp" leaves '] in wrong position. (Naohiro Ono)
    Solution:   Correct the mark position. (closes #8899)
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.3456
    Problem:    Vim9: Not all functions are tested with an empty string argument.
    Solution:   Add tests with empty strings. (Yegappan Lakshmanan, closes #8915)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3457
    Problem:    MS-Windows Vim9: test executed and fails.
    Solution:   Add extra check for not being on MS-Windows.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3458
    Problem:    Not all dictdconf files are recognized.
    Solution:   Adjust the pattern. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3459
    Problem:    Vim9: need more tests for empty string arguments.
    Solution:   Add more tests.  Also use empty argument with menu_info() to get
                the top-level menu names. (Yegappan Lakshmanan, closes #8925)
    Files:      runtime/doc/eval.txt, src/menu.c, src/testdir/test_menu.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3460
    Problem:    Some type casts are not needed.
    Solution:   Remove unnecessary type casts. (closes #8934)
    Files:      src/autocmd.c, src/buffer.c, src/debugger.c, src/getchar.c,
                src/hardcopy.c, src/if_cscope.c, src/move.c, src/tag.c,
                src/version.c

    Patch 8.2.3461
    Problem:    Cannot distinguish Normal and Terminal-Normal mode.
    Solution:   Make mode() return "nt" for Terminal-Normal mode. (issue #8856)
    Files:      runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim

    Patch 8.2.3462
    Problem:    The ModeChanged event only uses one character for the new_mode and
                old_mode values.
    Solution:   Pass one as first argument to mode(). (issue #8856)
    Files:      src/misc1.c, src/testdir/test_edit.vim

    Patch 8.2.3463
    Problem:    Pattern matching with ModeChanged not tested.
    Solution:   Add a few more test lines. (issue #8856)
    Files:      src/testdir/test_edit.vim

    Patch 8.2.3464
    Problem:    nginx files are not recognized.
    Solution:   Add several file patterns. (Chris Aumann, closes #8922)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3465
    Problem:    Cannot detect insert scroll mode.
    Solution:   Add "scroll" to complete_info(). (closes #8943)
    Files:      runtime/doc/eval.txt, src/insexpand.c, src/testdir/test_popup.vim

    Patch 8.2.3466
    Problem:    Completion submode not indicated for virtual replace.
    Solution:   Add submode to "Rv". (closes #8945)
    Files:      runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.vim

    Patch 8.2.3467
    Problem:    CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono)
    Solution:   Restore the flag for "CTRL-G U" after triggering CursorHoldI.
                (closes #8937)
    Files:      src/edit.c, src/testdir/test_autocmd.vim

    Patch 8.2.3468
    Problem:    Problem with :cd when editing file in non-existent directory. (Yee
                Cheng Chin)
    Solution:   Prepend the current directory to get the full path. (closes #8903)
    Files:      src/os_unix.c, src/testdir/test_cd.vim

    Patch 8.2.3469
    Problem:    Some files with json syntax are not recognized.
    Solution:   Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3470
    Problem:    Crash with error in :catch and also in :finally.
    Solution:   Only discard an exception if there is one. (closes #8954)
    Files:      src/ex_eval.c, src/testdir/test_trycatch.vim

    Patch 8.2.3471
    Problem:    Crash when using CTRL-T after an empty search pattern.
    Solution:   Bail out when there is no previous search pattern. (closes #8953)
    Files:      src/ex_getln.c, src/testdir/test_search.vim

    Patch 8.2.3472
    Problem:    Other crashes with empty search pattern not tested.
    Solution:   Add a few more test lines. (Dominique Pellé)
    Files:      src/testdir/test_search.vim

    Patch 8.2.3473
    Problem:    Some files with tcl syntax are not recognized.
    Solution:   Add a few file patterns. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3474
    Problem:    Some places use "Vimscript" instead of "Vim script".
    Solution:   Consistently use "Vim script". (Hirohito Higashi, closes #8910)
    Files:      runtime/doc/if_lua.txt, src/getchar.c, src/if_lua.c

    Patch 8.2.3475
    Problem:    Expression register set by not executed put command.
    Solution:   Do not set the register if the command is skipped. (closes #8909)
    Files:      src/ex_docmd.c, src/testdir/test_excmd.vim

    Patch 8.2.3476
    Problem:    Renaming a buffer on startup may cause using freed memory.
    Solution:   Check if the buffer is used in a window. (closes #8955)
    Files:      src/buffer.c, src/testdir/test_startup.vim

    Patch 8.2.3477 (after 8.2.3476)
    Problem:    Startup test fails on MS-Windows.
    Solution:   Skip the test if not on Unix.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.3478 (after 8.2.3470)
    Problem:    Still crash with error in :catch and also in :finally.
    Solution:   Only call finish_exception() once. (closes #8954)
    Files:      src/ex_eval.c, src/structs.h

    Patch 8.2.3479
    Problem:    Crash when calling job_start with an invalid argument. (Virginia
                Senioria)
    Solution:   Clear the first item in argv. (closes #8957)
    Files:      src/misc2.c, src/testdir/test_channel.vim

    Patch 8.2.3480 (after 8.2.3478)
    Problem:    Test does not fail without the fix for a crash.
    Solution:   Write the bad code in a file and source it. (Dominique Pellé,
                closes #8961)
    Files:      src/testdir/test_trycatch.vim

    Patch 8.2.3481
    Problem:    Failures when char is unsigned.
    Solution:   Use int8_T.  Make a CI run with unsigned char. (James McCoy,
                closes #8936)
    Files:      src/structs.h, .github/workflows/ci.yml

    Patch 8.2.3482
    Problem:    Reading beyond end of line ending in quote and backslash.
    Solution:   Check for non-NUL after backslash. (closes #8964)
    Files:      src/cindent.c, src/testdir/test_cindent.vim

    Patch 8.2.3483
    Problem:    #ifdef for using sysinfo() is incomplete.
    Solution:   Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK.
                (closes #8952)
    Files:      src/memline.c, src/configure.ac, src/auto/configure

    Patch 8.2.3484
    Problem:    Crash when going through spell suggestions.
    Solution:   Limit the text length for finding suggestions to the original
                length.  Do not update buffers when exiting. (closes #8965)
    Files:      src/spellsuggest.c, src/clipboard.c,
                src/testdir/test_spell_utf8.vim

    Patch 8.2.3485
    Problem:    Python 3 test fails with Python 3.10.
    Solution:   Adjust expected error message. (zdohnal Dohnal, closes #8969)
    Files:      src/testdir/test_python3.vim

    Patch 8.2.3486
    Problem:    Illegal memory access with invalid sequence of commands.
    Solution:   Do not call leave_block() when not in a try block. (closes #8966)
                Reset did_emsg so that exception is shown as an error.
    Files:      src/ex_eval.c, src/testdir/test_trycatch.vim

    Patch 8.2.3487
    Problem:    Illegal memory access if buffer name is very long.
    Solution:   Make sure not to go over the end of the buffer.
    Files:      src/drawscreen.c, src/testdir/test_statusline.vim

    Patch 8.2.3488
    Problem:    Issue template is not easy to use.
    Solution:   Use a yaml template. (closes #8928)
    Files:      .github/ISSUE_TEMPLATE/bug_report.md,
                .github/ISSUE_TEMPLATE/bug_report.yml

    Patch 8.2.3489
    Problem:    ml_get error after search with range.
    Solution:   Limit the line number to the buffer line count.
    Files:      src/ex_docmd.c, src/testdir/test_search.vim

    Patch 8.2.3490
    Problem:    Superfluous return statements.
    Solution:   Remove superfluous return statements from void functions.
                (closes #8977)
    Files:      src/buffer.c, src/getchar.c, src/memline.c, src/move.c,
                src/option.c

    Patch 8.2.3491
    Problem:    xpm2 filetype detection is not so good.
    Solution:   Adjust the check for xpm2. (closes #8914)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3492
    Problem:    Crash when pasting too many times.
    Solution:   Limit the size to what fits in an int. (closes #8962)
    Files:      src/register.c, src/errors.h, src/testdir/test_put.vim

    Patch 8.2.3493 (after 8.2.3492)
    Problem:    Large count test fails on MS-Windows.
    Solution:   Skip the test on MS-Windows.
    Files:      src/testdir/test_put.vim

    Patch 8.2.3494
    Problem:    Illegal memory access in utf_head_off.
    Solution:   Check cursor position when reselecting the Visual area.
                (closes #8963)
    Files:      src/normal.c, src/testdir/test_visual.vim

    Patch 8.2.3495
    Problem:    GUI geometry startup test fails on some systems. (Drew Vogel)
    Solution:   Add tolerance to the size check. (closes #8815)
    Files:      src/testdir/test_startup.vim

    Patch 8.2.3496
    Problem:    Crypt test fails on MS-Windows if xxd was not installed yet.
    Solution:   Use the just built xxd executable if it exists. (James McCoy,
                closes #8929)
    Files:      src/testdir/test_crypt.vim

    Patch 8.2.3497
    Problem:    Put test fails when run by itself.
    Solution:   Source check.vim. (Dominique Pellé, closes #8990)
    Files:      src/testdir/test_put.vim

    Patch 8.2.3498
    Problem:    Recover test may fail on some systems.
    Solution:   Adjust the little endian and 64 bit detection. (James McCoy,
                closes #8941)
    Files:      src/testdir/test_recover.vim

    Patch 8.2.3499
    Problem:    GUI geometry startup test fails.
    Solution:   Check string values instead of numbers
    Files:      src/testdir/test_startup.vim

    Patch 8.2.3500
    Problem:    Github CI fails to install clang.
    Solution:   Install llvm-11 explicitly. (Christian Brabandt, closes #8993)
    Files:      .github/workflows/ci.yml

    Patch 8.2.3501
    Problem:    tmux filetype detection is incomplete
    Solution:   Also use tmux for files having text after .conf. (Eric Pruitt,
                closes #8971)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3502 (after 8.2.2919)
    Problem:    Cannot enter password in shell command.
    Solution:   Revert patch 8.2.2919.
    Files:      src/os_unix.c

    Patch 8.2.3503
    Problem:    Vim9: using g:pat:cmd is confusing.
    Solution:   Do not recognize g: as the :global command.  Also for s:pat:repl.
                (closes #8982)
    Files:      runtime/doc/vim9.txt, src/ex_docmd.c, src/ex_cmds.c, src/errors.h,
                src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3504 (after 8.2.3503)
    Problem:    Vim9: warning for signed vs unsigned.
    Solution:   Add type cast.
    Files:      src/vim9compile.c

    Patch 8.2.3505 (after 8.2.3503)
    Problem:    Vim9: build failure without the +eval feature.
    Solution:   Add #ifdef.
    Files:      src/ex_cmds.c

    Patch 8.2.3506 (after 8.2.3503)
    Problem:    Vim9: special cases for "g" and "s" insufficiently tested.
    Solution:   Add a few more test cases.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.3507
    Problem:    Generating proto files may fail.
    Solution:   Define __attribute().
    Files:      src/Makefile

    Patch 8.2.3508 (after 8.2.3503)
    Problem:    Vim9: bad separators for "g" and "s" insufficiently tested.
    Solution:   Add a few more test cases.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.3509
    Problem:    Undo file is not synced. (Sami Farin)
    Solution:   Sync the undo file if 'fsync' is set. (Christian Brabandt,
                closes #8879, closes #8920)
    Files:      runtime/doc/options.txt, src/undo.c

    Patch 8.2.3510
    Problem:    Changes are only detected with one second accuracy.
    Solution:   Use the nanosecond time if possible.  (Leah Neukirchen,
                closes #8873, closes #8875)
    Files:      runtime/doc/eval.txt, src/auto/configure, src/bufwrite.c,
                src/config.h.in, src/configure.ac, src/fileio.c,
                src/proto/fileio.pro, src/memline.c, src/netbeans.c,
                src/structs.h, src/evalfunc.c, src/testdir/test_stat.vim

    Patch 8.2.3511
    Problem:    Vim9: entry for loop variable is created every round.
    Solution:   Only create the entry once. (closes #8996)
    Files:      src/evalvars.c, src/vim9script.c

    Patch 8.2.3512
    Problem:    Timestamp test fails on some systems.
    Solution:   Sleep for a short while.
    Files:      src/testdir/test_stat.vim

    Patch 8.2.3513
    Problem:    Using freed memory when using a timer and searching. (Dominique
                Pellé)
    Solution:   Allocated mr_pattern.
    Files:      src/search.c

    Patch 8.2.3514
    Problem:    Autoread test with nanosecond time sometimes fails.
    Solution:   Mark the test as being flaky.
    Files:      src/testdir/test_stat.vim

    Patch 8.2.3515
    Problem:    Nano time test fails on Mac and FreeBSD.
    Solution:   Also check nano time when not on Linux. (Ozaki Kiichi,
                closes #9000)
    Files:      src/fileio.c

    Patch 8.2.3516
    Problem:    Terminal window does not have transparent background when
                'termguicolors' is used.
    Solution:   Fix the background color. (closes #2361, closes #9002)
    Files:      runtime/doc/terminal.txt, src/highlight.c, src/proto/terminal.pro,
                src/terminal.c

    Patch 8.2.3517
    Problem:    TextChanged does not trigger after TextChangedI.
    Solution:   Store the tick separately for TextChangedI. (Christian Brabandt,
                closes #8968, closes #8932)
    Files:      src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h,
                src/testdir/test_autocmd.vim

    Patch 8.2.3518
    Problem:    Test_xrestore sometimes fails.
    Solution:   Mark the test as flaky.  Move marking test as flaky to the test
                instead of listing them in runtest.
    Files:      src/testdir/test_paste.vim, src/testdir/runtest.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_channel.vim,
                src/testdir/test_clientserver.vim, src/testdir/test_diffmode.vim,
                src/testdir/test_functions.vim, src/testdir/test_gui.vim,
                src/testdir/test_mapping.vim, src/testdir/test_popup.vim,
                src/testdir/test_quotestar.vim, src/testdir/test_reltime.vim,
                src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim,
                src/testdir/test_timers.vim

    Patch 8.2.3519
    Problem:    TOML files are not recognized.
    Solution:   Add filetype patterns for TOML. (Aman Verma, closes #8984)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3520
    Problem:    Cannot define a function for thesaurus completion.
    Solution:   Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987,
                closes 8950)
    Files:      runtime/doc/insert.txt, runtime/doc/options.txt,
                runtime/doc/quickref.txt, src/buffer.c, src/insexpand.c,
                src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c,
                src/structs.h, src/testdir/test_edit.vim

    Patch 8.2.3521 (after 8.2.3520)
    Problem:    Options completion test fails.
    Solution:   Add 'thesaurusfunc' to the results.
    Files:      src/testdir/test_options.vim

    Patch 8.2.3522
    Problem:    Cannot use \x and \u when setting 'listchars'.
    Solution:   Support hex and unicode in hex form. (closes #9006)
    Files:      runtime/doc/options.txt, src/screen.c, src/charset.c,
                src/testdir/test_listchars.vim

    Patch 8.2.3523
    Problem:    Duplicated code in xxd.
    Solution:   Remove duplicated lines. (closes #8972)
    Files:      src/xxd/xxd.c

    Patch 8.2.3524
    Problem:    GUI: ligatures are not used.
    Solution:   Add the 'guiligatures' option. (Dusan Popovic, closes #8933)
    Files:      runtime/doc/options.txt, src/gui.c, src/gui.h, src/gui_gtk_x11.c,
                src/option.h, src/optiondefs.h, src/optionstr.c, src/errors.h,
                src/proto/gui.pro, src/proto/gui_gtk_x11.pro,
                src/testdir/test_gui.vim

    Patch 8.2.3525
    Problem:    Option variable name does not match option name. (Christ van
                Willegen)
    Solution:   Rename the variable.
    Files:      src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c,
                src/structs.h

    Patch 8.2.3526
    Problem:    Tests have clumsy check for X11 based GUI.
    Solution:   Add CheckX11BasedGui.
    Files:      src/testdir/check.vim, src/testdir/test_gui.vim,
                src/testdir/test_gui_init.vim, src/testdir/setup_gui.vim

    Patch 8.2.3527
    Problem:    Gcc complains about uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize it.
    Files:      src/gui_gtk_x11.c

    Patch 8.2.3528
    Problem:    'thesaurus' and 'thesaurusfunc' do not have the same scope.
    Solution:   Make 'thesaurusfunc' global-local.
    Files:      runtime/doc/options.txt, runtime/doc/insert.txt,
                src/optiondefs.h, src/option.h, src/option.c, src/structs.h,
                src/insexpand.c, src/testdir/test_edit.vim

    Patch 8.2.3529
    Problem:    Xxd usage output is incomplete.
    Solution:   Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944)
    Files:      src/xxd/xxd.c

    Patch 8.2.3530
    Problem:    ":buf \{a}" fails while ":edit \{a}" works.
    Solution:   Unescape "\{". (closes #8917)
    Files:      src/vim.h, src/cmdexpand.c, src/evalfunc.c, src/ex_getln.c,
                src/proto/ex_getln.pro, src/normal.c, src/session.c,
                src/terminal.c, src/vim9execute.c, src/testdir/test_cmdline.vim

    Patch 8.2.3531 (after 8.2.3530)
    Problem:    Command line completion test fails on MS-Windows.
    Solution:   Do not test with "\{" on MS-Windows.
    Files:      src/testdir/test_cmdline.vim

    Patch 8.2.3532
    Problem:    The previous '' mark is restored after moving the cursor to the
                original jump position. (Tony Chen)
    Solution:   Forget the previous position after checking. (closes #8985)
    Files:      src/mark.c, src/testdir/test_marks.vim

    Patch 8.2.3533
    Problem:    Inefficient code in xxd.
    Solution:   Don't use "p" when "hextype" is non-zero. (closes #9013)
    Files:      src/xxd/xxd.c

    Patch 8.2.3534
    Problem:    Autoread test is a bit flaky.
    Solution:   Wait a brief moment before overwriting the file.
    Files:      src/testdir/test_stat.vim

    Patch 8.2.3535
    Problem:    If-else indenting is confusing.
    Solution:   Add curly brackets and indent. (Dominique Pellé, closes #9010)
    Files:      src/drawscreen.c

    Patch 8.2.3536
    Problem:    The do_highlight() function is way too long.
    Solution:   Split it into several functions. (Yegappan Lakshmanan,
                closes #9011)
    Files:      src/highlight.c

    Patch 8.2.3537
    Problem:    mode() does not return the right value in 'operatorfunc'.
    Solution:   Reset finish_op while calling 'operatorfunc'.
    Files:      src/ops.c, src/testdir/test_functions.vim

    Patch 8.2.3538
    Problem:    Else-if indenting is confusing.
    Solution:   Add curly brackets. (Yegappan Lakshmanan, closes #9017)
    Files:      src/highlight.c

    Patch 8.2.3539
    Problem:    GTK3: with 'rightleft' set scrollbar may move unintentionally.
    Solution:   Ignore events while moving the scrollbar thumb. (closes #8958)
    Files:      src/gui_gtk.c

    Patch 8.2.3540
    Problem:    The mark '] is wrong after put with a count. (Naohiro Ono)
    Solution:   Use the right line number. (closes #8956)
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.3541
    Problem:    Compiler warning for unused variable in tiny version.
    Solution:   Add #ifdef. (John Marriott)
    Files:      src/highlight.c

    Patch 8.2.3542
    Problem:    Too many comments are old style.
    Solution:   Change comments to // style. (closes #9021)
    Files:      src/buffer.c

    Patch 8.2.3543
    Problem:    Swapname has double slash when 'directory' ends in double slash.
                (Shane Smith)
    Solution:   Remove the superfluous slash. (closes #8876)
    Files:      src/memline.c, src/testdir/test_swap.vim

    Patch 8.2.3544
    Problem:    Unix: may leak file descriptor when using a non-existing
                directory.
    Solution:   Always close the file. (closes #9023)
    Files:      src/os_unix.c

    Patch 8.2.3545
    Problem:    setcellwidths() may make 'listchars' or 'fillchars' invalid.
    Solution:   Check the value and give an error. (closes #9024)
    Files:      runtime/doc/eval.txt, src/optionstr.c, src/errors.h, src/mbyte.c,
                src/testdir/test_utf8.vim

    Patch 8.2.3546 (after 8.2.3545)
    Problem:    Build failure without the +eval feature.
    Solution:   Add #ifdef. (closes #9025)
    Files:      src/errors.h

    Patch 8.2.3547
    Problem:    Opening the quickfix window triggers BufWinEnter twice. (Yorick
                Peterse)
    Solution:   Only trigger BufWinEnter with "quickfix". (closes #9022)
    Files:      src/ex_cmds.c, src/vim.h, src/quickfix.c, src/buffer.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.3548
    Problem:    GTK GUI crashes when reading from stdin.
    Solution:   Do not overwrite the NUL after the string. (closes #9028)
    Files:      src/gui_gtk_x11.c, src/testdir/test_gui.vim

    Patch 8.2.3549
    Problem:    Mistakes in test comments.
    Solution:   Fix the comments. (closes #9029)
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.3550
    Problem:    completion() does not work properly.
    Solution:   Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
                closes #9016)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3551
    Problem:    Checking first character of url twice.
    Solution:   Only check once. (closes #9026)
    Files:      src/misc1.c

    Patch 8.2.3552
    Problem:    Xxd revert does not handle end of line correctly.
    Solution:   Check for newline first. (closes #9034)
    Files:      src/xxd/xxd.c, src/testdir/test_xxd.vim

    Patch 8.2.3553 (after 8.2.3552)
    Problem:    Xxd test fails on MS-Windows.
    Solution:   Split shell command in two.
    Files:      src/testdir/test_xxd.vim

    Patch 8.2.3554
    Problem:    Xxd has various way to exit.
    Solution:   Add function to print error and exit. (closes #9035)
    Files:      src/xxd/xxd.c

    Patch 8.2.3555
    Problem:    ModeChanged is not triggered on every mode change.
    Solution:   Also trigger on minor mode changes. (Maguns Gross, closes #8999)
    Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/insexpand.c,
                src/misc1.c, src/normal.c, src/terminal.c,
                src/testdir/test_edit.vim

    Patch 8.2.3556
    Problem:    Filler lines are incorrect for other window in diff mode after
                making a change.
    Solution:   Copy filler lines from the current window. (closes #8809)
    Files:      src/diff.c, src/testdir/test_diffmode.vim,
                src/testdir/dumps/Test_diff_scroll_change_03.dump

    Patch 8.2.3557
    Problem:    Vim9: cannot call imported funcref at script level.
    Solution:   Check for an imported function. (closes #9007)
    Files:      src/userfunc.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3558 (after 8.2.3557)
    Problem:    Vim9: asserting the wrong variable.
    Solution:   Don't use Foo, use Goo.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3559
    Problem:    Loop variable recreated every time.
    Solution:   Keep the loop variable when looping.
    Files:      src/ex_eval.c

    Patch 8.2.3560
    Problem:    Using freed memory with lambda.
    Solution:   Do not free lines early, keep them until the expression is
                finished. (closes #9020)
    Files:      src/eval.c, src/proto/eval.pro, src/userfunc.c, src/vim9compile.c,
                src/structs.h, src/globals.h, src/testdir/test_vim9_func.vim

    Patch 8.2.3561
    Problem:    Cscope has a complicated way of giving an error message.
    Solution:   Use semsg(). (James McCoy, closes #9038)
    Files:      src/if_cscope.c

    Patch 8.2.3562
    Problem:    Cannot add color names.
    Solution:   Add the v:colornames dictionary. (Drew Vogel, closes #8761)
    Files:      Filelist, READMEdir/README_extra.txt, nsis/gvim.nsi,
                runtime/colors/README.txt, runtime/colors/lists/csscolors.vim,
                runtime/colors/lists/default.vim, runtime/doc/eval.txt,
                runtime/doc/gui_w32.txt, runtime/doc/message.txt,
                runtime/doc/os_haiku.txt, runtime/doc/syntax.txt,
                runtime/doc/usr_06.txt, src/Makefile, src/evalvars.c,
                src/gui_haiku.cc, src/highlight.c, src/gui.c, src/job.c,
                src/proto/highlight.pro, src/proto/term.pro, src/term.c,
                src/vim.h, src/globals.h, src/errors.h,
                src/testdir/test_highlight.vim

    Patch 8.2.3563 (after 8.2.3562)
    Problem:    Build failure with +eval but without GUI or +termguicolors
    Solution:   Adjust #ifdef. (John Marriott)
    Files:      src/highlight.c

    Patch 8.2.3564
    Problem:    Invalid memory access when scrolling without a valid screen.
    Solution:   Do not set VALID_BOTLINE in w_valid.
    Files:      src/move.c, src/testdir/test_normal.vim

    Patch 8.2.3565
    Problem:    Makefile dependencies are outdated. (Gary Johnson)
    Solution:   Run "make depend" and add missing dependencies.
    Files:      src/Makefile

    Patch 8.2.3566
    Problem:    Build failure on old systems when using nano timestamp.
    Solution:   Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary
                Johnson, closes #9054)
    Files:      src/vim.h

    Patch 8.2.3567
    Problem:    CTRL-I in Insert mode is not tested
    Solution:   Add a test case. (Dominique Pellé, closes #8866)
    Files:      src/testdir/test_edit.vim

    Patch 8.2.3568
    Problem:    Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter)
    Solution:   Run the test only with GTK. (Dominique Pellé, closes #9069)
    Files:      src/testdir/test_edit.vim

    Patch 8.2.3569
    Problem:    Error for :let when vimrc is Vim 9 script.
    Solution:   Prepend :legacy in the code for converting arguments. (Christian
                Brabandt, closes #9068, closes #9077)
    Files:      src/os_win32.c

    Patch 8.2.3570
    Problem:    Test_very_large_count fails on 32bit systems.
    Solution:   Bail out when using 32 bit numbers. (closes #9072)
    Files:      src/testdir/test_put.vim

    Patch 8.2.3571
    Problem:    Some unicode control characters are considered printable.
    Solution:   Make 0x2060 - 0x2069 not printable.
    Files:      src/mbyte.c

    Patch 8.2.3572
    Problem:    Memory leak when closing window and using "multispace" in
                'listchars'.
    Solution:   Free the memory. (closes #9071)
    Files:      src/window.c, src/testdir/test_listchars.vim

    Patch 8.2.3573
    Problem:    Cannot decide whether to skip test that fails with 64 bit ints.
                (closes #9072)
    Solution:   Add v:sizeofint, v:sizeoflong and v:sizeofpointer.  Improve the
                check for multiply overflow.
    Files:      runtime/doc/eval.txt, src/vim.h, src/evalvars.c, src/register.c,
                src/testdir/test_put.vim

    Patch 8.2.3574 (after 8.2.3573)
    Problem:    Divide by zero.
    Solution:   Don't check for overflow if multiplicand is zero.
    Files:      src/register.c

    Patch 8.2.3575 (after 8.2.3574)
    Problem:    Overflow check still fails when sizeof(int) == sizeof(long).
    Solution:   Use a float to check the result.
    Files:      src/register.c

    Patch 8.2.3576
    Problem:    Some functions are not documented for use with a method.
    Solution:   Add examples.  Fix that sign_unplacelist() only takes one
                argument. (Sean Dewar, closes #9081)
    Files:      src/evalfunc.c, runtime/doc/eval.txt

    Patch 8.2.3577 (after 8.2.3574)
    Problem:    Overflow check fails with 32 bit ints.
    Solution:   Only test with 64 bit ints.
    Files:      src/testdir/test_put.vim

    Patch 8.2.3578
    Problem:    Manipulating highlighting is complicated.
    Solution:   Add the hlget() and hlset() functions. (Yegappan Lakshmanan,
                closes #9039)
    Files:      runtime/doc/eval.txt, runtime/doc/syntax.txt,
                runtime/doc/usr_41.txt, runtime/doc/windows.txt, src/evalfunc.c,
                src/highlight.c, src/proto/highlight.pro,
                src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3579
    Problem:    CI sometimes fails for MinGW.
    Solution:   Use backslashes in HandleSwapExists(). (Christian Brabandt,
                closes #9078)
    Files:      src/testdir/runtest.vim

    Patch 8.2.3580
    Problem:    gj does not move properly with a wide character.
    Solution:   Move one to the right. (Christian Brabandt, closes #8702)
    Files:      src/normal.c, src/testdir/test_normal.vim

    Patch 8.2.3581
    Problem:    Reading character past end of line.
    Solution:   Correct the cursor column.
    Files:      src/ex_docmd.c, src/testdir/test_put.vim

    Patch 8.2.3582
    Problem:    Reading uninitialized memory when giving spell suggestions.
    Solution:   Check that preword is not empty.
    Files:      src/spellsuggest.c, src/testdir/test_spell.vim

    Patch 8.2.3583
    Problem:    The "gd" and "gD" commands do not update search stats. (Gary
                Johnson)
    Solution:   Clear search stats.
    Files:      src/normal.c, src/testdir/test_search_stat.vim,
                src/testdir/dumps/Test_searchstatgd_1.dump,
                src/testdir/dumps/Test_searchstatgd_2.dump

    Patch 8.2.3584
    Problem:    "verbose set efm" reports the location of the :compiler command.
                (Gary Johnson)
    Solution:   Add the "-keepscript" argument to :command and use it when
                defining CompilerSet.
    Files:      runtime/doc/map.txt, src/ex_cmds2.c, src/usercmd.c, src/ex_cmds.h,
                src/testdir/test_compiler.vim

    Patch 8.2.3585
    Problem:    Crash when passing float to "term_rows" in the options argument of
                term_start(). (Virginia Senioria)
    Solution:   Bail out if the argument is not a number. (closes #9116)
    Files:      src/job.c, src/terminal.c, src/testdir/test_terminal.vim

    Patch 8.2.3586 (after 8.2.3584)
    Problem:    Command completion test fails.
    Solution:   Add new argument to expected output
    Files:      src/testdir/test_usercommands.vim

    Patch 8.2.3587 (after 8.2.3584)
    Problem:    Compiler test fails with backslash file separator.
    Solution:   Accept slash and backslash.
    Files:      src/testdir/test_compiler.vim

    Patch 8.2.3588
    Problem:    Break statement is never reached.
    Solution:   Rely on return value of set_chars_option() not changing.
                (closes #9103)
    Files:      src/optionstr.c

    Patch 8.2.3589
    Problem:    Failure when the "term_rows" argument of term_start() is an
                unusual value.
    Solution:   Limit to range of zero to 1000. (closes #9116)
    Files:      runtime/doc/terminal.txt, src/job.c, src/testdir/test_terminal.vim

    Patch 8.2.3590
    Problem:    Test for v:colornames sometimes fails. (Dominique Pellé)
    Solution:   Check features.  Clear v:colornames between tests. (Drew Vogel,
                closes #9105, closes #9073)
    Files:      runtime/doc/eval.txt, src/highlight.c, src/proto/highlight.pro,
                src/testdir/test_highlight.vim

    Patch 8.2.3591
    Problem:    No event is triggered when closing a window.
    Solution:   Add the WinClosed event. (Naohiro Ono, closes #9110)
    Files:      runtime/doc/autocmd.txt, src/autocmd.c,
                src/testdir/test_autocmd.vim, src/vim.h, src/window.c

    Patch 8.2.3592
    Problem:    Test_hlset fails when terminal has many columns.
    Solution:   Set the number of columns to 80. (Dominique Pellé, closes #9101,
                closes #9100)
    Files:      src/testdir/test_highlight.vim

    Patch 8.2.3593
    Problem:    Directory is wrong after executing "lcd" with win_execute().
    Solution:   Correct the directory when going back to the original window.
                (closes #9132)
    Files:      src/evalwindow.c, src/window.c, src/proto/window.pro,
                src/testdir/test_execute_func.vim

    Patch 8.2.3594
    Problem:    Xxd code is a bit difficult to understand.
    Solution:   Move some lines to a separate function. (closes #9037)
    Files:      src/xxd/xxd.c

    Patch 8.2.3595
    Problem:    Check for signed overflow might not work everywhere.
    Solution:   Limit to 32 bit int. (closes #9043, closes #9067)
    Files:      src/getchar.c

    Patch 8.2.3596
    Problem:    Crash when using :pedit in Vim9 script.
    Solution:   Move check for arguments to after checking there are arguments.
                (Yegappan Lakshmanan, closes #9134, closes #9135)
    Files:      src/popupwin.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3597
    Problem:    Vim seems to hang when writing a very long text to a terminal
                window.
    Solution:   Limit the amount of text based on 'termwinscroll'. (issue #9080)
    Files:      runtime/doc/options.txt, src/terminal.c

    Patch 8.2.3598
    Problem:    RouterOS filetype is not recognized.
    Solution:   Add file and script patterns. (closes #9097)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3599
    Problem:    Not all gdbinit files are recognized.
    Solution:   Add "gdbinit". (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3600 (after 8.2.3598)
    Problem:    Filetype test fails.
    Solution:   Add missing change.
    Files:      runtime/scripts.vim

    Patch 8.2.3601
    Problem:    Check for overflow in put count does not work well.
    Solution:   Improve the overflow check. (Ozaki Kiichi, closes #9102)
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.3602
    Problem:    Python3 test fails with Python 3.10 on MS-Windows.
    Solution:   Adjust the expected error. (Ken Takata, closes #9118)
    Files:      src/testdir/test_python3.vim

    Patch 8.2.3603
    Problem:    Fish filetype not recognized.
    Solution:   Add a file pattern and match script line. (Doug Kearns)
    Files:      runtime/filetype.vim, runtime/scripts.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.3604
    Problem:    Not all sudoers files are recognized.
    Solution:   Add a file pattern. (Doug Kearns, closes #1192)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3605
    Problem:    Cannot clear and unlink a highlight group with hlset() in a
                single call.
    Solution:   Add the "force" option. (Yegappan Lakshmanan, closes #9117)
    Files:      runtime/doc/eval.txt, src/highlight.c,
                src/testdir/test_highlight.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3606
    Problem:    File missing from list of distributed files.
    Solution:   Add the file.
    Files:      Filelist

    Patch 8.2.3607
    Problem:    GTK3 screen updating is slow.
    Solution:   Remove some of the GTK3-specific code. (closes #9052)
    Files:      src/gui.h, src/gui_gtk_x11.c

    Patch 8.2.3608
    Problem:    Users who type "q:" instead of ":q" are confused.
    Solution:   Add an autocmd to give a message that explains this is the
                command-line window. (Egor Zvorykin, closes #9146)
    Files:      runtime/defaults.vim, src/testdir/test_autocmd.vim,
                src/testdir/test_cmdline.vim

    Patch 8.2.3609
    Problem:    Internal error when ModeChanged is triggered when v:event is
                already in use.
    Solution:   Save and restore v:event if needed.
    Files:      src/misc1.c, src/proto/misc1.pro, src/testdir/test_edit.vim,
                src/insexpand.c, src/structs.h, src/register.c

    Patch 8.2.3610
    Problem:    Crash when ModeChanged triggered too early.
    Solution:   Trigger ModeChanged after setting VIsual.
    Files:      src/normal.c, src/testdir/test_edit.vim

    Patch 8.2.3611
    Problem:    Crash when using CTRL-W f without finding a file name.
    Solution:   Bail out when the file name length is zero.
    Files:      src/findfile.c, src/normal.c, src/testdir/test_visual.vim

    Patch 8.2.3612
    Problem:    Using freed memory with regexp using a mark.
    Solution:   Get the line again after getting the mark position.
    Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.3613
    Problem:    :find test fails.
    Solution:   Put length check inside if block.
    Files:      src/findfile.c

    Patch 8.2.3614
    Problem:    zindex of popup windows not used when redrawing popup menu.
    Solution:   Check the zindex when redrawing the popup menu.  (closes #9129,
                closes #9089)
    Files:      src/popupmenu.c, src/popupwin.c, src/proto/popupmenu.pro,
                src/screen.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump,
                src/testdir/dumps/Test_popupwin_popupmenu_masking_2.dump

    Patch 8.2.3615
    Problem:    When re-formatting with an indent expression the first line of a
                paragraph may get the wrong indent. (Martin F. Krafft)
    Solution:   Apply the correct indenting function for the first line.
                (Christian Brabandt, closes #9150, closes #9056)
    Files:      src/textformat.c, src/testdir/test_indent.vim

    Patch 8.2.3616
    Problem:    Arglist test does not clear the argument list consistently.
    Solution:   Call Reset_arglist(). (Shougo Matsushita, closes #9154)
    Files:      src/testdir/test_arglist.vim

    Patch 8.2.3617
    Problem:    ":verbose pwd" does not mention 'autochdir' was applied.
    Solution:   Remember the last chdir was done by 'autochdir'.  (issue #9142)
    Files:      src/globals.h, src/buffer.c, src/ex_docmd.c, src/window.c,
                src/main.c, src/netbeans.c, src/os_win32.c,
                src/testdir/test_autochdir.vim

    Patch 8.2.3618
    Problem:    getcwd() is unclear about how 'autochdir' is used.
    Solution:   Update the help for getcwd().  Without any arguments always return
                the actual current directory. (closes #9142)
    Files:      runtime/doc/eval.txt, src/filepath.c, src/testdir/test_cd.vim

    Patch 8.2.3619
    Problem:    Cannot use a lambda for 'operatorfunc'.
    Solution:   Support using a lambda or partial. (Yegappan Lakshmanan,
                closes #8775)
    Files:      runtime/doc/map.txt, runtime/doc/options.txt, src/ops.c,
                src/option.c, src/optionstr.c, src/proto/ops.pro,
                src/proto/option.pro, src/quickfix.c, src/testdir/test_normal.vim

    Patch 8.2.3620
    Problem:    Memory leak reported in libtlib.
    Solution:   Call del_curterm() when cleaning up memory.  Rename term.h to
                termdefs.h to avoid a name clash.
    Files:      src/term.c, src/proto/term.pro, src/alloc.c, src/configure.ac,
                src/auto/configure, src/config.h.in, src/Makefile,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
                src/term.h, src/termdefs.h

    Patch 8.2.3621 (after 8.2.3620)
    Problem:    Build failure.
    Solution:   Add missing change.
    Files:      src/vim.h

    Patch 8.2.3622
    Problem:    "verbose pwd" shows confusing info when :lcd does not change
                directory.
    Solution:   Clear last_chdir_reason also when the directory does not change.
                (closes #9160)
    Files:      src/ex_docmd.c, src/testdir/test_autochdir.vim

    Patch 8.2.3623
    Problem:    "$*" is expanded to "nonomatch".
    Solution:   Only add "set nonomatch" when using a csh-like shell. (Christian
                Brabandt, closes #9159, closes #9153)
    Files:      src/os_unix.c, src/testdir/test_expand.vim

    Patch 8.2.3624
    Problem:    When renaming a terminal buffer the status text is not updated.
    Solution:   Clear the cached status text when renaming a terminal buffer.
                (closes #9162)
    Files:      src/buffer.c, src/terminal.c, src/proto/terminal.pro,
                src/testdir/test_terminal.vim

    Patch 8.2.3625
    Problem:    Illegal memory access when C-indenting.
    Solution:   Also set the cursor column.
    Files:      src/cindent.c, src/testdir/test_cindent.vim

    Patch 8.2.3626
    Problem:    "au!" and "au! event" cannot be followed by another command as
                documented.
    Solution:   When a bar is found set nextcmd.
    Files:      src/autocmd.c, src/testdir/test_autocmd.vim

    Patch 8.2.3627
    Problem:    difficult to know where the text starts in a window. (Sergey
                Vlasov)
    Solution:   Add the "textoff" entry in the result of getwininfo().
                (closes #9163)
    Files:      runtime/doc/eval.txt, src/evalwindow.c,
                src/testdir/test_bufwintabinfo.vim

    Patch 8.2.3628
    Problem:    Looking up terminal colors is a bit slow.
    Solution:   Cache the terminal colors. (closes #9130, closes #9058)
    Files:      src/highlight.c, src/libvterm/include/vterm.h, src/option.c,
                src/optionstr.c, src/popupwin.c, src/proto/terminal.pro,
                src/structs.h, src/terminal.c, src/window.c,
                src/testdir/test_terminal3.vim,
                src/testdir/dumps/Test_terminal_color_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_color_MyTermCol_over_Terminal.dump,
                src/testdir/dumps/Test_terminal_color_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_color_MyWinCol_over_group.dump,
                src/testdir/dumps/Test_terminal_color_Terminal.dump,
                src/testdir/dumps/Test_terminal_color_gui_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_color_gui_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_color_gui_Terminal.dump,
                src/testdir/dumps/Test_terminal_color_gui_transp_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_color_gui_transp_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_color_gui_transp_Terminal.dump,
                src/testdir/dumps/Test_terminal_color_transp_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_color_transp_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_color_transp_Terminal.dump,
                src/testdir/dumps/Test_terminal_popup_MyPopupHlCol.dump,
                src/testdir/dumps/Test_terminal_popup_MyTermCol_over_Terminal.dump,
                src/testdir/dumps/Test_terminal_popup_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_popup_MyWinCol_over_group.dump,
                src/testdir/dumps/Test_terminal_popup_gui_MyPopupHlCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_Terminal.dump,
                src/testdir/dumps/Test_terminal_popup_gui_transp_MyPopupHlCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_transp_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_transp_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_popup_gui_transp_Terminal.dump,
                src/testdir/dumps/Test_terminal_popup_transp_MyPopupHlCol.dump,
                src/testdir/dumps/Test_terminal_popup_transp_MyTermCol.dump,
                src/testdir/dumps/Test_terminal_popup_transp_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_popup_transp_Terminal.dump,
                src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump,
                src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump

    Patch 8.2.3629
    Problem:    Command completion in cmdline window uses global user commands,
                not local commands for the window where it was opened from.
    Solution:   Use local commands. (closes #9168)
    Files:      src/ex_getln.c, src/proto/ex_getln.pro, src/evalvars.c,
                src/usercmd.c, src/testdir/test_ins_complete.vim

    Patch 8.2.3630
    Problem:    Printf() with %S does not handle multi-byte correctly.
    Solution:   Count cells instead of bytes. (closes #9169, closes #7486)
    Files:      src/strings.c, src/testdir/test_expr.vim

    Patch 8.2.3631
    Problem:    "syntax enable" does not work properly in Vim9 context.
    Solution:   Also handle Vim9 context. (closes #9161)
    Files:      src/syntax.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3632
    Problem:    GTK3: undercurl does not get removed properly.
    Solution:   Set the cairo cursor first. (closes #9170)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.3633
    Problem:    Vim9: line number of lambda is off by one.
    Solution:   Add one to the line number. (closes #9083)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3634
    Problem:    Error for already defined function uses wrong line number.
    Solution:   Set SOURCING_LNUM before giving the error message. (closes #9085)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3635
    Problem:    GTK: composing underline does not show.
    Solution:   Include composing character in pango call. A few more
                optimizations for ligatures.  (Dusan Popovic, closes #9171,
                closes #9147)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.3636
    Problem:    Coverity warns for unreachable code.
    Solution:   Remove unreachable else block.
    Files:      src/gui_gtk_x11.c

    Patch 8.2.3637
    Problem:    Typos in test files.
    Solution:   Correct the typos. (Dominique Pellé, closes #9175)
    Files:      src/testdir/runtest.vim, src/testdir/test_debugger.vim,
                src/testdir/test_diffmode.vim, src/testdir/test_edit.vim,
                src/testdir/test_excmd.vim, src/testdir/test_flatten.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim,
                src/testdir/test_options.vim, src/testdir/test_python2.vim,
                src/testdir/test_python3.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_recover.vim, src/testdir/test_spellfile.vim,
                src/testdir/test_syntax.vim, src/testdir/test_termcodes.vim,
                src/testdir/test_textobjects.vim, src/testdir/test_trycatch.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_viminfo.vim

    Patch 8.2.3638
    Problem:    getcompletion() always passes zero as position to custom
                completion function.
    Solution:   Pass the pattern length. (closes #9173)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.3639 (after 8.2.2922)
    Problem:    Line commented out accidentally.
    Solution:   Uncomment. (Volodymyr Kot, closes #9172)
    Files:      src/main.c

    Patch 8.2.3640
    Problem:    Freeze when calling term_wait() in a close callback.
    Solution:   Set a "closing" flag to tell term_wait() to return. (closes #9152)
    Files:      src/channel.c, src/terminal.c, src/proto/terminal.pro,
                src/testdir/test_terminal.vim

    Patch 8.2.3641
    Problem:    Xxd code has duplicate expressions.
    Solution:   Refactor to avoid duplication. (closes #9185)
    Files:      src/xxd/xxd.c

    Patch 8.2.3642
    Problem:    List of distributed files is outdated.
    Solution:   Rename term.h to termdefs.h.
    Files:      Filelist

    Patch 8.2.3643
    Problem:    Header for source file is outdated.
    Solution:   Make the header more accurate. (closes #9186)
    Files:      src/map.c, src/getchar.c

    Patch 8.2.3644
    Problem:    Count for 'operatorfunc' in Visual mode is not redone.
    Solution:   Add the count to the redo buffer. (closes #9174)
    Files:      src/normal.c, src/proto/normal.pro, src/ops.c,
                src/testdir/test_normal.vim

    Patch 8.2.3645
    Problem:    Vim9: The "no effect" error is not given for all registers.
    Solution:   Include any character following '@'. (closes #8779)
    Files:      src/ex_eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3646
    Problem:    Using <sfile> in a function gives an unexpected result.
    Solution:   Give an error in a Vim9 function. (issue #9189)
    Files:      src/scriptfile.c, src/errors.h, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3647
    Problem:    GTK: when using ligatures the cursor is drawn wrong.
    Solution:   Clear more characters when ligatures are used. (Dusan Popovic,
                closes #9190)
    Files:      src/gui.c

    Patch 8.2.3648
    Problem:    "verbose pwd" is incorrect after dropping files on Vim.
    Solution:   Set the chdir reason to "drop".
    Files:      src/gui.c

    Patch 8.2.3649
    Problem:    Vim9: error for variable declared in while loop.
    Solution:   Do not keep the first variable. (closes #9191)
    Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3650
    Problem:    Vim9: for loop variable can be a list member.
    Solution:   Check for valid variable name. (closes #9179)
    Files:      src/vim9compile.c, src/dict.c, src/eval.c, src/evalvars.c,
                src/proto/evalvars.pro, src/testdir/test_vim9_script.vim

    Patch 8.2.3651
    Problem:    Vim9: no error for :lock or :unlock with unknown variable.
    Solution:   Give an error. (closes #9188)
    Files:      src/evalvars.c, src/errors.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3652
    Problem:    Can only get text properties one line at a time.
    Solution:   Add options to prop_list() to use a range of lines and filter by
                types. (Yegappan Lakshmanan, closes #9138)
    Files:      runtime/doc/textprop.txt, src/textprop.c,
                src/testdir/test_textprop.vim

    Patch 8.2.3653
    Problem:    Terminal ANSI colors may be wrong.
    Solution:   Initialize the color type. (closes #9198, closes #9197)
    Files:      src/terminal.c

    Patch 8.2.3654
    Problem:    GTK: a touch-drag does not update the selection.
    Solution:   Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196,
                closes #9194)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.3655
    Problem:    Compiler warning for using size_t for int.
    Solution:   Add a type cast. (Mike Williams, closes #9199)
    Files:      src/vim9compile.c

    Patch 8.2.3656
    Problem:    Vim9: no error for an environment variable by itself.
    Solution:   Give a "without effect" error. (closes #9166)
    Files:      src/ex_eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3657
    Problem:    Vim9: debug text misses one line of return statement.
    Solution:   Add a line when not at a debug instruction. (closes #9137)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.3658
    Problem:    Duplicate code in xxd.
    Solution:   Merge duplicated code. Add more tests. (closes #9192)
    Files:      src/xxd/xxd.c, src/testdir/test_xxd.vim

    Patch 8.2.3659
    Problem:    Integer overflow with large line number.
    Solution:   Check for overflow. (closes #9202)
    Files:      src/errors.h, src/ex_docmd.c, src/testdir/test_excmd.vim
                src/normal.c, src/testdir/test_normal.vim

    Patch 8.2.3660 (after 8.2.3659)
    Problem:    Overflow check uses wrong number.
    Solution:   Divide by ten.
    Files:      src/normal.c

    Patch 8.2.3661 (after 8.2.3659)
    Problem:    Test for put with large count fails.
    Solution:   Adjust the counts in the test.
    Files:      src/testdir/test_put.vim

    Patch 8.2.3662
    Problem:    Illegal memory access if malloc() fails.
    Solution:   Check 'foldmethod' is not empty. (closes #9207)
    Files:      src/fold.c

    Patch 8.2.3663
    Problem:    Using %S in printf() does not work correctly.
    Solution:   Fix the problem and add more tests. (closes #9208)
    Files:      src/strings.c, src/testdir/test_expr.vim

    Patch 8.2.3664
    Problem:    Cannot adjust sign highlighting for 'cursorline'.
    Solution:   Add CursorLineSign and CursorLineFold highlight groups.
                (Gregory Anders, closes #9201)
    Files:      runtime/doc/sign.txt, runtime/doc/syntax.txt, src/drawline.c,
                src/highlight.c, src/optiondefs.h, src/popupwin.c,
                src/proto/sign.pro, src/sign.c, src/structs.h, src/vim.h,
                src/testdir/test_signs.vim

    Patch 8.2.3665
    Problem:    Cannot use a lambda for 'tagfunc'.
    Solution:   Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204)
    Files:      runtime/doc/options.txt, src/buffer.c, src/option.c,
                src/optionstr.c, src/proto/tag.pro, src/structs.h, src/tag.c,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3666
    Problem:    Libvterm is outdated.
    Solution:   Include patches from revision 769 to revision 789.
    Files:      Filelist, src/libvterm/Makefile, src/libvterm/doc/seqs.txt,
                src/libvterm/include/vterm.h, src/libvterm/src/mouse.c,
                src/libvterm/src/parser.c, src/libvterm/src/state.c,
                src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
                src/libvterm/t/02parser.test, src/libvterm/t/17state_mouse.test,
                src/libvterm/t/29state_fallback.test,
                src/libvterm/t/40state_selection.test, src/libvterm/t/harness.c,
                src/libvterm/t/run-test.pl, src/libvterm/vterm.pc.in,
                src/terminal.c

    Patch 8.2.3667
    Problem:    Building libvterm fails with MSVC.
    Solution:   Don't use C99 construct.
    Files:      src/libvterm/src/state.c

    Patch 8.2.3668
    Problem:    Messages may be corrupted.
    Solution:   Use another buffer instead of IObuff. (Yegappan Lakshmanan,
                closes #9195)
    Files:      src/highlight.c, src/testdir/test_highlight.vim

    Patch 8.2.3669
    Problem:    Buffer overflow with long help argument.
    Solution:   Use snprintf().
    Files:      src/help.c, src/testdir/test_help.vim

    Patch 8.2.3670
    Problem:    Error checks repeated several times.
    Solution:   Move the checks to functions. (closes #9213)
    Files:      src/xxd/xxd.c

    Patch 8.2.3671
    Problem:    Restarting Insert mode in prompt buffer too often when a callback
                switches windows and comes back. (Sean Dewar)
    Solution:   Do not set "restart_edit" when already in Insert mode.
                (closes #9212)
    Files:      src/window.c, src/testdir/test_prompt_buffer.vim

    Patch 8.2.3672 (after 8.2.3670)
    Problem:    Build failure with unsigned char.
    Solution:   Use int instead of char.
    Files:      src/xxd/xxd.c

    Patch 8.2.3673
    Problem:    Crash when allocating signal stack fails.
    Solution:   Only using sourcing info when available. (closes #9215)
    Files:      src/globals.h, src/message.c

    Patch 8.2.3674
    Problem:    When ml_get_buf() fails it messes up IObuff.
    Solution:   Return a local pointer. (closes #9214)
    Files:      src/memline.c

    Patch 8.2.3675
    Problem:    Using freed memory when vim_strsave() fails.
    Solution:   Clear "last_sourcing_name".  Check for msg_source() called
                recursively. (closes #8217)
    Files:      src/message.c

    Patch 8.2.3676
    Problem:    Unused runtime file.
    Solution:   Remove rgb.txt.
    Files:      runtime/rgb.txt

    Patch 8.2.3677
    Problem:    After a put the '] mark is on the last byte of a multi-byte
                character.
    Solution:   Move it to the first byte. (closes #9047)
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.3678 (after 8.2.3677)
    Problem:    Illegal memory access.
    Solution:   Ignore changed indent when computing byte offset.
    Files:      src/register.c

    Patch 8.2.3679
    Problem:    objc file detected as Octave. (Antony Lee)
    Solution:   Detect objc by preprocessor lines. (Doug Kearns, closes #9223,
                closes #9220)
    Files:      runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim

    Patch 8.2.3680
    Problem:    Repeated code in xxd.
    Solution:   Change exit_on_ferror() to getc_or_die(). (closes #9226)
    Files:      src/xxd/xxd.c

    Patch 8.2.3681
    Problem:    Cannot drag popup window after click on a status line. (Sergey
                Vlasov)
    Solution:   Reset on_status_line. (closes #9221)
    Files:      src/mouse.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_drag_04.dump

    Patch 8.2.3682
    Problem:    Vim9: assigning to a script variable drops the required type.
    Solution:   Lookup the type of the variable and use it. (closes #9219)
    Files:      src/evalvars.c, src/vim9script.c, src/proto/vim9script.pro,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3683
    Problem:    Vim9: cannot use `=expr` in :...do commands.
    Solution:   Add EX_EXPAND to the commands. (closes #9232)
    Files:      src/ex_cmds.h, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3684
    Problem:    Blockwise insert does not handle autoindent properly.
    Solution:   Adjust text column for indent. (closes #9229)
    Files:      src/ops.c, src/testdir/test_blockedit.vim

    Patch 8.2.3685
    Problem:    Visual Studio project files are not recognized.
    Solution:   Use the xml file type. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3686
    Problem:    Filetype detection often mixes up Forth and F#.
    Solution:   Add a function to inspect the file contents. (Doug Kearns)
    Files:      runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt,
                runtime/doc/syntax.txt, runtime/filetype.vim, runtime/scripts.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.3687
    Problem:    Blockwise insert does not handle autoindent properly when tab is
                inserted.
    Solution:   Adjust text column for indent before computing column.
                (closes #9229)
    Files:      src/ops.c, src/testdir/test_blockedit.vim

    Patch 8.2.3688
    Problem:    The window title is not updated when dragging the scrollbar.
    Solution:   Call maketitle(). (Christian Brabandt, closes #9238, closes #5383)
    Files:      src/gui.c

    Patch 8.2.3689
    Problem:    ex_let_one() is too long.
    Solution:   Split into multiple functions.
    Files:      src/evalvars.c

    Patch 8.2.3690
    Problem:    Vim9: "filter #pat# cmd" does not work.
    Solution:   Do not see #pat# as a comment.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3691
    Problem:    Build failure with small features.
    Solution:   Add #ifdef. (Dominique Pellé)
    Files:      src/gui.c

    Patch 8.2.3692
    Problem:    Vim9: cannot use :func inside a :def function.
    Solution:   Make it work.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/errors.h,
                src/structs.h, src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3693
    Problem:    Coverity warns for possibly using a NULL pointer.
    Solution:   Check for NULL and give an error.
    Files:      src/vim9execute.c, src/errors.h

    Patch 8.2.3694
    Problem:    Cannot use quotes in the count of an Ex command.
    Solution:   Add getdigits_quoted().  Give an error when misplacing a quote in
                a range. (closes #9240)
    Files:      src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
                src/testdir/test_usercommands.vim

    Patch 8.2.3695
    Problem:    Confusing error for missing key.
    Solution:   Use the actual key for the error. (closes #9241)
    Files:      src/eval.c, src/testdir/test_listdict.vim

    Patch 8.2.3696
    Problem:    Vim9: error for invalid assignment when skipping.
    Solution:   Do not check white space when skipping. (closes #9243)
    Files:      src/evalvars.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3697
    Problem:    Cannot drag a popup without a border.
    Solution:   Add the "dragall" option. (closes #9218)
    Files:      runtime/doc/popup.txt, src/mouse.c, src/popupwin.c, src/vim.h,
                src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_drag_05.dump,
                src/testdir/dumps/Test_popupwin_drag_06.dump

    Patch 8.2.3698
    Problem:    Match highlighting continues over breakindent.
    Solution:   Stop before the end column. (closes #9242)
    Files:      src/match.c, src/proto/match.pro, src/drawline.c,
                src/testdir/test_match.vim,
                src/testdir/dumps/Test_match_linebreak.dump

    Patch 8.2.3699
    Problem:    The +title feature adds a lot of #ifdef but little code.
    Solution:   Graduate the +title feature.
    Files:      src/feature.h, src/alloc.c, src/arglist.c, src/autocmd.c,
                src/buffer.c, src/bufwrite.c, src/change.c, src/drawscreen.c,
                src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui.c,
                src/gui_gtk_x11.c, src/if_xcmdsrv.c, src/locale.c, src/main.c,
                src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c,
                src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c,
                src/regexp.c, src/term.c, src/ui.c, src/version.c, src/window.c,
                src/globals.h, src/option.h, src/optiondefs.h,
                runtime/doc/options.txt, runtime/doc/various.txt

    Patch 8.2.3700
    Problem:    Text property highlighting continues over breakindent.
    Solution:   Stop before the end column. (closes #9242)
    Files:      src/drawline.c, src/testdir/test_textprop.vim,
                src/testdir/dumps/Test_prop_linebreak.dump

    Patch 8.2.3701
    Problem:    Vim9: invalid LHS is not possible.
    Solution:   Remove unreachable error message.
    Files:      src/vim9compile.c

    Patch 8.2.3702
    Problem:    First key in dict is seen as curly expression and fails.
    Solution:   Ignore failure of curly expression. (closes #9247)
    Files:      src/typval.c, src/dict.c, src/testdir/test_listdict.vim

    Patch 8.2.3703 (after 8.2.3686)
    Problem:    Most people call F# "fsharp" and not "fs".
    Solution:   Rename filetype "fs" to "fsharp".
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.3704
    Problem:    Vim9: cannot use a list declaration in a :def function.
    Solution:   Make it work.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c, src/errors.h,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3705
    Problem:    Cannot pass a lambda name to function() or funcref(). (Yegappan
                Lakshmanan)
    Solution:   Handle a lambda name differently.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
                src/testdir/test_expr.vim

    Patch 8.2.3706 (after 8.2.3700)
    Problem:    Text property highlighting is used on Tab.
    Solution:   Only set in_linebreak when not on a Tab. (closes #9242)
    Files:      src/drawline.c, src/testdir/test_textprop.vim,
                src/testdir/dumps/Test_prop_after_tab.dump

    Patch 8.2.3707
    Problem:    Vim9: constant expression of elseif not recognized.
    Solution:   Set instruction count before generating the expression.
    Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3708 (after 8.2.3707)
    Problem:    Vim9: test fails with different error.
    Solution:   Correct the error number.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.3709
    Problem:    Vim9: backtick expression expanded when not desired.
    Solution:   Only expand a backtick expression for commands that expand their
                argument.  Remove a few outdated TODO comments.
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3710
    Problem:    Vim9: backtick expression expanded for :global.
    Solution:   Check the following command.
    Files:      runtime/doc/vim9.txt, src/vim9compile.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3711
    Problem:    Vim9: memory leak when compiling :elseif fails.
    Solution:   Cleanup ppconst.
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3712
    Problem:    Cannot use Vim9 lambda for 'tagfunc'.
    Solution:   Make it work, add more tests. (Yegappan Lakshmanan, closes #9250)
    Files:      runtime/doc/options.txt, src/insexpand.c, src/option.c,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3713
    Problem:    MS-Windows: No error message if vimgrep pattern is not matching.
    Solution:   Give an error message. (Christian Brabandt, closes #9245,
                closes #8762)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.3714
    Problem:    Some unused assignments and ugly code in xxd.
    Solution:   Leave out assignments.  Use marcro for fprintf(). (closes #9246)
    Files:      src/xxd/xxd.c

    Patch 8.2.3715
    Problem:    Vim9: valgrind reports spurious problems for a test.
    Solution:   Move the test to the set that is known to fail.
    Files:      src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_fails.vim

    Patch 8.2.3716
    Problem:    Vim9: range without a command is not compiled.
    Solution:   Add the ISN_EXECRANGE byte code.
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim9compile.c,
                src/vim9execute.c, src/vim9.h,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3717
    Problem:    Vim9: error for constant list size is only given at runtime.
    Solution:   Give the error at compile time if possible.
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3718
    Problem:    Compiler warns for unused variable without the +textprop feature.
                (John Marriott)
    Solution:   Adjust #ifdefs.
    Files:      src/drawline.c

    Patch 8.2.3719
    Problem:    MS-Windows: test sometimes runs into existing swap file.
    Solution:   Use a different file name.
    Files:      src/testdir/test_buffer.vim

    Patch 8.2.3720
    Problem:    Vim9: Internal error when invoking closure in legacy context.
    Solution:   Give a more appropriate error message. (closes #9251)
    Files:      src/errors.h, src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3721
    Problem:    Using memory freed by losing the clipboard selection. (Dominique
                Pellé)
    Solution:   Check y_array is still valid after calling changed_lines().
                (closes #9253)
    Files:      src/errors.h, src/register.c

    Patch 8.2.3722
    Problem:    Amiga: superfluous messages for freeing lots of yanked text.
    Solution:   Assume that the machine isn't that slow these days.
    Files:      src/register.c

    Patch 8.2.3723
    Problem:    When using 'linebreak' a text property starts too early.
    Solution:   Decrement "bcol" when looking for property start. (closes #9242)
    Files:      src/drawline.c, src/testdir/test_textprop.vim,
                src/testdir/dumps/Test_prop_after_linebreak.dump

    Patch 8.2.3724
    Problem:    Build error for missing error message in small build.
    Solution:   Correct #ifdef.
    Files:      src/errors.h

    Patch 8.2.3725
    Problem:    Cannot use a lambda for 'completefunc' and 'omnifunc'.
    Solution:   Implement lambda support. (Yegappan Lakshmanan, closes #9257)
    Files:      runtime/doc/options.txt, src/buffer.c, src/insexpand.c,
                src/option.c, src/optionstr.c, src/proto/insexpand.pro,
                src/proto/tag.pro, src/proto/userfunc.pro, src/structs.h,
                src/tag.c, src/userfunc.c, src/testdir/test_ins_complete.vim,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3726
    Problem:    README file in a config directory gets wrong filetype.
    Solution:   Match README before patterns that match everything in a directory.
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3727
    Problem:    In a gnome terminal keys are recognized as mouse events.
    Solution:   Only recognize DEC mouse events when four numbers are following.
                (closes #9256)
    Files:      src/term.c, src/testdir/test_termcodes.vim

    Patch 8.2.3728
    Problem:    Internal error when passing range() to list2blob().
    Solution:   Materialize the list first. (closes #9262)
    Files:      src/blob.c, src/testdir/test_blob.vim

    Patch 8.2.3729
    Problem:    No support for squirrels.
    Solution:   Recognize nuts. (closes #9259)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3730
    Problem:    "/etc/Muttrc.d/README" gets filetype muttrc.
    Solution:   Move the Muttrc.d pattern down, add exception for *.rc files.
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3731
    Problem:    "set! termcap" shows codes in one column, but not keys.
    Solution:   Also use one column for keys. (closes #9258)
    Files:      src/option.c, src/term.c, src/proto/term.pro,
                src/testdir/test_set.vim

    Patch 8.2.3732 (after 8.2.3731)
    Problem:    "set! termcap" test fails.
    Solution:   Account for keys without a t_xx entry.
    Files:      src/testdir/test_set.vim

    Patch 8.2.3733
    Problem:    Vim9: using "legacy" before range does not work.
    Solution:   Skip over range before parsing command. (closes #9270)
    Files:      src/vim9compile.c, src/usercmd.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.3734
    Problem:    Vim9: crash when no pattern match found.
    Solution:   Check for error.
    Files:      src/vim9execute.c

    Patch 8.2.3735
    Problem:    Cannot use a lambda for 'imactivatefunc'.
    Solution:   Add lambda support for 'imactivatefunc' and 'imstatusfunc'.
                (Yegappan Lakshmanan, closes #9275)
    Files:      runtime/doc/options.txt, src/alloc.c, src/gui_xim.c,
                src/optionstr.c, src/proto/gui_xim.pro,
                src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim

    Patch 8.2.3736
    Problem:    Test fails without the channel feature. (Dominique Pellé)
    Solution:   Source the check.vim script. (closes #9277)
    Files:      src/testdir/test_vim9_fails.vim

    Patch 8.2.3737
    Problem:    Test fails without the 'autochdir' option.
    Solution:   Check that the option is available. (Dominique Pellé, closes #9272)
    Files:      src/testdir/test_cd.vim

    Patch 8.2.3738
    Problem:    Screen is cleared when a FocusLost autocommand triggers.
    Solution:   Do not redraw when at the hit-enter or more prompt. (closes #9274)
    Files:      src/misc1.c

    Patch 8.2.3739
    Problem:    In wrong directory when using win_execute() with 'acd' set.
    Solution:   Restore the directory when returning to the window. (closes #9276)
    Files:      src/window.c, src/testdir/test_autochdir.vim

    Patch 8.2.3740
    Problem:    Memory left allocated on exit when using Tcl.
    Solution:   Call Tcl_Finalize().
    Files:      src/if_tcl.c, src/proto/if_tcl.pro, src/alloc.c

    Patch 8.2.3741
    Problem:    Using freed memory in open command.
    Solution:   Make a copy of the current line.
    Files:      src/ex_docmd.c, src/testdir/test_ex_mode.vim

    Patch 8.2.3742
    Problem:    Dec mouse test fails without gnome terminfo entry.
    Solution:   Check if there is a gnome entry. Also fix 'acd' test on
                MS-Windows. (Ozaki Kiichi, closes #9282)
    Files:      src/testdir/test_termcodes.vim, src/testdir/test_autochdir.vim

    Patch 8.2.3743
    Problem:    ":sign" can add a highlight group without a name.
    Solution:   Give an error if the group name is missing. (closes #9280)
    Files:      src/sign.c, src/errors.h, src/testdir/test_signs.vim

    Patch 8.2.3744
    Problem:    E854 is not tested; some spelling suggestions are not tested.
    Solution:   Add a couple of tests. (Dominique Pellé, closes #9279)
    Files:      src/testdir/test_options.vim, src/testdir/test_spell.vim

    Patch 8.2.3745
    Problem:    Autochdir test fails without the +channel feature.
    Solution:   Remove the ch_logfile() call. (Dominique Pellé, closes #9281)
    Files:      src/testdir/test_autochdir.vim

    Patch 8.2.3746
    Problem:    Cannot disassemble function starting with "debug" or "profile".
    Solution:   Check for white space following. (closes #9273)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3747 (after 8.2.3743)
    Problem:    Cannot remove highlight from an existing sign. (James McCoy)
    Solution:   Only reject empty argument for a new sign.
    Files:      src/sign.c, src/testdir/test_signs.vim

    Patch 8.2.3748 (after 8.2.3747)
    Problem:    Giving an error for an empty sign argument breaks a plugin.
    Solution:   Do not give an error.
    Files:      src/sign.c, src/errors.h, src/testdir/test_signs.vim

    Patch 8.2.3749
    Problem:    Error messages are everywhere.
    Solution:   Move more error messages to errors.h and adjust the names.
    Files:      src/errors.h, src/regexp_bt.c, src/regexp.c, src/regexp_nfa.c,
                src/globals.h, src/memfile.c, src/tag.c, src/getchar.c,
                src/bufwrite.c, src/cmdexpand.c

    Patch 8.2.3750
    Problem:    Error messages are everywhere.
    Solution:   Move more error messages to errors.h and adjust the names.
    Files:      src/globals.h, src/errors.h, src/blob.c, src/buffer.c,
                src/channel.c, src/ex_docmd.c, src/job.c, src/list.c, src/mark.c,
                src/misc1.c, src/os_unix.c, src/popupwin.c, src/register.c,
                src/session.c, src/spellfile.c, src/term.c, src/userfunc.c

    Patch 8.2.3751
    Problem:    Cannot assign a lambda to an option that takes a function.
    Solution:   Automatically convert the lambda to a string. (Yegappan
                Lakshmanan, closes #9286)
    Files:      runtime/doc/options.txt, src/eval.c, src/proto/eval.pro,
                src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c,
                src/option.c, src/option.h, src/optiondefs.h,
                src/proto/option.pro, src/spell.c, src/typval.c,
                src/vim9compile.c, src/testdir/test_iminsert.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim

    Patch 8.2.3752
    Problem:    Build error when using Photon GUI.
    Solution:   Adjust #ifdef. (closes #9288)
    Files:      src/beval.c

    Patch 8.2.3753
    Problem:    Vim9: function unreferenced while called is never deleted.
    Solution:   Delete a function when no longer referenced.
    Files:      src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro

    Patch 8.2.3754 (after 8.2.3615)
    Problem:    Undesired changing of the indent of the first formatted line.
    Solution:   Do not indent the first formatted line.
    Files:      src/textformat.c, src/testdir/test_indent.vim

    Patch 8.2.3755
    Problem:    Coverity warns for using a buffer in another scope.
    Solution:   Declare the buffer in a common scope.
    Files:      src/evalvars.c

    Patch 8.2.3756
    Problem:    might crash when callback is not valid.
    Solution:   Check for valid callback. (Yegappan Lakshmanan, closes #9293)
    Files:      src/insexpand.c, src/option.c, src/tag.c, src/job.c,
                src/userfunc.c, src/testdir/test_iminsert.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_tagfunc.vim

    Patch 8.2.3757
    Problem:    An overlong highlight group name is silently truncated.
    Solution:   Give an error if the name is too long. (closes #9289)
    Files:      src/errors.h, src/highlight.c, src/testdir/test_highlight.vim

    Patch 8.2.3758
    Problem:    Options that take a function insufficiently tested.
    Solution:   Add additional tests and enhance existing tests. (Yegappan
                Lakshmanan, closes #9298)
    Files:      src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3759
    Problem:    Quickfix buffer becomes hidden while still in a window.
    Solution:   Check if the closed window is the last window showing the quickfix
                buffer. (Yegappan Lakshmanan, closes #9303, closes #9300)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim, src/window.c

    Patch 8.2.3760
    Problem:    Not automatically handling gnome terminal mouse like xterm.
    Solution:   Default 'ttymouse' to "xterm" and recognize Focus events.
                (issue #9296)
    Files:      src/os_unix.c

    Patch 8.2.3761
    Problem:    Focus change is not passed on to a terminal window.
    Solution:   If the current window is a terminal and focus events are enabled
                send a focus event escape sequence to the terminal.
    Files:      src/ui.c, src/terminal.c, src/proto/terminal.pro,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_focus_1.dump,
                src/testdir/dumps/Test_terminal_focus_2.dump

    Patch 8.2.3762
    Problem:    If the quickfix buffer is wiped out getqflist() still returns its
                number.
    Solution:   Use zero if the buffer is no longer present. (Yegappan Lakshmanan,
                closes #9306)
    Files:      src/quickfix.c, src/testdir/test_quickfix.vim

    Patch 8.2.3763
    Problem:    When editing the command line a FocusLost callback may cause the
                screen to scroll up.
    Solution:   Do not redraw at the last line but at the same place where the
                command line was before. (closes #9295)
    Files:      src/ex_getln.c, src/ui.c, src/beval.c, src/channel.c,
                src/drawscreen.c, src/proto/drawscreen.pro, src/job.c,
                src/popupwin.c, src/sound.c, src/terminal.c, src/time.c,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_terminal_focus_1.dump,
                src/testdir/dumps/Test_terminal_focus_2.dump,
                src/testdir/dumps/Test_terminal_focus_3.dump

    Patch 8.2.3764
    Problem:    Cannot see any text when window was made zero lines or zero
                columns.
    Solution:   Ensure there is at least one line and column. (fixes #9307)
    Files:      src/window.c, src/proto/window.pro, src/normal.c, src/edit.c,
                src/testdir/test_window_cmd.vim

    Patch 8.2.3765
    Problem:    Vim9: cannot use a lambda for 'opfunc' and others.
    Solution:   Convert the lambda to a string.
    Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c,
                src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3766
    Problem:    Converting a funcref to a string leaves out "g:", causing the
                meaning of the name depending on the context.
    Solution:   Prepend "g:" for a global function.
    Files:      src/eval.c, src/testdir/test_functions.vim

    Patch 8.2.3767 (after 8.2.3766)
    Problem:    Crash when using NULL partial.
    Solution:   Check for NULL.
    Files:      src/eval.c

    Patch 8.2.3768
    Problem:    timer_info() has the wrong repeat value in a timer callback.
                (Sergey Vlasov)
    Solution:   Do not add one to the repeat value when in the callback.
                (closes #9294)
    Files:      src/time.c, src/testdir/test_timers.vim

    Patch 8.2.3769
    Problem:    Zig files are not recognized.
    Solution:   Add *.zig. (Gregory Anders, closes #9313)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3770
    Problem:    New compiler warnings from clang-12 and clang-13.
    Solution:   Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314)
    Files:      .github/workflows/ci.yml, ci/config.mk.clang-12.sed,
                src/os_unix.c, src/spellfile.c

    Patch 8.2.3771
    Problem:    Vim9: accessing freed memory when checking type.
    Solution:   Make a copy of a function type.
    Files:      src/structs.h, src/evalvars.c, src/vim9script.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.3772
    Problem:    Timer info test fails on slow machine.
    Solution:   Use WaitForAssert().
    Files:      src/testdir/test_timers.vim

    Patch 8.2.3773
    Problem:    Wrong window size when a modeline changes 'columns' and there is
                more than one tabpage. (Michael Soyka)
    Solution:   Adjust the frames of all tabpages. (closes #9315)
    Files:      src/window.c

    Patch 8.2.3774 (after 8.2.3773)
    Problem:    Test for command line height fails.
    Solution:   Use another way to handle window size change.
    Files:      src/structs.h, src/window.c

    Patch 8.2.3775
    Problem:    Vim9: lambda compiled without outer context when debugging.
    Solution:   When compiling a lambda for debugging also compile it without.
                (closes #9302)
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3776
    Problem:    When a tags file line is long a tag may not be found.
    Solution:   When increasing the buffer size read the same line again.
    Files:      src/tag.c, src/testdir/test_taglist.vim

    Patch 8.2.3777
    Problem:    Spell file write error not checked.
    Solution:   Check writing the prefix conditions. (Bjorn Linse, closes #9323)
    Files:      src/spellfile.c

    Patch 8.2.3778
    Problem:    Lambda debug test fails in some configurations.
    Solution:   Check feature in a legacy function.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.3779
    Problem:    Using freed memory when defining a user command from a user
                command.
    Solution:   Do not use the command pointer after executing the command.
                (closes #9318)
    Files:      src/usercmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.3780
    Problem:    ":cd" works differently on MS-Windows.
    Solution:   Add the 'cdhome' option. (closes #9324)
    Files:      runtime/doc/editing.txt, runtime/doc/options.txt,
                runtime/doc/quickref.txt, runtime/optwin.vim, src/ex_docmd.c,
                src/option.h, src/optiondefs.h, src/testdir/runtest.vim,
                src/testdir/test_options.vim

    Patch 8.2.3781
    Problem:    The option window script is outdated.
    Solution:   Add several changes.
    Files:      runtime/optwin.vim

    Patch 8.2.3782
    Problem:    Vim9: no error if a function shadows a script variable.
    Solution:   Check the function doesn't shadow a variable. (closes #9310)
    Files:      src/userfunc.c, src/evalvars.c, src/vim.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3783
    Problem:    Confusing error for using a variable as a function.
    Solution:   If a function is not found but there is a variable, give a more
                useful error. (issue #9310)
    Files:      src/eval.c, src/userfunc.c, src/proto/userfunc.pro,
                src/structs.h, src/vim9execute.c, src/testdir/test_functions.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.3784
    Problem:    The help for options is outdated.
    Solution:   Include all the recent changes.
    Files:      runtime/doc/options.txt

    Patch 8.2.3785
    Problem:    Running CI on macOS with gcc is not useful.
    Solution:   Only use clang. (Ozaki Kiichi, closes #9326)  Also build with
                normal features.
    Files:      .github/workflows/ci.yml

    Patch 8.2.3786
    Problem:    Test fails because of using Vim9 syntax in legacy function.
    Solution:   Add "call".
    Files:      src/testdir/test_functions.vim

    Patch 8.2.3787
    Problem:    No proper formatting of a C line comment after a statement.
    Solution:   Find the start of the line comment, insert the comment leader and
                indent the comment properly.
    Files:      src/change.c, src/proto/change.pro, src/search.c,
                src/proto/search.pro, src/cindent.c, src/edit.c, src/normal.c,
                src/textformat.c, src/testdir/test_textformat.vim,
                src/testdir/test_cindent.vim

    Patch 8.2.3788
    Problem:    Lambda for option that is a function may be garbage collected.
    Solution:   Set a reference in the funcref. (Yegappan Lakshmanan,
                closes #9330)
    Files:      src/eval.c, src/evalbuffer.c, src/evalvars.c, src/gui_xim.c,
                src/insexpand.c, src/ops.c, src/proto/eval.pro,
                src/proto/gui_xim.pro, src/proto/insexpand.pro, src/proto/ops.pro,
                src/proto/tag.pro, src/quickfix.c, src/tag.c,
                src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_normal.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3789
    Problem:    Test_window_minimal_size can fail on a slow machine.
    Solution:   Do not rely on timers firing at the expected time. (Ozaki Kiichi,
                closes #9335)
    Files:      src/testdir/test_window_cmd.vim

    Patch 8.2.3790
    Problem:    Test for term_gettitle() fails in some environments.
    Solution:   Make the digits after "VIM" optional. (Kenta Sato, closes #9334)
    Files:      src/testdir/test_terminal2.vim

    Patch 8.2.3791
    Problem:    Build error with +cindent but without +smartindent.
    Solution:   Move declaration of "do_cindent". (John Marriott)
    Files:      src/change.c

    Patch 8.2.3792
    Problem:    Setting *func options insufficiently tested.
    Solution:   Improve tests. (Yegappan Lakshmanan, closes #9337)
    Files:      src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_normal.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_tagfunc.vim

    Patch 8.2.3793
    Problem:    Using "g:Func" as a funcref does not work in script context
                because "g:" is dropped.
    Solution:   Keep "g:" in the name.  Also add parenthesis to avoid confusing
                operator precedence. (closes #9336)
    Files:      src/evalvars.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3794
    Problem:    Vim9: cannot find script-local func using "s:". (Yegappan
                Lakshmanan)
    Solution:   Skip the "s:".
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3795
    Problem:    Too many #ifdefs.
    Solution:   Graduate the jumplist feature.
    Files:      runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h,
                src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c,
                src/mark.c, src/normal.c, src/undo.c, src/version.c,
                src/viminfo.c, src/window.c, src/structs.h,
                src/testdir/test_changelist.vim, src/testdir/test_jumplist.vim,
                src/testdir/test_normal.vim

    Patch 8.2.3796
    Problem:    The funcexe_T struct members are not named consistently.
    Solution:   Prefix "fe_" to all the members.
    Files:      src/structs.h, src/eval.c, src/list.c, src/regexp.c,
                src/terminal.c, src/userfunc.c, src/vim9execute.c

    Patch 8.2.3797
    Problem:    No good reason to limit the message history in the tiny version.
    Solution:   Always use 200.
    Files:      runtime/doc/message.txt, src/feature.h

    Patch 8.2.3798
    Problem:    A :def callback function postpones an error message.
    Solution:   Display the error after calling the function. (closes #9340)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim,
                src/testdir/dumps/Test_opfunc_error.dump

    Patch 8.2.3799 (after 8.2.3798)
    Problem:    Edit test hangs or fails.
    Solution:   Do not rethrow an exception when inside try/catch.
    Files:      src/userfunc.c

    Patch 8.2.3800
    Problem:    When cross compiling the output of "uname" cannot be set. (Ben
                Reeves)
    Solution:   Use cache variables. (closes #9338)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.3801
    Problem:    If a terminal shows in two windows, only one is redrawn.
    Solution:   Reset the dirty row range only after redrawing all windows.
                (closes #9341)
    Files:      src/terminal.c, src/proto/terminal.pro, src/drawscreen.c,
                src/testdir/test_terminal.vim

    Patch 8.2.3802
    Problem:    Terminal in two windows test fails on some systems.
    Solution:   Wait a bit between commands.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.3803
    Problem:    Crash when 'writedelay' is set and using a terminal window to
                execute a shell command.
    Solution:   Check that "tl_vterm" isn't NULL. (closes #9346)
    Files:      src/terminal.c

    Patch 8.2.3804
    Problem:    Script context not set when copying 'swf' and 'ts'.
    Solution:   Use COPY_OPT_SCTX with the right argument. (closes #9347)
    Files:      src/option.c

    Patch 8.2.3805
    Problem:    i3config files are not recognized.
    Solution:   Add patterns to match i3config files. (Quentin Hibon,
                closes #7969)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3806
    Problem:    Terminal focus test fails sometimes.
    Solution:   Run the test function before others.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.3807
    Problem:    Vim9: can call import with star directly.
    Solution:   Check that the import used star.
    Files:      src/userfunc.c, src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3808
    Problem:    Vim9: obsolete TODO items
    Solution:   Remove the comments.
    Files:      src/vim9execute.c

    Patch 8.2.3809
    Problem:    Vim9: crash when garbage collecting a nested partial. (Virginia
                Senioria)
    Solution:   Set references in all the funcstacks. (closes #9348)
    Files:      src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h,
                src/eval.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3810
    Problem:    Vim9: expr4 test fails on MS-Windows.
    Solution:   Do not give an error for a missing function name when skipping.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3811
    Problem:    The opfunc error test fails on a slow machine.
    Solution:   Use WaitForAssert().
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.3812
    Problem:    Vim9: leaking memory in numbered function test.
    Solution:   Skip "g:" when checking for numbered function.  Clean up after
                errors properly.
    Files:      src/userfunc.c

    Patch 8.2.3813
    Problem:    confusing error when using :cc without error list. (Gary Johnson)
    Solution:   Give the "no errors" error.
    Files:      src/ex_docmd.c, src/testdir/test_quickfix.vim

    Patch 8.2.3814
    Problem:    .csx files and .sln files are not recognized.
    Solution:   Add filetype patterns. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3815
    Problem:    Vim9: cannot have a multi-line dict inside a block.
    Solution:   Do not split the command at a line break, handle NL characters
                as white space.
    Files:      src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
                src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3816
    Problem:    Compiler warning for possible loss of data on MS-Windows.
    Solution:   Add type cast. (Mike Williams, closes #9349)
    Files:      src/userfunc.c

    Patch 8.2.3817 (after 8.2.3815)
    Problem:    Vim9: Not using NL as command end does not work for :autocmd.
    Solution:   Only ignore NL for commands with an expression argument.
    Files:      src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.3818
    Problem:    Cannot filter or map characters in a string.
    Solution:   Make filter() and map() work on a string. (Naruhiko Nishino,
                closes #9327)
    Files:      runtime/doc/eval.txt, src/errors.h, src/list.c,
                src/testdir/test_filter_map.vim

    Patch 8.2.3819 (after 8.2.3818)
    Problem:    Test fails because error message changed.
    Solution:   Update screendumps.
    Files:      src/testdir/dumps/Test_popupwin_three_errors_1.dump,
                src/testdir/dumps/Test_popupwin_three_errors_2.dump

    Patch 8.2.3820
    Problem:    "vrc" does not replace composing characters, while "rc" does.
    Solution:   Check the byte length including composing characters.
                (closes #9351)
    Files:      src/ops.c, src/testdir/test_visual.vim

    Patch 8.2.3821
    Problem:    ASAN test run fails.
    Solution:   Use asan_symbolize-13 instead of asan_symbolize-11.
    Files:      .github/workflows/ci.yml

    Patch 8.2.3822
    Problem:    Leaking memory in map() and filter(), cannot use a string argument
                in Vim9 script.
    Solution:   Fix the leak, adjust the argument check, also run the tests as
                Vim9 script. (Yegappan Lakshmanan, closes #9354)
    Files:      src/errors.h, src/evalfunc.c, src/list.c, src/proto/typval.pro,
                src/testdir/test_filter_map.vim,
                src/testdir/test_vim9_builtin.vim, src/typval.c

    Patch 8.2.3823
    Problem:    Test for visual replace is in wrong function.
    Solution:   Move it to another function.
    Files:      src/testdir/test_visual.vim

    Patch 8.2.3824
    Problem:    No ASAN support for MSVC.
    Solution:   Add ASAN support and fix a couple of uncovered problems. (Yegappan
                Lakshmanan, closes #9357)
    Files:      src/Make_mvc.mak, src/findfile.c, src/os_mswin.c,
                src/testdir/test_fnamemodify.vim

    Patch 8.2.3825
    Problem:    Various comments could be improved.
    Solution:   Improve the comments.
    Files:      src/getchar.c, src/mbyte.c, src/regexp_nfa.c,
                src/testdir/test_edit.vim, src/gui_motif.c

    Patch 8.2.3826
    Problem:    Vim9: using "g:Func" as a funcref does not work in a :def
                function.
    Solution:   Include "g:" in the function name. (closes #9336)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3827
    Problem:    Huntr badge does not really fit in the list.
    Solution:   Move the link to Huntr to the issue template.
    Files:      Filelist, .github/ISSUE_TEMPLATE/bug_report.yml, README.md

    Patch 8.2.3828
    Problem:    when opening a terminal from a timer the first typed character
                is lost. (Virginia Senioria)
    Solution:   When opening a terminal while waiting for a character put K_IGNORE
                in the input buffer.
    Files:      src/terminal.c, src/edit.c, src/testdir/test_terminal.vim

    Patch 8.2.3829
    Problem:    No error when setting a func option to a script-local function.
    Solution:   Give an error if the name starts with "s:". (closes #9358)
    Files:      src/option.c, src/testdir/test_tagfunc.vim,
                src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump

    Patch 8.2.3830
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/globals.h, src/errors.h, src/buffer.c, src/dict.c, src/diff.c,
                src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
                src/misc2.c, src/quickfix.c, src/typval.c, src/ui.c,
                src/userfunc.c, src/vim9compile.c, src/vim9execute.c,
                src/vim9type.c, src/window.c

    Patch 8.2.3831
    Problem:    Opfunc test fails when missing feature changes function name.
                (Dominique Pellé)
    Solution:   Check the relevant screen line instead of using a screendump.
                (closes #9360)
    Files:      src/testdir/test_vim9_func.vim,
                src/testdir/dumps/Test_opfunc_error.dump

    Patch 8.2.3832 (after 8.2.3830)
    Problem:    Test fails because of changed error message.
    Solution:   Adjust the expected error message.
    Files:      src/testdir/test_vimscript.vim

    Patch 8.2.3833
    Problem:    Error from term_start() not caught by try/catch.
    Solution:   save and restore did_emsg when applying autocommands. (Ozaki
                Kiichi, closes #9361)
    Files:      src/autocmd.c, src/testdir/test_terminal3.vim

    Patch 8.2.3834
    Problem:    Test_out_cb often fails on Mac.
    Solution:   Increase the timeout with every retry.
    Files:      src/testdir/test_channel.vim

    Patch 8.2.3835
    Problem:    The inline-function example does not work.
    Solution:   Drop ":let".  Add EX_EXPR_ARG to CMD_var. (issue #9352)
    Files:      runtime/doc/vim9.txt, src/ex_cmds.h,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.3836
    Problem:    Vim9: comment after expression not skipped to find NL.
    Solution:   After evaluating an expression look for a newline after a #
                comment.
    Files:      src/eval.c

    Patch 8.2.3837
    Problem:    QNX: crash when compiled with GUI but using terminal.
    Solution:   Check gui.in_use is set. (Hirohito Higashi, closes #9363)
    Files:      src/autocmd.c

    Patch 8.2.3838
    Problem:    Cannot use script-local function for setting *func options.
    Solution:   Use the script context. (Yegappan Lakshmanan, closes #9362)
    Files:      src/option.c, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump,
                src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim,
                src/testdir/test_quickfix.vim, src/testdir/test_tagfunc.vim

    Patch 8.2.3839
    Problem:    Using \z() with \z1 not tested for syntax highlighting.
    Solution:   Add a test. (Dominique Pellé, closes #9365)
    Files:      src/testdir/test_syntax.vim

    Patch 8.2.3840
    Problem:    Useless test for negative index in check functions.
    Solution:   Remove the test for negative index. (Naruhiko Nishino,
                closes #9364)
    Files:      src/typval.c

    Patch 8.2.3841
    Problem:    Vim9: outdated TODO items, disabled tests that work.
    Solution:   Remove TODO items, run tests that work now.  Check that a dict
                item isn't locked.
    Files:      src/vim9execute.c, src/evalvars.c, src/errors.h, src/globals.h,
                src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim

    Patch 8.2.3842
    Problem:    Vim9: can change locked list and list items.
    Solution:   Check that a list and list item isn't locked.
    Files:      src/vim9execute.c, src/testdir/test_listdict.vim

    Patch 8.2.3843
    Problem:    Dep3patch files are not recognized.
    Solution:   Recognize dep3patch files by their location and content. (James
                McCoy, closes #9367)
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.3844
    Problem:    Vim9: no type error if assigning a value with type func(number) to
                a variable of type func(string).
    Solution:   Use check_type_maybe(): return MAYBE if a runtime type check is
                useful.  (issue #8492)
    Files:      src/vim9type.c, src/proto/vim9type.pro, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3845
    Problem:    Vim9: test fails when the channel feature is missing.
    Solution:   Check for the channel feature. (Dominique Pellé, closes #9368)
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.3846
    Problem:    No error when using control character for 'lcs' or 'fcs'.
    Solution:   Use char2cells() to check the width. (closes #9369)
    Files:      src/screen.c, src/testdir/test_display.vim,
                src/testdir/test_listchars.vim

    Patch 8.2.3847
    Problem:    Illegal memory access when using a lambda with an error.
    Solution:   Avoid skipping over the NUL after a string.
    Files:      src/eval.c, src/testdir/test_lambda.vim

    Patch 8.2.3848
    Problem:    Cannot use reduce() for a string.
    Solution:   Make reduce() work with a string. (Naruhiko Nishino, closes #9366)
    Files:      runtime/doc/eval.txt, src/errors.h, src/evalfunc.c, src/list.c,
                src/typval.c, src/proto/typval.pro, src/testdir/test_listdict.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3849
    Problem:    Functions implementing reduce and map are too long.
    Solution:   Use a function for each type of value.  Add a few more test cases
                and add to the help. (Yegappan Lakshmanan, closes #9370)
    Files:      runtime/doc/eval.txt, src/list.c, src/testdir/test_listdict.vim

    Patch 8.2.3850
    Problem:    Illegal memory access when displaying a partial.
    Solution:   Terminate the string with a NUL. (closes #9371)
    Files:      src/eval.c, src/testdir/test_messages.vim

    Patch 8.2.3851
    Problem:    Vim9: overhead when comparing string, dict or function.
    Solution:   Call the intended compare function directly.  Refactor to avoid
                duplicated code.
    Files:      src/vim9execute.c, src/typval.c, src/proto/typval.pro

    Patch 8.2.3852
    Problem:    Vim9: not enough tests.
    Solution:   Also run existing tests for Vim9 script.  Make errors more
                consistent.
    Files:      src/testdir/test_listdict.vim, src/eval.c, src/vim9compile.c,
                src/errors.h

    Patch 8.2.3853
    Problem:    Vim9: not enough tests.
    Solution:   Run more existing tests for Vim9 script.
    Files:      src/testdir/test_listdict.vim

    Patch 8.2.3854
    Problem:    Vim9: inconsistent arguments for test functions.
    Solution:   When :def function and script have different arguments use a list
                with two items instead of a separate function.
    Files:      src/testdir/vim9.vim, src/testdir/test_execute_func.vim,
                src/testdir/test_float_func.vim, src/testdir/test_functions.vim,
                src/testdir/test_glob2regpat.vim, src/testdir/test_listdict.vim,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3855
    Problem:    Illegal memory access when displaying a blob.
    Solution:   Append a NUL at the end. (Yegappan Lakshmanan, closes #9372)
    Files:      src/blob.c, src/regexp_nfa.c, src/testdir/test_blob.vim,
                src/testdir/test_messages.vim

    Patch 8.2.3856
    Problem:    Vim9: not enough tests.
    Solution:   Run more expression tests also with Vim9. Fix an uncovered
                problem.
    Files:      src/vim9compile.c, src/testdir/test_expr.vim, src/testdir/vim9.vim

    Patch 8.2.3857
    Problem:    Vim9: inconsistent error for using function().
    Solution:   Use a runtime type check for the result of function().
                (closes #8492)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3858
    Problem:    Vim9: not enough tests.
    Solution:   Add tests for :try/:catch and :redir. Add missing type check.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.3859
    Problem:    Vim9: some code lines not tested.
    Solution:   Add a few specific tests.
    Files:      src/vim9compile.c, src/testdir/test_vim9_cmd.vim, src/errors.h,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3860
    Problem:    Vim9: codecov struggles with the file size.
    Solution:   Split vim9compile.c into four files.
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9instr.c,
                src/proto/vim9instr.pro, src/vim9expr.c, src/proto/vim9expr.pro,
                src/vim9cmds.c, src/proto/vim9cmds.pro, src/vim9.h,
                src/vim9execute.c, src/vim9script.c, src/proto.h,
                src/Makefile, src/Make_ami.mak, src/Make_cyg_ming.mak,
                src/Make_mvc.mak, src/Make_vms.mms

    Patch 8.2.3861
    Problem:    List of distributed files is outdated.
    Solution:   Add new files.
    Files:      Filelist

    Patch 8.2.3862
    Problem:    Crash on exit with EXITFREE and using win_execute().
    Solution:   Also save and restore tp_topframe. (issue #9374)
    Files:      src/evalwindow.c, src/testdir/test_execute_func.vim

    Patch 8.2.3863 (after 8.2.3860)
    Problem:    Various build flags accidentally enabled.
    Solution:   Revert several lines in Makefile.
    Files:      src/Makefile

    Patch 8.2.3864
    Problem:    Cannot disable requesting key codes from xterm.
    Solution:   Add the 'xtermcodes' option, default on.
    Files:      runtime/doc/options.txt, runtime/doc/term.txt, src/option.h,
                src/optiondefs.h, src/term.c, runtime/optwin.vim

    Patch 8.2.3865
    Problem:    Vim9: compiler complains about using "try" as a struct member.
    Solution:   Rename "try" to "tryref".
    Files:      src/vim9.h, src/vim9cmds.c, src/vim9execute.c, src/vim9instr.c

    Patch 8.2.3866
    Problem:    Vim9: type checking global variables is inconsistent.
    Solution:   Use the "unknown" type in more places.
    Files:      src/globals.h, src/vim9expr.c, src/vim9instr.c, src/vim9cmds.c,
                src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3867
    Problem:    Implementation of some list functions too complicated.
    Solution:   Refactor do_sort_uniq(), f_count() and extend() (Yegappan
                Lakshmanan, closes #9378)
    Files:      src/list.c

    Patch 8.2.3868 (after 8.2.3866)
    Problem:    Vim9: function test fails.
    Solution:   Add missing changes.  Add test for earlier patch.
    Files:      src/vim9type.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3869
    Problem:    Vim9: type checking for "any" is inconsistent.
    Solution:   Always use a runtime type check for using "any" for a more
                specific type.
    Files:      src/vim9type.c, src/vim9compile.c, src/vim9expr.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.3870
    Problem:    MS-Windows: wrong working directory when opening two files with
                right-click context menu. (Gabriel Dupras)
    Solution:   Use the working directory and pass it on to the process creation.
                (Nir Lichtman, closes #9382, closes #8874)
    Files:      src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h

    Patch 8.2.3871
    Problem:    List.c contains code for dict and blob.
    Solution:   Refactor to put code where it belongs. (Yegappan Lakshmanan,
                closes #9386)
    Files:      src/blob.c, src/dict.c, src/list.c, src/proto/blob.pro,
                src/proto/dict.pro, src/proto/list.pro, src/proto/strings.pro,
                src/strings.c, src/structs.h, src/testdir/test_filter_map.vim,
                src/testdir/test_listdict.vim, src/testdir/test_sort.vim

    Patch 8.2.3872
    Problem:    Vim9: finddir() and uniq() return types can be more specific.
    Solution:   Adjust the return type.
    Files:      src/evalfunc.c, src/testdir/vim9.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3873
    Problem:    go.mod files are not recognized.
    Solution:   Check for the file name. (closes #9380)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3874
    Problem:    Cannot highlight the number column for a sign.
    Solution:   Add the "numhl" argument. (James McCoy, closes #9381)
    Files:      runtime/doc/options.txt, runtime/doc/sign.txt, src/drawline.c,
                src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h,
                src/testdir/test_signs.vim

    Patch 8.2.3875
    Problem:    gcc complains about buffer overrun.
    Solution:   Use mch_memmove() instead of STRCPY(). (John Marriott)
    Files:      src/dict.c

    Patch 8.2.3876
    Problem:    'cindent' does not recognize inline namespace.
    Solution:   Skip over "inline" to find "namespace". (closes #9383)
    Files:      src/cindent.c, src/testdir/test_cindent.vim

    Patch 8.2.3877
    Problem:    Function does not abort after a type error in compare
    Solution:   Check getting number fails. (closes #9384)
    Files:      src/typval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.3878
    Problem:    Vim9: debugger tries to read more lines than there are.
    Solution:   Check the number of lines. (closes #9394)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.3879
    Problem:    getreg() and getregtype() contain dead code.
    Solution:   Remove the needless check. (closes #9392)  Also refactor to put
                common code in a shared function.
    Files:      src/evalfunc.c

    Patch 8.2.3880
    Problem:    Solution filter files are not recognized.
    Solution:   Add pattern *.slnf and use json. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3881
    Problem:    QNX: crash when compiled with GUI but using terminal.
    Solution:   Check the gui.in_use flag. (Hirohito Higashi, closes #9391)
    Files:      src/main.c

    Patch 8.2.3882 (after 8.2.3879)
    Problem:    More duplicated code in f_getreginfo().
    Solution:   Also use getreg_get_regname(). (closes #9398)
    Files:      src/evalfunc.c

    Patch 8.2.3883
    Problem:    Crash when switching to other regexp engine fails.
    Solution:   Check for regprog being NULL.
    Files:      src/ex_cmds.c

    Patch 8.2.3884
    Problem:    Crash when clearing the argument list while using it.
    Solution:   Lock the argument list for ":all".
    Files:      src/arglist.c, src/testdir/test_arglist.vim

    Patch 8.2.3885
    Problem:    Arglist test fails.
    Solution:   Adjust for locking the arglist for ":all".
    Files:      src/testdir/test_arglist.vim

    Patch 8.2.3886
    Problem:    Can define autocmd for every event by using "au!".
    Solution:   Check if a command is present also for "au!".
    Files:      src/autocmd.c, src/testdir/test_autocmd.vim,
                src/testdir/test_arglist.vim

    Patch 8.2.3887
    Problem:    E1135 is used for two different errors.
    Solution:   Renumber one error.
    Files:      src/errors.h, src/testdir/test_mapping.vim

    Patch 8.2.3888
    Problem:    The argument list may contain duplicates.
    Solution:   Add the :argdedeupe command. (Nir Lichtman, closes #6235)
    Files:      runtime/doc/editing.txt, runtime/doc/index.txt, src/arglist.c,
                src/ex_cmdidxs.h, src/ex_cmds.h, src/proto/arglist.pro,
                src/testdir/test_arglist.vim

    Patch 8.2.3889
    Problem:    Duplicate code for translating script-local function name.
    Solution:   Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan,
                closes #9393)
    Files:      src/evalfunc.c, src/evalvars.c, src/option.c, src/userfunc.c,
                src/proto/userfunc.pro, src/testdir/test_expr.vim,
                src/testdir/test_normal.vim

    Patch 8.2.3890
    Problem:    Vim9: type check for using v: variables is basic.
    Solution:   Specify a more precise type.
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/vim9instr.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.3891
    Problem:    Github CI: workflows may overlap.
    Solution:   Cancel previous workflows when starting a new one. (Yegappan
                Lakshmanan, closes #9400)
    Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml

    Patch 8.2.3892
    Problem:    When modifyOtherKeys is used CTRL-C is not recognized.
    Solution:   Check for uppercase C as well, fix minimum length.
    Files:      src/ui.c

    Patch 8.2.3893
    Problem:    Vim9: many local variables are initialized with an instruction.
    Solution:   Initialize local variables to zero to avoid the instructions.
    Files:      src/vim9execute.c, src/vim9compile.c, src/vim9instr.c,
                src/proto/vim9instr.pro, src/vim9cmds.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3894
    Problem:    Vim9: no proper type check for first argument of call().
    Solution:   Add specific type check.
    Files:      src/evalfunc.c, src/typval.c, src/proto/typval.pro,
                src/errors.h, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3895
    Problem:    Vim9: confusing error when using function() with a number.
    Solution:   Check for a function or string argument.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3896
    Problem:    Vim9: no test for nested function not available later.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.3897
    Problem:    Vim9: the second argument of map() and filter() is not checked at
                compile time.
    Solution:   Add more specific type check for the second argument.
    Files:      src/evalfunc.c, src/globals.h, src/list.c,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3898
    Problem:    Vim9: not sufficient testing for variable initialization.
    Solution:   Add another test case.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3899 (after 8.2.3897)
    Problem:    Vim9: test for map() on string fails.
    Solution:   Expect string return type.
    Files:      src/evalfunc.c

    Patch 8.2.3900
    Problem:    It is not easy to use a script-local function for an option.
    Solution:   recognize s: and <SID> at the start of the expression. (Yegappan
                Lakshmanan, closes #9401)
    Files:      runtime/doc/diff.txt, runtime/doc/fold.txt,
                runtime/doc/options.txt, runtime/doc/print.txt, src/optionstr.c,
                src/testdir/test_diffmode.vim, src/testdir/test_edit.vim,
                src/testdir/test_fold.vim, src/testdir/test_gf.vim,
                src/testdir/test_gui.vim, src/testdir/test_hardcopy.vim,
                src/testdir/test_normal.vim

    Patch 8.2.3901
    Problem:    Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script.
    Solution:   Do not restore 'cpo' at the end of the main .vimrc.
    Files:      runtime/doc/vim9.txt, runtime/doc/options.txt, src/scriptfile.c,
                src/structs.h, src/testdir/test_vim9_script.vim

    Patch 8.2.3902
    Problem:    Vim9: double free with nested :def function.
    Solution:   Pass "line_to_free" from compile_def_function() and make sure
                cmdlinep is valid.
    Files:      src/vim9compile.c, src/userfunc.c, src/proto/userfunc.pro,
                src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3903
    Problem:    "gM" does not count tabs as expected.
    Solution:   Use linetabsize() instead of mb_string2cells(). (closes #9409)
    Files:      src/normal.c, src/testdir/test_normal.vim

    Patch 8.2.3904
    Problem:    Vim9: skip expression type is not checked at compile time.
    Solution:   Add argument type checks.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3905
    Problem:    Dockerfile using prefix name not recognized.
    Solution:   Recognize Dockerfile.*. (closes #9410)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3906
    Problem:    Vim9 help still contains "under development" warnings.
    Solution:   Remove the explicit warning.
    Files:      runtime/doc/vim9.txt

    Patch 8.2.3907
    Problem:    Error messages are spread out.
    Solution:   Move error messages to errors.h.  Avoid duplicates.
    Files:      src/userfunc.c, src/ex_cmds.c, src/viminfo.c, src/errors.h,
                src/testdir/test_user_func.vim

    Patch 8.2.3908
    Problem:    Cannot use a script-local function for 'foldtext'.
    Solution:   Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411)
    Files:      runtime/doc/fold.txt, src/optionstr.c, src/strings.c,
                src/testdir/test_blob.vim, src/testdir/test_expr.vim,
                src/testdir/test_filter_map.vim, src/testdir/test_fold.vim,
                src/testdir/test_listdict.vim

    Patch 8.2.3909
    Problem:    Containerfile using prefix name not recognized.
    Solution:   Recognize Containerfile.*.
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3910
    Problem:    When the compare function of sort() produces and error then sort()
                does not abort.
    Solution:   Check if did_emsg was incremented.
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3911
    Problem:    Vim9: type check for filter() does not accept unknown.
    Solution:   Also accept unknown for the return type. (closes #9413)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3912
    Problem:    The ins_complete() function is much too long.
    Solution:   Split it up into multiple functions. (Yegappan Lakshmanan,
                closes #9414)
    Files:      src/insexpand.c

    Patch 8.2.3913
    Problem:    Help for expressions does not mention Vim9 syntax.
    Solution:   Add the rules for Vim9 to the expression help.  Rename functions
                to match the help.
    Files:      runtime/doc/vim9.txt, runtime/doc/eval.txt, src/vim9expr.c

    Patch 8.2.3914
    Problem:    Various spelling mistakes in comments.
    Solution:   Fix the mistakes. (Dominique Pellé, closes #9416)
    Files:      src/alloc.c, src/blowfish.c, src/buffer.c, src/cindent.c,
                src/clipboard.c, src/diff.c, src/drawline.c, src/edit.c,
                src/ex_cmds.c, src/ex_docmd.c, src/findfile.c, src/fold.c,
                src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk.c,
                src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c,
                src/if_python.c, src/if_python3.c, src/if_xcmdsrv.c, src/main.c,
                src/memline.c, src/menu.c, src/message.c, src/misc1.c, src/move.c,
                src/option.c, src/os_amiga.c, src/os_mac.h, src/os_mac_conv.c,
                src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/os_win32.h,
                src/quickfix.c, src/regexp_nfa.c, src/screen.c, src/scriptfile.c,
                src/spell.c, src/spellfile.c, src/spellsuggest.c, src/strings.c,
                src/term.c, src/terminal.c, src/testdir/test_debugger.vim,
                src/testdir/test_source.vim, src/textformat.c, src/userfunc.c,
                src/vim.h, src/vim9.h, src/vim9cmds.c, src/vim9execute.c,
                src/winclip.c, src/window.c

    Patch 8.2.3915
    Problem:    illegal memory access when completing with invalid bytes.
    Solution:   Avoid going over the end of the completion text.
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.3916
    Problem:    No error for passing an invalid line number to append().
    Solution:   In Vim9 script check for a non-negative number. (closes #9417)
    Files:      src/evalbuffer.c, src/textprop.c, src/errors.h, src/indent.c,
                src/eval.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3917
    Problem:    The eval.txt help file is way too big.
    Solution:   Move the builtin function details to a separate file.
    Files:      runtime/doc/eval.txt, runtime/doc/builtin.txt,
                runtime/doc/Makefile, runtime/doc/help.txt, runtime/doc/remote.txt

    Patch 8.2.3918 (after 8.2.3916)
    Problem:    Function list test fails.
    Solution:   Adjust the test for the new location of the function list.
    Files:      src/testdir/test_function_lists.vim

    Patch 8.2.3919
    Problem:    Vim9: wrong argument for append() results in two errors.
    Solution:   Check did_emsg.  Also for setline().  Adjust the help for
                appendbufline().
    Files:      runtime/doc/builtin.txt, src/evalbuffer.c, src/typval.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3920
    Problem:    Restoring directory after using another window is inefficient.
    Solution:   Only restore the directory for win_execute().  Apply 'autochdir'
                only when needed.
    Files:      src/evalwindow.c, src/testdir/test_autochdir.vim

    Patch 8.2.3921
    Problem:    The way xdiff is used is inefficient.
    Solution:   Use hunk_func instead of the out_line callback. (Lewis Russell,
                closes #9344)
    Files:      src/diff.c

    Patch 8.2.3922
    Problem:    Cannot build with dynamic Ruby 3.1.
    Solution:   Add "_EXTRA" variables for CI.  Add missing functions. (Ozaki
                Kiichi, closes #9420)
    Files:      ci/config.mk.clang-12.sed, ci/config.mk.clang.sed,
                ci/config.mk.sed, src/Makefile, src/auto/configure,
                src/config.mk.in, src/configure.ac, src/if_ruby.c, src/vim.h

    Patch 8.2.3923
    Problem:    Vim9: double free if a nested function has a line break in the
                argument list.
    Solution:   Set cmdlinep when freeing the previous line.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3924
    Problem:    Vim9: no error if something follows :enddef in a nested function.
    Solution:   Give an error.  Move common code to a function.
    Files:      src/userfunc.c, src/vim9compile.c, src/errors.h,
                src/testdir/test_vim9_func.vim

    Patch 8.2.3925
    Problem:    Diff mode confused by NUL bytes.
    Solution:   Handle NUL bytes differently. (Christian Brabandt, closes #9421,
                closes #9418)
    Files:      src/diff.c, src/testdir/test_diffmode.vim,
                src/testdir/dumps/Test_diff_bin_01.dump,
                src/testdir/dumps/Test_diff_bin_02.dump,
                src/testdir/dumps/Test_diff_bin_03.dump,
                src/testdir/dumps/Test_diff_bin_04.dump

    Patch 8.2.3926 (after 8.2.3920)
    Problem:    Build failure without the 'autochdir' option. (John Marriott)
    Solution:   Add #ifdefs.
    Files:      src/evalwindow.c

    Patch 8.2.3927
    Problem:    Vim9: double free when using lambda.
    Solution:   Don't free both cmdline and line_to_free.
    Files:      src/userfunc.c

    Patch 8.2.3928
    Problem:    Heredoc test fails.
    Solution:   Correct order of function arguments.
    Files:      src/userfunc.c

    Patch 8.2.3929
    Problem:    Using uninitialized variable.
    Solution:   Set the option flags to zero for a terminal option.
    Files:      src/option.c

    Patch 8.2.3930
    Problem:    getcmdline() argument has a misleading type.
    Solution:   Use the correct type, even though the value is not used.
    Files:      src/ex_getln.c, src/proto/ex_getln.pro, src/ex_docmd.c,
                src/normal.c, src/register.c, src/userfunc.c

    Patch 8.2.3931
    Problem:    Coverity reports a memory leak.
    Solution:   Free memory in case of failure.
    Files:      src/diff.c

    Patch 8.2.3932
    Problem:    C line comment not formatted properly.
    Solution:   If a line comment follows after "#if" the next line is not the end
                of a paragraph.
    Files:      src/textformat.c, src/testdir/test_textformat.vim

    Patch 8.2.3933
    Problem:    After ":cd" fails ":cd -" is incorrect.
    Solution:   Set the previous directory only after successfully changing
                directory. (Richard Doty, closes #9419, closes #8983)
    Files:      src/ex_docmd.c, src/testdir/test_cd.vim

    Patch 8.2.3934
    Problem:    Repeating line comment is undesired for "O" command.
    Solution:   Do not copy line comment leader for "O". (closes #9426)
    Files:      src/change.c, src/testdir/test_textformat.vim

    Patch 8.2.3935
    Problem:    CTRL-U in Insert mode does not fix the indent.
    Solution:   Fix the indent when 'cindent' is set.
    Files:      src/edit.c, src/testdir/test_textformat.vim

    Patch 8.2.3936
    Problem:    No proper test for maintaining change mark in diff mode.
    Solution:   Run the test with internal and external diff. (Sean Dewar,
                closes #9424)
    Files:      src/testdir/test_diffmode.vim

    Patch 8.2.3937
    Problem:    Insert mode completion function is too long.
    Solution:   Refactor into multiple functions. (Yegappan Lakshmanan,
                closes #9423)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.3938
    Problem:    Line comment start is also found in a string.
    Solution:   Skip line comments in a string.
    Files:      src/cindent.c, src/proto/cindent.pro, src/search.c,
                src/testdir/test_textformat.vim

    Patch 8.2.3939
    Problem:    MS-Windows: fnamemodify('', ':p') does not work.
    Solution:   Do not consider an empty string a full path. (Yegappan Lakshmanan,
                closes #9428, closes #9427)
    Files:      src/os_mswin.c, src/testdir/test_fnamemodify.vim

    Patch 8.2.3940
    Problem:    Match highlight disappears when doing incsearch for ":s/pat".
    Solution:   Only use line limit for incsearch highlighting. (closes #9425)
    Files:      src/match.c, src/testdir/test_match.vim,
                src/testdir/dumps/Test_match_with_incsearch_1.dump,
                src/testdir/dumps/Test_match_with_incsearch_2.dump

    Patch 8.2.3941
    Problem:    SIGTSTP is not handled.
    Solution:   Handle SIGTSTP like pressing CTRL-Z. (closes #9422)
    Files:      runtime/doc/autocmd.txt, src/ex_docmd.c, src/os_unix.c,
                src/proto/ex_docmd.pro, src/testdir/test_signals.vim

    Patch 8.2.3942
    Problem:    Coverity reports a possible memory leak.
    Solution:   Free the array if allocation fails.
    Files:      src/insexpand.c

    Patch 8.2.3943
    Problem:    Compiler warning from gcc for uninitialized variable.
    Solution:   Initialize variable. (closes #9429)
    Files:      src/diff.c

    Patch 8.2.3944
    Problem:    Insert mode completion functions are too long.
    Solution:   Split up into multiple functions. (Yegappan Lakshmanan,
                closes #9431)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.3945
    Problem:    Vim9: partial variable argument types are wrong, leading to a
                crash.
    Solution:   When adjusting the argument count also adjust the argument types.
                (closes #9433)
    Files:      src/vim9type.c, src/userfunc.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.3946
    Problem:    When an internal error makes Vim exit the error is not seen.
    Solution:   Add the error to the test output.
    Files:      src/message.c, src/testdir/runtest.vim

    Patch 8.2.3947
    Problem:    Unnecessary check for NULL pointer.
    Solution:   Remove the check. (closes #9434)
    Files:      src/ex_docmd.c

    Patch 8.2.3948
    Problem:    Vim9: failure with partial with unknown argument count.
    Solution:   Do not copy argument types if there aren't any.
    Files:      src/vim9type.c

    Patch 8.2.3949
    Problem:    Using freed memory with /\%V.
    Solution:   Get the line again after getvvcol().
    Files:      src/regexp.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.3950
    Problem:    Going beyond the end of the line with /\%V.
    Solution:   Check for valid column in getvcol().
    Files:      src/charset.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.3951
    Problem:    Vim9: memory leak when text after a nested function.
    Solution:   Free the function if text is found after "enddef".
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.3952
    Problem:    First line not redrawn when adding lines to an empty buffer.
    Solution:   Adjust the argument to appended_lines(). (closes #9439,
                closes #9438)
    Files:      src/ex_cmds.c, src/testdir/test_excmd.vim

    Patch 8.2.3953
    Problem:    Insert completion code is too complicated.
    Solution:   More refactoring.  Move function arguments into a struct.
                (Yegappan Lakshmanan, closes #9437)
    Files:      src/insexpand.c

    Patch 8.2.3954
    Problem:    Vim9: no error for shadowing if script var is declared later.
    Solution:   Check argument names when compiling a function.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.3955
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/globals.h, src/debugger.c, src/ex_cmds.c,
                src/help.c, src/sign.c, src/spellfile.c

    Patch 8.2.3956
    Problem:    Duplicate assignment.
    Solution:   Remove the second assignment. (closes #9442)
    Files:      src/evalfunc.c

    Patch 8.2.3957
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c,
                src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
                src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c,
                src/vim9cmds.c, src/vim9compile.c

    Patch 8.2.3958
    Problem:    Build failure compiling xxd with "-std=c2x".
    Solution:   define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes #9444)
    Files:      src/xxd/xxd.c

    Patch 8.2.3959
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/autocmd.c, src/bufwrite.c, src/evalvars.c,
                src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c,
                src/getchar.c, src/gui.c, src/locale.c, src/map.c

    Patch 8.2.3960
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/alloc.c, src/arglist.c, src/autocmd.c,
                src/blob.c, src/blowfish.c, src/buffer.c, src/bufwrite.c

    Patch 8.2.3961
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c,
                src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c,
                src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c,
                src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c,
                src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c,
                src/filepath.c, src/gui_gtk_x11.c, src/gui_haiku.cc,
                src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/highlight.c,
                src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c,
                src/map.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c,
                src/message.c, src/misc2.c, src/ops.c, src/option.c,
                src/optionstr.c, src/popupwin.c, src/quickfix.c, src/screen.c,
                src/scriptfile.c, src/search.c, src/sign.c, src/spell.c,
                src/spellfile.c, src/strings.c, src/syntax.c, src/terminal.c,
                src/testing.c, src/textprop.c, src/time.c, src/userfunc.c,
                src/vim9cmds.c, src/vim9execute.c, src/vim9script.c, src/window.c

    Patch 8.2.3962 (after 8.2.3961)
    Problem:    Build fails for missing error message.
    Solution:   Add changes in missed file.
    Files:      src/regexp_bt.c

    Patch 8.2.3963
    Problem:    Build failure with tiny and small features. (Tony Mechelynck)
    Solution:   Adjust #ifdefs.
    Files:      src/errors.h, src/message.c

    Patch 8.2.3964
    Problem:    Some common lisp and scheme files not recognized.
    Solution:   Recognize *.asd as lisp and *.sld as scheme. (Alex Vear,
                closes #9447)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3965
    Problem:    Vim9: no easy way to check if Vim9 script is supported.
    Solution:   Add has('vim9script').
    Files:      runtime/doc/vim9.txt, src/evalfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.3966
    Problem:    When using feedkeys() abbreviations may be blocked.
    Solution:   Reset tb_no_abbr_cnt when running out of characters.
                (closes #9448)
    Files:      src/getchar.c, src/testdir/test_feedkeys.vim

    Patch 8.2.3967
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/globals.h, src/feature.h, src/arglist.c,
                src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c,
                src/cmdexpand.c, src/dict.c, src/diff.c, src/eval.c,
                src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c,
                src/fileio.c, src/filepath.c, src/getchar.c, src/gui_gtk_x11.c,
                src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c,
                src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
                src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c,
                src/if_xcmdsrv.c, src/indent.c, src/insexpand.c, src/job.c,
                src/list.c, src/main.c, src/map.c, src/match.c, src/mbyte.c,
                src/message.c, src/misc1.c, src/option.c, src/optionstr.c,
                src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/popupwin.c,
                src/profiler.c, src/quickfix.c, src/scriptfile.c, src/search.c,
                src/session.c, src/sign.c, src/spell.c, src/spellfile.c,
                src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c,
                src/testing.c, src/textprop.c, src/typval.c, src/userfunc.c,
                src/vim9execute.c, src/vim9expr.c, src/vim9instr.c,
                src/vim9script.c

    Patch 8.2.3968
    Problem:    Build failure.
    Solution:   Add missing changes.
    Files:      src/strings.c, src/vim9compile.c

    Patch 8.2.3969
    Problem:    Value of MAXCOL not available in Vim script.
    Solution:   Add v:maxcol. (Naohiro Ono, closes #9451)
    Files:      runtime/doc/builtin.txt, runtime/doc/eval.txt, src/evalvars.c,
                src/testdir/test_cursor_func.vim, src/testdir/test_normal.vim,
                src/testdir/test_put.vim, src/vim.h

    Patch 8.2.3970
    Problem:    Error messages are spread out.
    Solution:   Move more errors to errors.h.
    Files:      src/errors.h, src/globals.h, src/buffer.c, src/bufwrite.c,
                src/clientserver.c, src/cmdhist.c, src/dict.c, src/edit.c,
                src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c,
                src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/gui_w32.c,
                src/gui_x11.c, src/if_xcmdsrv.c, src/insexpand.c, src/json.c,
                src/match.c, src/menu.c, src/option.c, src/optionstr.c,
                src/os_mswin.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c,
                src/scriptfile.c, src/sign.c, src/spellfile.c, src/undo.c,
                src/userfunc.c, src/vim9cmds.c, src/vim9compile.c,
                src/vim9execute.c, src/vim9expr.c, src/window.c

    Patch 8.2.3971
    Problem:    Build fails.
    Solution:   Use the right error message name.
    Files:      src/typval.c

    Patch 8.2.3972
    Problem:    Error messages are spread out.
    Solution:   Move the last errors from globals.h to errors.h.
    Files:      src/errors.h, src/globals.h, src/eval.c, src/evalfunc.c,
                src/evalvars.c, src/evalwindow.c, src/ex_eval.c, src/list.c,
                src/match.c, src/menu.c, src/popupmenu.c, src/search.c,
                src/vim9cmds.c, src/vim9expr.c

    Patch 8.2.3973
    Problem:    Tiny build fails.
    Solution:   Adjust #ifdefs
    Files:      src/errors.h

    Patch 8.2.3974
    Problem:    Vim9: LISTAPPEND instruction does not check for a locked list.
    Solution:   Check whether the list is locked. (closes #9452)
    Files:      src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3975
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/clientserver.c, src/fileio.c, src/gui.c,
                src/gui_beval.c, src/gui_w32.c, src/gui_x11.c, src/if_cscope.c,
                src/if_xcmdsrv.c, src/os_mswin.c, src/sign.c, src/viminfo.c,
                src/window.c

    Patch 8.2.3976
    Problem:    FEARG_LAST is never used. (Dominique Pellé)
    Solution:   Remove FEARG_LAST and the related code.
    Files:      src/evalfunc.c

    Patch 8.2.3977
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/change.c, src/clientserver.c, src/eval.c,
                src/gui_xim.c, src/if_cscope.c, src/if_py_both.h, src/if_python.c,
                src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/main.c,
                src/mark.c, src/match.c, src/memfile.c, src/memline.c,
                src/terminal.c, src/textprop.c, src/userfunc.c

    Patch 8.2.3978
    Problem:    Build error when using dynamically loaded Python 3.
    Solution:   Adjust #ifdef.
    Files:      src/errors.h

    Patch 8.2.3979
    Problem:    Vim9: the feature is not mentioned in the right places.
    Solution:   Add +vim9script to the help and :version output.
    Files:      runtime/doc/builtin.txt, runtime/doc/various.txt, src/version.c

    Patch 8.2.3980
    Problem:    If 'operatorfunc' invokes an operator the remembered Visual mode
                may be changed. (Naohiro Ono)
    Solution:   Save and restore the information for redoing the Visual area.
                (closes #9455)
    Files:      src/ops.c, src/testdir/test_normal.vim

    Patch 8.2.3981
    Problem:    Vim9: debugging a for loop doesn't stop before it starts.
    Solution:   Keep the DEBUG instruction before the expression is evaluated.
                (closes #9456)
    Files:      src/vim9cmds.c, src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3982
    Problem:    Some lines of code not covered by tests.
    Solution:   Add a few more test cases. (Dominique Pellé, closes #9453)
    Files:      src/testdir/test_filter_map.vim, src/testdir/test_highlight.vim,
                src/testdir/test_regexp_latin.vim, src/testdir/test_search.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3983
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/ex_docmd.c, src/fileio.c, src/filepath.c,
                src/findfile.c, src/hardcopy.c, src/memfile.c, src/memline.c,
                src/menu.c, src/normal.c, src/regexp_bt.c

    Patch 8.2.3984 (after 8.2.3981)
    Problem:    Debugger test fails.
    Solution:   Adjust the test for modified debugging of a for loop.
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.3985
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/findfile.c, src/fold.c, src/hardcopy.c,
                src/highlight.c, src/map.c, src/message.c, src/normal.c,
                src/option.c, src/os_amiga.c, src/os_unix.c, src/os_win32.c,
                src/quickfix.c, src/regexp.c, src/register.c, src/search.c,
                src/syntax.c, src/tag.c, src/term.c, src/typval.c, src/undo.c,
                src/window.c

    Patch 8.2.3986
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c,
                src/fileio.c, src/fold.c, src/gui_x11.c, src/hardcopy.c,
                src/help.c, src/highlight.c, src/if_cscope.c, src/json.c,
                src/map.c, src/netbeans.c, src/popupwin.c, src/usercmd.c,
                src/userfunc.c

    Patch 8.2.3987
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/digraph.c, src/ex_eval.c, src/gui.c,
                src/hardcopy.c, src/if_cscope.c, src/if_tcl.c, src/if_xcmdsrv.c,
                src/mbyte.c, src/misc2.c, src/netbeans.c, src/option.c,
                src/optionstr.c, src/quickfix.c, src/regexp.c, src/tag.c,
                src/term.c, src/viminfo.c

    Patch 8.2.3988 (after 8.2.3987)
    Problem:    Tiny build fails.
    Solution:   Fix misplaced #ifdef.
    Files:      src/errors.h

    Patch 8.2.3989
    Problem:    Some insert completion code is not tested.
    Solution:   Add a few tests.  Refactor thesaurus completion. (Yegappan
                Lakshmanan, closes #9460)
    Files:      src/insexpand.c, src/testdir/test_edit.vim,
                src/testdir/test_ins_complete.vim

    Patch 8.2.3990
    Problem:    Testing wrong operator.
    Solution:   Test "g@" instead of "r_". (Naohiro Ono, closes #9463)
    Files:      src/testdir/test_normal.vim

    Patch 8.2.3991
    Problem:    Vim9: error when extending dict<any> with another type that it was
                initialized with.
    Solution:   Also set the type for dict<any> if the initializer has a more
                specific type. (closes #9461)
    Files:      src/vim9compile.c, src/vim9type.c, src/vim9.h, src/eval.c,
                src/list.c, src/vim9script.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.3992
    Problem:    Wrong local-additions in the help with language mix.
    Solution:   Adjust how the local additions list is generated. (Hirohito
                Higashi, closes #9464)
    Files:      src/help.c, src/testdir/test_help.vim

    Patch 8.2.3993
    Problem:    When recording a change in Select mode the first typed character
                appears twice.
    Solution:   When putting the character back into typeahead remove it from
                recorded characters. (closes #9462)
    Files:      src/getchar.c, src/proto/getchar.pro, src/normal.c,
                src/testdir/test_registers.vim

    Patch 8.2.3994
    Problem:    Vim9: extend() complains about the type even when it was not
                declared.
    Solution:   Only check the list or dict type when it was declared.
    Files:      src/list.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.3995
    Problem:    Not all sshconfig files are detected as such.
    Solution:   Adjust the patterns used for sshconfig detection. (David Auer,
                closes #9322)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.3996
    Problem:    Vim9: type checking for list and dict lacks information about
                declared type.
    Solution:   Add dv_decl_type and lv_decl_type.  Refactor the type stack to
                store two types in each entry.
    Files:      src/structs.h, src/dict.c, src/list.c, src/vim9type.c,
                src/proto/vim9type.pro, src/vim9instr.c, src/proto/vim9instr.pro,
                src/vim9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/evalbuffer.c, src/proto/evalbuffer.pro, src/vim9expr.c,
                src/vim9cmds.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.3997
    Problem:    Vim9: not enough testing for extend() and map().
    Solution:   Add more test cases.  Fix uncovered problems.  Remove unused type
                fields.
    Files:      src/structs.h, src/dict.c, src/list.c, src/vim9compile.c,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.3998
    Problem:    Asan error for adding zero to NULL.
    Solution:   Do not compute pointer if there are no entries.
    Files:      src/vim9type.c

    Patch 8.2.3999
    Problem:    Redundant check for NUL byte.
    Solution:   Remove the check for a NUL byte. (closes #9471)
    Files:      src/ex_docmd.c

    Patch 8.2.4000
    Problem:    Coverity warns for checking for NULL pointer after using it.
    Solution:   Remove check for NULL.
    Files:      src/help.c

    Patch 8.2.4001
    Problem:    Insert complete code uses global variables.
    Solution:   Make variables local to the file and use accessor functions.
                (Yegappan Lakshmanan, closes #9470)
    Files:      src/edit.c, src/getchar.c, src/globals.h, src/insexpand.c,
                src/proto/insexpand.pro, src/search.c

    Patch 8.2.4002
    Problem:    First char typed in Select mode can be wrong.
    Solution:   Escape special bytes in the input buffer. (closes #9469)
    Files:      src/getchar.c, src/testdir/test_utf8.vim

    Patch 8.2.4003
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/channel.c, src/ex_docmd.c, src/ex_eval.c,
                src/gui_at_fs.c, src/hardcopy.c, src/if_cscope.c, src/menu.c,
                src/netbeans.c, src/optionstr.c, src/os_mswin.c, src/sign.c,
                src/typval.c

    Patch 8.2.4004
    Problem:    Old compiler complains about struct init with variable.
    Solution:   Set the struct member later. (John Marriott)
    Files:      src/evalfunc.c

    Patch 8.2.4005
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/dict.c, src/eval.c, src/evalfunc.c,
                src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
                src/filepath.c, src/gui.c, src/gui_w32.c, src/hardcopy.c,
                src/help.c, src/highlight.c, src/if_python.c, src/list.c,
                src/misc1.c, src/normal.c, src/quickfix.c, src/regexp.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/typval.c, src/userfunc.c

    Patch 8.2.4006
    Problem:    Vim9: crash when declaring variable on the command line.
    Solution:   Use a temporary type list. (closes #9474)
    Files:      src/eval.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.4007
    Problem:    Session does not restore help buffer properly when "options' is
                missing from 'sessionoptions'.
    Solution:   Use a ":help" command to create the help window. (closes #9475,
                closes #9458, closes #9472)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.4008
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/diff.c, src/digraph.c, src/evalfunc.c,
                src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
                src/insexpand.c, src/match.c, src/memline.c, src/menu.c,
                src/ops.c, src/profiler.c, src/quickfix.c, src/regexp.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/spell.c,
                src/spell.h, src/spellfile.c, src/strings.c, src/syntax.c,
                src/typval.c, src/undo.c, src/userfunc.c

    Patch 8.2.4009
    Problem:    Reading one byte beyond the end of the line.
    Solution:   Check for NUL byte first.
    Files:      src/vim9compile.c, src/ex_docmd.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4010
    Problem:    Error messages are spread out.
    Solution:   Move more error messages to errors.h.
    Files:      src/errors.h, src/crypt.c, src/diff.c, src/ex_docmd.c,
                src/ex_getln.c, src/fileio.c, src/findfile.c, src/float.c,
                src/gui.c, src/highlight.c, src/if_mzsch.c, src/if_py_both.h,
                src/if_python.c, src/if_python3.c, src/insexpand.c, src/match.c,
                src/memline.c, src/option.c, src/popupwin.c, src/regexp.c,
                src/regexp_nfa.c, src/spellfile.c, src/strings.c, src/syntax.c,
                src/textprop.c, src/typval.c, src/undo.c, src/usercmd.c,
                src/userfunc.c, src/window.c

    Patch 8.2.4011
    Problem:    Test fails because of changed error number.
    Solution:   Restore old duplicate error message.
    Files:      src/errors.h, src/match.c

    Patch 8.2.4012
    Problem:    Error messages are spread out.
    Solution:   Move the last error messages to errors.h.
    Files:      src/errors.h, src/channel.c, src/clientserver.c, src/diff.c,
                src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c,
                src/gui_w32.c, src/help.c, src/if_mzsch.c, src/if_py_both.h,
                src/if_python.c, src/job.c, src/json.c, src/list.c, src/option.c,
                src/optionstr.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c,
                src/register.c, src/scriptfile.c, src/sign.c, src/syntax.c,
                src/tag.c, src/terminal.c, src/textprop.c, src/typval.c,
                src/undo.c, src/userfunc.c, src/vim9compile.c, src/viminfo.c

    Patch 8.2.4013
    Problem:    Build failure without the spell feature.
    Solution:   Adjust #ifdefs.
    Files:      src/errors.h

    Patch 8.2.4014
    Problem:    Git and gitcommit file types not properly recognized.
    Solution:   Adjust filetype detection. (Tim Pope, closes #9477)
    Files:      runtime/filetype.vim, runtime/scripts.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4015
    Problem:    Build failure with tiny features. (Tony Mechelynck)
    Solution:   Adjust #ifdefs.
    Files:      src/errors.h

    Patch 8.2.4016
    Problem:    Vim9: incorrect error for argument that is shadowing var.
    Solution:   Ignore variable that is not in block where the function was
                defined.
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4017
    Problem:    Gcc warns for misleading indent in Athena menu code.
    Solution:   Add curlies around the two statements. (Dominique Pellé,
                closes #9480)
    Files:      src/gui_athena.c

    Patch 8.2.4018
    Problem:    ml_get error when win_execute redraws with Visual selection.
    Solution:   Disable Visual area temporarily. (closes #9479)
    Files:      src/evalwindow.c, src/proto/evalwindow.pro, src/structs.h,
                src/evalbuffer.c, src/proto/evalbuffer.pro, src/evalvars.c,
                src/if_py_both.h, src/evalfunc.c,
                src/testdir/test_execute_func.vim

    Patch 8.2.4019
    Problem:    Vim9: import mechanism is too complicated.
    Solution:   Do not use the Javascript mechanism but a much simpler one.
    Files:      runtime/doc/vim9.txt, src/vim9script.c, src/proto/vim9script.pro,
                src/errors.h, src/structs.h, src/eval.c, src/proto/eval.pro,
                src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c,
                src/vim9expr.c, src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.4020 (after 8.2.4019)
    Problem:    Debugger test fails.
    Solution:   Fix import statement.
    Files:      src/testdir/test_debugger.vim

    Patch 8.2.4021 (after 8.2.4019)
    Problem:    Missing part of the :import changes.
    Solution:   Add changes in vim9cmds.c.
    Files:      src/vim9cmds.c

    Patch 8.2.4022
    Problem:    Two error messages in the wrong file.
    Solution:   Use the error message from errors.h.
    Files:      src/popupwin.c, src/usercmd.c

    Patch 8.2.4023
    Problem:    Using uninitialized variable.
    Solution:   Initialize "ufunc" also when an item is not exported.
    Files:      src/vim9script.c

    Patch 8.2.4024
    Problem:    Confusing error message if imported name is used directly.
    Solution:   Give a better error message.
    Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4025
    Problem:    Error for import not ending in .vim does not work for .vimrc.
    Solution:   Check that .vim is the end. (closes #9484)
    Files:      src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim

    Patch 8.2.4026
    Problem:    ml_get error with specific win_execute() command. (Sean Dewar)
    Solution:   Check cursor and Visual area are OK.
    Files:      src/evalwindow.c, src/testdir/test_execute_func.vim

    Patch 8.2.4027
    Problem:    Import test fails on MS-Windows.
    Solution:   Use a different directory name.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.4028
    Problem:    ml_get error with :doautoall and Visual area. (Sean Dewar)
    Solution:   Disable Visual mode while executing autocommands.
    Files:      src/structs.h, src/autocmd.c, src/testdir/test_autocmd.vim

    Patch 8.2.4029
    Problem:    Debugging NFA regexp my crash, cached indent may be wrong.
    Solution:   Fix some debug warnings in the NFA regexp code.  Make sure log_fd
                is set when used.  Fix breakindent and indent caching. (Christian
                Brabandt, closes #9482)
    Files:      src/indent.c, src/optionstr.c, src/regexp_nfa.c

    Patch 8.2.4030
    Problem:    A script local funcref is not found from a mapping.
    Solution:   When looking for a function, also find a script-local funcref.
                (closes #9485)
    Files:      src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4031
    Problem:    Crash in xterm with only two lines. (Dominique Pellé)
    Solution:   Only perform xterm compatibility test if possible. (closes #9488)
    Files:      src/term.c, src/testdir/test_startup.vim

    Patch 8.2.4032
    Problem:    ATTRIBUTE_NORETURN is not needed.
    Solution:   Use NORETURN(). (Ozaki Kiichi, closes #9487)
    Files:      src/if_ruby.c, src/vim.h

    Patch 8.2.4033
    Problem:    Running filetype tests leaves directory behind.
    Solution:   Delete the top directory. (closes #9483)
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.4034
    Problem:    Coverity warns for possibly using a NULL pointer.
    Solution:   Check v_partial is not NULL.
    Files:      src/vim9type.c

    Patch 8.2.4035
    Problem:    Timer triggered at the debug prompt may cause trouble.
    Solution:   Do not trigger any timer at the debug prompt. (closes #9481)
    Files:      src/time.c

    Patch 8.2.4036
    Problem:    Vim9: script test file is getting too long.
    Solution:   Split the import/export functionality to a separate file.
    Files:      src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim,
                src/testdir/Make_all.mak

    Patch 8.2.4037
    Problem:    Insert mode completion is insufficiently tested.
    Solution:   Add more tests.  Fix uncovered memory leak. (Yegappan Lakshmanan,
                closes #9489)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.4038
    Problem:    Various code not used when features are disabled.
    Solution:   Add #ifdefs. (Dominique Pellé, closes #9491)
    Files:      src/alloc.c, src/buffer.c, src/charset.c, src/clipboard.c,
                src/cmdhist.c, src/crypt.c, src/edit.c, src/eval.c,
                src/evalbuffer.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h,
                src/gui_xim.c, src/hashtab.c, src/highlight.c, src/insexpand.c,
                src/main.c, src/mark.c, src/message.c, src/misc1.c, src/misc2.c,
                src/ops.c, src/option.c, src/option.h, src/optionstr.c,
                src/register.c, src/scriptfile.c, src/tag.c, src/term.c,
                src/typval.c, src/usercmd.c, src/userfunc.c, src/vim9script.c,
                src/vim9type.c

    Patch 8.2.4039
    Problem:    The xdiff library is linked in even when not used.
    Solution:   Use configure to decide whether xdiff object files are included.
    Files:      src/Makefile, src/config.mk.in, src/configure.ac,
                src/auto/configure, src/feature.h

    Patch 8.2.4040
    Problem:    Keeping track of allocated lines in user functions is too
                complicated.
    Solution:   Instead of freeing individual lines keep them all until the end.
    Files:      src/alloc.c, src/proto/alloc.pro, src/vim9compile.c,
                src/userfunc.c, src/proto/userfunc.pro, src/message.c,
                src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4041
    Problem:    Using uninitialized pointer.
    Solution:   Store "ht" when variable is in another script.
    Files:      src/evalvars.c

    Patch 8.2.4042
    Problem:    Vim9: build error.
    Solution:   Use grow array instead of character pointer.
    Files:      src/vim9execute.c

    Patch 8.2.4043
    Problem:    Using int for second argument of ga_init2().
    Solution:   Remove unnecessary type cast (int) when using sizeof().
    Files:      src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c,
                src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
                src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c,
                src/findfile.c, src/fold.c, src/hardcopy.c, src/help.c,
                src/job.c, src/list.c, src/menu.c, src/os_win32.c, src/register.c,
                src/scriptfile.c, src/spellfile.c, src/spellsuggest.c,
                src/strings.c, src/syntax.c, src/tag.c, src/terminal.c,
                src/undo.c, src/usercmd.c, src/userfunc.c, src/vim9execute.c,
                src/viminfo.c, src/window.c, src/if_py_both.h

    Patch 8.2.4044
    Problem:    Vim9: no error when importing the same script twice.
    Solution:   Give an error, unless it is a reload.
    Files:      src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim

    Patch 8.2.4045
    Problem:    Some global functions are only used in one file.
    Solution:   Make the functions static. (Yegappan Lakshmanan, closes #9492)
    Files:      src/ex_getln.c, src/highlight.c, src/proto/ex_getln.pro,
                src/proto/highlight.pro, src/proto/vim9compile.pro,
                src/proto/vim9instr.pro, src/proto/window.pro, src/vim9compile.c,
                src/vim9instr.c, src/window.c

    Patch 8.2.4046
    Problem:    Some error messages not in the right place.
    Solution:   Adjust the errors file.  Fix typo.
    Files:      src/errors.h, src/regexp_bt.c, src/typval.c,

    Patch 8.2.4047
    Problem:    Depending on the build features error messages are unused.
    Solution:   Add #ifdefs. (Dominique Pellé, closes #9493)
    Files:      src/errors.h

    Patch 8.2.4048
    Problem:    gcc complains about use of "%p" in printf.
    Solution:   Add (void *) typecast. (Dominique Pellé, closes #9494)
    Files:      src/if_py_both.h

    Patch 8.2.4049
    Problem:    Vim9: reading before the start of the line with "$" by itself.
    Solution:   Do not subtract one when reporting the error.
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4050
    Problem:    Vim9: need to prefix every item in an autoload script.
    Solution:   First step in supporting "vim9script autoload" and "import
                autoload".
    Files:      runtime/doc/repeat.txt, runtime/doc/vim9.txt, src/structs.h,
                src/errors.h, src/vim9script.c, src/scriptfile.c,
                src/proto/scriptfile.pro, src/userfunc.c, src/eval.c,
                src/evalvars.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim9expr.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4051
    Problem:    Compiler complains about possibly uninitialized variable.
    Solution:   Add code to avoid a compiler warning. (John Marriott)
    Files:      src/scriptfile.c

    Patch 8.2.4052
    Problem:    Not easy to resize a window from a plugin.
    Solution:   Add win_move_separator() and win_move_statusline() functions.
                (Daniel Steinberg, closes #9486)
    Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/evalwindow.c, src/proto/evalwindow.pro,
                src/testdir/test_window_cmd.vim

    Patch 8.2.4053
    Problem:    Vim9: autoload mechanism doesn't fully work yet.
    Solution:   Define functions and variables with their autoload name, add the
                prefix when calling a function, find the variable in the table of
                script variables.
    Files:      src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro,
                src/vim9script.c, src/proto/vim9script.pro, src/userfunc.c,
                src/evalvars.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4054 (after 8.2.4053)
    Problem:    Vim9 script test fails.
    Solution:   Add missing change.
    Files:      src/vim9compile.c

    Patch 8.2.4055
    Problem:    Vim9: line break in expression causes v:errmsg to be filled.
                (Yegappan Lakshmanan)
    Solution:   Do not give an error when skipping over an expression.
    Files:      src/userfunc.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4056
    Problem:    Vim9: memory leak when exporting function in autoload script.
    Solution:   Free the name if replacing it.
    Files:      src/scriptfile.c

    Patch 8.2.4057
    Problem:    Vim9: not fully implementing the autoload mechanism.
    Solution:   Allow for exporting a legacy function.  Improve test coverage.
    Files:      src/vim9script.c, src/testdir/test_vim9_import.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4058
    Problem:    Vim9: import test failure in wrong line.
    Solution:   Adjust line number.
    Files:      src/testdir/test_vim9_import.vim

    Patch 8.2.4059
    Problem:    Vim9: an expression of a map cannot access script-local items.
                (Maxim Kim)
    Solution:   Use the script ID of where the map was defined.
    Files:      src/getchar.c, src/map.c, src/proto/map.pro,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4060
    Problem:    win_execute() is slow on systems where getcwd() or chdir() is
                slow. (Rick Howe)
    Solution:   Avoid using getcwd() and chdir() if no local directory is used and
                'acd' is not set. (closes #9504)
    Files:      src/evalwindow.c

    Patch 8.2.4061
    Problem:    Codecov bash script is deprecated.
    Solution:   Use the codecov action. (Ozaki Kiichi, closes #9505)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4062
    Problem:    Match highlighting of tab too short.
    Solution:   Do not stop match highlighting if on a Tab. (Christian Brabandt,
                closes #9507, closes #9500)
    Files:      src/drawline.c, src/testdir/test_match.vim,
                src/testdir/dumps/Test_match_tab_linebreak.dump

    Patch 8.2.4063
    Problem:    Vim9: exported function in autoload script not found. (Yegappan
                Lakshmanan)
    Solution:   Use the autoload prefix to search for the function.
    Files:      src/userfunc.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4064
    Problem:    Foam files are not detected.
    Solution:   Detect the foam filetype by the path and file contents. (Mohammed
                Elwardi Fadeli, closes #9501)
    Files:      runtime/filetype.vim, runtime/autoload/dist/ft.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4065
    Problem:    Computation overflow with large count for :yank.
    Solution:   Avoid an overflow.
    Files:      src/ex_docmd.c, src/testdir/test_excmd.vim

    Patch 8.2.4066
    Problem:    Vim9: imported autoload script loaded again.
    Solution:   Do not create a new imported_T every time.
    Files:      src/vim9script.c, src/vim9compile.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4067
    Problem:    Vim9: cannot call imported function with :call. (Drew Vogel)
    Solution:   Translate the function name. (closes #9510)
    Files:      src/userfunc.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4068 (after 8.2.4066)
    Problem:    Vim9: import test fails.
    Solution:   Add missing change.
    Files:      src/scriptfile.c

    Patch 8.2.4069
    Problem:    Vim9: import test fails on MS-Windows.
    Solution:   Ignore case.  Adjust test to avoid name that only differs in case.
    Files:      src/eval.c, src/scriptfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4070
    Problem:    Using uninitialized memory when reading empty file.
    Solution:   Check for empty file before checking for NL. (Dominique Pellé,
                closes #9511)
    Files:      src/filepath.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.4071
    Problem:    Vim9: no detection of return in try/endtry. (Dominique Pellé)
    Solution:   Check if any of the blocks inside try/endtry did not end in
                return.
    Files:      src/vim9.h, src/vim9compile.c, src/vim9cmds.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4072
    Problem:    Vim9: compiling function fails when autoload script is not loaded
                yet.
    Solution:   Depend on runtime loading.
    Files:      src/vim9expr.c, src/vim9script.c, src/vim9instr.c,
                src/vim9execute.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4073
    Problem:    Coverity warns for using NULL pointer.
    Solution:   Bail out when running out of memory. Check for running over end of
                a string.
    Files:      src/userfunc.c,

    Patch 8.2.4074
    Problem:    Going over the end of NameBuff.
    Solution:   Check length when appending a space.
    Files:      src/drawscreen.c, src/testdir/test_edit.vim

    Patch 8.2.4075 (after 8.2.4073)
    Problem:    Test failures.
    Solution:   Change check for NULL pointer.
    Files:      src/userfunc.c

    Patch 8.2.4076
    Problem:    Memory leak in autoload import.
    Solution:   Do not overwrite the autoload prefix.
    Files:      src/vim9script.c

    Patch 8.2.4077
    Problem:    Not all Libsensors files are recognized.
    Solution:   Add "sensors.d/*" pattern. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4078
    Problem:    Terminal test for current directory not used on FreeBSD.
    Solution:   Make it work on FreeBSD. (Ozaki Kiichi, closes #9516) Add
                TermWait() inside Run_shell_in_terminal() as a generic solution.
    Files:      src/testdir/test_terminal3.vim, src/testdir/term_util.vim,
                src/testdir/test_terminal.vim, src/testdir/test_terminal2.vim,
                src/testdir/test_mapping.vim

    Patch 8.2.4079
    Problem:    MS-Windows: "gvim --version" didn't work when build with VIMDLL.
    Solution:   Adjust #ifdef. (Ken Takata, closes #9517)
    Files:      src/main.c

    Patch 8.2.4080
    Problem:    Not sufficient test coverage for xxd.
    Solution:   Add a few more test cases. (Erki Auerswald, closes #9515)
    Files:      src/testdir/test_xxd.vim

    Patch 8.2.4081
    Problem:    CodeQL reports problem in if_cscope causing it to fail.
    Solution:   Use execvp() instead of execl().  Merge the header file into the
                source file. (Ozaki Kiichi, closes #9519)
    Files:      Filelist, src/Make_cyg_ming.mak, src/Make_mvc.mak,
                src/Make_vms.mms, src/Makefile, src/if_cscope.c, src/if_cscope.h,
                src/testdir/test_cscope.vim

    Patch 8.2.4082
    Problem:    Check for autoload file name and prefix fails. (Christian J.
                Robinson)
    Solution:   Only lower case the prefix on systems where the file name is not
                case sensitive.
    Files:      src/scriptfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4083
    Problem:    Vim9: no test for "vim9script autoload" and using script variable
                in the same script.
    Solution:   Add a simple test.  Fix uncovered problem.
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4084
    Problem:    Memory leak when looking for autoload prefixed variable.
    Solution:   Free the concatenated string.
    Files:      src/evalvars.c

    Patch 8.2.4085
    Problem:    Vim9: no test for using import in legacy script.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_import.vim

    Patch 8.2.4086
    Problem:    "cctx" argument of find_func_even_dead() is unused.
    Solution:   Remove the argument.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim9compile.c,
                src/vim9instr.c, src/evalfunc.c, src/evalvars.c, src/testing.c,
                src/vim9execute.c, src/vim9expr.c, src/vim9script.c,
                src/vim9type.c

    Patch 8.2.4087
    Problem:    Cannot test items from an autoload script easily.
    Solution:   Add the "autoload" value for test_override().
    Files:      runtime/doc/testing.txt, src/testing.c, src/globals.h,
                src/vim9script.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4088
    Problem:    Xxd cannot output everything in one line.
    Solution:   Make zero columns mean infinite columns. (Erik Auerswald,
                closes #9524)
    Files:      runtime/doc/xxd.1, runtime/doc/xxd.man, src/testdir/test_xxd.vim,
                src/xxd/xxd.c

    Patch 8.2.4089 (after 8.2.4078)
    Problem:    Terminal test for current directory fails on FreeBSD.
    Solution:   Skip the test.
    Files:      src/testdir/test_terminal3.vim

    Patch 8.2.4090
    Problem:    After restoring a session buffer order can be quite different.
    Solution:   Create buffers first. (Evgeni Chasnovski, closes #9520)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.4091
    Problem:    Virtcol is recomputed for statusline unnecessarily.
    Solution:   Just use "w_virtcol". (closes #9523)
    Files:      src/buffer.c, src/testdir/test_statusline.vim

    Patch 8.2.4092
    Problem:    macOS CI: unnecessarily doing "Install packages".
    Solution:   Only do "Install packages" for huge build.  (Ozaki Kiichi,
                closes #9521)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4093
    Problem:    Cached breakindent values not initialized properly.
    Solution:   Initialize and cache formatlistpat. (Christian Brabandt,
                closes #9526, closes #9512)
    Files:      runtime/doc/options.txt, src/indent.c, src/option.c,
                src/proto/option.pro, src/testdir/test_breakindent.vim

    Patch 8.2.4094
    Problem:    'virtualedit' is window-local but using buffer-local enum.
    Solution:   Use window-local enum. (closes #9529)
    Files:      src/option.h, src/optiondefs.h

    Patch 8.2.4095
    Problem:    Sed script not recognized by the first line.
    Solution:   Recognize a sed script starting with "#n". (Doug Kearns)
    Files:      runtime/scripts.vim, src/testdir/test_filetype.vim

    Patch 8.2.4096
    Problem:    Linux CI: unnecessarily installing packages
    Solution:   Only install packages for huge build.  (Ozaki Kiichi,
                closes #9530)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4097
    Problem:    Wrong number in error message on 32 bit system. (John Paul Adrian
                Glaubitz)
    Solution:   Add type cast. (closes #9527)
    Files:      src/vim9compile.c

    Patch 8.2.4098
    Problem:    Typing "interrupt" at debug prompt may keep exception around,
                causing function calls to fail.
    Solution:   Discard any exception at the toplevel. (closes #9532)
    Files:      src/main.c

    Patch 8.2.4099
    Problem:    Vim9: cannot use Vim9 syntax in mapping.
    Solution:   Add <ScriptCmd> to use the script context for a command.
    Files:      runtime/doc/map.txt, src/normal.c, src/getchar.c,
                src/proto/getchar.pro, src/ex_getln.c, src/edit.c, src/terminal.c,
                src/keymap.h, src/insexpand.c, src/misc2.c, src/ops.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4100
    Problem:    Early return when getting the 'formatlistpat' value.
    Solution:   Remove the first line. (Christian Brabandt)
    Files:      src/option.c, src/testdir/test_breakindent.vim

    Patch 8.2.4101
    Problem:    Warning for unused argument in tiny version.
    Solution:   Add "UNUSED".
    Files:      src/getchar.c

    Patch 8.2.4102
    Problem:    Vim9: import cannot be used after method.
    Solution:   Recognize an imported function name. (closes #9496)
    Files:      src/eval.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4103
    Problem:    Vim9: variable declared in for loop not initialized.
    Solution:   Always initialize the variable. (closes #9535)
    Files:      src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4104
    Problem:    Vim9: lower casing the autoload prefix causes problems.
    Solution:   Always store the prefix with case preserved.
    Files:      src/scriptfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4105
    Problem:    Translation related comment in the wrong place.
    Solution:   Move it back with the text. (Ken Takata, closes #9537)
    Files:      src/errors.h, src/ex_docmd.c

    Patch 8.2.4106
    Problem:    Going over the end of the w_lines array.
    Solution:   Break out of the loop when "idx" is too big. (issue #9540)
    Files:      src/drawscreen.c

    Patch 8.2.4107
    Problem:    Script context not restored after using <ScriptCmd>.
    Solution:   Also restore context when not in a script. (closes #9536)
                Add the 'c' flag to feedkeys() to be able to test this.
    Files:      runtime/doc/builtin.txt, src/getchar.c, src/evalfunc.c,
                src/testdir/test_mapping.vim

    Patch 8.2.4108
    Problem:    Going over the end of the w_lines array.
    Solution:   Check not going over the end and limit to Rows. (issue #9540)
    Files:      src/drawscreen.c

    Patch 8.2.4109
    Problem:    MS-Windows: high dpi support is outdated.
    Solution:   Improve High DPI support by using PerMonitorV2. (Ken Takata
                closes #9525, closes #3102)
    Files:      src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest

    Patch 8.2.4110
    Problem:    Coverity warns for using NULL pointer.
    Solution:   Check "evalarg" is not NULL.  Skip errors when "verbose" is false.
    Files:      src/eval.c

    Patch 8.2.4111
    Problem:    Potential problem when map is deleted while executing.
    Solution:   Reset last used map pointer when deleting a mapping.
    Files:      src/map.c

    Patch 8.2.4112
    Problem:    Function not deleted at end of test.
    Solution:   Delete the function.
    Files:      src/testdir/test_diffmode.vim

    Patch 8.2.4113
    Problem:    Typo on DOCMD_RANGEOK results in not recognizing command.
    Solution:   Correct the typo. (closes #9539)
    Files:      src/vim.h, src/testdir/test_mapping.vim

    Patch 8.2.4114
    Problem:    Vim9: type checking for a funcref does not work for when it is
                used in a method.
    Solution:   Pass the base to where the type is checked.
    Files:      src/vim9type.c, src/proto/vim9type.pro, src/userfunc.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.4115
    Problem:    Cannot use a method with a complex expression.
    Solution:   Evaluate the expression after "->" and use the result.
    Files:      src/eval.c, src/errors.h, src/testdir/test_vim9_expr.vim

    Patch 8.2.4116
    Problem:    Vim9: cannot use a method with a complex expression in a :def
                function.
    Solution:   Implement compiling the expression.
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4117
    Problem:    Vim9: wrong white space error after using imported item.
    Solution:   Don't skip over white space. (closes #9544)
    Files:      src/eval.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4118
    Problem:    Using UNUSED for argument that is used.
    Solution:   Remove UNUSED.
    Files:      src/usercmd.c

    Patch 8.2.4119
    Problem:    Build failure when disabling the channel feature.
    Solution:   Adjust #ifdef. (Dominique Pellé, closes #9545)
    Files:      src/misc2.c

    Patch 8.2.4120
    Problem:    Block insert goes over the end of the line.
    Solution:   Handle invalid byte better.  Fix inserting the wrong text.
    Files:      src/ops.c, src/testdir/test_visual.vim

    Patch 8.2.4121
    Problem:    Visual test fails on MS-Windows.
    Solution:   Set 'isprint' so that the character used is not printable.
    Files:      src/testdir/test_visual.vim

    Patch 8.2.4122
    Problem:    ":command Cmd" does not show custom completion argument.
    Solution:   Show the completion argument when using ":verbose".
    Files:      src/usercmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.4123
    Problem:    Complete function cannot be import.Name.
    Solution:   Dereference the function name if needed.  Also: do not see
                "import.Name" as a builtin function. (closes #9541)
    Files:      src/userfunc.c, src/eval.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4124
    Problem:    Vim9: method in compiled function may not see script item.
    Solution:   Make sure not to skip to the next line. (closes #9496)
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4125
    Problem:    Completion tests fail.
    Solution:   Disable error messages while dereferencing the function name.
    Files:      src/eval.c

    Patch 8.2.4126
    Problem:    Crash on exit when built with dynamic Tcl and EXITFREE is defined.
                (Dominique Pellé)
    Solution:   Only call Tcl_Finalize() when initialized. (closes #9546)
    Files:      src/if_tcl.c

    Patch 8.2.4127
    Problem:    Build failure without the +eval feature.
    Solution:   Add #ifdef.
    Files:      src/usercmd.c

    Patch 8.2.4128
    Problem:    Crash when method cannot be found. (Christian J. Robinson)
    Solution:   Don't mix up pointer names.
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4129
    Problem:    Building with +sound but without +eval fails. (Dominique Pellé)
    Solution:   Disable canberra in tiny and small build. (closes #9548)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.4130
    Problem:    MS-Windows: MSVC build may have libraries duplicated.
    Solution:   Improve the MSVC Makefile. (Ken Takata, closes #9547)
    Files:      src/Make_mvc.mak

    Patch 8.2.4131
    Problem:    Vim9: calling function in autoload import does not work in a :def
                function.
    Solution:   When a variable is not found and a PCALL follows use a funcref.
                (closes #9550)
    Files:      src/vim9execute.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4132
    Problem:    Vim9: wrong error message when autoload script can't be found.
    Solution:   Correct check for using autoload with wrong name.
    Files:      src/vim9script.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4133
    Problem:    output of ":scriptnames" goes into the message history, while this
                does not happen for other commands, such as ":ls".
    Solution:   Use msg_outtrans() instead of smsg(). (closes #9551)
    Files:      src/scriptfile.c, src/testdir/test_scriptnames.vim

    Patch 8.2.4134
    Problem:    MS-Windows: test for import with absolute path fails.
    Solution:   Handle path starting with slash as an absolute path.
    Files:      src/vim9script.c

    Patch 8.2.4135
    Problem:    Vim9: ":scriptnames" shows unloaded imported autoload script.
    Solution:   Mark the unloaded script with "A". (closes #9552)
    Files:      runtime/doc/repeat.txt, src/scriptfile.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4136
    Problem:    Vim9: the "autoload" argument of ":vim9script" is not useful.
    Solution:   Remove the argument. (closes #9555)
    Files:      runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/vim9script.c,
                src/errors.h, src/testdir/test_vim9_import.vim

    Patch 8.2.4137
    Problem:    Vim9: calling import with and without method is inconsistent.
    Solution:   Set a flag that a parenthesis follows to compile_load_scriptvar().
                Add some more tests.  Improve error message.
    Files:      src/vim9expr.c, src/vim9execute.c, src/vim9script.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4138
    Problem:    Vim9: no error for return with argument when the function does not
                return anything.
    Solution:   Give an error for the invalid argument. (issue #9497)
    Files:      src/vim9cmds.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4139
    Problem:    Using freed memory if an expression abbreviation deletes the
                abbreviation.
    Solution:   Do not access the pointer after evaluating the expression.
    Files:      src/map.c, src/testdir/test_mapping.vim

    Patch 8.2.4140
    Problem:    maparg() does not indicate the type of script where it was defined.
    Solution:   Add "scriptversion".
    Files:      runtime/doc/builtin.txt, src/map.c, src/testdir/test_maparg.vim

    Patch 8.2.4141 (after 8.2.4140)
    Problem:    Vim9 builtin functions test fails.
    Solution:   Add "scriptversion" item to maparg() result.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.4142
    Problem:    Build failure with normal features without persistent undo.
    Solution:   Adjust #ifdef. (closes #9557)
    Files:      src/fileio.c

    Patch 8.2.4143
    Problem:    MS-Windows: IME support for Win9x is obsolete.
    Solution:   Remove the Win9x code. (Ken Takata, closes #9559)
    Files:      src/gui_w32.c

    Patch 8.2.4144
    Problem:    Cannot load libsodium dynamically.
    Solution:   Support dynamic loading on MS-Windows. (Ken Takata, closes #9554)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/buffer.c,
                src/crypt.c, src/memline.c, src/proto/crypt.pro

    Patch 8.2.4145
    Problem:    Confusing error when using name of import for a function.
    Solution:   Pass a flag to trans_function_name().
    Files:      src/vim.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4146
    Problem:    Vim9: shadowed function can be used in compiled function but not
                at script level.
    Solution:   Also give an error in a compiled function. (closes #9563)
    Files:      src/vim9expr.c

    Patch 8.2.4147
    Problem:    E464 does not always include the offending command.
    Solution:   Add another error message with "%s". (closes #9564)
    Files:      src/errors.h, src/vim9compile.c, src/ex_docmd.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4148
    Problem:    Deleting any mapping may cause <ScriptCmd> to not set the script
                context.
    Solution:   Only reset last_used_map if it is the deleted mapping.
                (closes #9568)
    Files:      src/map.c, src/getchar.c, src/proto/getchar.pro,
                src/testdir/test_mapping.vim

    Patch 8.2.4149
    Problem:    Test override not restored, autocommand left behind.
    Solution:   Correct restoring test override.  Delete autocommand afterwards.
    Files:      src/testdir/test_autocmd.vim, src/testdir/test_mapping.vim

    Patch 8.2.4150
    Problem:    Coverity warns for using pointer after free.
    Solution:   Swap statements, even though using the pointer is no problem.
    Files:      src/map.c

    Patch 8.2.4151
    Problem:    Reading beyond the end of a line.
    Solution:   For block insert only use the offset for correcting the length.
    Files:      src/ops.c, src/testdir/test_visual.vim

    Patch 8.2.4152
    Problem:    Block insert with double wide character fails.
    Solution:   Adjust the expected output.
    Files:      src/testdir/test_utf8.vim

    Patch 8.2.4153
    Problem:    MS-Windows: Global IME is no longer supported.
    Solution:   Remove the Global IME implementation. (Ken Takata, closes #9562)
    Files:      Filelist, runtime/doc/mbyte.txt, src/Make_mvc.mak, src/dimm.idl,
                src/glbl_ime.cpp, src/glbl_ime.h, src/gui_w32.c, src/vim.h

    Patch 8.2.4154
    Problem:    ml_get error when exchanging windows in Visual mode.
    Solution:   Correct end of Visual area when entering another buffer.
    Files:      src/window.c, src/testdir/test_visual.vim

    Patch 8.2.4155
    Problem:    Translating strftime() argument results in check error.
    Solution:   Add gettext comment.
    Files:      src/time.c

    Patch 8.2.4156
    Problem:    Fileinfo message overwrites echo'ed message.
    Solution:   Reset need_fileinfo when displaying a message. (Rob Pilling,
                closes #9569)
    Files:      src/message.c, src/testdir/test_messages.vim,
                src/testdir/dumps/Test_fileinfo_after_echo.dump

    Patch 8.2.4157
    Problem:    Terminal test fails because Windows sets the title.
    Solution:   Add the "vterm_title" testing override and use it in the test.
                (Ozaki Kiichi, closes #9556)
    Files:      runtime/doc/testing.txt, src/globals.h, src/terminal.c,
                src/testing.c, src/testdir/test_terminal.vim

    Patch 8.2.4158
    Problem:    MS-Windows: memory leak in :browse.
    Solution:   Free stuff before returning. (Ken Takata, closes #9574)
    Files:      src/gui_w32.c

    Patch 8.2.4159
    Problem:    MS-Windows: _WndProc() is very long.
    Solution:   Move code to separate functions. (Ken Takata, closes #9573)
    Files:      src/gui_w32.c

    Patch 8.2.4160
    Problem:    Cannot change the register used for Select mode delete.
    Solution:   Make CTRL-R set the register to be used when deleting text for
                Select mode. (Shougo Matsushita, closes #9531)
    Files:      runtime/doc/visual.txt, src/globals.h, src/normal.c, src/ops.c,
                src/testdir/test_selectmode.vim

    Patch 8.2.4161
    Problem:    Vim9: warning for missing white space after imported variable.
    Solution:   Do not skip white space. (closes #9567)
    Files:      src/vim9expr.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4162
    Problem:    Vim9: no error for redefining function with export.
    Solution:   Check for existing function with/without prefix. (closes #9577)
    Files:      src/userfunc.c, src/scriptfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4163
    Problem:    No error for omitting function name after autoload prefix.
    Solution:   Check for missing function name. (issue #9577)
    Files:      src/userfunc.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4164 (after 8.2.4162)
    Problem:    Error in legacy code for function shadowing variable.
    Solution:   Only give the error in Vim9 script.
    Files:      src/userfunc.c

    Patch 8.2.4165
    Problem:    The nv_g_cmd() function is too long.
    Solution:   Move code to separate functions. (Yegappan Lakshmanan,
                closes #9576)
    Files:      src/normal.c

    Patch 8.2.4166
    Problem:    Undo synced when switching buffer in another window.
    Solution:   Do not sync undo when not needed. (closes #9575)
    Files:      src/buffer.c, src/testdir/test_timers.vim

    Patch 8.2.4167
    Problem:    Vim9: error message for old style import.
    Solution:   Use another error message.  Add a test.
    Files:      src/evalvars.c, src/errors.h, src/testdir/test_vim9_import.vim

    Patch 8.2.4168 (after 8.2.4163)
    Problem:    Disallowing empty function name breaks existing plugins.
    Solution:   Allow empty function name in legacy script.
    Files:      src/userfunc.c, src/testdir/test_autoload.vim,
                src/testdir/sautest/autoload/foo.vim

    Patch 8.2.4169
    Problem:    MS-Windows: unnecessary casts and other minor things.
    Solution:   Clean up the MS-Windows code. (Ken Takata, closes #9583)
    Files:      src/gui_w32.c

    Patch 8.2.4170
    Problem:    MS-Windows: still using old message API calls.
    Solution:   Call the "W" functions directly. (Ken Takata, closes #9582)
    Files:      src/gui_w32.c, src/os_mswin.c, src/os_win32.c, src/os_win32.h

    Patch 8.2.4171
    Problem:    Cannot invoke option function using autoload import.
    Solution:   Expand the import to an autoload function name. (closes #9578)
    Files:      src/userfunc.c, src/evalvars.c, src/proto/evalvars.pro,
                src/option.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4172
    Problem:    Filetype detection for BASIC is not optimal.
    Solution:   Improve BASIC filetype detection. (Doug Kearns)
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4173
    Problem:    Cannot use an import in 'foldexpr'.
    Solution:   Set the script context to where 'foldexpr' was set. (closes #9584)
                Fix that the script context was not set for all buffers.
    Files:      src/eval.c, src/proto/eval.pro, src/fold.c, src/structs.h,
                src/option.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4174
    Problem:    Vim9: can use an autoload name in normal script.
    Solution:   Disallow using an autoload name.
    Files:      src/userfunc.c, src/errors.h, src/testdir/test_vim9_import.vim

    Patch 8.2.4175
    Problem:    MS-Windows: runtime check for multi-line balloon is obsolete.
    Solution:   Remove the obsolete code. (Ken Takata, closes #9592)
    Files:      src/evalfunc.c, src/gui_w32.c, src/proto/gui_w32.pro

    Patch 8.2.4176
    Problem:    Vim9: cannot use imported function with call().
    Solution:   Translate the function name. (closes #9590)
    Files:      src/evalfunc.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4177
    Problem:    Vim9: autoload script not loaded after "vim9script noclear".
    Solution:   Check IMP_FLAGS_AUTOLOAD properly. (closes #9593)
    Files:      src/vim9compile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4178
    Problem:    Vim9: invalid error for return type of lambda when debugging.
    Solution:   Do not check the return type of a lambda. (closes #9589)
    Files:      src/vim9cmds.c

    Patch 8.2.4179
    Problem:    'foldtext' is evaluated in the current script context.
    Solution:   Use the script context where the option was set.
    Files:      src/fold.c, src/buffer.c, src/eval.c, src/proto/eval.pro,
                src/findfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4180
    Problem:    'balloonexpr' is evaluated in the current script context.
    Solution:   Use the script context where the option was set.
    Files:      src/beval.c, src/option.c, src/proto/option.pro,
                src/testdir/test_balloon.vim,
                src/testdir/dumps/Test_balloon_eval_term_01.dump,
                src/testdir/dumps/Test_balloon_eval_term_01a.dump,
                src/testdir/dumps/Test_balloon_eval_term_02.dump

    Patch 8.2.4181
    Problem:    Vim9: cannot use an import in 'diffexpr'.
    Solution:   Set the script context when evaluating 'diffexpr'.  Do not require
                'diffexpr' to return a bool, it was ignored anyway.
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4182 (after 8.2.4182)
    Problem:    Memory leak when evaluating 'diffexpr'.
    Solution:   Use free_tv() instead of clear_tv().
    Files:      src/evalvars.c

    Patch 8.2.4183
    Problem:    Cannot use an import in 'formatexpr'.
    Solution:   Set the script context when evaluating 'formatexpr'.
    Files:      src/textformat.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4184
    Problem:    Cannot use an import in 'includeexpr'.
    Solution:   Set the script context when evaluating 'includeexpr'
    Files:      src/findfile.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4185
    Problem:    Cannot use an import in 'indentexpr'.
    Solution:   Set the script context when evaluating 'indentexpr'
    Files:      src/indent.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4186
    Problem:    Cannot use an import in 'patchexpr'.
    Solution:   Set the script context when evaluating 'patchexpr'.  Do not
                require 'patchexpr' to return a bool, it was ignored anyway.
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4187
    Problem:    Gnuplot file not recognized.
    Solution:   Recognize ".gnuplot". (closes #9588)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4188
    Problem:    Not all gitconfig files are recognized.
    Solution:   Add a few more patterns. (Tim Pope, closes #9597)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4189
    Problem:    MS-Windows: code for "old look" is obsolete.
    Solution:   Delete obsolete code.  Use "MS Shell Dlg" font. (Ken Takata,
                closes #9596)
    Files:      src/gui_w32.c

    Patch 8.2.4190
    Problem:    All conceal tests are skipped without the screendumps feature.
    Solution:   Only skip the tests that use screendumps. (closes #9599)
    Files:      src/testdir/test_conceal.vim

    Patch 8.2.4191
    Problem:    json5 files are not recognized.
    Solution:   Add a pattern for json5 files. (closes #9601)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4192
    Problem:    Cannot use an import in 'printexpr'.
    Solution:   Set the script context when evaluating 'printexpr'.
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4193
    Problem:    Cannot use an import in 'charconvert'.
    Solution:   Set the script context when evaluating 'charconvert'.  Also expand
                script-local functions in 'charconvert'.
    Files:      src/evalvars.c, src/optionstr.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4194
    Problem:    MS-Windows: code for calculating font size is duplicated.
    Solution:   Move the code to a function. (Ken Takata, closes #9603)
    Files:      src/gui_w32.c

    Patch 8.2.4195
    Problem:    Resizing terminal may cause to behave like CTRL-Z.
    Solution:   Set "got_tstp" only when in_mch_suspend is set. (Dorian Bivolaru,
                closes #9602, closes #9586)
    Files:      src/os_unix.c

    Patch 8.2.4196
    Problem:    Various file types not recognized.
    Solution:   Add patterns to recognize more file types (closes #9607)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4197
    Problem:    Cannot use an import in the "expr" part of 'spellsuggest'.
    Solution:   Set the script context when evaluating "expr" of 'spellsuggest'.
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4198
    Problem:    Vim9: the switch for executing instructions is too long.
    Solution:   Move some code to separate functions.
    Files:      src/vim9execute.c

    Patch 8.2.4199
    Problem:    MS-Windows: Support for MSVC before 2003 is not useful.
    Solution:   Remove the exceptions for MSVC 6.0. (Ken Takata, closes #9616)
    Files:      src/GvimExt/gvimext.h, src/ex_docmd.c, src/feature.h,
                src/gui_w32.c, src/if_cscope.c, src/if_ole.cpp, src/if_ruby.c,
                src/macros.h, src/os_mswin.c, src/os_win32.c, src/os_win32.h,
                src/proto/os_win32.pro, src/time.c, src/vim.h

    Patch 8.2.4200
    Problem:    Some tests do not clean up properly.
    Solution:   Delete created files. (Yegappan Lakshmanan, closes #9611)
    Files:      src/testdir/test_filetype.vim, src/testdir/test_messages.vim,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4201
    Problem:    When using the GUI CTRL-Z does not stop gvim.
    Solution:   When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev,
                closes #9570)
    Files:      src/os_unix.c

    Patch 8.2.4202
    Problem:    Vim9: cannot export function that exists globally.
    Solution:   When checking if a function already exists only check for
                script-local functions. (closes #9615)
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim.h,
                src/vim9compile.c, src/vim9instr.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4203
    Problem:    Entering a character with CTRL-V may include modifiers.
    Solution:   Reset "mod_mask" when entering a character with digits after
                CTRL-V. (closes #9610)
    Files:      src/edit.c, src/testdir/test_edit.vim

    Patch 8.2.4204
    Problem:    screenpos() has non-zero row for invisible text.
    Solution:   Only add the window row when the text is visible. (closes #9618)
    Files:      src/move.c, src/testdir/test_cursor_func.vim

    Patch 8.2.4205
    Problem:    The normal_cmd() function is too long.
    Solution:   Move parts to separate functions. (Yegappan Lakshmanan,
                closes #9608)
    Files:      src/normal.c

    Patch 8.2.4206
    Problem:    Condition with many "(" causes a crash.
    Solution:   Limit recursion to 1000.
    Files:      src/errors.h, src/eval.c, src/testdir/test_eval_stuff.vim

    Patch 8.2.4207 (after 8.2.4206)
    Problem:    Recursion test fails with MSVC.
    Solution:   Use a smaller limit for MSVC.
    Files:      src/eval.c

    Patch 8.2.4208
    Problem:    Using setbufvar() may change the window title.
    Solution:   Do not redraw when creating the autocommand window. (closes #9613)
    Files:      src/autocmd.c, src/testdir/test_functions.vim

    Patch 8.2.4209
    Problem:    partial in 'opfunc' cannot use an imported function.
    Solution:   Also expand the function name in a partial. (closes #9614)
    Files:      src/evalvars.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4210 (after 8.2.4208)
    Problem:    Window title test fails in some configurations.
    Solution:   Only run the test if the title can be obtained.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.4211 (after 8.2.4208)
    Problem:    Window title test still fails in some configurations.
    Solution:   Use WaitForAssert().
    Files:      src/testdir/test_functions.vim

    Patch 8.2.4212 (after 8.2.4208)
    Problem:    Window title test still fails in some configurations.
    Solution:   Explicitly set the 'title' option.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.4213
    Problem:    Too much code for supporting old MSVC versions.
    Solution:   Remove MSVC 2003 support. (Ken Takata, closes #9623)
    Files:      Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c,
                src/msvcsetup.bat, src/os_win32.c

    Patch 8.2.4214
    Problem:    Illegal memory access with large 'tabstop' in Ex mode.
    Solution:   Allocate enough memory.
    Files:      src/ex_getln.c, src/testdir/test_ex_mode.vim

    Patch 8.2.4215
    Problem:    Illegal memory access when copying lines in Visual mode.
    Solution:   Adjust the Visual position after copying lines.
    Files:      src/ex_cmds.c, src/testdir/test_visual.vim

    Patch 8.2.4216
    Problem:    Vim9: cannot use a function from an autoload import directly.
    Solution:   Add the AUTOLOAD instruction to figure out at runtime.
                (closes #9620)
    Files:      src/vim9expr.c, src/vim9.h, src/vim9execute.c, src/vim9instr.c,
                src/proto/vim9instr.pro, src/testdir/test_vim9_import.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4217
    Problem:    Illegal memory access when undo makes Visual area invalid.
    Solution:   Correct the Visual area after undo.
    Files:      src/undo.c, src/testdir/test_visual.vim

    Patch 8.2.4218
    Problem:    Illegal memory access with bracketed paste in Ex mode.
    Solution:   Reserve space for the trailing NUL.
    Files:      src/edit.c, src/testdir/test_paste.vim

    Patch 8.2.4219
    Problem:    Reading before the start of the line.
    Solution:   Check boundary before trying to read the character.
    Files:      src/register.c, src/testdir/test_visual.vim

    Patch 8.2.4220
    Problem:    MS-Windows: some old compiler support remains.
    Solution:   Remove obsolete compiler support. (Ken Takata, closes #9627)
    Files:      src/Make_mvc.mak, src/vim.h

    Patch 8.2.4221
    Problem:    Some functions in normal.c are very long.
    Solution:   Move code to separate functions. (Yegappan Lakshmanan,
                closes #9628)
    Files:      src/normal.c

    Patch 8.2.4222
    Problem:    MS-Windows: clumsy way to suppress progress on CI.
    Solution:   Check for "$CI" in the Makefile itself. (Ken Takata, closes #9631)
    Files:      .github/workflows/ci.yml, ci/appveyor.bat, src/Make_mvc.mak

    Patch 8.2.4223
    Problem:    Long/int compiler warnings; function arguments swapped.
    Solution:   Add type casts.  Swap arguments. (Ken Takata, closes #9632)
    Files:      src/alloc.c, src/eval.c, src/vim9script.c

    Patch 8.2.4224
    Problem:    Vim9: no error when using a number for map() second argument
    Solution:   Disallow number to string conversion. (closes #9630)
    Files:      src/eval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4225
    Problem:    Vim9: depth argument of :lockvar not parsed in :def function.
    Solution:   Parse the optional depth argument. (closes #9629)
                Fix that locking doesn't work for a non-materialize list.
    Files:      src/vim9cmds.c, src/evalvars.c, src/structs.h, src/evalfunc.c,
                src/errors.h, src/vim9execute.c, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4226 (after 8.2.4224)
    Problem:    Filter-map test fails.
    Solution:   Only reject number argument in Vim9 script.
    Files:      src/eval.c

    Patch 8.2.4227
    Problem:    Vim9: using "lockvar!" in :def function does not work.
    Solution:   Add "!" instead of "-1". (closes #9634)
    Files:      src/vim9cmds.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4228
    Problem:    No tests for clicking in the GUI tabline.
    Solution:   Add test functions to generate the events.  Add tests using the
                functions. (Yegappan Lakshmanan, closes #9638)
    Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/normal.c,
                src/proto/testing.pro, src/testdir/test_diffmode.vim,
                src/testdir/test_gui.vim, src/testdir/test_normal.vim,
                src/testing.c

    Patch 8.2.4229
    Problem:    Possible crash when invoking timer callback fails.
    Solution:   Initialize the typval.  Give an error for an empty callback.
                (closes #9636)
    Files:      src/time.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4230
    Problem:    MS-Windows: set_guifontwide() is included but won't work.
    Solution:   Include set_guifontwide() only for X11. (Ken Takata, closes #9640)
    Files:      src/gui.c

    Patch 8.2.4231
    Problem:    Vim9: map() gives type error when type was not declared.
    Solution:   Only check the type when it was declared, like extend() does.
                (closes #9635)
    Files:      src/list.c, src/evalfunc.c, src/vim9instr.c,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4232 (after 8.2.4231)
    Problem:    Some compilers don't like a goto label without statement.
    Solution:   Return instead of using a goto.
    Files:      src/list.c

    Patch 8.2.4233
    Problem:    Crash when recording and using Select mode.
    Solution:   When deleting the last recorded character check there is something
                to delete.
    Files:      src/getchar.c, src/testdir/test_registers.vim

    Patch 8.2.4234
    Problem:    test_garbagecollect_now() does not check v:testing as documented.
    Solution:   Give an error if v:testing is not set.
    Files:      src/testing.c, src/errors.h, src/testdir/test_functions.vim

    Patch 8.2.4235
    Problem:    Invalid check for NULL pointer.
    Solution:   Remove the check.
    Files:      src/getchar.c

    Patch 8.2.4236
    Problem:    Accessing freed memory.
    Solution:   Set the bh_curr pointer to NULL.
    Files:      src/getchar.c

    Patch 8.2.4237
    Problem:    Record buffer wrong if character in Select mode was not typed.
    Solution:   Only delete the tail from the record buffer if the character was
                typed. (closes #9650)
    Files:      src/normal.c, src/testdir/test_registers.vim

    Patch 8.2.4238
    Problem:    *.tf file could be filetype "tf" or "terraform".
    Solution:   Detect the type from the file contents. (closes #9642)
    Files:      runtime/filetype.vim, runtime/autoload/dist/ft.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4239
    Problem:    Build fails with unusual configuration.
    Solution:   Adjust #ifdef. (closes #9651)
    Files:      src/testing.c

    Patch 8.2.4240
    Problem:    Error for using flatten() in Vim9 script is unclear.
    Solution:   Add a remark to use flattennew().
    Files:      src/errors.h

    Patch 8.2.4241
    Problem:    Some type casts are redundant.
    Solution:   Remove the type casts. (closes #9643)
    Files:      src/blob.c, src/buffer.c, src/channel.c, src/clientserver.c,
                src/clipboard.c, src/drawline.c, src/drawscreen.c, src/edit.c,
                src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c,
                src/fold.c, src/if_cscope.c, src/json.c, src/match.c,
                src/memline.c, src/message.c, src/misc1.c, src/normal.c,
                src/ops.c, src/option.c, src/optionstr.c, src/os_unix.c,
                src/register.c, src/sign.c, src/spellfile.c, src/tag.c, src/ui.c,
                src/undo.c, src/window.c

    Patch 8.2.4242
    Problem:    Put in Visual mode cannot be repeated.
    Solution:   Use "P" to put without yanking the deleted text into the unnamed
                register. (Shougo Matsushita, closes #9591)
    Files:      runtime/doc/visual.txt, src/normal.c, src/register.c,
                src/testdir/test_visual.vim

    Patch 8.2.4243
    Problem:    Lua tests fail with Lua 5.4.4.
    Solution:   Check messages like before Lua 5.4.3. (Jakub Kulík, closes #9652)
    Files:      src/testdir/test_lua.vim

    Patch 8.2.4244
    Problem:    MS-Windows: warning from MSVC on debug build.
    Solution:   Adjust "/opt" options.  Remove unused variables.  Make variables
                uppercase for consistency. (Ken Takata, closes #9647)
    Files:      src/Make_mvc.mak

    Patch 8.2.4245
    Problem:    ":retab 0" may cause illegal memory access.
    Solution:   Limit the value of 'tabstop' to 10000.
    Files:      src/option.c, src/vim.h, src/indent.c,
                src/testdir/test_options.vim

    Patch 8.2.4246
    Problem:    One error message not in errors.h. (Antonio Colombo)
    Solution:   Move the message and rename.
    Files:      src/errors.h, src/if_perl.xs

    Patch 8.2.4247
    Problem:    Stack corruption when looking for spell suggestions.
    Solution:   Prevent the depth increased too much.  Add a five second time
                limit to finding suggestions.
    Files:      src/spellsuggest.c, src/testdir/test_spell.vim

    Patch 8.2.4248
    Problem:    No proper test for moving the window separator.
    Solution:   Add a test.  Add comment in code. (closes #9656)
    Files:      src/window.c, src/testdir/test_window_cmd.vim

    Patch 8.2.4249
    Problem:    The timeout limit for spell suggestions is always 5000 milli
                seconds.
    Solution:   Add the "timeout" entry to 'spellsuggest'.
    Files:      runtime/doc/options.txt, src/spellsuggest.c,
                src/testdir/test_spell.vim

    Patch 8.2.4250
    Problem:    Channel out callback test is flaky on Mac.
    Solution:   Assign high priority to the test process. (Ozaki Kiichi,
                closes #9653)
    Files:      src/testdir/test_channel_pipe.py, src/testdir/thread_util.py

    Patch 8.2.4251
    Problem:    Vala files are not recognized.
    Solution:   Add the *.vala pattern. (closes #9654)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4252
    Problem:    Generating the normal command table at runtime is inefficient.
    Solution:   Generate the table with a Vim script and put it in a header file.
                (Yegappan Lakshmanan, closes #9648)
    Files:      Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt,
                src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
                src/Makefile, src/create_nvcmdidxs.vim, src/evalfunc.c,
                src/main.c, src/normal.c, src/nv_cmdidxs.h, src/proto/normal.pro

    Patch 8.2.4253
    Problem:    Using freed memory when substitute uses a recursive function call.
    Solution:   Make a copy of the substitute text.
    Files:      src/ex_cmds.c, src/testdir/test_substitute.vim

    Patch 8.2.4254
    Problem:    Using short instead of int.
    Solution:   Use int. (closes #9658)
    Files:      src/if_cscope.c

    Patch 8.2.4255
    Problem:    Theoretical computation overflow.
    Solution:   Perform multiplication in a wider type. (closes #9657)
    Files:      src/alloc.c, src/drawline.c, src/eval.c, src/evalfunc.c,
                src/ex_docmd.c, src/hardcopy.c, src/list.c, src/memfile.c,
                src/memline.c, src/popupwin.c

    Patch 8.2.4256
    Problem:    MS-Windows: compiler warnings when compiled with /W4.
    Solution:   Small adjustments to the code. (Ken Takata, closes #9659)
    Files:      src/gui_w32.c, src/os_win32.c

    Patch 8.2.4257
    Problem:    Vim9: finding global function without g: prefix but not finding
                global variable is inconsistent.
    Solution:   Require using g: for a global function.  Change the vim9.vim
                script into a Vim9 script with exports.  Fix that import in legacy
                script does not work.
    Files:      src/vim9expr.c, src/evalfunc.c, src/eval.c, src/userfunc.c,
                src/testdir/vim9.vim, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_import.vim,
                src/testdir/test_vim9_script.vim, src/testdir/test_blob.vim,
                src/testdir/test_execute_func.vim, src/testdir/test_debugger.vim,
                src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
                src/testdir/test_float_func.vim, src/testdir/test_functions.vim,
                src/testdir/test_glob2regpat.vim, src/testdir/test_highlight.vim,
                src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim,
                src/testdir/test_listdict.vim, src/testdir/test_mapping.vim,
                src/testdir/test_normal.vim, src/testdir/test_popupwin.vim,
                src/testdir/test_profile.vim, src/testdir/test_quickfix.vim,
                src/testdir/test_tagfunc.vim, src/testdir/test_textprop.vim,
                src/testdir/test_usercommands.vim

    Patch 8.2.4258
    Problem:    Coverity warns for array overrun.
    Solution:   Restrict depth to MAXWLEN - 1.
    Files:      src/spellsuggest.c

    Patch 8.2.4259
    Problem:    Number of test functions for GUI events is growing.
    Solution:   Use one function with a dictionary. (Yegappan Lakshmanan,
                closes #9660)
    Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro,
                src/testdir/test_gui.vim, src/testdir/test_vim9_builtin.vim,
                src/testing.c

    Patch 8.2.4260
    Problem:    Vim9: can still use a global function without g: at the script
                level.
    Solution:   Also check for g: at the script level. (issue #9637)
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c,
                src/vim9expr.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_import.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_scroll_11.dump,
                src/testdir/dumps/Test_popupwin_scroll_12.dump

    Patch 8.2.4261
    Problem:    Accessing invalid memory when a regular expression checks the
                Visual area while matching in a string.
    Solution:   Do not try matching the Visual area in a string.
    Files:      src/regexp.c, src/testdir/test_help.vim

    Patch 8.2.4262 (after 8.2.4261)
    Problem:    Some search tests fail.
    Solution:   Use a better way to reject searching for the Visual area.
    Files:      src/regexp.c

    Patch 8.2.4263
    Problem:    No test for the GUI find/replace dialog.
    Solution:   Add a test function and a test. (Yegappan Lakshmanan,
                closes #9662)
    Files:      runtime/doc/testing.txt, src/testdir/test_gui.vim, src/testing.c

    Patch 8.2.4264
    Problem:    Vim9: can use old style autoload function name.
    Solution:   Give an error for old style autoload function name.
    Files:      src/errors.h, src/userfunc.c, src/testdir/test_vim9_import.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.4265 (after 8.2.4264)
    Problem:    Autoload tests fails.
    Solution:   Use export instead of name with #.
    Files:      src/testdir/sautest/autoload/auto9.vim,
                src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim

    Patch 8.2.4266
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize saved_did_emsg.
    Files:      src/userfunc.c

    Patch 8.2.4267
    Problem:    Unused entry in keymap enum.
    Solution:   Remove the entry.
    Files:      src/keymap.h

    Patch 8.2.4268
    Problem:    CI log output is long.
    Solution:   Group output in sections. (Ozaki Kiichi, closes #9670)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4269
    Problem:    Coverity warns for using a NULL pointer.
    Solution:   Check for "name" to not be NULL.
    Files:      src/userfunc.c

    Patch 8.2.4270
    Problem:    Generating nv_cmdidxs.h requires building Vim twice.
    Solution:   Move the table into a separate file and use a separate executable
                to extract the command characters. (Ozaki Kiichi, closes #9669)
    Files:      src/normal.c, src/nv_cmds.h, Filelist, runtime/doc/builtin.txt,
                runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
                src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.c,
                src/create_nvcmdidxs.vim, src/evalfunc.c, src/proto/normal.pro

    Patch 8.2.4271
    Problem:    MS-Windows: cannot build with Ruby 3.1.0.
    Solution:   Adjust the DLL name and include directory. (Ken Takata,
                closes #9666)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

    Patch 8.2.4272
    Problem:    Vim9 expr test fails without the channel feature. (Dominique
                Pellé)
    Solution:   Remove "g:" before "CheckFeature". (closes #9671)
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.4273
    Problem:    The EBCDIC support is outdated.
    Solution:   Remove the EBCDIC support.
    Files:      src/ascii.h, src/charset.c, src/cindent.c, src/digraph.c,
                src/edit.c, src/eval.c, src/evalfunc.c, src/ex_cmds.c,
                src/feature.h, src/filepath.c, src/findfile.c, src/getchar.c,
                src/gui.c, src/gui_motif.c, src/hardcopy.c, src/help.c,
                src/macros.h, src/map.c, src/mark.c, src/misc2.c, src/normal.c,
                src/ops.c, src/option.c, src/option.h, src/optiondefs.h,
                src/os_unix.c, src/proto/evalfunc.pro, src/regexp.c,
                src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/screen.c,
                src/spell.c, src/strings.c, src/structs.h, src/term.c,
                src/version.c, src/viminfo.c, src/testdir/test_edit.vim,
                src/testdir/test_exec_while_if.vim, src/testdir/test_expr.vim,
                src/testdir/test_gf.vim, src/testdir/test_regexp_utf8.vim

    Patch 8.2.4274
    Problem:    Basic and form filetype detection is incomplete.
    Solution:   Add a separate function for .frm files. (Doug Kearns, closes #9675)
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4275
    Problem:    Cannot use an autoload function from a package under start.
    Solution:   Also look in the "start" package directory. (Bjorn Linse,
                closes #7193)
    Files:      src/scriptfile.c, src/testdir/test_packadd.vim

    Patch 8.2.4276
    Problem:    Separate test function for the GUI scrollbar.
    Solution:   Use test_gui_event(). (Yegappan Lakshmanan, closes #9674)
    Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
                runtime/doc/usr_41.txt, src/evalfunc.c, src/testing.c,
                src/proto/testing.pro, src/testdir/test_gui.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4277
    Problem:    Vim9: an import does not shadow a command modifier.
    Solution:   Do not accept a command modifier followed by a dot.
    Files:      src/ex_docmd.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4278
    Problem:    Build with Athena GUI fails. (Elimar Riesebieter)
    Solution:   Add #ifdef.
    Files:      src/testing.c

    Patch 8.2.4279
    Problem:    Vim9: cannot change item type with map() after range().
    Solution:   Split the return type in current type and declared type.
                (closes #9665)
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9instr.c,
                src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4280 (after 8.2.4279)
    Problem:    list-dict test crashes.
    Solution:   Check declared type for add().
    Files:      src/vim9expr.vim

    Patch 8.2.4281
    Problem:    Using freed memory with :lopen and :bwipe.
    Solution:   Do not use a wiped out buffer.
    Files:      src/buffer.c, src/testdir/test_quickfix.vim

    Patch 8.2.4282
    Problem:    Restricted mode requires the -Z command line option.
    Solution:   Use restricted mode when $SHELL ends in "nologin" or "false".
                (closes #9681)
    Files:      runtime/doc/starting.txt, src/option.c,
                src/testdir/test_restricted.vim

    Patch 8.2.4283
    Problem:    Using a variable for the return value is not needed.
    Solution:   Return the value directly. (closes #9687)
    Files:      src/ex_docmd.c, src/misc2.c

    Patch 8.2.4284
    Problem:    Old mac resources files are no longer used.
    Solution:   Delete the unused files. (Ozaki Kiichi, closes #9688)
    Files:      Filelist, src/Makefile, src/dehqx.py, src/infplist.xml,
                src/os_mac.rsr.hqx, src/os_mac_rsrc/app.icns,
                src/os_mac_rsrc/doc-txt.icns, src/os_mac_rsrc/doc.icns

    Patch 8.2.4285
    Problem:    Vim9: type of item in for loop not checked properly.
    Solution:   Adjust the type checking. (closes #9683)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4286
    Problem:    Vim9: strict type checking after copy() and deepcopy().
    Solution:   Allow type to change after making a copy. (closes #9644)
    Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/proto/dict.pro,
                src/list.c, src/proto/list.pro, src/evalfunc.c, src/vim9execute.c,
                src/vim9type.c, src/proto/vim9type.pro, src/evalvars.c,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4287
    Problem:    Cannot assign empty list with any list type to variable with
                specific list type.
    Solution:   Use unknown list type for empty list if the specified type is any.
    Files:      src/vim9type.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4288
    Problem:    Preprocessor indents are inconsistent.
    Solution:   Fix preprocessor indents. (Ken Takata, closes #9691)
    Files:      src/arglist.c, src/change.c, src/ex_cmds.c, src/gui.c,
                src/hashtab.c, src/indent.c, src/ops.c, src/os_win32.c

    Patch 8.2.4289
    Problem:    Warnings reported by MSVC.
    Solution:   Rename variables and other fixes. (Ken Takata, closes #9689)
    Files:      src/cmdexpand.c, src/drawscreen.c, src/filepath.c, src/getchar.c,
                src/menu.c, src/os_win32.c, src/version.c

    Patch 8.2.4290
    Problem:    MS-Windows: using type casts for timer IDs.
    Solution:   Remove type casts and use the right type. (Ken Takata,
                closes #9690)  Remove old debug comments.  Rename variables and
                functions.
    Files:      src/gui_w32.c

    Patch 8.2.4291
    Problem:    Error number used twice.
    Solution:   Renumber the errors.
    Files:      src/errors.h

    Patch 8.2.4292 (after 8.2.4291)
    Problem:    Test fails.
    Solution:   Adjust the expected error number.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.4293
    Problem:    Vim9: when copying a list it gets type list<any> even when the
                original list did not have a type.
    Solution:   Only set the type when the original list has a type. (closes #9692)
    Files:      src/list.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4294
    Problem:    MS-Windows: #ifdefs for Cygwin are too complicated.
    Solution:   Simplify the conditions. (Ken Takata, closes #9693)
    Files:      src/evalfunc.c, src/main.c, src/os_unix.c, src/os_win32.c,
                src/os_win32.h

    Patch 8.2.4295
    Problem:    Vim9: concatenating two lists may result in wrong type.
    Solution:   Remove the type instead of using list<any>. (closes #9692)
    Files:      src/list.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4296
    Problem:    Vim9: not all code covered by tests.
    Solution:   Add a few more tests for corner cases.  Fix hang when single quote
                is missing.
    Files:      src/vim9expr.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.4297
    Problem:    Vim9: not all code covered by tests.
    Solution:   Add a couple more tests.
    Files:      src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4298
    Problem:    Divide by zero with huge tabstop value.
    Solution:   Reject tabstop value that overflows to zero.
    Files:      src/indent.c, src/testdir/test_vartabs.vim

    Patch 8.2.4299
    Problem:    SafeState autocommand interferes with debugging.
    Solution:   Do not trigger SafeState while debugging. (closes #9697)
    Files:      src/main.c

    Patch 8.2.4300 (after 8.2.4299)
    Problem:    Cannot build tiny version. (Tony Mechelynck)
    Solution:   Add #ifdef.
    Files:      src/main.c

    Patch 8.2.4301
    Problem:    Vim9: type error for copy of dict.
    Solution:   Do not use dict<any> but no type. (closes #9696)
    Files:      src/dict.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4302
    Problem:    Vim9: return type of getline() is too strict.
    Solution:   Make the declared type list<any>.  Also do this for other
                functions returning a list of a specific type.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4303
    Problem:    A few messages should not be translated.
    Solution:   Remove _(). (Dominique Pellé, closes #9702)
    Files:      src/syntax.c

    Patch 8.2.4304
    Problem:    Vim9: slice() makes a copy but doesn't change the type.
    Solution:   Change the declared type like copy(). (closes #9696)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4305
    Problem:    Tex filetype detection fails.
    Solution:   Check value to be positive. (closes #9704)
    Files:      runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim

    Patch 8.2.4306
    Problem:    No test for fixed perl filetype check.
    Solution:   Add a test. Sort test functions.
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.4307
    Problem:    A few more messages should not be translated.
    Solution:   Remove _().
    Files:      src/syntax.c

    Patch 8.2.4308
    Problem:    Vim9: cannot list autoload function.
    Solution:   Don't give an error for using # when listing a function.
                (closes #9703)
    Files:      src/userfunc.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4309
    Problem:    Vim9: crash when using a partial in the wrong context.
    Solution:   Don't use an NULL outer pointer. (closes #9706)
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4310
    Problem:    Vim9: constant list and dict get a declaration type other than
                "any".
    Solution:   A constant list and dict have a declared member type "any".
                (closes #9701)
    Files:      src/vim9instr.c, src/vim9type.c, src/proto/vim9type.pro,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4311
    Problem:    Vim9: changing script variable type not caught at compile time.
    Solution:   Set the declared type.
    Files:      src/vim9instr.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.4312
    Problem:    No error for using :vim9script in a :def function.
    Solution:   Give an error when compiling.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4313
    Problem:    Vim9: cannot change type of list after making a slice.
    Solution:   Adjust the declared member type. (closes #9696)
    Files:      src/vim9expr.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4314 (after 8.2.4312)
    Problem:    Test fails where lines are skipped.
    Solution:   Only give an error when not skipping commands.
    Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4315
    Problem:    Put in Visual mode not fully tested.
    Solution:   Add a few more test cases. (closes #9708)
    Files:      src/testdir/test_visual.vim

    Patch 8.2.4316
    Problem:    __CYGWIN32__ is not defined on 64 bit systems.
    Solution:   Update #ifdefs. (Ken Takata, closes #9709)
    Files:      src/main.c, src/os_unix.c, src/pty.c, src/vim.h

    Patch 8.2.4317
    Problem:    MS-Windows: Vim exits when Python 3 initialisation fails.
    Solution:   Hook into the exit() function to recover from the failure.
                (Ken Takata, closes #9710)
    Files:      runtime/doc/if_pyth.txt, src/if_python3.c, src/os_win32.c,
                src/errors.h, src/proto/os_win32.pro

    Patch 8.2.4318
    Problem:    Various comment and indent mistakes, returning wrong zero.
    Solution:   Fix the mistakes.  Return NULL instead of FAIL.
    Files:      src/clientserver.c, src/eval.c, src/evalvars.c, src/vim9cmds.c,
                src/window.c

    Patch 8.2.4319
    Problem:    :put does not work properly in compiled function. (John Beckett)
    Solution:   Adjust the direction when using line zero.
    Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4320
    Problem:    Athena and Motif: when maximized scrollbar position is wrong.
    Solution:   Implement the scrollbar padding functions. (closes #9712)
    Files:      src/gui_athena.c, src/gui_motif.c

    Patch 8.2.4321
    Problem:    Vim9: crash when using a funcref to a closure.
    Solution:   Copy pt_outer to the new partial. (closes #9714)
    Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4322
    Problem:    Vim9: crash when using funcref with closure.
    Solution:   Keep a reference to the funcref that has the outer context.
                (closes #9716)
    Files:      src/evalfunc.c, src/structs.h, src/eval.c, src/vim9execute.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4323
    Problem:    Vim9: nested function name can start with "_".
    Solution:   Use same rule for function name for nested functions.
                (closes #9713)
    Files:      src/vim9compile.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4324
    Problem:    Vim9: script-local function name can start with "_".
    Solution:   Check for leading capital after "s:".  Correct error message.
    Files:      src/userfunc.c, src/errors.h, src/vim9compile.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4325
    Problem:    'wildmenu' only shows few matches.
    Solution:   Add the "pum" option: use a popup menu to show the matches.
                (Yegappan Lakshmanan et al., closes #9707)
    Files:      runtime/doc/options.txt, src/vim.h, src/cmdexpand.c,
                src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h,
                src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro,
                src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_01.dump,
                src/testdir/dumps/Test_wildmenu_pum_02.dump,
                src/testdir/dumps/Test_wildmenu_pum_03.dump,
                src/testdir/dumps/Test_wildmenu_pum_04.dump,
                src/testdir/dumps/Test_wildmenu_pum_05.dump,
                src/testdir/dumps/Test_wildmenu_pum_06.dump,
                src/testdir/dumps/Test_wildmenu_pum_07.dump,
                src/testdir/dumps/Test_wildmenu_pum_08.dump,
                src/testdir/dumps/Test_wildmenu_pum_09.dump,
                src/testdir/dumps/Test_wildmenu_pum_10.dump,
                src/testdir/dumps/Test_wildmenu_pum_11.dump,
                src/testdir/dumps/Test_wildmenu_pum_12.dump,
                src/testdir/dumps/Test_wildmenu_pum_13.dump,
                src/testdir/dumps/Test_wildmenu_pum_14.dump,
                src/testdir/dumps/Test_wildmenu_pum_15.dump,
                src/testdir/dumps/Test_wildmenu_pum_16.dump,
                src/testdir/dumps/Test_wildmenu_pum_17.dump,
                src/testdir/dumps/Test_wildmenu_pum_18.dump,
                src/testdir/dumps/Test_wildmenu_pum_19.dump,
                src/testdir/dumps/Test_wildmenu_pum_20.dump,
                src/testdir/dumps/Test_wildmenu_pum_21.dump,
                src/testdir/dumps/Test_wildmenu_pum_22.dump,
                src/testdir/dumps/Test_wildmenu_pum_23.dump,
                src/testdir/dumps/Test_wildmenu_pum_24.dump,
                src/testdir/dumps/Test_wildmenu_pum_25.dump,
                src/testdir/dumps/Test_wildmenu_pum_26.dump,
                src/testdir/dumps/Test_wildmenu_pum_27.dump,
                src/testdir/dumps/Test_wildmenu_pum_28.dump,
                src/testdir/dumps/Test_wildmenu_pum_29.dump

    Patch 8.2.4326
    Problem:    "o" and "O" copying comment not sufficiently tested.
    Solution:   Add a test case. (closes #9718)
    Files:      src/testdir/test_textformat.vim

    Patch 8.2.4327
    Problem:    May end up with no current buffer.
    Solution:   When deleting the current buffer to not pick a quickfix buffer as
                the new current buffer.
    Files:      src/buffer.c, src/testdir/test_quickfix.vim

    Patch 8.2.4328
    Problem:    Command line complete matches cleared when typing character.
                (Dominique Pellé)
    Solution:   Only remove a popup menu if there is one.
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_30.dump,
                src/testdir/dumps/Test_wildmenu_pum_31.dump

    Patch 8.2.4329
    Problem:    No support for end line number and column in 'errorformat'.
    Solution:   Add %e and %k. (closes #9624)
    Files:      runtime/doc/quickfix.txt, src/quickfix.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.4330
    Problem:    Vim9: no error if script imports itself.
    Solution:   Give an error when a script imports itself.
    Files:      src/vim9script.c, src/errors.h, src/testdir/test_vim9_import.vim

    Patch 8.2.4331
    Problem:    Vim9: no test for existing script variable in block.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.4332
    Problem:    Vim9: incomplete test for existing script variable in block.
    Solution:   Add a couple more tests.  Fix uncovered problem.
    Files:      src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/vim9script.c, src/vim9expr.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4333
    Problem:    cstack not always passed to where it is needed.
    Solution:   Pass cstack through functions.
    Files:      src/eval.c, src/vim9expr.c, src/vim9script.c,
                src/proto/vim9script.pro, src/vim9compile.c,
                src/proto/vim9compile.pro

    Patch 8.2.4334
    Problem:    Command line popup menu not positioned correctly.
    Solution:   Also use vim_strsize() on the existing text. (Naruhiko Nishino,
                closes #9727)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_32.dump

    Patch 8.2.4335
    Problem:    No autocommand event triggered before changing directory. (Ronnie
                Magatti)
    Solution:   Add DirChangedPre. (closes #9721)
    Files:      runtime/doc/autocmd.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/vim.h, src/autocmd.c, src/misc2.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.4336
    Problem:    Using :filter for :scriptnames does not work. (Ben Jackson)
    Solution:   Call message_filtered(). (closes #9720)
    Files:      src/scriptfile.c, src/testdir/test_filter_cmd.vim

    Patch 8.2.4337
    Problem:    Part of condition is always true.
    Solution:   Remove that part of the condition. (closes #9729)
    Files:      src/filepath.c

    Patch 8.2.4338
    Problem:    An error from an expression mapping messes up the display.
    Solution:   When the expression results in an empty string return K_IGNORE.
                In cmdline mode redraw the command line. (closes #9726)
    Files:      src/getchar.c, src/testdir/test_mapping.vim,
                src/testdir/dumps/Test_map_expr_2.dump,
                src/testdir/dumps/Test_map_expr_3.dump,
                src/testdir/dumps/Test_map_expr_4.dump

    Patch 8.2.4339
    Problem:    CTRL-A does not work properly with the cmdline popup menu.
    Solution:   Fix issues with CTRL-A.  Add more tests for the cmdline popup
                menu.  Remove TermWait() before VeriryScreenDump().  Refactor the
                cmdline popup code. (Yegappan Lakshmanan, closes #9735)
    Files:      src/cmdexpand.c, src/ex_getln.c, src/popupmenu.c,
                src/testdir/screendump.vim, src/testdir/test_bufline.vim,
                src/testdir/test_cmdline.vim, src/testdir/test_conceal.vim,
                src/testdir/test_cursorline.vim, src/testdir/test_diffmode.vim,
                src/testdir/test_display.vim, src/testdir/test_highlight.vim,
                src/testdir/test_match.vim, src/testdir/test_popup.vim,
                src/testdir/test_search_stat.vim, src/testdir/test_terminal.vim,
                src/testdir/test_textprop.vim,
                src/testdir/dumps/Test_wildmenu_pum_33.dump,
                src/testdir/dumps/Test_wildmenu_pum_34.dump,
                src/testdir/dumps/Test_wildmenu_pum_35.dump,
                src/testdir/dumps/Test_wildmenu_pum_36.dump,
                src/testdir/dumps/Test_wildmenu_pum_37.dump

    Patch 8.2.4340
    Problem:    Amiga: mch_can_exe() is not implemented.
    Solution:   Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731)
    Files:      src/os_amiga.c

    Patch 8.2.4341
    Problem:    Command line not redrawn when finishing popup menu and the screen
                has scrolled up.
    Solution:   Redraw the command line after updating the screen. (closes #9722)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_38.dump

    Patch 8.2.4342
    Problem:    CI will soon switch to other windows version.
    Solution:   Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi,
                closes #9740)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4343
    Problem:    When reloading not all properties are detected.
    Solution:   Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579)
    Files:      runtime/doc/editing.txt, runtime/doc/eval.txt, src/fileio.c,
                src/proto/fileio.pro, src/message.c, src/spellfile.c,
                src/testdir/test_filechanged.vim

    Patch 8.2.4344
    Problem:    Amiga: header file included twice.
    Solution:   Remove #include. (Ola Söder, closes #9733)
    Files:      src/memfile.c

    Patch 8.2.4345
    Problem:    <amatch> is expanded like a file name for DirChangedPre.
    Solution:   Do not expand <amatch>. (closes #9742)  Also for the User event.
    Files:      src/autocmd.c, src/testdir/test_autocmd.vim

    Patch 8.2.4346
    Problem:    A custom statusline may cause Esc to work like Enter on the
                command line when the popup menu is displayed.
    Solution:   Save and restore KeyTyped. (closes #9749)
    Files:      src/drawscreen.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_39.dump

    Patch 8.2.4347
    Problem:    In some build setups UNUSED is not defined.
    Solution:   Change the logic of how UNUSED is defined. (Ola Söder,
                closes #9734)
    Files:      src/vim.h

    Patch 8.2.4348
    Problem:    "legacy exe cmd" does not do what one would expect.
    Solution:   Apply the "legacy" and "vim9script" command modifiers to the
                argument of ":execute".
    Files:      runtime/doc/vim9.txt, src/globals.h, src/eval.c, src/ex_docmd.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.4349
    Problem:    FileChangedShell test fails on MS-Windows.
    Solution:   Skip the test on MS-Windows.
    Files:      src/testdir/test_filechanged.vim

    Patch 8.2.4350
    Problem:    FEAT_GUI_ENABLED defined but never used.
    Solution:   Remove the #define. (Ola Söder, closes #9732)
    Files:      src/vim.h

    Patch 8.2.4351
    Problem:    No coverage is measured on MS-Windows CI.
    Solution:   Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4352
    Problem:    ReScript files are not recognized.
    Solution:   Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4353
    Problem:    CI does not use the latest Lua and Python.
    Solution:   Use Lua 5.4.2 and Python 3.10. (closes #9744)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4354
    Problem:    Dynamic loading of libsodium not handled properly.
    Solution:   Fix has() and :version. Show an error message when loading fails.
                Fix memory leaks. (Ken Takata, closes #9754)
    Files:      src/crypt.c, src/evalfunc.c, src/gui_dwrite.cpp, src/if_cscope.c,
                src/os_win32.c, src/proto/crypt.pro, src/proto/os_win32.pro,
                src/version.c

    Patch 8.2.4355
    Problem:    Unnecessary call to check_colorcolumn().
    Solution:   Remove the call. (Sean Dewar, closes #9748)
    Files:      src/option.c, src/window.c

    Patch 8.2.4356
    Problem:    Command line completion functions are very long.
    Solution:   Refactor into multiple functions. (Yegappan Lakshmanan,
                closes #9753)
    Files:      src/cmdexpand.c

    Patch 8.2.4357 (after 8.2.4348)
    Problem:    sticky command modifiers are too sticky.
    Solution:   Do not apply command modifiers to a sourced script. (closes #9751)
    Files:      src/scriptfile.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4358
    Problem:    Vim9: line number of exception is not set.
    Solution:   Set the line number before throwing an exception. (closes #9755)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4359
    Problem:    crash when repeatedly using :retab.
    Solution:   Bail out when the line is getting too long.
    Files:      src/indent.c, src/testdir/test_retab.vim

    Patch 8.2.4360
    Problem:    Vim9: allowing use of "s:" leads to inconsistencies.
    Solution:   Disallow using "s:" in Vim9 script at the script level.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/errors.h,
                src/vim9compile.c, src/eval.c, src/testdir/vim9.vim,
                src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.4361 (after 8.2.4360)
    Problem:    Vim9: some tests fail.
    Solution:   Fix the tests, mostly by removing "s:".
    Files:      src/testdir/test_expr.vim, src/testdir/test_functions.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_normal.vim,
                src/testdir/test_tagfunc.vim

    Patch 8.2.4362
    Problem:    :retab may allocate too much memory.
    Solution:   Bail out when allocating more than MAXCOL bytes.
    Files:      src/indent.c

    Patch 8.2.4363
    Problem:    MS-Windows: running out of memory for a very long line.
    Solution:   Use a 32 bit value for MAXCOL also when ints are 64 bits.
    Files:      src/vim.h

    Patch 8.2.4364
    Problem:    MS-Windows: still running out of memory for a very long line.
    Solution:   Check for negative length.
    Files:      src/indent.c

    Patch 8.2.4365 (after 8.2.4348)
    Problem:    sticky command modifiers are too sticky.
    Solution:   Do not apply command modifiers to a called function. (closes #9751)
    Files:      src/userfunc.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4366
    Problem:    Not enough tests for command line completion.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9760)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
                src/testdir/test_usercommands.vim

    Patch 8.2.4367
    Problem:    Calling in_vim9script() multiple times.
    Solution:   Call it once and keep the result.
    Files:      src/userfunc.c, src/eval.c

    Patch 8.2.4368
    Problem:    Amiga: a few compiler warnings.
    Solution:   Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756,
                closes #9757)
    Files:      src/term.c, src/os_amiga.c

    Patch 8.2.4369
    Problem:    Redundant #ifdef argument.
    Solution:   Remove unused MSWIN. (Ola Söder, closes #9758)
    Files:      src/feature.h

    Patch 8.2.4370
    Problem:    MS-Windows: libsodium.dll not included with the installer.
    Solution:   Add the file to the installer if it exists. (Christian Brabandt,
                closes #9762)
    Files:      nsis/gvim.nsi

    Patch 8.2.4371
    Problem:    Vim9: can create a script variable from a legacy function.
    Solution:   Disallow creating a script variable from a function.
    Files:      src/evalvars.c, src/errors.h, src/testdir/test_vim9_script.vim

    Patch 8.2.4372
    Problem:    Filetype detection from file contents is in legacy script.
    Solution:   Use a compiled function for filetype detection.
    Files:      runtime/scripts.vim, runtime/autoload/dist/script.vim

    Patch 8.2.4373
    Problem:    Expression test fails.
    Solution:   Make the test work with latest Vim9 syntax.
    Files:      src/testdir/test_expr.vim

    Patch 8.2.4374
    Problem:    Unreachable code.
    Solution:   Remove outdated code lines.
    Files:      src/vim9compile.c

    Patch 8.2.4375
    Problem:    ctx_imports is not used.
    Solution:   Delete ctx_imports.  Add missing dependency.
    Files:      src/vim9.h, src/vim9compile.c, src/proto/vim9compile.pro,
                src/eval.c, src/evalfunc.c, src/evalvars.c, src/userfunc.c,
                src/vim9expr.c, src/vim9script.c, src/Makefile

    Patch 8.2.4376
    Problem:    Not enough tests for command line completion.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9771)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_usercommands.vim

    Patch 8.2.4377
    Problem:    CI steps for Windows are a bit unorganized.
    Solution:   Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4378
    Problem:    Incsearch highlight broken when calling searchcount() in 'tabLine'
                function. (Mirko Palmer)
    Solution:   Save and restore the incsearch state. (Christian Brabandt,
                closes #9763, closes #9633)
    Files:      src/search.c, src/testdir/test_search_stat.vim,
                src/testdir/dumps/Test_searchstat_inc_1.dump,
                src/testdir/dumps/Test_searchstat_inc_2.dump,
                src/testdir/dumps/Test_searchstat_inc_3.dump

    Patch 8.2.4379
    Problem:    An empty change is reported to a listener.
    Solution:   Do not report an empty change. (closes #9768)  Remove unused
                return value.
    Files:      src/undo.c, src/change.c, src/testdir/test_listener.vim

    Patch 8.2.4380
    Problem:    Small differences between Chinese translation files.
    Solution:   Add rule for converting UTF-8 to gb2312. (closes #9773)
    Files:      src/po/Makefile, src/po/Make_all.mak

    Patch 8.2.4381 (after 8.2.4380)
    Problem:    Translation file listed twice.
    Solution:   Remove one entry.
    Files:      src/po/Make_all.mak

    Patch 8.2.4382 (after 8.2.4346)
    Problem:    A custom 'tabline' may cause Esc to work like Enter on the
                command line when the popup menu is displayed.
    Solution:   Save and restore KeyTyped. (closes #9776)
    Files:      src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_40.dump

    Patch 8.2.4383
    Problem:    Vim9: unused code lines.
    Solution:   Rely on either "cctx" or "cstack" to not be NULL.
    Files:      src/vim9compile.c

    Patch 8.2.4384
    Problem:    Vim9: error message not tested, some code not tested.
    Solution:   Add a couple of test cases.  Give an error for a command modifier
                without a command.
    Files:      src/errors.h, src/vim9compile.c, src/ex_docmd.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4385 (after 8.2.4384)
    Problem:    Cannot build tiny version.
    Solution:   Adjust #ifdefs.
    Files:      src/errors.h

    Patch 8.2.4386 (after 8.2.4384)
    Problem:    Still cannot build tiny version.
    Solution:   Adjust #ifdefs.
    Files:      src/ex_docmd.c

    Patch 8.2.4387
    Problem:    Command line completion doesn't always work properly.
    Solution:   Adjust triggering after a "|".  Add more tests. (Yegappan
                Lakshmanan, closes #9779)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.4388
    Problem:    Dead code in op_insert().
    Solution:   Remove condition and else block. (closes #9782)
    Files:      src/ops.c

    Patch 8.2.4389
    Problem:    screenpos() does not handle a position in a closed fold.
    Solution:   Check if the position is inside a closed fold. (closes #9778)
    Files:      src/move.c, src/testdir/test_cursor_func.vim

    Patch 8.2.4390
    Problem:    Vim9: list from declaration with inferred type does not set the
                type on the value.
    Solution:   When inferring the type in a variable declaration also set the
                type of the list or dictionary. (closes #9705)  Do not set the
                type when the member is "any".
    Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4391
    Problem:    Command line executed when typing Esc in the GUI.
    Solution:   Move saving/restoring KeyTyped to build_stl_str_hl().
                (closes #9783)
    Files:      src/buffer.c, src/screen.c

    Patch 8.2.4392 (after 8.2.4002)
    Problem:    MS-Windows with VIMDLL: Escaping CSI is wrong.
    Solution:   Put back #ifdef. (Ken Takata, closes #9769)
    Files:      src/getchar.c

    Patch 8.2.4393
    Problem:    Possible number overflow with nested folds.
    Solution:   Avoid a negative line number.
    Files:      src/fold.c

    Patch 8.2.4394 (after 8.2.4392)
    Problem:    UTF8 select mode test fails on MS-Windows.
    Solution:   Revert the #ifdef change.
    Files:      src/getchar.c

    Patch 8.2.4395
    Problem:    Some code lines not covered by tests.
    Solution:   Add a few more test cases.  Fix getting more than one error for
                invalid assignment.
    Files:      src/evalvars.c, src/errors.h, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4396 (after 8.2.4395)
    Problem:    Python3 test fails.
    Solution:   Remove "let".
    Files:      src/testdir/test_vim9_func.vim

    Patch 8.2.4397
    Problem:    Crash when using many composing characters in error message.
    Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
    Files:      src/testing.c, src/testdir/test_assert.vim

    Patch 8.2.4398
    Problem:    Some command completion functions are too long.
    Solution:   Refactor code into separate functions.  Add a few more tests.
                (Yegappan Lakshmanan, closes #9785)
    Files:      src/cmdexpand.c, src/ex_getln.c, src/usercmd.c,
                src/proto/usercmd.pro, src/testdir/test_cmdline.vim

    Patch 8.2.4399
    Problem:    Crash after ml_get error.
    Solution:   When returning "???" flush the line and set ml_line_lnum.
    Files:      src/memline.c

    Patch 8.2.4400 (after 8.2.4394)
    Problem:    MS-Windows: cannot use the mouse in the console with VIMDLL.
    Solution:   use add_char2buf() instead of fix_input_buffer(). (closes #9784,
                closes #9769)
    Files:      src/getchar.c

    Patch 8.2.4401
    Problem:    Map listing does not clear the rest of the command line.
    Solution:   Call msg_clear_eos(). (closes #5623, closes #5962)
    Files:      src/map.c, src/testdir/test_mapping.vim,
                src/testdir/dumps/Test_map_list_1.dump

    Patch 8.2.4402
    Problem:    Missing parenthesis may cause unexpected problems.
    Solution:   Add more parenthesis is macros. (closes #9788)
    Files:      src/autocmd.c, src/charset.c, src/drawline.c, src/drawscreen.c,
                src/evalfunc.c, src/fileio.c, src/fold.c, src/getchar.c,
                src/highlight.c, src/memline.c, src/normal.c, src/quickfix.c,
                src/regexp.c, src/search.c, src/sha256.c, src/spell.c,
                src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/window.c

    Patch 8.2.4403
    Problem:    ml_get error with nested folds and deleting lines.
    Solution:   Correct the last line number before calling hasFoldingWin().
    Files:      src/change.c

    Patch 8.2.4404
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few specific test cases.
    Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4405
    Problem:    Compiler warning for unused variable without the +folding feature.
                (Tony Mechelynck)
    Solution:   Add #ifdef.
    Files:      src/change.c

    Patch 8.2.4406
    Problem:    Expand functions use confusing argument names.
    Solution:   Rename "file" to "match".  Refactor some completion code.  Add a
                few more tests. (Yegappan Lakshmanan, closes #9790)
    Files:      src/cmdexpand.c, src/testdir/test_usercommands.vim

    Patch 8.2.4407
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add more tests.  Avoid giving two errors.  Remove dead code.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.4408
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few more tests.  Correct error message.  Allow unlet on dict
                with a number key.
    Files:      src/vim9execute.c, src/errors.h, src/testdir/test_vim9_assign.vim

    Patch 8.2.4409
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few more tests.  Fix reported line number.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.4410
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few more tests. Remove dead code.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4411
    Problem:    Bicep files are not recognized.
    Solution:   Match *.bicep files. (Dundar Goc, closes #9791)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4412
    Problem:    Translation cleanup script does not remove empty lines at end.
    Solution:   Remove empty lines at the end. (Ken Takata, closes #9794)
    Files:      src/po/cleanup.vim

    Patch 8.2.4413
    Problem:    Vim9: Coverity warns for using NULL pointer.
    Solution:   Give an internal error when funcref function can't be found.
    Files:      src/vim9execute.c

    Patch 8.2.4414
    Problem:    Solidity files are not recognized.
    Solution:   Add the *.sol pattern. (Dundar Goc, closes #9792)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4415
    Problem:    Function argument name conflicts with C++ keyword.
    Solution:   Rename the argument.
    Files:      src/usercmd.c, src/proto/usercmd.pro

    Patch 8.2.4416
    Problem:    Vim9: using a script-local function requires using "s:" when
                setting 'completefunc'.
    Solution:   Do not require "s:" in Vim9 script. (closes #9796)
    Files:      runtime/doc/options.txt, src/userfunc.c,
                src/testdir/test_ins_complete.vim

    Patch 8.2.4417 (after 8.2.4416)
    Problem:    Using NULL pointer.
    Solution:   Set offset after checking for NULL pointer.
    Files:      src/userfunc.c

    Patch 8.2.4418
    Problem:    Crash when using special multi-byte character.
    Solution:   Don't use isalpha() for an arbitrary character.
    Files:      src/charset.c, src/proto/charset.pro, src/filepath.c,
                src/testdir/test_autochdir.vim

    Patch 8.2.4419
    Problem:    Illegal memory access when using exactly 20 highlights.
    Solution:   Add one more item in the array. (Brandon Richardson,
                closes #9800)
    Files:      src/buffer.c, src/testdir/test_tabline.vim

    Patch 8.2.4420
    Problem:    Menu translations are inconsistent.
    Solution:   Add a Makefile to convert between encodings. (Ada (Haowen) Yu,
                closes #9801)
    Files:      runtime/lang/Makefile, runtime/lang/menu_af_af.latin1.vim,
                runtime/lang/menu_ca_es.latin1.vim,
                runtime/lang/menu_chinese_gb.936.vim,
                runtime/lang/menu_chinese_taiwan.950.vim,
                runtime/lang/menu_cs_cz.iso_8859-2.vim,
                runtime/lang/menu_cs_cz.utf-8.vim,
                runtime/lang/menu_czech_czech_republic.1250.vim,
                runtime/lang/menu_czech_czech_republic.ascii.vim,
                runtime/lang/menu_da.utf-8.vim,
                runtime/lang/menu_de_de.latin1.vim,
                runtime/lang/menu_eo.utf-8.vim,
                runtime/lang/menu_es_es.latin1.vim,
                runtime/lang/menu_fi_fi.latin1.vim,
                runtime/lang/menu_fr_fr.latin1.vim,
                runtime/lang/menu_hu_hu.iso_8859-2.vim,
                runtime/lang/menu_hu_hu.utf-8.vim,
                runtime/lang/menu_is_is.latin1.vim,
                runtime/lang/menu_it_it.latin1.vim,
                runtime/lang/menu_ja_jp.euc-jp.vim,
                runtime/lang/menu_ja_jp.utf-8.vim,
                runtime/lang/menu_japanese_japan.932.vim,
                runtime/lang/menu_ko_kr.euckr.vim,
                runtime/lang/menu_ko_kr.utf-8.vim,
                runtime/lang/menu_nl_nl.latin1.vim,
                runtime/lang/menu_no_no.latin1.vim,
                runtime/lang/menu_pl_pl.iso_8859-2.vim,
                runtime/lang/menu_pl_pl.utf-8.vim,
                runtime/lang/menu_polish_poland.1250.vim,
                runtime/lang/menu_pt_br.vim, runtime/lang/menu_pt_pt.vim,
                runtime/lang/menu_ru.utf-8.vim,
                runtime/lang/menu_ru_ru.koi8-r.vim,
                runtime/lang/menu_ru_ru.utf-8.vim, runtime/lang/menu_ru_ru.vim,
                runtime/lang/menu_sk_sk.iso_8859-2.vim,
                runtime/lang/menu_sl_si.cp1250.vim,
                runtime/lang/menu_sl_si.latin2.vim,
                runtime/lang/menu_sl_si.utf-8.vim,
                runtime/lang/menu_slovak_slovak_republic.1250.vim,
                runtime/lang/menu_sr_rs.ascii.vim,
                runtime/lang/menu_sr_rs.iso_8859-2.vim,
                runtime/lang/menu_sr_rs.iso_8859-5.vim,
                runtime/lang/menu_sr_rs.utf-8.vim,
                runtime/lang/menu_sv_se.latin1.vim,
                runtime/lang/menu_tr_tr.cp1254.vim,
                runtime/lang/menu_tr_tr.iso_8859-9.vim,
                runtime/lang/menu_tr_tr.utf-8.vim,
                runtime/lang/menu_uk_ua.cp1251.vim,
                runtime/lang/menu_uk_ua.koi8-u.vim,
                runtime/lang/menu_uk_ua.utf-8.vim, runtime/lang/menu_vi_vn.vim,
                runtime/lang/menu_zh_cn.utf-8.vim,
                runtime/lang/menu_zh_tw.utf-8.vim

    Patch 8.2.4421
    Problem:    Some installed files and directories have wrong permissions.
    Solution:   Adjust the Makefile and shell to set permissions. (closes #9793)
    Files:      src/Makefile, src/installman.sh

    Patch 8.2.4422
    Problem:    Autochdir test fails on MS-Windows.
    Solution:   Expect another error on MS-Windows.
    Files:      src/testdir/test_autochdir.vim

    Patch 8.2.4423
    Problem:    "make nvcmdidxs" fails.
    Solution:   Use "-S" instead of "-u" to source the script.
    Files:      src/Makefile

    Patch 8.2.4424
    Problem:    ".gts" and ".gjs" files are not recognized.
    Solution:   Recognize Glimmer flavored typescript and javascript.
                (closes #9799)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4425
    Problem:    map() function does not check function arguments at compile time.
    Solution:   Give an error if the arguments of a map() function are wrong.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4426
    Problem:    map() function on string and blob does not check argument types at
                compile time.
    Solution:   Check string and blob argument types.  Support "0z1234->func()".
    Files:      src/vim9compile.c, src/evalfunc.c, src/ex_docmd.c,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4427
    Problem:    getchar() may return modifiers if no character is available.
    Solution:   Do not process modifiers when there is no character. (closes #9806)
    Files:      src/getchar.c, src/testdir/test_functions.vim

    Patch 8.2.4428
    Problem:    Crash when switching tabpage while in the cmdline window.
    Solution:   Disallow switching tabpage when in the cmdline window.
    Files:      src/window.c, src/proto/window.pro, src/evalvars.c,
                src/evalvars.c, src/usercmd.c

    Patch 8.2.4429
    Problem:    Using script-local function from the wrong script when using a
                partial. (Yegappan Lakshmanan)
    Solution:   Include the script ID in the partial name.
    Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
                src/vim9type.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4430
    Problem:    GTK: crash when using 'guiligatures' and reading from stdin.
    Solution:   Make a copy of the message. (Amon Sha, closes #9719, closes #9814)
    Files:      src/fileio.c

    Patch 8.2.4431
    Problem:    Unnecessary condition when assigning to a variable.
    Solution:   Remove the condition.
    Files:      src/evalvars.c

    Patch 8.2.4432 (after 8.2.4428)
    Problem:    Cannot use settabvar() while the cmdline window is open.
    Solution:   Only give an error when actually switching tabpage.
                (closes #9813)
    Files:      src/window.c

    Patch 8.2.4433
    Problem:    CI: cannot see interface versions for MS-Windows.
    Solution:   List the interface versions. (Ken Takata, closes #9811)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4434
    Problem:    Duplicate check for cmdline window.
    Solution:   Remove the second check. (Sean Dewar, closes #9816)
    Files:      src/window.c

    Patch 8.2.4435
    Problem:    Dead code in checking map() arguments. (Dominique Pellé)
    Solution:   Remove the first return statement. (closes #9815)
    Files:      src/evalfunc.c

    Patch 8.2.4436
    Problem:    Crash with weird 'vartabstop' value.
    Solution:   Check for running into the end of the line.
    Files:      src/indent.c, src/testdir/test_vartabs.vim

    Patch 8.2.4437
    Problem:    Vartabs test fails on MS-Windows.
    Solution:   Use iso8859-1 'encoding'. (Ken Takata, closes #9818)
    Files:      src/testdir/test_vartabs.vim

    Patch 8.2.4438
    Problem:    Crash on exit when using cmdline window.
    Solution:   Reset "cmdwin_type" before exiting. (closes #9817)
    Files:      src/ui.c, src/testdir/test_exit.vim

    Patch 8.2.4439
    Problem:    Accepting "iso8859" 'encoding' as "iso-8859-".
    Solution:   use "iso8859" as "iso-8859-1".
    Files:      src/mbyte.c, src/testdir/test_options.vim

    Patch 8.2.4440
    Problem:    Crash with specific regexp pattern and string.
    Solution:   Stop at the start of the string.
    Files:      src/regexp_bt.c, src/testdir/test_regexp_utf8.vim

    Patch 8.2.4441
    Problem:    Vim9: function argument of filter() not checked like map().
    Solution:   Also check the function argument of filter().
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4442 (after 8.2.4438)
    Problem:    Test for error reading input fails on MS-Windows.
    Solution:   Don't run the test on MS-Windows.
    Files:      src/testdir/test_exit.vim

    Patch 8.2.4443 (after 8.2.4440)
    Problem:    Regexp pattern test fails on Mac.
    Solution:   Do not use a swapfile for the buffer.
    Files:      src/testdir/test_regexp_utf8.vim

    Patch 8.2.4444
    Problem:    Beep caused by test.  ASAN reports leaks.
    Solution:   Do not put a NL at the end of the script.  Make the text work on
                MS-Windows.  Do not run the test with ASAN.
    Files:      src/testdir/test_exit.vim

    Patch 8.2.4445
    Problem:    Exit test fails on MS-Windows anyway.
    Solution:   Skip the test on MS-Windows.
    Files:      src/testdir/test_exit.vim

    Patch 8.2.4446
    Problem:    Vim9: cannot refer to a global function like a local one.
    Solution:   When g:name is not a variable but a function, use a function
                reference. (closes #9826)
    Files:      src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4447
    Problem:    Vim9: can still use s:var in a compiled function.
    Solution:   Disallow using s:var for Vim9 script. (closes #9824)
    Files:      runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4448 (after 8.2.4447)
    Problem:    Filetype detection is failing.
    Solution:   Do not use "s:" where it is no longer allowed.
    Files:      runtime/autoload/dist/ft.vim,

    Patch 8.2.4449
    Problem:    vim9: function argument of sort() not checked at compile time.
    Solution:   Add a compile time check.
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4450 (after 8.2.4449)
    Problem:    List sort test fails.
    Solution:   Pass a valid "how" argument.
    Files:      src/testdir/test_listdict.vim

    Patch 8.2.4451 (after 8.2.4450)
    Problem:    sort() fails when ignoring case.
    Solution:   Accept a number one argument in sort().
    Files:      src/evalfunc.c, src/testdir/test_listdict.vim

    Patch 8.2.4452
    Problem:    Test for what 8.2.4436 fixes does not check for regression.
    Solution:   Set several options. (Ken Takata, closes #9830)
    Files:      src/testdir/test_vartabs.vim

    Patch 8.2.4453
    Problem:    :helpgrep may free an option that was not allocated. (Yegappan
                Lakshmanan)
    Solution:   Check if the value was allocated.
    Files:      src/option.c, src/proto/option.pro, src/quickfix.c,
                src/testdir/test_quickfix.vim

    Patch 8.2.4454
    Problem:    Resetting cmdwin_type only for one situation.
    Solution:   Reset cmdwin_type before closing windows. (closes #9822)
    Files:      src/ui.c, src/window.c, src/testdir/test_exit.vim

    Patch 8.2.4455
    Problem:    Accepting one and zero for the second sort() argument is strange.
    Solution:   Disallow using one and zero in Vim9 script.
    Files:      runtime/doc/builtin.txt, src/evalfunc.c, src/list.c,
                src/testdir/test_listdict.vim

    Patch 8.2.4456
    Problem:    Terminal test may fail on some machines.
    Solution:   Increase wait time. (Zdenek Dohnal, closes #9834)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.4457
    Problem:    The GPM library can only be linked statically.
    Solution:   Make it possible to load the GPM library dynamically. (Damien)
    Files:      runtime/doc/various.txt, src/config.h.in, src/configure.ac,
                src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c,
                src/proto/os_unix.pro, src/version.c

    Patch 8.2.4458
    Problem:    Vim9: compiling filter() call fails with funcref that has unknown
                arguments.
    Solution:   Do not check the arguments if they are unknown at compile time.
                (closes #9835)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4459
    Problem:    Vim9: compiling sort() call fails with a funcref that has unknown
                arguments.
    Solution:   Do not check the arguments if they are unknown at compile time.
                (closes #9835)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4460
    Problem:    Vim9: wrong error for defining dict function.
    Solution:   Explicitly check for trying to define a dict function.
                (closes #9827)
    Files:      src/errors.h, src/userfunc.c, src/vim9compile.c,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4461
    Problem:    MS-Windows: garbage characters on stdout with VIMDLL.
    Solution:   Don't call gui_focus_change() when about to quit. (Ken Takata,
                closes #9840)
    Files:      src/gui_w32.c

    Patch 8.2.4462
    Problem:    Not enough testing for quickfix code.
    Solution:   Add more tests. Fix uncovered problem. (Yegappan Lakshmanan,
                closes #9839)
    Files:      src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim,
                src/testdir/test_quickfix.vim

    Patch 8.2.4463
    Problem:    Completion only uses strict matching.
    Solution:   Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan,
                closes #9803)
    Files:      runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c,
                src/option.c, src/option.h, src/optionstr.c,
                src/proto/cmdexpand.pro, src/proto/option.pro,
                src/proto/search.pro, src/search.c, src/structs.h,
                src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim

    Patch 8.2.4464
    Problem:    Dtrace files are recognized as filetype D.
    Solution:   Add a pattern for Dtrace files. (Teubel György, closes #9841)
                Add some more testing.
    Files:      runtime/autoload/dist/ft.vim, runtime/filetype.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4465
    Problem:    Fuzzy completion does not order matches properly.
    Solution:   Do not use regular expression match. (Yegappan Lakshmanan,
                closes #9843)
    Files:      src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim

    Patch 8.2.4466
    Problem:    MS-Windows: illegal memory access in installer when using
                "create-directories" as the final argument.
    Solution:   Check the argument count. (Cam Sinclair, closes #9844)
    Files:      src/dosinst.c

    Patch 8.2.4467
    Problem:    Running filetype test leaves file behind.
    Solution:   Delete the file.
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.4468
    Problem:    Coverity warns for uninitialized struct member.
    Solution:   Set color.index to zero.
    Files:      src/terminal.c

    Patch 8.2.4469
    Problem:    Coverity warns for uninitialized variable.
    Solution:   Set the value to zero.
    Files:      src/ex_getln.c

    Patch 8.2.4470
    Problem:    Coverity warns for uninitialized variable.
    Solution:   Set can_spell to zero.
    Files:      src/drawline.c

    Patch 8.2.4471
    Problem:    Coverity warns for uninitialized variable.
    Solution:   Set flags to zero.
    Files:      src/vim9cmds.c

    Patch 8.2.4472
    Problem:    Coverity warns for use of a freed function name.
    Solution:   Only check an autoload name when is prefixed.
    Files:      src/userfunc.c

    Patch 8.2.4473
    Problem:    Coverity warns for not checking return value of ftell().
    Solution:   Bail out if ftell() returns a negative value.
    Files:      src/spellfile.c

    Patch 8.2.4474
    Problem:    Memory allocation failures not tested in quickfix code.
    Solution:   Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848)
    Files:      src/alloc.h, src/quickfix.c, src/vim.h,
                src/testdir/test_quickfix.vim

    Patch 8.2.4475
    Problem:    Fuzzy cmdline completion does not work for lower case.
    Solution:   Also use fuzzy completion for lower case input. (Yegappan
                Lakshmanan, closes #9849)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.4476
    Problem:    Operator name spelled wrong.
    Solution:   Change trinary to ternary. (Goc Dundar, closes #9850)
    Files:      src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.4477
    Problem:    Crash when using fuzzy completion.
    Solution:   Temporary fix: put back regexp. (closes #9851)
    Files:      src/cmdexpand.c

    Patch 8.2.4478
    Problem:    Crash when using fuzzy completion.
    Solution:   Temporary fix: put back regexp. (closes #9852, closes #9851)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.4479
    Problem:    No fuzzy completion for maps and abbreviations.
    Solution:   Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
                closes #9856)
    Files:      src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c,
                src/testdir/test_cmdline.vim

    Patch 8.2.4480
    Problem:    Suspending with CTRL-Z does not work on Android.
    Solution:   Do not handle SIGTSTP. (closes #9854)
    Files:      src/os_unix.c

    Patch 8.2.4481
    Problem:    Cmdline popup menu not removed when 'lazyredraw' is set.
    Solution:   Temporarily reset 'lazyredraw' when removing the popup menu.
                (closes #9857)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_41.dump

    Patch 8.2.4482
    Problem:    No fuzzy cmdline completion for user defined completion.
    Solution:   Add fuzzy completion for user defined completion. (Yegappan
                Lakshmanan, closes #9858)
    Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim

    Patch 8.2.4483
    Problem:    Command completion makes two rounds to collect matches.
    Solution:   Use a growarray to collect matches. (Yegappan Lakshmanan,
                closes #9860)
    Files:      src/buffer.c, src/cmdexpand.c, src/map.c,
                src/testdir/test_cmdline.vim

    Patch 8.2.4484
    Problem:    Vim9: some error messages are not tested.
    Solution:   Add a few more test cases.  Delete dead code.
    Files:      src/vim9execute.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.4485
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize the variable. (John Marriott)
    Files:      src/cmdexpand.c

    Patch 8.2.4486
    Problem:    MS-Windows GUI: slow scrolling with maximized window.
    Solution:   Use a better way to check the window is on screen. (Ken Takata,
                closes #9865)
    Files:      src/gui_w32.c

    Patch 8.2.4487
    Problem:    Vim9: cannot compare with v:null.
    Solution:   Allow comparing anything with v:null. (closes #9866)
    Files:      src/vim9instr.c, src/typval.c, src/proto/typval.pro,
                src/vim9.h, src/vim9execute.c, src/evalvars.c,
                src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4488 (after 8.2.4487)
    Problem:    Build error with +eval but without +channel or +job.
    Solution:   Add #ifdef. (John Marriott)
    Files:      src/typval.c

    Patch 8.2.4489 (after 8.2.4487)
    Problem:    Failing test for comparing v:null with number.
    Solution:   Allow comparing v:null with number in legacy script.
                (Ken Takata, closes #9873)  Also do this for float.
    Files:      src/typval.c, src/testdir/test_vimscript.vim

    Patch 8.2.4490
    Problem:    Terminal focus reporting only works for xterm-like terminals.
                (Jonathan Rascher)
    Solution:   Remove the "focus_mode" flag. (closes #9859)
    Files:      src/term.c

    Patch 8.2.4491
    Problem:    MS-Windows makefile dependencies are outdated.
    Solution:   Update dependencies. (Ken Takata, closes #9876)
    Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

    Patch 8.2.4492
    Problem:    No error if an option is given an invalid value with
                ":let &opt = val".
    Solution:   Give the error. (closes #9864)
    Files:      src/evalvars.c, src/testdir/test_options.vim

    Patch 8.2.4493 (after 8.2.4492)
    Problem:    Options test fails in the GUI.
    Solution:   Do not save and restore 'term'.
    Files:      src/testdir/gen_opt_test.vim

    Patch 8.2.4494
    Problem:    The find_tags() function is much too long.
    Solution:   Refactor the function. (Yegappan Lakshmanan, closes #9869)
    Files:      src/quickfix.c, src/tag.c, src/testdir/test_tagjump.vim

    Patch 8.2.4495
    Problem:    Help test fails in 24 line terminal.
    Solution:   Use up to 23 lines for text.
    Files:      src/testdir/test_help.vim

    Patch 8.2.4496 (after 8.2.4494)
    Problem:    Coverity gives warnings after tags code refactoring.
    Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #9882)
    Files:      src/tag.c

    Patch 8.2.4497
    Problem:    Wrong color for half of wide character next to pum scrollbar.
    Solution:   Redraw the screen cell with the right color. (closes #9874)
    Files:      src/screen.c, src/testdir/test_ins_complete.vim,
                src/testdir/dumps/Test_scrollbar_on_wide_char.dump

    Patch 8.2.4498
    Problem:    Using <Plug> with "noremap" does not work.
    Solution:   Always remap <Plug>. (closes #9879, closes #9789)
    Files:      runtime/doc/map.txt, src/getchar.c, src/testdir/test_mapping.vim

    Patch 8.2.4499
    Problem:    Vim9: at the script level declarations leak from try block to
                catch and finally block.
    Solution:   End the block and start a new one. (closes #9883)
    Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4500
    Problem:    Vim9: can declare a global variable on the command line.
    Solution:   Disallow declaring a variable on the command line. (closes #9881)
    Files:      src/errors.h, src/evalvars.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_script.vim,
                src/testdir/dumps/Test_vim9_reject_declaration.dump

    Patch 8.2.4501
    Problem:    With 'showbreak' set and after the end of the line the cursor
                may be displayed in the wrong position.
    Solution:   Do not apply 'showbreak' after the end of the line. (closes #9884)
    Files:      src/charset.c, src/testdir/test_breakindent.vim,
                src/testdir/dumps/Test_cursor_position_with_showbreak.dump

    Patch 8.2.4502
    Problem:    In the GUI a modifier is not recognized for the key typed after
                CTRL-X, which may result in a mapping to be used. (Daniel
                Steinberg)
    Solution:   Recognize a modifier starting with CSI. (closes #9889)
    Files:      src/getchar.c, src/testdir/test_ins_complete.vim

    Patch 8.2.4503
    Problem:    Vim9: there is no point in supporting :Print and :mode.
    Solution:   Do not recognize :Print and :mode as commands. (closes #9870)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4504
    Problem:    When there is a partially matching map and modifyOtherKeys is
                active a full map may not work.
    Solution:   Only simplify modifiers when there is no matching mapping.
                (closes #8792)
    Files:      src/getchar.c, src/testdir/test_termcodes.vim

    Patch 8.2.4505
    Problem:    Vim9: outdated "autocmd nested" still works.
    Solution:   Do not accept the :autocmd argument "nested" without "++" in Vim9
                script.
    Files:      src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim

    Patch 8.2.4506
    Problem:    "pattern not found" for :global is not an error message.
    Solution:   In Vim9 script make this an actual error, so that try/catch can be
                used as expected.
    Files:      src/ex_cmds.c, src/errors.h, src/testdir/test_global.vim

    Patch 8.2.4507 (after 8.2.4506)
    Problem:    Test fails because of new error message.
    Solution:   Avoid the test fails.
    Files:      src/testdir/test_vim9_cmd.vim

    Patch 8.2.4508
    Problem:    Vim9: cannot assign to a global variable on the command line.
    Solution:   Allow using :vim9cmd for assignment on the command line.
    Files:      src/evalvars.c, src/testdir/test_vim9_script.vim,
                src/testdir/dumps/Test_vim9_reject_declaration.dump,
                src/testdir/dumps/Test_vim9_reject_declaration_1.dump,
                src/testdir/dumps/Test_vim9_reject_declaration_2.dump

    Patch 8.2.4509
    Problem:    Vim9: can declare a variable with ":va".
    Solution:   Disallow using ":va", require using ":var".
    Files:      src/evalvars.c, src/errors.h, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4510
    Problem:    Vim9: shortening commands leads to confusing script.
    Solution:   In Vim9 script require at least ":cont" for ":continue", "const"
                instead of "cons", "break" instead of "brea", "catch" instead of
                "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
                instead of "endfo" "endif" instead of "en" "endtry" instead of
                "endt", "finally" instead of "fina", "throw" instead of "th",
                "while" instead of "wh".
    Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/evalvars.c,
                src/vim9compile.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4511
    Problem:    Filetype test fails.
    Solution:   Change "endw" to "endwhile".
    Files:      runtime/autoload/dist/ft.vim

    Patch 8.2.4512
    Problem:    The find_tags_in_file() function is much too long.
    Solution:   Refactor into multiple smaller functions. (Yegappan Lakshmanan,
                closes #9892)
    Files:      Filelist, src/Makefile, src/quickfix.c, src/tag.c,
                src/testdir/test83-tags2, src/testdir/test83-tags3,
                src/testdir/test_tagjump.vim

    Patch 8.2.4513
    Problem:    Window-local directory is not applied if 'acd' fails.
    Solution:   Don't call do_autochdir(). (closes #9891)
    Files:      src/window.c, src/testdir/test_autochdir.vim

    Patch 8.2.4514
    Problem:    Vim9: some flow commands can be shortened.
    Solution:   Also require using the full name for ":return", ":enddef",
                ":continue", ":export" and ":import".
    Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
                src/testdir/test_vim9_script.vim

    Patch 8.2.4515
    Problem:    Old substitute syntax is still supported.
    Solution:   Disallow using backslash after ":s" in Vim9 script.
    Files:      src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim

    Patch 8.2.4516 (after 8.2.4515)
    Problem:    Build failure without the +eval feature.
    Solution:   Move error message outside of #ifdef.
    Files:      src/errors.h

    Patch 8.2.4517
    Problem:    MS-Windows: cannot specify location of sodium library.
    Solution:   Allow for using a path for SODIUM. (Ken Takata, closes #9896)
    Files:      src/Make_cyg_ming.mak

    Patch 8.2.4518
    Problem:    The binary tag search feature is always enabled.
    Solution:   Remove the #ifdefs.  Add a few more tests. (Yegappan Lakshmanan,
                closes #9893)
    Files:      src/evalfunc.c, src/feature.h, src/tag.c, src/version.c,
                src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim

    Patch 8.2.4519
    Problem:    Vim9: Can still use ":fini" and ":finis" for ":finish".
    Solution:   Require using ":finish".
    Files:      src/ex_cmds.h, src/testdir/test_vim9_script.vim

    Patch 8.2.4520
    Problem:    Using wrong highlight for cursor line number.
    Solution:   Take filler lines into account when using CursorLineNr.
                (closes #9897)
    Files:      src/drawline.c, src/testdir/test_diffmode.vim,
                src/testdir/dumps/Test_diff_with_cursorline_number_01.dump,
                src/testdir/dumps/Test_diff_with_cursorline_number_02.dump

    Patch 8.2.4521 (after 8.2.4520)
    Problem:    Build failure without the +diff feature. (John Marriott)
    Solution:   Define filler+lines if not declaring it.
    Files:      src/drawline.c

    Patch 8.2.4522 (after 8.2.4492)
    Problem:    GUI test fails with Motif. (Dominique Pellé)
    Solution:   Remove using an invalid value for 'guifontset'.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4523
    Problem:    When gvim is started maximized the 'window' option isn't set
                properly. (Christian J. Robinson)
    Solution:   Check if 'windows' was already set or not. (Ken Takata,
                closes #9904)
    Files:      src/term.c

    Patch 8.2.4524
    Problem:    MS-Windows: cannot build with some sodium libraries.
    Solution:   Make the DLL name configurable.  Add build instructions.
                (Ken Takata, closes #9905)
    Files:      src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
                src/crypt.c

    Patch 8.2.4525
    Problem:    Some GUI tests don't work on Athena.
    Solution:   Skip tests that won't work. (Yegappan Lakshmanan, closes #9902)
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4526
    Problem:    Vim9: cannot set variables to a null value.
    Solution:   Add null_list, null_job, etc.
    Files:      runtime/doc/vim9.txt, src/eval.c, src/proto/eval.pro,
                src/vim9expr.c, src/vim9script.c, src/vim9instr.c,
                src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/vim9type.c,
                src/evalvars.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_expr.vim

    Patch 8.2.4527
    Problem:    The Athena GUI is old and does not work well.
    Solution:   Remove the Athena GUI from configure to find out who still wants
                support for this GUI.
    Files:      src/configure.ac, src/auto/configure, src/Makefile

    Patch 8.2.4528
    Problem:    Crash when using null_function for a partial.
    Solution:   Don't call fname_trans_sid() with NULL. (closes #9908)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4529
    Problem:    Vim9: comparing partial with function fails.
    Solution:   Support this comparison.  Avoid a crash. (closes #9909)
                Add more test cases.
    Files:      src/vim9instr.c, src/userfunc.c, src/vim9type.c,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vimscript.vim

    Patch 8.2.4530
    Problem:    Making comparison with null work changes legacy behavior.
    Solution:   Only use the better comparison in Vim9 script. (closes #9910)
    Files:      src/typval.c, src/testdir/test_expr.vim

    Patch 8.2.4531
    Problem:    LGTM warnings for condition always true and buffer size too small.
    Solution:   Remove the useless condition.  Make the buffer larger. (Goc
                Dundar, closes #9914)
    Files:      src/charset.c, src/term.c

    Patch 8.2.4532
    Problem:    Suspending with CTRL-Z does not work on OpenBSD.
    Solution:   Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912)
    Files:      src/os_unix.c

    Patch 8.2.4533
    Problem:    Vim9: no test that after assigning null the type is still checked.
    Solution:   Add a test.
    Files:      src/testdir/test_vim9_assign.vim

    Patch 8.2.4534
    Problem:    Vim9: "is" operator with empty string and null returns true.
    Solution:   Consider empty string and null to be different for "is".
    Files:      src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4535
    Problem:    Filename modifier ":8" removes the filename.
    Solution:   Use strncpy() instead of vim_strncpy(). (Christian Brabandt,
                closes #9918, closes #8600)
    Files:      src/filepath.c, src/testdir/test_shortpathname.vim

    Patch 8.2.4536 (after 8.2.4534)
    Problem:    Debugger test fails when breaking on expression.
    Solution:   Compare strings with "==" instead of "is".
    Files:      src/debugger.c

    Patch 8.2.4537
    Problem:    Output from linter and language server shows up in git.
    Solution:   Add patterns to .gitignore. (Goc Dundar, closes #9925)
    Files:      .gitignore

    Patch 8.2.4538
    Problem:    The find_tags_in_file() function is too long.
    Solution:   Refactor into smaller functions. (Yegappan Lakshmanan,
                closes #9920)
    Files:      src/tag.c, src/testdir/test_tagjump.vim

    Patch 8.2.4539
    Problem:    When comparing special v:none and v:null are handled the same when
                compiling.
    Solution:   Pass more information so that v:none can be handled differently at
                compile time.  (issue #9923)
    Files:      src/vim9instr.c, src/vim9compile.c, src/globals.h,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.4540
    Problem:    Line number for error is off by one.
    Solution:   Remember the line number of the comparison. (closes #9923)
    Files:      src/eval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4541
    Problem:    Crash in debugger when a variable is not available in the current
                block.
    Solution:   Check for a NULL name. (closes #9926)
    Files:      src/vim9execute.c, src/testdir/test_debugger.vim

    Patch 8.2.4542
    Problem:    Vim9: "break" inside try/catch not handled correctly.
    Solution:   First jump to :endtry. (closes #9927)
    Files:      src/vim9cmds.c, src/vim9.h, src/testdir/test_vim9_script.vim

    Patch 8.2.4543
    Problem:    Coverity warning for refactored tag search code.
    Solution:   Avoid the warnings.  Update comments.  Add one more test case.
                (Yegappan Lakshmanan, closes #9928)
    Files:      src/tag.c, src/testdir/test_tagjump.vim

    Patch 8.2.4544
    Problem:    Coverity warnings for not using returned value.
    Solution:   Assign to vim_ignored.
    Files:      src/tag.c

    Patch 8.2.4545
    Problem:    MS-Windows: the installed icon is low resolution.
    Solution:   Use a better icon.  Install vim.ico. (Christian Brabandt,
                closes #9931, closes #9930)
    Files:      Filelist, nsis/gvim.nsi, src/vim.ico, runtime/bitmaps/vim.ico

    Patch 8.2.4546
    Problem:    Duplicate #undef.
    Solution:   Remove one #undef. (closes #9932)
    Files:      src/regexp_nfa.c

    Patch 8.2.4547
    Problem:    The neXTaw GUI is old and does not work well.
    Solution:   Remove the neXTaw GUI from configure to find out who still wants
                support for this GUI.
    Files:      src/configure.ac, src/auto/configure, src/Makefile

    Patch 8.2.4548
    Problem:    Script-local function is deleted when used in a funcref.
    Solution:   Do not consider a function starting with "<SNR>" reference
                counted. (closes #9916, closes #9820)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4549
    Problem:    Cannot build with Motif and editres. (Tony Mechelynck)
    Solution:   Fix configure mistake.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.4550
    Problem:    Motif: cannot set the color of the scrollbar thumb.
    Solution:   Remove #ifdef.
    Files:      src/gui_motif.c

    Patch 8.2.4551
    Problem:    When mapping <Esc> terminal codes are not recognized.
    Solution:   Specifically recognize a mapping with just <Esc> and check for
                terminal codes even though there is no partial mapping.
                (closes #9903)
    Files:      src/getchar.c, src/testdir/test_termcodes.vim

    Patch 8.2.4552
    Problem:    In a :def function "put = expr" does not work.
    Solution:   Skip over white space. (closes #9936)
    Files:      src/vim9cmds.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4553
    Problem:    Linear tag search is a bit slow.
    Solution:   Remove a vim_ftell() call. (Yegappan Lakshmanan, closes #9937)
    Files:      src/tag.c, src/testdir/test_taglist.vim

    Patch 8.2.4554
    Problem:    Vim9: using null values not sufficiently tested.
    Solution:   Add more tests.  Fix uncovered problem.
    Files:      src/vim9type.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4555
    Problem:    getmousepos() returns the wrong column. (Ernie Rael)
    Solution:   Limit to the text size, not the number of bytes.
    Files:      src/mouse.c, src/testdir/test_functions.vim

    Patch 8.2.4556
    Problem:    Test fails without the +job or +channel feature. (Dominique Pellé)
    Solution:   Adjust #ifdefs.  Pass on skip flag. (closes #9942)
    Files:      src/eval.c, src/vim9compile.c

    Patch 8.2.4557
    Problem:    Confusing comment about 'cursorlineopt'.
    Solution:   Adjust comment.  (closes #9939)  Add parenthesis around logical
                OR.
    Files:      src/drawline.c

    Patch 8.2.4558
    Problem:    Motif: using default colors does not work as expected.
    Solution:   Do not try to store the default colors, use the resources.
                (closes #9933)
    Files:      src/gui_motif.c, src/gui.h

    Patch 8.2.4559 (after 8.24555)
    Problem:    getmousepos() returns the screen column. (Ernie Rael)
    Solution:   Return the text column, as documented.
    Files:      src/mouse.c, src/testdir/test_functions.vim

    Patch 8.2.4560
    Problem:    Suspending with CTRL-Z does not work on DragonFlyBSD.
    Solution:   Adjust #ifdef. (Ozaki Kiichi, closes #9943)
    Files:      src/os_unix.c

    Patch 8.2.4561
    Problem:    Build failure with some combination of features. (John Marriott)
    Solution:   Adjust #ifdef.
    Files:      src/mouse.c

    Patch 8.2.4562
    Problem:    Linear tag search is not optimal.
    Solution:   Improve linear tag search performance. (Yegappan Lakshmanan,
                closes #9944)
    Files:      src/tag.c

    Patch 8.2.4563
    Problem:    "z=" in Visual mode may go beyond the end of the line.
    Solution:   Adjust "badlen".
    Files:      src/spellsuggest.c, src/testdir/test_spell.vim

    Patch 8.2.4564
    Problem:    Running test leaves file behind.  (Dominique Pellé)
    Solution:   Run the profiling in a separate Vim instance. (closes #9952)
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.4565
    Problem:    No command line completion for :breakadd and :breakdel.
    Solution:   Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan,
                closes #9950)
    Files:      runtime/doc/builtin.txt, src/cmdexpand.c, src/spellsuggest.c,
                src/usercmd.c, src/vim.h, src/testdir/test_cmdline.vim,
                src/testdir/test_writefile.vim

    Patch 8.2.4566
    Problem:    Check for existing buffer in session file does not work for files
                in the home directory.
    Solution:   Use fnamemodify(). (James Cherti, closes #9945)  Add a test.
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.4567
    Problem:    Bracketed paste doesn't work well in Visual linewise mode.
    Solution:   Handle linewise Visual mode differently. (closes #9947)
    Files:      src/normal.c, src/testdir/test_paste.vim

    Patch 8.2.4568
    Problem:    getmousepos() does not compute the column below the last line.
    Solution:   Also compute the column when the mouse is below the last line.
                (Sean Dewar, closes #9946)
    Files:      src/mouse.c, src/testdir/test_functions.vim

    Patch 8.2.4569
    Problem:    Coverity warning for not using a return value.
    Solution:   Add "(void)".
    Files:      src/popupwin.c

    Patch 8.2.4570
    Problem:    No command line completion for :profile and :profdel.
    Solution:   Implement completion. (Yegappan Lakshmanan, closes #9955)
    Files:      src/cmdexpand.c, src/profiler.c, src/testdir/test_cmdline.vim,
                src/testdir/test_profile.vim

    Patch 8.2.4571
    Problem:    Not all gdb files are recognized.
    Solution:   Add a few more patterns for gdb. (Jade Lovelace, closes #9956)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4572
    Problem:    Vim9: return type "any" is sometimes changed to first returned
                type.  (Virginia Senioria)
    Solution:   Do not change the return type if declared as "any". (closes #9949)
    Files:      src/vim9cmds.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4573
    Problem:    A nested function (closure) is compiled for debugging without
                context.
    Solution:   Check if a nested function is marked for debugging before
                compiling it.  Give an error when trying to compile a closure
                without its context. (closes #9951)
    Files:      src/vim9compile.c, src/vim9execute.c, src/proto/vim9execute.pro,
                src/vim9expr.c, src/errors.h

    Patch 8.2.4574
    Problem:    Vim9: test for profiling fails.
    Solution:   Mark function for profiling earlier to avoid E1271.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.4575
    Problem:    Vim9: test for profiling still fails.
    Solution:   Update flags for profiling and breakpoints when obtaining the
                compile type.  Do not set the FC_CLOSURE flag for a toplevel
                function.
    Files:      src/vim.h, src/vim9compile.c, src/proto/vim9compile.pro,
                src/eval.c, src/vim9execute.c, src/vim9expr.c, src/vim9instr.c,
                src/vim9.h

    Patch 8.2.4576
    Problem:    Vim9: error for comparing with null can be annoying.
    Solution:   Allow comparing anything with null. (closes #9948)
    Files:      src/vim9instr.c, src/typval.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4577
    Problem:    Message test is flaky. (Elimar Riesebieter)
    Solution:   Trigger the autocommand event only after startup is finished.
    Files:      src/testdir/test_messages.vim

    Patch 8.2.4578
    Problem:    No warning when an autoload script for completion function has an
                error.
    Solution:   Do not ignore errors when a function name is given with a dot or
                '#' character. (closes #9958)
    Files:      src/eval.c, src/testdir/test_cmdline.vim

    Patch 8.2.4579
    Problem:    Cannot use page-up and page-down in the command line completion
                popup menu.
    Solution:   Check for to page-up and page-down keys. (Yegappan Lakshmanan,
                closes #9960)
    Files:      src/cmdexpand.c, src/ex_getln.c, src/spellsuggest.c, src/vim.h,
                src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_wildmenu_pum_42.dump,
                src/testdir/dumps/Test_wildmenu_pum_43.dump,
                src/testdir/dumps/Test_wildmenu_pum_44.dump,
                src/testdir/dumps/Test_wildmenu_pum_45.dump,
                src/testdir/dumps/Test_wildmenu_pum_46.dump,
                src/testdir/dumps/Test_wildmenu_pum_47.dump,
                src/testdir/dumps/Test_wildmenu_pum_48.dump,
                src/testdir/dumps/Test_wildmenu_pum_49.dump,
                src/testdir/dumps/Test_wildmenu_pum_50.dump

    Patch 8.2.4580
    Problem:    Vim9: incorrect error for shadowing variable.
    Solution:   Do not pass the context when compiling a referenced function.
    Files:      src/vim9expr.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4581
    Problem:    Null types not fully tested.
    Solution:   Add some more tests using null types.
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.4582
    Problem:    Useless code handling a type declaration.
    Solution:   Remove the code and give an error.
    Files:      src/eval.c, src/errors.h, src/testdir/test_vim9_script.vim,
                src/testdir/dumps/Test_misplaced_type.dump

    Patch 8.2.4583 (after 8.2.4582)
    Problem:    Screendump test fails.
    Solution:   Check that making a screendump is possible.
    Files:      src/testdir/test_vim9_script.vim

    Patch 8.2.4584 (after 8.2.4578)
    Problem:    Error for using autoload function in custom completion.
    Solution:   Do not check for errors when using an autoload function.
                (closes #9962)
    Files:      src/eval.c, src/testdir/test_cmdline.vim

    Patch 8.2.4585
    Problem:    Cannot use keypad page-up/down for completion menu.
    Solution:   Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963)
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.4586
    Problem:    Vim9: no error for using lower case name for "func" argument.
                (Ernie Rael)
    Solution:   Check the name as soon as the type is known.
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4587
    Problem:    Vim9: double free after unpacking a list.
    Solution:   Make a copy of the value instead of moving it. (closes #9968)
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4588
    Problem:    Mapping with key code after other matching mapping does not work.
    Solution:   Change ">" to ">=". (closes #9903)
    Files:      src/getchar.c, src/testdir/test_termcodes.vim

    Patch 8.2.4589
    Problem:    Cannot index the g: dictionary.
    Solution:   Recognize using "g:[key]". (closes #9969)
    Files:      src/ex_docmd.c, src/eval.c, src/vim9compile.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4590
    Problem:    Vim9: range type check has wrong offset.
    Solution:   Adjust offset for CHECKTYPE.  Remove other type check.
    Files:      src/vim9compile.c, src/vim9execute.c,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4591
    Problem:    Cursor line not updated when a callback moves the cursor.
    Solution:   Check if the cursor moved. (closes #9970)
    Files:      src/main.c, src/drawscreen.c, src/proto/drawscreen.pro,
                src/testdir/test_cursorline.vim,
                src/testdir/dumps/Test_cursorline_callback_1.dump

    Patch 8.2.4592
    Problem:    Search continues after giving E1204.
    Solution:   Return failure after giving E1204. (closes #9972)
    Files:      src/regexp_nfa.c

    Patch 8.2.4593
    Problem:    Unnecessary call to redraw_later().
    Solution:   Remove the call to redraw_later() in op_yank(). (closes #9971)
    Files:      src/register.c

    Patch 8.2.4594
    Problem:    Need to write script to a file to be able to source them.
    Solution:   Make ":source" use lines from the current buffer. (Yegappan
                Lakshmanan et al., closes #9967)
    Files:      runtime/doc/repeat.txt, runtime/doc/todo.txt, src/alloc.c,
                src/digraph.c, src/eval.c, src/ex_cmds.h, src/scriptfile.c,
                src/proto/scriptfile.pro, src/vim9script.c,
                src/testdir/test_source.vim

    Patch 8.2.4595
    Problem:    X11: using --remote-wait may keep the CPU busy.
    Solution:   Set the timeout for select() on every call. (Jacopo Secchiero,
                closes #9973)
    Files:      src/if_xcmdsrv.c

    Patch 8.2.4596
    Problem:    Installing tutor binary may fail.
    Solution:   Fix the dependency. (Sergei Trofimovich, closes #9978)
    Files:      src/Makefile

    Patch 8.2.4597
    Problem:    LuaV_debug() not covered by tests.
    Solution:   Add a test. (Dominique Pellé, closes #9980)
    Files:      src/testdir/test_lua.vim

    Patch 8.2.4598
    Problem:    Profile completion test sometimes fails.
    Solution:   Delete the .res file before running tests.
    Files:      src/testdir/runtest.vim

    Patch 8.2.4599
    Problem:    GTK: get assertion errors when scrolling a split window.
    Solution:   Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982)
    Files:      src/gui_gtk.c

    Patch 8.2.4600
    Problem:    Vim9: not enough test coverage for executing :def function.
    Solution:   Add a few more tests.  Fix inconsistencies.
    Files:      src/vim9execute.c, src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_listdict.vim, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.4601
    Problem:    Vim9: not enough test coverage for executing :def function.
    Solution:   Add a few more tests.
    Files:      src/testdir/test_vim9_script.vim, src/testdir/test_vim9_func.vim,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.4602
    Problem:    Vim9: not enough test coverage for executing :def function.
    Solution:   Add a few more tests.  Fix uncovered problem.  Remove dead code.
    Files:      src/vim9execute.c, src/vim9.h, src/vim9instr.c,
                src/proto/vim9instr.pro, src/vim9compile.c,
                src/testdir/test_vim9_script.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.4603
    Problem:    Sourcing buffer lines is too complicated.
    Solution:   Simplify the code. Make it possible to source Vim9 script lines.
                (Yegappan Lakshmanan, closes #9974)
    Files:      runtime/doc/repeat.txt, src/ex_docmd.c, src/proto/scriptfile.pro,
                src/scriptfile.c, src/structs.h, src/testdir/test_source.vim

    Patch 8.2.4604
    Problem:    Error for redefining a script item may be confusing.
    Solution:   Put quotes around the name.
    Files:      src/errors.h

    Patch 8.2.4605
    Problem:    Error for arguments of remote_expr() even when the +clientserver
                feature is not included.
    Solution:   Move #ifdef.
    Files:      src/clientserver.c

    Patch 8.2.4606 (after 8.2.4605)
    Problem:    Test fails because of changed error message.
    Solution:   Update the expected error message
    Files:      src/testdir/test_vim9_import.vim

    Patch 8.2.4607
    Problem:    Sourcing buffer lines may lead to errors for conflicts.
    Solution:   Add the ++clear argument. (Yegappan Lakshmanan, closes #9991)
    Files:      runtime/doc/repeat.txt, src/scriptfile.c, src/vim9script.c,
                src/proto/vim9script.pro, src/testdir/test_source.vim

    Patch 8.2.4608
    Problem:    getcompletion() does not work properly when 'wildoptions'
                contains "fuzzy".
    Solution:   Do not use addstar(). (Yegappan Lakshmanan, closes #9992,
                closes #9986)
    Files:      runtime/doc/builtin.txt, src/cmdexpand.c,
                src/testdir/test_cmdline.vim

    Patch 8.2.4609
    Problem:    :unhide does not check for failing to close a window.
    Solution:   When closing a window fails continue with the next one.  Do not
                try closing the autocmd window. (closes #9984)
    Files:      src/buffer.c, src/window.c, src/proto/window.pro,
                src/testdir/test_autocmd.vim

    Patch 8.2.4610
    Problem:    Some conditions are always true.
    Solution:   Remove the useless conditions. (closes #9993)
    Files:      src/clientserver.c, src/drawline.c, src/drawscreen.c,
                src/ex_cmds.c, src/fileio.c, src/message.c, src/misc2.c,
                src/ops.c, src/sign.c, src/spell.c, src/vim9cmds.c, src/window.c

    Patch 8.2.4611
    Problem:    Typos in tests; one lua line not covered by test.
    Solution:   Fix typos. Add test case. (Dominique Pellé, closes #9994)
    Files:      src/testdir/test_breakindent.vim, src/testdir/test_crypt.vim,
                src/testdir/test_cursorline.vim, src/testdir/test_digraph.vim,
                src/testdir/test_gui.vim, src/testdir/test_lua.vim,
                src/testdir/test_regexp_latin.vim, src/testdir/test_signals.vim,
                src/testdir/test_spell.vim, src/testdir/test_statusline.vim,
                src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim, src/testdir/test_vimscript.vim

    Patch 8.2.4612
    Problem:    Vim9: cannot use a recursive call in a nested function. (Sergey
                Vlasov)
    Solution:   Define the funcref before compiling the function. (closes #9989)
    Files:      src/vim9compile.c, src/vim9instr.c, src/proto/vim9instr.pro,
                src/vim9expr.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4613
    Problem:    Return type of swapfile_unchanged() is wrong.
    Solution:   Use "int". (closes #10000  Yeah!)
    Files:      src/memline.c

    Patch 8.2.4614
    Problem:    Redrawing too much when 'cursorline' is set and jumping around.
    Solution:   Rely on win_update() to redraw the current and previous cursor
                line, do not mark lines as modified. (closes #9996)
    Files:      src/drawline.c, src/drawscreen.c, src/move.c, src/proto/move.pro,
                src/option.c

    Patch 8.2.4615
    Problem:    Mapping with escaped bar does not work in :def function. (Sergey
                Vlasov)
    Solution:   Do not remove the backslash. (closes #10002)
    Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/syntax.c,
                src/vim9cmds.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4616
    Problem:    Vim9: Declarations in a {} block of a user command do not use Vim9
                rules if defined in a legacy script. (Yegappan Lakshmanan)
    Solution:   Pretend the script is Vim9 script.
    Files:      src/usercmd.c, src/testdir/test_usercommands.vim

    Patch 8.2.4617
    Problem:    No completion for :scriptnames.
    Solution:   Implement :scriptnames completion. (Yegappan Lakshmanan,
                closes #10005)
    Files:      runtime/doc/builtin.txt, src/cmdexpand.c, src/ex_cmds.h,
                src/scriptfile.c, src/usercmd.c, src/vim.h,
                src/testdir/test_cmdline.vim, src/testdir/test_quickfix.vim

    Patch 8.2.4618
    Problem:    Command line completion does not recognize single letter commands.
    Solution:   Use the condition from find_ex_command().
    Files:      src/ex_docmd.c

    Patch 8.2.4619
    Problem:    Mapping is cancelled when mouse moves and popup is visible.
    Solution:   Only generate mouse moved events when a popup may use them.
                (closes #10004)
    Files:      src/gui.c, src/globals.h, src/popupwin.c

    Patch 8.2.4620 (after 8.2.4618)
    Problem:    Two letter substitute commands don't work. (Yegappan Lakshmanan)
    Solution:   Invert condition.
    Files:      src/ex_docmd.c

    Patch 8.2.4621
    Problem:    Crash when using the tabline right-click menu.
    Solution:   Use XtPointer for XmNuserData. (closes #10009)
    Files:      src/gui_motif.c

    Patch 8.2.4622
    Problem:    Vim9: Crash with :execute and :finish. (Sergey Vlasov)
    Solution:   Check for NULL. (closes #10011)
    Files:      src/eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4623
    Problem:    Coverity warns for using uninitialized field.
    Solution:   Initialize the field to zero.
    Files:      src/ex_docmd.c

    Patch 8.2.4624
    Problem:    Old Coverity warning for resource leak.
    Solution:   Close the file if memory allocation fails.
    Files:      src/diff.c

    Patch 8.2.4625
    Problem:    Old Coverity warning for resource leak.
    Solution:   Call FreeWild() if expanding matches did not fail.
    Files:      src/help.c

    Patch 8.2.4626
    Problem:    Visual area not fully updated when removing sign in Visual mode
                while scrolling.
    Solution:   Adjust check for topline. (closes #10017)
    Files:      src/drawscreen.c, src/testdir/test_display.vim,
                src/testdir/dumps/Test_display_scroll_update_visual.dump

    Patch 8.2.4627
    Problem:    flatten() does not use maxdepth correctly.
    Solution:   Use a recursive implementation. (closes #10020)
    Files:      src/list.c, src/testdir/test_flatten.vim

    Patch 8.2.4628
    Problem:    Not enough testing for 2/3 letter substitute commands.
    Solution:   Add more tests. (Yegappan Lakshmanan, closes #10019)
    Files:      src/testdir/test_cmdline.vim, src/testdir/test_substitute.vim

    Patch 8.2.4629
    Problem:    flattennew() makes a deep copy unnecessarily.
    Solution:   Use a shallow copy. (issue #10012)
    Files:      src/list.c

    Patch 8.2.4630
    Problem:    'cursorline' not always updated with 'cursorlineopt' is
                "screenline".
    Solution:   Call check_redraw_cursorline() more often. (closes #10013)
    Files:      src/normal.c, src/edit.c, src/testdir/test_cursorline.vim,
                src/testdir/dumps/Test_cursorline_screenline_1.dump,
                src/testdir/dumps/Test_cursorline_screenline_2.dump

    Patch 8.2.4631
    Problem:    Crash when switching window in BufWipeout autocommand.
    Solution:   Put any buffer in the window to avoid it being NULL.
                (closes #10024)
    Files:      src/window.c, src/buffer.c, src/testdir/test_autocmd.vim

    Patch 8.2.4632
    Problem:    Using freed memory in flatten().
    Solution:   Clear typval after recursing into list.
    Files:      src/list.c

    Patch 8.2.4633
    Problem:    Visual range does not work before command modifiers.
    Solution:   Move Visual range to after command modifiers.
    Files:      src/ex_docmd.c, src/testdir/test_source.vim

    Patch 8.2.4634
    Problem:    Vim9: cannot initialize a variable to null_list.
    Solution:   Give negative count to NEWLIST. (closes #10027)
                Also fix inconsistencies in comparing with null values.
    Files:      src/vim9instr.c, src/proto/vim9instr.pro, src/vim9.h,
                src/vim9compile.c, src/vim9expr.c, src/vim9execute.c,
                src/evalvars.c, src/typval.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4635 (after 8.2.4634)
    Problem:    Tests using null list or dict fail.
    Solution:   Only use the new rules for Vim9 script.
    Files:      src/evalvars.c

    Patch 8.2.4636 (after 8.2.4633)
    Problem:    Not using Visual range.
    Solution:   Put the command pointer back to the range.
    Files:      src/ex_docmd.c

    Patch 8.2.4637
    Problem:    Warning for using uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize it.
    Files:      src/ex_docmd.c

    Patch 8.2.4638
    Problem:    Superfluous check if a redraw is needed for 'cursorline'.
    Solution:   Remove check_redraw_cursorline(). (closes #10030, closes #10029)
    Files:      src/drawscreen.c, src/proto/drawscreen.pro, src/edit.c,
                src/main.c, src/normal.c, src/move.c,
                src/testdir/dumps/Test_cursorcolumn_callback_1.dump,
                src/testdir/dumps/Test_relativenumber_callback_1.dump,
                src/testdir/test_highlight.vim, src/testdir/test_number.vim

    Patch 8.2.4639
    Problem:    Not sufficient parenthesis in preprocessor macros.
    Solution:   Add more parenthesis. (closes #10031)
    Files:      src/globals.h, src/gui.h, src/if_py_both.h, src/macros.h,
                src/option.h, src/regexp.h, src/spell.h, src/structs.h, src/vim.h,
                src/vim9.h

    Patch 8.2.4640
    Problem:    Some boolean options use "long" instead of "int".
    Solution:   Adjust the type. (James McCoy, closes #10033)
    Files:      src/option.h

    Patch 8.2.4641
    Problem:    May mark the wrong window for redrawing.
    Solution:   Use redraw_win_later(). (closes #10032)
    Files:      src/move.c

    Patch 8.2.4642
    Problem:    Vim9: in :def function script var cannot be null.
    Solution:   Only initialize a script variable when not set to a null value.
                (closes #10034)
    Files:      src/vim9execute.c, src/vim9type.c, src/globals.h, src/evalvars.c,
                src/vim.h, src/vim9script.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4643
    Problem:    Vim9: variable may be locked unintentionally.
    Solution:   Clear "v_lock". (closes #10036)
    Files:      src/vim9execute.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4644
    Problem:    Redrawing too often when 'relativenumber' is set.
    Solution:   Only redraw when the cursor line changed. (Lewis Russell,
                closes #10040)
    Files:      src/change.c, src/drawscreen.c, src/structs.h

    Patch 8.2.4645
    Problem:    'shortmess' changed when session does not store options.
    Solution:   Save and restore 'shortmess' if needed. (James Cherti,
                closes #10037)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.4646
    Problem:    Using buffer line after it has been freed in old regexp engine.
    Solution:   After getting mark get the line again.
    Files:      src/regexp_bt.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.4647
    Problem:    "source" can read past end of copied line.
    Solution:   Add a terminating NUL.
    Files:      src/scriptfile.c, src/testdir/test_source.vim

    Patch 8.2.4648
    Problem:    Handling LSP messages is a bit slow.
    Solution:   Included support for LSP messages. (Yegappan Lakshmanan,
                closes #10025)
    Files:      runtime/doc/channel.txt, src/channel.c, src/job.c, src/json.c,
                src/proto/json.pro, src/structs.h, src/testdir/test_channel.vim,
                src/testdir/test_channel_lsp.py

    Patch 8.2.4649
    Problem:    Various formatting problems.
    Solution:   Improve the code formatting.
    Files:      src/mark.c, src/quickfix.c, src/regexp_nfa.c, src/register.c,
                src/testdir/test_filechanged.vim, src/gui_athena.c,
                src/gui_motif.c, src/os_unix.c

    Patch 8.2.4650
    Problem:    "import autoload" only works with using 'runtimepath'.
    Solution:   Also support a relative and absolute file name.
    Files:      runtime/doc/vim9.txt, src/structs.h, src/scriptfile.c,
                src/proto/scriptfile.pro, src/vim9script.c, src/vim9expr.c,
                src/vim9.h, src/vim9execute.c, src/vim9instr.c,
                src/proto/vim9instr.pro, src/vim.h, src/userfunc.c,
                src/proto/userfunc.pro, src/testdir/test_vim9_import.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4651 (after 8.2.4650)
    Problem:    Test fails because path differs.
    Solution:   Only compare the tail of the path.
    Files:      src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4652 (after 8.2.4650)
    Problem:    Leaking memory if assignment fails.
    Solution:   Clear assigned value on failure.
    Files:      src/vim9execute.c

    Patch 8.2.4653
    Problem:    "import autoload" does not check the file name.
    Solution:   Give an error if the file is not readable. (closes #10049)
    Files:      src/filepath.c, src/proto/filepath.pro, src/errors.h,
                src/ex_cmds.c, src/ex_docmd.c, src/spellfile.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4654 (after 8.2.4653)
    Problem:    Missing changes for import check.
    Solution:   Add missing changes.
    Files:      src/vim9script.c

    Patch 8.2.4655
    Problem:    Command line completion popup menu positioned wrong when using a
                terminal window.
    Solution:   Position the popup menu differently when editing the command line.
                (Yegappan Lakshmanan, closes #10050, closes #10035)
    Files:      src/popupmenu.c, src/testdir/test_cmdline.vim,
                src/testdir/test_terminal.vim,
                src/testdir/dumps/Test_wildmenu_pum_term_01.dump

    Patch 8.2.4656
    Problem:    Vim9: can't use items from "import autoload" with autoload
                directory name.
    Solution:   Let sn_autoload_prefix overrule sn_import_autoload.
                (closes #10054)
    Files:      src/structs.h, src/vim9instr.c, src/vim9expr.c, src/vim9script.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4657
    Problem:    Errors for functions are sometimes hard to read.
    Solution:   Use printable_func_name() in more places.
    Files:      src/vim9execute.c, src/userfunc.c, src/proto/userfunc.pro,
                src/vim9expr.c, src/eval.c, src/vim9instr.c, src/vim9type.c,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.4658
    Problem:    Org-mode files are not recognized.
    Solution:   Add patterns to recognize "org" files. (closes #10046)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4659
    Problem:    Invalid memory access when using printable function name.
    Solution:   Adjust copied name length.
    Files:      src/userfunc.c

    Patch 8.2.4660
    Problem:    Cursorcolumn is sometimes not correct.
    Solution:   Recompute the cursor column when entering Insert mode and the
                cursor is on a character wider than a screen cell. (closes #10057)
    Files:      src/edit.c, src/testdir/test_highlight.vim,
                src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump,
                src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump

    Patch 8.2.4661
    Problem:    Coverity warning for using uninitialized variable.
    Solution:   Initialize variable to NULL.
    Files:      src/vim9expr.c

    Patch 8.2.4662
    Problem:    No error for using out of range list index.
    Solution:   Check list index at script level like in compiled function.
                (closes #10051)
    Files:      src/vim.h, src/evalvars.c, src/list.c, src/proto/list.pro,
                src/eval.c, src/vim9execute.c, src/testdir/test_vim9_assign.vim

    Patch 8.2.4663
    Problem:    Occasional crash when running the GUI tests.
    Solution:   Check that the line index is not too high. (closes #8681)
    Files:      src/screen.c

    Patch 8.2.4664
    Problem:    Elvish files are not recognized.
    Solution:   Recognize .elv files. (Bruno Roque, closes #10058)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4665
    Problem:    Popup with "minwidth" and scrollbar not updated properly.
    Solution:   Adjust the computation if the window width. (closes #10061)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_previewpopup_4.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_5.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_7.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_8.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_9.dump,
                src/testdir/dumps/Test_popupwin_previewpopup_10.dump,
                src/testdir/dumps/Test_popupwin_drag_minwidth_1.dump,
                src/testdir/dumps/Test_popupwin_drag_minwidth_2.dump,
                src/testdir/dumps/Test_popupwin_drag_minwidth_3.dump

    Patch 8.2.4666
    Problem:    Vim9: assignment not recognized in skipped block.
    Solution:   When skipping assume identifier exists. (closes #10059)
    Files:      src/vim9compile.c, src/proto/vim9compile.pro, src/vim9cmds.c,
                src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.4667
    Problem:    expandcmd() fails on an error.
    Solution:   On failure return the command unmodified. (Yegappan Lakshmanan,
                closes #10063)
    Files:      runtime/doc/builtin.txt, src/evalfunc.c,
                src/testdir/test_expand.vim

    Patch 8.2.4668
    Problem:    Buffer allocation failures insufficiently tested.
    Solution:   Add tests for memory allocation failures. (Yegappan Lakshmanan,
                closes #10064)
    Files:      src/alloc.h, src/buffer.c, src/popupwin.c, src/window.c,
                src/testdir/test_buffer.vim, src/testdir/test_swap.vim

    Patch 8.2.4669
    Problem:    In compiled code len('string') is not inlined.
    Solution:   Compute the length at compile time if possible. (closes #10065)
    Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/vim9expr.c,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4670
    Problem:    Memory allocation failures for new tab page not tested.
    Solution:   Add tests with failing memory allocation. (Yegappan Lakshmanan,
                closes #10067)
    Files:      src/alloc.h, src/blob.c, src/buffer.c, src/window.c,
                src/testdir/test_blob.vim, src/testdir/test_buffer.vim,
                src/testdir/test_tabpage.vim, src/testdir/test_window_cmd.vim

    Patch 8.2.4671
    Problem:    'wildignorecase' is sometimes not used for glob().
    Solution:   Also use 'wildignorecase' when there are no wildcards.
                (closes #10066, closes #8350)
    Files:      src/filepath.c, src/testdir/test_functions.vim

    Patch 8.2.4672
    Problem:    Using :normal with Ex mode may make :substitute hang.
    Solution:   When getting an empty line behave like 'q' was typed.
                (closes #10070)
    Files:      src/ex_cmds.c, src/testdir/test_normal.vim

    Patch 8.2.4673
    Problem:    Redrawing a vertically split window is slow when using CTRL-F and
                CTRL-B.
    Solution:   When deciding on USE_REDRAW bail out if scrolling more than three
                lines. (issue #8002)
    Files:      src/screen.c

    Patch 8.2.4674
    Problem:    Cannot force getting MouseMove events.
    Solution:   Add the 'mousemoveevent' option with implementation for the GUI.
                (Ernie Rael, closes #10044)
    Files:      runtime/doc/gui.txt, runtime/doc/options.txt,
                runtime/doc/testing.txt, src/gui.c, src/option.h,
                src/optiondefs.h, src/testing.c, src/testdir/test_gui.vim

    Patch 8.2.4675
    Problem:    No error for missing expression after :elseif. (Ernie Rael)
    Solution:   Check for missing expression. (closes #10068)
    Files:      src/ex_eval.c, src/testdir/test_vim9_script.vim

    Patch 8.2.4676 (after 8.2.4675)
    Problem:    Test fails with different error.
    Solution:   Add argument to :elseif.
    Files:      src/testdir/test_vimscript.vim

    Patch 8.2.4677
    Problem:    The Athena GUI support is outdated.
    Solution:   Remove the Athena GUI code.
    Files:      Filelist, src/Makefile, src/proto.h, src/clipboard.c,
                src/gui_athena.c, src/proto/gui_athena.pro, src/gui_at_sb.c,
                src/gui_at_sb.h, src/gui_at_fs.c, src/gui_motif.c, src/evalfunc.c,
                src/gui.c, src/gui_beval.c, src/gui_x11.c, src/if_mzsch.c,
                src/main.c, src/menu.c, src/mouse.c, src/version.c, src/feature.h,
                src/gui.h, src/structs.h, src/vim.h, src/testdir/gui_init.vim,
                src/testdir/setup_gui.vim, src/testdir/test_clientserver.vim,
                src/testdir/test_edit.vim, src/testdir/test_gui.vim,
                src/testdir/test_highlight.vim, src/testdir/test_quotestar.vim,
                src/testdir/test_startup.vim, runtime/doc/gui.txt,
                runtime/doc/gui_x11.txt

    Patch 8.2.4678
    Problem:    Vim9: not all code is tested.
    Solution:   Add a few more tests.
    Files:      src/vim9execute.c, src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_import.vim, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4679
    Problem:    Cannot have expandcmd() give an error message for mistakes.
    Solution:   Add an optional argument to give errors. Fix memory leak when
                expanding files fails. (Yegappan Lakshmanan, closes #10071)
    Files:      runtime/doc/builtin.txt, src/evalfunc.c, src/filepath.c,
                src/testdir/test_expand.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4680
    Problem:    Build failure without +postscript.
    Solution:   Use another error message.
    Files:      src/vim9execute.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4681
    Problem:    Build fails with a combination of features.
    Solution:   Remove #ifdef for alloc_clear_id(). (John Marriott)
    Files:      src/alloc.c

    Patch 8.2.4682
    Problem:    Vim9: can use :unlockvar for const variable. (Ernie Rael)
    Solution:   Check whether the variable is a const.
    Files:      src/ex_docmd.c, src/evalvars.c, src/vim9script.c,
                src/proto/vim9script.pro, src/eval.c, src/userfunc.c,
                src/testdir/test_vim9_cmd.vim

    Patch 8.2.4683
    Problem:    Verbose check with dict_find() to see if a key is present.
    Solution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)
    Files:      src/channel.c, src/dict.c, src/evalwindow.c, src/filepath.c,
                src/highlight.c, src/json.c, src/match.c, src/popupwin.c,
                src/proto/dict.pro, src/quickfix.c, src/search.c, src/sign.c,
                src/tag.c, src/terminal.c, src/testing.c, src/textprop.c,
                src/time.c

    Patch 8.2.4684
    Problem:    Cannot open a channel on a Unix domain socket.
    Solution:   Add Unix domain socket support. (closes #10062)
    Files:      runtime/doc/channel.txt, src/channel.c, src/testdir/check.vim,
                src/testdir/shared.vim, src/testdir/test_channel.py,
                src/testdir/test_channel.vim, src/testdir/test_channel_unix.py,
                src/testdir/test_cmdline.vim

    Patch 8.2.4685
    Problem:    When a swap file is found for a popup there is no dialog and the
                buffer is loaded anyway.
    Solution:   Silently load the buffer read-only. (closes #10073)
    Files:      runtime/doc/popup.txt, src/memline.c, src/popupwin.c, src/vim.h,
                src/buffer.c, src/testdir/test_popupwin.vim

    Patch 8.2.4686
    Problem:    Configure doesn't find the Motif library with Cygwin.
    Solution:   Check for libXm.dll.a. (Kelvin Lee, closes #10077)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.4687
    Problem:    "vimgrep /\%v/ *" may cause a crash.
    Solution:   When compiling the pattern with the old engine fails, restore the
                regprog of the new engine instead of leaving it NULL.
                (closes #10079)
    Files:      src/regexp.c

    Patch 8.2.4688
    Problem:    New regexp engine does not give an error for "\%v".
    Solution:   Check for a value argument. (issue #10079)
    Files:      src/regexp_nfa.c, src/errors.h, src/regexp_bt.c,
                src/testdir/test_regexp_latin.vim

    Patch 8.2.4689
    Problem:    Using <Cmd> in a mapping does not work for mouse keys in Insert
                mode. (Sergey Vlasov)
    Solution:   When reading the <Cmd> argument do not use the stuff buffer.
                (closes #10080)
    Files:      src/getchar.c

    Patch 8.2.4690
    Problem:    Channel tests fail on MS-Windows.
    Solution:   Check if the AF_UNIX attribute exists. (closes #10083)
    Files:      src/testdir/test_channel.py, src/testdir/test_channel_unix.py

    Patch 8.2.4691 (after 8.2.4689)
    Problem:    Solution for <Cmd> in a mapping causes trouble.
    Solution:   Use another solution: put back CTRL-O after reading the <Cmd>
                sequence.
    Files:      src/getchar.c

    Patch 8.2.4692
    Problem:    No test for what 8.2.4691 fixes.
    Solution:   Add a test.  Use a more generic solution. (closes #10090)
    Files:      src/getchar.c, src/mouse.c, src/testdir/test_mapping.vim

    Patch 8.2.4693 (after 8.2.4688)
    Problem:    new regexp does not accept pattern "\%>0v".
    Solution:   Do accept digit zero.
    Files:      src/regexp_bt.c, src/regexp_nfa.c,
                src/testdir/test_regexp_latin.vim

    Patch 8.2.4694
    Problem:    Avoidance of #elif causes more preproc nesting.
    Solution:   Use #elif where it is useful. (Ozaki Kiichi, closes #10081)
    Files:      src/option.c, src/optiondefs.h, src/optionstr.c, src/version.c

    Patch 8.2.4695
    Problem:    JSON encoding could be faster.
    Solution:   Optimize encoding JSON strings. (closes #10086)
    Files:      src/json.c, src/testdir/test_json.vim

    Patch 8.2.4696
    Problem:    delete() with "rf" argument does not report a failure.
    Solution:   Return -1 if the directory could not be removed. (closes #10078)
    Files:      src/fileio.c, src/testdir/test_functions.vim

    Patch 8.2.4697
    Problem:    Vim9: crash when adding a duplicate key to a dictionary.
    Solution:   Clear the stack item when it has been moved into the dictionary.
                (closes #10087)
    Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4698
    Problem:    Vim9: script variable has no flag that it was set.
    Solution:   Add a flag that it was set, to avoid giving it a value when used.
                (closes #10088)
    Files:      src/structs.h, src/vim9script.c, src/vim9execute.c,
                src/evalvars.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4699
    Problem:    Hard to reproduce hang when reading from a channel.
    Solution:   Check for readahead before starting to wait. (closes #10093,
                closes #7781, closes #6364)
    Files:      src/channel.c

    Patch 8.2.4700
    Problem:    Buffer remains active if a WinClosed event throws an exception.
    Solution:   Ignore aborting() when closing the buffer. (closes #10097)
    Files:      src/window.c, src/testdir/test_autocmd.vim

    Patch 8.2.4701
    Problem:    Kuka Robot Language files not recognized.
    Solution:   Recognize *.src and *.dat files. (Patrick Meiser-Knosowski,
                closes #10096)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim,
                runtime/autoload/dist/ft.vim

    Patch 8.2.4702
    Problem:    C++ scope labels are hard-coded.
    Solution:   Add 'cinscopedecls' to define the labels. (Rom Praschan,
                closes #10109)
    Files:      runtime/doc/indent.txt, runtime/doc/options.txt,
                runtime/doc/quickref.txt, runtime/optwin.vim, src/buffer.c,
                src/cindent.c, src/option.c, src/option.h, src/optiondefs.h,
                src/optionstr.c, src/structs.h, src/testdir/test_cindent.vim

    Patch 8.2.4703 (after 8.2.4702)
    Problem:    Memory leak in handling 'cinscopedecls'.
    Solution:   Free the memory before returning.
    Files:      src/cindent.c

    Patch 8.2.4704
    Problem:    Using "else" after return or break increases indent.
    Solution:   Remove "else" and reduce indent. (Goc Dundar, closes #10099)
    Files:      src/fileio.c, src/memline.c, src/option.c, src/syntax.c

    Patch 8.2.4705
    Problem:    reg_executing may not be cleared.
    Solution:   Reset reg_executing later. (closes #10111, closes #10110)
    Files:      src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h,
                src/testdir/test_registers.vim

    Patch 8.2.4706
    Problem:    Buffer remains active if a WinClosed event throws an exception
                when there are multiple tabpages.
    Solution:   Ignore aborting() when closing the buffer. (closes #10101)
    Files:      src/window.c, src/testdir/test_autocmd.vim

    Patch 8.2.4707
    Problem:    Redrawing could be a bit more efficient.
    Solution:   Optimize redrawing. (closes #10105)
    Files:      src/change.c, src/edit.c, src/testdir/test_highlight.vim,
                src/testdir/dumps/Test_cursorcolumn_insert_on_tab_3.dump

    Patch 8.2.4708
    Problem:    PHP test files are not recognized.
    Solution:   Add the *.phpt pattern. (Julien Voisin, closes #10112)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4709
    Problem:    After :redraw the statusline highlight might be used.
    Solution:   Clear the screen attribute after redrawing the screen.
                (closes #10108)
    Files:      src/ex_docmd.c

    Patch 8.2.4710
    Problem:    Smart indenting does not work after completion.
    Solution:   Set "can_si". (Christian Brabandt, closes #10113, closes #558)
    Files:      src/edit.c, src/testdir/test_ins_complete.vim

    Patch 8.2.4711
    Problem:    When 'insermode' is set :edit from <Cmd> mapping misbehaves.
    Solution:   Don't set "need_start_insertmode" when already in Insert mode.
                (closes #10116)
    Files:      src/ex_cmds.c, src/testdir/test_edit.vim

    Patch 8.2.4712
    Problem:    Only get profiling information after exiting.
    Solution:   Add "profile dump" and "profile stop". (Marco Hinz, Yegappan
                Lakshmanan, closes #10107)
    Files:      runtime/doc/repeat.txt, src/profiler.c,
                src/testdir/test_profile.vim

    Patch 8.2.4713
    Problem:    Plugins cannot track text scrolling.
    Solution:   Add the WinScrolled event. (closes #10102)
    Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/proto/autocmd.pro,
                src/edit.c, src/gui.c, src/main.c, src/structs.h, src/vim.h,
                src/window.c, src/proto/window.pro, src/testdir/test_autocmd.vim

    Patch 8.2.4714
    Problem:    Using g:filetype_dat and g:filetype_src not tested.
    Solution:   Add a test. (Patrick Meiser-Knosowski, closes #10117)
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.4715
    Problem:    Vagrantfile not recognized.
    Solution:   Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4716
    Problem:    Memory allocation failure not tested when defining a function.
    Solution:   Add a test. (Yegappan Lakshmanan, closes #10127)
    Files:      src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c,
                src/testdir/test_user_func.vim, src/testdir/test_vim9_func.vim

    Patch 8.2.4717
    Problem:    For TextYankPost v:event does not contain information about the
                operation being inclusive or not.
    Solution:   Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan,
                closes #10125)
    Files:      runtime/doc/autocmd.txt, src/register.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.4718
    Problem:    @@@ in the last line sometimes drawn in the wrong place.
    Solution:   Make sure the column is valid. (closes #10130)
    Files:      src/drawscreen.c, src/screen.c, src/testdir/test_display.vim
                src/testdir/dumps/Test_display_lastline_1.dump,
                src/testdir/dumps/Test_display_lastline_2.dump,
                src/testdir/dumps/Test_display_lastline_3.dump,
                src/testdir/dumps/Test_display_lastline_4.dump

    Patch 8.2.4719
    Problem:    ">" marker sometimes not displayed in the jumplist.
    Solution:   If the buffer no longer exists show "-invalid-". (Christian
                Brabandt, closes #10131, closes #10100)
    Files:      runtime/doc/motion.txt, src/mark.c, src/testdir/Make_all.mak,
                src/testdir/test_alot.vim, src/testdir/test_jumplist.vim,
                src/testdir/test_jumps.vim

    Patch 8.2.4720
    Problem:    ABB Rapid files are not recognized properly.
    Solution:   Add checks for ABB Rapid files. (Patrick Meiser-Knosowski,
                closes #10104)
    Files:      runtime/autoload/dist/ft.vim, runtime/doc/filetype.txt,
                runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4721
    Problem:    Cooklang files are not recognized.
    Solution:   recognize *.cook files. (Goc Dundar, closes #10120)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4722
    Problem:    When a recording is ended with a mapped key that key is also
                recorded.
    Solution:   Remember the previous last_recorded_len. (closes #10122)
    Files:      src/getchar.c, src/testdir/test_registers.vim

    Patch 8.2.4723
    Problem:    The ModeChanged autocmd event is inefficient.
    Solution:   Avoid allocating memory. (closes #10134)  Rename
                trigger_modechanged() to may_trigger_modechanged().
    Files:      src/misc1.c, src/proto/misc1.pro, src/edit.c, src/ex_docmd.c,
                src/ex_getln.c, src/insexpand.c, src/normal.c, src/terminal.c,
                src/autocmd.c

    Patch 8.2.4724
    Problem:    Current instance of last search pattern not easily spotted.
    Solution:   Add CurSearch highlighting. (closes #10133)
    Files:      runtime/doc/options.txt, runtime/doc/syntax.txt, src/highlight.c,
                src/match.c, src/normal.c, src/optiondefs.h, src/structs.h,
                src/vim.h, src/normal.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_3.dump

    Patch 8.2.4725 (after 8.2.4724)
    Problem:    Unused variable in tiny build.
    Solution:   Add #ifdef.
    Files:      src/normal.c

    Patch 8.2.4726
    Problem:    Cannot use expand() to get the script name.
    Solution:   Support expand('<script>'). (closes #10121)
    Files:      runtime/doc/cmdline.txt, src/errors.h, src/ex_docmd.c,
                src/scriptfile.c, src/vim.h, src/testdir/test_expand.vim

    Patch 8.2.4727
    Problem:    Unused code.
    Solution:   Remove code and add #ifdefs. (Dominique Pellé, closes #10136)
    Files:      runtime/doc/editing.txt, runtime/doc/eval.txt,
                runtime/doc/vim9.txt, src/errors.h, src/option.c, src/search.c,
                src/proto/search.pro

    Patch 8.2.4728
    Problem:    No test that v:event cannot be modified.
    Solution:   Add a test. (closes #10139)
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.4729
    Problem:    HEEx and Surface templates do not need a separate filetype.
    Solution:   Use Elixir for the similar filetypes. (Aaron Tinio, closes #10124)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Patch 8.2.4746
    Problem:    Supercollider filetype not recognized.
    Solution:   Match file extensions and check file contents to detect
                supercollider. (closes #10142)
    Files:      runtime/filetype.vim, runtime/autoload/dist/ft.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4747
    Problem:    No filetype override for .sys files.
    Solution:   Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181)
    Files:      runtime/doc/filetype.txt, runtime/autoload/dist/ft.vim,
                src/testdir/test_filetype.vim

    Patch 8.2.4748
    Problem:    Cannot use an imported function in a mapping.
    Solution:   Recognize <SID>name.Func.
    Files:      runtime/doc/vim9.txt, src/term.c, src/vim9execute.c,
                src/proto/vim9execute.pro, src/scriptfile.c,
                src/testdir/test_vim9_import.vim

    Patch 8.2.4749
    Problem:    <script> is not expanded in autocmd context.
    Solution:   Add the context to the pattern struct. (closes #10144)
                Rename AutoPatCmd to AutoPatCmd_T.
    Files:      src/autocmd.c, src/proto/autocmd.pro, src/scriptfile.c,
                src/structs.h, src/testdir/test_expand.vim

    Patch 8.2.4750
    Problem:    Small pieces of dead code.
    Solution:   Remove the dead code. (Goc Dundar, closes #10190) Rename the
                qftf_cb struct member to avoid confusion.
    Files:      src/ex_cmds.c, src/misc1.c, src/optionstr.c, src/quickfix.c

    Patch 8.2.4751 (after 8.2.4748)
    Problem:    Mapping <SID>name.Func does not work for script in autoload
                directory.
    Solution:   Use the # form for a script in the autoload directory.
                (closes #10186)
    Files:      src/term.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4752
    Problem:    Wrong 'statusline' value can cause illegal memory access.
    Solution:   Properly check the value. (closes #10192)
    Files:      src/optionstr.c, src/testdir/test_options.vim

    Patch 8.2.4753
    Problem:    Error from setting an option is silently ignored.
    Solution:   Handle option value errors better.  Fix uses of N_().
    Files:      src/option.c, src/proto/option.pro, src/optionstr.c,
                src/channel.c, src/crypt.c, src/diff.c, src/edit.c,
                src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c,
                src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c,
                src/gui_gtk_x11.c, src/help.c, src/highlight.c, src/if_tcl.c,
                src/main.c, src/memline.c, src/message_test.c,
                src/popupmenu.c, src/quickfix.c, src/scriptfile.c, src/spell.c,
                src/spellfile.c, src/term.c, src/undo.c, src/vim9script.c

    Patch 8.2.4754
    Problem:    Still using cached values after unsetting some known environment
                variables.
    Solution:   Take care of the side effects. (closes #10194)
    Files:      src/evalfunc.c, src/evalvars.c, src/misc1.c, src/proto/misc1.pro,
                src/vim9execute.c, src/optionstr.c, src/testdir/test_environ.vim

    Patch 8.2.4755
    Problem:    Cannot use <SID>FuncRef in completion spec.
    Solution:   Dereference a function name in another way. (closes #10197)
    Files:      src/eval.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4756 (after 8.2.4754)
    Problem:    Build error without the +eval feature.
    Solution:   Adjust #ifdefs.
    Files:      src/misc1.c

    Patch 8.2.4757
    Problem:    List of libraries to suppress lsan errors is outdated.
    Solution:   Add another library. (closes #10201)
    Files:      src/testdir/lsan-suppress.txt

    Patch 8.2.4758
    Problem:    When using an LSP channel want to get the message ID.
    Solution:   Have ch_sendexpr() return the ID. (Yegappan Lakshmanan,
                closes #10202)
    Files:      runtime/doc/channel.txt, src/channel.c, src/evalfunc.c,
                src/testdir/test_channel.vim

    Patch 8.2.4759
    Problem:    CurSearch highlight does not work for multi-line match.
    Solution:   Check cursor position before adjusting columns. (closes #10133)
    Files:      src/structs.h, src/match.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_1.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_2.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_3.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_4.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_5.dump

    Patch 8.2.4760
    Problem:    Using matchfuzzy() on a long list can take a while.
    Solution:   Add a limit to the number of matches. (Yasuhiro Matsumoto,
                closes #10189)
    Files:      runtime/doc/builtin.txt, src/search.c,
                src/testdir/test_matchfuzzy.vim

    Patch 8.2.4761
    Problem:    Documentation for using LSP messages is incomplete.
    Solution:   Update the documentation. (Yegappan Lakshmanan, closes #10206)
    Files:      runtime/doc/channel.txt

    Patch 8.2.4762
    Problem:    Using freed memory when using synstack() and synID() in WinEnter.
    Solution:   Check using the syntax window. (closes #10204)
    Files:      src/syntax.c, src/testdir/test_syntax.vim

    Patch 8.2.4763
    Problem:    Using invalid pointer with "V:" in Ex mode.
    Solution:   Correctly handle the command being changed to "+".
    Files:      src/ex_docmd.c, src/testdir/test_ex_mode.vim

    Patch 8.2.4764
    Problem:    CI uses an older gcc version.
    Solution:   Use GCC 11. (closes #10185)
    Files:      .github/workflows/ci.yml, src/testdir/lsan-suppress.txt

    Patch 8.2.4765
    Problem:    Function matchfuzzy() sorts too many items.
    Solution:   Only put matches in the array. (Yegappan Lakshmanan,
                closes #10208)
    Files:      src/search.c

    Patch 8.2.4766
    Problem:    KRL files using "deffct" not recognized.
    Solution:   Adjust the pattern used for matching. (Patrick Meiser-Knosowski,
                closes #10200)
    Files:      runtime/autoload/dist/ft.vim, src/testdir/test_filetype.vim

    Patch 8.2.4767
    Problem:    Openscad files are not recognized.
    Solution:   Add a filetype pattern. (Niklas Adam, closes #10199)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4768
    Problem:    CI: codecov upload sometimes does not work.
    Solution:   Use action v3 instead of v2. (closes #10209)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4769
    Problem:    Build warning with UCRT.
    Solution:   Adjust #ifdef for _wenviron. (John Marriott)
    Files:      src/evalfunc.c

    Patch 8.2.4770
    Problem:    Cannot easily mix expression and heredoc.
    Solution:   Support `=expr` in heredoc. (Yegappan Lakshmanan, closes #10138)
    Files:      runtime/doc/eval.txt, src/evalvars.c, src/userfunc.c,
                src/testdir/test_let.vim, src/testdir/test_vim9_assign.vim

    Patch 8.2.4771
    Problem:    Coverity warns for not checking return value.
    Solution:   Check return value of rettv_dict_alloc().
    Files:      src/channel.c

    Patch 8.2.4772
    Problem:    Old Coverity warning for not checking ftell() return value.
    Solution:   Check return value of fseek() and ftell().
    Files:      src/misc1.c

    Patch 8.2.4773
    Problem:    Build failure without the +eval feature.
    Solution:   Use other error message.  Avoid warnings.
    Files:      src/misc1.c, src/cindent.c, src/term.c

    Patch 8.2.4774
    Problem:    Crash when using a number for lambda name.
    Solution:   Check the type of the lambda reference.
    Files:      src/eval.c, src/errors.h, src/testdir/test_lambda.vim

    Patch 8.2.4775
    Problem:    SpellBad highlighting does not work in Konsole.
    Solution:   Do not keep t_8u defined for Konsole.  Redraw when t_8u is reset.
                (closes #10177)
    Files:      src/term.c

    Patch 8.2.4776
    Problem:    GTK: 'lines' and 'columns' may change during startup.
    Solution:   Ignore stale GTK resize events. (Ernie Rael, closes #10179)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.4777 (after 8.2.4775)
    Problem:    Screendump tests fail because of a redraw.
    Solution:   Do not output t_8u before receiving termresponse.  Redraw only
                when t_8u is not reset and termresponse is received.
    Files:      src/term.c

    Patch 8.2.4778
    Problem:    Pacman files use dosini filetype.
    Solution:   Use conf instead. (Chaoren Lin, closes #10213)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4779
    Problem:    lsan suppression is too version specific.
    Solution:   Leave out the version number. (Christian Brabandt, closes #10214)
    Files:      src/testdir/lsan-suppress.txt

    Patch 8.2.4780
    Problem:    Parsing an LSP message fails when it is split.
    Solution:   Collapse the received data before parsing. (Yegappan Lakshmanan,
                closes #10215)
    Files:      runtime/doc/channel.txt, src/channel.c,
                src/testdir/test_channel.vim, src/testdir/test_channel_lsp.py

    Patch 8.2.4781
    Problem:    Maxima files are not recognized.
    Solution:   Add patterns to detect Maxima files. (Doron Behar, closes #10211)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4782
    Problem:    Accessing freed memory.
    Solution:   Clear evalarg after checking for trailing characters.
                (issue #10218)
    Files:      src/userfunc.c, src/testdir/test_lambda.vim

    Patch 8.2.4783
    Problem:    Coverity warns for leaking memory.
    Solution:   Use another strategy freeing "theline".
    Files:      src/evalvars.c

    Patch 8.2.4784
    Problem:    Lamba test with timer is flaky.
    Solution:   Adjust sleep time on retry.
    Files:      src/testdir/test_lambda.vim

    Patch 8.2.4785
    Problem:    Visual mode not stopped early enough if win_gotoid() goes to
                another buffer. (Sergey Vlasov)
    Solution:   Stop Visual mode before jumping to another buffer. (closes #10217)
    Files:      src/evalwindow.c, src/testdir/test_vim9_builtin.vim,
                src/testdir/dumps/Test_win_gotoid_1.dump,
                src/testdir/dumps/Test_win_gotoid_2.dump,
                src/testdir/dumps/Test_win_gotoid_3.dump

    Patch 8.2.4786 (after 8.2.4785)
    Problem:    Test for win_gotoid() in Visual mode fails on Mac.
    Solution:   Skip the test on MacOS.
    Files:      src/testdir/test_vim9_builtin.vim

    Patch 8.2.4787
    Problem:    prop_find() does not find the right property.
    Solution:   Fix the scan order. (closes #10220)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.4788
    Problem:    Large payload for LSP message not tested.
    Solution:   Add a test with a large LSP payload. (Yegappan Lakshmanan,
                closes #10223)
    Files:      src/channel.c, src/testdir/test_channel.vim,
                src/testdir/test_channel_lsp.py

    Patch 8.2.4789
    Problem:    The cursor may be in the in wrong place when using :redraw while
                editing the cmdline.
    Solution:   When editing the command line let :redraw update the command line
                too. (closes #10210)
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim,
                src/testdir/dumps/Test_redraw_in_autocmd_1.dump,
                src/testdir/dumps/Test_redraw_in_autocmd_2.dump

    Patch 8.2.4790
    Problem:    Lilypond filetype not recognized.
    Solution:   Add patterns for lilypond. (Doug Kearns)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4791
    Problem:    Autocmd events triggered in different order when reusing an empty
                buffer.
    Solution:   Call buff_freeall() earlier. (Charlie Groves, closes #10198)
    Files:      src/buffer.c, src/testdir/test_autocmd.vim

    Patch 8.2.4792
    Problem:    Indent operator creates an undo entry for every line.
    Solution:   Create one undo entry for all lines. (closes #10227)
    Files:      src/indent.c, src/testdir/test_indent.vim

    Patch 8.2.4793
    Problem:    Recognizing Maxima filetype even though it might be another.
    Solution:   Remove *.mc and *.dem patterns from Maxima files
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4794
    Problem:    Compiler warning for not initialized variable.
    Solution:   Initialize the variable. (John Marriott)
    Files:      src/indent.c

    Patch 8.2.4795
    Problem:    'cursorbind' scrolling depends on whether 'cursorline' is set.
    Solution:   Always call validate_cursor(). (Christian Brabandt, closes #10230,
                closes #10014)
    Files:      src/move.c, src/testdir/README.txt,
                src/testdir/test_cursorline.vim,
                src/testdir/dumps/Test_hor_scroll_1.dump,
                src/testdir/dumps/Test_hor_scroll_2.dump,
                src/testdir/dumps/Test_hor_scroll_3.dump,
                src/testdir/dumps/Test_hor_scroll_4.dump

    Patch 8.2.4796 (after 8.2.4795)
    Problem:    File left behind after running cursorline tests.
    Solution:   Uncomment the line that deletes the file.
    Files:      src/testdir/test_cursorline.vim

    Patch 8.2.4797
    Problem:    getwininfo() may get outdated values.
    Solution:   Make sure w_botline is up-to-date. (closes #10226)
    Files:      src/evalwindow.c, src/testdir/test_bufwintabinfo.vim

    Patch 8.2.4798
    Problem:    t_8u option was reset even when set by the user.
    Solution:   Only reset t_8u when using the default value. (closes #10239)
    Files:      src/term.c

    Patch 8.2.4799
    Problem:    Popup does not use correct topline.
    Solution:   Also add one when firstline is negative. (closes #10229)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim

    Patch 8.2.4800 (after 8.2.4798)
    Problem:    Missing test update for adjusted t_8u behavior.
    Solution:   Update and extend the test.
    Files:      src/testdir/test_termcodes.vim

    Patch 8.2.4801 (after 8.2.4795)
    Problem:    Fix for cursorbind fix not fully tested.
    Solution:   Add another test case. (Christian Brabandt, closes #10240)
    Files:      src/testdir/test_cursorline.vim,
                src/testdir/dumps/Test_hor_scroll_5.dump

    Patch 8.2.4802
    Problem:    Test is not cleaned up.
    Solution:   Make test clean up after itself.  Avoid NUL. (closes #10233)
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.4803
    Problem:    WinScrolled not always triggered when scrolling with the mouse.
    Solution:   Add calls to may_trigger_winscrolled(). (closes #10246)
    Files:      src/mouse.c, src/testdir/test_autocmd.vim

    Patch 8.2.4804
    Problem:    Expression in heredoc doesn't work for compiled function.
    Solution:   Implement compiling the heredoc expressions. (Yegappan Lakshmanan,
                closes #10232)
    Files:      runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro,
                src/ex_getln.c, src/vim9compile.c, src/proto/vim9compile.pro,
                src/testdir/test_vim9_assign.vim

    Patch 8.2.4805
    Problem:    CurSearch used for all matches in current line.
    Solution:   Don't use the non-zero line count. (closes #10247)
    Files:      src/match.c, src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump,
                src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump

    Patch 8.2.4806
    Problem:    A mapping using <LeftDrag> does not start Select mode.
    Solution:   When checking for starting select mode with the mouse also do this
                when there is typeahead. (closes #10249)
    Files:      src/normal.c

    Patch 8.2.4807
    Problem:    Processing key events in Win32 GUI is not ideal.
    Solution:   Improve processing of key events. (closes #10155)
    Files:      src/gui_w32.c

    Patch 8.2.4808
    Problem:    Unused item in engine struct.
    Solution:   Remove "expr".  Add comment with tags.
    Files:      src/regexp.h

    Patch 8.2.4809
    Problem:    Various things not properly tested.
    Solution:   Add various test cases. (Yegappan Lakshmanan, closes #10259)
    Files:      src/testdir/test_blob.vim, src/testdir/test_debugger.vim,
                src/testdir/test_listdict.vim, src/testdir/test_vim9_builtin.vim,
                src/testdir/test_vim9_import.vim, src/testdir/test_vim9_script.vim

    Patch 8.2.4810 (after 8.2.4808)
    Problem:    Missing changes in one file.
    Solution:   Also change the struct initializers.
    Files:      src/regexp.c

    Patch 8.2.4811 (after 8.2.4807)
    Problem:    Win32 GUI: caps lock doesn't work.
    Solution:   Handle VK_CAPITAL. (closes #10260, closes #10258)
    Files:      src/gui_w32.c

    Patch 8.2.4812
    Problem:    Unused struct item.
    Solution:   Remove "lines" match_T.  Simplify the code. (closes #10256)
    Files:      src/match.c, src/structs.h

    Patch 8.2.4813
    Problem:    Pasting text while indent folding may mess up folds.
    Solution:   Adjust the way folds are split. (Brandon Simmons, closes #10254)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.4814
    Problem:    Possible to leave a popup window with win_gotoid().
    Solution:   Give an error when trying to leave a popup window with
                win_gotoid(). (closes #10253)
    Files:      src/evalwindow.c, src/testdir/test_terminal3.vim

    Patch 8.2.4815 (after 8.2.4776)
    Problem:    Cannot build with older GTK version.
    Solution:   Use gtk_window_get_size() instead of gdk_window_get_width() and
                gdk_window_get_height(). (Ernie Rael, closes #10257)
    Files:      src/gui_gtk_x11.c

    Patch 8.2.4816
    Problem:    Still using older codecov app in some places of CI.
    Solution:   Use v3.1.0. (closes #10209)
    Files:      .github/workflows/ci.yml

    Patch 8.2.4817
    Problem:    Win32 GUI: modifiers are not always used.
    Solution:   Handle more modifiers. (closes #10269)
    Files:      src/gui_w32.c

    Patch 8.2.4818 (after 8.2 4806)
    Problem:    No test for what 8.2.4806 fixes.
    Solution:   Add a test. (closes #10272)
    Files:      src/testdir/test_mapping.vim

    Patch 8.2.4819
    Problem:    Unmapping simplified keys also deletes other mapping.
    Solution:   Only unmap a mapping with m_simplified set. (closes #10270)
    Files:      src/map.c, src/testdir/test_mapping.vim

    Patch 8.2.4820
    Problem:    No simple programmatic way to find a specific mapping.
    Solution:   Add getmappings(). (Ernie Rael, closes #10273)
    Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim

    Patch 8.2.4821
    Problem:    Crash when imported autoload script was deleted.
    Solution:   Initialize local variable. (closes #10274)  Give a more meaningful
                error message.
    Files:      src/eval.c, src/vim9script.c, src/testdir/test_vim9_import.vim

    Patch 8.2.4822
    Problem:    Setting ufunc to NULL twice.
    Solution:   Set ufunc to NULL in find_exported(). (closes #19275)
    Files:      src/eval.c, src/vim9script.c

    Patch 8.2.4823
    Problem:    Concatenating more than 2 strings in a :def function is
                inefficient.
    Solution:   Add a count to the CONCAT instruction. (closes #10276)
    Files:      src/vim9.h, src/vim9cmds.c, src/vim9compile.c, src/vim9execute.c,
                src/vim9expr.c, src/vim9instr.c, src/proto/vim9instr.pro,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4824
    Problem:    Expression is evaluated multiple times.
    Solution:   Evaluate expression once and store the result. (closes #10278)
    Files:      src/map.c

    Patch 8.2.4825
    Problem:    Can only get a list of mappings.
    Solution:   Add the optional {abbr} argument. (Ernie Rael, closes #10277)
                Rename to maplist().  Rename test file.
    Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/map.c, src/proto/map.pro, src/testdir/test_maparg.vim,
                src/testdir/test_map_functions.vim, src/testdir/Make_all.mak

    Patch 8.2.4826
    Problem:    .cshtml files are not recognized.
    Solution:   Use html filetype for .cshtml files. (Julien Voisin, closes #10212)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.4827
    Problem:    Typo in variable name. (Gabriel Dupras)
    Solution:   Rename the variable.
    Files:      src/map.c

    Patch 8.2.4828
    Problem:    Fix for unmapping simplified key not fully tested.
    Solution:   Add a test case. (closes #10292)
    Files:      src/map.c, src/testdir/test_mapping.vim

    Patch 8.2.4829
    Problem:    A key may be simplified to NUL.
    Solution:   Use K_ZERO instead.  Use macros instead of hard coded values.
                (closes #10290)
    Files:      src/getchar.c, src/misc2.c, src/testdir/test_termcodes.vim

    Patch 8.2.4830
    Problem:    Possible endless loop if there is unused typeahead.
    Solution:   Only loop when the typeahead changed.
    Files:      src/channel.c

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Patch 8.2.4892
    Problem:    Test failures because of changed error messages.
    Solution:   Adjust the expected error messages.
    Files:      src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim,
                src/testdir/test_expand.vim, src/testdir/test_tcl.vim,
                src/testdir/test_vimscript.vim

    Patch 8.2.4893 (after 8.2.4891)
    Problem:    Distributed import files are not installed.
    Solution:   Add rules to Makefile and NSIS.
    Files:      src/Makefile, nsis/gvim.nsi

    Patch 8.2.4894
    Problem:    MS-Windows: not using italics.
    Solution:   Use italics.  Simplify the code. (closes #10359)
    Files:      src/term.c

    Patch 8.2.4895
    Problem:    Buffer overflow with invalid command with composing chars.
    Solution:   Check that the whole character fits in the buffer.
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.4896 (after 8.2.4869)
    Problem:    Expression in command block does not look after NL when command is
                typed.
    Solution:   Skip over NL also when not in a script. (closes #10358)
    Files:      src/eval.c, src/testdir/test_usercommands.vim

    Patch 8.2.4897
    Problem:    Comment inside an expression in lambda ignores the rest of the
                expression.
    Solution:   Truncate the line at the comment. (closes #10367)
    Files:      src/eval.c, src/testdir/test_lambda.vim

    Patch 8.2.4898
    Problem:    Coverity complains about pointer usage.
    Solution:   Move code for increment/decrement.
    Files:      src/vim9compile.c

    Patch 8.2.4899
    Problem:    With latin1 encoding CTRL-W might go before the start of the
                command line.
    Solution:   Check already being at the start of the command line.
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.4900
    Problem:    Vim9 expression test fails without the job feature.
    Solution:   Add a check for the job feature. (Dominique Pellé, closes #10373)
    Files:      src/testdir/test_vim9_expr.vim

    Patch 8.2.4901
    Problem:    NULL pointer access when using invalid pattern.
    Solution:   Check for failed regexp program.
    Files:      src/buffer.c, src/testdir/test_buffer.vim

    Patch 8.2.4902
    Problem:    Mouse wheel scrolling is inconsistent.
    Solution:   Use the MS-Windows system setting. (closes #10368)
    Files:      runtime/doc/scroll.txt, src/gui_w32.c, src/mouse.c,
                src/proto/mouse.pro, src/testing.c, src/testdir/test_gui.vim

    Patch 8.2.4903
    Problem:    Cannot get the current cmdline completion type and position.
    Solution:   Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita,
                closes #10344)
    Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/cmdexpand.c,
                src/proto/cmdexpand.pro, src/evalfunc.c, src/ex_getln.c,
                src/proto/ex_getln.pro, src/usercmd.c, src/proto/usercmd.pro,
                src/testdir/test_cmdline.vim

    Patch 8.2.4904
    Problem:    codecov includes MS-Windows install files.
    Solution:   Ignore dosinst.c and uninstall.c.
    Files:      .codecov.yml

    Patch 8.2.4905
    Problem:    codecov includes MS-Windows install header file.
    Solution:   Ignore dosinst.h.
    Files:      .codecov.yml

    Patch 8.2.4906
    Problem:    MS-Windows: cannot use transparent background.
    Solution:   Make transparent background work with 'termguicolors' and NONE
                background color. (Yasuhiro Matsumoto, closes #10310, closes #7162)
    Files:      runtime/doc/options.txt, src/os_win32.c, src/term.c

    Patch 8.2.4907
    Problem:    Some users do not want a line comment always inserted.
    Solution:   Add the '/' flag to 'formatoptions' to not repeat the comment
                leader after a statement when using "o".
    Files:      runtime/doc/change.txt, src/option.h, src/change.c,
                src/testdir/test_textformat.vim

    Patch 8.2.4908
    Problem:    No text formatting for // comment after a statement.
    Solution:   format a comment when the 'c' flag is in 'formatoptions'.
    Files:      src/textformat.c, src/testdir/test_textformat.vim

    Patch 8.2.4909
    Problem:    MODE_ enum entries names are too generic.
    Solution:   use CH_MODE_.
    Files:      src/structs.h, src/channel.c, src/job.c, src/terminal.c

    Patch 8.2.4910
    Problem:    Imperfect coding.
    Solution:   Make code nicer.
    Files:      src/ex_getln.c

    Patch 8.2.4911
    Problem:    The mode #defines are not clearly named.
    Solution:   Prepend MODE_.  Renumber them to put the mapped modes first.
    Files:      src/vim.h, src/autocmd.c, src/buffer.c, src/change.c,
                src/charset.c, src/cindent.c, src/clipboard.c, src/debugger.c,
                src/digraph.c, src/drawline.c, src/drawscreen.c, src/edit.c,
                src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
                src/fileio.c, src/fold.c, src/getchar.c, src/globals.h, src/gui.c,
                src/gui_gtk.c, src/gui_w32.c, src/gui_xim.c, src/indent.c,
                src/insexpand.c, src/macros.h, src/main.c, src/map.c, src/menu.c,
                src/message.c, src/misc1.c, src/misc2.c, src/mouse.c,
                src/netbeans.c, src/normal.c, src/ops.c, src/option.c,
                src/os_unix.c, src/os_win32.c, src/popupmenu.c, src/search.c,
                src/tag.c, src/screen.c, src/term.c, src/terminal.c,
                src/textformat.c, src/window.c

    Patch 8.2.4912
    Problem:    Using execute() to define a lambda doesn't work. (Ernie Rael)
    Solution:   Put the getline function in evalarg. (closes #10375)
    Files:      src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro,
                src/testdir/test_vim9_func.vim

    Patch 8.2.4913
    Problem:    Popup_hide() does not always have effect.
    Solution:   Add the POPF_HIDDEN_FORCE flag. (closes #10376)
    Files:      src/popupwin.c, src/vim.h, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popup_prop_not_visible_01a.dump,
                src/testdir/dumps/Test_popup_prop_not_visible_01b.dump

    Patch 8.2.4914
    Problem:    String interpolation in :def function may fail.
    Solution:   Do not terminate the expression. (closes #10377)
    Files:      src/vim9compile.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4915
    Problem:    Sometimes the cursor is in the wrong position.
    Solution:   When the cursor moved to another line, recompute w_botline.
                (closes #9736)
    Files:      src/move.c

    Patch 8.2.4916 (after 8.2.4915)
    Problem:    Mouse in Insert mode test fails.
    Solution:   Fix the test and check relevant positions.
    Files:      src/testdir/test_edit.vim

    Patch 8.2.4917
    Problem:    Fuzzy expansion of option names is not right.
    Solution:   Pass the fuzzy flag down the call chain. (Christian Brabandt,
                closes #10380, closes #10318)
    Files:      src/cmdexpand.c, src/option.c, src/proto/option.pro,
                src/testdir/test_options.vim

    Patch 8.2.4918
    Problem:    Conceal character from matchadd() displayed too many times.
    Solution:   Check the syntax flag. (closes #10381, closes #7268)
    Files:      src/drawline.c, src/testdir/test_matchadd_conceal.vim

    Patch 8.2.4919
    Problem:    Can add invalid bytes with :spellgood.
    Solution:   Check for a valid word string.
    Files:      src/mbyte.c, src/spellfile.c, src/errors.h,
                src/testdir/test_spell_utf8.vim

    Patch 8.2.4920 (after 8.2.4902)
    Problem:    MS-Windows GUI: unused variables.
    Solution:   Delete the variables. (John Marriott)
    Files:      src/gui_w32.c

    Patch 8.2.4921
    Problem:    Spell test fails because of new illegal byte check.
    Solution:   Remove the test.
    Files:      src/testdir/test_spell.vim

    Patch 8.2.4922 (after 8.2.4916)
    Problem:    Mouse test fails on MS-Windows.
    Solution:   Set 'mousemodel' to "extend".
    Files:      src/testdir/test_edit.vim

    Patch 8.2.4923
    Problem:    Test checks for terminal feature unnecessarily.
    Solution:   Remove CheckRunVimInTerminal. (closes #10383)
    Files:      src/testdir/test_matchadd_conceal.vim

    Patch 8.2.4924
    Problem:    maparg() may return a string that cannot be reused.
    Solution:   use msg_outtrans_special() instead of str2special().
                (closes #10384)
    Files:      src/message.c, src/option.c, src/testdir/test_map_functions.vim,
                src/testdir/test_mapping.vim, src/testdir/test_options.vim

    Patch 8.2.4925
    Problem:    Trailing backslash may cause reading past end of line.
    Solution:   Check for NUL after backslash.
    Files:      src/textobject.c, src/testdir/test_textobjects.vim

    Patch 8.2.4926
    Problem:    #ifdef for crypt feature around too many lines.
    Solution:   Move code outside of #ifdef. (closes #10388)
    Files:      src/option.c

    Patch 8.2.4927
    Problem:    Return type of remove() incorrect when using three arguments.
    Solution:   Use first argument type when there are three arguments.
                (closes #10387)
    Files:      src/evalfunc.c, src/testdir/test_vim9_builtin.vim

    Patch 8.2.4928
    Problem:    Various white space and cosmetic mistakes.
    Solution:   Change spaces to tabs, improve comments.
    Files:      src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c,
                src/debugger.c, src/digraph.c, src/edit.c, src/evalwindow.c,
                src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c,
                src/filepath.c, src/gui.c, src/highlight.c, src/indent.c,
                src/insexpand.c, src/job.c, src/keymap.h, src/macros.h,
                src/menu.c, src/misc1.c, src/misc2.c, src/mouse.c, src/move.c,
                src/normal.c, src/ops.c, src/option.c, src/option.h, src/search.c,
                src/session.c, src/spellsuggest.c, src/structs.h, src/tag.c,
                src/term.c, src/terminal.c, src/textformat.c, src/typval.c,
                src/ui.c, src/userfunc.c, src/vim.h, src/vim9.h,
                src/vim9compile.c, src/vim9execute.c, src/window.c,
                src/testdir/test_cursorline.vim, src/os_unix.c, src/if_lua.c,
                src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c,
                src/os_vms.c, src/os_vms_conf.h

    Patch 8.2.4929
    Problem:    Off-by-one error in statusline item.
    Solution:   Subtrace one less. (closes #10394, closes #5599)
    Files:      src/buffer.c, src/testdir/test_statusline.vim,
                src/testdir/dumps/Test_statusline_hl.dump

    Patch 8.2.4930
    Problem:    Interpolated string expression requires escaping.
    Solution:   Do not require escaping in the expression.
    Files:      runtime/doc/eval.txt, src/typval.c, src/proto/typval.pro,
                src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
                src/vim9compile.c, src/proto/vim9compile.pro, src/vim9expr.c,
                src/vim9instr.c, src/alloc.c, src/proto/alloc.pro,
                src/testdir/test_expr.vim, src/testdir/test_let.vim

    Patch 8.2.4931
    Problem:    Crash with sequence of Perl commands.
    Solution:   Move PUTBACK to another line. (closes #10386)
    Files:      src/if_perl.xs

    Patch 8.2.4932
    Problem:    Not easy to filter the output of maplist().
    Solution:   Add mode_bits to the dictionary. (Ernie Rael, closes #10356)
    Files:      runtime/doc/builtin.txt, src/map.c,
                src/testdir/test_map_functions.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4933
    Problem:    A few more capitalization mistakes in error messages.
    Solution:   Adjust capitalization. (Doug Kearns)
    Files:      src/errors.h

    Patch 8.2.4934
    Problem:    String interpolation fails when not evaluating.
    Solution:   Skip the expression when not evaluating. (closes #10398)
    Files:      src/typval.c, src/evalvars.c, src/proto/evalvars.pro,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.4935
    Problem:    With 'foldmethod' "indent" some lines are not included in the
                fold. (Oleg Koshovetc)
    Solution:   Fix it. (Brandon Simmons, closes #10399, closes #3214)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.4936
    Problem:    MS-Windows: mouse coordinates for scroll event are wrong.
    Solution:   Convert coordinates to the text area coordinates. (closes #10400)
    Files:      src/gui_w32.c

    Patch 8.2.4937 (after 8.2.4931)
    Problem:    No test for what 8.2.4931 fixes.
    Solution:   Add a test that triggers a valgrind error.
    Files:      src/testdir/test_perl.vim

    Patch 8.2.4938
    Problem:    Crash when matching buffer with invalid pattern.
    Solution:   Check for NULL regprog.
    Files:      src/buffer.c, src/testdir/test_buffer.vim

    Patch 8.2.4939
    Problem:    matchfuzzypos() with "matchseq" does not have all positions.
    Solution:   Also add a position for white space. (closes #10404)
    Files:      runtime/doc/builtin.txt, src/search.c,
                src/testdir/test_matchfuzzy.vim

    Patch 8.2.4940
    Problem:    Some code is never used.
    Solution:   Remove dead code.  Add a few more test cases.
    Files:      src/vim9expr.c, src/proto/vim9expr.pro, src/vim9compile.c,
                src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim

    Patch 8.2.4941
    Problem:    '[ and '] marks may be wrong after undo.
    Solution:   Adjust the '[ and '] marks if needed. (closes #10407, closes #1281)
    Files:      src/undo.c, src/testdir/test_undo.vim

    Patch 8.2.4942
    Problem:    Error when setting 'filetype' in help file again.
    Solution:   Deal with text property type already existing. (closes #10409)
    Files:      runtime/import/dist/vimhelp.vim

    Patch 8.2.4943
    Problem:    Changing 'switchbuf' may have no effect.
    Solution:   Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
                closes #10406)
    Files:      src/optionstr.c, src/testdir/test_options.vim

    Patch 8.2.4944
    Problem:    Text properties are wrong after "cc". (Axel Forsman)
    Solution:   Pass the deleted byte count to inserted_bytes(). (closes #10412,
                closes #7737, closes #5763)
    Files:      src/change.c, src/testdir/test_textprop.vim

    Patch 8.2.4945
    Problem:    Inconsistent use of white space.
    Solution:   Use Tabs and Spaces consistently.
    Files:      src/os_amiga.c, src/if_py_both.h, src/os_win32.c, src/os_mswin.c,
                src/os_vms.c, src/os_vms_conf.h

    Patch 8.2.4946
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few more test cases.  Remove dead code.
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4947
    Problem:    Text properties not adjusted when accepting spell suggestion.
    Solution:   Adjust text properties when text changes. (closes #10414)
    Files:      src/spell.c, src/spellsuggest.c, src/testdir/test_textprop.vim

    Patch 8.2.4948
    Problem:    Cannot use Perl heredoc in nested :def function. (Virginia
                Senioria)
    Solution:   Only concatenate heredoc lines when not in a nested function.
                (closes #10415)
    Files:      src/userfunc.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4949
    Problem:    Vim9: some code not covered by tests.
    Solution:   Add a few more test cases.  Fix double error message.
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4950
    Problem:    Text properties position wrong after shifting text.
    Solution:   Adjust the text properties when shifting a block of text.
                (closes #10418)
    Files:      src/ops.c, src/testdir/test_textprop.vim

    Patch 8.2.4951
    Problem:    Smart indenting done when not enabled.
    Solution:   Check option values before setting can_si. (closes #10420)
    Files:      src/indent.c, src/proto/indent.pro, src/change.c, src/edit.c,
                src/ops.c, src/testdir/test_smartindent.vim

    Patch 8.2.4952
    Problem:    GUI test will fail if color scheme changes.
    Solution:   Reduce the test for now.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4953
    Problem:    With 'smartindent' inserting '}' after completion goes wrong.
    Solution:   Check the cursor is in indent.  (closes #10420)
    Files:      src/indent.c, src/testdir/test_smartindent.vim

    Patch 8.2.4954
    Problem:    Inserting line breaks text property spanning more than one line.
    Solution:   Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423)
    Files:      src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.4955
    Problem:    Text property in wrong position after auto-indent.
    Solution:   Adjust text property columns. (closes #10422, closes #7719)
    Files:      src/change.c, src/testdir/test_textprop.vim

    Patch 8.2.4956
    Problem:    Reading past end of line with "gf" in Visual block mode.
    Solution:   Do not include the NUL in the length.
    Files:      src/normal.c, src/testdir/test_gf.vim

    Patch 8.2.4957
    Problem:    Text properties in a wrong position after a block change.
    Solution:   Adjust the properties columns. (closes #10427)
    Files:      src/ops.c, src/testdir/test_textprop.vim

    Patch 8.2.4958
    Problem:    A couple conditions are always true.
    Solution:   Remove the conditions. (Goc Dundar, closes #10428)
    Files:      src/evalfunc.c, src/quickfix.c

    Patch 8.2.4959
    Problem:    Using NULL regexp program.
    Solution:   Check for regexp program becoming NULL in more places.
    Files:      src/buffer.c, src/testdir/test_buffer.vim

    Patch 8.2.4960
    Problem:    Text properties that cross line boundary are not correctly updated
                for a deleted line.
    Solution:   Correct computing location of text property entry. (Paul Ollis,
                closes #10431, closes #10430)
    Files:      src/memline.c, src/testdir/test_textprop.vim

    Patch 8.2.4961
    Problem:    Build error with a certain combination of features.
    Solution:   Adjust #if. (John Marriott)
    Files:      src/memline.c

    Patch 8.2.4962
    Problem:    Files show up in git status.
    Solution:   Adjust the list of ignored files.  Clean up more test files.
                (Shane xb Qian, closes #9929)
    Files:      .gitignore, src/testdir/Makefile

    Patch 8.2.4963
    Problem:    Expanding path with "/**" may overrun end of buffer.
    Solution:   Use vim_snprintf().
    Files:      src/filepath.c

    Patch 8.2.4964
    Problem:    MS-Windows GUI: mouse event test is flaky.
    Solution:   Add a short delay after generating a mouse event.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4965
    Problem:    GUI: testing mouse move event depends on screen cell size.
    Solution:   Multiply the row and column with the screen cell size.
    Files:      runtime/doc/testing.txt, src/testing.c, src/testdir/test_gui.vim

    Patch 8.2.4966
    Problem:    MS-Windows GUI: mouse event test gets extra event.
    Solution:   Ignore one move event.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4967 (after 8.2.4966)
    Problem:    MS-Windows GUI: mouse event test sometimes fails.
    Solution:   Ignore one move event only if there is an extra event.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.4968
    Problem:    Reading past end of the line when C-indenting.
    Solution:   Check for NUL.
    Files:      src/cindent.c, src/testdir/test_cindent.vim

    Patch 8.2.4969
    Problem:    Changing text in Visual mode may cause invalid memory access.
    Solution:   Check the Visual position after making a change.
    Files:      src/change.c, src/edit.c, src/misc2.c, src/proto/misc2.pro,
                src/testdir/test_visual.vim

    Patch 8.2.4970
    Problem:    "eval 123" gives an error, "eval 'abc'"' does not.
    Solution:   Also give an error when evaluating only a string. (closes #10434)
    Files:      src/ex_eval.c, src/testdir/test_vim9_cmd.vim

    Patch 8.2.4971
    Problem:    Vim9: interpolated string seen as range.
    Solution:   Recognize an interpolated string at the start of a command line.
                (closes #10434)
    Files:      src/ex_docmd.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4972
    Problem:    Vim9: compilation fails when using dict member when skipping.
    Solution:   Do not generate ISN_USEDICT when skipping. (closes #10433)
    Files:      src/vim9expr.c, src/testdir/test_vim9_expr.vim

    Patch 8.2.4973
    Problem:    Vim9: type error for list unpack mentions argument.
    Solution:   Mention variable. (close #10435)
    Files:      src/vim9.h, src/vim9execute.c, src/vim9instr.c,
                src/proto/vim9instr.pro, src/vim9compile.c,
                src/testdir/test_vim9_script.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4974
    Problem:    ":so" command may read after end of buffer.
    Solution:   Compute length of text properly.
    Files:      src/scriptfile.c, src/testdir/test_source.vim

    Patch 8.2.4975
    Problem:    Recursive command line loop may cause a crash.
    Solution:   Limit recursion of getcmdline().
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.4976
    Problem:    Coverity complains about not restoring a saved value.
    Solution:   Restore value before handling error.
    Files:      src/vim9execute.c

    Patch 8.2.4977
    Problem:    Memory access error when substitute expression changes window.
    Solution:   Disallow changing window in substitute expression.
    Files:      src/ex_cmds.c, src/testdir/test_substitute.vim

    Patch 8.2.4978
    Problem:    No error if engine selection atom is not at the start.
    Solution:   Give an error. (Christian Brabandt, closes #10439)
    Files:      runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
                src/regexp_nfa.c, src/testdir/test_regexp_latin.vim

    Patch 8.2.4979
    Problem:    Accessing freed memory when line is flushed.
    Solution:   Make a copy of the pattern to search for.
    Files:      src/window.c, src/testdir/test_tagjump.vim

    Patch 8.2.4980
    Problem:    When 'shortmess' contains 'A' loading a session may still warn for
                an existing swap file. (Melker Österberg)
    Solution:   Keep the 'A' flag to 'shortmess' in the session file.
                (closes #10443)
    Files:      src/session.c, src/testdir/test_mksession.vim

    Patch 8.2.4981
    Problem:    It is not possible to manipulate autocommands.
    Solution:   Add functions to add, get and set autocommands. (Yegappan
                Lakshmanan, closes #10291)
    Files:      runtime/doc/autocmd.txt, runtime/doc/builtin.txt,
                runtime/doc/usr_41.txt, src/autocmd.c, src/evalfunc.c,
                src/proto/autocmd.pro, src/testdir/test_autocmd.vim,
                src/testdir/test_vim9_builtin.vim

    Patch 8.2.4982
    Problem:    Colors in terminal window are not 100% correct.
    Solution:   Use g:terminal_ansi_colors as documented. (closes #10429,
                closes #7227 closes #10347)
    Files:      src/job.c, src/option.c, src/proto/term.pro,
                src/terminal.c, src/proto/terminal.pro, src/term.c,
                src/testdir/test_functions.vim, src/testdir/test_terminal.vim

    Patch 8.2.4983 (after 8.2.4982)
    Problem:    Colors test fails in the GUI.
    Solution:   Reset g:terminal_ansi_colors.
    Files:      src/testdir/test_functions.vim

    Patch 8.2.4984
    Problem:    Dragging statusline fails for window with winbar.
    Solution:   Fix off-by-one error. (closes #10448)
    Files:      src/mouse.c, src/testdir/test_winbar.vim

    Patch 8.2.4985
    Problem:    PVS warns for possible array underrun.
    Solution:   Add a check for a positive value. (Goc Dundar, closes #10451)
    Files:      src/spell.c

    Patch 8.2.4986
    Problem:    Some github actions are outdated.
    Solution:   Update CodeQl to v2, update checkout to v3. (closes #10450)
    Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml,
                .github/workflows/coverity.yml

    Patch 8.2.4987
    Problem:    After deletion a small fold may be closable.
    Solution:   Check for a reverse range. (Brandon Simmons, closes #10457)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.4988
    Problem:    Textprop in wrong position when replacing multi-byte chars.
    Solution:   Adjust textprop position. (closes #10461)
    Files:      src/change.c, src/testdir/test_textprop.vim

    Patch 8.2.4989
    Problem:    Cannot specify a function name for :defcompile.
    Solution:   Implement a function name argument for :defcompile.
    Files:      runtime/doc/vim9.txt, src/userfunc.c, src/proto/userfunc.pro,
                src/vim9execute.c, src/ex_cmds.h, src/testdir/test_vim9_cmd.vim,
                src/testdir/test_vim9_disassemble.vim

    Patch 8.2.4990 (after 8.2.4989)
    Problem:    Memory leak when :defcompile fails.
    Solution:   Free fname when returning early.
    Files:      src/userfunc.c

    Patch 8.2.4991
    Problem:    No test for what patch 8.1.0535 fixes.
    Solution:   Add a test. (closes #10462)
    Files:      src/testdir/test_fold.vim

    Patch 8.2.4992 (after 8.2.4989)
    Problem:    Compiler warning for possibly uninitialized variable. (Tony
                Mechelynck)
    Solution:   Initialize variable in the caller instead of in the function.
    Files:      src/userfunc.c, src/vim9execute.c

    Patch 8.2.4993
    Problem:    smart/C/lisp indenting is optional, which makes the code more
                complex, while it only reduces the executable size a bit.
    Solution:   Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.
    Files:      runtime/doc/builtin.txt, runtime/doc/indent.txt,
                runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h,
                src/buffer.c, src/change.c, src/cindent.c, src/charset.c,
                src/edit.c, src/evalfunc.c, src/indent.c, src/insexpand.c,
                src/main.c, src/mouse.c, src/ops.c, src/option.c, src/optionstr.c,
                src/register.c, src/search.c, src/textformat.c, src/version.c,
                src/option.h, src/optiondefs.h, src/structs.h, src/globals.h,
                src/testdir/test_edit.vim

    Patch 8.2.4994
    Problem:    Tests are using legacy functions.
    Solution:   Convert a few tests to use :def functions.
    Files:      src/testdir/test_cindent.vim

    Patch 8.2.4995 (after 8.2.4992)
    Problem:    Still a compiler warning for possibly uninitialized variable.
                (Tony Mechelynck)
    Solution:   Initialize variables.
    Files:      src/vim9execute.c

    Patch 8.2.4996 (after 8.2.4969)
    Problem:    setbufline() may change Visual selection. (Qiming Zhao)
    Solution:   Disable Visual mode when using another buffer. (closes #10466)
    Files:      src/evalbuffer.c, src/testdir/test_bufline.vim

    Patch 8.2.4997
    Problem:    Python: changing hidden buffer can cause the display to be messed
                up.
    Solution:   Do not mark changed lines when using another buffer. (Paul Ollis,
                closes #10437, closes #7972)
    Files:      src/if_py_both.h, src/testdir/test_python3.vim

    Patch 8.2.4998
    Problem:    Vim9: crash when using multiple funcref().
    Solution:   Check if varargs type is NULL. (closes #10467)
    Files:      src/vim9type.c, src/testdir/test_vim9_func.vim

    Patch 8.2.4999
    Problem:    Filetype test table is not properly sorted.
    Solution:   Sort by filetype. (Doug Kearns)
    Files:      src/testdir/test_filetype.vim

    Patch 8.2.5000
    Problem:    No patch for documentation updates.
    Solution:   Update documentation files.
    Files:      runtime/doc/arabic.txt, runtime/doc/autocmd.txt,
                runtime/doc/builtin.txt, runtime/doc/change.txt,
                runtime/doc/channel.txt, runtime/doc/cmdline.txt,
                runtime/doc/diff.txt, runtime/doc/digraph.txt,
                runtime/doc/editing.txt, runtime/doc/eval.txt,
                runtime/doc/filetype.txt, runtime/doc/fold.txt,
                runtime/doc/ft_ada.txt, runtime/doc/ft_ps1.txt,
                runtime/doc/ft_raku.txt, runtime/doc/ft_rust.txt,
                runtime/doc/ft_sql.txt, runtime/doc/gui.txt,
                runtime/doc/gui_w32.txt, runtime/doc/helphelp.txt,
                runtime/doc/help.txt, runtime/doc/if_cscop.txt,
                runtime/doc/if_lua.txt, runtime/doc/if_perl.txt,
                runtime/doc/if_pyth.txt, runtime/doc/if_tcl.txt,
                runtime/doc/indent.txt, runtime/doc/index.txt,
                runtime/doc/insert.txt, runtime/doc/intro.txt,
                runtime/doc/map.txt, runtime/doc/mbyte.txt,
                runtime/doc/message.txt, runtime/doc/motion.txt,
                runtime/doc/netbeans.txt, runtime/doc/options.txt,
                runtime/doc/os_dos.txt, runtime/doc/os_vms.txt,
                runtime/doc/os_win32.txt, runtime/doc/pattern.txt,
                runtime/doc/pi_netrw.txt, runtime/doc/pi_zip.txt,
                runtime/doc/popup.txt, runtime/doc/print.txt,
                runtime/doc/quickfix.txt, runtime/doc/quickref.txt,
                runtime/doc/remote.txt, runtime/doc/repeat.txt,
                runtime/doc/rileft.txt, runtime/doc/scroll.txt,
                runtime/doc/sign.txt, runtime/doc/spell.txt,
                runtime/doc/sponsor.txt, runtime/doc/starting.txt,
                runtime/doc/syntax.txt, runtime/doc/tabpage.txt,
                runtime/doc/tagsrch.txt, runtime/doc/terminal.txt,
                runtime/doc/term.txt, runtime/doc/testing.txt,
                runtime/doc/textprop.txt, runtime/doc/tips.txt,
                runtime/doc/todo.txt, runtime/doc/uganda.txt,
                runtime/doc/undo.txt, runtime/doc/usr_02.txt,
                runtime/doc/usr_04.txt, runtime/doc/usr_05.txt,
                runtime/doc/usr_06.txt, runtime/doc/usr_08.txt,
                runtime/doc/usr_09.txt, runtime/doc/usr_12.txt,
                runtime/doc/usr_20.txt, runtime/doc/usr_29.txt,
                runtime/doc/usr_40.txt, runtime/doc/usr_41.txt,
                runtime/doc/usr_45.txt, runtime/doc/usr_46.txt,
                runtime/doc/usr_50.txt, runtime/doc/usr_51.txt,
                runtime/doc/usr_52.txt, runtime/doc/usr_90.txt,
                runtime/doc/usr_toc.txt, runtime/doc/various.txt,
                runtime/doc/version5.txt, runtime/doc/version6.txt,
                runtime/doc/version7.txt, runtime/doc/version8.txt,
                runtime/doc/version9.txt, runtime/doc/vi_diff.txt,
                runtime/doc/vim9.txt, runtime/doc/visual.txt,
                runtime/doc/windows.txt, runtime/doc/tags, runtime/doc/Makefile

    Patch 8.2.5001
    Problem:    Checking translations affects the search pattern history.
    Solution:   Use "keeppatterns". (Doug Kearns)
    Files:      src/po/check.vim

    Patch 8.2.5002
    Problem:    deletebufline() may change Visual selection.
    Solution:   Disable Visual mode when using another buffer. (closes #10469)
    Files:      src/evalbuffer.c, src/testdir/test_bufline.vim

    Patch 8.2.5003
    Problem:    Cannot do bitwise shifts.
    Solution:   Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
    Files:      runtime/doc/eval.txt, src/errors.h, src/eval.c, src/structs.h,
                src/vim.h, src/vim9execute.c, src/vim9expr.c,
                src/testdir/test_expr.vim, src/testdir/test_vim9_disassemble.vim,
                src/testdir/test_vim9_expr.vim

    Patch 8.2.5004
    Problem:    Right shift on negative number does not work as documented.
    Solution:   Use a uvarnumber_T type cast.
    Files:      runtime/doc/eval.txt, src/eval.c, src/vim9expr.c,
                src/vim9execute.c, src/charset.c, src/testdir/test_expr.vim

    Patch 8.2.5005 (after 8.2.5003)
    Problem:    Compiler warning for uninitialized variable. (John Marriott)
    Solution:   Initialize the pointer to NULL.
    Files:      src/vim9expr.vim

    Patch 8.2.5006 (after 8.2.5003)
    Problem:    Asan warns for undefined behavior.
    Solution:   Cast the shifted value to unsigned.
    Files:      src/eval.c, src/vim9expr.c, src/vim9execute.c

    Patch 8.2.5007
    Problem:    Spell suggestion may use uninitialized memory. (Zdenek Dohnal)
    Solution:   Avoid going over the end of the word.
    Files:      src/spellsuggest.c, src/testdir/test_spell_utf8.vim

    Patch 8.2.5008
    Problem:    When 'formatoptions' contains "/" wrongly wrapping a long trailing
                comment.
    Solution:   Pass the OPENLINE_FORMAT flag.
    Files:      src/change.c, src/vim.h, src/textformat.c,
                src/testdir/test_textformat.vim

    Patch 8.2.5009
    Problem:    Fold may not be closable after appending.
    Solution:   Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471)
    Files:      src/fold.c, src/testdir/test_fold.vim

    Patch 8.2.5010
    Problem:    The terminal debugger uses various global variables.
    Solution:   Add a dictionary to hold the terminal debugger preferences.
    Files:      runtime/doc/terminal.txt,
                runtime/pack/dist/opt/termdebug/plugin/termdebug.vim

    Patch 8.2.5011
    Problem:    Replacing an autocommand requires several lines.
    Solution:   Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan,
                closes #10473)
    Files:      runtime/doc/autocmd.txt, runtime/doc/builtin.txt, src/autocmd.c,
                src/testdir/test_autocmd.vim

    Patch 8.2.5012
    Problem:    Cannot select one character inside ().
    Solution:   Do not try to extend the area if it is empty. (closes #10472,
                closes #6616)
    Files:      src/textobject.c, src/testdir/test_textobjects.vim

    Patch 8.2.5013
    Problem:    After text formatting the cursor may be in an invalid position.
    Solution:   Correct the cursor position after formatting.
    Files:      src/textformat.c, src/testdir/test_textformat.vim

    Patch 8.2.5014
    Problem:    Byte offsets are wrong when using text properties.
    Solution:   Make sure text properties do not affect the byte counts.
                (Paul Ollis, closes #10474)
    Files:      src/memline.c, src/textprop.c, src/testdir/test_textprop.vim

    Patch 8.2.5015
    Problem:    Hoon and Moonscript files are not recognized.
    Solution:   Add filetype patterns. (Goc Dundar, closes #10478)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.5016
    Problem:    Access before start of text with a put command.
    Solution:   Check the length is more than zero.
    Files:      src/register.c, src/testdir/test_put.vim

    Patch 8.2.5017
    Problem:    Gcc 12.1 warns for uninitialized variable.
    Solution:   Initialize the variable. (closes #10476)
    Files:      src/evalvars.c

    Patch 8.2.5018
    Problem:    Vim9: some code is not covered by tests.
    Solution:   Delete dead code.
    Files:      src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c,
                src/vim9expr.c,

    Patch 8.2.5019
    Problem:    Cannot get the first screen column of a character.
    Solution:   Let virtcol() optionally return a list. (closes #10482,
                closes #7964)
    Files:      runtime/doc/builtin.txt, src/evalfunc.c,
                src/testdir/test_functions.vim, src/testdir/test_vim9_builtin.vim

    Patch 8.2.5020
    Problem:    Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'.
    Solution:   Save and restore the KeyTyped flag. (closes #10479)
    Files:      src/gui_xim.c, src/testdir/test_iminsert.vim

    Patch 8.2.5021
    Problem:    Build fails with normal features and +terminal. (Dominique Pellé)
    Solution:   Add #ifdefs. (closes #10484)
    Files:      src/terminal.c

    Patch 8.2.5022
    Problem:    'completefunc'/'omnifunc' error does not end completion.
    Solution:   Check if there was an error or exception. (closes #10486,
                closes #4218)
    Files:      src/insexpand.c, src/testdir/test_ins_complete.vim

    Patch 8.2.5023
    Problem:    Substitute overwrites allocated buffer.
    Solution:   Disallow undo when in a substitute command.
    Files:      src/normal.c, src/undo.c, src/testdir/test_substitute.vim

    Patch 8.2.5024
    Problem:    Using freed memory with "]d".
    Solution:   Copy the pattern before searching.
    Files:      src/normal.c, src/testdir/test_tagjump.vim

    Patch 8.2.5025
    Problem:    Vim9: a few lines not covered by tests.
    Solution:   Add a few tests.
    Files:      src/vim9script.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_import.vim

    Patch 8.2.5026
    Problem:    Vim9: a few lines not covered by tests.
    Solution:   Delete dead code.  Add a few test cases. make "12->func()" work.
    Files:      src/vim9type.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
                src/vim9compile.c, src/testdir/test_vim9_assign.vim,
                src/testdir/test_vim9_func.vim

    Patch 8.2.5027
    Problem:    Error for missing :endif when an exception was thrown. (Dani
                Dickstein)
    Solution:   Do not give an error when aborting. (closes #10490)
    Files:      src/ex_docmd.c, src/testdir/test_trycatch.vim

    Patch 8.2.5028
    Problem:    Syntax regexp matching can be slow.
    Solution:   Adjust the counters for checking the timeout to check about once
                per msec. (closes #10487, closes #2712)
    Files:      src/regexp_bt.c, src/regexp_nfa.c

    Patch 8.2.5029
    Problem:    "textlock" is always zero.
    Solution:   Remove "textlock" and rename "textwinlock" to "textlock".
                (closes #10489)
    Files:      runtime/doc/insert.txt, runtime/doc/tags, src/beval.c,
                src/change.c, src/edit.c, src/errors.h, src/eval.c, src/ex_cmds.c,
                src/ex_getln.c, src/proto/ex_getln.pro, src/globals.h,
                src/indent.c, src/insexpand.c, src/map.c, src/register.c,
                src/undo.c, src/window.c, src/testdir/test_edit.vim,
                src/testdir/test_ins_complete.vim, src/testdir/test_popup.vim,
                src/testdir/test_quickfix.vim

    Patch 8.2.5030
    Problem:    autocmd_add() can only handle one event and pattern.
    Solution:   Support a list of events and patterns. (Yegappan Lakshmanan,
                closes #10483)
    Files:      runtime/doc/builtin.txt, src/autocmd.c, src/errors.h,
                src/testdir/test_autocmd.vim

    Patch 8.2.5031
    Problem:    Cannot easily run the benchmarks.
    Solution:   Have "make benchmark" in the src directory work.
    Files:      src/Makefile, src/testdir/Makefile

    Patch 8.2.5032
    Problem:    Python 3 test fails without the GUI.
    Solution:   Check the balloon_eval feature is available.
    Files:      src/testdir/test_python3.vim

    Patch 8.2.5033 (after 8.2.5030)
    Problem:    Build error with +eval but without +quickfix.  Warning for
                uninitialized variable.
    Solution:   Adjust #ifdefs. (John Marriott)
    Files:      src/errors.h, src/autocmd.c

    Patch 8.2.5034
    Problem:    There is no way to get the byte index from a virtual column.
    Solution:   Add virtcol2col(). (Yegappan Lakshmanan, closes #10477,
                closes #10098)
    Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
                src/move.c, src/proto/move.pro, src/testdir/test_cursor_func.vim

    Patch 8.2.5035
    Problem:    When splitting a window the changelist position moves.
    Solution:   Set the changelist index a bit later. (closes #10493)
    Files:      src/window.c, src/testdir/test_changelist.vim,
                src/testdir/test_normal.vim

    Patch 8.2.5036 (after 8.2.5028)
    Problem:    Using two counters for timeout check in NFA engine.
    Solution:   Use only one counter.  Tune the counts based on guessing.
    Files:      src/regexp_nfa.c

    Patch 8.2.5037
    Problem:    Cursor position may be invalid after "0;" range.
    Solution:   Check the cursor position when it was set by ";" in the range.
    Files:      src/ex_docmd.c, src/testdir/test_excmd.vim

    Patch 8.2.5038
    Problem:    A finished terminal in a popup window does not show a scrollbar.
    Solution:   Show the scrollbar if the terminal job is finished. (closes
                #10497)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_poptermscroll_1.dump,
                src/testdir/dumps/Test_popupwin_poptermscroll_2.dump,
                src/testdir/dumps/Test_popupwin_poptermscroll_3.dump

    Patch 8.2.5039
    Problem:    Confusing error if first argument of popup_create() is wrong.
    Solution:   Give a more informative error.
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim, src/errors.h,
                src/testdir/dumps/Test_popup_settext_07.dump

    Patch 8.2.5040
    Problem:    Scrollbar thumb in scrolled popup not visible.
    Solution:   Show at least one thumb character. (fixes 10492)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_scroll_13.dump

    Patch 8.2.5041
    Problem:    Cannot close a terminal popup with "NONE" job.
    Solution:   Adjust the conditions for whether a job is running.
                (closes #10498)
    Files:      src/buffer.c, src/terminal.c, src/proto/terminal.pro,
                src/undo.c, src/testdir/test_popupwin.vim

    Patch 8.2.5042
    Problem:    Scrollbar thumb in tall scrolled popup not visible.
    Solution:   Show at least one thumb character. (fixes 10492)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_scroll_13.dump

    Patch 8.2.5043
    Problem:    Can open a cmdline window from a substitute expression.
    Solution:   Disallow opening a command line window when text or buffer is
                locked.
    Files:      src/buffer.c, src/ex_getln.c, src/proto/ex_getln.pro,
                src/window.c, src/testdir/test_substitute.vim

    Patch 8.2.5044 (after 8.2.5043)
    Problem:    Command line test fails.
    Solution:   Also beep when cmdline win can't be opened because of locks.
                Make the test not beep.  Make the test pass on MS-Windows.
    Files:      src/ex_getln.c, src/testdir/test_substitute.vim

    Patch 8.2.5045
    Problem:    Can escape a terminal popup window when the job is finished.
    Solution:   Only check for a finished job where it is relevant.
                (closes #10253)
    Files:      src/popupwin.c, src/testdir/test_popupwin.vim,
                src/testdir/dumps/Test_popupwin_poptermscroll_1.dump,
                src/testdir/dumps/Test_popupwin_poptermscroll_2.dump,
                src/testdir/dumps/Test_popupwin_poptermscroll_3.dump,
                src/testdir/dumps/Test_popupwin_poptermscroll_4.dump

    Patch 8.2.5046
    Problem:    vim_regsub() can overwrite the destination.
    Solution:   Pass the destination length, give an error when it doesn't fit.
    Files:      src/regexp.h, src/regexp.c, src/proto/regexp.pro, src/eval.c,
                src/ex_cmds.c

    Patch 8.2.5047
    Problem:    CurSearch highlight is often wrong.
    Solution:   Remember the last highlighted position and redraw when needed.
    Files:      src/globals.h, src/match.c, src/drawscreen.c, src/change.c,
                src/testdir/test_search.vim,
                src/testdir/dumps/Test_hlsearch_cursearch_changed_1.dump

    Patch 8.2.5048
    Problem:    When using XIM the gui test may fail.
    Solution:   Only use --not-a-term when not using XIM.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.5049
    Problem:    Insufficient tests for autocommands.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #10507)
    Files:      src/autocmd.c, src/testdir/gen_opt_test.vim,
                src/testdir/test_autocmd.vim, src/testdir/test_cmdline.vim

    Patch 8.2.5050
    Problem:    Using freed memory when searching for pattern in path.
    Solution:   Make a copy of the line.
    Files:      src/search.c, src/testdir/test_tagjump.vim

    Patch 8.2.5051
    Problem:    Check for autocmd_add() event argument is confusing.
    Solution:   Make the code more straightforward.
    Files:      src/autocmd.c

    Patch 8.2.5052
    Problem:    CI checkout step title is a bit cryptic.
    Solution:   Add a better title. (closes #10509)
    Files:      .github/workflows/ci.yml, .github/workflows/coverity.yml,
                .github/workflows/codeql-analysis.yml

    Patch 8.2.5053
    Problem:    Cannot have a comment halfway an expression in an autocmd command
                block.
    Solution:   When skipping over the NL also skip over comments. (closes #10519)
    Files:      src/eval.c, src/testdir/test_autocmd.vim

    Patch 8.2.5054
    Problem:    No good filetype for conf files similar to dosini.
    Solution:   Add the confini filetype. (closes #10518)
    Files:      runtime/filetype.vim, src/testdir/test_filetype.vim

    Patch 8.2.5055
    Problem:    Statusline is not updated when terminal title changes.
    Solution:   Redraw the status line when the title changes. (issue #10425)
    Files:      src/terminal.c

    Patch 8.2.5056
    Problem:    The channel log only contains some of the raw terminal output.
    Solution:   Add the "o" flag to log all terminal output.  Use it for "--log".
    Files:      runtime/doc/channel.txt, runtime/doc/starting.txt, src/main.c,
                src/channel.c, src/vim.h, src/term.c, src/edit.c, src/normal.c,
                src/optionstr.c

    Patch 8.2.5057
    Problem:    Using gettimeofday() for timeout is very inefficient.
    Solution:   Set a platform dependent timer. (Paul Ollis, closes #10505)
    Files:      src/auto/configure, src/config.h.in, src/configure.ac,
                src/drawscreen.c, src/errors.h, src/evalfunc.c, src/ex_cmds.c,
                src/ex_getln.c, src/match.c, src/os_mac.h, src/os_macosx.m,
                src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro,
                src/proto/os_win32.pro, src/proto/regexp.pro, src/quickfix.c,
                src/regexp.c, src/regexp.h, src/regexp_bt.c, src/regexp_nfa.c,
                src/screen.c, src/search.c, src/structs.h, src/syntax.c,
                src/testdir/test_hlsearch.vim, src/testdir/test_search.vim,
                src/testdir/test_syntax.vim

    Patch 8.2.5058
    Problem:    input() does not handle composing characters properly.
    Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
                (closes #10527)
    Files:      src/getchar.c, src/testdir/test_functions.vim

    Patch 8.2.5059
    Problem:    Autoconf 2.71 produces many obsolete warnings.
    Solution:   Replace obsolete macros with non-obsolete ones, where the
                functionality does not change. (issue #10528)
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.5060 (after 8.2.5059)
    Problem:    Running configure fails.
    Solution:   Remove line break.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.5061
    Problem:    C89 requires signal handlers to return void.
    Solution:   Drop RETSIGTYPE and hard-code a void return value.
    Files:      src/configure.ac, src/auto/configure, src/if_cscope.c,
                src/os_unix.c, src/pty.c, src/os_mac.h, src/os_vms_conf.h,
                src/config.h.in, src/osdef1.h.in

    Patch 8.2.5062
    Problem:    Coverity warns for dead code.
    Solution:   Remove the dead code.
    Files:      src/os_unix.c, src/match.c

    Patch 8.2.5063
    Problem:    Error for a command may go over the end of IObuff.
    Solution:   Truncate the message.
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.5064
    Problem:    No test for what 8.1.0052 fixes.
    Solution:   Add a test. (closes #10531)
    Files:      src/getchar.c, src/testdir/test_mapping.vim

    Patch 8.2.5065
    Problem:    Wrong return type for main() in tee.c.
    Solution:   Use "int" instead of "void".  Remove unused variable.
    Files:      src/tee/tee.c

    Patch 8.2.5066
    Problem:    Can specify multispace listchars only for whole line.
    Solution:   Add "leadmultispace". (Christian Brabandt, closes #10496)
    Files:      runtime/doc/options.txt, src/drawline.c, src/message.c,
                src/screen.c, src/structs.h, src/window.c,
                src/testdir/test_listchars.vim

    Patch 8.2.5067
    Problem:    Timer_create is not available on every Mac system. (Hisashi T
                Fujinaka)
    Solution:   Adjust #ifdef.
    Files:      src/os_unix.c

    Patch 8.2.5068
    Problem:    Gcc 12.1 warning when building tee.
    Solution:   Change type to size_t. (John Marriott)
    Files:      src/tee/tee.c

    Patch 8.2.5069
    Problem:    Various warnings from clang on MS-Windows.
    Solution:   Fix the code to avoid the warnings. (Yegappan Lakshmanan,
                closes #10538)
    Files:      src/dosinst.c, src/fileio.c, src/gui_w32.c, src/os_mswin.c,
                src/os_win32.c

    Patch 8.2.5070
    Problem:    Unnecessary code.
    Solution:   Remove code that isn't needed. (closes #10534)
    Files:      src/message.c, src/screen.c

    Patch 8.2.5071
    Problem:    With some Mac OS version clockid_t is redefined.
    Solution:   Adjust #ifdefs. (Ozaki Kiichi, closes #10549)
    Files:      src/os_mac.h

    Patch 8.2.5072
    Problem:    Using uninitialized value and freed memory in spell command.
    Solution:   Initialize "attr".  Check for empty line early.
    Files:      src/spell.c, src/testdir/test_spell_utf8.vim

    Patch 8.2.5073
    Problem:    Clang on MS-Windows produces warnings.
    Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10546)
    Files:      src/dosinst.c, src/dosinst.h, src/gui_dwrite.cpp, src/gui_w32.c,
                src/iscygpty.c, src/libvterm/src/vterm_internal.h, src/mbyte.c,
                src/os_win32.c, src/os_win32.h, src/term.c, src/xdiff/xinclude.h

    Patch 8.2.5074
    Problem:    Spell test fails on MS-Windows.
    Solution:   Do not change 'encoding'
    Files:      src/testdir/test_spell_utf8.vim

    Patch 8.2.5075
    Problem:    Clang gives an out of bounds warning.
    Solution:   adjust conditional expression (John Marriott)
    Files:      src/ui.c

    Patch 8.2.5076
    Problem:    Unnecessary code.
    Solution:   Remove code and replace with function call. (closes #10552)
    Files:      src/drawline.c, src/getchar.c

    Patch 8.2.5077
    Problem:    Various warnings from clang on MS-Windows.
    Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10553)
    Files:      src/dosinst.c, src/dosinst.h, src/filepath.c, src/gui_w32.c,
                src/misc1.c, src/os_win32.c

    Patch 8.2.5078
    Problem:    Substitute test has a one second delay.
    Solution:   Use ":silent!".  Add another test case. (closes #10558)
    Files:      src/testdir/test_substitute.vim

    Patch 8.2.5079
    Problem:    DirChanged autocommand may use freed memory. (Shane-XB Qian)
    Solution:   Free the memory later. (closes #10555)
    Files:      src/ex_docmd.c, src/testdir/test_autocmd.vim

    Patch 8.2.5080
    Problem:    When indenting gets out of hand it is hard to stop.
    Solution:   When line gets too long set got_int.
    Files:      src/indent.c

    Patch 8.2.5081
    Problem:    Autocmd test fails on MS-Windows.
    Solution:   Set shellslash to get forward slashes.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.5082 (after 8.2.5080)
    Problem:    Retab test fails.
    Solution:   Disable the test for now.
    Files:      src/testdir/test_retab.vim

    Patch 8.2.5083
    Problem:    Autocmd test still fails on MS-Windows.
    Solution:   Change backward to forward slashes.
    Files:      src/testdir/test_autocmd.vim

    Patch 8.2.5084
    Problem:    When the GUI shows a dialog tests get stuck.
    Solution:   Add the --gui-dialog-file argument.
    Files:      runtime/doc/starting.txt, src/Make_mvc.mak, src/gui.c, src/main.c,
                src/message.c, src/os_mswin.c, src/proto/gui.pro,
                src/proto/main.pro, src/structs.h, src/testdir/Make_dos.mak,
                src/testdir/Make_ming.mak, src/testdir/Makefile,
                src/testdir/runtest.vim, src/testdir/shared.vim

    Patch 8.2.5085
    Problem:    Gcc gives warning for signed/unsigned difference.
    Solution:   Use a different pointer type. (John Marriott)
    Files:      src/os_mswin.c

    Patch 8.2.5086
    Problem:    CI runs on Windows 2019.
    Solution:   Switch to Windows 2022. (closes #10566)
    Files:      .github/workflows/ci.yml

    Patch 8.2.5087
    Problem:    Cannot build with clang on MS-Windows.
    Solution:   Add support for building with clang. (Yegappan Lakshmanan,
                closes #10557)
    Files:      src/GvimExt/Make_ming.mak, src/INSTALLpc.txt,
                src/Make_cyg_ming.mak

    Patch 8.2.5088
    Problem:    Value of cmod_verbose is a bit complicated to use.
    Solution:   Use zero for not set, value + 1 when set. (closes #10564)
    Files:      src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/structs.h

    Patch 8.2.5089
    Problem:    Some functions return a different value on failure.
    Solution:   Initialize the return value earlier. (Yegappan Lakshmanan,
                closes #10568)
    Files:      src/autocmd.c, src/dict.c, src/evalfunc.c, src/list.c

    Patch 8.2.5090
    Problem:    MS-Windows: vim.def is no longer used.
    Solution:   Delete vim.def. (Ken Takata, closes #10569)
    Files:      Filelist, Makefile, src/vim.def

    Patch 8.2.5091
    Problem:    Terminal test fails with some shell commands.
    Solution:   Disable setting the window title. (closes #10530)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.5092
    Problem:    Using "'<,'>" in Ex mode may compare unrelated pointers.
    Solution:   Set eap->cmd to "+" only later.
    Files:      src/ex_docmd.c

    Patch 8.2.5093
    Problem:    Error message for unknown command may mention the command twice.
                (Malcolm Rowe)
    Solution:   Add the did_append_cmd flag. (closes #10570)
    Files:      src/ex_docmd.c

    Patch 8.2.5094
    Problem:    MS-Windows GUI: empty command may cause a dialog.
    Solution:   Delete the dialog file.  Improve the message.
    Files:      src/testdir/runtest.vim, src/testdir/test_ex_mode.vim

    Patch 8.2.5095
    Problem:    Terminal test still fails with some shell commands.
    Solution:   Disable setting the window title in the Vim instance running in a
                terminal window. (closes #10530)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.5096 (after 8.2.5095)
    Problem:    Terminal test still fails with some shell commands.
    Solution:   Add missing "call".  (closes #10530)
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.5097
    Problem:    Using uninitialized memory when using 'listchars'.
    Solution:   Use the length returned by mb_char2bytes(). (closes #10576)
    Files:      src/message.c

    Patch 8.2.5098
    Problem:    Spelldump test sometimes hangs.
    Solution:   Catch the problem of the spell file not being found to avoid
                hanging in the download dialog.
    Files:      src/testdir/test_spell.vim

    Patch 8.2.5099
    Problem:    Some terminal tests are not retried.
    Solution:   Mark terminal tests as flaky.
    Files:      src/testdir/test_terminal.vim

    Patch 8.2.5100
    Problem:    Memory usage tests are not retried.
    Solution:   Mark memory usage tests as flaky.
    Files:      src/testdir/test_memory_usage.vim

    Patch 8.2.5101
    Problem:    MS-Windows with MinGW: $CC may be "cc" instead of "gcc".
    Solution:   Set $CC if it is not matching "clang". (Yegappan Lakshmanan,
                closes #10578)
    Files:      src/INSTALLpc.txt, src/Make_cyg_ming.mak

    Patch 8.2.5102
    Problem:    Interrupt not caught in test.
    Solution:   Consider an exception thrown in the current try/catch when got_int
                is set.  Also catch early exit when not using try/catch.
    Files:      src/indent.c, src/testing.c, src/testdir/test_retab.vim,
                src/testdir/runtest.vim

    Patch 8.2.5103
    Problem:    Build fails with small features.
    Solution:   Add #ifdef.  Skip test on MS-Windows.
    Files:      src/indent.c, src/testdir/test_retab.vim

    Patch 8.2.5104 (after 8.2.5103)
    Problem:    Test hangs on MS-Windows.
    Solution:   Skip another test on MS-Windows.
    Files:      src/testdir/test_retab.vim

    Patch 8.2.5105 (after 8.2.5104)
    Problem:    Test still hangs on MS-Windows.
    Solution:   Skip "nocatch" test the right way.
    Files:      src/testdir/test_retab.vim

    Patch 8.2.5106
    Problem:    Default cmdwin mappings are re-mappable.
    Solution:   Make the default mappings not re-mappable. (closes #10580)  Use
                symbols for the first do_map() argument.
    Files:      src/vim.h, src/ex_getln.c, src/map.c, src/proto/map.pro,
                src/digraph.c, src/netbeans.c

    Patch 8.2.5107
    Problem:    Some callers of rettv_list_alloc() check for not OK. (Christ van
                Willegen)
    Solution:   Use "==" instead of "!=" when checking the return value.
    Files:      src/evalbuffer.c, src/channel.c, src/cmdexpand.c, src/evalfunc.c,
                src/evalwindow.c, src/insexpand.c, src/job.c, src/list.c,
                src/map.c, src/menu.c, src/mouse.c, src/move.c, src/sign.c,
                src/textprop.c, src/term.c, src/time.c

    Patch 8.2.5108
    Problem:    Retab test disabled because it hangs on MS-Windows.
    Solution:   Also set got_int at the other place an overlong text is detected.
    Files:      src/indent.c, src/testdir/test_retab.vim

    Patch 8.2.5109
    Problem:    Mode not updated after CTRL-O CTRL-C in Insert mode.
    Solution:   Set redraw_mode and use it. (closes #10581)
    Files:      src/main.c, src/normal.c, src/testdir/test_normal.vim,
                src/testdir/dumps/Test_mode_updated_1.dump

    Patch 8.2.5110
    Problem:    Icon filetype not recognized from the first line.
    Solution:   Add a check for the first line. (Doug Kearns)
    Files:      runtime/autoload/dist/script.vim, src/testdir/test_filetype.vim

    Patch 8.2.5111
    Problem:    No test for --gui-dialog-file.
    Solution:   Add a test.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.5112 (after 8.2.5111)
    Problem:    Gui test hangs on MS-Windows.
    Solution:   Use "!start" to start Vim.
    Files:      src/testdir/test_gui.vim

    Patch 8.2.5113
    Problem:    Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel
                Dupras)
    Solution:   Delete the timer before forking. (closes #10584)
    Files:      src/os_unix.c, src/proto/os_unix.pro, src/gui.c

    Patch 8.2.5114
    Problem:    Time limit on searchpair() does not work properly.
    Solution:   Set the time limit once instead of for each regexp. (closes #10562)
    Files:      src/search.c, src/evalfunc.c, src/testdir/test_search.vim

    Patch 8.2.5115
    Problem:    Search timeout is overrun with some patterns.
    Solution:   Check for timeout in more places.  Make the flag volatile and
                atomic.  Use assert_inrange() to see what happened.
    Files:      src/regexp_nfa.c, src/regexp_bt.c, src/regexp.c, src/os_unix.c,
                src/proto/os_unix.pro, src/testdir/test_search.vim

    Patch 8.2.5116
    Problem:    "limit" option of matchfuzzy() not always respected.
    Solution:   Remove "else". (Kazuyuki Miyagi, closes #10586)
    Files:      runtime/doc/builtin.txt, src/search.c,
                src/testdir/test_matchfuzzy.vim

    Patch 8.2.5117
    Problem:    Crash when calling a Lua callback from a :def function. (Bohdan
                Makohin)
    Solution:   Handle FC_CFUNC in call_user_func_check(). (closes #10587)
    Files:      src/userfunc.c, src/testdir/test_lua.vim

    Patch 8.2.5118
    Problem:    MS-Windows: sending a message to another Vim may hang if that Vim
                is halted.
    Solution:   Add a timeout to serverSendToVim(). (Ken Takata, closes #10585)
    Files:      runtime/pack/dist/opt/editexisting/plugin/editexisting.vim,
                src/os_mswin.c

    Patch 8.2.5119
    Problem:    CI uses cache v2.
    Solution:   Use cache v3. (closes #10588)
    Files:      .github/workflows/ci.yml

    Patch 8.2.5120
    Problem:    Searching for quotes may go over the end of the line.
    Solution:   Check for running into the NUL.
    Files:      src/textobject.c

    Patch 8.2.5121
    Problem:    Interrupt test sometimes fails.
    Solution:   Use a different file name.
    Files:      src/testdir/test_interrupt.vim

    Patch 8.2.5122
    Problem:    Lisp indenting my run over the end of the line.
    Solution:   Check for NUL earlier.
    Files:      src/indent.c, src/testdir/test_indent.vim

    Patch 8.2.5123
    Problem:    Using invalid index when looking for spell suggestions.
    Solution:   Do not decrement the index when it is zero.
    Files:      src/spellsuggest.c, src/testdir/test_spell.vim

    Patch 8.2.5124
    Problem:    When syntax timeout test fails it does not show the time.
    Solution:   Use assert_inrange().
    Files:      src/testdir/test_syntax.vim

    Patch 8.2.5125
    Problem:    MS-Windows: warnings from MinGW compiler.
    Solution:   Use "volatile". (Yasuhiro Matsumoto, closes #10589)  Initialize
                variable.
    Files:      src/os_win32.c, src/proto/os_win32.pro, src/map.c

    Patch 8.2.5126
    Problem:    Substitute may overrun destination buffer.
    Solution:   Disallow switching buffers in a substitute expression.
    Files:      src/ex_docmd.c, src/testdir/test_substitute.vim

    Patch 8.2.5127
    Problem:    Using assert_true() does not show value on failure.
    Solution:   Use assert_inrange(). (closes #10593)
    Files:      src/testdir/test_channel.vim, src/testdir/test_hlsearch.vim

    Patch 8.2.5128
    Problem:    Syntax highlighting disabled when using synID() in searchpair()
                skip expression and it times out. (Jaehwang Jung)
    Solution:   Add the redrawtime_limit_set flag. (closes #10562)
    Files:      src/globals.h, src/drawscreen.c, src/syntax.c

    Patch 8.2.5129
    Problem:    Timeout handling is not optimal.
    Solution:   Avoid setting timeout_flag twice.  Adjust the pointer when
                stopping the regexp timeout.  Adjust variable name.
    Files:      src/os_unix.c, src/os_win32.c, src/regexp.c

    Patch 8.2.5130
    Problem:    Edit test for mode message fails when using valgrind.
    Solution:   Use WaitForAssert().  Run beep test later.
    Files:      src/testdir/test_edit.vim

    Patch 8.2.5131
    Problem:    Timeout implementation is not optimal.
    Solution:   Further improvements for timeouts.  Add a test for searchpair()
                timeout. (partly by Paul Ollis)
    Files:      src/configure.ac, src/auto/configure,
                src/testdir/test_hlsearch.vim, src/testdir/test_search.vim

    Patch 8.2.5132
    Problem:    :mkview test doesn't test much.
    Solution:   Save the view with the folds closed. (James McCoy, closes #10596)
    Files:      src/testdir/test_mksession.vim

    Patch 8.2.5133
    Problem:    MacOS: build fails.
    Solution:   Remove "#if 0" from timer_delete().
    Files:      src/os_macosx.m

    Patch 8.2.5134
    Problem:    Function has confusing name.
    Solution:   Rename tgetent_error() to invoke_tgetent().
    Files:      src/term.c

    Patch 8.2.5135
    Problem:    Running configure gives warnings for main() return type.
    Solution:   Specify "int" return type.  Avoid a few more warnings.
    Files:      src/configure.ac, src/auto/configure

    Patch 8.2.5136
    Problem:    Debugger test fails when run with valgrind.
    Solution:   Wait longer when using valgrind.
    Files:      src/testdir/shared.vim, src/testdir/test_debugger.vim,
                src/testdir/test_search.vim

    Patch 8.2.5137
    Problem:    Cannot build without the +channel feature. (Dominique Pellé)
    Solution:   Add #ifdef around ch_log() calls. (closes #10598)
    Files:      src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c

    Patch 8.2.5138
    Problem:    Various small issues.
    Solution:   Various small improvements.
    Files:      src/filepath.c, src/job.c, src/mark.c, src/move.c,
                src/popupwin.c, src/testdir/test_filetype.vim

    Patch 8.2.5139
    Problem:    TIME_WITH_SYS_TIME is no longer supported by autoconf.
    Solution:   Always include time.h.
    Files:      src/os_unix.h

    Patch 8.2.5140
    Problem:    Seachpair timeout test is flaky.
    Solution:   Mark the test as flaky so it is retried.
    Files:      src/testdir/test_search.vim

    Patch 8.2.5141
    Problem:    Using "volatile int" in a signal handler might be wrong.
    Solution:   Use "volatile sig_atomic_t".
    Files:      src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
                src/proto/os_win32.pro, src/regexp.c,

    Patch 8.2.5142
    Problem:    Startup test fails if there is a status bar at the top of the
                screen. (Ernie Rael)
    Solution:   Use a larger vertical offset in the test.
    Files:      src/testdir/test_startup.vim

    Patch 8.2.5143
    Problem:    Some tests fail when using valgrind. Spurious leak reports.
    Solution:   Use WaitForAssert().  Avoid failing fork/exec.  Skip tests where a
                job is killed when running valgrind.
    Files:      src/testdir/test_iminsert.vim, src/testdir/test_popup.vim,
                src/testdir/test_cscope.vim, src/testdir/test_channel.vim

    Patch 8.2.5144
    Problem:    With 'lazyredraw' set completion menu may be displayed wrong.
    Solution:   When the popup menu is visible do not insert a screen line.
                (closes #10601)
    Files:      src/screen.c

    Patch 8.2.5145
    Problem:    Exit test causes spurious valgrind reports.
    Solution:   Skip test.  Add CheckNotValgrind.
    Files:      src/testdir/test_exit.vim, src/testdir/check.vim,
                src/testdir/test_channel.vim

    Patch 8.2.5146
    Problem:    Memory leak when substitute expression nests.
    Solution:   Use an array of expression results.
    Files:      src/alloc.c, src/regexp.c, src/proto/regexp.pro,
                src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.vim

    Patch 8.2.5147
    Problem:    Flaky test always fails on retry.
    Solution:   Delete the created function.
    Files:      src/testdir/test_search.vim

    Patch 8.2.5148
    Problem:    Invalid memory access when using an expression on the command line.
    Solution:   Make sure the position does not go negative.
    Files:      src/ex_getln.c, src/testdir/test_cmdline.vim

    Patch 8.2.5149 (after 8.2.5148)
    Problem:    Cannot build without the +eval feature. (Tony Mechelynck)
    Solution:   Add #ifdefs.
    Files:      src/ex_getln.c

    Patch 8.2.5150
    Problem:    Read past the end of the first line with ":0;'{".
    Solution:   When on line zero check the column is valid for line one.
    Files:      src/ex_docmd.c, src/testdir/test_cmdline.vim

    Patch 8.2.5151
    Problem:    Reading beyond the end of the line with lisp indenting.
    Solution:   Avoid going over the NUL at the end of the line.
    Files:      src/indent.c, src/testdir/test_lispwords.vim

    Patch 8.2.5152
    Problem:    search() gets stuck with "c" and skip evaluates to true.
    Solution:   Reset the SEARCH_START option. (closes #10608)
    Files:      src/evalfunc.c, src/testdir/test_syntax.vim

    Patch 8.2.5153
    Problem:    "make uninstall" does not remove colors/lists.
    Solution:   Add a line to the Makefile. (closes #10609)
    Files:      src/Makefile

    Patch 8.2.5154
    Problem:    Still mentioning version8, some cosmetic issues.
    Solution:   Prefer mentioning version9, cosmetic improvements.
    Files:      src/version.c, src/if_tcl.c, src/regexp.c,
                src/testdir/test_gui.vim, src/os_unix.c, Filelist, src/Makefile

    Patch 8.2.5155
    Problem:    In diff mode windows may get out of sync. (Gary Johnson)
    Solution:   Avoid that the other window scrolls for 'cursorbind'.
    Files:      src/move.c, src/testdir/test_diffmode.vim,
                src/testdir/dumps/Test_diff_scroll_1.dump,
                src/testdir/dumps/Test_diff_scroll_2.dump

    Patch 8.2.5156
    Problem:    Search timeout test often fails with FreeBSD.
    Solution:   Double the maximum time.
    Files:      src/testdir/test_search.vim

    Patch 8.2.5157
    Problem:    MS-Windows GUI: CTRL-key combinations do not always work.
    Solution:   Handle special key combinations better. (closes #10613,
                closes #10602, closes #10579)
    Files:      src/gui_w32.c

    Patch 8.2.5158
    Problem:    TSTP and INT signal tests are not run with valgrind.
    Solution:   Sleep a bit longer. (closes #10614)
    Files:      src/testdir/test_signals.vim

    Patch 8.2.5159 (after 8.2.5157)
    Problem:    Fix for CTRL-key combinations causes more problems than it solves.
    Solution:   Roll back the change.
    Files:      src/gui_w32.c

    Patch 8.2.5160
    Problem:    Accessing invalid memory after changing terminal size.
    Solution:   Adjust cmdline_row and msg_row to the value of Rows.
    Files:      src/term.c

    Patch 8.2.5161
    Problem:    Might still access invalid memory.
    Solution:   Add extra check for negative value.
    Files:      src/message.c

    Patch 8.2.5162
    Problem:    Reading before the start of the line with BS in Replace mode.
    Solution:   Check the cursor column is more than zero.
    Files:      src/edit.c

    Patch 8.2.5163
    Problem:    Crash when deleting buffers in diff mode.
    Solution:   Recompute diffs later.  Skip window without a valid buffer.
    Files:      src/diff.c, src/testdir/test_diffmode.vim

    Patch 8.2.5164
    Problem:    Invalid memory access after diff buffer manipulations.
    Solution:   Use zero offset when change removes all lines in a diff block.
    Files:      src/diff.c, src/testdir/test_diffmode.vim

    Patch 8.2.5165
    Problem:    Import test fails because 'diffexpr' isn't reset.
    Solution:   Reset 'diffexpr'.
    Files:      src/testdir/test_vim9_import.vim

    Patch 8.2.5166
    Problem:    Test for DiffUpdated fails.
    Solution:   Also accept a count of two.
    Files:      src/testdir/test_diffmode.vim

    Patch 8.2.5167
    Problem:    get(Fn, 'name') on funcref returns special byte code.
    Solution:   Use the printable name.
    Files:      src/evalfunc.c, src/testdir/test_getvar.vim

    Patch 8.2.5168
    Problem:    Cannot build with Python 3.11.
    Solution:   Adjust define for _PyObject_TypeCheck. (Zdenek Dohnal,
                closes #10627)
    Files:      src/if_python3.c

    Patch 8.2.5169
    Problem:    Nested :source may use NULL pointer.
    Solution:   Do not use the NULL pointer.
    Files:      src/eval.c, src/testdir/test_vimscript.vim

    Patch 8.2.5170
    Problem:    Tiny issues.
    Solution:   Tiny improvements.
    Files:      src/misc1.c, src/screen.c, src/vim.h

    Patch 8.2.5171
    Problem:    Dependencies and proto files are outdated.
    Solution:   Update dependencies and proto files.  Avoid errors.
    Files:      src/Makefile, src/gui_w32.c, src/os_mswin.c, src/proto/buffer.pro,
                src/proto/cmdexpand.pro, src/proto/getchar.pro,
                src/proto/help.pro, src/proto/mbyte.pro, src/proto/option.pro,
                src/proto/screen.pro, src/proto/syntax.pro,
                src/proto/textformat.pro, src/proto/textobject.pro,
                src/proto/time.pro, src/proto/gui_x11.pro, src/proto/if_tcl.pro,
                src/proto/os_mswin.pro

    Patch 8.2.5172
    Problem:    "make menu" still uses legacy script.
    Solution:   make menu generation script use Vim9 script, fix errors.
    Files:      runtime/makemenu.vim

    ==============================================================================

    VERSION 9.1				*version-9.1* *version9.1* *vim-9.1*

    This section is about improvements made between version 9.0 and 9.1.
    The release 9.1 is dedicated to Vim's Benevolent dictator for life
    |Bram-Moolenaar|.

    This release has hundreds of bug fixes, there are a few new features and there
    are many minor improvements.

    Vim9 classes
    Support for classes and objects in a Vim9 script are added.  This is described
    in |vim9-class|.  The following features are supported:
        - Defining classes and instantiating objects
        - Multiple constructors
        - Class variables and methods
        - Object variables and methods
        - Public and protected access for variables and methods
        - Constant and final object/class variables
        - Extending classes (single inheritance)
        - Interfaces
        - Abstract classes
        - Exporting classes

    Support for creating a type alias for an existing type is added.

    Virtual text
    Support for adding |virtual-text| to a buffer is added.  This is useful for
    language server features (e.g. inlay hints)

    Smooth Scroll
    Support for scrolling text using screen lines instead of file lines is added.
    Refer to the 'smoothscroll' option.

    The EditorConfig (|editorconfig-install|) and the JSON formatting
    (|ft-json-plugin|) plugins are included.

     OpenVMS x86_64 platform port:	http://www.polarhome.com/vim/

    						*new-other-9.1*
    Other improvements
    - Support for undercurl (|t_Ce|), double underline (|t_Us|), dotted underline
      (|t_ds|) and dashed underline (|t_Ds|) termcap entries and
      highlight modes (|highlight-term|).
    - The 'fillchars' option is now a global-local option and allows to
      specify the character used for the last window line.
    - The |:vertical| and |:horizontal| modifiers can be used with ":wincmd ="
      command to equalize windows vertically or horizontally.
    - |:defer| command to defer the execution of a function till the end of a
      function.
    - Support for closing a tab page using the middle mouse button.
    - Sound support in MacOS.
    - The |prop_remove()| function can now remove multiple text properties.
    - The |items()| function now supports a List or a String argument.
    - The |repeat()| function now supports blob repeat.
    - Command line completion support for |:runtime| command.
    - Support for custom completion using |getcompletion()|.
    - Command-line completion support for option values.
    - Support for multiple "%=" items in 'statusline'.
    - Support for the PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel
      highlight groups.
    - Text properties can override 'cursorline' highlight.
    - Support for echoing messages in a popup window |:echowindow|.
    - Control scroll behavior when splitting windows 'splitkeep'.
    - Support for mouse scrolling in the MS-Windows console.
    - Support for using different keyboard protocols 'keyprotocol'
      (xterm |modifyOtherKeys| and Kitty terminal protocol (CSI u) support).
    - Support for UTF-16 string index.
    - Quickfix list items can have associated custom user data.
    - |reverse()| supports reversing a string.
    - 'switchbuf' is used by more commands.
    - |undotree()| can be used with any buffer.
    - |printf()| supports positional arguments.
    - |col()|, |charcol()| and |virtcol()| can be used with different windows.
    - Support for Python3 stable ABI (|python-stable|).
    - Use |jumplist| like a stack 'jumpoptions'.
    - Support for writing extended attributes in Linux (|xattr|).
    - 'errorformat' supports parsing a buffer number ("%b").
    - Support for building the python interface using Python 3.12.
    - |matchaddpos()| is no longer limited to 8 positions.
    - |readblob()| allows to read part of a file.
    - 'shortmess' allows to suppress "scanning" messages.
    - Add the XChaCha20v2 encryption method 'cryptmethod'.
    - Add support for testing syntax files.
    - Support "**" for filename expansion with bash using globstar setting.
    - Add quadruple prime digraph using 4'.
    - Better high dpi support on Windows.
    - Various fixes for unsafe memory access, memory leaks, buffer overflows
      and potential crashes.
    - Termdebug: Support for the variables window (|termdebug_variables_window|),
      moving up/down the stack frames (|termdebug-frames|) and setting temporary
      breakpoints (|:Tbreak|).
    - xxd: support for using colors in the hex dump output (xxd -R).
    - xxd: reversing a bit dump (xxd -r).
    - xxd: customize the variable name used in the C include output (xxd -n).

    							*changed-9.1*
    Changed
    - The features |++builtin_terms|, |+cmdline_info|, |+cmdwin|, |+file_in_path|,
      |+float|, |+path_extra|, |+textobjects|, |+wildignore| and |+wildmenu| are
      available in all the builds.
    - Support for Windows-XP is dropped (starting with v9.0.0496)
    - Support for VisVim is removed.
    - The "small" and "big" builds are dropped in favor of "tiny" and "huge"
      builds.
    - Mention the detected 'keyprotocol' on ":verbose map" when listing mappings.
    - The optional Content-Type header is removed from the LSP messages.
    - |charidx()| returns the character length when the index is one more than the
      last byte index.
    - Ctrl-Q works like Ctrl-V in replace mode.
    - |popup_filter_menu()| now wraps around.
    - |popup_create()| now aborts on an error.
    - |g<End>| now jumps to the last non-blank character.
    - dot and hyphen are supported in highlight group names.
    - |executable()| resolves symlinks on MS-Windows.
    - Ruby 1.8 support is dropped.
    - 'ttyfast' is always set.
    - |virtcol2col()| returns the first byte for a multi-byte character.
    - |i_CTRL-O| resets Select Mode.
    - |mode()| returns more submodes.
    - r with CTRL-C on a visual area replaces using CTRL-C consistently.
    - The matchparen plugin no longer uses hard coded match id 3.
    - The Statusline no longer uses hard coded values "^" and "=" if the
      highlighting groups for the statusline have been cleared.
    - 'maxfuncdepth' setting is also used for the maximum callback depth.
    - Migrate to autoconf 2.71.
    - Start using C99 feature (declare variable in for loops).

    						*added-9.1*
    Added

    Various syntax, indent and other plugins were added.

    Functions:

    |err_teapot()|		produce error 418 or 503
    |getbufoneline()|	get a single line from the specified buffer
    |getcellwidths()|	get character cell width overrides
    |getmouseshape()|	get name of the current mouse shape
    |getscriptinfo()|	get list of sourced vim scripts
    |indexof()|		index in a List or Blob of a true expression
    |instanceof()|		check if a variable is an instance of a given class
    |keytrans()|		translate internal key codes to be usable with |:map|
    |popup_findecho()|	get window ID for popup used for |:echowindow|
    |setcmdline()|		set the current command line
    |strutf16len()|		number of UTF-16 code units in a string
    |swapfilelist()|	list of existing swap files in 'directory'
    |test_mswin_event()|	generate an MS-Windows event for testing
    |utf16idx()|		UTF-16 index of a byte in a string

    Autocommands:

    |TextChangedT|		after a change was made to the text in Terminal mode
    |WinResized|		after a window in the current tab page is resized

    Commands:

    |:abstract|		declare a Vim9 abstract class
    |:class|		start of a class declaration
    |:defer|		call function when current function is done
    |:echowindow|		same as :echomsg, but use a popup window
    |:endinterface|		end of an interface declaration
    |:endclass|		end of a class declaration
    |:horizontal|		following window command works horizontally
    |:interface|		start of an interface declaration
    |:public|		prefix for a class or object member
    |:static|		prefix for a class member or function
    |:this|			prefix for an object member
    |:type|			create a type alias

    Options:

    'endoffile'		write CTRL-Z at end of the file
    'jumpoptions'		specifies how jumping is done
    'keyprotocol'		what keyboard protocol to use for what terminal
    'lispoptions'		changes how Lisp indenting is done
    'showcmdloc'		where to show (partial) command
    'smoothscroll'		scroll by screen lines when 'wrap' is set
    'splitkeep'		determines scroll behavior for split windows

    ==============================================================================

    PATCHES						*patches-9.1* *bug-fixes-9.1*

    						*patches-after-9.0*

    The list of patches that got included since 9.0.0.  This includes all the new
    features, but does not include runtime file changes (syntax, indent, ftplugin,
    documentation, etc.)

    Note: authorship and the list of changed files is left out and only visible
    through `git log` for each commit.

    Patch 9.0.0001
    Problem:    Travis CI is no longer used.
    Solution:   Delete the Travis CI configuration. (Hugo Osvaldo Barrera,
                closes #10636)

    Patch 9.0.0002
    Problem:    Map functionality outside of map.c.
    Solution:   Move f_hasmapto() to map.c.  Rename a function. (closes #10611)

    Patch 9.0.0003
    Problem:    Functions are global while they could be local.
    Solution:   Add "static".  Add a few tests. (Yegappan Lakshmanan,
                closes #10612)

    Patch 9.0.0004
    Problem:    Plural messages not translated properly.
    Solution:   Use ngettext() in a few more places. (Matvey Tarasov,
                closes #10606)

    Patch 9.0.0005
    Problem:    Hare files are not recognized.
    Solution:   Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630)

    Patch 9.0.0006
    Problem:    Not all Visual Basic files are recognized.
    Solution:   Change detection of *.cls files. (Doug Kearns)

    Patch 9.0.0007
    Problem:    No support for double, dotted and dashed underlines.
    Solution:   Add the termcap entries and highlight modes. (closes #9553)

    Patch 9.0.0008
    Problem:    Cannot specify the variable name for "xxd -i".
    Solution:   Add the "-name" argument. (David Gow, closes #10599)

    Patch 9.0.0009
    Problem:    Going past the end of a menu item with only modifier.
    Solution:   Check for NUL.

    Patch 9.0.0010
    Problem:    Returning 0 for has('patch-9.0.0') is inconsistent.
    Solution:   Make it return 1. (closes #10640)

    Patch 9.0.0011
    Problem:    Reading beyond the end of the line with put command.
    Solution:   Adjust the end mark position.

    Patch 9.0.0012
    Problem:    Signature files not detected properly.
    Solution:   Add a function to better detect signature files. (Doug Kearns)

    Patch 9.0.0013
    Problem:    Reproducing memory access errors can be difficult.
    Solution:   When testing, copy each line to allocated memory, so that valgrind
                can detect accessing memory before and/or after it.  Fix uncovered
                problems.

    Patch 9.0.0014
    Problem:    Missing part of the test override change.
    Solution:   Add the missing part.

    Patch 9.0.0015
    Problem:    With EXITFREE defined terminal menus are not cleared.
    Solution:   Also clear terminal menus. Remove condition that is always true.
                (closes #10641)

    Patch 9.0.0016
    Problem:    Comparing line pointer for 'breakindent' is not reliable.
    Solution:   Make a copy of the line.

    Patch 9.0.0017
    Problem:    Accessing memory beyond the end of the line.
    Solution:   Stop Visual mode when closing a window.

    Patch 9.0.0018
    Problem:    Going over the end of the typeahead.
    Solution:   Put a NUL after the typeahead.

    Patch 9.0.0019
    Problem:    Timers test not run where possible.
    Solution:   Adjust platform checks. (closes #10645)

    Patch 9.0.0020
    Problem:    With some completion reading past end of string.
    Solution:   Check the length of the string.

    Patch 9.0.0021
    Problem:    Invalid memory access when adding word with a control character to
                the internal spell word list.
    Solution:   Disallow adding a word with control characters or a trailing
                slash.

    Patch 9.0.0022
    Problem:    Spell test fails.
    Solution:   Expect new error is given.

    Patch 9.0.0023
    Problem:    On Solaris timer_create() exists but does not work.
    Solution:   Adjust the configure check to run the test program.
                (closes #10647)

    Patch 9.0.0024
    Problem:    May access part of typeahead buf that isn't filled.
    Solution:   Check length of typeahead.

    Patch 9.0.0025
    Problem:    Accessing beyond allocated memory when using the cmdline window in
                Ex mode.
    Solution:   Use "*" instead of "'<,'>" for Visual mode.

    Patch 9.0.0026
    Problem:    Accessing freed memory with diff put.
    Solution:   Bail out when diff pointer is no longer valid.

    Patch 9.0.0027
    Problem:    The command line test is getting quite big.
    Solution:   Move command line window tests to a separate file.

    Patch 9.0.0028
    Problem:    MS-Windows: tests fail if there is a stray "runtime" directory.
    Solution:   Only use a "runtime" directory if it contains "defaults.vim".

    Patch 9.0.0029
    Problem:    The bitmaps/vim.ico file is not in the distribution.
    Solution:   Add it back to the distribution.  Adjust the build rules to have
                it end up in the right place.

    Patch 9.0.0030
    Problem:    Matchfuzzy test depends on path of current directory.
    Solution:   Use fnamemodify() to remove the path. (Robin Becker,
                closes #10650)

    Patch 9.0.0031
    Problem:    <cmod> of user command does not have correct verbose value.
    Solution:   Use the value from the command modifier. (closes #10651)

    Patch 9.0.0032
    Problem:    In the quickfix window 'cursorline' overrules QuickFixLine
                highlighting.
    Solution:   Combine the attributes.  Add a test. (closes #10654)

    Patch 9.0.0033
    Problem:    On a Belgian keyboard CTRL-[ does not work.
    Solution:   Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658)

    Patch 9.0.0034
    Problem:    Spell tests do not always clear the word list.
    Solution:   Clear the word list in TearDown(). (closes #10659)

    Patch 9.0.0035
    Problem:    Spell dump may go beyond end of an array.
    Solution:   Limit the word length.

    Patch 9.0.0036
    Problem:    'fillchars' cannot have window-local values.
    Solution:   Make 'fillchars' global-local. (closes #5206)

    Patch 9.0.0037
    Problem:    Build error.
    Solution:   Add missing change.

    Patch 9.0.0038
    Problem:    'listchars' test fails.
    Solution:   Use window-local value after setting the global value

    Patch 9.0.0039
    Problem:    Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka)
    Solution:   Add an #ifdef.

    Patch 9.0.0040
    Problem:    Use of set_chars_option() is confusing.
    Solution:   Add "apply" argument to store the result or not.  Merge similar
                code.

    Patch 9.0.0041
    Problem:    A couple of filetype patterns do not have "*" before "/etc".
    Solution:   Add the star. (Jonas Strittmatter, closes #10662)

    Patch 9.0.0042
    Problem:    Missing change for filetype detection.
    Solution:   Include change to detect guile from shebang line.

    Patch 9.0.0043
    Problem:    Insufficient testing for bracket commands.
    Solution:   Add a few more tests. (closes #10668)

    Patch 9.0.0044
    Problem:    Typos in comments, wrapping lines.
    Solution:   Adjust comments.  Wrap lines.

    Patch 9.0.0045
    Problem:    Reading past end of completion with a long line and 'infercase'
                set.
    Solution:   Allocate the string if needed.

    Patch 9.0.0046
    Problem:    Reading past end of completion with duplicate match.
    Solution:   Check string length

    Patch 9.0.0047
    Problem:    Using freed memory with recursive substitute.
    Solution:   Always make a copy for reg_prev_sub.

    Patch 9.0.0048
    Problem:    Cursor in wrong column with mouse click after concealed text.
    Solution:   Store the text column when drawing text.

    Patch 9.0.0049
    Problem:    Csv and tsv files are not recognized.
    Solution:   Add patterns for csv and tsv files. (Leandro Lourenci,
                closes #10680)

    Patch 9.0.0050
    Problem:    Split else-of is confusing.
    Solution:   Join the lines. (closes #10696)

    Patch 9.0.0051
    Problem:    Using CTRL-C with :append may hang Vim.
    Solution:   Reset got_int. (closes #10729, closes #10728)

    Patch 9.0.0052
    Problem:    "zG" may throw an error if invalid character follows.
    Solution:   Pass the word length to valid_spell_word(). (Ken Takata,
                closes #10737)

    Patch 9.0.0053
    Problem:    E1281 not tested with the old regexp engine.
    Solution:   Loop over the values of 'regexp'. (Dominique Pellé, closes #10695)

    Patch 9.0.0054
    Problem:    Compiler warning for size_t to int conversion.
    Solution:   Add type cast. (Mike Williams, closes #10741)

    Patch 9.0.0055
    Problem:    Bitbake files are not detected.
    Solution:   Add bitbake filetype detection by file name and contents. (Gregory
                Anders, closes #10697)

    Patch 9.0.0056
    Problem:    Wrong line number reported when :cexpr fails in :def function.
    Solution:   Set line_number before executing :cexpr. (closes #10735)

    Patch 9.0.0057
    Problem:    has('patch-xxx') returns true.
    Solution:   Check for digit. (closes #10751)

    Patch 9.0.0058
    Problem:    Win32: cannot test low level events.
    Solution:   Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan,
                closes #10679)

    Patch 9.0.0059
    Problem:    Test file has wrong name.
    Solution:   Rename the file.  Various small fixes. (closes #10674)

    Patch 9.0.0060
    Problem:    Accessing uninitialized memory when completing long line.
    Solution:   Terminate string with NUL.

    Patch 9.0.0061
    Problem:    ml_get error with nested autocommand.
    Solution:   Also check line numbers for a nested autocommand. (closes #10761)

    Patch 9.0.0062
    Problem:    Compiler warnings for signed/unsigned char.
    Solution:   Add type casts. (John Marriott)

    Patch 9.0.0063
    Problem:    Too many type casts for dict_get functions.
    Solution:   Change the key argument from "char_u *" to "char *".

    Patch 9.0.0064
    Problem:    Confusing error when using "q:" in command line window.
    Solution:   Check for the situation and give a better error message.
                (closes #10756)

    Patch 9.0.0065
    Problem:    Cross-compiling doesn't work because of timer_create check.
    Solution:   Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777)

    Patch 9.0.0066
    Problem:    Switching window unnecessarily when getting buffer options.
    Solution:   Do not switch window when getting buffer options. (closes #10767)

    Patch 9.0.0067
    Problem:    Cannot show virtual text.
    Solution:   Initial changes for virtual text support, using text properties.

    Patch 9.0.0068
    Problem:    Build fails with tiny features.
    Solution:   Add #ifdef.

    Patch 9.0.0069
    Problem:    Leaking memory when using text prop with inserted text.
    Solution:   Clear the growarray with text.

    Patch 9.0.0070
    Problem:    Using utfc_ptr2char_len() when length is negative.
    Solution:   Check value of length. (closes #10760)

    Patch 9.0.0071
    Problem:    Command overlaps with printed text in scrollback.
    Solution:   Clear until end-of-line and use correct message chunk.
                (closes #10765, closes #10764)

    Patch 9.0.0072
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize it. (John Marriott)

    Patch 9.0.0073
    Problem:    Too many files recognized as bsdl.
    Solution:   Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij,
                closes #10783)

    Patch 9.0.0074
    Problem:    Coverity warns for double free.
    Solution:   Reset cts_text_prop_count when freeing cts_text_props.

    Patch 9.0.0075
    Problem:    Some compilers warn for using an uninitialized variable. (Tony
                Mechelynck)
    Solution:   Initialize the variable.

    Patch 9.0.0076
    Problem:    No test for what patch 8.1.1424 fixes.
    Solution:   Add a test. (closes #10789)

    Patch 9.0.0077
    Problem:    When switching window in autocmd the restored cursor position may
                be wrong.
    Solution:   Do not restore the cursor if it was not set. (closes #10775)

    Patch 9.0.0078
    Problem:    Star register is changed when deleting and both "unnamed" and
                "unnamedplus" are in 'clipboard'.
    Solution:   Make the use of the star register work as documented. (Ernie Rael,
                closes #10669)

    Patch 9.0.0079
    Problem:    Error in autoload script not reported for 'foldexpr'.
    Solution:   Reset "emsg_off" when auto-loading a script. (closes #10685)

    Patch 9.0.0080
    Problem:    Compiler warning for size_t to int conversion.
    Solution:   Add type casts. (Mike Williams, closes #10795)

    Patch 9.0.0081
    Problem:    Command line completion of user command may have duplicates.
                (Dani Dickstein)
    Solution:   Skip global user command if an identical buffer-local one is
                defined. (closes #10797)

    Patch 9.0.0082
    Problem:    Cannot interrupt global command from command line.
    Solution:   Reset got_int in another place. (closes #10739)

    Patch 9.0.0083
    Problem:    ModeChanged event not triggered when leaving the cmdline window.
    Solution:   Call may_trigger_modechanged(). (closes #10791)

    Patch 9.0.0084
    Problem:    Using "terraform" filetype for .tfvars file is bad.
    Solution:   use "terraform-vars", so that different completion and other
                mechanisms can be used. (Radek Simko, closes #10755)

    Patch 9.0.0085
    Problem:    ":write" fails after ":file name" and the ":edit".
    Solution:   Reset BF_NOTEDITED when using ":edit". (closes #10790)

    Patch 9.0.0086
    Problem:    Tabline is not redrawn when entering command line.
    Solution:   Set "redraw_tabline". (closes #10771)

    Patch 9.0.0087
    Problem:    MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc.
    Solution:   Figure out what the key code means. (Anton Sharonov,
                closes #10687, closes #10454)

    Patch 9.0.0088
    Problem:    Pattern for detecting bitbake files is not sufficient.
    Solution:   Adjust the pattern. (Gregory Anders, closes #10743)

    Patch 9.0.0089
    Problem:    Fuzzy argument completion doesn't work for shell commands.
    Solution:   Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan,
                closes #10769)

    Patch 9.0.0090
    Problem:    No error when assigning bool to a string option with setwinvar().
    Solution:   Give an error (closes #10766)

    Patch 9.0.0091
    Problem:    Duplicate error number.
    Solution:   Use unique error number.

    Patch 9.0.0092
    Problem:    Plugins cannot change v:completed_item.
    Solution:   Make v:completed_item writeable. (Shougo Matsushita,
                closes #10801)

    Patch 9.0.0093
    Problem:    Sway config files are recognized as i3config.
    Solution:   Recognize swayconfig separately. (James Eapen, closes #10672)

    Patch 9.0.0094
    Problem:    Cursor restored unexpected with nested autocommand.
    Solution:   Do not restore the cursor when it was moved intentionally.
                (closes #10780)

    Patch 9.0.0095
    Problem:    Conditions are always true.
    Solution:   Remove useless conditions. (closes #10802)

    Patch 9.0.0096
    Problem:    Flag "new_value_alloced" is always true.
    Solution:   Remove "new_value_alloced". (closes #10792)

    Patch 9.0.0097
    Problem:    Long quickfix line is truncated for :clist.
    Solution:   Allocate a buffer if needed.

    Patch 9.0.0098
    Problem:    missing include file in timer_create configure check.
    Solution:   Include stdlib.h.

    Patch 9.0.0099
    Problem:    Scrollback can be wrong after redrawing the command line.
    Solution:   Clear unfinished scrollback when redrawing. (closes #10807)

    Patch 9.0.0100
    Problem:    Get hit-enter prompt for system() when '!' is in 'guioptions'.
    Solution:   Do not call wait_return() when not redrawing. (closes #3327)

    Patch 9.0.0101
    Problem:    Invalid memory access in diff mode with "dp" and undo.
    Solution:   Make sure the line number does not go below one.

    Patch 9.0.0102
    Problem:    Reading past end of line with insert mode completion.
    Solution:   Check text length.

    Patch 9.0.0103
    Problem:    If running configure with cached results -lrt may be missing.
    Solution:   Use two cache variables, one without and one with -lrt.
                (closes #10799)  Swap checks to avoid adding -lrt unnecessarily.

    Patch 9.0.0104
    Problem:    Going beyond allocated memory when evaluating string constant.
    Solution:   Properly skip over <Key> form.

    Patch 9.0.0105
    Problem:    Illegal memory access when pattern starts with illegal byte.
    Solution:   Do not match a character with an illegal byte.

    Patch 9.0.0106
    Problem:    Illegal byte regexp test doesn't fail when fix is reversed.
    Solution:   Make sure illegal bytes end up in sourced script file.

    Patch 9.0.0107
    Problem:    Condition always has the same value.
    Solution:   Remove the condition.

    Patch 9.0.0108
    Problem:    Configure check for timer_create may give wrong error.
    Solution:   Give a warning instead of an error.

    Patch 9.0.0109
    Problem:    Writing over the end of a buffer on stack when making list of
                spell suggestions.
    Solution:   Make sure suggested word is not too long. (closes #10812)

    Patch 9.0.0110
    Problem:    Help tag generation picks up words in code examples.
    Solution:   Skip over examples. (Carlo Teubner, closes #10813)

    Patch 9.0.0111
    Problem:    "nocombine" is missing from synIDattr().
    Solution:   Add "nocombine". (Muni Tanjim, closes #10816)

    Patch 9.0.0112
    Problem:    MS-Windows: test fails because file already exists.
    Solution:   Wait a little while until the file is gone.

    Patch 9.0.0113
    Problem:    has() is not strict about parsing the patch version.
    Solution:   Check the version more strictly. (Ken Takata, closes #10752)

    Patch 9.0.0114
    Problem:    The command line takes up space even when not used.
    Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
                closes #10675, closes #940)

    Patch 9.0.0115
    Problem:    When 'cmdheight' is zero pressing ':' may scroll a window.
    Solution:   Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero.

    Patch 9.0.0116
    Problem:    Virtual text not displayed if 'signcolumn' is "yes".
    Solution:   Set c_extra and c_final to NUL.

    Patch 9.0.0117
    Problem:    Text of removed textprop with text is not freed.
    Solution:   Free the text when the property is removed.  Reduce the array size
                to ignore NULLs at the end.

    Patch 9.0.0118
    Problem:    No test for what patch 9.0.0155 fixes.
    Solution:   Add a test. Fix typos.  (closes #10822)

    Patch 9.0.0119
    Problem:    Tiny chance that creating a backup file fails.
    Solution:   Check for EEXIST error. (Ken Takata, closes #10821)

    Patch 9.0.0120
    Problem:    MS-Windows GUI: cannot use AltGr + Space.
    Solution:   Check for VK_MENU instead of VK_LMENU. (Anton Sharonov,
                closes #10820, closes #10753)

    Patch 9.0.0121
    Problem:    Cannot put virtual text after or below a line.
    Solution:   Add "text_align" and "text_wrap" arguments.

    Patch 9.0.0122
    Problem:    Breakindent test fails.
    Solution:   Fix condition.

    Patch 9.0.0123
    Problem:    Cannot build with small features.
    Solution:   Add #ifdef.

    Patch 9.0.0124
    Problem:    Code has more indent than needed.
    Solution:   Use continue and return statements. (closes #10824)

    Patch 9.0.0125
    Problem:    Cursor positioned wrong with virtual text after the line.
    Solution:   Clear cts_with_trailing.

    Patch 9.0.0126
    Problem:    Expanding file names fails in directory with more than 255
                entries.
    Solution:   Use an int instead of char_u to count. (John Drouhard,
                closes #10818)

    Patch 9.0.0127
    Problem:    Unused variable.
    Solution:   Remove the variable. (closes #10829)

    Patch 9.0.0128
    Problem:    Coverity complains about possible double free.
    Solution:   Clear the pointer to avoid warnings.

    Patch 9.0.0129
    Problem:    Compiler warning for int/size_t usage.
    Solution:   Add a type cast. (Mike Williams, closes #10830)

    Patch 9.0.0130
    Problem:    Cursor position wrong when inserting around virtual text.
    Solution:   Update the cursor position properly.

    Patch 9.0.0131
    Problem:    Virtual text with Tab is not displayed correctly.
    Solution:   Change any Tab to a space.

    Patch 9.0.0132
    Problem:    Multi-byte characters in virtual text not handled correctly.
    Solution:   Count screen cells instead of bytes.

    Patch 9.0.0133
    Problem:    Virtual text after line moves to joined line. (Yegappan
                Lakshmanan)
    Solution:   When joining lines only keep virtual text after the last line.

    Patch 9.0.0134
    Problem:    No test for text property with column zero.
    Solution:   Add a test.  Add message to assert for no open popups.

    Patch 9.0.0135
    Problem:    Comment about tabpage line above the wrong code.
    Solution:   Move the comment. (closes #10836)

    Patch 9.0.0136
    Problem:    After CTRL-Left-mouse click a mouse scroll also has CTRL.
    Solution:   Reset orig_mouse_code also for wheel events. (closes #10840)

    Patch 9.0.0137
    Problem:    Debugger test may fail when $CWD is very long.
    Solution:   Skip the test if the directory name is too long. (James McCoy,
                closes #10837)

    Patch 9.0.0138
    Problem:    Not enough characters accepted for 'spellfile'.
    Solution:   Add vim_is_fname_char() and use it for 'spellfile'.

    Patch 9.0.0139
    Problem:    Truncating virtual text after a line not implemented.
                Cursor positioning wrong with Newline in the text.
    Solution:   Implement truncating.  Disallow control characters in the text.
                (closes #10842)

    Patch 9.0.0140
    Problem:    execute() does not use the "legacy" command modifier.
    Solution:   pass the command modifier in sticky_cmdmod_flags. (Kota Kato,
                closes #10845)

    Patch 9.0.0141
    Problem:    "delmenu" does not remove autocommands. Running menu test function
                alone fails.
    Solution:   Delete autocommands Make sure there is at least one menu.
                (closes #10848)

    Patch 9.0.0142
    Problem:    Crash when adding and removing virtual text. (Ben Jackson)
    Solution:   Check that the text of the text property still exists.

    Patch 9.0.0143
    Problem:    Cursor positioned after virtual text in empty line.
    Solution:   Keep cursor in the first column. (closes #10786)

    Patch 9.0.0144
    Problem:    Text property cannot override 'cursorline' highlight.
    Solution:   Add the "override" flag to prop_type_add(). (closes #5533,
                closes #8225).

    Patch 9.0.0145
    Problem:    Substitute that joins lines drops text properties.
    Solution:   Move text properties of the last line to the new line.

    Patch 9.0.0146
    Problem:    Missing part of change for "override" flag.
    Solution:   Add the missing change.

    Patch 9.0.0147
    Problem:    Cursor positioned wrong after two text properties with virtual
                text and "below" alignment. (Tim Pope)
    Solution:   Do not stop after a text property using MAXCOL. (closes #10849)

    Patch 9.0.0148
    Problem:    A "below" aligned text property gets 'showbreak' displayed.
    Solution:   Do not use 'showbreak' before or in virtual text. (issue #10851)

    Patch 9.0.0149
    Problem:    Test for fuzzy completion fails sometimes.
    Solution:   Use a more specific file name to minimize the chance of matching a
                random directory name. (closes #10854)

    Patch 9.0.0150
    Problem:    Error for using #{ in an expression is a bit confusing.
    Solution:   Mention that this error is only given for an expression.
                Avoid giving the error more than once. (closes #10855)

    Patch 9.0.0151
    Problem:    A "below" aligned text property does not work with 'nowrap'.
    Solution:   Start a new screen line to display the virtual text.
                (closes #10851)

    Patch 9.0.0152
    Problem:    Warning for unused argument in small build.
    Solution:   Add "UNUSED".

    Patch 9.0.0153
    Problem:    No fold and sign column for virtual text with "below" align and
                'nowrap'.
    Solution:   Go back to draw state WL_START when moving to the next line.
                (closes #10851)

    Patch 9.0.0154
    Problem:    Text properties wrong after splitting a line.
    Solution:   Check for text properties after the line. (closes #10857)

    Patch 9.0.0155

    Patch 9.0.0156
    Problem:    Giving E1170 only in an expression is confusing.
    Solution:   Give E1170 for any "#{ comment". (closes #10855)

    Patch 9.0.0157
    Problem:    'showbreak' displayed below truncated "after" text prop.
    Solution:   Suppress 'showbreak' when "after" prop doesn't wrap.

    Patch 9.0.0158
    Problem:    With 'nowrap' "below" property not displayed correctly.
    Solution:   Adjust virtual text with 'nowrap', do not truncate.

    Patch 9.0.0159
    Problem:    Cannot build with small features.
    Solution:   Check for E1170 only with FEAT_EVAL.

    Patch 9.0.0160
    Problem:    Some diff mode tests fail.
    Solution:   Only advance "ptr" when a text property follows.

    Patch 9.0.0161
    Problem:    Warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize line_attr_save.

    Patch 9.0.0162
    Problem:    Text property "below" gets indent if 'breakindent' is set. (Tim
                Pope)
    Solution:   Do not put indent before text property. (closes #10859)

    Patch 9.0.0163
    Problem:    Text property not adjusted for text inserted with "p".
    Solution:   Adjust column and length of text properties.

    Patch 9.0.0164
    Problem:    Using freed memory with put command.
    Solution:   Get byte offset before replacing the line.

    Patch 9.0.0165
    Problem:    Looking up a text property type by ID is slow.
    Solution:   Keep an array of property types sorted on ID.

    Patch 9.0.0166
    Problem:    When using text properties the line text length is computed twice.
    Solution:   If the text length was already computed don't do it again.

    Patch 9.0.0167
    Problem:    Checking for text properties could be a bit more efficient.
    Solution:   Return early when there are no text properties.  Update TODO
                items.

    Patch 9.0.0168
    Problem:    Cursor positioned wrong with two virtual text properties close
                together. (Ben Jackson)
    Solution:   Add the original size, not the computed one. (closes #10864)

    Patch 9.0.0169
    Problem:    Insufficient testing for line2byte() with text properties.
    Solution:   Add tests with a lot of text.

    Patch 9.0.0170
    Problem:    Various minor code formatting issues.
    Solution:   Improve code formatting.

    Patch 9.0.0171
    Problem:    Quickfix line highlight is overruled by 'cursorline'.
    Solution:   Reverse the combination of attributes. (closes #10654)

    Patch 9.0.0172
    Problem:    Trying to allocate zero bytes.
    Solution:   Do not allocate the proptype array when there are none.
                (closes #10867)

    Patch 9.0.0173
    Problem:    Assert fails only on MS-Windows.
    Solution:   Disable the assert for now.

    Patch 9.0.0174
    Problem:    No error for using "#{ comment" in a compiled function.
    Solution:   Make error checking for "#{" consistent. (closes #10855)

    Patch 9.0.0175
    Problem:    Spell checking for capital not working with trailing space.
    Solution:   Do not calculate cap_col at the end of the line. (Christian
                Brabandt, closes #10870, issue #10838)

    Patch 9.0.0176
    Problem:    Checking character options is duplicated and incomplete.
    Solution:   Move checking to check_chars_options(). (closes #10863)

    Patch 9.0.0177
    Problem:    Cursor position wrong with 'virtualedit' and mouse click after end
                of the line. (Hermann Mayer)
    Solution:   Do not use ScreenCols[] when 'virtualedit' is active.
                (closes #10868)

    Patch 9.0.0178
    Problem:    Cursor position wrong with virtual text before Tab.
    Solution:   Use the byte length, not the cell with, to compare the column.
                Correct tab size after text prop. (closes #10866)

    Patch 9.0.0179
    Problem:    Cursor position wrong with wrapping virtual text in empty line.
    Solution:   Adjust handling of an empty line. (closes #10875)

    Patch 9.0.0180
    Problem:    Stray logfile appears when running tests.
    Solution:   Remove ch_logfile() calls.

    Patch 9.0.0181
    Problem:    Textprop test with line2byte() fails on MS-Windows.
    Solution:   Fix updating chunks in ml_delete_int().

    Patch 9.0.0182
    Problem:    Quarto files are not recognized.
    Solution:   Recognize quarto files by the extension. (Jonas Strittmatter,
                closes #10880)

    Patch 9.0.0183
    Problem:    Extra space after virtual text when 'linebreak' is set.
    Solution:   Do not count virtual text when getting linebreak value.
                (closes #10884)

    Patch 9.0.0184
    Problem:    Virtual text prop highlight continues after truncation.
    Solution:   Recompute the length of attributes.

    Patch 9.0.0185
    Problem:    Virtual text does not show if there is a text prop at same
                position. (Ben Jackson)
    Solution:   Fix the sorting of properties. (closes #10879)

    Patch 9.0.0186
    Problem:    Virtual text without highlighting does not show. (Ben Jackson)
    Solution:   Use a text property when it has highlighting or when it has text.
                (closes #10878)

    Patch 9.0.0187
    Problem:    Command line height changes when maximizing window height.
    Solution:   Do not change the command line height. (closes #10885)

    Patch 9.0.0188
    Problem:    Strange effects when using virtual text with "text_align" and
                non-zero column. (Martin Tournoij)
    Solution:   Give an error. (closes #10888)

    Patch 9.0.0189
    Problem:    Invalid memory access for text prop without highlight.
    Solution:   Check for a valid highlight ID.

    Patch 9.0.0190
    Problem:    The way 'cmdheight' can be made zero is inconsistent.
    Solution:   Only make 'cmdheight' zero when setting it explicitly, not when
                resizing windows. (closes #10890)

    Patch 9.0.0191
    Problem:    Messages test fails; window size incorrect when 'cmdheight' is
                made smaller.
    Solution:   Properly cleanup after test with cmdheight zero.  Resize windows
                correctly when 'cmdheight' gets smaller.

    Patch 9.0.0192
    Problem:    Possible invalid memory access when 'cmdheight' is zero. (Martin
                Tournoij)
    Solution:   Avoid going over the end of w_lines[] when w_height is Rows.
                (closes #10882)

    Patch 9.0.0193
    Problem:    Search and match highlight interfere with virtual text highlight.
                (Ben Jackson)
    Solution:   Check for match highlight after text properties.  Reset and
                restore search highlight when showing virtual text.
                (closes #10892)

    Patch 9.0.0194
    Problem:    Cursor displayed in wrong position after removing text prop. (Ben
                Jackson)
    Solution:   Invalidate the cursor position. (closes #10898)

    Patch 9.0.0195
    Problem:    Metafun files are not recognized.
    Solution:   Add filetype detection patterns.

    Patch 9.0.0196
    Problem:    Finding value in list may require a for loop.
    Solution:   Add indexof(). (Yegappan Lakshmanan, closes #10903)

    Patch 9.0.0197
    Problem:    Astro files are not detected.
    Solution:   Add a pattern to match Astro files. (Emilia Zapata, closes #10904)

    Patch 9.0.0198
    Problem:    ml_get error when switching buffer in Visual mode.
    Solution:   End Visual mode when switching buffer. (closes #10902)

    Patch 9.0.0199
    Problem:    Cursor position wrong with two right-aligned virtual texts.
    Solution:   Add the padding for right-alignment. (issue #10906)

    Patch 9.0.0200
    Problem:    cursor in a wrong position if 'wrap' is off and using two right
                aligned text props in one line.
    Solution:   Count an extra line for a right aligned text property after a
                below or right aligned text property. (issue #10909)

    Patch 9.0.0201
    Problem:    CursorLine highlight overrules virtual text highlight.
    Solution:   Let extra attribute overrule line attribute. (closes #10909)

    Patch 9.0.0202
    Problem:    Code and help for indexof() is not ideal.
    Solution:   Refactor the code, improve the help. (Yegappan Lakshmanan,
                closes #10908)

    Patch 9.0.0203
    Problem:    Confusing variable name.
    Solution:   Use "prim_aep" instead of "spell_aep".

    Patch 9.0.0204
    Problem:    indexof() may leak memory.
    Solution:   Free allocated values. (Yegappan Lakshmanan, closes #10916)

    Patch 9.0.0205
    Problem:    Cursor in wrong position when inserting after virtual text. (Ben
                Jackson)
    Solution:   Put the cursor after the virtual text, where the text will be
                inserted. (closes #10914)

    Patch 9.0.0206
    Problem:    Redraw flags are not named specifically.
    Solution:   Prefix "UPD_" to the flags, for UPDate_screen().

    Patch 9.0.0207
    Problem:    Stacktrace not shown when debugging.
    Solution:   Set msg_scroll in msg_source(). (closes #10917)

    Patch 9.0.0208
    Problem:    The override flag has no effect for virtual text. (Ben Jackson)
    Solution:   Make the override flag work. (closes #10915)

    Patch 9.0.0209
    Problem:    Build error with small features.
    Solution:   Add #ifdef.

    Patch 9.0.0210
    Problem:    'list' mode does not work properly with virtual text.
    Solution:   Show the "$" at the right position. (closes #10913)

    Patch 9.0.0211
    Problem:    Invalid memory access when compiling :lockvar.
    Solution:   Don't read past the end of the line.

    Patch 9.0.0212
    Problem:    Invalid memory access when compiling :unlet.
    Solution:   Don't read past the end of the line.

    Patch 9.0.0213
    Problem:    Using freed memory with error in assert argument.
    Solution:   Make a copy of the error.

    Patch 9.0.0214
    Problem:    Splitting a line may duplicate virtual text. (Ben Jackson)
    Solution:   Don't duplicate a text property with virtual text. Make
                auto-indenting work better. (closes #10919)

    Patch 9.0.0215
    Problem:    Not passing APC_INDENT flag.
    Solution:   Pass the flag where it's needed.

    Patch 9.0.0216
    Problem:    Undo earlier test sometimes fails on MS-Windows.
    Solution:   Use another file name.

    Patch 9.0.0217
    Problem:    'shellslash' works differently when sourcing a script again.
    Solution:   Use the name from the script item. (closes #10920)

    Patch 9.0.0218
    Problem:    Reading before the start of the line.
    Solution:   When displaying "$" check the column is not negative.

    Patch 9.0.0219
    Problem:    Cannot make a funcref with "s:func" in a def function in legacy
                script.
    Solution:   Allow for using a lower case function name after "s:". (Kota Kato,
                closes #10926)

    Patch 9.0.0220
    Problem:    Invalid memory access with for loop over NULL string.
    Solution:   Make sure mb_ptr2len() consistently returns zero for NUL.

    Patch 9.0.0221
    Problem:    Accessing freed memory if compiling nested function fails.
    Solution:   Mess up the variable name so that it won't be found.

    Patch 9.0.0222
    Problem:    No good reason why text objects are only in larger builds.
    Solution:   Graduate +textobjects.

    Patch 9.0.0223
    Problem:    Typo in diffmode test.
    Solution:   Fix the typo. (closes #10932)

    Patch 9.0.0224
    Problem:    Using NULL pointer when skipping compiled code.
    Solution:   Check for skipping.

    Patch 9.0.0225
    Problem:    Using freed memory with multiple line breaks in expression.
    Solution:   Free eval_tofree later.

    Patch 9.0.0226
    Problem:    job_start() test may fail under valgrind.
    Solution:   Wait until the job is running.

    Patch 9.0.0227
    Problem:    Cannot read error message when abort() is called.
    Solution:   Output a newline before calling abort().

    Patch 9.0.0228
    Problem:    Crash when pattern looks below the last line.
    Solution:   Consider invalid lines to be empty. (closes #10938)

    Patch 9.0.0229
    Problem:    Vim9: error message for missing type is not clear.
    Solution:   Mention the context. (issue #10944)

    Patch 9.0.0230
    Problem:    No error for comma missing in list in :def function.
    Solution:   Check for missing comma. (closes #10943)

    Patch 9.0.0231
    Problem:    Expanding "**" may loop forever with directory links.
    Solution:   Check for being interrupted. (closes #10946)

    Patch 9.0.0232
    Problem:    Test with BufNewFile autocmd is flaky.
    Solution:   Use another file name.

    Patch 9.0.0233
    Problem:    Removing multiple text properties takes many calls.
    Solution:   Pass a list to prop_remove(). (Ben Jackson, closes #10945)

    Patch 9.0.0234
    Problem:    Cannot make difference between the end of :normal and a character
                in its argument.
    Solution:   Add the "typebuf_was_empty" flag. (closes #10950)

    Patch 9.0.0235
    Problem:    'autoshelldir' does not work with chunked response.
    Solution:   Collect chunks before parsing OSC 7. (closes #10949)

    Patch 9.0.0236
    Problem:    Popup menu not removed when 'wildmenu' reset while it is visible.
    Solution:   Do not check p_wmnu, only pum_visible(). (closes #10953)

    Patch 9.0.0237
    Problem:    Mac: cannot build if dispatch.h is not available.
    Solution:   Add #ifdef. (Evan Miller, closes #10954)

    Patch 9.0.0238
    Problem:    Shift-Tab shows matches on cmdline when 'wildmenu' is off.
    Solution:   Only show matches when 'wildmode' contains "list". (closes #10951)

    Patch 9.0.0239
    Problem:    Build failure without the +wildmenu feature.
    Solution:   Move parenthesis.

    Patch 9.0.0240
    Problem:    Crash when using ":mkspell" with an empty .dic file.
    Solution:   Check for an empty word tree.

    Patch 9.0.0241
    Problem:    "make install" does not install shared syntax file. (James McCoy)
    Solution:   Install and uninstall the shared syntax files. (closes #10956)

    Patch 9.0.0242
    Problem:    "make install" still fails. (Wilhelm Payne)
    Solution:   Also add the directory to installrtbase. (Dominique Pellé)

    Patch 9.0.0243
    Problem:    Text properties "below" sort differently on MS-Windows.
    Solution:   Use the ID as a tie breaker. (closes #10958)

    Patch 9.0.0244
    Problem:    Cannot easily get the list of sourced scripts.
    Solution:   Add the getscriptinfo() function. (Yegappan Lakshmanan,
                closes #10957)

    Patch 9.0.0245
    Problem:    Mechanism to prevent recursive screen updating is incomplete.
    Solution:   Add "redraw_not_allowed" and set it in build_stl_str_hl().
                (issue #10952)

    Patch 9.0.0246
    Problem:    Using freed memory when 'tagfunc' deletes the buffer.
    Solution:   Make a copy of the tag name.

    Patch 9.0.0247
    Problem:    Cannot add padding to virtual text without highlight.
    Solution:   Add the "text_padding_left" argument. (issue #10906)

    Patch 9.0.0248
    Problem:    Duplicate code in finding a script in the execution stack.
    Solution:   Reduce duplicate code. (closes #10961)

    Patch 9.0.0249
    Problem:    No test for what 9.0.0234 fixes.
    Solution:   Add a test. (issue #10950)

    Patch 9.0.0250
    Problem:    Slightly inconsistent error messages.
    Solution:   Make it "Using a Float". (closes #10959)

    Patch 9.0.0251
    Problem:    Test output shows up in git.
    Solution:   Ignore the "failed" directory. (Yao-Ching Huang, closes #10969)

    Patch 9.0.0252
    Problem:    Cursor in wrong place after virtual text.
    Solution:   Do not change the length of a virtual text property.
                (closes #10964)

    Patch 9.0.0253
    Problem:    A symlink to an autoload script results in two entries in the list
                of scripts, items expected in one are actually in the other.
    Solution:   Have one script item refer to the actually sourced one.
                (closes #10960)

    Patch 9.0.0254
    Problem:    Typo in function name.
    Solution:   Rename the function. (closes #10971)

    Patch 9.0.0255
    Problem:    Build failure without the eval feature.
    Solution:   Add #ifdef.

    Patch 9.0.0256
    Problem:    Compiler warning for uninitialized variables.
    Solution:   Initialize the variables.

    Patch 9.0.0257
    Problem:    "->" in ":scriptnames" output not tested yet.
    Solution:   Add a check.

    Patch 9.0.0258
    Problem:    MS-Windows installer skips syntax/shared.
    Solution:   Use "File /r" in the installer script. (Ken Takata, closes #10972)

    Patch 9.0.0259
    Problem:    Crash with mouse click when not initialized.
    Solution:   Check TabPageIdxs[] is not NULL.

    Patch 9.0.0260
    Problem:    Using freed memory when using 'quickfixtextfunc' recursively.
    Solution:   Do not allow for recursion.

    Patch 9.0.0261
    Problem:    bufload() reads a file even if the name is not a file name. (Cyker
                Way)
    Solution:   Do not read the file when the buffer name is not a file name.
                (closes #10975)

    Patch 9.0.0262
    Problem:    Build failure without the +quickfix feature.
    Solution:   Add #ifdef.

    Patch 9.0.0263
    Problem:    Too many #ifdefs.
    Solution:   Make some functions always available.

    Patch 9.0.0264
    Problem:    CI still runs on Ubuntu 18.04.
    Solution:   Run CI on Ubuntu 20.04. (closes #10582)

    Patch 9.0.0265
    Problem:    No good reason why the "gf" command is not in the tiny version.
    Solution:   Graduate the file_in_path feature.

    Patch 9.0.0266
    Problem:    Compiler warning for unused argument.
    Solution:   Add UNUSED.

    Patch 9.0.0267
    Problem:    Coverity workflow still uses Ubuntu 18.04.
    Solution:   Use Ubuntu 20.04

    Patch 9.0.0268
    Problem:    Build error without the +eval feature.
    Solution:   Remove #ifdef.

    Patch 9.0.0269
    Problem:    getscriptinfo() does not include the version.  Cannot select
                entries by script name.
    Solution:   Add the "version" item and the "name" argument. (Yegappan
                Lakshmanan, closes #10962)

    Patch 9.0.0270
    Problem:    Some values of 'path' and 'tags' do not work in the tiny version.
    Solution:   Graduate the +path_extra feature.

    Patch 9.0.0271
    Problem:    Using INIT() in non-header files.
    Solution:   Remove INIT(). (closes #10981)

    Patch 9.0.0272
    Problem:    BufReadCmd not triggered when loading a "nofile" buffer. (Maxim
                Kim)
    Solution:   Call readfile() but bail out before reading a file.
                (closes #10983)

    Patch 9.0.0273
    Problem:    Konsole termresponse not recognized.
    Solution:   Handle Konsole like libvterm, set 'ttymouse' to "sgr".
                (closes #10990)

    Patch 9.0.0274
    Problem:    Netrw plugin does not show remote files.
    Solution:   Do read a file when 'buftype' is "acwrite". (closes #10983)

    Patch 9.0.0275
    Problem:    BufEnter not triggered when using ":edit" in "nofile" buffer.
    Solution:   Let readfile() return NOTDONE. (closes #10986)

    Patch 9.0.0276
    Problem:    'buftype' values not sufficiently tested.
    Solution:   Add and extend tests with 'buftype' values. (closes #10988)

    Patch 9.0.0277
    Problem:    Coverity CI: update-alternatives not needed with Ubuntu 20.04.
    Solution:   Remove update-alternatives for Lua. (closes #10987)

    Patch 9.0.0278
    Problem:    The +wildignore feature is nearly always available.
    Solution:   Graduate +wildignore for consistency.

    Patch 9.0.0279
    Problem:    The tiny version has the popup menu but not 'wildmenu'.
    Solution:   Graduate the wildmenu feature.

    Patch 9.0.0280
    Problem:    The builtin termcap list depends on the version.
    Solution:   Always include all termcap entries.  Remove duplicate lines.

    Patch 9.0.0281
    Problem:    Build failure without the +eval feature.
    Solution:   Add #ifdef.

    Patch 9.0.0282
    Problem:    A nested timeout stops the previous timeout.
    Solution:   Ignore any nested timeout.

    Patch 9.0.0283
    Problem:    Cannot complete "syn list @cluster".
    Solution:   Recognize and handle "list @". (Björn Linse, closes #10990)

    Patch 9.0.0284
    Problem:    Using static buffer for multiple completion functions.
    Solution:   Use one buffer in expand_T.

    Patch 9.0.0285
    Problem:    It is not easy to change the command line from a plugin.
    Solution:   Add setcmdline(). (Shougo Matsushita, closes #10869)

    Patch 9.0.0286
    Problem:    Using freed memory when location list changed in autocmd.
    Solution:   Return QF_ABORT and handle it. (Yegappan Lakshmanan,
                closes #10993)

    Patch 9.0.0287
    Problem:    Irix systems no longer exist.
    Solution:   Remove references to Irix. (Yegappan Lakshmanan, closes #10994)

    Patch 9.0.0288
    Problem:    When 'cmdheight' is zero some messages are not displayed.
    Solution:   Use a popup notification window.

    Patch 9.0.0289
    Problem:    Invalid memory write.
    Solution:   Do not put NUL in a static string.

    Patch 9.0.0290
    Problem:    Compiler warning for variable set but not used.
    Solution:   Add #ifdef.

    Patch 9.0.0291
    Problem:    Test failing.
    Solution:   Run test with cmdheight=0 last.

    Patch 9.0.0292
    Problem:    Test causes another test to fail.
    Solution:   Redraw to remove the popup window

    Patch 9.0.0293
    Problem:    Messages window not hidden when starting a command line.
    Solution:   Hide the messages window. (closes #10996)

    Patch 9.0.0294
    Problem:    Crash when 'cmdheight' is 0 and popup_clear() used.
    Solution:   Reset "message_win" when the message popup is cleared.  Close the
                popup when 'cmdheight' is non-zero.  Add a screendump test.

    Patch 9.0.0295
    Problem:    GUI drop files test sometimes fails.
    Solution:   Mark the test as flaky.

    Patch 9.0.0296
    Problem:    Message in popup is shortened unnecessary.
    Solution:   Do not use 'showcmd' and 'ruler' for a message in the popup.
                Set the timer when unhiding the message popup.

    Patch 9.0.0297
    Problem:    Cursor position wrong after right aligned virtual text. (Iizuka
                Masashi)
    Solution:   Take the width of the column offset into account. (closes #10997)
                Also fix virtual text positioning.

    Patch 9.0.0298
    Problem:    Compiler warning for size_t to int conversion.
    Solution:   Add a type cast. (Wilhelm Payne, closes #11000)

    Patch 9.0.0299
    Problem:    Error messages for setcmdline() could be better.
    Solution:   Use more specific error messages. (Yegappan Lakshmanan,
                closes #10995)

    Patch 9.0.0300
    Problem:    'cpoptions' tests are flaky.
    Solution:   Use a different file name for each test.

    Patch 9.0.0301
    Problem:    The message window popup is delayed after an error message.
    Solution:   Do not set emsg_on_display when using the message window.

    Patch 9.0.0302
    Problem:    CI for Coverity is bothered by deprecation warnings.
    Solution:   Ignore deprecation warnings. (closes #11002)

    Patch 9.0.0303
    Problem:    It is not easy to get information about a script.
    Solution:   Make getscriptinfo() return the version.  When selecting a specific
                script return functions and variables. (Yegappan Lakshmanan,
                closes #10991)

    Patch 9.0.0304
    Problem:    WinScrolled is not triggered when only skipcol changes.
    Solution:   Add w_last_skipcol and use it. (closes #10998)

    Patch 9.0.0305
    Problem:    CI lists useless deprecation warnings.
    Solution:   Ignore deprecation warnings. (closes #11003)

    Patch 9.0.0306
    Problem:    Buffer write message is two lines in message popup window.
    Solution:   Overwrite message if "msg_scroll" is off.

    Patch 9.0.0307
    Problem:    :echomsg doesn't work properly with cmdheight=0.
    Solution:   Improve scrolling and displaying.

    Patch 9.0.0308
    Problem:    When cmdheight is zero the attention prompt doesn't show.
    Solution:   Do not use the message window for a prompt.

    Patch 9.0.0309
    Problem:    Invalid memory access when cmdheight is zero.
    Solution:   Check index in w_lines is smaller than Rows.

    Patch 9.0.0310
    Problem:    Output of :messages disappears when cmdheight is zero.
    Solution:   Do not use the messages window for :messages.  Make Esc close the
                messages window.

    Patch 9.0.0311
    Problem:    Test for hit-Enter prompt fails.
    Solution:   Only reset cmdline_row when 'cmdheight' is zero.

    Patch 9.0.0312
    Problem:    Test for cmdheight zero fails.
    Solution:   Do not close the messages window for CTRL-C.

    Patch 9.0.0313
    Problem:    Using common name in tests leads to flaky tests.
    Solution:   Rename files and directories to be more specific.

    Patch 9.0.0314
    Problem:    VDM files are not recognized.
    Solution:   Add patterns for VDM files. (Alessandro Pezzoni, closes #11004)

    Patch 9.0.0315
    Problem:    Shell command is displayed in message window.
    Solution:   Do not echo the shell command in the message window.

    Patch 9.0.0316
    Problem:    Screen flickers when 'cmdheight' is zero.
    Solution:   Redraw over existing text instead of clearing.

    Patch 9.0.0317
    Problem:    When updating the whole screen a popup may not be redrawn.
    Solution:   Mark the screen and windows for redraw also when not clearing.
                Also mark popup windows for redraw.

    Patch 9.0.0318
    Problem:    Clearing screen causes flicker.
    Solution:   Do not clear but redraw in more cases.  Add () to "wait_return".

    Patch 9.0.0319
    Problem:    Godot shader files are not recognized.
    Solution:   Add patterns for "gdshader". (Maxim Kim, closes #11006)

    Patch 9.0.0320
    Problem:    Command line type of CmdlineChange differs from getcmdtype().
    Solution:   Use the same type. (closes #11005)

    Patch 9.0.0321
    Problem:    Cannot use the message popup window directly.
    Solution:   Add ":echowindow".

    Patch 9.0.0322
    Problem:    Crash when no errors and 'quickfixtextfunc' is set.
    Solution:   Do not handle errors if there aren't any.

    Patch 9.0.0323
    Problem:    Using common name in tests leads to flaky tests.
    Solution:   Rename files and directories to be more specific.

    Patch 9.0.0324
    Problem:    MS-Windows: resolve() test fails.
    Solution:   Revert renaming the directory.

    Patch 9.0.0325
    Problem:    MS-Windows: completion test fails.
    Solution:   Adjust directory prefix.

    Patch 9.0.0326
    Problem:    Some changes for cmdheight=0 are not needed.
    Solution:   Revert resize behavior if height is greater than the available
                space. (Shougo Matsushita, closes #11008)

    Patch 9.0.0327
    Problem:    items() does not work on a list. (Sergey Vlasov)
    Solution:   Make items() work on a list. (closes #11013)

    Patch 9.0.0328
    Problem:    OLD_DIGRAPHS is unused.
    Solution:   Remove OLD_DIGRAPHS.  Also drop HPUX_DIGRAPHS.

    Patch 9.0.0329
    Problem:    ":highlight" hangs when 'cmdheight' is zero.
    Solution:   Add to msg_col when using the message window. (closes #11014)

    Patch 9.0.0330
    Problem:    Method tests fail.
    Solution:   Adjust for change of items().

    Patch 9.0.0331
    Problem:    Cannot use items() on a string.
    Solution:   Make items() work on a string. (closes #11016)

    Patch 9.0.0332
    Problem:    Overwrite check may block BufWriteCmd.
    Solution:   Do not use overwrite check when 'buftype' is "acwrite".
                (closes #11011)

    Patch 9.0.0333
    Problem:    Method test fails.
    Solution:   Adjust test for items() now working on string.

    Patch 9.0.0334
    Problem:    Test does not properly clean up.
    Solution:   Fix typo in argument of delete(). (Dominique Pellé, closes #11010)

    Patch 9.0.0335
    Problem:    Checks for Dictionary argument often give a vague error message.
    Solution:   Give a useful error message. (Yegappan Lakshmanan, closes #11009)

    Patch 9.0.0336
    Problem:    Tests are flaky because of using a common file name.
    Solution:   Rename files and directories to be more unique.

    Patch 9.0.0337
    Problem:    Flicker when resetting cmdline_row after updating the screen.
    Solution:   Do not update cmdline_row. (issue #11017)

    Patch 9.0.0338
    Problem:    Return value of list_append_list() not always checked.
    Solution:   Check return value and handle failure.

    Patch 9.0.0339
    Problem:    No check if the return value of XChangeGC() is NULL.
    Solution:   Only use the return value when it is not NULL. (closes #11020)

    Patch 9.0.0340
    Problem:    The 'cmdheight' zero support causes too much trouble.
    Solution:   Revert support for 'cmdheight' being zero.

    Patch 9.0.0341
    Problem:    mapset() does not restore <Nop> mapping properly.
    Solution:   Use an empty string for <Nop>. (closes #11022)

    Patch 9.0.0342
    Problem:    ":wincmd =" equalizes in two directions.
    Solution:   Make ":vertical wincmd =" equalize vertically only and
                ":horizontal wincmd =" equalize horizontally only.

    Patch 9.0.0343
    Problem:    ColorScheme autocommand triggered when colorscheme is not found.
                (Romain Lafourcade)
    Solution:   Only trigger ColorScheme when loading the colorscheme succeeds.
                (closes #11024)

    Patch 9.0.0344
    Problem:    MS-Windows: background color wrong in Console.
    Solution:   Figure out the default console background color. (Yasuhiro
                Matsumoto, issue #10310)

    Patch 9.0.0345
    Problem:    Error message for list argument could be clearer.
    Solution:   Include the argument number. (Yegappan Lakshmanan, closes #11027)

    Patch 9.0.0346
    Problem:    :horizontal modifier not fully supported.
    Solution:   Also use :horizontal for completion and user commands.
                (closes #11025)

    Patch 9.0.0347
    Problem:    MS-Windows: cannot set cursor shape in Windows Terminal.
    Solution:   Make cursor shape work with Windows Terminal. (Ken Takata,
                closes #11028, closes #6576)

    Patch 9.0.0348
    Problem:    MS-Windows: GUI mouse move event test is flaky.
    Solution:   Wait for a little while for the first move event.

    Patch 9.0.0349
    Problem:    Filetype of *.sil files not well detected.
    Solution:   Inspect the file contents to guess the filetype.

    Patch 9.0.0350
    Problem:    :echowindow does not work in a compiled function.
    Solution:   Handle the expression at compile time.

    Patch 9.0.0351
    Problem:    Message window may obscure the command line.
    Solution:   Reduce the maximum height of the message window.

    Patch 9.0.0352
    Problem:    using :echowindow in a timer clears part of message
    Solution:   Do not use msg_clr_eos().

    Patch 9.0.0353
    Problem:    Missing entry in switch.
    Solution:   Add ISN_ECHOWINDOW.

    Patch 9.0.0354
    Problem:    MS-Windows: starting a python server for test sometimes fails.
    Solution:   Increase the waiting time for the port.

    Patch 9.0.0355
    Problem:    Check for uppercase char in autoload name is wrong, it checks the
                name of the script.
    Solution:   Remove the check. (closes #11031)

    Patch 9.0.0356
    Problem:    :echowindow sets the in_echowindow flag too early.
    Solution:   Set in_echowindow only when outputting the text. (Yasuhiro
                Matsumoto, closes #11033)

    Patch 9.0.0357
    Problem:    'linebreak' interferes with text property highlight if there is
                syntax highlighting.
    Solution:   Check the text prop attributes after combining with syntax
                attributes. (closes #11035)

    Patch 9.0.0358
    Problem:    'breakindent' does not indent non-lists with
                "breakindentopt=list:-1".
    Solution:   Adjust indent computation. (Maxim Kim, closes #11038)

    Patch 9.0.0359
    Problem:    Error message for wrong argument type is not specific.
    Solution:   Include more information in the error. (Yegappan Lakshmanan,
                closes #11037)

    Patch 9.0.0360
    Problem:    Crash when invalid line number on :for is ignored.
    Solution:   Do not check breakpoint for non-existing line.

    Patch 9.0.0361
    Problem:    Removing a listener may result in a memory leak and remove
                subsequent listeners.
    Solution:   Init the "prev" pointer only once. (Yegappan Lakshmanan,
                closes #11039)

    Patch 9.0.0362
    Problem:    Expanding ":e %" does not work for remote files.
    Solution:   If the "%" or "#" file does not exist add the expansion anyway.

    Patch 9.0.0363
    Problem:    Common names in test files causes tests to be flaky.
    Solution:   Use more specific names.

    Patch 9.0.0364
    Problem:    Clang static analyzer gives warnings.
    Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #11043)

    Patch 9.0.0365
    Problem:    File name used in test is unusual.
    Solution:   Rename it. (Dominique Pellé, closes #11044)

    Patch 9.0.0366
    Problem:    Cannot use import->Func() in lambda. (Israel Chauca Fuentes)
    Solution:   Adjust how an expression in a lambda is parsed. (closes #11042)

    Patch 9.0.0367
    Problem:    Coverity complains about dropping sign of character.
    Solution:   Add explicit type cast.

    Patch 9.0.0368
    Problem:    Old Coverity warning for using NULL pointer.
    Solution:   Bail out if dictionary allocation fails.

    Patch 9.0.0369
    Problem:    A failing flaky test doesn't mention the time.
    Solution:   Add the time for debugging.  Improve error message.

    Patch 9.0.0370
    Problem:    Cleaning up afterwards can make a function messy.
    Solution:   Add the :defer command.

    Patch 9.0.0371
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize the variable. (John Marriott)

    Patch 9.0.0372
    Problem:    MS-Windows: "%T" time format does not appear to work.
    Solution:   Use "%H:%M:%S" instead.

    Patch 9.0.0373
    Problem:    Coverity warns for NULL check and unused return value.
    Solution:   Remove the NULL check, it was already checked earlier.  Add (void)
                to ignore the return value.

    Patch 9.0.0374
    Problem:    Coverity still complains about dropping sign of character.
    Solution:   Add intermediate variable.

    Patch 9.0.0375
    Problem:    The footer feature is unused.
    Solution:   Remove FEAT_FOOTER and code.

    Patch 9.0.0376
    Problem:    Clang warns for dead assignments.
    Solution:   Adjust the code. (Yegappan Lakshmanan, closes #11048)

    Patch 9.0.0377
    Problem:    Argument assignment does not work.
    Solution:   Skip over "=".

    Patch 9.0.0378
    Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Initialize it.

    Patch 9.0.0379
    Problem:    Cleaning up after writefile() is a hassle.
    Solution:   Add the 'D' flag to defer deleting the written file.  Very useful
                in tests.

    Patch 9.0.0380
    Problem:    Deleting files in tests is a hassle.
    Solution:   Use the new 'D' flag of writefile().

    Problem:    Deleting files in tests is a hassle.
    Solution:   Use the new 'D' flag of writefile().

    Patch 9.0.0381
    Problem:    Writefile test leaves files behind.
    Solution:   Fix the file names of files to be deleted. (Dominique Pellé,
                closes #11056)

    Patch 9.0.0382
    Problem:    Freeing the wrong string on failure.
    Solution:   Adjust the argument.  Reorder the code.

    Patch 9.0.0383
    Problem:    Coverity complains about unused value.
    Solution:   Use the value.

    Patch 9.0.0384
    Problem:    Coverity still complains about using return value of getc().
    Solution:   Check for EOF.

    Patch 9.0.0385
    Problem:    GUI: when CTRL-D is mapped in Insert mode it gets inserted.
                (Yasuhiro Matsumoto)
    Solution:   Also recognize modifier starting with CSI. (closes #11057)

    Patch 9.0.0386
    Problem:    Some code blocks are nested too deep.
    Solution:   Bail out earlier. (Yegappan Lakshmanan, closes #11058)

    Patch 9.0.0387
    Problem:    repeating a <ScriptCmd> mapping does not use the right script
                context.
    Solution:   When using a mapping put <SID>{sid}; in the redo buffer.
                (closes #11049)

    Patch 9.0.0388
    Problem:    The do_arg_all() function is too long.
    Solution:   Split the function in smaller parts. (Yegappan Lakshmanan,
                closes #11062)

    Patch 9.0.0389
    Problem:    Crash when 'tagfunc' closes the window.
    Solution:   Bail out when the window was closed.

    Patch 9.0.0390
    Problem:    Cannot use a partial with :defer.
    Solution:   Add the partial arguments before the other arguments.  Disallow
                using a dictionary.

    Patch 9.0.0391
    Problem:    Using separate delete() call instead of writefile() 'D' flag.
    Solution:   Use the writefile 'D' flag.

    Patch 9.0.0392
    Problem:    Inverted condition is a bit confusing.
    Solution:   Remove the "!" and swap the blocks. (Ken Takata)

    Patch 9.0.0393
    Problem:    Signals test often fails on FreeBSD.
    Solution:   Use separate files for Suspend and Resume. (Ken Takata,
                closes #11065)

    Patch 9.0.0394
    Problem:    Cygwin: multibyte characters may be broken in terminal window.
    Solution:   Adjust how to read and write on the channel. (Ken Takata,
                closes #11063)

    Patch 9.0.0395
    Problem:    Clang warnings for function prototypes.
    Solution:   Remove incomplete function prototypes. (closes #11068)

    Patch 9.0.0396
    Problem:    :findrepl does not escape '&' and '~' properly.
    Solution:   Escape depending on the value of 'magic'. (closes #11067)

    Patch 9.0.0397
    Problem:    :defer not tested with exceptions and ":qa!".
    Solution:   Test :defer works when exceptions are thrown and when ":qa!" is
                used.  Invoke the deferred calls on exit.

    Patch 9.0.0398
    Problem:    Members of funccall_T are inconsistently named.
    Solution:   Use the "fc_" prefix for all members.

    Patch 9.0.0399
    Problem:    Using :defer in expression funcref not tested.
    Solution:   Add a test.  Fix uncovered problems.

    Patch 9.0.0400
    Problem:    GUI test sometimes hangs on CI.
    Solution:   Delete a test file explicitly. (Ken Takata, closes #11072)

    Patch 9.0.0401
    Problem:    CI uses older clang version.
    Solution:   Switch from clang 14 to 15. (closes #11066)

    Patch 9.0.0402
    Problem:    Javascript module files are not recognized.
    Solution:   Recognize "*.jsm" files as Javascript. (Brett Holman,
                closes #11069)

    Patch 9.0.0403
    Problem:    'equalalways' may be off when 'laststatus' is zero.
    Solution:   call last_status() before win_equal(). (Luuk van Baal,
                closes #11070)

    Patch 9.0.0404
    Problem:    Crash when passing invalid arguments to assert_fails().
    Solution:   Check for NULL string.

    Patch 9.0.0405
    Problem:    Arguments in a partial not used by a :def function.
    Solution:   Put the partial arguments on the stack.

    Patch 9.0.0406
    Problem:    Deferred functions not invoked when partial func exits.
    Solution:   Create a funccall_T when calling a :def function.

    Patch 9.0.0407
    Problem:    matchstr() does match column offset. (Yasuhiro Matsumoto)
    Solution:   Accept line number zero. (closes #10938)

    Patch 9.0.0408
    Problem:    GUI test sometimes fails on MS-Windows.
    Solution:   Make sure Vim is the foreground window. (Ken Takata, closes #11077)

    Patch 9.0.0409
    Problem:    #{g:x} was seen as a curly-braces expression.
    Solution:   Do never see #{} as a curly-braces expression. (closes #11075)

    Patch 9.0.0410
    Problem:    Struct member cts_lnum is unused.
    Solution:   Delete it.

    Patch 9.0.0411
    Problem:    Only created files can be cleaned up with one call.
    Solution:   Add flags to mkdir() to delete with a deferred function.
                Expand the writefile() name to a full path to handle changing
                directory.

    Patch 9.0.0412
    Problem:    Compiler warning for unused argument.
    Solution:   Add UNUSED.

    Patch 9.0.0413
    Problem:    ASAN reports a memory leak.
    Solution:   Free the string received from the server. (Ken Takata,
                closes #11080)

    Patch 9.0.0414
    Problem:    matchstr() still does not match column offset when done after a
                text search.
    Solution:   Only use the line number for a multi-line search.  Fix the test.
                (closes #10938)

    Patch 9.0.0415
    Problem:    On MS-Windows some tests are flaky.
    Solution:   Add sleeps, disable swapfile, mark test as flaky. (Ken Takata,
                closes #11082)

    Patch 9.0.0416
    Problem:    ml_get error when appending lines in popup window.
    Solution:   Only update w_topline when w_buffer matches curbuf.
                (closes #11074)

    Patch 9.0.0417
    Problem:    Jsonnet files are not recognized.
    Solution:   Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073,
                closes #11081)

    Patch 9.0.0418
    Problem:    Manually deleting temp test files.
    Solution:   Use the 'D' flag of writefile() and mkdir().

    Patch 9.0.0419
    Problem:    The :defer command does not check the function argument count and
                types.
    Solution:   Check the function arguments when adding a deferred function.

    Patch 9.0.0420
    Problem:    Function went missing.
    Solution:   Add the function back.

    Patch 9.0.0421
    Problem:    MS-Windows makefiles are inconsistently named.
    Solution:   Use consistent names. (Ken Takata, closes #11088)

    Patch 9.0.0422
    Problem:    Not enough testing of the :all command.
    Solution:   Add more testing. (Yegappan Lakshmanan, closes #11091)

    Patch 9.0.0423
    Problem:    "for" and "while" not recognized after :vim9cmd and :legacy.
                (Emanuele Torre)
    Solution:   Recognize all the command modifiers. (closes #11087)
                Add a test to check the list of modifiers.

    Patch 9.0.0424
    Problem:    gitattributes files are not recognized.
    Solution:   Add patterns to match gitattributes files. (closes #11085)

    Patch 9.0.0425
    Problem:    Autocmd test is a bit flaky on MS-Windows.
    Solution:   Add a bit more sleeping. (Ken Takata, closes #11095)

    Patch 9.0.0426
    Problem:    Failed flaky tests reports only start time.
    Solution:   Also report the end time.

    Patch 9.0.0427
    Problem:    Drupal theme files are not recognized.
    Solution:   Use php filetype for Drupl theme files.  Remove trailing spaces.
                (Rodrigo Aguilera, closes #11096)

    Patch 9.0.0428
    Problem:    Autocmd test uses common file name.
    Solution:   Use unique name to reduce flakiness.

    Patch 9.0.0429
    Problem:    Not all keys are tested for the MS-Windows GUI.
    Solution:   Add more key codes to the list. (Yegappan Lakshmanan,
                closes #11097)

    Patch 9.0.0430
    Problem:    Cannot use repeat() with a blob.
    Solution:   Implement blob repeat. (closes #11090)

    Patch 9.0.0431
    Problem:    Current mode shows in message window.
    Solution:   Reset in_echowindow before redrawing. (issue #11094)

    Patch 9.0.0432
    Problem:    Crash when using for loop variable in closure.
    Solution:   Check that the variable wasn't deleted. (issue #11094)

    Patch 9.0.0433
    Problem:    Coverity warns for not checking allocation failure.
    Solution:   Check that allocating a list or blob succeeded.

    Patch 9.0.0434
    Problem:    gitignore files are not recognized.
    Solution:   Add patterns for the gitignore filetype. (closes #11102)

    Patch 9.0.0435
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Initialize it.

    Patch 9.0.0436
    Problem:    CI: running tests in parallel causes flakiness.
    Solution:   Reorganize the MS-Windows runs. (Ken Takata, closes #11101)

    Patch 9.0.0437
    Problem:    No error when a custom completion function returns something else
                than the expected list.
    Solution:   Give an error. (closes #11100)

    Patch 9.0.0438
    Problem:    Cannot put virtual text above a line.
    Solution:   Add the "above" value for "text_align".

    Patch 9.0.0439
    Problem:    Cursor wrong if inserting before line with virtual text above.
    Solution:   Add the width of the "above" virtual text to the cursor position.
                (issue #11084)

    Patch 9.0.0440
    Problem:    Crash when using mkdir() with "R" flag in compiled function.
    Solution:   Reserve a variable for deferred function calls.  Handle more than
                one argument.

    Patch 9.0.0441
    Problem:    Closure in for loop test fails on some systems.
    Solution:   Do not wait for the ruler to show up. (issue #11106)

    Patch 9.0.0442
    Problem:    Virtual text "above" doesn't handle line numbers.
    Solution:   Take the left column offset into account. (issue #11084)
                Also make padding work.

    Patch 9.0.0443
    Problem:    Blueprint files are not recognized.
    Solution:   Add a pattern for blueprint files. (Gabriele Musco, closes #11107)

    Patch 9.0.0444
    Problem:    Trying to declare g:variable gives confusing error.
    Solution:   Give a better error message. (closes #11108)

    Patch 9.0.0445
    Problem:    When opening/closing window text moves up/down.
    Solution:   Add the 'splitscroll' option.  When off text will keep its
                position as much as possible.

    Patch 9.0.0446
    Problem:    Message window may be positioned too low.
    Solution:   Compute cmdline_row before computing the position.

    Patch 9.0.0447
    Problem:    Using :echowin while at the hit-enter prompt causes problems.
    Solution:   Do not prompt for :echowin.  Postpone showing the message window.
                Start the timer when the window is displayed.

    Patch 9.0.0448
    Problem:    SubRip files are not recognized.
    Solution:   Add a pattern for SubRip. (closes #11113)

    Patch 9.0.0449
    Problem:    There is no easy way to translate a string with a key code into a
                readable string.
    Solution:   Add the keytrans() function. (closes #11114)

    Patch 9.0.0450
    Problem:    Return value of argument check functions is inconsistent.
    Solution:   Return OK/FAIL instead of TRUE/FALSE. (closes #11112)

    Patch 9.0.0451
    Problem:    Virtual text "above" does not work with 'nowrap'.
    Solution:   Do wrap the line after. (closes #11084)

    Patch 9.0.0452
    Problem:    Visual highlighting extends into virtual text prop.
    Solution:   Do not highlight what isn't actually selected.  Fix ordering of
                stored text props.

    Patch 9.0.0453
    Problem:    On an AZERTY keyboard digit keys get the shift modifier.
    Solution:   Remove the shift modifier from digit keys. (closes #11109)

    Patch 9.0.0454
    Problem:    Incorrect color for modeless selection with GTK.
    Solution:   Use simple inversion instead of XOR. (closes #11111)

    Patch 9.0.0455
    Problem:    A few problems with 'splitscroll'.
    Solution:   Fix 'splitscroll' problems. (Luuk van Baal, closes #11117)

    Patch 9.0.0456
    Problem:    Function called at debug prompt is also debugged.
    Solution:   Reset the debug level while entering the debug command.
                (closes #11118)

    Patch 9.0.0457
    Problem:    Substitute prompt does not highlight an empty match.
    Solution:   Highlight at least one character.

    Patch 9.0.0458
    Problem:    Splitting a line with a text prop "above" moves it to a new line
                below.
    Solution:   Keep an "above" text prop above the first line.

    Patch 9.0.0459
    Problem:    Vim9: block in for loop doesn't behave like a code block.
    Solution:   Use a new block ID for each loop at the script level.

    Patch 9.0.0460
    Problem:    Loop variable can't be found.
    Solution:   Adjust block_id of the loop variable each round.

    Patch 9.0.0461
    Problem:    'scroll' is not always updated.
    Solution:   Call win_init_size() at the right place.

    Patch 9.0.0462
    Problem:    ASAN warning for integer overflow.
    Solution:   Check for tp_col to be MAXCOL.

    Patch 9.0.0463
    Problem:    Command line test leaves directory behind.
    Solution:   Use the "R" flag on the first mkdir(). (Dominique Pellé,
                closes #11127)

    Patch 9.0.0464
    Problem:    With virtual text "above" indenting doesn't work well.
    Solution:   Ignore text properties while adjusting indent. (issue #11084)

    Patch 9.0.0465
    Problem:    Cursor moves when cmdwin is closed when 'splitscroll' is off.
    Solution:   Temporarily set 'splitscroll' when jumping back to the original
                window. (closes #11128)

    Patch 9.0.0466
    Problem:    Virtual text wrong after adding line break after line.
    Solution:   Pass an "eol" flag to where text properties are adjusted.
                (closes #11131)

    Patch 9.0.0467
    Problem:    Build failure.
    Solution:   Add missing change.

    Patch 9.0.0468
    Problem:    Execution stack underflow without the +eval feature. (Dominique
                Pellé)
    Solution:   Add to execution stack without FEAT_EVAL. (closes #11135)

    Patch 9.0.0469
    Problem:    Cursor moves if cmdwin is closed when 'splitscroll' is off.
    Solution:   Skip win_fix_cursor if called when cmdwin is open or closing.
                (Luuk van Baal, closes #11134)

    Patch 9.0.0470
    Problem:    In a :def function all closures in a loop get the same variables.
    Solution:   When in a loop and a closure refers to a variable declared in the
                loop, prepare for making a copy of variables for each closure.

    Patch 9.0.0471
    Problem:    No test for what patch 9.0.0469 fixes.
    Solution:   Add a test. (closes #11140)

    Patch 9.0.0472
    Problem:    Virtual text "below" doesn't show in list mode.
    Solution:   Reset lcs_eol_one when displaying text property.

    Patch 9.0.0473
    Problem:    fullcommand() only works for the current script version.
    Solution:   Add an optional argument for the script version.

    Patch 9.0.0474
    Problem:    fullcommand() test failure.
    Solution:   Update function table.

    Patch 9.0.0475
    Problem:    Not using deferred delete in tests.
    Solution:   Use deferred delete more often.

    Patch 9.0.0476
    Problem:    Varargs does not work for replacement function of substitute().
    Solution:   Check the varargs flag of the function. (closes #11142)

    Patch 9.0.0477
    Problem:    Missing dependency may cause crashes on incomplete build.
    Solution:   Add dependency.

    Patch 9.0.0478
    Problem:    Test for 'splitscroll' takes too much time.
    Solution:   Only test some of the combinations. (Luuk van Baal, closes #11139)

    Patch 9.0.0479
    Problem:    In a :def function all closures in a loop get the same variables.
    Solution:   Use a separate list of variables for LOADOUTER and SAVEOUTER.

    Patch 9.0.0480
    Problem:    Cannot use a :def varargs function with substitute().
    Solution:   Use has_varargs(). (closes #11146)

    Patch 9.0.0481
    Problem:    In a :def function all closures in a loop get the same variables.
    Solution:   Use a separate list of variables for LOADOUTER and STOREOUTER.
                Not copied at end of loop yet.

    Patch 9.0.0482
    Problem:    "g0" moves to wrong location with virtual text "above".
    Solution:   Compensate for the extra columns. (closes #11141)  Also fix "g$"

    Patch 9.0.0483
    Problem:    Illegal memory access when replacing in virtualedit mode.
    Solution:   Check for replacing NUL after Tab.

    Patch 9.0.0484
    Problem:    In a :def function all closures in a loop get the same variables.
    Solution:   Add ENDLOOP at break, continue and return if needed.

    Patch 9.0.0485
    Problem:    In a :def function all closures in a loop get the same variables.
    Solution:   Make a copy of loop variables used in a closure.

    Patch 9.0.0486
    Problem:    Text scrolled with 'nosplitscroll', autocmd win opened and help
                window closed.
    Solution:   Skip win_fix_scroll() in more situations. (Luuk van Baal,
                closes #11150)

    Patch 9.0.0487
    Problem:    Using freed memory with combination of closures.
    Solution:   Do not use a partial after it has been freed through the
                funcstack.

    Patch 9.0.0488
    Problem:    Cursor in wrong position with virtual text "above" and
                'showbreak'.
    Solution:   Take the first character column into account. (closes #11149)

    Patch 9.0.0489
    Problem:    Using "end_lnum" with virtual text causes problems.
    Solution:   Disallow using "end_lnum" with virtual text. (closes #11151)
                Also disallow "end_col" and "length".

    Patch 9.0.0490
    Problem:    Using freed memory with cmdwin and BufEnter autocmd.
    Solution:   Make sure pointer to b_p_iminsert is still valid.

    Patch 9.0.0491
    Problem:    No good reason to build without the float feature.
    Solution:   Remove configure check for float and "#ifdef FEAT_FLOAT".

    Patch 9.0.0492
    Problem:    Cmdwin test fails on MS-Windows.
    Solution:   Skip test on MS-Windows.

    Patch 9.0.0493
    Problem:    Perl test fails.
    Solution:   Remove remaining FEAT_EVAL.

    Patch 9.0.0494
    Problem:    Small build misses float function declarations.
    Solution:   Adjust #ifdefs.

    Patch 9.0.0495
    Problem:    Closure doesn't work properly in nested loop.
    Solution:   Save variables up to the outer loop.

    Patch 9.0.0496
    Problem:    No good reason to keep supporting Windows-XP.
    Solution:   Drop Windows-XP support. (Ken Takata, closes #11089)

    Patch 9.0.0497
    Problem:    LyRiCs files are not recognized.
    Solution:   Add a pattern to detect LyRiCs files. (closes #11155)

    Patch 9.0.0498
    Problem:    Various small issues.
    Solution:   Various small fixes.

    Patch 9.0.0499
    Problem:    In :def function list created after const is locked.
    Solution:   Reset v_lock. (closes #11154)

    Patch 9.0.0500
    Problem:    When quitting the cmdline window with CTRL-C it remains visible.
    Solution:   Redraw to avoid confusion. Adjust the error message.
                (closes #11152)  Adjust the cursor position after CTRL-C.

    Patch 9.0.0501
    Problem:    Warning for using uninitialized value in mouse test.
    Solution:   Clear ScreenCols when allocating it. (Dominique Pellé)

    Patch 9.0.0502
    Problem:    A closure in a nested loop in a :def function does not work.
    Solution:   Use an array of loopvars, one per loop level.

    Patch 9.0.0503
    Problem:    Build failure.
    Solution:   Add missing changes.

    Patch 9.0.0504
    Problem:    still a Build failure.
    Solution:   Add another missing changes.  Avoid compiler warning.

    Patch 9.0.0505
    Problem:    Various problems with 'nosplitscroll'.
    Solution:   Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166)

    Patch 9.0.0506
    Problem:    Line number argument for :badd does not work.
    Solution:   Set the last cursor position in the new buffer. (closes #11161)

    Patch 9.0.0507
    Problem:    Command line cleared when using :redrawstatus in CmdlineChanged
                autocommand event.
    Solution:   Postpone the redraw. (closes #11162)

    Patch 9.0.0508
    Problem:    When the channel test fails there is no clue why.
    Solution:   Add info about the job status. (Ken Takata, closes #11175)

    Patch 9.0.0509
    Problem:    Confusing error for "saveas" command with "nofile" buffer.
    Solution:   Give a clearer error message. (closes #11171)

    Patch 9.0.0510
    Problem:    Chatito files are not recognized.
    Solution:   Add a pattern for Chatito files. (closes #11174)

    Patch 9.0.0511
    Problem:    Unnecessary scrolling for message of only one line.
    Solution:   Only set msg_scroll when needed. (closes #11178)

    Patch 9.0.0512
    Problem:    Cannot redraw the status lines when editing a command.
    Solution:   Only postpone the redraw when messages have scrolled.
                (closes #11170)

    Patch 9.0.0513
    Problem:    May not be able to use a pattern ad the debug prompt.
    Solution:   Temporarily disable the timeout. (closes #11164)

    Patch 9.0.0514
    Problem:    Terminal test sometimes hangs.
    Solution:   Add a bit more information to the test output. (issue #11179)

    Patch 9.0.0515
    Problem:    Virtual text highlight starts too early when 'number' is set.
    Solution:   Set column offset when wrapping. (issue #11138)

    Patch 9.0.0516
    Problem:    Virtual text "above" highlights gap after it.
    Solution:   Do not highlight the gap. (closes #11138)

    Patch 9.0.0517
    Problem:    When at the command line :redrawstatus does not work well.
    Solution:   Only update the statuslines instead of the screen. (closes #11180)

    Patch 9.0.0518
    Problem:    Virtual text highlight starts too early with 'nowrap' and 'number'
                set.
    Solution:   Add the offset to the attribute skip count. (issue #11138)

    Patch 9.0.0519
    Problem:    The win_line() function is much too long.
    Solution:   Move the code to draw the line number to a separate function.

    Patch 9.0.0520
    Problem:    Declaring a loop variable at the start of a block is clumsy.
    Solution:   Declare the variable inside the loop in a few places to see if
                this works.

    Patch 9.0.0521
    Problem:    Compiler warns for unused argument in small version.
    Solution:   Add UNUSED.

    Patch 9.0.0522
    Problem:    Build fails on Appveyor.
    Solution:   Select Visual Studio 2015 for the build tools.

    Patch 9.0.0523
    Problem:    more compiler warnings for arguments in small version
    Solution:   Adjust #ifdefs.

    Patch 9.0.0524
    Problem:    Build instructions for MS-Windows are outdated.
    Solution:   Remove instructions for old MSVC versions.

    Patch 9.0.0525
    Problem:    Manually deleting temp test files.
    Solution:   Add the 'D' flag to writefile().

    Patch 9.0.0526
    Problem:    MS-Windows: still some support for XP and old compilers.
    Solution:   Remove XP support and mention of old compilers. (Ken Takata,
                closes #11183)

    Patch 9.0.0527
    Problem:    Long sign text may overflow buffer.
    Solution:   Use a larger buffer.  Prevent for overflow.

    Patch 9.0.0528
    Problem:    MS-Windows: no batch files for more recent MSVC versions.
    Solution:   Add batch files for 2017, 2019 and 2022. (Ken Takata,
                closes #11184)

    Patch 9.0.0529
    Problem:    Appveyor setup contains outdated lines.
    Solution:   Remove outdated lines. (Ken Takata, closes #11182)

    Patch 9.0.0530
    Problem:    Using freed memory when autocmd changes mark.
    Solution:   Copy the mark before editing another buffer.

    Patch 9.0.0531
    Problem:    The win_line() function is much too long.
    Solution:   Move code to separate functions.

    Patch 9.0.0532
    Problem:    Edit test is flaky when run under valgrind.
    Solution:   Send some text to the terminal to trigger a redraw.

    Patch 9.0.0533
    Problem:    The win_line() function is much too long.
    Solution:   Move code to separate functions.

    Patch 9.0.0534
    Problem:    Line number is displayed at virtual text "above".
    Solution:   Show the line number at the text line.

    Patch 9.0.0535
    Problem:    Closure gets wrong value in for loop with two loop variables.
    Solution:   Correctly compute the number of loop variables to clear.

    Patch 9.0.0536
    Problem:    CI: codecov action update available.
    Solution:   Update Codecov 3.1.0 to 3.3.1. (closes #11188)

    Patch 9.0.0537
    Problem:    The do_set() function is much too long.
    Solution:   Move setting of a string option to a separate function.

    Patch 9.0.0538
    Problem:    Manually deleting test temp files.
    Solution:   Add the 'D' flag to writefile().

    Patch 9.0.0539
    Problem:    Long message test can be flaky.
    Solution:   Wait for more prompt instead of ruler.

    Patch 9.0.0540
    Problem:    Assigning stack variable to argument confuses Coverity.
    Solution:   Use a local pointer, also makes the code simpler.

    Patch 9.0.0541
    Problem:    Terminal pwd test fails with a very long path name.
    Solution:   Join two lines.

    Patch 9.0.0542
    Problem:    MSVC build still has support for 2012 edition.
    Solution:   Drop MSVC 2012 support. (Ken Takata, closes #11191)

    Patch 9.0.0543
    Problem:    Insufficient testing for assert and test functions.
    Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #11190)

    Patch 9.0.0544
    Problem:    Minor issues with setting a string option.
    Solution:   Adjust the code, add a test. (closes #11192)

    Patch 9.0.0545
    Problem:    When a test is slow and CI times out there is no time info.
    Solution:   Add the elapsed time to the "Executing" message.

    Patch 9.0.0546
    Problem:    Supporting Ruby 1.8 makes code complicated.
    Solution:   Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195)

    Patch 9.0.0547
    Problem:    Looping over empty out_loop[] entries.
    Solution:   Store the array size.

    Patch 9.0.0548
    Problem:    reduce() with a compiled lambda could be faster.
    Solution:   Call eval_expr_typval() instead of call_func() directly.

    Patch 9.0.0549
    Problem:    Duplicated code in calling a :def function.
    Solution:   Simplify the code.

    Patch 9.0.0550
    Problem:    Crash when closing a tabpage and buffer is NULL.
    Solution:   Adjust how autocommands are triggered when closing a window.
                (closes #11198, closes #11197)

    Patch 9.0.0551
    Problem:    Mode message is delayed when :echowin was used. (Maxim Kim)
    Solution:   Save and restore msg_didout in :echowin. (closes #11193)

    Patch 9.0.0552
    Problem:    Crash when using NUL in buffer that uses :source.
    Solution:   Don't get a next line when skipping over NL.

    Patch 9.0.0553
    Problem:    No error for "|" after "{" in lambda.
    Solution:   Check for invalid "|". (closes #11199)

    Patch 9.0.0554
    Problem:    Using freed memory when command follows lambda.
    Solution:   Don't free what is still in use. (closes #11201)

    Patch 9.0.0555
    Problem:    Scrolling with 'nosplitscroll' in callback changing curwin.
    Solution:   Invalidate w_cline_row in the right place. (Luuk van Baal,
                closes #11185)

    Patch 9.0.0556
    Problem:    Leaking memory with nested functions.
    Solution:   Free saved pointer.

    Patch 9.0.0557
    Problem:    Valgrind reports possibly leaked memory.
    Solution:   Move the problematic test function to the "fails" test file to
                avoid obscuring real memory leaks.

    Patch 9.0.0558
    Problem:    Coverity warns for possibly using NULL pointer.
    Solution:   Only use "evalarg" when not NULL.

    Patch 9.0.0559
    Problem:    Timer test may get stuck at hit-enter prompt.
    Solution:   Feed some more characters.

    Patch 9.0.0560
    Problem:    Elapsed time since testing started is not visible.
    Solution:   Show the elapsed time while running tests.

    Patch 9.0.0561
    Problem:    When a test gets stuck it just hangs forever.
    Solution:   Set a timeout of 30 seconds.

    Patch 9.0.0562
    Problem:    HSL playlist files are not recognized.
    Solution:   Add a pattern to recognize HSL playlist files. (Benoît Ryder,
                closes #11204)

    Patch 9.0.0563
    Problem:    Timer_info() test fails.
    Solution:   Ignore test timeout timer.  Don't use test_null_job() when not
                available.

    Patch 9.0.0564
    Problem:    A few tests keep failing on MacOS M1.
    Solution:   Add a test check CheckNotMacM1.  Fix timer tests.

    Patch 9.0.0565
    Problem:    Cscope test causes problems when code for test timeout timer is
                included (even when commented out).
    Solution:   Disable part of the cscope test for now.

    Patch 9.0.0566
    Problem:    Nim files are not recognized.
    Solution:   Add patterns for Nim files. (Nbiba Bedis, closes #11205)

    Patch 9.0.0567
    Problem:    'completeopt' "longest" is not used for complete().
    Solution:   Also use "longest" for complete(). (Bjorn Linse, closes #11206)

    Patch 9.0.0568
    Problem:    Autocmd code is indented more than needed.
    Solution:   Break out sooner. (Yegappan Lakshmanan, closes #11208)
                Also in user function code.

    Patch 9.0.0569
    Problem:    Cannot easily get out when using "vim file | grep word".
    Solution:   Without changes let CTRL-C exit Vim.  Otherwise give a message on
                stderr. (closes #11209)

    Patch 9.0.0570
    Problem:    CI for Windows is still using codecov action 3.1.0.
    Solution:   Use action 3.1.1. (closes #11212)

    Patch 9.0.0571
    Problem:    MS-Windows: CTRL-C can make Vim exit.
    Solution:   Check the not-a-term argument.

    Patch 9.0.0572
    Problem:    Insert complete tests leave a mapping behind.
    Solution:   Use a buffer-local mapping. (closes #11211)

    Patch 9.0.0573
    Problem:    Outdated dependencies go unnoticed.
    Solution:   Use github Dependabot. (closes #11213)

    Patch 9.0.0574
    Problem:    Timer garbage collect test hangs on Mac M1.
    Solution:   Properly check for Mac M1 and skip the test.

    Patch 9.0.0575
    Problem:    The getchar() function behaves strangely with bracketed paste.
    Solution:   Do not handle paste-start in getchar(). (issue #11172)

    Patch 9.0.0576
    Problem:    Unused loop variables.
    Solution:   Use a while loop instead. (closes #11214)

    Patch 9.0.0577
    Problem:    Buffer underflow with unexpected :finally.
    Solution:   Check CSF_TRY can be found.

    Patch 9.0.0578
    Problem:    One timer test fails on Mac M1.
    Solution:   Skip the test on Mac M1.

    Patch 9.0.0579
    Problem:    Using freed memory when 'tagfunc' wipes out buffer that holds
                'complete'.
    Solution:   Make a copy of the option.  Make sure cursor position is valid.

    Patch 9.0.0580
    Problem:    No CI running for MacOS on M1.
    Solution:   Add a cirrus CI task. (closes #11203)

    Patch 9.0.0581
    Problem:    Adding a character for incsearch fails at end of line.
    Solution:   Only check cursor line number.

    Patch 9.0.0582
    Problem:    Channel cwd test fails on Cirrus CI.
    Solution:   Also remove /private from the expected directory.

    Patch 9.0.0583
    Problem:    Only recognizing .m3u8 files is inconsistent.
    Solution:   Also match .m3u files. (issue #11204)

    Patch 9.0.0584
    Problem:    Cscope test with wrong executable name fails.
    Solution:   Use /bin/sh to execute the command. (Yegappan Lakshmanan)

    Patch 9.0.0585
    Problem:    When long message test fails the error message is not visible.
    Solution:   Dump more lines.

    Patch 9.0.0586
    Problem:    Missing change in test.
    Solution:   Add the test change.

    Patch 9.0.0587
    Problem:    Unicode tables are outdated.
    Solution:   Update to Unicode release 15. (Christian Brabandt, closes #11220)

    Patch 9.0.0588
    Problem:    MorphOS build is broken.
    Solution:   Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder,
                closes #11222)

    Patch 9.0.0589
    Problem:    On AmigaOS4 the pid is available but the task address is used.
    Solution:   Use getpid().  (Ola Söder, closes #11224)

    Patch 9.0.0590
    Problem:    After exiting Insert mode spelling is not checked in the next
                line.
    Solution:   When spelling is enabled redraw the next line after exiting Insert
                mode in case the spell highlight needs updating.

    Patch 9.0.0591
    Problem:    Message window popup shows on only one tab page. (Naruhiko
                Nishino)
    Solution:   Show the message window popup on all tab pages. (closes #11231)

    Patch 9.0.0592
    Problem:    Display not cleared when scrolling back in messages, a background
                color is set and t_ut is empty.
    Solution:   Clear to the end of the display if needed. (closes #8973)

    Patch 9.0.0593
    Problem:    CI actions have too many permissions.
    Solution:   Restrict permissions to what is required. (closes #11223)

    Patch 9.0.0594
    Problem:    Makefile error message causes a shell error.
    Solution:   Put the message in single quotes. (closes #11232)

    Patch 9.0.0595
    Problem:    Extra newline in messages after a verbose shell message.
    Solution:   Output the newline with msg_putchar_attr(). (closes #11233)
                Make it possible to filter a screendump before comparing it.

    Patch 9.0.0596
    Problem:    CI on Mac M1 has the channel feature disabled.
    Solution:   Include the channel feature.

    Patch 9.0.0597
    Problem:    Cannot close a tab page with the middle mouse button.
    Solution:   Support closing a tab page with the middle mouse button, like many
                other programs. (closes #10746)

    Patch 9.0.0598
    Problem:    Using negative array index with negative width window.
    Solution:   Make sure the window width does not become negative.

    Patch 9.0.0599
    Problem:    Latexmkrc files are not recognized.
    Solution:   Use Perl filetype for latexmkrc files. (closes #11241)

    Patch 9.0.0600
    Problem:    GYP files are not recognized.
    Solution:   Recognize GYP files. (closes #11242)

    Patch 9.0.0601
    Problem:    Too much indent.
    Solution:   Return out early from a function. (Yegappan Lakshmanan,
                close #11238)

    Patch 9.0.0602
    Problem:    New TypeScript extensions are not recognized.
    Solution:   Recognize .mts and .cts files. (closes #11237)

    Patch 9.0.0603
    Problem:    With 'nosplitscroll' folds are not handled correctly.
    Solution:   Take care of closed folds when moving the cursor. (Luuk van Baal,
                closes #11234)

    Patch 9.0.0604
    Problem:    Luacheckrc file is not recognized.
    Solution:   Use lua filetype for luacheckrc. (closes #11236)

    Patch 9.0.0605
    Problem:    Dump file missing.
    Solution:   Add the missing dump file. (issue #11234)

    Patch 9.0.0606
    Problem:    system() opens a terminal window when using the GUI and "!" is in
                'guioptions'.
    Solution:   Do not use a terminal window when the SHELL_SILENT flag is used.
                (closes #11202)

    Patch 9.0.0607
    Problem:    Verbose echo message test fails on Mac OS.
    Solution:   Skip the test on Mac OS.

    Patch 9.0.0608
    Problem:    With spell checking, deleting a full stop at the end of a line
                does not update SpellCap at the start of the next line.
    Solution:   Update the next line when characters have been deleted.  Also when
                using undo.

    Patch 9.0.0609
    Problem:    Blockedit test fails because of wrong indent.
    Solution:   Adjust the expected text temporarily

    Patch 9.0.0610
    Problem:    Global interrupt test fails when run under valgrind.
    Solution:   Use TermWait().

    Patch 9.0.0611
    Problem:    Tests delete files with a separate delete() call.
    Solution:   Use deferred delete.

    Patch 9.0.0612
    Problem:    Blockedit test passes with wrong result.
    Solution:   Add a "vim9script" line to make indenting work.

    Patch 9.0.0613
    Problem:    Running source tests leaves file behind.
    Solution:   Add the "D" flag to writefile(). (Dominique Pellé, closes #11243)
                Also do this for other writefile() calls and drop delete().

    Patch 9.0.0614
    Problem:    SpellFileMissing autocmd may delete buffer.
    Solution:   Disallow deleting the current buffer to avoid using freed memory.

    Patch 9.0.0615
    Problem:    Using reduce() on a list from range() is a bit slow.
    Solution:   Avoid materializing the list.

    Patch 9.0.0616
    Problem:    Spell test fails because error message changed.
    Solution:   Adjust expected error message.

    Patch 9.0.0617
    Problem:    Calling function for reduce() has too much overhead.
    Solution:   Only call clear_tv() when needed.

    Patch 9.0.0618
    Problem:    Calling function for reduce() has too much overhead.
    Solution:   Do not create a funccall_T every time.

    Patch 9.0.0619
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0620
    Problem:    matchaddpos() can only add up to 8 matches.
    Solution:   Allocate the array of positions. (closes #11248)

    Patch 9.0.0621
    Problem:    Filetype test leaves file behind.
    Solution:   Add deferred delete flag to writefile(). (Dominique Pellé,
                closes #11249)

    Patch 9.0.0622
    Problem:    matchaddpos() can get slow when adding many matches.
    Solution:   Update the next available match ID when manually picking an ID and
                remove check if the available ID can be used. (idea by Rick Howe)

    Patch 9.0.0623
    Problem:    Error for modifying a const is not detected at compile time.
    Solution:   Add TTFLAG_CONST and check for it in add() and extend().

    Patch 9.0.0624
    Problem:    Leaking argument type array.
    Solution:   Add allocated memory to type_gap.

    Patch 9.0.0625
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0626
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0627
    Problem:    "const" and "final" both make the type a constant. (Daniel
                Steinberg)
    Solution:   Only have "const" make the type a constant.

    Patch 9.0.0628
    Problem:    Coverity warns for not checking return value.
    Solution:   Check the return value and simplify the code.

    Patch 9.0.0629
    Problem:    Get an error for using const only when executing.
    Solution:   Check for const at compile time for filter(), map(), remove(),
                reverse(), sort() and uniq().

    Patch 9.0.0630
    Problem:    In Vim9 script a numbered function cannot be called.
    Solution:   Do not require "g:" before a numbered function name.
                (closes #11254)

    Patch 9.0.0631
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0632
    Problem:    Calling a function from an "expr" option has too much overhead.
    Solution:   Add call_simple_func() and use it for 'foldexpr'

    Patch 9.0.0633
    Problem:    FEAT_TITLE was removed but is still used.
    Solution:   Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256)

    Patch 9.0.0634
    Problem:    Evaluating "expr" options has more overhead than needed.
    Solution:   Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr',
                "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr',
                'formatexpr', 'indentexpr' and 'charconvert'.

    Patch 9.0.0635
    Problem:    Build error and compiler warnings.
    Solution:   Add missing change.  Add type casts.

    Patch 9.0.0636
    Problem:    Underline color does not work in terminals that don't send a
                termresponse.
    Solution:   Do output t_8u if it was set explicitly. (closes #11253)

    Patch 9.0.0637
    Problem:    Syntax of commands in Vim9 script depends on +eval feature.
    Solution:   Use same syntax with and without the +eval feature.

    Patch 9.0.0638
    Problem:    Popup menu highlight wrong on top of preview popup. (Yegappan
                Lakshmanan)
    Solution:   Also check for the popup menu in screen_line().

    Patch 9.0.0639
    Problem:    Checking for popup in screen_char() is too late, the attribute has
                already been changed.
    Solution:   Move check for popup to where screen_char() is called.

    Patch 9.0.0640
    Problem:    Cannot scroll by screen line if a line wraps.
    Solution:   Add the 'smoothscroll' option.  Only works for CTRL-E and CTRL-Y
                so far.

    Patch 9.0.0641
    Problem:    Missing part of the new option code.
    Solution:   Add missing WV_SMS.

    Patch 9.0.0642
    Problem:    Breakindent test fails.
    Solution:   Correct logic for resetting need_showbreak.

    Patch 9.0.0643
    Problem:    Smoothscroll test fails.
    Solution:   Check if skipcol changed.

    Patch 9.0.0644
    Problem:    'smoothscroll' is not copied to a new window on :split.
    Solution:   Copy the option value.  Add a test.

    Patch 9.0.0645
    Problem:    CTRL-Y does not stop at line 1. (John Marriott)
    Solution:   Stop at line 1 when 'smoothscroll' is not set. (closes #11261)

    Patch 9.0.0646
    Problem:    with 'smoothscroll' set CTRL-E does not work properly when
                'foldmethod' is set to "indent". (Yee Cheng Chin)
    Solution:   Merge the code for scrolling with folds and 'smoothscroll'.
                (closes #11262)

    Patch 9.0.0647
    Problem:    The 'splitscroll' option is not a good name.
    Solution:   Rename 'splitscroll' to 'splitkeep' and make it a string option,
                also supporting "topline". (Luuk van Baal, closes #11258)

    Patch 9.0.0648
    Problem:    When using powershell input redirection does not work.
    Solution:   Use a different shell command for powershell. (Yegappan
                Lakshmanan, closes #11257)

    Patch 9.0.0649
    Problem:    No indication when the first line is broken for 'smoothscroll'.
    Solution:   Show "<<<" in the first line.

    Patch 9.0.0650
    Problem:    Some tests are failing.
    Solution:   Adjust for "<<<" showing up.

    Patch 9.0.0651
    Problem:    Build fails without the +conceal feature.
    Solution:   Rename called function.

    Patch 9.0.0652
    Problem:    'smoothscroll' not tested with 'number' and "n" in 'cpo'.
    Solution:   Add tests, fix uncovered problem.

    Patch 9.0.0653
    Problem:    BS and DEL do not work properly in an interactive shell. (Gary
                Johnson)
    Solution:   Adjust the length for replaced codes.

    Patch 9.0.0654
    Problem:    Breakindent test fails.
    Solution:   Temporarily accept wrong result.

    Patch 9.0.0655
    Problem:    passing modifier codes to a shell running in the GUI. (Gary
                Johnson)
    Solution:   Include modifier codes into the key and drop the modifiers.

    Patch 9.0.0656
    Problem:    Cannot specify another character to use instead of '@' at the end
                of the window.
    Solution:   Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264,
                closes #10963)

    Patch 9.0.0657
    Problem:    Too many #ifdefs.
    Solution:   Graduate the +cmdwin feature.  Now the tiny and small builds are
                equal, drop the small build.  (Martin Tournoij, closes #11268)

    Patch 9.0.0658
    Problem:    Tiny build fails on Mac OS.
    Solution:   Define FEAT_CLIPBOARD only for normal build.

    Patch 9.0.0659
    Problem:    Wrong type of comment in SetSyn() function.
    Solution:   Use Vim9 comment. (closes #11278)

    Patch 9.0.0660
    Problem:    Mapping with CTRL keys does not work in the GUI.
    Solution:   Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270)

    Patch 9.0.0661
    Problem:    Multi-byte "lastline" item in 'fillchars' does not work properly
                when the window is two columns wide.
    Solution:   Compute the text length correctly. (closes #11280)

    Patch 9.0.0662
    Problem:    Concealed characters do not work correctly.
    Solution:   Subtract boguscols instead of adding them. (closes #11273)

    Patch 9.0.0663
    Problem:    Tests check for +cmdwin feature which is always present.
    Solution:   Remove the checks. (closes #11287)

    Patch 9.0.0664
    Problem:    Bad redrawing with spell checking, using "C" and "$" in 'cpo'.
    Solution:   Do not redraw the next line when "$" is in 'cpo'. (closes #11285)

    Patch 9.0.0665
    Problem:    Setting 'cmdheight' has no effect if last window was resized.
    Solution:   Do apply 'cmdheight' when told to.  Use the frame height instead
                of the cmdline_row.  (closes #11286)

    Patch 9.0.0666
    Problem:    Spacing-combining characters handled as composing, causing text to
                take more space than expected.
    Solution:   Handle characters marked with "Mc" not as composing.
                (closes #11282)

    Patch 9.0.0667
    Problem:    ml_get error when 'splitkeep' is "screen". (Marius Gedminas)
    Solution:   Check the botline is not too large. (Luuk van Baal,
                closes #11293, closes #11292)

    Patch 9.0.0668
    Problem:    CI on Mac M1 only uses clang
    Solution:   Also run with gcc. (closes #11263)

    Patch 9.0.0669
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0670
    Problem:    No space for command line when there is a tabline.
    Solution:   Correct computation of where the command line should be.
                (closes #11295)

    Patch 9.0.0671
    Problem:    Negative topline using CTRL-Y with 'smoothscroll' and 'diff'.
                (Ernie Rael)
    Solution:   Only use 'smoothscroll' when 'wrap' is set.

    Patch 9.0.0672
    Problem:    Cursor line only partly shows with 'smoothscroll' and 'scrolloff'
                zero.
    Solution:   Do not use 'smoothscroll' when adjusting the bottom of the window.
                (closes #11269)

    Patch 9.0.0673
    Problem:    First line not scrolled properly with 'smoothscroll' and
                'scrolloff' zero and using "k".
    Solution:   Make sure the cursor position is visible.

    Patch 9.0.0674
    Problem:    Build error with tiny version.
    Solution:   Use PLINES_NOFILL macro.

    Patch 9.0.0675
    Problem:    Search test screendump is outdated.
    Solution:   Update the screendump for improved display.

    Patch 9.0.0676
    Problem:    CI on Mac M1 with gcc actually uses clang.
    Solution:   Remove the gcc task. (Ozaki Kiichi, closes #11297)

    Patch 9.0.0677
    Problem:    Breakindent test accepts wrong result.
    Solution:   Fix the number column and adjust the expected text.

    Patch 9.0.0678
    Problem:    Using exclamation marks on :function.
    Solution:   Use :func and :endfunc as usual.

    Patch 9.0.0679
    Problem:    Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'.
    Solution:   Do not count number column in topline if columns are skipped.

    Patch 9.0.0680
    Problem:    Tests failing with 'breakindent', 'number' and "n" in 'cpo'.
    Solution:   Do count the number column in topline if 'breakindent' is set.

    Patch 9.0.0681
    Problem:    "<<<" shows for 'smoothscroll' even when 'showbreak is set.
    Solution:   When 'showbreak' is set do not display "<<<".

    Patch 9.0.0682
    Problem:    Crash when popup with deleted timer is closed. (Igbanam
                Ogbuluijah)
    Solution:   Check the timer still exists. (closes #11301)

    Patch 9.0.0683
    Problem:    Cannot specify a time for :echowindow.
    Solution:   A count can be used to specify the display time. Add
                popup_findecho().

    Patch 9.0.0684
    Problem:    Skipped :exe command fails compilation on MS-Windows.
    Solution:   Adjust return value when skipping.

    Patch 9.0.0685
    Problem:    FORTIFY_SOURCE causes a crash in Vim9 script.
    Solution:   Use a pointer to the first char. (Yee Cheng Chin, closes #11302)

    Patch 9.0.0686
    Problem:    The right ALT key does not work on some MS-Windows keyboards.
    Solution:   Adjust the modifiers based on GetKeyState(). (Anton Sharonov,
                closes #11300)

    Patch 9.0.0687
    Problem:    "export def" does not work in a nested block.
    Solution:   Do not handle "export" with a separate function but in the same
                command stack. (closes #11304)

    Patch 9.0.0688
    Problem:    Debugger does not display the whole command.
    Solution:   Set ea.cmd before checking for a breakpoint.

    Patch 9.0.0689
    Problem:    Compiler warning for unused function.
    Solution:   Add #ifdef. (John Marriott)

    Patch 9.0.0690
    Problem:    Buffer size for expanding tab not correctly computed.
    Solution:   Correctly use size of end character.

    Patch 9.0.0691
    Problem:    lalloc(0) error in listchars test.
    Solution:   Skip generating text for tab if tab_len is zero.

    Patch 9.0.0692
    Problem:    PoE filter files are not recognized.
    Solution:   Add a pattern to detect PoE filter files. (closes #11305)

    Patch 9.0.0693
    Problem:    browse() first argument cannot be a bool.
    Solution:   Use tv_get_bool_chk() instead of tv_get_number_chk().
                (closes #11308)

    Patch 9.0.0694
    Problem:    No native sound support on Mac OS.
    Solution:   Add sound support for Mac OS. (Yee Cheng Chin, closes #11274)

    Patch 9.0.0695
    Problem:    Failing check for dictionary type for const any.
    Solution:   Check for any type properly. (closes #11310)

    Patch 9.0.0696
    Problem:    It is unclear if the +rightleft and +arabic features are actively
                being used.
    Solution:   Disable the features, await feedback.

    Patch 9.0.0697
    Problem:    Cursor in wrong position with Visual substitute.
    Solution:   When restoring 'linebreak' mark the virtual column as invalid.
                (closes #11309, closes #11311)

    Patch 9.0.0698
    Problem:    VisVim is outdated, does not work with current Visual Studio.
    Solution:   Remove VisVim. (Martin Tournoij)

    Patch 9.0.0699
    Problem:    Tiny build fails.
    Solution:   Add #ifdef.

    Patch 9.0.0700
    Problem:    There is no real need for a "big" build.
    Solution:   Move common features to "normal" build, less often used features
                to the "huge" build. (Martin Tournoij, closes #11283)

    Patch 9.0.0701
    Problem:    With 'smoothscroll' the cursor position s not adjusted in a long
                line.
    Solution:   Move the cursor further up or down in the line.

    Patch 9.0.0702
    Problem:    Incomplete testing cursor position after change with 'linebreak'
                set.
    Solution:   Add a test and move test cases together. (closes #11313)

    Patch 9.0.0703
    Problem:    Failing check for argument type for const any.
    Solution:   Check for any type properly. (closes #11316)

    Patch 9.0.0704
    Problem:    CI runs "tiny" and "small" builds, which are the same.
    Solution:   Remove the "small" build. (Naruhiko Nishino, closes #11315)

    Patch 9.0.0705
    Problem:    Virtual text truncation does not take padding into account.
    Solution:   Subtract the padding from the available space. (closes #11318)

    Patch 9.0.0706
    Problem:    :help in a narrow window always opens at the top.
    Solution:   Respect 'splitbelow'. (closes #11319)

    Patch 9.0.0707
    Problem:    With 'smoothscroll' and 'scrolloff' non-zero the cursor position
                is not properly adjusted in a long line.
    Solution:   Move the cursor further up or down in the line.

    Patch 9.0.0708
    Problem:    :confirm does not work properly for a terminal buffer.
    Solution:   Handle :confirm for a terminal buffer differently.  (Yee Cheng
                Chin, closes #11312)

    Patch 9.0.0709
    Problem:    Virtual text "after" not correct with 'nowrap'.
    Solution:   Do not display "after" text prop on the next line when 'wrap' is
                off.

    Patch 9.0.0710
    Problem:    Quitting/unloading/hiding a terminal buffer does not always work
                properly.
    Solution:   Avoid that ":q!" leaves an empty buffer behind.  ":bunload!" also
                kills the job and unloads the buffer.  ":hide" does not unload the
                buffer. (Yee Cheng Chin, closes #11323)

    Patch 9.0.0711
    Problem:    SubStation Alpha files are not recognized.
    Solution:   Add patterns for SubStation Alpha files. (closes #11332)

    Patch 9.0.0712
    Problem:    Wrong column when calling setcursorcharpos() with zero lnum.
    Solution:   Set the line number before calling buf_charidx_to_byteidx().
                (closes #11329)

    Patch 9.0.0713
    Problem:    <amatch> of MenuPopup event is expanded like a file name.
    Solution:   Do not expand <amatch> for MenuPopup. (closes #11328)

    Patch 9.0.0714
    Problem:    With 'nowrap' two virtual text below not displayed correctly.
    Solution:   Set text_prop_follows before continuing.  Correct for number
                column. (closes #11333)

    Patch 9.0.0715
    Problem:    Wrong argument for append() gives two error messages.
    Solution:   When getting an error for a number argument don't try using it as
                a string. (closes #11335)

    Patch 9.0.0716
    Problem:    With 'nowrap' virtual text "after" does not scroll left.
    Solution:   Skip part of the virtual text that is left of the window.
                (closes #11320)  Fix going beyond the last column of the window.

    Patch 9.0.0717
    Problem:    Compiler warning for unused variable in tiny build.
    Solution:   Add #ifdefs.

    Patch 9.0.0718
    Problem:    Extra empty line between two virtual text "below" when 'wrap' and
                'number' are set.
    Solution:   Reset "before" when there is no text in the screen line.
                (closes #11334)

    Patch 9.0.0719
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0720
    Problem:    MS-Windows GUI may have pixel dust from antialiasing.
    Solution:   When a character changes also redraw the next one. (issue #8532)

    Patch 9.0.0721
    Problem:    Virtual text "above" with padding not displayed correctly.
    Solution:   Take padding into account when truncating. (closes #11340)

    Patch 9.0.0722
    Problem:    Virtual text "after" does not show with 'list' set.
    Solution:   Do not break out of the loop when another text prop follows.
                (closes #11337)

    Patch 9.0.0723
    Problem:    Extra empty line below virtual text when 'list' is set.
    Solution:   Do not reset lcs_eol_one but set text_prop_follows. (closes #11339)

    Patch 9.0.0724
    Problem:    Closure in compiled function gets same variable in block.
    Solution:   At the end of a block to not always reset the variable count.
                (issue #11094)

    Patch 9.0.0725
    Problem:    Virtual text "after" wraps to next line even when 'wrap' is off
                and 'list' is set.
    Solution:   Do not use the minimum width when 'wrap' is off. (issue #11336)

    Patch 9.0.0726
    Problem:    Looping over list of lists and changing the list contents works in
                Vim9 script, not in a compiled function.
    Solution:   Mark the loop variable final instead of const. (closes #11347)

    Patch 9.0.0727
    Problem:    Help in the repository differs from patched version too much.
    Solution:   Make a patch for a few help files.

    Patch 9.0.0728
    Problem:    extend() test fails.
    Solution:   Item is final, not const.

    Patch 9.0.0729
    Problem:    The rightleft and arabic features are disabled.
    Solution:   Re-enable the features, some users want to use the functionality.

    Patch 9.0.0730
    Problem:    Startup test fails with right-left feature.
    Solution:   Do not delete test file too early.

    Patch 9.0.0731
    Problem:    clang-tidy configuration files are not recognized.
    Solution:   Recognize clang-tidy files as yaml. (closes #11350)

    Patch 9.0.0732
    Problem:    No check for white space before and after "=<<". (Doug Kearns)
    Solution:   Check for white space in Vim9 script. (closes #11351)

    Patch 9.0.0733
    Problem:    Use of strftime() is not safe.
    Solution:   Check the return value of strftime().  Use a larger buffer and
                correctly pass the available space. (Dominique Pellé, closes
                #11348)

    Patch 9.0.0734
    Problem:    Cursor position invalid when scrolling with 'smoothscroll' set.
                (Ernie Rael)
    Solution:   Add w_valid_skipcol and clear flags when it changes.  Adjust
                w_skipcol after moving the cursor.

    Patch 9.0.0735
    Problem:    Breakindent and scrolloff tests fail.
    Solution:   Temporarily skip the assertions.

    Patch 9.0.0736
    Problem:    Quickfix listing does not handle very long messages.
    Solution:   Use a growarray instead of a fixed size buffer. (Yegappan
                Lakshmanan, closes #11357)

    Patch 9.0.0737
    Problem:    Lisp word only recognized when a space follows.
    Solution:   Also match a word at the end of a line.  Rename the test.  Use a
                compiled function to avoid backslashes.

    Patch 9.0.0738
    Problem:    Cannot suppress completion "scanning" messages.
    Solution:   Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354)

    Patch 9.0.0739
    Problem:    Mouse column not correctly used for popup_setpos.
    Solution:   Adjust off-by-one error and handle Visual line selection properly.
                (Yee Cheng Chin, closes #11356)

    Patch 9.0.0740
    Problem:    prop_add_list() gives multiple errors for invalid argument.
    Solution:   Only give one error message.

    Patch 9.0.0741
    Problem:    Cannot specify an ID for each item with prop_add_list(). (Sergey
                Vlasov)
    Solution:   Add an optional fifth number to the item. (closes #11360)

    Patch 9.0.0742
    Problem:    Reading past end of the line when compiling a function with
                errors.
    Solution:   Do not return an invalid pointer.  Fix skipping redirection.

    Patch 9.0.0743
    Problem:    Starting cscope on Unix does not quote the arguments correctly.
                (Gary Johnson)
    Solution:   Move the final quote after the arguments.

    Patch 9.0.0744
    Problem:    In script in autoload dir exported variable is not found. (Doug
                Kearns)
    Solution:   Find the variable with the "script#" prefix. (closes #11361)

    Patch 9.0.0745
    Problem:    Wrong cursor position when using "gj" and "gk" in a long line.
    Solution:   Adjust computations for the cursor position and skipcol. Re-enable
                tests that pass now, disable failing breakindent test.

    Patch 9.0.0746
    Problem:    Breakindent test cases are commented out.
    Solution:   Adjust expected result to slightly different behavior.  Correct
                computations for cursor position.

    Patch 9.0.0747
    Problem:    Too many #ifdefs.
    Solution:   Graduate the +cmdline_info feature. (Martin Tournoij,
                closes #11330)

    Patch 9.0.0748
    Problem:    Kitty may send key without modifiers with CSI u code.
    Solution:   Handle CSI u code without modifiers. (Trygve Aaberge,
                closes #11364)

    Patch 9.0.0749
    Problem:    Alloc/free of buffer for each quickfix entry is inefficient.
    Solution:   Use a shared grow array. (Yegappan Lakshmanan, closes #11365)

    Patch 9.0.0750
    Problem:    Crash when popup closed in callback. (Maxim Kim)
    Solution:   In syntax_end_parsing() check that syn_block is valid.

    Patch 9.0.0751
    Problem:    'scrolloff' does not work well with 'smoothscroll'.
    Solution:   Make positioning the cursor a bit better.  Rename functions.

    Patch 9.0.0752
    Problem:    Rprofile files are not recognized.
    Solution:   Recognize Rprofile files as "r". (closes #11369)

    Patch 9.0.0753
    Problem:    Some Ex commands are not in the help index.
    Solution:   Add the missing commands.  Add a script to check all Ex commands
                are in the help index. (Yee Cheng Chin, closes #11371)

    Patch 9.0.0754
    Problem:    'indentexpr' overrules lisp indenting in one situation.
    Solution:   Add "else" to keep the lisp indent. (issue #11327)

    Patch 9.0.0755
    Problem:    Huge build on macos always fails on CI.
    Solution:   Temporarily disable the perl interface.

    Patch 9.0.0756
    Problem:    No autocmd event for changing text in a terminal window.
    Solution:   Add TextChangedT. (Shougo Matsushita, closes #11366)

    Patch 9.0.0757
    Problem:    Line number not visible with 'smoothscroll', 'nu' and 'rnu'.
    Solution:   Put the ">>>" after the line number instead of on top.

    Patch 9.0.0758
    Problem:    "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'.
    Solution:   Keep the "precedes" character.

    Patch 9.0.0759
    Problem:    Huge build on macos does not use Perl.
    Solution:   Re-enable the Perl interface using "dynamic". (closes #11375)

    Patch 9.0.0760
    Problem:    Display test for 'listchars' "precedes" fails.
    Solution:   Correct the expected result.

    Patch 9.0.0761
    Problem:    Cannot use 'indentexpr' for Lisp indenting.
    Solution:   Add the 'lispoptions' option.

    Patch 9.0.0762
    Problem:    Build failure.
    Solution:   Add missing change.

    Patch 9.0.0763
    Problem:    MS-Windows: warning for using int for size_t.
    Solution:   Declare variable as size_t.

    Patch 9.0.0764
    Problem:    Indent and option tests fail.
    Solution:   Change OP_INDENT.  Add entry to options test table.

    Patch 9.0.0765
    Problem:    With a Visual block a put command column may go negative.
    Solution:   Check that the column does not become negative.

    Patch 9.0.0766
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0767
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0768
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0769
    Problem:    Too many delete() calls in tests.
    Solution:   Use deferred delete where possible.

    Patch 9.0.0770
    Problem:    Quickfix commands may keep memory allocated.
    Solution:   Free memory when it's a bit much. (Yegappan Lakshmanan,
                closes #11379)

    Patch 9.0.0771
    Problem:    Cannot always tell the difference between tex and rexx files.
    Solution:   Recognize tex by a leading backslash. (Martin Tournoij,
                closes #11380)

    Patch 9.0.0772
    Problem:    The libvterm code is outdated.
    Solution:   Include libvterm changes from revision 790 to 801.

    Patch 9.0.0773
    Problem:    Huge build on MacOS uses dynamic Perl.
    Solution:   Use built-in Perl, uninstall the brew one. (closes #11382)

    Patch 9.0.0774
    Problem:    The libvterm code is outdated.
    Solution:   Include libvterm changes from revision 802 to 817.  Revert some
                changes made for C89.

    Patch 9.0.0775
    Problem:    MS-Windows: mouse scrolling not supported in the console.
    Solution:   Add event handling for mouse scroll events. (Christopher
                Plewright, closes #11374)

    Patch 9.0.0776
    Problem:    MSVC can't have field name "small".
    Solution:   Rename small to smallfont.

    Patch 9.0.0777
    Problem:    Code is indented too much.
    Solution:   Use an early return. (Yegappan Lakshmanan, closes #11386)

    Patch 9.0.0778
    Problem:    Indexing of unknown const type fails during compilation.
    Solution:   Check for "any" properly. (closes #11389)

    Patch 9.0.0779
    Problem:    lsl and lm3 file extensions are not recognized.
    Solution:   Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384)

    Patch 9.0.0780
    Problem:    'scroll' value computed in unexpected location.
    Solution:   Compute 'scroll' when the window height is changed. (Luuk van
                Baal, closes #11387)

    Patch 9.0.0781
    Problem:    Workaround to rename "small" to "smallfont" is clumsy.
    Solution:   Undefine "small" after including windows.h. (Ken Takata)

    Patch 9.0.0782
    Problem:    OpenVPN files are not recognized.
    Solution:   Add patterns for OpenVPN files. (closes #11391)

    Patch 9.0.0783
    Problem:    ":!" doesn't do anything but does update the previous command.
    Solution:   Do not have ":!" change the previous command. (Martin Tournoij,
                closes #11372)

    Patch 9.0.0784
    Problem:    Text prop "above" not displayed correctly with 'number' and "n" in
                'cpo'.
    Solution:   Draw the line number column until the line text is reached.

    Patch 9.0.0785
    Problem:    Memory leak with empty shell command.
    Solution:   Free the allocated memory when bailing out.

    Patch 9.0.0786
    Problem:    User command does not get number from :tab modifier.
    Solution:   Include the number. (closes #11393, closes #6901)

    Patch 9.0.0787
    Problem:    MS-Windows: mouse scrolling in terminal misbehaves without dll.
    Solution:   Add #ifdef as a temporary solution. (Christopher Plewright,
                closes #11392)

    Patch 9.0.0788
    Problem:    ModeChanged autocmd not executed when Visual mode is ended with
                CTRL-C.
    Solution:   Do not trigger the autocmd when got_int is set. (closes #11394)

    Patch 9.0.0789
    Problem:    Dummy buffer ends up in a window.
    Solution:   Disallow navigating to a dummy buffer.

    Patch 9.0.0790
    Problem:    Test for dummy buffer does not always produce the E86 error.
    Solution:   Do not check if the error is produced.

    Patch 9.0.0791
    Problem:    At the hit-Enter prompt the End and Home keys may not work.
    Solution:   Use the special "@" code for End and Home, like it was done for
                the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396)

    Patch 9.0.0792
    Problem:    MS-Windows: compiler complains about unused function.
    Solution:   Add #ifdef. (John Marriott)

    Patch 9.0.0793
    Problem:    MS-Windows: mouse scroll events only work with the dll.
    Solution:   Accept CSI codes for MS-Windows without the GUI. (Christopher
                Plewright, closes #11401)

    Patch 9.0.0794
    Problem:    There is no way to find out if an escape sequence with
                modifyOtherKeys has been seen.
    Solution:   Add a notice with ":verbose map".

    Patch 9.0.0795
    Problem:    readblob() always reads the whole file.
    Solution:   Add arguments to read part of the file. (Ken Takata,
                closes #11402)

    Patch 9.0.0796
    Problem:    Mapping test fails in some situations.
    Solution:   Find the line with the verbose information.

    Patch 9.0.0797
    Problem:    Order of assert function arguments is reverted.
    Solution:   Swap the arguments. (closes #11399)

    Patch 9.0.0798
    Problem:    Clang format configuration files are not recognized.
    Solution:   Use yaml for Clang format configuration files. (Marwin Glaser,
                closes #11398)

    Patch 9.0.0799
    Problem:    In compiled function ->() on next line not recognized.
    Solution:   Also check for "(". (closes #11405)

    Patch 9.0.0800
    Problem:    Compiler complains about repeated typedef.
    Solution:   Remove one typedef.

    Patch 9.0.0801
    Problem:    The modifyOtherKeys flag is set when it should not.
    Solution:   Do not handle special key codes with a modifier value above 16 as
                a modifyOtherKeys value. (issue #11403)

    Patch 9.0.0802
    Problem:    MS-Windows: cannot map console mouse scroll events.
    Solution:   Change CSI to K_SPECIAL when checking for a mapping. (Christopher
                Plewright, closes #11410)

    Patch 9.0.0803
    Problem:    readblob() cannot read from character device.
    Solution:   Use S_ISCHR() to not check the size. (Ken Takata, closes #11407)

    Patch 9.0.0804
    Problem:    Crash when trying to divide the largest negative number by -1.
    Solution:   Handle this case specifically.

    Patch 9.0.0805
    Problem:    Filetype autocmd may cause freed memory access.
    Solution:   Set the quickfix-busy flag while filling the buffer.

    Patch 9.0.0806
    Problem:    'langmap' works differently when there are modifiers.
    Solution:   Only apply 'langmap' to a character where modifiers have no
                effect. (closes #11395, closes #11404)

    Patch 9.0.0807
    Problem:    With 'smoothscroll' typing "0" may not go to the first column.
    Solution:   Recompute w_cline_height when needed.  Do not scroll up when it
                would move the cursor.

    Patch 9.0.0808
    Problem:    jsonnet filetype detection has a typo.
    Solution:   Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412)

    Patch 9.0.0809
    Problem:    Test for job writing to buffer fails.
    Solution:   Correct w_topline when deleting a buffer line.

    Patch 9.0.0810
    Problem:    readblob() returns empty when trying to read too much.
    Solution:   Return what is available.

    Patch 9.0.0811
    Problem:    Error if :echowin is preceded by a command modifier.
    Solution:   Do not give an error for range when there is a modifier.
                (closes #11414)

    Patch 9.0.0812
    Problem:    GUI mouse scrollwheel mappings don't work.
    Solution:   Add check for "gui.in_use". (Christopher Plewright, closes #11418)

    Patch 9.0.0813
    Problem:    Kitty terminal is not recognized.
    Solution:   Recognize Kitty by the termresponse and then do not set
                seenModifyOtherKeys, since Kitty doesn't support that.
                (issue #11413)

    Patch 9.0.0814
    Problem:    Aws config files are not recognized.
    Solution:   Use "confini" for aws config files. (Justin M. Keyes,
                closes #11416)

    Patch 9.0.0815
    Problem:    ":!" does not switch to the alternate screen.
    Solution:   For ":!" don't clear the previous command. (closes #11420,
                closes #11409)

    Patch 9.0.0816
    Problem:    CTRL-Z at end of file is always dropped.
    Solution:   Add the 'endoffile' option, like the 'endofline' option.
                (closes #11408, closes #11397)

    Patch 9.0.0817
    Problem:    Build error.
    Solution:   correct variable name.

    Patch 9.0.0818
    Problem:    "!ls" does not work.
    Solution:   Do not free memory that is in use.

    Patch 9.0.0819
    Problem:    Still a build error, tests are failing.
    Solution:   Correct recent changes. Add missing init for 'eof'.

    Patch 9.0.0820
    Problem:    Memory leak with empty shell command.
    Solution:   Free the empty string.

    Patch 9.0.0821
    Problem:    Memory leak with empty shell command.
    Solution:   Free the empty string.

    Patch 9.0.0822
    Problem:    Crash when dragging the statusline with a mapping.
    Solution:   Check for valid window pointer. (issue #11427)

    Patch 9.0.0823
    Problem:    Mouse drag test fails.
    Solution:   Only reset the mouse click flag when actually switching to another
                tab page.  Disable test that keeps failing.

    Patch 9.0.0824
    Problem:    Crash when using win_move_separator() in other tab page.
    Solution:   Check for valid window in current tab page.
                (closes #11479, closes #11427)

    Patch 9.0.0825
    Problem:    Cannot drag an entry in the tabpage line.
    Solution:   Clear dragwin instead of got_click. (closes #11483,
                closes #11482)

    Patch 9.0.0826
    Problem:    If 'endofline' is set the CTRL-Z may be written in the wrong
                place.
    Solution:   Write CTRL-Z at the end of the file.  Update the help to explain
                the possibilities better. (Ken Takata, closes #11486)

    Patch 9.0.0827
    Problem:    The <Home> key in tmux doesn't work when 'term' is set to "xterm".
                (Dominique Pellé)
    Solution:   Only use '@' in a termcap key entry for "1" when ";" follows.
                (closes #11429)

    Patch 9.0.0828
    Problem:    Various typos.
    Solution:   Correct typos. (closes #11432)

    Patch 9.0.0829
    Problem:    Wrong counts in macro comment.
    Solution:   Update the value counts. (closes #11480)

    Patch 9.0.0830
    Problem:    Compiling with Perl on Mac 12 fails.
    Solution:   Suppress infinite warnings. (closes #11499)

    Patch 9.0.0831
    Problem:    Compiler warning for redefining HAVE_DUP.
    Solution:   Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484)

    Patch 9.0.0832
    Problem:    Deprecation warning causes build failure.
    Solution:   Suppress deprecation warning. (closes #11503)

    Patch 9.0.0833
    Problem:    Mac: no +sound feature in huge build.
    Solution:   Enable +sound in Mac huge build. (closes #11497)

    Patch 9.0.0834
    Problem:    Warning for missing return type.
    Solution:   Add "int". (San James, closes #11496)

    Patch 9.0.0835
    Problem:    The window title is not redrawn when 'endoffile' changes.
    Solution:   redraw the window title when 'endoffile' is changed. (Ken Takata,
                closes #11488)

    Patch 9.0.0836
    Problem:    Wrong error when using extend() with funcref.
    Solution:   Better check the variable type. (closes #11468, closes #11455)

    Patch 9.0.0837
    Problem:    append() reports failure when not appending anything.
    Solution:   Only report failure when appending something. (closes #11498)

    Patch 9.0.0838
    Problem:    Compiler warnings for unused variables.
    Solution:   Adjust #ifdef and remove unused variables. (John Marriott)

    Patch 9.0.0839
    Problem:    Test may fail depending on sequence of events.
    Solution:   Accept error codes in either order. (Yee Cheng Chin,
                closes #11510)

    Patch 9.0.0840
    Problem:    Cannot change a slice of a const list. (Takumi KAGIYAMA)
    Solution:   Remove the const flag from the slice type. (closes #11490)

    Patch 9.0.0841
    Problem:    deletebufline() does not always return 1 on failure.
    Solution:   Refactor the code to make it work more predictable. (closes #11511)

    Patch 9.0.0842
    Problem:    Unicode range for Apple SF symbols is outdated.
    Solution:   Update to SF Symbols 4. (Yee Cheng Chin, closes #11474)

    Patch 9.0.0843
    Problem:    VHS tape files are not recognized.
    Solution:   Add a filetype pattern. (Carlos Alexandro Becker, closes #11452)

    Patch 9.0.0844
    Problem:    Handling 'statusline' errors is spread out.
    Solution:   Pass the option name to the lower levels so the option can be
                reset there when an error is encountered. (Luuk van Baal,
                closes #11467)

    Patch 9.0.0845
    Problem:    Shell command with just space gives strange error.
    Solution:   Skip white space at start of the argument. (Christian Brabandt,
                Shane-XB-Qian, closes #11515, closes #11495)

    Patch 9.0.0846
    Problem:    Using assert_fails() may cause hit-enter prompt.
    Solution:   Set no_wait_return. (closes #11522)

    Patch 9.0.0847
    Problem:    CI: not totally clear what MS-Windows version is used.
    Solution:   Show the Windows version. (Ken Takata, closes #11524)

    Patch 9.0.0848
    Problem:    Help item for --log argument is not aligned nicely.
    Solution:   Add a Tab. (Ken Takata, closes #11521)

    Patch 9.0.0849
    Problem:    Terminal mouse test is a bit flaky.
    Solution:   Add WaitFor() calls. (James McCoy closes #11519)  Tune wait times
                to reduce flakiness.

    Patch 9.0.0850
    Problem:    MS-Windows Terminal has unstable color control.
    Solution:   Do not try to read the old command prompt colortable, use modern
                VT sequences. (Christopher Plewright, closes #11450,
                closes #11373)

    Patch 9.0.0851
    Problem:    Terminal mouse test is still flaky.
    Solution:   Also use WaitForAssert().

    Patch 9.0.0852
    Problem:    Crypt test is skipped if xxd is not found.
    Solution:   Find xxd where it was supposed to be build.

    Patch 9.0.0853
    Problem:    Terminal mouse test is still flaky on MacOS M1.
    Solution:   Also wait for the file to have some contents.

    Patch 9.0.0854
    Problem:    No proper test for what 9.0.0846 fixes.
    Solution:   Run test in a terminal so that the hit-enter prompt can show up.
                (closes #11523)

    Patch 9.0.0855
    Problem:    Comment not located above the code it refers to.
    Solution:   Move the comment. (closes #11527)

    Patch 9.0.0856
    Problem:    MS-Windows: executable not found when running individual test.
    Solution:   Also look for vimd.exe. (Christopher Plewright, closes #11525)

    Patch 9.0.0857
    Problem:    Selecting MSVC 2017 does not set $PLATFORM.
    Solution:   Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485)

    Patch 9.0.0858
    Problem:    "!!sort" in a closed fold sorts too many lines.
    Solution:   Round to end of fold after adding the line count. (closes #11487)

    Patch 9.0.0859
    Problem:    Compiler warning for unused variable.
    Solution:   Add #ifdef.

    Patch 9.0.0860
    Problem:    MS-Windows: windres fails with clang 15.0.4.
    Solution:   Use llvm-windres. (John Marriott)

    Patch 9.0.0861
    Problem:    Solution for "!!sort" in closed fold is not optimal.
    Solution:   Use a different range instead of the subtle difference in handling
                a range with an offset. (issue #11487)

    Patch 9.0.0862
    Problem:    Default value of 'endoffile' is wrong.
    Solution:   The default must be 'noendoffile'.

    Patch 9.0.0863
    Problem:    col() and charcol() only work for the current window.
    Solution:   Add an optional winid argument. (Yegappan Lakshmanan,
                closes #11466, closes #11461)

    Patch 9.0.0864
    Problem:    Crash when using "!!" without a previous shell command.
    Solution:   Check "prevcmd" is not NULL. (closes #11487)

    Patch 9.0.0865
    Problem:    Duplicate arguments are not always detected.
    Solution:   Expand to full path before comparing arguments. (Nir Lichtman,
                closes #11505, closes #9402)

    Patch 9.0.0866
    Problem:    No test for what patch 8.2.2207 fixes.
    Solution:   Add a test case. (closes #11531)

    Patch 9.0.0867
    Problem:    Wildmenu redrawing code is spread out.
    Solution:   Refactor to move code together. (closes #11528)

    Patch 9.0.0868
    Problem:    MS-Windows: after Vim exits console resizing does not work
                properly.
    Solution:   Restore screen behavior checks for various WT and VTP
                combinations. (Christopher Plewright, closes #11526,
                closes #11507)

    Patch 9.0.0869
    Problem:    Bogus error when string used after :elseif.
    Solution:   Do not consider a double quote the start of a comment.
                (closes #11534)

    Patch 9.0.0870
    Problem:    Get E967 when using text property in quickfix window. (Sergey
                Vlasov)
    Solution:   Do not add an extra NUL and compute the text length correctly.
                (closes #11513)

    Patch 9.0.0871
    Problem:    Using freed memory when clearing augroup at more prompt.
    Solution:   Delay clearing augroup until it's safe. (closes #11441)

    Patch 9.0.0872
    Problem:    Code is indented more than needed.
    Solution:   Return early. (Yegappan Lakshmanan, closes #11538)

    Patch 9.0.0873
    Problem:    Using freed memory when executing mapclear at the more prompt.
    Solution:   Do not clear mappings while listing them. (closes #11438)

    Patch 9.0.0874
    Problem:    Using freed memory when executing unmenu at the more prompt.
    Solution:   Do not clear menus while listing them. (closes #11439)

    Patch 9.0.0875
    Problem:    Using freed memory when executing delfunc at the more prompt.
    Solution:   Check function list not changed in another place. (closes #11437)

    Patch 9.0.0876
    Problem:    Code is indented more than needed.
    Solution:   Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539)

    Patch 9.0.0877
    Problem:    Using freed memory with :comclear while listing commands.
    Solution:   Bail out when the command list has changed. (closes #11440)

    Patch 9.0.0878
    Problem:    Coverity warns for dead code.
    Solution:   Remove the dead code.

    Patch 9.0.0879
    Problem:    Unnecessary nesting in makefile.
    Solution:   Join "else" and "ifeq". (Ken Takata, closes #11547)

    Patch 9.0.0880
    Problem:    Preprocessor indenting is off.
    Solution:   Adjust preprocessor indentation. (Ken Takata, closes #11546)

    Patch 9.0.0881
    Problem:    Cannot get the currently showing mouse shape.
    Solution:   Add getmouseshape().

    Patch 9.0.0882
    Problem:    Using freed memory after SpellFileMissing autocmd uses bwipe.
    Solution:   Bail out if the window no longer exists.

    Patch 9.0.0883
    Problem:    A silent mapping may cause dots on the command line.
    Solution:   Don't show dots for completion if they are not going to be removed
                again. (closes #11501)

    Patch 9.0.0884
    Problem:    Mouse shape remains in op-pending mode after failed change.
    Solution:   Reset finish_op and restore it. (closes #11545)

    Patch 9.0.0885
    Problem:    Informational message has an error message number.
    Solution:   Use a message without an error number. (closes #11530)

    Patch 9.0.0886
    Problem:    Horizontal mouse scroll only works in the GUI.
    Solution:   Make horizontal mouse scroll also work in a terminal.
                (Christopher Plewright, closes #11448)

    Patch 9.0.0887
    Problem:    Cannot easily try out what codes various keys produce.
    Solution:   Add a script to gather key code information, with an initial list
                of codes to compare with.

    Patch 9.0.0888
    Problem:    MS-Windows GUI: CTRL-] does not work on Swiss keyboard.
    Solution:   Check the key code and don't consider it as a dead key. (Aedin
                Louis Xavier, closes #11556)

    Patch 9.0.0889
    Problem:    Keycode check script has a few flaws.
    Solution:   Sort on terminal name.  Ignore XTGETTCAP responses.  Check for
                version and status response.  Update entries.

    Patch 9.0.0890
    Problem:    No test for what patch 9.0.0827 fixes.
    Solution:   Add a test (still doesn't fail when fix is reverted).

    Patch 9.0.0891
    Problem:    Virtual text below after match has wrong highlight.
    Solution:   Restore search_attr only after the virtual text.
                (closes #11446)

    Patch 9.0.0892
    Problem:    May redraw when not needed, causing slow scrolling.
    Solution:   Do not redraw when w_skipcol doesn't change.  When w_skipcol
                changes only redraw from the top. (issue #11559)

    Patch 9.0.0893
    Problem:    'smoothscroll' cursor calculations wrong when 'number' is set.
    Solution:   Correct the code that computes the width. (closes #11492)

    Patch 9.0.0894
    Problem:    Virtual text property highlight ignores window background.
    Solution:   Combine text prop attribute with win_attr into extra_attr.
                (closes #11462)

    Patch 9.0.0895
    Problem:    File renamed twice in test; missing feature check.
    Solution:   Remove a rename() call.  Add check for cryptv feature.
                (closes #11564)

    Patch 9.0.0896
    Problem:    Test for home key fails when 'term' is "tmux".
    Solution:   Only save termcap entries that exist.  Adjust code for xHome to
                what xterm uses. (closes #11566)

    Patch 9.0.0897
    Problem:    Clinical Quality Language files are not recognized.
    Solution:   Add the "*.cql" pattern. (Matthew Gramigna, closes #11452)

    Patch 9.0.0898
    Problem:    With 'smoothscroll' cursor is one screen line too far down. (Ernie
                Rael)
    Solution:   Add a test that currently has the wrong result so that a fix can
                be made. (issue #11436)

    Patch 9.0.0899
    Problem:    The builtin terminals are in one long list.
    Solution:   Refactor into multiple lists and an index of the lists.

    Patch 9.0.0900
    Problem:    Cursor moves too far with 'smoothscroll'.
    Solution:   Only move as far as really needed. (Yee Cheng Chin, closes #11504)

    Patch 9.0.0901
    Problem:    Setting w_leftcol and handling side effects is confusing.
    Solution:   Use a function to set w_leftcol() and handle side effects.

    Patch 9.0.0902
    Problem:    Some mouse scroll code is not in a good place.
    Solution:   Refactor the code. (Christopher Plewright, closes #11561)

    Patch 9.0.0903
    Problem:    Key code checker doesn't check modifyOtherKeys resource.
    Solution:   Request the modifyOtherKeys resource value.  Drop resource DCS
                responses.

    Patch 9.0.0904
    Problem:    Various comment and indent flaws.
    Solution:   Improve comments and indenting.

    Patch 9.0.0905
    Problem:    Virtual text after the line wraps when 'wrap' is off.
    Solution:   Only set text_prop_follows when wrapping. (closes #11463)

    Patch 9.0.0906
    Problem:    Mouse scroll code is not optimal.
    Solution:   Properly organise Normal mode, Insert mode and common code.
                (Christopher Plewright, closes #11572)

    Patch 9.0.0907
    Problem:    Restoring window after WinScrolled may fail.
    Solution:   Lock the window layout when triggering WinScrolled.

    Patch 9.0.0908
    Problem:    With 'smoothscroll' cursor may end up in wrong position.
    Solution:   Correct the computation of screen lines. (Yee Cheng Chin,
                closes #11502)

    Patch 9.0.0909
    Problem:    Error message for layout change does not match action.
    Solution:   Pass the command to where the error is given. (closes #11573)

    Patch 9.0.0910
    Problem:    Setting lines in another buffer may not work well.
    Solution:   Make sure the buffer being changed has a window. (issue #11558)

    Patch 9.0.0911
    Problem:    With 'smoothscroll' set mouse click position may be wrong.
    Solution:   Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514)

    Patch 9.0.0912
    Problem:    libvterm with modifyOtherKeys level 2 does not match xterm.
    Solution:   Adjust key code escape sequences to be the same as what xterm
                sends in modifyOtherKeys level 2 mode.  Check the value of
                no_reduce_keys before using it.

    Patch 9.0.0913
    Problem:    Only a change in the current window triggers the WinScrolled
                event.
    Solution:   Trigger WinScrolled if any window scrolled or changed size.
                (issue #11576)

    Patch 9.0.0914
    Problem:    deletebufline() may move marks in the wrong window.
    Solution:   Find a window for the buffer being changed. (closes #11583)

    Patch 9.0.0915
    Problem:    WinScrolled may trigger immediately when defined.
    Solution:   Initialize the fields in all windows. (closes #11582)

    Patch 9.0.0916
    Problem:    getbufline() is inefficient for getting a single line.
    Solution:   Add getbufoneline().

    Patch 9.0.0917
    Problem:    The WinScrolled autocommand event is not enough.
    Solution:   Add WinResized and provide information about what changed.
                (closes #11576)

    Patch 9.0.0918
    Problem:    MS-Windows: modifier keys do not work with mouse scroll events.
    Solution:   Use K_SPECIAL instead of CSI for the modifier keys. (Christopher
                Plewright, closes #11587)

    Patch 9.0.0919
    Problem:    Build failure with tiny features.
    Solution:   Adjust #ifdef's.

    Patch 9.0.0920
    Problem:    Cannot find an import prefixed with "s:". (Doug Kearns)
    Solution:   Skip over the "s:". (closes #11585)

    Patch 9.0.0921
    Problem:    Missing defined(PROTO) in #ifdef.
    Solution:   Adjust #ifdef so that proto works with different features.
                Clean up some preprocessor indenting.

    Patch 9.0.0922
    Problem:    Mermaid files are not recognized.
    Solution:   Add patterns for Mermaid. (Crag MacEachern)

    Patch 9.0.0923
    Problem:    Second SIGWINCH signal may be ignored.
    Solution:   When set_shellsize() is busy when called then run the inner code
                again when it's done.  (issue #424)

    Patch 9.0.0924
    Problem:    The first termcap entry of a builtin termcap is not used.
    Solution:   Remove increment that was previously skipping the KS_NAME entry.

    Patch 9.0.0925
    Problem:    Two conditions are always false.
    Solution:   Remove the conditions.  Update return value types to make clear
                what could be returned. (closes #11593)

    Patch 9.0.0926
    Problem:    Coverity warns for not using return value of dict_add().
    Solution:   When dict_add() fails then don't call hash_remove().

    Patch 9.0.0927
    Problem:    Coverity warns for using a NULL pointer.
    Solution:   Check for memory allocation failure.

    Patch 9.0.0928
    Problem:    Using Ruby LDFLAGS may cause build problems.
    Solution:   Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal,
                closes #11592)

    Patch 9.0.0929
    Problem:    Build failure with tiny version. (Tony Mechelynck)
    Solution:   Add #ifdef.

    Patch 9.0.0930
    Problem:    Cannot debug the Kitty keyboard protocol with TermDebug.
    Solution:   Add Kitty keyboard protocol support to the libvterm fork.
                Recognize the escape sequences that the protocol generates.  Add
                the 'keyprotocol' option to allow the user to specify for which
                terminal what protocol is to be used, instead of hard-coding this.
                Add recognizing the kitty keyboard protocol status.

    Patch 9.0.0931
    Problem:    MS-Windows: mouse column limited to 223.
    Solution:   Use two bytes for each mouse coordinate.  Add the mouse position
                to scroll events. (Christopher Plewright, closes #11597)

    Patch 9.0.0932
    Problem:    Oblivion files are not recognized.
    Solution:   Recognize Oblivion files and alike as "obse". (closes #11540)

    Patch 9.0.0933
    Problem:    Kitty shows "already at oldest change" on startup.
    Solution:   When receiving the keyboard protocol state return the ignore key.
                (closes #11601)

    Patch 9.0.0934
    Problem:    Various code formatting issues.
    Solution:   Improve code formatting.

    Patch 9.0.0935
    Problem:    When using dash it may not be recognize as filetype "sh".
    Solution:   Add checks for "dash". (Eisuke Kawashima, closes #11600)

    Patch 9.0.0936
    Problem:    Wrong type for "isunnamed" returned by getreginfo().
    Solution:   Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598)

    Patch 9.0.0937
    Problem:    Forked repositories send out useless email.
    Solution:   When Coverity fails to run just ignore it. (Shane-XB-Qian,
                closes #11604)

    Patch 9.0.0938
    Problem:    MS-Windows: debug executable not found when running test.
    Solution:   Look for vimd.exe. (Christopher Plewright, closes #11602)

    Patch 9.0.0939
    Problem:    Still using simplified mappings when using the kitty keyboard
                protocol.
    Solution:   Use the kitty_protocol_state value to decide whether to use
                simplified mappings.  Improve how seenModifyOtherKeys is set and
                reset.

    Patch 9.0.0940
    Problem:    Crash when typing a letter in a terminal window. (Shane-XB-Qian)
    Solution:   Use the "vterm" variable instead of getting the terminal pointer
                from the current buffer.  (closes #11608)

    Patch 9.0.0941
    Problem:    CI failures in sound dummy.
    Solution:   Temporarily disable building sound dummy. (closes #11610)

    Patch 9.0.0942
    Problem:    Workflow Description Language files are not recognized.
    Solution:   Add a pattern for the "wdl" filetype. (Matt Dunford,
                closes #11611)

    Patch 9.0.0943
    Problem:    Pretending to go out of Insert mode when Esc is received has side
                effects.
    Solution:   When the kitty keyboard protocol is enabled expect Esc to always
                be the start of an escape sequence.

    Patch 9.0.0944
    Problem:    'cursorline' causes virtual text highlight to continue.
    Solution:   Save and restore line_attr. (closes #11588)

    Patch 9.0.0945
    Problem:    Failures in the cursorline test.
    Solution:   Reset extra_attr only after a text property.

    Patch 9.0.0946
    Problem:    CI: Error in Coverity flow is not reported.
    Solution:   Use another way to avoid errors in a forked repository. (Ken
                Takata, closes #11609)

    Patch 9.0.0947
    Problem:    Invalid memory access in substitute with function that goes to
                another file.
    Solution:   Check for text locked in CTRL-W gf.

    Patch 9.0.0948
    Problem:    'ttyfast' is set for arbitrary terminals.
    Solution:   Always set 'ttyfast'. (closes #11549)

    Patch 9.0.0949
    Problem:    Crash when unletting a variable while listing variables.
    Solution:   Disallow changing a hashtable while going over the entries.
                (closes #11435)

    Patch 9.0.0950
    Problem:    The pattern "\_s\zs" matches at EOL.
    Solution:   Make the pattern "\_s\zs" match at the start of the next line.
                (closes #11617)

    Patch 9.0.0951
    Problem:    Trying every character position for a match is inefficient.
    Solution:   Use the start position of the match ignoring "\zs".

    Patch 9.0.0952
    Problem:    Eclipse preference files are not recognized.
    Solution:   Add a pattern to use "jproperties" for Eclipse preference files.
                (closes #11618)

    Patch 9.0.0953
    Problem:    Part of making search more efficient is missing.
    Solution:   Add the change in searchit().

    Patch 9.0.0954
    Problem:    Cannot detect whether modifyOtherKeys is enabled.
    Solution:   Use XTQMODKEYS introduced by xterm version 377 to request the
                modifyOtherKeys level.  Update the keycode check results.

    Patch 9.0.0955
    Problem:    Libvterm does not support the XTQMODKEYS request.
    Solution:   Implement the XTQMODKEYS request and response.  Update the keycode
                check results.

    Patch 9.0.0956
    Problem:    Terminal tests fail when using key with modifier.
    Solution:   Use the modifyOtherKeys encoding when using RunVimInTerminal().

    Patch 9.0.0957
    Problem:    Tests fail without the terminal feature.
    Solution:   Move functions to another utility script.

    Patch 9.0.0958
    Problem:    Messages test is flaky.
    Solution:   Add a short delay.

    Patch 9.0.0959
    Problem:    Error when using the "File Settings / Text Width" menu.
    Solution:   Use str2nr(). (closes #11624)

    Patch 9.0.0960
    Problem:    Error when using the "Tools / Spelling / Find More Languages"
                menu.
    Solution:   Remove "<SID>".  Reset "g:menutrans_set_lang_to" when 'encoding'
                changes. (closes #11625)

    Patch 9.0.0961
    Problem:    Using deletebufline() may jump to another window.
    Solution:   Do not use a window where the buffer was only in the past.
                (closes #11594)

    Patch 9.0.0962
    Problem:    Virtual text below cannot be placed below empty lines.
    Solution:   Add one character. (James Alvarado, closes #11606, closes #11520)

    Patch 9.0.0963
    Problem:    Function name does not match autocmd event name.
    Solution:   Rename "optionsset" to "optionset". (closes #11630)

    Patch 9.0.0964
    Problem:    Status line of other window not redrawn when dragging it when
                'splitkeep' is set to "screen".
    Solution:   Set w_redr_status earlier. (Luuk van Baal, closes #11635,
                closes #11632)

    Patch 9.0.0965
    Problem:    Using one window for executing autocommands is insufficient.
    Solution:   Use up to five windows for executing autocommands.

    Patch 9.0.0966
    Problem:    Some compilers don't allow a declaration after a label.
    Solution:   Move the declaration to the start of the block. (John Marriott)

    Patch 9.0.0967
    Problem:    Leaking memory from autocmd windows.
    Solution:   Free window when auc_win is not NULL.

    Patch 9.0.0968
    Problem:    GUI mouse event test is a bit flaky.
    Solution:   Mark the test case as flaky.  Move test function failure checks to
                a separate test function.

    Patch 9.0.0969
    Problem:    Matchparen highlight is not updated when switching buffers.
    Solution:   Listen to the BufLeave and the BufWinEnter autocmd events.
                (closes #11626)

    Patch 9.0.0970
    Problem:    Coverity warns for uninitialized variable.
    Solution:   Initialize "ren_ret".

    Patch 9.0.0971
    Problem:    Escape sequences not recognized without the termresponse feature.
    Solution:   Recognize escape sequences to avoid display mess up.

    Patch 9.0.0972
    Problem:    Build failure on some systems.
    Solution:   Adjust #ifdefs related to the termresponse feature.

    Patch 9.0.0973
    Problem:    Kitty keyboard protocol key not decoded when it has an unsupported
                modifier, such as NumLock.
    Solution:   Accept a key with any modifier. (closes #11638)

    Patch 9.0.0974
    Problem:    Even when Esc is encoded a timeout is used.
    Solution:   Use K_ESC when an encoded Esc is found.

    Patch 9.0.0975
    Problem:    Virtual text below an empty line is misplaced when 'number' is
                set.
    Solution:   Adjust the computations. (closes #11629)

    Patch 9.0.0976
    Problem:    Enabling the kitty keyboard protocol uses push/pop.
    Solution:   Use the start/stop codes to avoid unpredictable behavior.

    Patch 9.0.0977
    Problem:    It is not easy to see what client-server commands are doing.
    Solution:   Add channel log messages if ch_log() is available.  Move the
                channel logging and make it available with the +eval feature.

    Patch 9.0.0978
    Problem:    Build errors without the +channel feature. (John Marriott)
    Solution:   Adjust #ifdefs.

    Patch 9.0.0979
    Problem:    ch_log() text can be hard to find in the log file.
    Solution:   Prepend "ch_log()" to the text.

    Patch 9.0.0980
    Problem:    The keyboard state response may end up in a shell command.
    Solution:   Only request the keyboard protocol state when the typeahead is
                empty, no more commands are following and not exiting.  Add the
                t_RK termcap entry for this.

    Patch 9.0.0981
    Problem:    Build error in tiny version.
    Solution:   Add #ifdef.

    Patch 9.0.0982
    Problem:    'cursorline' not drawn before virtual text below.
    Solution:   Add the 'cursorline' attribute to the empty space. (closes #11647)

    Patch 9.0.0983
    Problem:    Stray characters displayed when starting the GUI.
    Solution:   Add t_RK to the list of terminal options.

    Patch 9.0.0984
    Problem:    GUI: remote_foreground() does not always work. (Ron Aaron)
    Solution:   For GTK use gtk_window_set_keep_above(). (issue #11641)

    Patch 9.0.0985
    Problem:    When using kitty keyboard protocol function keys may not work.
                (Kovid Goyal)
    Solution:   Recognize CSI ending in [ABCDEFHPQRS] also when the termcap
                entries are not specified. (closes #11648)

    Patch 9.0.0986
    Problem:    Build failure with tiny version.
    Solution:   Add #ifdef.

    Patch 9.0.0987
    Problem:    File missing from list of distributed files.
    Solution:   Add logfile.pro to list of distributed files.

    Patch 9.0.0988
    Problem:    Using feedkeys() does not show up in a channel log.
    Solution:   Add ch_log() calls and clean up the code.

    Patch 9.0.0989
    Problem:    Popupwin test is more flaky on MacOS.
    Solution:   Use a longer wait time.

    Patch 9.0.0990
    Problem:    Callback name argument is changed by setqflist().
    Solution:   Use the expanded function name for the callback, do not store it
                in the argument. (closes #11653)

    Patch 9.0.0991
    Problem:    Crash when reading help index with various options set. (Marius
                Gedminas)
    Solution:   Do not set wlv.c_extra to NUL when wlv.p_extra is NULL.
                (closes #11651)

    Patch 9.0.0992
    Problem:    Vim9 script: get E1096 when comment follows return.
    Solution:   Adjust condition for return without expression. (closes #11654)

    Patch 9.0.0993
    Problem:    Display errors when adding or removing text property type.
    Solution:   Perform a full redraw.  Only use text properties for which the
                type is defined. (closes #11655)

    Patch 9.0.0994
    Problem:    Tests for empty prop type name fail.
    Solution:   Correct the error number.

    Patch 9.0.0995
    Problem:    Padding before virtual text below is highlighted when 'number' and
                'nowrap' are set.
    Solution:   Save and restore n_attr_skip. (closes #11643)

    Patch 9.0.0996
    Problem:    If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys.
    Solution:   Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and
                let the default value of 'keyprotocol' add those.

    Patch 9.0.0997
    Problem:    Coverity warns for dead code.
    Solution:   Don't use ASCII_ISUPPER() for a negative value.

    Patch 9.0.0998
    Problem:    "gk" may reset skipcol when not needed.
    Solution:   Only reset skipcol if the cursor column is less.

    Patch 9.0.0999
    Problem:    Memory may leak.
    Solution:   Free the sound callback function name if it was allocated.

    Patch 9.0.1000
    Problem:    With 'smoothscroll' skipcol may be reset unnecessarily.
    Solution:   Check the line does actually fit in the window.

    Patch 9.0.1001
    Problem:    Classes are not documented or implemented yet.
    Solution:   Make the first steps at documenting Vim9 objects, classes and
                interfaces.  Make initial choices for the syntax.  Add a skeleton
                implementation.  Add "public" and "this" in the command table.

    Patch 9.0.1002
    Problem:    Command list test fails.
    Solution:   Add commands added to the list.

    Patch 9.0.1003
    Problem:    Tiny build fails.
    Solution:   Remove #ifdef from error message.

    Patch 9.0.1004
    Problem:    Suspend test sometimes fails on MacOS.
    Solution:   Wait a short while for terminal responses.

    Patch 9.0.1005
    Problem:    A failed test may leave a swap file behind.
    Solution:   Delete the swap file to avoid another test to fail.  Use another
                file name.

    Patch 9.0.1006
    Problem:    Suspend test still sometimes fails on MacOS.
    Solution:   Wait a little while for terminal responses.

    Patch 9.0.1007
    Problem:    There is no way to get a list of swap file names.
    Solution:   Add the swapfilelist() function.  Use it in the test script to
                clean up.  Remove deleting individual swap files.

    Patch 9.0.1008
    Problem:    Test for swapfilelist() fails on MS-Windows.
    Solution:   Only check the tail of the path.  Mark a test as flaky.

    Patch 9.0.1009
    Problem:    Test for catch after interrupt is flaky on MS-Windows.
    Solution:   Mark the test as flaky.

    Patch 9.0.1010
    Problem:    Stray warnings for existing swap files.
    Solution:   Wipe out the buffer until it has no name and no swap file.

    Patch 9.0.1011
    Problem:    ml_get error when using screenpos().
    Solution:   Give an error for the line number. (closes #11661)

    Patch 9.0.1012
    Problem:    Tests may get stuck in buffer with swap file.
    Solution:   Bail out when bwipe! doesn't get another buffer.

    Patch 9.0.1013
    Problem:    Suspend test often fails on Mac OS.
    Solution:   Make t_RP empty.

    Patch 9.0.1014
    Problem:    Zir files are not recognized.
    Solution:   Add a pattern for Zir files. (closes #11664)

    Patch 9.0.1015
    Problem:    Without /dev/urandom srand() seed is too predictable.
    Solution:   Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto,
                closes #11656)

    Patch 9.0.1016
    Problem:    screenpos() does not count filler lines for diff mode.
    Solution:   Add filler lines. (closes 11658)

    Patch 9.0.1017
    Problem:    Test for srand() fails on MS-Windows.
    Solution:   Do not expect the same result a second time.

    Patch 9.0.1018
    Problem:    Suspend test still fails on Mac OS.
    Solution:   Make 'keyprotocol' empty.

    Patch 9.0.1019
    Problem:    'smoothscroll' and virtual text above don't work together.
                (Yee Cheng Chin)
    Solution:   Skip virtual text above when w_skipcol is non-zero.
                (closes #11665)

    Patch 9.0.1020
    Problem:    Tests call GetSwapFileList() before it is defined.
    Solution:   Move the call to after defining the function. (Christopher
                Plewright)

    Patch 9.0.1021
    Problem:    Test trips over g:name.
    Solution:   Delete g:name after using it.

    Patch 9.0.1022
    Problem:    Suspend test fails on Mac OS when suspending Vim.
    Solution:   Make 'keyprotocol' empty.

    Patch 9.0.1023
    Problem:    MS-Windows: dynamic loading of libsodium doesn't work.
    Solution:   Add "randombytes_random". (Ken Takata, closes #11667)

    Patch 9.0.1024
    Problem:    CI doesn't use the latest FreeBSD version.
    Solution:   Go from 12.3 to 12.4. (closes #11423)

    Patch 9.0.1025
    Problem:    WinScrolled is not triggered when filler lines change.
    Solution:   Add "topfill" to the values that WinScrolled triggers on.
                (closes #11668)

    Patch 9.0.1026
    Problem:    type of w_last_topfill is wrong.
    Solution:   Use "int" instead of "linenr_T". (closes #11670)

    Patch 9.0.1027
    Problem:    LGTM is soon shutting down.
    Solution:   Remove LGTM from CI. (closes #11671)

    Patch 9.0.1028
    Problem:    Mouse shape test is flaky, especially on Mac OS.
    Solution:   Instead of starting all timers at the same time, start the next
                one in the callback of the previous one. (Yee Cheng Chin,
                closes #11673)  Also use "bwipe!" instead of "close!" to avoid
                swap files remaining.

    Patch 9.0.1029
    Problem:    Autoload directory missing from distribution.
    Solution:   Add the autoload/zig directory to the list of distributed files.

    Patch 9.0.1030
    Problem:    Using freed memory with the cmdline popup menu.
    Solution:   Clear the popup menu when clearing the matches. (closes #11677)

    Patch 9.0.1031
    Problem:    Vim9 class is not implemented yet.
    Solution:   Add very basic class support.

    Patch 9.0.1032
    Problem:    Test fails when terminal feature is missing.
    Solution:   Use CheckRunVimInTerminal.

    Patch 9.0.1033
    Problem:    Tiny build fails because of conflicting typedef.
    Solution:   Remove one typedef.

    Patch 9.0.1034
    Problem:    Reporting swap file when windows are split.
    Solution:   Close extra windows after running a test.

    Patch 9.0.1035
    Problem:    Object members are not being marked as used, garbage collection
                may free them.
    Solution:   Mark object members as used.  Fix reference counting.

    Patch 9.0.1036
    Problem:    Undo misbehaves when writing from an insert mode mapping.
    Solution:   Sync undo when writing. (closes #11674)

    Patch 9.0.1037
    Problem:    lalloc(0) error for a class without members.
    Solution:   Don't allocate room for members if there aren't any.
                Don't create the class if there was an error.

    Patch 9.0.1038
    Problem:    Function name does not match what it is used for.
    Solution:   Include the modifier in the name. (closes #11679)

    Patch 9.0.1039
    Problem:    Using a <Cmd> mapping CmdlineChanged may be triggered twice.
    Solution:   Count the number of times CmdlineChanged is triggered and avoid
                doing it twice. (closes #116820

    Patch 9.0.1040
    Problem:    Test for <Cmd> mapping with CmdlineChanged fails.
    Solution:   Put back the check for the cmdline length not changing.

    Patch 9.0.1041
    Problem:    Cannot define a method in a class.
    Solution:   Implement defining an object method.  Make calling an object
                method work.

    Patch 9.0.1042
    Problem:    ASAN gives false alarm about array access.
    Solution:   Use an intermediate pointer.

    Patch 9.0.1043
    Problem:    Macro has confusing name and is duplicated.
    Solution:   Use one macro with an understandable name. (closes #11686)

    Patch 9.0.1044
    Problem:    Setting window height using Python may cause errors.
    Solution:   When setting "curwin" also set "curbuf". (closes #11687)

    Patch 9.0.1045
    Problem:    In a class object members cannot be initialized.
    Solution:   Support initializing object members. Make "disassemble" work on
                an object method.

    Patch 9.0.1046
    Problem:    Class method disassemble test fails on MS-Windows.
    Solution:   Do not match with a specific size.

    Patch 9.0.1047
    Problem:    Matchparen is slow.
    Solution:   Actually use the position where the match started, not the
                position where the search started. (closes #11644)

    Patch 9.0.1048
    Problem:    With "screenline" in 'culopt' cursorline highlight is wrong.
    Solution:   Apply the priority logic also when "screenline is in 'culopt'.
                (closes #11696)

    Patch 9.0.1049
    Problem:    Crash when opening a very small terminal window.
    Solution:   Instead of crashing fix the cursor position. (closes #11697)

    Patch 9.0.1050
    Problem:    Using freed memory when assigning to variable twice.
    Solution:   Make copy of the list type. (closes #11691)

    Patch 9.0.1051
    Problem:    After a failed CTRL-W ] next command splits window.
    Solution:   Reset postponed_split. (Rob Pilling, closes #11698)

    Patch 9.0.1052
    Problem:    Using freed memory on exit when EXITFREE is defined.
    Solution:   Make a deep copy of the type.  Make sure TTFLAG_STATIC is not set
                in the copy.

    Patch 9.0.1053
    Problem:    Default constructor arguments are not optional.
    Solution:   Use "= v:none" to make constructor arguments optional.

    Patch 9.0.1054
    Problem:    Object member can't get type from initializer.
    Solution:   If there is no type specified try to use the type of the
                initializer.  Check for a valid type.

    Patch 9.0.1055
    Problem:    Coverity warns for using uninitialized memory.
    Solution:   Clear the "lhs" field earlier.

    Patch 9.0.1056
    Problem:    Leaking memory when disassembling an object method.
    Solution:   Free the typval of the class.

    Patch 9.0.1057
    Problem:    Conflict between supercollider and scala filetype detection.
    Solution:   Do not check for "Class : Method", it can appear in both
                filetypes. (Chris Kipp, closes #11699)

    Patch 9.0.1058
    Problem:    String value of class and object do not have useful information.
    Solution:   Add the class name and for the object the member values.

    Patch 9.0.1059
    Problem:    Build failure with some compilers that can't handle a
                declaration directly after a "case" statement.
    Solution:   Add a block to put the declarations in.

    Patch 9.0.1060
    problem:    Private and public object members are not implemented yet.
    Solution:   Implement private and public object members.

    Patch 9.0.1061
    Problem:    Cannot display 'showcmd' somewhere else.
    Solution:   Add the 'showcmdloc' option. (Luuk van Baal, closes #11684)

    Patch 9.0.1062
    Problem:    Some test function names do not match what they are doing.
    Solution:   Leave out user data for the test that is called "NoUserData".
                (closes #11703)

    Patch 9.0.1063
    Problem:    When using Kitty a shell command may mess up the key protocol
                state.
    Solution:   Output t_te before t_TE.  If t_te switches between the main and
                the alternate screen then deactivating the key protocol by t_TE
                should happen after switching screen. (issue #11705)

    Patch 9.0.1064
    Problem:    Code for making 'shortmess' temporarily empty is repeated.
    Solution:   Add functions for making 'shortmess' empty and restoring it.
                (Christian Brabandt, closes #11709)

    Patch 9.0.1065
    Problem:    A shell command switching screens may still have a problem with
                the kitty keyboard protocol.
    Solution:   Disable the kitty keyboard protocol both in the current and the
                alternate screen, if there are indications it might be needed.
                (issue #11705)  Also fix naming.

    Patch 9.0.1066
    Problem:    Test function name is wrong.
    Solution:   Rename to what is actually being tested. (closes #11712)

    Patch 9.0.1067
    Problem:    In diff mode virtual text is highlighted incorrectly. (Rick Howe)
    Solution:   Do not use diff attributes for virtual text. (closes #11714)

    Patch 9.0.1068
    Problem:    No information about whether requesting term codes has an effect.
    Solution:   Add ch_log() calls to report the effect of term code responses.
                Avoid deleting an entry and then adding back the same one.

    Patch 9.0.1069
    Problem:    Diff mode highlight fails for special characters.
    Solution:   Adjust condition for setting "diff_hlf".

    Patch 9.0.1070
    Problem:    Reading beyond array size.
    Solution:   Only use name[0] and name[1], do not use "name" as a string.

    Patch 9.0.1071
    Problem:    Codecov action version is too specific.
    Solution:   Only use "v3" to automatically use the latest stable version.
                (closes #11720)

    Patch 9.0.1072
    Problem:    screenpos() column result in fold may be too small.
    Solution:   Add space of 'number', sign column, etc. (closes #11715)

    Patch 9.0.1073
    Problem:    Using "xterm-kitty" for 'term' causes problems.
    Solution:   Remove the "xterm-" part when 'term' is set from $TERM.  Detect a
                few kitty-specific properties based on the version response
                instead of the terminal name.

    Patch 9.0.1074
    Problem:    Class members are not supported yet.
    Solution:   Add initial support for class members.

    Patch 9.0.1075
    Problem:    build fails if the compiler doesn't allow for a declaration right
                after "case".
    Solution:   Add a block.

    Patch 9.0.1076
    Problem:    ASAN complains about NULL argument.
    Solution:   Skip memmove() when there is nothing to move.

    Patch 9.0.1077
    Problem:    Can add text property with negative ID before virtual text
                property.
    Solution:   Remember that a text property with a negative ID was used and give
                an appropriate error message. (closes #11725)
                Fix index computation.

    Patch 9.0.1078
    Problem:    With the +vartabs feature indent folding may use wrong 'tabstop'.
    Solution:   Use the "buf" argument instead of "curbuf".

    Patch 9.0.1079
    Problem:    Leaking memory when defining a user command fails.
    Solution:   Free "compl_arg" when needed. (closes #11726)

    Patch 9.0.1080
    Problem:    The "kitty" terminfo entry is not widespread, resulting in the
                kitty terminal not working properly.
    Solution:   Go back to using "xterm-kitty" and avoid the problems it causes in
                another way.

    Patch 9.0.1081
    Problem:    Using "->" with split lines does not always work.
    Solution:   Avoid trying to get another line. (closes #11723)

    Patch 9.0.1082
    Problem:    Some jsonc files are not recognized.
    Solution:   Add patterns for jsonc and move some from json to jsonc.
                (closes #11711)

    Patch 9.0.1083
    Problem:    Empty and comment lines in a class cause an error.
    Solution:   Skip empty and comment lines. (closes #11734)

    Patch 9.0.1084
    Problem:    Code handling low level MS-Windows events cannot be tested.
    Solution:   Add test_mswin_event() and tests using it. (Christopher Plewright,
                closes #11622)

    Patch 9.0.1085
    Problem:    Compiler warns for uninitialized variable.
    Solution:   Initialize the variable.  Remove unused function. (John Marriott)

    Patch 9.0.1086
    Problem:    Display wrong in Windows terminal after exiting Vim.
    Solution:   Apply screen restore fix for Windows 11 also to Windows 10 builds.
                (Christopher Plewright, closes #11713, closes #11706)

    Patch 9.0.1087
    Problem:    Autocommand test sometimes fails.
    Solution:   Add a short delay. (James McCoy, closes #11737)

    Patch 9.0.1088
    Problem:    Clang warns for unused variable.
    Solution:   Adjust #ifdef. (John Marriott)

    Patch 9.0.1089
    Problem:    unnecessary assignment
    Solution:   Remove the assignment. (Luuk van Baal, closes #1136)

    Patch 9.0.1090
    Problem:    FHIR Shorthand files are not recognized.
    Solution:   Add a pattern to detect FSH files. (Matthew Gramigna,
                closes #11738)

    Patch 9.0.1091
    Problem:    Assignment to non-existing member causes a crash. (Yegappan
                Lakshmanan)
    Solution:   Give an error message and bail out when a member cannot be found.

    Patch 9.0.1092
    Problem:    Search error message doesn't show used pattern.
    Solution:   Pass the actually used pattern to where the error message is
                given. (Rob Pilling, closes #11742)

    Patch 9.0.1093
    Problem:    Using freed memory of object member. (Yegappan Lakshmanan)
    Solution:   Make a copy of the object member when getting it.

    Patch 9.0.1094
    Problem:    Compiler warning when HAS_MESSAGE_WINDOW is not defined.
    Solution:   Add UNUSED.

    Patch 9.0.1095
    Problem:    Using freed memory when declaration fails. (Yegappan Lakshmanan)
    Solution:   After unreferencing an object set the reference to NULL.

    Patch 9.0.1096
    Problem:    Reallocating hashtab when the size didn't change.
    Solution:   Bail out when the hashtab is already the desired size.

    Patch 9.0.1097
    Problem:    Tests are failing.
    Solution:   Do clean up a hashtab when at the initial size.

    Patch 9.0.1098
    Problem:    Code uses too much indent.
    Solution:   Use an early return. (Yegappan Lakshmanan, closes #11747)

    Patch 9.0.1099
    Problem:    Trying to resize a hashtab may cause a problem.
    Solution:   Do not try to resize a hashtab before adding an item.

    Patch 9.0.1100
    Problem:    A hashtab with many removed items is not cleaned up.
    Solution:   Re-hash a hashtab even when the size didn't change if too many
                items were removed.

    Patch 9.0.1101
    Problem:    Unused global variable.
    Solution:   Remove the variable. (closes #11752)

    Patch 9.0.1102
    Problem:    Complicated use of #ifdef.
    Solution:   Simplify #ifdef use. (Ken Takata, closes #11745)

    Patch 9.0.1103
    Problem:    jq files are not recognized.
    Solution:   Add detection of Jq files. (David McDonald, closes #11743)

    Patch 9.0.1104
    Problem:    Invalid memory access when checking function argument types.
    Solution:   Do not check beyond the number of arguments. (closes #11755)

    Patch 9.0.1105
    Problem:    Code is indented too much.
    Solution:   Use an early return. (Yegappan Lakshmanan, closes #11756)

    Patch 9.0.1106
    Problem:    Not all postfix files are recognized.
    Solution:   Recognize main.cf.proto files. (closes #11732)

    Patch 9.0.1107
    Problem:    Float constant not recognized as float.
    Solution:   Check the vartype instead of comparing with t_float.
                (closes #11754)

    Patch 9.0.1108
    Problem:    Type error when using "any" type and adding a number to a float.
    Solution:   Accept both a number and a float. (closes #11753)

    Patch 9.0.1109
    Problem:    Leaking allocated type.
    Solution:   Reset the "static" flag in the allocated type copy.

    Patch 9.0.1110
    Problem:    Build fails on Mac OS X 10.4/10.5 .
    Solution:   Check if the dispatch/dispatch.h header exists. (Evan Miller,
                closes #11746)

    Patch 9.0.1111
    Problem:    Termcap entries for RGB colors are not set automatically.
    Solution:   Always set the termcap entries when +termguicolors is enabled.

    Patch 9.0.1112
    Problem:    test_mswin_event() can hang.
    Solution:   Add the "execute" argument to process events right away.
                (Christopher Plewright, closes #11760)

    Patch 9.0.1113
    Problem:    Users cannot easily try out a PR.
    Solution:   Add an "artifacts" section to the AppVeyor CI config. (Christian
                Brabandt, closes #11762)

    Patch 9.0.1114
    Problem:    CI does not use the latest Python version.
    Solution:   Switch from Python 3.10 to 3.11. (closes #11761)

    Patch 9.0.1115
    Problem:    Code is indented more than needed.
    Solution:   Use an early return to reduce indenting. (Yegappan Lakshmanan,
                closes #11758)

    Patch 9.0.1116
    Problem:    Compiler may complain about an unused function.
    Solution:   Add #ifdef. (John Marriott)

    Patch 9.0.1117
    Problem:    Terminfo entries for bracketed paste are not used.
    Solution:   Use the newly added terminfo entries for bracketed paste.
                Correct mixup of output strings and key codes.

    Patch 9.0.1118
    Problem:    Sporadic test failures when using a terminal window.
    Solution:   Adjust waiting times. (James McCoy, closes #11763)

    Patch 9.0.1119
    Problem:    Type of arguments not checked when calling a partial.
    Solution:   Give an error for a wrong argument type. (closes #11753)

    Patch 9.0.1120
    Problem:    Tex filetype detection not sufficiently tested.
    Solution:   Add more test cases for "tex" detection. (Jonas Strittmatter,
                closes #11765)

    Patch 9.0.1121
    Problem:    Cursor positioning and display problems with 'smoothscroll' and
                using "zt", "zb" or "zz".
    Solution:   Adjust computations and conditions. (Yee Cheng Chin,
                closes #11764)

    Patch 9.0.1122
    Problem:    Class member access is not fully tested yet.
    Solution:   Add more tests.

    Patch 9.0.1123
    Problem:    Class function not implemented yet.
    Solution:   Implement defining and calling a class function.

    Patch 9.0.1124
    Problem:    Virtual text at a column position is truncated at the window edge.
                (Yegappan Lakshmanan)
    Solution:   Do not truncated virtual text that is placed at a column.

    Patch 9.0.1125
    Problem:    Memory leak when using class functions.
    Solution:   Clear and free the array with class functions.

    Patch 9.0.1126
    Problem:    Bracketed paste can be enabled when pasted text is not recognized.
    Solution:   Output t_BE only when t_PS and t_PE are set.

    Patch 9.0.1127
    Problem:    No error if function argument shadows class member.
    Solution:   Give an error for shadowing a class member.

    Patch 9.0.1128
    Problem:    Build failure.
    Solution:   Add type cast.  Add missing error messages.

    Patch 9.0.1129
    Problem:    Sporadic Test_range() failure.
    Solution:   Clear typeahead.  Move to a separate function. (issue #22771)

    Patch 9.0.1130
    Problem:    Unexpected output when autoloading a script for an interactive
                operation.
    Solution:   Reset "KeyTyped" while loading a script and when handling a nested
                function. (closes #11773)

    Patch 9.0.1131
    Problem:    Build failure without the +eval feature.
    Solution:   Move code inside #ifdef.

    Patch 9.0.1132
    Problem:    Code is indented more than needed.
    Solution:   Use an early return to reduce indentation. (Yegappan Lakshmanan,
                closes #11769)

    Patch 9.0.1133
    Problem:    Error message names do not match the items.
    Solution:   Add "_str" when the text contains "%s".

    Patch 9.0.1134
    Problem:    Comparing objects uses identity instead of equality.
    Solution:   Compare the object values.

    Patch 9.0.1135
    Problem:    Missing function argument.
    Solution:   Add ignore case flag.

    Patch 9.0.1136
    Problem:    Memory leak when getting class member type from expr.
    Solution:   Clear the expression result.

    Patch 9.0.1137
    Problem:    Some conditions are always false.
    Solution:   Remove the useless conditions. (closes #11776)

    Patch 9.0.1138
    Problem:    Crash when expecting varargs but it is something else.
    Solution:   Only use the member when the type is a list. (closes #11774)

    Patch 9.0.1139
    Problem:    Cannot create a new object in a compiled function.
    Solution:   Compile the instructions to create a new object.

    Patch 9.0.1140
    Problem:    Cannot call an object method in a compiled function.
    Solution:   Compile the instructions to invoke an object method.

    Patch 9.0.1141
    Problem:    'cursorcolumn' and 'colorcolumn' wrong after concealing and
                wrapping line.
    Solution:   Reset "wlv.vcol_off" after each screen line. (Alexey Radkov,
                closes #11777)

    Patch 9.0.1142
    Problem:    Crash and/or memory leak when redefining function after error.
    Solution:   Clear pointer after making a copy.  Clear arrays on failure.
                (closes #11774)

    Patch 9.0.1143
    Problem:    Invalid memory access with bad 'statusline' value.
    Solution:   Avoid going over the NUL at the end.

    Patch 9.0.1144
    Problem:    Reading beyond text.
    Solution:   Add strlen_maxlen() and use it.

    Patch 9.0.1145
    Problem:    Invalid memory access with recursive substitute expression.
    Solution:   Check the return value of vim_regsub().

    Patch 9.0.1146
    Problem:    MS-Windows: various special keys and modifiers are not mappable.
    Solution:   Adjust the handling of keys with modifiers. (Christian Plewright,
                closes #11768)

    Patch 9.0.1147
    Problem:    Cannot access a class member in a compiled function.
    Solution:   Implement looking up a class member.

    Patch 9.0.1148
    Problem:    Cmdline test fails in the GUI.
    Solution:   Skip the test when running in the GUI.

    Patch 9.0.1149
    Problem:    Class members may be garbage collected.
    Solution:   Mark class members as being in use.

    Patch 9.0.1150
    Problem:    :interface is not implemented yet.
    Solution:   Implement the basics of :interface.

    Patch 9.0.1151
    Problem:    Build failure.
    Solution:   Add missing part of :interface change.

    Patch 9.0.1152
    Problem:    Class "implements" argument not implemented.
    Solution:   Implement "implements" argument.  Add basic checks for when a
                class implements an interface.

    Patch 9.0.1153
    Problem:    Build error with some compilers.
    Solution:   Clear pointer the right way.

    Patch 9.0.1154
    Problem:    Coverity warns for dead code.
    Solution:   Remove condition that is always true.

    Patch 9.0.1155
    Problem:    Cannot use a class as a type.
    Solution:   Accept a class and interface name as a type.

    Patch 9.0.1156
    Problem:    Tests fail because of a different error message.
    Solution:   Don't give an error if a type name can't be found.

    Patch 9.0.1157
    Problem:    "implements" only handles one interface name.
    Solution:   Handle a comma separated list of names.  Check for duplicate
                names.

    Patch 9.0.1158
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11787)

    Patch 9.0.1159
    Problem:    Extends argument for class not implemented yet.
    Solution:   Basic implementation of "extends".

    Patch 9.0.1160
    Problem:    ASAN error for ufunc_T allocated with wrong size.
    Solution:   Make sure the size can always fit the struct.

    Patch 9.0.1161
    Problem:    Coverity warns for using strcpy().
    Solution:   Call a function to set the function name.

    Patch 9.0.1162
    Problem:    Configure does not handle all FORTIFY_SOURCE variants.
    Solution:   Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal,
                closes #11794)

    Patch 9.0.1163
    Problem:    Compiler warning for implicit size_t/int conversion.
    Solution:   Add a type cast. (Mike Williams, closes #11795)

    Patch 9.0.1164
    Problem:    Evaluating string expression advances function line.
    Solution:   Disable function lines while parsing a string expression.
                (Hirohito Higashi, closes #11796)

    Patch 9.0.1165
    Problem:    Tests using IPv6 sometimes fail.
    Solution:   Use getaddrinfo() and use try/catch. (James McCoy,
                closes #11783)

    Patch 9.0.1166
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11792)

    Patch 9.0.1167
    Problem:    EditorConfig files do not have their own filetype.
    Solution:   Add the "editorconfig" filetype. (Gregory Anders, closes #11779)

    Patch 9.0.1168
    Problem:    Code to enable/disable mouse is not from terminfo/termcap.
    Solution:   Request the "XM" entry and use it to set 'ttymouse' if possible.

    Patch 9.0.1169
    Problem:    Some key+modifier tests fail on some AppVeyor images.
    Solution:   Adjust the tests for key movements and fix the revealed bugs.
                (Christopher Plewright, closes #11798)

    Patch 9.0.1170
    Problem:    LGTM badge no longer works.
    Solution:   Remove the LGTM badge. (closes #11799)

    Patch 9.0.1171
    Problem:    Screen is not redrawn after using setcellwidths().
    Solution:   Redraw the screen when the cell widths have changed. (Yasuhiro
                Matsumoto, closes #11800)

    Patch 9.0.1172
    Problem:    When 'selection' is "exclusive" then "1v" is one char short.
    Solution:   Add one character when 'selection' is "exclusive". (closes #11791)

    Patch 9.0.1173
    Problem:    Compiler warning for unused variable on non-Unix systems.
    Solution:   Move #ifdef. (John Marriott)

    Patch 9.0.1174
    Problem:    Smali files are not recognized.
    Solution:   Add a pattern for Smali files. (Amaan Qureshi, closes #11801)

    Patch 9.0.1175
    Problem:    The set_ref_in_item() function is too long.
    Solution:   Use a separate function for more complicated types. (Yegappan
                Lakshmanan, closes #11802)

    Patch 9.0.1176
    Problem:    smithy files are not recognized.
    Solution:   Add a pattern for Smithy files. (Chris Kipp, closes #11804)

    Patch 9.0.1177
    Problem:    AppVeyor uses some older tools.
    Solution:   Switch to Visual Studio 2022 and Python 3.11. (Christopher
                Plewright, closes #11793)

    Patch 9.0.1178
    Problem:    A child class cannot override functions from a base class.
    Solution:   Allow overriding and implement "super".

    Patch 9.0.1179
    Problem:    Not all errors around inheritance are tested.
    Solution:   Add more tests.  Fix uncovered problems.

    Patch 9.0.1180
    Problem:    Compiler warnings without the +job feature.
    Solution:   Adjust #ifdefs. (John Marriott)

    Patch 9.0.1181
    Problem:    Class inheritance and typing insufficiently tested.
    Solution:   Add more tests.  Implement missing behavior.

    Patch 9.0.1182
    Problem:    go checksum files are not recognized.
    Solution:   Add the name of go checksum files. (Amaan Qureshi, closes #11803)

    Patch 9.0.1183
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11805)

    Patch 9.0.1184
    Problem:    Interface of an object is not recognized when checking type.
    Solution:   Use the interface implemented by an object.

    Patch 9.0.1185
    Problem:    Using class from imported script not tested.
    Solution:   Add tests.  Implement what is missing.

    Patch 9.0.1186
    Problem:    Imported class does not work when used twice in a line.
    Solution:   Fix the type parsing.

    Patch 9.0.1187
    Problem:    Test for using imported class fails.
    Solution:   Skip over rest of type.

    Patch 9.0.1188
    Problem:    Return value of type() for class and object unclear.
    Solution:   Add v:t_object and v:t_class.

    Patch 9.0.1189
    Problem:    Invalid memory access with folding and using "L".
    Solution:   Prevent the cursor from moving to line zero.

    Patch 9.0.1190
    Problem:    AppVeyor runs much slower with MSVC 2022.
    Solution:   Go back to MSVC 2015. (Christopher Plewright, closes #11810)

    Patch 9.0.1191
    Problem:    Some Bazel files are not recognized.
    Solution:   Add an extra Bazel pattern. (Keith Smily, closes #11807)

    Patch 9.0.1192
    Problem:    No error when class function argument shadows a member.
    Solution:   Check for shadowing.

    Patch 9.0.1193
    Problem:    Cannot map <Esc> when using the Kitty key protocol.
    Solution:   Add a non-simplified mapping for K_ESC. (closes #11811)

    Patch 9.0.1194
    Problem:    Compiler warning for comparing pointer with int.
    Solution:   Change NULL to zero.

    Patch 9.0.1195
    Problem:    Restoring KeyTyped when building statusline not tested.
    Solution:   Add a test.  Clean up and fix other tests. (closes #11815)

    Patch 9.0.1196
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11813)

    Patch 9.0.1197
    Problem:    Dump file missing from patch.
    Solution:   Add missing dump file.

    Patch 9.0.1198
    Problem:    Abstract class not supported yet.
    Solution:   Implement abstract class and add tests.

    Patch 9.0.1199
    Problem:    Crash when using kitty and using a mapping with <Esc>.
    Solution:   Do not try setting did_simplify when it is NULL. (closes #11817)

    Patch 9.0.1200
    Problem:    AppVeyor builds with an old Python version.
    Solution:   Switch from Python 3.8 to 3.11. (Christopher Plewright,
                closes #11814)

    Patch 9.0.1201
    Problem:    Assignment with operator doesn't work in object method.
    Solution:   Handle loading the object member. (closes #11820)  Add a few more
                tests.

    Patch 9.0.1202
    Problem:    Crash when iterating over list of objects.
    Solution:   Do not make a copy of tt_member for object or class.
                (closes #11823)

    Patch 9.0.1203
    Problem:    Return type of values() is always list<any>.
    Solution:   Use the member type if possible. (issue #11822)

    Patch 9.0.1204
    Problem:    Expression compiled the wrong way after using an object.
    Solution:   Generate constants before getting the type.

    Patch 9.0.1205
    Problem:    Crash when handling class that extends another class with more
                than one object members.
    Solution:   Correct pointer computations. (closes #11824)

    Patch 9.0.1206
    Problem:    Testing with Python on AppVeyor does not work properly.
    Solution:   Fix typo.  Move most lines to the .bat file. (Christopher
                Plewright, closes #11828)

    Patch 9.0.1207
    Problem:    Error when object type is expected but getting "any".
    Solution:   When actual type is "any" use a runtime type check.
                (closes #11826)

    Patch 9.0.1208
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11819)

    Patch 9.0.1209
    Problem:    Getting interface member does not always work.
    Solution:   Convert the index on the interface to the index on the object.
                (closes #11825)

    Patch 9.0.1210
    Problem:    Compiler complains about declaration after label.
    Solution:   Move declaration to beginning of block (John Marriott)

    Patch 9.0.1211
    Problem:    Storing value in interface member does not always work.
    Solution:   Convert the index on the interface to the index on the object.

    Patch 9.0.1212
    Problem:    Cannot read back what setcellwidths() has done.
    Solution:   Add getcellwidths(). (Kota Kato, closes #11837)

    Patch 9.0.1213
    Problem:    Adding a line below the last one does not expand fold.
    Solution:   Do not skip mark_adjust() when adding lines below the last one.
                (Brandon Simmons, closes #11832, closes #10698)

    Patch 9.0.1214
    Problem:    File left behind after running tests.
    Solution:   Delete the file. (Dominique Pellé, closes #11839)

    Patch 9.0.1215
    Problem:    Using isalpha() adds dependency on current locale.
    Solution:   Do not use isalpha() for recognizing a URL or the end of an Ex
                command. (closes #11835)

    Patch 9.0.1216
    Problem:    Coverity warns for ignoring return value.
    Solution:   Break out of loop if function fails.

    Patch 9.0.1217
    Problem:    Using an object member in a closure doesn't work.
    Solution:   Initialize lv_loop_depth. (closes #11840)

    Patch 9.0.1218
    Problem:    Completion includes functions that don't work.
    Solution:   Skip functions that are not implemented. (Kota Kato,
                closes #11845)

    Patch 9.0.1219
    Problem:    Handling of FORTIFY_SOURCE flags doesn't match Fedora usage.
    Solution:   Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847)

    Patch 9.0.1220
    Problem:    Termcap/terminfo entries do not indicate where modifiers might
                appear.
    Solution:   Add ";*" for function keys where modifiers are likely to be used.

    Patch 9.0.1221
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11833)

    Patch 9.0.1222
    Problem:    Terminal tests are flaky on MacOS.
    Solution:   Add TermWait() calls. (Yegappan Lakshmanan, closes #11852)

    Patch 9.0.1223
    Problem:    Cannot use setcellwidths() below 0x100.
    Solution:   Also accept characters between 0x80 and 0x100. (Ken Takata,
                closes #11834)

    Patch 9.0.1224
    Problem:    Cannot call a :def function with a number for a float argument.
    Solution:   Accept a number as well, convert it to a float.

    Patch 9.0.1225
    Problem:    Reading past the end of a line when formatting text.
    Solution:   Check for not going over the end of the line.

    Patch 9.0.1226
    Problem:    Spurious empty line when using text properties and virtual text.
    Solution:   Do not set "text_prop_follows" when the other text property is not
                virtual text. (closes #11846)

    Patch 9.0.1227
    Problem:    No cmdline completion for :runtime.
    Solution:   Add completion for :runtime. (closes #11853, closes #11447)
                Improve the resulting matches.

    Patch 9.0.1228
    Problem:    Fuzzy menu completion is only tested in the GUI.
    Solution:   Make fuzzy menu completion test work without GUI.
                (closes #11861)

    Patch 9.0.1229
    Problem:    Cap'n Proto files are not recognized.
    Solution:   Add a pattern and the "capnp" filetype. (Amaan Qureshi,
                closes #11862)

    Patch 9.0.1230
    Problem:    Apache thrift files are not recognized.
    Solution:   Add a pattern for thrift files. (Amaan Qureshi, closes #11859)

    Patch 9.0.1231
    Problem:    Completion of :runtime does not handle {where} argument.
    Solution:   Parse the {where} argument. (closes #11863)

    Patch 9.0.1232
    Problem:    ColorTable saving and restoring does not work properly.
    Solution:   Restore ColorTable[16] usage. (Christopher Plewright,
                closes #11836)

    Patch 9.0.1233
    Problem:    search() loops forever if "skip" is TRUE for all matches.
    Solution:   Keep the position of the first match.

    Patch 9.0.1234
    Problem:    The code style has to be checked manually.
    Solution:   Add basic code style checks in a test.  Fix or avoid uncovered
                problems.

    Patch 9.0.1235
    Problem:    MS-Windows console: not flushing termguicolors.
    Solution:   Flush termguicolors. (Christopher Plewright, closes #11871)

    Patch 9.0.1236
    Problem:    Code in same_leader() can be simplified.
    Solution:   Simplify code that is executed only once. (closes #11867)

    Patch 9.0.1237
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11858)

    Patch 9.0.1238
    Problem:    :runtime completion can be further improved.
    Solution:   Also complete the {where} argument values and adjust the
                completion for that. (closes #11874)

    Patch 9.0.1239
    Problem:    Cannot have a line break before an object member access.
    Solution:   Check for "." in next line. (closes #11864)

    Patch 9.0.1240
    Problem:    Cannot access a private object member in a lambda defined inside
                the class.
    Solution:   Go up the context stack to find the class. (closes #11866)

    Patch 9.0.1241
    Problem:    Coverity warns for not checking function return value.
    Solution:   Explicitly ignore the return value.

    Patch 9.0.1242
    Problem:    Code for :runtime completion is not consistent.
    Solution:   Make code for cmdline expansion more consistent. (closes #11875)

    Patch 9.0.1243
    Problem:    :setglobal cannot use script-local function for "expr" option.
    Solution:   Use the pointer to the option value properly. (closes #11883)

    Patch 9.0.1244
    Problem:    Cursor briefly displayed in a wrong position when pressing Esc in
                Insert mode after autoindent was used.
    Solution:   Do not adjust the cursor position for assumed deleted white space
                if text is following.  (closes #11877)

    Patch 9.0.1245
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11879)

    Patch 9.0.1246
    Problem:    Code is indented more than necessary.
    Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
                closes #11887)

    Patch 9.0.1247
    Problem:    Divide by zero with 'smoothscroll' set and a narrow window.
    Solution:   Bail out when the window is too narrow.

    Patch 9.0.1248
    Problem:    Cannot export an interface. (Ernie Rael)
    Solution:   Add the EX_EXPORT flag to :interface. (closes #11884)

    Patch 9.0.1249
    Problem:    Cannot export an abstract class. (Ernie Rael)
    Solution:   Add the EX_EXPORT flag to :abstract. (closes #11884)

    Patch 9.0.1250
    Problem:    Cannot use an object method with :defer. (Ernie Rael)
    Solution:   Find the object method and generate code to call it.
                (closes #11886)

    Patch 9.0.1251
    Problem:    Checking returned value of ga_grow() is inconsistent.
    Solution:   Check for FAIL instead of "not OK". (Yegappan Lakshmanan,
                closes #11897)

    Patch 9.0.1252
    Problem:    MS-Windows: scrollback cropped off on Vim exit.
    Solution:   Don't call SetConsoleScreenBufferInfoEx when using the alternate
                screen buffer. (Christopher Plewright, closes #11882)

    Patch 9.0.1253
    Problem:    CI adds repository unnecessarily.
    Solution:   Remove the line from the workflow. (closes #11900)

    Patch 9.0.1254
    Problem:    Calling a method on an interface does not work.
    Solution:   At runtime figure out what method to call. (closes #11901)

    Patch 9.0.1255
    Problem:    Changing 'virtualedit' does not have immediate effect.
    Solution:   Correct how is checked for a changed value. (closes #11878)

    Patch 9.0.1256
    Problem:    NetworkManager connection files are not recognized.
    Solution:   Add a pattern for NetworkManager connection files. (closes #11893)

    Patch 9.0.1257
    Problem:    Code style is not check in test scripts.
    Solution:   Add basic code style check for test files.

    Patch 9.0.1258
    Problem:    Code style test fails.
    Solution:   Adjust test files.

    Patch 9.0.1259
    Problem:    Diffmode test fails.
    Solution:   Adjust expected result for adjusted indenting.

    Patch 9.0.1260
    Problem:    Coverity warns for possible NULL pointer usage.
    Solution:   Change the condition.

    Patch 9.0.1261
    Problem:    Elsa files are not recognized.
    Solution:   Add a pattern for Elsa files. (Amaan Qureshi, closes #11908)

    Patch 9.0.1262
    Problem:    The did_set_string_option function is too long.
    Solution:   Split off functionality to individual functions.  (Yegappan
                Lakshmanan, Lewis Russell, closes #11904)

    Patch 9.0.1263
    Problem:    KDL files are not recognized.
    Solution:   Add a pattern for KDL files. (Amaan Qureshi, closes #11898)

    Patch 9.0.1264
    Problem:    Motif: compiler warning for unused argument.
    Solution:   Add "UNUSED".

    Patch 9.0.1265
    Problem:    Using an interface method may give a compilation error.
    Solution:   Do not try to compile the body of a method of an interface.
                (closes #11885)

    Patch 9.0.1266
    Problem:    Error for space before ": type" is inconsistent.
    Solution:   Give E1059 in more places. (closes #11868)

    Patch 9.0.1267
    Problem:    The did_set_string_option function is too long.
    Solution:   Further cleanup of handling string options.  (Yegappan Lakshmanan,
                Lewis Russell, closes #11920)

    Patch 9.0.1268
    Problem:    .clangd and .stylelintrc files don't get a filetype.
    Solution:   Use yaml for .clangd and json for .stylelintrc files. (Mark
                Skelton, closes #11916)

    Patch 9.0.1269
    Problem:    Channel test often fails on Mac OS.
    Solution:   Increase the wait time from one to 15 milliseconds. (D. Ben
                Knoble, closes #11894)

    Patch 9.0.1270
    Problem:    Crash when using search stat in narrow screen.
    Solution:   Check length of message. (closes #11921)

    Patch 9.0.1271
    Problem:    Using sizeof() and subtract array size is tricky.
    Solution:   Use offsetof() instead. (closes #11926)

    Patch 9.0.1272
    Problem:    Typo in pattern for filetype detection.
    Solution:   Fix the typo. (closes #11924)

    Patch 9.0.1273
    Problem:    "1v" may select block with wrong size. (Evgeni Chasnovski)
    Solution:   Compute "curswant" in the right line. (closes #11925)

    Patch 9.0.1274
    Problem:    FIRRTL files are not recognized.
    Solution:   Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931)

    Patch 9.0.1275
    Problem:    The code for setting options is too complicated.
    Solution:   Refactor the do_set() function. (Yegappan Lakshmanan, Lewis
                Russell, closes #11932)

    Patch 9.0.1276
    Problem:    Some mappings with Meta and Shift do not work.
    Solution:   Apply the Shift modifier to the key. (issue #11913)

    Patch 9.0.1277
    Problem:    Cursor may move with autocmd in Visual mode.
    Solution:   Restore "VIsual_active" before calling check_cursor().
                (closes #11939)

    Patch 9.0.1278
    Problem:    go.work.sum files are not recognized.
    Solution:   Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi,
                closes #11940)

    Patch 9.0.1279
    Problem:    Display shows lines scrolled down erroneously. (Yishai Lerner)
    Solution:   Do not change "wl_lnum" at index zero. (closes #11938)

    Patch 9.0.1280
    Problem:    Insufficient testing for what 9.0.1265 fixes.
    Solution:   Add a couple of test cases. (issue #11885)

    Patch 9.0.1281
    Problem:    Cadence files are not recognized.
    Solution:   Recognize Cadence files. (Janez Podhostnik, closes #11951)

    Patch 9.0.1282
    Problem:    Ron files are not recognized.
    Solution:   Recognize Ron files. (Amaan Qureshi, closes #11948)

    Patch 9.0.1283
    Problem:    The code for setting options is too complicated.
    Solution:   Refactor the do_set() function. (Yegappan Lakshmanan, Lewis
                Russell, closes #11945)

    Patch 9.0.1284
    Problem:    Compiler warnings for uninitialized variables. (Tony Mechelynck)
    Solution:   Add variable initializations.

    Patch 9.0.1285
    Problem:    Various small problems.
    Solution:   Adjust white space and comments.

    Patch 9.0.1286
    Problem:    Coverity warns for using a NULL pointer.
    Solution:   Bail out whan "varp" is NULL.

    Patch 9.0.1287
    Problem:    With the Kitty key protocol Esc with NumLock cannot be mapped.
    Solution:   Also use K_ESC when there is a modifier. (closes #11811)

    Patch 9.0.1288
    Problem:    FunC files are not recognized.
    Solution:   Recognize FunC files. (Amaan Qureshi, closes #11949)

    Patch 9.0.1289
    Problem:    A newer version of clang can be used for CI.
    Solution:   Switch from clang-15 to clang-16. (closes #11577)

    Patch 9.0.1290
    Problem:    CTRL-N and -P on cmdline don't trigger CmdlineChanged.
    Solution:   Jump to cmdline_changed instead of cmdline_not_changed.
                (closes #11956)

    Patch 9.0.1291
    Problem:    Move language files are not recognized.
    Solution:   Recognize Move language files. (Amaan Qureshi, closes #11947)

    Patch 9.0.1292
    Problem:    :defer may call the wrong method for an object. (Ernie Rael)
    Solution:   When en object is from a class that extends or implements, figure
                out the method to call at runtime. (closes #11910)

    Patch 9.0.1293
    Problem:    The set_num_option() is too long.
    Solution:   Move code to separate functions. (Yegappan Lakshmanan,
                closes #11954)

    Patch 9.0.1294
    Problem:    The set_bool_option() function is too long.
    Solution:   Move code to separate functions. (Yegappan Lakshmanan,
                closes #11964)

    Patch 9.0.1295
    Problem:    The option initialization function is too long.
    Solution:   Move code to separate functions. (Yegappan Lakshmanan,
                closes #11966)

    Patch 9.0.1296
    Problem:    Calling an object method with arguments does not work. (Ernie
                Rael)
    Solution:   Take the argument count into account when looking up the object.
                (closes #11911)

    Patch 9.0.1297
    Problem:    Wrong value for $LC_CTYPE makes the environ test fail.
    Solution:   Unset $LC_CTYPE when running tests. (closes #11963)

    Patch 9.0.1298
    Problem:    Inserting a register on the command line does not trigger
                incsearch or update hlsearch.
    Solution:   Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate
                and handle it correctly. (Ken Takata, closes #11960)

    Patch 9.0.1299
    Problem:    Change for triggering incsearch not sufficiently tested.
    Solution:   Add a test case.  Simplify the code. (closes #11971)

    Patch 9.0.1300
    Problem:    'statusline' only supports one "%=" item.
    Solution:   Add support for multiple "%=" items. (TJ DeVries, Yegappan
                Lakshmanan, closes #11970, closes #11965)

    Patch 9.0.1301
    Problem:    Virtual text below empty line not displayed.
    Solution:   Adjust flags and computations. (closes #11959)

    Patch 9.0.1302
    Problem:    On a Belgian keyboard CTRL-] does not work.
    Solution:   Translate CTRL-$ into CTRL-]. (closes #11831)

    Patch 9.0.1303
    Problem:    Motif: scrollbar width/height wrong when maximized.
    Solution:   Set the width/height when creating the scrollbar. (closes #11946)

    Patch 9.0.1304
    Problem:    "$" for 'list' option displayed in wrong position when there are
                text properties.
    Solution:   Adjust logic for order of displayed items. (closes #11959)

    Patch 9.0.1305
    Problem:    Cursor in wrong line with virtual text above.
    Solution:   Count extra line for text property above/below. (closes #11959)

    Patch 9.0.1306
    Problem:    No regression test for solved problem of #11959.
    Solution:   Add a test, also with 'list' set. (closes #11959)

    Patch 9.0.1307
    Problem:    Setting 'formatoptions' with :let doesn't check for errors.
    Solution:   Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan,
                closes #11974, closes #11972)

    Patch 9.0.1308
    Problem:    The code for setting options is too complicated.
    Solution:   Refactor the code for setting options. (Yegappan Lakshmanan,
                closes #11989)

    Patch 9.0.1309
    Problem:    Scrolling two lines with even line count and 'scrolloff' set.
    Solution:   Adjust how the topline is computed. (closes #10545)

    Patch 9.0.1310
    Problem:    'splitkeep' test has failures.
    Solution:   Adjust expected cursor line position.

    Patch 9.0.1311
    Problem:    Coverity warns for using a NULL pointer.
    Solution:   Use "empty_option" instead of NULL.

    Patch 9.0.1312
    Problem:    Cursor position wrong when splitting window in insert mode.
    Solution:   Pass the actual mode to win_fix_cursor(). (Luuk van Baal,
                closes #11999,

    Patch 9.0.1313
    Problem:    Some settings use the current codepage instead of 'encoding'.
    Solution:   Adjust how options are initialized. (Ken Takata, closes #11992)

    Patch 9.0.1314
    Problem:    :messages behavior depends on 'fileformat' of current buffer.
    Solution:   Pass the buffer pointer to where it is used. (Mirko Ceroni,
                closes #11995)

    Patch 9.0.1315
    Problem:    Escaping for completion of map command not properly tested.
    Solution:   Add a few test cases. (closes #12009)

    Patch 9.0.1316
    Problem:    MS-Windows: vimfiles dir created with admin group.
    Solution:   Use ShellExecAsUser to create the vimfiles directory. (Christopher
                Plewright, Ken Takata, closes #12000, closes #11888)

    Patch 9.0.1317
    Problem:    Crash when using an unset object variable.
    Solution:   Give an error instead. (closes #12005)

    Patch 9.0.1318
    Problem:    Code style test fails.
    Solution:   Remove trailing white space.

    Patch 9.0.1319
    Problem:    PRQL files are not recognized.
    Solution:   Add a filetype pattern for PRQL files. (Matthias Queitsch,
                closes #12018)

    Patch 9.0.1320
    Problem:    Checking the type of a null object causes a crash.
    Solution:   Don't try to get the class of a null object. (closes #12005)
                Handle error from calling a user function better.

    Patch 9.0.1321
    Problem:    vimscript test fails where using {expr} syntax.
    Solution:   Only return FCERR_FAILED in call_user_func() for Vim9 script.

    Patch 9.0.1322
    Problem:    Crash when indexing "any" which is an object.
    Solution:   Check the index is a number.  Do not check the member type of an
                object.  (closes #12019)

    Patch 9.0.1323
    Problem:    Build failure with +eval feature.
    Solution:   Add missing part for using funcerror_T.

    Patch 9.0.1324
    Problem:    "gj" and "gk" do not move correctly over a closed fold.
    Solution:   Use the same code as used for "j"/"k" to go to the next/previous
                line. (Luuk van Baal, closes #12007)

    Patch 9.0.1325
    Problem:    'colorcolumn' highlight wrong with virtual text above.
    Solution:   Adjust column of 'colorcolumn' for text property. (closes #12004)

    Patch 9.0.1326
    Problem:    Relative line number not updated with virtual text above.
    Solution:   Adjust the row for the line number for virtual text above.
                (closes #12004)

    Patch 9.0.1327
    Problem:    Cursor in wrong position below line with virtual text below ending
                in multi-byte character.
    Solution:   When checking for last character take care of multi-byte
                character.

    Patch 9.0.1328
    Problem:    Error when using "none" for GUI color is confusing.
    Solution:   Mention that the name should perhaps be "NONE". (closes #1400)

    Patch 9.0.1329
    Problem:    Completion of map includes simplified ones.
    Solution:   Do not complete simplified mappings. (closes #12013)

    Patch 9.0.1330
    Problem:    Handling new value of an option has a long "else if" chain.
    Solution:   Use a function pointer. (Yegappan Lakshmanan, closes #12015)

    Patch 9.0.1331
    Problem:    Illegal memory access when using :ball in Visual mode.
    Solution:   Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923)

    Patch 9.0.1332
    Problem:    Crash when using buffer-local user command in cmdline window.
                (Karl Yngve Lervåg)
    Solution:   Use the right buffer to find the user command. (closes #12030,
                closes #12029)

    Patch 9.0.1333
    Problem:    When redo'ing twice <ScriptCmd> may not get the script ID.
    Solution:   When "last_used_map" map is not set use "last_used_sid".
                (closes #11930)

    Patch 9.0.1334
    Problem:    Using tt_member for the class leads to mistakes.
    Solution:   Add a separate tt_class field.

    Patch 9.0.1335
    Problem:    No test for bad use of spaces in help files.
    Solution:   Add checks for use of spaces in help files.  Ignore intentional
                spaces. (Hirohito Higashi, closes #11952)

    Patch 9.0.1336
    Problem:    Functions without arguments are not always declared properly.
    Solution:   Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031)

    Patch 9.0.1337
    Problem:    Yuck files are not recognized.
    Solution:   Add a filetype pattern for yuck files. (Amaan Qureshi,
                closes #12033)

    Patch 9.0.1338
    Problem:    :defcompile and :disassemble can't find class method. (Ernie Rael)
    Solution:   Make a class name and class.method name work. (closes #11984)

    Patch 9.0.1339
    Problem:    No test for :disassemble with class function.
    Solution:   Add a test.

    Patch 9.0.1340
    Problem:    Coverity warns for using NULL pointer.
    Solution:   Check that lhs_type is not NULL.

    Patch 9.0.1341
    Problem:    Build error with mzscheme but without GUI.
    Solution:   Adjust #ifdefs. (Ken Takata, closes #12042)  Also fix function
                argument.

    Patch 9.0.1342
    Problem:    MS-Windows: linking may fail with space in directory name.
    Solution:   Add quotes. (closes #12050)

    Patch 9.0.1343
    Problem:    Check for OSC escape sequence doesn't work.
    Solution:   Move square bracket to the right place. (Johan Mattsson,
                closes #12048)

    Patch 9.0.1344
    Problem:    Check for OSC escape sequence doesn't work.
    Solution:   Fix typo in index.

    Patch 9.0.1345
    Problem:    Too many "else if" statements for handling options.
    Solution:   Add more functions to handle options. (Yegappan Lakshmanan,
                closes #12051)

    Patch 9.0.1346
    Problem:    Starlark files are not recognized.
    Solution:   Add patterns for Starlark files. (Amaan Qureshi, closes #12049)

    Patch 9.0.1347
    Problem:    "gr CTRL-O" stays in Insert mode. (Pierre Ganty)
    Solution:   Do not set restart_edit when "cmdchar" is 'v'. (closes #12045)

    Patch 9.0.1348
    Problem:    Un-grammar files are not recognized.
    Solution:   Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034)

    Patch 9.0.1349
    Problem:    "gr" with a count fails.
    Solution:   Break out of the loop only after using the count.

    Patch 9.0.1350
    Problem:    CPON files are not recognized.
    Solution:   Add patterns for CPON files. (Amaan Qureshi, closes #12053)

    Patch 9.0.1351
    Problem:    Dhall files are not recognized.
    Solution:   Add patterns for Dhall files. (Amaan Qureshi, closes #12052)

    Patch 9.0.1352
    Problem:    "ignore" files are outdated.
    Solution:   Update "ignore" files. (Ken Takata, closes #12056)

    Patch 9.0.1353
    Problem:    Too many "else if" statements to handle option values.
    Solution:   Add more functions to handle option value changes. (Yegappan
                Lakshmanan, closes #12058)

    Patch 9.0.1354
    Problem:    "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty)
    Solution:   Prepend CTRL-V before control characters. (closes #12045)

    Patch 9.0.1355
    Problem:    No error when declaring a class twice. (Ernie Rael)
    Solution:   Pass different flags when declaring the class. (closes #12057)

    Patch 9.0.1356
    Problem:    Cannot cancel "gr" with Esc.
    Solution:   Make "gr<Esc>" do nothing. (closes #12064)

    Patch 9.0.1357
    Problem:    Using null_object results in an internal error. (Ernie Rael)
    Solution:   Add instructions for pushing an object and class. (closes #12044)

    Patch 9.0.1358
    Problem:    Compilation error with some compilers.
    Solution:   Avoid using "class" as member name.

    Patch 9.0.1359
    Problem:    Too many "else if" statements in handling options.
    Solution:   Add more functions for handling option changes. (Yegappan
                Lakshmanan, closes #12060)

    Patch 9.0.1360
    Problem:    Cue files are not recognized.
    Solution:   Add patterns for Cue files. (Amaan Qureshi, closes #12067)

    Patch 9.0.1361
    Problem:    extendnew() not sufficiently tested.
    Solution:   Add a few more test cases for extendnew(). (closes #12075)

    Patch 9.0.1362
    Problem:    ml_get error when going to another tab. (Daniel J. Perry)
    Solution:   Do not call update_topline() if "curwin" is invalid.
                (closes #11907)

    Patch 9.0.1363
    Problem:    Crash when :def function has :break in skipped block. (Ernie Rael)
    Solution:   Don't generate a jump for a skipped :break. (closes #12077)

    Patch 9.0.1364
    Problem:    Build error with older Mac OS.
    Solution:   Adjust #ifdef. (Yee Cheng Chin, closes #12074)

    Patch 9.0.1365
    Problem:    Dead test code.
    Solution:   Remove code that depends on Farsi, which has been removed.
                (closes #12084)

    Patch 9.0.1366
    Problem:    Functions for setting options are in random order.
    Solution:   Sort functions alphabetically. (Yegappan Lakshmanan,
                closes #12082)

    Patch 9.0.1367
    Problem:    Divide by zero in zero-width window.
    Solution:   Check the width is positive.

    Patch 9.0.1368
    Problem:    Bass files are not recognized.
    Solution:   Add patterns for Bass files. (Amaan Qureshi, closes #12088)

    Patch 9.0.1369
    Problem:    Still some "else if" constructs for setting options.
    Solution:   Add a few more functions for handling options. (Yegappan
                Lakshmanan, closes #12090)

    Patch 9.0.1370
    Problem:    Crash when using a NULL object. (Ernie Rael)
    Solution:   Check for NULL and give an error message. (closes #12083)

    Patch 9.0.1371
    Problem:    Ballooneval interferes with Insert completion.
    Solution:   Ignore mouse-move events when completing. (closes #12094,
                closes #12092)

    Patch 9.0.1372
    Problem:    Test for 'toolbariconsize' may fail.
    Solution:   Only test 'toolbariconsize' when it is supported. (James McCoy,
                closes #12095)

    Patch 9.0.1373
    Problem:    Wrong text displayed when using both 'linebreak' and 'list'.
    Solution:   Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito
                Higashi, closes #12065)

    Patch 9.0.1374
    Problem:    Function for setting options not used consistently.
    Solution:   Use a function for 'encoding' and terminal options. (Yegappan
                Lakshmanan, closes #12099)

    Patch 9.0.1375
    Problem:    Crash when getting member of obj of unknown class.
    Solution:   Check for NULL class and give an error message. (Ernie Rael,
                closes #12096)

    Patch 9.0.1376
    Problem:    Accessing invalid memory with put in Visual block mode.
    Solution:   Adjust the cursor column if needed.

    Patch 9.0.1377
    Problem:    job_status() may return "dead" if the process parent changed.
    Solution:   Call mch_process_running() to check if the job is still alive.

    Patch 9.0.1378
    Problem:    Illegal memory access when using virtual editing.
    Solution:   Make sure "startspaces" is not negative.

    Patch 9.0.1379
    Problem:    Functions for handling options are not ordered.
    Solution:   Put functions in alphabetical order. (Yegappan Lakshmanan,
                closes #12101)

    Patch 9.0.1380
    Problem:    CTRL-X on 2**64 subtracts two. (James McCoy)
    Solution:   Correct computation for large number. (closes #12103)

    Patch 9.0.1381
    Problem:    ACCESS_ names have a conflict with on some systems.
    Solution:   Rename by prepending VIM_. (Ola Söder, closes #12105)

    Patch 9.0.1382
    Problem:    Failing test for strptime() doesn't show returned value.
    Solution:   Use assert_equal() instead of assert_true().

    Patch 9.0.1383
    Problem:    xxd: combination of little endian and cols fails. (Aapo
                Rantalainen)
    Solution:   Round up the space taken by the hex output. (closes #12097)

    Patch 9.0.1384
    Problem:    Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew
                version 4.
    Solution:   Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008)

    Patch 9.0.1385
    Problem:    g'Esc is considered an error.
    Solution:   Make g'Esc silently abandon the command. (closes #12110)

    Patch 9.0.1386
    Problem:    Options test fails with some window width.
    Solution:   Adjust what text the test checks with. (closes #12111)

    Patch 9.0.1387
    Problem:    Scrollbar test sporadically fails.
    Solution:   Mark the scrollbar test as flaky. (Christian Brabandt,
                closes #12113)

    Patch 9.0.1388
    Problem:    Amiga: not all builds use gethostname().
    Solution:   Use gethostname() for all builds except AROS. (Ola Söder,
                closes #12107)

    Patch 9.0.1389
    Problem:    Amiga: a couple of include files are included twice.
    Solution:   Remove duplicate includes. (Ola Söder, closes #12106)

    Patch 9.0.1390
    Problem:    FOR_ALL_ macros are defined in an unexpected file.
    Solution:   Move FOR_ALL_ macros to macros.h.  Add FOR_ALL_HASHTAB_ITEMS.
                (Yegappan Lakshmanan, closes #12109)

    Patch 9.0.1391
    Problem:    "clear" macros are not always used.
    Solution:   Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more
                places. (Yegappan Lakshmanan, closes #12104)

    Patch 9.0.1392
    Problem:    Using NULL pointer with nested :open command.
    Solution:   Check that ccline.cmdbuff is not NULL.

    Patch 9.0.1393
    Problem:    Cairo files are not recognized.
    Solution:   Add a pattern for Cairo files. (Amaan Qureshi, closes #12118)

    Patch 9.0.1394
    Problem:    Unx Tal files are not recognized.
    Solution:   Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117)

    Patch 9.0.1395
    Problem:    Odin files are not recognized.
    Solution:   Add a pattern for Odin files. (Amaan Qureshi, closes #12122)

    Patch 9.0.1396
    Problem:    sort(list, 'N') does not work in Vim9 script context.
    Solution:   Convert string to number without giving an error. (closes #12061)

    Patch 9.0.1397
    Problem:    Highlight for popupmenu kind and extra cannot be set.
    Solution:   Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel
                highlight groups and use them. (Gianmaria Bajo, closes #12114)

    Patch 9.0.1398
    Problem:    Profile test repeats the headers many times.
    Solution:   Put the headers in script variables.

    Patch 9.0.1399
    Problem:    Highlight test script has a few problems.
    Solution:   Rewrite the script in Vim9 syntax. (closes #10379)

    Patch 9.0.1400
    Problem:    find_file_in_path() is not reentrant.
    Solution:   Instead of global variables pass pointers to the functions.
                (closes #12093)

    Patch 9.0.1401
    Problem:    Condition is always true.
    Solution:   Remove the condition. (closes #12139)

    Patch 9.0.1402
    Problem:    Crash when using null_class.
    Solution:   Give an error when trying to use a null class.

    Patch 9.0.1403
    Problem:    Unused variables and functions.
    Solution:   Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145)

    Patch 9.0.1404
    Problem:    Compilation error with some compilers.
    Solution:   Adjust array initialization. (John Marriott)

    Patch 9.0.1405
    Problem:    Missing check for out-of-memory.
    Solution:   Check for alloc() returning NULL pointer. (closes #12149)

    Patch 9.0.1406
    Problem:    ILE RPG files are not recognized.
    Solution:   Add patterns for ILE RPG files. (Andreas Louv, issue #12152)

    Patch 9.0.1407
    Problem:    TableGen files are not recognized.
    Solution:   Add a pattern for TableGen files. (Amaan Qureshi, closes #12156)

    Patch 9.0.1408
    Problem:    QMLdir files are not recognized.
    Solution:   Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161)

    Patch 9.0.1409
    Problem:    Racket files are recognized as scheme.
    Solution:   Recognize rackets files separately. (Gabriel Kakizaki,
                closes #12164, closes #12162)

    Patch 9.0.1410
    Problem:    MacOS: sed fails on .po files.
    Solution:   Set $LANG to "C". (Yee Cheng Chin, closes #12153)

    Patch 9.0.1411
    Problem:    Accuracy of profiling is not optimal.
    Solution:   Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129)

    Patch 9.0.1412
    Problem:    Pony files are not recognized.
    Solution:   Add a pattern for Pony files. (Amaan Qureshi, closes #12155)

    Patch 9.0.1413
    Problem:    Compiler warning for unused variable.
    Solution:   Move variable declaration. (John Marriott)

    Patch 9.0.1414
    Problem:    <M-S-x> in Kitty does not use the Shift modifier.
    Solution:   Apply the Shift modifier to ASCII letters. (closes #11913)

    Patch 9.0.1415
    Problem:    Crystal files are not recognized.
    Solution:   Add a pattern for Crystal files. (Amaan Qureshi, closes #12175)

    Patch 9.0.1416
    Problem:    Crash when collection is modified when using filter().
    Solution:   Lock the list/dict/blob. (Ernie Rael, closes #12183)

    Patch 9.0.1417
    Problem:    ESDL files are not recognized.
    Solution:   Add a pattern for ESDL files. (Amaan Qureshi, closes #12174)

    Patch 9.0.1418
    Problem:    The included xdiff code is a bit outdated.
    Solution:   Sync with the latest git xdiff code. (Yee Cheng Chin,
                closes #12181)

    Patch 9.0.1419
    Problem:    Lean files are not recognized.
    Solution:   Add a pattern for Lean files. (Amaan Qureshi, closes #12177)

    Patch 9.0.1420
    Problem:    Build failure because SIZE_MAX is not defined.
    Solution:   Define SIZE_MAX when missing. (John Marriott)

    Patch 9.0.1421
    Problem:    Nu files are not recognized.
    Solution:   Add a pattern for Nu files. (Amaan Qureshi, closes #12172)

    Patch 9.0.1422
    Problem:    Sage files are not recognized.
    Solution:   Add a pattern for Sage files. (Amaan Qureshi, closes #12176)

    Patch 9.0.1423
    Problem:    WebAssembly Interface Type files are not recognized.
    Solution:   Add a pattern for WIT files. (Amaan Qureshi, closes #12173)

    Patch 9.0.1424
    Problem:    Unused macros are defined.
    Solution:   Remove the unused macros.

    Patch 9.0.1425
    Problem:    "wat" and "wast" files are one filetype.
    Solution:   Add a separate filetype for "wat" files. (Amaan Qureshi,
                closes #12165)

    Patch 9.0.1426
    Problem:    Indent wrong after "export namespace" in C++.
    Solution:   Skip over "inline" and "export" in any order. (Virginia Senioria,
                closes #12134, closes #12133)

    Patch 9.0.1427
    Problem:    Warning for uninitialized variable. (Tony Mechelynck)
    Solution:   Add #ifdef.

    Patch 9.0.1428
    Problem:    Cursor in wrong position when leaving insert mode.
    Solution:   Update the w_valid flags.  Position the cursor also when not
                redrawing. (closes #12137)

    Patch 9.0.1429
    Problem:    Invalid memory access when ending insert mode.
    Solution:   Check if the insert_skip value is valid.

    Patch 9.0.1430
    Problem:    Livebook files are not recognized.
    Solution:   Add a pattern for Livebook files. (Mathias Jean Johansen,
                closes #12203)

    Patch 9.0.1431
    Problem:    getscriptinfo() loops even when specific SID is given.
    Solution:   Only loop when needed.  Give a clearer error message.
                (closes #12207)

    Patch 9.0.1432
    Problem:    Completion popup in wrong position with virtual text "above".
    Solution:   Adjust the column. (closes #12210)

    Patch 9.0.1433
    Problem:    On some systems the Lua library is not found.
    Solution:   Check if a subdirectory for Lua exists.  (closes #4475)

    Patch 9.0.1434
    Problem:    Crash when adding package already in 'runtimepath'.
    Solution:   Change order for using 'runtimepath' entries. (closes #12215)

    Patch 9.0.1435
    Problem:    Scrolling too many lines when 'wrap' and 'diff' are set.
    Solution:   Only scroll by screenlines for 'diff' when 'wrap' is not set.
                (closes #12211)

    Patch 9.0.1436
    Problem:    Cannot compare a typed variable with v:none.
    Solution:   Allow for "x is v:none" and "x isnot v:none". (issue #12194)

    Patch 9.0.1437
    Problem:    Test fails with different error number.
    Solution:   Adjust the expected error.

    Patch 9.0.1438
    Problem:    .fs files are falsely recognized as forth files.
    Solution:   Check 100 lines for something that looks like forth. (Johan
                Kotlinski, closes #12219, closes #11988)

    Patch 9.0.1439
    Problem:    Start Insert mode when accessing a hidden prompt buffer.
    Solution:   Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst,
                closes #12148, closes #12147)

    Patch 9.0.1440
    Problem:    "rvim" can execute a shell through :diffpatch.
    Solution:   Disallow the shell "patch" command.

    Patch 9.0.1441
    Problem:    MacOS: Python 3 using framework do not set dll name properly.
    Solution:   Use the framework prefix. (Yee Cheng Chin, closes #12189)

    Patch 9.0.1442
    Problem:    mapset() does not restore non-script context.
    Solution:   Also accept negative sid. (closes #12132)

    Patch 9.0.1443
    Problem:    Ending Insert mode when accessing a hidden prompt buffer.
    Solution:   Don't stop Insert mode when it was active before. (closes #12237)

    Patch 9.0.1444
    Problem:    Crash when passing NULL to setcmdline(). (Andreas Louv)
    Solution:   Use tv_get_string() instead of using v_string directly.
                (closes #12231, closes #12227)

    Patch 9.0.1445
    Problem:    openSUSE: configure doesn't find the Motif library. (Tony
                Mechelynck)
    Solution:   Also search in /usr/lib64.

    Patch 9.0.1446
    Problem:    Unnecessary checks for the "skip" flag when skipping.
    Solution:   Remove the unnecessary checks. (closes #12254)

    Patch 9.0.1447
    Problem:    Condition is always true.
    Solution:   Remove the useless condition. (closes #12253)

    Patch 9.0.1448
    Problem:    Diff test fails on MacOS 13.
    Solution:   Install GNU diffutils. (Ozaki Kiichi, closes #12258)

    Patch 9.0.1449
    Problem:    Test for prompt buffer is flaky.
    Solution:   Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi,
                closes #12247)

    Patch 9.0.1450
    Problem:    MacOS: building fails if clock_gettime() is not available.
    Solution:   Add a configure check for clock_gettime(). (closes #12242)

    Patch 9.0.1451
    Problem:    Unnecessary redrawing when 'showcmdloc' is not "last".
    Solution:   Redraw later when "showcmd_is_clear" is set. (Luuk van Baal,
                closes #12260)

    Patch 9.0.1452
    Problem:    Code using EVAL_CONSTANT is dead, it is never set.
    Solution:   Remove EVAL_CONSTANT. (closes #12252)

    Patch 9.0.1453
    Problem:    Typos in source code and tests.
    Solution:   Fix the typos. (Dominique Pellé, closes #12217)

    Patch 9.0.1454
    Problem:    Code indenting is confused by macros.
    Solution:   Put semicolon after the macros instead of inside. (Ozaki Kiichi,
                closes #12257)

    Patch 9.0.1455
    Problem:    C++ 20 modules are not recognized.
    Solution:   Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson,
                closes #12261)

    Patch 9.0.1456
    Problem:    Shortmess test depends on order of test execution.
    Solution:   Clear messages. (closes #12264)

    Patch 9.0.1457
    Problem:    No regression test for what patch 9.0.1333 fixes.
    Solution:   Extend existing test to cover the fixed problem. (issue #11930)

    Patch 9.0.1458
    Problem:    Buffer overflow when expanding long file name.
    Solution:   Use a larger buffer and avoid overflowing it. (Yee Cheng Chin,
                closes #12201)

    Patch 9.0.1459
    Problem:    Typo in name of type.
    Solution:   Change funccal_T to funccall_T. (closes #12265)

    Patch 9.0.1460
    Problem:    Insufficient testing for getcmdcompltype().
    Solution:   Add a few more test cases. (closes #12268)

    Patch 9.0.1461
    Problem:    Ruler not drawn correctly when using 'rulerformat'.
    Solution:   Adjust formatting depending on whether the ruler is drawn in the
                statusline or the command line. (Sean Dewar, closes #12246)

    Patch 9.0.1462
    Problem:    Recursively calling :defer function if it does :qa.
    Solution:   Clear the defer entry before calling the function. (closes #12266)

    Patch 9.0.1463
    Problem:    Virtual text truncation only works with Unicode 'encoding'.
    Solution:   Convert the ellipsis character to 'encoding' if needed. (Hirohito
                Higashi, closes #12233)

    Patch 9.0.1464
    Problem:    Strace filetype detection is expensive.
    Solution:   Match with a cheap pattern first. (Federico Mengozzi,
                closes #12220)

    Patch 9.0.1465
    Problem:    Haiku build fails.
    Solution:   Do not include globals.h and proto.h twice. (Ozaki Kiichi,
                closes #12273)

    Patch 9.0.1466
    Problem:    Cannot use an object member name as a method argument.
    Solution:   Do not give an error for using an object member name for a method
                argument. (Hirohito Higashi, closes #12241, closes #12225)
                Fix line number for other argument error.

    Patch 9.0.1467
    Problem:    Jenkinsfiles are not recognized as groovy.
    Solution:   Add a pattern for Jenkinsfiles. (closes #12236)

    Patch 9.0.1468
    Problem:    Recursively calling :defer function if it does :qa in a compiled
                function.
    Solution:   Clear the defer entry before calling the function. (closes #12271)

    Patch 9.0.1469
    Problem:    Deferred functions not called from autocommands.
    Solution:   Also go through the funccal_stack. (closes #12267)

    Patch 9.0.1470
    Problem:    Deferred functions invoked in unexpected order when using :qa and
                autocommands.
    Solution:   Call deferred functions for the current funccal before using the
                stack. (closes #12278)

    Patch 9.0.1471
    Problem:    Warnings for function declarations.
    Solution:   Add argument types. (Michael Jarvis, closes #12277)

    Patch 9.0.1472
    Problem:    ":drop fname" may change the last used tab page.
    Solution:   Restore the last used tab page when :drop has changed it.
                (closes #12087)

    Patch 9.0.1473
    Problem:    CI does not run sound tests.
    Solution:   Re-enable sound tests.  Use "apt-get" instead of "apt". (Ozaki
                Kiichi, closes #12280)

    Patch 9.0.1474
    Problem:    CI runs with old version of Ubuntu and tools.
    Solution:   Update CI to more recent versions. (closes #11092)

    Patch 9.0.1475
    Problem:    Busted configuration files are not recognized.
    Solution:   Recognize busted configuration files as Lua. (Craig MacEachern,
                closes #12209)

    Patch 9.0.1476
    Problem:    Lines put in non-current window are not displayed. (Marius
                Gedminas)
    Solution:   Don't increment the topline when inserting just above it.
                (closes #12212)

    Patch 9.0.1477
    Problem:    Crash when recovering from corrupted swap file.
    Solution:   Check for a valid page count. (closes #12275)

    Patch 9.0.1478
    Problem:    Filetypes for *.v files not detected properly.
    Solution:   Use the file contents to detect the filetype. (Turiiya,
                closes #12281)

    Patch 9.0.1479
    Problem:    Small source file problems; outdated list of distributed files.
    Solution:   Small updates to source files and list of distributed files.

    Patch 9.0.1480
    Problem:    Using popup menu may leave text in the command line.
    Solution:   Clear the command line if the popup menu covered it. (Luuk van
                Baal, closes #12286)

    Patch 9.0.1481
    Problem:    Decrypting with libsodium may fail if the library changes.
    Solution:   Add parameters used to the encrypted file header. (Christian
                Brabandt, closes #12279)

    Patch 9.0.1482
    Problem:    Crash when textprop has a very large "padding" value. (Yegappan
                Lakshmanan)
    Solution:   Avoid the "after" count to go negative.

    Patch 9.0.1483
    Problem:    += operator does not work on class member.
    Solution:   Do not skip as if "this." was used. (Christian Brabandt,
                closes #12263)

    Patch 9.0.1484
    Problem:    Coverity warns for using invalid array index.
    Solution:   Add entry for Xchacha, even though it is not used.

    Patch 9.0.1485
    Problem:    no functions for converting from/to UTF-16 index.
    Solution:   Add UTF-16 flag to existing functions and add strutf16len() and
                utf16idx(). (Yegappan Lakshmanan, closes #12216)

    Patch 9.0.1486
    Problem:    Parallel make might not work.
    Solution:   Add missing dependencies. (Samuel Dionne-Riel, closes #12288)

    Patch 9.0.1487
    Problem:    Content-type header for LSP channel not according to spec.
    Solution:   Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan
                Lakshmanan, closes #12295)

    Patch 9.0.1488
    Problem:    xchacha20v2 crypt header is platform dependent.
    Solution:   Avoid using "size_t". (Ozaki Kiichi, closes #12296)

    Patch 9.0.1489
    Problem:    Crypt with libsodium is not tested on CI.
    Solution:   Configure testing with libsodium. (Ozaki Kiichi, closes #12297)

    Patch 9.0.1490
    Problem:    The ModeChanged event may be triggered too often.
    Solution:   Only trigger ModeChanged when no operator is pending.
                (closes #12298)

    Patch 9.0.1491
    Problem:    Wrong scrolling with ls=0 and :botright split.
    Solution:   Add statusline before calling frame_new_height(). (closes #12299)

    Patch 9.0.1492
    Problem:    Using uninitialized memory when argument is missing.
    Solution:   Check there are sufficient arguments before the base.
                (closes #12302)

    Patch 9.0.1493
    Problem:    Popup menu position wrong in window with toolbar.
    Solution:   Take the window toolbar into account when positioning the popup
                menu. (closes #12308)

    Patch 9.0.1494
    Problem:    Crash when recovering from corrupted swap file.
    Solution:   Bail out when the line index looks wrong. (closes #12276)

    Patch 9.0.1495
    Problem:    GTK3: hiding the mouse pointer does not work. (Rory O’Kane)
    Solution:   Set alpha level to zero. (Kenny Stauffer, closes #12293,
                closes #3256)

    Patch 9.0.1496
    Problem:    Test restoring register with wrong value.
    Solution:   Correct name of variable. (closes #12310)

    Patch 9.0.1497
    Problem:    The ruler percentage can't be localized.
    Solution:   Use a string that can be translated. (Emir Sari, closes #12311)

    Patch 9.0.1498
    Problem:    In a terminal window the cursor may jump around. (Kenny Stauffer)
    Solution:   Do not move the cursor to the position for terminal-normal mode.
                (closes #12312)

    Patch 9.0.1499
    Problem:    Using uninitialized memory with fuzzy matching.
    Solution:   Initialize the arrays used to store match positions.

    Patch 9.0.1500
    Problem:    The falsy operator is not tested properly.
    Solution:   Add a few more test cases. (closes #12319)

    Patch 9.0.1501
    Problem:    Crash with nested :try and :throw in catch block.
    Solution:   Jump to :endtry before returning from function. (closes #12245)

    Patch 9.0.1502
    Problem:    No test for deleting the end of a long wrapped line.
    Solution:   Add a test to check the right text is displayed. (Luuk van Baal,
                closes #12318)

    Patch 9.0.1503
    Problem:    Luau files are not recognized.
    Solution:   Add a patter for Luau files. (Amaan Qureshi, closes #12317)

    Patch 9.0.1504
    Problem:    No error when calling remote_startserver() with an empty string.
    Solution:   Give an error for an empty string. (Hirohito Higashi,
                closes #12327)

    Patch 9.0.1505
    Problem:    Error when heredoc content looks like heredoc.
    Solution:   Handle curly expressions. (closes #12325)

    Patch 9.0.1506
    Problem:    Line number not displayed when using 'smoothscroll'.
    Solution:   Adjust condition for showing the line number. (closes #12333)

    Patch 9.0.1507
    Problem:    Assert message is confusing with boolean result.  assert_inrange()
                replaces message instead of adding it.
    Solution:   Don't put quotes around expected boolean value.  Append message
                for assert_inrange(). (closes #12342, closes #12341)

    Patch 9.0.1508
    Problem:    Catch does not work when lines are joined with a newline.
    Solution:   Set "nextcmd" appropriately. (closes #12348)

    Patch 9.0.1509
    Problem:    Error message lacks mentioning the erroneous argument.
    Solution:   Specify the argument that the error is for.

    Patch 9.0.1510
    Problem:    Misleading variable name for error message.
    Solution:   Change "name" to "number".  (closes #12345)

    Patch 9.0.1511
    Problem:    Crash when using wrong arg types to assert_match().
    Solution:   Check for NULL pointer. (closes #12349)

    Patch 9.0.1512
    Problem:    Inserting lines when scrolling with 'smoothscroll' set.
    Solution:   Adjust line height computation for w_skipcol. (Luuk van Baal,
                closes #12350)

    Patch 9.0.1513
    Problem:    Text scrolls unnecessarily when splitting and 'splitkeep' is not
                "cursor".
    Solution:   Avoid resetting w_skipcol. (Luuk van Baal, closes #12334)

    Patch 9.0.1514
    Problem:    Test waits unnecessarily long before checking screendump.
    Solution:   Remove TermWait() call.

    Patch 9.0.1515
    Problem:    reverse() does not work for a String.
    Solution:   Implement reverse() for a String. (Yegappan Lakshmanan,
                closes #12179)

    Patch 9.0.1516
    Problem:    Cannot use special keys in <Cmd> mapping.
    Solution:   Do allow for special keys in <Cmd> and <ScriptCmd> mappings.
                (closes #12326)

    Patch 9.0.1517
    Problem:    MacOS: configure removes -O2 from $CFLAGS.
    Solution:   Only adjust $CFLAGS for gcc. (closes #12351)

    Patch 9.0.1518
    Problem:    Search stats not always visible when searching backwards.
    Solution:   Do not display the top/bot message on top of the search stats.
                (Christian Brabandt, closes #12322, closes #12222)

    Patch 9.0.1519
    Problem:    Global 'filetype' is set when it is detected from the file content.
    Solution:   Set the local 'filetype' option value.

    Patch 9.0.1520
    Problem:    Completion for option name includes all bool options.
    Solution:   Do not recognize the "noinv" prefix.  Prefix "no" or "inv" when
                appropriate.

    Patch 9.0.1521
    Problem:    Failing redo of command with control characters.
    Solution:   Use AppendToRedobuffLit() for colon commands. (closes #12354)

    Patch 9.0.1522
    Problem:    Some functions give two error messages.
    Solution:   Do not give a second error message. (closes #12352)

    Patch 9.0.1523
    Problem:    Some error messages are not marked for translation.
    Solution:   Surround the messages in _(). (closes #12356)

    Patch 9.0.1524
    Problem:    Passing -1 for bool is not always rejected.
    Solution:   Check for error in a better way. (closes #12358)

    Patch 9.0.1525
    Problem:    'smoothscroll' does not always work properly.
    Solution:   Do not reset w_skipcol after it was intentionally set.  (Luuk van
                Baal, closes #12360, closes #12199, closes #12323)

    Patch 9.0.1526
    Problem:    Condition is always true.
    Solution:   Remove unnecessary condition. (closes #12359)

    Patch 9.0.1527
    Problem:    Crash when using negative value for term_cols.
    Solution:   Check for invalid term_cols value. (Kenta Sato, closes #12362)

    Patch 9.0.1528
    Problem:    Libsodium encryption is only used with "huge" features, even when
                manually enabled through configure. (Tony Mechelynck)
    Solution:   Remove the condition on FEAT_HUGE.

    Patch 9.0.1529
    Problem:    Code style test doesn't check for space after "if".
    Solution:   Add a test for space.

    Patch 9.0.1530
    Problem:    Cursor moves to wrong line when 'foldmethod' is "diff". (Rick
                Howe)
    Solution:   Adjust logic for scrolling. (Luuk van Baal, closes #12364,
                closes #12218)

    Patch 9.0.1531
    Problem:    Crash when register contents ends up being invalid.
    Solution:   Check "y_array" is not NULL.

    Patch 9.0.1532
    Problem:    Crash when expanding "~" in substitute causes very long text.
    Solution:   Limit the text length to MAXCOL.

    Patch 9.0.1533
    Problem:    Test for 'smoothscroll' is ineffective.
    Solution:   Change the order of testing "zb" and "zt". (Luuk van Baal,
                closes #12366)

    Patch 9.0.1534
    Problem:    Test for expanding "~" in substitute takes too long.
    Solution:   Disable the test for now.

    Patch 9.0.1535
    Problem:    Test commented out in a wrong way.
    Solution:   Use legacy script comment character.

    Patch 9.0.1536
    Problem:    CI: sound dummy stopped working.
    Solution:   Temporarily stop using sound dummy.

    Patch 9.0.1537
    Problem:    Message for opening the cmdline window is not translated.
    Solution:   Add gettext() and scan the defaults script for text to be
                translated.  (closes #12371)

    Patch 9.0.1538
    Problem:    :wqall does not trigger ExitPre. (Bart Libert)
    Solution:   Move preparations for :qall to a common function. (closes #12374)

    Patch 9.0.1539
    Problem:    Typst filetype is not recognized.
    Solution:   Distinguish between sql and typst. (Gaetan Lepage, closes #12363)

    Patch 9.0.1540
    Problem:    reverse() on string doesn't work in compiled function.
    Solution:   Accept string in argument type check. (Yegappan Lakshmanan,
                closes #12377)

    Patch 9.0.1541
    Problem:    CI: sound dummy is disabled.
    Solution:   Make sound dummy work again. (closes #12380)

    Patch 9.0.1542
    Problem:    Line not fully displayed if it doesn't fit in the screen.
    Solution:   Do not reset s_skipcol if not needed. (Luuk van Baal,
                closes #12376)

    Patch 9.0.1543
    Problem:    Display errors when making topline shorter and 'smoothscroll' is
                set.
    Solution:   Reset w_skipcol when the topline becomes shorter than its current
                value. (Luuk van Baal, closes #12367)

    Patch 9.0.1544
    Problem:    Recent glibc marks sigset() as a deprecated.
    Solution:   Use sigaction() in mch_signal() if possible. (Ozaki Kiichi,
                closes #12373)

    Patch 9.0.1545
    Problem:    Text not scrolled when cursor moved with "g0" and "h".
    Solution:   Adjust w_skipcol when needed. (Luuk van Baal, closes #12387)

    Patch 9.0.1546
    Problem:    Some commands for opening a file don't use 'switchbuf'.
    Solution:   Use 'switchbuf' for more commands. (Yegappan Lakshmanan,
                closes #12383, closes #12381)

    Patch 9.0.1547
    Problem:    Coveralls workflow on CI is commented out.
    Solution:   Remove the Coveralls workflow. (closes #12389)

    Patch 9.0.1548
    Problem:    CI: check in sound-dummy module may throw an error.
    Solution:   Check whether apt-cache can show the package description.
                (Christian Brabandt, closes #12390)

    Patch 9.0.1549
    Problem:    USD filetype is not recognized.
    Solution:   Add patterns for USD filetype. (Colin Kennedy, closes #12370)

    Patch 9.0.1550
    Problem:    In cmdline window S-Tab does not select previous completion.
                (Maxim Kim)
    Solution:   Add a mapping for S-Tab. (closes #12116)

    Patch 9.0.1551
    Problem:    Position of marker for 'smoothscroll' not computed correctly.
    Solution:   Take 'list' and other options into account. (Luuk van Baal,
                closes #12393)

    Patch 9.0.1552
    Problem:    CI: sound-dummy module is not installed.
    Solution:   Invert using the result of the condition.  (closes #12394)

    Patch 9.0.1553
    Problem:    CI: using slightly outdated gcc version.
    Solution:   Use "brew" to get a more recent gcc version.  (closes #12391)

    Patch 9.0.1554
    Problem:    Code for handling 'switchbuf' is repeated.
    Solution:   Add a function to handle 'switchbuf'. (Yegappan Lakshmanan,
                closes #12397)

    Patch 9.0.1555
    Problem:    setcharsearch() does not clear last searched char properly.
    Solution:   Do not accept lastc_bytelen smaller than one. (closes #12398)

    Patch 9.0.1556
    Problem:    Vim9: error for missing "return" after "throw".
    Solution:   Set had_return flag for "throw". (closes #12262)

    Patch 9.0.1557
    Problem:    Test failures for unreachable code.
    Solution:   Add a test override to ignore unreachable code.

    Patch 9.0.1558
    Problem:    Wrong error for unreachable code after :throw.
    Solution:   Adjust the error message.

    Patch 9.0.1559
    Problem:    Function argument types not always checked and using v:none may
                cause an error.
    Solution:   Check argument types once the function type is known.  Do not give
                an error for using v:none as an argument. (closes #12200)

    Patch 9.0.1560
    Problem:    Win32: When 'encoding' is set $PATH has duplicate entries.
    Solution:   Only append the directory if it is not there yet. (Ken Takata,
                closes #12400, closes #12372)

    Patch 9.0.1561
    Problem:    Display wrong when moving cursor to above the top line and
                'smoothscroll' is set.
    Solution:   Call adjust_skipcol() in more places and make it work better.
                (Luuk van Baal, closes #12395)

    Patch 9.0.1562
    Problem:    Mixing package managers is not a good idea.
    Solution:   Install gcc 13 with apt-get. (closes #12405)

    Patch 9.0.1563
    Problem:    GTK3: window manager resize hints are incomplete.
    Solution:   Use NULL for second argument of gtk_window_set_geometry_hints().
                (Kenny Stauffer closes #11055)

    Patch 9.0.1564
    Problem:    Display moves up and down with 'incsearch' and 'smoothscroll'.
    Solution:   Do not check if w_skipcol changed. (Luuk van Baal, closes #12410,
                closes #12409)

    Patch 9.0.1565
    Problem:    Json lines files are not recognized.
    Solution:   Add a pattern to detect "jsonl" files. (issue #7520)

    Patch 9.0.1566
    Problem:    Motif: GUI scrollbar test fails in 24 lines terminal.
    Solution:   Skip the part of the test that fails for now.

    Patch 9.0.1567
    Problem:    Profiler calculation may be wrong on 32 bit builds.
    Solution:   Use 64 bit variable if possible. (Isao Sato, closes #12412)

    Patch 9.0.1568
    Problem:    With 'smoothscroll' cursor may move below botline.
    Solution:   Call redraw_later() if needed,  Compute cursor row with adjusted
                condition. (Luuk van Baal, closes #12415)

    Patch 9.0.1569
    Problem:    Cannot use "this.member" in lambda in class method.
    Solution:   Adjust check for reserved keyword. (Hirohito Higashi,
                closes #12416, closes #12076, closes #12336)

    Patch 9.0.1570
    Problem:    Some tests are slow.
    Solution:   Make a few test cases faster.

    Patch 9.0.1571
    Problem:    RedrawingDisabled not used consistently.
    Solution:   Avoid RedrawingDisabled going negative.  Set RedrawingDisabled in
                win_split_ins(). (closes #11961)

    Patch 9.0.1572
    Problem:    Error messages are not translated.
    Solution:   Add _().

    Patch 9.0.1573
    Problem:    Error for function name has wrong line number.
    Solution:   Set the line number before giving the error.

    Patch 9.0.1574
    Problem:    MS-Windows: list of translation input files incomplete.
    Solution:   Move the list of files to a common file. (closes #12426)

    Patch 9.0.1575
    Problem:    "file N of M" message is not translated.
    Solution:   Make argument count message translatable. (close #12429)

    Patch 9.0.1576
    Problem:    Users may not know what to do with an internal error.
    Solution:   Add a translated message with instructions.

    Patch 9.0.1577
    Problem:    MS-Windows: context menu translations may be wrong.
    Solution:   Set the encoding before using gettext(). (Ken Takata,
                closes #12441, closes #12431)

    Patch 9.0.1578
    Problem:    SpellCap highlight not always updated when needed.
    Solution:   Handle updating line below closed fold and other situations where
                only part of the window is redrawn. (Luuk van Baal, closes #12428,
                closes #12420)

    Patch 9.0.1579
    Problem:    Some error messages are not translated.
    Solution:   Add the N_() marker on messages. (closes #12427)

    Patch 9.0.1580
    Problem:    CI: indent test hangs on FreeBSD.
    Solution:   Set 'nomore' when running the indent tests. (Ozaki Kiichi,
                closes #12446)

    Patch 9.0.1581
    Problem:    Translation does not work for plural argument.
    Solution:   Use PLURAL_MSG() for errors and with xgettext. (closes #12443)

    Patch 9.0.1582
    Problem:    :stopinsert may not work in a popup close handler. (Ben Jackson)
    Solution:   Restore stop_insert_mode when appropriate. (closes #12452,
                closes #12434)

    Patch 9.0.1583
    Problem:    Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott)
    Solution:   Add 4th crypt method to block zero ID check.  Avoid syncing a swap
                file before reading the file. (closes #12433)

    Patch 9.0.1584
    Problem:    Not all meson files are recognized.
    Solution:   Add "meson.options". (Liam Beguin, closes #12444)

    Patch 9.0.1585
    Problem:    Weird use of static variables for spell checking.
    Solution:   Move the variables to a structure and pass them from win_update()
                to win_line(). (Luuk van Baal, closes #12448)

    Patch 9.0.1586
    Problem:    Checking translations gives an error for using two messages with
                ngettext() that differ in "%" items.
    Solution:   Adjust the check script to tolerate omitting one "%" item.

    Patch 9.0.1587
    Problem:    Corn config files are not recognized.
    Solution:   Add a pattern for Corn config files. (Jake Stanger, closes #12449)

    Patch 9.0.1588
    Problem:    Incsearch not triggered when pasting clipboard register on the
                command line.
    Solution:   Also set "literally" when using a clipboard register. (Ken Takata,
                closes #12460)

    Patch 9.0.1589
    Problem:    Filetype test contains too many special characters.
    Solution:   Use Vim9 syntax for a few things.

    Patch 9.0.1590
    Problem:    Filetype test has trailing white space.
    Solution:   Remove trailing white space.

    Patch 9.0.1591
    Problem:    Some "gomod" files are not recognized.
    Solution:   Check for "go.mod" file name before checking out the contents.
                (Omar El Halabi, closes #12462)

    Patch 9.0.1592
    Problem:    Not all timer tests are marked as flaky.
    Solution:   Set the flaky flag for all timer tests. (closes #12355)

    Patch 9.0.1593
    Problem:    MS-Windows: assert error when compiled with debug mode.
    Solution:   Adjust arguments to setvbuf(). (Ken Takata, closes #12467)

    Patch 9.0.1594
    Problem:    Some internal error messages are translated.
    Solution:   Consistently do not translate internal error messages.
                (closes #12459)

    Patch 9.0.1595
    Problem:    Line pointer becomes invalid when using spell checking.
    Solution:   Call ml_get() at the right places. (Luuk van Baal, closes #12456)

    Patch 9.0.1596
    Problem:    :registers command does not work in sandbox.
    Solution:   Add flag to the command. (closes #12473)

    Patch 9.0.1597
    Problem:    Cursor ends up below the window after a put.
    Solution:   Mark w_crow and w_botline invalid when changing the cursor line.
                (closes #12465)

    Patch 9.0.1598
    Problem:    screenchar(), screenchars() and screenstring() do not work
                properly when 'encoding' is set to a double-byte encoding.
    Solution:   Fix the way the bytes of the characters are obtained.
                (issue #12469)

    Patch 9.0.1599
    Problem:    Cursor not adjusted when near top or bottom of window and
                'splitkeep' is not "cursor".
    Solution:   Move boundary checks to outer cursor move functions, inner
                functions should only return valid cursor positions. (Luuk van
                Baal, closes #12480)

    Patch 9.0.1600
    Problem:    screenpos() does not take w_skipcol into account.
    Solution:   Subtract w_skipcol from column. (closes #12486, closes #12476)

    Patch 9.0.1601
    Problem:    Filetype detection fails for *.conf file without comments.
                (Dmitrii Tcyganok)
    Solution:   Use "conf" filetype as a fallback for an empty .conf file.
                (closes #12487, closes #12483)

    Patch 9.0.1602
    Problem:    Stray character is visible if 'smoothscroll' marker is displayed
                on top of a double-wide character.
    Solution:   When overwriting a double-width character with the 'smoothscroll'
                marker clear the second half. (closes #12469)

    Patch 9.0.1603
    Problem:    Display wrong when scrolling multiple lines with 'smoothscroll'
                set.
    Solution:   Redraw when w_skipcol changed. (closes #12477, closes #12468)

    Patch 9.0.1604
    Problem:    Errors from the codestyle test are a bit confusing.
    Solution:   Use assert_report() with a clearer message.  Avoid a warning for
                an existing swap file.

    Patch 9.0.1605
    Problem:    Crash when calling method on super in child constructor. (Israel
                Chauca Fuentes)
    Solution:   Clear the type list. (Ernie Rael, closes #12489, closes #12471)

    Patch 9.0.1606
    Problem:    Using freed memory when 'foldcolumn' is set.
    Solution:   Save extra pointer to free it later. (closes #12492)

    Patch 9.0.1607
    Problem:    screenpos() returns wrong row with diff filler lines.
    Solution:   Only add filler lines when appropriate.  Also don't add the
                'smoothscroll' marker when w_skipcol is zero. (closes #12485,
                closes #12484)

    Patch 9.0.1608
    Problem:    update_topline() is called twice.
    Solution:   Do not call update_topline() before curs_columns(). (Luuk van
                Baal, closes #12495)

    Patch 9.0.1609
    Problem:    Crash when an object indirectly references itself.
    Solution:   Avoid clearing an object while it is already being cleared.
                (closes #12494)

    Patch 9.0.1610
    Problem:    Display is wrong when 'smoothscroll' is set and scrolling multiple
                lines.
    Solution:   Redraw with UPD_NOT_VALID when "skipcol" is or was set.
                (closes #12490, closes #12468)

    Patch 9.0.1611
    Problem:    v:maxcol can be changed in a :for loop.
    Solution:   Check for read-only loop variable. (closes #12470)

    Patch 9.0.1612
    Problem:    "skipcol" not reset when using multi-byte characters.
    Solution:   Compare with w_virtcol instead of w_cursor.col. (closes #12457)

    Patch 9.0.1613
    Problem:    Some make output gets picked up by 'errorformat'.
    Solution:   Ignore make output by default. (Gregory Anders, closes #12481)

    Patch 9.0.1614
    Problem:    strlen() called too often for :spellrepall.
    Solution:   Store the result in a variable. (closes #12497)

    Patch 9.0.1615
    Problem:    URL shortcut files are not recognized.
    Solution:   Add a pattern for URL shortcut files. (closes #12474)

    Patch 9.0.1616
    Problem:    Quickfix text field is truncated.
    Solution:   Fix output of text field after pattern field in quickfix buffer.
                (Shane Harper, closes #12498)

    Patch 9.0.1617
    Problem:    charidx() and utf16idx() result is not consistent with byteidx().
    Solution:   When the index is equal to the length of the text return the
                length of the text instead of -1. (Yegappan Lakshmanan,
                closes #12503)

    Patch 9.0.1618
    Problem:    Trace32 files are not recognized.
    Solution:   Add patterns for the t32 filetype. (Christoph Sax, closes #12505)

    Patch 9.0.1619
    Problem:    The focus gained/lost escape sequences cause trouble for a
                terminal where Vim does not expect them.
    Solution:   Always recognize the codes for focus gained/lost. (closes #12499)

    Patch 9.0.1620
    Problem:    Nix files are not recognized from the hashbang line.
    Solution:   Add a hashbang check. (issue #12507)

    Patch 9.0.1621
    Problem:    FILETYPE_FILE is defined to the same value multiple times.  Same
                for a few similar macros.
    Solution:   Define FILETYPE_FILE and others in feature.h only

    Patch 9.0.1622
    Problem:    Filetype name t32 is a bit obscure.
    Solution:   Rename t32 to trace32. (Christoph Sax, closes #12512)

    Patch 9.0.1623
    Problem:    The program to filetype translation is not exported.
    Solution:   Export Exe2filetype().

    Patch 9.0.1624
    Problem:    Crash when calling object constructor from legacy script. (Israel
                Chauca Fuentes)
    Solution:   Pass a pointer for "ufunc". (closes #12502)

    Patch 9.0.1625
    Problem:    "super" is not considered a reserved name.
    Solution:   Add "super" to the list of reserved names. (closes #12515)

    Patch 9.0.1626
    Problem:    Visual area not shown when using 'showbreak' and start of line is
                not visible. (Jaehwang Jung)
    Solution:   Adjust "fromcol" for the space taken by 'showbreak'.
                (closes #12514)

    Patch 9.0.1627
    Problem:    No generic mechanism to test syntax plugins.
    Solution:   Add a syntax plugin test mechanism, using screendumps.  Add a
                simple test for "c".

    Patch 9.0.1628
    Problem:    Syntax tests fail on FreeBSD.
    Solution:   Pass the Vim executable path with VIMPROG. (Ken Takata,
                closes #12535)  Adjust the paths.

    Patch 9.0.1629
    Problem:    Having utf16idx() rounding up is inconvenient.
    Solution:   Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523)

    Patch 9.0.1630
    Problem:    "make clean" at the toplevel fails.
    Solution:   Clean the indent and syntax directories in a sub-shell.  (Ben
                Jackson, closes #12536, closes #12526)

    Patch 9.0.1631
    Problem:    Passing a wrong variable type to an option gives multiple errors.
    Solution:   Bail out early on failure. (closes #12504)

    Patch 9.0.1632
    Problem:    Not all cabal config files are recognized.
    Solution:   Add a couple of patterns. (Marcin Szamotulski, closes #12463)

    Patch 9.0.1633
    Problem:    Duplicate code for converting float to string.
    Solution:   Use tv_get_string(). (closes #12521)

    Patch 9.0.1634
    Problem:    Message is cleared when removing mode message (Gary Johnson).
    Solution:   Do not clear the command line after displaying a message.

    Patch 9.0.1635
    Problem:    Error message is cleared when removing mode message.
    Solution:   Also reset flags when the message is further down.

    Patch 9.0.1636
    Problem:    Expanding a pattern interferes with command line completion.
    Solution:   Set the file index only when appropriate. (closes #12519)

    Patch 9.0.1637
    Problem:    Compiler warning for uninitialized variable.
    Solution:   Move the variable to an inner block and initialize it. (Christian
                Brabandt, closes #12549)

    Patch 9.0.1638
    Problem:    crypt tests hang and cause memory errors
    Solution:   Move variable to start of function.

    Patch 9.0.1639
    Problem:    Build failure without the crypt feature.
    Solution:   Adjust #ifdefs

    Patch 9.0.1640
    Problem:    Compiler warning for unused variables without the crypt feature.
    Solution:   Adjust #ifdefs

    Patch 9.0.1641
    Problem:    The log file does not give information about window sizes.
    Solution:   Add a few log messages about obtaining the window size.

    Patch 9.0.1642
    Problem:    Build failure with tiny features.
    Solution:   Add #ifdef's.

    Patch 9.0.1643
    Problem:    Filetype detection fails if file name ends in many '~'.
    Solution:   Strip multiple '~' at the same time. (closes #12553)

    Patch 9.0.1644
    Problem:    Not all filetype file name matches are tested.
    Solution:   Add more file names to test with. (Jonas Strittmatter,
                closes #12569)

    Patch 9.0.1645
    Problem:    zserio files are not recognized.
    Solution:   Add a pattern for zserio files. (Dominique Pellé,
                closes #12544)

    Patch 9.0.1646
    Problem:    CI: codecov may take a very long time to run.
    Solution:   Add a timeout. (Philip Heiduck, closes #12559)

    Patch 9.0.1647
    Problem:    Insufficient testing for syntax plugins.
    Solution:   Add shell file examples. (Charles Campbell)  Create a messages
                file for easier debugging and reporting the test results.

    Patch 9.0.1648
    Problem:    Result of syntax tests is hard to see.
    Solution:   List the failed tests.

    Patch 9.0.1649
    Problem:    Syntax test failure causes script to abort.
    Solution:   Fix appending string to list.

    Patch 9.0.1650
    Problem:    MS-Windows: default 'viewdir' may include read-only directory.
    Solution:   Use $HOME instead of $VIM for 'viewdir' default. (closes #12119)

    Patch 9.0.1651
    Problem:    Unclear why syntax test fails on Mac.
    Solution:   Temporarily show the whole "messages" file.

    Patch 9.0.1652
    Problem:    Unclear why syntax test fails on Mac.
    Solution:   Echo v:errors when it's not empty.

    Patch 9.0.1653
    Problem:    Amiga: default 'viewdir' may not work.
    Solution:   Use "home:" instead of "$VIM". Add a test. (Christian Brabandt,
                closes #12576)

    Patch 9.0.1654
    Problem:    MS-Windows: test for default 'viewdir' fails.
    Solution:   Escape the pattern.

    Patch 9.0.1655
    Problem:    Syntax test fails when Vim window is not tall enough.
    Solution:   Make sure each terminal window is closed.

    Patch 9.0.1656
    Problem:    Syntax test fails when detected shell type differs.
    Solution:   Avoid using "/bin/sh", it depends on the system.  Add a check that
                the shell type detection is correct.

    Patch 9.0.1657
    Problem:    One more syntax test depends on the system.
    Solution:   Use "dash" instead of "sh".

    Patch 9.0.1658
    Problem:    Autoload files for "zig" are not installed.
    Solution:   Add install and uninstall rules in the makefile. (Christian
                Brabandt, closes #12577, closes #12567)

    Patch 9.0.1659
    Problem:    Termdebug: default highlight cleared when changing colorscheme.
    Solution:   Use a ColorScheme autocommand. (Christian Brabandt, closes #12566,
                closes #12555)

    Patch 9.0.1660
    Problem:    Error for using matchfuzzy() in Vim9 script returning a list of
                dicts.
    Solution:   Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan,
                closes #12574)

    Patch 9.0.1661
    Problem:    BUCK files are not recognized.
    Solution:   Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564)

    Patch 9.0.1662
    Problem:    Crash when using a class member twice. (Christian J. Robinson)
    Solution:   Make a copy of the value.

    Patch 9.0.1663
    Problem:    Termdebug on MS-Windows: some file names are not recognized.
    Solution:   Do not always change \t and \n. (Christian Brabandt,
                closes #12565, closes #12560, closes #12550)

    Patch 9.0.1664
    Problem:    Divide by zero when scrolling with 'smoothscroll' set.
    Solution:   Avoid using a negative width. (closes #12540, closes #12528)

    Patch 9.0.1665
    Problem:    Empty CmdlineEnter autocommand causes errors in Ex mode.
    Solution:   Save and restore ex_pressedreturn. (Christian Brabandt,
                closes # 12581, closes #12578)

    Patch 9.0.1666
    Problem:    Compiler may warn for uninitialized variable.
    Solution:   Initialize this_props_len. (Christian Brabandt, closes #12599)

    Patch 9.0.1667
    Problem:    Regression test doesn't fail when fix is reverted.
    Solution:   Add "n" to 'cpoptions' instead of using :winsize. (closes #12587,
                issue #12528)

    Patch 9.0.1668
    Problem:    PEM files are not recognized.
    Solution:   Add patterns to match PEM files. (closes #12582)

    Patch 9.0.1669
    Problem:    Crash syncing swapfile in new buffer when using sodium crypt.
                (James McCoy)
    Solution:   Add checks for sodium encryption. (Christian Brabandt,
                closes #12591, closes #12585)

    Patch 9.0.1670
    Problem:    Resetting local option to global value is inconsistent.
    Solution:   Handle "<" specifically for 'scrolloff' and 'sidescrolloff'.
                (closes #12594)

    Patch 9.0.1671
    Problem:    Termdebug: error with more than 99 breakpoints.
    Solution:   Use a different sign for breakpoint 100 and over. (closes #12589,
                closes #12588)

    Patch 9.0.1672
    Problem:    Tabline highlight wrong after truncated double width label.
    Solution:   Fill up half a double width character later. (closes #12614)

    Patch 9.0.1673
    Problem:    Cannot produce a status 418 or 503 message.
    Solution:   Add err_teapot().

    Patch 9.0.1674
    Problem:    Help for builtin functions is not sorted properly.
    Solution:   Put err_teapot() help in the right position.

    Patch 9.0.1675
    Problem:    Test may run into timeout when using valgrind.
    Solution:   Use a longer timeout when using valgrind.

    Patch 9.0.1676
    Problem:    Warning for buffer in use when exiting early.
    Solution:   Change file names to be able to see what buffer is in use when
                exiting.

    Patch 9.0.1677
    Problem:    Typo in syntax test input file.
    Solution:   Fix the typo and the expected dump files. (THARAK HEGDE,
                closes #12635)

    Patch 9.0.1678
    Problem:    Blade files are not recognized.
    Solution:   Add a pattern for Blade files. (closes #12650)

    Patch 9.0.1679
    Problem:    Tests may leave leftover files around
    Solution:   Clean up tests and remove files

    Patch 9.0.1680
    Problem:    sodium test fails in Github CI
    Solution:   Catch sodium_mlock() errors and do not error out

    Patch 9.0.1681
    Problem:    Build Failure with Perl 5.38
    Solution:   Fix Build Failure

    Patch 9.0.1682
    Problem:    crypt: sodium encryption is not portable
    Solution:   use little-endian byte order for sodium encrypted files

    Patch 9.0.1683
    Problem:    need runtime files updated
    Solution:   merge various github PRs

    Patch 9.0.1684
    Problem:    libvterm slightly outdated
    Solution:   Update libvterm from rev 818 to rev 839

    Patch 9.0.1685
    Problem:    Python 3.11 interface throws deprecation warnings
    Solution:   ignore those warnings for gcc and clang

    Patch 9.0.1686
    Problem:    undotree() only works for the current buffer
    Solution:   Add an optional "buffer number" parameter to undotree().  If
                omitted, use the current buffer for backwards compatibility.

    Patch 9.0.1687
    Problem:    mapset() not properly handling script ID
    Solution:   replace_termcodes() may accept a script ID

    Patch 9.0.1688
    Problem:    cannot store custom data in quickfix list
    Solution:   add `user_data` field for the quickfix list

    Patch 9.0.1689
    Problem:    python 3.12 produces warnings and fails test
    Solution:   Make use of raw strings in python3 tests

    Patch 9.0.1690
    Problem:    popup_create() not aborting on errors
    Solution:   check for errors in arguments given and abort if an error
                occurred

    Patch 9.0.1691
    Problem:    wrong viewport restored for incsearch and smoothscroll
    Solution:   Save and restore skipcol as well

    Patch 9.0.1692
    Problem:    Android not handling AI_V4MAPPED ai_flag
    Solution:   don't set AI_V4MAPPED flag when on Android, since
                Android's getaddrinfo returns EAI_BADFLAGS if ai_flags
                contains it

    Patch 9.0.1693
    Problem:    Ctrl-Q not handled like Ctrl-V in replace mode
    Solution:   Handle Ctrl-Q like Ctrl-V

    Patch 9.0.1694
    Problem:    wrong mapping applied when replaying a char search
    Solution:   Store a NOP after the ESC

    Patch 9.0.1695
    Problem:    Crash with overlong textprop above
    Solution:   Consider only positive padding

    Patch 9.0.1696
    Problem:    sodium_mlock may still fail in CI
    Solution:   Catch E1230 in testscript and skip test

    Patch 9.0.1697
    Problem:    incsearch test not sufficient (after 9.0.1691)
    Solution:   add an additional test

    Patch 9.0.1698
    Problem:    Test_map_restore_sid fails in GUI
    Solution:   Feed an unsimplified Ctrl-B

    Patch 9.0.1699
    Problem:    compile warning for xdiff/xutils on MS-Windows
    Solution:   add explicit type cast from size_t to long

    Patch 9.0.1700
    Problem:    Cannot compile with dynamic perl < 5.38 (after 9.0.1681)
    Solution:   Fix if_perl/dyn from perl 5.32 to 5.38

    Patch 9.0.1701
    Problem:    vim9 crash when class member overridden
    Solution:   Use method_count field instead

    Patch 9.0.1702
    Problem:    Undo test is flaky.
    Solution:   Apply filter and change time to "1 second ago" in both dumps.

    Patch 9.0.1703
    Problem:    Vim9 Calling a method in an extended class fails
    Solution:   use method index directly

    Patch 9.0.1704
    Problem:    Cannot use positional arguments for printf()
    Solution:   Support positional arguments in string formatting

    Patch 9.0.1705
    Problem:    cursor position wrong when clicking on an unprintable char
    Solution:   Don't update prev_ptr when wlv.n_extra is not zero.

    Patch 9.0.1706
    Problem:    typos in the xxd manpage
    Solution:   Fix typos and formatting

    Patch 9.0.1707
    Problem:    Cannot wrap around in popup_filter_menu()
    Solution:   Allow to wrap around by default

    Patch 9.0.1708
    Problem:    getcompletion() fails for user-defined commands
    Solution:   set context for completion function

    Patch 9.0.1709
    Problem:    dynamic build with python 3.12 breaks
    Solution:   if_python3.c: Fix building dynamic Python3 interpreter

    Patch 9.0.1710
    Problem:    sidescrolloff and scrolloff options work slightly
                different than other global-local options
    Solution:   Make it behave consistent for all global-local options

    Patch 9.0.1711
    Problem:    dead code in charset.c
    Solution:   remove it

    Patch 9.0.1712
    Problem:    missing null check in object_clear()
    Solution:   Add null check of cl

    Patch 9.0.1713
    Problem:    Github CI fails to load snd-dummy kernel module
    Solution:   Make installation of linux-modules-extra optional

    Patch 9.0.1714
    Problem:    getcompletion() "cmdline" fails after :autocmd
    Solution:   Use set_cmd_context() instead of set_one_cmd_context().

    Patch 9.0.1715
    Problem:    duplicate test in message_test.c
    Solution:   Remove duplicate test and make functions static

    Patch 9.0.1716
    Problem:    Windows build with python 3.12 and clang fails
    Solution:   Remove the PyBool_Type function pointer for python 3.12

    Patch 9.0.1717
    Problem:    virtcol2col returns last byte of a multi-byte char
    Solution:   Make it return the first byte for a multi-byte char

    Patch 9.0.1718
    Problem:    dict-completion does not respect region
    Solution:   respect selected region in dict completion

    Patch 9.0.1719
    Problem:    if_lua: crash for Lua functions invoked via Vim callbacks
    Solution:   Use Lua registry rather than upvalues for udata cache

    Patch 9.0.1720
    Problem:    Vim9 class using wrong index for overridden method
    Solution:   Use correct index for overridden method

    Patch 9.0.1721
    Problem:    Build failure on Windows with dynamic lua (after 9.0.1719)
    Solution:   move definition further down in if_lua

    Patch 9.0.1722
    Problem:    wrong error messages when passing wrong types to count()
    Solution:   fix it

    Patch 9.0.1723
    Problem:    Fix regression in {func} argument of reduce()
    Solution:   pass function name as string again

    Patch 9.0.1724
    Problem:    vim9class constructor argument type checking bug
    Solution:   fix it

    Patch 9.0.1725
    Problem:    Wrong cursor position when clicking after concealed text
                with 'virtualedit'.
    Solution:   Store virtual columns in ScreenCols[] instead of text
                columns, and always use coladvance() when clicking.

    Patch 9.0.1726
    Problem:    incorrect heights in win_size_restore()
    Solution:   avoid restoring incorrect heights in win_size_restore()

    Patch 9.0.1727
    Problem:    minor problems with the teapot()
    Solution:   remove the null check, update documentation

    Patch 9.0.1728
    Problem:    missing winid argument for virtcol()
    Solution:   Add a {winid} argument to virtcol()

    Patch 9.0.1729
    Problem:    screenpos() wrong result with w_skipcol and cpoptions+=n
    Solution:   Use adjust_plines_for_skipcol() instead of subtracting
                w_skipcol.

    Patch 9.0.1730
    Problem:    passing multiple patterns to runtime not working
    Solution:   prepend prefix to each argument separately

    Patch 9.0.1731
    Problem:    blockwise Visual highlight not working with virtual text
    Solution:   Reset the correct variable at the end of virtual selection and
                Check for double-width char inside virtual text.

    Patch 9.0.1732
    Problem:    vimexpr: shadowing variable
    Solution:   Rename local variable

    Patch 9.0.1733
    Problem:    CI: cannot cache linux-modules-extra
    Solution:   Enable caching and reduce failed downloads

    Patch 9.0.1734
    Problem:    runtime completion fails for multiple args
    Solution:   Make it work

    Patch 9.0.1735
    Problem:    Rename completion specific findex var
    Solution:   Move "findex" static variable to xp_selected in expand_T

    Patch 9.0.1736
    Problem:    Github Actions times out after 20 minutes
    Solution:   Increase the timeout to 25 minutes

    Patch 9.0.1737
    Problem:    Calling a base class method through an extended class fails
    Solution:   Create lookup table for member index in the interface to
                to the member class implementing the interface

    Patch 9.0.1738
    Problem:    Duplicate code to reverse a string
    Solution:   Move reverse_text() to strings.c and remove string_reverse().

    Patch 9.0.1739
    Problem:    leftover files in libvterm
    Solution:   Fix cleaning of libvterm directory

    Patch 9.0.1740
    Problem:    segfault when reading invalid viminfo file
    Solution:   Check the expected type in the viminfo file

    Patch 9.0.1741
    Problem:    No type checking in interfaces
    Solution:   Implement member type check in vim9 interfaces

    Patch 9.0.1742
    Problem:    Wrong curswant when clicking and the second cell of a
                double-width char.
    Solution:   Don't copy virtcol of the first char to the second one.

    Patch 9.0.1743
    Problem:    Parameter of gui_gtk:gui_mch_browse incorrectly marked as
                UNUSED.
    Solution:   Remove UNUSED flag.

    Patch 9.0.1744
    Problem:    Dead code in open_cmdwin()
    Solution:   Remove it

    Patch 9.0.1745
    Problem:    Missing test coverage for blockwise Visual highlight with
                virtual that starts with a double-width char.
    Solution:   Add a new virtual text to the test. Some other small fixes.

    Patch 9.0.1746
    Problem:    vim9class compile error for char/char_u conversion
    Solution:   Correctly cast to (char *)

    Patch 9.0.1747
    Problem:    screenpos() may cause unnecessary redraw.
    Solution:   Don't unnecessarily reset VALID_WROW flag.

    Patch 9.0.1748
    Problem:    CI: cannot label issues automatically
    Solution:   Create CI labeler

    Patch 9.0.1749
    Problem:    Text property highlight doesn't override a sign highlight over
                a tab character
    Solution:   Let text_property override tab highlighting

    Patch 9.0.1750
    Problem:    CI: fails because of changed error messages
                (after: 9.0.1741)
    Solution:   Adjust expected error messages

    Patch 9.0.1751
    Problem:    CI: labeler configuration not found
                (after 9.0.1748)
    Solution:   set configuration path

    Patch 9.0.1752
    Problem:    CI: Coveralls is no longer used
    Solution:   Remove .coveralls.yml

    Patch 9.0.1753
    Problem:    can't move to last non-blank char
    Solution:   Make g<end> behave like that

    Patch 9.0.1754
    Problem:    still ci breakage (after 9.0.1741)
    Solution:   fix remaining issue

    Patch 9.0.1755
    Problem:    CI still fails with sodium mlock error
    Solution:   catch mlock failure

    Patch 9.0.1756
    Problem:    failing cursorline sign test
    Solution:   only reset char attr, if cursorline
                option is not set

    Patch 9.0.1757
    Problem:    ex_class() function is too long
    Solution:   refactor it

    Patch 9.0.1758
    Problem:    vim9 no class identifiers in stack dumps
    Solution:   Prefix class members in stack traces with the class name
                followed by a dot.

    Patch 9.0.1759
    Problem:    Visual highlight not working with cursor at end of screen line
                and 'showbreak'.
    Solution:   Only update "vcol_prev" when drawing buffer text.

    Patch 9.0.1760
    Problem:    vim9 class problem with new() constructor
    Solution:   Don't allow a return type for the new() class constructor.

    Patch 9.0.1761
    Problem:    g<kEnd> behaves different from g<end>
    Solution:   Make g<kEnd> behave like g<End>

    Patch 9.0.1762
    Problem:    Not able to get the virtual text property
    Solution:   Make prop_list() return virtual text and alignment

    Patch 9.0.1763
    Problem:    crash when passing invalid buffer to undotree()
    Solution:   Use get_buf_arg() instead of tv_get_buf_from_arg().

    Patch 9.0.1764
    Problem:    CI: label should not be set on all yml files
    Solution:   only set it for specific yml files in .github

    Patch 9.0.1765
    Problem:    Error when cross-compiling Vim
    Solution:   use AC_CHECK_SIZEOF to find sizeof(wchar_t)

    Patch 9.0.1766
    Problem:    Runtime: Missing QML support
    Solution:   Add QML support to Vim

    Patch 9.0.1767
    Problem:    '.-' no allowed in highlight group names
    Solution:   Allow dot and hyphen characters in highlight group names

    Patch 9.0.1768
    Problem:    Runtime: no support for bicep files
    Solution:   Add filetype support for bicepparam

    Patch 9.0.1769
    Problem:    executable() ignoring symlinks on Windows
    Solution:   resolve reparse points

    Patch 9.0.1770
    Problem:    lines disappear when modifying chars before virt text
    Solution:   take virtual text property length into account

    Patch 9.0.1771
    Problem:    regex: combining chars in collections not handled
    Solution:   Check for following combining characters for NFA and BT engine

    Patch 9.0.1772
    Problem:    Cursor is adjusted in window that did not change in size by
                'splitkeep'.
    Solution:   Only check that cursor position is valid in a window that
                has changed in size.

    Patch 9.0.1773
    Problem:    cannot distinguish Forth and Fortran *.f files
    Solution:   Add Filetype detection Code

    Patch 9.0.1774
    Problem:    no support for custom cmdline completion
    Solution:   Add new vimscript functions

    Patch 9.0.1775
    Problem:    Wrong comparison in vim9type.c
    Solution:   Change condition to false

    Patch 9.0.1776
    Problem:    No support for stable Python 3 ABI
    Solution:   Support Python 3 stable ABI

    Patch 9.0.1777
    Problem:    patch 9.0.1771 causes problems
    Solution:   revert it

    Patch 9.0.1778
    Problem:    if_py_both: code-style issue
    Solution:   add space

    Patch 9.0.1779
    Problem:    Need more state() tests
    Solution:   Add a few more tests for operator pending mode and register
                yank command

    Patch 9.0.1780
    Problem:    Vim9 type not defined during object creation
    Solution:   Define type during object creation and not during class
                definition, parse multi-line member initializers, fix lock
                initialization

    Patch 9.0.1781
    Problem:    Problems when setting bin/paste option
    Solution:   When setting binary/paste, remember that this also affects
                depending options, so that :verbose set returns the right
                location.

    Patch 9.0.1782
    Problem:    prop_list() does not return text_padding_left
    Solution:   Store and return the text_padding_left value for text
                properties

    Patch 9.0.1783
    Problem:    Wrong display with wrapping virtual text or unprintable chars,
                'showbreak' and 'smoothscroll'.
    Solution:   Don't skip cells taken by 'showbreak' in screen lines before
                "w_skipcol". Combined "n_skip" and "skip_cells".

    Patch 9.0.1784
    Problem:    redundant else in pum_set_selected()
    Solution:   Remove it

    Patch 9.0.1785
    Problem:    wrong cursor position with 'showbreak' and lcs-eol
    Solution:   Add size of 'showbreak' before when 'listchars' "eol" is used.
                Also fix wrong cursor position with wrapping virtual text on
                empty line and 'showbreak'.

    Patch 9.0.1786
    Problem:    Vim9: need instanceof() function
    Solution:   Implement instanceof() builtin

    Patch 9.0.1787
    Problem:    Cannot build with latest luajit
    Solution:   adjust sed regexp and don't expect '-' in version output

    Patch 9.0.1788
    Problem:    C4090 warnings in strings.c
    Solution:   Add type casts

    Patch 9.0.1789
    Problem:    too early declaration of variable in pum_set_selected()
    Solution:   Move declaration to where it is actually used

    Patch 9.0.1790
    Problem:    The Content-Type header is an optional header that some LSP
                servers struggle with and may crash when encountering it.
    Solution:   Drop the Content-Type header from all messages, because we use
                the default value anyway.

    Patch 9.0.1791
    Problem:    No tests for the Termdebug plugin
    Solution:   Add some simple tests for the Termdebug plugin

    Patch 9.0.1792
    Problem:    Normal mode "gM", "gj", "gk" commands behave incorrectly with
              virtual text.
    Solution:   Use linetabsize() instead of linetabsize_str().

    Patch 9.0.1793
    Problem:    obsolete macros in configure script
    Solution:   Remove those and start moving to autoconf 2.71

    Patch 9.0.1794
    Problem:    autoconf: not correctly detecting include dirs
    Solution:   make use of python3 to generate includedirs

    Patch 9.0.1795
    Problem:    Indentation issues
    Solution:   Fix code indentation issues.

    Patch 9.0.1796
    Problem:    Vim9 problems with null_objects
    Solution:   Vim9 improve null_object usage

    Patch 9.0.1797
    Problem:    Vimball/Visual Basic filetype detection conflict
    Solution:   runtime(vb): Improve Vimball and Visual Basic detection logic

    Patch 9.0.1798
    Problem:    The 'syntax' option has no completion.
    Solution:   Add syntax option completion.

    Patch 9.0.1799
    Problem:    Russian menu translation can be improved
    Solution:   update the Russian menu files

    Patch 9.0.1800
    Problem:    Cursor position still wrong with 'showbreak' and virtual text
                after last character or 'listchars' "eol".
    Solution:   Remove unnecessary w_wcol adjustment in curs_columns(). Also
                fix first char of virtual text not shown at the start of a screen
                line.

    Patch 9.0.1801
    Problem:    Vim9 instanceof() fails in a def func
    Solution:   allow Objects in compile time check

    Patch 9.0.1802
    Problem:    Multiline regex with Visual selection fails when Visual
                selection contains virtual text after last char.
    Solution:   Only include virtual text after last char when getting full
                line length.

    Patch 9.0.1803
    Problem:    Cannot detect norg markup files
    Solution:   Add norg markup language detection

    Patch 9.0.1804
    Problem:    Vim9: no support for private object methods
    Solution:   Add support for private object/class methods

    Patch 9.0.1805
    Problem:    Vim9: problem compiling object method as function call arg
    Solution:   After a object/class method call, remove the object/class from
                the stack.

    Patch 9.0.1806
    Problem:    Vim9: bogus error on export
    Solution:   Don't error out when the export command is not executed

    Patch 9.0.1807
    Problem:    runtime: crystal scripts not recognised
    Solution:   Filetype detect Crystal scripts by shebang line

    Patch 9.0.1808
    Problem:    Termdebug: Typo in Termdebug test
    Solution:   fix the typos

    Patch 9.0.1809
    Problem:    Termdebug test flaky
    Solution:   wait slightly longer

    Patch 9.0.1810
    Problem:    camel-case spelling has issues with digits
    Solution:   Improve the camCase spell checking by taking digits
                and caps into account

    Patch 9.0.1811
    Problem:    still some issues with term_debug test
    Solution:   Use WaitForAssert()

    Patch 9.0.1812
    Problem:    CI still fails with sodium_mlock error()
    Solution:   Catch and ignore E1230 error in test_crypt

    Patch 9.0.1813
    Problem:    'linebreak' is incorrectly drawn after 'breakindent'.
    Solution:   Don't include 'breakindent' size when already after it.

    Patch 9.0.1814
    Problem:    Vim9 no error on duplicate object member var
    Solution:   detect duplicate members and error out

    Patch 9.0.1815
    Problem:    pango_coverage_unref() deprecated in pango > 1.51
    Solution:   use g_object_unref() instead

    Patch 9.0.1816
    Problem:    configure: sed uses non-portable regex
    Solution:   use '*' modifier instead of '\?' in regex
                for luajit version detection

    Patch 9.0.1817
    Problem:    configure: using obsolete AC_HEADER_STDC
    Solution:   Remove it and re-create configure

    Patch 9.0.1818
    Problem:    dynamically linking perl is broken
    Solution:   Fix all issues

    Patch 9.0.1819
    Problem:    Github CI too complex
    Solution:   CI: Tidy up matrix

    Patch 9.0.1820
    Problem:    Rexx files may not be recognised
    Solution:   Add shebang detection and improve disambiguation of *.cls
                files

    Patch 9.0.1821
    Problem:    Vim9 constructors are always static
    Solution:   make the "static" keyword an error

    Patch 9.0.1822
    Problem:    Vim9: no check for duplicate members in extended classes
    Solution:   Check for duplicate members in extended classes.
                Fix memory leak.

    Patch 9.0.1823
    Problem:    Autoconf 2.69 too old
    Solution:   Migrate to Autoconf 2.71

    Patch 9.0.1824
    Problem:    Vim9: private members may be modifiable
    Solution:   prevent modification for def function

    Patch 9.0.1825
    Problem:    Wrong cursor position with virtual text before a whitespace
                character and 'linebreak'.
    Solution:   Always set "col_adj" to "size - 1" and apply 'linebreak' after
                adding the size of 'breakindent' and 'showbreak'.

    Patch 9.0.1826
    Problem:    keytrans() doesn't translate recorded key typed in a GUI
    Solution:   Handle CSI like K_SPECIAL, like in mb_unescape()

    Patch 9.0.1827
    Problem:    xxd: no color support
    Solution:   Add color support using xxd -R

    Patch 9.0.1828
    Problem:    Wrong cursor position with virtual text before double-width
                char at window edge.
    Solution:   Check for double-width char before adding virtual text size.

    Patch 9.0.1829
    Problem:    Vim9 missing access-checks for private vars
    Solution:   Use the proper check for private/readonly variable.  Access
                level for a member cannot be changed in a class implementing an
                interface.  Update the code indentation

    Patch 9.0.1830
    Problem:    Vim9: crash when accessing a null object
    Solution:   Check accessing a NULL object in def function

    Patch 9.0.1831
    Problem:    Vim9: failing null test
    Solution:   Use required public keyword

    Patch 9.0.1832
    Problem:    xxd: reporting wrong version (after 9.0.1827)
    Solution:   Update version string

    Patch 9.0.1833
    Problem:    runtime files may execute code in current dir
    Solution:   only execute, if not run from current directory

    Patch 9.0.1834
    Problem:    Some problems with xxd coloring
    Solution:   Fix the following problems:

    Patch 9.0.1835
    Problem:    Perl interface has problems with load PL_current_context
    Solution:   Fix Perl interface to load PL_current_context from library

    Patch 9.0.1836
    Problem:    Wrong display with "above" virtual text and 'linebreak' or
               'breakindent' and 'showbreak'.
    Solution:   Exclude size of "above" virtual text when calculating them.

    Patch 9.0.1837
    Problem:    Vim9: class_member_type() can be optimized
    Solution:   class_member_type() provides more information;
                safe an additional alloc()/free()

    Patch 9.0.1838
    Problem:    Vim9: Cannot modify class member vars from def function
    Solution:   Add support for modifying class member variables from a def
                function

    Patch 9.0.1839
    Problem:    No Makefile rule to build cscope database
    Solution:   Add rule

    Patch 9.0.1840
    Problem:    use-after-free in do_ecmd
    Solution:   Verify oldwin pointer after reset_VIsual()

    Patch 9.0.1841
    Problem:    style: trailing whitespace in ex_cmds.c
    Solution:   remove it

    Patch 9.0.1842
    Problem:    Need more accurate profiling
    Solution:   Improve profiling results

    Patch 9.0.1843
    Problem:    xxd color test flaky
    Solution:   Filter unneeded lines

    Patch 9.0.1844
    Problem:    doc helptags may not be up to date
    Solution:   Add CI jobs to verify helptags are updated

    Patch 9.0.1845
    Problem:    xxd: Test_xxd_color start failing
    Solution:   Revert changes to dump file

    Patch 9.0.1846
    Problem:    crash in fullcommand
    Solution:   Check for typeval correctly

    Patch 9.0.1847
    Problem:    potential oob write in do_addsub()
    Solution:   don't overflow buf2, check size in for loop()

    Patch 9.0.1848
    Problem:    buffer-overflow in vim_regsub_both()
    Solution:   Check remaining space

    Patch 9.0.1849
    Problem:    CI error on different signedness
    Solution:   cast unsigned to int

    Patch 9.0.1850
    Problem:    Vim9: wrong line number where options set
    Solution:   Set source line number earlier

    Patch 9.0.1851
    Problem:    Virtual text at a column causes 'breakindent' and 'showbreak'
                to be missing (after patch 9.0.1124).
    Solution:   Add check for "tp_col" in another place where TP_FLAG_WRAP is
                checked.

    Patch 9.0.1852
    Problem:    i_CTRL-O does not reset Select Mode
    Solution:   Reset select mode on CTRL-O in insert mode

    Patch 9.0.1853
    Problem:    CI error on different signedness in regexp.c
                (after patch 9.0.1848)
    Solution:   Cast strlen() call to int

    Patch 9.0.1854
    Problem:    test_crash1() fails on CI
    Solution:   don't run Screendump test, verify that it doesn't crash
                by running it through a shell command line, testing
                the exit value and concatenating success cmd using '&&'

    Patch 9.0.1855
    Problem:    mode() doesn't indicate command line for terminal
    Solution:   make it return 'ct' for command-line from Terminal mode

    Patch 9.0.1856
    Problem:    issues with formatting positional arguments
    Solution:   fix them, add tests and documentation

    Patch 9.0.1857
    Problem:    heap-use-after-free in is_qf_win()
    Solution:   Check buffer is valid before accessing it

    Patch 9.0.1858
    Problem:    heap use after free in ins_compl_get_exp()
    Solution:   validate buffer before accessing it

    Patch 9.0.1859
    Problem:    heap-use-after-free in bt_normal()
    Solution:   check that buffer is still valid

    Patch 9.0.1860
    Problem:    CI: test_crash1() is flaky
    Solution:   Wait a bit longer

    Patch 9.0.1861
    Problem:    xxd: issue when -R is specified several times
    Solution:   Fix command line parsing

    Patch 9.0.1862
    Problem:    Vim9 Garbage Collection issues
    Solution:   Class members are garbage collected early leading to
                use-after-free problems.  Handle the garbage
                collection of classes properly.

    Patch 9.0.1863
    Problem:    wrong format specifiers in e_aptypes_is_null_str_nr
    Solution:   Fix the wrong format specifier

    Patch 9.0.1864
    Problem:    crash with bt_quickfix1_poc when cleaning up
                and EXITFREE is defined
    Solution:   Test if buffer is valid in a window, else close
                window directly, don't try to access buffer properties

    Patch 9.0.1865
    Problem:    Vim9: garbage collection may cause crash
    Solution:   validate that class members typeval is not null

    Patch 9.0.1866
    Problem:    Undo is synced after character find.
    Solution:   Set no_u_sync when calling gotchars_nop().

    Patch 9.0.1867
    Problem:    Vim9: access to interface statics possible
    Solution:   Prevent direct access to interface statics

    Patch 9.0.1868
    Problem:    test_crash still fails for circle ci
    Solution:   give even more time to complete

    Patch 9.0.1869
    Problem:    Coverity warns about uninitialized var
    Solution:   initialize it

    Patch 9.0.1870
    Problem:    Vim9: disassemble does not show static
    Solution:   Show static flag

    Patch 9.0.1871
    Problem:    Github CI does not run i386 job
    Solution:   Add a i386 architecture

    Patch 9.0.1872
    Problem:    CI: test_crash() fails on CI
    Solution:   Skip test on BSD

    Patch 9.0.1873
    Problem:    heap-buffer-overflow in vim_regsub_both
    Solution:   Disallow exchanging windows when textlock is active

    Patch 9.0.1874
    Problem:    CI may fail in test_recover_empty_swap
    Solution:   Set directory option

    Patch 9.0.1875
    Problem:    Vim9: improve test for disassemble + static
    Solution:   Add a Vim9 script disassemble test for an interface with
                static members

    Patch 9.0.1876
    Problem:    Vim9: parsing commands with newlines wrong
    Solution:   Accept a '\n' for parsing lists and command arguments

    Patch 9.0.1877
    Problem:    missing test for patch 9.0.1873
    Solution:   add a test trying to exchange windows

    Patch 9.0.1878
    Problem:    tests running sh have problems
    Solution:   Check that dash is installed

    Patch 9.0.1879
    Problem:    Vim9: incorrect duplicate class member detection
    Solution:   Incorrect duplicate class member detection when variable names
                have the same prefix.  Not able to access class member variables
                using an object. Fix coding style issues

    Patch 9.0.1880
    Problem:    Vim9: Need more tests for inheritance
    Solution:   Add access tests and fixes.

    Patch 9.0.1881
    Problem:    Test_crash fails on Mac
    Solution:   Skip test on Mac

    Patch 9.0.1882
    Problem:    Trailing white space in tests
    Solution:   Delete it

    Patch 9.0.1883
    Problem:    Vim9: Calling an interface method using a child object fails
    Solution:   Search methods of parent class

    Patch 9.0.1884
    Problem:    Wrong order of arguments for error messages
    Solution:   Reverse order or arguments for e_aptypes_is_null_nr_str

    Patch 9.0.1885
    Problem:    Vim9: no support for abstract methods
    Solution:   Add support for defining abstract methods in an abstract class

    Patch 9.0.1886
    Problem:    Various Typos
    Solution:   Fix Typos

    Patch 9.0.1887
    Problem:    Vim9: class members are accessible via object
    Solution:   Disable class member variable access using an object

    Patch 9.0.1888
    Problem:    Vim9: Problem trying to invoke class method
    Solution:   Lookup the class method insider other classes

    Patch 9.0.1889
    Problem:    Vim9 static tests fail
    Solution:   Fix tests, make CI happy ;)

    Patch 9.0.1890
    Problem:    Vim9: lookup code for class/object repeated
    Solution:   Refactor and make use of lookup functions

    Patch 9.0.1891
    Problem:    No runtime support for Mojo
    Solution:   Add basic filetype and syntax plugins

    Patch 9.0.1892
    Problem:    CI: no FreeBSD 14 support
    Solution:   Drop support for FreeBSD 12, add FreeBSD 14

    Patch 9.0.1893
    Problem:    CI: strptime test fails on BSD14
    Solution:   Skip the test

    Patch 9.0.1894
    Problem:    CI: trailing white space in tests
    Solution:   clean up the trailing white space

    Patch 9.0.1895
    Problem:    Vim9: finding method/member is inefficient
    Solution:   Use lookups

    Patch 9.0.1896
    Problem:    "below" virtual text doesn't work with 'rightleft'.
    Solution:   Use column from right border with 'rightleft'.

    Patch 9.0.1897
    Problem:    Vim9: confusing error with .= in compiled functions
    Solution:   Check in error condition, if .= was attempted and in that case
                give a different error message.

    Patch 9.0.1898
    Problem:    Vim9: restrict access to static vars and methods
    Solution:   Class members are accessible only from the class where they are
                defined.

    Patch 9.0.1899
    Problem:    potential buffer overflow in PBYTE macro
    Solution:   Check returned memline length

    Patch 9.0.1900
    Problem:    Configure script uses non-portable == comparison
    Solution:   Use the standard and portable "=" instead

    Patch 9.0.1901
    Problem:    win32: not correctly freeing environment
    Solution:   After we call GetEnvironmentStringsW, we should call
                FreeEnvironmentStringsW

    Patch 9.0.1902
    Problem:    Vim9: Coverity complains about dead code
    Solution:   Copy only object methods from the super class
                to a subclass when extending a class.  Fix
                Coverity warning.

    Patch 9.0.1903
    Problem:    Github Actions fails because snd-dummy modules missing
                in current runner images
    Solution:   ignore modprobe error

    Patch 9.0.1904
    Problem:    Cirrus-CI fails because we have used all credits
    Solution:   Remove FreeBSD 13.1 and MacOS M1

    Patch 9.0.1905
    Problem:    FEAT_FLOAT no longer defined
    Solution:   Remove last existing FEAT_FLOAT ifdefs in
                message_test

    Patch 9.0.1906
    Problem:    Vim9: Interfaces should not support class methods and
                variables
    Solution:   Make sure interface follow the interface specification

    Patch 9.0.1907
    Problem:    No support for liquidsoap filetypes
    Solution:   Add liquidsoap filetype detection code

    Patch 9.0.1908
    Problem:    undefined behaviour upper/lower function ptrs
    Solution:   Fix UBSAN error in regexp and simplify upper/lowercase
                modifier code

    Patch 9.0.1909
    Problem:    Vim9: problem calling class method from other class
    Solution:   Fix this problem, fix readonly object access, update error
                messages.

    Patch 9.0.1910
    Problem:    Mac OS X: missing sound support on older versions
    Solution:   Check Macro MAC_OS_X_VERSION_MIN_REQUIRED

    Patch 9.0.1911
    Problem:    Vim9: segfault with null object and instanceof()
    Solution:   return early

    Patch 9.0.1912
    Problem:    Cirrus-CI running out of credits
    Solution:   disable Cirrus-CI for now

    Patch 9.0.1913
    Problem:    if_python: undefined behaviour for function pointers
    Solution:   Fix if_python undefined behavior for function pointer casts

    Patch 9.0.1914
    Problem:    Vim9: few issues when accessing object members
    Solution:   When calling an object method, check for null object.
                Accessing a Dict object member doesn't work.

    Patch 9.0.1915
    Problem:    r_CTRL-C works differently in visual mode
    Solution:   Make r_CTRL-C behave consistent in visual mode
                in terminal and Windows GUI

    Patch 9.0.1916
    Problem:    Crash when allocating large terminal screen
    Solution:   Don't allow values > 1000 for terminal
                screen columns and rows

    Patch 9.0.1917
    Problem:    undefined behaviour with python function pointer
    Solution:   correctly cast function pointers from void

    Patch 9.0.1918
    Problem:    No filetype detection for Authzed filetypes
    Solution:   Detect the *.zed file extension as authzed filetype

    Patch 9.0.1919
    Problem:    Wrong curswant when clicking on empty line or with vsplits.
    Solution:   Don't check for ScreenCols[] before the start of the window
                and handle empty line properly.

    Patch 9.0.1920
    Problem:    Vim9: cannot write public var in nested object
    Solution:   Write variable in nested read-only object reference.
                Also test write fails.

    Patch 9.0.1921
    Problem:    not possible to use the jumplist like a stack
    Solution:   Add the 'jumpoptions' setting to make the jumplist
                a stack.

    Patch 9.0.1922
    Problem:    LSP server request message is misinterpreted as a response message
    Solution:   Check that the message does not have the "message" field

    Patch 9.0.1923
    Problem:    curswant wrong on click with 've' and 'wrap' set
    Solution:   Add w_leftcol to mouse click column.

    Patch 9.0.1924
    Problem:    LSP server message still wrongly handled (after 9.0.1922)
    Solution:   Handle 'method' messages properly, don't discard them, add
                tests.

    Patch 9.0.1925
    Problem:    if_python: still undefined behaviour with function pointer
    Solution:   fix remaining problems

    Patch 9.0.1926
    Problem:    Vim9: not enough info in error message
    Solution:   Add class name, change member to variable, quote names

    Patch 9.0.1927
    Problem:    patch 1916 (fixed terminal size) not optimal
    Solution:   Add defines to make it easier changeable later

    Patch 9.0.1928
    Problem:    Vim9: constructor type checking bug
    Solution:   Fix class constructor regression

    Patch 9.0.1929
    Problem:    runtime tests fail with tiny vim
    Solution:   check for tiny vim, run runtime tests in CI
                even for tiny version

    Patch 9.0.1930
    Problem:    compiler warnings with clang-17
    Solution:   Fix function prototypes and function pointer

    Patch 9.0.1931
    Problem:    make test_compilers fails on ubuntu
    Solution:   set LC_ALL=C

    Patch 9.0.1932
    Problem:    Vim9: error when using null object constructor
    Solution:   Check for a null object only when calling an object method

    Patch 9.0.1933
    Problem:    Can change the type of a v: variable using if_lua.
    Solution:   Add additional handling of v: variables like :let.

    Patch 9.0.1934
    Problem:    bwipe fails after switching window from aucmd_win.
    Solution:   Decrement b_nwindows after switching back to aucmd_win.

    Patch 9.0.1935
    Problem:    Vim9: not consistent error messages
    Solution:   Make error messages more consistent. Use "variable" for
                (object/class) member

    Patch 9.0.1936
    Problem:    test: using wrong expected message in test_crypt
    Solution:   make use of single quotes

    Patch 9.0.1937
    Problem:    missing test for mouse click + 'virtedit'
    Solution:   Add test for clicking after eol with 'virtualedit' and wrapped
                line

    Patch 9.0.1938
    Problem:    multispace wrong when scrolling horizontally
    Solution:   Update position in "multispace" or "leadmultispace" also in
                skipped chars. Reorder conditions to be more consistent.

    Patch 9.0.1939
    Problem:    still a problem when processing LSP RPC requests
    Solution:   When processing async LSP RPC requests, compare sequence
                numbers only in response messages

    Patch 9.0.1940
    Problem:    wrong upstream version in libvterm README
    Solution:   correct version to 839

    Patch 9.0.1941
    Problem:    Memory leak detected (after 9.0.1928)
    Solution:   Free arg_objm in get_lambda_tv()

    Patch 9.0.1942
    Problem:    Vim9: execution stack invalidated with null object
    Solution:   Check for a null object before adjusting the execution stack

    Patch 9.0.1943
    Problem:    CI not run with clang-17
    Solution:   Update CI to use clang-17

    Patch 9.0.1944
    Problem:    Vim9: function instruction pointer invalidated
    Solution:   Use the funcref index instead of the instruction pointer

    Patch 9.0.1945
    Problem:    Vim9: missing support for ro-vars in interface
    Solution:   Support only read-only object variables in an interface,
                add additional checks when parsing class definitions.

    Patch 9.0.1946

    Problem:    filename expansion using ** in bash may fail
    Solution:   Try to enable the globstar setting

    Patch 9.0.1947
    Problem:    Bash Expansion test fails on Windows/MacOS
    Solution:   Disable Test_glob_extended_bash for now

    Patch 9.0.1948
    Problem:    Vim9: object variable "this." should only be used in
                constructor
    Solution:   Disallow to this in normal object methods (other than
                constructors)

    Patch 9.0.1949
    Problem:    Vim9: allows reserved keywords as members
    Solution:   Disallow reserved keywords, disallow
                duplicate object and class variables

    Patch 9.0.1950
    Problem:    Vim9: error codes spread out
    Solution:   group them together and reserve 100
                more for future use

    Patch 9.0.1951
    Problem:    Vim9: hard to debug vim9_class errors from CI
    Solution:   Include the line number in assert_xxx() calls.  Include the
                entire error message in the tests.  Fix the indentation in the
                test file.  Add tags for new error codes.

    Patch 9.0.1952
    Problem:    Vim9: unused static field
    Solution:   remove it and simplify code

    Patch 9.0.1953
    Problem:    Misplaced comment in errors.h
    Solution:   Move it up

    Patch 9.0.1954
    Problem:    CI: change netrw label in labeller bot
    Solution:   Rename it to 'plugin-netrw'

    Patch 9.0.1955
    Problem:    Vim9: lockvar issues with objects/classes
    Solution:   fix `get_lhs()` object/class access and avoid `SEGV`,
                make error messages more accurate.

    Patch 9.0.1956
    Problem:    Custom cmdline completion skips original cmdline when pressing
                Ctrl-P at first match if completion function invokes glob().
    Solution:   Move orig_save into struct expand_T.

    Patch 9.0.1957
    Problem:    termcap options should change on keyprotocol setting
    Solution:   Apply termcap entries when 'keyprotocol' changes

    Patch 9.0.1958
    Problem:    cannot complete option values
    Solution:   Add completion functions for several options

    Patch 9.0.1959
    Problem:    Vim9: methods parameters and types are covariant
    Solution:   Support contra-variant type check for object method arguments
                (similar to Dart).

    Patch 9.0.1960
    Problem:    Make CI checks more strict
    Solution:   Add -Wstrict-prototypes -Wmissing-prototypes to CI,
                fix uncovered problems

    Patch 9.0.1961
    Problem:    Cmdline completion for 'listchars' fields doesn't include
                "multispace" and "leadmultispace" (after 9.0.1958).
    Solution:   Include "multispace" and "leadmultispace" in lcstab.

    Patch 9.0.1962
    Problem:    No support for writing extended attributes
    Solution:   Add extended attribute support for linux

    Patch 9.0.1963
    Problem:    Configure script may not detect xattr correctly
    Solution:   include sys/xattr instead of attr/xattr,
                make Test_write_with_xattr_support() test
                xattr feature correctly

    Patch 9.0.1964
    Problem:    xattr support fails to build on MacOS X
    Solution:   Disable xattr support for MacOS X

    Patch 9.0.1965
    Problem:    wrong auto/configure script
    Solution:   regenerate with autoconf 2.71

    Patch 9.0.1966
    Problem:    configure prints stray 6 when checking libruby
    Solution:   redirect stdout to dev/null

    Patch 9.0.1967
    Problem:    xattr errors not translated
    Solution:   mark for translation, consistently capitalize
                first letter.

    Patch 9.0.1968
    Problem:    cmdline completion should consider key option
    Solution:   Disable cmdline completion for key option, slightly
                refactor how P_NO_CMD_EXPAND is handled

    Patch 9.0.1969
    Problem:    buffer-overflow in trunc_string()
    Solution:   Add NULL at end of buffer

    Patch 9.0.1970
    Problem:    win32: high-dpi support can be improved
    Solution:   implement WM_GETDPISCALEDSIZE

    Patch 9.0.1971
    Problem:    macOS: FEAT_SOUND guard too restrictive
    Solution:   check for older macOS support properly

    Patch 9.0.1972
    Problem:    win32: missing '**' expansion test (after v9.0.1947)
    Solution:   Add test for MS-Windows

    Patch 9.0.1973
    Problem:    Clean up cmdline option completion code
    Solution:   Fix various minor problems

    Patch 9.0.1974
    Problem:    vim9: using contra-variant type-checks (after v9.0.1959)
    Solution:   Use invariant type checking instead

    Patch 9.0.1975
    Problem:    xattr: permission-denied errors on write
    Solution:   ignore those errors

    Patch 9.0.1976
    Problem:    style: space before tab in optionstr.c
    Solution:   remove the space

    Patch 9.0.1977
    Problem:    Vim9: object members can change type
    Solution:   Check type during assignment to object/class var

    Patch 9.0.1978
    Problem:    No filetype detection for just files
    Solution:   Detect just files (*.just, justfile, etc)

    Patch 9.0.1979
    Problem:    Cirrus CI disabled
    Solution:   re-enable Cirrus CI

    Patch 9.0.1980
    Problem:    win32: issues with stable python ABI
    Solution:   if_python3,win32: Fix Python3 stable ABI

    Patch 9.0.1981
    Problem:    Cannot scroll up in diff mode with many filler lines and zero
                'scrolloff'.
    Solution:   Invalidate w_cline_row before calling comp_botline().

    Patch 9.0.1982
    Problem:    vim9: clean up from v9.0.1955
    Solution:   Fix a few remaining issues, improve error message

    Patch 9.0.1983
    Problem:    Scrolling non-current window using mouse is inconsistent
                depending on 'scrollbind'/'scrolloff' and different from GUI
                vertical scrollbar when 'cursorbind' is set.
    Solution:   Don't move cursor in non-current windows for 'cursorbind' if
                cursor in the current window didn't move.

    Patch 9.0.1984
    Problem:    CI: Test_open_delay*() fails on FreeBSD 14
    Solution:   Skip it on BSD

    Patch 9.0.1985
    Problem:    CI: codecov is intrusive
    Solution:   disable codecov comments

    Patch 9.0.1986
    Problem:    Vim9: accepting type-annotations
    Solution:   Reject type annotations outside of declarations.

    Patch 9.0.1987
    Problem:    win32: font-size calculation can be improved
    Solution:   calculate font size before the window size

    Patch 9.0.1988
    Problem:    Vim9: potential use-after-free for class members
    Solution:   Use the class-related grow array for storing the
                member type instead of using a temporary type
                list grow array

    Patch 9.0.1989
    Problem:    Vim9: double error message given
    Solution:   Only give second error message, if there
                 wasn't one given before

    Patch 9.0.1990
    Problem:    strange error number
    Solution:   change error number,
                add doc tag for E1507

    Patch 9.0.1991
    Problem:    no cmdline completion for setting the font
    Solution:   enable it on Win32 and GTK builds

    Patch 9.0.1992
    Problem:    segfault in exmode when redrawing
    Solution:   skip gui_scroll when exmode_active

    Patch 9.0.1993
    Problem:    warning about unused function definition
    Solution:   add ifdefs

    Patch 9.0.1994
    Problem:    inconsistent feature description
    Solution:   delete old mentioned feature sets small and big

    Patch 9.0.1995
    Problem:    Invalid memory access when 'foldexpr' returns empty string.
    Solution:   Check for NUL.

    Patch 9.0.1996
    Problem:    Cannot build with python312
    Solution:   Define wrapper types and functions for python 3.12

    Patch 9.0.1997
    Problem:    Some unused code in move.c and string.c
    Solution:   Remove it

    Patch 9.0.1998
    Problem:    xxd: cannot reverse a bit dump
    Solution:   implement reversing the bit dump using -b -r

    Patch 9.0.1999
    Problem:    Vim9: some error messages can be improved
    Solution:   Mention the defining class for variable access error message

    Patch 9.0.2000
    Problem:    Vim9: use-after-free in deep call stack
    Solution:   Get the object pointer from execution stack

    Patch 9.0.2001
    Problem:    Vim9: segfault with islocked()
    Solution:   Check that the lval pointer is not null for objects and
                class variables

    Patch 9.0.2002
    Problem:    Vim9: need cleanup of class related interface code
    Solution:   Remove the unused class variable and class method related code
                for interfaces.

    Patch 9.0.2003
    Problem:    xxd: compilation warning
    Solution:   initialize variables

    Patch 9.0.2004
    Problem:    Missing test file
    Solution:   git-add the file to the repo

    Patch 9.0.2005
    Problem:    partially revert patch v9.0.1997
    Solution:   add a comment, to make clear it's not used

    Patch 9.0.2006
    Problem:    Vim9: need more tests
    Solution:   add additional disassembly tests

    Patch 9.0.2007
    Problem:    Vim9: covariant parameter types allowed when assigning
                functions
    Solution:   Enforce invariant type check for arguments and return value
                when assigning a funcref

    Patch 9.0.2008
    Problem:    test: undofile left behind
    Solution:   cleanup undofile

    Patch 9.0.2009
    Problem:    cmdline-completion for comma-separated options wrong
    Solution:   Fix command-line expansions for options with filenames with
                commas

    Patch 9.0.2010
    Problem:    [security] use-after-free from buf_contents_changed()
    Solution:   block autocommands

    Patch 9.0.2011
    Problem:    INI files not detected
    Solution:   detect uppercase .INI as dosini files

    Patch 9.0.2012
    Problem:    Vim9: error message can be more accurate
    Solution:   Fix the error messages

    Patch 9.0.2013
    Problem:    Unicode tables outdated
    Solution:   Update Unicode tables to v15.1 (released 23.09.2023)

    Patch 9.0.2014
    Problem:    confusing ifdefs in if_<lang>.c
    Solution:   refactor ifndefs to #ifdefs

    Patch 9.0.2015
    Problem:    Vim9: does not handle islocked() from a method correctly
    Solution:   Handle islocked() builtin from a method.

    Patch 9.0.2016
    Problem:    Vim9: assignment operators don't work for class vars
    Solution:   implement it

    Patch 9.0.2017
    Problem:    linebreak applies for leading whitespace
    Solution:   only apply linebreak, once we have found non-breakat chars in
                the line

    Patch 9.0.2018
    Problem:    complete_info() returns wrong index
    Solution:   Make order of 'info' in completion_info consistent

    Patch 9.0.2019
    Problem:    Vim9: no support for funcrefs
    Solution:   Add support for object/class funcref members

    Patch 9.0.2020
    Problem:    Vim9: islocked() needs more work
    Solution:   rework islocked() and remove sync_root
                from get_lval()

    Patch 9.0.2021
    Problem:    Coverity complains about change in charset (after v9.0.2017)
    Solution:   check pointer t at index 0

    Patch 9.0.2022
    Problem:    When clicking in the middle of a TAB, getmousepos() returns
                the column of the next char instead of the TAB.
    Solution:   Break out of the loop when the vcol to find is inside current
                char. Fix invalid memory access when calling virtcol2col() on
                an empty line.

    Patch 9.0.2023
    Problem:    need more tests for :cq
    Solution:   Add more tests, including wraparound on linux

    Patch 9.0.2024
    Problem:    no filetype detection for Debian sources
    Solution:   Add new deb822sources filetype

    Patch 9.0.2025
    Problem:    no cmdline completion for ++opt args
    Solution:   Add cmdline completion for :e ++opt=arg and :terminal
                [++options]

    Patch 9.0.2026
    Problem:    win32: python3 dll loading can be improved
    Solution:   Load DLL from registry path

    Patch 9.0.2027
    Problem:    Vim9: no support for bitwise operators in lambda funcs
    Solution:   move "evaluate" assignment a bit up in order to decide
                to perform bitwise operations

    Patch 9.0.2028
    Problem:    confusing build dependencies
    Solution:   clean them up, make them parallelizable

    Patch 9.0.2029
    Problem:    Vim9: no support for partials using call()
    Solution:   Add support

    Patch 9.0.2030
    Problem:    no max callback recursion limit
    Solution:   bail out, if max call recursion for callback functions
                has been reached.

    Patch 9.0.2031
    Problem:    `TextChangedI` can trigger on entering Insert mode if there
                 was previously a change not in Insert mode.
    Solution:   Make it trigger only when text is actually changed in Insert
                mode.

    Patch 9.0.2032
    Problem:    Cannot accurately get mouse clicking position when clicking on
                a TAB or with virtual text.
    Solution:   Add a "coladd" field to getmousepos() result.

    Patch 9.0.2033
    Problem:    gcc overflow-warning for f_resolve
    Solution:   use pointer p instead of pointer q[-1]

    Patch 9.0.2034
    Problem:    don't try to copy SMACK attribute, when none exist
    Solution:   return early if SMACK extended attributes do not exist or
                if they are not supported

    Patch 9.0.2035
    Problem:    [security] use-after-free with wildmenu
    Solution:   properly clean up the wildmenu when exiting

    Patch 9.0.2036
    Problem:    if_python: rework python3.12 build dependency
                (after 9.0.1996)
    Solution:   use PyTuple_Size instead of inlining the Py_SIZE
                into the Vim code base

    Patch 9.0.2037
    Problem:    A few remaining cmdline completion issues with C-E/Y
    Solution:   Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not
                used at the end

    Patch 9.0.2038
    Problem:    Vim9: object method funcref not cleaned up after use
    Solution:   Clean up type stack after using object method funcref,
                remove now longer used ISN_DEFEROBJ instruction

    Patch 9.0.2039
    Problem:    completion shows current word after completion restart
    Solution:   remove the word being completed after completion restart

    Patch 9.0.2040
    Problem:    trim(): hard to use default mask
    Solution:   Use default 'mask' when it is v:none

    Patch 9.0.2041
    Problem:    trim(): hard to use default mask (partly revert v9.0.2040)
    Solution:   use default mask when it is empty

    Patch 9.0.2042
    Problem:    Test_cq_zero_exmode fails without channel feature
    Solution:   Make the test check the channel feature

    Patch 9.0.2043
    Problem:    Vim9: issue with funcref assignment and varargs
    Solution:   Fix funcref type checking

    Patch 9.0.2044
    Problem:    Vim9: exceptions confuse deferred functions
    Solution:   save and restore exception state when calling deferred
                functions

    Patch 9.0.2045
    Problem:    tests: checking for swap files takes time
    Solution:   don't check for swap files  when test has been skipped

    Patch 9.0.2046
    Problem:    win32,python: warning that MS_WIN64 got re-defined
    Solution:   Do not define MS_WIN64, as it is no longer used

    Patch 9.0.2047
    Problem:    perl: warning about inconsistent dll linkage
    Solution:   suppress warning

    Patch 9.0.2048
    Problem:    python: uninitialized warning
    Solution:   initialize 'minor' always

    Patch 9.0.2049
    Problem:    Vim9: not recognizing qualified class vars for infix ops
    Solution:   Drop the class type from the stack before generating the
                CLASSMEMBER instruction

    Patch 9.0.2050
    Problem:    Vim9: crash with deferred function call and exception
    Solution:   Save and restore exception state

    Patch 9.0.2051
    Problem:    Vim9: wrong error for non-existing object var
    Solution:   mention object or class depending on whether
                the var is an object or class variable.

    Patch 9.0.2052
    Problem:    win32: using deprecated wsock32 api
    Solution:   Use winsock2 (ws2_32) consistently

    Patch 9.0.2053
    Problem:    zig filetype detection test wrong
    Solution:   Remove .zir pattern, add new test for .zon pattern

    Patch 9.0.2054
    Problem:    win32: iscygpty needs update
    Solution:   Update iscygpty to the latest version, make use iswascii()
                API function

    Patch 9.0.2055
    Problem:    Vim9: non-consistent error messages
    Solution:   make error messages more consistent with common structure

    Patch 9.0.2056
    Problem:    no digraph for quadruple prime
    Solution:   add quadruple prime digraph using 4'

    Patch 9.0.2057
    Problem:    Vim9: no strict type checks for funcrefs varargs
    Solution:   Perform strict type checking when declaring funcrefs
                with vararg declaration, add tests

    Patch 9.0.2058
    Problem:    tests: avoid error when no swap files exist
    Solution:   use unlet! so that no error message is reported
                in case the variable does not exists

    Patch 9.0.2059
    Problem:    outstanding exceptions may be skipped
    Solution:   When restoring exception state, process remaining outstanding
                exceptions

    Patch 9.0.2060
    Problem:    *.{gn,gni} files are not recognized
    Solution:   Detect some as gn filetype (without adding an extra filetype)

    Patch 9.0.2061
    Problem:    not able to detect xkb filetypes
    Solution:   Detect files below /u/s/X11/xkb as xkb files (without adding
                an extra filetype)

    Patch 9.0.2062
    Problem:    Janet files are not recognised
    Solution:   Add filename and shebang detection (without
                adding an extra filetype plugin)

    Patch 9.0.2063
    Problem:    pacman hooks are detected as conf filetype
    Solution:   make it consistent to pacman.conf and detect those
                hooks as confini

    Patch 9.0.2064
    Problem:    cannot use buffer-number for errorformat
    Solution:   add support for parsing a buffer number using '%b' in
                'errorformat'

    Patch 9.0.2065
    Problem:    EXPAND flag set for filetype option
    Solution:   Remove P_EXPAND flag from the 'filetype' option

    Patch 9.0.2066
    Problem:    xxd: corrupting files when reversing bit dumps
    Solution:   handle reversing bit dump slightly differently

    Patch 9.0.2067
    Problem:    xxd: coloring was disabled on Cygwin
    Solution:   don't include WIN32

    Patch 9.0.2068
    Problem:    [security] overflow in :history
    Solution:   Check that value fits into int

    Patch 9.0.2069
    Problem:    possible to escape bracketed paste mode with Ctrl-C
    Solution:   Do not handle Ctrl-C specially when key_protocol
                is in use, makes bracketed paste mode more robust

    Patch 9.0.2070
    Problem:    [security] disallow setting env in restricted mode
    Solution:   Setting environment variables in restricted mode could
                potentially be used to execute shell commands. Disallow this.

    Patch 9.0.2071
    Problem:    objdump files not recognized
    Solution:   detect *.objdump files, add a filetype plugin

    Patch 9.0.2072
    Problem:    Vim9: no nr2str conversion in list-unpack
    Solution:   Generate 2STRING instruction to convert dict index to string

    Patch 9.0.2073
    Problem:    typo in quickfix.c comments
    Solution:   fix them

    Patch 9.0.2074
    Problem:    Completion menu may be wrong
    Solution:   Check for the original direction of the completion menu,
                add more tests, make it work with 'noselect'

    Patch 9.0.2075
    Problem:    TextChangedI may not always trigger
    Solution:   trigger it in more cases: for insert/
                append/change operations, and when
                opening a new line,

    Patch 9.0.2076
    Problem:    Vim9: No support for type aliases
    Solution:   Implement :type command

    Patch 9.0.2077
    Problem:    CI fails because of trailing whitespace in test
    Solution:   Remove it

    Patch 9.0.2078
    Problem:    several problems with type aliases
    Solution:   Check for more error conditions, add tests,
                fix issues

    Patch 9.0.2079
    Problem:    Not all Dart files detected
    Solution:   Add shebang filetype detection for Dart

    Patch 9.0.2080
    Problem:    vim9_script test too large
    Solution:   split vim9 type alias test into
                separate test file

    Patch 9.0.2081
    Problem:    With 'smoothscroll' set, "w_skipcol" is not reset when unsetting
                'wrap'. Resulting in incorrect calculation of the cursor position.
    Solution:   Reset "w_skipcol" when unsetting 'wrap'.

    Patch 9.0.2082
    Problem:    test_channel may fail because of IPv6 config issues
    Solution:   Catch and skip the test, if getaddrinfo() fails with
               'Address family not supported'

    Patch 9.0.2083
    Problem:    Perl: xsubpp may be in non-standard location
    Solution:   Add --with-subpp configure option

    Patch 9.0.2084
    Problem:    Vim9: abstract static methods are possible
    Solution:   Disallow abstract static methods

    Patch 9.0.2085
    Problem:    Vim9: abstract can be used in interface
    Solution:   Disallow the use of abstract in an interface

    Patch 9.0.2086
    Problem:    code cleanup for option callbacks needed
    Solution:   remove flag os_doskip, it's not necessary, as we can check,
                whether an error message was returned

    Patch 9.0.2087
    Problem:    build-failure in vim9class
    Solution:   reference correct error message,
                disable non-failing test

    Patch 9.0.2088
    Problem:    Vim9: still allows abstract static methods
                (after v9.0.2084, v9.0.2085 and v9.0.2087)
    Solution:   Disallow abstract static methods

    Patch 9.0.2089
    Problem:    sound_playfile() fails when using powershell
    Solution:   quote filename using doublequotes, don't escape filename,
                because it doesn't use the shell

    Patch 9.0.2090
    Problem:    complete_info() skips entries with 'noselect'
    Solution:   Check, if first entry is at original text state

    Patch 9.0.2091
    Problem:    Vim9: cannot convert list to string using +=
                (after 9.0.2072)
    Solution:   convert dict index to string later in compile_member()

    Patch 9.0.2092
    Problem:    tests: failure in test_arabic
    Solution:   adjust the test for the changed arabic keymap

    Patch 9.0.2093
    Problem:    Unsupported option causes rest of modeline test to be skipped.
    Solution:   Revert the change from patch 8.2.1432.

    Patch 9.0.2094
    Problem:    Vim9: need more assignment tests
    Solution:   Add test for using different types in assignment, function
                arguments and return values

    Patch 9.0.2095
    Problem:    statusline may look different than expected
    Solution:   do not check for highlighting of stl and stlnc characters

    Patch 9.0.2096
    Problem:    Vim9: confusing usage of private
    Solution:   clarify and use protected keyword instead

    Patch 9.0.2097
    Problem:    No support for cypher files
    Solution:   Add cypher filetype detection

    Patch 9.0.2098
    Problem:    No filetype support for xcompose files
    Solution:   Add filetype detection

    Patch 9.0.2099
    Problem:    Terminal control codes¹ are sent even when silent
                mode is on, causing the terminal to clear up
    Solution:   Block any terminal codes when silent mode is on

    Patch 9.0.2100
    Problem:    CI: test_Termdebug fails
    Solution:   only test for a changed winlayout, if the window
                width actually changed

    Patch 9.0.2101
    Problem:    CI: test_termdebug may still fail
    Solution:   use term_wait() to make it more robust

    Patch 9.0.2102
    Problem:    matchparen highlight not cleared in completion mode
    Solution:   Clear matchparen highlighting in completion mode

    Patch 9.0.2103
    Problem:    recursive callback may cause issues on some archs
    Solution:   Decrease the limit drastically to 20

    Patch 9.0.2104
    Problem:    wast filetype should be replaced by wat filetype
    Solution:   start using the official wat filetype name

    Patch 9.0.2105
    Problem:    Skipcol is not reset when topline changed scrolling cursor to top
    Solution:   reset skipcol

    Patch 9.0.2106
    Problem:    [security]: Use-after-free in win_close()
    Solution:   Check window is valid, before accessing it

    Patch 9.0.2107
    Problem:    [security]: FPE in adjust_plines_for_skipcol
    Solution:   don't divide by zero, return zero

    Patch 9.0.2108
    Problem:    [security]: overflow with count for :s command
    Solution:   Abort the :s command if the count is too large

    Patch 9.0.2109
    Problem:    [security]: overflow in nv_z_get_count
    Solution:   break out, if count is too large

    Patch 9.0.2110
    Problem:    [security]: overflow in ex address parsing
    Solution:   Verify that lnum is positive, before subtracting from
                LONG_MAX

    Patch 9.0.2111
    Problem:    [security]: overflow in get_number
    Solution:   Return 0 when the count gets too large

    Patch 9.0.2112
    Problem:    [security]: overflow in shift_line
    Solution:   allow a max indent of INT_MAX

    Patch 9.0.2113
    Problem:    Coverity warns for another overflow in shift_line()
    Solution:   Test for INT_MAX after the if condition, cast integer values
                to (long long) before multiplying.

    Patch 9.0.2114
    Problem:    overflow detection not accurate when adding digits
    Solution:   Use a helper function

    Patch 9.0.2115
    Problem:    crash when callback function aborts because of recursiveness
    Solution:   correctly initialize rettv

    Patch 9.0.2116
    Problem:    No test for defining sign without attribute
    Solution:   Add test for defining sign without attributes

    Patch 9.0.2117
    Problem:    [security] use-after-free in qf_free_items
    Solution:   only access qfpnext, if it hasn't been freed

    Patch 9.0.2118
    Problem:    [security]: avoid double-free
    Solution:   Only fee plain_font, when it is not the same as bold_font

    Patch 9.0.2119
    Problem:    remove dead-condition in ex_class()
    Solution:   remove the extra condition

    Patch 9.0.2120
    Problem:    un-used assignment in do_source_buffer_init
    Solution:   Remove it

    Patch 9.0.2121
    Problem:    [security]: use-after-free in ex_substitute
    Solution:   always allocate memory

    Patch 9.0.2122
    Problem:    [security]: prevent overflow in indenting
    Solution:   use long long and remove cast to (int)

    Patch 9.0.2123
    Problem:    Problem with initializing the length of range() lists
    Solution:   Set length explicitly when it shouldn't contain any items

    Patch 9.0.2124
    Problem:    INT overflow logic can be simplified
    Solution:   introduce trim_to_int() function

    Patch 9.0.2125
    Problem:    File info disappears immediately when 'cmdheight' has just
                decreased due to switching tabpage and 'shortmess' doesn't
                contain 'o' or 'O'.
    Solution:   Make sure msg_row isn't smaller than cmdline_row.

    Patch 9.0.2126
    Problem:    Unused assignments when checking the value of 'listchars'.
    Solution:   Loop only once when just checking the value.  Add a test to
                check that this change doesn't cause double-free.

    Patch 9.0.2127
    Problem:    translation Makefiles can be improved
    Solution:   Modified and extended po-related Makefiles and
                related files

    Patch 9.0.2128
    Problem:    No runtime files for SWIG filetypes
    Solution:   Add syntax and filetype plugins for SWIG (Simplified Wrapper
                Interface Generator) description files.

    Patch 9.0.2129
    Problem:    [security]: use-after-free in call_dfunc()
    Solution:   Refresh dfunc pointer

    Patch 9.0.2130
    Problem:    some errors with translation Makefiles
    Solution:   fix issues

    Patch 9.0.2131
    Problem:    not all nushell files detected
    Solution:   use *.nu to detect nushell files

    Patch 9.0.2132
    Problem:    Duplicate Netbeans Error Message
    Solution:   Remove duplicate message

    Patch 9.0.2133
    Problem:    Cannot detect overstrike mode in Cmdline mode
    Solution:   Make mode() return "cr" for overstrike

    Patch 9.0.2134
    Problem:    ml_get error when scrolling after delete
    Solution:   mark topline to be validated in main_loop
                if it is larger than current buffers line
                count

    Patch 9.0.2135
    Problem:    No test for mode() when executing Ex commands
    Solution:   Add some test cases and simplify several other test cases.
                Also add a few more test cases for ModeChanged.

    Patch 9.0.2136
    Problem:    MSVC errorformat can be improved
    Solution:   parse error type and column number in MSVC errorformat

    Patch 9.0.2137
    Problem:    Can't detect angular & mustache filetypes
    Solution:   Detect *.mustache as Mustache filetype;
                detect *.component.html as html.angular filetype

    Patch 9.0.2138
    Problem:    Overflow logic requires long long
    Solution:   Define vimlong_T data type to make life easier
                for porters

    Patch 9.0.2139
    Problem:    html.angular ft is problematic
    Solution:   partly revert v9.0.2137

    Patch 9.0.2140
    Problem:    [security]: use-after-free in win-enter
    Solution:   validate window pointer before calling win_enter()

    Patch 9.0.2141
    Problem:    [security]: buffer-overflow in suggest_trie_walk
    Solution:   Check n before using it as index into bytes array

    Patch 9.0.2142
    Problem:    [security]: stack-buffer-overflow in option callback functions
    Solution:   pass size of errbuf down the call stack, use snprintf()
                instead of sprintf()

    Patch 9.0.2143
    Problem:    [security]: buffer-overflow in ex_substitute
    Solution:   clear memory after allocating

    Patch 9.0.2144
    Problem:    Text properties causes wrong line wrapping to be drawn.
    Solution:   Find the index of the last text property that inserts text.

    Patch 9.0.2145
    Problem:    Wrong scrolling in Insert mode with 'smoothscroll' at the
                bottom of the window.
    Solution:   Don't use set_topline() when 'smoothscroll' is set.

    Patch 9.0.2146
    Problem:    text-property without type errors when joining
    Solution:   count all text-properties, with or without type
                before joining lines

    Patch 9.0.2147
    Problem:    Type check tests fail without the channel feature
    Solution:   only run tests, when Vim was build with +channel

    Patch 9.0.2148
    Problem:    Vim does not detect pacman.log file
    Solution:   Detect pacmanlogs and add syntax highlighting

    Patch 9.0.2149
    Problem:    [security]: use-after-free in exec_instructions()
    Solution:   get tv pointer again

    Patch 9.0.2150
    Problem:    Using int for errbuflen in option funcs
    Solution:   Use size_t for errbuflen in string option functions

    Patch 9.0.2151
    Problem:    'breakindent' is not drawn after diff filler lines.
    Solution:   Correct check for whether 'breakindent' should be drawn.

    Patch 9.0.2152
    Problem:    Using type unknown for List/Dict containers
    Solution:   Use 'any' instead

    Patch 9.0.2153
    Problem:    no support to build on OpenVMS
    Solution:   Add OpenVMS X86_64 platform port

    Patch 9.0.2154
    Problem:    The options[] array is not sorted alphabetically.
    Solution:   Sort it alphabetically.  Add a test.  Avoid unnecessary loop
                iterations in findoption().

    Patch 9.0.2155
    Problem:    Vim9: type not kept when assigning vars
    Solution:   When assigning a List or a Dict value to a variable of type
                'any', keep the type

    Patch 9.0.2156
    Problem:    Vim9: can use typealias in an assignment
    Solution:   Generate errors when class/typealias involved in the rhs of an
                assignment

    Patch 9.0.2157
    Problem:    Vim9: incorrectly parses :def func definitions
    Solution:   check for more context when parsing function args

    Patch 9.0.2158
    Problem:    [security]: use-after-free in check_argument_type
    Solution:   Reset function type pointer when freeing the function type
                list

    Patch 9.0.2159
    Problem:    screenpos() may crash with neg. column
    Solution:   validate and correct column

    Patch 9.0.2160
    Problem:    instanceof() should use varargs as second arg
    Solution:   Modify `instanceof()` to use varargs instead of list

    Patch 9.0.2161
    Problem:    Vim9: not able to use imported interfaces and classes
    Solution:   Detect imported class/interfaces names correctly

    Patch 9.0.2162
    Problem:    Vim9: type documentation out-dated
    Solution:   Update documentation, fix typo in type alias
                definition

    Patch 9.0.2163
    Problem:    Vim9: type can be assigned to list/dict
    Solution:   Prevent assigning a `type` to a `list` or `dict`

    Patch 9.0.2164
    Problem:    Vim9: can use type a func arg/return value
    Solution:   Check if using type as function argument or return value

    Patch 9.0.2165
    Problem:    Vim9: can simplify arg type checking code
    Solution:   In `f_argcheck` array use `arg_any`, instead of NULL

    Patch 9.0.2166
    Problem:    Memory leak in Configure Script when checking GTK
    Solution:   Free the allocated memory

    Patch 9.0.2167
    Problem:    Vim9-script object/class variable declarations use syntax
                that is inconsistent with the rest of the language.
    Solution:   Use :var to declare object and class variables.

    Patch 9.0.2168
    Problem:    Moving tabpages on :drop may cause an endless loop
    Solution:   Disallow moving tabpages on :drop when cleaning up the arglist
                first

    Patch 9.0.2169
    Problem:    Vim9: builtin funcs may accept a non-value
    Solution:   Restrict builtin functions that accept `type`

    Patch 9.0.2170
    Problem:    Vim9: no support for const/final class/objects vars
    Solution:   Support final and const object and class variables

    Patch 9.0.2171
    Problem:    The options[] array is still not sorted alphabetically
                (after: v9.0.2154), causing test failures
    Solution:   Sort the remaining items

    Patch 9.0.2172
    Problem:    Vim9: compiling :defer may fail
    Solution:   compile defer, when ctx_skip is not SKIP_YES

    Patch 9.0.2173
    Problem:    Vim9: Vim crashes when compiling a for statement with a
                non-existing type
    Solution:   Error out when  lhs_type is not null

    Patch 9.0.2174
    Problem:    Vim9: segfault when assigning to type
    Solution:   do not clear typeval, add missing patch number

    Patch 9.0.2175
    Problem:    Compiler warning for uninitialized var
    Solution:   initialize variable to NULL

    Patch 9.0.2176
    Problem:    Compile error with Motif UI + mouse support (after v9.0.1262)
    Solution:   Use correct oldval option pointer

    Patch 9.0.2177
    Problem:    Wrong cursor position when dragging out of window.
    Solution:   Don't use ScreenCols[] when mouse is not in current window.

    Patch 9.0.2178
    Problem:    reg_executing() returns wrong result in :normal with range
                when 'showcmd' is set (after 8.2.4705).
    Solution:   Reset "pending_end_reg_executing" when executing a register.

    Patch 9.0.2179
    Problem:    no filetype detection for execline scripts
    Solution:   Add filetype detection for execline

    Patch 9.0.2180
    Problem:    POSIX function name in exarg struct causes issues
                on OpenVMS
    Solution:   Rename getline member in exarg struct to ea_getline,
                remove isinf() workaround for VMS

    Patch 9.0.2181
    Problem:    Vim9: missing error messages
    Solution:   Add one more error message

    Patch 9.0.2182
    Problem:    Vim9: need a way to reserve future extension
    Solution:   reserve double underscore prefix for future use
                (Yegappan Lakshmanan)

    Patch 9.0.2183
    Problem:    Maximum callback depth is not configurable.
    Solution:   Revert patch 9.0.2103.  Set 'maxfuncdepth' in test.
                (zeertzjq)

    Patch 9.0.2184
    Problem:    Vim9: inconsistent :type/:class messages
    Solution:   Update the Messages (Ernie Rael)

    Patch 9.0.2185
    Problem:    Coverity complains about not checking return value
                in compare_isn_not_values (after 9.0.2184)
    Solution:   cast return value to "(void)" to make intention clear

    Patch 9.0.2186
    Problem:    LTCG compile error on Win/ARM64 for `write_chars()`
    Solution:   Explicitly initialise the storage to use data rather than BSS
                (Saleem Abdulrasool)

    Patch 9.0.2187
    Problem:    Visual selection isn't drawn with 'breakindent' when the line
                doesn't fit in the window (Jaehwang Jung)
    Solution:   Adjust wlv->fromcol also for 'breakindent' (zeertzjq)

    Patch 9.0.2188
    Problem:    cursor wrong after { in single line buffer
                (Edwin Chan)
    Solution:   do not place the cursor at the end for a single
                line buffer when moving backwards (Gary Johnson)

    Patch 9.0.2189
    Problem:    Wrong display when 'breakindentopt' contains "sbr" and
                'showbreak' and 'nobreakindent' are set.
    Solution:   Always reset wlv->need_showbreak regardless of the values of
                'breakindent' and 'showbreak', as they aren't checked when
                setting wlv->need_showbreak (zeertzjq)

    Patch 9.0.2190
    Problem:    proto files need update
    Solution:   re-generate them

    ==============================================================================

    VERSION 9.2				*version-9.2* *version9.2* *vim-9.2*

    This section is about improvements made between version 9.1 and 9.2
    and is a work in progress.

    Vim9 script
    Add support for internal builtin functions with vim9 objects, see
    |builtin-object-methods|

    Enum support for Vim9 script |:enum|

    Generic function support for Vim9 script |generic-functions|

    Support for protected _new() method

    Support for compiling all the methods in a Vim9 class using |:defcompile|.

    Add support for object<{type}> as variable data type |vim9-types|

    Support for the |Tuple| data type in Vim script and Vim9 script.

    Diff mode
    Include the "linematch" algorithm for the 'diffopt' setting.  This aligns
    changes between buffers on similar lines improving the diff highlighting in
    Vim

    Improve the diff highlighting for changes within a line.  Configurable using
    the "inline" sub option value for the 'diffopt' setting, with "inline:simple"
    being added to the default "diffopt" value (but this does not change how diff
    mode works).

    The 'diffanchors' option specifies a comma-separated list of addresses in
    a buffer that act as anchor points for splitting and independently diffing
    buffer sections, improving diff alignment.  It is only used when 'diffopt'
    includes "anchor" and all specified addresses must resolve in every buffer, or
    else the anchors are ignored.

    Completion
    - New Insert-mode completion: |i_CTRL-X_CTRL-R| to complete words from
      registers.
    - Completion in search contexts using |/|, |?|, |:g|, |:v| and |:vimgrep|
      commands using 'wildchar'
    - ":filetype" command completion and the "filetypecmd" completion type for
      |getcompletion()| have been included.
    - Support for command-line completion of 'keymap' option values.
    - Support for |fuzzy-matching| during |ins-completion| with the "fuzzy"
      values of the 'completeopt' setting.
    - allow to complete shell commands and files using the new shellcmdline
      completion type using |:command-complete| and |getcmdcomplpat()|
    - New option value for 'wildmode':
    	"noselect"	- do not auto select an entry in the wildmenu
    	"exacttext"	- show exact matches in wildmenu with search
    			  completion
    - New flags for 'complete':
    	"F{func}"	- complete using given function
    	"F"		- complete using 'completefunc'
    	"o"		- complete using 'omnifunc'
    - New option value for 'completeopt':
    	"nosort"	- do not sort completion results
    	"preinsert"	- highlight to be inserted values
    	"nearest"	- sort completion results by distance to cursor
    - new function |wildtrigger()| to trigger wildcard expansion
    - Support for Autocompletion has been added |ins-autocompletion|

    Platform specific
    - Support for Wayland UI and support for the Wayland clipboard has been added
      |wayland|.

    - Support for the XDG Desktop Specification |xdg-base-dir| has been added and
      the environment variable |$MYVIMDIR| is set to the users personal runtime
      directory ($HOME/.vim or $HOME/.config/vim on Linux, $HOME/vimfiles on
      Windows).

    - Python3 support in OpenVMS is now available.

    - The Win32 GUI comes with better toolbar icons.

    - Better fullscreen support for Haiku |os_haiku.txt|.

    							*new-other-9.2*
    Other new features
    - Support for Super key mappings in GTK using <D-Key>.

    - The new optional packages |package-comment|, |package-nohlsearch|,
      |package-hlyank|, |help-TOC|, |package-helpcurwin| and |package-osc52| are
      included.

    - An interactive tutor plugin has been included |vim-tutor-mode| and can be
      started via |:Tutor|.

    - Support for translating messages in Vim script plugins using the |gettext()|
      and |bindtextdomain()| functions was included.

    - Support highlighting the matched text and the completion kind for
      insert-mode completion and command-line completion in |ins-completion-menu|,
      see |complete-items|.

    - A new vertical |tabpanel| window has been included which is a vertical
      'tabline'.

    - The |dist#vim9#Launch()| and |dist#vim9#Open()| functions have been added to
      the |vim-script-library| and decoupled from |netrw|.

    - The new digraph "APPROACHES THE LIMIT" using ".=" has been added.

    - Add the new default highlighting groups "Bold", "Italic" and "BoldItalic"
      for use in syntax scripts.

    - |items()| function now supports Blob.

    - The clipboard provider feature has been added |clipboard-providers|.

    							*changed-9.2*
    Changed

    Default values:
    - the default 'history' option value has been increased to 200 and removed
      from |defaults.vim|
    - the default 'backspace' option for Vim has been set to "indent,eol,start"
      and removed from |defaults.vim|
    - the default fontsize for the GTK builds of Vim (Windows and Unix) has been
      increased to 12pt to accommodate modern high-dpi monitors
    - the default value of the 'keyprotocol' option has been updated and support
      for the ghostty terminal emulator (using kitty protocol) has been added
    - Improved visual highlighting |hl-Visual|
    - the default value for 'showcmd' is always enabled when using non-compatible
      mode (previously, it was off on UNIX systems) and consequently removed from
      |defaults.vim|
    - Improve the diff mode experience by updating the 'diffopt' default value to
      "internal,filler,closeoff,indent-heuristic,inline:char".
    - the 'ruler' option value is always enabled when using non-compatible mode
      and removed from |defaults.vim|

    Completion:
    - allow to complete directories from 'cdpath' for |:cd| and similar commands,
      add the "cd_in_path" completion type for e.g. |:command-complete| and
      |getcompletion()|
    - allow to specify additional attributes in the completion menu (allows to
      mark deprecated attributes from LSP server) |complete-items|
    - the completed word and completion type are provided when handling the
      |CompleteDone| autocommand in the |v:event| dictionary
    - |complete_info()| returns the list of matches shown in the poppu menu via
      the "matches" key
    - handle multi-line completion items as expected
    - improved commandline completion for the |:hi| command
    - allow to limit matches for the 'complete' sources by using the
      "{flag}^<limit>" notation
    - 'smartcase' applies to completion filtering

    Options:
    - 'commentstring' is now available in all builds and no longer requires the
      |+folding| feature
    - the default for 'commentstring' contains whitespace padding to have
      automatic comments look nicer |comment-install|
    - 'completeopt' is now a |global-local| option.
    - add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
      behaviour/inconsistency (see |d-special| and |cw|).
    - add 'cpoptions' flag "~" |cpo-~| to disable resolving symlinks on |:cd|
      commands
    - new option values for 'fillchars':
    	"trunc"		- configure truncation indicator, 'pummaxwidth'
    	"truncrl"	- like "trunc" but in 'rl' mode, 'pummaxwidth'
    	"tpl_vert"	- vertical separators for the 'tabpanel'
    	"foldinner"	- character used inside the 'foldcolumn' for nested
    			  fold levels
    - 'grepformat' is now a |global-local| option.
    - adjust for GTK3 dropping some mouse cursors 'mouseshape'
    - 'nrformats' accepts the new "blank" suboption, to determine a signed or
      unsigned number based on whitespace in front of a minus sign.
    - 'rulerformat' now supports the |stl-%!| item
    - use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
      and CTRL-D / CTRL-U for half-pagewise scrolling
    - Setting 'nowrap' in a modeline could cause long lines to be hidden
      off-screen.  To make this visible, the listchars "extend" suboption is set
      to ">" by default, indicating text that extends beyond the window width.
    - 'guioptions': New value |'go-C'| to style the title/caption bar on Windows 11
      (see also the below platform specific change).
    - 'guioptions': Support darkmode on MS-Windows for menu and title bar using
      |'go-d'| (see also the below platform specific change).
    - 'guioptions': New value |'go-s'| to support fullscreen on MS-Windows GUI
      (see also the below platform specific change).
    - 'completepopup': Add more values to style popup windows.
    - 'fsync' is now a |global-local| option.

    Ex commands:
    - allow to specify a priority when defining a new sign |:sign-define|
    - |:bwipe| also wipes jumplist and tagstack data
    - moving in the buffer list using |:bnext| and similar commands, behaves as
      documented and skips help buffers (if not run from a help buffer, else
      moves to the next/previous help buffer).
    - |:keeppatterns| preserves the last substitute pattern when used with |:s|
    - |:retab| accepts the new optional parameter -indentonly to only change
      whitespace in indented lines.

    Functions:
    - provide information about function arguments using the get(func, "arity")
      function |get()-func|
    - |setqflist()| and |setloclist()| can optionally try to preserve the current
      selection in the quickfix list with the "u" action.
    - allow to pass local Vim script variables to python interpreter |py3eval()|
    - |getwininfo()| now also returns the "leftcol" property for a window
    - |v:stacktrace| The stack trace of the exception most recently caught and
      not finished
    - Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
      behaviour, return type and whether or not to simplify the returned key
    - |chdir()| allows to optionally specify a scope argument
    - |matchfuzzy()| and |matchfuzzypos()| use an improved fuzzy matching
      algorithm (same as fzy).
    - |sha256()| also accepts a |Blob| as argument.
    - |listener_add()| allows to register un-buffered listeners, so that changes
      are handled as soon as they happen.
    - |redraw_listener_add()| and |redraw_listener_remove()| add/remove callbacks
      for redrawing events.

    Plugins
    - |zip| plugin works with PowerShell Core.

    Platform specific
    - MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
      absolute paths (to the current drive) and no longer relative.
    - MS-Windows: The title bar follows the |hl-TitleBar| and |hl-TitleBarNC|
      highlighting group |gui-w32-title-bar| with |'go-C'|
    - MS-Windows: Support darkmode for menu and title bar using |'go-d'|
    - MS-Windows: Vim no longer searches the current directory for
      executables when running external commands; prefix a relative or absolute
      path if you want the old behavior |$NoDefaultCurrentDirectoryInExePath|.
    - MS-Windows: New value |'go-s'| to support fullscreen on MS-Windows GUI

    - macOS: increase default scheduler priority to TASK_DEFAULT_APPLICATION.

    Others:
    - the regex engines match correctly case-insensitive multi-byte characters
      (and apply proper case folding)
    - the putty terminal is detected using an |TermResponse| autocommand in
      |defaults.vim| and Vim switches to a dark background
    - improve the |vimtutor| and add a second chapter for more advanced tips
    - the configure script will favor using GTK3 over GTK2 when auto-detecting the
      gui toolkit
    - |gv| works in operator pending mode and does not abort
    - The close button shown in the non-GUI 'tabline' will only be visible if the
      'mouse' option contains either "a" or any of the flags "n", "v", or "i".
    - |C-indenting| handles compound literals.
    - The digraphs "</" (LEFT-POINTING ANGLE BRACKET) and ">/" (RIGHT-POINTING
      ANGLE BRACKET) have been changed to represent LEFT ANGLE BRACKET and RIGHT
      ANGLE BRACKET to match the Unicode Miscellaneous Technical code chart from
      Unicode 16.
    - Two additional digraphs have been added: LEFT ANGLE BRACKET "<[" and RIGHT
      ANGLE BRACKET "]>".
    - Support for Unix domain sockets have been added for the clientserver
      feature, see |socketserver-clientserver|.
    - |CmdlineLeave| sets |v:char| to the character that caused exiting the
      Command-line.
    - |min()|/|max()| can handle all comparable data types.
    - Vim triggers the |TermResponseAll| autocommand for any terminal OSC value.
    - Support CTRL-B and CTRL-F in the |more-prompt|.

    Not Vim related
    - Updated sponsorship documentation to replace references to ICCF with Kuwasha
      International Development Society as Vim's designated charity.

    							*added-9.2*
    Added
    Various syntax, indent and other plugins were added.

    Functions:

    |base64_decode()|	decode a base64 string into a blob
    |base64_encode()|	encode a blob into a base64 string
    |blob2str()|		convert a blob into a List of strings
    |bindtextdomain()|	set message lookup translation base path
    |cmdcomplete_info()|	get current cmdline completion info
    |diff()|		diff two Lists of strings
    |filecopy()|		copy a file {from} to {to}
    |foreach()|		apply function to List items
    |getcellpixels()|	get List of terminal cell pixel size
    |getcmdcomplpat()|	Shell command line completion
    |getcmdprompt()|	get prompt for input()/confirm()
    |getcompletiontype()|	get command-line completion type
    |getregion()|		get a region of text from a buffer
    |getregionpos()|	get a list of positions for a region
    |getstacktrace()|	get current stack trace of Vim scripts
    |id()|			get unique identifier for a Dict, List, Object,
    			Channel or Blob variable
    |list2tuple()|		turn a List of items into a Tuple
    |listener_add()|	add a callback to listen to changes
    |matchbufline()|	all the matches of a pattern in a buffer
    |matchstrlist()|	all the matches of a pattern in a List of strings
    |ngettext()|		lookup single/plural message translation
    |popup_setbuf()|	switch to a different buffer in a popup
    |preinserted()|		whether preinserted text has been inserted during
    			completion (see 'completeopt')
    |redraw_listener_add()|	add callbacks to listen for redraws
    |redraw_listener_remove()|  remove a redraw listener
    |str2blob()|		convert a List of strings into a blob
    |test_null_tuple()|	return a null tuple
    |tuple2list()|		turn a Tuple of items into a List
    |uri_decode()|		URI-decode a string
    |uri_encode()|		URI-encode a string
    |wildtrigger()|		trigger wildcard expansion

    Autocommands:

    |CmdlineLeavePre|	before preparing to leave the command line
    |CursorMovedC|		after the cursor was moved in the command-line
    |KeyInputPre|		before processing any key event in any mode
    |SessionWritePost|	after writing the session file |:mksession|
    |TabClosedPre|		before closing a |tabpage|.
    |TermResponseAll|	after the terminal response to |t_RV| and others is
    			received
    |WinNewPre|		before creating a new window

    Highlighting:

    |hl-ComplMatchIns|	matched text of the currently inserted completion
    |hl-DiffTextAdd|	added text within a changed line
    |hl-MsgArea|		highlighting of the Command-line and messages area
    |hl-PmenuBorder|	Popup menu: highlighting of popup border characters
    |hl-PmenuMatch|		Popup menu: highlighting of matched text
    |hl-PmenuMatchSel|	Popup menu: highlighting of matched text in selected
    			line
    |hl-PmenuShadow|	Popup menu: highlighting of the popup shadow
    |hl-PreInsert|		highlighting for completion preinserted text
    |hl-TabPanel|		|tabpanel|: not active tab page label
    |hl-TabPanelFill|	|tabpanel|: filler space
    |hl-TabPanelSel|	|tabpanel|: active tab page label
    |hl-TitleBarNC|		Configure the inactive title/bar on MS-Windows 11
    |hl-TitleBar|		Configure the active title/bar on MS-Windows 11

    Commands:

    |[r| and |]r|		to move the cursor to previous/next rare word

    Ex-Commands:

    |:clipreset|		choose a new method for accessing the clipboard
    |:iput|			like |:put| but adjust indent
    |:pbuffer|		Edit buffer [N] from the buffer list in the preview
    			window
    |:redrawtabpanel|	Force updating the 'tabpanel'.
    |:uniq|			Deduplicate text in the current buffer.
    |:wlrestore|		reinitialize the wayland compositor connection

    Options:

    'autocomplete'		Enable auto completion |ins-autocompletion|
    'autocompletedelay'	Delay in msec before menu appears after typing
    'autocompletetimeout'	initial decay timeout for autocompletion algorithm
    'chistory'		Size of the quickfix stack |quickfix-stack|
    'clipmethod'		How to access the clipboard
    'completeitemalign'	Order of |complete-items| in Insert mode completion
    			popup
    'completetimeout'	initial decay timeout for CTRL-N and CTRL-P
    'diffanchors'		list of {address} to force syncing of diffs
    'eventignorewin'	autocommand events that are ignored in a window
    'findfunc'		Vim function to obtain the results for a |:find|
    			command
    'lhistory'		Size of the location list stack |quickfix-stack|
    'maxsearchcount'	Set the maximum number for search-stat |shm-S|
    'messagesopt'		configure |:messages| and |hit-enter| prompt
    'osctimeoutlen'		OSC terminator receive timeout
    'pumborder'		define popup border and decorations
    'pummaxwidth'		maximum width for the completion popup menu
    'showtabpanel'		When to show the |tabpanel|
    'tabclose'		Which tab page to focus after closing a tab page
    'tabpanel'		Optional vertical panel for displaying tabpages
    			|tabpanel|
    'tabpanelopt'		Optional settings for the |tabpanel|
    't_CF'			Support for alternate font highlighting terminal code
    't_xo'			Terminal uses XON/XOFF handshaking (e.g. vt420)
    'winfixbuf'		Keep buffer focused in a window
    'wlseat'		Specify Wayland seat to use for the |wayland| feature
    'wlsteal'		Steal focus to access the |wayland| clipboard
    'wltimeoutlen'		Specify the connection timeout for the |wayland|
    			compositor

    Vim Variables:
    |v:clipmethod|		The current 'clipmethod'.
    |v:clipproviders|	A dictionary containing clipboard providers
    			configuration |clipboard-providers|.
    |v:stacktrace|		The most recent caught exception.
    |v:t_enum|		Value of |enum| type.
    |v:t_enumvalue|		Value of |enumvalue|.
    |v:t_tuple|		Value of |Tuple| type.
    |v:termda1|		The escape sequence returned for the primary device
    			attribute query (DA1).
    |v:termosc|		The most recent received OSC response.
    |v:vim_did_init|	Set once Vim finishes startup initialization.
    |v:wayland_display|	The name of the Wayland display Vim is connected to.

    Vim Arguments:
    |-Y|			Do not connect to the |wayland| compositor.
    |--clientserver|	Specify backend for clientserver functionality.

    Configure Switches:
    --with-wayland			Enable the |wayland| feature.
    --enable-wayland-focus-steal	Enable the |wayland-focus-steal| feature.
    --enable-socketserver		Enable the |socketserver-clientserver|
    				feature.

    ==============================================================================

    INCOMPATIBLE CHANGES					*incompatible-9.2*

    Improved/Different MS-Windows mapping support
    |w32-experimental-keycode-trans-strategy|

    ==============================================================================

    COMPILE TIME CHANGES					*compile-changes-9.2*

    Support for building with Ruby 3.3.

    Support for building Vim 9 in z/OS (MVS).

    Clean-up old MS-Windows code.

    ==============================================================================

    PATCHES						*patches-9.2* *bug-fixes-9.2*

    						*patches-after-9.1*

    The list of patches that got included since 9.1.0.  This includes all the new
    features, but does not include runtime file changes (syntax, indent, ftplugin,
    documentation, etc.)

    Note: authorship and the list of changed files is left out and only visible
    through `git log` for each commit.

    Patch 9.1.0001
    Problem:  When closing the current window (or when moving it to a tabpage),
              the previous window may refer to the new current window (`winnr() ==
              winnr('#')`) if that window is selected as the new current window.
    Solution: Set `prevwin = NULL` when switching away from an invalid `curwin`
              and the target window was the `prevwin`. (Sean Dewar)

    Patch 9.1.0002
    Problem:  a closing fold expression may unexpectedly start a new fold when it
              should end a fold (reported by Shota Nozaki)
    Solution: if a fold hasn't started yet, do not immediately start a new fold
              with level 1 (Shota Nozaki)

    Patch 9.1.0003
    Problem:  Cannot build against Ruby 33 dynamically
    Solution: Ruby 33 removed transient heap, so do not use rb_ary_transient
              anymore, NoMethodError format changed, so update test for expected
              error message (Isao Sato)

    Patch 9.1.0004
    Problem:  reloading colorscheme when not changing 'background'
    Solution: Check, if the background option value actually changed,
              if not, return early.

    Patch 9.1.0005
    Problem:  OpenVMS build does not support python3 and xterm_save
    Solution: Enable python3 + xterm_save feature, fix style issues
              (Zoltan Arpadffy)

    Patch 9.1.0006
    Problem:  is*() and to*() function may be unsafe
    Solution: Add SAFE_* macros and start using those instead
              (Keith Thompson)

    Patch 9.1.0007
    Problem:  can select empty inner text blocks
              (laurentalacoque)
    Solution: make selecting empty inner text blocks an error textobjects: Make
              selecting inner empty blocks an error

    Patch 9.1.0008
    Problem:  NSIS installer includes syntax test dumps
              (Yegappan Lakshmanan)
    Solution: Exclude syntax/testdir when creating the NSIS installer

    Patch 9.1.0009
    Problem:  Cannot easily get the list of matches
    Solution: Add the matchstrlist() and matchbufline() Vim script functions
              (Yegappan Lakshmanan)

    Patch 9.1.0010
    Problem:  Keymap completion is not available
    Solution: Add keymap completion (Doug Kearns)

    Patch 9.1.0011
    Problem:  regexp cannot match combining chars in collection
    Solution: Check for combining characters in regex collections for the
              NFA and BT Regex Engine

    Patch 9.1.0012
    Problem:  regression with empty inner blocks introduced
              (after v9.1.0007)
    Solution: Set correct cursor position, Check for visual mode
              being active (Maxim Kim)

    Patch 9.1.0013
    Problem:  Modula2 filetype support lacking
    Solution: Improve the Modula-2 runtime support, add additional modula2
              dialects, add compiler plugin, update syntax highlighting,
              include syntax tests, update Makefiles (Doug Kearns)

    Patch 9.1.0014
    Problem:  incorrect use of W_WINROW in edit.c
    Solution: compare against curwin->w_height instead Remove incorrect use of
              W_WINROW

    Patch 9.1.0015
    Problem:  i_CTRL-R- no longer works in replace mode
    Solution: delete characters in replace mode before putting, add a test, add a
              bit warning into the documentation, that i_CTRL-R-P/O is not
              supported in Replace mode for now

    Patch 9.1.0016
    Problem:  default diff highlighting is too noisy
    Solution: Link diff highlighting groups to new Added/Removed/Changed, revert
              previous change (Romain Lafourcade)

    Patch 9.1.0017
    Problem:  use-after-free in eval1_emsg() when an empty line follows a lambda
              (by @yu3s)
    Solution: only set evalarg->eval_using_cmdline = FALSE when the *arg pointer
              is not null

    Patch 9.1.0018
    Problem:  use of #if instead of #ifdef
    Solution: use correct form of #ifdef

    Patch 9.1.0019
    Problem:  cmdline may disappear when changing 'cmdheight'
              (after Patch 9.0.0190, @markonm)
    Solution: always re-calculate the old_p_ch value, not only
              when cmdline_row was higher than expected

    Patch 9.1.0020
    Problem:  Vim9: cannot compile all methods in a class
    Solution: Support compiling all the methods in a class using :defcompile
              (Yegappan Lakshmanan)

    Patch 9.1.0021
    Problem:  i_CTRL-R- doesn't work for multibyte chars in Replace mode,
              Coverity complains missing return value for u_save_cursor()
    Solution: Use mb_charlen() and del_chars() instead, handle failure mode
              for u_save_cursor() correctly (@zeertzjq)

    Patch 9.1.0022
    Problem:  Coverity complains about improper use of negative value
    Solution: Add a condition to validate that keytyped is larger or equal
              to 0

    Patch 9.1.0023
    Problem:  xxd: few problems with EBCDIC for z/OS (MVS)
    Solution: Fix xxd build and support ASCII and UTF-8 on z/OS (MVS)
              natively, add MVS guard checks with __CHARSET_LIB,
              support $LIBS in the Makefile (Igor Todorovski)

    Patch 9.1.0024
    Problem:  z/OS (MVS) support can be improved
    Solution: set UTF-8 as the default encoding for z/OS

    Patch 9.1.0025
    Problem:  A few typos in tests and justify.vim
    Solution: fix them

    Patch 9.1.0026
    Problem:  win32: Windows default font lacking (@clach04)
    Solution: Improve default font (Ken Takata)

    Patch 9.1.0027
    Problem:  Vim is missing a foreach() func
    Solution: Implement foreach({expr1}, {expr2}) function, which applies {expr2}
              for each item in {expr1} without changing it (Ernie Rael)

    Patch 9.1.0028
    Problem:  win32: Ctrl-D cannot be used to close a pipe
    Solution: Properly detect Ctrl-D when reading from a pipe
              (GuyBrush)

    Patch 9.1.0029
    Problem:  Cannot act on various terminal response codes
    Solution: Add the TerminalResponseAll autocommand
              (Danek Duvall)

    Patch 9.1.0030
    Problem:  Cannot use terminal alternate fonts (PMunch)
    Solution: Support terminal alternate fonts using CSI SGR 10-20 and t_CF code
              (PMunch)

    Patch 9.1.0031
    Problem:  Link Error on Windows
    Solution: Add ifdef HAVE_TGETENT for term_strings_not_set()

    Patch 9.1.0032
    Problem:  MS-Windows installer misses keymaps (Maxim Kim)
    Solution: Include keymaps in the installer archive (Ken Takata)

    Patch 9.1.0033
    Problem:  Insert mode not stopped if an autocommand modifies a hidden
              buffer while closing a prompt buffer.
    Solution: Don't set b_prompt_insert if stop_insert_mode is already set.
              (zeertzjq)

    Patch 9.1.0034
    Problem:  Window may unexpectedly scroll when 'scrollbind' is set
              and setting a buffer-local option using setbufvar() (Boris Staletic)
    Solution: Save and restore the windows topline before opening the
              popup window.

    Patch 9.1.0035
    Problem:  i_CTRL-] triggers InsertCharPre
    Solution: Return if CTRL-] is received. InsertCharPre is supposed to be only
              used for chars to be inserted but i_CTRL-] triggers expansion and is
              not inserted into the buffer (altermo)

    Patch 9.1.0036
    Problem:  MS-Windows: Warning about unused variable
              (after 9.1.0030, John Marriott)
    Solution: Adjust #ifdef and test for HAVE_TGETENT (John Marriott)

    Patch 9.1.0037
    Problem:  Calling get_breakindent_win() repeatedly when computing virtual
              column, and get_breakindent_win() does a STRCMP() on the whole line
              since Patch 9.0.0016.
    Solution: Cache the result, since the line doesn't change.
              (zeertzjq)

    Patch 9.1.0038
    Problem:  Unnecessary loop in getvcol().
    Solution: Compare next char position with pos->col directly (zeertzjq).

    Patch 9.1.0039
    Problem:  too vague errors for 'listchars'/'fillchars'
    Solution: Include the field name in error message (zeertzjq).

    Patch 9.1.0040
    Problem:  Modifying a hidden buffer still interferes with prompt buffer mode
              changes.
    Solution: Save and restore b_prompt_insert (zeertzjq).

    Patch 9.1.0041
    Problem:  xxd -i may generate incorrect C statements (Kuratius)
    Solution: xxd: Make size type returned by -i option compatible with C standard
              by using type size_t instead of unsigned int (Kuratius)

    Patch 9.1.0042
    Problem:  Missing test for Chuck filetype after (Christian Clason)
    Solution: Add a filetype test

    Patch 9.1.0043
    Problem:  ml_get: invalid lnum when :s replaces visual selection (@ropery)
    Solution: substitute may decrement the number of lines in a buffer, so
              validate, that the bottom lines of the visual selection
              stays within the max buffer line

    Patch 9.1.0044
    Problem:  po Makefiles can be improved
    Solution: Improve the style of the Makefiles, update Makefile variables,
              update documentation (RestorerZ)

    Patch 9.1.0045
    Problem:  --remote-silent applies the wildignore option to each argument,
              which may result in "E479: No match" (hebaronson)
    Solution: temporarily reset 'wildignore' setting when building the :drop
              command

    Patch 9.1.0046
    Problem:  :drop does not re-use empty buffer (Rocco Mao)
    Solution: Make :drop re-use an empty buffer (Rocco Mao)

    Patch 9.1.0047
    Problem:  Things that temporarily change/restore curwin/buf (e.g: win_execute,
              some autocmds) may break assumptions that curwin/buf is the cmdwin
              when "cmdwin_type != 0", causing issues.
    Solution: Expose the cmdwin's real win/buf and check that instead. Also try to
              ensure these variables are NULL if "cmdwin_type == 0", allowing them
              to be used directly in most cases without checking cmdwin_type.
              (Sean Dewar).

    Patch 9.1.0048
    Problem:  Autocmds triggered from opening the cmdwin (in win_split and
              do_ecmd) can cause issues such as E199, as the current checks
              are insufficient.
    Solution: Commands executed from the cmdwin apply to the old curwin/buf, so
              they should be kept in a "suspended" state; abort if they've
              changed. Also abort if cmdwin/buf was tampered with, and check that
              curwin is correct. Try to clean up the cmdwin buffer (only if hidden
              and non-current to simplify things; the same approach is used when
              closing cmdwin normally), and add a beep. (Sean Dewar)

    Patch 9.1.0049
    Problem:  E95 is possible if a buffer called "[Command Line]" already exists
              when opening the cmdwin. This can also happen if the cmdwin's buffer
              could not be deleted when closing.
    Solution: Un-name the cmdwin buffer, and give it a special name instead,
              similar to what's done for quickfix buffers and for unnamed prompt
              and scratch buffers. As a result, BufFilePre/Post are no longer
              fired when opening the cmdwin. Add a "command" key to the dictionary
              returned by getbufinfo() to differentiate the cmdwin buffer instead.
              (Sean Dewar)

    Patch 9.1.0050
    Problem:  Win32 Keyboard handling is sub-optimal and has many issues with
              international keyboards (risa2000) (after v8.2.4807)
    Solution: soft-rollback the change, allow the user to select a suitable
              key-translation strategy (Anton Sharonov)

    Patch 9.1.0051
    Problem:  MS-Windows: Key event test fail (after 9.1.0050)
    Solution: Catch Interrupt and return Ctrl-C

    Patch 9.1.0052
    Problem:  Patch 9.1.0041 causes regressions for users (Gleb
              Fotengauer-Malinovskiy)
    Solution: Revert 9.1.0041 and restore old behaviour

    Patch 9.1.0053
    Problem:  MS-Windows: Key event test still fails
    Solution: Catch more interrupts (after 9.1.0051)

    Patch 9.1.0054
    Problem:  'linebreak' may still apply to leading whitespace (VanaIgr)
    Solution: Compare pointers instead of virtual columns (zeertzjq).

    Patch 9.1.0055
    Problem:  formatting long lines is slow (kawaii-Code)
    Solution: optimize gq (internal_format) for long lines (kawaii-Code)

    Patch 9.1.0056
    Problem:  Incorrect number of trailing spaces inserted for multibyte
              characters when pasting a blockwise register in blockwise visual
              mode (VanaIgr)
    Solution: Skip over trailing UTF-8 bytes when computing the number of trailing
              spaces (VanaIgr)

    Patch 9.1.0057
    Problem:  MS-Windows: Key event test still fails
    Solution: Skip testing CTRL-C, since it causes an Interrupt which causes a
              test failure (after 9.1.0053)

    Patch 9.1.0058
    Problem:  Cannot map Super Keys in GTK UI (Casey Tucker)
    Solution: Enable Super Key mappings in GTK using <D-Key> (Casey Tucker)

    Patch 9.1.0059
    Problem:  No event is triggered before creating a window
    Solution: Add the WinNewPre event (Sergey Vlasov).

    Patch 9.1.0060
    Problem:  Recorded register cannot be translated using keytrans() when it
              involves character search (iddqd505)
    Solution: Record a K_IGNORE instead of a K_NOP (zeertzjq).

    Patch 9.1.0061
    Problem:  UX of visual highlighting can be improved
    Solution: Improve readibility of visual highlighting, by setting better
              foreground and background colors

    Patch 9.1.0062
    Problem:  Internal error when :luado/perldo/pydo etc delete lines
    Solution: Test that the line is still valid line number (zeertzjq).

    Patch 9.1.0063
    Problem:  GTK code can be improved
    Solution: Improve GTK code for initial Wayland support (lilydjwg).

    Patch 9.1.0064
    Problem:  No Wayland support
    Solution: Add Wayland UI support (lilydjwg).

    Patch 9.1.0065
    Problem:  Segfault with CompleteChanged autocommand (markonm)
    Solution: Test match->cp_prev for being NULL before accessing it

    Patch 9.1.0066
    Problem:  gcc complains about use of uninitialized var (Tony Mechelynck, after
              9.1.0064)
    Solution: initialize button to silence gcc

    Patch 9.1.0067
    Problem:  gcc still complains about use of uninitialized var (Tony Mechelynck,
              after 9.1.0064/9.1.0066)
    Solution: This time init the correct variable

    Patch 9.1.0068
    Problem:  Visual highlighting can still be improved
    Solution: Update Visual highlighting for 8 color terminals, use uniform grey
              highlighting for dark and light bg (Maxim Kim)

    Patch 9.1.0069
    Problem:  ScreenLines may not be correctly initialized, causing hang
              (Olaf Seibert, after 9.0.0220)
    Solution: always initialize ScreneLines when allocating a screen (Olaf
              Seibert)

    Patch 9.1.0070
    Problem:  CI: testsuite not run on M1 Mac
    Solution: Make it run on gh runners for M1, disable failing tests for now,
              until we figure the problem with the failings tests out (rhysd)

    Patch 9.1.0071
    Problem:  Need a diff() Vim script function
    Solution: Add the diff() Vim script function using the xdiff internal diff
              library, add support for "unified" and "indices" mode (Yegappan
              Lakshmanan).

    Patch 9.1.0072
    Problem:  Not able to build without FEAT_DIFF (John Marriott, after 9.1.0071)
    Solution: Adjust #ifdefs (Yegappan Lakshmanan)

    Patch 9.1.0073
    Problem:  Looping over modifier_keys_table[] unnecessarily with only
              MOD_MASK_ALT or MOD_MASK_CMD, as modifier_keys_table[] only contains
              MOD_MASK_SHIFT and MOD_MASK_CTRL, and the loop won't do anything.
    Solution: Remove MOD_MASK_ALT and MOD_MASK_CMD from the condition (zeertzjq).

    Patch 9.1.0074
    Problem:  did_set_breakat() should be in optionstr.c as 'breakat' is a string
              option.
    Solution: Move did_set_breakat() to optionstr.c (zeertzjq).

    Patch 9.1.0075
    Problem:  insert completion not correct when adding new leader
    Solution: Reset compl_curr_match to compl_shown_match (glepnir).

    Patch 9.1.0076
    Problem:  luau config file not detected (lopy)
    Solution: Detect it as jsonc (lopy)

    Patch 9.1.0077
    Problem:  The call to redraw_for_cursorline() in nv_mousescroll() is
              unnecessary because redraw_for_cursorline() only sets redraw type to
              UPD_VALID, and all code paths in do_mousescroll() already set redraw
              type to at least UPD_VALID.
    Solution: Remove call to redraw_for_cursorline() in nv_mousescroll()
              (zeertzjq).

    Patch 9.1.0078
    Problem:  GTK3: using wrong style for pre-edit area
    Solution: remove the widget name, adjust css (lilydjwg).

    Patch 9.1.0079
    Problem:  LineNrAbove and LineNrBelow background wrong on wrapped lines.
    Solution: Update number column also for wrapped part of a line (zeertzjq).

    Patch 9.1.0080
    Problem:  unexpected error for modifying final list using += operator
              (Ernie Rael)
    Solution: Allow List value modification of a final variable using +=
              operator (Yegappan Lakshmanan)

    Patch 9.1.0081
    Problem:  X11 mouse-scrolling stutters (Ron Aaron, after 9.1.0064)
    Solution: Handle GDK_SCROLL_SMOOTH fractional distance events
              (lilydjwg)

    Patch 9.1.0082
    Problem:  Redrawing can be improved when deleting lines with 'cursorline'.
    Solution: Use smarter invalidation and adjustment.  Remove unnecessary
              UPD_VALID as it is already set at the top of the loop.  Make the
              test for #4862 fail without the fix (zeertzjq).

    Patch 9.1.0083
    Problem:  Redrawing can be improved when inserting/deleting lines with
              'number'.
    Solution: Only redraw the number column of lines below changed lines. Add a
              test as this wasn't previously tested (zeertzjq).

    Patch 9.1.0084
    Problem:  Visual hl wrong when it ends before multibyte 'showbreak' (lacygoil)
    Solution: Use vcol_sbr instead of adding n_extra (zeertzjq).

    Patch 9.1.0085
    Problem:  X11 scroll size changes after accessing clipboard (Ernie Rael)
    Solution: use GDK_SCROLL_MASK for X11 and GDK_SMOOTH_SCROLL_MASK for
              Wayland (lilydjwg).

    Patch 9.1.0086
    Problem:  Problem when scrolling using slow touchpads scroll event
    Solution: Better ways to determine if a smooth scroll has ended (when
              available) (lilydjwg).

    Patch 9.1.0087
    Problem:  Restore lastused_tabpage too early in do_arg_all() function it
              will change later in the function.
    Solution: Restore lastused_tabpage a bit later, when being done with
              tabpages (glepnir).

    Patch 9.1.0088
    Problem:  TextChanged not triggered for :norm! commands (machakann, after
              v9.0.2031)
    Solution: Only reset curbuf->b_last_changedtick if TextChangedI was triggered
              in insert mode (and not blocked)

    Patch 9.1.0089
    Problem:  qsort() comparison functions should be transitive
    Solution: Do not subtract values, but rather use explicit comparisons
              Improve qsort() comparison functions

    Patch 9.1.0090
    Problem:  Assigning wrong colors when parsing terminal OSC response
    Solution: Correctly assign Green and Blue from the terminal response
              (Maxim Kim)

    Patch 9.1.0091
    Problem:  Syntax test fails when run with non C locale
    Solution: Run syntax tests with C locale, clean up Xtestscript file,
              strip environment variables from GetVimCommand() (h-east).

    Patch 9.1.0092
    Problem:  Compiler warning for missing type in scroll_event() (chdiza)
    Solution: Declare display_type explicitly as integer

    Patch 9.1.0093
    Problem:  Still a qsort() comparison function fuzzy_match_item_compare()
              that returns result of subtraction (after 9.1.0089).
    Solution: Use an explicit comparison instead of subtraction (zeertzjq).

    Patch 9.1.0094
    Problem:  xxd: buffer-overflow when writing color output
    Solution: properly account for the color escape sequences and adjust LLEN
              macro (Goffredo Baroncelli)

    Patch 9.1.0095
    Problem:  tests: test_restricted() fails (after: v9.1.0091)
    Solution: Add a space before the pipecmd and the actual Vim command to run

    Patch 9.1.0096
    Problem:  diff() function uses 'diffexpr' (rickhowe)
    Solution: Make diff() always use internal diff(), add support for unified diff
              context length, sort diff() options in help (Yegappan Lakshmanan)

    Patch 9.1.0097
    Problem:  'breakindent' behaves inconsistently with 'list' and splits.
    Solution: Use 'listchars' from the correct window and handle caching properly.
              Move cheaper comparisons to the top (zeertzjq).

    Patch 9.1.0098
    Problem:  CompletionChanged not triggered when new leader added causing
              no matching item in the completion menu
    Solution: When completion is active but no items matched still trigger
              CompletChanged event (glepnir).

    Patch 9.1.0099
    Problem:  Not able to use diff() with 'diffexpr' (rickhowe, after v9.1.0096)
    Solution: Use a default context length of 0, update diff() help text,
              add a test for using diff() with 'diffexpr' (Yegappan Lakshmanan).

    Patch 9.1.0100
    Problem:  When undoing with 'spell', redrawWinline() is called after
              changed_lines(), while later win_update() sets redraw type to
              UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are
              still valid.
    Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting
              lines after parts of window has pending redraw, i.e., when
              changed_lines() is called after redrawWinline() (zeertzjq).

    Patch 9.1.0101
    Problem:  upper-case of ß should be U+1E9E (CAPITAL LETTER SHARP S)
              (fenuks)
    Solution: Make gU, ~ and g~ convert the U+00DF LATIN SMALL LETTER SHARP S (ß)
              to U+1E9E LATIN CAPITAL LETTER SHARP S (á��), update tests
              (glepnir)

    Patch 9.1.0102
    Problem:  settabvar() may change the last accessed tabpage.
    Solution: Save and restore lastused_tabpage (zeertzjq).

    Patch 9.1.0103
    Problem:  'breakindentopt' "min" works incorrectly with 'signcolumn'.
    Solution: Use win_col_off() and win_col_off2() (zeertzjq).

    Patch 9.1.0104
    Problem:  Linking fails with -lto because of PERL_CFLAGS (Zoltan Toth)
    Solution: Filter out -flto argument from Perl CFLAGS.

    Patch 9.1.0105
    Problem:  Style: typos found
    Solution: correct them (zeertzjq).

    Patch 9.1.0106
    Problem:  Visual highlight hard to read with 'termguicolors' (Maxim Kim)
    Solution: Set Visual GUI foreground to black (with background=light)
              and lightgrey (with background=dark) (Maxim Kim).

    Patch 9.1.0107
    Problem:  CI: Fix MacOS-14 tests (after 9.1.0070)
    Solution: Re-enable sound tests by granting Mic access, disable
              Test_diff_screen because of buggy MacOS diff (non GNU version),
              re-enable Test_term_gettitle() (Yee Cheng Chin)

    Patch 9.1.0108
    Problem:  filetype: no support for dtso files
    Solution: Add detection for *.dtso files as dts file type (Markus
              Schneider-Pargmann)

    Patch 9.1.0109
    Problem:  filetype: no support for its files
    Solution: Add detection for *.its files as dts file type (Brandon Maier)

    Patch 9.1.0110
    Problem:  No support for Config.in filetype
    Solution: filetype: add 'Config.in' filetype detection

    Patch 9.1.0111
    Problem:  filetype: no support for bats files
    Solution: Add .bats filetype support

    Patch 9.1.0112
    Problem:  When the quickfix buffer has been modified an autocommand may
              invalidate the undo stack (kawarimidoll)
    Solution: When clearing the quickfix buffer, also wipe the undo stack

    Patch 9.1.0113
    Problem:  duplicate code when cleaning undo stack
    Solution: refactor undo cleanup into a single public function

    Patch 9.1.0114
    Problem:  Setting some options changes curswant unnecessarily.
    Solution: Add a P_HLONLY flag that prevents changing curswant (zeertzjq).

    Patch 9.1.0115
    Problem:  Using freed memory with full tag stack and user data
              (Konstantin Khlebnikov)
    Solution: Clear the user data pointer of the newest entry (zeertzjq,
              Konstantin Khlebnikov).

    Patch 9.1.0116
    Problem:  win_split_ins has no check for E36 when moving an existing
              window
    Solution: check for room and fix the issues in f_win_splitmove()
              (Sean Dewar)

    Patch 9.1.0117
    Problem:  win_splitmove fires WinNewPre and possibly WinNew when moving
               windows, even though no new windows are created.
    Solution: Don't fire WinNew and WinNewPre when inserting an existing window,
              even if it isn't the current window. Improve the accuracy of related
              documentation. (Sean Dewar)

    Patch 9.1.0118
    Problem:  saving and restoring all frames to split-move is overkill now
              that WinNewPre is not fired when split-moving.
    Solution: defer the flattening of frames until win_split_ins begins
              reorganising them, and attempt to restore the layout by undoing our
              changes. (Sean Dewar)

    Patch 9.1.0119
    Problem:  can switch windows while textlocked via f_win_gotoid and
              f_win_splitmove (which also allows switching in the cmdwin).
    Solution: Check text_or_buf_locked in f_win_splitmove() (Sean Dewar)

    Patch 9.1.0120
    Problem:  hard to get visual region using Vim script
    Solution: Add getregion() Vim script function (Shougo Matsushita, Jakub
              Łuczyński)

    Patch 9.1.0121
    Problem:  infinite loop in win_update with 'smoothscroll' set when
              window width is equal to textoff, or signed integer overflow
              if smaller.
    Solution: Don't revalidate wp->w_skipcol in that case, as no buffer text
              is being shown. (Sean Dewar)

    Patch 9.1.0122
    Problem:  Some minor issues with the getregion() function
    Solution: Fix examples in the help, use OP_NOP op_type and MBLOCK
              as motion_type in f_getreg(), update vim syntax to for getregion()
              (Maxim Kim)

    Patch 9.1.0123
    Problem:  MS-Windows: system() may deadlock when calling binaries that
              expect stdin
    Solution: Ignore the SHELL_EXPAND flag (GuyBrush)

    Patch 9.1.0124
    Problem:  Virtual text with text_align 'right'/'below' wasn't being used when
              a non-virtual text property overlaps with the end of the line. This
              was because the non-virtual text property had a higher priority,
              preventing the virtual text from being used.
    Solution: Fix the sorting of text properties so virtual text properties have a
              higher priority than non-virtual text properties (Dylan
              Thacker-Smith).

    Patch 9.1.0125
    Problem:  unused init of text_prop_idxs in win_line
    Solution: Remove it, fix typo (Dylan Thacker-Smith).

    Patch 9.1.0126
    Problem:  Internal error when passing mark in another buffer to getregion().
    Solution: Don't allow marks in another buffer (zeertzjq)

    Patch 9.1.0127
    Problem:  Naming a non-pointer variable "oap" is strange.
    Solution: Rename it to "oa". Also prevent using freed memory in case of memory
              allocation failure (zeertzjq).

    Patch 9.1.0128
    Problem:  win_gotoid() checks for textlock and other things when switching
              to a window that is already current (after v9.1.0119)
    Solution: return early with success when attempting to switch to curwin
              (Sean Dewar)

    Patch 9.1.0129
    Problem:  Virtual text with text_wrap 'wrap' was effectively being truncated
              by a break conditional on the EOL list character being added to the
              screen line. (BigPeet)
    Solution: Remove the condition that was leading to the early break and instead
              fix a similar but incorrectly written outer condition that checks if
              there is more to add at the end of the screen line. (Dylan
              Thacker-Smith)

    Patch 9.1.0130
    Problem:  heap-use-after-free in win_splitmove if Enter/Leave autocommands
              from win_split_ins immediately closes "wp".
    Solution: check that "wp" is valid after win_split_ins (Sean Dewar).

    Patch 9.1.0131
    Problem:  buffer-completion code too complicated and does not always find all
              matches (irisjae)
    Solution: do not try to anchor pattern to beginning of line or
              directory-separator, always return all matches

    Patch 9.1.0132
    Problem:  using "C" and 've=all' set, doesn't include composing chars when
              changing a line, keeps the composing chars for whatever is typed
              afterwards.
    Solution: Use mb_head_off() and mb_ptr2len() instead of mb_tail_off().
              (zeertzjq)

    Patch 9.1.0133
    Problem:  font ligatures don't render correctly in the Win32 GUI-version of
              gvim even when set rop=type:directx is used. Setting guiligatures
              also doesn't make any difference. This leads to broken font
              ligatures when the cursor passes through them. It does not recover
              from this, and they remain broken until you re-render the whole
              buffer (e.g. by using Ctrl+L).
    Solution: The problem is that we only re-draw the current and previous
              character in gui_undraw_cursor() and only have the special case for
              GTK when it comes to rendering ligatures. So let's enable
              gui_adjust_undraw_cursor_for_ligatures() to also happen for Win32
              GUI if guiligatures is setup correctly (all this does is expand the
              range of gui_undraw_cursor() with ligature characters).

    Patch 9.1.0134
    Problem:  Test_term_gettitle() is flaky on MacOS 14 and Github runners
    Solution: Skip the test on Github CI

    Patch 9.1.0135
    Problem:  Insufficient testing for 'delcombine'.
    Solution: Add test for both Normal and Insert modes without Arabic (zeertzjq).

    Patch 9.1.0136
    Problem:  Vim9: need more test for exists()
    Solution: Add test for exists() with class/objct variables and methods
              (Yegappan Lakshmanan)

    Patch 9.1.0137
    Problem:  <Del> in cmdline mode doesn't delete composing chars
    Solution: Use mb_head_off() and mb_ptr2len() (zeertzjq).

    Patch 9.1.0138
    Problem:  too many STRLEN calls when getting a memline
    Solution: Optimize calls to STRLEN(), add a few functions in memline.c
              that return the byte length instead of relying on STRLEN() (John
              Marriott).

    Patch 9.1.0139
    Problem:  MS-Windows: ligatures map cleared on startup
    Solution: Don't clear the ligatures_map, if the guiligatures option has
              already been set (Erik S. V. Jansson)

    Patch 9.1.0140
    Problem:  The cursor screen row was incorrectly being calculated when the
              cursor follows a 1 character text_align 'below' virtual text line,
              resulting in the cursor being shown on the wrong line. This was
              caused by a cell size of 2 instead of 1 being used for the EOL
              character, which propagated to the calculation of space for putting
              the 'below' virtual text on its own line. (rickhowe)
    Solution: Fix the size used for the EOL character in calculating the cursor's
              screen position (Dylan Thacker-Smith).

    Patch 9.1.0141
    Problem:  Put in Visual mode wrong if it replaces fold marker.
    Solution: Temporarily disable folding during put in Visual mode (zeertzjq).

    Patch 9.1.0142
    Problem:  getregion() can be improved (after v9.1.120)
    Solution: change getregion() implementation to use pos as lists and one
              optional {opt} dictionary (Shougo Matsushita)

    Patch 9.1.0143
    Problem:  [security]: autocmd cause use-after-free in set_curbuf()
              (kawarimidoll)
    Solution: check side-effect of BufLeave autocommand, when the number
              of windows changed, close windows containing buffers that will
              be wiped, if curbuf changed unexpectedly make sure b_nwindows
              is decremented otherwise it cannot be wiped

    Patch 9.1.0144
    Problem:  getregion() needs more tests
    Solution: Run the getregion() test in both the legacy and Vim9 contexts
              (Yegappan Lakshmanan)

    Patch 9.1.0145
    Problem:  the amount of available space (v:echospace) on the command line is
              not correct when showcmdloc is drawn into the statusline or tabline.
    Solution: only add SHOWCMD_COLS to the shown command column when 'showcmdloc'
              is set to last (Sam-programs)

    Patch 9.1.0146
    Problem:  v:echospace wrong after setting invalid value to 'showcmdloc'.
    Solution: Only call comp_col() if value is valid (zeertzjq).

    Patch 9.1.0147
    Problem:  Cannot keep a buffer focused in a window (Amit Levy)
    Solution: Add the 'winfixbuf' window-local option (Colin Kennedy).

    Patch 9.1.0148
    Problem:  Vim9: can't call internal methods with objects
    Solution: Add support for empty(), len() and string() function calls for
              objects (Yegappan Lakshmanan)

    Patch 9.1.0149
    Problem:  qf_goto_win_with_qfl_file may check if prevwin has 'winfixbuf'
              set without checking if it's valid first.
    Solution: Reverse the condition. Add a test, a modeline, and a missing
              CheckFeature. (Searn Dewar)

    Patch 9.1.0150
    Problem:  several minor 'winfixbuf' issues exist, mostly relating to the
              quickfix list
    Solution: address them and adjust tests. Retab and reflow a few things too.
              (Sean Dewar)

    Patch 9.1.0151
    Problem:  ml_get_buf_len() does not consider text properties (zeertzj)
    Solution: Store text length excluding text properties length
              in addition in the memline

    Patch 9.1.0152
    Problem:  Coverity complains about ignoring return value of win_split()
              (after v9.1.150)
    Solution: Check if win_split() failed, add winfixbuf.res to Makefile

    Patch 9.1.0153
    Problem:  Text properties corrupted with fo+=aw and backspace
    Solution: Allocate line and move text properties (zeertzjq).

    Patch 9.1.0154
    Problem:  shm=F not respected when reloading buffer with 'autoread'
    Solution: Check SHM_FILEINFO in buf_check_timestamp() (Shougo Matsushita).

    Patch 9.1.0155
    Problem:  can only call getregion() for current buffer
    Solution: Allow to retrieve selections from different buffers (Shougo
              Matsushita).

    Patch 9.1.0156
    Problem:  may not be clear why failing to split causes an ":Xdo" command to
              abort if 'wfb' is set.
    Solution: Do not return immediately if win_split fails, so E1513 is still
              given. Expect both errors in the test. Also fix tests to pass CI
              (Sean Dewar).

    Patch 9.1.0157
    Problem:  Duplicate assignment in f_getregion().
    Solution: Remove the duplicate assignment.  Also improve getregion() docs
              wording and fix an unrelated typo (zeertzjq).

    Patch 9.1.0158
    Problem:  'shortmess' "F" flag doesn't work properly with 'autoread'
              (after 9.1.0154)
    Solution: Hide the file info message instead of the warning dialog
              (zeertzjq)

    Patch 9.1.0159
    Problem:  Crash in WinClosed after BufUnload closes other windows
    Solution: Don't trigger WinClosed if the buffer is NULL (zeertzjq).

    Patch 9.1.0160
    Problem:  Add support for using a class type of itself in an object method
              (thinca)
    Solution: Vim9: Add support for using a class type of itself in an
              object method (Yegappan Lakshmanan)

    Patch 9.1.0161
    Problem:  expand() removes a slash after an environment variable that ends
              with a colon on Windows.
    Solution: Check the correct char for a colon (zeertzjq)

    Patch 9.1.0162
    Problem:  Problem with writing extended attributes on failure
    Solution: Change return type to ssize_t and check listxattr's return
              value correctly on failure (Paul Tagliamonte)

    Patch 9.1.0163
    Problem:  Calling STRLEN() to compute ml_line_textlen when not needed.
    Solution: Use 0 when STRLEN() will be required and call STRLEN() later.
              (zeertzjq)

    Patch 9.1.0164
    Problem:  Internal error or crash when passing invalid position to
              getregion().
    Solution: Give an error for invalid position (zeertzjq).

    Patch 9.1.0165
    Problem:  Vim9: Importing an autoload imported script fails
              (Song-Tianxiang)
    Solution: Return the script ID in this case (Yegappan Lakshmanan).

    Patch 9.1.0166
    Problem:  Internal error with blockwise getregion() in another buffer
    Solution: Also change curwin->w_buffer when changing curbuf (zeertzjq).

    Patch 9.1.0167
    Problem:  Changing buffer in another window using win_execute() causes
              it to show matchparen (after 9.0.0969).
    Solution: Delay highlighting with SafeState in BufWinEnter (zeertzjq).

    Patch 9.1.0168
    Problem:  too many STRLEN() calls
    Solution: Make use of ml_get_len() calls instead (John Marriott).

    Patch 9.1.0169
    Problem:  current window number returned by tabpagewinnr may be outdated when
              called from win_execute for the original tabpage.
    Solution: update the original tabpage's tp_curwin in switch_win; use
              {un}use_tabpage instead. Don't do it in restore_win to ensure
              tp_curwin of the temporarily visited tabpage is unchanged from
              switch_win visiting it, as before. (Sean Dewar)

    Patch 9.1.0170
    Problem:  more places exist where curwin == prevwin, and it may even be
              expected in some cases.
    Solution: revert v9.1.0001, but document that it's possible instead.
              (Sean Dewar)

    Patch 9.1.0171
    Problem:  small improvements can be made to split-move related functions.
    Solution: apply them (Sean Dewar):

    Patch 9.1.0172
    Problem:  More code can use ml_get_buf_len() instead of STRLEN().
    Solution: Change more STRLEN() calls to ml_get_buf_len().  Also do not
              set ml_line_textlen in ml_replace_len() if "has_props" is set,
              because "len_arg" also includes the size of text properties in
              that case (zeertzjq).

    Patch 9.1.0173
    Problem:  msgfmt ver. 0.22 forcibly converts text to UTF-8
    Solution: use '--no-convert' if msgfmt supports it. Add a configure
              check for the msgfmt version (RestorerZ).

    Patch 9.1.0174
    Problem:  'cursorline' and 'wincolor' highlight missing with concealed and
              wrapped lines.
    Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
            (zeertzjq)

    Patch 9.1.0175
    Problem:  winframe functions incorrectly recompute window positions if
              the altframe wasn't adjacent to the closed frame, which is
              possible if adjacent windows had 'winfix{width,height}' set.
    Solution: recompute for windows within the parent of the altframe and
              closed frame. Skip this (as before) if the altframe was
              top/left, but only if adjacent to the closed frame, as
              positions won't change in that case. Also correct the return
              value documentation for win_screenpos. (Sean Dewar)

    Patch 9.1.0176
    Problem:  Cursor column wrong with 'virtualedit' and conceal.
    Solution: Correct cursor column at end of line if never reached (zeertzjq).

    Patch 9.1.0177
    Problem:  Coverity reports dead code.
    Solution: Remove the dead code. Also fix a mistake in ml_get_pos_len()
              and update some comments (zeertzjq).

    Patch 9.1.0178
    Problem:  E1513 might be confusing (Christoph Thoma)
    Solution: Reword error message, fix test to not depend on the actual message.

    Patch 9.1.0179
    Problem:  'wincolor' highlight missing with "below" virtual text.
    Solution: Subtract n_attr_skip from n_attr.  Combine 'wincolor' with other
              highlights when 'nowrap' is set (zeertzjq).

    Patch 9.1.0180
    Problem:  Cursor pos wrong when double-width chars are concealed.
    Solution: Advance one more virtual column for a double-width char. Run some
              tests with both 'wrap' and 'nowrap' (zeertzjq).

    Patch 9.1.0181
    Problem:  no overflow check for string formatting
    Solution: Check message formatting function for overflow (Chris van Willegen).

    Patch 9.1.0182
    Problem:  Can define function with invalid name inside 'formatexpr'.
    Solution: Use goto instead of checking for did_emsg later (zeertzjq).

    Patch 9.1.0183
    Problem:  Wrong display or screenpos() result when toggling diff mode.
    Solution: Reset w_skipcol when disabling 'wrap'.  Reset w_leftcol when
              enabling 'wrap' (zeertzjq).

    Patch 9.1.0184
    Problem:  Cursor position wrong when clicking with conceal and wrap.
    Solution: Use the virtual column of the last char for ScreenCols[] in
              boguscols.  Remove use of MAXCOL in ScreenCols[].  Rename
              third argument of wlv_screen_line() to "clear_end" as that's
              clearer what it does (zeertzjq).

    Patch 9.1.0185
    Problem:  'wincolor' highlight missing with 'rightleft', "below" virtual
              text and 'nowrap'.
    Solution: Handle 'rightleft' in draw_screen_line() (zeertzjq).

    Patch 9.1.0186
    Problem:  Wrong cursor position when clicking after end of line with
              'rightleft', 'virtualedit' and conceal.
    Solution: Set values in ScreenCols[] also with SLF_RIGHTLEFT.  Also fix
              off-by-one cursor position with 'colorcolumn' (zeertzjq).

    Patch 9.1.0187
    Problem:  Dafny files are not recognized.
    Solution: Recognize *.dfy files as filetype "dafny" (zeertzjq).

    Patch 9.1.0188
    Problem:  Vento files are not recognized.
    Solution: Recognize *.vto files as filetype "vento" (wrapperup)

    Patch 9.1.0189
    Problem:  Memory leak with "above" virtual text and 'relativenumber'.
    Solution: Free "text_props" and "text_prop_idxs" before returning.
              Also fix off-by-one error causing line number to be drawn
              beyond end of window (zeertzjq).

    Patch 9.1.0190
    Problem:  complete_info() returns wrong order of items (after v9.0.2018)
    Solution: Revert Patch v9.0.2018 (Girish Palya)

    Patch 9.1.0191
    Problem:  Installer does not remove all files
    Solution: Update installer and delete all files on uninstall update Sodium
              library dependency, update Readme (RestorerZ)

    Patch 9.1.0192
    Problem:  :drop tries to :rewind the argumentlist, which results in E37
              (after v9.1.0046)
    Solution: Instead of calling ex_rewind(), call open_buffer() only when
              re-using the initial empty buffer

    Patch 9.1.0193
    Problem:  May leak memory in completion when ga_grow() fails.
    Solution: Free "wca" when ga_grow() fails (zeertzjq).

    Patch 9.1.0194
    Problem:  gcc complains about uninitialized var (Tony Mechelynck)
    Solution: Initialize to NULL

    Patch 9.1.0195
    Problem:  memleak with ex_drop(), NULL dereference (zeertzjq)
    Solution: Revert back to ex_rewind(), use curbuf instead of buf

    Patch 9.1.0196
    Problem:  filetype: support for gnuplot files is lacking
    Solution: Also detect *.gnuplot files (RobbiZ98).

    Patch 9.1.0197
    Problem:  Vim9: problem evaluating negated boolean logic (lxhillwind)
    Solution: Don't clear the first value on short circuit evaluation
              (Yegappan Lakshmanan)

    Patch 9.1.0198
    Problem:  Vim9: compound operators broken for lambdas in an object
              (girishji)
    Solution: When using an object from the outer scope, use the LOADOUTER
              instruction to load the object (Yegappan Lakshmanan).

    Patch 9.1.0199
    Problem:  Not enough tests for the slice() function.
    Solution: Test with multibyte chars, and in both Legacy and Vim9 script.
              Update docs to be clearer about how it treats composing chars
              (zeertzjq).

    Patch 9.1.0200
    Problem:  `gj`/`gk` was updating the desired cursor virtual column to
              the outer virtual text, even though the actual cursor position
              was moved to not be on the virtual text, leading the need to
              do an extra `gj`/`gk` to move past each virtual text line (rickhowe).
    Solution: Exclude the outer virtual text when getting the line length
              for moving the cursor with `gj`/`gk`, so that no extra movement is
              needed to skip over virtual text lines (Dylan Thacker-Smith).

    Patch 9.1.0201
    Problem:  `gM` would include outer virtual text and its padding when
              getting the line length used to calculate the middle of the
              line, putting the cursor much closer to virtual text lines.
    Solution: Exclude outer virtual text in getting the line length for
              `gM`, so that virtual text doesn't influence where the cursor
              is moved to (Dylan Thacker-Smith).

    Patch 9.1.0202
    Problem:  leaking memory in add_user() (LuMingYinDetect)
    Solution: Free user_copy pointer instead of the user ptr

    Patch 9.1.0203
    Problem:  build-error on GNU HURD
    Solution: Define _XOPEN_SOURCE like for Android and Cygwin
              (James McCoy)

    Patch 9.1.0204
    Problem:  Backspace inserts spaces with virtual text and 'smarttab'.
    Solution: Ignore virtual text and wrapping when backspacing (zeertzjq).

    Patch 9.1.0205
    Problem:  Cannot use modifiers before :-Ntabmove.
    Solution: Check backwards from the command instead of checking from the start
              of the command line. Slightly adjust docs to make them more
              consistent (zeertzjq).

    Patch 9.1.0206
    Problem:  unused display_text_first boolean var in win_line()
    Solution: Remove unused display_text_first boolean variable
              (Dylan Thacker-Smith)

    Patch 9.1.0207
    Problem:  No autocommand when writing session file
    Solution: Add SessionWritePost autocommand (Colin Kennedy).

    Patch 9.1.0208
    Problem:  winfixbuf does not allow to re-edit current buffer
              (Tim Pope, after v9.1.0147)
    Solution: Explicitly allow :e even when 'winfixbuf' is set,
              since it just re-loads the current buffer (Colin Kennedy).

    Patch 9.1.0209
    Problem:  leaking memory in exe_newdict() on error (LuMingYinDetect)
    Solution: free allocated dict if GA_GROW_FALIS()

    Patch 9.1.0210
    Problem:  Motif: leaking memory when mui_mch_dialog() fails (LuMingYinDetect)
    Solution: When allocating the label using the XmStringCreateLtoR()
              function fails, before returning also free the allocated
              buttons pointer.

    Patch 9.1.0211
    Problem:  Page-wise scrolling with Ctrl-F/Ctrl-B implements it's own logic to
              change the topline and cursor. In doing so, skipcol is not handled
              properly for 'smoothscroll', and virtual lines.
    Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying backward
              compatible as much as possible.

    Patch 9.1.0212
    Problem:  CI: MS-Windows fails in test_winfixbuf (after v9.1.208)
    Solution: Skip Ms-Windows for now, fix style

    Patch 9.1.0213
    Problem:  CI: MS-Windows fails in test_winfixbuf (after v9.1.208)
    Solution: Instead of skipping the test, write the file so it exists on disk,
              to verify that MS-Windows short filename expansion is successful.
              (Sean Dewar)

    Patch 9.1.0214
    Problem:  Duplicate condition in win_lbr_chartabsize().
    Solution: Remove the duplicate condition, as it's already checked above.
              (zeertzjq)

    Patch 9.1.0215
    Problem:  Page-wise scrolling with Ctrl-D/Ctrl-U implements
              it's own logic to change the topline and cursor.
              More logic than necessary for scrolling with Ctrl-F/Ctrl-B
              was removed in Patch 9.1.0211.
    Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while
              staying backward compatible as much as possible.
              Restore some of the logic that determined how many lines will
              be scrolled (Luuk van Baal)

    Patch 9.1.0216
    Problem:  Error on exit with EXITFREE and 'winfixbuf'.
    Solution: Handle DT_FREE before checking for 'winfixbuf' (zeertzjq).

    Patch 9.1.0217
    Problem:  regexp: verymagic cannot match before/after a mark
    Solution: Correctly check for the very magic check (Julio B)

    Patch 9.1.0218
    Problem:  Unnecessary multiplications in backspace code, as "col / ts * ts" is
              the same as "col - col % ts".
    Solution: Change "col / ts * ts" to "col - col % ts".  Adjust the loop
              and the comments ins_bs() to be easier to understand.  Update
              tests to reset 'smarttab' properly (zeertzjq).

    Patch 9.1.0219
    Problem:  No enum support
    Solution: Implement enums for Vim9 script (Yegappan Lakshmanan)

    Patch 9.1.0220
    Problem:  Typos in code and tests.
    Solution: Fix typos (zeertzjq).

    Patch 9.1.0221
    Problem:  The if branch to set `text_prop_follows` was both checking if
              it was at the end of the buffer text line or if it was at the
              end of the screen line, but the former being true skipped
              a guard condition in the latter to only consider 'below'
              virtual text to follow. `text_prop_follows` being improperly
              set caused it to skip a conditional block to break at the end
              as well as one to move `ptr` to the end of the text line,
              while repeated for each following line of the window.
    Solution: Move the check for whether 'below' virtual text should follow
              so it is also used when at the end of the buffer text line.
              (Dylan Thacker-Smith)

    Patch 9.1.0222
    Problem:  When a line is truncated just before 'after'/'right' virtual
              text and the line also has 'below' virtual text, then the
              'below' virtual text would not be displayed, depending on the
              order these text properties were added.
    Solution: In the loop to make text properties active, skip instead of
              break for 'after'/'right' virtual text properties that are
              ignored due to truncation, so following 'below' text properties can
              still be made active. Similarly, a loop is needed to determine if a
              text property follows at the end of the screen. (Dylan
              Thacker-Smith)

    Patch 9.1.0223
    Problem:  There are two dense conditions with duplication that needs to
              be kept in sync between the while loop break condition and the
              condition to skip certain text properties.
    Solution: Refactor the loop by moving while loop conditions into the body of
              the while loop so they can be shared with skip conditions. `break`
              and an `active` variable are used to handle the outcome of these
              merged conditions (Dylan Thacker-Smith).

    Patch 9.1.0224
    Problem:  If a line has "right" & "below" virtual text properties, where the
              "below" property may be stored first due to lack of ordering between
              them, then the line height is calculated to be 1 more and causes the
              cursor to far over the line.
    Solution: Remove some unnecessary setting of a `next_right_goes_below = TRUE`
              flag for "below" and "above" text properties. (Dylan Thacker-Smith)

    Patch 9.1.0225
    Problem:  test_matchparen not run in CI
    Solution: add test_matchparen.res to NEW_TESTS_RES in Makefile, update changed
              highlighting dump from v9.1.61

    Patch 9.1.0226
    Problem:  Not able to assign enum values to an enum static variable
              (zzzyxwvut)
    Solution: Make it work (Yegappan Lakshmanan)

    Patch 9.1.0227
    Problem:  Recording may still be wrong in Select mode (after 8.2.3993).
    Solution: Make sure a character isn't split between two buffer blocks
              (zeertzjq).

    Patch 9.1.0228
    Problem:  Two unrelated things are tested by a single test.
    Solution: Split it into two, restoring the old Test_brace_single_line().
              Add missing cleanup to some tests (zeertzjq).

    Patch 9.1.0229
    Problem:  Error E877 is not translated (RestorerZ)
    Solution: Declare the error with N_ to mark it as translatable, add _()
              around the error message in regexp_nfa.c

    Patch 9.1.0230
    Problem:  TextChanged autocommand not triggered under some circumstances
              (Sergey Vlasov)
    Solution: Trigger TextChanged when TextChangedI has not been triggered

    Patch 9.1.0231
    Problem:  Filetype may be undetected when a SwapExists autocommand sets
              filetype in another buffer.
    Solution: Make filetype detection state buffer-specific.  Also fix a
              similar problem for 'modified' (zeertzjq).

    Patch 9.1.0232
    Problem:  Conceal test fails when rightleft feature is disabled.
    Solution: Skip test if rightleft feature is missing (Julio B).

    Patch 9.1.0233
    Problem:  Vim9: string() output of enum is problematic
    Solution: Make string() output for an enum consistent with that of a
              regular object (Yegappan Lakshmanan).

    Patch 9.1.0234
    Problem:  filetype: support for Intel HEX files is lacking
    Solution: Add more file extensions that are typical for Intel HEX files
              (Wu, Zhenyu)

    Patch 9.1.0235
    Problem:  filetype: supertux files are not recognized
    Solution: Supertux uses lisp to store hotkeys in config and game stage
              information, so add a pattern for supertux files (Wu, Zhenyu).

    Patch 9.1.0236
    Problem:  filetype: texlua files are not recognized
    Solution: Add '*.tlu' pattern for texlua files (Wu, Zhenyu)

    Patch 9.1.0237
    Problem:  filetype: mplstyle files are not recognized
    Solution: Detect '*.mplstyle' files as yaml (Wu, Zhenyu)

    Patch 9.1.0238
    Problem:  filetype: jupyterlab and sublime config are not recognized
    Solution: Detect jupyterlab and sublime config files as json (Wu, Zhenyu).

    Patch 9.1.0239
    Problem:  filetype: gnuplot history files are not recognised
    Solution: detect .gnuplot_history files as gnuplot (Wu, Zhenyu).

    Patch 9.1.0240
    Problem:  filetype: some python tools config files are not recognized
    Solution: Detect config files for setuptools, pudb, coverage as dosini
              (Wu, Zhenyu)

    Patch 9.1.0241
    Problem:  filetype: mysql history files are not recognized
    Solution: Detect .mysql_history as mysql (Wu, Zhenyu).

    Patch 9.1.0242
    Problem:  filetype: octave history files are not recognized
    Solution: Detect octave/history files as octave (Wu, Zhenyu).

    Patch 9.1.0243
    Problem:  filetype: netrw history file is not recognized
    Solution: Detect .netrwhist as vim files (Wu, Zhenyu).

    Patch 9.1.0244
    Problem:  filetype: bash history files are not recognized
    Solution: detect .bash-history and .bash_history files as bash (Wu, Zhenyu).

    Patch 9.1.0245
    Problem:  filetype: zsh theme, history and zunit files are not
              recognized.
    Solution: Detect '.zsh_history', '*.zsh-theme' and '*.zunit' as zsh
              (Wu, Zhenyu)

    Patch 9.1.0246
    Problem:  filetype: fontconfig files are not recognized
    Solution: detect 'fonts.conf' as xml (Wu, Zhenyu).

    Patch 9.1.0247
    Problem:  filetype: bundle config files are not recognized
    Solution: Detect '*/.bundle/config' as yaml (Wu, Zhenyu).

    Patch 9.1.0248
    Problem:  filetype: yarn lock files are not recognized
    Solution: Detect 'yarn.lock' files as yaml (Wu, Zhenyu).

    Patch 9.1.0249
    Problem:  filetype: rock_manifest and config.ld files are not recognized
    Solution: Detect 'rock_manifest' and 'config.ld' as lua (Wu, Zhenyu).

    Patch 9.1.0250
    Problem:  filetype: ldscripts cannot be recognized
    Solution: Detect '*/ldscripts/*' as ld (Wu, Zhenyu).

    Patch 9.1.0251
    Problem:  Filetype test fails.
    Solution: Move detection by name before detection by extension.
              Improve TextChanged test and remove wrong test and fix
              a typo in a comment (zeertzjq).

    Patch 9.1.0252
    Problem:  Vim9: segfault with static in super class (Ernie Rael)
    Solution: When initializing lhs, use the correct class where a class
              variable is defined (Yegappan Lakshmanan)

    Patch 9.1.0253
    Problem:  filetype: typespec files are not recognized
    Solution: Detect '*.tsp' files as typespec (Hilmar Wiegand)

    Patch 9.1.0254
    Problem:  [security]: Heap buffer overflow when calling complete_add()
              in the first call of 'completefunc'
    Solution: Call check_cursor() after calling 'completefunc' (zeertzjq).

    Patch 9.1.0255
    Problem:  Vim9: no indication of script nr in stack trace of classes
    Solution: Prefix the class name with the script name in the stack trace.
              (Ernie Rael)

    Patch 9.1.0256
    Problem:  Finding autocmd events is inefficient
    Solution: Use binary search to find events, cache last found events,
              avoid use of strlen(), add SessionWritePost autocmd, fix
              test_codestyle and avoid endless loop (John Marriott).

    Patch 9.1.0257
    Problem:  Vim9: :call may not find imported class members (mityu)
    Solution: Set the typval of an imported lval variable correctly
              (Yegappan Lakshmanan)

    Patch 9.1.0258
    Problem:  Support for 'smoothscroll' in (half-)page scrolling
              broke backward compatibility and can be made to work better.
              (after v9.1.215)
    Solution: Restore the previous cursor and end-of-buffer behavior for
              half-page scrolling and improve 'smoothscroll' support.
              (Luuk van Baal)

    Patch 9.1.0259
    Problem:  Normal mode TextChanged isn't tested properly.
    Solution: Combine Test_Changed_ChangedI() and Test_Changed_ChangedI_2()
              and also run it on Windows. Fix a typo in main.c (zeertzjq).

    Patch 9.1.0260
    Problem: "zb" does not reveal filler lines at the start of a buffer.
             Scrolled cursor position with 'smoothscroll' is unpredictable,
             and may reset skipcol later if it is not visible (after v9.1.258)
    Solution: Replace confusing for loop that reaches final control value too
              early with while loop. Set "w_curswant" accordingly so cursor
              will be placed in visible part of topline (Luuk van Baal).

    Patch 9.1.0261
    Problem:  Vim9: protected class and funcrefs accessible outside the class
              (Aliaksei Budavei)
    Solution: Check if class and object funcrefs are protected
              (Yegappan Lakshmanan)

    Patch 9.1.0262
    Problem:  Test for TextChanged is flaky with ASAN.
    Solution: Wait for the file to be non-empty (zeertzjq).

    Patch 9.1.0263
    Problem:  Vim9: Problem with lambda blocks in enums and classes
              (Aliaksei Budavei)
    Solution: Support evaluating lambda blocks from a string, skip over
              comments (Yegappan Lakshmanan)

    Patch 9.1.0264
    Problem:  libgpm may delete some signal handlers
    Solution: Restore these signal handlers after calling gpm (Julio B).

    Patch 9.1.0265
    Problem:  console dialog cannot save unnamed buffers
    Solution: Set bufname before save (glepnir). Define dialog_con_gui
              to test for GUI+Console dialog support, use it to skip
              the test when the GUI feature has been defined.

    Patch 9.1.0266
    Problem:  filetype: earthfile files are not recognized
    Solution: Detect 'Earthfile' as earthfile (Gaëtan Lehmann).

    Patch 9.1.0267
    Problem:  File name entered in GUI dialog is ignored (after v9.1.0265)
    Solution: Only set file name to "Untitled" if GUI dialog didn't set it.
              (zeertzjq)

    Patch 9.1.0268
    Problem:  Two tests in test_filechanged.vim are slow.
    Solution: Sleep for shorter if the +nanotime feature is available (zeertzjq).

    Patch 9.1.0269
    Problem:  Test for TextChanged is still flaky with ASAN.
    Solution: Don't index the result of readfile() (zeertzjq).

    Patch 9.1.0270
    Small fixes to a few issues:
    Problem:  Vim9: funcref pointer pt leaks, when function is not found
    Solution: Free funcref pointer in case of error (
    Problem:  memory leak of crypt state pointer allocation fails
    Solution: free crypt state pointer properly (
    Problem:  Vim9: Leaking memory when compiling dict fails
    Solution: Free the memory in case of error (
    Problem:  Coverity complains about derefencing obj_members pointer
              (after v9.1.0261)
    Solution: Verify that obj_members ptr is non-null before accessing it

    Patch 9.1.0271
    Problem:  CI sound test aborts with undefined variable
    Solution: initialize g:result in test_sound.vim

    Patch 9.1.0272
    Problem:  Autocommand may change currect directory after :tcd and :lcd.
    Solution: Also clear tp_localdir and w_localdir when using aucmd_win.
              (zeertzjq)

    Patch 9.1.0273
    Problem:  filetype: keymap files are not recognized
    Solution: Detect '*.keymap' files as Device Tree Files (0xadk).

    Patch 9.1.0274
    Problem:  MS-Windows: a few compiler warnings
    Solution: Change variable types to resolve compiler warnings (Mike Williams)

    Patch 9.1.0275
    Problem:  filetype: R history files are not recognized
    Solution: Detect '.Rhistory' files as r filetype (Wu, Zhenyu).

    Patch 9.1.0276
    Problem:  No pandoc syntax support
    Solution: Add pandoc syntax and compiler plugins (Wu, Zhenyu, Konfekt).

    Patch 9.1.0277
    Problem:  Cannot highlight the Command-line
    Solution: Add the MsgArea highlighting group (Shougo Matsushita).

    Patch 9.1.0278
    Problem:  filetype: zathurarc files not recognized
    Solution: Detect '.zathurarc' files as zathurarc filetype,
              add zathurarc filetype (Wu, Zhenyu)

    Patch 9.1.0279
    Problem:  filetype: roc files are not recognized
    Solution: Detect '*.roc' files as roc filetype,
              add a basic filetype plugin (nat-418)

    Patch 9.1.0280
    Problem:  Logic to make sure cursor is in visible part of the screen after
              scrolling the text with 'smoothscroll' is scattered, asymmetric
              and contains bugs.
    Solution: Adjust and create helper function for 'smoothscroll' cursor logic.
              (Luuk van Baal)

    Patch 9.1.0281
    Problem:  CI: fails Test_compiler_completion
    Solution: Add pandoc compiler

    Patch 9.1.0282
    Problem:  Finding highlighting attributes is inefficient
    Solution: Use binary search to find highlighting attributes and color
              names (John Marriott)

    Patch 9.1.0282
    Problem:  Wrong doc style for pandoc syntax description,
              Test_diff_eob_halfpage() may fail depending on screen size, using
              braces in highlight.c when not necessary
    Solution: Fix pandoc documentation, make sure the window for the test has 7
              lines, remove the braces.

    Patch 9.1.0284
    Problem:  make testclean is not able to delete failed screendumps.
    Solution: Remove the "failed" directory when necessary (Julio B).

    Patch 9.1.0285
    Problem:  Problems with cursor position when scrolling half a page.
    Solution: Rework the cursor logic. (Luuk van Baal)

    Patch 9.1.0286
    Problem:  Vim9: E1027 with defcompile for abstract methods with
              non-void return types, but still compiles it (zzzyxwvut)
    Solution: Don't compile abstract methods (Yegappan Lakshmanan).

    Patch 9.1.0287
    Problem:  Vim9: comment may be treated as heredoc start (Ernie Rael).
    Solution: Use skip_var_list() instead of find_name_end() (zeertzjq).

    Patch 9.1.0288
    Problem:  MS-Windows: compiler warning for size_t to int conversion
              (after  v9.1.0282)
    Solution: Use size_t instead of int in highlight_set_termgui_attr
              (Mike Williams).

    Patch 9.1.0289
    Problem:  filetype: some TeX files are not recognized
    Solution: Add more patterns for TeX files and inspect a few more files for
              being TeX files (Wu, Zhenyu).

    Patch 9.1.0290
    Problem:  filetype: xilinx files are not recognized
    Solution: Add a few xilinx specific file patterns, inspect lpr files for being
              xml/pascal (Wu, Zhenyu)

    Patch 9.1.0291
    Problem:  filetype: libreoffice config files are not recognized
    Solution: Detect Libreoffice config fils as xml/dosini (Wu, Zhenyu).

    Patch 9.1.0292
    Problem:  filetype: XDG mimeapps.list file is not recognized
    Solution: Detect mimeapps.list as dosini filetype (Wu, Zhenyu).

    Patch 9.1.0293
    Problem:  filetype: lxqt config files are not recognized
    Solution: Detect {lxqt,screengrab}/*.conf files as dosini,
              fix failing filetype test for */tex/latex/**.cfg (Wu, Zhenyu).

    Patch 9.1.0294
    Problem:  plines_m_win() does not take into account it's "limit_winheight"
              argument for filler lines below the last line of the buffer.
              (after v9.1.0280)
    Solution: Check window height when "limit_winheight" is TRUE (Luuk van Baal).

    Patch 9.1.0295
    Problem:  filetype: pip config files are not recognized
    Solution: detect pip.conf as dosini filetype (Wu, Zhenyu).

    Patch 9.1.0296
    Problem:  Regex engines do not handle case-folding well
    Solution: Correctly calculate byte length of characters to skip

    Patch 9.1.0297
    Problem:  Patch 9.1.0296 causes too many issues (Tony Mechelynck, @chdiza, CI)
    Solution: Back out the change for now

    Patch 9.1.0298
    Problem:  MS-Windows: GETTEXT_PATH hard-coded in src/po/Make_mvc.mak
    Solution: Add IFNDEF/ENDIF around the definition of GETTEXT_PATH
              (Cthulhux)

    Patch 9.1.0299
    Problem:  Vim9: return type not set for a lambda assigned to script var
              (Ernie Rael)
    Solution: Correctly determine the return type (Yegappan Lakshmanan).

    Patch 9.1.0300
    Problem:  Missing test for what Patch v9.1.0285 fixes
    Solution: Add a test for cursor movement at buffer boundaries (Luuk van Baal).

    Patch 9.1.0301
    Problem:  Vim9: heredoc start may be recognized in string.
    Solution: Don't skip to closing bracket for invalid list assignment.
              (zeertzjq)

    Patch 9.1.0302
    Problem:  filetype: blueprint files are not recognized
    Solution: Detect '*.bp' files as blueprint files, add a minimal filetype
              plugin (Bruno Belanyi)

    Patch 9.1.0303
    Problem:  filetype: some protocol buffer files not recognized
    Solution: Detect '*.textproto', '*.textpb', '*.txtpb' as pbtxt files
              (Bruno Belanyi)

    Patch 9.1.0304
    Problem:  filetype: cgdb config file is not recognized
    Solution: Detect cgdbrc files as cgdbrc filetype (Wu, Zhenyu).

    Patch 9.1.0305
    Problem:  filetype: some history files are not recognized
    Solution: Add some history patterns to filetype.vim (Wu, Zhenyu).

    Patch 9.1.0306
    Problem:  filetype: x11vnc config file is not recognized
    Solution: Detect '.x11vncrc' as conf filetype (Wu, Zhenyu).

    Patch 9.1.0307
    Problem:  filetype: texdoc config files is not recognized
    Solution: Detect 'texdoc.cnf' as conf filetype (Wu, Zhenyu).

    Patch 9.1.0308
    Problem:  configure: msgfmt hardcoded (after v9.1.0173)
    Solution: use $MSGFMT instead of msgfmt in configure script,
              regenerate the configure script (Vladimír Marek).

    Patch 9.1.0309
    Problem:  crash when 'textwidth' > MAX_INT (after vv9.1.0055)
              (Zoltan Balogh)
    Solution: limit textwidth to MAX_INT

    Patch 9.1.0310
    Problem:  Filler lines not checked properly in get_scroll_overlap().
    Solution: Add missing parentheses (zeertzjq).

    Patch 9.1.0311
    Problem:  Some config files are not recognized
    Solution: Add some patterns for chktex, ripgreprc and ctags config files.

    Patch 9.1.0312
    Problem:  heredocs are not supported for :commands (@balki)
    Solution: Add heredoc support (Yegappan Lakshmanan).

    Patch 9.1.0313
    Problem:  Crash when using heredoc with comment in command block.
    Solution: Handle a newline more like the end of the line, fix coverity
              warning (zeertzjq).

    Patch 9.1.0314
    Problem:  Vim9: Can define a class in a function (Doug Kearns)
    Solution: Give an error for a class defined in a function, slightly reword
              some public error messages (Yegappan Lakshmanan).

    Patch 9.1.0315
    Problem:  filetype: a few more dosini files are not recognized
    Solution: Detect wakatime, reply config files, flatpak, nfs config files
              and a few more python tools as dosini (or toml) (Wu, Zhenyu).

    Patch 9.1.0316
    Problem:  filetype: some sh and confini files not recognized
    Solution: Detect neofetch, '.xprofile', XDG-User-Dirs files, paru and makepkg
              config files (Wu, Zhenyu).

    Patch 9.1.0317
    Problem:  filetype: matplotlibrc files are not recognized
    Solution: Detect 'matplotlibrc' file as yaml filetype (Wu, Zhenyu).

    Patch 9.1.0318
    Problem:  filetype: translate shell config files are not recognized
    Solution: Detect 'init.trans', 'translate-shell' and '.trans' files as
              clojure (Wu, Zhenyu)

    Patch 9.1.0319
    Problem:  Using heredoc in string not tested with :execute.
    Solution: Test with both :execute and execute() (zeertzjq).

    Patch 9.1.0320
    Problem:  Wrong cursor position after using setcellwidths().
    Solution: Invalidate cursor position in addition to redrawing (zeertzjq).

    Patch 9.1.0321
    Problem:  When used terminal with XON/XOFF flow control, vim tries to
              still make CTRL-S mapping available, which results in severe
              screen corruption, especially on large redraws, and even
              spurious inputs (John Tsiombikas)
    Solution: Disallow CTRL-S mapping if such terminal is recognized.
              Don't remove IXON from the bitmask inversion (Anton Sharonov).

    Patch 9.1.0322
    Problem:  filetype: some mail tools not recognized
    Solution: Detect '.mbsncrc' as conf, '.msmtprc' as msmtp and '.notmuch-config'
              as ini filetype (Shane-XB-Qian)

    Patch 9.1.0323
    Problem:  filetype: cabal config files may not be recognized
    Solution: Change filetype pattern to '*/{,.}cabal/config' (Wu Zhenyu).

    Patch 9.1.0324
    Problem:  filetype: some json files are not recognized
    Solution: Detect '.jscsrc' and '.vsconfig' as jsonc filetype (Wu, Zhenyu).

    Patch 9.1.0325
    Problem:  filetype: CMakeCache.txt files not recognized
    Solution: Detect 'CMakeCache.txt' files as cmakecache filetype, include basic
              syntax script for cmakecache (Wu, Zhenyu, @bfrg)

    Patch 9.1.0326
    Problem:  filetype: some requirements files are not recognized
    Solution: Detect '*-requirements.txt', 'constraints.txt', 'requirements.in',
              'requirements/*.txt' and 'requires/*.txt' as requirements filetype,
              include pip compiler, include requirements filetype and syntax
              plugin (Wu, Zhenyu, @raimon49).

    Patch 9.1.0327
    Problem:  No support for using $XDG_CONFIG_HOME
    Solution: optionally source $XDG_CONFIG_HOME/vim/vimrc (Luca Saccarola).

    Patch 9.1.0328
    Problem:  CI fails with t_?? test
    Solution: use assert_match instead of assert_equal and test only until t_xo,
              depending on system there may be several more termcap codes coming

    Patch 9.1.0329
    Problem:  String interpolation fails for Dict type
    Solution: Support Dict data type properly, also support :put =Dict
              (without having to convert it to string() first)
              (Yegappan Lakshmanan).

    Patch 9.1.0330
    Problem:  v9.1.0327 contains an unrelated change
    Solution: Revert back $USR_VIMRC_FILE to $HOME instead of

    Patch 9.1.0331
    Problem:  make install does not install all files (Nick Jensen)
    Solution: Adjust the Makefile rule to install and uninstall cargo and
              rust directories (Matt Hammerly)

    Patch 9.1.0332
    Problem:  tests: some assert_equal() calls have wrong order of args
    Solution: Correct the order (zeertzjq).

    Patch 9.1.0333
    Problem:  tests: test_xdg fails on the appimage repo
    Solution: compare only the last 30 right characters of $MYVIMRC

    Patch 9.1.0334
    Problem:  No test for highlight behavior with 'ambiwidth'.
    Solution: Add a screendump test for 'ambiwidth' with 'cursorline'.
              (zeertzjq)

    Patch 9.1.0335
    Problem:  String interpolation fails for List type
    Solution: use implicit string(list) for string interpolation and :put =
              (Yegappan Lakshmanan)

    Patch 9.1.0336
    Problem:  tests: typo in test_xdg
    Solution: fix typo (Diego Viola)

    Patch 9.1.0337
    Problem:  Missing entry for XDG vimrc file in :version
    Solution: Add 4th user vimrc entry to :version output (Diego Viola)

    Patch 9.1.0338
    Problem:  Vim9: import through symlinks not correctly handled
    Solution: Check for script being a symlink but only once (Ernie Rael)

    Patch 9.1.0339
    Problem:  tests: xdg test uses screen dumps
    Solution: Convert screen dump to normal test (Yegappan Lakshmanan)

    Patch 9.1.0340
    Problem:  Error with matchaddpos() and empty list (@rickhow)
    Solution: Return early for an empty list

    Patch 9.1.0341
    Problem:  a few memory leaks are found (LuMingYinDetect)
    Solution: properly free the memory

    Patch 9.1.0342
    Problem:  tests: test_taglist fails when 'helplang' contains non-english
    Solution: Allow 1 or 2 tagfiles for now (Julio B)

    Patch 9.1.0343
    Problem:  'showcmd' is wrong for partial mapping with multibyte char,
              and isn't very readable with modifyOtherKeys.
    Solution: Decode multibyte char and merge modifiers into the char.
              (zeertzjq)

    Patch 9.1.0344
    Problem:  Cursor wrong after using setcellwidth() in terminal (mikoto2000)
    Solution: output additional spaces, so the behaviour matches the GUI
              (mikoto2000)

    Patch 9.1.0345
    Problem:  gvimrc not sourced from XDG_CONFIG_HOME (after v9.1.0327)
    Solution: Also try to source from ~/.config/vim/gvimrc and
              $XDG_CONFIG_HOME/vim/gvimrc (Maxim Kim)

    Patch 9.1.0346
    Problem:  Patch v9.1.0338 fixed sourcing a script with import
    Solution: Add test `import './file.vim' and verify it works with `:source`
              so it does not regress (Ernie Rael)

    Patch 9.1.0347
    Problem:  A few typos in test_xdg when testing gvimrc
    Solution: Fix them (Diego Viola)

    Patch 9.1.0348
    Problem:  X11 does not ignore smooth scroll event (laniakea64)
    Solution: Correctly ignore unwanted smooth scroll events on X11 (lilydjwg)

    Patch 9.1.0349
    Problem:  Vim9: need static type for typealias
    Solution: Refactor the typval2type() function and add a static type for
              typealias (Yegappan Lakshmanan)

    Patch 9.1.0350
    Problem:  tests: test_vim9_dissamble may fail
    Solution: Instead of hard-coding the lambda number, accept just any number
              (Julio B)

    Patch 9.1.0351
    Problem:  No test that completing a partial mapping clears 'showcmd'.
    Solution: Complete partial mappings in Test_showcmd_part_map() instead
              of using :echo.  Adjust some comments (zeertzjq).

    Patch 9.1.0352
    Problem:  Finding cmd modifiers and cmdline-specials is inefficient
    Solution: Use binary search to find ex command modifiers and
              cmdline-special characters and reduce the number of strlen()
              (John Marriott)

    Patch 9.1.0353
    Problem:  tests: Test_autoload_import_relative_compiled fails on Windows
    Solution: Disable on Windows for now, add missing :bw for clean-up (Ernie Rael)

    Patch 9.1.0354
    Problem:  runtime(uci): No support for uci file types (Wu, Zhenyu)
    Solution: include basic uci ftplugin and syntax plugins (Colin Caine)

    Patch 9.1.0355
    Problem:  filetype: flake.lock files are not recognized
    Solution: Detect 'flake.lock' as json filetype (Riley Bruins)

    Patch 9.1.0356
    Problem:  MS-Windows: --remote may change working directory when
              'shellslash' is set
    Solution: normalize directory separators on MS-Windows

    Patch 9.1.0357
    Problem:  Page scrolling does not always place the cursor at the top or
              bottom of the window (Mathias Rav)
    Solution: Place the cursor at the top or bottom of the window (Luuk van Baal)

    Patch 9.1.0358
    Problem:  wrong drawing in GUI with setcellwidth() (after v9.1.0344)
    Solution: move gui.in_use condition (h-east).

    Patch 9.1.0359
    Problem:  MS-Windows: Relative import in a script sourced from a buffer
              doesn't work (Ernie Rael)
    Solution: Set a filename, so that we are not trying to use
              script-relative filename (Yegappan Lakshmanan)

    Patch 9.1.0360
    Problem:  Vim9: does not handle autoloaded variables well
    Solution: Better handle script-level exported variable references from
              autoload files (Ernie Rael).

    Patch 9.1.0361
    Problem:  Vim9: vim9type.c is too complicated
    Solution: Refactor a few functions in vim9type.c (Yegappan Lakshmanan)

    Patch 9.1.0362
    Problem:  expanding rc config files does not work well
              (Michał Sieroń, after v9.1.0327)
    Solution: initialize chartab option, required to expand
              evironment variables

    Patch 9.1.0363
    Problem:  tests: test_winfixbuf is a bit slow
    Solution: use defer if possible, reset hidden option, use --not-a-term
              when starting Vim using system() (Yegappan Lakshmanan)

    Patch 9.1.0364
    Problem:  tests: test_vim9_builtin is a bit slow
    Solution: source tests from a buffer instead of writing and sourcing a file
              (Yegappan Lakshmanan)

    Patch 9.1.0365
    Problem:  Crash when typing many keys with D- modifier (after 9.1.0227).
    Solution: Don't treat a 0x80 byte inside a special sequence as the start
              of a special sequence (zeertzjq).

    Patch 9.1.0366
    Problem:  filetype: ondir files are not recognized
    Solution: Detect '.ondirrc' as ondir filetype (Jon Parise)

    Patch 9.1.0367
    Problem:  compile_def_function is too long
    Solution: Move out the code to compile the body of a function
              (Yegappan Lakshmanan)

    Patch 9.1.0368
    Problem:  MS-Windows: Hard to define the Vim Patchlevel with leading
              zeroes for the installer
    Solution: re-define VIM_VERSION_PatchLEVEL_STR with leading zeroes,
              interpret Patchlevel as decimal in Make_mvc.mak (RestorerZ)

    Patch 9.1.0369
    Problem:  Vim9: problem when importing autoloaded scripts
    Solution: In `:def` handle storing to vim9 autoload export (Ernie Rael)

    Patch 9.1.0370
    Problem:  MS-Windows: Patch number is zero in installer (jonathan-b-wiebe)
    Solution: Set VIM_VERSION_PatchLEVEL, fix a few typos in the installer
              (RestorerZ)

    Patch 9.1.0371
    Problem:  Vim9: compile_def_function() still too long
    Solution: Refactor the code into separate functions (Yegappan Lakshmanan).

    Patch 9.1.0372
    Problem:  Calling CLEAR_FIELD() on the same struct twice.
    Solution: Remove the second CLEAR_FIELD().  Move the assignment of
              cookie.sourceing_lnum (zeertzjq).

    Patch 9.1.0373
    Problem:  ops.c code uses too many strlen() calls
    Solution: Refactor code and remove more strlen() calls (John Marriott).

    Patch 9.1.0374
    Problem:  When :edit an existing buffer, line('w$') may return a wrong result.
    Solution: Reset w_valid in curwin_init() (Jaehwang Jung)

    Patch 9.1.0375
    Problem:  tests: 1-second delay after Test_BufEnter_botline()
              (after v9.1.0374)
    Solution: Wipe the created buffers (zeertzjq).

    Patch 9.1.0376
    Problem:  Vim9: Trailing commands after class/enum keywords ignored
    Solution: Remove EX_TRLBAR keyword from command definition
              (Yegappan Lakshmanan)

    Patch 9.1.0377
    Problem:  formatting text wrong when 'breakindent' is set (Gary Johnson)
    Solution: Temporarily disable 'breakindent' option when formatting text, so
              that the breakindent is not wrongly taken into account for the line
              length

    Patch 9.1.0378
    Problem:  Vim9: no comments allowed after class vars
              (Christian Robinson, after 9.1.376)
    Solution: Allow trailing comments after class vars (Yegappan Lakshmanan).

    Patch 9.1.0379
    Problem:  There are a few typos
    Solution: Fix them (zeertzjq).

    Patch 9.1.0380
    Problem:  Calculating line height for unnecessary amount of lines with
              half-page scrolling (zhscn, after 9.1.0280)
    Solution: Replace "limit_winheight" argument with higher resolution
              "max" argument to which to limit the calculated line height
              in plines_m_win() to (Luuk van Baal).

    Patch 9.1.0381
    Problem:  cbuffer and similar quickfix and locationlist commands don't
              accept a range, even so it is documented they should
              (ilan-schemoul, after 8.1.1241)
    Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER

    Patch 9.1.0382
    Problem:  Kbuild files are not recognized.
    Solution: Detect Kbuild files as make files (Bruno Belanyi).

    Patch 9.1.0383
    Problem:  filetype: .out files recognized as tex files
    Solution: Do not set an explicit filetype until it is clear what this
              should be (shane.xb.qian)

    Patch 9.1.0384
    Problem:  tests: vt420 terminfo entry may not be found (Shane-XB-Qian)
    Solution: check existence of terminfo vt420 and infocmp command

    Patch 9.1.0385
    Problem:  Vim9: crash with null_class and null_object (Aliaksei Budavei)
    Solution: Handle null_class and null_object correctly (Yegappan Lakshmanan).

    Patch 9.1.0386
    Problem:  filetype: stylus files not recognized
    Solution: Detect '*.styl' and '*.stylus' as stylus filetype,
              include indent, filetype and syntax plugin (Philip H)

    Patch 9.1.0387
    Problem:  Vim9: null value tests not sufficient
    Solution: Add a more comprehensive test for null values (Yegappan Lakshmanan).

    Patch 9.1.0388
    Problem:  cursor() and getregion() don't handle v:maxcol well.
    Solution: Add special handling for v:maxcol like setpos() does (zeertzjq).

    Patch 9.1.0389
    Problem:  filetype: templ files are not recognized
    Solution: Detect '*.templ' files as filetype templ (Tristan Knight).

    Patch 9.1.0390
    Problem:  filetype: inko files are not recognized
    Solution: Detect '*.inko' as ink filetype (Yorick Peterse).

    Patch 9.1.0391
    Problem:  Vim9: could improve testing (Ernie Rael)
    Solution: Support defcompile for test_override() to improve testing
              (Yegappan Lakshmanan)

    Patch 9.1.0392
    Problem:  tests: Vim9 debug tests may be flaky (Shane-XB-Qian)
    Solution: Give a few more lines so that line-wrapping won't
              cause a hit-enter prompt

    Patch 9.1.0393
    Problem:  'viewdir' not respecting $XDG_CONFIG_HOME (Danilo Rezende,
              after v9.1.327)
    Solution: adjust 'viewdir' option when enabling XDG config mode

    Patch 9.1.0394
    Problem:  Cannot get a list of positions describing a region
              (Justin M. Keyes, after v9.1.0120)
    Solution: Add the getregionpos() function (Shougo Matsushita)

    Patch 9.1.0395
    Problem:  regionpos may leak memory on error, coverity
              complains about dereferencing Null pointer
    Solution: free all list pointers (after v9.1.394),
              return early if buflist_findnr() returns NULL

    Patch 9.1.0396
    Problem:  jj files are not recognized
    Solution: recognize '*.jjdescription' files as jj filetype (Gregory Anders)

    Patch 9.1.0397
    Problem:  Wrong display with 'smoothscroll' when changing quickfix list.
    Solution: Reset w_skipcol when replacing quickfix list (zeertzjq).

    Patch 9.1.0398
    Problem:  Vim9: imported vars are not properly type checked
    Solution: Check the imported variable type properly (Yegappan Lakshmanan).

    Patch 9.1.0399
    Problem:  block_editing errors out when using del (@Jamarley)
    Solution: Change ins_len from size_t to int and properly check that it doesn't
              become negative

    Patch 9.1.0400
    Problem:  Vim9: confusing error message for unknown type (Doug Kearns)
    Solution: For an unknown type, display only the type name in the error
              message (Yegappan Lakshmanan).

    Patch 9.1.0401
    Problem:  filetype: zsh module files are not recognized
    Solution: Detect '*.mdh' and '*.epro' as C filetype, '*.mdd' as zsh
              filetype, determine zsh-modules '*.pro' from from it's content
              (Wu, Zhenyu)

    Patch 9.1.0402
    Problem:  filetype: mdd files detected as zsh filetype
    Solution: detect '*.mdd' files as sh filetype, add links to reference
              documentation (Wu, Zhenyu)

    Patch 9.1.0403
    Problem:  Vim9: not able to import file from start dir (Danielle McLean)
    Solution: Allow to import from start directory (Yegappan Lakshmanan).

    Patch 9.1.0404
    Problem:  [security] xxd: buffer-overflow with specific flags
    Solution: Correctly calculate the required buffer space (Lennard Hofmann).

    Patch 9.1.0405
    Problem:  tests: xxd buffer overflow fails on 32-bit
    Solution: Skip test on 32-bit architecture

    Patch 9.1.0406
    Problem:  Divide by zero with getmousepos() and 'smoothscroll'.
    Solution: Don't compute skip_lines when width1 is zero (zeertzjq).

    Patch 9.1.0407
    Problem:  No scrolling happens with half-page scrolling with line
              filling entire window when 'smoothscroll' is disabled.
              (Mathias Rav, after v9.1.0285)
    Solution: Adjust amount to move cursor by so that it is moved the same
              number of lines as was scrolled, even when scrolling different
              number of lines than requested with 'nosmoothscroll'.

    Patch 9.1.0408
    Problem:  configure fails on Fedora when including perl (chesheer-smile)
    Solution: Filter out -spec=<path> from $LIBS and $LDFLAGS to avoid
              linking relocation errors for unrelated autoconf tests.

    Patch 9.1.0409
    Problem:  too many strlen() calls in the regexp engine
    Solution: refactor code to retrieve strlen differently, make use
              of bsearch() for getting the character class (John Marriott).

    Patch 9.1.0410
    Problem:  warning about uninitialized variable (Tony Mechelynck, after
              v9.1.0409)
    Solution: initialize variable (John Marriott)

    Patch 9.1.0411
    Problem:  too long functions in eval.c
    Solution: refactor functions (Yegappan Lakshmanan)

    Patch 9.1.0412
    Problem:  typo in regexp_bt.c in DEBUG code, causing compile error (@kfleong7,
              after v9.1.0409)
    Solution: Replace bulen by buflen

    Patch 9.1.0413
    Problem:  smoothscroll may cause infinite loop, with very narrow windows
              (Jaehwang Jung, after v9.1.0280)
    Solution: Check for width1 being negative, verify that win_linetabsize does
              not overflow

    Patch 9.1.0414
    Problem:  Unable to leave long line with 'smoothscroll' and 'scrolloff'.
              Corrupted screen near the end of a long line with 'scrolloff'.
              (Ernie Rael, after 9.1.0280)
    Solution: Only correct cursor in case scroll_cursor_bot() was not itself
              called to make the cursor visible. Avoid adjusting for
              'scrolloff' beyond the text line height (Luuk van Baal)

    Patch 9.1.0415
    Problem:  Some functions are not tested
    Solution: Add a few more tests, fix a few minor problems (Yegappan Lakshmanan)

    Patch 9.1.0416
    Problem:  some screen dump tests can be improved (after 9.1.0414)
    Solution: Make sure screen state changes properly and is captured in the
              screen dumps (Luuk van Baal)

    Patch 9.1.0417
    Problem:  if_py: find_module has been removed in Python 3.12.0a7 (@Ghost-LZW)
    Solution: Do not include find_module for Python >= 3.12.0a7

    Patch 9.1.0418
    Problem:  Cannot move to previous/next rare word (Colin Kennedy)
    Solution: Add the ]r and [r motions (Christ van Willegen)

    Patch 9.1.0419
    Problem:  eval.c not sufficiently tested
    Solution: Add a few more additional tests for eval.c (Yegappan Lakshmanan).

    Patch 9.1.0420
    Problem:  :browse oldfiles prompts even with single entry
    Solution: Do not prompt, but edit the file directly, also when using :filter
              /pat/ browse oldfiles

    Patch 9.1.0421
    Problem:  filetype: hyprlang files are not recognized
    Solution: Recognize 'hypr{land,paper,idle,lock}.conf' files
              as 'hyprlang' filetype, add hyprlang ftplugin (Riley Bruins)

    Patch 9.1.0422
    Problem:  function echo_string_core() is too long
    Solution: Refactor into several smaller functions (Yegappan Lakshmanan).

    Patch 9.1.0423
    Problem:  getregionpos() wrong with blockwise mode and multibyte.
    Solution: Use textcol and textlen instead of start_vcol and end_vcol.
              Handle coladd properly (zeertzjq).

    Patch 9.1.0424
    Problem:  filetype: slint files are not recognized
    Solution: Detect '*.slint' files as slint filetype, include basic sling
              filetype plugin (Riley Bruins)

    Patch 9.1.0425
    Problem:  filetype: purescript files are not recognized
    Solution: Recognize '*.purs' files as purescript filetype, include basic
              purescript filetype plugin (Riley Bruins)

    Patch 9.1.0426
    Problem:  too many strlen() calls in search.c
    Solution: Refactor code and remove more strlen() calls,
              use explicit variable to remember strlen (John Marriott)

    Patch 9.1.0427
    Problem:  tests: some issues with termdebug mapping test
    Solution: Use assert_{true,false} if suitable, change
              order of expected and actual arguments in assert() calls.
              (Ken Takata)

    Patch 9.1.0428
    Problem:  Tag guessing leaves wrong search history with very short names
              (after 9.1.0426).
    Solution: Use the correct variable for pattern length (zeertzjq).

    Patch 9.1.0429
    Problem:  Coverity complains about eval.c refactor (after v9.1.0422)
    Solution: Check that buf is not used un-initialized, add explicit conditions
              for save and restore of copyID

    Patch 9.1.0430
    Problem:  getregionpos() doesn't handle one char selection.
    Solution: Handle startspaces differently when is_oneChar is set.
              Also add a test for an exclusive charwise selection with
              multibyte chars (zeertzjq)

    Patch 9.1.0431
    Problem:  eval.c is too long
    Solution: Move garbage collection code to new gc.c file (Yegappan Lakshmanan).

    Patch 9.1.0432
    Problem:  Ancient XPM preprocessor hack may cause build errors.
    Solution: Simplify XPM includes and get rid of complicated #ifdef magic
              (Drew Vogel).

    Patch 9.1.0433
    Problem:  Wrong yanking with exclusive selection and virtualedit=all,
              and integer overflow when using getregion() on it.
    Solution: Set coladd when decreasing column and 'virtualedit' is active.
              Add more tests for getregion() with 'virtualedit' (zeertzjq).

    Patch 9.1.0434
    Problem:  make errors trying to access autoload/zig
    Solution: Remove autoload/zig from Makefile, adjust Filelist (Derek Schrock).

    Patch 9.1.0435
    Problem:  filetype: cygport files are not recognized
    Solution: Recognize '*.cygport' files as sh filetype (Ken Takata).

    Patch 9.1.0436
    Problem:  Crash when using '?' as separator for :s and pattern contains
              escaped '?'s (after 9.1.0409).
    Solution: Always compute startplen. (zeertzjq).

    Patch 9.1.0437
    Problem:  Motif requires non-const char pointer for XPM data shared with
              GTK (Tony Mechelynck, after v9.1.0432)
    Solution: Cast non-const to const char pointer for GTK (Drew Vogel).

    Patch 9.1.0438
    Problem:  Wrong Ex command executed when :g uses '?' as delimiter and
              pattern contains escaped '?'.
    Solution: Don't use "*newp" when it's not allocated (zeertzjq).

    Patch 9.1.0439
    Problem:  Cannot filter the history
    Solution: Implement :filter :history

    Patch 9.1.0440
    Problem:  function get_lval() is too long
    Solution: factor out the get_lval_subscript() function (Yegappan Lakshmanan).

    Patch 9.1.0441
    Problem:  getregionpos() can't properly indicate positions beyond eol.
    Solution: Add an "eol" flag that enables handling positions beyond end
              of line like getpos() does (zeertzjq).

    Patch 9.1.0442
    Problem:  hare runtime files outdated
    Solution: runtime(hare): update hare.vim to match upstream (Amelia Clarke).

    Patch 9.1.0443
    Problem:  Can't use a blockwise selection with a width for getregion().
    Solution: Add support for blockwise selection with width like the return
              value of getregtype() or the "regtype" value of TextYankPost
              (zeertzjq).

    Patch 9.1.0444
    Problem:  Not enough tests for getregion() with multibyte chars.
    Solution: Add a few more tests (zeertzjq).

    Patch 9.1.0445
    Problem:  Coverity warning after 9.1.0440
    Solution: Fix Coverity warning, add a test and reduce the calls to clear_tv()
              (Yegappan Lakshmanan).

    Patch 9.1.0446
    Problem:  getregionpos() behaves inconsistently for a partly-selected
              multibyte char.
    Solution: Always use column of the first byte for a partly-selected
              multibyte char (zeertzjq).

    Patch 9.1.0447
    Problem:  completion may be wrong when deleting all chars
    Solution: Reset compl_shown_match

    Patch 9.1.0448
    Problem:  compiler warning in eval.c (after v9.1.0429)
    Solution: Refactor code (Yegappan Lakshmanan)

    Patch 9.1.0449
    Problem:  MS-Windows: Compiler warnings
    Solution: Resolve size_t to int warnings

    Patch 9.1.0450
    Problem:  eval.c code too complex
    Solution: Refactor eval6() and eval9() functions into several smaller
              functions (Yegappan Lakshmanan)

    Patch 9.1.0451
    Problem:  No test for escaping '<' with shellescape()
    Solution: Add a test.  Use memcpy() in code to make it easier to
              understand.  Fix a typo (zeertzjq).

    Patch 9.1.0452
    Problem:  Configure checks for libelf unnecessarily
    Solution: Remove configure check (youcai)

    Patch 9.1.0453
    Problem:  filetype: rasi files are not recognized
    Solution: Regonize '*.rasi' files as rasi filetype, include a filetype and
              syntax plugin (Pierrick Guillaume)

    Patch 9.1.0454
    Problem:  minor issues in test_filetype with rasi test (after 9.1.0453)
    Solution: Re-sort test_filetype, fix wrong syntax.txt help tags

    Patch 9.1.0455
    Problem:  MS-Windows: compiler warning for size_t to int conversion
    Solution: Add a few type casts to resolve warning on Windows (Mike Williams).

    Patch 9.1.0456
    Problem:  Left shift is incorrect with vartabstop and shiftwidth=0
    Solution: Make tabstop_at() function aware of shift direction
              (Gary Johnson)

    Patch 9.1.0457
    Problem:  tests: test_gui fails on Wayland (after: 9.1.0064, Gary Johnson)
    Solution: Drop the "empty($WAYLAND_DISPLAY)" condition in the test

    Patch 9.1.0458
    Problem:  Coverity complains about division by zero
    Solution: Check explicitly for sw_val being zero
              Shouldn't happen, since tabstop value should always be larger than
              zero. So just add this as a safety measure.

    Patch 9.1.0459
    Problem:  Vim9: import autoload does not work with symlink (Olivier Dormond)
    Solution: Set sn_autoload_prefix in check_script_symlink (nwounkn)

    Patch 9.1.0460
    Problem:  filetype: lintstagedrc files are not recognized
    Solution: Recognize '.lintstagedrc' files as json filetype (İlyas Akın).

    Patch 9.1.0461
    Problem:  too many strlen() calls in drawline.c
    Solution: Refactor code to avoid strlen() (John Marriott).

    Patch 9.1.0462
    Problem:  eval5() and eval7 are too complex
    Solution: Refactor eval5() and eval7() in eval.c (Yegappan Lakshmanan).

    Patch 9.1.0463
    Problem:  no fuzzy-matching support for insert-completion
    Solution: Enable insert-mode completion with fuzzy-matching
              using :set completopt+=fuzzy (glepnir).

    Patch 9.1.0464
    Problem:  No whitespace padding in commentstring option in ftplugins
    Solution: Change default to include whitespace padding, update
              existing filetype plugins with the new default value (Riley Bruins)

    Patch 9.1.0465
    Problem:  missing filecopy() function
    Solution: Implement filecopy() Vim script function (Shougo Matsushita).

    Patch 9.1.0466
    Problem:  Missing comments for fuzzy completion (after 9.1.0463)
    Solution: Add more comments, adjust indentation slightly (glepnir).

    Patch 9.1.0467
    Problem:  typos in some comments (after v9.1.0466)
    Solution: Fix comments (zeertzjq).

    Patch 9.1.0468
    Problem:  GvimExt does not consult HKEY_CURRENT_USER
    Solution: Make GvimExt first consult HKEY_CURRENT_USER and then fall
              back to HKEY_LOCAL_MACHINE to find gvim (David Wagner)

    Patch 9.1.0469
    Problem:  Cannot have buffer-local value for 'completeopt' (Nick Jensen).
    Solution: Make 'completeopt' global-local (zeertzjq).

    Patch 9.1.0470
    Problem:  tests: Test_ColonEight_MultiByte() fails on MS-Windows
    Solution: Mark test as flaky

    Patch 9.1.0471
    Problem:  Crash when using autocmd_get() after removing event inside
              autocmd (Sergey Vlasov)
    Solution: Check that the pattern is NULL (zeertzjq).

    Patch 9.1.0472
    Problem:  Inconsistencies between functions for option flags.
    Solution: Consistently use "unsigned int" as return type and rename
              get_bkc_value() to get_bkc_flags() (zeertzjq).

    Patch 9.1.0473
    Problem:  term_start() does not clear vertical modifier
    Solution: Clear the flag after splitting the window (Yegappan Lakshmanan).

    Patch 9.1.0474
    Problem:  CI: Test_ColonEight() fails on github runners (Ken Takata)
    Solution: Run the test for files on the C: drive, where dos shortnames
              are still enabled, refactor the tests to use a single setup
              function for the preparation.

    Patch 9.1.0475
    Problem:  cmod_split modifier is always reset in term_start()
    Solution: Only clear the WSP_VERT flag, if it is not already in
              cmdmod.cmod_split (Yegappan Lakshmanan).

    Patch 9.1.0476
    Problem:  Cannot see matched text in popup menu
    Solution: Introduce 2 new highlighting groups: PmenuMatch and
              PmenuMatchSel (glepnir).

    Patch 9.1.0477
    Problem:  block_editing errors out when using <enter>
              (Ali Rizvi-Santiago, after v9.1.0274)
    Solution: Change ins_len from size_t to int so that the test
              if ins_len is negative actually works properly.

    Patch 9.1.0478
    Problem:  Potential deref of NULL pointer in fuzzy_match_str_with_pos()
              on cleanup (after v9.1.0476)
    Solution: Only free the pointer if it is non-NULL (glepnir).

    Patch 9.1.0479
    Problem:  fuzzy_match_str_with_pos() does unnecessary list operations.
    Solution: Use fuzzy_match() directly (zeertzjq).

    Patch 9.1.0480
    Problem:  fuzzy string matching executed when not needed
    Solution: When no leader is available, can skip fuzzy logic, so return
              early (glepnir).

    Patch 9.1.0481
    Problem:  Vim9: term_getjob() throws an exception on error
    Solution: Return null_job instead, when there is no job (Ernie Rael).

    Patch 9.1.0482
    Problem:  termdebug plugin needs more love
    Solution: start with some more Vim9 refactoring to improve maintenance and
              readability (Ubaldo Tiberi).

    Patch 9.1.0483
    Problem:  glob() not sufficiently tested
    Solution: Add more tests for directory containing [] chars.

    Patch 9.1.0484
    Problem:  Sorting of completeopt+=fuzzy is not stable.
    Solution: Compare original indexes when scores are the same (zeertzjq).

    Patch 9.1.0485
    Problem:  Matched text shouldn't be highlighted in "kind" and "menu".
    Solution: Pass hlf_T instead of the attribute.  Fix indent (zeertzjq).

    Patch 9.1.0486
    Problem:  filetype: Snakemake files are not recognized
    Solution: Detect '*.smk' and Snakefile files as snakemake filetype
              (Riley Bruins)

    Patch 9.1.0487
    Problem:  completed item not update on fuzzy completion
    Solution: Reset compl_shown_match when at original match position (glepnir).

    Patch 9.1.0488
    Problem:  Wrong padding for pum "kind" with 'rightleft'.
    Solution: Fix off-by-one error (zeertzjq).

    Patch 9.1.0489
    Problem:  default completion may break with fuzzy
    Solution: Check that completion_match_array is not null (glepnir).

    Patch 9.1.0490
    Problem:  minor style problems with Patch 9.1.0487
    Solution: use shown_compl instead of after_first_compl variable (glepnir).

    Patch 9.1.0491
    Problem:  Cmdline pum doesn't work properly with 'rightleft'.
    Solution: Don't use curwin->w_p_rl in cmdline mode in pum_redraw().  Use
              a static variable since pum_may_redraw() may be called in any
              mode.  Also correct position of other popups with 'rightleft'
              (zeertzjq).

    Patch 9.1.0492
    Problem:  Vim-script files may not be recognised
    Solution: Add shebang line detection (Doug Kearns)

    Patch 9.1.0493
    Problem:  Test for Patch 9.1.0489 doesn't fail without the fix.
    Solution: Use "!" flag of feedkeys() so that ex_normal_busy is not set
              and ins_compl_check_keys() is not skipped (zeertzjq).

    Patch 9.1.0494
    Problem:  Wrong matched text highlighted in pum with 'rightleft'.
    Solution: Match using the original text instead of the reversed text
              (zeertzjq).

    Patch 9.1.0495
    Problem:  Matched text isn't highlighted in cmdline pum.
    Solution: Use cmdline completion pattern in cmdline mode (zeertzjq).

    Patch 9.1.0496
    Problem:  matched text is highlighted case-sensitively
    Solution: Use MB_STRNICMP, update highlighting when the base changes (glepnir)

    Patch 9.1.0497
    Problem:  termdebug can be further improved
    Solution: Refactor save/restore, update docs, add a new save/restore test
              (Ubaldo Tiberi).

    Patch 9.1.0498
    Problem:  getcmdcompltype() interferes with cmdline completion.
    Solution: Don't set expand context when it's already set (zeertzjq).

    Patch 9.1.0499
    Problem:  MS-Windows: doesn't handle symlinks properly (Timothy Madden)
    Solution: Implement lstat() on MS-Windows (LemonBoy).

    Patch 9.1.0500
    Problem:  cannot switch buffer in a popup (Yggdroot)
    Solution: Add popup_setbuf() function.

    Patch 9.1.0501
    Problem:  too complicated mapping restore in termdebug
    Solution: Simplify unmapping logic, add a few more tests (Ubaldo Tiberi).

    Patch 9.1.0502
    Problem:  MS-Windows: too much legacy code
    Solution: Clean up old code (Ken Takata).

    Patch 9.1.0503
    Problem:  cannot use fuzzy keyword completion (Maxim Kim)
    Solution: Add the "fuzzycollect" value for the 'completeopt'
              setting, to gather matches using fuzzy logic (glepnir).

    Patch 9.1.0504
    Problem:  inner-tag textobject confused about ">" in attributes
    Solution: Skip over quoted '>' when determining the start position

    Patch 9.1.0505
    Problem:  filetype: Faust files are not recognized
    Solution: Detect '*.lib' files as Faust filetype, add detection for
              '*.dsp' files (Faust or Make), remove '*.lib' from Cobol
              filetype (PowerUser64)

    Patch 9.1.0506
    Problem:  filetype: .envrc & .prettierignore not recognized
    Solution: Detect '.envrc' as shell and '.prettierignore' as gitignore
              filetype (Tyler Miller)

    Patch 9.1.0507
    Problem:  hard to detect cursor movement in the command line
    Solution: Add the CursorMovedC autocommand (Shougo Matsushita).

    Patch 9.1.0508
    Problem:  termdebug plugin can be further improved
    Solution: Add sanity-check, timeout config, change vars to bool
              update docs, add more tests (Ubaldo Tiberi).

    Patch 9.1.0509
    Problem:  not possible to translate Vim script messages (RestorerZ)
    Solution: Implement bindtextdomain() and gettext() to support Vim script
              message translations (Christ van Willegen).

    Patch 9.1.0510
    Problem:  CI: test_gettext fails on MacOS14 + MSVC Win (after v9.1.0509)
    Solution: Skip the test for now.

    Patch 9.1.0511
    Problem:  CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507)
    Solution: Remove the premature triggering.  Also don't trigger when
              cursor didn't move (zeertzjq).

    Patch 9.1.0512
    Problem:  Mode message for spell completion doesn't match allowed keys
              (Kyle Kovacs)
    Solution: Show "^S" instead of "s" (zeertzjq).

    Patch 9.1.0513
    Problem:  Vim9: segfault with object comparisons
    Solution: Increment recusive_cnt before calling typval_compare_object()
              (Ernie Rael)

    Patch 9.1.0514
    Problem:  Vim9: issue with comparing objects recursively (Yinzuo Jiang)
    Solution: only set recursive == TRUE, when called from tv_equal(), not
              from typeval_compare_object(), refactor code into object_equal()
              function (LemonBoy).

    Patch 9.1.0515
    Problem:  Vim9: segfault in object_equal()
    Solution: Test for object pointer being NULL, before dereferencing them
              (Ernie Rael).

    Patch 9.1.0516
    Problem:  need more tests for nested dicts and list comparision
    Solution: Add tests for comparing deeply nested List/Dict values
              (Yegappan Lakshmanan).

    Patch 9.1.0517
    Problem:  MS-Windows: too long lines in Make_mvc.mak
    Solution: Wrap long lines in Make_mvc.mak (Ken Takata).

    Patch 9.1.0518
    Problem:  initialize the random buffer can be improved
    Solution: Refactor init_srand() function, move machine-specific parts to
              os_mswin and os_unix, implement a fallback for Windows 10 and
              later (LemonBoy).

    Patch 9.1.0519
    Problem:  MS-Windows: libvterm compilation can be optimized
    Solution: Enable batch inference for libvterm (Ken Takata).

    Patch 9.1.0520
    Problem:  Vim9: incorrect type checking for modifying lists
    Solution: Correctly assign the member declared types and generate
              typechecks, add disassembly test (LemonBoy).

    Patch 9.1.0521
    Problem:  if_py: _PyObject_CallFunction_SizeT is dropped in Python 3.13
    Solution: define PyObject_CallFunction for Python >= 3.13 (Yaakov Selkowitz).

    Patch 9.1.0522
    Problem:  Vim9: string(object) hangs for recursive references
    Solution: Handle recursive objects specifically, add a hang test and a
              compare test (Ernie Rael)

    Patch 9.1.0523
    Problem:  Vim9: cannot downcast an object (Ernie Rael)
    Solution: Fix class downcasting issue (LemonBoy).

    Patch 9.1.0524
    Problem:  the recursive parameter in the *_equal functions can be removed
    Solution: Remove the recursive parameter in dict_equal(), list_equal()
              object_equal and tv_equal(). Use a comparison of the static
              var recursive_cnt == 0 to determine whether or not tv_equal()
              has been called recursively (Yinzuo Jiang).

    Patch 9.1.0525
    Problem:  Right release selects immediately when pum is truncated.
    Solution: Use pum_height instead of pum_size when checking click row.
              Don't place it above mouse row when there is more space below.
              (zeertzjq)

    Patch 9.1.0526
    Problem:  Cursor is moved to bottom of window trying to pagescroll when
              already at the start of the buffer (Asheq Imran, after v9.1.0357)
    Solution: Don't move cursor when buffer content did not move (Luuk van Baal).

    Patch 9.1.0527
    Problem:  inconsistent parameter in Makefiles for Vim executable
    Solution: consistently use $VIMPROG across all Makefiles (RestorerZ).

    Patch 9.1.0528
    Problem:  spell completion message still wrong in translations
              (after 9.1.0512)
    Solution: Update translation files with the new message (Kyle Kovacs).

    Patch 9.1.0529
    Problem:  silent! causes following try/catch to not work (Malcolm Rowe)
    Solution: consider emsg_silent in handle_did_throw() and do not abort
              evaluation flow for :silent! (LemonBoy).

    Patch 9.1.0530
    Problem:  xxd: MSVC warning about non-ASCII character
    Solution: Specify source-charset:utf-8 in Makefile (Ken Takata).

    Patch 9.1.0531
    Problem:  resource leak in mch_get_random() (after v9.1.0518)
    Solution: close file descriptor after reading successfully from /dev/urandom

    Patch 9.1.0532
    Problem:  filetype: Cedar files not recognized
    Solution: Detect '*.cedar' files as cedar filetype (Riley Bruins).

    Patch 9.1.0533
    Problem:  Vim9: need more tests for nested objects equality
    Solution: Add more tests (Ernie Rael).

    Patch 9.1.0534
    Problem:  completion wrong with fuzzy when cycling back to original
              (Quan Nguyen)
    Solution: Reset show_match_ok when cp_score is zero (glepnir).

    Patch 9.1.0535
    Problem:  newline escape wrong in ex mode (Konrad Schwarz)
    Solution: Partly revert Patch 7.3.014, remove backslash in front of a
              newline when not in prompt mode in ex line mode (Mohamed Akram).

    Patch 9.1.0536
    Problem:  filetype: zone files are not recognized (rpdprd)
    Solution: Detect '*.zone' files as bindzone filetype.

    Patch 9.1.0537
    Problem:  signed number detection for CTRL-X/A can be improved (Chris Patuzzo)
    Solution: Add the new "blank" value for the 'nrformat' setting. This will make
              Vim assume a signed number only if there is a blank in front of the
              sign (distobs).

    Patch 9.1.0538
    Problem:  not possible to assign priority when defining a sign
              (Mathias Fußenegger)
    Solution: Add the priority argument for the :sign-define ex command and
              the sign_define() function (LemonBoy).

    Patch 9.1.0539
    Problem:  Not enough tests for what v9.1.0535 fixed
    Solution: Add another test for ex-mode.

    Patch 9.1.0540
    Problem:  Unused assignment in sign_define_cmd()
    Solution: Remove the assignment.  Also document the "priority" flag of
              sign_define() (zeertzjq).

    Patch 9.1.0541
    Problem:  failing test with Vim configured without channel
    Solution: In the test Test_null_values() verify that the 'channel' and
              'job' feature is present in Vim. (Dominique Pellé).

    Patch 9.1.0542
    Problem:  Vim9: confusing string() output for object functions
    Solution: improve the output for object functions (Ernie Rael).

    Patch 9.1.0543
    Problem:  Behavior of CursorMovedC is strange.
    Solution: Also trigger when the cmdline has changed (zeertzjq).

    Patch 9.1.0544
    Problem:  filetype: ldapconf files are not recognized
    Solution: Detect '.ldaprc', 'ldap.conf' and 'ldaprc' files as ldapconf
              filetype, include a simple ldapconf ftplugin file (Riley Bruins).

    Patch 9.1.0545
    Problem:  MSVC conversion warning (LemonBoy, after 9.1.0522)
    Solution: Use size_t instead of int, fix style of casts (Ernie Rael).

    Patch 9.1.0546
    Problem:  vim-tiny fails on CTRL-X/CTRL-A (Rob Foehl, after 9.1.0172)
    Solution: Move #ifdefs, so that after changing the line in del_bytes,
              the cached textlen value is invalidated.

    Patch 9.1.0547
    Problem:  No way to get the arity of a Vim function (Austin Ziegler)
    Solution: Enhance get() Vim script function to return the function
              argument info using get(func, "arity") (LemonBoy).

    Patch 9.1.0548
    Problem:  it's not possible to get a unique id for some vars
    Solution: Add the id() Vim script function, which returns a unique
              identifier for object, dict, list, job, blob or channel
              variables (Ernie Rael).

    Patch 9.1.0549
    Problem:  fuzzycollect regex based completion not working as expected
    Solution: Revert Patch v9.1.0503 (glepnir).

    Patch 9.1.0550
    Problem:  filetype: antlr4 files are not recognized
    Solution: Detect '*.g4' as antlr4 filetype, include a simple antlr4
              syntax and filetype plugin (Yinzuo Jiang).

    Patch 9.1.0551
    Problem:  filetype: htmlangular files are not properly detected
    Solution: Use the new htmlangular filetype for angular files, because
              since angular v17, those are no longer valid HTML files
              (Dennis van den Berg).

    Patch 9.1.0552
    Problem:  No test for antlr4 filetype (after 9.1.0550)
    Solution: Add a simple filename test.

    Patch 9.1.0553
    Problem:  filetype: *.mcmeta files are not recognized
    Solution: Detect '*.mcmeta' files as json filetype (Tomodachi94).

    Patch 9.1.0554
    Problem:  :bw leaves jumplist and tagstack data around (Paul "Joey" Clark)
    Solution: Wipe jumplist and tagstack references to the wiped buffer
              (LemonBoy).

    Patch 9.1.0555
    Problem:  filetype: angular ft detection is still problematic (after 9.1.0551)
    Solution: Detect htmlangular filetype only by inspecting the content,
              do not try to determine it from a generic name like
              '*.component.html'.

    Patch 9.1.0556
    Problem:  :bwipe doesn't remove file from jumplist and tagstack of other
              tabpages. Time complexity of mark_forget_file() is O(n^2) when
              removing all entries (after v9.1.0554)
    Solution: Use FOR_ALL_TAB_WINDOWS().  Start the loops over the arrays
              from the end instead of the start (zeertzjq).

    Patch 9.1.0557
    Problem:  moving in the buffer list doesn't work as documented
              (SenileFelineS)
    Solution: Skip non-help buffers, when run from normal buffers, else
              only move from help buffers to the next help buffer (LemonBoy).

    Patch 9.1.0558
    Problem:  filetype: prolog detection can be improved
    Solution: Improved the Prolog file detection regex and added tests for
              all cases (igna_martinoli).

    Patch 9.1.0559
    Problem:  translation of vim scripts can be improved (after v9.1.0509)
    Solution: improve documentation, add tests, include missing
              libraries for the Windows CI (RestorerZ).

    Patch 9.1.0560
    Problem:  bindtextdomain() does not indicate an error (after v9.1.509)
    Solution: return false on failure (OOM) (Chris van Willegen).

    Patch 9.1.0561
    Problem:  netbeans: variable used un-initialized (Coverity) (after v9.1.0557)
    Solution: Properly initialize exarg_T struct for use with netbeans
              The actual exarg.cmdidx doesn't really matter, but let's use
              something, that is not affected by the recent changes (going through
              the buffer list) and use CMD_USER.

    Patch 9.1.0562
    Problem:  tests: inconsistency in test_findfile.vim, it saves and restores
              'shellslash', but doesn't actually set it
    Solution: Set shellslash explicitly (zeertzjq).

    Patch 9.1.0563
    Problem:  Cannot process any Key event.
    Solution: Add the KeyInputPre autocmd (Shougo Matsushita).

    Patch 9.1.0564
    Problem:  id() can be made faster
    Solution: don't use printf(), use clever shift of pointer (Ernie Rael).

    Patch 9.1.0565
    Problem:  Stop directory doesn't work properly in 'tags' (Jesse Pavel).
    Solution: Also move the stop directory forward by one byte (zeertzjq).

    Patch 9.1.0566
    Problem:  Stop directory in findfile() doesn't work properly without a
              trailing slash.
    Solution: Always use fnamencmp(), not fnamecmp().

    Patch 9.1.0567
    Problem:  Cannot use relative paths as findfile() stop directories.
    Solution: Change a relative path to an absolute path (zeertzjq).

    Patch 9.1.0568
    Problem:  Cannot expand paths from 'cdpath' setting (Daniel Hahler)
    Solution: Implement 'cdpath' completion, add the new 'dir_in_path'
              completion type (LemonBoy).

    Patch 9.1.0569
    Problem:  fnamemodify() treats ".." and "../" differently.
    Solution: Expand ".." properly like how "/.." is treated in 8.2.3388
              (zeertzjq).

    Patch 9.1.0570
    Problem:  tests: test_gettext_make can be improved (after v9.1.0559)
    Solution: Improve the test (Ken Takata).

    Patch 9.1.0571
    Problem:  tests: Test_gui_lowlevel_keyevent is flaky
    Solution: Mark as flaky (Ken Takata).

    Patch 9.1.0572
    Problem:  cannot specify tab page closing behaviour (Gianluca Pacchiella).
    Solution: Add the 'tabclose' option (LemonBoy).

    Patch 9.1.0573
    Problem:  ex: no implicit print for single addresses
    Solution: Explicitly print even during single addresses, as requested by POSIX
              (Mohamed Akram)

    Patch 9.1.0574
    Problem:  ex: wrong handling of commands after bar
    Solution: for :append, :insert and :change use the text after the bar as input
              for those commands. This is what POSIX requests (Mohamed Akram).

    Patch 9.1.0575
    Problem:  Wrong comments in alt_tabpage() (after v9.1.0572)
    Solution: Correct the comments (zeertzjq).

    Patch 9.1.0576
    Problem:  tests: still an issue with test_gettext_make (after v9.1.0570)
    Solution: Compare the getenv() output against v:null to verify
              that $GETTEXT_PATH was set or not (Ken Takata).

    Patch 9.1.0577
    Problem:  Unnecessary checks for v:sizeoflong in test_put.vim.  They are
              no longer necessary as Patch 8.2.3661 has changed the count to
              be within 32-bit integer limit.
    Solution: Remove the checks (zeertzjq).

    Patch 9.1.0578
    Problem:  no tests for :Tohtml
    Solution: Add two basic tests (Yinzuo Jiang).

    Patch 9.1.0579
    Problem:  Ex command is still executed after giving E1247.
    Solution: Indicate the error properly and set cmd to NULL (zeertzjq).

    Patch 9.1.0580
    Problem:  An :lmap mapping for a printable keypad key is not applied
              when typing it in Select mode.
    Solution: Change keypad key to ASCII after setting vgetc_char (zeertzjq).

    Patch 9.1.0581
    Problem:  style: Various lines are indented inconsistently
    Solution: Retab these lines and correct some comments (zeertzjq).

    Patch 9.1.0582
    Problem:  Printed line no longer overwrites colon when pressing Enter in
              Ex mode (after 9.1.0573).
    Solution: Restore the behavior of pressing Enter in Ex mode (zeertzjq).

    Patch 9.1.0583
    Problem:  filetype: *.pdf_tex files are not recognized
    Solution: Detect '*.pdf_tex' files as tex filetype (Jonas Dujava).

    Patch 9.1.0584
    Problem:  Warning about redeclaring f_id() non-static
    Solution: Declare f_id() static (John Marriott).

    Patch 9.1.0585
    Problem:  tests: test_cpoptions leaves swapfiles around
    Solution: Use :bw! instead of :close!

    Patch 9.1.0586
    Problem:  ocaml runtime files are outdated
    Solution: Sync those files with the upstream repo, detect a few more ocaml
              files (Yinzuo Jiang).

    Patch 9.1.0587
    Problem:  tests: Test_gui_lowlevel_keyevent is still flaky (after v9.1.0571)
    Solution: Skip generating key event for Ctrl-C, remove the test_is_flaky
              variable again (Ken Takata).

    Patch 9.1.0588
    Problem:  The maze program no longer compiles on newer clang
    Solution: Use ANSI C function definition for main() (Mohamed Akram).

    Patch 9.1.0589
    Problem:  vi: d{motion} and cw command work differently than expected
    Solution: add new cpo-z flag to make the behaviour configurable

    Patch 9.1.0590
    Problem:  Vim9: crash when accessing getregionpos() return value.
    Solution: Correct the return type (zeertzjq).

    Patch 9.1.0591
    Problem:  filetype: *.wl files are not recognized
    Solution: Detect '*.wl' files as Mathematica package files (Jonas Dujava).

    Patch 9.1.0592
    Problem:  filetype: Mediawiki files are not recognized
    Solution: detect "*.mw" and "*.wiki" as mediawiki filetype,
              include basic syntax and filetype plugins (AvidSeeker).

    Patch 9.1.0593
    Problem:  filetype: Asymptote files are not recognized
    Solution: detect '*.asy' files as asy filetype, include ftplugin and syntax
              plugin (AvidSeeker).

    Patch 9.1.0594
    Problem:  Unnecessary redraw when setting 'winfixbuf'.
    Solution: Remove P_RWIN flag (zeertzjq).

    Patch 9.1.0595
    Problem:  make errors out with the po Makefile
              (yanivshlom, after v9.1.0558)
    Solution: Set variables differently (RestorerZ).

    Patch 9.1.0596
    Problem:  filetype: Debian devscripts config files are not recognized
    Solution: detect devscripts.conf and .devscripts files as sh filetype
              (sourced by /bin/sh).

    Patch 9.1.0597
    Problem:  KeyInputPre cannot get the (unmapped typed) key (after v9.1.0563)
    Solution: Add the "typedchar" property to the v:event dict
              (Shougo Matsushita).

    Patch 9.1.0598
    Problem:  fuzzy completion does not work with default completion
    Solution: Make it work (glepnir).

    Patch 9.1.0599
    Problem:  Termdebug: still get E1023 when specifying arguments and using
              a prompt buffer.
    Solution: Use empty() instead of len().  Add a test.  Fix wrong order of
              arguments to assert_equal() in Test_termdebug_basic() (zeertzjq).

    Patch 9.1.0600
    Problem:  unused function typval_compare_class() and error constants
    Solution: Remove function typval_compare_class() and ifdef out
              unused error constants (Dominique Pellé).

    Patch 9.1.0601
    Problem:  Wrong cursor position with 'breakindent' when a double-width
              character doesn't fit in a screen line (mikoto2000)
    Solution: Include the width of the 'breakindent' properly (zeertzjq).

    Patch 9.1.0602
    Problem:  filetype: Prolog detection can be improved
    Solution: Update the prolog detection regex (igna_martinoli).

    Patch 9.1.0603
    Problem:  Pattern detection for Dracula language uses "*lvs" and "*lpe".
              as there is no dot, those are not treated as extensions which
              they should (judging by 'runtime/syntax/dracula.vim' and
              common sense).
    Solution: Use "*.lvs" and "*.lpe" patterns (Evgeni Chasnovski).

    Patch 9.1.0604
    Problem:  popup_filter during Press Enter prompt seems to hang
    Solution: Return early, when need_wait_return is set (Ernie Rael).

    Patch 9.1.0605
    Problem:  internal error with fuzzy completion (techntools)
    Solution: Only fuzzy complete the pattern after directory separator
              (glepnir)

    Patch 9.1.0606
    Problem:  tests: generated files may cause failure in test_codestyle
    Solution: Exclude OLE-related generated files from style checks (Ken Takata).

    Patch 9.1.0607
    Problem:  termdebug: uses inconsistent style
    Solution: termdebug: deprecate numeric values for v:true/false, fix white
              space style in the plugin (Ubaldo Tiberi).

    Patch 9.1.0608
    Problem:  Coverity warns about a few potential issues
    Solution: Fix those issues (see details below)

    Patch 9.1.0609
    Problem:  outdated comments in Makefile
    Solution: Update outdated comments, update rule for vimtags (Shane Harper).

    Patch 9.1.0610
    Problem:  filetype: OpenGL Shading Language files are not detected
    Solution: Detect various file extensions as GLSL filetype, include
              indent and syntax script, do no longer recognize '*.comp'
              as Mason filetype (Gregory Anders).

    Patch 9.1.0611
    Problem:  Ambiguous mappings not correctly resolved with modifyOtherKeys
    Solution: Check for termcode when an upper case mapping is received and
              does not match (Oleg Goncharov).

    Patch 9.1.0612
    Problem:  filetype: deno.lock file not recognized
    Solution: detect 'deno.lock' as json filetype (カワリミ人形).

    Patch 9.1.0613
    Problem:  tests: termdebug test may fail and leave temp file around
              (Dominique Pellé)
    Solution: Only run balloon_show() if the function exists, validate
              termdebug is running using the g: termdebug_is_running var,
              use defer to delete temporary files.

    Patch 9.1.0614
    Problem:  Vim syntax file changes to :set command highlighting render
              some test dump files invalid (zeertzjq)
    Solution: Regenerate the affected dump files (Doug Kearns).

    Patch 9.1.0615
    Problem:  Unnecessary STRLEN() in make_percent_swname()
    Solution: Pass the end of "dir" to make_percent_swname() (zeertzjq).

    Patch 9.1.0616
    Problem:  filetype: Make syntax highlighting off for MS Makefiles
    Solution: Try to detect MS Makefiles and adjust syntax rules to it.
              (Ken Takata)

    Patch 9.1.0617
    Problem:  Cursor moves beyond start of a folded range at the end of a buffer.
    Solution: Move cursor to start of fold when going beyond end of buffer.
              Check that cursor moved to detect FAIL in outer cursor function.
              (Luuk van Baal)

    Patch 9.1.0618
    Problem:  cannot mark deprecated attributes in completion menu
    Solution: Add hl_group to the Dictionary of supported completion fields
              (glepnir).

    Patch 9.1.0619
    Problem:  tests: test_popup fails (after v9.1.0618)
    Solution: Correct test, move combining extra attributes to
              pum_compute_text_attrs() (glepnir).

    Patch 9.1.0620
    Problem:  Vim9: segfauls with null objects (after v9.1.0219)
    Solution: Check object pointer being NULL (Ernie Rael).

    Patch 9.1.0621
    Problem:  MS-Windows: startup code can be improved
    Solution: Re-work and optimize win32 startup code (Ken Takata).

    Patch 9.1.0622
    Problem:  MS-Windows: mingw-build can be optimized
    Solution: Use --gc-sections to reduce the size of the executable
              (Ken Takata)

    Patch 9.1.0623
    Problem:  Mingw: warnings when trying to delete non-existing files
    Solution: Use "rm -f" instead of "rm" to suppress errors for
              non-existing files (Ken Takata)

    Patch 9.1.0624
    Problem:  ex command modifiers are not found (Ingo Karkat, after v9.1.0352)
    Solution: Partly revert Patch v9.1.0352, ignore :{ and :}

    Patch 9.1.0625
    Problem:  tests: test output all translated messages for all
              translations
    Solution: Redirect the output of check.vim to /dev/null, it's not that
              useful.

    Patch 9.1.0626
    Problem:  Vim9: need more tests with null objects (after v9.1.0620)
    Solution: add one more test with null_object (Ernie Rael).

    Patch 9.1.0627
    Problem:  MinGW: build-error when COVERAGE is enabled
              (after v9.1.0621)
    Solution: Fix regressions in v9.1.0621 and v9.1.0622 (Ken Takata).

    Patch 9.1.0628
    Problem:  MinGW: coverage files are not cleaned up
    Solution: Adjust clean rule to remove the coverage files (Ken Takata).

    Patch 9.1.0629
    Problem:  Rename of pum hl_group is incomplete in source.
    Solution: Also rename the test function.  Rename to user_hlattr in code
              to avoid confusion with pum_extra.  Add test with matched text
              highlighting (zeertzjq).

    Patch 9.1.0630
    Problem:  MS-Windows: build fails with VIMDLL and mzscheme
    Solution: Define scheme_register_tls_space() inside gvim.exe
              and refer to it from the dll (Ken Takata).

    Patch 9.1.0631
    Problem:  wrong completion list displayed with non-existing dir + fuzzy
              completion (kawarimidoll)
    Solution: clear list of matches, if leader did not use fuzzy match (glepnir).

    Patch 9.1.0632
    Problem:  MS-Windows: Compiler Warnings
    Solution: Fix the warnings (Ken Takata).

    Patch 9.1.0633
    Problem:  Compilation warnings with `-Wunused-parameter`
    Solution: Add the `UNUSED` macro where needed, and remove some
              superfluous ones (Dominique Pellé).

    Patch 9.1.0634
    Problem:  Ctrl-P not working by default (Jesse Pavel, after v9.1.0598)
    Solution: Revert part of v9.1.0598 and set cur_match_pos
              correctly according to compl_dir_forward().

    Patch 9.1.0635
    Problem:  filetype: SuperHTML template files not recognized
    Solution: Update the filetype detection code to detect '*.shtml' either
              as HTML (Server Side Includes) or SuperHTML (template files)
              (EliSauder).

    Patch 9.1.0636
    Problem:  filetype: ziggy files are not recognized
    Solution: detect '*.ziggy' files as ziggy filetype,
              detect '*.ziggy-schema' files as ziggy-schema filetype (EliSauder).

    Patch 9.1.0637
    Problem:  MS-Windows: Style issues in MSVC Makefile
    Solution: Fix style issues, simplify logic (Ken Takata).

    Patch 9.1.0638
    Problem:  E1510 may happen when formatting a message (after 9.1.0181).
    Solution: Only give E1510 when using typval (zeertzjq).

    Patch 9.1.0639
    Problem:  channel timeout may wrap around
    Solution: Correct timeout calculation when GetTickCount() wraps around
              (Ken Takata).

    Patch 9.1.0640
    Problem:  Mingw: Makefile can be improved
    Solution: Reduce nesting level, directly check if the '-Wl,--entry'
              option is required (Ken Takata).

    Patch 9.1.0641
    Problem:  MS-Windows: OLE enabled in console version, may cause hang
              (Linda_pp)
    Solution: Disable OLE for console version (Ken Takata).

    Patch 9.1.0642
    Problem:  Check that mapping rhs starts with lhs doesn't work if lhs is
              not simplified.
    Solution: Keep track of the mapblock containing the alternative lhs and
              also compare with it (zeertzjq).

    Patch 9.1.0643
    Problem:  terminal: cursor may end up on invalid position after reducing
              the scrollback lines (user202729)
    Solution: After reducing the scrollback size, check the cursor position,
              making sure it does not end up on an invalid line.

    Patch 9.1.0644
    Problem:  Unnecessary STRLEN() when applying mapping (after v9.1.0642).
    Solution: Use m_keylen and vim_strnsave() (zeertzjq).

    Patch 9.1.0645
    Problem:  regex: wrong match when searching multi-byte char case-insensitive
              (diffsetter)
    Solution: Apply proper case-folding for characters and search-string

    Patch 9.1.0646
    Problem:  Vim9: imported function may not be found
    Solution: Try to find the function by name (Ernie Rael).

    Patch 9.1.0647
    Problem:  [security] use-after-free in tagstack_clear_entry (Suyue Guo).
    Solution: Instead of manually calling vim_free() on each of the tagstack
              entries, let's use tagstack_clear_entry(), which will
              also free the stack, but using the VIM_CLEAR macro, which prevents a
              use-after-free by setting those pointers to NULL.

    Patch 9.1.0648
    Problem:  [security] double-free in dialog_changed() (SuyueGuo)
    Solution: Only clear pointer b_sfname pointer, if it is different than the
              b_ffname pointer.  Don't try to free b_fname, set it to NULL
              instead.

    Patch 9.1.0649
    Problem:  Wrong comment for "len" argument of call_simple_func().
    Solution: Remove the "or -1 to use strlen()".  Also change its type to
              size_t to remove one cast. (zeertzjq).

    Patch 9.1.0650
    Problem:  Coverity warning in cstrncmp() (after v9.1.0645).
    Solution: Change the type of n2 to int (zeertzjq).

    Patch 9.1.0651
    Problem:  ex: trailing dot is optional for :g and :insert/:append
    Solution: Don't break out early, when the next command is empty
              (Mohamed Akram).

    Patch 9.1.0652
    Problem:  too many strlen() calls in syntax.c
    Solution: refactor code to reduce the number or strlen() calls, get rid of
              un-used SYN_NAMELEN macro (John Marriott).

    Patch 9.1.0653
    Problem:  Patch v9.1.0648 not completely right (zeertzjq)
    Solution: Remove always true condition.

    Patch 9.1.0654
    Problem:  completion does not respect completeslash with fuzzy (egesip)
    Solution: Change path separator on Windows, depending on 'completeslash'
              option value (glepnir).

    Patch 9.1.0655
    Problem:  filetype: goaccess config file not recognized
    Solution: Detect 'goaccess.conf' as goaccess filetype, also
              include a basic syntax and ftplugin (Adam Monsen)

    Patch 9.1.0656
    Problem:  MS-Windows: MSVC Makefile CPU handling can be improved
    Solution: Update Makefile and also remove some old code (Ken Takata).

    Patch 9.1.0657
    Problem:  MS-Windows: MSVC build time can be optimized
    Solution: Stop using Powershell, show detected version, read _MSC_VER
              and _MSC_FULL_VER in a single cl execution. (Ken Takata).

    Patch 9.1.0658
    Problem:  Coverity warns about dereferencing NULL pointer.
    Solution: Bail out if vim_strrchr() returns NULL (zeertzjq).

    Patch 9.1.0659
    Problem:  MS-Windows: MSVC Makefile is a bit hard to read (after v9.1.0657).
    Solution: Indent the if/else statements to improve readability (Ken Takata).

    Patch 9.1.0660
    Problem:  MS-Windows: Shift-Insert does not work on old conhost
              (Nick Jensen, after 9.0.1146)
    Solution: Handle Shift-Insert specifically (Christian Plewright).

    Patch 9.1.0661
    Problem:  the zip plugin is not tested.
    Solution: Include tests (Damien).

    Patch 9.1.0662
    Problem:  filecopy() may return wrong value when readlink() fails.
    Solution: Set ret to -1 so that 0 is returned when readlink() fails
              (zeertzjq).

    Patch 9.1.0663
    Problem:  tests: zip test still resets 'shellslash' option
    Solution: Remove resetting the 'shellslash' option, the zip plugin should now
              be able to handle this options.

    Patch 9.1.0664
    Problem:  MS-Windows: console vim did not switch back to main screen on
              exit
    Solution: switch back to main screen on exit (Ken Takata).

    Patch 9.1.0665
    Problem:  Locked variable can be changed in a :for loop.
    Solution: Always do a full permission check on the first loop iteration
              where ASSIGN_DECL is not set (zeertzjq).

    Patch 9.1.0666
    Problem:  assert_equal() doesn't show multibyte string correctly
    Solution: Properly advance over a multibyte char (zeertzjq).

    Patch 9.1.0667
    Problem:  Some other options reset curswant unnecessarily when set.
              (Andrew Haust)
    Solution: Don't reset curswant when setting 'comments', 'commentstring'
              or 'define' (zeertzjq).

    Patch 9.1.0668
    Problem:  build-error with python3.12 and stable ABI (zdohnal)
    Solution: Add type casts, define Py_INCREF for Python3.12 and higher
              (Ken Takata).

    Patch 9.1.0669
    Problem:  stable python ABI not used by default
    Solution: Enable stable python ABI v3.8 when building with python3/dyn
              by default, update the default Python3 version to 3.8 for
              MS-Windows (Ken Takata).

    Patch 9.1.0670
    Problem:  po file encoding fails on *BSD during make
    Solution: Instead of using `$<` make use of variable `$?` which should
              be equivalent when the rule is dependent on only a single
              file (RestorerZ).

    Patch 9.1.0672
    Problem:  marker folds may get corrupted on undo (Yousef Mohammed)
    Solution: When adjusting folds, make sure that line1 is the lower limit
              and line2 is the upper line limit. In particular, line2 should
              not be able to get smaller than line1.

    Patch 9.1.0673
    Problem:  Vim9: too recursive func calls when calling super-class method
              with non-overridden super-call methods. (Aliaksei Budavei)
    Solution: Use interface method, when super is to be used (Ernie Rael)

    Patch 9.1.0674
    Problem:  Vim9: compiling abstract method fails because of missing
              return (Aliaksei Budavei)
    Solution: Don't require a return statement for an abstract method when
              compiling (Ernie Rael).

    Patch 9.1.0675
    Problem:  Patch v9.1.0674 causes problems
    Solution: Revert it for now.

    Patch 9.1.0676
    Problem:  style issues with man pages
    Solution: Update man pages and test_xxd.vim, since it uses
              the xxd man page (RestorerZ)

    Patch 9.1.0677
    Problem:  :keeppatterns does not retain the substitute pattern
              for a :s command
    Solution: Preserve the last substitute pattern when used with the
              :keeppatterns command modifier (Gregory Anders).

    Patch 9.1.0678
    Problem:  [security]: use-after-free in alist_add() (SuyueGuo)
    Solution: Lock the current window, so that the reference to
              the argument list remains valid.

    Patch 9.1.0679
    Problem:  Rename from w_closing to w_locked is incomplete (after 9.1.0678).
    Solution: Rename remaining occurrences of w_closing to w_locked and
              update comments (zeertzjq).

    Patch 9.1.0680
    Problem:  VMS does not have defined uintptr_t
    Solution: Add type definitions (Zoltan Arpadffy).

    Patch 9.1.0681
    Problem:  tests: Analyzing failed screendumps is hard
    Solution: Facilitate the viewing of rendered screendumps under src/
              add some documentation on how to use the viewdumps.vim
              script (Aliaksei Budavei)

    Patch 9.1.0682
    Problem:  Vim9: Segfault with uninitialized funcref (Daniel Viberg)
    Solution: Check the Funcref for being Null before trying to access it
              (Ernie Rael).

    Patch 9.1.0683
    Problem:  mode() returns wrong value with <Cmd> mapping
    Solution: Change decision priority of VIsual_active and move visual mode a bit
              further down (kuuote)

    Patch 9.1.0684
    Problem:  completion is inserted on Enter with "noselect" (Carman Fu)
    Solution: Check noselect before update compl_shown_match (glepnir).

    Patch 9.1.0685
    Problem:  too many strlen() calls in usercmd.c
    Solution: Refactor code to reduce the number or strlen() calls (John Marriott)

    Patch 9.1.0686
    Problem:  zip-plugin has problems with special characters (user202729)
    Solution: Escape '*?[\' on Unix and handle those chars a bit differently on
              MS-Windows, add a test, check before overwriting files.

    Patch 9.1.0687
    Problem:  Makefile may not install desktop files
    Solution: Check for "$(DESTDIR)$(DATADIR)" instead of just "$DESTDIR",
              which is usually not defined, add uninstall rules for the
              icons and the desktop files.

    Patch 9.1.0688
    Problem:  Vim9: dereferences NULL pointer in check_type_is_value() (Suyue Guo)
    Solution: Verify that the pointer is not Null.

    Patch 9.1.0689
    Problem:  buffer-overflow in do_search() with 'rightleft' (SuyueGuo)
    Solution: After reversing the text (which allocates a new buffer),
              re-calculate the text length.

    Patch 9.1.0690
    Problem:  cannot set special highlight kind in popupmenu
    Solution: Add kind_hlgroup item to complete function (glepnir).

    Patch 9.1.0691
    Problem:  python3: stable-abi may cause segfault on Python 3.11
              (Audrius Kažukauskas, after v9.1.0668)
    Solution: Do not enable the stable Python ABI by default, only when used
              with --with-python3-stable-abi argument is given

    Patch 9.1.0692
    Problem:  Wrong patlen value in ex_substitute() (after 9.1.0426).
    Solution: Compute patlen after finding end separator (zeertzjq).

    Patch 9.1.0693
    Problem:  Configure doesn't show result when not using python3 stable
              abi (after v9.1.0691)
    Solution: Add back AC_MSG_RESULT() (Ken Takata).

    Patch 9.1.0694
    Problem:  The matchparen plugin is slow on a long line.
    Solution: Don't use a regexp to get char at and before cursor (zeertzjq).

    Patch 9.1.0695
    Problem:  tests: test_crash leaves Untitled file around
    Solution: Cleanup at the end of the test_crash.vim test file.

    Patch 9.1.0696
    Problem:  installing runtime files fails when using SHADOWDIR
    Solution: Revert part of v9.1.0609, since runtime/doc/Makefile's default
              value for VIMPROG does not work if vim was built in a SHADOWDIR.
              (James McCoy)

    Patch 9.1.0697
    Problem:  heap-buffer-overflow in ins_typebuf (SuyueGuo)
    Solution: When flushing the typeahead buffer, validate that there is enough
              space left

    Patch 9.1.0698
    Problem:  tests: "Untitled" file not removed when running Test_crash1_3 alone
              with TEST_FILTER (after v9.1.0695)
    Solution: Use a TearDown function instead of another test (zeertzjq).

    Patch 9.1.0699
    Problem:  "dvgo" is not always an inclusive motion (Iain King-Speir)
    Solution: Initialize the inclusive flag to false.

    Patch 9.1.0700
    Problem:  possible crash with 2byte encoding and glob2regpat()
    Solution: Skip over character, if it is multi-byte character.

    Patch 9.1.0701
    Problem:  crash with NFA regex engine when searching for composing chars
              (SuyueGuo)
    Solution: When there is no composing character, break out of the loop
              and check that out1 state is not null.

    Patch 9.1.0702
    Problem:  Patch 9.1.0700 broke CI
    Solution: Revert for now.

    Patch 9.1.0703
    Problem:  possible crash with 2-byte encoding and glob2regpat()
              (after v9.1.0700, v9.1.0702)
    Solution: Include both bytes for a multi-byte character for an
              escaped character.

    Patch 9.1.0704
    Problem:  inserting with a count is inefficient
    Solution: Disable calculation of the cursor position and topline, if a
              count has been used (Ken Takata).

    Patch 9.1.0705
    Problem:  Sorting of fuzzy filename completion is not stable
    Solution: Compare indexes when scores are equal.  Fix some typos (zeertzjq).

    Patch 9.1.0706
    Problem:  tests: test_gettext fails when using shadow dir
    Solution: Link the ru_RU directory into the shadow testdir (James McCoy).

    Patch 9.1.0707
    Problem:  [security]: invalid cursor position may cause a crash
              (after v9.1.0038)
    Solution: Set cursor to the last character in a line, if it would
              otherwise point to beyond the line; no tests added, as it
              is unclear how to reproduce this.

    Patch 9.1.0708
    Problem:  Window is updated with potentially invalid skipcol in recursive
              window update path. I.e. cursor outside of visible range in
              large line that does not fit.
    Solution: Make sure it is valid (Luuk van Baal).

    Patch 9.1.0709
    Problem:  GUIEnter not found in Turkish locale (James McCoy)
    Solution: Explicitly compare autocommand events by ASCII value and
              ignoring locale, because according to the documentation,
              events are case insensitive.

    Patch 9.1.0710
    Problem:  when a popup window covers the command line,
              the command line is not completely cleared on popup_hide() (yu3s)
    Solution: Check if the popup window covers the command line and if it
              does, set the clear_cmdline flag.

    Patch 9.1.0711
    Problem:  tests: test_xxd may file when using different xxd
    Solution: Make Test_xxd_color_0 agnostic to xxd's path, similar to
              Test_xxd_color_1 by filtering out shell command prompt in
              screen dump file (James McCoy).

    Patch 9.1.0712
    Problem:  tests: missing dependency of Test_gettext_makefile
    Solution: Check that xgettext binary is available, else skip the test
              (James McCoy).

    Patch 9.1.0713
    Problem:  Newline causes E749 in Ex mode (after 9.1.0573).
    Solution: Don't execute empty command followed by a newline.

    Patch 9.1.0714
    Problem:  tests: GuiEnter_Turkish test may fail
    Solution: The message will be translated if the Turkish message file is
              installed. Use gettext() to get the expected message (Ken Takata).

    Patch 9.1.0715
    Problem:  Not correctly parsing color names (chdiza, after v9.1.0709)
    Solution: Revert part of the Patch that compares the color names and
              fall-back to the macro STRICMP.

    Patch 9.1.0716
    Problem:  resetting setcellwidth() doesn't update the screen
    Solution: Redraw after clearing the cellwidth table (Ken Takata).

    Patch 9.1.0717
    Problem:  Unnecessary nextcmd NULL checks in parse_command_modifiers().
    Solution: Remove them (zeertzjq).

    Patch 9.1.0718
    Problem:  hard to guess the Vim Runtime Directory
    Solution: Set the $MYVIMDIR environment variable to the users
              personal runtime directory (e.g. ~/.vim on Linux).

    Patch 9.1.0719
    Problem:  Resetting cell widths can make 'listchars' or 'fillchars'
              invalid.
    Solution: Check for conflicts when resetting cell widths (zeertzjq).

    Patch 9.1.0720
    Problem:  Wrong breakindentopt=list:-1 with multibyte chars or TABs in
              text matched by 'formatlistpat' (John M Devin)
    Solution: Use the width of the match text (zeertzjq).

    Patch 9.1.0721
    Problem:  tests: test_mksession does not consider XDG_CONFIG_HOME
    Solution: Allow to match $HOME/.vim/ and $HOME/.config/vim for &viewdir
              (John M Devin)

    Patch 9.1.0722
    Problem:  crash with large id in text_prop interface
              prop_add()/prop_add_list() (cposture)
    Solution: Error out if the id is > INT_MAX or <= INT_MIN.

    Patch 9.1.0723
    Problem:  if_python: dynamic linking fails with python3 >= 3.13
              when using non-stable ABI (zdohnal)
    Solution: Do not try to import the privat python symbol
              _PyObject_NextNotImplemented (Yee Cheng Chin).

    Patch 9.1.0724
    Problem:  if_python: link error with python 3.13 and stable ABI (zdohnal)
    Solution: Use the correct stable APIs Py_IncRef and Py_DecRef instead
              (Yee Cheng Chin)

    Patch 9.1.0725
    Problem:  filetype: swiftinterface files are not recognized
    Solution: Detect '*.swiftinterface' files as swift filetype (LosFarmosCTL).

    Patch 9.1.0726
    Problem:  not using correct python3 API with dynamic linking
    Solution: Use stable IncRef / DecRef in Python 3 dynamic bindings
              (Yee Cheng Chin).

    Patch 9.1.0727
    Problem:  too many strlen() calls in option.c
    Solution: Refactor the code to reduce the number of strlen() calls
              (John Marriott)

    Patch 9.1.0728
    Problem:  heap-use-after-free in garbage collection with location list
              user data.
    Solution: Mark user data as in use when no other window is referencing
              the location list (zeertzjq).

    Patch 9.1.0729
    Problem:  Wrong cursor-screenline when resizing window
    Solution: Invalidate saved left_col and right_col when width1 or width2
              change.

    Patch 9.1.0730
    Problem:  Crash with cursor-screenline and narrow window (elig0n)
    Solution: Don't set right_col when width2 is 0 (zeertzjq).

    Patch 9.1.0731
    Problem:  inconsistent case sensitive extension matching
    Solution: Unify case sensitive extension matching (Evgeni Chasnovski).

    Patch 9.1.0732
    Problem:  xxd: cannot use -b and -i together (Irgendwer)
    Solution: Implement the missing changes (Andre Chang)

    Patch 9.1.0733
    Problem:  keyword completion does not work with fuzzy (egesip)
    Solution: Handle ctrl_x_mode_normal() specifically (glepnir).

    Patch 9.1.0734
    Problem:  filetype: jinja files are not recognized
    Solution: Detect '*.jinja' files a jinja filetype,
              include jinja syntax script (Gregory Anders)

    Patch 9.1.0735
    Problem:  filetype: salt files are not recognized
    Solution: Detect '*.sls' files as filetype salt,
              include a syntax script (Gregory Anders)

    Patch 9.1.0736
    Problem:  Unicode tables are outdated
    Solution: Update Unicode tables to v16

    Patch 9.1.0737
    Problem:  Asynchronous terminal jobs occasionally require more time
              to complete and redraw the window
    Solution: Increase the sleep value from 10 to 50 milliseconds
              (Aliaksei Budavei).

    Patch 9.1.0738
    Problem:  filetype: rapid files are not recognized
    Solution: Detect '*.sysx' and '*.modx' as rapid filetype (KnoP-01).

    Patch 9.1.0739
    Problem:  [security]: use-after-free in ex_getln.c
    Solution: free pointer p a bit later (John Marriott).

    Patch 9.1.0740
    Problem:  incorrect internal diff with an empty file
    Solution: Set pointer to NULL, instead of using an empty line file
              (Yukihiro Nakadaira).

    Patch 9.1.0741
    Problem:  No way to get prompt for input()/confirm()
    Solution: Add getcmdprompt() function (Shougo Matsushita).

    Patch 9.1.0742
    Problem:  getcmdprompt() implementation can be improved
    Solution: Improve and simplify it (h-east).

    Patch 9.1.0743
    Problem:  diff mode does not handle overlapping diffs correctly
    Solution: Correct the logic to handle overlapping blocks
              (Yukihiro Nakadaira)

    Patch 9.1.0744
    Problem:  filetype: notmuch configs are not recognised
    Solution: Detect more notmuch profile configuration files
              as dosini filetype (Julio B).

    Patch 9.1.0745
    Problem:  filetype: bun and deno history files not recognized
    Solution: Detect '.bun_repl_history' and 'deno_history.txt' as
              javascript filetype (Wu, Zhenyu).

    Patch 9.1.0746
    Problem:  Test_halfpage_longline() fails on large terminals (lazypingu)
    Solution: Use a window with known width (zeertzjq).

    Patch 9.1.0747
    Problem:  various typos in repo found
    Solution: Fix typos (zeertzjq).

    Patch 9.1.0748
    Problem:  The :keep{alt,jumps,marks,patterns} commmands are sometimes
              misidentified as :k.
    Solution: Make sure one_letter_cmd() only returns true for :k and not
              other :keep* commands (Doug Kearns).

    Patch 9.1.0749
    Problem:  filetype: http files not recognized
    Solution: Detect '*.http' as http filetype, include
              http filetype plugin (Riley Bruins)

    Patch 9.1.0750
    Problem:  there are some Win9x legacy references
    Solution: Remove those mentions (Nir Lichtman).

    Patch 9.1.0751
    Problem:  Error callback for term_start() not used (darkseid-is)
    Solution: Attach pipe to stderr if an error callback exists

    Patch 9.1.0752
    Problem:  can set cedit to an invalid value
    Solution: Check that the value is a valid key name (Milly)

    Patch 9.1.0753
    Problem:  Wrong display when typing in diff mode with 'smoothscroll'.
    Solution: Use adjust_plines_for_skipcol() (zeertzjq).

    Patch 9.1.0754
    Problem:  fixed order of items in insert-mode completion menu
    Solution: Introduce the 'completeitemalign' option with default
              value "abbr,kind,menu" (glepnir).

    Patch 9.1.0755
    Problem:  quickfix list does not handle hardlinks well
    Solution: Store original file name with quickfix entry (Austin Chang)

    Patch 9.1.0756
    Problem:  missing change from Patch v9.1.0754
    Solution: Use correct width for the actual item in pum_redraw() (glepnir).

    Patch 9.1.0757
    Problem:  tests: messages files contains ANSI escape sequences
    Solution: Filter those out in runtests.vim

    Patch 9.1.0758
    Problem:  it's possible to set an invalid key to 'wildcharm'
    Solution: Error out, if the 'wildcharm' value is an invalid key (Milly).

    Patch 9.1.0759
    Problem:  screenpos() may return invalid position after switching buffers
              (Greg Hurrell)
    Solution: Reset w_leftcol if wrapping has been set after copying wrap option.

    Patch 9.1.0760
    Problem:  tests: no error reported, if gen_opt_test.vim fails
    Solution: Make Vim exit with return code 1 in case of any error (Milly).

    Patch 9.1.0761
    Problem:  :cd completion fails on Windows with backslash in path
    Solution: Switch no_bslash argument to FALSE in file_pat_to_reg_pat()

    Patch 9.1.0762
    Problem:  'cedit', 'termwinkey' and 'wildchar' may not be parsed correctly
    Solution: improve string_to_key() function in option.c (Milly).

    Patch 9.1.0763
    Problem:  tests: cannot run single syntax tests
    Solution: Support running a subset of syntax tests (Aliaksei Budavei).

    Patch 9.1.0764
    Problem:  [security]: use-after-free when closing a buffer
    Solution: When splitting the window and editing a new buffer,
              check whether the newly to be edited buffer has been marked
              for deletion and abort in this case.

    Patch 9.1.0765
    Problem:  No test for Patches 6.2.418 and 7.3.489
    Solution: Add a test.  Fix some whitespace problems in test_mapping.vim.
              Document the behavior (zeertzjq).

    Patch 9.1.0766
    Problem:  too many strlen() calls in ex_getln.c
    Solution: Refactor the code to reduce the number of strlen() calls
              (John Marriott).

    Patch 9.1.0767
    Problem:  A cmdlen == 0 condition is always true as ccline.cmdlen == 0
              was already checked above (after v9.1.0766).
    Solution: Remove the condition and the variable (zeertzjq).

    Patch 9.1.0768
    Problem:  MS-Windows: incorrect cursor position when restoring screen
              (after v9.1.0664)
    Solution: Restore the VTP command for switching screens back to
              termcap_mode_end() (William Bresler).

    Patch 9.1.0769
    Problem:  filetype: MLIR files are not recognized
    Solution: Detect '*.mlir' files as mlir filetype,
              include a mlir filetype plugin (Wu, Zhenyu).

    Patch 9.1.0770
    Problem:  current command completion is a bit limited
    Solution: Add the shellcmdline completion type and getmdcomplpat()
              function (Ruslan Russkikh).

    Patch 9.1.0771
    Problem:  Currently completion attribute hl_group is combined with
              all items, which is redundant and confusing with kind_hlgroup
    Solution: Renamed to abbr_hlgroup and combine it only with the abbr item
              (glepnir).

    Patch 9.1.0772
    Problem:  some missing changes from v9.1.0771
    Solution: Use correct highlighting attribute and adjust comments (glepnir).

    Patch 9.1.0773
    Problem:  filetype: some Apache files are not recognized
    Solution: Detect more config files from the Apache source
              distribution as filetype apache (nisbet-hubbard)

    Patch 9.1.0774
    Problem:  "shellcmdline" doesn't work with getcompletion().
    Solution: Use set_context_for_wildcard_arg() (zeertzjq).

    Patch 9.1.0775
    Problem:  tests: not enough tests for setting options
    Solution: Add more comprehensive tests to test_options (Milly).

    Patch 9.1.0776
    Problem:  test_strftime may fail because of missing TZ data
    Solution: Use GMT offsets to validate timezone differences (James McCoy).

    Patch 9.1.0777
    Problem:  filetype: Some upstream php files are not recognized
    Solution: Detect more config files from the PHP source
              distribution as filetype ini (nisbet-hubbard).

    Patch 9.1.0778
    Problem:  filetype: lf config files are not recognized
    Solution: Detect lfrc files as lf filetype, include a syntax
               script for lf files (Andis Spriņķis).

    Patch 9.1.0779
    Problem:  filetype: neomuttlog files are not recognized
    Solution: Detect '*.neomuttdebug' file as neomuttlog filetype,
              include neomuttlog syntax script (Richard Russon).

    Patch 9.1.0780
    Problem:  MS-Windows: incorrect Win32 error checking
    Solution: Fix wrong order of error handling and perform
              some minor refactoring (Nir Lichtman).

    Patch 9.1.0781
    Problem:  tests: test_filetype fails (clason) (after v9.1.0779).
    Solution: Use correct filename for neomuttlog filetype.

    Patch 9.1.0782
    Problem:  tests: using wrong neomuttlog file name
    Solution: Use correct file name.

    Patch 9.1.0783
    Problem:  'spell' option setting has problems
    Solution: correctly check for comma for 'spellfile' option,
              remove unnecessary checks, refactor slightly (Milly)

    Patch 9.1.0784
    Problem:  there are several problems with python 3.13
    Solution: Fix the problems in the python3 interface (Boris Staletic)

    Patch 9.1.0785
    Problem:  cannot preserve error position when setting quickfix lists
    Solution: Add the 'u' action for setqflist()/setloclist() and try
              to keep the closes target position (Jeremy Fleischman).

    Patch 9.1.0786
    Problem:  tests: quickfix update test does not test location list
              (after: v9.1.0.785)
    Solution: Update Test_quickfix_buffer_contents to test with location
              lists (Yegappan Lakshmanan).

    Patch 9.1.0787
    Problem:  cursor position changed when using hidden terminal
              and BufFilePost autocommand (Mizuno Jan Yuta)
    Solution: Save and restore cursor position.

    Patch 9.1.0788
    Problem:  <CSI>27;<mod>u is not decoded to literal Escape in kitty/foot
    Solution: Disable XTerm modifyOtherKeys form 1 when the kitty protocol is enabled
              (Christian Fillion)

    Patch 9.1.0789
    Problem:  tests: ':resize + 5' has invalid space after '+'
    Solution: Correct the test (Milly).

    Patch 9.1.0790
    Problem:  Amiga: AmigaOS4 build should use default runtime (newlib)
    Solution: Remove clib2 from compiler / linker flags (Ola Söder).

    Patch 9.1.0791
    Problem:  tests: errors in gen_opt_test.vim are not shown
    Solution: update gen_opt_test.vim and write test.log,
              let the makefile output test.log (Milly).

    Patch 9.1.0792
    Problem:  tests: Test_set_values() is not comprehensive enough
    Solution: Add a lot more test cases (Milly).

    Patch 9.1.0793
    Problem:  xxd: -e does add one extra space
    Solution: fix it, refactor and merge some code (Aapo Rantalainen).

    Patch 9.1.0794
    Problem:  tests: tests may fail on Windows environment
    Solution: Use shellcmdflag=/D to skip executing autorun from the registry
              (Milly).

    Patch 9.1.0795
    Problem:  filetype: Vivado memory info file are not recognized
    Solution: Detect '*.mmi' memory info file as xml filetype (Wu, Zhenyu).

    Patch 9.1.0796
    Problem:  filetype: libtool files are not recognized
    Solution: Detect '*.{lo,la,lai}' as sh filetype (Wu, Zhenyu).

    Patch 9.1.0797
    Problem:  testing of options can be further improved
    Solution: Split the generated option test into test_options_all.vim,
              add more test cases, save and restore values, fix use-after-free.

    Patch 9.1.0798
    Problem:  too many strlen() calls in cmdhist.c
    Solution: Refactor code and remove strlen() calls (John Marriott).

    Patch 9.1.0799
    Problem:  tests: gettwinvar()/gettabwinvar() tests are not comprehensive
    Solution: Add more tests (Milly).

    Patch 9.1.0800
    Problem:  tests: no error check when setting global 'termwinsize'
    Solution: Also validate when using setglobal (Milly).

    Patch 9.1.0801
    Problem:  tests: no error check when setting global 'termwinkey'
    Solution: Also validate when using setglobal (Milly).

    Patch 9.1.0802
    Problem:  tests: no error check when setting global 'fdm' to empty value
    Solution: Also check global 'fdm' value for being empty (Milly).

    Patch 9.1.0803
    Problem:  tests: no error check when setting global 'isk'
    Solution: Also parse and check global 'isk' value (Milly).

    Patch 9.1.0804
    Problem:  tests: no error check when setting global 'cc'
    Solution: Also parse and check global 'cc' value (Milly).

    Patch 9.1.0805
    Problem:  tests: minor issues in gen_opt_test.vim
    Solution: Fix restore value for 'undolevels', fix comment, fix
              wrong cpo value, add equality test for global-local options on
              switchback (Milly).

    Patch 9.1.0806
    Problem:  tests: no error check when setting global 'briopt'
    Solution: Also parse and check global 'briopt' value (Milly).

    Patch 9.1.0807
    Problem:  tests: having 'nolist' in modelines isn't always desired
    Solution: Remove 'nolist' from modeline (zeertzjq).

    Patch 9.1.0808
    Problem:  Terminal scrollback doesn't shrink when reducing
              'termwinscroll'
    Solution: Check if option value was decreased (Milly).

    Patch 9.1.0809
    Problem:  filetype: petalinux config files not recognized
    Solution: Detect 'project-spec/*.conf' files as bitbake filetype (Wu, Zhenyu).

    Patch 9.1.0810
    Problem:  cannot easily adjust the |:find| command
    Solution: Add support for the 'findexpr' option (Yegappan Lakshmanan).

    Patch 9.1.0811
    Problem:  :find expansion does not consider 'findexpr'
    Solution: Support expanding :find command argument using 'findexpr'
              (Yegappan Lakshmanan).

    Patch 9.1.0812
    Problem:  Coverity warns about dereferencing NULL ptr in check_colorcolumn()
    Solution: Verify that wp is not null before accessing it.

    Patch 9.1.0813
    Problem:  no error handling with setglobal and number types
    Solution: Validate values when using :setglobal with number option types
              (Milly).

    Patch 9.1.0814
    Problem:  mapset() may remove unrelated mapping whose {rhs} matches the
              restored mapping's {lhs}.
    Solution: Only match by {lhs} when unmapping for mapset() (zeertzjq).

    Patch 9.1.0815
    Problem:  "above" virtual text causes wrong 'colorcolumn' position (@matrdr)
    Solution: Use the number of cells instead of bytes for vcol_off_tp
              (zeertzjq).

    Patch 9.1.0816
    Problem:  tests: not clear what tests cause asan failures
    Solution: Append testname to $ASAN_OPTIONS.

    Patch 9.1.0817
    Problem:  termdebug: cannot evaluate expr in a popup
    Solution: Enhance termdebug plugin and allow to evaluate expressions in
              a popup window, add a unit test (Peter Wolf).

    Patch 9.1.0818
    Problem:  some global functions are only used in single files
    Solution: Refactor code slightly and make some more functions static
              (Yegappan Lakshmanan).

    Patch 9.1.0819
    Problem:  tests: need a test for findexpr and vim9 imported func
    Solution: Add a test for 'findexpr' and Vim9 imported script
              (Yegappan Lakshmanan)

    Patch 9.1.0820
    Problem:  tests: Mac OS tests are too flaky
    Solution: Increase max test timeout to 25 minutes, allow up to 10 retries on
              Mac OS runners, refactor runtest.vim (Milly).

    Patch 9.1.0821
    Problem:  'findexpr' completion doesn't set v:fname to cmdline argument.
    Solution: Set v:fname to the cmdline argument as-is (zeertzjq).

    Patch 9.1.0822
    Problem:  topline might be changed in diff mode unexpectedly (Jaehwang Jung)
    Solution: Do not re-calculate topline, when using line() func in diff mode.

    Patch 9.1.0823
    Problem:  filetype: Zephyr overlay files not recognized
    Solution: Detect '*.overlay' files as dts filetype, include syntax tests for
              DTS files (Xudong Zheng).

    Patch 9.1.0824
    Problem:  too many strlen() calls in register.c
    Solution: Refactor code, add string_T struct to keep track of string lengths
              (John Marriott).

    Patch 9.1.0825
    Problem:  compile error for non-diff builds (after v9.1.0822)
    Solution: Add #ifdef FEAT_DIFF (John Marriott).

    Patch 9.1.0826
    Problem:  filetype: sway files are not recognized
    Solution: Detect '*.sw' files as sway filetype, include a filetype plugin
              (Riley Bruins).

    Patch 9.1.0827
    Problem:  CI: tests can be improved
    Solution: Collect failed indent tests, raise timeout for search()
              functions when using ASAN/Valgrind (Aliaksei Budavei).

    Patch 9.1.0828
    Problem:  string_T struct could be used more often
    Solution: Refactor code and make use of string_T struct for key-value pairs,
              reformat overlong lines (John Marriott).

    Patch 9.1.0829
    Problem:  Vim source code uses a mix of tabs and spaces
    Solution: Expand tabs in sound.c, this is an experiment (Luca Saccarola).

    Patch 9.1.0830
    Problem:  using wrong highlight group for spaces for popupmenu
    Solution: Use original attribute instead of combined attributed (glepnir).

    Patch 9.1.0831
    Problem:  'findexpr' can't be used for lambads (Justin Keyes)
    Solution: Replace the findexpr option with the findfunc option
              (Yegappan Lakshmanan).

    Patch 9.1.0832
    Problem:  :set doesn't work for 'cot' and 'bkc' after :setlocal.
    Solution: Clear the local flags when using :set (zeertzjq).

    Patch 9.1.0833
    Problem:  CI: recent ASAN changes do not work for indent tests
    Solution: Move code to runtime/indent/testdir/runtest.vim (Aliaksei Budavei).

    Patch 9.1.0834
    Problem:  tests: 2html test fails (after b256221e8377)
    Solution: Adjust testdir/samples/Test_tohtml_basic.c.html (Aliaksei Budavei).

    Patch 9.1.0835
    Problem:  :setglobal doesn't work properly for 'ffu' and 'tsrfu' when
              the local value is set (after v9.1.0831)
    Solution: Check os_flags instead of buffer option variable (zeertzjq).

    Patch 9.1.0836
    Problem:  the vimtutor can be improved
    Solution: Port and include the interactive vimtutor plugin from Neovim
              (by Felipe Morales) (Yegappan Lakshmanan).

    Patch 9.1.0837
    Problem:  Cross-compiling to good modern operating systems is difficult as
              configure assumes obscure bugs are present by default. However,
              most core autoconf-based packages today assume features work
              when in doubt, making cross-compilation easier.
    Solution: Assume features work by default and continue to issue a warning
              with the appropriate cache variable. This solution shifts the
              burden onto the users of rare buggy operating systems and
              makes cross-compilation work out of the box for everyone else.

    Patch 9.1.0838
    Problem:  vimtutor is bash-specific (after 17c71daf83f45c3ee8)
    Solution: Port back to POSIX sh (Aliaksei Budavei).

    Patch 9.1.0839
    Problem:  filetype: leo files are not recognized
    Solution: Detect '*.leo' files as leo filetype, include a filetype plugin
              (Riley Bruins)

    Patch 9.1.0840
    Problem:  filetype: idris2 files are not recognized
    Solution: Detect '*.idr' files as idris2, '*.lidr' files as lidris2
              and '*.ipkg' files as ipkg filetype (Serhii Khoma)

    Patch 9.1.0841
    Problem:  tests: still preferring python2 over python3
    Solution: Prefer Python 3 when picking a Python program in Vim tests,
              by checking for the more specific python version first and
              only when python3 not found, check for the python binary
              (Yee Cheng Chin).

    Patch 9.1.0842
    Problem:  not checking for the sync() systemcall
    Solution: Check for sync in configure script, fix related #ifdefs
              (Jonas Termansen).

    Patch 9.1.0843
    Problem:  too many strlen() calls in undo.c
    Solution: Refactor code and remove strlen() calls, update test_undo.vim
              and close remaining open swap files (John Marriott).

    Patch 9.1.0844
    Problem:  if_python: no way to pass local vars to python
    Solution: Add locals argument to py3eval(), pyeval() and pyxeval()
              (Ben Jackson).

    Patch 9.1.0845
    Problem:  vimtutor shell script can be improved
    Solution: Further improve the vimtutor shell script (Aliaksei Budavei).

    Patch 9.1.0846
    Problem:  debug symbols for xxd are not cleaned in Makefile
    Solution: Remove  xxd.dSYM in xxds Makefile, call xxd clean target from
              main Makefile (Yee Cheng Chin)

    Patch 9.1.0847
    Problem:  tests: test_popupwin fails because of updated main help file
    Solution: Normalize Last Change header in test_popup_setbuf screendumps

    Patch 9.1.0848
    Problem:  if_lua: v:false/v:true are not evaluated to boolean
    Solution: Use lua_pushboolean() instead of lua_pushinteger() (zeertzjq).

    Patch 9.1.0849
    Problem:  there are a few typos in the source.
    Solution: Correct typos (zeertzjq).

    Patch 9.1.0850
    Problem:  Vim9: cannot access nested object inside objects
              (lifepillar, 91khr, mawkish)
    Solution: Add support for accessing an object member using a "any"
              variable type (Yegappan Lakshmanan).

    Patch 9.1.0851
    Problem:  too many strlen() calls in getchar.c
    Solution: Refactor code and reduce strlen() calls (John Marriott).

    Patch 9.1.0852
    Problem:  No warning when X11 registers are not available (delvh)
    Solution: Output W23 once when connection to X11 clipboard/selection
              is not possible, mention in the documentation, that register 0
              will be used instead.

    Patch 9.1.0853
    Problem:  filetype: kubernetes config file not recognized
    Solution: Detect '/.kube/config' file as yaml filetype (Jonathan Lopez).

    Patch 9.1.0854
    Problem:  cannot get terminal cell size
    Solution: Add getcellpixels() function to return xpixel * ypixel
              cell size on terminal Unix (mikoto2000).

    Patch 9.1.0855
    Problem:  setting 'cmdheight' may cause hit-enter-prompt and echo output
              to be missing
    Solution: Before cleaning the cmdline, check the need_wait_return flag
              (nwounkn).

    Patch 9.1.0856
    Problem:  mouseshape might be wrong on r and gr
    Solution: Call update_mousesape(-1) immediately (Yee Cheng Chin).

    Patch 9.1.0857
    Problem:  xxd: --- is incorrectly recognized as end-of-options
    Solution: improve xxds end-of-option parser (DungSaga).

    Patch 9.1.0858
    Problem:  Coverity complains about dead code (after v9.1.0852)
    Solution: adjust #ifdef FEAT_CLIPBOARD.

    Patch 9.1.0859
    Problem:  several problems with the GLVS plugin
    Solution: fix issues, add regression tests, require at least Vim 9.1
              (GuyBrush)

    Patch 9.1.0860
    Problem:  tests: mouse_shape tests use hard code sleep value (Bram Moolenaar)
    Solution: Use WaitForAssert() instead (Yee Cheng Chin).

    Patch 9.1.0861
    Problem:  Vim9: no runtime check for object member access of any var
              (after: 9.1.0850)
    Solution: Add runtime type compatibility check for object member
              accessed using a any variable (Yegappan Lakshmanan).

    Patch 9.1.0862
    Problem:  'wildmenu' not enabled by default in nocp mode
    Solution: Promote the default Vim value to true, it has been enabled
              in defaults.vim anyhow, so remove it there (Luca Saccarola).

    Patch 9.1.0863
    Problem:  getcellpixels() can be further improved
    Solution: Improve it further, add more tests (mikoto2000).

    Patch 9.1.0864
    Problem:  message history is fixed to 200
    Solution: Add the 'msghistory' option, increase the default value to 500
              (Shougo Matsushita).

    Patch 9.1.0865
    Problem:  filetype: org files are not recognized
    Solution: Detect '*.org' files as 'org' filetype,
              include filetype and syntax plugin (Luca Saccarola).

    Patch 9.1.0866
    Problem:  filetype: LLVM IR files are not recognized
    Solution: Detect '*.ll' files either as lifelines or llvm filetype
              (Wu, Zhenyu).

    Patch 9.1.0867
    Problem:  ins_compl_add() has too many args
    Solution: Refactor it and use an int array instead of 2 separate int
              args (glepnir).

    Patch 9.1.0868
    Problem:  the warning about missing clipboard can be improved
              (after v9.1.0852)
    Solution: Use different warnings depending on whether or not clipboard
              support is included in Vim, update related documentation

    Patch 9.1.0869
    Problem:  curswant not set on gm in folded line (citizenmatt)
    Solution: In a folded line, call update_curswant_force().

    Patch 9.1.0870
    Problem:  too many strlen() calls in eval.c
    Solution: Refactor eval.c to remove calls to STRLEN() (John Marriott).

    Patch 9.1.0871
    Problem:  getcellpixels() can be further improved
    Solution: Fix floating point exception, implement getcellpixels() in the
              UI (mikoto2000).

    Patch 9.1.0872
    Problem:  No test for W23 message (after v9.1.0868)
    Solution: Check for W23 message when accessing the clipboard fails.

    Patch 9.1.0873
    Problem:  filetype: Vivado files are not recognized
    Solution: Detect '*.mss' files as 'mss' filetype (Wu, Zhenyu).

    Patch 9.1.0874
    Problem:  filetype: karel files are not detected
    Solution: Detect '*.kl' files as karel filetype, include syntax and filetype
              plugin (Kirill Morozov).

    Patch 9.1.0875
    Problem:  filetype: hyprlang detection can be improved
    Solution: Detect '/hypr/*.conf' files as hyprlang filetype,
              include basic syntax highlighting (Luca Saccarola).

    Patch 9.1.0876
    Problem:  filetype: openCL files are not recognized
    Solution: Detect '*.cl' files as opencl or lisp filetype,
              include a opencl syntax and filetype plugin (Wu, Zhenyu).

    Patch 9.1.0877
    Problem:  tests: missing test for termdebug + decimal signs
    Solution: Add a termdebug test (Ubaldo Tiberi).

    Patch 9.1.0878
    Problem:  termdebug: cannot enable DEBUG mode
    Solution: Allow to specify DEBUG mode (Ubaldo Tiberi).

    Patch 9.1.0879
    Problem:  source is not consistently formatted
    Solution: Reformat sign.c and sound.c (Luca Saccarola).

    Patch 9.1.0880
    Problem:  filetype: C3 files are not recognized
    Solution: Detect '*.c3*' files as c3 filetype (Turiiya).

    Patch 9.1.0881
    Problem:  GUI: message dialog may not get focus
    Solution: Add window manager hint to give focus to the dialog (Chris White).

    Patch 9.1.0882
    Problem:  too many strlen() calls in insexpand.c
    Solution: Refactor insexpand.c and reduce number of calls to STRLEN(),
              fix a warning get_next_filename_completion(), add new function
              ins_compl_leader_len() (John Marriott).

    Patch 9.1.0883
    Problem:  message history cleanup is missing some tests
    Solution: Add tests, refactor common code into did_set_msghistory()
              (Shougo Matsushita).

    Patch 9.1.0884
    Problem:  gcc warns about uninitialized variable in vim_strnicmp_asc()
    Solution: Initialize variable to 1 (John Marriott).

    Patch 9.1.0885
    Problem:  style of sign.c can be improved
    Solution: Refactor code (Luca Saccarola).

    Patch 9.1.0886
    Problem:  filetype: debian control file not detected
    Solution: Detect 'debian/control' files as debcontrol filetype.

    Patch 9.1.0887
    Problem:  Wrong expression in sign.c (after v9.1.0885)
    Solution: Remove the duplicate expression.

    Patch 9.1.0888
    Problem:  leftcol property not available in getwininfo()
    Solution: Add leftcol property property (glepnir).

    Patch 9.1.0889
    Problem:  Possible unnecessary redraw after adding/deleting lines.
    Solution: Check b_mod_set before using b_mod_xlines to avoid using stale
              b_mod_xlines value (zeertzjq).

    Patch 9.1.0890
    Problem:  %! item not allowed for 'rulerformat' (yatinlala)
    Solution: Also allow to use %! for rulerformat option
              (Yegappan Lakshmanan).

    Patch 9.1.0891
    Problem:  building the completion list array is inefficient
    Solution: Refactor and improve ins_compl_build_pum() func (glepnir).

    Patch 9.1.0892
    Problem:  the max value of 'tabheight' is limited by other tabpages
    Solution: Limit the maximum value of 'cmdheight' to the current tabpage only.
              (Milly)

    Patch 9.1.0893
    Problem:  No test that undofile format does not regress
    Solution: Include a sample undofile to make sure we are always able to
              read it.

    Patch 9.1.0894
    Problem:  No test for what the spotbug compiler parses
    Solution: Test &makeprg for the SpotBugs compiler plugin (Aliaksei Budavei).

    Patch 9.1.0895
    Problem:  default history value is too small
    Solution: Promote the change from defaults.vim back to the C core, so increase
              the default 'history' option value from 50 to 200 (Lucca Saccarola)

    Patch 9.1.0896
    Problem:  completion list wrong after v9.1.0891
    Solution: Update compl_mach_array after leader change (glepnir).

    Patch 9.1.0897
    Problem:  filetype: pyrex files are not detected
    Solution: Detect '*.pxi' and '*.pyx+' as pyrex filetype (user202729).

    Patch 9.1.0898
    Problem:  runtime(compiler): pytest compiler not included
    Solution: Include pytest compiler, update the compiler completion test
              (Konfekt).

    Patch 9.1.0899
    Problem:  default for 'backspace' can be set in C code
    Solution: Promote the default for 'backspace' from defaults.vim to the C
              code (Luca Saccarola).

    Patch 9.1.0900
    Problem:  Vim9: digraph_getlist() does not accept bool argument (Maxim Kim)
    Solution: Accept boolean as first argument (Yegappan Lakshmanan).

    Patch 9.1.0901
    Problem:  MS-Windows: vimtutor batch script can be improved
    Solution: Update vimtutor.bat, validate languages using Powershell
              cultureinfo (RestorerZ).

    Patch 9.1.0902
    Problem:  filetype: Conda configuration files are not recognized
    Solution: Detect '.condarc' and 'condarc' files as yaml filetype (zeertzjq).

    Patch 9.1.0903
    Problem:  potential overflow in spell_soundfold_wsal()
    Solution: Protect wres from buffer overflow, by checking the length
              (Zdenek Dohnal)

    Patch 9.1.0904
    Problem:  Vim9: copy-paste error in class_defining_member()
    Solution: Use variable type VAR_CLASS instead (Zdenek Dohnal).

    Patch 9.1.0905
    Problem:  Missing information in CompleteDone event
    Solution: Add complete_word and complete_type to v:event dict (glepnir).

    Patch 9.1.0906
    Problem:  filetype: Nvidia PTX files are not recognized
    Solution: Detect '*.ptx' files as ptx filetype (Yinzuo Jiang).

    Patch 9.1.0907
    Problem:  printoptions:portrait does not change postscript Orientation
    Solution: Set Orientation depending on portrait suboption.

    Patch 9.1.0908
    Problem:  not possible to configure :messages
    Solution: Add the 'messagesopt' option (Shougo Matsushita).

    Patch 9.1.0909
    Problem:  Vim9: crash when calling instance method (Igbanam Ogbuluijah)
    Solution: Pass the object when calling a partial function
              (Yegappan Lakshmanan).

    Patch 9.1.0910
    Problem:  'messagesopt' does not check max wait time (after v9.1.0908)
    Solution: Check for max wait value (Shougo Matsushita).

    Patch 9.1.0911
    Problem:  Variable name for 'messagesopt' doesn't match short name
              (after v9.1.0908)
    Solution: Change p_meo to p_mopt.  Add more details to docs (zeertzjq).

    Patch 9.1.0912
    Problem:  xxd: integer overflow with sparse files and -autoskip
    Solution: Reset zero_seen when at the limit, change the type to char
              (sendittothenewts).

    Patch 9.1.0913
    Problem:  no error check for neg values for 'messagesopt' (after v9.1.0908).
    Solution: Add additional error checks and tests (h-east).

    Patch 9.1.0914
    Problem:  Vim9: compile_assignment() is too long
    Solution: Refactor compile_assignment() into smaller functions
              (Yegappan Lakshmanan)

    Patch 9.1.0915
    Problem:  GVim: default font size a bit too small
    Solution: Increase guifont size to 12 pt on GTK builds of gVim (matveyt).

    Patch 9.1.0916
    Problem:  messages.c is exceeding 80 columns
    Solution: Slightly reformat messages.c (h-east).

    Patch 9.1.0917
    Problem:  various vartabstop and shiftround bugs when shifting lines
    Solution: Fix the bugs, add new tests for shifting lines in various ways
              (Gary Johnson).

    Patch 9.1.0918
    Problem:  tiny Vim crashes with fuzzy buffer completion
    Solution: Adjust #ifdefs in ExpandBufnames() (826814741_6).

    Patch 9.1.0919
    Problem:  filetype: some assembler are files not recognized
    Solution: Detect '*.nasm' files as nasm filetype and '*.masm' as masm
              filetype (Wu, Zhenyu).

    Patch 9.1.0920
    Problem:  Vim9: compile_assignment() too long
    Solution: Refactor compile_assignment() function and split up into
              smaller parts (Yegappan Lakshmanan).

    Patch 9.1.0921
    Problem:  popupmenu logic is a bit convoluted
    Solution: Slightly refactor logic and use MIN/MAX() macros to simplify
              (glepnir).

    Patch 9.1.0923
    Problem:  wrong MIN macro in popupmenu.c (after v9.1.0921) (zeertzjq)
    Solution: Change it to MAX().

    Patch 9.1.0923
    Problem:  too many strlen() calls in filepath.c
    Solution: Refactor filepath.c and remove calls to STRLEN(), unify
              dos_expandpath() and unix_expandpath() into a single function.

    Patch 9.1.0924
    Problem:  Patch 9.1.0923 causes issues (Shane-XB-Qian)
    Solution: Back-out the change.

    Patch 9.1.0925
    Problem:  Vim9: expression compiled when not necessary
    Solution: Do not compile when ctx_skip is set, add a few more
              Vim9 expressions tests (Yegappan Lakshmanan).

    Patch 9.1.0926
    Problem:  filetype: Pixi lock files are not recognized
    Solution: Detect "pixi.lock" file as yaml filetype (Brandon Maier).

    Patch 9.1.0927
    Problem:  style issues in insexpand.c
    Solution: Add braces, use ternary operator to improve style (glepnir).

    Patch 9.1.0928
    Problem:  tests: test_popupwin fails because the filter command fails
    Solution: Add the "e" flag to the :s command to normalize the
              screendumps Last Change header so that it doesn't fail on
              "Pattern not found"

    Patch 9.1.0929
    Problem:  filetype: lalrpop files are not recognized
    Solution: Detect '*.lalrpop' files as lalrpop filetype (David Thievon)

    Patch 9.1.0930
    Problem:  tests: test_terminal2 may hang in GUI mode
    Solution: Break the loop in gui_mch_update() after at most 99 iterations
              (h-east).

    Patch 9.1.0931
    Problem:  ml_get error in terminal buffer (user202729)
    Solution: Call update_topline() in win_enter_ext() for terminal buffers
              (h-east).

    Patch 9.1.0932
    Problem:  new Italian tutor not installed
    Solution: Add Makefile rule, include it into the Filelist
    ("Philip H." <47042125+pheiduck@users.noreply.github.com>).

    Patch 9.1.0933
    Problem:  Vim9: vim9compile.c can be further improved
    Solution: Further refactor the compile assignment code
              (Yegappan Lakshmanan).

    Patch 9.1.0934
    Problem:  hard to view an existing buffer in the preview window
    Solution: Add the :pbuffer command (Yinzuo Jiang).

    Patch 9.1.0935
    Problem:  SpotBugs compiler can be improved
    Solution: runtime(compiler): Improve defaults and error handling for
              SpotBugs; update test_compiler.vim (Aliaksei Budavei).

    Patch 9.1.0936
    Problem:  cannot highlight completed text
    Solution: (optionally) highlight auto-completed text using the
              ComplMatchIns highlight group (glepnir).

    Patch 9.1.0937
    Problem:  test_undolist() is flaky
    Solution: Allow to match one additional optional whitespace char.

    Patch 9.1.0938
    Problem:  exclusive selection not respected when re-selecting block mode
              (Matt Ellis)
    Solution: Advance selection by another character when using
              selection=exclusive and visual block mode

    Patch 9.1.0939
    Problem:  make installtutor fails
              (Antonio Giovanni Colombo, after v9.1.0932)
    Solution: Fix Makefile rule.

    Patch 9.1.0940
    Problem:  Wrong cursor shape with "gq" and 'indentexpr' executes :normal
    Solution: Update cursor and mouse shape after restoring old_State (zeertzjq).

    Patch 9.1.0941
    Problem:  ComplMatchIns doesn't work after multibyte chars (after v9.1.0936).
    Solution: Use (ptr - line) instead of wlv.col (zeertzjq).

    Patch 9.1.0942
    Problem:  a few typos were found
    Solution: fix them (zeertzjq).

    Patch 9.1.0943
    Problem:  vim9compile.c can be further improved
    Solution: Refactor the compile_lhs function (Yegappan Lakshmanan).

    Patch 9.1.0944
    Problem:  tests: test_registers fails when not run under X11
    Solution: filter out warning message.

    Patch 9.1.0945
    Problem:  ComplMatchIns highlight doesn't end after inserted text.
    Solution: Handle ComplMatchIns highlight more like search highlight.
              Fix off-by-one error. Handle deleting text properly (zeertzjq).

    Patch 9.1.0946
    Problem:  cross-compiling fails on osx-arm64
    Solution: use vim_cv_timer_create_with_lrt() instead of
              vim_cv_timer_create_works() (Brandon Maier).

    Patch 9.1.0947
    Problem:  Coverity comlains about un-initialized var (after v9.1.0943).
    Solution: Initialize variable (Yegappan Lakshmanan).

    Patch 9.1.0948
    Problem:  Missing cmdline completion for :pbuffer.
    Solution: Add cmdline completion for :pbuffer like :buffer (zeertzjq).

    Patch 9.1.0949
    Problem:  popups inconsistently shifted to the left
    Solution: Always shift non-fixed popups to the left when the
              text would be truncated (Boris Staletic).

    Patch 9.1.0950
    Problem:  filetype: fennelrc files are not recognized
    Solution: Detect 'fennelrc' files as fennel filetype (Wu Zhenyu).

    Patch 9.1.0951
    Problem:  filetype: jshell files are not recognized
    Solution: Detect '*.jsh' files as java filetype (Konfekt).

    Patch 9.1.0952
    Problem:  Vim9: missing type checking for any type assignment (Ernie Rael)
    Solution: When assigning to a list item, if the type of the LHS item is
              any, then use the list item type (Yegappan Lakshmanan).

    Patch 9.1.0953
    Problem:  filetype: APKBUILD files not correctly detected
    Solution: Detect 'APKBUILD' files as apkbuild filetype,
              include a apkbuild syntax script (which basically
              just sources the sh.vim syntax file) (Hugo Osvaldo Barrera).

    Patch 9.1.0954
    Problem:  popupmenu.c can be improved
    Solution: Slightly refactor the logic (glepnir).

    Patch 9.1.0955
    Problem:  Vim9: vim9compile.c can be further improved
    Solution: Refactor the compile_def_function (Yegappan Lakshmanan).

    Patch 9.1.0956
    Problem:  completion may crash, completion highlight wrong with preview
              window (after v9.1.0954)
    Solution: Correctly calculate scroll offset, check for preview window
              when adding extra highlighting (glepnir).

    Patch 9.1.0957
    Problem:  MS-Windows: conversion warnings
    Solution: Add explicit type casts (Yegappan Lakshmanan).

    Patch 9.1.0958
    Problem:  filetype: supertux2 config files detected as lisp
    Solution: Detect supertux2 config files as scheme instead (Wu, Zhenyu).

    Patch 9.1.0959
    Problem:  Coverity complains about type conversion (after v9.1.0957)
    Solution: Use size_t instead of int for file length (Yegappan Lakshmanan).

    Patch 9.1.0960
    Problem:  filetype: hy history files are not recognized
    Solution: Detect '*.hy', '.hy-history' files as hy filetype,
              detect '.lips_repl_history' files are scheme filetype (Wu, Zhenyu).

    Patch 9.1.0961
    Problem:  filetype: TI gel files are not recognized
    Solution: Detect '*.gel' files as gel filetype, include get filetype and
              syntax plugins (Wu, Zhenyu).

    Patch 9.1.0962
    Problem:  filetype: bun.lock file is not recognized
    Solution: Detect 'bun.lock' file as jsonc filetype (Anton Kastritskii).

    Patch 9.1.0963
    Problem:  fuzzy-matching does not prefer full match (Maxim Kim)
    Solution: Add additional score for a full match (glepnir).

    Patch 9.1.0964
    Problem:  MS-Windows: sed error with MinGW
    Solution: Use double quotes for sed, update compilation notes
              (Andrey A Voropaev)

    Patch 9.1.0965
    Problem:  filetype: sh filetype set when detecting the use of bash
    Solution: When bash is detected, use 'bash' filetype instead (Luca Saccarola).

    Patch 9.1.0966
    Problem:  Vim9: :enum command can be shortened
    Solution: Prevent shortening of :enum command by adding the EX_WHOLE
              flag to command definition (h-east).

    Patch 9.1.0967
    Problem:  SpotBugs compiler can be further improved
    Solution: Introduce event-driven primitives for SpotBugs (Aliaksei Budavei).

    Patch 9.1.0968
    Problem:  tests: GetFileNameChecks() isn't fully sorted by filetype name
    Solution: Re-sort the list.

    Patch 9.1.0969
    Problem:  ghostty not using kitty protocol by default (00-kat)
    Solution: Update keyprotocol option default and include ghostty.

    Patch 9.1.0970
    Problem:  VMS: build errors on VMS architecture
    Solution: Define cellsize struct, use C89 to initialize lval_root_S
              struct (Zoltan Arpadffy)

    Patch 9.1.0971
    Problem:  filetype: SLNX files are not recognized
    Solution: Detect '*.slnx' files as xml filetype (Gustav Eikaas).

    Patch 9.1.0972
    Problem:  filetype: TI linker map files are not recognized
    Solution: Detect TI linker map files as lnkmap filetype (Wu, Zhenyu).

    Patch 9.1.0973
    Problem:  too many strlen() calls in fileio.c
    Solution: Refactor fileio.c and remove calls to STRLEN(),
              check for out-of-memory condition in buf_check_timestamp()
              (John Marriott).

    Patch 9.1.0974
    Problem:  typo in change of (Christ van Willegen)
    Solution: Add back the square brackets (John Marriott).

    Patch 9.1.0975
    Problem:  Vim9: interpolated string expr not working in object methods
              (Igbanam Ogbuluijah)
    Solution: Check the evalarg argument (Yegappan Lakshmanan).

    Patch 9.1.0976
    Problem:  Vim9: missing return statement with throw (atitcreate)
    Solution: Treat a throw statement at the end of an if-else block as a
              return statement (Yegappan Lakshmanan).

    Patch 9.1.0977
    Problem:  filetype: msbuild filetypes are not recognized
    Solution: Detect msbuild files as xml filetype (Gustav Eikaas).

    Patch 9.1.0978
    Problem:  GUI tests sometimes fail when setting 'scroll' options
    Solution: Decrease the 'scroll' and 'scrolljump' option value from 20 to
              15, in case the Gui window is not large enough to handle 20.

    Patch 9.1.0979
    Problem:  VMS: type warning with $XDG_VIMRC_FILE (Zoltan Arpadffy)
    Solution: Add explicit (char_u *) type cast to mch_getenv() call.

    Patch 9.1.0980
    Problem:  no support for base64 en-/decoding functions in Vim Script
              (networkhermit)
    Solution: Add the base64_encode() and base64_decode() functions
              (Yegappan Lakshmanan).

    Patch 9.1.0981
    Problem:  tests: typo in test_filetype.vim
    Solution: fix comment, update lnkmap syntax file and add DESCT keyword
              (Wu, Zhenyu).

    Patch 9.1.0982
    Problem:  TI linker files are not recognized
    Solution: Inspect '*.cmd' files and detect TI linker files as 'lnk' filetype,
              include a lnk ftplugin and syntax script (Wu, Zhenyu).

    Patch 9.1.0983
    Problem:  not able to get the displayed items in complete_info()
              (Evgeni Chasnovski)
    Solution: Return the visible items via the "matches" key for
              complete_info() (glepnir).

    Patch 9.1.0984
    Problem:  exception handling can be improved
    Solution: Add v:stacktrace and getstacktrace().

    Patch 9.1.0985
    Problem:  Vim9: some ex commands can be shortened
    Solution: Disallow shortening of :abstract, :interface and :type (h-east).

    Patch 9.1.0986
    Problem:  filetype: 'jj' filetype is a bit imprecise
    Solution: rename 'jj' filetype to 'jjdescription' (Gregory Anders).

    Patch 9.1.0987
    Problem:  filetype: cake files are not recognized
    Solution: Detect '*.cake' files as cs filetype (Zoe Roux).

    Patch 9.1.0988
    Problem:  Vim9: no error when using uninitialized var in new()
              (lifepillar, Aliaksei Budavei)
    Solution: Give an error if an uninitialized object variable is referenced
              in new() (Yegappan Lakshmanan).

    Patch 9.1.0989
    Problem:  Vim9: Whitespace after the final enum value causes a syntax
              error
    Solution: Fix parsing to allow whitespace after the final enum value.
              (Doug Kearns)

    Patch 9.1.0990
    Problem:  Inconsistent behavior when changing cmdheight by resizing the
              topframe through wincmds and dragging laststatus. Changing
              cmdheight by resizing the topframe does not trigger OptionSet.
    Solution: Consolidate logic for changing the cmdheight, set the option
              value to handle side-effects (Luuk van Baal).

    Patch 9.1.0991
    Problem:  v:stacktrace has wrong type in Vim9 script.
    Solution: Change the type to t_list_dict_any.  Fix grammar in docs (zeertzjq).

    Patch 9.1.0992
    Problem:  Vim9: double-free after v9.1.0988 (h-east)
    Solution: Clear typval pointer, before setting the type
              (Yegappan Lakshmanan)

    Patch 9.1.0993
    Problem:  Although Patch 9.1.0990 fixed a real problem/inconsistency,
              it also introduced new behavior that may break BWC and/or be
              unexpected. Before 9.1.0990, window commands could make the
              topframe smaller (without changing 'cmdheight'; quirk that is
              now fixed), but did not allow extending the topframe beyond
              the 'cmdheight' set by the user. After 9.1.0990, the user can
              reduce the 'cmdheight' below the value they set explicitly,
              through window commands, which may lead to confusion.
              (aftere v9.1.0990)
    Solution: Store the value explicitly set by the user and clamp the
              'cmdheight' when resizing the topframe. This also applies to
              dragging laststatus, which in contrast to window commands
              _did_ allow reducing the 'cmdheight' to values below the one
              set by the user. So with this Patch there is still new
              behavior, but I think in a way that is less surprising.
              While at it, also fix a Coverity warning, introduced in
              v9.1.0990 (Luuk van Baal).

    Patch 9.1.0994
    Problem:  Vim9: not able to use comment after opening curly brace
            (lifepillar)
    Solution: Allow to use comments after curly braces of an inner-block,
              modify the logic to search for comment in a line, update Vim9
              tests to use specific class type instead of any
              (Yegappan Lakshmanan).

    Patch 9.1.0995
    Problem:  filetype: shaderslang files are not detected
    Solution: Detect '*.slang' files as shaderslang filetype,
              include a filetype and syntax script (mtvare6)

    Patch 9.1.0996
    Problem:  ComplMatchIns may highlight wrong text
    Solution: Don't highlight in case of fuzzy match,
              skip-highlight when not inserting anything (glepnir).

    Patch 9.1.0997
    Problem:  too many strlen() calls in drawscreen.c
    Solution: Refactor drawscreen.c and remove calls to strlen(),
              make get_keymap_str() (in screen.c) return string length
              instead of TRUE/FALSE (John Marriott).

    Patch 9.1.0998
    Problem:  filetype: TI assembly files are not recognized
    Solution: Inspect '*.sa' and assembly files and detect TI assembly
              files, include filetype plugin and syntax script for TI
              assembly files (Wu, Zhenyu).

    Patch 9.1.0999
    Problem:  leaking finished exception (after v9.1.0984)
    Solution: Use finish_exception to clean up caught exceptions
              (Yee Cheng Chin)

    Patch 9.1.1000
    Problem:  tests: ruby tests fail with Ruby 3.4
    Solution: Adjust expected output for Ruby 3.4 (Yee Cheng Chin)

    Patch 9.1.1001
    Problem:  ComplMatchIns highlight hard to read on light background
              (after v9.1.0996)
    Solution: Define the highlighting group cleared, it should be configured in
              colorschemes separately (glepnir).

    Patch 9.1.1002
    Problem:  Vim9: unknown function error with interface declaring a
              function variable (lifepillar)
    Solution: Use correct instruction for getting interface member variables
              (Yegappan Lakshmanan)

    Patch 9.1.1003
    Problem:  [security]: heap-buffer-overflow with visual mode when
              using :all, causing Vim trying to access beyond end-of-line
              (gandalf)
    Solution: Reset visual mode on :all, validate position in gchar_pos()
              and charwise_block_prep().

    Patch 9.1.1004
    Problem:  tests: a few termdebug tests are flaky; test_termdebug_basic()
              and test_termdebug_config_types() may fail if there is too
              much load
    Solution: Set g:test_is_flaky.

    Patch 9.1.1005
    Problem:  completion text is highlighted even with no pattern found
    Solution: use ins_compl_leader_len() instead of checking
              compl_leader.length (glepnir).

    Patch 9.1.1006
    Problem:  PmenuMatch completion highlight can be combined
    Solution: Combine highlight groups PmenuMatch with Pmenu and
              PmenuMatchSel with PmenuSel (glepnir).

    Patch 9.1.1007
    Problem:  filetype: various ignore are not recognized
    Solution: Detect rg/docker/npm/vvsce ignore files as 'gitgnore' filetype
              (Wu, Zhenyu).

    Patch 9.1.1008
    Problem:  tests: test for Patch 9.1.1006 doesn't fail without the patch
              (after v9.1.1006)
    Solution: Add ctermbg=NONE to the highlight groups (zeertzjq).

    Patch 9.1.1009
    Problem:  diff feature can be improved
    Solution: Include the linematch diff alignment algorithm (Jonathon).

    Patch 9.1.1010
    Problem:  filetype: VisualCode setting file not recognized
    Solution: Detect json files in VSCode config directory as jsonc filetype
              (Konfekt).

    Patch 9.1.1011
    Problem:  Popup menu internal error with some abbr in completion item.
    Solution: Don't compute attributes when there is no corresponding text.
              Reduce indent in pum_redraw() while at it (zeertzjq).

    Patch 9.1.1012
    Problem:  Vim9: class interface inheritance not correctly working
    Solution: Make the class inherit the interfaces of the super class.

    Patch 9.1.1013
    Problem:  Vim9: Regression caused by Patch v9.1.0646
    Solution: Translate the function name before invoking it in call()
              (Yegappan Lakshmanan).

    Patch 9.1.1014
    Problem:  Vim9: variable not found in transitive import
    Solution: Allow nested import (Hirohito Higashi).

    Patch 9.1.1015
    Problem:  Coverity complains about dereferencing NULL value
    Solution: Check that cms2 is not null.

    Patch 9.1.1016
    Problem:  Not possible to convert string2blob and blob2string
    Solution: Add support for the blob2str() and str2blob() functions.

    Patch 9.1.1017
    Problem:  Vim9: Patch 9.1.1013 causes a few problems
    Solution: Translate the function name only when it is a string
              (Yegappan Lakshmanan).

    Patch 9.1.1018
    Problem:  v9.1.0743 causes regression with diff mode
    Solution: Fix the regression with overlapping regions.

    Patch 9.1.1019
    Problem:  filetype: fd ignore files are not recognized
    Solution: Detect .fdignore files as gitignore filetype.

    Patch 9.1.1020
    Problem:  no way to get current selected item in a async context
    Solution: Add completed flag to show the entries of currently selected
              index item (@glepnir).

    Patch 9.1.1021
    Problem:  string might be used without a trailing NUL (after v9.1.0997)
    Solution: Make sure that the buffer is NUL terminated.

    Patch 9.1.1022
    Problem:  linematch option value not completed (after v9.1.1009)
    Solution: Update diffoption completion values.

    Patch 9.1.1023
    Problem:  Coverity complains about dereferencing NULL pointer
    Solution: Verify curdiff is not null before dereferencing it.

    Patch 9.1.1024
    Problem:  blob2str/str2blob() do not support list of strings (after v9.1.1016)
    Solution: Add support for using a list of strings (Yegappan Lakshmanan).

    Patch 9.1.1025
    Problem:  wrong return type of blob2str()
    Solution: Update return to list of string (Yegappan Lakshmanan).

    Patch 9.1.1026
    Problem:  filetype: swc configuration files are not recognized
    Solution: Detect .swcrc files as json filetype (Marces Engel).

    Patch 9.1.1027
    Problem:  no sanitize check when running linematch
    Solution: Add sanitize check before applying the linematch algorithm,
              similar to diff_find_change() (Jonathon).

    Patch 9.1.1028
    Problem:  too many strlen() calls in screen.c
    Solution: Refactor screen.c and remove calls to strlen(),
              verify that leadmultispace != NULL (John Marriott).

    Patch 9.1.1029
    Problem:  the installer can be improved
    Solution: Update the installer with the correct README and LICENSE
              files, improve the documentation, add a Makefile for the
              installer, update the Makefiles (RestorerZ).

    Patch 9.1.1030
    Problem:  filetype: setting bash filetype is backwards incompatible
    Solution: Revert Patch v9.1.0965, detect bash scripts again as sh filetype.

    Patch 9.1.1031
    Problem:  Coverity complains about insecure data handling (v9.1.1024)
    Solution: Use int consistently to access the blob index (Yegappan Lakshmanan).

    Patch 9.1.1032
    Problem:  link error when FEAT_SPELL not defined (after v9.1.1016,
              John Marriott)
    Solution: Adjust ifdefs (Yegappan Lakshmanan).

    Patch 9.1.1033
    Problem:  tests: shaderslang was removed from test_filetype erroneously
              (Christian Clason, after v9.1.1030)
    Solution: Restore the test.

    Patch 9.1.1033
    Problem:  Vim9: compiling abstract method fails without return
              (Aliaksei Budavei)
    Solution: Don't require return for an abstract method (Ernie Rael).

    Patch 9.1.1035
    Problem:  Vim9: memory leak with blob2str()
    Solution: Free converted_str (Yegappan Lakshmanan).

    Patch 9.1.1036
    Problem:  make install fails when using shadowdir (after v9.1.1029).
    Solution: Also link in README.txt and LICENSE file.

    Patch 9.1.1037
    Problem:  Vim9: confusing error when using abstract method via super
    Solution: Display an error when an abstract method is invoked using
              super (Ernie Rael).

    Patch 9.1.1038
    Problem:  tests: test_channel.py fails with IPv6 (eds-collabora)
    Solution: Use 127.0.0.1 instead of localhost.

    Patch 9.1.1039
    Problem:  Vim9: comments are outdated
    Solution: Update comments, and include an enum example in the help
              (Yegappan Lakshmanan).

    Patch 9.1.1040
    Problem:  Vim9: imported type cannot be used as func return type
              (Dayvid Albuquerque)
    Solution: Temporarily reset the is_export flag (Yegappan Lakshmanan).

    Patch 9.1.1041
    Problem:  Vim9: out-of-bound access when echoing an enum
    Solution: Add NUL to growarray, check that ufunc is non-null before accessing
              it to make Coverity happy (Yegappan Lakshmanan).

    Patch 9.1.1042
    Problem:  filetype: just files are not recognized
    Solution: Adjust filetype detection pattern, detect just shebang line,
              include just ftplugin, indent and syntax plugin (Peter Benjamin).

    Patch 9.1.1043
    Problem:  [security]: segfault in win_line() (fizz-is-on-the-way)
    Solution: Check that ScreenLines is not NULL.

    Patch 9.1.1044
    Problem:  Vim9: Patch 9.1.1014 causes regressions
    Solution: Revert it for now.

    Patch 9.1.1045
    Problem:  filetype: N-Tripels and TriG files are not recognized
    Solution: Detect '*.nt' files as ntriples filetype and '*.trig' files
              as trig filetype (Gordian Dziwis)

    Patch 9.1.1046
    Problem:  fuzzymatching doesn't prefer matching camelcase (Tomasz N).
    Solution: Add extra score when case matches (glepnir).

    Patch 9.1.1047
    Problem:  Makefiles uses non-portable syntax (simo-zz, after v9.1.1029)
    Solution: Revert auto-generation of MAJOR/MINOR variables.

    Patch 9.1.1048
    Problem:  Crash after scrolling and pasting in silent Ex mode
            (fizz-is-on-the-way)
    Solution: Don't move cursor to line 0 when scrolling (zeertzjq).

    Patch 9.1.1049
    Problem:  Insert-completed items are always sorted, although the LSP
              spec[1] standard defines sortText in the returned
              completionitem list. This means that the server has sorted the
              results. When fuzzy is enabled, this will break the server's
              sorting results.
    Solution: Disable sorting of candidates when "nosort" is set in
              'completeopt'

    Patch 9.1.1050
    Problem:  Too many strlen() calls in os_unix.c
    Solution: Refactor os_unix.c and remove calls to strlen() (John Marriott).

    Patch 9.1.1051
    Problem:  tests: no support for env variables when running Vim in terminal
    Solution: support the "env" argument in RunVimInTerminal(), close swapfiles
              properly in test_termcodes, use CheckFeature in test_termencoding

    Patch 9.1.1052
    Problem:  tests: off-by-one error in CheckCWD in test_debugger.vim
    Solution: Fix off-by-one in CheckCWD leading to local tests failure
              (Yee Cheng Chin)

    Patch 9.1.1053
    Problem:  "nosort" enables fuzzy filtering even if "fuzzy" isn't in
              'completeopt' (after v9.1.1049)
    Solution: Only enable fuzzy filtering when "fuzzy" is in 'completeopt'
              (zeertzjq).

    Patch 9.1.1054
    Problem:  Vim doesn't work well with TERM=xterm-direct (Andrea Pappacoda).
    Solution: Detect if a terminal supports true-colors and enable termguicolors

    Patch 9.1.1055
    Problem:  make install fails because of a missing dependency
    Solution: Add explicit dependencies for tutor/{en,it} (Sergei Trofimovich).

    Patch 9.1.1056
    Problem:  Vim doesn't highlight to be inserted text when completing
    Solution: Add support for the "preinsert" 'completeopt' value (glepnir).

    Patch 9.1.1057
    Problem:  Superfluous cleanup steps in test_ins_complete.vim.
    Solution: Remove unnecessary :bw! and :autocmd! commands.
              Also remove unnecessary STRLEN() in insexpand.c (zeertzjq).

    Patch 9.1.1058
    Problem:  translation(sr): Missing Serbian translation for the tutor
    Solution: Include new Serbian translation for the new tutor,
              include translation for chapter 2 of the traditional tutor,
              update the Makefiles for installing the runtime files (Ivan Pešić).

    Patch 9.1.1059
    Problem:  completion: input text deleted with preinsert when adding leader
    Solution: Remove compl_length and check the ptr for being equal
              to pattern when preinsert is active (glepnir).

    Patch 9.1.1060
    Problem:  Vim always enables 'termguicolors' in a terminal, even
              when not wanted (after v9.1.1054).
    Solution: Respect `:set notermguicolors` in vimrc file.

    Patch 9.1.1061
    Problem:  tests: test_glvs fails when unarchiver not available
              (Brian L. Matthews)
    Solution: Check if an unarchiver is available, skip the test otherwise.

    Patch 9.1.1062
    Problem:  terminal: E315 when dragging the terminal with the mouse
              (user202729)
    Solution: Call update_topline() and validate_cursor() when clicking
              on the status line with the mouse (Hirohito Higashi).

    Patch 9.1.1063
    Problem:  too many strlen() calls in userfunc.c
    Solution: Refactor userfunc.c and remove calls to strlen(),
              drop set_ufunc_name() and roll it into alloc_ufunc(),
              check for out-of-memory condition in trans_function_name_ext()
              (John Marriott).

    Patch 9.1.1064
    Problem:  not possible to use plural forms with gettext()
    Solution: Implement ngettext() Vim script function (Christ van Willegen).

    Patch 9.1.1065
    Problem:  no digraph for "Approaches the limit"
    Solution: Add the digraph using .= (Hans Ginzel).

    Patch 9.1.1066
    Problem:  Heap-use-after-free and stack-use-after-scope with :14verbose
              when using :return and :try (after 9.1.1063).
    Solution: Move back the vim_free(tofree) and the scope of numbuf[] (zeertzjq).

    Patch 9.1.1067
    Problem:  tests: Test_termwinscroll_topline2 fails on MacOS (after v9.1.1062)
    Solution: Reduce termwinscroll further, increase term_wait time.

    Patch 9.1.1068
    Problem:  getchar() can't distinguish between C-I and Tab.
    Solution: Add {opts} to pass extra flags to getchar() and getcharstr(),
              with "number" and "simplify" keys.

    Patch 9.1.1069
    Problem:  preinsert text completions not deleted with <C-W>/<C-U>
              (ddad431, after v9.1.1059)
    Solution: Handle <C-W> or <C-U> specifically and clear the completion
              (glepnir).

    Patch 9.1.1070
    Problem:  Cannot control cursor positioning of getchar().
    Solution: Add "cursor" flag to {opts}, with possible values "hide",
              "keep" and "msg".

    Patch 9.1.1071
    Problem:  Arguments of a function are missing after failing to redefine
              it (after 8.2.2505), and heap-use-after-free with script-local
              function (after 9.1.1063).
    Solution: Don't clear arguments or free uf_name_exp when failing to
              redefine an existing function (zeertzjq).

    Patch 9.1.1072
    Problem:  'diffopt' "linematch" cannot be used with {n} less than 10
              digits (after v9.1.1022)
    Solution: Fix off-by-one error when checking for digit (zeertzjq).

    Patch 9.1.1073
    Problem:  tests: test_compiler fails on Windows without Maven.
    Solution: Add Xspotbugs directory to $PATH when mvn is not available
              (zeertzjq).

    Patch 9.1.1074
    Problem:  Strange error when heredoc marker starts with "trim".
    Solution: Check for whitespace after "trim" or "eval" (zeertzjq).

    Patch 9.1.1075
    Problem:  Vim9: length variable not used in compile_load()
    Solution: Use len instead of re-calculating the length (Hirohito Higashi).

    Patch 9.1.1076
    Problem:  vim_strnchr() is strange and unnecessary (after v9.1.1009)
    Solution: Remove vim_strnchr() and use memchr() instead.  Also remove a
              comment referencing an #if that is no longer present.

    Patch 9.1.1077
    Problem:  Syntax engine interpreted contains=TOP as matching nothing
              inside included files, since :syn-include forces HL_CONTAINED
              on for every included item. After 8.2.2761, interprets
              contains=TOP as contains=@INCLUDED, which is also not correct
              since it doesn't respect exclusions, and doesn't work if there
              is no @INCLUDED cluster.
    Solution: Revert Patch 8.2.2761, instead track groups that have had
              HL_CONTAINED forced, and interpret contains=TOP and
              contains=CONTAINED using this (Theodore Dubois).

    Patch 9.1.1078
    Problem:  Terminal ansi colors off by one after tgc reset
    Solution: Set the correct index for libvterm palette, revert parts in
              libvterm/src/pen.c that deviated from upstream (Julio B)

    Patch 9.1.1079
    Problem:  GUI late startup leads to uninitialized scrollbars
    Solution: initialize scrollbars for all windows in all tabpages
              (Yee Cheng Chin).

    Patch 9.1.1080
    Problem:  filetype: Mill files are not recognized
    Solution: Detect '*.mill' files as scala filetype.

    Patch 9.1.1081
    Problem:  has('bsd') is true for GNU/Hurd
    Solution: Exclude GNU/Hurd from BSD feature flag (Zhaoming Luo).

    Patch 9.1.1082
    Problem:  unexpected DCS responses may cause out of bounds reads
              (after v9.1.1054)
    Solution: Check that the parsed value is '=' as expected (Julio B).

    Patch 9.1.1083
    Problem:  setreg() doesn't correctly handle mbyte chars in blockwise mode
    Solution: Use mb_ptr2len_len function pointer (Yee Cheng Chin).

    Patch 9.1.1084
    Problem:  Unable to persistently ignore events in a window and its buffers.
    Solution: Add 'eventignorewin' option to ignore events in a window and buffer
            (Luuk van Baal).

    Patch 9.1.1085
    Problem:  filetype: cmmt files are not recognized
    Solution: Detect '*.cmmt' as trace32 filetype (Christian Sax).

    Patch 9.1.1086
    Problem:  completion doesn't work with multi lines (Łukasz Jan Niemier)
    Solution: Handle linebreaks in completion code as expected (glepnir).

    Patch 9.1.1087
    Problem:  Vim9: import with extends may crash
    Solution: Check otv for being NULL before trying to access it
            (Hirohito Higashi).

    Patch 9.1.1088
    Problem:  tests: plugin tests are named inconsistently
    Solution: Group them under a common 'plugin' prefix.

    Patch 9.1.1089
    Problem:  tests: No check when tests are run under Github actions
    Solution: Add the CheckGithubActions check command and skip test if needed.

    Patch 9.1.1090
    Problem:  tests: test_terminwscroll_topline2 unreliable
    Solution: Instead of using term_wait() with a specific time, use
              terminal-api and to wait until the terminal is finished
              (Yee Cheng Chin).

    Patch 9.1.1091
    Problem:  tests: timeout might be a bit too small
    Solution: Increase the test timeout from 30 to 45 seconds

    Patch 9.1.1092
    Problem:  tests: fix expected return code for python 3.13 on Windows
    Solution: Check for return code 1 or 123 on Windows.

    Patch 9.1.1093
    Problem:  tests: output of test Test_terminal_eof_arg_win32_ctrl_z depends on
              python version.
    Solution: Check for the expected output in both, the second last line
              and last line.

    Patch 9.1.1094
    Problem:  Vim9: problem finding implemented method for abstract method
              in type hierarchy (Aliaksei Budavei)
    Solution: When checking for abstract methods in an extended class, check
              whether an abstract method is implemented in one of the parent
              classes (Yegappan Lakshmanan).

    Patch 9.1.1095
    Problem:  tests: matchparen plugin test wrongly named (zeertzjq)
    Solution: Rename test_matchparen to test_plugin_matchparen
              to be consistent with the other plugin tests.

    Patch 9.1.1096
    Problem:  if_perl: Perl 5.38 adds new symbols causing link failure
    Solution: add stub symbols (Drew Vogel).

    Patch 9.1.1097
    Problem:  --log with non-existent path causes a crash (Ekkosun)
    Solution: Split initialization phase and init the execution stack
              earlier (Hirohito Higashi)

    Patch 9.1.1098
    Problem:  Leaking memory with completing multi lines (after v9.1.1086)
    Solution: Free allocated memory (glepnir).

    Patch 9.1.1099
    Problem:  Vim9: import with extends may crash, v9.1.1087 wasn't the
              correct way to fix it).
    Solution: When using an import class, Check for a valid class member
              variable at compile time (Yegappan Lakshmanan).

    Patch 9.1.1100
    Problem:  tests: Test_log_nonexistent only works on Linux
              (after v9.1.1097)
    Solution: Add CheckUnix condition.

    Patch 9.1.1101
    Problem:  insexpand.c hard to read
    Solution: Refactor slightly to make it better readable (glepnir).

    Patch 9.1.1102
    Problem:  tests: Test_WinScrolled_Resized_eiw() uses wrong filename
              (Luuk van Baal, after v9.1.1084)
    Solution: Rename the filename to something more unique.

    Patch 9.1.1103
    Problem:  if_perl: still some compile errors with Perl 5.38
    Solution: Copy declaration of PL_memory_wrap from Perl header (Drew Vogel).

    Patch 9.1.1104
    Problem:  CI: uses Ubuntu 22.04 runners
    Solution: Switch to Ubuntu 24.04 runners, make a few adjustments for
              different $TMPDIR (Drew Vogel).

    Patch 9.1.1105
    Problem:  Vim9: no support for protected new() method
    Solution: Support the protected "_new()" object method (Yegappan Lakshmanan).

    Patch 9.1.1106
    Problem:  tests: Test_log_nonexistent() causes asan failure (Hirohito Higashi)
    Solution: Don't run vim using system(), but run Vim in a terminal.

    Patch 9.1.1107
    Problem:  Cannot loop through completion menu with fuzzy and nosort in
              'completeopt' (Tomasz N)
    Solution: Reset cur to zero and update compl_shown_match when
              'completeopt' contains "nosort" but not "noselect" (glepnir).

    Patch 9.1.1108
    Problem:  'smoothscroll' gets stuck with 'listchars' "eol".
    Solution: Count size of 'listchars' "eol" in line size when scrolling
              (zeertzjq).

    Patch 9.1.1109
    Problem:  cmdexpand.c hard to read
    Solution: Refactor the file slightly (glepnir).

    Patch 9.1.1110
    Problem:  Vim tests are slow and flaky at the same time due to reliance
              on timeouts which are unreliable.
    Solution: Improve Vim test performance and reduce flakiness
              (Yee Cheng Chin)

    Patch 9.1.1111
    Problem:  Vim9: variable not found in transitive import (lifepillar)
    Solution: Fix import and class extends (Hirohito Higashi).

    Patch 9.1.1112
    Problem:  Inconsistencies in get_next_or_prev_match() (after 9.1.1109).
    Solution: Change "file" to "entry" or "match" in comments.  Use the same
              order of branches for PAGEUP and PAGEDOWN (zeertzjq).

    Patch 9.1.1113
    Problem:  tests: Test_terminal_builtin_without_gui waits 2 seconds
    Solution: Add --not-a-term to remove the annoying 2s delay in error
              message when Vim detects that stdio are not from a terminal
              (Yee Cheng Chin).

    Patch 9.1.1114
    Problem:  Enabling termguicolors automatically confuses users. Since
              querying the terminal for the RGB flag happens asynchronously,
              enabling termguicolors is noticeable by users as the highlighting
              changes and is therefore unexpected (after v9.1.1054).
    Solution: Comment out that part for now. We may need another way to enable
              this in the future.

    Patch 9.1.1115
    Problem:  [security]: use-after-free in str_to_reg() (fizz-is-on-the-way)
    Solution: When redirecting the :display command, check that one
              does not output to the register being displayed

    Patch 9.1.1116
    Problem:  Vim9: super not supported in lambda expressions (Aliaksei Budavei)
    Solution: Support using the super keyword in a closure in an instance
              method (Yegappan Lakshmanan).

    Patch 9.1.1117
    Problem:  there are a few minor style issues
    Solution: Fix the issues (Hirohito Higashi).

    Patch 9.1.1118
    Problem:  tests: test_termcodes fails (after: v9.1.1114)
    Solution: Adjust the test for the expected termguicolors value.

    Patch 9.1.1119
    Problem:  Vim9: Not able to use an autoloaded class from another
              autoloaded script (Elliot)
    Solution: Make it work (Yegappan Lakshmanan).

    Patch 9.1.1120
    Problem:  tests: Test_registers fails (T.J. Townsend, after v9.1.1115).
    Solution: Require clipboard feature

    Patch 9.1.1121
    Problem:  Enter does not insert newline with "noselect" when the pum is
              visible (lifepillar)
    Solution: When Enter is pressed and no complete-item is selected,
              ins_compl_prep returns false, and the edit function continues
              processing Enter to insert a new line (glepnir).

    Patch 9.1.1122
    Problem:  too many strlen() calls in findfile.c
    Solution: Refactor findfile.c and remove calls to strlen() (John Marriott).

    Patch 9.1.1123
    Problem:  Highlight groups PopupSelected/PopupNotification/
              MessageWindow are supposed to fall back to default highlight
              groups if they are not defined. However, once a colorscheme
              has defined them, switching to another colorscheme that
              doesn't do so will leave behind a cleared colorscheme, which
              causes the fallback to fail.
    Solution: Set up default links to the relevant fallback highlight
              groups, which makes sure a `:hi clear` command will reset the
              state properly (Yee Cheng Chin).

    Patch 9.1.1124
    Problem:  No test for 'listchars' "precedes" with double-width char.
    Solution: Add a test and fix a typo in code (zeertzjq).

    Patch 9.1.1125
    Problem:  Cannot loop through pum menu with multiline items with
              fuzzy and noselect in 'completeopt' (Tomasz N)
    Solution: Remove unnecessary compl_no_select condition (glepnir).

    Patch 9.1.1126
    Problem:  Patch 9.1.1121 used a wrong way to handle enter
    Solution: Compl_enter_selects also needs to consider the selected item
              in ins_compl_new_leader() (glepnir).

    Patch 9.1.1127
    Problem:  when 'completeopt' is set to preinsert the preinserted text is
              not cleared when adding new leader (Yee Cheng Chin)
    Solution: Add a condition to delete preinsert text in edit function
              (glepnir).

    Patch 9.1.1128
    Problem:  Patch 9.1.1119 caused a regression with imports (girishji).
    Solution: Revert the script ID change for the class script variable for
              now (Yegappan Lakshmanan).

    Patch 9.1.1129
    Problem:  missing out-of-memory test in buf_write()
    Solution: Check that the returned allocated buffer is not NULL
              (John Marriott).

    Patch 9.1.1130
    Problem:  'listchars' "precedes" is not drawn on Tabs.
    Solution: Only draw 'listchars' "precedes" when not skipping over cells
              (zeertzjq).

    Patch 9.1.1131
    Problem:  Potential out-of-memory issue in search.c
    Solution: Improve situation and refactor search.c slightly (John Marriott).

    Patch 9.1.1132
    Problem:  Mark positions wrong after triggering multiline completion.
    Solution: Call deleted_lines_mark() after deleting lines (zeertzjq).

    Patch 9.1.1133
    Problem:  filetype: xkb files not recognized everywhere
    Solution: Detect xkb files in more places (David Mandelberg).

    Patch 9.1.1134
    Problem:  filetype: Guile init file not recognized
    Solution: Detect '.guile' file as scheme filetype (David Mandelberg).

    Patch 9.1.1135
    Problem:  'suffixesadd' doesn't work with multiple items (after 9.1.1122).
    Solution: Don't concat multiple suffixes together (zeertzjq).

    Patch 9.1.1136
    Problem:  Match highlighting marks a buffer region to be redrawn as if
              its buffer text was changed, unnecessarily invoking syntax code.
    Solution: Set the `w_redraw_top/bot` variables instead of the b_mod_* ones
              (Luuk van Baal).

    Patch 9.1.1137
    Problem:  ins_str() is inefficient by calling STRLLEN()
    Solution: Refactor ins_str() to take a length argument and let all callers
              provide the correct length when calling ins_str() (John Marriott).

    Patch 9.1.1138
    Problem:  Existing cmdline completion for :highlight was barebone and
              only completed the highlight group names.
    Solution: Implement full completion for the highlight group arguments
              such as guifg and cterm. If the user tries to complete
              immediately after the '=' (e.g. `hi Normal guifg=<Tab>`), the
              completion will fill in the existing value, similar to how
              cmdline completion for options work (Yee Cheng Chin).

    Patch 9.1.1139
    Problem:  [fifo] is not displayed when editing a fifo (after v7.4.2189).
    Solution: Stat the filename and detect the type correctly.

    Patch 9.1.1140
    Problem:  filetype: m17ndb files are not detected
    Solution: Detect m17ndb files as m17ndb filetype, include filetype, syntax and
              indent files for the new filetype (David Mandelberg).

    Patch 9.1.1141
    Problem:  Misplaced comment in readfile() (after v9.1.1139).
    Solution: Move the comment above S_ISDIR() (zeertzjq).

    Patch 9.1.1142
    Problem:  tests: test_startup fails if $HOME/$XDG_CONFIG_HOME is defined
    Solution: Define $HOME and $XDG_CONFIG_HOME to some non-existing
              directory.

    Patch 9.1.1143
    Problem:  illegal memory access when putting a register
    Solution: Make sure cursor column doesn't become negative.

    Patch 9.1.1144
    Problem:  no way to create raw strings from a blob
    Solution: Support the "encoding": "none" option to create raw strings (which
              may be invalid) (Bakudankun).

    Patch 9.1.1145
    Problem:  When expanding omni completion items with newlines (e.g.
              `then\n\t\nend`), the end statement gets wrong indentation.
    Solution: Add OPENLINE_FORCE_INDENT flag to make open_line() use
              second_line_indent directly (glepnir).

    Patch 9.1.1146
    Problem:  Vim9: wrong context being used when evaluating class member
              (lifepillar, Ernie Rael)
    Solution: Use the correct script context when evaluating a class member
              init expression(Yegappan Lakshmanan).

    Patch 9.1.1147
    Problem:  preview-window does not scroll correctly
    Solution: Init firstline = 0 for a preview window (Girish Palya).

    Patch 9.1.1148
    Problem:  Vim9: finding imported scripts can be further improved
              (after v9.1.1146)
    Solution: Eliminate extra find_imported() call (Hirohito Higashi).

    Patch 9.1.1149
    Problem:  Unix Makefile does not support Brazilian lang for the installer.
    Solution: Add support for language code pt_br (RestorerZ)

    Patch 9.1.1150
    Problem:  :highlight auto-complettion has a minor bug where an existing
              highlight group with a cterm color being unset would result in
              it being auto-completed to -1 in cmdline which is invalid.
    Solution: Correctly check for whether an int value is set to non-zero
              before retrieving the existing value for auto-complete. Also
              do this for attr/string values as they previously worked only
              by accident (Yee Cheng Chin).

    Patch 9.1.1151
    Problem:  too many strlen() calls in getchar.c
    Solution: Store last inserted and recorded lengths, add functions to retrieve
              those and use those functions (John Marriott).

    Patch 9.1.1152
    Problem:  Patch v9.1.1151 causes problems
    Solution: Partially revert it (John Marriott).

    Patch 9.1.1153
    Problem:  build error on Haiku
    Solution: Define XDG_RUNTIME_PATH variables (Begasus).

    Patch 9.1.1154
    Problem:  Vim9: not able to use autoload class across scripts
    Solution: Make it work, re-enable the test (Yegappan Lakshmanan).

    Patch 9.1.1155
    Problem:  Mode message not cleared after :silent message (after 9.0.1634).
    Solution: Don't reset mode_displayed when the message is empty (zeertzjq).

    Patch 9.1.1156
    Problem:  No test for what Patch 9.1.1152 fixes.
    Solution: Add a test (zeertzjq).

    Patch 9.1.1157
    Problem:  command completion wrong for input() (Cdrman Fu)
    Solution: Set commandline completion context explicitly (Jim Zhou).

    Patch 9.1.1158
    Problem:  :verbose set has wrong file name with :compiler!
    Solution: Add -keepscript (zeertzjq).

    Patch 9.1.1159
    Problem:  $MYVIMDIR may not always be set (after 9.1.0718) (sandwm)
    Solution: Always set $MYVIMDIR to first item in runtimepath
              (except when using --clean), update it when changing &rtp.

    Patch 9.1.1160
    Problem:  The 'preinsert' feature requires Ctrl-Y to confirm insertion,
              but Ctrl-Y only works when the popup menu (pum) is displayed.
    Solution: Modify ins_compl_has_preinsert() to check for both 'menu' and
              'menuone' flags when 'preinsert' is set. Update documentation
              to clarify this requirement. This avoids adding complex
              conditional behaviors (glepnir).

    Patch 9.1.1161
    Problem:  preinsert requires bot "menu" and "menuone" to be set,
              but "menu" is redundant (after v9.1.1160)
    Solution: Preinsert only requires menuone (glepnir).

    Patch 9.1.1162
    Problem:  When an info popup spans into the cmdline area and ESC is
              pressed, some content remains visible on screen (yu3s).
    Solution: Add popup_overlays_cmdline() check in screen_fill() to prevent
              prematurely clearing the clear_cmdline flag (glepnir).

    Patch 9.1.1163
    Problem:  $MYVIMDIR is set too late and not available while sourcing
              runtime files (Maxim Kim, after v9.1.1159).
    Solution: Also set it when $MYVIMRC file is found.

    Patch 9.1.1164
    Problem:  editing a special crafted tar file allows code execution (RyotaK)
    Solution: Escape the filename before feeding it to the `:read` command

    Patch 9.1.1165
    Problem:  Vim's diff block merging algorithm when doing a multi-file diff
              is buggy when two different diff hunks overlap a single
              existing diff block (after v9.1.0743)
    Solution: Fix a couple bugs in this logic (Yee Cheng Chin).

    Patch 9.1.1166
    Problem:  command-line auto-completion hard with wildmenu
    Solution: Implement "noselect" wildoption value (Girish Palya)

    Patch 9.1.1167
    Problem:  mark '] wrong after copying text object (ubaldot)
    Solution: Adjust position of '] for non-linewise, exclusive motions (Jim Zhou)

    Patch 9.1.1168
    Problem:  wrong flags passed down to nextwild() (zeertzjq, after v9.1.1166)
    Solution: Only pass options flags (Girish Palya)

    Patch 9.1.1169
    Problem:  using global variable for get_insert()/get_lambda_name()
              (after v9.1.1151)
    Solution: Let the functions return a string_T object instead (Yee Cheng Chin).

    Patch 9.1.1170
    Problem:  wildmenu highlighting in popup can be improved
    Solution: Check if the completion items contain submatches of the
              entered text (Girish Palya).

    Patch 9.1.1171
    Problem:  tests: wrong arguments passed to assert_equal() (after v9.1.1167).
    Solution: Swap arguments in the assert_equal() call (zeertzjq).

    Patch 9.1.1172
    Problem:  heap-buffer-overflow with 'nostartofline' and Ex command in tag
              file.
    Solution: Set cursor column when moving cursor to line 1 (zeertzjq).

    Patch 9.1.1173
    Problem:  filetype: ABNF files are not detected
    Solution: Detect '.abnf' file as abnf filetype and
              include an abnf syntax plugin (A4-Tacks).

    Patch 9.1.1174
    Problem:  tests: when the file 'TestCommand?Test' exists,
              'Test_complete_cmdline()' will fail when writing the file. And
              there's no related cleaning operation for this kind of file
              before the test run.
    Solution: modify `write` to `write!` to override (Jim Zhou).

    Patch 9.1.1175
    Problem:  inconsistent behaviour with exclusive selection and motion
              commands (aidancz)
    Solution: Adjust cursor position when selection is exclusive (Jim Zhou).

    Patch 9.1.1176
    Problem:  wrong indentation of lastline when expanding multiple lines
    Solution: Check OPENLINE_FORCE_INDENT flag in open_line() (glepnir).

    Patch 9.1.1177
    Problem:  filetype: tera files not detected
    Solution: Detect '*.tera' files as tera filetype,
              include a simple filetype plugin (MuntasirSZN).

    Patch 9.1.1178
    Problem:  not possible to generate completion candidates using fuzzy
              matching
    Solution: Add the 'completefuzzycollect' option for (some) ins-completion
              modes (glepnir).

    Patch 9.1.1179
    Problem:  too many strlen() calls in misc2.c
    Solution: Refactor misc2.c and use bsearch() instead of a linear search
              to find matches in the key_names_table array (John Marriott).

    Patch 9.1.1180
    Problem:  The meaning of <Tab> depends on unspecified behavior
              (after 9.1.1179).
    Solution: Return TAB in case bsearch() finds K_TAB.  Rename alt_name to
              pref_name as that's closer to it meaning (zeertzjq).

    Patch 9.1.1181
    Problem:  Unnecessary STRLEN() calls in insexpand.c (after 9.1.1178).
    Solution: Use the already available length (zeertzjq).

    Patch 9.1.1182
    Problem:  No cmdline completion for the 'completefuzzycollect' option
              (after v9.1.1178)
    Solution: Add cmdline completion for the 'completefuzzycollect' option,
              improve its description in optwin.vim (zeertzjq).

    Patch 9.1.1083
    Problem:  "above" virtual text breaks cursorlineopt=number.
    Solution: Take "above" virtual text into account when applying
              CursorLineNr highlight.

    Patch 9.1.1184
    Problem:  Unnecessary use of vim_tolower() in vim_strnicmp_asc().
    Solution: Use TOLOWER_ASC() instead (zeertzjq).

    Patch 9.1.1185
    Problem:  endless loop with completefuzzycollect and no match found
    Solution: Move pointer to line end and break loop.

    Patch 9.1.1186
    Problem:  filetype: help files in git repos are not detected
    Solution: Detect */doc/*.txt files as help if they end with a help
              modeline, even if 'modeline' is off

    Patch 9.1.1187
    Problem:  matchparen plugin wrong highlights shell case statement
              (Swudu Susuwu)
    Solution: Return early, if we are in a shSnglCase syntax element

    Patch 9.1.1188
    Problem:  runtime(tera): tera support can be improved
    Solution: Update tera filetype plugin, include a tera syntax script
              include tera syntax tests, update the filetype test,
              update makemenu and synmenu vim scripts (MuntasirSZN).

    Patch 9.1.1189
    Problem:  if_python: build error due to incompatible pointer types
    Solution: Cast pointer to PyObject* (oreo639).

    Patch 9.1.1190
    Problem:  C indentation does not detect multibyte labels
    Solution: Correctly skip over multibyte characters (Anttoni Erkkilä).

    Patch 9.1.1191
    Problem:  Test for Patch 9.1.1186 doesn't fail without the patch.
    Solution: Set 'nomodeline' in the test (zeertzjq).

    Patch 9.1.1192
    Problem:  Vim crashes with term response debug logging enabled and
              running in a non-writeable directory
    Solution: Use ch_log() instead of custom termresponse logging function
              (Hirohito Higashi)

    Patch 9.1.1193
    Problem:  Unnecessary use of STRCAT() in au_event_disable().  STRCAT()
              seeks to the end of new_ei, but here the end is already known.
    Solution: Use STRCPY() and add p_ei_len to new_ei.  Also fix a typo in a
              comment.  Add a test that 'eventignore' works in :argdo (zeertzjq).

    Patch 9.1.1194
    Problem:  filetype: false positive help filetype detection
    Solution: Only detect a file as help if modeline appears either at start
              of line or is preceded by whitespace (zeertzjq).

    Patch 9.1.1195
    Problem:  inside try-block: fn body executed when default arg is
              undefined
    Solution: When inside a try-block do not execute function body after an
              error in evaluating a default argument expression (Shane Harper).

    Patch 9.1.1196
    Problem:  filetype: config files for container tools are not recognized
    Solution: Detect the ones that aren't detected yet as toml filetype
              (David Mandelberg).

    Patch 9.1.1197
    Problem:  process_next_cpt_value() uses wrong condition
    Solution: Use cfc_has_mode() instead and remove redundant else if branch
              (glepnir).

    Patch 9.1.1198
    Problem:  [security]: potential data loss with zip.vim and special
              crafted zip files (RyotaK)
    Solution: Use glob '[-]' to protect filenames starting with '-'.

    Patch 9.1.1199
    Problem:  Many X11/Wayland desktops support icon themes, and many themes
              provide a gvim icon, but this icon is ignored for the window
              itself because it is hardcoded in the source code.
    Solution: Read the icon from the theme instead (Aurelien Gateau).

    Patch 9.1.1200
    Problem:  Cmdline pum not cleared for input() completion.
    Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(),
              like what is done in wildmenu_cleanup() (zeertzjq).

    Patch 9.1.1201
    Problem:  'completefuzzycollect' does not handle dictionary correctly
    Solution: Check for ctrl_x_mode_dictionary (glepnir).

    Patch 9.1.1202
    Problem:  Missing TabClosedPre autocommand (zoumi)
    Solution: Add the TabClosedPre autcommand (Jim Zhou).

    Patch 9.1.1203
    Problem:  matchparen keeps cursor on case label in sh filetype
              (@categorical, after 9.1.1187).
    Solution: Use :defer so that cursor is always restored, remove checks
              for older Vims, finish early if Vim does not support :defer

    Patch 9.1.1204
    Problem:  MS-Windows: crash when passing long string to expand() with
              'wildignorecase'.
    Solution: Use the same buflen as unix_expandpath() in dos_expandpath().
              Remove an unnecessary STRLEN() while at it (zeertzjq).

    Patch 9.1.1205
    Problem:  completion: preinserted text not removed when closing pum
    Solution: Delete preinsert text inside in ins_compl_stop() (glepnir).

    Patch 9.1.1206
    Problem:  tests: test_filetype fails when a file is a directory
              (Eisuke Kawashima)
    Solution: When encountering a directory instead of a file, skip that
              particular filetype test.

    Patch 9.1.1207
    Problem:  MS-Windows: build warning in filepath.c (after v9.1.1204).
    Solution: Add type cast (John Marriott).

    Patch 9.1.1208
    Problem:  MS-Windows: not correctly restoring alternate screen on Win 10
              after ssh (Daniel Viberg)
    Solution: Return a bit later in RestoreConsoleBuffer() (Christopher Plewright)

    Patch 9.1.1209
    Problem:  colorcolumn not drawn after virtual text lines
    Solution: Show colorcolumn on correct line with virtual text by adding
              the size of p_extra to virtual column offset (Matthias).

    Patch 9.1.1210
    Problem:  translation(ru): missing Russian translation for the new tutor
    Solution: Include new Russian translation, update the Makefile for
              installing the new translations (RestorerZ).

    Patch 9.1.1211
    Problem:  TabClosedPre is triggered just before the tab is being freed,
              which limited its functionality.
    Solution: Trigger it a bit earlier and also on :tabclose and :tabonly
              (Jim Zhou).

    Patch 9.1.1212
    Problem:  filetype: logrotate'd pacmanlogs are not recognized
    Solution: Also detect pacman.log* files as pacmanlog filetype,
              remove BufNewFile autocmd (Eisuke Kawashima).

    Patch 9.1.1212
    Problem:  too many strlen() calls in edit.c
    Solution: Refactor edit.c and remove strlen() calls (John Marriott).

    Patch 9.1.1213
    Problem:  cannot :put while keeping indent (Peter Aronoff)
    Solution: Add the :iput ex command (64-bitman).

    Patch 9.1.1214
    Problem:  When searching for "Cur", CamelCase matches like "lCursor" score
              higher than exact prefix matches like Cursor, which is
              counter-intuitive (Maxim Kim).
    Solution: Add a 'camelcase' option to matchfuzzy() that lets users disable
              CamelCase bonuses when needed, making prefix matches rank higher
              (glepnir).

    Patch 9.1.1215
    Problem:  Patch 9.1.1213 has some issues
    Solution: Revert it for now

    Patch 9.1.1216
    Problem:  Pasting the '.' register multiple times may work incorrectly
              when the last insert starts with Ctrl-D and ends with '0'
              (after 9.1.1212).
    Solution: Restore the missing assignment (zeertzjq).

    Patch 9.1.1217
    Problem:  tests: typos in test_matchfuzzy.vim (after 9.1.1214).
    Solution: Fix the typos.  Consistently put the function call on the
              second line in assertions for camelcase (zeertzjq).

    Patch 9.1.1218
    Problem:  missing out-of-memory check in filepath.c
    Solution: Add check for NULL (John Marriott).

    Patch 9.1.1219
    Problem:  Strange error with type for matchfuzzy() "camelcase".
    Solution: Show the error "Invalid value for argument camelcase" instead
              of "Invalid argument: camelcase" (zeertzjq).

    Patch 9.1.1220
    Problem:  filetype: uv.lock file not recognized
    Solution: detect uv.lock file as toml filetype (Acaibird).

    Patch 9.1.1221
    Problem:  Wrong cursor position and '^' mark when leaving Insert mode
              just after 'autoindent' and cursor on last char of line.
    Solution: Don't move cursor to NUL when it wasn't moved to the left (zeertzjq)

    Patch 9.1.1222
    Problem:  using wrong length for last inserted string
              (Christ van Willegen, after v9.1.1212)
    Solution: Use the correct length in get_last_insert_save(), make
              get_last_insert() return a string_T (John Marriott).

    Patch 9.1.1223
    Problem:  wrong translation for encoding failures because of using
              literal "from" and "to" in the resulting error message (RestorerZ)
    Solution: Use separate error messages for errors "from" and "to"
              encoding errors.

    Patch 9.1.1224
    Problem:  cannot :put while keeping indent (Peter Aronoff)
    Solution: Add the :iput ex command (64-bitman).

    Patch 9.1.1225
    Problem:  extra NULL check in VIM_CLEAR()
    Solution: Remove the NULL check and rely on the NULL check in vim_free()
              instead (Hirohito Higashi).

    Patch 9.1.1226
    Problem:  "shellcmdline" completion doesn't work with input().
    Solution: Use set_context_for_wildcard_arg().  Fix indent in nextwild()
              (zeertzjq).

    Patch 9.1.1227
    Problem:  no tests for the comment package
    Solution: Add some tests (Maxim Kim).

    Patch 9.1.1228
    Problem:  The current_pos.col was incorrectly updated to the length of
              the matching text. This will cause the next search to start
              from the wrong position.
    Solution: Current_pos has already been updated in search_str_in_line and
              does not need to be changed (glepnir).

    Patch 9.1.1229
    Problem:  the comment plugin can be improved
    Solution: add comment text objects "ic" and "ac" (Maxim Kim).

    Patch 9.1.1230
    Problem:  Ctrl-C closes popup windows that have a filter callback,
              but does not close popups without a filter callback.
    Solution: Modified popup_do_filter() to also close popups without
              filter callback when Ctrl-C is pressed (glepnir).

    Patch 9.1.1231
    Problem:  filetype: SPA (single page application) JSON files are not
              recognized (used by pipewire and wireplumber)
    Solution: Detect pipewire and wireplumber configuration files as spajson
              filetype, include filetype, indent and syntax scripts for this
              new filetype (David Mandelberg).

    Patch 9.1.1232
    Problem:  Vim script is missing the tuple data type
    Solution: Add support for the tuple data type (Yegappan Lakshmanan).

    Patch 9.1.1233
    Problem:  Coverity warns about NULL pointer when triggering WinResized
    Solution: Add OOM checks for windows_list like for scroll_dict. Remove
              void casts that are unnecessary after 9.1.1084 (zeertzjq).

    Patch 9.1.1234
    Problem:  Compile error when SIZE_MAX is not defined
    Solution: Define SIZE_MAX (Zoltan Arpadffy).

    Patch 9.1.1235
    Problem:  cproto files are outdated
    Solution: regenerate proto files by running make proto (Yegappan Lakshmanan).

    Patch 9.1.1236
    Problem:  tests: test_comments leaves swapfiles around
    Solution: use ':bw!' instead of ':close!'

    Patch 9.1.1237
    Problem:  Compile error with C89 compiler in term.c (Zoltan Arpadffy)
    Solution: split out LOG_TR macro into 2 different macros. LOG_TR1 that
              takes only a single argument and LOG_TRN that takes 2
              arguments. Remove the use of ##__VA_ARGS__ since the macro is
              now always called with 2 arguments (Hirohito Higashi).

    Patch 9.1.1238
    Problem:  With ':set splitkeep=screen', cursor did't restore column
              correctly when splitting a window on a line longer than the
              last line on the screen (after v9.1.0707)
    Solution: Restore cursor column in `win_fix_scroll()` since it may be
              changed in `getvcol()` after 396fd1ec2956 (phanium).

    Patch 9.1.1239
    Problem:  if_python: no tuple data type support (after v9.1.1232)
    Solution: Add support for using Vim tuple in the python interface
              (Yegappan Lakshmanan).

    Patch 9.1.1240
    Problem:  Regression with ic/ac text objects and comment plugin
    Solution: Fix regression, update tests (Maxim Kim).

    Patch 9.1.1241
    Problem:  wrong preprocessort indentation in term.c
    Solution: update indentation (Hirohito Higashi).

    Patch 9.1.1242
    Problem:  Crash when evaluating variable name (after v9.1.0870)
    Solution: Calculate the strlen() directly instead of pointer
              arithmetics, fix missing assignment to lp->ll_name_end in
              get_lval() (zeertzjq).

    Patch 9.1.1243
    Problem:  Diff mode's inline highlighting is lackluster. It only
              performs a line-by-line comparison, and calculates a single
              shortest range within a line that could encompass all the
              changes. In lines with multiple changes, or those that span
              multiple lines, this approach tends to end up highlighting
              much more than necessary.
    Solution: Implement new inline highlighting modes by doing per-character
              or per-word diff within the diff block, and highlight only the
              relevant parts, add "inline:simple" to the defaults (which is
              the old behaviour) (Yee Cheng Chin)

    Patch 9.1.1244
    Problem:  part of Patch v9.1.1242 was wrong
    Solution: Revert part of the Patch.

    Patch 9.1.1245
    Problem:  need some more tests for curly braces evaluation
    Solution: Add a test for the regression introduced by Patch v9.1.1242
              (Yegappan Lakshmanan).

    Patch 9.1.1246
    Problem:  coverity complains about some changes in v9.1.1243
    Solution: Remove duplicate code in diff_find_changed() (Yee Cheng Chin).

    Patch 9.1.1247
    Problem:  fragile setup to get (preferred) keys from key_name_entry
              (after v9.1.1179)
    Solution: Refactor the code further, fix a bug with "pref_name" key
              entry introduced in v9.1.1180 (Yee Cheng Chin)

    Patch 9.1.1248
    Problem:  compile error when building without FEAT_QUICKFIX
    Solution: Adjust ifdefs in popupwin.c, add CheckFeature quickfix
              to a few tests (John Marriott, Hirohito Higashi).

    Patch 9.1.1249
    Problem:  No test that 'listchars' "eol" doesn't affect "gM".
    Solution: Add a test (zeertzjq).

    Patch 9.1.1250
    Problem:  cannot set the maximum popup menu width (Lucas Mior)
    Solution: add the new global option value 'pummaxwidth' (glepnir).

    Patch 9.1.1251
    Problem:  if_python: build error with tuples and dynamic python
              (after v9.1.1239)
    Solution: Fix build error and test failures (Yee Cheng Cin).

    Patch 9.1.1252
    Problem:  Typos in code and docs related to 'diffopt' "inline:".
              (after v9.1.1243)
    Solution: Fix typos and slightly improve the docs (zeertzjq).

    Patch 9.1.1253
    Problem:  If win_close() is called with a window that has quickfix stack
              attached to it, the corresponding quickfix buffer will be
              closed and freed after the buffer was already closed. At that
              time curwin->w_buffer points to NULL, which the CHECK_CURBUF
              will catch and abort if ABORT_ON_ERROR is defined.
    Solution: In wipe_qf_buffer() temporarily point curwin->w_buffer back to
              curbuf, the window will be closed anyhow, so it shouldn't
              matter that curbuf->b_nwindows isn't incremented.

    Patch 9.1.1254
    Problem:  need more tests for the comment plugin
    Solution: Add a tests for the [gb]:comment_first_col setting (Maxim Kim).

    Patch 9.1.1255
    Problem:  missing test condition for 'pummaxwidth' setting, pummaxwidth
              not effective when width is 32 and height is 10 (after v9.1.1250).
    Solution: Add missing comparison condition in pum_width() (glepnir).

    Patch 9.1.1256
    Problem:  if_python: duplicate tuple data entries (after v9.1.1239)
    Solution: clean up duplicates (Yegappan Lakshmanan).

    Patch 9.1.1257
    Problem:  Mixing vim_strsize() with mb_ptr2cells() in pum_redraw().
    Solution: Change vim_strsize() to mb_string2cells() (zeertzjq).

    Patch 9.1.1258
    Problem:  regexp: max \U and \%U value is limited by INT_MAX but gives a
              confusing error message
    Solution: Give a better error message when the value reaches INT_MAX

    Patch 9.1.1259
    Problem:  some issues with comment package and tailing spaces
    Solution: Correctly capture trailing spaces with the ac/ic text object
              (Maxim Kim).

    Patch 9.1.1260
    Problem:  Hang when filtering buffer with NUL bytes (after 9.1.1050).
    Solution: Don't subtract "written" from "lplen" repeatedly (zeertzjq).

    Patch 9.1.1261
    Problem:  No test for 'pummaxwidth' non-truncated items (after v9.1.1250)
    Solution: Add shorter items to Test_pum_maxwidth_multibyte() (zeertzjq).

    Patch 9.1.1262
    Problem:  heap-buffer-overflow occurs with narrow 'pummaxwidth' value
              (after v9.1.1250)
    Solution: Test that st_end points after st pointer (Hirohito Higashi).

    Patch 9.1.1263
    Problem:  string length wrong in get_last_inserted_save() (after v9.1.1222).
    Solution: When removing trailing ESC, also decrease the string length
              (Christ van Willegen).

    Patch 9.1.1264
    Problem:  Vim9: error when comparing objects (lifepillar)
    Solution: When comparing object types, compare their classes
              (Yegappan Lakshmanan)

    Patch 9.1.1265
    Problem:  tests: no tests for typing normal char during completion
    Solution: Add a test verifying the default behaviour (see :h
              popupmenu-completion)

    Patch 9.1.1266
    Problem:  MS-Windows: type conversion warnings
    Solution: Cast the variables (Yegappan Lakshmanan).

    Patch 9.1.1267
    Problem:  Vim9: no support for type list/dict<object<any>>
    Solution: Add proper support for t_object_any (Yegappan Lakshmanan).

    Patch 9.1.1268
    Problem:  filetype: dax files are not recognized
    Solution: Detect "*.dax" as dax filetype, include dax filetype and
              syntax plugin (Anarion Dunedain).

    Patch 9.1.1269
    Problem:  compl_shown_match is updated when starting keyword completion
              and does not include fuzzy matching.
    Solution: Do not update compl_shown_match when starting keyword
              completion, since it is the one already selected by the
              keyword completion direction (glepnir).

    Patch 9.1.1270
    Problem:  missing out-of-memory checks in buffer.c
    Solution: Handle out-of-memory situations during allocation (John Marriott).

    Patch 9.1.1271
    Problem:  filetype: Power Query files are not recognized
    Solution: Detect '*.pq' as pq filetype, include pq syntax and filetype
              plugin (Anarion Dunedain).

    Patch 9.1.1272
    Problem:  completion: in keyword completion Ctrl_P cannot go back after
              Ctrl_N
    Solution: in find_compl_when_fuzzy() always return first match of array, after
              Ctrl_P use compl_shown_match->cp_next instead of compl_first_match.
              (glepnir)

    Patch 9.1.1273
    Problem:  Coverity warns about using uninitialized value (after 9.1.1270).
    Solution: Put an empty string in "buf" when allocation fails (zeertzjq).

    Patch 9.1.1274
    Problem:  Vim9: no support for object<type> as variable type
    Solution: Add support for object<type> (Yegappan Lakshmanan).

    Patch 9.1.1275
    Problem:  MS-Windows: Not possible to pass additional flags to Make_mvc
    Solution: Introduce $CI_FLAGS and use it to pass additional flags for
              the Github CI in order to treat size conversion warnings
              (C4267) as errors (Yegappan Lakshmanan).

    Patch 9.1.1276
    Problem:  inline word diff treats multibyte chars as word char
              (after 9.1.1243)
    Solution: Treat all non-alphanumeric characters as non-word characters
              (Yee Cheng Chin)

    Patch 9.1.1277
    Problem:  tests: trailing comment char in test_popupwin
    Solution: Remove crufty tail comment (Doug Kearns)

    Patch 9.1.1278
    Problem:  Vim9: too long functions in vim9type.c
    Solution: Refactor into separate functions (Yegappan Lakshmanan).

    Patch 9.1.1279
    Problem:  Vim9: null_object and null_class are no reserved names
    Solution: Add null_object and null_class as reserved names
              (Yegappan Lakshmanan).

    Patch 9.1.1280
    Problem:  trailing additional semicolon in get_matches_in_str()
              (Hirohito Higashi)
    Solution: Remove it (Satoru Kitaguchi).

    Patch 9.1.1281
    Problem:  extra newline output when editing stdin
    Solution: Remove outputting when reading from stdin in non-terminal mode
              (Abhijit Barik).

    Patch 9.1.1282
    Problem:  Build and test failure without job feature (lazypingu).
    Solution: Adjust ifdefs, add CheckFeature job to tests.

    Patch 9.1.1283
    Problem:  quickfix and location-list stack is limited to 10 items
    Solution: Add the 'chistory' and 'lhistory' options to configure a
              larger quickfix/location list stack (64-bitman).

    Patch 9.1.1284
    Problem:  not possible to configure the completion menu truncation
              character
    Solution: Add the "trunc" suboption to the 'fillchars' setting to
              configure the truncation indicator (glepnir).

    Patch 9.1.1285
    Problem:  Vim9: no error message for missing method after "super."
    Solution: Output an error message, add a few more tests (Yegappan Lakshmanan).

    Patch 9.1.1286
    Problem:  Help files not detected when 'iskeyword' includes ":".
    Solution: Do not use \< and \> in the pattern (zeertzjq).

    Patch 9.1.1287
    Problem:  quickfix code can be further improved (after v9.1.1283)
    Solution: Slightly refactor quickfix.c (Hirohito Higashi).

    Patch 9.1.1288
    Problem:  Using wrong window in ll_resize_stack() (after v9.1.1287)
    Solution: Use "wp" instead of "curwin", even though they are always the
              same value.  Fix typos in documentation (zeertzjq).

    Patch 9.1.1289
    Problem:  tests: no test for matchparen plugin with WinScrolled event
    Solution: Add missing test.

    Patch 9.1.1290
    Problem:  tests: missing cleanup in test_filetype.vim, wrong name in
              test_plugin_matchparen
    Solution: Add :bwipe corresponding to :split, rename test case.

    Patch 9.1.1291
    Problem:  too many strlen() calls in buffer.c
    Solution: Refactor buffer.c and remove strlen() calls (John Marriott).

    Patch 9.1.1292
    Problem:  statusline not correctly evaluated (Peter Kenny, after v9.1.1291)
    Solution: Revert part of Patch v9.1.1291 (Hirohito Higashi).

    Patch 9.1.1293
    Problem:  comment plugin does not handle 'exclusive' selection for
              comment object (@mawkish)
    Solution: Handle special case selection='exclusive' for inline comment
              object (Maxim Kim).

    Patch 9.1.1294
    Problem:  gui tabline menu does not use confirm when closing tabs
    Solution: Use ":confirm tabclose" explicitly (JMcKiern).

    Patch 9.1.1295
    Problem:  clientserver: When in insert mode, a :stopinsert command
              is not correctly processed (user202729)
    Solution: If the :stopinsert command is received while waiting for
              input, stuff the NOP key into the type-ahead buffer and
              detect that :stopinsert was used in edit() so that the
              cursor position is decremented.

    Patch 9.1.1296
    Problem:  completion: incorrect truncation logic (after: v9.1.1284)
    Solution: Replace string allocation with direct screen rendering and
              fix RTL/LTR truncation calculations (glepnir).

    Patch 9.1.1297
    Problem:  cursor_correct() calculates a valid cursor position which
              is later changed by update_topline() and causes Ctrl-D
              scrolling to be stuck (Daniel Steinberg, after v9.1.0258).
    Solution: Update the valid cursor position before validating topline
              (Luuk van Baal).

    Patch 9.1.1298
    Problem:  define_function() is too long
    Solution: Refactor and split up into smaller functions (Yegappan Lakshmanan).

    Patch 9.1.1299
    Problem:  filetype: mbsyncrc files are not recognized
    Solution: Detect isyncrc and "*.mbsyncrc" files as mbsync filetype,
              include filetype and syntax plugin (Pierrick Guillaume).

    Patch 9.1.1300
    Problem:  wrong detection of -inf
    Solution: Correctly compare 4 characters and not 3 (John Marriott).

    Patch 9.1.1301
    Problem:  completion: cannot configure completion functions with
              'complete'
    Solution: Add support for setting completion functions using the f and o
              flag for 'complete' (Girish Palya)

    Patch 9.1.1302
    Problem:  Coverity warns about using uninitialized value
              (Coverity, Tony Mechelynck, after v9.1.1301)
    Solution: Initialize callback pointer to NULL

    Patch 9.1.1303
    Problem:  missing out-of-memory check in linematch.c
    Solution: Return early in case of memory allocation failure, move the
              pow() calculation ouside of the for() loop (John Marriott).

    Patch 9.1.1304
    Problem:  filetype: some man files are not recognized
              (e.g. 1p (POSIX commands))
    Solution: Update the filetype detection pattern and detect more man
              files as nroff (Eisuke Kawashima).

    Patch 9.1.1305
    Problem:  When switching to another window or tab page while the
              completion menu is active, the menu stays visible, although it
              belongs to the previous window/tab page context (Evgeni
              Chasnovski).
    Solution: Track the window and tab page where completion started. Detect
              changes in the main editing loop and cancel completion mode if
              the current window or tab page differs from where completion
              started.

    Patch 9.1.1306
    Problem:  Parts of the popup menu were rendered twice when the popup was
              at maximum width because the truncation flag was being set too
              liberally.
    Solution: Make the truncation condition more precise by only setting it
              when there's exactly one character of space remaining (glepnir).

    Patch 9.1.1307
    Problem:  GNU extensions, such as `ifeq` and `wildcard` function, are
              highlighted in BSDmakefile
    Solution: Detect BSD, GNU, or Microsoft implementation according to
              filename, user-defined global variables, or file contents.

    Patch 9.1.1308
    Problem:  During insert-mode completion, the most relevant match is often
              the one closest to the cursor—frequently just above the current line.
              However, both `<C-N>` and `<C-P>` tend to rank candidates from the
              current buffer that appear above the cursor near the bottom of the
              completion menu, rather than near the top. This ordering can feel
              unintuitive, especially when `noselect` is active, as it doesn't
              prioritize the most contextually relevant suggestions.
    Solution: This change introduces a new sub-option value "nearest" for the
              'completeopt' setting. When enabled, matches from the current buffer
              are prioritized based on their proximity to the cursor position,
              improving the relevance of suggestions during completion
            (Girish Palya).

    Patch 9.1.1309
    Problem:  tests: no test for 'pummaxwidth' with non-truncated "kind".
    Solution: Add a test with "kind" and larger 'pummaxwidth' (zeertzjq).

    Patch 9.1.1310
    Problem:  Duplicate check for preinsert effect, particularly for Ctrl_w
              and Ctrl_U.
    Solution: Remove the specific check for Ctrl_w and Ctrl_U to eliminate
              redundancy (glepnir).

    Patch 9.1.1311
    Problem:  completion: not possible to limit number of matches
    Solution: allow to limit the matches for 'complete' sources by using the
              "{flag}^{limit}" notation (Girish Palya)

    Patch 9.1.1312
    Problem:  tests: Test_backupskip() fails when HOME is defined
    Solution: Unset $HOME temporarily

    Patch 9.1.1313
    Problem:  compile warning about uninitialized value
              (Tony Mechelynck, after v9.1.1311)
    Solution: Initialize variable on declaration

    Patch 9.1.1314
    Problem:  max allowed string width too small
    Solution: Increased MAX_ALLOWED_STRING_WIDTH from 6400 to 1MiB
              (Hirohito Higashi)

    Patch 9.1.1315
    Problem:  chain complete does not work when 'cot' includes fuzzy
              and 'completefuzzycollect' collects wrong next word (Konfekt).
    Solution: Compl_startpos is not set correctly, remove next word check
              in search_for_fuzzy_match (glepnir).

    Patch 9.1.1316
    Problem:  missing memory allocation failure in os_mswin.c
    Solution: Check for memory allocation failure and return early (John Marriott)

    Patch 9.1.1317
    Problem:  noisy error when restoring folds from session fails
    Solution: ignore errors silently when sourcing session file (Igor Lacerda).

    Patch 9.1.1318
    Problem:  tests: test_format fails (after 9.1.1314).
    Solution: Increase the string size.  Add missing test_format.res in
              NEW_TESTS_RES (zeertzjq).

    Patch 9.1.1319
    Problem:  Various typos in the code, redundant and strange use of
              :execute in test_ins_complete.vim (after 9.1.1315).
    Solution: Fix typos in the code and in the documentation, use the
              executed command directly (zeertzjq).

    Patch 9.1.1320
    Problem:  filetype: alsoft config files are not recognized
    Solution: Detect alsoft config files as dosini filetype (David Mandelberg).

    Patch 9.1.1321
    Problem:  filetype: MS ixx and mpp files are not recognized
    Solution: Detect *.mpp and *.ixx files as c++ filetype (Hampus Avekvist).

    Patch 9.1.1322
    Problem:  small delete register cannot paste multi-line correctly
              (after v8.2.2189)
    Solution: Make this logic handle charwise only (phanium).

    Patch 9.1.1323
    Problem:  b:undo_ftplugin not executed when re-using buffer (archy3)
    Solution: Explicitly execute b:undo_ftplugin in buflist_new() when
              re-using the current buffer.

    Patch 9.1.1324
    Problem:  undefined behaviour if X11 connection dies
    Solution: Call setjmp() before the main_loop() and restore x11 state
              if the X11 connection dies (Foxe Chen).

    Patch 9.1.1325
    Problem:  tests: not checking error numbers properly.
    Solution: Add a trailing comma to avoid matching a different error
              number with the same prefix (zeertzjq).

    Patch 9.1.1326
    Problem:  invalid cursor position after 'tagfunc' (gandalf4a).
    Solution: Call check_cursor() after executing the 'tagfunc'.

    Patch 9.1.1327
    Problem:  filetype: nroff detection can be improved
    Solution: Improve nroff detection (Eisuke Kawashima)

    Patch 9.1.1328
    Problem:  too many strlen() calls in indent.c
    Solution: Refactor indent.c slightly and remove strlen() calls (John Marriott)

    Patch 9.1.1329
    Problem:  cannot get information about command line completion
    Solution: Add CmdlineLeavePre autocommand and cmdcomplete_info() Vim
              script function (Girish Palya)

    Patch 9.1.1330
    Problem:  may receive E315 in terminal
    Solution: Call check_cursor() (Hirohito Higashi).

    Patch 9.1.1331
    Problem:  Leaking memory with cmdcomplete() (zeertzjq, after v9.1.1329)
    Solution: Free the memory (Girish Palya).

    Patch 9.1.1332
    Problem:  Vim9: segfault when using super within a lambda (lifepillar)
    Solution: Inherit the class from the current function (Yegappan Lakshmanan).

    Patch 9.1.1333
    Problem:  Coverity: complains about unutilized variable
    Solution: Initialize typval properly

    Patch 9.1.1334
    Problem:  Coverity complains about unchecked return value
    Solution: Cast return value to (void)

    Patch 9.1.1335
    Problem:  Coverity complains about Null pointer dereferences
    Solution: Before accessing ccline->cmdbuff check that ccline is not NULL

    Patch 9.1.1336
    Problem:  comment plugin does not support case-insensitive
              'commentstring' (char101)
    Solution: Use pattern '\c' to make the regex case-insensitive (Maxim Kim).

    Patch 9.1.1337
    Problem:  Undo corrupted with 'completeopt' "preinsert" when switching
              buffer or window.
    Solution: Do not delete preinsert text when switching buffer or window
              (zeertzjq).

    Patch 9.1.1338
    Problem:  Calling expand() interferes with cmdcomplete_info() (after 9.1.1329)
    Solution: Only clear cmdline_orig when starting/ending cmdline mode (zeertzjq)

    Patch 9.1.1339
    Problem:  missing out-of-memory checks for enc_to_utf16() and utf16_to_enc()
    Solution: Add out-of-memory checks and fix a few other minor issues
              (John Marriott)

    Patch 9.1.1340
    Problem:  cannot complete :filetype arguments (Phá��m Bình An)
    Solution: Add :filetype ex command completion, add "filetypecmd"
              completion type for getcompletion()

    Patch 9.1.1341
    Problem:  Cannot define completion triggers and act upon it
    Solution: Add the new option 'isexpand' and add the complete_match()
              function to return the completion matches according to the
              'isexpand' setting (glepnir)

    Patch 9.1.1342
    Problem:  Shebang filetype detection can be improved
    Solution: Improve detection logic (Eisuke Kawashima)

    Patch 9.1.1343
    Problem:  filetype: IPython files are not recognized (user202729).
    Solution: Detect *.ipy files as python filetype.

    Patch 9.1.1344
    Problem:  double free in f_complete_match() (after v9.1.1341)
    Solution: Remove additional free of trig pointer, correctly free
              regmatch.regprog and before_cursor in the error case.

    Patch 9.1.1345
    Problem:  tests: Test_xxd_color2() test failure dump diff is misleading
    Solution: Ensure the reference dump and the test dump are both processed the
              same (Drew Vogel).

    Patch 9.1.1346
    Problem:  missing out-of-memory check in textformat.c
    Solution: Add out-of-memory check, add small optimizations to
              internal_format() and same_leader() (John Marriott)

    Patch 9.1.1347
    Problem:  small problems with gui_w32.c
    Solution: Fix compile warnings and refactor code (John Marriott)

    Patch 9.1.1348
    Problem:  still E315 with the terminal feature (user202729)
    Solution: Call update_topline() in limit_scrollback() (Hirohito Higashi).

    Patch 9.1.1349
    Problem:  CmdlineLeavePre may trigger twice (after v9.1.1329)
    Solution: Check that the key was typed, trigger it when it wasn't before
              (Girish Palya).

    Patch 9.1.1350
    Problem:  tests: typo in Test_CmdlineLeavePre_cabbr() (after v9.1.1349)
    Solution: Fix typo, disable failing test on Windows for now (Girish Palya).

    Patch 9.1.1351
    Problem:  Return value of getcmdline() inconsistent in CmdlineLeavePre
              when leaving cmdline in different ways (after v9.1.1329).
    Solution: Trigger CmdlineLeavePre before calling abandon_cmdline() so
              that getcmdline() can return the command line (zeertzjq).

    Patch 9.1.1352
    Problem:  style: inconsistent indent in insexpand.c
    Solution: Fix indentation (Hirohito Higashi).

    Patch 9.1.1353
    Problem:  missing change from v9.1.1350
    Solution: Update the test Test_CmdlineTrigger() (Girish Palya).

    Patch 9.1.1354
    Problem:  tests: Test_terminalwinscroll_topline() fails on Windows
    Solution: Instead of disabling it in Github Actions runners, disable it
              for all Windows runs.

    Patch 9.1.1355
    Problem:  The pum_redraw function is too complex and difficult to
              maintain with nested loops and mixed responsibilities handling
              both RTL and LTR text rendering.
    Solution: Extracted core rendering logic into dedicated helper functions
              (pum_display_rtl_text, pum_display_ltr_text, pum_draw_scrollbar,
              pum_process_item) while preserving the original behavior. This
              improves code readability and maintainability (glepnir).

    Patch 9.1.1356
    Problem:  Vim9: crash when unletting variable
    Solution: Fix crash, allow to use :unlet (Hirohito Higashi).

    Patch 9.1.1357
    Problem:  Vim incorrectly escapes tags containing "[" in a help buffer
    Solution: Check if the buffer has the "help" filetype set, instead of
              already being a help buffer (Phá��m Bình An).

    Patch 9.1.1358
    Problem:  if_lua: compile warnings with gcc15
    Solution: Update function prototypes (lilydjwg).

    Patch 9.1.1359
    Problem:  filetype: GNU Radio config files are not recognized.
    Solution: Detect GNU Radio config files as confini filetype.  Only
              allow '#' as start of comment in confini syntax (zeertzjq).

    Patch 9.1.1360
    Problem:  filetype: GNU Radio companion files are not recognized
    Solution: Detect *.grc files as xml or yaml filetype depending on the
              first line (zeertzjq).

    Patch 9.1.1361
    Problem:  [security]: Possible to open more windows into a closing
              buffer without splitting, bypassing existing "b_locked_split"
              checks and triggering use-after-free
    Solution: Disallow switching to a closing buffer. Editing a closing
              buffer (via ":edit", etc.) was fixed in v9.1.0764, but add an
              error message and check just "b_locked_split", as "b_locked"
              is necessary only when the buffer shouldn't be wiped, and may
              be set for buffers that are in-use but not actually closing
              (Sean Dewar).

    Patch 9.1.1362
    Problem:  Vim9: type ignored when adding tuple to instance list var
              (Lifepillar)
    Solution: When getting the typval of class and object member variables,
              set the variable type (Yegappan Lakshmanan).

    Patch 9.1.1363
    Problem:  style: inconsistent indentation in various files
    Solution: Fix style, updated codestyle test (Naruhiko Nishino).

    Patch 9.1.1364
    Problem:  style: more indentation issues
    Solution: Fix indentation style (Yegappan Lakshmanan).

    Patch 9.1.1365
    Problem:  MS-Windows: compile warnings and too many strlen() calls  in
              os_mswin.c
    Solution: Refactor os_mswin.c and fix the warning (John Marriott).

    Patch 9.1.1366
    Problem:  v9.1.1364 unintentionally changed sign.c and sound.c
    Solution: Revert those parts, adjust the test (Hirohito Higashi).

    Patch 9.1.1367
    Problem:  too many strlen() calls in gui.c
    Solution: Refactor gui.c slightly (John Marriott).

    Patch 9.1.1368
    Problem:  GTK3 and GTK4 will drop numeric cursor support.
    Solution: Adopt GTK3 code and use CSS cursor convention (Drew Vogel).

    Patch 9.1.1369
    Problem:  configure still using autoconf 2.71
    Solution: Regenerate with autoconf 2.72.

    Patch 9.1.1370
    Problem:  CI Tests favor GTK2 over GTK3
    Solution: Install GTK3 dependencies and debug packages for CI workflows,
              update ASAN suppression list, update required dependency
              checks for the tests (Drew Vogel).

    Patch 9.1.1371
    Problem:  style: indentation issue in insexpand.c
    Solution: Update style (glepnir).

    Patch 9.1.1372
    Problem:  style: braces issues in various files
    Solution: Fix style (Hirohito Higashi).

    Patch 9.1.1373
    Problem:  Flag checking logic uses a temporary variable and multiple
              bitwise operations in insexpand.c
    Solution: Consolidate into a single equality check using bitwise OR and
              comparison (glepnir).

    Patch 9.1.1374
    Problem:  Currently, 'smartcase' is respected when completing keywords
              using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when
              a user continues typing and the completion menu is filtered
              using cached matches, 'smartcase' is not applied. This leads
              to poor-quality or irrelevant completion suggestions, as shown
              in the example below.
    Solution: When filtering cached completion items after typing additional
              characters, apply case-sensitive comparison if 'smartcase' is
              enabled and the typed pattern includes uppercase characters.
              This ensures consistent and expected completion behavior
              (Girish Palya).

    Patch 9.1.1375
    Problem:  heap use-after-free possible when autocommands switch away from the
              quickfix dummy buffer, but leave it open in a window.
    Solution: Close its windows first before attempting the wipe (Sean Dewar).

    Patch 9.1.1376
    Problem:  when failing to wipeout a quickfix dummy buffer, it will
              remain as a dummy buffer, despite being kept.
    Solution: Clear its dummy BF_DUMMY flag in this case (Sean Dewar).

    Patch 9.1.1377
    Problem:  Some GTK3 users experienced unexpectedly small windows at
              startup (after v9.1.1368, @berggeist, Tony Mechelynck)
    Solution: Update window manager hints in gui_mch_open, partly revert
              v9.1.1370 (Drew Vogel).

    Patch 9.1.1378
    Problem:  When 'signcolumn' is set to `number` but a line has a sign
              without text, the line number disappears (finite-state-machine)
    Solution: Verify that a sign actually contains text before rendering the
              line number (glepnir).

    Patch 9.1.1379
    Problem:  MS-Windows: error when running evim when space in path of Vim
    Solution: Properly parse quoted strings (Miguel Barro)

    Patch 9.1.1380
    Problem:  When an autocommand executes for a non-current buffer,
              'eventignorewin' is only checked from the buffer's last
              wininfo (overwrites win_ignore in the loop), not from the
              value of 'eventignorewin' in all windows showing the buffer as
              described (after v9.1.1084)
    Solution: Fix the check and don't use wininfo, as that may only contain
              windows that recently showed the buffer. Consider all the
              buffer's windows in all tabpages (Sean Dewar).

    Patch 9.1.1381
    Problem:  Cannot return to the original text after selecting the next
              item when the currently selected item is the last one.
    Solution: When continuing to move down past the last item, locate the
              original completion at the head/tail nodes of the completed
              linked list (glepnir).

    Patch 9.1.1382
    Problem:  if_ruby: unused compiler warnings from ruby internals
    Solution: disable -Wunused-parameter for if_ruby internal code (Philip H.).

    Patch 9.1.1383
    Problem:  When a space character is used as a trigger in 'isexpand' option
              it doesn't get recognized because skip_to_option_part() skips
              spaces after a comma, treating them as option separators
              rather than option value (after v9.1.1341)
    Solution: Manually set the part to a space character (glepnir).

    Patch 9.1.1384
    Problem:  still some problem with the new tutors filetype plugin
    Solution: Refactor code to enable/disable tutor mode into
              tutor#EnableInteractive() function, include a test
              (Phá��m Bình An).

    Patch 9.1.1385
    Problem:  Loop that ensures "w_skipcol" is zero with 'nosmoothscroll'
              for (half)-page scrolling is inefficient.
    Solution: Calculate the required "count" instead of looping until
              "w_skipcol" is zero (Luuk van Baal).

    Patch 9.1.1386
    Problem:  MS-Windows: some minor problems building on AARCH64
    Solution: Update Make_cyg_ming with aarch64 specific changes,
              document how to build on aarch64 using msys2 packages.

    Patch 9.1.1387
    Problem:  buflist_new() leaks ffname and fails to reuse curbuf when
              autocommands from buf_freeall change curbuf. Plus, a new
              buffer is not allocated in this case, despite what the comment
              above claims.
    Solution: Remove the condition so ffname is not leaked and so a new
              buffer is allocated like before v8.2.4791. It should not be
              possible for undo_ftplugin or buf_freeall autocommands to
              delete the buffer as they set b_locked, but to stay consistent
              with other uses of buf_freeall, guard against that anyway
              (Sean Dewar).

    Patch 9.1.1388
    Problem:  One-off error in "count" to make "w_skipcol" zero with
              'nosmoothscroll' page scrolling when last virtual line
              in a buffer line is exactly the entire window width
              (Hirohito Higashi).
    Solution: Properly compute the smallest integer value necessary
              to make "w_skipcol" zero (Luuk van Baal).

    Patch 9.1.1389
    Problem:  Cannot get completion startcol when space is not the first
              trigger character (after v9.1.1383)
    Solution: Detect the next comma followed by a space in the option string
              and use in next compare loop (glepnir).

    Patch 9.1.1390
    Problem:  style: more wrong indentation
    Solution: reformat a few more places (Yegappan Lakshmanan).

    Patch 9.1.1391
    Problem:  Vim does not have a tabpanel
    Solution: Include the tabpanel feature (Naruhiko Nishino, thinca).

    Patch 9.1.1392
    Problem:  missing Patch number (Tony Mechelynck)
    Solution: add missing Patche number.

    Patch 9.1.1393
    Problem:  The check in buf_freeall that restores curwin subtly prevents
              leaving an unloaded buffer in a window when reusing curbuf, if
              autocommands switch to a different buffer.
    Solution: Add a test case that covers this. Also ensure splitting isn't
              possible, as that could do the same (Sean Dewar).

    Patch 9.1.1394
    Problem:  tabpanel not correctly redrawn on tabonly
              (Maxim Kim, after v9.1.1391)
    Solution: Force redraw of the tabpanel, tweak style (Hirohito Higashi).

    Patch 9.1.1395
    Problem:  Search_stat not reset when pattern differs in case
              (tahzibijafar)
    Solution: Use STRNCMP instead of MB_STRNICMP macro.

    Patch 9.1.1396
    Problem:  The 'grepformat' option is global option, but it would be
              useful to have it buffer-local, similar to 'errorformat' and
              other quickfix related options (Dani Dickstein)
    Solution: Add the necessary code to support global-local 'grepformat',
              allowing different buffers to parse different grep output
              formats (glepnir).

    Patch 9.1.1397
    Problem:  tabpanel not correctly updated on :tabonly (Maxim Kim)
    Solution: Force a redraw, take 'equalalways' into account (Naruhiko Nishino).

    Patch 9.1.1398
    Problem:  When items are combined with user-defined highlight attributes
              (e.g., strikethrough), trunc inherits these attributes, making
              the text difficult to read.
    Solution: Trunc now uses the original Pmenu and PmenuSel highlight
              attributes (glepnir).

    Patch 9.1.1399
    Problem:  tests: test_codestyle fails for auto-generated files.
              While those files are already ignored in Test_source_Files(),
              the newly added Test_indent_of_source_files() does not filter
              those out and causes test failures on appveyor.
    Solution: Factor out the generation of all c files into a common function
              and filter out auto-generated files if_ole.h, iid_ole.c and
              dlldata.c

    Patch 9.1.1400
    Problem:  [security]: use-after-free when evaluating tuple fails
    Solution: Return early in case of an error (Yegappan Lakshmanan).

    Patch 9.1.1401
    Problem:  list not materialized in prop_list() (Nickwiz)
    Solution: Materialize list before accessing it.

    Patch 9.1.1402
    Problem:  multi-byte mappings not properly stored in session file
    Solution: Unescape the mapping before writing out the mapping, prefer
              single-byte mapping name if possible (Miguel Barro).

    Patch 9.1.1403
    Problem:  expansion of 'tabpanelopt' value adds wrong values
              (Shane-XB-Qian, after v9.1.1391).
    Solution: Update tabpanelopt expansion function and expand only valid
              values (Hirohito Higashi).

    Patch 9.1.1404
    Problem:  wrong link to Chapter 2 in vim-01-beginner.tutor
    Solution: Fix the link to Chapter 2, add test for links in tutor files
              (Phá��m Bình An).

    Patch 9.1.1405
    Problem:  tests: no test for mapping with special keys in session file.
    Solution: Add a special keys to an existing test.  Also test with UTF-8
              characters containing 0x80 or 0x9b bytes (zeertzjq).

    Patch 9.1.1406
    Problem:  crash when importing invalid tuple (Yang LUO, Yanju Chen)
    Solution: Set type to VAR_UNKNOWN, so that it isn't freed
              (Yegappan Lakshmanan).

    Patch 9.1.1407
    Problem:  Can't use getpos('v') in OptionSet when using setbufvar().
    Solution: Don't reset Visual selection when switching to the same
              buffer (zeertzjq).

    Patch 9.1.1408
    Problem:  not easily possible to complete from register content
    Solution: Add register-completion submode using i_CTRL-X_CTRL-R
              (glepnir).

    Patch 9.1.1409
    Problem:  using f-flag in 'complete' conflicts with Neovims filename
              completion (glepnir, after v9.1.1301).
    Solution: Use upper-case "F" flag for completion functions (Girish Palya).

    Patch 9.1.1410
    Problem:  out-of-bounds access with 'completefunc' (csetc)
    Solution: Check if it is safe to advance cpt_sources_index (Girish Palya).

    Patch 9.1.1411
    Problem:  crash when calling non-existing function for tabpanel (Yamagi,
              after v9.1.1391)
    Solution: Check if there was an error and if there was, set tabpanel
              option to empty to prevent showing errors on every redraw.

    Patch 9.1.1412
    Problem:  tests: Test_tabpanel_tabonly() fails on larger screens
    Solution: Re-generate screendump file for 78 column large terminal.

    Patch 9.1.1413
    Problem:  spurious CursorHold triggered in GUI on startup
    Solution: Init global did_cursorhold flag to true (Gary Johnson).

    Patch 9.1.1414
    Problem:  MS-Windows: compile warnings in os_win32.c
    Solution: Update function declarations, correctly access param arg in
              set_flag() using (sig_atomic_t) cast (John Marriott).

    Patch 9.1.1415
    Problem:  potential use-after free when there is an error in 'tabpanel'
              option (@char101, after v9.1.1391)
    Solution: Check if p_tpl has been set to null before accessing it again.

    Patch 9.1.1416
    Problem:  completion limits not respected when using fuzzy completion
              (Maxim Kim)
    Solution: Trim completion array (Girish Palya).

    Patch 9.1.1417
    Problem:  missing info about register completion in complete_info()
              (after v9.1.1408)
    Solution: update documentation and mention that register is used as
              source, add a test (glepnir).

    Patch 9.1.1418
    Problem:  configures GUI auto detection favors GTK2
    Solution: make configure favor GTK3 over GTK2 for the GUI
              when auto detecting the gui toolkit (Drew Vogel).

    Patch 9.1.1419
    Problem:  It is difficult to ignore all but some events.
    Solution: Add support for a "-" prefix syntax in '(win)eventignore' that
              subtracts an event from the ignored set if present (Luuk van Baal).

    Patch 9.1.1420
    Problem:  tests: could need some more tests for shebang lines
    Solution: Add more shebang patterns to test_filetype.vim (Eisuke Kawashima).

    Patch 9.1.1421
    Problem:  tests: need a test for the new-style tutor.tutor, Patch
              9.1.1384 broke the expected positions for the signs
    Solution: Update all number keys in tutor.tutor.json to match the
              correct line numbers in tutor.tutor, replace tabs by spaces,
              add a screen-dump test to verify it does not regress (Pham Bình An).

    Patch 9.1.1422
    Problem:  scheduling of complete function can be improved
    Solution: Call user completion functions earlier when just determining
              the insertion column (Girish Palya).

    Patch 9.1.1423
    Problem:  :tag command not working correctly using Vim9 Script
    Solution: Inject a ':' before the numeric address, to make the command
              valid in Vim9 context

    Patch 9.1.1424
    Problem:  PMenu selection broken with multi-line selection and limits
              (Maxim Kim)
    Solution: Update completion match index when limiting the completion
              sources (Girish Palya).

    Patch 9.1.1425
    Problem:  tabpanel: there are still some problems with the tabpanel with
              column handling
    Solution: Fix the problems and refactor Tabpanel feature (Hirohito Higashi).

    Patch 9.1.1426
    Problem:  CTRL-X CTRL-R only completes individual words from registers,
              making it difficult to insert complete register content.
    Solution: Add consecutive CTRL-X CTRL-R support - first press completes
              words, second press completes full register lines, similar to
              CTRL-X CTRL-L and CTRL-X CTRL-P behavior (glepnir).

    Patch 9.1.1427
    Problem:  rendering artifacts with the tabpanel (char101)
    Solution: Prevent double redraw, use Columns instead of frame width
              (Hirohito Higashi)

    Patch 9.1.1428
    Problem:  Completion: register completion needs cleanup
    Solution: Slightly refactor get_register_completion() (glepnir).

    Patch 9.1.1429
    Problem:  dragging outside the tabpanel changes tabpagenr (char101)
    Solution: Set in_tab_line and in_tabpanel variables (Hirohito Higashi).

    Patch 9.1.1430
    Problem:  tabpanel may flicker in the GUI
    Solution: Call scroll_start() and scroll_region_reset() (Hirohito Higashi).

    Patch 9.1.1431
    Problem:  Hit-Enter Prompt when loading session files
    Solution: Use set+= for 'shortmess' to keep the existing flags (Miguel Barro).

    Patch 9.1.1432
    Problem:  GTK GUI: Buffer menu does not handle unicode correctly
    Solution: Get rid of the BMHash() function (SUN Haitao).

    Patch 9.1.1433
    Problem:  Unnecessary :if in session where both branches have the same
              effect (after 9.1.1431).
    Solution: Remove the superfluous :if (zeertzjq).

    Patch 9.1.1434
    Problem:  MS-Windows: missing out-of-memory checks in os_win32.c
    Solution: Add out-of-memory checks to os_win32.c (John Marriott).

    Patch 9.1.1435
    Problem:  completion: various flaws in fuzzy completion
    Solution: Fix the issues (Girish Palya).

    Patch 9.1.1436
    Problem:  GUI control code is displayed on the console on startup
    Solution: Check if Vim is starting up (Hirohito Higashi).

    Patch 9.1.1437
    Problem:  MS-Windows: internal compile error in uc_list() with VS 17.14
              (ibear)
    Solution: Refactor code slightly (Mike Williams).

    Patch 9.1.1438
    Problem:  tests: Test_breakindent_list_split() fails (Phá��m Bình An)
    Solution: Always reset "&columns" and "&lines" for GUI builds
              (Aliaksei Budavei).

    Patch 9.1.1439
    Problem:  Last diff folds not merged (after v8.1.1922)
    Solution: Loop over all windows in the current tabpage and update all
              folds (Gary Johnson).

    Patch 9.1.1440
    Problem:  too many strlen() calls in os_win32.c
    Solution: Refactor code and remove calls to strlen() (John Marriott).

    Patch 9.1.1441
    Problem:  completion: code can be improved
    Solution: Remove reposition_match() and use mergesort_list(),
              for fuzzy completion, sort by fuzzy score immediately after
              setting a new leader (Girish Palya).

    Patch 9.1.1442
    Problem:  tests: Test_diff_fold_redraw() is insufficient
              (after v9.1.1439, Christ van Willegen)
    Solution: Improve the test (Gary Johnson).

    Patch 9.1.1443
    Problem:  potential buffer underflow in insertchar()
    Solution: Verify that end_len is larger than zero (jinyaoguo).

    Patch 9.1.1444
    Problem:  Unused assignment in set_fuzzy_score() (after 9.1.1441).
    Solution: Remove it (zeertzjq).

    Patch 9.1.1445
    Problem:  negative matchfuzzy scores although there is a match (Maxim Kim).
    Solution: Reset the score if a match has been found but the score is
              negative (Girish Palya).

    Patch 9.1.1446
    Problem:  filetype: cuda-gdb config files are not recognized
    Solution: Detect .cuda-gdbinit and cuda-gdbinit files as gdb filetype
              (Wu Zhenyu).

    Patch 9.1.1447
    Problem:  completion: crash when backspacing with fuzzy completion
    Solution: Don't dereference compl_first_match when it's NULL (zeertzjq).

    Patch 9.1.1448
    Problem:  tabpanel is not displayed correctly when msg_scrolled
    Solution: Remove the msg_scrolled condition (Hirohito Higashi).

    Patch 9.1.1449
    Problem:  typo in pum_display()
    Solution: Update the comment, remove empty new lines (glepnir)

    Patch 9.1.1450
    Problem:  Session has wrong arglist with :tcd and :arglocal.
    Solution: Also use absolute path for :argadd when there is tabpage-local
              directory (zeertzjq).

    Patch 9.1.1451
    Problem:  tabpanel rendering artifacts when scrolling
    Solution: Update scrolling logic (Hirohito Higashi).

    Patch 9.1.1452
    Problem:  completion: redundant check for completion flags
    Solution: Refactor code slightly (glepnir).

    Patch 9.1.1453
    Problem:  tests: Test_geometry() may fail (Gary Johnson)
    Solution: Allow a slightly smaller value when checking the number of
              lines.

    Patch 9.1.1454
    Problem:  Missing test case for pum display on a wrapped line.
    Solution: Add a test case to cover pum behavior at line break positions
              (glepnir).

    Patch 9.1.1455
    Problem:  Haiku: dailog objects created with no reference
    Solution: Delete the objects before returning (jinyaoguo)

    Patch 9.1.1456
    Problem:  comment plugin fails toggling if 'cms' contains \
    Solution: Escape backslash (Maxim Kim).

    Patch 9.1.1457
    Problem:  compile warning with tabpanelopt
    Solution: Declare arg as UNUSED (John Marriott).

    Patch 9.1.1458
    Problem:  tabpanel: tabs not properly updated with 'stpl'
    Solution: remember the Column offset per tabpage (Hirohito Higashi).

    Patch 9.1.1459
    Problem:  xxd prints color escape sequences for every octet
              even if the color doesn't change
    Solution: use separate arrays for colors and text and only
              print escape sequences when the color changes (Emanuel Krollmann).

    Patch 9.1.1460
    Problem:  MS-Windows: too many strlen() calls in os_win32.c
    Solution: Refactor code and remove calls to strlen() and wcscat()
              (John Marriott).

    Patch 9.1.1461
    Problem:  tabpanel: tabpanel vanishes with popup menu
    Solution: Remove pum-related test in tabpanel_leftcol(), refactor a few
              related functions (Hirohito Higashi).

    Patch 9.1.1462
    Problem:  missing change from Patch v9.1.1461
    Solution: Change wrong TPL_LCOL macro in a few more places.

    Patch 9.1.1463
    Problem:  Integer overflow in getmarklist() after linewise operation.
    Solution: Don't add 1 to MAXCOL (zeertzjq).

    Patch 9.1.1464
    Problem:  gv does not work in operator-pending mode (liushapku)
    Solution: remove the check for checkclearop in nv_gv_cmd() (phanium).

    Patch 9.1.1465
    Problem:  tabpanel: not correctly drawn with 'equalalways'
    Solution: Call win_equal() (Hirohito Higashi).

    Patch 9.1.1466
    Problem:  filetype: not all lex files are recognized
    Solution: Detect *.ll as lex, llvm or lifelines filetype, depending on
              the content (Eisuke Kawashima).

    Patch 9.1.1467
    Problem:  too many strlen() calls
    Solution: Change expand_env() to return string length (John Marriott).

    Patch 9.1.1468
    Problem:  filetype: bright(er)script files are not recognized
    Solution: Detect *.bs files as brighterscript filetype and *.brs as
              brightscript filetype, include filetype plugins (Riley Bruins).

    Patch 9.1.1469
    Problem:  potential buffer-underflow with invalid hl_id (mugitya03)
    Solution: Assert that the return-code of syn_get_final_id() if > 0

    Patch 9.1.1470
    Problem:  use-after-free with popup callback on error
              (Brian Carbone, lifepillar)
    Solution: Check if the popup window is valid before accessing it.

    Patch 9.1.1471
    Problem:  completion: inconsistent ordering with CTRL-P (zeertzjq).
    Solution: Reset compl_curr_match when using CTRL-P (Girish Palya).

    Patch 9.1.1472
    Problem:  if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed with
              python3.14 in stable ABI
    Solution: use PySequence_{Size,GetItem} instead (Zdenek Dohnal)

    Patch 9.1.1473
    Problem:  inconsistent range arg for :diffget/diffput
    Solution: Fix the range specification, place the cursor for :diffput and
              :diffget consistently on the last line (Yee Cheng Chin)

    Patch 9.1.1474
    Problem:  missing out-of-memory check in mark.c
    Solution: bail out, if mark_line() returns NULL (John Marriott).

    Patch 9.1.1475
    Problem:  completion: regression when "nearest" in 'completeopt'
    Solution: Fix compare function (Girish Palya).

    Patch 9.1.1476
    Problem:  missing out-of-memory checks in cmdexpand.c
    Solution: Add missing out-of-memory checks, re-order code (John Marriott).

    Patch 9.1.1476
    Problem:  no easy way to deduplicate text
    Solution: Add the :uniq ex command (Hirohito Higashi).

    Patch 9.1.1478
    Problem:  Unused assignment in ex_uniq() (after v9.1.1476)
    Solution: Remove the assignment and the wrong comments above (zeertzjq).

    Patch 9.1.1479
    Problem:  regression when displaying localized percentage position
              (after v9.1.1291)
    Solution: Calculate percentage first (Emir SARI).

    Patch 9.1.1480
    Problem:  Turkish translation outdated
    Solution: Update Turkish translations, enable disabled test from v9.1.1479
              (Emir SARI).

    Patch 9.1.1481
    Problem:  gcc complains about uninitialized variable
              (Tony Mechelynck, after v9.1.1476)
    Solution: Initialize variable.

    Patch 9.1.1482
    Problem:  Topline is preemptively updated by line() in WinResized
              autocmd with 'splitkeep' != "cursor".
    Solution: Set `skip_update_topline` when 'splitkeep' != "cursor" (Luuk van Baal)

    Patch 9.1.1483
    Problem:  not possible to translation position in buffer
    Solution: use _() macro to mark the output as translatable (Emir SARI)

    Patch 9.1.1484
    Problem:  tests: Turkish locale tests fails on Mac (after v9.1.1480).
    Solution: Skip the test Test_pos_percentage_in_turkish_locale() on Mac

    Patch 9.1.1485
    Problem:  missing Wayland clipboard support
    Solution: Make it work (Foxe Chen).

    Patch 9.1.1486
    Problem:  documentation issues with Wayland (after v9.1.1485)
    Solution: Tweak documentation style. Capitalize the first letter of
              Wayland (Hirohito Higashi).

    Patch 9.1.1487
    Problem:  :cl doesn't invoke :clist (after v9.1.1485)
    Solution: Fix order of definition in ex_cmds.h (Hirohito Higashi).

    Patch 9.1.1488
    Problem:  configure: using obsolete macro AC_PROG_GCC_TRADITIONAL
    Solution: Drop it from configure.ac, regenerate auto/configure.

    Patch 9.1.1489
    Problem:  terminal: no visual highlight of empty cols when 'listchars'
              is empty (Yousef Mohammed)
    Solution: Reset wlv.win_attr when column is zero and we are drawing a
              terminal buffer.

    Patch 9.1.1490
    Problem:  'wildchar' does not work in search contexts
    Solution: implement search completion when 'wildchar' is typed (Girish Palya).

    Patch 9.1.1491
    Problem:  missing out-of-memory checks in cmdexpand.c
    Solution: Add out-of-memory checks for expand_files_and_dirs(),
              ExpandUserDefined() and ExpandUserList() (John Marriott).

    Patch 9.1.1492
    Problem:  tests: failure when Wayland compositor fails to start
    Solution: Instead of throwing an error causing a failure, throw
              "Skipped", so that the Vim test suite continues and does not fail.

    Patch 9.1.1493
    Problem:  manually comparing positions on buffer (after v9.1.1490)
    Solution: Use the LTOREQ_POS() macro, fix a few other minor style issues
              (glepnir).

    Patch 9.1.1494
    Problem:  runtime(tutor): no French translation for Chapter 2
    Solution: Add and refine French translation of tutor2, update French
              vimtutor manpage (Damien Lejay)

    Patch 9.1.1495
    Problem:  Wayland: uses $XDG_SEAT to determine seat to use
              (dr0bz, after v9.1.1485)
    Solution: Do not try to determine the seat from $XDG_SEAT, remove the
              code that checks for this environment variable (Foxe Chen).

    Patch 9.1.1496
    Problem:  terminal: still not highlighting empty cells correctly
              (Yousef Mohammed, after v9.1.1489)
    Solution: Use vcol instead of col.

    Patch 9.1.1497
    Problem:  Link error with shm_open() (gcanat, after v9.1.1485).
    Solution: use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE.

    Patch 9.1.1498
    Problem:  completion: Functions specified in the 'complete' option did
              not have the leader string removed when called with findstart = 0,
              unlike 'omnifunc' behavior
    Solution: Update behaviour and make behaviour consistent (Girish Palya).

    Patch 9.1.1499
    Problem:  MS-Windows: no indication of ARM64 architecture
    Solution: Add ARM64 to version output and include in nsis installer
              (RestorerZ)

    Patch 9.1.1500
    Problem:  if_python: typo in python error variable
    Solution: Fix typo (Damien Lejay).

    Patch 9.1.1501
    Problem:  filetype: flix files are not recognized
    Solution: Detect *.flix files as flix filetype (0xadk).

    Patch 9.1.1502
    Problem:  filetype: quickbms files are not recognized
    Solution: Detect *.bms files as quickbms filetype (0xadk).

    Patch 9.1.1503
    Problem:  filetype: haxe files are not recognized
    Solution: Detect *.hx files as haxe filetype (0xadk).

    Patch 9.1.1504
    Problem:  filetype: numbat files are not recognized
    Solution: Detect *.nbt files as numbat filetype (0xadk).

    Patch 9.1.1505
    Problem:  not possible to return command-line completion type for :ex
              command
    Solution: Make getcmdcompltype() accept an optional and return the
              command-line completion for that arg (Shougo Matsushita).

    Patch 9.1.1506
    Problem:  tests: missing cleanup test_override('char_avail', 0) in
              Test_search_cmdline_incsearch_highlight().
    Solution: Add the missing cleanup (zeertzjq).

    Patch 9.1.1507
    Problem:  File paths change from symlink to target path after :cd command
              when editing files through symbolic links
    Solution: Add "~" flag to 'cpoptions' to control symlink resolution (glepnir).

    Patch 9.1.1508
    Problem:  String manipulation can be improved in cmdexpand.c
    Solution: Refactor cmdexpand.c to remove calls to STRLEN()/STRMOVE()/STRCAT()
              (John Marriott).

    Patch 9.1.1509
    Problem:  Patch 9.1.1505 was not good
    Solution: Revert "Patch 9.1.1505 for :ex command" and instead add the
              getcompletiontype() function (Hirohito Higashi).

    Patch 9.1.1510
    Problem:  Search completion may use invalid memory (after 9.1.1490).
    Solution: Don't get two line pointers at the same time (zeertzjq).

    Patch 9.1.1511
    Problem:  tests: two edit tests change v:testing from 1 to 0.
    Solution: Don't change v:testing in these two tests, since it's already
              set to 1 in runtest.vim (zeertzjq).

    Patch 9.1.1512
    Problem:  completion: can only complete from keyword characters
    Solution: Remove this restriction, allow completion functions when
              called from i_CTRL-N/i_CTRL-P to be triggered from non-keyword
              characters (Girish Palya).

    Patch 9.1.1513
    Problem:  resizing Vim window causes unexpected internal window width
              (chdiza, after v9.1.1465)
    Solution: Move the column calculation around (Hirohito Higashi).

    Patch 9.1.1514
    Problem:  coverity complains about the use of tmpfile()
    Solution: Use vim_tempname() instead to create anonym file.

    Patch 9.1.1515
    Problem:   memcpy() in ExpandRTDir_int() may create unterminated strings
    Solution:  Use vim_snprintf() to construct complete paths safely (glepnir).

    Patch 9.1.1516
    Problem:  tests: no test that 'incsearch' is updated after accepting
              search completion.
    Solution: Add a test case (zeertzjq).

    Patch 9.1.1517
    Problem:  filetype: autopkgtest files are not recognized
    Solution: Detect */debian/tests/control files as autopkgtest filetype
              (James McCoy).

    Patch 9.1.1518
    Problem:  getcompletiontype() crashes when no completion is available
              (after v9.1.1509).
    Solution: Don't call set_expand_context() (zeertzjq).

    Patch 9.1.1519
    Problem:  Test_termdebug_decimal_breakpoints() fails with List index out
              of range, because when adding the second breakpoint, the
              cursor is still on the very first line
    Solution: Run the program, so that it will break at the very first
              defined breakpoint and then once we are in the program,
              set further breakpoints.

    Patch 9.1.1520
    Problem:  When using `/` or `?` in command-line mode with 'ignorecase' and
              'smartcase' enabled, the completion menu could show items that
              don't actually match any text in the buffer due to case mismatches
    Solution: Instead of validating menu items only against the user-typed
              pattern, the new logic also checks whether the completed item
              matches actual buffer content. If needed, it retries the match
              using a lowercased version of the candidate, respecting
              smartcase semantics.

    Patch 9.1.1521
    Problem:  When 'wildmode' is set to include "noselect", the popup menu (pum)
              incorrectly retained its scroll position when reopened. This
              meant that after scrolling down through the menu with `<C-n>`,
              reopening the menu (e.g., by retyping the command and
              triggering completion again) would show the menu starting from
              the previously scrolled position, rather than from the top.
    Solution: Ensure that the popup menu resets its scroll position to the
              top when reopened (Girish Palya).

    Patch 9.1.1522
    Problem:  tests: still some ANSI escape sequences in test messages output
    Solution: Update the cleanup regexp to also handle those ANSI escape
              sequences: `<esc>|2h` and `<esc>|31H`.

    Patch 9.1.1523
    Problem:  tests: test_clipmethod fails in non X11 environment
    Solution: Test that $DISPLAY is available

    Patch 9.1.1524
    Problem:  tests: too many imports in the test suite
    Solution: Clean up the imported scripts.

    Patch 9.1.1525
    Problem:  tests: testdir is a bit messy
    Solution: Move test scripts into testdir/util/ directory.

    Patch 9.1.1526
    Problem:  completion: search completion match may differ in case (techntools)
    Solution: Add "exacttext" to 'wildoptions' value (Girish Palya).

    Patch 9.1.1527
    Problem:  Vim9: Crash when using string compound assignment with wrong
              data type (lacygoill).
    Solution: Verify expected member type (Hirohito Higashi).

    Patch 9.1.1528
    Problem:  completion: crash with getcompletion() (zeertzjq)
    Solution: Don't set may_expand_pattern in f_getcompletion(), unset
              may_expand_pattern() once it is not longer needed (Girish Palya).

    Patch 9.1.1529
    Problem:  Win32: the toolbar in the GUI is old and dated
    Solution: Include improved icons from Fatcow (CC by 3.0) (RestorerZ).

    Patch 9.1.1530
    Problem:  Missing version change from v9.1.1529
    Solution: Update version.c with latest Patch.

    Patch 9.1.1531
    Problem:  confusing error with nested legacy function (lacygoill)
    Solution: Clarify error message E1117 with :def or :func (Hirohito Higashi).

    Patch 9.1.1532
    Problem:  termdebug: not enough ways to configure breakpoints
    Solution: Add the termdebug_config['signs'] config setting, rework the
              termdebug test cases (Dimitry Ishenko).

    Patch 9.1.1533
    Problem:  helptoc: does not handle code sections in markdown well (VimWei).
    Solution: Skip over fenced code sections (lacygoill), add a test.

    Patch 9.1.1534
    Problem:  unnecessary code in tabpanel.c
    Solution: Remove it (Hirohito Higashi).

    Patch 9.1.1535
    Problem:  The maximum search count uses a hard-coded value of 99
              (Andres Monge, Joschua Kesper)
    Solution: Make it configurable using the 'maxsearchcount' option.

    Patch 9.1.1536
    Problem:  tests: test_plugin_comment.vim uses :CheckScreenDump check but
              doesn't actually use a screen dump.
    Solution: Use :CheckRunVimInTerminal instead, remove a few empty lines.

    Patch 9.1.1537
    Problem:  helptoc: some issues when parsing markdown code blocks (VimWei)
    Solution: Assign nextline to curline before starting the next loop
              iteration; when processing fenced code blocks, flip the
              skip_fence variable, update the test to be more comprehensive.

    Patch 9.1.1539
    Problem:  completion: messages don't respect 'shm' setting
    Solution: Turn off completion messages when 'shortmess' includes "c"
              (Girish Palya).

    Patch 9.1.1540
    Problem:  completion: menu state wrong on interruption (Maxim Kim)
    Solution: Call show_pum() if completion was interrupted (Girish Palya).

    Patch 9.1.1541
    Problem:  Vim9: error when last enum value ends with a comma
    Solution: Allow trailing commas in enum values (Yegappan Lakshmanan).

    Patch 9.1.1542
    Problem:  Coverity complains about uninitialized variable (Tony Mechelynck)
    Solution: Initialize variables.

    Patch 9.1.1543
    Problem:  Wayland: clipboard appears to not be working (Fuad Veliev)
    Solution: Explicitly set selection each time (Foxe Chen).

    Patch 9.1.1544
    Problem:  :retab cannot be limited to indentation only
    Solution: add the optional -indentonly parameter (Hirohito Higashi).

    Patch 9.1.1545
    Problem:  Typo in os_unix.c
    Solution: Correct the typo (Foxe Chen).

    Patch 9.1.1546
    Problem:  Vim9: error with has() and short circuit evaluation
    Solution: Only eval, if ctx_skip is not SKIP_YES (Yegappan Lakshmanan).

    Patch 9.1.1547
    Problem:  Wayland: missing ifdef
    Solution: Add #ifdef around ch_log() call (Foxe Chen).

    Patch 9.1.1548
    Problem:  filetype: OpenFGA files are not recognized
    Solution: Detect *.fga files as fga filetype, include an fga filetype
              plugin (Riley Bruins).

    Patch 9.1.1549
    Problem:  filetype: pkl files are not recognized
    Solution: Detect *.pkl files as pkl filetype, include a filetype plugin (Riley
              Bruins).

    Patch 9.1.1550
    Problem:  defaults: 'showcmd' is not enabled in non-compatible mode on Unix
    Solution: Always enable 'showcmd' in non-compatible mode, drop it from
              defaults.vim.

    Patch 9.1.1551
    Problem:  [security]: path traversal issue in zip.vim (@ax)
    Solution: Drop leading ../ on write of zipfiles, don't forcefully
              overwrite existing files.

    Patch 9.1.1552
    Problem:  [security]: path traversal issue in tar.vim (@ax)
    Solution: Warn the user for such things, drop leading /, don't
              forcefully overwrite files when writing temporary files,
              refactor autoload/tar.vim

    Patch 9.1.1553
    Problem:  Vim9: crash when accessing a variable in if condition (lxhillwind)
    Solution: Skip indexing a list/tuple/dict/blob when short-circuiting an
              if condition check (Yegappan Lakshmanan).

    Patch 9.1.1554
    Problem:  Vim crashes during omnifunc completion inside the command-line
              window ("q:") if the completion item attempts to open an "info"
              preview window. This leads to a failed assert during execution.
    Solution: Avoid opening preview windows while inside the command-line
              window to prevent the crash (Girish Palya).

    Patch 9.1.1555
    Problem:  completion: repeated insertion and deletion of complete
              functions
    Solution: Remove unnecessary insertion and deletion of leader text
              during expansion of function present in 'complete' option
              (Girish Palya).

    Patch 9.1.1556
    Problem:  string handling in cmdexpand.c can be improved
    Solution: Improve string manipulation in cmdexpand.c (John Marriott).

    Patch 9.1.1557
    Problem:  not possible to anchor specific lines in difff mode
    Solution: Add support for the anchoring lines in diff mode using the
              'diffanchor' option (Yee Cheng Chin).

    Patch 9.1.1558
    Problem:  str2blob() treats NULL string and empty string differently
    Solution: Treats a NULL string the same as an empty string (zeertzjq).

    Patch 9.1.1559
    Problem:  tests: Test_popup_complete_info_01() fails when run alone.
    Solution: Set buffer-local competeopt+=noinsert and add missing cleanup
              in Test_popup_complete() (zeertzjq).

    Patch 9.1.1560
    Problem:  configure: uses $PKG_CONFIG before it is defined
    Solution: Define $PKG_CONFIG earlier in the script (Christoffer Aasted).

    Patch 9.1.1561
    Problem:  configure: wayland test can be improved
    Solution: Define $WAYLAND_CFLAGS, simplify the wayland tests
              (Christoffer Aasted).

    Patch 9.1.1562
    Problem:  close button "X" is visible in the non-GUI 'tabline', even
              when the mouse is disabled
    Solution: Only show the button when 'mouse' contains any of the flags
              "anvi" (Girish Palya).

    Patch 9.1.1563
    Problem:  The ruler disappears after typing the second character during
              insert mode completion, even when completion messages are
              suppressed ('shortmess' includes "c"). This makes the UI
              appear inconsistent.
    Solution: Ensure the ruler is restored during screen redraw when popup
              completion is active (Girish Palya).

    Patch 9.1.1564
    Problem:  Can open a popup window to a closing buffer, leading to the
              buffer remaining open in the window after it's soon unloaded,
              causing crashes.
    Solution: Check b_locked_split when opening a popup window to an
              existing buffer (Sean Dewar).

    Patch 9.1.1565
    Problem:  configure: does not consider tiny version for wayland
    Solution: Do not try to enable wayland for a tiny vim version
              (Christoffer Aasted).

    Patch 9.1.1566
    Problem:  self-referenced enum may not get freed
    Solution: Test if it can be freed (Yegappan Lakshmanan).

    Patch 9.1.1567
    Problem:  Crash when using inline diff mode (Ilya Grigoriev)
    Solution: Set tp_diffbuf to NULL when skipping a diff block (Yee Cheng Chin).

    Patch 9.1.1568
    Problem:  need a few more default highlight groups
    Solution: Add Bold, Italic and BoldItalic default highlight groups
              (Maxim Kim).

    Patch 9.1.1569
    Problem:  tests: Vim9 tests can be improved
    Solution: In Test_has_func_shortcircuit(), move the test functions to a
              separate script (Yegappan Lakshmanan).

    Patch 9.1.1570
    Problem:  Copilot suggested some improvements in cmdexpand.c (after v9.1.1556)
    Solution: Use better variable names and comments (John Marriott).

    Patch 9.1.1571
    Problem:  The CmdlineChanged event was firing unnecessarily, even when
              the command line's content hadn't actually changed.
    Solution: Add a check to compare the command-line buffer's state
              before and after key processing. The `CmdlineChanged` event
              now only triggers if the buffer's contents are genuinely
              different (Girish Palya).

    Patch 9.1.1572
    Problem:  expanding $var does not escape whitespace for 'path'
    Solution: Escape whitespace when expanding 'path' option. (Miguel Barro).

    Patch 9.1.1573
    Problem:  Memory leak when pressing Ctrl-D in cmdline mode (after 9.1.1571).
    Solution: Free prev_cmdbuff before assigning to it. (zeertzjq).

    Patch 9.1.1574
    Problem:  Dead code in mbyte.c
    Solution: Delete the dead wcwidth()/iswprint() code (Damien Lejay).

    Patch 9.1.1575
    Problem:  tabpanel not drawn correctly with wrapped lines
              (utubo, after v9.1.1534)
    Solution: Use Columns as width, not the frame width (Hirohito Higashi).

    Patch 9.1.1576
    Problem:  cannot easily trigger wildcard expansion
    Solution: Introduce wildtrigger() function (Girish Palya).

    Patch 9.1.1577
    Problem:  Vim9: no generic support yet
    Solution: Add support for generic functions, funcrefs and object/class
              methods (Yegappan Lakshmanan).

    Patch 9.1.1578
    Problem:  configure: comment still mentions autoconf 2.71 to generate
              the configure script
    Solution: Update the comment to use autoconf 2.72 instead (Yee Chin Cheng).

    Patch 9.1.1579
    Problem:  Coverity complains about unchecked return value in
              common_function() (after v9.1.1577)
    Solution: Check the return value of skip_generic_func_type_args()
              and return in case of an error (Yegappan Lakshmanan).

    Patch 9.1.1580
    Problem:  possible memory leak in vim9type.c
    Solution: Free tuple_types_ga if there was an error in
              type_type_add_types() (Lidong Yan)

    Patch 9.1.1581
    Problem:  possible memory leak in vim9generics.c
    Solution: Free ret_free if ga_grow() fails and before returning
              (Lidong Yan).

    Patch 9.1.1582
    Problem:  style issue in vim9type.c and vim9generics.c
              (after v9.1.1581 and v9.1.1580)
    Solution: Update Style and place opening brace on a new line.

    Patch 9.1.1583
    Problem:  Since Patch 9.1.1199 the gvim window no longer had _NET_WM_ICON
              nor WM_HINTS icon information, for example when not using a
              Gnome or KDE desktop (after v9.1.1199)
    Solution: Check if the icon theme as used in Patch 1199 contains a gvim
              icon. If so, set the window's icon from that. Otherwise
              use the previous method (Olaf Seibert)

    Patch 9.1.1584
    Problem:  using ints as bool
    Solution: Include stdbool.h and start using bool type directly
              (Hirohito Higashi).

    Patch 9.1.1585
    Problem:  Wayland: gvim still needs GVIM_ENABLE_WAYLAND
    Solution: Drop the GVIM_ENABLE_WAYLAND code, always enable both X11 and
              Wayland GUI support (Christoffer Aasted)

    Patch 9.1.1586
    Problem:  Vim9: can define an enum/interface in a function (lacygoill)
    Solution: Give an error when defining an enum or an interface inside a
              function (Yegappan Lakshmanan).

    Patch 9.1.1587
    Problem:  Wayland: timeout not updated before select()
    Solution: Always set timeval struct before select() (Foxe Chen).

    Patch 9.1.1588
    Problem:  Vim9: cannot split dict inside command block (lacygoill)
    Solution: Remove the current restriction (Yegappan Lakshmanan).

    Patch 9.1.1589
    Problem:  Cannot disable cscope interface using configure, because in
              feature.h FEAT_CSCOPE will always be enabled for huge builds
              (chdiza)
    Solution: Don't define FEAT_CSCOPE from configure script but set the
              ENABLE_CSCOPE flag and check for the presence of that flag in
              feature.h

    Patch 9.1.1590
    Problem:  cannot perform autocompletion
    Solution: Add the 'autocomplete' option value (Girish Palya)

    Patch 9.1.1591
    Problem:  VMS support can be improved
    Solution: Merge chagnes from Steven M. Schweda (Zoltan)

    Patch 9.1.1592
    Problem:  Vim9: crash with classes and garbage collection
              (Christian J. Robinson, after v9.1.1566)
    Solution: When getting the references to an object, make sure the object
              is valid (Yegappan Lakshmanan).

    Patch 9.1.1593
    Problem:  Confusing error when compiling incomplete try block (lacygoill)
    Solution: Give better error messages (Hirohito Higashi).

    Patch 9.1.1594
    Problem:  completion: search completion throws errors, wrong placement
              of pum menu with 'imi'=1 (berggeist)
    Solution: Fix those errors (Girish Palya).

    Patch 9.1.1595
    Problem:  Wayland: non-portable use of select()
    Solution: Correctly set the timeval struct (Foxe Chen).

    Patch 9.1.1596
    Problem:  tests: Test_search_wildmenu_iminsert() depends on help file
              (after 9.1.1594).
    Solution: Set buffer text using setline() instead of loading help file.
              Add a test for another bug fixed by 9.1.1594 (zeertzjq).

    Patch 9.1.1597
    Problem:  CI reports leaks in libgtk3 library
    Solution: Add libgtk-3 library to leak suppression

    Patch 9.1.1598
    Problem:  filetype: waybar config file is not recognized
    Solution: Detect */waybar/config file as jsonc filetype (Furkan Sahin).

    Patch 9.1.1599
    Problem:  :bnext doesn't go to unlisted help buffers when cycling
              through help buffers (after 9.1.0557).
    Solution: Don't check if a help buffer is listed (zeertzjq).

    Patch 9.1.1600
    Problem:  diff: using diff anchors with hidden buffers fails silently
    Solution: Give specific error message for diff anchors when using hidden
              buffers (Yee Cheng Chin).

    Patch 9.1.1601
    Problem:  Patch v8.1.0425 was wrong
    Solution: Revert that Patch (Hirohito Higashi).

    Patch 9.1.1602
    Problem:  filetype: requirements-*.txt files are not recognized
    Solution: Detect requirements-*.txt files as requirements filetype
              (Xudong Zheng).

    Patch 9.1.1603
    Problem:  completion: cannot use autoloaded funcs in 'complete' F{func}
              (Maxim Kim)
    Solution: Make it work (Girish Palya).

    Patch 9.1.1604
    Problem:  completion: incsearch highlight might be lost after search
              completion (Hirohito Higashi)
    Solution: Restore incsearch highlight after dismissing pum with Ctrl-E
              (Girish Palya).

    Patch 9.1.1605
    Problem:  Cannot specify scope for chdir()
    Solution: Add optional scope argument (kuuote).

    Patch 9.1.1606
    Problem:  filetype: a few more files are not recognized
    Solution: Guess Mail, Info and Terminfo files by its content (lacygoill).

    Patch 9.1.1607
    Problem:  :apple command detected as :append (dai475694450)
    Solution: Disallow to define a custom command with lower-case letter,
              correctly detect :insert/:change/:append ex commands
              (Hirohito Higashi).

    Patch 9.1.1608
    Problem:  No command-line completion for :unsilent {command}.
    Solution: Add missing command arg completion (Doug Kearns).

    Patch 9.1.1609
    Problem:  complete: Heap-buffer overflow with complete function (zeertzjq)
    Solution: Do not let startcol become negative (Girish Palya).

    Patch 9.1.1610
    Problem:  completion: hang (after 9.1.1471) or E684 (after 9.1.1410)
              when 'tagfunc' calls complete().
    Solution: Check if complete() has been called immediately after getting
              matches instead of in the next loop iteration (zeertzjq).

    Patch 9.1.1611
    Problem:  possible undefined behaviour in mb_decompose(), when using the
              same pointer as argument several times
    Solution: Use separate assignments to avoid reading and writing the same
              object at the same time (Áron Hárnási).

    Patch 9.1.1612
    Problem:  Ctrl-G/Ctrl-T does not ignore the end search delimiter (irisjae)
    Solution: Check if the pattern ends with a search delimiter and ignore
              it, unless it is part of the pattern.

    Patch 9.1.1613
    Problem:  tests: test_search leaves a few swapfiles behind
    Solution: Use :bw! instead of :close to close the swapfile at the end of
              the test.

    Patch 9.1.1614
    Problem:  Vim9: possible variable type change when using closure in a
              for loop (Maxim Kim)
    Solution: Use unwind_locals(..., TRUE) (Yegappan Lakshmanan).

    Patch 9.1.1615
    Problem:  diff format erroneously detected (Tomáš Janoušek)
    Solution: Make the regex to detect normal diff format a bit stricter,
              while at it, fix wrong test content from Patch v9.1.1606.

    Patch 9.1.1616
    Problem:  xxd: possible buffer overflow with bitwise output
              (after v9.1.1459, Xudong Cao)
    Solution: Update LLNE_NO_COLOR macro definition for the max line output.

    Patch 9.1.1617
    Problem:  Vim9: some error messages can be improved
    Solution: Improve error messages when parsing generic function type
              arguments (Yegappan Lakshmanan).

    Patch 9.1.1618
    Problem:  completion: incorrect selected index returned from
              complete_info()
    Solution: Return the index into "items" and restore the previous
              behaviour (Robert Muir).

    Patch 9.1.1619
    Problem:  Incorrect E535 error message (after 9.1.1603).
    Solution: Don't use transchar(), as the character is always printable
              (zeertzjq).

    Patch 9.1.1620
    Problem:  filetype: composer.lock and symfony.lock files not recognized
    Solution: Detect composer.lock and symfony.lock files as json filetype
              (Dietrich Moerman).

    Patch 9.1.1621
    Problem:  When the popup menu (PUM) occupies more than half the screen
              height, it flickers whenever a character is typed or erased.
    Solution: A complete, non-hacky fix would require removing the
              CmdlineChanged event from the loop and letting autocompletion
              manage the process end-to-end. This is because screen redraws
              after any cmdline change are necessary for other features to
              work (Girish Palya).

    Patch 9.1.1622
    Problem:  Patch v9.1.1432 causes performance regressions
    Solution: Revert "Patch 9.1.1432 unicode correctly" (Yee Cheng Chin).

    Patch 9.1.1623
    Problem:  Buffer menu does not handle unicode names correctly
              (after v9.1.1622)
    Solution: Fix the BMHash() function (Yee Cheng Chin)

    Patch 9.1.1624
    Problem:  Cscope not enabled on MacOS
    Solution: Remove #ifdef test for MacOS and always enable FEAT_CSCOPE on
              Unix (Damien Lejay).

    Patch 9.1.1625
    Problem:  Autocompletion slow with include- and tag-completion
    Solution: Refactor ins_compl_interrupted() to also check for timeout,
              further refactor code to skip outputting message when
              performing autocompletion (Girish Palya).

    Patch 9.1.1626
    Problem:  C-indent does not handle compound literals (@44100hertz, @Jorenar)
    Solution: Detect and handle compound literal and structure
              initialization (Anttoni Erkkilä).

    Patch 9.1.1627
    Problem:  fuzzy-matching can be improved
    Solution: Implement a better fuzzy matching algorithm (Girish Palya).

    Patch 9.1.1628
    Problem:  fuzzy.c has a few issues
    Solution: Use Vims memory management, update style (glepnir).

    Patch 9.1.1629
    Problem:  Vim9: Not able to use more than 10 type arguments in a generic
              function
    Solution: Initialize the types after reading all the type arg variable
              names (Yegappan Lakshmanan).

    Patch 9.1.1630
    Problem:  tests: fuzzy buffer name completion test doesn't match
              successfully (after 9.1.1627).
    Solution: Update pattern to account for the change in case sensitivity.
              Also mark Test_search_stat_option() as flaky as it can still
              sometimes fail (zeertzjq).

    Patch 9.1.1631
    Problem:  proto files are outdated
    Solution: Regenerate proto files (Yegappan Lakshmanan).

    Patch 9.1.1632
    Problem:  memory leak in fuzzy.c
    Solution: Free fuzmatch, add a few minor refactors (glepnir)

    Patch 9.1.1633
    Problem:  Search pattern shown incorrectly with negative offset (lkintact)
    Solution: Don't prepend a '+' sign to a negative offset (zeertzjq).

    Patch 9.1.1634
    Problem:  Clipboard code can be improved
    Solution: Slightly refactor code (Foxe Chen).

    Patch 9.1.1635
    Problem:  tabpanel: cannot drag inactive tabs (char101)
    Solution: use end_visual_mode_keep_button() instead of end_visual_mode()
              (Naruhiko Nishino).

    Patch 9.1.1636
    Problem:  style issues
    Solution: Fix indentation of function parameters exceeding 80 character
              length (Yegappan Lakshmanan).

    Patch 9.1.1637
    Problem:  FEAT_DIFF used in diff.pro
    Solution: Remove it from the diff protocol file (Yegappan Lakshmanan).

    Patch 9.1.1638
    Problem:  completion: not possible to delay the autcompletion
    Solution: Add the 'autocompletedelay' option value (Girish Palya).

    Patch 9.1.1639
    Problem:  During commandline completiom, popup window placement can be
              incorrect when 'noselect' is present in 'wildmode'
              (Shane-XB-Qian)
    Solution: Disable "showtail" feature when 'noselect' is present.

    Patch 9.1.1640
    Problem:  Unicode has deprecated some code-points
    Solution: Update the digraph tables to align with the Unicode v16
              release (David Friant)

    Patch 9.1.1641
    Problem:  a few compiler warnings are output
    Solution: Fix compiler warnings (Yegappan Lakshmanan).

    Patch 9.1.1642
    Problem:  configure: wrong C99 feature test
    Solution: Update inverted C99 feature test logic (Damien Lejay).

    Patch 9.1.1643
    Problem:  tabpanel: mouse code too complicated
    Solution: Refactor code, adjust ifdefs (Hirohito Higashi).

    Patch 9.1.1644
    Problem:  configure: doesn't separate CPPFLAGS and CFLAGS
    Solution: Split CPPFLAGS and CFLAGS for pkg-config (Damien Lejay).

    Patch 9.1.1645
    Problem:  fuzzy.c can be further improved
    Solution: Fix memory leak and refactor it (glepnir).

    Patch 9.1.1646
    Problem:  MS-Windows: completion cannot handle implicit drive letters
    Solution: Consider paths like \folder and /folder as absolute (Miguel Barro).

    Patch 9.1.1647
    Problem:  filetype: Cangjie files are not recognized
    Solution: Detect *.cj files as cangjie filetype, include a syntax plugin
              (WuJunkai2004)

    Patch 9.1.1648
    Problem:  MS-Windows: some style issues with Patch v9.1.1646
    Solution: Fix typose and code style issues (zeertzjq).

    Patch 9.1.1649
    Problem:  attrs allocation and fuzzy growarray could leak on early returns
    Solution: Ensure proper cleanup of allocated memory on exit paths (glepnir).

    Patch 9.1.1650
    Problem:  After scrolling a popup and then using popup_settext() with
              fewer lines, the popup fails to resize properly because
              firstline points beyond the new buffer content (lifepillar)
    Solution: In popup_adjust_position(), validate that firstline doesn't
              exceed buffer line count and reset to 0 (auto-position) if it
              does (glepnir).

    Patch 9.1.1651
    Problem:  Cannot use clientserver over Unix domain socket
    Solution: Implement socketserver functionality (Foxe Chen).

    Patch 9.1.1652
    Problem:  Cannot determine non-X11/Wayland clipmethods
    Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen)

    Patch 9.1.1653
    Problem:  Coverity complains about Null pointer dereference (after v9.1.1643)
    Solution: Check that TabPageIdx is not Null.

    Patch 9.1.1654
    Problem:  build failure when FEAT_DIFF is not defined (John Marriott)
    Solution: Remove FEAT_DIFF in proto.h; define dummy type for
              diffline_T and diffline_change_T when FEAT_DIFF is not defined

    Patch 9.1.1655
    Problem:  Build-failure in do_mouse() (after v9.1.1653)
    Solution: Add missing closing paren.

    Patch 9.1.1656
    Problem:  MS-Windows: Patch v9.1.1652 breaks clipboard
              (ddad431, after v9.1.1652)
    Solution: Revert the Patch.

    Patch 9.1.1657
    Problem:  Autocompletion adds delay (gcanat, char101, after v9.1.1638)
    Solution: Temporarily disable autocomplation (Girish Palya).

    Patch 9.1.1658
    Problem:  Missing includes for Wayland headers, when subfolder is used
              (after v9.1.1644)
    Solution: Add new $WAYLAND_CPPFLAGS (Christoffer Aasted).

    Patch 9.1.1659
    Problem:  configure: uses AC_INIT without args
    Solution: Add a comment explaining why AC_INIT has no args (Damien Lejay).

    Patch 9.1.1660
    Problem:  Popups without border/padding/title don't flip position when
              cursor is near bottom of screen, while decorated popups do
              flip correctly.
    Solution: Use original height instead of truncated height for position
              inversion check, except for info popups to preserve existing
              behavior (glepnir).

    Patch 9.1.1661
    Problem:  Coverity finds a few issues in clientserver.c
              (also by Tony Mechelynck)
    Solution: Fix issues and warnings (Foxe Chen).

    Patch 9.1.1662
    Problem:  Issues with proto files: missing or inconsistent prototypes.
    Solution: Update ifdefs, move typedefs, fix prototype declaration
              (Hirohito Higashi).

    Patch 9.1.1663
    Problem:  xxd: 9.1.0023 introduced additional dependency
    Solution: Remove non-native z/OS library call (David Seal).

    Patch 9.1.1664
    Problem:  configure: can use any autocon
    Solution: Use AC_PREREQ and require 2.71 (Damien Lejay).

    Patch 9.1.1665
    Problem:  Outdated comment in eval.c.
    Solution: Remove the comment, which is no longer true after 8.2.1672.
              Also fix a typo in version9.txt (zeertzjq).

    Patch 9.1.1666
    Problem:  no support for terminal primary device attributes
    Solution: Add support for detecting the DA1 response from the terminal,
              add the v:termda1 variable and the 't_Ms' option for the
              OSC 52 command format (Foxe Chen).

    Patch 9.1.1667
    Problem:  Another outdated comment in eval.c (after 9.1.1665).
    Solution: Remove that comment as well. Add a few more tests for mapnew()
              that fail without Patch 8.2.1672 (zeertzjq).

    Patch 9.1.1668
    Problem:  items() does not work for Blobs
    Solution: Extend items() to support Blob (Yegappan Lakshmanan).

    Patch 9.1.1669
    Problem:  Vim script: no support for URI de-/encoding (ubaldot)
    Solution: Add the uri_encode() and uri_decode() functions
              (Yegappan Lakshmanan)

    Patch 9.1.1670
    Problem:  completion: autocomplete breaks second completion (gravndal)
    Solution: Fix the autocomplete bug (Girish Palya).

    Patch 9.1.1671
    Problem:  configure: missing comment about AC_CONFIG_SRCDIR
    Solution: Add comment explaining the use of AC_CONFIG_SRCDIR (Damien Lejay).

    Patch 9.1.1672
    Problem:  completion: cannot add timeouts for 'cpt' sources
              (Evgeni Chasnovski)
    Solution: Add the 'autocompletetimeout' and 'completetimeout' options
              (Girish Palya).

    Patch 9.1.1673
    Problem:  if_python: still support for Python 1
    Solution: Drop outdated code (Hirohito Higashi).

    Patch 9.1.1674
    Problem:  Patch v9.1.1666 causes problems on kitty (Sami Farin)
    Solution: Remove Ms value from termcodes (Foxe Chen).

    Patch 9.1.1675
    Problem:  MS-Windows: Makefiles can be refactored
    Solution: Refactor using a common tools.mak, make some style changes
              (RestorerZ).

    Patch 9.1.1676
    Problem:  completion: long line shown twice (Maxim Kim)
    Solution: Fix the issue, disable an incorrect test (Girish Palya).

    Patch 9.1.1677
    Problem:  wrong ifdef in message.c
    Solution: change it to #ifndef MSWIN (Damien Lejay).

    Patch 9.1.1678
    Problem:  Amiga: cannot handle large undo files
    Solution: Remove the existing restriction as it was only valid for
              classic Amiga (Damien Lejay).

    Patch 9.1.1679
    Problem:  unclear what key causes CmdlineLeave autocommand
    Solution: Set |v:char| to the key (Girish Palya).

    Patch 9.1.1680
    Problem:  MS-Windows: possible buffer-under run in if_cscope
              cs_pathcomponents() (Murali Aniruddhan)
    Solution: Fix the loop and do not decrement the pointer twice.

    Patch 9.1.1681
    Problem:  tests: no test for actually moving cursor when menu is not
              open with 'autocompletedelay'.
    Solution: Use <Up> first in the test. Also remove two unnecessary <Esc>s
              in completion timeout test (zeertzjq).

    Patch 9.1.1682
    Problem:  tests: Test_wildtrigger_update_screen() creates an unused
              mapping (after 9.1.1621).
    Solution: Remove the mapping. Also use blank lines more consistently in
              test_cmdline.vim screendump tests (zeertzjq).

    Patch 9.1.1683
    Problem:  xxd: Avoid null dereference in autoskip colorless
    Solution: Verify that colors is not null (Joakim Nohlgård).

    Patch 9.1.1684
    Problem:  min()/max() does not handle float data types (ubaldot)
    Solution: Extend min() and max() to every comparable type (LemonBoy).

    Patch 9.1.1685
    Problem:  Missing changes from PR 18068
    Solution: Include the missing changes (Girish Palya).

    Patch 9.1.1686
    Problem:  if_ruby: unknown pragma when not using gcc
    Solution: only use GCC pragma, when using GCC (Cthulhux).

    Patch 9.1.1687
    Problem:  filetype: autoconf filetype not always correct
    Solution: Detect aclocal.m4 as config filetype, detect configure.ac as
              config filetype, fall back to POSIX m4 (Damien Lejay).

    Patch 9.1.1688
    Problem:  potential buffer overrun in bufwrite.c
    Solution: Use a temporary variable (John Marriott).

    Patch 9.1.1689
    Problem:  CmdlineChanged not triggered by <Del>
    Solution: Use STRCMP() instead of STRNCMP() (Shougo Matsushita).

    Patch 9.1.1690
    Problem:  Missing recursion guard in dos/unix_expandpath()
    Solution: Add guard variables (ashamedbit).

    Patch 9.1.1691
    Problem:  over-allocation in ga_concat_strings()
    Solution: Fix ga_concat_strings() and only allocate n-1 separator length
              bytes (Damien Lejay).

    Patch 9.1.1692
    Problem:  global_functions are not constant
    Solution: Place global_functions[] in read-only memory (Damien Lejay).

    Patch 9.1.1693
    Problem:  tests: test_filetype fails in shadow dir (after v9.1.9.1.1687)
    Solution: Use a custom test that does not rely on configure.ac
              being existing in the upper directory tree.

    Patch 9.1.1694
    Problem:  filetype: Buck eXtension Lang files are not recognized
    Solution: Detect *.bxl files as bzl filetype. (Jade Lovelace)

    Patch 9.1.1695
    Problem:  Need more Vim script specific tests
    Solution: Add more tests (Yegappan Lakshmanan).

    Patch 9.1.1696
    Problem:  getwininfo() has logic for getting the tabnr of a local popup
              window, but due to only breaking from the inner loop, tp is
              eventually set to NULL, so tabnr is always 0.
    Solution: Break out of both loops, continue to use 0 for global popup
              windows (Sean Dewar).

    Patch 9.1.1697
    Problem:  tests: no test for aclocal.m4 (after v9.1.1693)
    Solution: Add a test that aclocal.m4 is detected as config filetype.

    Patch 9.1.1698
    Problem:  Some error numbers are not documented (Restorer)
    Solution: Document missing error numbers (Yegappan Lakshmanan).

    Patch 9.1.1699
    Problem:  Fuzzy completion disabled for 'findfunc' and customlist
    Solution: Remove those cases from cmdline_fuzzy_completion_supported()
              because it is supported (Maxim Kim).

    Patch 9.1.1700
    Problem:  a pattern that involves a backref on a different line does not
              match when 'ignorecase' is set (QiWei, after v9.1.0645)
    Solution: Use MB_STRNICMP when ignorecase is set, fix tests to close
              swapfiles.

    Patch 9.1.1701
    Problem:  tests: failure on CI with GUI and ASAN in test_edit.res
              (Hirohito Higashi)
    Solution: Disable the test for that specific situation in CI, close
              swapfiles.

    Patch 9.1.1702
    Problem:  tests: test_edit still fails on CI (after v9.1.1701)
    Solution: Fix the skip condition.

    Patch 9.1.1703
    Problem:  Cannot react to terminal OSC responses
    Solution: Allow TermResponseAll to be triggered by Terminal OSC
              responses (Foxe Chen).

    Patch 9.1.1704
    Problem:  Cannot determine non-X11/Wayland clipmethods
    Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen).

    Patch 9.1.1705
    Problem:  time.h include is available on all platforms
    Solution: Remove ifdef guards and simply include it in all source files,
              get rid of double include in spellfile.c (Damien Lejay).

    Patch 9.1.1706
    Problem:  MS-Windows: Compile error when building with if_ruby
              (Christian Robinson, after v9.1.1704)
    Solution: Do not define gettimeofday() if ruby interface is compiled in
              (Foxe Chen).

    Patch 9.1.1707
    Problem:  diff.pro contains #ifdefs
    Solution: Remove unintentionally added ifdefs (Hirohito Higashi).

    Patch 9.1.1708
    Problem:  tests: various tests can be improved
    Solution: Use string interpolation to concatenate strings in
              test_winfixbuf, check for specific errors in assert_fails()
              (Yegappan Lakshmanan).

    Patch 9.1.1709
    Problem:  filetype: kyaml files are not recognized
    Solution: Detect *.kyml files as yaml filetype (Volodymyr Chernetskyi).

    Patch 9.1.1710
    Problem:  Compile warnings in clipboard.c (xvim64, after v9.1.1704)
    Solution: Remove returns from void functions (Foxe Chen).

    Patch 9.1.1711
    Problem:  Missing type cast in clipboard.c
              (Yegappan Lakshmanan, after v9.1.1704)
    Solution: Add back the type cast (Foxe Chen).

    Patch 9.1.1712
    Problem:  screen not redrawn properly on t_RB response (after v9.1.1703)
    Solution: Call redraw_asap() if necessary (Julio B).

    Patch 9.1.1713
    Problem:  filetype: fvwm2m4 files are no longer recognized (after 9.1.1687).
    Solution: Add a special case in m4 filetype detection (zeertzjq).

    Patch 9.1.1714
    Problem:  completion: wildmode=longest:full selects wrong item (zeertzjq)
    Solution: Fix issue, refactor ex_getln.c slightly (Girish Palya).

    Patch 9.1.1715
    Problem:  Some functions need to be re-ordered
    Solution: Re-order and move functions around favoring mch_*() functions
              inside os_*.c files, Change scope of dos_expandpath() to
              global instead of static (Hirohito Higashi).

    Patch 9.1.1716
    Problem:  The code inside an ifdef was indented incorrectly.
    Solution: Adjusted the indentation by one level (glepnir).

    Patch 9.1.1717
    Problem:  filetype: AWS cli alias file is not recognized
    Solution: Detect .aws/cli/alias as confini filetype (Volodymyr Chernetskyi).

    Patch 9.1.1718
    Problem:  filetype: kubectl config file is not recognized
    Solution: Detect .kube/kubectl as yaml filetype (Volodymyr Chernetskyi).

    Patch 9.1.1719
    Problem:  socket server code can be improved
    Solution: Refactor code, get rid of gettimeofday() and use ELAPSED_
              macros (Foxe Chen).

    Patch 9.1.1720
    Problem:  Using gettimeofday() for parsing OSC responses
    Solution: Use ELAPSED_ macros instead (Foxe Chen).

    Patch 9.1.1721
    Problem:  Defining a global gettimeofday() function causes conflicts if
              gettimeofday() is already defined.
    Solution: Revert globalized gettimeofday() function (Hirohito Higashi).

    Patch 9.1.1722
    Problem:  Compiler may optimize away clearing of crypt key
    Solution: Use sodium_memzero() if available, else use memset() using a
              volatile function pointer (ashamedbit).

    Patch 9.1.1723
    Problem:  Missing ifdefs (after v9.1.1719)
    Solution: Add ifdef ELAPSED_FUNC (Foxe Chen).

    Patch 9.1.1724
    Problem:  Compiler warning about ununitialized variable in ex_docmd.
    Solution: Initialize result variable (mityu).

    Patch 9.1.1725
    Problem:  Wayland code can be improved
    Solution: Refactor Wayland Clipboard code (Foxe Chen).

    Patch 9.1.1726
    Problem:  Patch v9.1.1725 causes problems
    Solution: Revert the Patch for now.

    Patch 9.1.1727
    Problem:  Nextstep support still included
    Solution: Deprecate Nextstep code and undef corresponding feature flag.

    Patch 9.1.1728
    Problem:  termdebug: cannot evaluate visual selected expression
    Solution: Add support for visual mode, mapped to K by default (bennyyip).

    Patch 9.1.1729
    Problem:  CI is not run with clang 21
    Solution: Update CI to v21, fix a few warnings that are uncovered when
              using clang 21 (Philip H).

    Patch 9.1.1730
    Problem:  filetype: vivado journal/log files are not recognized
    Solution: Detect vivado*.{jou,log} as tcl filetype (Wu Zhenyu).

    Patch 9.1.1731
    Problem:  Not using const qualifier
    Solution: Mark the opchars array const.

    Patch 9.1.1732
    Problem:  filetype: .inc file detection can be improved
    Solution: Update filetype detection for Pascal and BitBake code
              (Martin Schwan).

    Patch 9.1.1733
    Problem:  tests: failure when remote_server() fails
    Solution: Catch E240 error when calling remote_server(), Fix syntax
              error in test_wayland.vim.

    Patch 9.1.1734
    Problem:  Memory leak when allocating match fails
    Solution: Initialize m to NULL and centralize cleanup via goto fail to
              avoid leaks on early returns (Damien Lejay).

    Patch 9.1.1735
    Problem:  Cygwin Makefile still checks for Win XP version
    Solution: Remove check for WINVER >= 0x600 in Make_cyg_ming.mak
              (Mao-Yining).

    Patch 9.1.1736
    Problem:  Cannot detect <F3> using kitty protocol
    Solution: Handle and detect Kitty keys when using the trailing "~" byte.

    Patch 9.1.1737
    Problem:  Patch v9.1.1714 introduce a regression for wildmenu (zeertzjq)
    Solution: Restore behavior of "longest" in 'wildmode' (Girish Palya).

    Patch 9.1.1738
    Problem:  cmdline-autocompletion breaks history navigation (ddad431)
    Solution: Support history navigation in cmdline autocompletion (Girish
              Palya).

    Patch 9.1.1739
    Problem:  Matches may be listed twice with wildmode=longest,list when
              "longest" doesn't change command line (after 9.1.1737).
    Solution: Set did_wild_list when trying "list" after "longest" (zeertzjq).

    Patch 9.1.1740
    Problem:  Memory leak with wildmode=longest,full and wildoptions=pum
              (after 9.1.1737).
    Solution: Avoid using showmatches() and WILD_NEXT together.  Also fix
              wildmode=longest,noselect:full selecting wrong item (zeertzjq).

    Patch 9.1.1741
    Problem:  Regression with kitty protocol and trailing byte "u"
              (chdiza, after v9.1.1736)
    Solution: Check that trailing byte "~" is present.

    Patch 9.1.1742
    Problem:  complete: preinsert does not work well with preinsert
    Solution: Make "preinsert" completeopt value work with autocompletion
              (Girish Palya).

    Patch 9.1.1743
    Problem:  Haiku: no full-screen support
    Solution: Add support for toggling full-screen using the keyboard (rymdbar)

    Patch 9.1.1744
    Problem:  tests: Test_skip_wildtrigger_hist_navigation() may fail (zeertzjq).
    Solution: Correct test to validate intended behavior (Girish Palya).

    Patch 9.1.1745
    Problem:  tabpanel: not properly redraw after wildmenu (ddad431)
    Solution: Mark tabpanel to be redrawn (Hirohito Higashi).

    Patch 9.1.1746
    Problem:  Missing Null ptr check in cs_find_common()
    Solution: Return when tmp pointer is null (ashamedbit).

    Patch 9.1.1747
    Problem:  completion: redo (.) broken with preinsert and autocompletion
    Solution: Make redo (.) work with preinsert and autocompletion (Girish Palya).

    Patch 9.1.1748
    Problem:  macOS: Default scheduler priority too low
    Solution: Explicitly set TASK_DEFAULT_APPLICATION scheduler priority
              to improve responsiveness (Luna Razzaghipour).

    Patch 9.1.1749
    Problem:  leaking memory in cs_find_common() (after v9.1.1746)
    Solution: Also free nummatches before returning.

    Patch 9.1.1750
    Problem:  completion: preinserted text highlighed using ComplMatchIns
    Solution: Use highlighting group PreInsert and update the documentation
              (Girish Palya).

    Patch 9.1.1751
    Problem:  potential buffer-overflow in find_pattern_in_path()
    Problem:  Verify ptr p has enough room before adding ins_compl_len().

    Patch 9.1.1752
    Problem:  tests: No test when deleting text after autocompletion with
              preinsert did complete an entry
    Solution: Verify, that after deletion autocompletion does not reinsert
              the deleted text. Note: the actual issue was fixed with v9.1.1750
              (Girish Palya).

    Patch 9.1.1753
    Problem:  defaults: 'diffopt' option value can be improved
    Solution: Update diffopt defaults to include "indent-heuristic" and
              "inline:char" (Yee Cheng Chin)

    Patch 9.1.1754
    Problem:  :helptags doesn't skip examples with syntax (Evgeni Chasnovski)
    Solution: Check for examples with syntax (zeertzjq).

    Patch 9.1.1755
    Problem:  filetype: generic log files are not recognized
    Solution: Detect *.log files as log filetype, include simple log syntax
              script (Mao-Yining).

    Patch 9.1.1756
    Problem:  termdebug: Need a few more user commands
    Solution: Add the :RunOrContinue and the :ToggleBreak user commands
              (bennyyip)

    Patch 9.1.1757
    Problem:  The colorresp plugin causes additional redraws
              (Linwei, after v9.1.1703)
    Solution: Move the code back into the C core and get rid of the vim
              plugin (Foxe Chen).

    Patch 9.1.1758
    Problem:  Diff mode crashes when adding text property in autocommand
              (after 9.1.1557).
    Solution: Only restore ML_EMPTY memline flag, ignore the others (zeertzjq).

    Patch 9.1.1759
    Problem:  filetype: generic log detection is too disturbing (after v9.1.1755)
    Solution: Revert setting log filetype.

    Patch 9.1.1760
    Problem:  wrong proto file for insexpand.pro
    Solution: Update insexpand.pro (Hirohito Higashi).

    Patch 9.1.1762
    Problem:  completion: selected item not cleared on backspace when
              'autocomplete' is set
    Solution: Clear the selected item (Girish Palya).

    Patch 9.1.1763
    Problem:  filetype: kitty config files are not recognized
    Solution: Detect */kitty/*.conf as kitty filetype, include a syntax
              script (Shawon).

    Patch 9.1.1764
    Problem:  filetype: CODEOWNERS file not recognized
    Solution: Detect CODEOWNERS file as codeowners filetype, include a
              syntax and filetype plugin (Jon Parise).

    Patch 9.1.1765
    Problem:  f_isnan() and f_isinf() do not correctly initialize rettv type
    Solution: Initialize them with type: VAR_NUMBER and value 0 (Damien Lejay).

    Patch 9.1.1766
    Problem:  Vim9: some Vim9 functions do not handle null_string correctly
              and may crash Vim (kennypete).
    Solution: Check for null_string correctly in the searchpair() and
              substitute() functions (Yegappan Lakshmanan).

    Patch 9.1.1767
    Problem:  Patch v9.1.1765 was wrong
    Solution: Roll back the change, it's correct to have call_func() initialize
              the type, so that not each function has to do this on its own.

    Patch 9.1.1768
    Problem:  Makefile does not uninstall global plugins (after v9.1.1757)
    Solution: Uninstall global plugins before installing them, so that old files
              are not carried around and loaded when no longer used.

    Patch 9.1.1769
    Problem:  completion: "preinsert" insert wrong word with 'smartcase' and
              'autocomplete'
    Solution: Add compare completed item with the leader (Girish Palya).

    Patch 9.1.1770
    Problem:  Vim9: wrong behaviour with trailing comments in command blocks
              (balki)
    Solution: Correctly skip over trailing comments (Yegappan Lakshmanan).

    Patch 9.1.1771
    Problem:  complete: some redraw issues with 'autocomplete'
    Solution: Fix the issues (Girish Palya).

    Patch 9.1.1772
    Problem:  completion: inconsistent selection of first item with
              'autocomplete' (Tomasz N)
    Solution: Check for 'autocomplete' option in ins_compl_new_leader()
              (Girish Palya).

    Patch 9.1.1773
    Problem:  Crash in BufLeave/WinLeave/TabLeave when closing window after
              BufUnload closes all other windows in the tab page.
    Solution: Avoid duplicate BufLeave/WinLeave events. Trigger TabLeave
              before removing the buffer (zeertzjq).

    Patch 9.1.1774
    Problem:  cannot calculate sha256() of a Blob
    Solution: Change sha256() to accept a Blob or String argument (thinca).

    Patch 9.1.1775
    Problem:  filetype: Mamba configuration files are not recognized
    Solution: Detect .mambarc and mambarc as yaml filetype (Samuel Huang).

    Patch 9.1.1776
    Problem:  "adding" expansion doesn't work with cfc=keyword.
    Solution: Remove incorrect assignment to compl_cont_status. Don't use
              fuzzy collection in "adding" status (zeertzjq).

    Patch 9.1.1777
    Problem:  Mouse click to open fold doesn't work with utf-8 "foldclose"
              chars (Balki)
    Solution: Use ScreenLinesUC[off] if it is set (zeertzjq).

    Patch 9.1.1778
    Problem:  sha256() treats empty blob and null blob differently
              (after 9.1.1774).
    Solution: Handle null blob the same as empty blob (zeertzjq).

    Patch 9.1.1779
    Problem:  completion: 'autocomplete' cannot be enabled per buffer (Tomasz N)
    Solution: Make 'autocomplete' global or local to buffer (Girish Palya).

    Patch 9.1.1780
    Problem:  mbyte contains overlapping list of utf_classes table
    Solution: Update table to contain non-overlapping list (Yuta Yamamoto).

    Patch 9.1.1781
    Problem:  some functions could be defined static
    Solution: Change function definitions and make them static
              (Yegappan Lakshmanan).

    Patch 9.1.1782
    Problem:  buffer-listener callbacks may not match buffer content, since
              they are buffered until the screen is updated.
    Solution: Allow to handle buffer-callbacks un-buffered, meaning to
              handle those changes as soon as they happen (Paul Ollis).

    Patch 9.1.1783
    Problem:  ins_compl_leader() defined too far away from
              ins_compl_leader_len() (after 9.1.1781).
    Solution: Move ins_compl_leader() just before ins_compl_leader_len(). Add
              missing "static" to eval0_simple_funccal() definition (zeertzjq).

    Patch 9.1.1784
    Problem:  Wayland code can be improved
    Solution: Refactor Wayland Clipboard code (Foxe Chen).

    Patch 9.1.1785
    Problem:  typo in comment in change.c (after v9.1.1782)
    Solution: Fix typo in comment in change.c (Christ van Willegen).

    Patch 9.1.1786
    Problem:  Compile error with clipboard (lacyggoill, after v9.1.1784)
    Solution: Add $WAYLAND_SRC as dependency for clipboard.c in Makefile
              (Foxe Chen).

    Patch 9.1.1787
    Problem:  filetype: not all Sway config files are recognized
    Solution: Detect files within /sway/config.d/* as swayconfig filetype
              (Felix Pehla).

    Patch 9.1.1788
    Problem:  Vim9: can declare a void variable (Ernie Rael)
    Solution: Disallow such variable declaration (Yegappan Lakshmanan).

    Patch 9.1.1789
    Problem:  MS-Windows: using wrong check for bold font (after v9.1.1347)
    Solution: Test if lf.lfWeight == FW_BOLD instead of a simple truthiness
              test (Shay).

    Patch 9.1.1790
    Problem:  completion: Enter does not insert match with "noinsert"
              (Sergey Vlasov)
    Solution: Check for compl_shown_match instead of compl_selected_item
              (zeertzjq).

    Patch 9.1.1791
    Problem:  type(void) throws an internal error (atitcreate)
    Solution: Return proper error message (Yegappan Lakshmanan).

    Patch 9.1.1792
    Problem:  List of changes not protected from changes when processing
              listeners (after v9.1.1782)
    Solution: Fully lock changes list for listener callbacks (Paul Ollis).

    Patch 9.1.1793
    Problem:  Link error when build without channel feature
              (lindhobe, after v9.1.1774)
    Solution: Remove ifdef FEAT_JOB_CHANNEL around check_for_string_or_blob_arg().

    Patch 9.1.1794
    Problem:  configure: terminfo test does not work with musl
              (T3rm1, after v9.9.1.0837)
    Solution: Include term.h in configure script, add forward declarations,
              in case headers are not found.

    Patch 9.1.1795
    Problem:  Vim9: popup_show() may return void
    Solution: Modify popup_show() to return -1 for an invalid popup window
              id (Yegappan Lakshmanan).

    Patch 9.1.1796
    Problem:  Wrong cursor position with wrapped "after" virtual text and
             'showbreak' (Ben Jackson)
    Solution: Count size of 'showbreak' in wrapped "after" virtual text in
              line size (zeertzjq).

    Patch 9.1.1797
    Problem:  completion: autocompletion can be improved
    Solution: Add support for "longest" and "preinsert" in 'autocomplete';
              add preinserted() (Girish Palya)

    Patch 9.1.1798
    Problem:  Wrong display with 'smoothscroll' and long wrapped virtual
              text at EOL.
    Solution: Handle w_skipcol inside long wrapped virtual text at EOL (zeertzjq).

    Patch 9.1.1799
    Problem:  completion: crash with autcompletion (Maxim Kim)
    Solution: Rework remove_old_matches (Girish Palya).

    Patch 9.1.1800
    Problem:  completion: strange behaviour with 'ac'
              completeopt=longest,preinsert (zeertzjq)
    Solution: Let preinsert take precedence (Girish Palya).

    Patch 9.1.1801
    Problem:  Vim9: misleading error when extending dictionary (lacygoill).
    Solution: Give a proper error message when a Dict type is used with a
              compound operator (Yegappan Lakshmanan).

    Patch 9.1.1802
    Problem:  'nowrap' in a modeline may hide malicious code.
    Solution: Forcibly use '>' as 'listchars' "extends" if 'nowrap' was set
              from a modeline (zeertzjq).

    Patch 9.1.1803
    Problem:  Amiga: build errors
    Solution: Update preprocessor conditionals (Ola Söder).

    Patch 9.1.1804
    Problem:  Wrong indentation of nested ifdefs in findfile.c
    Solution: Update indentation (Ola Söder).

    Patch 9.1.1805
    Problem:  Amiga: Missing build date in version string
    Solution: Set build date in CFLAGS in Makefile (Ola Söder).

    Patch 9.1.1806
    Problem:  Missing PROTO defines
    Solution: Update ifdefs, update Makefile dependencies, updated proto files
              (Hirohito Higashi).

    Patch 9.1.1807
    Problem:  :set doesn't clear local insecure flag like :setlocal does.
    Solution: Also clear the local insecure flag when using :set (zeertzjq).

    Patch 9.1.1808
    Problem:  Option insecure flags not copied when splitting window.
    Solution: Move window-local insecure flags to winopt_T and copy them
              properly (zeertzjq).

    Patch 9.1.1809
    Problem:  winclip.pro included in PRO_AUTO
    Solution: Remove it from PRO_AUTO since it is already defined in
              PRO_MANUAL (Hirohito Higashi).

    Patch 9.1.1810
    Problem:  completion: "longest" doesn't work for manual completion when
              'autocomplete' is on (after 9.1.1800).
    Solution: Only reset compl_get_longest when enabling autocompletion (zeertzjq)

    Patch 9.1.1811
    Problem:  Amiga: Initialization of random buffer can be improved
    Solution: Use RANDOM device when available (Ola Söder)

    Patch 9.1.1812
    Problem:  completion: flicker with slow LSPs
    Solution: Disable flushing the changed text (Girish Palya).

    Patch 9.1.1813
    Problem:  MS-Windows: title bar is always white
    Solution: Set_caption() and set the title bars color to the Normal
              highlighting background (Mao-Yining)

    Patch 9.1.1814
    Problem:  Patch v9.1.1812 causes crashes
    Solution: Revert v9.1.1812

    Patch 9.1.1815
    Problem:  file mode changes in os_amiga.pro to 644 (RestorerZ after v9.1.1811)
    Solution: Fix the permissions of proto/os_amiga.pro to 644 (Hirohito Higashi).

    Patch 9.1.1816
    Problem:  existing icon files are dated
    Solution: Update and remake those icons using 256 colors (RestorerZ).

    Patch 9.1.1817
    Problem:  popup: there are some position logic bugs
    Solution: Refactor position logic and fix a few bugs (Girish Palya).

    Patch 9.1.1818
    Problem:  possible crash when calculating topline in diff.c (youngmith)
    Solution: Check for pointer being Null before accessing it.

    Patch 9.1.1819
    Problem:  Cannot configure the inner foldlevel indicator for the
              foldcolumn
    Solution: Add "foldinner" suboption value to the 'fillchar' option
              (Maria José Solano).

    Patch 9.1.1820
    Problem:  completion: some issues with 'acl' when "preinsert" and
              "longest" is in 'completeopt' (musonius, after v9.1.1638)
    Solution: Fix various issues (see details below) (Girish Palya).

    Patch 9.1.1821
    Problem:  filetype: Not all PKL files are recognized
    Solution: Detect *.pcf as pkl filetype, detect using the pkl-lsp://
              protocol as pkl filetype, include PKL syntax script (Jan Claußen).

    Patch 9.1.1822
    Problem:  Makefile still supports Perl < 5.005
    Solution: Remove support for Perl < 5.005, it's long been obsolete
              (Hirohito Higashi)

    Patch 9.1.1823
    Problem:  diff: w_topline may be invalidated
    Solution: Update lnum in diff_set_topline() (Yee Cheng Chin).

    Patch 9.1.1824
    Problem:  tests: no test for displaying 'foldcolumn' with Unicode
              "foldinner" in 'fillchars'.
    Solution: Add a few more test cases.  Also fix misplaced "foldinner"
              entry in version9.txt (zeertzjq).

    Patch 9.1.1825
    Problem:  completion: flicker when LSP server is slow
    Solution: reinsert leader text before invoking user function (Girish Palya).

    Patch 9.1.1826
    Problem:  Patch v9.1.1230 causes confusion about Ctrl-C behaviour
              (kuuote, after v9.1.1230)
    Solution: Revert the behaviour, keep the old behaviour.

    Patch 9.1.1827
    Problem:  completion: v9.1.1797 broke Ctrl-Y behaviour
              (ddad431, after v9.1.1797)
    Solution: Restore correct behaviour (Girish Palya).

    Patch 9.1.1828
    Problem:  local variables shadowed by import names
    Solution: Check if a local variable exists before handling imports (thinca).

    Patch 9.1.1829
    Problem:  filetype: KerML and SysML files are not recognized
    Solution: Detect *.kerml as kerml filetype, detect *.sysml as sysml
              filetype, include a kerml and sysml filetype plugin
              (Daumantas Kavolis).

    Patch 9.1.1830
    Problem:  MS-Windows: Dark mode titlebar is not configurable (after v9.1.1813)
    Solution: Revert Patch v9.1.1813

    Patch 9.1.1831
    Problem:  vertical separator of 'winfixwidth' windows may remain if they
              become right-most windows from closing windows to the right.
    Solution: Don't implicitly rely on frame_new_width to fix vseps, as the
              call may be skipped for 'winfixwidth' windows to preserve
              their width; do it explicitly in winframe_remove (Sean Dewar).

    Patch 9.1.1832
    Problem:  if_perl: contains references to legacy if_perlsfio.{c,pro} and
              USE_SFIO
    Solution: Remove those references (Hirohito Higashi).

    Patch 9.1.1833
    Problem:  completion: fuzzy candidates are not sorted (ddad431)
    Solution: Always sort fuzzy candidates (Girish Palya).

    Patch 9.1.1834
    Problem:  MS-Windows: not possible to highlight the title bar
    Solution: Make the title/caption bar configurable by introducing the
              'go-C' option value which allows to highlight it using the
              TitleBar and TitleBarNC highlighting groups (Mao-Yining).

    Patch 9.1.1835
    Problem:  not possible to style popup borders globally
    Solution: Add the 'pumborder' option (Girish Palya).

    Patch 9.1.1836
    Problem:  'cursorlineopt' "screenline" isn't redrawn when moving cursor
              and then using line("w0") and :retab that does nothing.
    Solution: Call redraw_for_cursorcolumn() when setting a valid w_virtcol
              (zeertzjq).

    Patch 9.1.1837
    Problem:  tests: Test_plugin_evaluate_in_popup() fails on 32bit arch
              (James McCoy)
    Solution: Instead of evaluating the ptr, let's evaluate just the pointer
              content, skipping printing the pointer address.

    Patch 9.1.1838
    Problem:  proto files out of sync
    Solution: Update proto files (Hirohito Higashi).

    Patch 9.1.1839
    Problem:  Window may have wrong height if resized from another tabpage.
    Solution: Improve check for whether a tabline has been added (zeertzjq).

    Patch 9.1.1840
    Problem:  Generating prototype files does not work on all platforms
    Solution: Rework prototypes generation using python instead of cproto,
              enable it in CI to test it for each PR (Hirohito Higashi).

    Patch 9.1.1841
    Problem:  Patch 9.1.1840 adds python build dependency (chdizza)
    Solution: Update dependencies (Hirohito Higashi).

    Patch 9.1.1842
    Problem:  MS-Windows: build failure when mzscheme is included
              (dertuxmalwieder, after v9.1.1838)
    Solution: skip specific section when PROTO is defined (Hirohito Higashi).

    Patch 9.1.1843
    Problem:  tests: Test_search_stat_option() may fail on slow systems
    Solution: test_search_stat: Extend searchcount() timeout if the test is
              being re-run due to flakiness (James McCoy).

    Patch 9.1.1844
    Problem:  Makefile: dependencies not updated (Hirohito Higashi)
    Solution: Update Dependencies after v9.1.1841.

    Patch 9.1.1845
    Problem:  Makefile: Missing dependency on osdef.h
    Solution: Add explicit dependency on auto/osdef.h.

    Patch 9.1.1846
    Problem:  Build failure when building without wayland
              (bennyyip, after v9.1.1844)
    Solution: Update Makefile dependencies again, remove wayland dependencies for
              clipboard.c.

    Patch 9.1.1847
    Problem:  No cmdline completion for :echoconsole, :echowindow and second
              expression after :echoerr.
    Solution: Set EXPAND_EXPRESSION for :echoconsole and :echowindow, and
              check for multiple expressions after :echoerr (zeertzjq).

    Patch 9.1.1848
    Problem:  A few typos in the code
    Solution: Fix typos (zeertzjq).

    Patch 9.1.1849
    Problem:  CTRL-F and CTRL-B don't work in more prompt
    Solution: Make CTRL-F and CTRL-B scroll by a screen down/up
              (Bjoern Foersterling)

    Patch 9.1.1850
    Problem:  completion: not triggered after i_Ctrl-W/i_Ctrl-U
    Solution: Trigger autocomplete when entering Insert mode (Girish Palya).

    Patch 9.1.1851
    Problem:  memory leak in heredoc_get()
    Solution: Free "str" if list_append_string() fails (Lidong Yan).

    Patch 9.1.1852
    Problem:  vim9class: fix memory leak in parse_member()
    Solution: Free evalarg before returning (Lidong Yan).

    Patch 9.1.1853
    Problem:  Ctrl-F and Ctrl-B at more prompt not working with kitty
              keyboard protocol or modifyOtherKeys (after v9.1.1849).
    Solution: Call merge_modifyOtherKeys() in get_keystroke() (zeertzjq).

    Patch 9.1.1854
    Problem:  unnecessary code in optionstr.c
    Solution: Remove it (Hirohito Higashi).

    Patch 9.1.1855
    Problem:  Makefile: using non-portable syntax (Jonathan Schleifer)
    Solution: Remove duplicate parenthesis.

    Patch 9.1.1856
    Problem:  cannot style popup window (border, shadow, etc)
    Solution: Extend the 'completepopup' option with additional properties
              (Girish Palya).

    Patch 9.1.1857
    Problem:  Missing clipboard provider support (lilydjwg)
    Solution: Add clipboard provider feature (Foxe Chen).

    Patch 9.1.1858
    Problem:  v:register not reset after Visual mode command (laktak).
    Solution: Reset v:register if Visual mode was active before
              do_pending_operator() (zeertzjq).

    Patch 9.1.1859
    Problem:  completion: whitespace not cleared with 'ai'
    Solution: Remove spaces added by 'autoindent' when autocomplete is set
              and restore did_ai in ins_compl_start() (Maxim Kim)

    Patch 9.1.1860
    Problem:  clipboard register "+" enabled with cplipboard provider feature
              (BenYip, after v9.1.1857)
    Solution: Don't make clipboard provider enable plus register on UNIX
              (Foxe Chen).

    Patch 9.1.1861
    Problem:  Amiga: Locating runtime directory and rc files can be
              simplified.
    Solution: Use assigns since it's simpler and more in line with
              how other Amiga applications work (Ola Söder).

    Patch 9.1.1862
    Problem:  Wrong ifdefs for clipboard provider (after v9.1.1857)
    Solution: Update ifdefs (Foxe Chen).

    Patch 9.1.1863
    Problem:  Cannot test for working "+" register
    Solution: Add a few more feature tests (Foxe Chen).

    Patch 9.1.1864
    Problem:  tests: Clipboard provider feature test failure
    Solution: Check in the test that the + clipboard register is available,
              fix compile warning (Foxe Chen)

    Patch 9.1.1865
    Problem:  tests: test_codestyle does not notice lines containing only a tab
    Solution: Fix the whitespace issue in eval.txt, update test_codestyle to
              notice such issues (Hirohito Higashi).

    Patch 9.1.1866
    Problem:  HAVE_STRCSPN define is unused
    Solution: Remove all HAVE_STRCSPN defines (Ola Söder).

    Patch 9.1.1867
    Problem:  HAVE_STDARG_H still defined (after v7.4.1216)
    Solution: Remove all remaining occurrences of HAVE_STDARG_H (Ola Söder).

    Patch 9.1.1868
    Problem:  v:register is wrong in v_: command (after 9.1.1858).
    Solution: Don't reset v:register for OP_COLON (zeertzjq).

    Patch 9.1.1869
    Problem:  tests: test failures with Python 3.14 and test_python3
    Solution: Adjust the expected error message (Yee Cheng Chin).

    Patch 9.1.1870
    Problem:  :Tutor may not work as expected
    Solution: set buftype=nowrite instead of nofile (Phá��m Bình An).

    Patch 9.1.1871
    Problem:  Wrong 'showcmd' in the command-line window.
    Solution: Clear 'showcmd' when entering cmdwin (zeertzjq).

    Patch 9.1.1872
    Problem:  Cmdline history not updated when mapping both <Up> and <CR>.
    Solution: Consider the command typed when in Cmdline mode and there is
              no pending input (zeertzjq).

    Patch 9.1.1873
    Problem:  Clipboard provider feature broke clipboard support (Yee Cheng Chin)
    Solution: Revert clipboard changes (Foxe Chen).

    Patch 9.1.1874
    Problem:  PMenuShadow overrides highlighting attributes (Maxim Kim)
    Solution: Use hl_combine_attr() to combine popup attribute with shadow
              attribute (Girish Palya).

    Patch 9.1.1875
    Problem:  username parsing bug in netrw plugin when using remote adding
              feature
    Solution: Allow any characters except for "@" (Václav Kobera), add a
              test for the netrw plugin.

    Patch 9.1.1876
    Problem:  pre-inserted text not exposed in complete_info()
    Solution: Add the pre-inserted text to the complete_info() Vim script
              function (Girish Palya).

    Patch 9.1.1877
    Problem:  cindent: wrong indentation after an array declaration
    Solution: check if the filetype if javascript before matching the syntax
              (Anttoni Erkkilä).

    Patch 9.1.1878
    Problem:  filetype: Soy files are not recognized
    Solution: Detect *.soy files as soy filetype, include a soy filetype plugin
              (Riley Bruins).

    Patch 9.1.1879
    Problem:  Crash when using a lambda funcref with :defer
    Solution: De-reference the partial correctly after invoking the deferred
              functions (Yegappan Lakshmanan).

    Patch 9.1.1880
    Problem:  Allocation error with complete_info() (after v9.1.1876)
    Solution: Make sure length is positive (kuuote).

    Patch 9.1.1881
    Problem:  tests: test_popupwin fails after c8eeda9b due to syntax
              highlighting change
    Solution: Regenerate terminal dumps Test_popup_setbuf*dump (Yee Cheng Chin).

    Patch 9.1.1882
    Problem:  Vim9: Not able to use a lambda with :defer (Maxim Kim)
    Solution: Add support for this (Yegappan Lakshmanan).

    Patch 9.1.1883
    Problem:  Wrong display with 'smoothscroll' when FEAT_DIFF is disabled.
    Solution: Use plines_correct_topline() (zeertzjq).

    Patch 9.1.1884
    Problem:  :defer an empty lambda causes a crash
              (Maxim Kim, after v9.1.1882)
    Solution: Check for missing arguments (Yegappan Lakshmanan).

    Patch 9.1.1885
    Problem:  Wrong restored cursor position when re-entering a buffer
              previously viewed in a window after making changes to the same
              buffer in another window.
    Solution: Adjust per-window "last cursor" positions on buffer changes
              (zeertzjq).

    Patch 9.1.1886
    Problem:  filetype: Android aconfig files are not recognized
    Solution: Detect *.aconfig files as pbtxt filetype (Bruno Belanyi).

    Patch 9.1.1887
    Problem:  string handling in strings.c can be improved
    Solution: Refactor strings.c and remove calls to STRLEN() (John Marriott).

    Patch 9.1.1888
    Problem:  Wrong display with cpo+=$, matchparen and wrapped line.
    Solution: Use old cursor line height when scrolling with cpo+=$. Also
              fix wrong redraw in non-current window (zeertzjq).

    Patch 9.1.1889
    Problem:  filetype: not all AppleScript files are recognized
    Solution: Detect *.applescript files as applescript filetype (Samuel Huang).

    Patch 9.1.1890
    Problem:  %P in 'statusline' doesn't behave as documented
              (after 9.1.1479).
    Solution: Make the percentage 3-chars wide when not translated (zeertzjq).

    Patch 9.1.1891
    Problem:  In visual mode, g<End> does not move to the last non-blank
              character when the end of a line is on the same line as the
              cursor (after v9.0.1753).
    Solution: Move the cursor back by one position if it lands after the
              line (varsidry).

    Patch 9.1.1892
    Problem:  A plugin does not know when startup scripts were already
              triggered. This is useful to determine if a function is
              called inside vimrc or after (like when sourcing 'plugin/' files).
    Solution:  Add the v:vim_did_init variable (Evgeni Chasnovski).

    Patch 9.1.1893
    Problem:  ICCF charity will dissolve
    Solution: Update references to Kuwasha

    Patch 9.1.1894
    Problem:  global_runtime_dir appends /after directory when using XDG
              configuration directory (Marius Gedminas).
    Solution: Do not append /after to RUNTIME_GLOBAL_AFTER.

    Patch 9.1.1895
    Problem:  OSC terminal response hard to detect
    Solution: Add the <OSC> and <xOSC> pseudo keys (Foxe Chen).

    Patch 9.1.1896
    Problem:  tests: Patch v9.1.1895 breaks CI, by failing screen dump tests
            test_listlbr_utf8, test_diffmode and test_cmdline
    Solution: Revert it

    Patch 9.1.1897
    Problem:  Mac: Build failure on Mac OS X 10.6 due to the use of generics
              for the sound feature.
    Solution: Use the simple, non-generic Objective-C version (Luke Lollard).

    Patch 9.1.1898
    Problem:  tabpanel: inconsistent use of cmdline and message area with
              tabpanel
    Solution: Reduce the cmdline and message area by the horizontal size of
              the tabpanel (Hirohito Higashi).

    Patch 9.1.1899
    Problem:  tabpanel: getcmdscreenpos() wrong when tabpanel is shown
    Solution: Adjust f_getcmdscreenpos() and add cmdline_col_off
              (Hirohito Higashi).

    Patch 9.1.1900
    Problem:  tabpanel: wrong condition after v9.1.1898
    Solution: Update condition (Hirohito Higashi).

    Patch 9.1.1901
    Problem:  tests: test_vim9_generics fails when built without the job or
              channel feature (lazypingu)
    Solution: Skip test if job/channel feature is not available.

    Patch 9.1.1902
    Problem:  GTK fails to compile with !FEAT_PROP_POPUP
    Solution: Correct syntax under #ifdef (Drew Vogel).

    Patch 9.1.1903
    Problem:  GTK naming still reflects GTK1 support
    Solution: Rename to avoid confusion (Drew Vogel).

    Patch 9.1.1904
    Problem:  Code still supports GTK2 versions older than 2.4.
    Solution: Drop support for GTK2 < 2.4 (Drew Vogel).

    Patch 9.1.1905
    Problem:  tabpanel: truncates terminal output (hokorobi)
    Solution: Use topframe->fr_width, not Columns (which includes the
              tabpanel width) (Hirohito Higashi)

    Patch 9.1.1906
    Problem:  filetype: not all Ruby files are recognized
    Solution: Detect *.rbi and Brewfile as ruby filetype (botantony).

    Patch 9.1.1907
    Problem:  xterm: no support for mouse buttons 8 and 9
    Solution: Add support for terminals with xterm-like mouse functionality
              (notuxic).

    Patch 9.1.1908
    Problem:  tests: test_crash.vim times out in CI ASAN builds
    Solution: Increase timeout for ASAN or Valgrind runs.

    Patch 9.1.1909
    Problem:  filetype: .mom files recognized as nroff files
    Solution: Detect *.mom files as groff filetype instead (Callum Andrew).

    Patch 9.1.1910
    Problem:  tests: test failures in Test_term_gettitle() in CI
    Solution: CI: Allow for title buffering in Test_term_gettitle()
              (Aliaksei Budavei).

    Patch 9.1.1911
    Problem:  build failure on Solaris Sparc with gcc 5 (idgn23, after v9.1.1736)
    Solution: Correctly initialize the key_name variable.

    Patch 9.1.1912
    Problem:  tests: test_plugin_comment fails, because it depends on nroff
              filetype for .mom file (after v9.1.1909)
    Solution: Explicitly set filetype to nroff.

    Patch 9.1.1913
    Problem:  Error message with :unlet! and non-existing dictionary item
              (Coacher)
    Solution: Set GLV_QUIET when using unlet with bang attribute.

    Patch 9.1.1914
    Problem:  runtime(netrw): LocalBrowseCheck() wipes unnamed buffers when
              g:netrw_fastbrowse=0 (Carlos Falgueras García)
    Solution: Check that bufname() is not empty.

    Patch 9.1.1915
    Problem:  :breaklist accepts unprocessed arguments.
    Solution: Remove EX_EXTRA flag from the Ex command definition (Doug Kearns).

    Patch 9.1.1916
    Problem:  WinEnter autocommand may confuse Vim when closing tabpage (hokorobi)
    Solution: Verify that curwin did not change in close_others().

    Patch 9.1.1917
    Problem:  Vim9: incorrect type inference with mkdir() (dezza)
    Solution: Before compiling a RHS expression in an assignment, save the
              new local variable contents (Yegappan Lakshmanan).

    Patch 9.1.1918
    Problem:  completion: crash with fuzzy completion (Christian Brabandt)
    Solution: When completion candidates are gathered from a different
              window, and when completing `<c-p>`, linked list should be
              sorted only after all items are collected (Girish Palya).

    Patch 9.1.1919
    Problem:  tabpanel: cannot handle mouse clicks in command line
              (char101, after v9.1.1898)
    Solution: Update the condition that checks if the mouse pointer is on
              the command line (Hirohito Higashi).

    Patch 9.1.1920
    Problem:  tests: not enough testing for wildtrigger() pum redrawing.
    Solution: Also test redrawing when leaving cmdline mode (zeertzjq).

    Patch 9.1.1921
    Problem:  xdiff: included xdiff code is outdated because it is based on
              git 2.40.0
    Solution: Sync with xdiff from git 2.52 (Yee Cheng Chin).

    Patch 9.1.1922
    Problem:  Wrong virtcol('$') with virtual text at EOL (rickhowe).
    Solution: Also add 1 to end virtcol when there is virtual text (zeertzjq).

    Patch 9.1.1923
    Problem:  When assigning to @. in a :let command an incorrect "E15"
              error is emitted.
    Solution: Emit the correct "E354" error. (Doug Kearns).

    Patch 9.1.1924
    Problem:  'commentstring' requires the +folding feature but is used in
              contexts other than folding.
    Solution: Remove the +folding feature guards from 'commentstring' and
              make it available in all builds (Doug Kearns).

    Patch 9.1.1925
    Problem:  make depend does not add osdef.h for the dependencies (Drew Vogel)
    Solution: Move ifdef PROTO (Hirohito Higashi).

    Patch 9.1.1926
    Problem:  xdiff: Coverity warning with MAX_CNT/UINT_MAX usage
              (after v9.1.1921)
    Solution: Replace XDL_MIN macro to a manual check (Yee Cheng Chin).

    Patch 9.1.1927
    Problem:  Wayland: clipboard code too complex
    Solution: Simplify clipboard related code around W23/W24 (Foxe Chen).

    Patch 9.1.1928
    Problem:  xxd: exit_with_usage() can be simplified
    Solution: Clean up exit_with_usage() formatting slightly (Stefan Haubenthal).

    Patch 9.1.1929
    Problem:  completion: spell completion wrong with fuzzy
    Solution: Disable fuzzy sort for spell completion (Maxim Kim).

    Patch 9.1.1930
    Problem:  completion: 'completefuzzycollect' option is too obscure
    Solution: Deprecate the option, but don't error out for existing scripts,
              behave like 'completefuzzycollect' is set when fuzzy
              completion is enabled (Girish Palya).

    Patch 9.1.1931
    Problem:  completion: wrong item selected with fuzzy and noinsert
              (Evgeni Chasnovski)
    Solution: Reset selected item after fuzzy sort (Girish Palya).

    Patch 9.1.1932
    Problem:  OSC terminal response hard to detect
    Solution: Add the <OSC> and <xOSC> pseudo keys (Foxe Chen).

    Patch 9.1.1933
    Problem:  completion: complete_match() Vim script function and
              'isexpand' option are not that useful and confusing
              (after v9.1.1341)
    Solution: Remove function and option and clean up code and documentation
            (Girish Palya).

    Patch 9.1.1934
    Problem:  filetype: not all starlark files are recognized
    Solution: Detect *.sky files as starlark filetype (Bruno Belanyi).

    Patch 9.1.1935
    Problem:  filetype: not all Erlang files are recognized
    Solution: Detect *.app.src and rebar.config files as erlang filetype
              (John Parise).

    Patch 9.1.1936
    Problem:  filetype: Erlang lexical files are not recognized
    Solution: Detect *.xrl files as leex filetype, include syntax and
              filetype plugins (Jon Parise).

    Patch 9.1.1937
    Problem:  tests: Test_matchfuzzy_initialized() fails
    Solution: Send a dummy key (Corey Hickey)

    Patch 9.1.1938
    Problem:  tests: excessive wait in Test_matchfuzzy_initialized
    Solution: Use term_wait() instead of the TermWait() wrapper (Corey Hickey).

    Patch 9.1.1939
    Problem:  tests: test_matchfuzzy() leaves swapfiles behind
    Solution: Close loaded buffers using "%bw".

    Patch 9.1.1940
    Problem:  clipboard registers "+" and "*" synced without "autoselect"
    Solution: Remove code that explicitly syncs those clipboard registers
              (Corey Hickey).

    Patch 9.1.1941
    Problem:  tests: Test_execute_register() leaves swapfile behind
    Solution: Use :bw instead of :close to close the buffer completely.

    Patch 9.1.1942
    Problem:  Assignment to read-only registers @: and @% is allowed during
              compilation.
    Solution: Abort compilation and emit an E354 error when assigning to
              these registers (Doug Kearns).

    Patch 9.1.1943
    Problem:  Memory leak with :breakadd expr
    Solution: Free debug_oldval and debug_newval before assigning to them.
              Verify the existing (though confusing) :breakadd expr behavior
              (zeertzjq).

    Patch 9.1.1944
    Problem:  gewininfo() does not return if statusline is visible
    Solution: Add status_height to the dict items returned by
              getwininfo() (Hirohito Higashi).

    Patch 9.1.1945
    Problem:  tests: Test_getbufwintabinfo() leaves swapfiles behind
    Solution: Close all open buffers using %bw!

    Patch 9.1.1946
    Problem:  Cannot open the help in the current window
    Solution: Promote the example from tips.txt to a proper package and
              include the helpcurwin package, add tests for it (Peter Kenny).

    Patch 9.1.1947
    Problem:  [security]: Windows: Vim may execute commands from current
              directory (Simon Zuckerbraun)
    Solution: Set the $NoDefaultCurrentDirectoryInExePath before running
              external commands.

    Patch 9.1.1948
    Problem:  Windows: Vim always adds the current directory to search path.
              This should only happen when using cmd.exe as 'shell'. For
              example, powershell won't run binaries from the current
              directory.
    Solution: Only add current directory to system path, when using cmd.exe
              as 'shell'.

    Patch 9.1.1949
    Problem:  :stag does not use 'swichtbuf' option, though the
              documentation states differently (Christian Brabandt)
    Solution: Respect 'switchbuf' option (Yegappan Lakshmanan).

    Patch 9.1.1950
    Problem:  tests: Test_tagjump.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.1951
    Problem:  tests: Test_windows_external_cmd_in_cwd() is only run in huge
              builds (after 9.1.1947).
    Solution: Move it to test_system.vim so that it is run in normal builds.

    Patch 9.1.1952
    Problem:  tests: need better tests for tf files
    Solution: Add better filetype test for terraform/tf filetype

    Patch 9.1.1953
    Problem:  gui_mch_set_titlebar_colors() doesn't need to be called when
              'go+=C' is not set.
    Solution: Switch the default value to false.

    Patch 9.1.1954
    Problem:  Setting a byte in a blob, accepts values outside 0-255
    Solution: When setting a byte in a blob, check for valid values
              (Yegappan Lakshmanan).

    Patch 9.1.1955
    Problem:  sort() does not handle large numbers correctly
              (Igbanam Ogbuluijah)
    Solution: Don't truncate the return value of tv_get_number_chk()
              (Yegappan Lakshmanan).

    Patch 9.1.1956
    Problem:  tests: test_sort.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.1957
    Problem:  filetype: bpftrace files are not recognized
    Solution: Detect *.bt files as btftrace filetype,
              include a btftrace filetype plugin (Stanislaw Gruszka).

    Patch 9.1.1958
    Problem:  Wrong display when scrolling with 'scrolloff' and calling
              sign_unplace() and setline() in CursorMoved (after 8.2.3204).
    Solution: Still scroll for changed lines below the top area when the top
              is scrolled down (zeertzjq).

    Patch 9.1.1959
    Problem:  Outputting long strings using :echowindow wraps one character
              per line and display in reverse order (Hirohito Higashi)
    Solution: Use full width for :echowindow, reset msg_col after wrapping,
              and increment lnum correctly when creating new lines (glepnir).

    Patch 9.1.1960
    Problem:  When the popup menu is displayed above the cursor and the
              selected item has no room below for the info popup,
              popup_adjust_position() places the popup in the available
              space above. The calculation added some extra lines, causing
              the popup to be misaligned.
    Solution: For info popups, undo that extra spacing so the popup stays
              aligned with the selected item (glepnir).

    Patch 9.1.1961
    Problem:  :0tab behaves like :tab for :stag when 'switchbuf' contains
              "newtab" (after 9.1.1949).
    Solution: Don't override cmod_tab if it's already non-zero (zeertzjq).

    Patch 9.1.1962
    Problem:  filetype: Erlang application resource files are not recognized
    Solution: Add content-based filetype detection for application resource
              files matching extension '*.app' (Doug Kearns).

    Patch 9.1.1963
    Problem:  diff: missing diff size limit for xdiff
    Solution: Impose file size limit for internal diff (xdiff)
              (Yee Cheng Chin).

    Patch 9.1.1964
    Problem:  Wrong display when using setline() at hit-enter prompt
             (after 8.2.3204).
    Solution: Only skip scrolling for changed lines in top area if it's
              scrolled down due to w_topline change. Also add more testing
              for what 8.2.3204 fixed (zeertzjq).

    Patch 9.1.1965
    Problem:  When exiting at the end of the more prompt (at the hit enter
              prompt) by hitting q the recording mode will be started.
              (Jakub Łuczyński)
    Solution: Don't add the q key to the typeahead buffer
              in the function wait_return (Bjoern Foersterling)

    Patch 9.1.1966
    Problem:  MS-Windows: dark mode in gui is not supported
    Solution: Inplement the 'd' flag in 'guioptions' (Mao-Yining).

    Patch 9.1.1967
    Problem:  if_python: 64bit numbers truncated
    Solution: cast python result to long long (lsq).

    Patch 9.1.1968
    Problem:  tests: test_python3.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.1969
    Problem:  Wrong cursor position after formatting with long 'formatprg'.
    Solution: Don't show hit-enter prompt when there are stuffed characters.

    Patch 9.1.1970
    Problem:  visual end column returns wrong value after block edit
    Solution: update visual end column after block insert (phanium).

    Patch 9.1.1971
    Problem:  Crash when buffer gets deleted inside charconvert during save
    Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
              unload a buffer while it’s still being saved (glepnir).

    Patch 9.1.1971
    Problem:  crash with invalid positional argument 0 in printf()
    Solution: Reject positional arguments <= 0.

    Patch 9.1.1972
    Problem:  No way to access the clipboard without X11/Wayland.
    Solution: Add the clipboard provider feature (Foxe Chen).

    Patch 9.1.1973
    Problem:  some minor problems with clipboard provider code
              (after v9.1.1972)
    Solution: Fix minor issues (Foxe Chen)

    Patch 9.1.1974
    Problem:  tests: missing cleanup in Test_bwipe_during_save().
    Solution: Reset &charconvert.

    Patch 9.1.1975
    Problem:  blob2str() may call strcpy with a NULL pointer
    Solution: Check for NULL before calling STRNCPY().

    Patch 9.1.1976
    Problem:  When using listeners, there is no way to run callbacks at
              specific points in the redraw cycle.
    Solution: Add redraw_listener_add() and redraw_listener_remove() and
              allow specifying callbacks for redraw start and end (Foxe Chen).

    Patch 9.1.1977
    Problem:  MS-Windows: missing dependency on optiondefs.h in Mingw and
              Cygwin Makefile (Mao-Yining)
    Solution: Update $INCL variable.

    Patch 9.1.1978
    Problem:  tests: Test_smoothscroll_number() may fail because of 'showcmd'
    Solution: Send redraw command (Hirohito Higashi).

    Patch 9.1.1979
    Problem:  :helpclose incorrectly accepts a range and a count.
    Solution: Remove EX_COUNT and EX_RANGE from the command definition
              (Doug Kearns).

    Patch 9.1.1980
    Problem:  filetype: N-Quads files are not recognized
    Solution: Detect *.nq files as nq filetype.

    Patch 9.1.1981
    Problem:  tests: test suite may stop on error in gen_opt_test.vim
    Solution: Use a different output file for log files (Muraoka Taro).

    Patch 9.1.1982
    Problem:  Use after free with redraw_listener_add() (after: v9.1.1976)
    Solution: Copy Callbacks into listener struct (Foxe Chen).

    Patch 9.1.1983
    Problem:  Vim9: class_name definition can be improved
    Solution: Use string_T to store class_name, avoid using STRLEN() calls,
              simplify code, remove unused definition of struct
              oc_newmember_S (John Marriott).

    Patch 9.1.1984
    Problem:  terminal OSC52 support to access the clipboard can be improved
    Solution: Include and package the optional osc52 package, note: this
              requires a Vim with clipboard provider feature (Foxe Chen).

    Patch 9.1.1985
    Problem:  tests: test_sound.vim fails when run locally on Windows
    Solution: Skip Test_play_silent in Windows non-GUI environments.

    Patch 9.1.1986
    Problem:  clipboard provider does not work when redirecting messages
              (BenYip, after v9.1.1972)
    Solution: Adjust ifdefs in ex_redir().

    Patch 9.1.1987
    Problem:  assert_equal() prepends unnecessary ':' when typed (after 9.0.1758).
    Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

    Patch 9.1.1988
    Problem:  osc52 package can be further improved (after v9.1.1984).
    Solution: Improve plugin, update test and check for clipboard_provider
              feature (Foxe Chen).

    Patch 9.1.1989
    Problem:  Vim intro screen shows register message (after v9.1.1893)
    Solution: Remove the register message, registering is no longer useful
              and possible.

    Patch 9.1.1990
    Problem:  tests: Test_term_gettty() fails when using conpty on Windows,
              CI uses winpty, so this test passes.
    Solution: Skip the test Test_term_gettty(). Since conpty communicates
              via anonymous pipes, there is no name that can be obtained
              with term_gettty() (Muraoka Taro)

    Patch 9.1.1991
    Problem:  :setlocal changes effective global 'omnifunc' (Maxim Kim)
    Solution: Don't change global callback when using :setlocal (zeertzjq).

    Patch 9.1.1992
    Problem:  Vim9: heap buffer overflow with COMPAREANY instruction
    Solution: Verify the type and error out in case of different types (Foxe Chen)

    Patch 9.1.1993
    Problem:  MS-Windows: compile error because of implicit size conversions
              (after v9.1.1983)
    Solution: Change type casts

    Patch 9.1.1994
    Problem:  More deterministic synchronisation can be established between
              processes running test cases and collecting visual effects to
              a screendump file for future verification by anticipating
              the availability of known parts of such a file and asserting
              the location of the cursor.
    Solution: Provide a convenience test function that waits a specified
              time for cursor positioning (Aliaksei Budavei).

    Patch 9.1.1995
    Problem:  Data races between test buffers are currently addressed by
              relying on arbitrary execution delays or blissfully dismissed.
    Solution: Prefer more deterministic synchronisation between test buffers
              for test cases that generate screendump files with expected
              results (Aliaksei Budavei).

    Patch 9.1.1996
    Problem:  tests: test_cmdline.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.1997
    Problem:  Missing out-of-memory check in vim9class.c in calls to
              vim_strnsave().
    Solution: Refactor is_duplicate_variable() and is_duplicate_enum() and
              make use of string_T struct instead (John Marriott).

    Patch 9.1.1998
    Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
    Solution: Move the last :new after :setlocal. Also test with 'complete'
              (zeertzjq).

    Patch 9.1.1999
    Problem:  clipboard provider does not respect 'clipboard' option
              (Satoru Kitaguchi, after v9.1.1972)
    Solution: Make clipboard provider register respect "unnamed/unnamedplus"
              from the 'clipboard' option value.

    Patch 9.1.2000
    Problem:  Vim9: class and object member names are stored as char_u *
              pointer requiring repeated strlen() calls and making it harder
              to use length-aware string operations consistently.
    Solution: Store ocm_name as a string_T instead of char_u * (John Marriott).

    Patch 9.1.2001
    Problem:  After :botright copen and closing the quikfix window, the
              cursor ends up in the wrong window. The problem is fr_child
              always points to the first (leftmost for FR_ROW, topmost for
              FR_COL) child frame. When do :vsplit, the new window is
              created on the left, and frame_insert() updates the parent's
              fr_child to point to this new left window.
    Solution: Create a snapshot before open the quickfix window and restore
              it when close it (glepnir).

    Patch 9.1.2002
    Problem:  Vim9: heap-use-after-free when when accessing protect class
              member (Foxe Chen)
    Solution: Set cl->class_type_list and return directly, add tests for
              using protected class method and variable from another class
              (Yegappan Lakshmanan).

    Patch 9.1.2003
    Problem:  tests: Test_glob_symlinks may fail on Windows with UCRT
              runtime
    Solution: Comment out the code, do not use _wstat().

    Patch 9.1.2004
    Problem:  MS-Windows: If a directory with a single character name is
              included in the PATH environment variable without a trailing
              path separator, executable() will not be able to find the
              executable file under it.
    Solution: The second argument of the after_pathsep() function is now
              passed the next pointer where a path separator may exist
              (Muraoka Taro).

    Patch 9.1.2005
    Problem:  MS-Windows: Missing fullscreen support for GUI version
    Solution: Add "s" flag to guioptions (Mao-Yining)

    Patch 9.1.2006
    Problem:  ANSI escape colors are not displayed correctly in
              non-termguicolors in vim (cli) on Windows. The red and blue
              channels seem to be swapped.
    Cause:    When converting VTerm ANSI index colors to cterm colors in
              terminal.c, the Windows case equivalent to NR-16 (:help
              cterm-colors) is ignored.
    Solution: Created and used a table to convert ANSI indexed colors to
              cterm's NR-16 representation (Windows only). This table
              corresponds to the inverse conversion of cterm_ansi_idx in
              term.c. The values in both tables are exactly the same, but
              the meanings are opposite, so they are separate tables
              (Muraoka Taro).

    Patch 9.1.2007
    Problem:    bpftrace files are not recognized from the hashbang line.
    Solution:   Add a hashbang check (Stanislaw Gruszka).

    Patch 9.1.2008
    Problem:  filetype: hylo files are not recognized
    Solution: Detect *.hylo files as hylo filetype (Ambrus Tóth).

    Patch 9.1.2009
    Problem:  tests: "Xm4" test directory may not be deleted
    Solution: Use "R" flag with mkdir() call to have the directory
              recursively deleted at the end of function Test_m4_format()
              (Muraoka Taro).

    Patch 9.1.2010
    Problem:  Missing out-of-memory checks in vim9class.c (after v9.1.2000).
    Solution: Return FAIL early (John Marriott).

    Patch 9.1.2011
    Problem:  crash when unreferencing gtk icon theme
              (noamhalevy-wq, after v9.1.1583)
    Solution: Remove the g_object_unref() call.

    Patch 9.1.2012
    Problem:  Vim9: cannot initialize class member with protected var
    Solution: Allow this to work if this happens within the same class
              (Foxe Chen).

    Patch 9.1.2013
    Problem:  tests: When opening a conpty terminal, if process startup
              fails, it will silently exit.  As a result, the
              Test_terminal_shell_option in test_terminal3.vim failed in
              conpty.
    Solution: Make conpty fail with an error messages in the same way as winpty
              (Muraoka Taro).

    Patch 9.1.2014
    Problem:  clipboard: clipboard register corrupted with clipboard
              provider (Satoru Kitaguchi and mikoto2000 after v9.1.1972)
    Solution: Only adjust clipboard register points to the unnamed register
              (Foxe Chen).

    Patch 9.1.2015
    Problem:  blob2string() stopped after an empty line
    Solution: Specifically check for empty content (Foxe Chen).

    Patch 9.1.2016
    Problem:  At "if(0) do if(0); while(0); else", else should be aligned
              with outer if, but is aligned with inner if.
    Solution: In function find_match, ignore "if" and "else" inside a
              do-while loop, when looking for "if". (Anttoni Erkkilä).

    Patch 9.1.2017
    Problem:  getregionpos() depends on 'linebreak' setting
    Solution: Reset linebreak setting temporarily (McAuley Penney).

    Patch 9.1.2018
    Problem:  proto: ops.pro outdated (after v9.1.2017)
    Solution: Regenerate the ops.pro proto file (Tao).

    Patch 9.1.2019
    Problem:  When virtualedit is set to all, the cursor is supposed to be
              permitted to reside anywhere, including on the virtual space
              beyond the end of the buffer's text. Switching modes triggered
              a routine that "fixed" a cursor that was past the end of the
              line by shifting it back to the last actual character in the
              line and compensating with a virtual column offset. While
              visually identical, this re-encoding changed the underlying
              byte index, causing position-reporting functions to return
              inconsistent values after a mode change.
    Solution: Skip this coordinate adjustment when virtual editing is fully
              enabled. By treating the line terminator as a valid, stable
              position, the cursor’s internal representation remains
              unchanged when entering or exiting Visual mode, ensuring
              consistent coordinate reporting. Add a regression test to
              check this functionality (McAuley Penney).

    Patch 9.1.2020
    Problem:  tests: test_virtualedit.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.2021
    Problem:  filetype: fluent files are not recognized
    Solution: Detect *.ftl files as fluent filetype (ners).

    Patch 9.1.2022
    Problem:  Compilation issues on Windows when VIM
              is compiled with OLE enabled, as "if_ole.cpp" cannot compile
              due to the keyword conflict (after v9.1.2012).
    Solution: Rename the member variable of `exarg` from `class` to `ea_class`.
              (Wei Tang)

    Patch 9.1.2023
    Problem:  A BufAdd autocommand may cause alist_add() to use freed
              memory, this is caused by the w_locked variable unset too
              early (henices)
    Solution: In trigger_undo_ftplugin() only set w_locked to false, if it
              was false when calling the function.

    Patch 9.1.2024
    Problem:  'fsync' option cannot be set per buffer
    Solution: Make 'fsync' option global-local (glepnir).

    Patch 9.1.2025
    Problem:  Conpty terminal process may not start.
    Solution: Do not close the input handle at EOF when conpty is in use
              (Muraoka Taro).

    Patch 9.1.2026
    Problem:  tests: Patch 9.1.2019 not tested properly.
    Solution: Add missing :exe (zeertzjq).

    Patch 9.1.2027
    Problem:  filetype: bicep filetype used for 2 bicep file types
    Solution: Detect *.bicepparam files as bicep-param filetype, include
              new bicep-params and bicep filetype plugin (Scott McKendry).

    Patch 9.1.2028
    Problem:  Buffer overflow in buf_write() when converting incomplete
              multi-byte characters (Kevin Goodsell)
    Solution: Make the buffer slightly larger.

    Patch 9.1.2029
    Problem:  tests: the test_vim9_class.vim testfile is too long
    Solution: Split out the interface related test cases into a new
              test file test_vim9_interface.vim (Yegappan Lakshmanan).

    Patch 9.1.2030
    Problem:  inefficient use of ga_concat()
    Solution: Use ga_concat_len() when length is known (John Marriott).

    Patch 9.1.2031
    Problem:  Makefile: cannot run make installinks twice
    Solution: Change "ln -s" to "ln -sf" to force creation of the symlinks
              (Thomas Petazzoni).

    Patch 9.1.2032
    Problem:  Vim9: error when using class member in Lambda
    Solution: Compare against uf_defclass variable (Foxe Chen).

    Patch 9.1.2033
    Problem:  tests: Test_terminal_cwd in test_terminal.vim fails flaky
              in the Windows ConPTY terminal.
    Solution: In ConPTY, the timeout is extended to 1msec when reading a
              channel associated with a job that is about to finish.  This
              allows Vim to read the last output of a process in a pseudo
              console. Add comments to make the reasoning clear (Muraoka Taro).

    Patch 9.1.2034
    Problem:  filetype: Fennel fnml files are not recognized (Alexei Mozaidze)
    Solution: Detect *.fnml files as fennel filetype.

    Patch 9.1.2035
    Problem:  filetype: Fennel fnlm files are not recognized
              (Alexei Mozaidze, after v9.1.2034)
    Solution: Detect *.fnlm files as fennel filetype, revert detecting
              *.fnml files

    Patch 9.1.2036
    Problem:  if_ruby: build error with ruby 4.0 (Mamoru Tasaka)
    Solution: Always define rb_check_typeddata (EnumDev).

    Patch 9.1.2037
    Problem:  undo: cursor position not correctly restored
    Solution: Do not override the saved cursor position (altermo).

    Patch 9.1.2038
    Problem:  tests: test_marks.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.2039
    Problem:  if_ruby: crash when using Ruby/dyn 4.0 (after v9.1.2036)
    Solution: Fix Ruby 4.0 dynamic builds correctly by inlining
              rb_check_typeddata (Yee Cheng Chin)

    Patch 9.1.2040
    Problem:  :tlnumenu incorrectly accepts a range.
    Solution: Remove EX_RANGE and EX_ZEROR from the command definition and
              use ADDR_NONE (Doug Kearns).

    Patch 9.1.2041
    Problem:  tests: test_menu.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.2042
    Problem:  filetype: systemd quadlet files are not recognized
    Solution: Detect additional patterns as systemd filetype (Ac5000).

    Patch 9.1.2043
    Problem:  filetype: kos files are not reconized
    Solution: Detect *.kos files as kos filetype (Chris Dragan).

    Patch 9.1.2044
    Problem:  Inefficient use of ga_concat()
    Solution: Use ga_concat_len() when the length is already known to avoid
              use of strlen() (John Marriott).

    Patch 9.1.2045
    Problem:  Mac: Build failure with Mac OS X 10.6
              (Sergey Fedorov, after: v9.1.1748)
    Solution: Add ifdefs MAC_OS_X_VERSION_10_7 around the code that sets the
              scheduler priority.

    Patch 9.1.2046
    Problem:  MS-Windows: compile warnings in os_win32.c,
              acp_to_enc() requires char_u* but others require char*
              (John Marriott, after v9.1.2013)
    Solution: Cast the variables (Mao-Yining).

    Patch 9.1.2047
    Problem:  MS-Windows: style issue in gui_w32.c
    Solution: Fix indentation, drop unnecessary braces (Mao-Yining).

    Patch 9.1.2048
    Problem:  Pressing backspace in ConPTY on Windows deletes an entire
              word, not just a single character. This is the same as
              pressing Alt + backspace in cmd.exe.
    Solution: When using ConPTY on Windows, the `VTERM_KEY_BACKSPACE` key is
              now sent when the Backspace key or Ctrl+H is detected (Muraoka Taro)

    Patch 9.1.2049
    Problem:  Vim9: unexpected E1209 error
    Solution: Fix error message (Hirohito Higashi).

    Patch 9.1.2050
    Problem:  tests: Test_cd_completion() may fail depending on the contents
              of the root directory of the current drive on Windows.
              readdir() may return a directory that cannot "cd" to, causing
              this test to fail. An example of such a directory is
              "System Volume Information" which only admin can "cd" to.
    Solution: When determining the directory to use for testing, use the
              directory that we actually "cd" to successfully.
              In addition, directories with '$' in their names are also
              excluded, as they are considered environment variables during
              completion and do not work as expected (Muraoka Taro).

    Patch 9.1.2051
    Problem:  Test_cd_completion test fails in Appveyor. In Appveyor, a path
              containing spaces was selected as the test target. But the
              comparison failed because spaces were not taken into account
              (after v9.1.2050)
    Solution: Escape spaces in paths for comparison (Muraoka Taro).

    Patch 9.1.2052
    Problem:  Compile error when disabling linebreak feature
    Solution: Adjust ifdefs (Matthias Rader).

    Patch 9.1.2053
    Problem:  If another find.exe derived from findutils is installed on
              Windows, unintended behavior will occur. If MSYS2 is installed and
              prioritized over the system path, then find.exe derived from
              findutils will be launched during build, resulting in an
              unintended warning message.
    Solution: Specify the absolute path including SYSTEMROOT to launch
              find.exe (Muraoka Taro).

    Patch 9.1.2054
    Problem:  Can't unpack tuple from imported function (Mao-Yining)
    Solution: Support multi-variable assignment from a tuple returned by an
              imported function (Yegappan Lakshmanan).

    Patch 9.1.2055
    Problem:  Division by zero in :file after failing to wipe buffer
              (after 8.2.4631).
    Solution: Still call buf_clear_file() when failing to wipe buffer (zeertzjq).

    Patch 9.1.2056
    Problem:  tests: inconsistent indent and line breaking in Test_maparg().
    Solution: Consistently use spaces-only indent. Reorder fields to group
              similar ones together and break lines at consistent positions.
              Remove a mapping when it is no longer used (zeertzjq).

    Patch 9.1.2057
    Problem:  Copying to clipboard register broken with 'go-P' (Coacher)
    Solution: Verify that clip_plus is available (Foxe Chen).

    Patch 9.1.2058
    Problem:  b_locked_split is not checked for :sbuffer, which allows
              autocommands to leave windows open to freed buffers.
    Solution: In do_buffer_ext, check just before possibly splitting, after
              handling 'switchbuf'. Leave win_split to handle the check for
              curbuf (Sean Dewar).

    Patch 9.1.2059
    Problem:  filetype: Nickel files are not recognized
    Solution: Detect *.ncl files as nickel filetype (Hoang Nguyen)

    Patch 9.1.2060
    Problem:  filetype: Rasi include files are not recognized
    Solution: Detect *.rasinc as rasi filetype (Hoang Nguyen).

    Patch 9.1.2061
    Problem:  filetype: Koka files are not recognized
    Solution: Detect *.kk files as koka filetype (Hoang Nguyen).

    Patch 9.1.2062
    Problem:  filetype: djot files are not recognized
    Solution: Detect *.dj and *.djot files as djot filetype (Hoang Nguyen).

    Patch 9.1.2063
    Problem:  A few typos in the code and runtime files
    Solution: Fix those (zeertzjq).

    Patch 9.1.2064
    Problem:  completion: segfault during file name completion
    Solution: Initialize compl_num_bests (Girish Palya).

    Patch 9.1.2065
    Problem:  When building GvimExt with MinGW, some DLLs are still linked
              even if STATIC_STDCPLUS=yes is set.
    Solution: Following the Vim core, make some libraries explicitly
              statically linked.  The order of libraries is important, and
              gcc_eh must be placed before winpthread (Muraoka Taro).

    Patch 9.1.2066
    Problem:  :wqall! doesn't close a terminal buffer like :qall! does
              (after 8.0.1525).
    Solution: Check eap->forceit (zeertzjq).

    Patch 9.1.2067
    Problem:  shadow variable warning in menu.c
    Solution: Rename the variable (John Marriott).

    Patch 9.1.2068
    Problem:  :bdelete/bunload/bwipeout may attempt to switch to a closing
              buffer, which fails. (after 9.1.2058)
    Solution: Don't consider switching to closing buffers (Sean Dewar).

    Patch 9.1.2069
    Problem:  when shortmess doesn't have 'S', backward search wrap doesn't
              show the "W" before count. forward search works fine but
              backward fails because the position check logic is backwards -
              it checks if cursor < pos instead of using the existing
              wrapped flag.
    Solution: Use sia->sa_wrapped flag that searchit() already sets
              correctly (glepnir).

    Patch 9.1.2070
    Problem:  Autocomplete breaks ":help" when 'dict' points to a large file
              (lxhillwind)
    Solution: Reset autocompletion timer expiry flag (Girish Palya).

    Patch 9.1.2071
    Problem:  tests: test_ins_complete.vim leaves swapfiles behind
    Solution: Close open buffers using :bw! instead of :close!

    Patch 9.1.2072
    Problem:  Socket server has some small issues
    Solution: Fix issues (Foxe Chen).

    Patch 9.1.2073
    Problem:  auto/configure needs to be regenerated (after v9.1.2072)
    Solution: Run make autoconf and update the configure script.

    Patch 9.1.2074
    Problem:  Compile error with Motif GUI (Tony Mechelynck, after v9.1.2072)
    Solution: Add ifdef FEAT_GUI_GTK

    Patch 9.1.2075
    Problem:  tests: wrong change to test_ins_complete.vim
              (zeertzjq, after v9.1.2071)
    Solution: Revert unintentional changes.

    Patch 9.1.2076
    Problem:  tests: When running the MinGW test, an error occurs after
              generating opt_test.vim.
    Solution: Rewrite the error detection in cmd.exe syntax (Muraoka Taro).

    Patch 9.1.2077
    Problem:  Vim9: type issue when appending item to a list (Peter Kenny)
    Solution: When adding a new item at the end of a list in vim9script, use
              the proper item type (Yegappan Lakshmanan).

    Patch 9.1.2078
    Problem:  A few more typos in various files
    Solution: Fix those (zeertzjq, antonkesy).

    Patch 9.1.2079
    Problem:  use-after-free with 'quickfixtextfunc' wiping buffer (henices)
    Solution: Evaluate 'quickfixtextfunc' with textlock enabled.

    Patch 9.1.2080
    Problem:  W23/W24 messsage appears on :reg (Coacher)
    Solution: Silence message when using :reg command (Foxe Chen).

    Patch 9.1.2081
    Problem:  MS-Windows: "#ifdef FEAT_GUI" exists within "ifdef
              FEAT_GUI_MSWIN", which is confusing when reading the code.
              FEAT_GUI is always defined if FEAT_GUI_MSWIN is defined (see
              vim.h).  Therefore, this check and the else block are unnecessary.
    Solution: Removed unnecessary "#ifdef FEAT_GUI" (Muraoka Taro).

    Patch 9.1.2082
    Problem:  modeless auto-select not working (Coacher)
    Solution: Add support for modeless autoselect (Foxe Chen).

    Patch 9.1.2083
    Problem:  style: wrong indentation of nested ifdefs
    Solution: Fix indentation (Hirohito Higashi).

    Patch 9.1.2084
    Problem:  Compile error when build with job feature (after v9.1.2077)
    Solution: Add ifdefs (John Marriott).

    Patch 9.1.2085
    Problem:  Use-after-free in winframe_remove() (henices)
    Solution: Set window_layout_locked() inside winframe_remove()
              and check that writing diff files is disallowed when the
              window layout is locked.

    Patch 9.1.2086
    Problem:  memory leak when not evaluating (just parsing) invalid literal
              dict.
    Solution: Always clear the key's typval (Sean Dewar)

    Patch 9.1.2087
    Problem:  Crash when using :tabonly in BufUnload.
    Solution: Set curbuf when setting curwin->w_buffer. Don't wipe out a
              buffer if there are no other buffers. Don't decrement
              b_nwindows if it was 0 before buf_freeall() (zeertzjq).

    Patch 9.1.2088
    Problem:  Redundant NULL checks in find_pattern_in_path().
    Solution: Remove the NULL checks. Also fix typos in test_diffmode.vim
              (zeertzjq).

    Patch 9.1.2089
    Problem:  Wayland: Clipboard not working with external programs on
              Wayland (devsnek)
    Solution: Simplify the Wayland offer logic and drop offering the special
              mime type (Foxe Chen).

    Patch 9.1.2090
    Problem:  Last buffer not freed with EXITFREE (after 9.1.2087).
    Solution: Free the last buffer when inside free_all_mem() (zeertzjq).

    Patch 9.1.2091
    Problem:  Ruby headers define HAVE_FSYNC, which leaks into Vim sources
              on Windows and changes conditional compilation of buf_T. This
              causes struct layout mismatches in if_ruby.c and results in a
              different offset for the b_p_bl property, making Vim::Buffer
              access fail (after v9.1.2024)
    Solution: Undefine HAVE_FSYNC after including the Ruby headers.

    Patch 9.1.2092
    Problem:  Cannot detect kitty foreground/background color
    Solution: Update builtin termcap entries (Mateo Gjika).

    Patch 9.1.2093
    Problem:  heap-use-after-free when wiping buffer in TabClosedPre.
    Solution: Check window_layout_locked() when closing window(s) in another
              tabpage (zeertzjq).

    Patch 9.1.2094
    Problem:  filetype: tiger files are not recognized
    Solution: Detect *.tig files as tiger filetype (Christian Clason).

    Patch 9.1.2095
    Problem:  :wqall! doesn't quit when using :quit in BufWritePost
              (after 8.0.1190).
    Solution: Restore old value of "exiting" when calling not_exiting()
              instead of always resetting it to FALSE (zeertzjq).

    Patch 9.1.2096
    Problem:  Vim9: truthiness issue with objects (kennypete)
    Solution: Return true for an non-null object (Yegappan Lakshmanan).

    Patch 9.1.2097
    Problem:  TabClosedPre may be triggered twice for the same tab page when
              closing another tab page in BufWinLeave (after 9.1.1211).
    Solution: Store whether TabClosedPre was triggered in tabpage_T (zeertzjq).

    Patch 9.1.2098
    Problem:  Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A
              (after 9.1.1714) (fizz-is-on-the-way).
    Solution: Check if there are matches before applying one (zeertzjq).

    Patch 9.1.2099
    Problem:  Depending on the worker's environment, the line endings in
              ja.sjis.po may differ from those in the source ja.po.
    Solution: By setting standard input and output to binary mode, the line
              endings for input and output will match (Muraoka Taro)

    Patch 9.1.2100
    Problem:  filetype: tiltfiles are not recognized
    Solution: Detect Tiltfiles.* and *.tiltfiles as tiltfile filetype (Luis Davim)

    Patch 9.1.2101
    Problem:  Vim9: more truthiness issues (kennypete)
    Solution: Class, enum and typealias cannot be used with the falsy
              operator (Yegappan Lakshmanan).

    Patch 9.1.2102
    Problem:  foldtext not reversed and cut off in 'rightleft' mode (bfredl)
    Solution: Fix the rightleft redrawing logic (Sergey Vlasov).

    Patch 9.1.2103
    Problem:  tests: test_fold.vim leaves swapfiles behind
    Solution: Close open buffer using :bw! instead of :close!

    Patch 9.1.2104
    Problem:  readdirex() might be slow (Mao-Yining)
    Solution: Avoid double slash in path concatenation in create_readdirex_item()
              (Yasuhiro Matsumoto).

    Patch 9.1.2105
    Problem:  Not enough tests for using plain_vgetc().
    Solution: Add tests for using plain_vgetc() during various commands (zeertzjq)

    Patch 9.1.2106
    Problem:  Vim9: class, enum and type alias can be used as value in an
              expression (kennypete)
    Solution: Abort expression evaluation if class, enum or type alias is
              used in an expression (Yegappan Lakshmanan).

    Patch 9.1.2107
    Problem:  :normal may change cmdline history if the keys don't
              explicitly leave Cmdline mode (after 9.1.1872).
    Solution: Check ex_normal_busy (zeertzjq).

    Patch 9.1.2108
    Problem:  Test_foldtextresult_rightleft() does not restore 'columns'
              (after v9.1.2102)
    Solution: Save and restore the value of 'columns' (zeertzjq).

    Patch 9.1.2109
    Problem:  filetype: NetLinx fires are not recognized
    Solution: Detect *.axs and *.axi as netlinx filetype (kb).

    Patch 9.1.2110
    Problem:  filetype: skhd files are not recognized
    Solution: Detect .skhdrc and skhdrc as skhd filetype, include a syntax and
              filetype plugin, add syntax tests (Kiyoon Kim).

    Patch 9.1.2111
    Problem:  Vim9: no error for elseif/else after else
    Solution: Report an error (Hirohito Higashi).

    Patch 9.1.2112
    Problem:  long statusline may crash if using singlebyte encoding
              (fizz-is-on-the-way)
    Solution: Drop the non-mbyte codepath and always use the mbyte code (zeertzjq)

    Patch 9.1.2113
    Problem:  potential NULL pointer dereference issues (EpheraXun)
    Solution: Check returned pointer to be non NULL (Yasuhiro Matsumoto).

    Patch 9.1.2114
    Problem:  modeless selection not copied to * register when P in
              guioptions (Coacher)
    Solution: Make the "P" flag override the "a" and "A" flag (Foxe Chen).

    Patch 9.1.2115
    Problem:  CI: wrong preprocessor indentation (after v9.1.2114)
    Solution: Update indentation (Yasuhiro Matsumoto).

    Patch 9.1.2116
    Problem:  crash when using 'tagfunc' (Rodrigo Queipo)
    Solution: Do not add the user_data to the 'info' dictionary when called
              for insert mode completion (the TAG_INS_COMP flag is set).
              Completion should not depend on the state of a previous tag
              jump (Yasuhiro Matsumoto).

    Patch 9.1.2117
    Problem:  unnecessary braces in terminal.c
              (Christ van Willegen, after v9.1.2113)
    Solution: Remove braces.

    Patch 9.1.2118
    Problem:  'cursorline' and part of 'statusline' are missing after
              :diffput to an empty buffer.
    Solution: Make sure the cursor doesn't go beyond the last line after
              :diffput (zeertzjq).

    Patch 9.1.2119
    Problem:  tests: Test_language_cmd fails on OpenBSD because the test
              uses an invalid locale name and expects the command to produce
              an error. OpenBSD accepts (almost) any locale name as valid by
              design, so the :lang command succeeds and the test fails.
    Solution: Slightly update the "bad" locale name to make it something
              that OpenBSD considers invalid by adding a dot (but not ending
              with ".UTF-8"). Maintain the original two underscores in the
              name because that ensures Windows will also see it as invalid
              (Kevin Goodsell).

    Patch 9.1.2120
    Problem:  blob2str() does not restore trailing newline
    Solution: Append empty string (thinca).

    Patch 9.1.2121
    Problem:  Vim9: type issue when modifying a variable using :legacy
              (kennypete)
    Solution: In a vim9 script, when modifying a variable using the legacy
              command, check the type (Yegappan Lakshmanan).

    Patch 9.1.2122
    Problem:  Vim9: Negating a float doesn't result in a boolean (kennypete)
    Solution: Make it return a boolean (Yegappan Lakshmanan).

    Patch 9.1.2123
    Problem:  using NOT with a float returns a float in legacy vim script
              (kennypete)
    Solution: Return a number instead of a float (Yegappan Lakshmanan).

    Patch 9.1.2124
    Problem:  blob2str() does not handle UTF-16 encoding (Hirohito Higashi)
    Solution: Refactor the code and fix remaining issues, see below
              (Yasuhiro Matsumoto).

    Patch 9.1.2125
    Problem:  MS-Windows: DirectX rendering can be improved
    Solution: Use lpDx advance, fix vertical text shift and correct
              font-size calculations (Yasuhiro Matsumoto).

    Patch 9.1.2126
    Problem:  vim --version used single column for feature list
              (Ben Knoble, after v9.1.1898)
    Solution: Restore old behaviour and assume 80 columns, making sure the feature
              list is shown in several columns (Ben Knoble, Hirohito Higashi).

    Patch 9.1.2127
    Problem:  MS-Windows: DirectX renders font too small in comparison to
              the GDI rendering (Linwei, after v9.1.2125)
    Solution: Implement proper font clipping (Yasuhiro Matsumoto).

    Patch 9.1.2128
    Problem:  heap UAF if autocommands from reloading a file changed outside
              of Vim wipe its buffer.
    Solution: Validate the bufref after buf_reload (Sean Dewar).

    Patch 9.1.2129
    Problem:  MS-Windows: font size calculation slightly wrong, causing
              vertical line gaps (Maxim Kim, after v9.1.2127)
    Solution: Update font size calculation when using DirectX
              (Yasuhiro Matsumoto).

    Patch 9.1.2130
    Problem:  Page scrolling in Insert mode beeps (after 9.1.0211).
    Solution: Fix incorrect return value of pagescroll(). Also invert the
              return value of scroll_with_sms() to be less confusing and
              match comments (zeertzjq).

    Patch 9.1.2131
    Problem:  tests: Test_diff_screen() fails on BSD
    Solution: Use gdiff on BSD systems if available (zeertzjq).

    Patch 9.1.2132
    Problem:  [security]: buffer-overflow in 'helpfile' option handling by
              using strcpy without bound checks (Rahul Hoysala)
    Solution: Limit strncpy to the length of the buffer (MAXPATHL)

    Patch 9.1.2133
    Problem:  Another case of buffer overflow with 'helpfile'.
    Solution: Leave room for "tags" in the buffer (zeertzjq).

    Patch 9.1.2134
    Problem:  Terminal doesn't handle split UTF-8 sequence after ASCII.
    Solution: Only use one UTF-8 encoding state per vterm state (zeertzjq).

    Patch 9.1.2135
    Problem:  search() is used to check for the message from tar that
              indicates leading slashes found in the tar archive, or to
              check for the leading slashes themselves. However, if
              'nowrapscan' is in effect these searches are limited to the
              last line and don't find any results. This causes the warning
              message from tar to be seen in the buffer, the "Path Traversal
              Attack Detected" message to be omitted, and editing actions
              can fail. This can be seen, for example, when editing
              src/testdir/samples/evil.tar.
    Solution: Use the 'w' flag for search() (Kevin Goodsell)

    Patch 9.1.2136
    Problem:  :tab sbuffer may close old tabpage if BufLeave autocommand
              splits window (after 9.1.0143).
    Solution: Only close other windows if the buffer will be unloaded (zeertzjq).

    Patch 9.1.2137
    Problem:  Some tests are not valid on OpenBSD.
    Solution: Add CheckNotOpenBSD, use it to skip certain tests
              (Kevin Goodsell).

    Patch 9.1.2138
    Problem:  With 'autochdir' win_execute() can corrupt the buffer name, causing
              :write to use wrong path.
    Solution: Save and restore b_fname when 'autochdir' is active (Ingo Karkat).

    Patch 9.1.2139
    Problem:  Buffer overflow in :wlrestore command, caused by assuming
              wrong buffer length in vwl_log_handler() (Seungyeon Park)
    Solution: Use correct buffer size (512 bytes) in vim_vsnprintf()
              to properly truncate long messages.

    Patch 9.1.2140
    Problem:  tests: Test_wayland_protocol_error_overflow() fails
              (after v9.1.2139)
    Solution: try/catch the expected error

    Patch 9.1.2141
    Problem:  Truncation when serializing libsodium encryption parameters.
    Solution: Correctly cast to long long type (Yasuhiro Matsumoto).

    Patch 9.1.2142
    Problem:  MS-Windows: mouse scroll events not handled for popups
    Solution: Do not return early (Mao-Yining)

    Patch 9.1.2143
    Problem:  When a popup window partially overlaps a wide character
              it results in truncated or garbage display.
    Solution: When a wide character is partially blocked by a popup, clear both
              cells in the screen buffer to prevent garbage (Yasuhiro Matsumoto).

    Patch 9.1.2144
    Problem:  When garbage collection runs, the list of recorded buffer
    	  changes may be incorrectly freed (Sainnhe Park).
    Solution: In garbage_collect(), iterate through all buffers and call
              set_ref_in_list() for b_recorded_changes to ensure the list
              and its contents are marked as reachable (Paul Ollis).

    Patch 9.1.2145
    Problem:  intstalltutor Makefile target does not create the tutor/sv dir
    Solution: Add the missing mkdir() calls to the Makefile (Ross Burton)

    Patch 9.1.2146
    Problem:  filetype: cel files are not recognized
    Solution: Detect *.cel files as cel filetype (Stefan VanBuren).

    Patch 9.1.2147
    Problem:  Compile warning in strings.c
    Solution: Use const qualifier (John Marriott).

    Patch 9.1.2148
    Problem:  [security]: Buffer overflow in netbeans special_keys() handling
    Solution: Limit writing to max KEYBUFLEN bytes to prevent writing out of
              bounds.

    top - main help file