changeset 28010:c968191a8557

Update runtime files Commit: https://github.com/vim/vim/commit/1588bc8ebee22f2855f27273fc2234fff370f86c Author: Bram Moolenaar <Bram@vim.org> Date: Tue Mar 8 21:35:07 2022 +0000 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Tue, 08 Mar 2022 22:45:09 +0100
parents 3bffa026c6d9
children d10d5cc8e657
files runtime/autoload/dist/ft.vim runtime/compiler/jest.vim runtime/compiler/sml.vim runtime/defaults.vim runtime/doc/autocmd.txt runtime/doc/builtin.txt runtime/doc/change.txt runtime/doc/channel.txt runtime/doc/eval.txt runtime/doc/gui.txt runtime/doc/index.txt runtime/doc/insert.txt runtime/doc/intro.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/pattern.txt runtime/doc/quickfix.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/term.txt runtime/doc/todo.txt runtime/doc/uganda.txt runtime/doc/various.txt runtime/doc/version7.txt runtime/doc/version8.txt runtime/doc/version9.txt runtime/doc/vim9.txt runtime/ftplugin/ant.vim runtime/ftplugin/aspvbs.vim runtime/ftplugin/config.vim runtime/ftplugin/csc.vim runtime/ftplugin/csh.vim runtime/ftplugin/dtd.vim runtime/ftplugin/html.vim runtime/ftplugin/java.vim runtime/ftplugin/jsp.vim runtime/ftplugin/pascal.vim runtime/ftplugin/php.vim runtime/ftplugin/sgml.vim runtime/ftplugin/sh.vim runtime/ftplugin/svg.vim runtime/ftplugin/tcsh.vim runtime/ftplugin/xhtml.vim runtime/ftplugin/xml.vim runtime/ftplugin/xsd.vim runtime/ftplugin/xslt.vim runtime/indent/vim.vim runtime/menu.vim
diffstat 48 files changed, 634 insertions(+), 328 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -3,7 +3,7 @@ vim9script
 # Vim functions for file type detection
 #
 # Maintainer:	Bram Moolenaar <Bram@vim.org>
-# Last Change:	2022 Feb 22
+# Last Change:	2022 Mar 05
 
 # These functions are moved here from runtime/filetype.vim to make startup
 # faster.
--- a/runtime/compiler/jest.vim
+++ b/runtime/compiler/jest.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:	Jest
 " Maintainer:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:	2018 May 15
+" Last Change:	2021 Nov 20
 
 if exists("current_compiler")
   finish
@@ -15,12 +15,14 @@ endif
 let s:cpo_save = &cpo
 set cpo&vim
 
-" CompilerSet makeprg=npx\ jest\ --no-colors
+" CompilerSet makeprg=npx\ --no-install\ jest\ --no-colors
 
 CompilerSet makeprg=jest\ --no-colors
-CompilerSet errorformat=%E\ \ ●\ %m,
+CompilerSet errorformat=%-A\ \ ●\ Console,
+		       \%E\ \ ●\ %m,
 		       \%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=,
 		       \%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c),
+		       \%Z\ %\\{6}at\ %\\S%#\ %f:%l:%c,
 		       \%+C\ %\\{4}%\\w%.%#,
 		       \%+C\ %\\{4}%[-+]%.%#,
 		       \%-C%.%#,
--- a/runtime/compiler/sml.vim
+++ b/runtime/compiler/sml.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:	SML/NJ Compiler
 " Maintainer:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:	2020 Feb 10
+" Last Change:	2022 Feb 09
 
 if exists("current_compiler")
   finish
@@ -16,10 +16,10 @@ let s:cpo_save = &cpo
 set cpo&vim
 
 CompilerSet makeprg=sml
-CompilerSet errorformat=%f:%l.%c-%\\d%\\+.%\\d%\\+\ %trror:\ %m,
+CompilerSet errorformat=%f:%l.%c-%e.%k\ %trror:\ %m,
 		       \%f:%l.%c\ %trror:\ %m,
-		       \%trror:\ %m
-		       \%f:%l.%c-%\\d%\\+.%\\d%\\+\ %tarning:\ %m,
+		       \%trror:\ %m,
+		       \%f:%l.%c-%e.%k\ %tarning:\ %m,
 		       \%f:%l.%c\ %tarning:\ %m,
 		       \%tarning:\ %m,
 		       \%-G%.%#
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
 " The default vimrc file.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2021 Nov 17
+" Last change:	2022 Mar 03
 "
 " This is loaded if no vimrc file was found.
 " Except when Vim is run with "-u NONE" or "-C".
@@ -64,9 +64,10 @@ if has('win32')
   set guioptions-=t
 endif
 
-" Don't use Ex mode, use Q for formatting.
+" Don't use Q for Ex mode, use it for formatting.  Except for Select mode.
 " Revert with ":unmap Q".
 map Q gq
+sunmap Q
 
 " CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
 " so that you can undo CTRL-U after inserting a line break.
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2022 Feb 09
+*autocmd.txt*   For Vim version 8.2.  Last change: 2022 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -63,7 +63,7 @@ 2. Defining autocommands				*autocmd-def
 			they were given.
 			See |autocmd-nested| for [++nested].  "nested"
 			(without the ++) can also be used, for backwards
-			compatibility.
+			compatibility, but not in |Vim9| script. *E1078*
 							*autocmd-once*
 			If [++once] is supplied the command is executed once,
 			then removed ("one shot").
@@ -365,6 +365,7 @@ Name			triggered by ~
 |InsertEnter|		starting Insert mode
 |InsertChange|		when typing <Insert> while in Insert or Replace mode
 |InsertLeave|		when leaving Insert mode
+|InsertLeavePre| 	just before leaving Insert mode
 |InsertCharPre|		when a character was typed in Insert mode, before
 			inserting it
 
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 8.2.  Last change: 2022 Feb 23
+*builtin.txt*	For Vim version 8.2.  Last change: 2022 Mar 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5572,7 +5572,7 @@ matchfuzzy({list}, {str} [, {dict}])			*
 		empty list is returned. If length of {str} is greater than
 		256, then returns an empty list.
 
-		Refer to |fuzzy-match| for more information about fuzzy
+		Refer to |fuzzy-matching| for more information about fuzzy
 		matching strings.
 
 		Example: >
@@ -8160,8 +8160,7 @@ sound_playfile({path} [, {callback}])
 <		Can also be used as a |method|: >
 			GetSoundPath()->sound_playfile()
 
-<		There is no error *E538* , but  can listen to 538.nl.
-		{only available when compiled with the |+sound| feature}
+<		{only available when compiled with the |+sound| feature}
 
 
 sound_stop({id})					*sound_stop()*
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2022 Feb 04
+*change.txt*    For Vim version 8.2.  Last change: 2022 Mar 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -778,8 +778,8 @@ matched pattern is deleted.  The separat
 out then.  Example: >
 	:%s/TESTING
 This deletes "TESTING" from all lines, but only one per line.
-
-For compatibility with Vi these two exceptions are allowed:
+								*E1270*
+For compatibility with Vi these two exceptions are allowed in legacy script:
 "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
 "\&{string}&" does the same as "//{string}/".
 				*pattern-delimiter* *E146* *E1241* *E1242*
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.2.  Last change: 2021 Nov 28
+*channel.txt*      For Vim version 8.2.  Last change: 2022 Feb 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1288,18 +1288,18 @@ prompt. >
 	" Create a channel log so we can see what happens.
 	call ch_logfile('logfile', 'w')
 
-	" Function handling a line of text has been typed.
+	" Function handling a line of text that has been typed.
 	func TextEntered(text)
 	  " Send the text to a shell with Enter appended.
 	  call ch_sendraw(g:shell_job, a:text .. "\n")
 	endfunc
 
-	" Function handling output from the shell: Added above the prompt.
+	" Function handling output from the shell: Add it above the prompt.
 	func GotOutput(channel, msg)
 	  call append(line("$") - 1, "- " .. a:msg)
 	endfunc
 
-	" Function handling the shell exist: close the window.
+	" Function handling the shell exits: close the window.
 	func JobExit(job, status)
 	  quit!
 	endfunc
@@ -1310,7 +1310,6 @@ prompt. >
 		\ err_cb: function('GotOutput'),
 		\ exit_cb: function('JobExit'),
 		\ })
-	let shell_ch = job_getchannel(shell_job)
 
 	new
 	set buftype=prompt
@@ -1321,6 +1320,46 @@ prompt. >
 	" start accepting shell commands
 	startinsert
 <
+The same in |Vim9| script: >
+
+	vim9script
+
+	# Create a channel log so we can see what happens.
+	ch_logfile('logfile', 'w')
+
+	var shell_job: job
+
+	# Function handling a line of text that has been typed.
+	def TextEntered(text: string)
+	  # Send the text to a shell with Enter appended.
+	  ch_sendraw(shell_job, text .. "\n")
+	enddef
+
+	# Function handling output from the shell: Add it above the prompt.
+	def GotOutput(channel: channel, msg: string)
+	  append(line("$") - 1, "- " .. msg)
+	enddef
+
+	# Function handling the shell exits: close the window.
+	def JobExit(job: job, status: number)
+	  quit!
+	enddef
+
+	# Start a shell in the background.
+	shell_job = job_start(["/bin/sh"], {
+				 out_cb: GotOutput,
+				 err_cb: GotOutput,
+				 exit_cb: JobExit,
+				 })
+
+	new
+	set buftype=prompt
+	var buf = bufnr('')
+	prompt_setcallback(buf, TextEntered)
+	prompt_setprompt(buf, "shell command: ")
+
+	# start accepting shell commands
+	startinsert
 
 
  vim:tw=78:ts=8:noet:ft=help:norl:
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2022 Feb 21
+*eval.txt*	For Vim version 8.2.  Last change: 2022 Mar 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1834,6 +1834,7 @@ Some variables can be set by the user, b
 					*v:argv* *argv-variable*
 v:argv		The command line arguments Vim was invoked with.  This is a
 		list of strings.  The first item is the Vim command.
+		See |v:progpath| for the command with full path.
 
 					*v:beval_col* *beval_col-variable*
 v:beval_col	The number of the column, over which the mouse pointer is.
@@ -2215,6 +2216,8 @@ v:none		An empty String. Used to put an 
 <			v:none ~
 		That is so that eval() can parse the string back to the same
 		value.  Read-only.
+		Note that using `== v:none` and `!= v:none`  will often give
+		an error.  Instead, use `is v:none` and `isnot v:none` .
 
 					*v:null* *null-variable*
 v:null		An empty String. Used to put "null" in JSON.  See
