diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 96bcb93..f6e3810 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2019 Dec 22
+*editing.txt*   For Vim version 8.2.  Last change: 2020 May 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -475,6 +475,9 @@
 	:w ++enc=latin1 newfile
 This writes the current buffer to "newfile" in latin1 format.
 
+The message given when writing a file will show "[converted]" when
+'fileencoding' or the value specified with ++enc differs from 'encoding'.
+
 There may be several ++opt arguments, separated by white space.  They must all
 appear before any |+cmd| argument.
 
@@ -1079,9 +1082,9 @@
 
 							*:q* *:quit*
 :q[uit]			Quit the current window.  Quit Vim if this is the last
-			window.  This fails when changes have been made and
-			Vim refuses to |abandon| the current buffer, and when
-			the last file in the argument list has not been
+			|edit-window|.  This fails when changes have been made
+			and Vim refuses to |abandon| the current buffer, and
+			when the last file in the argument list has not been
 			edited.
 			If there are other tab pages and quitting the last
 			window in the current tab page the current tab page is
@@ -1107,18 +1110,22 @@
 			|quickfix|).
 
 							*:wq*
-:wq [++opt]		Write the current file and quit.  Writing fails when
-			the file is read-only or the buffer does not have a
-			name.  Quitting fails when the last file in the
-			argument list has not been edited.
+:wq [++opt]		Write the current file and close the window.  If this
+			was the last |edit-window| Vim quits.
+			Writing fails when the file is read-only or the buffer
+			does not have a name.  Quitting fails when the last
+			file in the argument list has not been edited.
 
-:wq! [++opt]		Write the current file and quit.  Writing fails when
-			the current buffer does not have a name.
+:wq! [++opt]		Write the current file and close the window.  If this
+			was the last |edit-window| Vim quits.  Writing fails
+			when the current buffer does not have a name.
 
-:wq [++opt] {file}	Write to {file} and quit.  Quitting fails when the
+:wq [++opt] {file}	Write to {file} and close the window.  If this was the
+			last |edit-window| Vim quits.  Quitting fails when the
 			last file in the argument list has not been edited.
 
-:wq! [++opt] {file}	Write to {file} and quit.
+:wq! [++opt] {file}	Write to {file} and close the current window.  Quit
+			Vim if this was the last |edit-window|.
 
 :[range]wq[!] [++opt] [file]
 			Same as above, but only write the lines in [range].
@@ -1135,10 +1142,10 @@
 			Same as :xit.
 
 							*ZZ*
