Update runtime files.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 25c5e0f..0c2fa52 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Mar 15
+*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1030,6 +1030,10 @@
 User				Never executed automatically.  To be used for
 				autocommands that are only executed with
 				":doautocmd".
+				Note that when `:doautocmd User MyEvent` is
+				used while there are no matching autocommands,
+				you will get an error.  If you don't want
+				that, define a dummy autocommand yourself.
 							*UserGettingBored*
 UserGettingBored		When the user presses the same key 42 times.
 				Just kidding! :-)
@@ -1074,9 +1078,10 @@
 				If the window is for another buffer, Vim
 				executes the BufEnter autocommands after the
 				WinEnter autocommands.
-				Note: When using ":split fname" the WinEnter
-				event is triggered after the split but before
-				the file "fname" is loaded.
+				Note: For split and tabpage commands the
+				WinEnter event is triggered after the split
+				or tab command but before the file is loaded.
+
 							*WinLeave*
 WinLeave			Before leaving a window.  If the window to be
 				entered next is for a different buffer, Vim
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 8cca763..fe457c9 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.0.  Last change: 2017 Feb 12
+*change.txt*    For Vim version 8.0.  Last change: 2018 Apr 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -533,6 +533,7 @@
 If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
 '#' with a zero value, shift right does not affect lines starting with '#'
 (these are supposed to be C preprocessor lines that must stay in column 1).
+This can be changed with the 'cino' option, see |cino-#|.
 
 When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
 much as possible to make the indent.  You can use ">><<" to replace an indent
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 4e47ef1..f0d459b 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.0.  Last change: 2017 Aug 11
+*channel.txt*      For Vim version 8.0.  Last change: 2018 Apr 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -55,7 +55,7 @@
 Common combination are:
 - Using a job connected through pipes in NL mode.  E.g., to run a style
   checker and receive errors and warnings.
-- Using a deamon, connecting over a socket in JSON mode.  E.g. to lookup
+- Using a daemon, connecting over a socket in JSON mode.  E.g. to lookup
   cross-references in a database.
 
 ==============================================================================
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 2e00ccf..97823f3 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 8.0.  Last change: 2018 Apr 17
+*develop.txt*   For Vim version 8.0.  Last change: 2018 Apr 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 35e7063..bcf14ee 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2018 Mar 23
+*eval.txt*	For Vim version 8.0.  Last change: 2018 Apr 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2438,8 +2438,10 @@
 term_sendkeys({buf}, {keys})	none	send keystrokes to a terminal
 term_setansicolors({buf}, {colors})
 				none	set ANSI palette in GUI color mode
-term_setkill({buf}, {how}) 	none	set signal to stop job in terminal
+term_setkill({buf}, {how})	none	set signal to stop job in terminal
 term_setrestore({buf}, {command}) none	set command to restore terminal
+term_setsize({buf}, {rows}, {cols})
+				none	set the size of a terminal
 term_start({cmd}, {options})	Job	open a terminal window and run a job
 term_wait({buf} [, {time}])	Number  wait for screen to be updated
 test_alloc_fail({id}, {countdown}, {repeat})
@@ -2466,7 +2468,7 @@
 toupper({expr})			String	the String {expr} switched to uppercase
 tr({src}, {fromstr}, {tostr})	String	translate chars of {src} in {fromstr}
 					to chars in {tostr}
-trim({text}[, {mask}]) 		String	trim characters in {mask} from {text}
+trim({text}[, {mask}])		String	trim characters in {mask} from {text}
 trunc({expr})			Float	truncate Float {expr}
 type({name})			Number	type of variable {name}
 undofile({name})		String	undo file name for {name}
@@ -6216,31 +6218,6 @@
 		characters.  nr2char(0) is a real NUL and terminates the
 		string, thus results in an empty string.
 