@@ -2225,7 +2228,10 @@ v:null		An empty String. Used to put "nu
 <			v:null ~
 		That is so that eval() can parse the string back to the same
 		value.  Read-only.
-		In |Vim9| script "null" can be used without "v:".
+		In |Vim9| script `null` can be used without "v:".
+		In some places `v:null` and `null` can be used for a List,
+		Dict, Job, etc. that is not set.  That is slightly different
+		than an empty List, Dict, etc.
 
 					*v:numbermax* *numbermax-variable*
 v:numbermax	Maximum value of a number.
@@ -3423,16 +3429,17 @@ text...
 			opposite of |:lockvar|.
 
 :if {expr1}			*:if* *:end* *:endif* *:en* *E171* *E579* *E580*
-:en[dif]		Execute the commands until the next matching ":else"
-			or ":endif" if {expr1} evaluates to non-zero.
+:en[dif]		Execute the commands until the next matching `:else`
+			or `:endif` if {expr1} evaluates to non-zero.
 			Although the short forms work, it is recommended to
-			always use `:endif` to avoid confusion.
+			always use `:endif` to avoid confusion and to make
+			auto-indenting work properly.
 
 			From Vim version 4.5 until 5.0, every Ex command in
-			between the ":if" and ":endif" is ignored.  These two
+			between the `:if` and `:endif` is ignored.  These two
 			commands were just to allow for future expansions in a
 			backward compatible way.  Nesting was allowed.  Note
-			that any ":else" or ":elseif" was ignored, the "else"
+			that any `:else` or `:elseif` was ignored, the `else`
 			part was not executed either.
 
 			You can use this to remain compatible with older
@@ -3441,32 +3448,38 @@ text...
 				:  version-5-specific-commands
 				:endif
 <			The commands still need to be parsed to find the
-			"endif".  Sometimes an older Vim has a problem with a
-			new command.  For example, ":silent" is recognized as
-			a ":substitute" command.  In that case ":execute" can
+			`endif`.  Sometimes an older Vim has a problem with a
+			new command.  For example, `:silent` is recognized as
+			a `:substitute` command.  In that case `:execute` can
 			avoid problems: >
 				:if version >= 600
 				:  execute "silent 1,$delete"
 				:endif
 <
-			NOTE: The ":append" and ":insert" commands don't work
-			properly in between ":if" and ":endif".
+			In |Vim9| script `:endif` cannot be shortened, to
+			improve script readability.
+			NOTE: The `:append` and `:insert` commands don't work
+			properly in between `:if` and `:endif`.
 
 						*:else* *:el* *E581* *E583*
-:el[se]			Execute the commands until the next matching ":else"
-			or ":endif" if they previously were not being
+:el[se]			Execute the commands until the next matching `:else`
+			or `:endif` if they previously were not being
 			executed.
+			In |Vim9| script `:else` cannot be shortened, to
+			improve script readability.
 
 					*:elseif* *:elsei* *E582* *E584*
-:elsei[f] {expr1}	Short for ":else" ":if", with the addition that there
-			is no extra ":endif".
+:elsei[f] {expr1}	Short for `:else` `:if`, with the addition that there
+			is no extra `:endif`.
+			In |Vim9| script `:elseif` cannot be shortened, to
+			improve script readability.
 
 :wh[ile] {expr1}			*:while* *:endwhile* *:wh* *:endw*
 						*E170* *E585* *E588* *E733*
-:endw[hile]		Repeat the commands between ":while" and ":endwhile",
+:endw[hile]		Repeat the commands between `:while` and `:endwhile`,
 			as long as {expr1} evaluates to non-zero.
 			When an error is detected from a command inside the
-			loop, execution continues after the "endwhile".
+			loop, execution continues after the `endwhile`.
 			Example: >
 				:let lnum = 1
 				:while lnum <= line("$")
@@ -3474,12 +3487,14 @@ text...
 				   :let lnum = lnum + 1
 				:endwhile
 <
-			NOTE: The ":append" and ":insert" commands don't work
-			properly inside a ":while" and ":for" loop.
+			In |Vim9| script `:while`  and `:endwhile` cannot be
+			shortened, to improve script readability.
+			NOTE: The `:append` and `:insert` commands don't work
+			properly inside a `:while` and `:for` loop.
 
 :for {var} in {object}					*:for* *E690* *E732*
 :endfo[r]						*:endfo* *:endfor*
-			Repeat the commands between ":for" and ":endfor" for
+			Repeat the commands between `:for` and `:endfor` for
 			each item in {object}.  {object} can be a |List| or
 			a |Blob|. *E1177*
 
@@ -3489,7 +3504,7 @@ text...
 			global/window/tab/buffer variable.
 
 			When an error is detected for a command inside the
-			loop, execution continues after the "endfor".
+			loop, execution continues after the `endfor`.
 			Changing {object} inside the loop affects what items
 			are used.  Make a copy if this is unwanted: >
 				:for item in copy(mylist)
@@ -3514,9 +3529,12 @@ text...
 			iterate over.  Unlike with |List|, modifying the
 			|Blob| does not affect the iteration.
 
+			In |Vim9| script `:endfor` cannot be shortened, to
+			improve script readability.
+
 :for [{var1}, {var2}, ...] in {listlist}
 :endfo[r]							*E1140*
-			Like ":for" above, but each item in {listlist} must be
+			Like `:for` above, but each item in {listlist} must be
 			a list, of which each item is assigned to {var1},
 			{var2}, etc.  Example: >
 				:for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
@@ -3524,39 +3542,44 @@ text...
 				:endfor
 <
 						*:continue* *:con* *E586*
-:con[tinue]		When used inside a ":while" or ":for" loop, jumps back
+:con[tinue]		When used inside a `:while` or `:for` loop, jumps back
 			to the start of the loop.
-			If it is used after a |:try| inside the loop but
-			before the matching |:finally| (if present), the
-			commands following the ":finally" up to the matching
-			|:endtry| are executed first.  This process applies to
-			all nested ":try"s inside the loop.  The outermost
-			":endtry" then jumps back to the start of the loop.
-
+			If it is used after a `:try` inside the loop but
+			before the matching `:finally` (if present), the
+			commands following the `:finally` up to the matching
+			`:endtry` are executed first.  This process applies to
+			all nested `:try`s inside the loop.  The outermost
+			`:endtry` then jumps back to the start of the loop.
+
+			In |Vim9| script `:cont` is the shortest form, to
+			improve script readability.
 						*:break* *:brea* *E587*
-:brea[k]		When used inside a ":while" or ":for" loop, skips to
-			the command after the matching ":endwhile" or
-			":endfor".
-			If it is used after a |:try| inside the loop but
-			before the matching |:finally| (if present), the
-			commands following the ":finally" up to the matching
-			|:endtry| are executed first.  This process applies to
-			all nested ":try"s inside the loop.  The outermost
-			":endtry" then jumps to the command after the loop.
+:brea[k]		When used inside a `:while` or `:for` loop, skips to
+			the command after the matching `:endwhile` or
+			`:endfor`.
+			If it is used after a `:try` inside the loop but
+			before the matching `:finally` (if present), the
+			commands following the `:finally` up to the matching
+			`:endtry` are executed first.  This process applies to
+			all nested `:try`s inside the loop.  The outermost
+			`:endtry` then jumps to the command after the loop.
+
+			In |Vim9| script `:break` cannot be shortened, to
+			improve script readability.
 
 :try						*:try* *:endt* *:endtry*
 						*E600* *E601* *E602* *E1032*
 :endt[ry]		Change the error handling for the commands between
-			":try" and ":endtry" including everything being
-			executed across ":source" commands, function calls,
+			`:try` and `:endtry` including everything being
+			executed across `:source` commands, function calls,
 			or autocommand invocations.
 
 			When an error or interrupt is detected and there is
-			a |:finally| command following, execution continues
-			after the ":finally".  Otherwise, or when the
-			":endtry" is reached thereafter, the next
-			(dynamically) surrounding ":try" is checked for
-			a corresponding ":finally" etc.  Then the script
+			a `:finally` command following, execution continues
+			after the `:finally`.  Otherwise, or when the
+			`:endtry` is reached thereafter, the next
+			(dynamically) surrounding `:try` is checked for
+			a corresponding `:finally` etc.  Then the script
 			processing is terminated.  Whether a function
 			definition has an "abort" argument does not matter.
 			Example: >
@@ -3564,9 +3587,9 @@ text...
 		echomsg "not reached"
 <
 			Moreover, an error or interrupt (dynamically) inside
-			":try" and ":endtry" is converted to an exception.  It
-			can be caught as if it were thrown by a |:throw|
-			command (see |:catch|).  In this case, the script
+			`:try` and `:endtry` is converted to an exception.  It
+			can be caught as if it were thrown by a `:throw`
+			command (see `:catch`).  In this case, the script
 			processing is not terminated.
 
 			The value "Vim:Interrupt" is used for an interrupt
@@ -3581,13 +3604,16 @@ text...
 		try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
 		try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
 <
+			In |Vim9| script `:endtry` cannot be shortened, to
+			improve script readability.
+
 					*:cat* *:catch*
 					*E603* *E604* *E605* *E654* *E1033*
-:cat[ch] /{pattern}/	The following commands until the next |:catch|,
-			|:finally|, or |:endtry| that belongs to the same
-			|:try| as the ":catch" are executed when an exception
+:cat[ch] /{pattern}/	The following commands until the next `:catch`,
+			`:finally`, or `:endtry` that belongs to the same
+			`:try` as the `:catch` are executed when an exception
 			matching {pattern} is being thrown and has not yet
-			been caught by a previous ":catch".  Otherwise, these
+			been caught by a previous `:catch`.  Otherwise, these
 			commands are skipped.
 			When {pattern} is omitted all errors are caught.
 			Examples: >
@@ -3609,29 +3635,35 @@ text...
 			NOTE: It is not reliable to ":catch" the TEXT of
 			an error message because it may vary in different
 			locales.
+			In |Vim9| script `:catch` cannot be shortened, to
+			improve script readability.
 
 					*:fina* *:finally* *E606* *E607*
-:fina[lly]		The following commands until the matching |:endtry|
+:fina[lly]		The following commands until the matching `:endtry`
 			are executed whenever the part between the matching
-			|:try| and the ":finally" is left:  either by falling
-			through to the ":finally" or by a |:continue|,
-			|:break|, |:finish|, or |:return|, or by an error or
-			interrupt or exception (see |:throw|).
+			`:try` and the `:finally` is left:  either by falling
+			through to the `:finally` or by a `:continue`,
+			`:break`, `:finish`, or `:return`, or by an error or
+			interrupt or exception (see `:throw`).
+
+			In |Vim9| script `:finally` cannot be shortened, to
+			improve script readability and avoid confusion with
+			`:final`.
 
 						*:th* *:throw* *E608* *E1129*
 :th[row] {expr1}	The {expr1} is evaluated and thrown as an exception.
