Update runtime files
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index c26a857..ad7c5fd 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -10421,7 +10421,7 @@
 builtin_terms		Compiled with some builtin terminals.
 byte_offset		Compiled with support for 'o' in 'statusline'
 channel			Compiled with support for |channel| and |job|
-cindent			Compiled with 'cindent' support.
+cindent			Compiled with 'cindent' support. (always true)
 clientserver		Compiled with remote invocation support |clientserver|.
 clipboard		Compiled with 'clipboard' support.
 clipboard_working	Compiled with 'clipboard' support and it can be used.
@@ -10483,7 +10483,7 @@
 			Insert mode. (always true)
 job			Compiled with support for |channel| and |job|
 ipv6			Compiled with support for IPv6 networking in |channel|.
-jumplist		Compiled with |jumplist| support.
+jumplist		Compiled with |jumplist| support. (always true)
 keymap			Compiled with 'keymap' support.
 lambda			Compiled with |lambda| support.
 langmap			Compiled with 'langmap' support.
@@ -10492,6 +10492,7 @@
 			'breakindent' support.
 linux			Linux version of Vim.
 lispindent		Compiled with support for lisp indenting.
+			(always true)
 listcmds		Compiled with commands for the buffer list |:files|
 			and the argument list |arglist|.
 localmap		Compiled with local mappings and abbr. |:map-local|
@@ -10521,7 +10522,7 @@
 nanotime		Compiled with sub-second time stamp checks.
 netbeans_enabled	Compiled with support for |netbeans| and connected.
 netbeans_intg		Compiled with support for |netbeans|.
-num64			Compiled with 64-bit |Number| support.
+num64			Compiled with 64-bit |Number| support. (always true)
 ole			Compiled with OLE automation support for Win32.
 osx			Compiled for macOS  cf. mac
 osxdarwin		Compiled for macOS, with |mac-darwin-feature|
@@ -10547,7 +10548,7 @@
 scrollbind		Compiled with 'scrollbind' support. (always true)
 showcmd			Compiled with 'showcmd' support.
 signs			Compiled with |:sign| support.
-smartindent		Compiled with 'smartindent' support.
+smartindent		Compiled with 'smartindent' support. (always true)
 sodium			Compiled with libsodium for better crypt support
 sound			Compiled with sound support, e.g. `sound_playevent()`
 spell			Compiled with spell checking support |spell|.
@@ -10561,7 +10562,7 @@
 			current buffer.
 system			Compiled to use system() instead of fork()/exec().
 tag_binary		Compiled with binary searching in tags files
-			|tag-binary-search|.
+			|tag-binary-search|. (always true)
 tag_old_static		Support for old static tags was removed, see
 			|tag-old-static|.
 tcl			Compiled with Tcl interface.
@@ -10575,6 +10576,7 @@
 			or terminfo file.
 timers			Compiled with |timer_start()| support.
 title			Compiled with window title support |'title'|.
