Update runtime files.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 20a8f4b..328d6ff 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2021 Jan 28
+*autocmd.txt*   For Vim version 8.2.  Last change: 2021 Mar 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1519,9 +1519,11 @@
 						*:doautoa* *:doautoall*
 :doautoa[ll] [<nomodeline>] [group] {event} [fname]
 			Like ":doautocmd", but apply the autocommands to each
-			loaded buffer.  Note that [fname] is used to select
-			the autocommands, not the buffers to which they are
-			applied.
+			loaded buffer.  The current buffer is done last.
+
+			Note that [fname] is used to select the autocommands,
+			not the buffers to which they are applied.
+
 			Careful: Don't use this for autocommands that delete a
 			buffer, change to another buffer or change the
 			contents of a buffer; the result is unpredictable.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 428cb08..57ab47e 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2021 Mar 10
+*eval.txt*	For Vim version 8.2.  Last change: 2021 Mar 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5107,6 +5107,13 @@
 			listed		TRUE if the buffer is listed.
 			lnum		Line number used for the buffer when
 					opened in the current window.
+					Only valid if the buffer has been
+					displayed in the window in the past.
+					If you want the line number of the
+					last known cursor position in a given
+					window, use |line()|: >
+						:echo line('.', {winid})
+<
 			linecount	Number of lines in the buffer (only
 					valid when loaded)
 			loaded		TRUE if the buffer is loaded.
@@ -6095,12 +6102,12 @@
 			width		window width
 			winbar		1 if the window has a toolbar, 0
 					otherwise
-			wincol		leftmost screen column of the window,
-					col from |win_screenpos()|
+			wincol		leftmost screen column of the window;
+					"col" from |win_screenpos()|
 			winid		|window-ID|
 			winnr		window number
-			winrow		topmost screen column of the window,
-					row from |win_screenpos()|
+			winrow		topmost screen line of the window;
+					"row" from |win_screenpos()|
 
 		Can also be used as a |method|: >
 			GetWinnr()->getwininfo()
@@ -12810,8 +12817,8 @@
 			it can no longer be changed (until it is unlocked).
 			A locked variable can be deleted: >
 				:lockvar v
-				:let v = 'asdf'		" fails!
-				:unlet v
+				:let v = 'asdf'	  " fails!
+				:unlet v	  " works
 <							*E741* *E940*
 			If you try to change a locked variable you get an
 			error message: "E741: Value is locked: {name}".
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index ea1b137..7da8066 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2021 Feb 14
+*index.txt*     For Vim version 8.2.  Last change: 2021 Mar 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1294,6 +1294,7 @@
 |:edit|		:e[dit]		edit a file
 |:earlier|	:ea[rlier]	go to older change, undo
 |:echo|		:ec[ho]		echoes the result of expressions
+|:echoconsole|	:echoc[onsole]	like :echomsg but write to stdout
 |:echoerr|	:echoe[rr]	like :echo, show like an error and use history
 |:echohl|	:echoh[l]	set highlighting for echo commands
 |:echomsg|	:echom[sg]	same as :echo, put message in history
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 873d5d6..47e706b 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2020 Dec 10
+*map.txt*       For Vim version 8.2.  Last change: 2021 Mar 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -271,8 +271,8 @@
 	endfunc
 	nnoremap <expr> x StoreColumn()
 	nmap ! f!x