-			If the ":throw" is used after a |:try| but before the
-			first corresponding |:catch|, commands are skipped
-			until the first ":catch" matching {expr1} is reached.
-			If there is no such ":catch" or if the ":throw" is
-			used after a ":catch" but before the |:finally|, the
-			commands following the ":finally" (if present) up to
-			the matching |:endtry| are executed.  If the ":throw"
-			is after the ":finally", commands up to the ":endtry"
+			If the ":throw" is used after a `:try` but before the
+			first corresponding `:catch`, commands are skipped
+			until the first `:catch` matching {expr1} is reached.
+			If there is no such `:catch` or if the ":throw" is
+			used after a `:catch` but before the `:finally`, the
+			commands following the `:finally` (if present) up to
+			the matching `:endtry` are executed.  If the `:throw`
+			is after the `:finally`, commands up to the `:endtry`
 			are skipped.  At the ":endtry", this process applies
-			again for the next dynamically surrounding ":try"
+			again for the next dynamically surrounding `:try`
 			(which may be found in a calling function or sourcing
-			script), until a matching ":catch" has been found.
+			script), until a matching `:catch` has been found.
 			If the exception is not caught, the command processing
 			is terminated.
 			Example: >
@@ -3640,13 +3672,16 @@ text...
 			for when an error causes the parsing to skip the whole
 			line and not see the "|" that separates the commands.
 
+			In |Vim9| script `:throw` cannot be shortened, to
+			improve script readability.
+
 							*:ec* *:echo*
 :ec[ho] {expr1} ..	Echoes each {expr1}, with a space in between.  The
 			first {expr1} starts on a new line.
 			Also see |:comment|.
 			Use "\n" to start a new line.  Use "\r" to move the
 			cursor to the first column.
-			Uses the highlighting set by the |:echohl| command.
+			Uses the highlighting set by the `:echohl` command.
 			Cannot be followed by a comment.
 			Example: >
 		:echo "the value of 'shell' is" &shell
@@ -3655,21 +3690,21 @@ text...
 			And since Vim mostly postpones redrawing until it's
 			finished with a sequence of commands this happens
 			quite often.  To avoid that a command from before the
-			":echo" causes a redraw afterwards (redraws are often
+			`:echo` causes a redraw afterwards (redraws are often
 			postponed until you type something), force a redraw
-			with the |:redraw| command.  Example: >
+			with the `:redraw` command.  Example: >
 		:new | redraw | echo "there is a new window"
 <
 							*:echon*
 :echon {expr1} ..	Echoes each {expr1}, without anything added.  Also see
 			|:comment|.
-			Uses the highlighting set by the |:echohl| command.
+			Uses the highlighting set by the `:echohl` command.
 			Cannot be followed by a comment.
 			Example: >
 				:echon "the value of 'shell' is " &shell
 <
-			Note the difference between using ":echo", which is a
-			Vim command, and ":!echo", which is an external shell
+			Note the difference between using `:echo`, which is a
+			Vim command, and `:!echo`, which is an external shell
 			command: >
 		:!echo %		--> filename
 <			The arguments of ":!" are expanded, see |:_%|. >
@@ -3685,8 +3720,8 @@ text...
 
 							*:echoh* *:echohl*
 :echoh[l] {name}	Use the highlight group {name} for the following
-			|:echo|, |:echon| and |:echomsg| commands.  Also used
-			for the |input()| prompt.  Example: >
+			`:echo`, `:echon` and `:echomsg` commands.  Also used
+			for the `input()` prompt.  Example: >
 		:echohl WarningMsg | echo "Don't panic!" | echohl None
 <			Don't forget to set the group back to "None",
 			otherwise all following echo's will be highlighted.
@@ -3695,14 +3730,14 @@ text...
 :echom[sg] {expr1} ..	Echo the expression(s) as a true message, saving the
 			message in the |message-history|.
 			Spaces are placed between the arguments as with the
-			|:echo| command.  But unprintable characters are
+			`:echo` command.  But unprintable characters are
 			displayed, not interpreted.
-			The parsing works slightly different from |:echo|,
-			more like |:execute|.  All the expressions are first
+			The parsing works slightly different from `:echo`,
+			more like `:execute`.  All the expressions are first
 			evaluated and concatenated before echoing anything.
 			If expressions does not evaluate to a Number or
 			String, string() is used to turn it into a string.
-			Uses the highlighting set by the |:echohl| command.
+			Uses the highlighting set by the `:echohl` command.
 			Example: >
 		:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
 <			See |:echo-redraw| to avoid the message disappearing
@@ -3712,12 +3747,12 @@ text...
 			message in the |message-history|.  When used in a
 			script or function the line number will be added.
 			Spaces are placed between the arguments as with the
-			|:echomsg| command.  When used inside a try conditional,
+			`:echomsg` command.  When used inside a try conditional,
 			the message is raised as an error exception instead
 			(see |try-echoerr|).
 			Example: >
 		:echoerr "This script just failed!"
-<			If you just want a highlighted message use |:echohl|.
+<			If you just want a highlighted message use `:echohl`.
 			And to get a beep: >
 		:exe "normal \<Esc>"
 
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 8.2.  Last change: 2021 Jun 27
+*gui.txt*       For Vim version 8.2.  Last change: 2022 Mar 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,7 +147,8 @@ task bar with the 'guiheadroom' option.
 						    *:win* *:winsize* *E465*
 :win[size] {width} {height}
 		Set the window height to {width} by {height} characters.
-		Obsolete, use ":set lines=11 columns=22".
+		It is recommended to use `:set lines=11 columns=22` instead,
+		since it's easy to see what the numbers mean.
 		If you get less lines than expected, check the 'guiheadroom'
 		option.
 
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2022 Feb 09
+*index.txt*     For Vim version 8.2.  Last change: 2022 Mar 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1170,7 +1170,7 @@ tag		command		action ~
 				be remapped
 |:args|		:ar[gs]		print the argument list
 |:argadd|	:arga[dd]	add items to the argument list
-:argdedupe	:argdedupe	remove duplicates from the argument list
+|:argdedupe|	:argded[upe]	remove duplicates from the argument list
 |:argdelete|	:argd[elete]	delete items from the argument list
 |:argedit|	:arge[dit]	add item to the argument list and edit it
 |:argdo|	:argdo		do a command on all items in the argument list
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.2.  Last change: 2021 Dec 29
+*insert.txt*    For Vim version 8.2.  Last change: 2022 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -283,8 +283,8 @@ start	    allow backspacing over the sta
 When 'backspace' is empty, Vi compatible backspacing is used.  You cannot
 backspace over autoindent, before column 1 or before where insert started.
 
-For backwards compatibility the values "0", "1" and "2" are also allowed, see
-|'backspace'|.
+For backwards compatibility the values "0", "1", "2" and "3" are also allowed,
+see |'backspace'|.
 
 If the 'backspace' option does contain "eol" and the cursor is in column 1
 when one of the three keys is used, the current line is joined with the
@@ -818,6 +818,7 @@ CTRL-X CTRL-K		Search the files given wi
 			the 'dictionary' option is empty.
 			For suggestions where to find a list of words, see the
 			'dictionary' option.
+			'ignorecase', 'smartcase' and 'infercase' apply.
 
 	CTRL-K	or
 	CTRL-N		Search forward for next matching keyword.  This
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 8.2.  Last change: 2021 Sep 29
+*intro.txt*     For Vim version 8.2.  Last change: 2022 Mar 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -701,7 +701,8 @@ Q			Switch to "Ex" mode.  This is a bit 
 			Use the ":vi" command |:visual| to exit "Ex" mode.
 			Note: In older versions of Vim "Q" formatted text,
 			that is now done with |gq|.  But if you use the
-			|vimrc_example.vim| script "Q" works like "gq".
+			|vimrc_example.vim| script or |defaults.vim|, "Q"
+			works like "gq".  Except for Select mode.
 
 					*gQ*
 gQ			Switch to "Ex" mode like with "Q", but really behave
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2022 Jan 23
+*map.txt*       For Vim version 8.2.  Last change: 2022 Mar 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -389,7 +389,7 @@ contain special characters like function
 1.3 MAPPING AND MODES					*:map-modes*
 			*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
 
-There are six sets of mappings
+There are seven sets of mappings
 - For Normal mode: When typing commands.
 - For Visual mode: When typing commands while the Visual area is highlighted.
 - For Select mode: like Visual mode but typing text replaces the selection.
@@ -397,6 +397,7 @@ There are six sets of mappings
   etc.).  See below: |omap-info|.
 - For Insert mode.  These are also used in Replace mode.
 - For Command-line mode: When entering a ":" or "/" command.
+- For Terminal mode: When typing in a |:terminal| buffer.
 
 Special case: While typing a count for a command in Normal mode, mapping zero
 is disabled.  This makes it possible to map zero without making it impossible
@@ -1446,7 +1447,7 @@ See |:verbose-cmd| for more information.
 
 
 Command attributes ~
-
+                                                       *command-attributes*
 User-defined commands are treated by Vim just like any other Ex commands.  They
 can have arguments, or have a range specified.  Arguments are subject to
 completion as filenames, buffers, etc.  Exactly how this works depends upon the
@@ -1563,9 +1564,11 @@ The function arguments are:
 The function may use these for determining context.  For the "custom"
 argument, it is not necessary to filter candidates against the (implicit
 pattern in) ArgLead.  Vim will filter the candidates with its regexp engine
-after function return, and this is probably more efficient in most cases. For
-the "customlist" argument, Vim will not filter the returned completion
-candidates and the user supplied function should filter the candidates.
+after function return, and this is probably more efficient in most cases. If
+'wildoptions' contains "fuzzy", then the candidates will be filtered using
+|fuzzy-matching|.  For the "customlist" argument, Vim will not
+filter the returned completion candidates and the user supplied function
+should filter the candidates.
 
 The following example lists user names to a Finger command >
     :com -complete=custom,ListUsers -nargs=1 Finger !finger <args>
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -9087,7 +9087,7 @@ A jump table for the options with a shor
 			feature}
 	A list of words that change how |cmdline-completion| is done.
 	The following values are supported:
-	  fuzzy		Use fuzzy matching to find completion matches. When
+	  fuzzy		Use |fuzzy-matching| to find completion matches. When
 			this value is specified, wildcard expansion will not
 			be used for completion.  The matches will be sorted by
 			the "best match" rather than alphabetically sorted.
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 8.2.  Last change: 2022 Feb 04
+*pattern.txt*   For Vim version 8.2.  Last change: 2022 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,7 +19,7 @@ 7. Ignoring case in a pattern	|/ignoreca
 8. Composing characters		|patterns-composing|
 9. Compare with Perl patterns	|perl-patterns|
 10. Highlighting matches	|match-highlight|
