Update runtime files
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 9e5b6f2..062ccc3 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -9034,7 +9034,7 @@
 					entry depends on the language specific
 					kind values.  Only available when
 					using a tags file generated by
-					Exuberant ctags or hdrtag.
+					Universal/Exuberant ctags or hdrtag.
 			static		A file specific tag.  Refer to
 					|static-tag| for more information.
 		More entries may be present, depending on the content of the
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 9adfea9..8645ad9 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt*	For Vim version 8.2.  Last change: 2010 Jul 20
+*ft_ada.txt*	For Vim version 8.2.  Last change: 2022 Mar 13
 
 
 		    ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -89,9 +89,9 @@
 								 *ft-ada-omni*
 
 The Ada omni-completions (|i_CTRL-X_CTRL-O|) uses tags database created either
-by "gnat xref -v" or the "exuberant Ctags (http://ctags.sourceforge.net).  The
-complete function will automatically detect which tool was used to create the
-tags file.
+by "gnat xref -v" or the "Universal Ctags" (https://ctags.io).  The complete
+function will automatically detect which tool was used to create the tags
+file.
 
 ------------------------------------------------------------------------------
 3.1 Omni Completion with "gnat xref" ~
@@ -125,18 +125,18 @@
 3.2 Omni Completion with "ctags"~
 								   *ada-ctags*
 
-Exuberant Ctags uses its own multi-language code parser. The parser is quite
-fast, produces a lot of extra information (hence the name "Exuberant Ctags")
-and can run on files which currently do not compile.
+Universal/Exuberant Ctags use their own multi-language code parser.  The
+parser is quite fast, produces a lot of extra information and can run on files
+which currently do not compile.
 
-There are also lots of other Vim-tools which use exuberant Ctags.
+There are also lots of other Vim-tools which use Universal/Exuberant Ctags.
+Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
 
-You will need to install a version of the Exuberant Ctags which has Ada
-support patched in. Such a version is available from the GNU Ada Project
-(http://gnuada.sourceforge.net).
+You will need to install Universal Ctags which is available from
+https://ctags.io
 
-The Ada parser for Exuberant Ctags is fairly new - don't expect complete
-support yet.
+The Ada parser for Universal/Exuberant Ctags is fairly new - don't expect
+complete support yet.
 
 ==============================================================================
 4. Compiler Support ~
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index e434286..93f68bd 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 8.2.  Last change: 2021 Oct 24
+*gui_w32.txt*   For Vim version 8.2.  Last change: 2022 Mar 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -236,7 +236,8 @@
 
 When the "unnamed" string is included in the 'clipboard' option, the unnamed
 register is the same.  Thus you can yank to and paste from the clipboard
-without prepending "* to commands.
+without prepending "* to commands. If this doesn't work use the "unnamedplus"
+string in the 'clipboard' option.
 
 The 'a' flag in 'guioptions' is not included by default.  This means that text
 is only put on the clipboard when an operation is performed on it.  Just
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index f1060e8..61ad7c9 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 8.2.  Last change: 2022 Jan 28
+*if_perl.txt*   For Vim version 8.2.  Last change: 2022 Mar 13
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
@@ -22,9 +22,9 @@
 Perl script (see scripts.vim in Vim's syntax directory).  Vim assumes a file
 is POD text if the filename has a .POD suffix.
 
-To use tags with Perl, you need a recent version of Exuberant ctags.  Look
-here:
-	http://ctags.sourceforge.net
+To use tags with Perl, you need Universal/Exuberant Ctags.  Look here:
+	Universal Ctags (preferred): https://ctags.io
+	Exuberant Ctags: http://ctags.sourceforge.net
 
 Alternatively, you can use the Perl script pltags.pl, which is shipped with
 Vim in the $VIMRUNTIME/tools directory.  This script has currently more
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 3153d46..5dc3348 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.2.  Last change: 2022 Mar 06
+*insert.txt*    For Vim version 8.2.  Last change: 2022 Mar 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1409,11 +1409,16 @@
 
 C							*ft-c-omni*
 
-Completion of C code requires a tags file.  You should use Exuberant ctags,
-because it adds extra information that is needed for completion.  You can find
-it here: http://ctags.sourceforge.net/  Version 5.6 or later is recommended.
+Completion of C code requires a tags file.  You should use Universal/
+Exuberant ctags, because it adds extra information that is needed for
+completion.  You can find it here:
+	Universal Ctags: https://ctags.io
+	Exuberant Ctags: http://ctags.sourceforge.net
 
-For version 5.5.4 you should add a patch that adds the "typename:" field:
+Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
+
+For Exuberant ctags, version 5.6 or later is recommended.  For version 5.5.4
+you should add a patch that adds the "typename:" field:
 	ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
 A compiled .exe for MS-Windows can be found at:
 	http://ctags.sourceforge.net/
@@ -1534,8 +1539,11 @@
 PHP							*ft-php-omni*
 
 Completion of PHP code requires a tags file for completion of data from
-external files and for class aware completion. You should use Exuberant ctags
-version 5.5.4 or newer. You can find it here: http://ctags.sourceforge.net/
+external files and for class aware completion. You should use Universal/
+Exuberant ctags version 5.5.4 or newer. You can find it here:
+
+	Universal Ctags: https://ctags.io
+	Exuberant Ctags: http://ctags.sourceforge.net
 
 Script completes:
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 9d353ac..5bafaff 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2022 Feb 18
+*options.txt*	For Vim version 8.2.  Last change: 2022 Mar 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -7859,9 +7859,10 @@
 	linear search can be avoided when case is ignored.  Use a value of '2'
 	in the "!_TAG_FILE_SORTED" line for this.  A tag file can be case-fold
 	sorted with the -f switch to "sort" in most unices, as in the command:
-	"sort -f -o tags tags".  For "Exuberant ctags" version 5.x or higher
-	(at least 5.5) the --sort=foldcase switch can be used for this as
-	well.  Note that case must be folded to uppercase for this to work.
+	"sort -f -o tags tags".  For Universal ctags and Exuberant ctags
+	version 5.x or higher (at least 5.5) the --sort=foldcase switch can be
+	used for this as well.  Note that case must be folded to uppercase for
+	this to work.
 
 	By default, tag searches are case-sensitive.  Case is ignored when
 	'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index f43ab7c..9451ff2 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -5553,11 +5553,12 @@
 memory Vim will consume.
 
 Only highlighting typedefs, unions and structs can be done too.  For this you
-must use Exuberant ctags (found at http://ctags.sf.net).
+must use Universal Ctags (found at https://ctags.io) or Exuberant ctags (found
+at http://ctags.sf.net).
 
 Put these lines in your Makefile:
 
-# Make a highlight file for types.  Requires Exuberant ctags and awk
+# Make a highlight file for types.  Requires Universal/Exuberant ctags and awk
 types: types.vim
 types.vim: *.[ch]
 	ctags --c-kinds=gstu -o- *.[ch] |\
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 81ba7d9..e64bdd5 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4254,6 +4254,7 @@
 E1266	if_pyth.txt	/*E1266*
 E127	eval.txt	/*E127*
 E1270	change.txt	/*E1270*
+E1271	vim9.txt	/*E1271*
 E128	eval.txt	/*E128*
 E129	eval.txt	/*E129*
 E13	message.txt	/*E13*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index b53131b..e239119 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -561,7 +561,8 @@
 
 The second format is new.  It includes additional information in optional
 fields at the end of each line.  It is backwards compatible with Vi.  It is
-only supported by new versions of ctags (such as Exuberant ctags).
+only supported by new versions of ctags (such as Universal ctags or Exuberant
+ctags).
 
 {tagname}	The identifier.  Normally the name of a function, but it can
 		be any identifier.  It cannot contain a <Tab>.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 57a84e5..fd0817d 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 Mar 08
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Mar 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,27 +38,10 @@
 							*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?
+Really drop the Athena and NeXtaw GUI?  Decide end of March.
 
 Once Vim9 is stable:
-- Use Vim9 for runtime files.
+- Use Vim9 for more runtime files.
 - Check code coverage, add more tests if needed.
 	vim9execute.c  line 1900
 	vim9expr.c
@@ -123,7 +106,6 @@
 - Should popup_getoptions() also return the mask?  #7774
 - Add a way to use popup_menu() synchronously: instead of invoking the
   callback, return the choice. (Ben Jackson, #6534)
-- Use popup (or popup menu) for command line completion
 - When using a popup for the info of a completion menu, and there is not
   enough space, let the popup overlap with the menu. (#4544)
 - Implement flip option.
@@ -2231,10 +2213,6 @@
 
 Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
 
-With 'wildmode' set to "longest:full,full" and pressing Tab once the first
-entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
-Feb 12)
-
 Display error when 'tabline' that includes a file name with double-width
 characters. (2010 Aug 14, bootleq)
 
@@ -2437,10 +2415,6 @@
 first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
 Similar problem with ":e". (Marc Montu, 2014 Apr 22)
 
-Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
-laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
-Works OK with Vim in an xterm.
-
 Cursor line moves in other window when using CTRL-W J that doesn't change
 anything.  (Dasn, 2009 Apr 7)
 
@@ -2473,10 +2447,6 @@
 When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
 line.  It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
 
-After using <Tab> for command line completion after ":ta blah" and getting E33
-(no tags file), further editing the command to e.g., ":echo 'blah'", the
-command is not executed.  Fix by Ian Kelling?
-
 ":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
 Chase)  Fix by Ian Kelling, 2008 Jul 14.
 
@@ -2652,16 +2622,6 @@
 When a register contains illegal bytes, writing viminfo in utf-8 and reading
 it back doesn't result in utf-8. (Devin Bayer)
 
-Command line completion: Scanning for tags doesn't check for typed key now and
-then?  Hangs for about 5 seconds.  Appears to be caused by finding include
-files with "foo/**" in 'path'.  (Kalisiak, 2006 July 15)
-Additional info: When using the |wildcards| ** globing, vim hangs
-indefinitely on lots of directories. The |file-searching| globing, like in
-":set path=/**" does not hang as often as with globing with |wildcards|, like
-in ":1find /**/file".  This is for files that unix "find" can find very
-quickly. Merging the 2 kinds of globing might make this an easier fix. (Ian
-Kelling, 2008 July 4)
-
 When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
 parenthesis escaped but not the space.  That's inconsistent.  Either escape
 neither or both.  No escaping might be best, because it doesn't depend on
@@ -2740,8 +2700,6 @@
 When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
 Jun 18)
 
-If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
-
 In debug mode, using CTRL-R = to evaluate a function causes stepping through
 the function. (Hari Krishna Dara, 2006 Jun 28)
 
@@ -2850,13 +2808,6 @@
 
 For Aap: include a config.arg.example file with hints how to use config.arg.
 
-Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
-only one buffer line displayed, causes display errors.
-
-Completing with 'wildmenu' and using <Up> and <Down> to move through directory
-tree stops unexpectedly when using ":cd " and entering a directory that
-doesn't contain other directories.
-
 Default for 'background' is wrong when using xterm with 256 colors.
 Table with estimates from Matteo Cavalleri, 2014 Jan 10.
 
@@ -3538,8 +3489,6 @@
 8   When doing Insert mode completion a mapping cannot recursively call
     edit(), because the completion information is global.  Put everything in
     an allocated structure?
-8   Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
-    ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
 7   mb_off2cells() doesn't work correctly on the tail byte of a double-byte
     character. (Yasuhiro Matsumoto)  It should return 1 when used on a tail
     byte, like for utf-8.  Store second byte of double-byte in ScreenLines2[]
@@ -4274,8 +4223,6 @@
 7   CTRL-] checks the highlight group for finding out what the tag is.
 7   Add an explanation how a list of words can be used to highlight misspelled
     words.
-8   Add more command line completion for :syntax.
-8   Add more command line completion for :highlight.
 7   Should find a better way to parse the :syntax and :highlight commands.
     Use tables or lists that can be shared by parsing for execution and
     completion?
@@ -5061,6 +5008,35 @@
 -   Add 'wildlongest' option: Key to use to find longest common match for
     command line completion (default CTRL-L), like 'wildchar'. (Cregut)
     Also: when there are several matches, show them line a CTRL-D.
+-   With 'wildmode' set to "longest:full,full" and pressing Tab once the first
+    entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe,
+    2011 Feb 12)
+-   After using <Tab> for command line completion after ":ta blah" and getting
+    E33 (no tags file), further editing the command to e.g., ":echo 'blah'",
+    the command is not executed.  Fix by Ian Kelling?
+-   Command line completion: Scanning for tags doesn't check for typed key now
+    and then?  Hangs for about 5 seconds.  Appears to be caused by finding
+    include files with "foo/**" in 'path'.  (Kalisiak, 2006 July 15)
+    Additional info: When using the |wildcards| ** globing, vim hangs
+    indefinitely on lots of directories. The |file-searching| globing, like in
+    ":set path=/**" does not hang as often as with globing with |wildcards|,
+    like in ":1find /**/file".  This is for files that unix "find" can find
+    very quickly. Merging the 2 kinds of globing might make this an easier
+    fix. (Ian Kelling, 2008 July 4)
+-   Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
+    only one buffer line displayed, causes display errors.
+-   Completing with 'wildmenu' and using <Up> and <Down> to move through
+    directory tree stops unexpectedly when using ":cd " and entering a
+    directory that doesn't contain other directories.
+8   Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
+    ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
+8   Add more command line completion for :syntax.
+8   Add more command line completion for :highlight.
+-   Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
+    laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) Works
+    OK with Vim in an xterm.
+-   If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't
+    work.
 
 
 Command line history:
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 5940206..de1b911 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt*	For Vim version 8.2.  Last change: 2016 Feb 27
+*usr_29.txt*	For Vim version 8.2.  Last change: 2022 Mar 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -33,10 +33,12 @@
 	ctags *.c
 
 "ctags" is a separate program.  Most Unix systems already have it installed.
-If you do not have it yet, you can find Exuberant ctags here:
-
+If you do not have it yet, you can find Universal/Exuberant ctags at:
+	http://ctags.io ~
 	http://ctags.sf.net ~
 
+Universal ctags is preferred, Exuberant ctags is no longer being developed.
+
 Now when you are in Vim and you want to go to a function definition, you can
 jump to it by using the following command: >
 
@@ -142,15 +144,15 @@
 When Vim has to search many places for tags files, you can hear the disk
 rattling.  It may get a bit slow.  In that case it's better to spend this
 time while generating one big tags file.  You might do this overnight.
-   This requires the Exuberant ctags program, mentioned above.  It offers an
-argument to search a whole directory tree: >
+   This requires the Universal or Exuberant ctags program, mentioned above.
+It offers an argument to search a whole directory tree: >
 
 	cd ~/proj
 	ctags -R .
 
-The nice thing about this is that Exuberant ctags recognizes various file
-types.  Thus this doesn't work just for C and C++ programs, also for Eiffel
-and even Vim scripts.  See the ctags documentation to tune this.
+The nice thing about this is that Universal/Exuberant ctags recognizes various
+file types.  Thus this doesn't work just for C and C++ programs, also for
+Eiffel and even Vim scripts.  See the ctags documentation to tune this.
    Now you only need to tell Vim where your big tags file is: >
 
 	:set tags=~/proj/tags
@@ -232,7 +234,8 @@
 Since CTRL-] takes you to the definition of the identifier under the cursor,
 you can use a list of identifier names as a table of contents.  Here is an
 example.