-You will notice that g:column has the value from before executing "fx",
-because "z" is evaluated before "fx" is executed.
+You will notice that g:column has the value from before executing "f!",
+because "x" is evaluated before "f!" is executed.
 This can be solved by inserting <Ignore> before the character that is
 expression-mapped: >
 	nmap ! f!<Ignore>x
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index d6215a4..4dc0e2e 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.2.  Last change: 2020 Oct 18
+*motion.txt*    For Vim version 8.2.  Last change: 2021 Mar 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -942,8 +942,7 @@
 			line.
 
 							*]`*
-]`			[count] times to lowercase mark after the cursor. {not
-			in Vi}
+]`			[count] times to lowercase mark after the cursor.
 
 							*['*
 ['			[count] times to previous line with a lowercase mark
@@ -1037,6 +1036,12 @@
 			(not a motion command).
 			{not available without the |+jumplist| feature}
 
+			NOTE: In the GUI and in a terminal supporting
+			|modifyOtherKeys|, CTRL-I can be mapped separately
+			from <Tab>, on the condition that CTRL-I is
+			mapped before <Tab>, otherwise the mapping applies to
+			both.
+
 							*:ju* *:jumps*
 :ju[mps]		Print the jump list (not a motion command).
 			{not available without the |+jumplist| feature}
@@ -1054,11 +1059,11 @@
 
 For example, after three jump commands you have this jump list:
 
-  jump line  col file/text ~
-    3	  1    0 some text ~
-    2	 70    0 another line ~
-    1  1154   23 end. ~
- > ~
+    jump line  col file/text ~
+      3	  1    0 some text ~
+      2	 70    0 another line ~
+      1  1154   23 end. ~
+   > ~
 
 The "file/text" column shows the file name, or the text at the jump if it is
 in the current file (an indent is removed and a long line is truncated to fit
@@ -1067,11 +1072,11 @@
 You are currently in line 1167.  If you then use the CTRL-O command, the
 cursor is put in line 1154.  This results in:
 
-  jump line  col file/text ~
-    2	  1    0 some text ~
-    1	 70    0 another line ~
- >  0  1154   23 end. ~
-    1  1167    0 foo bar ~
+    jump line  col file/text ~
+      2	  1    0 some text ~
+      1	 70    0 another line ~
+   >  0  1154   23 end. ~
+      1  1167    0 foo bar ~
 
 The pointer will be set at the last used jump position.  The next CTRL-O
 command will use the entry above it, the next CTRL-I command will use the
@@ -1098,12 +1103,12 @@
 After the CTRL-O command that got you into line 1154 you could give another
 jump command (e.g., "G").  The jump list would then become:
 
-  jump line  col file/text ~
-    4	  1    0 some text ~
-    3	 70    0 another line ~
-    2  1167    0 foo bar ~
-    1  1154   23 end. ~
- > ~
+    jump line  col file/text ~
+      4	  1    0 some text ~
+      3	 70    0 another line ~
+      2  1167    0 foo bar ~
+      1  1154   23 end. ~
+   > ~
 
 The line numbers will be adjusted for deleted and inserted lines.  This fails
 if you stop editing a file without writing, like with ":n!".
@@ -1152,7 +1157,7 @@
 a bit different from the position of the change.  Especially when lines have
 been deleted.
 
-When the |:keepjumps| command modifier is used the position of a change is not
+When the `:keepjumps` command modifier is used the position of a change is not
 remembered.
 
 							*:changes*
@@ -1193,7 +1198,7 @@
 			#if, #ifdef, #else, #elif, #endif
 					C preprocessor conditionals (when the
 					cursor is on the # or no ([{
-					following)
+					is following)
 			For other items the matchit plugin can be used, see
 			|matchit-install|.  This plugin also helps to skip
 			matches in comments.
@@ -1222,19 +1227,16 @@
 			#if/#else/#endif makes the movement linewise.
 
 						*[(*
-[(			go to [count] previous unmatched '('.
+[(			Go to [count] previous unmatched '('.
 			|exclusive| motion.
-
 						*[{*
-[{			go to [count] previous unmatched '{'.
+[{			Go to [count] previous unmatched '{'.
 			|exclusive| motion.
-
 						*])*
-])			go to [count] next unmatched ')'.
+])			Go to [count] next unmatched ')'.
 			|exclusive| motion.
-
 						*]}*
-]}			go to [count] next unmatched '}'.
+]}			Go to [count] next unmatched '}'.
 			|exclusive| motion.
 
 The above four commands can be used to go to the start or end of the current
@@ -1268,7 +1270,7 @@
 			class.  When no '}' is found before the cursor this is
 			an error. |exclusive| motion.
 
-The above two commands assume that the file contains a class with methods.
+The above four commands assume that the file contains a class with methods.
 The class definition is surrounded in '{' and '}'.  Each method in the class
 is also surrounded with '{' and '}'.  This applies to the Java language.  The
 file looks like this: >
@@ -1282,17 +1284,21 @@
 			body_two();
 		}
 	}
+
+[To try this out copy the text and put it in a new buffer, the help text above
+confuses the jump commands]
+
 Starting with the cursor on "body_two()", using "[m" will jump to the '{' at
 the start of "method_two()" (obviously this is much more useful when the
 method is long!).  Using "2[m" will jump to the start of "method_one()".
 Using "3[m" will jump to the start of the class.
 
 						*[#*
-[#			go to [count] previous unmatched "#if" or "#else".
+[#			Go to [count] previous unmatched "#if" or "#else".
 			|exclusive| motion.
 
 						*]#*
-]#			go to [count] next unmatched "#else" or "#endif".
+]#			Go to [count] next unmatched "#else" or "#endif".
 			|exclusive| motion.
 
 These two commands work in C programs that contain #if/#else/#endif
@@ -1300,11 +1306,11 @@
 the current line is included.  You can then use "%" to go to the matching line.
 
 						*[star* *[/*
-[*  or  [/		go to [count] previous start of a C comment "/*".
+[*  or  [/		Go to [count] previous start of a C comment "/*".
 			|exclusive| motion.
 
 						*]star* *]/*
-]*  or  ]/		go to [count] next end of a C comment "*/".
+]*  or  ]/		Go to [count] next end of a C comment "*/".
 			|exclusive| motion.
 
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index babe721..0f628c0 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2021 Feb 13
+*options.txt*	For Vim version 8.2.  Last change: 2021 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3865,7 +3865,7 @@
 								*'go-v'*
 	  'v'	Use a vertical button layout for dialogs.  When not included,
 		a horizontal layout is preferred, but when it doesn't fit a
-		vertical layout is used anyway.
+		vertical layout is used anyway.  Not supported in GTK 3.
 								*'go-p'*
 	  'p'	Use Pointer callbacks for X11 GUI.  This is required for some
 		window managers.  If the cursor is not blinking or hollow at
@@ -8865,15 +8865,15 @@
 						*'window'* *'wi'*
 'window' 'wi'		number  (default screen height - 1)
 			global
-	Window height.  Do not confuse this with the height of the Vim window,
-	use 'lines' for that.
-	Used for |CTRL-F| and |CTRL-B| when there is only one window and the
-	value is smaller than 'lines' minus one.  The screen will scroll
-	'window' minus two lines, with a minimum of one.
+	Window height used for |CTRL-F| and |CTRL-B| when there is only one
+	window and the value is smaller than 'lines' minus one.  The screen
+	will scroll 'window' minus two lines, with a minimum of one.
 	When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll
 	in a much smarter way, taking care of wrapping lines.
 	When resizing the Vim window, the value is smaller than 1 or more than
 	or equal to 'lines' it will be set to 'lines' minus 1.
+	Note: Do not confuse this with the height of the Vim window, use
+	'lines' for that.
 
 						*'winheight'* *'wh'* *E591*
 'winheight' 'wh'	number	(default 1)
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index ead42f9..fcdd5a7 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.2.  Last change: 2020 Aug 15
+*quickref.txt*  For Vim version 8.2.  Last change: 2021 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index bef8601..a165e83 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -2236,9 +2236,10 @@
 
 For example, Linux and BSD distributions use groff as their default text
 processing package.  In order to activate the extra syntax highlighting
-features for groff, add the following option to your start-up files: >
+features for groff, arrange for files to be recognized as groff (see
+|ft-groff-syntax|) or add the following option to your start-up files: >
 
-  :let b:nroff_is_groff = 1
+  :let nroff_is_groff = 1
 
 Groff is different from the old AT&T n/troff that you may still find in
 Solaris.  Groff macro and request names can be longer than 2 characters and
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 27e8d75..c070a12 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -57,11 +57,13 @@
 'ari'	options.txt	/*'ari'*
 'arshape'	options.txt	/*'arshape'*
 'as'	todo.txt	/*'as'*
+'asd'	options.txt	/*'asd'*
 'autochdir'	options.txt	/*'autochdir'*
 'autoindent'	options.txt	/*'autoindent'*
 'autoprint'	vi_diff.txt	/*'autoprint'*
 'autoread'	options.txt	/*'autoread'*
 'autosave'	todo.txt	/*'autosave'*
+'autoshelldir'	options.txt	/*'autoshelldir'*
 'autowrite'	options.txt	/*'autowrite'*
 'autowriteall'	options.txt	/*'autowriteall'*
 'aw'	options.txt	/*'aw'*
@@ -508,10 +510,12 @@
 'noari'	options.txt	/*'noari'*
 'noarshape'	options.txt	/*'noarshape'*
 'noas'	todo.txt	/*'noas'*
+'noasd'	options.txt	/*'noasd'*
 'noautochdir'	options.txt	/*'noautochdir'*
 'noautoindent'	options.txt	/*'noautoindent'*
 'noautoread'	options.txt	/*'noautoread'*
 'noautosave'	todo.txt	/*'noautosave'*
+'noautoshelldir'	options.txt	/*'noautoshelldir'*
 'noautowrite'	options.txt	/*'noautowrite'*
 'noautowriteall'	options.txt	/*'noautowriteall'*
 'noaw'	options.txt	/*'noaw'*
@@ -2397,6 +2401,8 @@
 :ec	eval.txt	/*:ec*
 :echo	eval.txt	/*:echo*
 :echo-redraw	eval.txt	/*:echo-redraw*
+:echoc	eval.txt	/*:echoc*
+:echoconsole	eval.txt	/*:echoconsole*
 :echoe	eval.txt	/*:echoe*
 :echoerr	eval.txt	/*:echoerr*
 :echoh	eval.txt	/*:echoh*
@@ -9164,6 +9170,7 @@
 str2list()	eval.txt	/*str2list()*
 str2nr()	eval.txt	/*str2nr()*
 strcasestr()	eval.txt	/*strcasestr()*
+strcharlen()	eval.txt	/*strcharlen()*
 strcharpart()	eval.txt	/*strcharpart()*
 strchars()	eval.txt	/*strchars()*
 strchr()	eval.txt	/*strchr()*
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index ac51330..2a6f405 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -1,4 +1,4 @@
-*textprop.txt*  For Vim version 8.2.  Last change: 2020 Oct 14
+*textprop.txt*  For Vim version 8.2.  Last change: 2021 Mar 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -260,8 +260,8 @@
 				properties the one with the highest priority
 				will be used; negative values can be used, the
 				default priority is zero
-		   combine	when TRUE combine the highlight with any
-				syntax highlight; when omitted or FALSE syntax
+		   combine	when omitted or TRUE combine the highlight
+				with any syntax highlight; when FALSE syntax
 				highlight will not be used
 		   start_incl	when TRUE inserts at the start position will
 				be included in the text property
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2486d9d..8e70f36 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 Mar 11
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,48 +39,9 @@
 -------------------- Known bugs and current work -----------------------
 
 Vim9 - Make everything work:
-- Does this work now: Implement using imported items at script level from
-  "import * as X" in
-- import of item that isn't exported: error should mention missing "export"?
-- no error for using :import in legacy script?
-- Disallow :open ?
-- Check: what if 'cpo' is intentionally changed in Vim9 script, does it get
-  restored at the end?
-- ISN_CHECKTYPE could use check_argtype()
-- Using a script variable inside a :def function doesn't work if the variable
-  is inside a block, see Test_nested_function().  Should it work?
-- give error for variable name:
-      var p = function('NoSuchFunc')
-- When indexing a string, should we include composing characters?  #6563
-	string[0] - first character including its composing characters.
-	string[0 : 0] - same
-    If you don't want that use strcharpart().
-    Also, add optional arg to strcharpart() to include composing chars, to
-    make it consistent with strchars().
-    Add strcharlen(), like strchars() but like skipcc is always set
-- Make closures work better:
-  - Create closure in a loop.  Need to make a list of them.
-- If a :def function is called with a function reference, compile it to get
-  the function type.
-	def Filter(x: string, Cond: func(string): bool)
-	Filter(x, (v) => v =~ '^b')
-- Make inline function work, to be used as a funcref:
-       var Ref = (arg: type): type => {
-	    statement
-	    return expr
-	}
-       var Ref = (arg: type) => {
-	    statement
-	    statement
-	}
 - For builtin functions using tv_get_string*() use check_for_string() to be
-  more strict about the argument type.
-- Implement :lockvar and :unlockvar.  How about local variables?  Perhaps only
-  allow this for global variables.  Use :final or :const otherwise.
-- Allow function names that will be script-local to start with lower case
-  letter?  Or also require names with s: prefix to use upper case?
-  Also apply this function references "var ref = SomeFunc"
-- Support passing v:none to use the default argument value. (#6504)
+  more strict about the argument type (not a bool).
+    done: balloon_()
 - Run the same tests in :def and Vim9 script, like in Test_expr7_not()
 - Check many more builtin function arguments at compile time.
 - make 0 == 'string' fail on the script level, like inside :def.
@@ -280,6 +241,23 @@
 Include patch #6290: recognize shell directory change.
 
 Valgrind reports memory leaks in test_options.
+Valgrind reports overlapping memcpy in
+    test_conceal.3
+    test_edit.1
+    test_functions.4
+    test_ins_complete.3
+    test_method
+    test_normal
+    test_popupwin.35 et al.
+    test_search_stat
+Using uninitialized value in test_crypt (can't explain why).
+Memory leak in test_debugger
+Memory leak in test_paste, using XtOpenDisplay several times
+OLD:
+TODO: be able to run all parts of test_alot with valgrind separately
+Memory leak in test_alot with pyeval() (allocating partial)
+Memory leak in test_alot with expand()
+Memory leaks in test_channel? (or is it because of fork())
 
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
 
@@ -298,6 +276,11 @@
 
 Remove SPACE_IN_FILENAME ? It is only used for completion.
 
+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
+inconsistent with the documentation.
+
 Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
 Scroll doesn't work correctly, why?
 
@@ -592,7 +575,7 @@
 Give a few examples. (#4288)
 
 Opening a file with --remote-tab-silent that matches 'wildignore' does not
-work, results in (E479: No match". (#4610)
+work, results in "E479: No match". (#4610)
 
 7   Add an option to add one pixel column to the character width?  Lucida
     Console italic is wider than the normal font ("d" overlaps with next char).
@@ -781,14 +764,6 @@
 
 Add buffer argument to undotree(). (#4001)
 
-Memory leak in test_debugger
-Using uninitialized value in test_crypt (can't explain why).
-Memory leak in test_terminal_fail
-TODO: be able to run all parts of test_alot with valgrind separately
-Memory leak in test_alot with pyeval() (allocating partial)
-Memory leak in test_alot with expand()
-Memory leaks in test_channel? (or is it because of fork())
-
 matchaddpos() gets slow with many matches.  Proposal by Rick Howe, 2018 Jul
 19.
 
@@ -1509,9 +1484,6 @@
 Patch to add :mapgroup, put mappings in a group like augroup.
 (Yasuhiro Matsumoto, 2016 Feb 19)
 
-Value returned by virtcol() changes depending on how lines wrap.  This is
-inconsistent with the documentation.
-
 Can we cache the syntax attributes, so that updates for 'relativenumber' and
 'cursorline'/'cursorcolumn' are a lot faster?  Thus store the attributes
 before combining them.
@@ -2466,9 +2438,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)
 
-Using an insert mode expression mapping, cursor is not in the expected
-position. (ZyX, 2010 Aug 29)
-
 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?
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 0d17298..891719a 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Feb 01
+*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Mar 14
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index fd135c6..76a8f5d 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.2.  Last change: 2021 Mar 02
+*various.txt*   For Vim version 8.2.  Last change: 2021 Mar 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -724,7 +724,7 @@
 			feature}
 
 							*:sl!* *:sleep!*
-:[N]sl[eep]! [N] [m]	Same as above, but hide the cursor
+:[N]sl[eep]! [N] [m]	Same as above, but hide the cursor.
 
 							*:xrestore* *:xr*
 :xr[estore] [display]	Reinitializes the connection to the X11 server. Useful
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index ef28e08..8d75ed6 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -2300,7 +2300,7 @@
 Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
 After upgrading it becomes invalid.  Now use $VIMRUNTIME instead.
 
-The command line was cleared to often when 'showmode' was set and ":silent
+The command line was cleared too often when 'showmode' was set and ":silent
 normal vy" was used.  Don't clear the command line unless the mode was
 actually displayed.  Added the "mode_displayed" variable.
 
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 67ca8a0..ab4b7d8 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1776,7 +1776,7 @@
 
 Patch 7.4.219
 Problem:    When 'relativenumber' or 'cursorline' are set the window is
-	    redrawn much to often. (Patrick Hemmer, Dominique Pelle)
+	    redrawn much too often. (Patrick Hemmer, Dominique Pelle)
 Solution:   Check the VALID_CROW flag instead of VALID_WROW.
 Files:	    src/move.c
 
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 2425804..974ee6a 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2021 Mar 03
+*vim9.txt*	For Vim version 8.2.  Last change: 2021 Mar 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -204,7 +204,7 @@
 for clarity.
 
 Since a script-local function reference can be used without "s:" the name must
-start with an upper case letter even when using the ":s" prefix.  In legacy
+start with an upper case letter even when using the "s:" prefix.  In legacy
 script "s:funcref" could be used, because it could not be referred to with
 "funcref".  In Vim9 script it can, therefore "s:Funcref" must be used to avoid
 that the name interferes with builtin functions.
@@ -926,6 +926,27 @@
 	  g/pattern/s/^/`=newText`/
 	enddef
 
+Closures defined in a loop will share the same context.  For example: >
+	var flist: list<func>
+	for i in range(10)
+	  var inloop = i
+	  flist[i] = () => inloop
+	endfor
+
+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 9.  This is
+efficient.  If you do want a separate context for each closure call a function
+to define it: >
+	def GetFunc(i: number): func
+	  var inloop = i
+	  return () => inloop
+	enddef
+
+	var flist: list<func>
+	for i in range(10)
+	  flist[i] = GetFunc(i)
+	endfor
+
 ==============================================================================
 
 4. Types					*vim9-types*
@@ -1006,8 +1027,6 @@
 	:var mine: MyInterface<string>
 {not implemented yet}
 
-You may also find this wiki useful.  It was written by an early adoptor of
-Vim9 script: https://github.com/lacygoill/wiki/blob/master/vim/vim9.md
 
 Variable types and type casting	~
 							*variable-types*
@@ -1080,27 +1099,6 @@
 Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
 |flattennew()| instead.
 
-Closures defined in a loop will share the same context.  For example: >
-	var flist: list<func>
-	for i in range(10)
-	  var inloop = i
-	  flist[i] = () => inloop
-	endfor
-
-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 9.  This is
-efficient.  If you do want a separate context for each closure call a function
-to define it: >
-	def GetFunc(i: number): func
-	  var inloop = i
-	  return () => inloop
-	enddef
-
-	var flist: list<func>
-	for i in range(10)
-	  flist[i] = GetFunc(i)
-	endfor
-
 ==============================================================================
 
 5. Namespace, Import and Export
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 69de9ba..b3905be 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.2.  Last change: 2021 Feb 06
+*windows.txt*   For Vim version 8.2.  Last change: 2021 Mar 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -790,7 +790,7 @@
 
 Examples: >
 
-	:windo set nolist nofoldcolumn | normal zn
+	:windo set nolist foldcolumn=0 | normal! zn
 
 This resets the 'list' option and disables folding in all windows. >
 
@@ -798,7 +798,7 @@
 
 This resets the 'fileencoding' in each buffer and writes it if this changed
 the buffer.  The result is that all buffers will use the 'encoding' encoding
-(if conversion works properly).
+(if conversion succeeds).
 
 ==============================================================================
 9. Tag or file name under the cursor			*window-tag*