Update runtime files
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index d1a92df..28e2038 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt*	For Vim version 8.2.  Last change: 2019 May 05
+*arabic.txt*	For Vim version 8.2.  Last change: 2021 Jun 22
 
 
 		  VIM REFERENCE MANUAL	  by Nadim Shaikli
@@ -176,6 +176,13 @@
 	 and its support is preferred due to its level of offerings.
 	 'arabic' when 'termbidi' is enabled only sets the keymap.
 
+	 For vertical window isolation while setting 'termbidi' an LTR
+	 vertical separator like "l" or "𝖨" may be used.  It may also be
+	 hidden by changing its color to the foreground color: >
+		:set fillchars=vert:l
+		:hi VertSplit ctermbg=White
+<	Note that this is a workaround, not a proper solution.
+
    If, on the other hand, you'd like to be verbose and explicit and
    are opting not to use the 'arabic' short-cut command, here's what
    is needed (i.e. if you use ':set arabic' you can skip this section) -
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 62a69b7..1a9ba7a 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 10
+*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -780,12 +780,15 @@
 "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
 "\&{string}&" does the same as "//{string}/".
 						*pattern-delimiter* *E146*
-Instead of the '/' which surrounds the pattern and replacement string, you
-can use any other single-byte character, but not an alphanumeric character,
-'\', '"' or '|'.  This is useful if you want to include a '/' in the search
-pattern or replacement string.  Example: >
+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: >
 	:s+/+//+
 
+You can use most characters, but not an alphanumeric character, '\', '"' or
+'|'.  In Vim9 script you should not use '#' because it may be recognized as
+the start of a comment.
+
 For the definition of a pattern, see |pattern|.  In Visual block mode, use
 |/\%V| in the pattern to have the substitute work in the block only.
 Otherwise it works on whole lines anyway.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 8a84312..4356381 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 Jun 07
+*eval.txt*	For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4862,6 +4862,8 @@
 		The result is a Number.  If the line {lnum} is in a closed
 		fold, the result is the number of the first line in that fold.
 		If the line {lnum} is not in a closed fold, -1 is returned.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldclosed()
@@ -4870,6 +4872,8 @@
 		The result is a Number.  If the line {lnum} is in a closed
 		fold, the result is the number of the last line in that fold.
 		If the line {lnum} is not in a closed fold, -1 is returned.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldclosedend()
@@ -4883,6 +4887,8 @@
 		returned for lines where folds are still to be updated and the
 		foldlevel is unknown.  As a special case the level of the
 		previous line is usually available.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldlevel()
@@ -5758,6 +5764,8 @@
 		|getmatches()| is useful in combination with |setmatches()|,
 		as |setmatches()| can restore a list of matches saved by
 		|getmatches()|.