-ZZ			Write current file, if modified, and quit (same as
-			":x").  (Note: If there are several windows for the
-			current file, the file is written if it was modified
-			and the window is closed).
+ZZ			Write current file, if modified, and close the current
+			window (same as ":x").
+			If there are several windows for the current file,
+			only the current window is closed.
 
 							*ZQ*
 ZQ			Quit without checking for changes (same as ":q!").
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 315a5f3..78d557f 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2020 Apr 26
+*index.txt*     For Vim version 8.2.  Last change: 2020 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -364,8 +364,8 @@
 				   register x]
 |Y|		["x]Y		   yank N lines [into register x]; synonym for
 				   "yy"
-|ZZ|		ZZ		   store current file if modified, and exit
-|ZQ|		ZQ		   exit current file always
+|ZZ|		ZZ		   write if buffer changed and close window
+|ZQ|		ZQ		   close window without writing
 |[|		[{char}		   square bracket command (see |[| below)
 		\		   not used
 |]|		]{char}		   square bracket command (see |]| below)
@@ -1721,7 +1721,7 @@
 |:wqall|	:wqa[ll]	write all changed buffers and quit Vim
 |:wundo|	:wu[ndo]	write undo information to a file
 |:wviminfo|	:wv[iminfo]	write to viminfo file
-|:xit|		:x[it]		write if buffer changed and quit window or Vim
+|:xit|		:x[it]		write if buffer changed and close window
 |:xall|		:xa[ll]		same as ":wqall"
 |:xmapclear|	:xmapc[lear]	remove all mappings for Visual mode
 |:xmap|		:xm[ap]		like ":map" but for Visual mode
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 26435d1..9041f87 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.2.  Last change: 2020 Apr 13
+*popup.txt*  For Vim version 8.2.  Last change: 2020 May 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -150,6 +150,7 @@
 - When the job ends, the popup window closes.
 - The popup window can be closed with `popup_close()`, the terminal buffer
   then becomes hidden.
+- It is not possible to enter Terminal-Normal mode.
 - The default Pmenu color is only used for the border and padding.  To change
   the color of the terminal itself set the Terminal highlight group before
   creating the terminal.  Setting 'wincolor' later can work but requires the
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 0bab64a..34f7f18 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 8.2.  Last change: 2020 Mar 24
+*recover.txt*   For Vim version 8.2.  Last change: 2020 May 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -125,12 +125,12 @@
 command:
 
 					*:pre* *:preserve* *E313* *E314*
-:pre[serve]		Write all text for all buffers into swap files.  The
-			original file is no longer needed for recovery.
-			This sets a flag in the current buffer.  When the '&'
-			flag is present in 'cpoptions' the swap file will not
-			be deleted for this buffer when Vim exits and the
-			buffer is still loaded |cpo-&|.
+:pre[serve]		Write all text for the current buffer into its swap
+			file.  The original file is no longer needed for
+			recovery.  This sets a flag in the current buffer.
+			When the '&' flag is present in 'cpoptions' the swap
+			file will not be deleted for this buffer when Vim
+			exits and the buffer is still loaded |cpo-&|.
 
 A Vim swap file can be recognized by the first six characters: "b0VIM ".
 After that comes the version number, e.g., "3.0".
diff --git a/runtime/doc/tags b/runtime/doc/tags
index e8d7d25..18e88f5 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6127,6 +6127,7 @@
 edit-intro	editing.txt	/*edit-intro*
 edit-no-break	usr_25.txt	/*edit-no-break*
 edit-paragraph-join	usr_25.txt	/*edit-paragraph-join*
+edit-window	windows.txt	/*edit-window*
 editing.txt	editing.txt	/*editing.txt*
 efm-%>	quickfix.txt	/*efm-%>*
 efm-entries	quickfix.txt	/*efm-entries*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 7bc3945..acc55fe 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 May 07
+*todo.txt*      For Vim version 8.2.  Last change: 2020 May 11
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,23 +38,22 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Patch to test TERM signal. (Dominique, #6055)
+
+Include src/po/vim.pot
+
 Vim9 script:
-Big changes, may need design:
-- Make closures work:
+Make closures work:
   - call closure from not compiled context
   - Create closure in a loop.  Need to make a list of them.
-- Having constant expr evaluation separate does not scale.
-  First parse the expression, then simplify, then generate code.
-- At the vim9 script level: Allow using a function that is defined later.
-  Requires compiling functions only when the whole script has been sourced.
-  Like Javascript "hoisting", but only at the script level:
-  0. If script was sourced before, clear all script-local functions and
-     variables. (variables still to be implemented)
-  1. Discovery phase: Read the file to find all functions, variable
-     declarations and imports If a variable has a constant expression we get
-     the type, otherwise it will be "any".  Follow imports recursively.
-  2. Compilation phase: compile :def function bodies, using declared types
-  3. Execution phase: Execute imports when encountered. (skip over functions)
+Forward declarations:
+  - Cleanup when sourcing a script again: all script-local variables, imports
+    and functions are deleted.
+  - make sure only constants in declarations are executed, no function calls.
+  - Declare a variable at script level without an assignment.
+	let var: string
+    Error without a type or assignment
+	let var  # error!
 Making everything work:
 - Test that a script-local function in Vim9 script cannot be deleted.
 - Test that a function defined inside a :def function is local to that
@@ -62,7 +61,13 @@
   defined.
 - Check that when using a user function name without prefix, it does not find
   a global function.  Prefixing g: is required.
-- Compile let [var, var] = expr
+- Compile: let [var, var] = expr
+- Compile: for [key, value] in items(map)
+- Assignment to dict doesn't work:
+      let ret: dict<string> = #{}
+      ret[i] = string(i)
+- Appending to dict item doesn't work:
+    let d[i] ..= value
 - Compile replacement of :s command: s/pat/\=expr/
 - Compile redir to local variable: var_redir_start().
 - Compile builtin functions that access local variables:
@@ -79,6 +84,7 @@
 - expandcmd() with `=expr` in filename uses legacy expression.
 - eval_expr() in ex_cexpr()
 - eval_expr() call in dbg_parsearg() and debuggy_find()
+- Make "true" and "false" work in vim9script
 New syntax and functionality:
 Improve error checking:
 - "echo Func()" is an error if Func() does not return anything.
@@ -254,14 +260,14 @@
 
 Patch to add Turkish manual. (Emir Sarı, #5641)
 
+Patch to add lua sleep function. (Prabir Shrestha, #6057)
+Alternative: use vim.call and vim.fn: #6063
+
 Patch to add getmarklist() (Yegappan, #6032)
 
 Patch to support different color for undercurl in cterm.
 (Timur Celik, #6011)
 
-When SIGTSTP is ignored, don't let CTRL-Z suspend Vim? (Kurtis Rader, #5990)
-Fixed by patch #6026.  Makes tests fail...
-
 Patch to support cindent option to handle pragmas differently.
 (Max Rumpf, #5468)
 
@@ -294,6 +300,10 @@
 With bash ":make" does not set v:shell_error.  Possible solution: set
 'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}"  #5994
 
+When changing the crypt key the buffer should be considered modified.
+Like when changing 'fileformat'.  Save the old key in save_file_ff().
+(Ninu-Ciprian Marginean)
+
 Strange sequence of BufWipeout and BufNew events while doing omni-complete.
 (Paul Jolly, #5656)
 Get BufDelete without preceding BufNew. (Paul Jolly, #5694)
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index cb880c1..3eec280 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 May 06
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 May 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -134,7 +134,7 @@
 
 In legacy script the functions are created when encountered, but parsed only
 when used.  This allows for defining functions in any order and having them
-call each other: >
+call each other, so long as the function is defined when it is called: >
 	func One()
 	   call Two()
 	endfunc
@@ -145,22 +145,25 @@
 	endfunc
 	call One()
 
-In Vim9 script the functions are compiled.  If using the same functions as the
-above example it is not possible to compile function One without knowing that
-function Two exists. Or this would require a runtime check, which is slow and
-does not allow for compile time type checking.
+In Vim9 script the functions are compiled.  When using the same functions as
+the above example it is not possible to compile function One without knowing
+that function Two exists. Or this would require a runtime check, which is slow
+and does not allow for compile time type checking.
 
 When sourcing a Vim9 script this happens in four phases:
 1. Cleanup: If the script was sourced before all script-local variables,
    imports and functions are deleted.
-2. Discovery: The script is read and encountered functions, imports and
-   variables are recognized.  The type is parsed.  Variable initializers that
-   are a constant are evaluated, this can give the type of the variable.
+2. Discovery: The script is read and declarations of functions, imports and
+   variables are recognized and the type is parsed.  Variable initializers
+   that are a constant are evaluated, this can also give the type of the
+   variable.
 3. Compilation: Functions are compiled.  The script-local functions, imports
-   and variables from the discovery phase are recognized and types are
-   checked.
-4. Execution: the commands in the script are executed. Functions are skipped
-   over.  Variable initializers are evaluated, unless they are a constant.
+   and variables from the discovery phase are found and types are checked.
+4. Execution: the commands in the script are executed, top to bottom.
+   Functions are skipped over, they do do not need to be processed again.
+   Variable initializers are evaluated when encountered.  Note that if a
+   function called earlier has set the value this will be over-written. It is
+   best to declare variables before where they are used to avoid confusion.
 
 The result is that items defined at the script level can be used anywhere in
 the script. This allows for putting the main function at the top: >
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 6129b8d..2b01fb3 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.2.  Last change: 2020 Mar 19
+*windows.txt*   For Vim version 8.2.  Last change: 2020 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -291,9 +291,9 @@
 CTRL-W CTRL-Q						*CTRL-W_CTRL-Q*
 		Without {count}: Quit the current window.  If {count} is
 		given quit the {count} window.
-
-		When quitting the last window (not counting a help window),
-		exit Vim.
+							*edit-window*
+		When quitting the last edit window (not counting help or
+		preview windows), exit Vim.
 
 		When 'hidden' is set, and there is only one window for the
 		current buffer, it becomes hidden.  When 'hidden' is not set,
@@ -312,8 +312,9 @@
 		    :+quit  " quit the next window
 		    :+2quit " quit the second next window
 <
-		When closing a help window, Vim will try to restore the
-		previous window layout |:helpclose|.
+		When closing a help window, and this is not the only window,
+		Vim will try to restore the previous window layout, see
+		|:helpclose|.
 
 :q[uit]!
 :{count}q[uit]!
@@ -335,9 +336,9 @@
 		changed and the [!] is used, the buffer becomes hidden (unless
 		there is another window editing it).
 
-		When there is only one window in the current tab page and
-		there is another tab page, this closes the current tab page.
-		|tab-page|.
+		When there is only one |edit-window| in the current tab page
+		and there is another tab page, this closes the current tab
+		page.  |tab-page|.
 
 		This command fails when:			*E444*
 		- There is only one window on the screen.
