diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 98c358d..8299597 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 8.2.  Last change: 2022 Jan 28
+*builtin.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1885,12 +1885,13 @@
 		display an error message.
 
 
-digraph_set({chars}, {digraph})				*digraph_set()* *E1205*
+digraph_set({chars}, {digraph})				*digraph_set()*
 		Add digraph {chars} to the list.  {chars} must be a string
 		with two characters.  {digraph} is a string with one UTF-8
-		encoded character. Be careful, composing characters are NOT
-		ignored.  This function is similar to |:digraphs| command, but
-		useful to add digraphs start with a white space.
+		encoded character.  *E1215*
+		Be careful, composing characters are NOT ignored.  This
+		function is similar to |:digraphs| command, but useful to add
+		digraphs start with a white space.
 
 		The function result is v:true if |digraph| is registered.  If
 		this fails an error message is given and v:false is returned.
@@ -1913,7 +1914,7 @@
 		Similar to |digraph_set()| but this function can add multiple
 		digraphs at once.  {digraphlist} is a list composed of lists,
 		where each list contains two strings with {chars} and
-		{digraph} as in |digraph_set()|.
+		{digraph} as in |digraph_set()|. *E1216*
 		Example: >
 		    call digraph_setlist([['aa', 'あ'], ['ii', 'い']])
 <
@@ -2531,7 +2532,7 @@
 		The {list} is changed in place, use |flattennew()| if you do
 		not want that.
 		In Vim9 script flatten() cannot be used, you must always use
-		|flattennew()|. *E1158*
+		|flattennew()|.
 								*E900*
 		{maxdepth} means how deep in nested lists changes are made.
 		{list} is not modified when {maxdepth} is 0.
@@ -3751,7 +3752,7 @@
 			:let cliptext = getreg('*')
 <		When register {regname} was not set the result is an empty
 		string.
-		The {regname} argument must be a string.
+		The {regname} argument must be a string.  *E1162*
 
 		getreg('=') returns the last evaluated value of the expression
 		register.  (For use in maps.)
@@ -4783,7 +4784,7 @@
 		Encode {expr} as JSON and return this as a string.
 		The encoding is specified in:
 		https://tools.ietf.org/html/rfc7159.html
-		Vim values are converted as follows:
+		Vim values are converted as follows:   *E1161*
 		   |Number|		decimal number
 		   |Float|		floating point number
 		   Float nan		"NaN"
@@ -4897,7 +4898,7 @@
 line({expr} [, {winid}])				*line()*
 		The result is a Number, which is the line number of the file
 		position given with {expr}.  The {expr} argument is a string.
-		The accepted positions are:
+		The accepted positions are:			 *E1209*
 		    .	    the cursor position
 		    $	    the last line in the current buffer
 		    'x	    position of mark x (if the mark is not set, 0 is
@@ -7644,10 +7645,12 @@
 		    module	name of a module; if given it will be used in
 				quickfix error window instead of the filename.
 		    lnum	line number in the file
+		    end_lnum	end of lines, if the item spans multiple lines
 		    pattern	search pattern used to locate the error
 		    col		column number
 		    vcol	when non-zero: "col" is visual column
 				when zero: "col" is byte index
+		    end_col	end column, if the item spans multiple columns
 		    nr		error number
 		    text	description of the error
 		    type	single-character error type, 'E', 'W', etc.
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 7e1030b..d72e689 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2022 Jan 28
+*change.txt*    For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -782,7 +782,7 @@
 For compatibility with Vi these two exceptions are allowed:
 "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
 "\&{string}&" does the same as "//{string}/".
-						*pattern-delimiter* *E146*
+				*pattern-delimiter* *E146* *E1241* *E1242*
 Instead of the '/' which surrounds the pattern and replacement string, you can
 use another single-byte character.  This is useful if you want to include a
 '/' in the search pattern or replacement string.  Example: >
@@ -1076,7 +1076,7 @@
 			in [range] (default: current line |cmdline-ranges|),
 			[into register x].
 
-							*p* *put* *E353*
+						*p* *put* *E353* *E1240*
 ["x]p			Put the text [from register x] after the cursor
 			[count] times.
 
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index c68c161..ad862bf 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 8.2.  Last change: 2022 Jan 08
+*cmdline.txt*   For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -730,7 +730,7 @@
 one(s) will be ignored.
 
 Line numbers may be specified with:		*:range* *{address}*
-	{number}	an absolute line number
+	{number}	an absolute line number  *E1247*
 	.		the current line			  *:.*
 	$		the last line in the file		  *:$*
 	%		equal to 1,$ (the entire file)		  *:%*
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 00deef1..371450f 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2022 Jan 21
+*editing.txt*   For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -633,7 +633,7 @@
 			Also see |++opt| and |+cmd|.
 
 :[count]arga[dd] {name} ..			*:arga* *:argadd* *E479*
-:[count]arga[dd]
+:[count]arga[dd]						*E1156*
 			Add the {name}s to the argument list.  When {name} is
 			omitted add the current buffer name to the argument
 			list.
@@ -1772,10 +1772,8 @@
 	/u/user_x/include
 
 <   Note: If your 'path' setting includes a non-existing directory, Vim will
-   skip the non-existing directory, but continues searching in the parent of
-   the non-existing directory if upwards searching is used.  E.g. when
-   searching "../include" and that doesn't exist, and upward searching is
-   used, also searches in "..".
+   skip the non-existing directory, and also does not search in the parent of
+   the non-existing directory if upwards searching is used.
 
 3) Combined up/downward search:
    If Vim's current path is /u/user_x/work/release and you do >
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 258d0a1..9e1425b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2022 Jan 24
+*eval.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -181,7 +181,7 @@
 
 
 1.2 Function references ~