+		If {win} is specified, use the window with this number or
+		window ID instead of the current window.
 		Example: >
 			:echo getmatches()
 <			[{'group': 'MyGroup1', 'pattern': 'TODO',
@@ -5858,8 +5866,10 @@
 			valid	|TRUE|: recognized error message
 
 		When there is no error list or it's empty, an empty list is
-		returned. Quickfix list entries with non-existing buffer
-		number are returned with "bufnr" set to zero.
+		returned. Quickfix list entries with a non-existing buffer
+		number are returned with "bufnr" set to zero (Note: some
+		functions accept buffer number zero for the alternate buffer,
+		you may need to explicitly check for zero).
 
 		Useful application: Find pattern matches in multiple files and
 		do something with them: >
@@ -6003,12 +6013,12 @@
 		Can also be used as a |method|: >
 			GetRegname()->getregtype()
 
-gettabinfo([{arg}])					*gettabinfo()*
-		If {arg} is not specified, then information about all the tab
-		pages is returned as a |List|. Each List item is a |Dictionary|.
-		Otherwise, {arg} specifies the tab page number and information
-		about that one is returned.  If the tab page does not exist an
-		empty List is returned.
+gettabinfo([{tabnr}])					*gettabinfo()*
+		If {tabnr} is not specified, then information about all the
+		tab pages is returned as a |List|. Each List item is a
+		|Dictionary|.  Otherwise, {tabnr} specifies the tab page
+		number and information about that one is returned.  If the tab
+		page does not exist an empty List is returned.
 
 		Each List item is a |Dictionary| with the following entries:
 			tabnr		tab page number.
@@ -6061,11 +6071,11 @@
 <		Can also be used as a |method|: >
 			GetTabnr()->gettabwinvar(winnr, varname)
 
-gettagstack([{nr}])					*gettagstack()*
-		The result is a Dict, which is the tag stack of window {nr}.
-		{nr} can be the window number or the |window-ID|.
-		When {nr} is not specified, the current window is used.
-		When window {nr} doesn't exist, an empty Dict is returned.
+gettagstack([{winnr}])					*gettagstack()*
+		The result is a Dict, which is the tag stack of window {winnr}.
+		{winnr} can be the window number or the |window-ID|.
+		When {winnr} is not specified, the current window is used.
+		When window {winnr} doesn't exist, an empty Dict is returned.
 
 		The returned dictionary contains the following entries:
 			curidx		Current index in the stack. When at
diff --git a/runtime/doc/ft_ps1.txt b/runtime/doc/ft_ps1.txt
index df1480b..3eb89a4 100644
--- a/runtime/doc/ft_ps1.txt
+++ b/runtime/doc/ft_ps1.txt
@@ -1,4 +1,4 @@
-*ps1.txt*  A Windows PowerShell syntax plugin for Vim
+*ft_ps1.txt*  A Windows PowerShell syntax plugin for Vim
 
 Author:  Peter Provost <https://www.github.com/PProvost>
 License: Apache 2.0
diff --git a/runtime/doc/ft_raku.txt b/runtime/doc/ft_raku.txt
index 8439de5..00b140e 100644
--- a/runtime/doc/ft_raku.txt
+++ b/runtime/doc/ft_raku.txt
@@ -1,4 +1,4 @@
-*vim-raku.txt*	The Raku programming language filetype
+*ft_raku.txt*	The Raku programming language filetype
 
                                                       *vim-raku*
 
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 00db076..6fdfb85 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 May 27
+*index.txt*     For Vim version 8.2.  Last change: 2021 Jun 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1312,6 +1312,7 @@
 |:endtry|	:endt[ry]	end previous :try
 |:endwhile|	:endw[hile]	end previous :while
 |:enew|		:ene[w]		edit a new, unnamed buffer
+|:eval|		:ev[al]		evaluate an expression and discard the result
 |:ex|		:ex		same as ":edit"
 |:execute|	:exe[cute]	execute result of expressions
 |:exit|		:exi[t]		same as ":xit"
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index a8ae19c..b50bd65 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -200,9 +200,9 @@
 							*$* *<End>* *<kEnd>*
 $  or <End>		To the end of the line.  When a count is given also go
 			[count - 1] lines downward, or as far is possible.
-			|inclusive| motion.  If a count of 2 of larger is
+			|inclusive| motion.  If a count of 2 or larger is
 			given and the cursor is on the last line, that is an
-			error an the cursor doesn't move.
+			error and the cursor doesn't move.
 			In Visual mode the cursor goes to just after the last
 			character in the line.
 			When 'virtualedit' is active, "$" may move the cursor
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 19ddd9c..05489d7 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 May 31
+*options.txt*	For Vim version 8.2.  Last change: 2021 Jun 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5612,19 +5612,21 @@
 		- abbreviations are disabled
 		- 'autoindent' is reset
 		- 'expandtab' is reset
-		- 'formatoptions' is used like it is empty
+		- 'hkmap' is reset
 		- 'revins' is reset
 		- 'ruler' is reset
 		- 'showmatch' is reset
-		- 'smartindent' is reset
 		- 'smarttab' is reset
 		- 'softtabstop' is set to 0
 		- 'textwidth' is set to 0
 		- 'wrapmargin' is set to 0
+		- 'varsofttabstop' is made empty
 	These options keep their value, but their effect is disabled:
 		- 'cindent'
+		- 'formatoptions' is used like it is empty
 		- 'indentexpr'
 		- 'lisp'
+		- 'smartindent'
 	NOTE: When you start editing another file while the 'paste' option is
 	on, settings from the modelines or autocommands may change the
 	settings again, causing trouble when pasting text.  You might want to
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index c6b4b9e..9e13bdb 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2021 Jun 11
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Jun 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -844,6 +844,16 @@
   is reset (because it's not clear what you want to repeat).
 - When you want to use the Ex command with the same name, prepend a colon:
   ":cont", ":next", ":finish" (or shorter).
+							*vim9-debug*
+When debugging a compiled :def function, "step" will stop before every
+executed line, not every ingle nstruction.  Thus it works mostly like a not
+compiled function.  Access to local variables is limited you can use: >
+	echo varname
+But not much else.
+When executing a command that is not a specific bytecode instruction but
+executed like a normal Ex command, "step" will stop once in the compiled
+context, where local variables can be inspected, and once just before
+executing the command.
 
 The backtrace shows the hierarchy of function calls, e.g.:
 	>bt ~
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index 81ced87..8765617 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt*    For Vim version 8.2.  Last change: 2019 May 05
+*rileft.txt*    For Vim version 8.2.  Last change: 2021 Jun 13
 
 
 		  VIM REFERENCE MANUAL    by Avner Lottem
@@ -75,7 +75,7 @@
 
 o  Typing backwards					*ins-reverse*
    ----------------
-   In lieu of using full-fledged the 'rightleft' option, one can opt for
+   In lieu of using the full-fledged 'rightleft' option, one can opt for
    reverse insertion.  When the 'revins' (reverse insert) option is set,
    inserting happens backwards.  This can be used to type right-to-left
    text.  When inserting characters the cursor is not moved and the text
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index ab35aca..da4bf8e 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 May 30
+*syntax.txt*	For Vim version 8.2.  Last change: 2021 Jun 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1420,11 +1420,11 @@
 auto-detecting the *.e and *.E file extensions as Euphoria file type,
 add the following line to your startup file: >
 
-	:let filetype_euphoria="euphoria3"
+	:let filetype_euphoria = "euphoria3"
 
-	or
+<	or >
 
-	:let filetype_euphoria="euphoria4"
+	:let filetype_euphoria = "euphoria4"
 
 
 ERLANG						*erlang.vim* *ft-erlang-syntax*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 5b1457c..2d3bb37 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1384,6 +1384,7 @@
 +scrollbind	various.txt	/*+scrollbind*
 +signs	various.txt	/*+signs*
 +smartindent	various.txt	/*+smartindent*
++sodium	various.txt	/*+sodium*
 +sound	various.txt	/*+sound*
 +spell	various.txt	/*+spell*
 +startuptime	various.txt	/*+startuptime*
@@ -1959,7 +1960,9 @@
 :&	change.txt	/*:&*
 :&&	change.txt	/*:&&*
 :'	cmdline.txt	/*:'*
+:++	vim9.txt	/*:++*
 :,	cmdline.txt	/*:,*
+:--	vim9.txt	/*:--*
 :.	cmdline.txt	/*:.*
 :/	cmdline.txt	/*:\/*
 :0file	editing.txt	/*:0file*
@@ -3964,8 +3967,17 @@
 E1187	starting.txt	/*E1187*
 E1188	cmdline.txt	/*E1188*
 E119	eval.txt	/*E119*
+E1193	options.txt	/*E1193*
+E1194	options.txt	/*E1194*
+E1195	options.txt	/*E1195*
+E1196	options.txt	/*E1196*
+E1197	options.txt	/*E1197*
+E1198	options.txt	/*E1198*
+E1199	options.txt	/*E1199*
 E12	message.txt	/*E12*
 E120	eval.txt	/*E120*
+E1200	options.txt	/*E1200*
+E1201	options.txt	/*E1201*
 E121	eval.txt	/*E121*
 E122	eval.txt	/*E122*
 E123	eval.txt	/*E123*
@@ -6674,6 +6686,8 @@
 ft-zimbu-plugin	filetype.txt	/*ft-zimbu-plugin*
 ft-zsh-syntax	syntax.txt	/*ft-zsh-syntax*
 ft_ada.txt	ft_ada.txt	/*ft_ada.txt*
+ft_ps1.txt	ft_ps1.txt	/*ft_ps1.txt*
+ft_raku.txt	ft_raku.txt	/*ft_raku.txt*
 ft_rust.txt	ft_rust.txt	/*ft_rust.txt*
 ft_sql.txt	ft_sql.txt	/*ft_sql.txt*
 ftdetect	filetype.txt	/*ftdetect*
@@ -8602,7 +8616,6 @@
 ps1-folding	ft_ps1.txt	/*ps1-folding*
 ps1-keyword	ft_ps1.txt	/*ps1-keyword*
 ps1-syntax	ft_ps1.txt	/*ps1-syntax*
-ps1.txt	ft_ps1.txt	/*ps1.txt*
 psql	ft_sql.txt	/*psql*
 ptcap.vim	syntax.txt	/*ptcap.vim*
 pterm-mouse	options.txt	/*pterm-mouse*
@@ -9677,6 +9690,8 @@
 test_garbagecollect_now()	testing.txt	/*test_garbagecollect_now()*
 test_garbagecollect_soon()	testing.txt	/*test_garbagecollect_soon()*
 test_getvalue()	testing.txt	/*test_getvalue()*
+test_gui_drop_files()	testing.txt	/*test_gui_drop_files()*
+test_gui_mouse_event()	testing.txt	/*test_gui_mouse_event()*
 test_ignore_error()	testing.txt	/*test_ignore_error()*
 test_null_blob()	testing.txt	/*test_null_blob()*
 test_null_channel()	testing.txt	/*test_null_channel()*
@@ -10146,7 +10161,6 @@
 vim-modes	intro.txt	/*vim-modes*
 vim-modes-intro	intro.txt	/*vim-modes-intro*
 vim-raku	ft_raku.txt	/*vim-raku*
-vim-raku.txt	ft_raku.txt	/*vim-raku.txt*
 vim-script-intro	usr_41.txt	/*vim-script-intro*
 vim-use	intro.txt	/*vim-use*
 vim-variable	eval.txt	/*vim-variable*
@@ -10157,6 +10171,7 @@
 vim9-classes	vim9.txt	/*vim9-classes*
 vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
+vim9-debug	repeat.txt	/*vim9-debug*
 vim9-declaration	vim9.txt	/*vim9-declaration*
 vim9-declarations	usr_46.txt	/*vim9-declarations*
 vim9-differences	vim9.txt	/*vim9-differences*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index eef3227..8dc6dc3 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt*	For Vim version 8.2.  Last change: 2021 Jun 21
+*testing.txt*	For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2c20cea..0735598 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 Jun 13
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Jun 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,10 +38,13 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Memory eaten up by function returning a closure.  #8439
+Circular reference.  Should garbage collector find unused local variables?
+
 Vim9 - Make everything work:
-- Make debugging work - at least per function.  
-  - How to evaluate the stack and variables on the stack?
-  - FIXME in test_debugger.vim
+- possible leak in test_vim9_builtin ?
+- use CheckLegacyAndVim9Success(lines) in many more places
+- compile get_lambda_tv() in popup_add_timeout()
 - For builtin functions using tv_get_string*() use check_for_string() to be
   more strict about the argument type (not a bool).
     done: balloon_()
@@ -49,13 +52,13 @@
     map() could check that the return type of the function argument matches
     the type of the list or dict member. (#8092)
     Same for other functions, such as searchpair().
-- use CheckLegacyAndVim9Success(lines) in many more places
 - Test try/catch and throw better, also nested.
   Test that return inside try/finally jumps to finally and then returns.
 - Test that a function defined inside a :def function is local to that
   function, g: functions can be defined and script-local functions cannot be
   defined.
-- compile get_lambda_tv() in popup_add_timeout()
+- Unexpected error message when using "var x: any | x.key = 9", because "x" is
+  given the type number.  Can we use VAR_ANY?
 
 Once Vim9 is stable:
 - Add the "vim9script" feature, can use has('vim9script')
@@ -287,6 +290,9 @@
 Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
 changes.
 
+MS-Windows: instead of "edit with multiple Vims" use "Edit with Vim in
+multiple tabs". #8404
+
 When using ":bwipe!" also get rid of references to be buffer, e.g. in the
 jumplist and alternate file.
 
@@ -322,6 +328,9 @@
 Should add a match/str/list/pos method that also returns the test and position
 of submatches.  #8355
 
+Syntax highlight for a region does not work with a "nextgroup" if the start
+match is empty. #8449
+
 Check out PR #543 (Roland Puntaier).
 Patch for multibyte characters in langmap and applying a mapping on them.
 (Christian Brabandt, 2015 Jun 12, update July 25)
@@ -346,6 +355,7 @@
 
 Add a ModeChanged autocommand that has an argument indicating the old and new
 mode, as what's returned from mode().  Also used for switching Terminal mode.
+#8360, #7863, #7363
 
 Matchparen doesn't remove highlight after undo. (#7054)
 Is OK when syntax HL is active.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 6ca1d74..e8d97a9 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 Jun 12
+*vim9.txt*	For Vim version 8.2.  Last change: 2021 Jun 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -457,7 +457,7 @@
 	var Lambda = (arg) => expression
 
 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 parenthesis
+"=>" (so that Vim can tell the difference between an expression in parentheses
 and lambda arguments).  This is OK: >
 	filter(list, (k, v) =>
 			v > 0)
@@ -937,6 +937,16 @@
 You may also find this wiki useful.  It was written by an early adopter of
 Vim9 script: https://github.com/lacygoill/wiki/blob/master/vim/vim9.md
 
+							*:++* *:--*
+The ++ and -- commands have been added.  They are very similar to adding or
+subtracting one: >
+		++var
+		var += 1
+		--var
+		var -= 1
+
+Using ++var or --var in an expression is not supported yet.
+
 ==============================================================================
 
 3. New style functions					*fast-functions*