-option_restore({list})					*option_restore()*
-		Restore options previously saved by option_save().
-		When buffer-local options have been saved, this function must
-		be called when the same buffer is the current buffer.
-		When window-local options have been saved, this function must
-		be called when the same window is the current window.
-		When in the wrong buffer and/or window an error is given and
-		the local options won't be restored.
-		NOT IMPLEMENTED YET!
-
-option_save({list})					*option_save()*
-		Saves the options named in {list}.  The returned value can be
-		passed to option_restore().  Example: >
-			let s:saved_options = option_save([
-			    \ 'ignorecase',
-			    \ 'iskeyword',
-			    \ ])
-			 au <buffer> BufLeave *
-			    \ call option_restore(s:saved_options)
-<		The advantage over using `:let` is that global and local
-		values are handled and the script ID is restored, so that
-		`:verbose set` will show where the option was originally set,
-		not where it was restored.
-		NOT IMPLEMENTED YET!
-
 or({expr}, {expr})					*or()*
 		Bitwise OR on the two arguments.  The arguments are converted
 		to a number.  A List, Dict or Float argument causes an error.
@@ -8202,9 +8179,9 @@
 		   "term_name"	     name to use for the buffer name, instead
 				     of the first file name.
 		   "term_rows"	     vertical size to use for the terminal,
-				     instead of using 'termsize'
+				     instead of using 'termwinsize'
 		   "term_cols"	     horizontal size to use for the terminal,
-				     instead of using 'termsize'
+				     instead of using 'termwinsize'
 		   "vertical"	     split the window vertically
 		   "curwin"	     use the current window, do not split the
 				     window; fails if the current buffer
@@ -8422,7 +8399,7 @@
 
 		These colors are used in the GUI and in the terminal when
 		'termguicolors' is set.  When not using GUI colors (GUI mode
-		or |termguicolors|), the terminal window always uses the 16
+		or 'termguicolors'), the terminal window always uses the 16
 		ANSI colors of the underlying terminal.
 		{only available when compiled with the |+terminal| feature and
 		with GUI enabled and/or the |+termguicolors| feature}
@@ -8449,7 +8426,7 @@
 		Use "NONE" to not restore this window.
 		{only available when compiled with the |+terminal| feature}
 
-term_setsize({buf}, {rows}, {cols})			*term_setsize()*
+term_setsize({buf}, {rows}, {cols})		*term_setsize()* *E955*
 		Set the size of terminal {buf}. The size of the window
 		containing the terminal will also be adjusted, if possible.
 		If {rows} or {cols} is zero or negative, that dimension is not
@@ -8491,9 +8468,9 @@
 		   "term_name"	     name to use for the buffer name, instead
 				     of the command name.
 		   "term_rows"	     vertical size to use for the terminal,
-				     instead of using 'termsize'
+				     instead of using 'termwinsize'
 		   "term_cols"	     horizontal size to use for the terminal,
-				     instead of using 'termsize'
+				     instead of using 'termwinsize'
 		   "vertical"	     split the window vertically
 		   "curwin"	     use the current window, do not split the
 				     window; fails if the current buffer
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index f124079..a5f2a1c 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 8.0.  Last change: 2018 Feb 04
+*filetype.txt*  For Vim version 8.0.  Last change: 2018 Apr 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -319,6 +319,10 @@
 
 Note that the last one is the value of $VIMRUNTIME which has been expanded.
 
+Note that when using a plugin manager or |packages| many directories will be
+added to 'runtimepath'.  These plugins earch require their own directory,
+don't put them directly in ~/.vim/plugin.
+
 What if it looks like your plugin is not being loaded?  You can find out what
 happens when Vim starts up by using the |-V| argument: >
 
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 3d0c8d6..1157e15 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.0.  Last change: 2017 Aug 02
+*index.txt*     For Vim version 8.0.  Last change: 2018 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -959,7 +959,7 @@
 |v_i{|		i{		   same as iB
 |v_i}|		i}		   same as iB
 |v_o|		o		   move cursor to other corner of area