-					*Funcref* *E695* *E718* *E1086*
+				*Funcref* *E695* *E718* *E1086* *E1192*
 A Funcref variable is obtained with the |function()| function, the |funcref()|
 function or created with the lambda expression |expr-lambda|.  It can be used
 in an expression in the place of a function name, before the parenthesis
@@ -765,7 +765,7 @@
 
 
 Blob modification ~
-							*blob-modification*
+					*blob-modification* *E1182* *E1184*
 To change a specific byte of a blob use |:let| this way: >
 	:let blob[4] = 0x44
 
@@ -1018,7 +1018,7 @@
 only be evaluated if "b" has been defined.
 
 
-expr4							*expr4*
+expr4							*expr4* *E1153*
 -----
 
 expr5 {cmp} expr5
@@ -1176,6 +1176,7 @@
 	 >0 / 0  =  0x7fffffff	(like positive infinity)
 	 <0 / 0  = -0x7fffffff	(like negative infinity)
 	(before Vim 7.2 it was always 0x7fffffff)
+In |Vim9| script dividing a number by zero is an error.	*E1154*
 
 When 64-bit Number support is enabled:
 	  0 / 0  = -0x8000000000000000	(like NaN for Float)
@@ -1243,7 +1244,7 @@
 byte under the cursor: >
 	:let c = getline(".")[col(".") - 1]
 
-In |Vim9| script:
+In |Vim9| script:					*E1147* *E1148*
 If expr9 is a String this results in a String that contains the expr1'th
 single character (including any composing characters) from expr9.  To use byte
 indexes use |strpart()|.
@@ -1323,7 +1324,7 @@
 
 
 expr9.name		entry in a |Dictionary|		*expr-entry*
-
+							*E1203* *E1229*
 If expr9 is a |Dictionary| and it is followed by a dot, then the following
 name will be used as a key in the |Dictionary|.  This is just like:
 expr9[name].
@@ -1350,7 +1351,7 @@
 
 expr9->name([args])	method call			*method* *->*
 expr9->{lambda}([args])
-							*E260* *E276*
+							*E260* *E276* *E1265*
 For methods that are also available as global functions this is the same as: >
 	name(expr9 [, args])
 There can also be methods specifically for the type of "expr9".
@@ -1550,7 +1551,7 @@
 evaluates to.  Use |eval()| to evaluate it.
 
 
-nesting							*expr-nesting* *E110*
+nesting						*expr-nesting* *E110*
 -------
 (expr1)			nested expression
 
@@ -2694,7 +2695,7 @@
 			implies that the effect of |:nohlsearch| is undone
 			when the function returns.
 
-				*:endf* *:endfunction* *E126* *E193* *W22*
+			*:endf* *:endfunction* *E126* *E193* *W22* *E1151*
 :endf[unction] [argument]
 			The end of a function definition.  Best is to put it
 			on a line by its own, without [argument].
@@ -3074,7 +3075,7 @@
 			length of the blob, in which case one byte is
 			appended.
 
-							*E711* *E719*
+					*E711* *E719* *E1165* *E1166* *E1183*
 :let {var-name}[{idx1}:{idx2}] = {expr1}		*E708* *E709* *E710*
 			Set a sequence of items in a |List| to the result of
 			the expression {expr1}, which must be a list with the
@@ -3410,7 +3411,7 @@
 			See |deepcopy()|.
 
 
-:unlo[ckvar][!] [depth] {name} ...			*:unlockvar* *:unlo*
+:unlo[ckvar][!] [depth] {name} ...		*:unlockvar* *:unlo* *E1246*
 			Unlock the internal variable {name}.  Does the
 			opposite of |:lockvar|.
 
@@ -3471,7 +3472,7 @@
 :endfo[r]						*:endfo* *:endfor*
 			Repeat the commands between ":for" and ":endfor" for
 			each item in {object}.  {object} can be a |List| or
-			a |Blob|.
+			a |Blob|. *E1177*
 
 			Variable {var} is set to the value of each item.
 			In |Vim9| script the loop variable must not have been
@@ -3725,6 +3726,9 @@
 			the `append()` call appends the List with text to the
 			buffer.  This is similar to `:call` but works with any
 			expression.
+			In |Vim9| script an expression without an effect will
+			result in error *E1207* .  This should help noticing
+			mistakes.
 
 			The command can be shortened to `:ev` or `:eva`, but
 			these are hard to recognize and therefore not to be
@@ -4892,6 +4896,9 @@
 compatible with older versions of Vim this will give an explicit error,
 instead of failing in mysterious ways.
 
+When using a legacy function, defined with `:function`, in |Vim9| script then
+scriptversion 4 is used.
+
 							*scriptversion-1*  >
  :scriptversion 1
 <	This is the original Vim script, same as not using a |:scriptversion|
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 9a614e2..d52103e 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -142,7 +142,8 @@
 	*.asm		g:asmsyntax	|ft-asm-syntax|
 	*.asp		g:filetype_asp	|ft-aspvbs-syntax| |ft-aspperl-syntax|
 	*.bas		g:filetype_bas	|ft-basic-syntax|