-11. Fuzzy matching		|fuzzy-match|
+11. Fuzzy matching		|fuzzy-matching|
 
 ==============================================================================
 1. Search commands				*search-commands*
@@ -164,9 +164,12 @@ index, on which the cursor is. This can 
 Note: the count does not take offset into account.
 
 When no match is found you get the error: *E486* Pattern not found
-Note that for the |:global| command this behaves like a normal message, for Vi
-compatibility.  For the |:s| command the "e" flag can be used to avoid the
-error message |:s_flags|.
+Note that for the `:global` command, when used in legacy script, you get a
+normal message "Pattern not found", for Vi compatibility.
+In |Vim9| script you get E486 for "pattern not found" or *E538* when the pattern
+matches in every line with `:vglobal`.
+For the |:s| command the "e" flag can be used to avoid the error message
+|:s_flags|.
 
 					*search-offset* *{offset}*
 These commands search for the specified pattern.  With "/" and "?" an
@@ -1457,7 +1460,7 @@ 10. Highlighting matches				*match-highl
 		":2match" for another plugin.
 
 ==============================================================================
-11. Fuzzy matching					*fuzzy-match*
+11. Fuzzy matching					*fuzzy-matching*
 
 Fuzzy matching refers to matching strings using a non-exact search string.
 Fuzzy matching will match a string, if all the characters in the search string
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -655,22 +655,25 @@ instead.  If the buffer in the used wind
 another file, jumping to the error will fail.  You will first have to make
 sure the window contains a buffer which can be abandoned.
 
-The following steps are used to find a window to open the file selected from
-the quickfix window:
-1. If 'switchbuf' contains "usetab", then find a window in any tabpage
-   (starting with the first tabpage) that has the selected file and jump to
-   it.
-2. Otherwise find a window displaying the selected file in the current tab
-   page (starting with the window before the quickfix window) and use it.
-3. Otherwise find a window displaying a normal buffer ('buftype' is empty)
-   starting with the window before the quickfix window. If a window is found,
-   open the file in that window.
-4. If a usable window is not found and 'switchbuf' contains "uselast", then
-   open the file in the last used window.
-5. Otherwise open the file in the window before the quickfix window.  If there
-   is no previous window, then open the file in the next window.
-6. If a usable window is not found in the above steps, then create a new
-   horizontally split window above the quickfix window and open the file.
+When you select a file from the quickfix window, the following steps are used
+to find a window to edit the file:
+
+1. If a window displaying the selected file is present in the current tabpage
+   (starting with the window before the quickfix window), then that window is
+   used.
+2. If the above step fails and if 'switchbuf' contains "usetab" and a window
+   displaying the selected file is present in any one of the tabpages
+   (starting with the first tabpage) then that window is used.
+3. If the above step fails then a window in the current tabpage displaying a
+   buffer with 'buftype' not set (starting with the window before the quickfix
+   window) is used.
+4. If the above step fails and if 'switchbuf' contains "uselast", then the
+   previously accessed window is used.
+5. If the above step fails then the window before the quickfix window is used.
+   If there is no previous window, then the window after the quickfix window
+   is used.
+6. If the above step fails, then a new horizontally split window above the
+   quickfix window is used.
 
 					*CTRL-W_<Enter>* *CTRL-W_<CR>*
 You can use CTRL-W <Enter> to open a new window and jump to the error there.
@@ -710,13 +713,15 @@ this window, the displayed location list
 When you select a file from the location list window, the following steps are
 used to find a window to edit the file:
 
-1. If a window with the location list displayed in the location list window is
-   present, then the file is opened in that window.
-2. If the above step fails and if the file is already opened in another
-   window, then that window is used.
-3. If the above step fails then an existing window showing a buffer with
-   'buftype' not set is used.
-4. If the above step fails, then the file is edited in a new window.
+1. If a non-quickfix window associated with the location list is present in
+   the current tabpage, then that window is used.
+2. If the above step fails and if the file is already opened in another window
+   in the current tabpage, then that window is used.
+3. If the above step fails and 'switchbuf' contains "usetab" and if the file
+   is opened in a window in any one of the tabpages, then that window is used.
+4. If the above step fails then a window in the current tabpage showing a
+   buffer with 'buftype' not set is used.
+5. If the above step fails, then the file is edited in a new window.
 
 In all of the above cases, if the location list for the selected window is not
 yet set, then it is set to the location list displayed in the location list
@@ -1055,7 +1060,7 @@ 5.1 using Vim's internal grep
 			     matching is used to find matching lines. In this
 			     case, {pattern} is treated as a literal string
 			     instead of a regular expression.  See
-			     |fuzzy-match| for more information about fuzzy
+			     |fuzzy-matching| for more information about fuzzy
 			     matching strings.
 
 			|QuickFixCmdPre| and |QuickFixCmdPost| are triggered.
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2022 Feb 06
+*syntax.txt*	For Vim version 8.2.  Last change: 2022 Mar 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4452,7 +4452,7 @@ Leading context			*:syn-lc* *:syn-leadin
 
 Note: This is an obsolete feature, only included for backwards compatibility
 with previous Vim versions.  It's now recommended to use the |/\@<=| construct