-|v_r|		r		2  delete highlighted area and start insert
+|v_r|		r		2  replace highlighted area with a character
 |v_s|		s		2  delete highlighted area and start insert
 |v_u|		u		2  make highlighted area lowercase
 |v_v|		v		   make Visual mode characterwise or stop
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index fe400a5..c196d3b 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2018 Apr 14
+*options.txt*	For Vim version 8.0.  Last change: 2018 Apr 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -7933,9 +7933,9 @@
 	Note that the "cterm" attributes are still used, not the "gui" ones.
 	NOTE: This option is reset when 'compatible' is set.
 
-						*'terminalscroll'* *'tlsl'*
-'terminalscroll' 'tlsl'	number	(default 10000)
-			global
+						*'termwinscroll'* *'twsl'*
+'termwinscroll' 'twsl'	number	(default 10000)
+			local to buffer
 			{not in Vi}
 			{not available when compiled without the
 			|+terminal| feature}
@@ -7943,21 +7943,21 @@
 	first 10% of the scrollback lines are deleted.  This is just to reduce
 	the memory usage.  See |Terminal-Normal|.
 
-						*'termkey'* *'tk'*
-'termkey' 'tk'		string	(default "")
+						*'termwinkey'* *'twk'*
+'termwinkey' 'twk'	string	(default "")
 			local to window
 			{not in Vi}
 	The key that starts a CTRL-W command in a terminal window.  Other keys
 	are sent to the job running in the window.
 	The <> notation can be used, e.g.: >
-		:set termkey=<C-L>
+		:set termwinkey=<C-L>
 <	The string must be one key stroke but can be multiple bytes.
 	When not set CTRL-W is used, so that CTRL-W : gets you to the command
-	line.  If 'termkey' is set to CTRL-L then CTRL-L : gets you to the
+	line.  If 'termwinkey' is set to CTRL-L then CTRL-L : gets you to the
 	command line.
 
-						*'termsize'* *'tms'*
-'termsize' 'tms'	string	(default "")
+						*'termwinsize'* *'tws'*
+'termwinsize' 'tws'	string	(default "")
 			local to window
 			{not in Vi}
 	Size of the |terminal| window.  Format: {rows}x{columns} or
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 29000bf..8ec74e0 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.0.  Last change: 2018 Feb 11
+*quickref.txt*  For Vim version 8.0.  Last change: 2018 Apr 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -927,8 +927,9 @@
 'termbidi'	  'tbidi'   terminal takes care of bi-directionality
 'termencoding'	  'tenc'    character encoding used by the terminal
 'termguicolors'	  'tgc'     use GUI colors for the terminal