-	*.fs		g:filetype_fs   |ft-forth-syntax|
+	*.frm		g:filetype_frm	|ft-form-syntax|
+	*.fs		g:filetype_fs	|ft-forth-syntax|
 	*.i		g:filetype_i	|ft-progress-syntax|
 	*.inc		g:filetype_inc
 	*.m		g:filetype_m	|ft-mathematica-syntax|
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 8c9ff3d..732e5a7 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 Jan 29
+*options.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -800,6 +800,7 @@
 	need proper setting-up, so whenever the shell's pwd changes an OSC 7
 	escape sequence will be emitted. For example, on Linux, you can source
 	/etc/profile.d/vte.sh in your shell profile if you use bash or zsh.
+	When the parsing of the OSC sequence fails you get *E1179* .
 
 				*'arabic'* *'arab'* *'noarabic'* *'noarab'*
 'arabic' 'arab'		boolean (default off)
@@ -2476,7 +2477,7 @@
 			you write the file the encrypted bytes will be
 			different.  The whole undo file is encrypted, not just
 			the pieces of text.
-					*E1193* *E1194* *E1195* *E1196*
+					*E1193* *E1194* *E1195* *E1196* *E1230*
 					*E1197* *E1198* *E1199* *E1200* *E1201*
 	   xchacha20	XChaCha20 Cipher with Poly1305 Message Authentication
 			Code.  Medium strong till strong encryption.
@@ -6723,6 +6724,9 @@
 	See |option-backslash| about including spaces and backslashes.
 	Environment variables are expanded |:set_env|.
 
+	In |restricted-mode| shell commands will not be possible.  This mode
+	is used if the value of $SHELL ends in "false" or "nologin".
+
 	If the name of the shell contains a space, you need to enclose it in
 	quotes and escape the space.  Example with quotes: >
 		:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index ce1d0f4..819975d 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 8.2.  Last change: 2022 Jan 08
+*pattern.txt*   For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -925,7 +925,7 @@
 	becomes invalid.  Vim doesn't automatically update the matches.
 	Similar to moving the cursor for "\%#" |/\%#|.
 
-						*/\%l* */\%>l* */\%<l* *E951*
+					*/\%l* */\%>l* */\%<l* *E951* *E1204*
 \%23l	Matches in a specific line.
 \%<23l	Matches above a specific line (lower line number).
 \%>23l	Matches below a specific line (higher line number).
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index bca2f97..84f3a75 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 8.2.  Last change: 2022 Jan 20
+*starting.txt*  For Vim version 8.2.  Last change: 2022 Feb 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 6b114a7..a23ac88 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2021 Nov 20
+*syntax.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -215,7 +215,8 @@
 
 The name for a highlight or syntax group must consist of ASCII letters, digits
 and the underscore.  As a regexp: "[a-zA-Z0-9_]*".  However, Vim does not give
-an error when using other characters.
+an error when using other characters.  The maxium length of a group name is
+about 200 bytes.  *E1249*
 
 To be able to allow each user to pick their favorite set of colors, there must
 be preferred names for highlight groups that are common for many languages.
@@ -1536,6 +1537,14 @@
 gvim display.  Here, statements are colored LightYellow instead of Yellow, and
 conditionals are LightBlue for better distinction.
 
+Both Visual Basic and FORM use the extension ".frm".  To detect which one
+should be used, Vim checks for the string "VB_Name" in the first five lines of
+the file.  If it is found, filetype will be "vb", otherwise "form".
+
+If the automatic detection doesn't work for you or you only edit, for
+example, FORM files, use this in your startup vimrc: >
+   :let filetype_frm = "form"
+
 
 FORTH						*forth.vim* *ft-forth-syntax*
 
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 7512d0c..cb2f7ad 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 8.2.  Last change: 2020 Oct 14
+*tabpage.txt*   For Vim version 8.2.  Last change: 2022 Feb 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -143,7 +143,9 @@
 		    :tabclose 3	    " close the third tab page
 		    :tabclose $	    " close the last tab page
 		    :tabclose #     " close the last accessed tab page