+			(always true)
 toolbar			Compiled with support for |gui-toolbar|.
 ttyin			input is a terminal (tty)
 ttyout			output is a terminal (tty)
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 7481605..cc002ec 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -8621,6 +8621,7 @@
 new-buftype	version6.txt	/*new-buftype*
 new-cmdwin	version6.txt	/*new-cmdwin*
 new-color-schemes	version6.txt	/*new-color-schemes*
+new-colorschemes-9	version9.txt	/*new-colorschemes-9*
 new-commands	version5.txt	/*new-commands*
 new-commands-5.4	version5.txt	/*new-commands-5.4*
 new-conceal	version7.txt	/*new-conceal*
@@ -8670,6 +8671,7 @@
 new-perl-python	version5.txt	/*new-perl-python*
 new-persistent-undo	version7.txt	/*new-persistent-undo*
 new-plugins	version6.txt	/*new-plugins*
+new-popup-compl	version9.txt	/*new-popup-compl*
 new-popup-window	version8.txt	/*new-popup-window*
 new-posix	version7.txt	/*new-posix*
 new-print-multibyte	version7.txt	/*new-print-multibyte*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 40f9bc0..50661ef 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 Jun 23
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Jun 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,7 +39,7 @@
 -------------------- Known bugs and current work -----------------------
 
 Prepare for the Vim 9.0 release:
-- Update version9.txt
+- Update version number in help
 
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
@@ -79,7 +79,7 @@
 Popup windows:
 - Preview popup not properly updated when it overlaps with completion menu.
   (Yegappan Lakshmanan, 2021 May 22)
-- Srollbar thumb sometimes not visible  #10492
+- Scrollbar thumb sometimes not visible  #10492
 - Add a function to redraw a specific popup window.  Esp. to be used when
   editing the command line, when screen updating doesn't happen. (Shougo)
 - Add a flag to make a popup window focusable?
@@ -201,6 +201,7 @@
   conversions.
 
 Patches considered for including:
+- make functions static if possible, add a few tests. #10612
 - use ngettext() in a few more places #10606
 - move f_hasmapto() to map.c  #10611
 - allow for nesting of timeout, sketch in #10595
@@ -211,6 +212,8 @@
   Was originally written by Felipe Morales.
 - Patch to make fillchars global-local. (#5206)
 - Version of getchar() that does not move the cursor - #10603
+  Use a separate argument for the new flag.
+- Improved VB filetype detection. (Doug Kearns, June 25)
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
@@ -304,6 +307,11 @@
 
 Add ??= operator, "a ??= b" works like "a = a ?? b". #10343
 
+When ":redir" is used while already active, the previous one is ended.  But
+when redirecting to a local variable (function or script) storing the value
+won't work.  At least give an error.  Is there a way to make it work?
+#10616
+
 Add an option to start_timer() to return from the input loop with K_IGNORE.
 This is useful e.g. when a popup was created that disables mappings, we need
 to return from vgetc() to make this happen.  #7011
@@ -380,7 +388,7 @@
 File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
 
 A syntax plugin cannot use autocommands, it could be sourced from setting
-'syntax' in a modeline.  Add a function that indicates whethere "secure"
+'syntax' in a modeline.  Add a function that indicates whether "secure"
 and/or "sandbox" are set.
 
 Problem with auto-formatting - inserting space and putting cursor before added
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index d09dac4..1414561 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.2.  Last change: 2022 May 21
+*various.txt*   For Vim version 8.2.  Last change: 2022 Jun 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -558,7 +558,10 @@
 			initialized to an empty string.  After the redirection
 			starts, if the variable is removed or locked or the
 			variable type is changed, then further command output
-			messages will cause errors.
+			messages will cause errors.  When using a local
+			variable (l:var in a function or s:var in a script)
+			and another `:redir` causes the current one to end,
+			the scope might be different and the assignment fails.
 			In Vim9 script: the variable must have been declared
 			as a string.
 			The variable will remain empty until redirection ends.
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 0256f4b..775b9dc 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -12849,7 +12849,7 @@
 
 Patch 7.3.430
 Problem:    When a custom filetype detection uses "augroup END" the conf
-	    fileytpe detection does not have the filetypedetect group.
+	    filetype detection does not have the filetypedetect group.
 Solution:   Always end the group and include filetypedetect in the conf
 	    autocommand. (Lech Lorens)
 Files:	    runtime/filetype.vim
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index b7185e8..670208f 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -18427,7 +18427,7 @@
 Solution:   Check if the search fails. (Christian Brabandt, closes #1683)
 Files:      src/search.c, src/testdir/test_gn.vim
 
-Patch 8.0.0628 (after 8.0.0626
+Patch 8.0.0628 (after 8.0.0626)
 Problem:    Cursor disappears after silent mapping. (Ramel Eshed)
 Solution:   Do restore the cursor when it was changed, but don't change it in
             the first place for a silent mapping.
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 4438394..3705400 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt*  For Vim version 8.2.  Last change: 2022 Jun 20
+*version9.txt*  For Vim version 8.2.  Last change: 2022 Jun 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -7,25 +7,27 @@
 				*vim-9.0* *vim-9* *version-9.0* *version9.0*
 Welcome to Vim 9!  Several years have passed since the previous release.
 A large number of bugs have been fixed, many nice features have been added
-and Vim9 script syntax has been introduced.  This file mentions all the new
-things and changes to existing features since Vim 8.2.0. The patches up to Vim
-8.2 can be found here: |vim-8.2|.
+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|
-	Various new items		|new-items-9|
+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|
+INCOMPATIBLE CHANGES				|incompatible-9|
 
-IMPROVEMENTS				|improvements-9|
+IMPROVEMENTS					|improvements-9|
 
-COMPILE TIME CHANGES			|compile-changes-9|
+COMPILE TIME CHANGES				|compile-changes-9|
 
-PATCHES					|patches-9|
+PATCHES						|patches-9|
 
 
 See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
@@ -51,26 +53,41 @@
 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 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.
+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.  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.
+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.
 
-All the information about Vim9 script can be found in the |Vim9| help file.
+Information about Vim9 script can be found in the |Vim9| help file.
 
 
-Various new items					*new-items-9*
------------------
+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.
 
-TODO: Visual/Insert/Cmdline mode commands?
+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
@@ -86,25 +103,26 @@
 
 Ex commands: ~
 
-|:abstract|
+|: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
+|: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
+|: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
+|: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
+|: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
 
@@ -138,6 +156,7 @@
 |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
@@ -195,10 +214,9 @@
 
 New autocommand events: ~
 
-|CompleteDonePre|	after Insert mode completion is done, before clearing
-			info
+|CompleteDonePre|	after Insert mode completion done, before clearing info
 |DirChangedPre|		before the working directory will change
-|InsertLeavePre| 	just before leaving Insert mode
+|InsertLeavePre|	just before leaving Insert mode
 |ModeChanged|		after changing the mode
 |SigUSR1|		after the SIGUSR1 signal has been detected
 |WinClosed|		after closing a window
@@ -207,7 +225,7 @@
 |VimResume|		when Vim is resumed after being suspended
 
 
-New operator: ~
+New operators: ~
 
 |>>|			bitwise right shift
 |<<|			bitwise left shift
@@ -220,16 +238,18 @@
 ==============================================================================
 INCOMPATIBLE CHANGES				*incompatible-9*
 
-These changes are incompatible with previous releases.  Check this list if you
-run into a problem when upgrading from Vim 8.2 to 9.0.
+There is only one change that is incompatible with previous releases:
 
-TODO
+- 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
-collection of changes that are worth mentioning.
+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|.
@@ -237,15 +257,12 @@
 Support for Vim expression evaluation in a string. |interp-string|
 Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
 
-Display the command line completion matches in a popup menu. 'wildoptions'
+Support for fuzzy matching:
+- a string in a List of strings. |fuzzy-matching|
+- completion support for command line completion using 'wildoptions'
+- for |:vimgrep|.
 
-Support for fuzzy matching a string in a List of strings. |fuzzy-matching|
-
-Fuzzy completion support for command line completion using 'wildoptions'.
-
-Fuzzy match support for |:vimgrep|.
-
-Haiku support. |Haiku|
+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
@@ -253,13 +270,24 @@
 
 Support for sourcing lines from the current buffer. |:source-range|
 
-Support for opening a terminal in a popup window. |popup-terminal|
+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|
 
-Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
-|:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
+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',
@@ -270,35 +298,33 @@
 'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
 'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.
 
-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.
+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 check current word with |z=| even when 'spell' is off.
-
-Add "timeout" to 'spellsuggest' to limit the searching time for spell
-suggestions.
+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|.
 
-Support for calling Vim functions from Lua (vim.call() and vim.fn()).
-
 Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.
 
-Allow setting underline color in terminal.
-
-Expand script ID using expand('<SID>'). |expand()|
+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.
@@ -307,25 +333,27 @@
 
 Hide cursor when sleeping using |:sleep!|.
 
-Detect focus events in terminal (|FocusGained| and |FocusLost|).
-
 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.
+spaces.  Support specifying a character using the hexdecimal notation in
+'listchars' (\x, \u and \U).
 
 Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.
 
-Support for looping over a string using |:for|.
+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})
+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.
 
@@ -338,14 +366,8 @@
 
 Add the |hl-CurSearch| default highlight group for the current search match.
 
-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 support for logging on Vim startup (|--log|).
 
-Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with
-inline comment. |fo-/|
-
 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)
@@ -353,24 +375,17 @@
 
 Support truncating the tag stack using |settagstack()|.
 
-Support using any Vim type for user_data with the completion functions
-(|complete-items|).
-
 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.
 
-Add bell support for the terminal window. ('belloff')
-
 Sync the undo file if 'fsync' is set.
 
 Support excluding the 'runtimepath' and 'packpath' options from a session file
 using "skiprtp" in 'sessionoptions'.
 
-Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
-
-Support for getting the number of lines (linecount) in a buffer using
+Support for getting the number of lines (line count) in a buffer using
 |getbufinfo()|.
 
 Support |filter()| and |map()| for blob and string types.
@@ -381,8 +396,6 @@
 
 Update xdiff to version 2.33.  Update libvterm to revision 789.
 
-Added support for the |Haiku| OS.
-
 Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.
 
 Add the |t_AU| and |t_8u| termap codes for underline and undercurl.  Add the
@@ -407,38 +420,53 @@
 
 Add support for skipping an expression using |search()|.
 
-Add the "cmdline" option to |getcompletion()| to return the command line
-arguments.
-
-Add support for spell checking CamelCased words by adding "camel" to
-'spelloptions'.
-
-Add support for importing Vim scripts using |:import| from a Vimscript.
-
 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.
 
-Convert a Lua function and a closure to a Vim funcref so that it can be
-accessed in a Vimscript. (|lua-funcref|) Make Lua arrays one based.
-Add table.insert() and table.remove() functions.
+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 Vimscript (|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 mouse left-right scrolling in a terminal window.
+Support for new UTF-8 characters from Unicode release 13.
 
-Updated colorschemes from https://github.com/vim/colorschemes is included.
+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.
+- 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).
 
 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 are fixed.
-
-TODO: more
+Many Coverity static analysis warnings have been fixed.
 
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-9*
@@ -461,11 +489,15 @@
 
 The rgb.txt file is no longer included, use colors/lists/default.vim instead.
 
-Several source files were split, mainly to make it easier to inspect code
-coverage information.
+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*
@@ -12812,7 +12844,7 @@
 Patch 8.2.2040
 Problem:    Terminal buffer disappears even when 'bufhidden' is "hide".
             (Sergey Vlasov)
-Solution:   Check 'bufhiddden' when a terminal buffer becomes hidden.
+Solution:   Check 'bufhidden' when a terminal buffer becomes hidden.
             (closes #7358)
 Files:      src/buffer.c, src/testdir/test_terminal.vim
 
@@ -25903,7 +25935,7 @@
 Files:      src/normal.c, src/testdir/test_registers.vim
 
 Patch 8.2.4238
-Problem:    *.tf file could be fileytpe "tf" or "terraform".
+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
@@ -27440,7 +27472,7 @@
 Files:      src/cmdexpand.c, src/testdir/test_cmdline.vim
 
 Patch 8.2.4479
-Problem:    No fuzzy completieon for maps and abbreviations.
+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,
@@ -27662,7 +27694,7 @@
             src/testdir/test_vim9_script.vim
 
 Patch 8.2.4515
-Problem:    Old subsitute syntax is still supported.
+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
 
@@ -27715,7 +27747,7 @@
 
 Patch 8.2.4524
 Problem:    MS-Windows: cannot build with some sodium libraries.
-Solution:   Make the DLL name configuragle.  Add build instructions.
+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
@@ -28312,7 +28344,7 @@
 
 Patch 8.2.4623
 Problem:    Coverity warns for using uninitialized field.
-Solution:   Initialize he field to zero.
+Solution:   Initialize the field to zero.
 Files:      src/ex_docmd.c
 
 Patch 8.2.4624
@@ -28759,7 +28791,7 @@
 
 Patch 8.2.4692
 Problem:    No test for what 8.2.4691 fixes.
-Solution:   Add a test.  Use a more generic sotlution. (closes #10090)
+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)
@@ -28907,7 +28939,7 @@
 Patch 8.2.4717
 Problem:    For TextYankPost v:event does not contain information about the
             operation being inclusive or not.
-Solution:   Add "inclusive" to v:event. (Justn M. Keyes, Yegappan Lakshmanan,
+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
@@ -29092,7 +29124,7 @@
 
 Patch 8.2.4746
 Problem:    Supercollider filetype not recognized.
-Solution:   Match file extentions and check file contents to detect
+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
@@ -29625,7 +29657,7 @@
 Files:      src/vim9execute.c, src/vim9.h,
             src/testdir/test_vim9_disassemble.vim
 
-Patch 8.2.4837 (after patch 8.2.0919
+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)
@@ -29714,7 +29746,7 @@
 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))
+            closes #9836)
 Files:      src/term.c
 
 Patch 8.2.4853
@@ -29950,7 +29982,7 @@
 
 Patch 8.2.4892
 Problem:    Test failures because of changed error messages.
-Solution:   Adjust the exptected 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,
@@ -29986,7 +30018,7 @@
 
 Patch 8.2.4898
 Problem:    Coverity complains about pointer usage.
-Solution:   Move code for increment/decerment.
+Solution:   Move code for increment/decrement.
 Files:      src/vim9compile.c
 
 Patch 8.2.4899
@@ -30183,7 +30215,7 @@
             src/os_vms.c, src/os_vms_conf.h
 
 Patch 8.2.4929
-Problem:    Off-by-one error in in statusline item.
+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
@@ -30327,7 +30359,7 @@
 Files:      src/indent.c, src/testdir/test_smartindent.vim
 
 Patch 8.2.4954
-Problem:    Inserting line breaks text property spanning more then one line.
+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
 
@@ -31394,6 +31426,160 @@
             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 improvments.
+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
 
 
  vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/gvim.desktop b/runtime/gvim.desktop
index d75d291..a970578 100644
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -14,6 +14,7 @@
 Name[sr]=GVim
 Name[tr]=GVim
 Name[uk]=GVim
+Name[zh_CN]=GVim
 Name=GVim
 # Translators: This is the Generic Application Name used in the Vim desktop file
 GenericName[ca]=Editor de text
@@ -29,6 +30,7 @@
 GenericName[sr]=Едитор текст
 GenericName[tr]=Metin Düzenleyici
 GenericName[uk]=Редактор Тексту
+GenericName[zh_CN]=文本编辑器
 GenericName=Text Editor
 # Translators: This is the comment used in the Vim desktop file
 Comment[ca]=Edita fitxers de text
@@ -44,6 +46,7 @@
 Comment[sr]=Уређујте текст фајлове
 Comment[tr]=Metin dosyaları düzenleyin
 Comment[uk]=Редагувати текстові файли
+Comment[zh_CN]=编辑文本文件
 Comment=Edit text files
 # The translations should come from the po file. Leave them here for now, they will
 # be overwritten by the po file when generating the desktop.file!
@@ -104,7 +107,6 @@
 Comment[tk]=Metin faýllary editle
 Comment[vi]=Soạn thảo tập tin văn bản
 Comment[wa]=Asspougnî des fitcs tecses
-Comment[zh_CN]=编辑文本文件
 Comment[zh_TW]=編輯文字檔
 TryExec=gvim
 Exec=gvim -f %F
@@ -124,6 +126,7 @@
 Keywords[sr]=Текст;едитор;
 Keywords[tr]=Metin;düzenleyici;
 Keywords[uk]=текст;редактор;
+Keywords[zh_CN]=Text;editor;文本;编辑器;
 Keywords=Text;editor;
 # Translators: This is the Icon file name. Do NOT translate
 Icon=gvim
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
index 87fb94b..9b012c7 100644
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -2,7 +2,7 @@
 "
 " Author: Bram Moolenaar
 " Copyright: Vim license applies, see ":help license"
-" Last Change: 2022 Jun 22
+" Last Change: 2022 Jun 24
 "
 " WORK IN PROGRESS - The basics works stable, more to come
 " Note: In general you need at least GDB 7.12 because this provides the
@@ -534,6 +534,7 @@
       Stop
       sleep 10m
     endif
+    " TODO: should we prepend CTRL-U to clear the command?
     call term_sendkeys(s:gdbbuf, a:cmd . "\r")
     if do_continue
       Continue
diff --git a/runtime/vim.desktop b/runtime/vim.desktop
index 95b8567..a8672cb 100644
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -14,6 +14,7 @@
 Name[sr]=Vim
 Name[tr]=Vim
 Name[uk]=Vim
+Name[zh_CN]=Vim
 Name=Vim
 # Translators: This is the Generic Application Name used in the Vim desktop file
 GenericName[ca]=Editor de text
@@ -29,6 +30,7 @@
 GenericName[sr]=Едитор текст
 GenericName[tr]=Metin Düzenleyici
 GenericName[uk]=Редактор Тексту
+GenericName[zh_CN]=文本编辑器
 GenericName=Text Editor
 # Translators: This is the comment used in the Vim desktop file
 Comment[ca]=Edita fitxers de text
@@ -44,6 +46,7 @@
 Comment[sr]=Уређујте текст фајлове
 Comment[tr]=Metin dosyaları düzenleyin
 Comment[uk]=Редагувати текстові файли
+Comment[zh_CN]=编辑文本文件
 Comment=Edit text files
 # The translations should come from the po file. Leave them here for now, they will
 # be overwritten by the po file when generating the desktop.file.
@@ -104,7 +107,6 @@
 Comment[tk]=Metin faýllary editle
 Comment[vi]=Soạn thảo tập tin văn bản
 Comment[wa]=Asspougnî des fitchîs tecses
-Comment[zh_CN]=编辑文本文件
 Comment[zh_TW]=編輯文字檔
 TryExec=vim
 Exec=vim %F
@@ -124,6 +126,7 @@
 Keywords[sr]=Текст;едитор;
 Keywords[tr]=Metin;düzenleyici;
 Keywords[uk]=текст;редактор;
+Keywords[zh_CN]=Text;editor;文本;编辑器;
 Keywords=Text;editor;
 # Translators: This is the Icon file name. Do NOT translate
 Icon=gvim