Update runtime files
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 4eb7462..19720e1 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -563,16 +563,15 @@
 
 MAN					*ft-man-plugin* *:Man* *man.vim*
 
-Displays a manual page in a nice way.  Also see the user manual
-|find-manpage|.
+This plugin displays a manual page in a nice way.  See |find-manpage| in the
+user manual for more information.
 
-To start using the ":Man" command before any manual page was loaded, source
-this script from your startup vimrc file: >
-
+To start using the |:Man| command before any manual page has been loaded,
+source this script from your startup |vimrc| file: >
 	runtime ftplugin/man.vim
 
 Options:
-'iskeyword'	the '.' character is added to be able to use CTRL-] on the
+'iskeyword'	The '.' character is added to support the use of CTRL-] on the
 		manual page name.
 
 Commands:
@@ -582,24 +581,25 @@
 
 Global mapping:
 <Leader>K	Displays the manual page for the word under the cursor.
-<Plug>ManPreGetPage  idem, allows for using a mapping: >
-			nmap <F1> <Plug>ManPreGetPage<CR>
+<Plug>ManPreGetPage
+		idem, allows for using a mapping: >
+			nmap <F1> <Plug>ManPreGetPage
 
 Local mappings:
 CTRL-]		Jump to the manual page for the word under the cursor.
 CTRL-T		Jump back to the previous manual page.
-q		Same as ":quit"
+q		Same as the |:quit| command.
 
 To use a vertical split instead of horizontal: >
 	let g:ft_man_open_mode = 'vert'
 To use a new tab: >
 	let g:ft_man_open_mode = 'tab'
 
-To enable folding use this: >
-  	let g:ft_man_folding_enable = 1
-If you do not like the default folding, use an autocommand to add your desired
+To enable |folding|, use this: >
+	let g:ft_man_folding_enable = 1
+If you do not like the default folding, use an |autocommand| to add your desired
 folding style instead.  For example: >
-        autocmd FileType man setlocal foldmethod=indent foldenable
+	autocmd FileType man setlocal foldmethod=indent foldenable
 
 If you would like :Man {number} {name} to behave like man {number} {name} by
 not running man {name} if no page is found, then use this: >
@@ -612,7 +612,7 @@
 
 MANPAGER				      *manpager.vim*
 
-The :Man command allows you to turn Vim into a manpager (that syntax highlights
+The |:Man| command allows you to turn Vim into a manpager (that syntax highlights
 manpages and follows linked manpages on hitting CTRL-]).
 
 For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 6b38b8c..00d01bc 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2020 Aug 15
+*syntax.txt*	For Vim version 8.2.  Last change: 2020 Nov 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5305,6 +5305,12 @@
 Without the "default" in the C syntax file, the highlighting would be
 overruled when the syntax file is loaded.
 
+To have a link survive `:highlight clear`, which is useful if you have
+highlighting for a specific filetype and you want to keep it when selecting
+another color scheme, put a command like this in the
+"after/syntax/{filetype}.vim" file: >
+    highlight! default link cComment Question
+
 ==============================================================================
 15. Cleaning up						*:syn-clear* *E391*
 
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 1d751c3..08815ef 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.2.  Last change: 2020 Nov 15
+*terminal.txt*	For Vim version 8.2.  Last change: 2020 Nov 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -123,12 +123,14 @@
 
 							*options-in-terminal*
 After opening the terminal window and setting 'buftype' to "terminal" the
-TerminalOpen autocommand event is triggered.  This makes it possible to set
-options specifically for the window and buffer.  Example: >
-   au TerminalOpen * if &buftype == 'terminal' | setlocal bufhidden=hide | endif
-The <abuf> is set to the terminal buffer, but if there is no window (hidden
-terminal) then setting options will happen in the wrong buffer, therefore the
-check for &buftype in the example.
+|TerminalWinOpen| autocommand event is triggered.  This makes it possible to set
+options specifically for the terminal window and buffer.  Example: >
+   au TerminalWinOpen * setlocal bufhidden=hide
+
+There is also the |TerminalOpen| event, but this may be triggered for a hidden
+terminal, and the current window and buffer may not be for the new terminal.
+You need to use <abuf>, which is set to the terminal buffer.  Example: >
+    au TerminalOpen * call setbufvar(+expand('<abuf>'), '&colorcolumn', 123)
 
 Mouse events (click and drag) are passed to the terminal.  Mouse move events
 are only passed when Vim itself is receiving them.  For a terminal that is
@@ -504,7 +506,7 @@
 			+	missing position in first file
 			-	missing position in second file
 			>	cursor position in first file, not in second
-			<	cursor position in secone file, not in first
+			<	cursor position in second file, not in first
 
 		Using the "s" key the top and bottom parts are swapped.  This
 		makes it easy to spot a difference.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index b8088d5..454c0c2 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 Nov 19
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Nov 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,8 +38,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Coverity errors in October and November.
-
 Vim9 - Change
 - Drop support for #{} early December.  Close #7310
   -> Does it work to recognize lambda?
@@ -47,8 +45,10 @@
 	var int = 5
 	{x: int, y: int}
 Vim9 - Making everything work:
+- Compile: for [key, value] in items(map): Also support @r, $VAR, etc.
 - Make map() give an error if the resulting type of the first argument is
-  wrong.  Only works if the type is known?
+  wrong.  Only works if the type is known?  Is this slow (need to go over all
+  items)?
 - Run the same tests in :def and Vim9 script, like in Test_expr7_not()
 - need to check type when a declaration specifies a type: #6507
 	let nr: number = 'asdf'
@@ -57,8 +57,6 @@
   the script-local function, not a global one.
 - Make sure that where a callback is expected a function can be used (without
   quotes). E.g. sort() and map().  Also at the script level.
-- assignment to more complex lval: list[1][2][3] = 8   #7309
-  Also "list[0] += value".  test in Test_assign_dict_unknown_type().
 - ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
   Add command to parse range at runtime?
 - When defining an :autocmd or :command, how to specify using Vim9 syntax?
@@ -77,9 +75,6 @@
 - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
 - Expand `=expr` in :mkspell
-- 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.
 - Does this work already: can use func as reference:
 	def SomeFunc() ...
 	map(list, SomeFunc)
@@ -87,7 +82,6 @@
 - make 0 == 'string' fail on the script level, like inside :def.
 - Check that when using a user function name without prefix, it does not find
   a global function.  Prefixing g: is required.
-- Compile: for [key, value] in items(map)
 - Need the equivalent of get_lval() and set_var_lval() to implement assignment
   to nested list and dict members.
     - Assignment to dict doesn't work:
@@ -127,8 +121,9 @@
 - Test each level of expressions properly, with type checking
 - Test try/catch and throw better, also nested.
   Test return inside try/finally jumps to finally and then returns.
-- Test: Function declared inside a :def function is local, disappears at the
-  end of the function.  Unless g: is used, just like with variables.
+- 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.
 - implement :type
 - import type declaration?
 - Future work: See |vim9-classes|
@@ -160,7 +155,6 @@
 	     current window.
     ? - switch between current window and all popup windows
     Esc in popup window goes back to previous current window
-- Cursor not updated before a redraw, making it jump. (#5943)
 - Add a termcap entry for changing the cursor when it goes under the popup and
   back.  like t_SI and t_EI  (t_SU and t_EU, where "U" means under?)
 - With terminal in popup, allow for popup_hide() to temporarily hide it.?
@@ -278,6 +272,9 @@
 
 Remove SPACE_IN_FILENAME ? It is only used for completion.
 
+Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
+Scroll doesn't work correctly, why?
+
 Add 'termguiattr' option, use "gui=" attributes in the terminal?  Would work
 with 'termguicolors'. #1740
 
@@ -292,9 +289,6 @@
 This is useful e.g. when a popup was created that disables mappings, we need
 to return from vgetc() to make this happen.  #7011
 
-Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
-Scroll doesn't work correctly, why?
-
 Expanding <mods> should put the tab number from cmdmod.tab before "tab".
 Any way to convert "$" back by using a special value? (#6901)
 
@@ -323,6 +317,9 @@
     BufIsRenamed  (after buffer ID gets another name)
 The buffer list and windows are locked, no changes possible
 
+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.
+
 Matchparen doesn't remove highlight after undo. (#7054)
 Is OK when syntax HL is active.
 
@@ -766,6 +763,7 @@
 
 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
@@ -896,9 +894,6 @@
 or asyncmake:
   https://github.com/yegappan/asyncmake
 
-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.
-
 Add an option with file patterns, to be used when unloading a buffer: If there
 is a match, remove entries for the buffer from marks, jumplist, etc.  To be
 used for git temp files.
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 951a307..f7dc1fc 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -76,7 +76,7 @@
 Also asynchronous are timers.  They can fire once or repeatedly and invoke a
 function to do any work.  For example: >
 	let tempTimer = timer_start(4000, 'CheckTemp')
-This will call the CheckTemp() function four seconds (4000 milli seconds)
+This will call the CheckTemp() function four seconds (4000 milliseconds)
 later.  See |timer_start()|.
 
 
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 9d42b68..085e445 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 Nov 20
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Nov 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -388,6 +388,9 @@
 	var result = start
 	:+ print
 
+Note that the colon is not required for the |+cmd| argument: >
+	edit +6 fname
+
 It is also possible to split a function header over multiple lines, in between
 arguments: >
 	def MyFunc(
@@ -1122,7 +1125,7 @@
 `:var`.  This is used in many languages.  The semantics might be slightly
 different, but it's easily recognized as a declaration.
 
-Using `:const`  for constants is common, but the semantics vary.  Some
+Using `:const`  for constants is common, but the semantics varies.  Some
 languages only make the variable immutable, others also make the value
 immutable.  Since "final" is well known from Java for only making the variable
 immutable we decided to use that.  And then `:const` can be used for making
@@ -1182,7 +1185,7 @@
 considered false.  Thus using a string for a condition would often not give an
 error and be considered false.  That is confusing.
 
-In Vim9 type checking is more strict to avoid mistakes.  Where a condition is
+In Vim9 type checking is stricter to avoid mistakes.  Where a condition is
 used, e.g. with the `:if` command and the `||` operator, only boolean-like
 values are accepted:
 	true:  `true`, `v:true`, `1`, `0 < 9`