-<
+
+When a tab is closed the next tab page will become the current one.
+
 							*:tabo* *:tabonly*
 :tabo[nly][!]	Close all other tab pages.
 		When the 'hidden' option is set, all buffers in closed windows
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 0016643..a15371e 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4041,6 +4041,7 @@
 E109	eval.txt	/*E109*
 E1090	eval.txt	/*E1090*
 E1091	vim9.txt	/*E1091*
+E1092	various.txt	/*E1092*
 E1093	eval.txt	/*E1093*
 E1094	vim9.txt	/*E1094*
 E1095	eval.txt	/*E1095*
@@ -4096,19 +4097,62 @@
 E114	eval.txt	/*E114*
 E1140	eval.txt	/*E1140*
 E1141	eval.txt	/*E1141*
+E1142	testing.txt	/*E1142*
 E1143	eval.txt	/*E1143*
 E1144	vim9.txt	/*E1144*
 E1145	eval.txt	/*E1145*
+E1146	vim9.txt	/*E1146*
+E1147	eval.txt	/*E1147*
+E1148	eval.txt	/*E1148*
+E1149	vim9.txt	/*E1149*
 E115	eval.txt	/*E115*
+E1150	vim9.txt	/*E1150*
+E1151	eval.txt	/*E1151*
+E1152	vim9.txt	/*E1152*
+E1153	eval.txt	/*E1153*
+E1154	eval.txt	/*E1154*
 E1155	autocmd.txt	/*E1155*
-E1158	builtin.txt	/*E1158*
+E1156	editing.txt	/*E1156*
+E1157	vim9.txt	/*E1157*
+E1158	vim9.txt	/*E1158*
+E1159	windows.txt	/*E1159*
 E116	eval.txt	/*E116*
+E1160	vim9.txt	/*E1160*
+E1161	builtin.txt	/*E1161*
+E1162	builtin.txt	/*E1162*
+E1163	vim9.txt	/*E1163*
+E1164	vim9.txt	/*E1164*
+E1165	eval.txt	/*E1165*
+E1166	eval.txt	/*E1166*
+E1167	vim9.txt	/*E1167*
+E1168	vim9.txt	/*E1168*
 E1169	eval.txt	/*E1169*
 E117	eval.txt	/*E117*
+E1170	vim9.txt	/*E1170*
+E1171	vim9.txt	/*E1171*
+E1172	vim9.txt	/*E1172*
+E1173	vim9.txt	/*E1173*
+E1174	vim9.txt	/*E1174*
+E1175	vim9.txt	/*E1175*
+E1176	vim9.txt	/*E1176*
+E1177	eval.txt	/*E1177*
+E1178	vim9.txt	/*E1178*
+E1179	options.txt	/*E1179*
 E118	eval.txt	/*E118*
+E1180	vim9.txt	/*E1180*
+E1181	vim9.txt	/*E1181*
+E1182	eval.txt	/*E1182*
+E1183	eval.txt	/*E1183*
+E1184	eval.txt	/*E1184*
+E1185	various.txt	/*E1185*
+E1186	vim9.txt	/*E1186*
 E1187	starting.txt	/*E1187*
 E1188	cmdline.txt	/*E1188*
+E1189	vim9.txt	/*E1189*
 E119	eval.txt	/*E119*
+E1190	vim9.txt	/*E1190*
+E1191	vim9.txt	/*E1191*
+E1192	eval.txt	/*E1192*
 E1193	options.txt	/*E1193*
 E1194	options.txt	/*E1194*
 E1195	options.txt	/*E1195*
@@ -4120,25 +4164,76 @@
 E120	eval.txt	/*E120*
 E1200	options.txt	/*E1200*
 E1201	options.txt	/*E1201*
-E1205	builtin.txt	/*E1205*
+E1202	vim9.txt	/*E1202*
+E1203	eval.txt	/*E1203*
+E1204	pattern.txt	/*E1204*
+E1205	vim9.txt	/*E1205*
+E1206	vim9.txt	/*E1206*
+E1207	eval.txt	/*E1207*
 E1208	map.txt	/*E1208*
+E1209	builtin.txt	/*E1209*
 E121	eval.txt	/*E121*
+E1210	vim9.txt	/*E1210*
+E1211	vim9.txt	/*E1211*
+E1212	vim9.txt	/*E1212*
+E1213	vim9.txt	/*E1213*
 E1214	builtin.txt	/*E1214*
+E1215	builtin.txt	/*E1215*
+E1216	builtin.txt	/*E1216*
+E1217	vim9.txt	/*E1217*
+E1218	vim9.txt	/*E1218*
+E1219	vim9.txt	/*E1219*
 E122	eval.txt	/*E122*
+E1220	vim9.txt	/*E1220*
+E1221	vim9.txt	/*E1221*
+E1222	vim9.txt	/*E1222*
+E1223	vim9.txt	/*E1223*
+E1224	vim9.txt	/*E1224*
+E1225	vim9.txt	/*E1225*
+E1226	vim9.txt	/*E1226*
+E1227	vim9.txt	/*E1227*
+E1228	vim9.txt	/*E1228*
+E1229	eval.txt	/*E1229*
 E123	eval.txt	/*E123*
+E1230	options.txt	/*E1230*
 E1231	map.txt	/*E1231*
 E1232	builtin.txt	/*E1232*
 E1233	builtin.txt	/*E1233*
+E1234	vim9.txt	/*E1234*
+E1235	vim9.txt	/*E1235*
+E1236	vim9.txt	/*E1236*
 E1237	map.txt	/*E1237*
+E1238	vim9.txt	/*E1238*
 E1239	builtin.txt	/*E1239*
 E124	eval.txt	/*E124*
+E1240	change.txt	/*E1240*
+E1241	change.txt	/*E1241*
+E1242	change.txt	/*E1242*
 E1243	options.txt	/*E1243*
 E1244	message.txt	/*E1244*
 E1245	cmdline.txt	/*E1245*
+E1246	eval.txt	/*E1246*
+E1247	cmdline.txt	/*E1247*
+E1248	vim9.txt	/*E1248*
+E1249	syntax.txt	/*E1249*
 E125	eval.txt	/*E125*
+E1250	vim9.txt	/*E1250*
+E1251	vim9.txt	/*E1251*
+E1252	vim9.txt	/*E1252*
+E1253	vim9.txt	/*E1253*
+E1254	vim9.txt	/*E1254*
 E1255	map.txt	/*E1255*
+E1256	vim9.txt	/*E1256*
+E1257	vim9.txt	/*E1257*
+E1258	vim9.txt	/*E1258*
+E1259	vim9.txt	/*E1259*
 E126	eval.txt	/*E126*
+E1260	vim9.txt	/*E1260*
+E1261	vim9.txt	/*E1261*
+E1262	vim9.txt	/*E1262*
 E1263	eval.txt	/*E1263*
+E1264	vim9.txt	/*E1264*
+E1265	eval.txt	/*E1265*
 E127	eval.txt	/*E127*
 E128	eval.txt	/*E128*
 E129	eval.txt	/*E129*
@@ -6125,6 +6220,7 @@
 convert-to-HTML	syntax.txt	/*convert-to-HTML*
 convert-to-XHTML	syntax.txt	/*convert-to-XHTML*
 convert-to-XML	syntax.txt	/*convert-to-XML*
+convert_legacy_function_to_vim9	vim9.txt	/*convert_legacy_function_to_vim9*
 copy()	builtin.txt	/*copy()*
 copy-diffs	diff.txt	/*copy-diffs*
 copy-move	change.txt	/*copy-move*
@@ -9931,7 +10027,6 @@
 test_option_not_set()	testing.txt	/*test_option_not_set()*
 test_override()	testing.txt	/*test_override()*
 test_refcount()	testing.txt	/*test_refcount()*
-test_scrollbar()	testing.txt	/*test_scrollbar()*
 test_setmouse()	testing.txt	/*test_setmouse()*
 test_settime()	testing.txt	/*test_settime()*
 test_srand_seed()	testing.txt	/*test_srand_seed()*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 8bd3cc9..c77d594 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt*	For Vim version 8.2.  Last change: 2022 Jan 23
+*testing.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -65,8 +65,9 @@
 		Like garbagecollect(), but executed right away.  This must
 		only be called directly to avoid any structure to exist
 		internally, and |v:testing| must have been set before calling
-		any function.  This will not work when called from a :def
-		function, because variables on the stack will be freed.
+		any function.   *E1142*
+		This will not work when called from a :def function, because
+		variables on the stack will be freed.
 
 
 test_garbagecollect_soon()			 *test_garbagecollect_soon()*
@@ -92,6 +93,7 @@
 		    "dropfiles"	drop one or more files in a window.
 		    "findrepl"  search and replace text
 		    "mouse"	mouse button click event.
+		    "scrollbar" move or drag the scrollbar
 		    "tabline"	select a tab page by mouse click.
 		    "tabmenu"	select a tabline menu entry.
 
@@ -113,6 +115,7 @@
 		  |drop_file| feature is present.
 
 		"findrepl":
+		  {only available when the GUI has a find/replace dialog}
 		  Perform a search and replace of text.  The supported items
 		  in {args} are:
 		    find_text:	string to find.
@@ -149,6 +152,22 @@
 				    8	alt is pressed
 				   16	ctrl is pressed
 
+		"scrollbar":
+		  Set or drag the left, right or horizontal scrollbar.  Only
+		  works when the scrollbar actually exists.  The supported
+		  items in {args} are:
+		    which:	scrollbar. The supported values are:
+				    left  Left scrollbar of the current window
+				    right Right scrollbar of the current window
+				    hor   Horizontal scrollbar
+		    value:	amount to scroll.  For the vertical scrollbars
+				the value can be 1 to the line-count of the
+				buffer.  For the horizontal scrollbar the
+				value can be between 1 and the maximum line
+				length, assuming 'wrap' is not set.
+		    dragging:	1 to drag the scrollbar and 0 to click in the
+				scrollbar.
+
 		"tabline":
 		  Inject a mouse click event on the tabline to select a
 		  tabpage. The supported items in {args} are:
@@ -284,27 +303,6 @@
 			GetVarname()->test_refcount()
 
 
-test_scrollbar({which}, {value}, {dragging})		*test_scrollbar()*
-		Pretend using scrollbar {which} to move it to position
-		{value}.  {which} can be:
-			left	Left scrollbar of the current window
-			right	Right scrollbar of the current window
-			hor	Horizontal scrollbar
-
-		For the vertical scrollbars {value} can be 1 to the
-		line-count of the buffer.  For the horizontal scrollbar the
-		{value} can be between 1 and the maximum line length, assuming
-		'wrap' is not set.
-
-		When {dragging} is non-zero it's like dragging the scrollbar,
-		otherwise it's like clicking in the scrollbar.
-		Only works when the {which} scrollbar actually exists,
-		obviously only when using the GUI.
-
-		Can also be used as a |method|: >
-			GetValue()->test_scrollbar('right', 0)
-
-
 test_setmouse({row}, {col})				*test_setmouse()*
 		Set the mouse position to be used for the next mouse action.
 		{row} and {col} are one based.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 5861fa8..c74bce6 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 Jan 31
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,19 +38,7 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Cannot use command modifier for "import 'name.vim' as vim9"
-
-range() returns list<number>, but it's OK if map() changes the type.
-#9665  Change internal_func_ret_type() to return current and declared type?
-
-When making a copy of a list or dict, do not keep the type? #9644
-    With deepcopy() all, with copy() this still fails:
-    var l: list<list<number>> = [[1], [2]]
-    l->copy()[0][0] = 'x'
-
 Once Vim9 is stable:
-- Add all the error numbers in a good place in documentation.
-    done until E1145
 - Check code coverage, add more tests if needed.
 - Use Vim9 for runtime files.
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index fb0a357..5b35dca 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.2.  Last change: 2022 Jan 15
+*various.txt*   For Vim version 8.2.  Last change: 2022 Feb 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -424,7 +424,7 @@
 m  *+mzscheme/dyn*	Mzscheme interface |mzscheme-dynamic| |/dyn|
 m  *+netbeans_intg*	|netbeans|
 T  *+num64*		64-bit Number support |Number|
-   			Always enabled since 8.2.0271, use v:numbersize to
+			Always enabled since 8.2.0271, use v:numbersize to
 			check the actual size of a Number.
 m  *+ole*		Win32 GUI only: |ole-interface|
 N  *+packages*		Loading |packages|
@@ -549,7 +549,7 @@
 			backward compatibility, the ">" after the register
 			name can be omitted.
 :redi[r] @">>		Append messages to the unnamed register.
-
+							*E1092*
 :redi[r] => {var}	Redirect messages to a variable.
 			In legacy script: If the variable doesn't exist, then
 			it is created.  If the variable exists, then it is
@@ -566,7 +566,7 @@
 
 :redi[r] =>> {var}	Append messages to an existing variable.  Only string
 			variables can be used.
-
+								 *E1185*
 :redi[r] END		End redirecting messages.
 
 							*:filt* *:filter*
@@ -649,7 +649,7 @@
 			used.  In this example |:silent| is used to avoid the
 			message about reading the file and |:unsilent| to be
 			able to list the first line of each file. >
-    		:silent argdo unsilent echo expand('%') . ": " . getline(1)
+		:silent argdo unsilent echo expand('%') . ": " . getline(1)
 <
 
 						*:verb* *:verbose*
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 225dee0..f0a5290 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.2.  Last change: 2021 Jul 24
+*version8.txt*  For Vim version 8.2.  Last change: 2022 Feb 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -25971,7 +25971,7 @@
 	|test_getvalue()|
 	|test_null_blob()|
 	|test_refcount()|
-	|test_scrollbar()|
+	test_scrollbar() (later replaced with |test_gui_event()|)
 	|test_setmouse()|
 	|win_execute()|
 	|win_splitmove()|
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 06f8925..afa3239 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 Jan 30
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -56,12 +56,12 @@
 rewrite old scripts, they keep working as before.  You may want to use a few
 `:def` functions for code that needs to be fast.
 
-:vim9[cmd] {cmd}				*:vim9* *:vim9cmd*
+:vim9[cmd] {cmd}				*:vim9* *:vim9cmd* *E1164*
 		Execute {cmd} using Vim9 script syntax and semantics.
 		Useful when typing a command and in a legacy script or
 		function.
 
-:leg[acy] {cmd}					*:leg* *:legacy*
+:leg[acy] {cmd}					*:leg* *:legacy* *E1189* *E1234*
 		Execute {cmd} using legacy script syntax and semantics.  Only
 		useful in a Vim9 script or a :def function.
 		Note that {cmd} cannot use local variables, since it is parsed
@@ -72,7 +72,7 @@
 2. Differences from legacy Vim script			*vim9-differences*
 
 Overview ~
-
+							*E1146*
 Brief summary of the differences you will most often encounter when using Vim9
 script and `:def` functions; details are below:
 - Comments start with #, not ": >
@@ -128,7 +128,7 @@
 that starts a comment: >
 	var name = value # comment
 	var name = value# error!
-
+<							*E1170*
 Do not start a comment with #{, it looks like the legacy dictionary literal
 and produces an error where this might be confusing.  #{{ or #{{{ are OK,
 these can be used to start a fold.
@@ -153,7 +153,7 @@
 - `:disassemble` is used for the function.
 - a function that is compiled calls the function or uses it as a function
   reference (so that the argument and return types can be checked)
-							*E1091*
+						*E1091* *E1191*
 If compilation fails it is not tried again on the next call, instead this
 error is given: "E1091: Function is not compiled: {name}".
 Compilation will fail when encountering a user command that has not been
@@ -183,14 +183,14 @@
 	  var d = {func: Legacy, value: 'text'}
 	  d.func()
 	enddef
-<							*E1096*
+<						*E1096* *E1174* *E1175*
 The argument types and return type need to be specified.  The "any" type can
 be used, type checking will then be done at runtime, like with legacy
 functions.
 							*E1106*
 Arguments are accessed by name, without "a:", just like any other language.
 There is no "a:" dictionary or "a:000" list.
-					*vim9-variable-arguments* *E1055*
+			*vim9-variable-arguments* *E1055* *E1160* *E1180*
 Variable arguments are defined as the last argument, with a name and have a
 list type, similar to TypeScript.  For example, a list of numbers: >
 	def MyFunc(...itemlist: list<number>)
@@ -206,7 +206,7 @@
 	enddef
 	MyFunc(v:none, 'LAST')  # first argument uses default value 'one'
 <
-						*vim9-ignored-argument*
+					*vim9-ignored-argument* *E1181*
 The argument "_" (an underscore) can be used to ignore the argument.  This is
 most useful in callbacks where you don't need it, but do need to give an
 argument to match the call.  E.g. when using map() two arguments are passed,
@@ -264,7 +264,7 @@
 
 
 Reloading a Vim9 script clears functions and variables by default ~
-							*vim9-reload*
+						*vim9-reload* *E1149* *E1150*
 When loading a legacy Vim script a second time nothing is removed, the
 commands will replace existing variables and functions and create new ones.
 
@@ -345,7 +345,8 @@
 	   }
 
 Although using a :def function probably works better.
-				*E1022* *E1103* *E1130* *E1131* *E1133* *E1134*
+				*E1022* *E1103* *E1130* *E1131* *E1133*
+				*E1134* *E1235*
 Declaring a variable with a type but without an initializer will initialize to
 false (for bool), empty (for string, list, dict, etc.) or zero (for number,
 any, etc.).  This matters especially when using the "any" type, the value will
@@ -355,13 +356,13 @@
 without any command.  The same for global, window, tab, buffer and Vim
 variables, because they are not really declared.  Those can also be deleted
 with `:unlet`.
-
+							*E1178*
 `:lockvar` does not work on local variables.  Use `:const` and `:final`
 instead.
 
 The `exists()` and `exists_compiled()` functions do not work on local variables
 or arguments.
-						*E1006* *E1041*
+				*E1006* *E1041* *E1167* *E1168* *E1213*
 Variables, functions and function arguments cannot shadow previously defined
 or imported variables and functions in the same script file.
 Variables may shadow Ex commands, rename the variable if needed.
@@ -414,7 +415,7 @@
 	[a, _, c] = theList
 To ignore any remaining items: >
 	[a, b; _] = longList
-
+<							*E1163*
 Declaring more than one variable at a time, using the unpack notation, is
 possible.  Each variable can have a type or infer it from the value: >
 	var [v1: number, v2] = GetValues()
@@ -456,7 +457,7 @@
 
 
 Omitting :call and :eval ~
-
+							*E1190*
 Functions can be called without `:call`: >
 	writefile(lines, 'file')
 Using `:call` is still possible, but this is discouraged.
@@ -516,7 +517,8 @@
 To avoid these problems Vim9 script uses a different syntax for a lambda,
 which is similar to JavaScript: >
 	var Lambda = (arg) => expression
-
+	var Lambda = (arg): type => expression
+<							*E1157*
 No line break is allowed in the arguments of a lambda up to and including the
 "=>" (so that Vim can tell the difference between an expression in parentheses
 and lambda arguments).  This is OK: >
@@ -532,7 +534,7 @@
 	filter(list, (k,
 		\	v)
 		\	=> v > 0)
-<							*vim9-lambda-arguments*
+<					*vim9-lambda-arguments* *E1172*
 In legacy script a lambda could be called with any number of extra arguments,
 there was no way to warn for not using them.  In Vim9 script the number of
 arguments must match.  If you do want to accept any arguments, or any further
@@ -541,7 +543,7 @@
 	var Callback = (..._) => 'anything'
 	echo Callback(1, 2, 3)  # displays "anything"
 
-<							*inline-function*
+<						*inline-function* *E1171*
 Additionally, a lambda can contain statements in {}: >
 	var Lambda = (arg) => {
 		g:was_called = 'yes'
@@ -735,7 +737,7 @@
 
 
 White space ~
-				*E1004* *E1068* *E1069* *E1074* *E1127*
+			*E1004* *E1068* *E1069* *E1074* *E1127* *E1202*
 Vim9 script enforces proper use of white space.  This is no longer allowed: >
 	var name=234	# Error!
 	var name= 234	# Error!
@@ -769,7 +771,7 @@
 	Func(
 	      arg	   # OK
 	      )
-
+<							*E1205*
 White space is not allowed in a `:set` command between the option name and a
 following "&", "!", "<", "=", "+=", "-=" or "^=".
 
@@ -779,6 +781,11 @@
 |curly-braces-names| cannot be used.
 
 
+Command modifiers are not ignored ~
+								*E1176*
+Using a command modifier for a command that does not use it gives an error.
+
+
 Dictionary literals ~
 						*vim9-literal-dict* *E1014*
 Traditionally Vim has supported dictionary literals with a {} syntax: >
@@ -837,7 +844,7 @@
 
 
 For loop ~
-
+							*E1254*
 The loop variable must not be declared yet: >
 	var i = 1
 	for i in [1, 2, 3]   # Error!
@@ -1103,7 +1110,7 @@
 			later in Vim9 script.  They can only be removed by
 			reloading the same script.
 
-							*:enddef* *E1057*
+					*:enddef* *E1057* *E1152* *E1173*
 :enddef			End of a function defined with `:def`. It should be on
 			a line by its own.
 
@@ -1182,6 +1189,67 @@
 	echo range(5)->map((i, _) => flist[i]())
 	# Result: [0, 1, 2, 3, 4]
 
+In some situations, especially when calling a Vim9 closure from legacy
+context, the evaluation will fail.  *E1248*
+
+
+Converting a function from legacy to Vim9 ~
+					*convert_legacy_function_to_vim9*
+These are the most changes that need to be made to convert a legacy function
+to a Vim9 function:
+
+- Change `func` or `function` to `def`.
+- Change `endfunc` or `endfunction` to `enddef`.
+- Add types to the function arguments.
+- If the function returns something, add the return type.
+- Change comments to start with # instead of ".
+
+  For example, a legacy function: >
+	func MyFunc(text)
+	  " function body
+	endfunc
+<  Becomes: >
+	def MyFunc(text: string): number
+	  # function body
+	enddef
+
+- Remove "a:" used for arguments. E.g.: >
+	return len(a:text)
+<  Becomes: >
+	return len(text)
+
+- Change `let` used to declare a variable to `var`.
+- Remove `let` used to assign a value to a variable.  This is for local
+  variables already declared and b: w: g: and t: variables.
+
+  For example, legacy function: >
+	  let lnum = 1
+	  let lnum += 3
+	  let b:result = 42
+<  Becomes: >
+	  var lnum = 1
+	  lnum += 3
+	  b:result = 42
+
+- Insert white space in expressions where needed.
+- Change "." used for concatenation to "..".
+
+  For example, legacy function: >
+	  echo line(1).line(2)
+<  Becomes: >
+	  echo line(1) .. line(2)
+
+- line continuation does not always require a backslash: >
+  	echo ['one',
+		\ 'two',
+		\ 'three'
+		\ ]
+<  Becomes: >
+	echo ['one',
+		'two',
+		'three'
+		]
+
 ==============================================================================
 
 4. Types					*vim9-types*
@@ -1208,7 +1276,7 @@
 
 These types can be used in declarations, but no simple value will actually
 have the "void" type.  Trying to use a void (e.g. a function without a
-return value) results in error *E1031* .
+return value) results in error *E1031*  *E1186* .
 
 There is no array type, use list<{type}> instead.  For a list constant an
 efficient implementation is used that avoids allocating lot of small pieces of
@@ -1346,7 +1414,7 @@
 such as "123", but leads to unexpected problems (and no error message) if the
 string doesn't start with a number.  Quite often this leads to hard-to-find
 bugs.
-
+							*E1206* *E1210* *E1212*
 In Vim9 script this has been made stricter.  In most places it works just as
 before, if the value used matches the expected type.  There will sometimes be
 an error, thus breaking backwards compatibility.  For example:
@@ -1368,9 +1436,15 @@
 	# typename(mylist) == "list<any>"
 	map(mylist, (i, v) => 'item ' .. i)
 	# typename(mylist) == "list<string>", no error
-
+<								*E1158*
 Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
 |flattennew()| instead.
+			 *E1211* *E1217* *E1218* *E1219* *E1220* *E1221*
+			 *E1222* *E1223* *E1224* *E1225* *E1226* *E1227*
+			 *E1228* *E1238* *E1250* *E1251* *E1252* *E1253*
+			 *E1256*
+Types are checked for most builtin functions to make it easier to spot
+mistakes.
 
 ==============================================================================
 
@@ -1459,16 +1533,16 @@
 
 
 Import ~
-					*:import* *:imp* *E1094* *E1047*
-					*E1048* *E1049* *E1053* *E1071*
+					*:import* *:imp* *E1094* *E1047* *E1262*
+					*E1048* *E1049* *E1053* *E1071* *E1236*
 The exported items can be imported in another Vim9 script: >
 	import "myscript.vim"
 
 This makes each item available as "myscript.item".
-							*:import-as*
+						*:import-as* *E1257* *E1261*
 In case the name is long or ambiguous, another name can be specified: >
 	import "thatscript.vim" as that
-<							*E1060*
+<						*E1060* *E1258* *E1259* *E1260*
 Then you can use "that.EXPORTED_CONST", "that.someValue", etc.  You are free
 to choose the name "that".  Use something that will be recognized as referring
 to the imported script.  Avoid command names, command modifiers and builtin
@@ -1526,17 +1600,19 @@
 	echo that
 		.name  # Error!
 <							*:import-cycle*
-The `import` commands are executed when encountered.  If that script (directly
-or indirectly) imports the current script, then items defined after the
-`import` won't be processed yet.  Therefore cyclic imports can exist, but may
-result in undefined items.
+The `import` commands are executed when encountered.  If script A imports
+script B, and B (directly or indirectly) imports A, this will be skipped over.
+At this point items in A after "import B" will not have been processed and
+defined yet.  Therefore cyclic imports can exist and not result in an error
+directly, but may result in an error for items in A after "import B" not being
+defined.  This does not apply to autoload imports, see the next section.
 
 
 Importing an autoload script ~
 							*vim9-autoload*
 For optimal startup speed, loading scripts should be postponed until they are
 actually needed.  Using the autoload mechanism is recommended:
-
+							*E1264*
 1. In the plugin define user commands, functions and/or mappings that refer to
    items imported from an autoload script. >
 	import autoload 'for/search.vim'
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 79d00a7..2906298 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.2.  Last change: 2022 Jan 08
+*windows.txt*   For Vim version 8.2.  Last change: 2022 Feb 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -168,7 +168,7 @@
 		Note: CTRL-S does not work on all terminals and might block
 		further input, use CTRL-Q to get going again.
 		Also see |++opt| and |+cmd|.
-							*E242*
+							*E242* *E1159*
 		Be careful when splitting a window in an autocommand, it may
 		mess up the window layout if this happens while making other
 		window layout changes.