-'termkey'	  'tk'	    key that precedes a Vim command in a terminal
-'termsize'	  'tms'	    size of a terminal window
+'termwinkey'	  'twk'	    key that precedes a Vim command in a terminal
+'termwinscroll'   'twsl'    max number of scrollback lines in a terminal window
+'termwinsize'	  'tws'	    size of a terminal window
 'terse'			    shorten some messages
 'textauto'	  'ta'	    obsolete, use 'fileformats'
 'textmode'	  'tx'	    obsolete, use 'fileformat'
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8562934..5895c05 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1088,8 +1088,9 @@
 'termbidi'	options.txt	/*'termbidi'*
 'termencoding'	options.txt	/*'termencoding'*
 'termguicolors'	options.txt	/*'termguicolors'*
-'termkey'	options.txt	/*'termkey'*
-'termsize'	options.txt	/*'termsize'*
+'termwinkey'	options.txt	/*'termwinkey'*
+'termwinscroll'	options.txt	/*'termwinscroll'*
+'termwinsize'	options.txt	/*'termwinsize'*
 'terse'	options.txt	/*'terse'*
 'textauto'	options.txt	/*'textauto'*
 'textmode'	options.txt	/*'textmode'*
@@ -1105,10 +1106,8 @@
 'titlelen'	options.txt	/*'titlelen'*
 'titleold'	options.txt	/*'titleold'*
 'titlestring'	options.txt	/*'titlestring'*
-'tk'	options.txt	/*'tk'*
 'tl'	options.txt	/*'tl'*
 'tm'	options.txt	/*'tm'*
-'tms'	options.txt	/*'tms'*
 'to'	options.txt	/*'to'*
 'toolbar'	options.txt	/*'toolbar'*
 'toolbariconsize'	options.txt	/*'toolbariconsize'*
@@ -1129,6 +1128,9 @@
 'ttyscroll'	options.txt	/*'ttyscroll'*
 'ttytype'	options.txt	/*'ttytype'*
 'tw'	options.txt	/*'tw'*
+'twk'	options.txt	/*'twk'*
+'tws'	options.txt	/*'tws'*
+'twsl'	options.txt	/*'twsl'*
 'tx'	options.txt	/*'tx'*
 'uc'	options.txt	/*'uc'*
 'udf'	options.txt	/*'udf'*
@@ -1932,11 +1934,18 @@
 :AdaTagDir	ft_ada.txt	/*:AdaTagDir*
 :AdaTagFile	ft_ada.txt	/*:AdaTagFile*
 :AdaTypes	ft_ada.txt	/*:AdaTypes*
+:Arguments	terminal.txt	/*:Arguments*
+:Break	terminal.txt	/*:Break*
+:Clear	terminal.txt	/*:Clear*
 :CompilerSet	usr_41.txt	/*:CompilerSet*
+:Continue	terminal.txt	/*:Continue*
 :DiffOrig	diff.txt	/*:DiffOrig*
 :DoMatchParen	pi_paren.txt	/*:DoMatchParen*
+:Evaluate	terminal.txt	/*:Evaluate*
 :Explore	pi_netrw.txt	/*:Explore*
+:Finish	terminal.txt	/*:Finish*
 :GLVS	pi_getscript.txt	/*:GLVS*
+:Gdb	terminal.txt	/*:Gdb*
 :GetLatestVimScripts_dat	pi_getscript.txt	/*:GetLatestVimScripts_dat*
 :GnatFind	ft_ada.txt	/*:GnatFind*
 :GnatPretty	ft_ada.txt	/*:GnatPretty*
@@ -1961,11 +1970,14 @@
 :Ntree	pi_netrw.txt	/*:Ntree*
 :Nw	pi_netrw.txt	/*:Nw*
 :Nwrite	pi_netrw.txt	/*:Nwrite*
+:Over	terminal.txt	/*:Over*
 :P	various.txt	/*:P*
 :Pexplore	pi_netrw.txt	/*:Pexplore*
 :Print	various.txt	/*:Print*
+:Program	terminal.txt	/*:Program*
 :Rexplore	pi_netrw.txt	/*:Rexplore*
 :RmVimball	pi_vimball.txt	/*:RmVimball*
+:Run	terminal.txt	/*:Run*
 :RustEmitAsm	ft_rust.txt	/*:RustEmitAsm*
 :RustEmitIr	ft_rust.txt	/*:RustEmitIr*
 :RustExpand	ft_rust.txt	/*:RustExpand*
@@ -1974,14 +1986,19 @@
 :RustPlay	ft_rust.txt	/*:RustPlay*
 :RustRun	ft_rust.txt	/*:RustRun*
 :Sexplore	pi_netrw.txt	/*:Sexplore*
+:Source	terminal.txt	/*:Source*
+:Step	terminal.txt	/*:Step*
+:Stop	terminal.txt	/*:Stop*
 :TOhtml	syntax.txt	/*:TOhtml*
 :TarDiff	pi_tar.txt	/*:TarDiff*
 :Termdebug	terminal.txt	/*:Termdebug*
+:TermdebugCommand	terminal.txt	/*:TermdebugCommand*
 :Texplore	pi_netrw.txt	/*:Texplore*
 :UseVimball	pi_vimball.txt	/*:UseVimball*
 :Vexplore	pi_netrw.txt	/*:Vexplore*
 :VimballList	pi_vimball.txt	/*:VimballList*
 :Vimuntar	pi_tar.txt	/*:Vimuntar*
+:Winbar	terminal.txt	/*:Winbar*
 :X	editing.txt	/*:X*
 :XMLent	insert.txt	/*:XMLent*
 :XMLns	insert.txt	/*:XMLns*
@@ -4590,6 +4607,7 @@
 E952	autocmd.txt	/*E952*
 E953	eval.txt	/*E953*
 E954	options.txt	/*E954*
+E955	eval.txt	/*E955*
 E96	diff.txt	/*E96*
 E97	diff.txt	/*E97*
 E98	diff.txt	/*E98*
@@ -4831,6 +4849,8 @@
 Tcl	if_tcl.txt	/*Tcl*
 TermChanged	autocmd.txt	/*TermChanged*
 TermResponse	autocmd.txt	/*TermResponse*
+Terminal-Job	terminal.txt	/*Terminal-Job*
+Terminal-Normal	terminal.txt	/*Terminal-Normal*
 Terminal-mode	terminal.txt	/*Terminal-mode*
 TerminalOpen	autocmd.txt	/*TerminalOpen*
 TextChanged	autocmd.txt	/*TextChanged*
@@ -6499,6 +6519,7 @@
 g:tar_readoptions	pi_tar.txt	/*g:tar_readoptions*
 g:tar_secure	pi_tar.txt	/*g:tar_secure*
 g:tar_writeoptions	pi_tar.txt	/*g:tar_writeoptions*
+g:terminal_ansi_colors	terminal.txt	/*g:terminal_ansi_colors*
 g:tex_comment_nospell	syntax.txt	/*g:tex_comment_nospell*
 g:tex_conceal	syntax.txt	/*g:tex_conceal*
 g:tex_fast	syntax.txt	/*g:tex_fast*
@@ -7856,8 +7877,8 @@
 option-list	quickref.txt	/*option-list*
 option-summary	options.txt	/*option-summary*
 option-window	options.txt	/*option-window*
-option_restore()	eval.txt	/*option_restore()*
-option_save()	eval.txt	/*option_save()*
+option_restore()	todo.txt	/*option_restore()*
+option_save()	todo.txt	/*option_save()*
 options	options.txt	/*options*
 options-changed	version5.txt	/*options-changed*
 options-in-terminal	terminal.txt	/*options-in-terminal*
@@ -8919,6 +8940,7 @@
 term_dumpload()	eval.txt	/*term_dumpload()*
 term_dumpwrite()	eval.txt	/*term_dumpwrite()*
 term_getaltscreen()	eval.txt	/*term_getaltscreen()*
+term_getansicolors()	eval.txt	/*term_getansicolors()*
 term_getattr()	eval.txt	/*term_getattr()*
 term_getcursor()	eval.txt	/*term_getcursor()*
 term_getjob()	eval.txt	/*term_getjob()*
@@ -8931,6 +8953,7 @@
 term_list()	eval.txt	/*term_list()*
 term_scrape()	eval.txt	/*term_scrape()*
 term_sendkeys()	eval.txt	/*term_sendkeys()*
+term_setansicolors()	eval.txt	/*term_setansicolors()*
 term_setkill()	eval.txt	/*term_setkill()*
 term_setrestore()	eval.txt	/*term_setrestore()*
 term_setsize()	eval.txt	/*term_setsize()*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index cce087f..59aeb97 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.0.  Last change: 2018 Apr 05
+*terminal.txt*	For Vim version 8.0.  Last change: 2018 Apr 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -80,16 +80,16 @@
 			evaluating an expression.
 	CTRL-W CTRL-C	ends the job, see below |t_CTRL-W_CTRL-C|
 
-See option 'termkey' for specifying another key instead of CTRL-W that
-will work like CTRL-W.  However, typing 'termkey' twice sends 'termkey' to
-the job.  For example:
-	'termkey' CTRL-W    move focus to the next window
-	'termkey' :	    enter an Ex command
-	'termkey' 'termkey' send 'termkey' to the job in the terminal
-	'termkey' .	    send a CTRL-W to the job in the terminal
-	'termkey' N	    go to terminal Normal mode, see below
-	'termkey' CTRL-N    same as CTRL-W N
-	'termkey' CTRL-C    same as |t_CTRL-W_CTRL-C|
+See option 'termwinkey' for specifying another key instead of CTRL-W that
+will work like CTRL-W.  However, typing 'termwinkey' twice sends 'termwinkey'
+to the job.  For example:
+	'termwinkey' CTRL-W    move focus to the next window
+	'termwinkey' :	       enter an Ex command
+	'termwinkey' 'termwinkey' send 'termwinkey' to the job in the terminal
+	'termwinkey' .	       send a CTRL-W to the job in the terminal
+	'termwinkey' N	       go to terminal Normal mode, see below
+	'termwinkey' CTRL-N    same as CTRL-W N
+	'termwinkey' CTRL-C    same as |t_CTRL-W_CTRL-C|
 							*t_CTRL-\_CTRL-N*
 The special key combination CTRL-\ CTRL-N can be used to switch to Normal
 mode, just like this works in any other mode.
@@ -125,7 +125,7 @@
 
 Size and color ~
 							*terminal-size-color*
-See option 'termsize' for controlling the size of the terminal window.
+See option 'termwinsize' for controlling the size of the terminal window.
 (TODO: scrolling when the terminal is larger than the window)
 
 The job running in the terminal can change the colors.  The default foreground
@@ -139,7 +139,7 @@
     hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
 <
 							*g:terminal_ansi_colors*
-In GUI mode or with |termguicolors|, the 16 ANSI colors used by default in new
+In GUI mode or with 'termguicolors', the 16 ANSI colors used by default in new
 terminal windows may be configured using the variable
 `g:terminal_ansi_colors`, which should be a list of 16 color names or
 hexadecimal color codes, similar to those accepted by |highlight-guifg|.  When
@@ -269,22 +269,22 @@
 							*terminal-resizing*
 The size of the terminal can be in one of three modes:
 
-1. The 'termsize' option is empty: The terminal size follows the window size.
-   The minimal size is 2 screen lines with 10 cells.
+1. The 'termwinsize' option is empty: The terminal size follows the window
+   size.  The minimal size is 2 screen lines with 10 cells.
 
-2. The 'termsize' option is "rows*cols", where "rows" is the minimal number of
-   screen rows and "cols" is the minimal number of cells.
+2. The 'termwinsize' option is "rows*cols", where "rows" is the minimal number
+   of screen rows and "cols" is the minimal number of cells.
 
-3. The 'termsize' option is "rowsXcols" (where the x is upper or lower case).
-   The terminal size is fixed to the specified number of screen lines and
-   cells.  If the window is bigger there will be unused empty space.
+3. The 'termwinsize' option is "rowsXcols" (where the x is upper or lower
+   case).  The terminal size is fixed to the specified number of screen lines
+   and cells.  If the window is bigger there will be unused empty space.
 
 If the window is smaller than the terminal size, only part of the terminal can
 be seen (the lower-left part).
 
 The |term_getsize()| function can be used to get the current size of the
 terminal.  |term_setsize()| can be used only when in the first or second mode,
-not when 'termsize' is "rowsXcols".
+not when 'termwinsize' is "rowsXcols".
 
 
 Terminal-Job and Terminal-Normal mode ~
@@ -294,7 +294,7 @@
 The terminal contents can change at any time.  This is called Terminal-Job
 mode.
 
-Use CTRL-W N (or 'termkey' N) to switch to Terminal-Normal mode.  Now the
+Use CTRL-W N (or 'termwinkey' N) to switch to Terminal-Normal mode.  Now the
 contents of the terminal window is under control of Vim, the job output is
 suspended.  CTRL-\ CTRL-N does the same.
 
@@ -316,7 +316,7 @@
 
 When the job outputs lines in the terminal, such that the contents scrolls off
 the top, those lines are remembered and can be seen in Terminal-Normal mode.
-The number of lines is limited by the 'terminalscroll' option. When going over
+The number of lines is limited by the 'termwinscroll' option. When going over
 this limit, the first 10% of the scrolled lins are deleted and are lost.
 
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 98304e8..9c26255 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2018 Apr 05
+*todo.txt*      For Vim version 8.0.  Last change: 2018 Apr 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -36,53 +36,34 @@
 -------------------- Known bugs and current work -----------------------
 
 Terminal emulator window:
-- dump diff sometimes creates a different way of repeating.
-   Example: https://api.travis-ci.org/v3/job/359102504/log.txt
-  unclear why this can happen.
-- Passing 'term' as $TERM doesn't work in GUI.
 - Still some stuff to implement and bugs to fix, see src/terminal.c
-- GUI: problem with split window and sourcing the current buffer into python?
-    (Blay263, 2018 Mar 31)
-- Terminal debugger: need a way to (re) open the source window, where current
-  position is displayed.
-
-Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
-#2611)
-
-Patch to fix vimgrep adding to wrong quickfix list. (Yegappan, 2018 Mar 25)
 
 Problem with sudo. #2758
 
-Code refactoring, macro for message, #2729
-
-Fix for crash with non-dict argument to job options. (ichizok, #2765)
-
-Patch to enforce c89 compliance. (James McCoy, #2735)
-With fix for Mac from Kazunobu.
-
-Block insert doesn't work if the first line is auto-indented. (Christian
-Brabandt, 2018 Apr 4, #2778)
-
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
 Patch to avoid bad highlighting caused by #if. (ichizok, #2731)
 
-Patch to make mkdir() more like the shell command. (James McCoy, #2775)
-
-Implement option_save() and option_restore()?  Or remove the help.
+Patch to refactor qf_set_properties(). (Yegappan, Apr 17, #2812)
 
 Patch for static analysis warnings. (Christian Brabandt, 2018 Apr 1, #2770)
+Ther are more here: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
 Patch to refactor ex_helpgrep. (Yegappan, #2766, 2018 Mar 30)
 Also in email, take the one with a test.
 
+Allow for C99 features, decide which ones are OK:
+- "inline"
+- "long long"
+- flexible array members (change code to avoid FORTIFY_SOURCE problems)
+
 Looks like an error for inserting register makes ":file other" not work.
 (Tom M, 2018 Mar 28)  Reset did_emsg after inserting a register.
 Or at the top of the loop? (Apr 4)
 
 Patch to fix mouse pointer after :tselect. (Hirohito Higashi, #2709)
-How to reproduce the problem?
+How to reproduce the problem?  Remarks by Hirohito, Apr 8.
 
 Patch to avoid job killed when I/O is disconnected. (ichizok, #2734)
 
@@ -117,6 +98,10 @@
 
 Cursor in status line after search. (#2530)
 
+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.
+
 Patch to fix that an empty buffer remains when using :argedit. (Christian,
 #2713)  Updated patch.
 
@@ -154,6 +139,10 @@
 When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
 Also see #2337
 
+Python indenting: alternative way to indent arguments:
+http://orchistro.tistory.com/236
+Should be supported with a flag.
+
 Starting job with cwd option, when the directory does not exist, gives a
 confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
 
@@ -188,6 +177,30 @@
 Patch to use the xdiff library instead of external diff. (Christian Brabandt,
 2018 Mar 20, #2732)
 
+Implement option_save() and option_restore():
+option_restore({list})					*option_restore()*
+		Restore options previously saved by option_save().
+		When buffer-local options have been saved, this function must
+		be called when the same buffer is the current buffer.
+		When window-local options have been saved, this function must
+		be called when the same window is the current window.
+		When in the wrong buffer and/or window an error is given and
+		the local options won't be restored.
+
+option_save({list})					*option_save()*
+		Saves the options named in {list}.  The returned value can be
+		passed to option_restore().  Example: >
+			let s:saved_options = option_save([
+			    \ 'ignorecase',
+			    \ 'iskeyword',
+			    \ ])
+			 au <buffer> BufLeave *
+			    \ call option_restore(s:saved_options)
+<		The advantage over using `:let` is that global and local
+		values are handled and the script ID is restored, so that
+		`:verbose set` will show where the option was originally set,
+		not where it was restored.
+
 "gvim --remote" from a directory with non-word characters changes the current
 directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
 Also see #1689.
@@ -255,6 +268,9 @@
 in #846)
 Doesn't work on Windows yet.  Not ready to included, hard coded paths.
 
+Win32 GUI: when running a fast timer, the cursor no longer blinks.
+Was reported: cursor blinks in terminal on widows with a timer. (xtal8, #2142)
+
 When a timer is running and typing CTRL-R on the command line, it is not
 redrawn properly. (xtal8, 2017 Oct 23, #2241)
 
@@ -581,9 +597,6 @@
 Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
 Update Aug 2017: #1954
 
-Characters deleted on completion. (Adrià Farrés, 2017 Apr 20, #1645)
-Remarks from Christian Brabandt (Apr 21)
-
 The TermResponse event is not triggered when a plugin has set 'eventignore' to
 "all".  Netrw does this. (Gary Johnson, 2017 Jan 24)
 Postpone the event until 'eventignore' is reset.
@@ -762,6 +775,8 @@
 
 Patch to support CamelCase for spell checking: See a lower-to-upper case
 change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235)
+patch for 'spellcamelcase' option: spellcheck each CamelCased word.
+(Ben Tucker, 2016 Dec 2)
 
 Idea from Sven: record sequence of keys.  Useful to show others what they are
 doing (look over the shoulder), and also to see what happened.
@@ -778,9 +793,6 @@
 
 Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
 
-patch for 'spellcamelcase' option: spellcheck each CamelCased word.
-(Ben Tucker, 2016 Dec 2)
-
 When using ":diffput" through a mapping, undo in the target buffer isn't
 synced.  (Ryan Carney, 2016 Sep 14)
 
@@ -1204,6 +1216,9 @@
 New OpenOffice spell files support this with ICONV.  But they are not
 compatible with Vim spell files.  The old files can no longer be downloaded.
 
+Spell checking: Add a feature to only consider two spaces after a dot to start
+a new sentence.  Don't give the capitalization error when there is one space.
+
 xterm should be able to pass focus changes to Vim, so that Vim can check for
 buffers that changed.  Perhaps in misc.c, function selectwindow().
 Xterm 224 supports it!
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 09f01ab..31a53c0 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 8.0.  Last change: 2010 Jul 20
+*usr_11.txt*	For Vim version 8.0.  Last change: 2018 Apr 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -234,7 +234,7 @@
 
 WHAT TO DO?					*swap-exists-choices*
 
-If dialogs are supported you will be asked to select one of five choices:
+If dialogs are supported you will be asked to select one of six choices:
 
   Swap file ".main.c.swp" already exists! ~
   [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 537eb37..bf324e6 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.0.  Last change: 2018 Mar 03
+*usr_41.txt*	For Vim version 8.0.  Last change: 2018 Apr 11
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -988,6 +988,8 @@
 	term_getstatus()	get the status of a terminal
 	term_gettitle()		get the title of a terminal
 	term_gettty()		get the tty name of a terminal
+	term_setansicolors()	set 16 ANSI colors, used for GUI
+	term_getansicolors()	get 16 ANSI colors, used for GUI
 
 Timers:						*timer-functions*
 	timer_start()		create a timer