-   First create a list of identifiers (this requires Exuberant ctags): >
+   First create a list of identifiers (this requires Universal or Exuberant
+ctags): >
 
 	ctags --c-types=f -f functions *.c
 
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 0e1ecf5..7d5c258 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -837,7 +837,7 @@
 Patch 8.2.0107
 Problem:    Hgignore is out of sync from gitignore.
 Solution:   Add lines to hgignore. (Ken Takata)
-Files:      .hgigmore
+Files:      .hgignore
 
 Patch 8.2.0108
 Problem:    When sign text is changed a manual redraw is needed. (Pontus
@@ -2474,7 +2474,7 @@
 Patch 8.2.0367
 Problem:    Can use :pedit in a popup window.
 Solution:   Disallow it.
-Files:      src/ex_docmd.c, src/testdir/test_popuwin.vim
+Files:      src/ex_docmd.c, src/testdir/test_popupwin.vim
 
 Patch 8.2.0368
 Problem:    Vim9: import that redefines local variable does not fail.
@@ -2513,7 +2513,7 @@
 Problem:    Prop_find() may not find text property at start of the line.
 Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
             closes #5663)
-Files:      src/testprop.c, src/testdir/test_textprop.vim
+Files:      src/textprop.c, src/testdir/test_textprop.vim
 
 Patch 8.2.0373
 Problem:    Type of term_sendkeys() is unknown.
@@ -3743,7 +3743,7 @@
 Problem:    Vim9: no error when omitting type from argument.
 Solution:   Enforce specifying argument types.
 Files:      src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim,
-            src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim
+            src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim,
             src/testdir/test_vim9_disassemble.vim
 
 Patch 8.2.0571
@@ -3921,7 +3921,7 @@
 Patch 8.2.0600
 Problem:    Vim9: cannot read or write w:, t: and b: variables.
 Solution:   Implement load and store for w:, t: and b: variables.
-            (closes #5950) 
+            (closes #5950)
 Files:      src/testdir/test_vim9_disassemble.vim,
             src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
             src/vim9.h, src/vim9compile.c, src/vim9execute.c
@@ -4042,7 +4042,7 @@
 
 Patch 8.2.0618
 Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
-Solution:   Return "[]" instead of NULL in echo_string_core(). 
+Solution:   Return "[]" instead of NULL in echo_string_core().
 Files:      src/eval.c, src/testdir/test_messages.vim
 
 Patch 8.2.0619
@@ -4095,7 +4095,7 @@
             (closes #5670)
 Files:      src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c,
             src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim,
-            src/testdir/test_vim9_disassemble.vim
+            src/testdir/test_vim9_disassemble.vim,
             src/testdir/test_vim9_script.vim
 
 Patch 8.2.0627
@@ -5205,8 +5205,9 @@
 Solution:   Include revision 727, but add the index instead of switching
             between RGB and indexed.
 Files:      src/terminal.c, src/term.c, src/libvterm/include/vterm.h,
-            src/libvterm/src/pen.c src/libvterm/src/screen.c
-            src/libvterm/src/vterm_internal.h src/libvterm/t/30state_pen.test
+            src/libvterm/src/pen.c, src/libvterm/src/screen.c,
+            src/libvterm/src/vterm_internal.h,
+            src/libvterm/t/30state_pen.test,
             src/libvterm/t/harness.c, src/libvterm/src/state.c,
             src/libvterm/t/26state_query.test,
             src/libvterm/t/64screen_pen.test
@@ -5299,7 +5300,7 @@
             src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
             src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h,
             src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim,
-            src/testdir/test_vim9_disassemble.vim
+            src/testdir/test_vim9_disassemble.vim,
             src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim
 
 Patch 8.2.0819
@@ -5667,7 +5668,7 @@
 Problem:    Getting attributes for directory entries is slow.
 Solution:   Add readdirex(). (Ken Takata, closes #5619)
 Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
-            src/fileio.c, src/filepath.c src/proto/fileio.pro,
+            src/fileio.c, src/filepath.c, src/proto/fileio.pro,
             src/proto/filepath.pro, src/testdir/test_functions.vim
 
 Patch 8.2.0876
@@ -6292,7 +6293,7 @@
 Problem:    Vim9: cannot compile "[var, var] = list".
 Solution:   Implement list assignment.
 Files:      src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c,
-            src/proto/evalvars.pro src/eval.c, src/testdir/test_vim9_script.vim
+            src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim
 
 Patch 8.2.0982
 Problem:    Insufficient testing for reading/writing files.
@@ -6335,7 +6336,7 @@
             src/cmdexpand.c, src/config.h.in, src/configure.ac,
             src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c,
             src/filepath.c, src/globals.h, src/proto/fileio.pro,
-            src/testdir/test_cmdline.vim, src/testdir/test_functions.vim
+            src/testdir/test_cmdline.vim, src/testdir/test_functions.vim,
             src/vim.h
 
 Patch 8.2.0989
@@ -9545,7 +9546,7 @@
 Problem:    Vim9: cannot assign to local option.
 Solution:   Skip over "&l:" and "&g:". (closes #6749)
 Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim,
-            src/vim9compile.c src/testdir/test_vim9_script.vim
+            src/vim9compile.c, src/testdir/test_vim9_script.vim
 
 Patch 8.2.1519
 Problem:    Vim9: Ex command default range is not set.
@@ -11740,7 +11741,7 @@
 Patch 8.2.1898
 Problem:    Command modifier parsing always uses global cmdmod.
 Solution:   Pass in cmdmod_T to use.  Rename struct fields consistently.
-Files:      src/structs.h, src/arglist.c src/buffer.c, src/bufwrite.c,
+Files:      src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c,
             src/diff.c, src/change.c, src/cmdhist.c, src/edit.c,
             src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c,
             src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c,
@@ -13549,7 +13550,7 @@
 Problem:    Vim9: return type of => lambda not parsed.
 Solution:   Parse and use the return type.
 Files:      src/vim9compile.c, src/userfunc.c, src/vim9type.c,
-            src/proto/vim9type.pro, src/vim9script.c, src/eval.c
+            src/proto/vim9type.pro, src/vim9script.c, src/eval.c,
             src/testdir/test_vim9_expr.vim
 
 Patch 8.2.2210
@@ -13776,7 +13777,7 @@
 Files:      src/term.c
 
 Patch 8.2.2249
-Problem:    Termcodes test is flaky when used over ssh with X forwarding. 
+Problem:    Termcodes test is flaky when used over ssh with X forwarding.
 Solution:   Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576,
             closes #7563)
 Files:      src/testdir/test_termcodes.vim
@@ -15482,7 +15483,7 @@
 Solution:   Implement ISN_UNLETRANGE.
 Files:      src/errors.h, src/eval.c, src/evalvars.c, src/list.c,
             src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h,
-            src/vim9compile.c, src/vim9execute.c
+            src/vim9compile.c, src/vim9execute.c,
             src/testdir/test_vim9_assign.vim
 
 Patch 8.2.2534
@@ -15518,7 +15519,7 @@
 Solution:   Store both the finally and endtry indexes. (closes #7885)
 Files:      src/vim9execute.c, src/vim9compile.c, src/vim9.h,
             src/testdir/test_vim9_script.vim,
- 
+
 Patch 8.2.2540
 Problem:    Vim9: no error for using script var name for argument.
 Solution:   Check for this error. (closes #7868)
@@ -17249,7 +17250,7 @@
 
 Patch 8.2.2841
 Problem:    MS-Windows: cursor in wrong position when 'lazyredraw' and
-            'statusline' are set. 
+            'statusline' are set.
 Solution:   Call compute_cmdrow(). (closes #8170, closes #8184)
 Files:      src/os_win32.c
 
@@ -17936,7 +17937,7 @@
 Problem:    Using getchar() in Vim9 script is problematic.
 Solution:   Add getcharstr(). (closes #8343)
 Files:      runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c,
-            src/proto/getchar.pro, src/testdir/test_getchar.vim
+            src/proto/getchar.pro, src/testdir/test_functions.vim
 
 Patch 8.2.2958 (after 8.2.2957)
 Problem:    Function list test fails.
@@ -18849,7 +18850,7 @@
 Files:      src/testdir/check.vim
 
 Patch 8.2.3110
-Problem:    A pattern that matches the cursor position is bit complicated.
+Problem:    A pattern that matches the cursor position is a bit complicated.
 Solution:   Use a dot to indicate the cursor line and column. (Christian
             Brabandt, closes #8497, closes #8179)
 Files:      runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
@@ -18864,7 +18865,7 @@
 Problem:    With concealing enabled and indirectly closing a fold the cursor
             may be somewhere in a folded line when it is not on the first line
             of the fold.
-Solution:   Check if he cursor is somewhere in the folded text.
+Solution:   Check if the cursor is somewhere in the folded text.
 Files:      src/drawscreen.c
 
 Patch 8.2.3113
@@ -23950,7 +23951,7 @@
 Problem:    Error messages are spread out.
 Solution:   Move more errors to errors.h.
 Files:      src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c,
-            src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c src/ex_eval.c,
+            src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
             src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c,
             src/vim9cmds.c, src/vim9compile.c
 
@@ -23975,7 +23976,7 @@
 Patch 8.2.3961
 Problem:    Error messages are spread out.
 Solution:   Move more errors to errors.h.
-Files:      src/errors.h, src/globals.h src/arglist.c, src/autocmd.c,
+Files:      src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c,
             src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c,
             src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c,
             src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c,
@@ -24291,7 +24292,7 @@
 
 Patch 8.2.4004
 Problem:    Old compiler complains about struct init with variable.
-Solution:   Set the struct member later. (John Marriott) 
+Solution:   Set the struct member later. (John Marriott)
 Files:      src/evalfunc.c
 
 Patch 8.2.4005
@@ -24494,7 +24495,7 @@
 Patch 8.2.4036
 Problem:    Vim9: script test file is getting too long.
 Solution:   Split the import/export functionality to a separate file.
-Files:      src/testdir/test_vim9_script.vim src/testdir/test_vim9_import.vim,
+Files:      src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim,
             src/testdir/Make_all.mak
 
 Patch 8.2.4037
@@ -25457,7 +25458,7 @@
 Problem:    Vim9: cannot export function that exists globally.
 Solution:   When checking if a function already exists only check for
             script-local functions. (closes #9615)
-Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim.h, 
+Files:      src/userfunc.c, src/proto/userfunc.pro, src/vim.h,
             src/vim9compile.c, src/vim9instr.c,
             src/testdir/test_vim9_import.vim
 
@@ -25853,7 +25854,7 @@
 Problem:    Autoload tests fails.
 Solution:   Use export instead of name with #.
 Files:      src/testdir/sautest/autoload/auto9.vim,
-            src/testdir/test_autoload.vim src/testdir/test_ins_complete.vim
+            src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim
 
 Patch 8.2.4266
 Problem:    Compiler warning for uninitialized variable.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 54e02ae..f494880 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2022 Mar 08
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 Mar 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -995,6 +995,11 @@
 	   if b == null_blob
 	      # b argument was not given
 
+It is possible to compare `null`  with any value, this will not give a type
+error.  However, comparing `null` with a number, float or bool will always
+result in `false`.  This is different from legacy script, where comparing
+`null` with zero or `false` would return `true`.
+
 When converting a boolean to a string `false` and `true` are used, not
 `v:false` and `v:true` like in legacy script.  `v:none` has no `none`
 replacement, it has no equivalent in other languages.
@@ -1234,6 +1239,11 @@
 	endfor
 	echo range(5)->map((i, _) => flist[i]())
 	# Result: [4, 4, 4, 4, 4]
+<							*E1271*
+A closure must be compiled in the context that it is defined in, so that
+variables in that context can be found.  This mostly happens correctly, except
+when a function is marked for debugging with `breakadd` after it was compiled.
+Make sure the define the breakpoint before compiling the outerh function.
 
 The "inloop" variable will exist only once, all closures put in the list refer
 to the same instance, which in the end will have the value 4.  This is
@@ -1739,7 +1749,8 @@
    prefix is obtained from the file name, as you would to manually in a
    legacy autoload script.  Thus the exported function can be found with
    "for#search#Stuff", but you would normally use `import autoload` and not
-   use the prefix.
+   use the prefix (which has the side effect of loading the autoload script
+   when compiling a function that encounters this name).
 
    You can split up the functionality and import other scripts from the
    autoload script as you like.  This way you can share code between plugins.
@@ -1751,7 +1762,17 @@
 When compiling a `:def` function and a function in an autoload script is
 encountered, the script is not loaded until the `:def` function is called.
 This also means you get any errors only at runtime, since the argument and
-return types are not known yet.
+return types are not known yet.  If you would use the name with '#' characters
+then the autoload script IS loaded.
+
+Be careful to not refer to an item in an autoload script that does trigger
+loading it unintentionally.  For example, when setting an option that takes a
+function name, make sure to use a string, not a function reference: >
+	import autoload 'qftf.vim'
+	&quickfixtextfunc = 'qftf.Func'  # autoload script NOT loaded
+	&quickfixtextfunc = qftf.Func    # autoload script IS loaded
+On the other hand, it can be useful to load the script early, at a time when
+any errors should be given.
 
 For testing the |test_override()| function can be used to have the
 `import autoload` load the script right away, so that the items and types can