-in the pattern.
+in the pattern.  You can also often use |/\zs|.
 
 The "lc" offset specifies leading context -- a part of the pattern that must
 be present, but is not considered part of the match.  An offset of "lc=n" will
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2113,6 +2113,7 @@ 90.5	usr_90.txt	/*90.5*
 :abclear	map.txt	/*:abclear*
 :abo	windows.txt	/*:abo*
 :aboveleft	windows.txt	/*:aboveleft*
+:abstract	vim9.txt	/*:abstract*
 :addd	quickfix.txt	/*:addd*
 :al	windows.txt	/*:al*
 :all	windows.txt	/*:all*
@@ -2272,6 +2273,7 @@ 90.5	usr_90.txt	/*90.5*
 :chistory	quickfix.txt	/*:chistory*
 :cl	quickfix.txt	/*:cl*
 :cla	quickfix.txt	/*:cla*
+:class	vim9.txt	/*:class*
 :clast	quickfix.txt	/*:clast*
 :cle	motion.txt	/*:cle*
 :clearjumps	motion.txt	/*:clearjumps*
@@ -2444,12 +2446,15 @@ 90.5	usr_90.txt	/*90.5*
 :emenu	gui.txt	/*:emenu*
 :en	eval.txt	/*:en*
 :end	eval.txt	/*:end*
+:endclass	vim9.txt	/*:endclass*
 :enddef	vim9.txt	/*:enddef*
+:endenum	vim9.txt	/*:endenum*
 :endf	eval.txt	/*:endf*
 :endfo	eval.txt	/*:endfo*
 :endfor	eval.txt	/*:endfor*
 :endfunction	eval.txt	/*:endfunction*
 :endif	eval.txt	/*:endif*
+:endinterface	vim9.txt	/*:endinterface*
 :endt	eval.txt	/*:endt*
 :endtry	eval.txt	/*:endtry*
 :endw	eval.txt	/*:endw*
@@ -2458,6 +2463,7 @@ 90.5	usr_90.txt	/*90.5*
 :ene!	editing.txt	/*:ene!*
 :enew	editing.txt	/*:enew*
 :enew!	editing.txt	/*:enew!*
+:enum	vim9.txt	/*:enum*
 :eval	eval.txt	/*:eval*
 :ex	editing.txt	/*:ex*
 :exe	eval.txt	/*:exe*
@@ -2584,6 +2590,7 @@ 90.5	usr_90.txt	/*90.5*
 :inoreme	gui.txt	/*:inoreme*
 :inoremenu	gui.txt	/*:inoremenu*
 :insert	insert.txt	/*:insert*
+:interface	vim9.txt	/*:interface*
 :intro	starting.txt	/*:intro*
 :is	tagsrch.txt	/*:is*
 :isearch	tagsrch.txt	/*:isearch*
@@ -3216,6 +3223,7 @@ 90.5	usr_90.txt	/*90.5*
 :startgreplace	insert.txt	/*:startgreplace*
 :startinsert	insert.txt	/*:startinsert*
 :startreplace	insert.txt	/*:startreplace*
+:static	vim9.txt	/*:static*
 :stj	tagsrch.txt	/*:stj*
 :stjump	tagsrch.txt	/*:stjump*
 :stop	starting.txt	/*:stop*
@@ -3393,6 +3401,7 @@ 90.5	usr_90.txt	/*90.5*
 :tunma	map.txt	/*:tunma*
 :tunmap	map.txt	/*:tunmap*
 :tunmenu	gui.txt	/*:tunmenu*
+:type	vim9.txt	/*:type*
 :u	undo.txt	/*:u*
 :un	undo.txt	/*:un*
 :una	map.txt	/*:una*
@@ -4022,6 +4031,7 @@ E1061	vim9.txt	/*E1061*
 E1062	eval.txt	/*E1062*
 E1063	eval.txt	/*E1063*
 E1064	autocmd.txt	/*E1064*
+E1065	vim9.txt	/*E1065*
 E1066	vim9.txt	/*E1066*
 E1067	eval.txt	/*E1067*
 E1068	vim9.txt	/*E1068*
@@ -4034,6 +4044,8 @@ E1074	vim9.txt	/*E1074*
 E1075	vim9.txt	/*E1075*
 E1076	eval.txt	/*E1076*
 E1077	vim9.txt	/*E1077*
+E1078	autocmd.txt	/*E1078*
+E1079	vim9.txt	/*E1079*
 E108	eval.txt	/*E108*
 E1080	vim9.txt	/*E1080*
 E1081	eval.txt	/*E1081*
@@ -4241,6 +4253,7 @@ E1264	vim9.txt	/*E1264*
 E1265	eval.txt	/*E1265*
 E1266	if_pyth.txt	/*E1266*
 E127	eval.txt	/*E127*
+E1270	change.txt	/*E1270*
 E128	eval.txt	/*E128*
 E129	eval.txt	/*E129*
 E13	message.txt	/*E13*
@@ -4682,7 +4695,7 @@ E534	options.txt	/*E534*
 E535	options.txt	/*E535*
 E536	options.txt	/*E536*
 E537	options.txt	/*E537*
-E538	builtin.txt	/*E538*
+E538	pattern.txt	/*E538*
 E539	options.txt	/*E539*
 E54	pattern.txt	/*E54*
 E540	options.txt	/*E540*
@@ -5005,6 +5018,7 @@ E835	options.txt	/*E835*
 E836	if_pyth.txt	/*E836*
 E837	if_pyth.txt	/*E837*
 E838	netbeans.txt	/*E838*
+E839	vim9.txt	/*E839*
 E84	windows.txt	/*E84*
 E840	insert.txt	/*E840*
 E841	map.txt	/*E841*
@@ -6164,6 +6178,7 @@ collate-variable	eval.txt	/*collate-vari
 color-xterm	syntax.txt	/*color-xterm*
 coloring	syntax.txt	/*coloring*
 colortest.vim	syntax.txt	/*colortest.vim*
+command-attributes	map.txt	/*command-attributes*
 command-block	vim9.txt	/*command-block*
 command-line-functions	usr_41.txt	/*command-line-functions*
 command-line-window	cmdline.txt	/*command-line-window*
@@ -7012,7 +7027,7 @@ function-range-example	eval.txt	/*functi
 function-search-undo	eval.txt	/*function-search-undo*
 function_key	intro.txt	/*function_key*
 functions	eval.txt	/*functions*
-fuzzy-match	pattern.txt	/*fuzzy-match*
+fuzzy-matching	pattern.txt	/*fuzzy-matching*
 fvwm.vim	syntax.txt	/*fvwm.vim*
 fvwm2rc	syntax.txt	/*fvwm2rc*
 fvwmrc	syntax.txt	/*fvwmrc*
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.2.  Last change: 2021 Dec 21
+*term.txt*      For Vim version 8.2.  Last change: 2022 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -725,12 +725,12 @@ size is wrong you can use the 'lines' an
 correct values.
 
 One command can be used to set the screen size:
-
 						*:mod* *:mode* *E359*
 :mod[e] [mode]
 
 Without argument this only detects the screen size and redraws the screen.
-[mode] was used on MS-DOS, but it doesn't work anymore.
+[mode] was used on MS-DOS, but it doesn't work anymore.  In |Vim9| this
+command is not supported.
 
 ==============================================================================
 4. Slow and fast terminals			*slow-fast-terminal*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 Feb 16
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Mar 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,10 +38,29 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Allow for assigning v:null to job/channel/funcref etc.
+- Check that the declared type is not lost.
+- Check: var d: dict<func> = {a: function('tr'), b: null}
+
+Fix that with s being an empty string, this returns TRUE:
+    echo s is null_string
+
+Make sure null types work to:
+- assign to a variable
+- use as an argument
+- use as default value of optional argument
+- use as return value
+- use in a list/dict constant, type is correct
+- revert comparing with null?
+
+TODO item in eval.c
+
+Really drop the Athena GUI?  And NeXtaw?
+
 Once Vim9 is stable:
 - Use Vim9 for runtime files.
 - Check code coverage, add more tests if needed.
-	vim9execute.c
+	vim9execute.c  line 1900
 	vim9expr.c
 	vim9instr.c
 	vim9script.c
@@ -209,6 +228,13 @@ Use CTRL-R to specify the register to us
 
 Some prompts are not translated: #9495
 
+Improvement in terminal configuration mess: Request the terminfo entry from
+the terminal itself.  The $TERM value then is only relevant for whether this
+feature is supported or not.  Replaces the xterm mechanism to request each
+entry separately. #6609
+Multiplexers (screen, tmux) can request it to the underlaying terminal, and
+pass it on with modifications.
+
 Test_communicate_ipv6(): is flaky on many systems
 Fails in line 64 of Ch_communicate, no exception is thrown.
 
@@ -286,6 +312,9 @@ Probably because it's using MAXCOL.  #82
 Make "g>" and "g<" in Visual mode move the text right or left.
 Also for a block selection.  #8558
 
+When using dictionary insert completion with 'ignorecase', the leading capital
+in a word should be preserved.
+
 Add optional argument to virtcol() that specifies "start", "cursor" or "end"
 to tell which value from getvvcol() should be used. (#7964)
 Value returned by virtcol() changes depending on how lines wrap.  This is
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 8.2.  Last change: 2022 Feb 05
+*uganda.txt*    For Vim version 8.2.  Last change: 2022 Mar 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -133,11 +133,12 @@ Kibaale Children's Centre		*kcc* *Kibaal
 Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
 south of Uganda, near Tanzania, in East Africa.  The area is known as Rakai
 District.  The population is mostly farmers.  Although people are poor, there
-is enough food.  But this district is suffering from AIDS more than any other
-part of the world.  Some say that it started there.  Estimations are that 10
-to 30% of the Ugandans are infected with HIV.  Because parents die, there are
-many orphans.  In this district about 60,000 children have lost one or both
-parents, out of a population of 350,000.  And this is still continuing.
+usually is enough food.  But this district is suffering from AIDS more than
+any other part of the world.  Some say that it started there.  Estimations are
+that in the past 10 to 30% of the Ugandans are infected with HIV.  Because
+parents die, there are many orphans.  In this district about 60,000 children
+have lost one or both parents, out of a population of 350,000.  Although AIDS
+is now mostly under control, the problems are still continuing.
 
 The children need a lot of help.  The KCC is working hard to provide the needy
 with food, medical care and education.  Food and medical care to keep them
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.2.  Last change: 2022 Feb 03
+*various.txt*   For Vim version 8.2.  Last change: 2022 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -114,6 +114,7 @@ 8g8			Find an illegal UTF-8 byte sequenc
 :[range]P[rint] [count] [flags]
 			Just as ":print".  Was apparently added to Vi for
 			people that keep the shift key pressed too long...
+			This command is not supported in |Vim9| script.
 			Note: A user command can overrule this command.
 			See |ex-flags| for [flags].
 
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -14965,7 +14965,7 @@ Solution:   Adjust autoconf. (lilydjwg)
 Files:	    src/configure.in, src/auto/configure
 
 Patch 7.3.806
-Problem:    Compiler warnings in Perl code when building with Visual studio
+Problem:    Compiler warnings in Perl code when building with Visual Studio
 	    2012. (skeept)
 Solution:   Add type casts. (Christian Brabandt, 2013 Jan 30)
 Files:	    src/if_perl.xs
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -7916,7 +7916,7 @@ Solution:   Put remainder of message bac
 Files:      src/channel.c
 
 Patch 7.4.1240
-Problem:    Visual studio tools are noisy.
+Problem:    Visual Studio tools are noisy.
 Solution:   Suppress startup info. (Mike Williams)
 Files:      src/GvimExt/Makefile, src/Make_mvc.mak, src/tee/Make_mvc.mak
 
@@ -20476,7 +20476,7 @@ Files:      src/normal.c, src/misc2.c, s
             src/testdir/test_virtualedit.vim, src/testdir/test_alot.vim
 
 Patch 8.0.0963
-Problem:    Terminal test fails on MacOS. (chdiza)
+Problem:    Terminal test fails on macOS. (chdiza)
 Solution:   Wait for the shell to echo the characters. (closes #1991)
 Files:      src/testdir/test_terminal.vim
 
@@ -31038,7 +31038,7 @@ Files:	    src/ui.c, src/testdir/test_ti
             src/gui_w32.c, src/gui_photon.c, src/gui_x11.c
 
 Patch 8.1.0841
-Problem:    Travis config to get Lua on MacOS is too complicated.
+Problem:    Travis config to get Lua on macOS is too complicated.
 Solution:   Use an addons entry. (Ozaki Kiichi, closes #3876)
 Files:	    .travis.yml
 
@@ -39471,7 +39471,7 @@ Solution:   Add to the list of flaky tes
 Files:	    src/testdir/runtest.vim
 
 Patch 8.1.2152
-Problem:    Problems navigating tags file on MacOS Catalina.
+Problem:    Problems navigating tags file on macOS Catalina.
 Solution:   Use fseek instead of lseek. (John Lamb, fixes #5061)
 Files:	    src/tag.c
 
@@ -40648,7 +40648,7 @@ Solution:   Allow key codes when fetchin
 Files:	    src/edit.c, src/ex_getln.c, src/testdir/test_termcodes.vim
 
 Patch 8.1.2347 (after 8.1.2344)
-Problem:    MacOS: build fails.
+Problem:    macOS: build fails.
 Solution:   Don't define _XOPEN_SOURCE for Mac.
 Files:	    src/vim.h
 
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt*  For Vim version 8.2.  Last change: 2022 Feb 26
+*version9.txt*  For Vim version 8.2.  Last change: 2022 Mar 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -68,7 +68,133 @@ All the information about Vim9 script ca
 Various new items					*new-items-9*
 -----------------
 
-TODO
+TODO: Visual/Insert/Cmdline mode commands?
+
+
+Options: ~
+
+'autoshelldir'		change directory to the shell's current directory
+'cdhome'		change directory to the home directory by ":cd"
+'guiligatures'		GTK GUI: ASCII characters that can form shapes
+'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|
+|: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
+|: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
+|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
+|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
+|list2blob()|		get a blob from a list of numbers
+|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
+|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 is 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
+|VimSuspend|		when suspending Vim
+|VimResume|		when Vim is resumed after being suspended
 
 
 New runtime files: ~
@@ -86,6 +212,9 @@ TODO
 ==============================================================================
 IMPROVEMENTS						*improvements-9*
 
+Many memory leaks, invalid memory accesses and crashes have been fixed.
+See the list of patches below.
+
 TODO
 
 ==============================================================================
@@ -227,7 +356,7 @@ 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.
+Problem:    Timer test fails too often on Travis with macOS.
 Solution:   Be less strict with the time.
 Files:      src/testdir/test_timers.vim
 
@@ -8651,7 +8780,7 @@ Files:      runtime/doc/vim9.txt, src/vi
             src/testdir/test_vim9_disassemble.vim
 
 Patch 8.2.1409
-Problem:    Nmpmrc and php.ini filetypes not recognized.
+Problem:    Npmrc and php.ini filetypes not recognized.
 Solution:   Add filetype detection. (Doug Kearns)
 Files:      runtime/filetype.vim, src/testdir/test_filetype.vim
 
@@ -9053,7 +9182,7 @@ Solution:   Recognize .gawk files. (Doug
 Files:      runtime/filetype.vim, src/testdir/test_filetype.vim
 
 Patch 8.2.1459
-Problem:    Vim9: declaring ascript variable at the script level does not
+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
@@ -9522,7 +9651,7 @@ Files:      Filelist, runtime/doc/eval.t
             src/testdir/emoji_list.vim, src/testdir/test_functions.vim
 
 Patch 8.2.1537
-Problem:    Memory acccess error when using setcellwidths().
+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
 
@@ -9841,7 +9970,7 @@ Solution:   Use tv_get_bool_chk(). (clos
 Files:      src/evalfunc.c, src/testdir/test_vim9_func.vim
 
 Patch 8.2.1593
-Problem:    Tests do not check the error number properly.0
+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,
@@ -10198,7 +10327,7 @@ Files:      runtime/optwin.vim
 
 Patch 8.2.1653
 Problem:    Expand('<stack>') does not include the final line number.
-Solution:   Add the line nuber. (closes #6927)
+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
@@ -10299,7 +10428,7 @@ 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 #6817)
+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
@@ -10341,7 +10470,7 @@ Files:      src/syntax.c, src/testdir/te
 
 Patch 8.2.1679
 Problem:    Vim9: ":*" is not recognized as a range.
-Solution:   Move recognizing "*" into skip_range(). (closes #6838)
+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
@@ -10352,7 +10481,7 @@ Solution:   Set SOURCING_LNUM. (closes #
 Files:      src/vim9execute.c, src/testdir/test_vim9_expr.vim
 
 Patch 8.2.1681
-Problem:    Vim9: unnessary :call commands in tests.
+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
 
@@ -10503,12 +10632,12 @@ Solution:   When a function fails still 
 Files:      src/vim9execute.c, src/testdir/test_vim9_func.vim
 
 Patch 8.2.1707
-Problem:    Small inconsitency in highlight test.
+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 unpritable characters.
+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
 
@@ -10581,7 +10710,7 @@ Files:      src/vim9compile.c, src/testd
 
 Patch 8.2.1721
 Problem:    MS-Windows installer doesn't work.
-Solution:   Write "Russian" in ASCII. (closes #6995, see #).
+Solution:   Write "Russian" in ASCII. (closes #6995, see #6985).
 Files:      nsis/lang/russian.nsi
 
 Patch 8.2.1722
@@ -10638,7 +10767,7 @@ Files:      src/globals.h, src/getchar.c
 
 Patch 8.2.1730
 Problem:    Vim9: cannot use member of unknown type.
-Solution:   When type is unknown us "any". (closes #6997)
+Solution:   When type is unknown use "any". (closes #6997)
 Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim
 
 Patch 8.2.1731
@@ -10959,7 +11088,7 @@ Files:      src/map.c, src/testdir/test_
 
 Patch 8.2.1783 (after 8.2.1781)
 Problem:    Try-catch test fails.
-Solution:   Don't call win_enter(), only call enterering_window().
+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
 
@@ -11130,7 +11259,7 @@ Solution:   Do not skip a local variable
 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)
+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,
@@ -11163,7 +11292,7 @@ Files:      src/os_unix.c
 
 Patch 8.2.1819
 Problem:    Vim9: Memory leak when using a closure.
-Solution:   Compute the mininal refcount in the funcstack.  Reenable disabled
+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,
@@ -11214,7 +11343,7 @@ Files:      runtime/filetype.vim, src/te
 
 Patch 8.2.1828
 Problem:    Build failure without the +eval feature.
-Solution:   Add dummys for ex_block and ex_endblock.
+Solution:   Add dummies for ex_block and ex_endblock.
 Files:      src/ex_docmd.c
 
 Patch 8.2.1829
@@ -11349,14 +11478,14 @@ Solution:   Skip over trailing spaces. (
 Files:      src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim
 
 Patch 8.2.1852
-Problem:    map() returing zero for NULL list is unexpected.
+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 modifer when "_" follows. (closes #7019)
+Solution:   Do not recognize modifier when "_" follows. (closes #7019)
 Files:      src/ex_docmd.c, src/testdir/test_vim9_assign.vim
 
 Patch 8.2.1854
@@ -11534,7 +11663,7 @@ Solution:   Initialize with NULL.
 Files:      src/vim9compile.c, src/evalfunc.c
 
 Patch 8.2.1885
-Problem:    Filetype tests unnessarily creates swap files.
+Problem:    Filetype tests unnecessarily creates swap files.
 Solution:   Disable 'swapfile'. (Ken Takata, closes #7183)
 Files:      src/testdir/test_filetype.vim
 
@@ -11555,7 +11684,7 @@ Solution:   Return an empty list. (close
 Files:      src/evalbuffer.c, src/testdir/test_vim9_builtin.vim
 
 Patch 8.2.1889
-Problem:    Vim9: errornous error for missing white space after {}.
+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
 
@@ -12004,7 +12133,7 @@ Files:      runtime/filetype.vim, src/te
 Patch 8.2.1965
 Problem:    Vim9: tests fail without the channel feature.
 Solution:   Check if the channel feature is present. (Dominique Pellé,
-            closes 7270)
+            closes #7270)
 Files:      src/testdir/test_vim9_expr.vim
 
 Patch 8.2.1966
@@ -12331,7 +12460,7 @@ Files:      src/globals.h, src/ex_docmd.
             src/testdir/test_vim9_func.vim
 
 Patch 8.2.2022
-Problem:    Vim9: star command recognized errornously.
+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
 
@@ -12504,7 +12633,7 @@ 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 aboring. (closes #7372)
+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
@@ -12514,7 +12643,7 @@ Files:      src/ex_docmd.c, src/proto/ex
             src/testdir/test_vim9_cmd.vim
 
 Patch 8.2.2053
-Problem:    Vim9: lamba doesn't accept argument types.
+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
 
@@ -12675,7 +12804,7 @@ Files:      src/vim9compile.c, src/testd
             src/testdir/test_vim9_expr.vim
 
 Patch 8.2.2082
-Problem:    Vim9: can still use the depricated #{} dict syntax.
+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,
@@ -12766,8 +12895,8 @@ Files:      src/vim9compile.c, src/vim9e
             src/testdir/test_vim9_func.vim
 
 Patch 8.2.2097
-Problem:    Vim9: using :silent! when calling a function prevents abortng that
-            function.
+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
@@ -12845,14 +12974,14 @@ 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 test in another way. (closes #7437,
+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
+            closes #7436)
 Files:      src/testdir/test_filetype.vim, src/testdir/test_messages.vim,
             src/testdir/test_mksession.vim
 
@@ -12950,7 +13079,7 @@ 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
+Solution:   Set msg_hist_off. (closes #7452)
 Files:      src/insexpand.c, src/testdir/test_ins_complete.vim
 
 Patch 8.2.2131
@@ -13096,7 +13225,7 @@ Solution:   Remove the "git checkout HEA
 Files:      .github/workflows/codeql-analysis.yml
 
 Patch 8.2.2156
-Problem:    Github actions run on pusing a tag.
+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
@@ -13138,7 +13267,7 @@ Files:      src/bufwrite.c, src/cindent.
 
 Patch 8.2.2161
 Problem:    Arguments -T and -x not tested yet.
-Solution:   Add a test. (Dominique Pellé, closes #7490
+Solution:   Add a test. (Dominique Pellé, closes #7490)
 Files:      src/testdir/test_startup.vim
 
 Patch 8.2.2162
@@ -13151,7 +13280,7 @@ Files:      src/vim9compile.c, src/vim9.
 
 Patch 8.2.2163
 Problem:    Crash when discarded exception is the current exception.
-Solution:   Compare the execption with current_exception. (closes #7499)
+Solution:   Compare the exception with current_exception. (closes #7499)
 Files:      src/ex_eval.c
 
 Patch 8.2.2164
@@ -13279,7 +13408,7 @@ Files:      src/typval.c, src/evalfunc.c
 
 Patch 8.2.2185
 Problem:    BufUnload is not triggered for the quickfix dummy buffer.
-Solution:   Do trigger BufUnload. (Pontus Leitzler,closes #7518, closes #7517)
+Solution:   Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517)
             Fix white space around "=".
 Files:      src/quickfix.c, src/testdir/test_autocmd.vim
 
@@ -13365,7 +13494,7 @@ Files:      src/bufwrite.c, src/testdir/
 
 Patch 8.2.2200
 Problem:    Vim9: lambda without white space around -> is confusing.
-Solution:   Require white space in a :def funtion. (issue #7503)
+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
 
@@ -13602,7 +13731,7 @@ Files:      src/testdir/test_clientserve
 
 Patch 8.2.2241
 Problem:    Build with Ruby and clang may fail.
-Solution:   Adjust congigure and sed script. (Ozaki Kiichi, closes #7566)
+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
@@ -13631,7 +13760,7 @@ 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 flakyness.
+            Tune the delays to avoid test flakiness.
 Files:      runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim
 
 Patch 8.2.2247
@@ -14033,7 +14162,7 @@ Files:      src/vim9.h, src/vim9compile.
             src/testdir/test_vim9_disassemble.vim
 
 Patch 8.2.2315
-Problem:    Vim9: "enddef" as dict key misintepreted as function end.
+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
 
@@ -14155,7 +14284,7 @@ Files:      runtime/autoload/dist/ft.vim
 
 Patch 8.2.2335
 Problem:    Vim9: "silent return" does not restore command modifiers.
-Solution:   Resture command modifiers before returning. (closes #7649)
+Solution:   Restore command modifiers before returning. (closes #7649)
 Files:      src/vim9compile.c, src/testdir/test_vim9_disassemble.vim
 
 Patch 8.2.2336
@@ -14197,7 +14326,7 @@ Files:      src/evalfunc.c, src/evalvars
             src/testdir/test_cmdline.vim
 
 Patch 8.2.2342
-Problem:    "char" functions return the wront column in Insert mode when the
+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
@@ -14266,7 +14395,7 @@ Solution:   Adjust the logic to ignore t
 Files:      src/term.c
 
 Patch 8.2.2353
-Problem:    Spartql files are not detected.
+Problem:    Sparql files are not detected.
 Solution:   Add the sparql filetype.  (closes #7679)
 Files:      runtime/filetype.vim, src/testdir/test_filetype.vim
 
@@ -14322,7 +14451,7 @@ Files:      src/vim9compile.c, src/proto
 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
+            closes #7690)
 Files:      src/evalfunc.c, src/testdir/test_cursor_func.vim
 
 Patch 8.2.2364
@@ -14463,7 +14592,7 @@ Files:      src/vim9.h, src/vim9compile.
             src/testdir/test_vim9_func.vim
 
 Patch 8.2.2388
-Problem:    No easy way to get the maximum or mininum number value.
+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
@@ -14558,7 +14687,7 @@ Files:      src/vim9compile.c, src/testd
 Patch 8.2.2404
 Problem:    Vim9: profiling try/catch not correct.
 Solution:   Add profile instructions.  Fix that "entry" did not rethrow an
-            excpetion.
+            exception.
 Files:      src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim
 
 Patch 8.2.2405
@@ -14846,7 +14975,7 @@ Files:      src/optionstr.c, src/testdir
 
 Patch 8.2.2447
 Problem:    'foldlevel' not applied to folds restored from session.
-Solution:   Set 'foldlevel' after creaiting the folds. (closes #7767)
+Solution:   Set 'foldlevel' after creating the folds. (closes #7767)
 Files:      src/fold.c, src/testdir/test_mksession.vim
 
 Patch 8.2.2448
@@ -15044,7 +15173,7 @@ Solution:   Add new error message.
 Files:      src/errors.h
 
 Patch 8.2.2483
-Problem:    Vim9: type error for misformed expression.
+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
 
@@ -15125,7 +15254,7 @@ Solution:   Adjust the computation of w_
 Files:      src/move.c, src/testdir/test_breakindent.vim
 
 Patch 8.2.2496 (after 8.2.2495)
-Problem:    Insufficien testing for text jumping fix.
+Problem:    Insufficient testing for text jumping fix.
 Solution:   Add another test case.
 Files:      src/testdir/test_breakindent.vim
 
@@ -15513,7 +15642,7 @@ 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
+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)
@@ -16946,7 +17075,7 @@ Files:      src/vim9compile.c, src/testd
 Patch 8.2.2810
 Problem:    Vim9: crash when calling a function in a substitute expression.
 Solution:   Set the instructions back to the substitute expression
-            instrunctions. (closes #8148)
+            instructions. (closes #8148)
 Files:      src/vim9execute.c, src/testdir/test_vim9_cmd.vim
 
 Patch 8.2.2811
@@ -17002,16 +17131,16 @@ Files:      src/map.c, src/testdir/test_
 
 Patch 8.2.2820
 Problem:    Session file may divide by zero.
-Solution:   Avoid writing difide by zero. (closes #8162)
+Solution:   Avoid writing divide by zero. (closes #8162)
 Files:      src/session.c, src/testdir/test_mksession.vim
 
 Patch 8.2.2821
-Problem:    MS-Windows: unnessarily loading libraries when registering OLE.
+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: unnessarily loading libraries when unregistering OLE.
+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
@@ -17229,7 +17358,7 @@ Solution:   Adjust the expected error me
 Files:      src/testdir/test_tcl.vim
 
 Patch 8.2.2860
-Problem:    Adding a text property causes the whole window to be redawn.
+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
 
@@ -17240,7 +17369,7 @@ Files:      src/vim9compile.c, src/vim9e
             src/testdir/test_vim9_expr.vim
 
 Patch 8.2.2862
-Problem:    Removing a text property causes the whole window to be redawn.
+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
 
@@ -17288,7 +17417,7 @@ Solution:   Return CMDLINE_NOT_CHANGED f
 Files:      src/ex_getln.c, src/testdir/test_cmdline.vim
 
 Patch 8.2.2871
-Problem:    Unnessary VIM_ISDIGIT() calls, badly indented code.
+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,
@@ -17826,7 +17955,7 @@ 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 kesy. (closes #8340)
+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
 
@@ -18074,7 +18203,7 @@ Files:      src/ex_docmd.c, src/testdir/
 
 Patch 8.2.3005
 Problem:    Vim9: using a void value does not give a proper error message.
-Solution:   Give a clear error message. (clodes #8387)
+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
@@ -18155,14 +18284,13 @@ Files:      src/vim9execute.c, src/testd
 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 locaiton list. (Yegappan Lakshmanan,
+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. (Shane-XB-Qian,
-            closes #8393)
+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,
@@ -18182,7 +18310,7 @@ Files:      src/option.c, src/testdir/te
 
 Patch 8.2.3022
 Problem:    Available encryption methods are not strong enough.
-Solution:   Add initial support for xchaha20. (Christian Brabandt,
+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,
@@ -18342,7 +18470,7 @@ Files:      src/VisVim/README_VisVim.txt
 
 Patch 8.2.3046
 Problem:    Amiga MorphOS: Term mode is set using DOS packets.
-Solution:   Use the same way of setting term mdoe on all next gen Amiga-like
+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
 
@@ -18408,7 +18536,7 @@ Solution:   Adjust the INSTRUCTIONS macr
 Files:      src/vim9.h
 
 Patch 8.2.3058 (after 8.2.3056)
-Problem:    Vim9: cannot use ternary operator in parenthesis.
+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
 
@@ -18418,7 +18546,7 @@ Solution:   Do not store the default val
 Files:      src/userfunc.c
 
 Patch 8.2.3060 (after 8.2.3056)
-Problem:    Vim9: cannot use ternary operator in parenthesis.
+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
 
@@ -18795,7 +18923,7 @@ Files:      src/drawline.c, src/testdir/
             src/testdir/dumps/Test_listchars_05.dump
 
 Patch 8.2.3122
-Problem:    With 'nowrap' cursor position is unexected in narrow window.
+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,
@@ -18831,7 +18959,7 @@ Solution:   Check the value type. (close
 Files:      src/list.c, src/testdir/test_vim9_builtin.vim
 
 Patch 8.2.3128
-Problem:    Vim9: uninitialzed list does not get type checked.
+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,
@@ -19369,7 +19497,7 @@ Files:      src/testdir/test_spellfile.v
 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, closes #8605)
+            (Christian Brabandt, Ken Takata, closes #8605)
 Files:      nsis/gvim.nsi, runtime/doc/os_win32.txt
 
 Patch 8.2.3215
@@ -19420,13 +19548,13 @@ Files:      src/evalfunc.c, src/popupwin
             src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c
 
 Patch 8.2.3222
-Problem:    Vim9: cannot used loop variable later as lambda argument.
+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 autoloade omnifunc fails.
+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
 
@@ -19444,7 +19572,7 @@ 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 #8580)
+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,
@@ -19574,7 +19702,7 @@ Files:      src/if_lua.c, src/misc2.c, s
 
 Patch 8.2.3245
 Problem:    The crypt key may appear in a swap partition.
-Solution:   When using xchaha20 use sodium_mlock(). (Christian Brabandt,
+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
@@ -19642,7 +19770,7 @@ Solution:   Consider /usr/bin/cat and /b
 Files:      src/testdir/test_functions.vim
 
 Patch 8.2.3257
-Problem:    Calling prop_find() with -1 for ID gives errornous error. (Naohiro
+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
@@ -19693,7 +19821,7 @@ Files:      src/search.c, src/testdir/te
 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
-            assiging to a LHS subscript. (closes #8660)
+            assigning to a LHS subscript. (closes #8660)
 Files:      src/vim9compile.c, src/testdir/test_vim9_assign.vim
 
 Patch 8.2.3267
@@ -20114,7 +20242,7 @@ Files:      src/evalfunc.c, src/vim9comp
 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 values9) return zero for a NULL dict.
+            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,
@@ -20898,7 +21026,7 @@ 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
+Solution:   Add a few file patterns. (Doug Kearns)
 Files:      runtime/filetype.vim, src/testdir/test_filetype.vim
 
 Patch 8.2.3474
@@ -20997,7 +21125,7 @@ Files:      src/buffer.c, src/getchar.c,
             src/option.c
 
 Patch 8.2.3491
-Problem:    xpm2 filetype dection is not so good.
+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
 
@@ -21050,7 +21178,7 @@ Solution:   Install llvm-11 explicitly. 
 Files:      .github/workflows/ci.yml
 
 Patch 8.2.3501
-Problem:    tmux filetype dection is incomplete
+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
@@ -21125,7 +21253,7 @@ Solution:   Allocated mr_pattern.
 Files:      src/search.c
 
 Patch 8.2.3514
-Problem:    Autoread test with nano second time sometimes fails.
+Problem:    Autoread test with nanosecond time sometimes fails.
 Solution:   Mark the test as being flaky.
 Files:      src/testdir/test_stat.vim
 
@@ -21151,7 +21279,7 @@ Files:      src/buffer.c, src/bufwrite.c
 
 Patch 8.2.3518
 Problem:    Test_xrestore sometimes fails.
-Solution:   Mark the test as flayky.  Move marking test as flaky to the test
+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,
@@ -21330,7 +21458,7 @@ Files:      src/ex_cmds.c, src/vim.h, sr
             src/testdir/test_quickfix.vim
 
 Patch 8.2.3548
-Problem:    GTK GUI crashen when reading from stdin.
+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
 
@@ -21636,7 +21764,7 @@ Files:      runtime/filetype.vim, src/te
 
 Patch 8.2.3600 (after 8.2.3598)
 Problem:    Filetype test fails.
-Solution:   Add missint change.
+Solution:   Add missing change.
 Files:      runtime/scripts.vim
 
 Patch 8.2.3601
@@ -22004,7 +22132,7 @@ Solution:   Add a type cast. (Mike Willi
 Files:      src/vim9compile.c
 
 Patch 8.2.3656
-Problem:    Vim9: no error for an evironment variable by itself.
+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
 
@@ -22173,7 +22301,7 @@ Solution:   Adjust text column for inden
 Files:      src/ops.c, src/testdir/test_blockedit.vim
 
 Patch 8.2.3685
-Problem:    Visual studio project files are not recognized.
+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
 
@@ -22231,7 +22359,7 @@ Files:      src/ex_docmd.c, src/charset.
 
 Patch 8.2.3695
 Problem:    Confusing error for missing key.
-Solution:   Use the actualy key for the error. (closes #9241)
+Solution:   Use the actual key for the error. (closes #9241)
 Files:      src/eval.c, src/testdir/test_listdict.vim
 
 Patch 8.2.3696
@@ -22772,7 +22900,7 @@ Solution:   Include all the recent chang
 Files:      runtime/doc/options.txt
 
 Patch 8.2.3785
-Problem:    Running CI on MacOS with gcc is not useful.
+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
@@ -22821,7 +22949,7 @@ Files:      src/change.c
 
 Patch 8.2.3792
 Problem:    Setting *func options insufficiently tested.
-Solution:   Impove tests. (Yegappan Lakshmanan, closes #9337)
+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
@@ -22830,7 +22958,7 @@ 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 prececence. (closes #9336)
+            operator precedence. (closes #9336)
 Files:      src/evalvars.c, src/testdir/test_vim9_func.vim
 
 Patch 8.2.3794
@@ -22962,7 +23090,7 @@ Files:      src/ex_docmd.c, src/charset.
             src/eval.c, src/testdir/test_vim9_expr.vim
 
 Patch 8.2.3816
-Problem:    Compiler warning for posible loss of data on MS-Windows.
+Problem:    Compiler warning for possible loss of data on MS-Windows.
 Solution:   Add type cast. (Mike Williams, closes #9349)
 Files:      src/userfunc.c
 
@@ -23011,7 +23139,7 @@ Files:      src/testdir/test_visual.vim
 
 Patch 8.2.3824
 Problem:    No ASAN support for MSVC.
-Solution:   Add ASAN support and fix a coupld of uncovered problems. (Yegappan
+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
@@ -23178,7 +23306,7 @@ Files:      src/eval.c, src/testdir/test
 
 Patch 8.2.3851
 Problem:    Vim9: overhead when comparing string, dict or function.
-Solution:   Call the intented compare function directly.  Refactor to avoid
+Solution:   Call the intended compare function directly.  Refactor to avoid
             duplicated code.
 Files:      src/vim9execute.c, src/typval.c, src/proto/typval.pro
 
@@ -23662,7 +23790,7 @@ Solution:   Correct order of function ar
 Files:      src/userfunc.c
 
 Patch 8.2.3929
-Problem:    Using unititialized variable.
+Problem:    Using uninitialized variable.
 Solution:   Set the option flags to zero for a terminal option.
 Files:      src/option.c
 
@@ -23985,7 +24113,7 @@ Files:      src/errors.h, src/change.c, 
             src/terminal.c, src/textprop.c, src/userfunc.c
 
 Patch 8.2.3978
-Problem:    Build error when using dynamycally loaded Python 3.
+Problem:    Build error when using dynamically loaded Python 3.
 Solution:   Adjust #ifdef.
 Files:      src/errors.h
 
@@ -24403,7 +24531,7 @@ Files:      src/alloc.c, src/proto/alloc
             src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim
 
 Patch 8.2.4041
-Problem:    Using unitialized pointer.
+Problem:    Using uninitialized pointer.
 Solution:   Store "ht" when variable is in another script.
 Files:      src/evalvars.c
 
@@ -24414,7 +24542,7 @@ Files:      src/vim9execute.c
 
 Patch 8.2.4043
 Problem:    Using int for second argument of ga_init2().
-Solution:   Remove unnessary type cast (int) when using sizeof().
+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,
@@ -24662,7 +24790,7 @@ Solution:   Only lower case the prefix o
 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
+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
@@ -24714,7 +24842,7 @@ Solution:   Just use "w_virtcol". (close
 Files:      src/buffer.c, src/testdir/test_statusline.vim
 
 Patch 8.2.4092
-Problem:    MacOS CI: unnecessarily doing "Install packages".
+Problem:    macOS CI: unnecessarily doing "Install packages".
 Solution:   Only do "Install packages" for huge build.  (Ozaki Kiichi,
             closes #9521)
 Files:      .github/workflows/ci.yml
@@ -24778,8 +24906,8 @@ Solution:   Recognize an imported functi
 Files:      src/eval.c, src/testdir/test_vim9_import.vim
 
 Patch 8.2.4103
-Problem:    Vim9: variable declared in for loop not initialzed.
-Solution:   Always initialze the variable. (closes #9535)
+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
 
@@ -24812,8 +24940,8 @@ Files:      src/drawscreen.c
 
 Patch 8.2.4109
 Problem:    MS-Windows: high dpi support is outdated.
-Solution:   Improve High DPI support by using PerMonitorV2. (closes #9525,
-            closes #3102)
+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
@@ -24822,7 +24950,7 @@ Solution:   Check "evalarg" is not NULL.
 Files:      src/eval.c
 
 Patch 8.2.4111
-Problem:    Potential proglem when map is deleted while executing.
+Problem:    Potential problem when map is deleted while executing.
 Solution:   Reset last used map pointer when deleting a mapping.
 Files:      src/map.c
 
@@ -24940,7 +25068,7 @@ Files:      src/vim9script.c, src/testdi
 
 Patch 8.2.4133
 Problem:    output of ":scriptnames" goes into the message history, while this
-            des not happen for other commands, such as ":ls".
+            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
 
@@ -24963,7 +25091,7 @@ Files:      runtime/doc/vim9.txt, runtim
 
 Patch 8.2.4137
 Problem:    Vim9: calling import with and without method is inconsistent.
-Solution:   Set a flag that a parenthsis follows to compile_load_scriptvar().
+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
@@ -25142,7 +25270,7 @@ Files:      src/userfunc.c, src/testdir/
             src/testdir/sautest/autoload/foo.vim
 
 Patch 8.2.4169
-Problem:    MS-Windows: unnessary casts and other minor things.
+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
 
@@ -25571,7 +25699,7 @@ Files:      src/testdir/test_lua.vim
 
 Patch 8.2.4244
 Problem:    MS-Windows: warning from MSVC on debug build.
-Solution:   Adjust "/opt"o options.  Remove unused variables.  Make variables
+Solution:   Adjust "/opt" options.  Remove unused variables.  Make variables
             uppercase for consistency. (Ken Takata, closes #9647)
 Files:      src/Make_mvc.mak
 
@@ -25894,7 +26022,7 @@ Files:      src/gui_w32.c
 
 Patch 8.2.4291
 Problem:    Error number used twice.
-Solution:   Renumber of of the errors.
+Solution:   Renumber the errors.
 Files:      src/errors.h
 
 Patch 8.2.4292 (after 8.2.4291)
@@ -26129,7 +26257,7 @@ Solution:   When deleting the current bu
 Files:      src/buffer.c, src/testdir/test_quickfix.vim
 
 Patch 8.2.4328
-Problem:    Command line complete matches cleard when typing character.
+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,
@@ -26160,7 +26288,7 @@ Files:      src/userfunc.c, src/vim9comp
 
 Patch 8.2.4333
 Problem:    cstack not always passed to where it is needed.
-Solution:   Pass ctack through functions.
+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
@@ -26746,7 +26874,7 @@ Files:      src/Makefile, src/installman
 
 Patch 8.2.4422
 Problem:    Autochdir test fails on MS-Windows.
-Solution:   Expecta nother error on MS-Windows.
+Solution:   Expect another error on MS-Windows.
 Files:      src/testdir/test_autochdir.vim
 
 Patch 8.2.4423
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2022 Feb 23
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 Mar 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1803,6 +1803,17 @@ threaded, connecting asynchronous operat
 plugins to do their work without blocking the user.  It's a uniform way to
 invoke callbacks and handle timeouts and errors.
 
+Some commands have already been reserved:
+	*:class*
+	*:endclass*
+	*:abstract*
+	*:enum*
+	*:endenum*
+	*:interface*
+	*:endinterface*
+	*:static*
+	*:type*
+
 Some examples: >
 
 	abstract class Person 
--- a/runtime/ftplugin/ant.vim
+++ b/runtime/ftplugin/ant.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	ant
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/aspvbs.vim
+++ b/runtime/ftplugin/aspvbs.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	aspvbs
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/config.vim
+++ b/runtime/ftplugin/config.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	config
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/csc.vim
+++ b/runtime/ftplugin/csc.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	csc
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/csh.vim
+++ b/runtime/ftplugin/csh.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:		csh
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
-" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Previous Maintainer:	Dan Sharp
 " Contributor:		Johannes Zellner <johannes@zellner.org>
 " Last Change:		2021 Oct 15
 
--- a/runtime/ftplugin/dtd.vim
+++ b/runtime/ftplugin/dtd.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	dtd
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/html.vim
+++ b/runtime/ftplugin/html.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	html
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/java.vim
+++ b/runtime/ftplugin/java.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	Java
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Change:  2012 Mar 11
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/jsp.vim
+++ b/runtime/ftplugin/jsp.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	jsp
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/pascal.vim
+++ b/runtime/ftplugin/pascal.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:		Pascal
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
-" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Previous Maintainer:	Dan Sharp
 " Last Change:		2021 Apr 23
 
 if exists("b:did_ftplugin") | finish | endif
--- a/runtime/ftplugin/php.vim
+++ b/runtime/ftplugin/php.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	php
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/sgml.vim
+++ b/runtime/ftplugin/sgml.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	sgml
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/sh.vim
+++ b/runtime/ftplugin/sh.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	sh
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/svg.vim
+++ b/runtime/ftplugin/svg.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	svg
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/tcsh.vim
+++ b/runtime/ftplugin/tcsh.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:		tcsh
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
-" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Previous Maintainer:	Dan Sharp
 " Last Change:		2021 Oct 15
 
 if exists("b:did_ftplugin") | finish | endif
--- a/runtime/ftplugin/xhtml.vim
+++ b/runtime/ftplugin/xhtml.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	xhtml
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -3,7 +3,7 @@
 "   Maintainer:	Christian Brabandt <cb@256bit.org>
 " Last Changed: Dec 07th, 2018
 "   Repository: https://github.com/chrisbra/vim-xml-ftplugin
-" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Previous Maintainer:	Dan Sharp
 "          URL:		      http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
--- a/runtime/ftplugin/xsd.vim
+++ b/runtime/ftplugin/xsd.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	xsd
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/ftplugin/xslt.vim
+++ b/runtime/ftplugin/xslt.vim
@@ -1,8 +1,10 @@
 " Vim filetype plugin file
 " Language:	xslt
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+"
+" This runtime file is looking for a new maintainer.
+"
+" Former maintainer:	Dan Sharp
 " Last Changed: 20 Jan 2009
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Vim script
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2022 Feb 23
+" Last Change:	2022 Mar 01
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -105,7 +105,7 @@ function GetVimIndentIntern()
     " terminated dict.
     " ":function" starts a block but "function(" doesn't.
     if prev_text !~ '^\s*au\%[tocmd]' && prev_text !~ '^\s*{.*}'
-      let i = match(prev_text, '\(^\||\)\s*\(export\s\+\)\?\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\|finall\%[y]\|def\|el\%[seif]\)\>\|fu\%[nction]\s\)')
+      let i = match(prev_text, '\(^\||\)\s*\(export\s\+\)\?\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\|finall\%[y]\|def\|el\%[seif]\)\>\|fu\%[nction][! ]\)')
       if i >= 0
 	let ind += shiftwidth()
 	if strpart(prev_text, i, 1) == '|' && has('syntax_items')
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2022 Feb 23
+" Last Change:	2022 Mar 02
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -583,9 +583,9 @@ def s:XxdConv()
     :%!mc vim:xxd
   else
     s:XxdFind()
-    exe '%!' .. g:xxdprogram
+    exe ':%!' .. g:xxdprogram
   endif
-  if getline(1) =~ "^0000000:"		# only if it worked
+  if getline(1) =~ "^00000000:"		# only if it worked
     set ft=xxd
   endif
   &mod = mod
@@ -597,7 +597,7 @@ def s:XxdBack()
     :%!mc vim:xxd -r
   else
     s:XxdFind()
-    exe '%!' .. g:xxdprogram .. ' -r'
+    exe ':%!' .. g:xxdprogram .. ' -r'
   endif
   set ft=
   doautocmd filetypedetect BufReadPost