diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 989bd25..a0e37b5 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 8.0.  Last change: 2017 Jul 11
+*cmdline.txt*   For Vim version 8.0.  Last change: 2017 Sep 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -826,6 +826,7 @@
 			       *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
 			       *:<sfile>* *<sfile>* *:<afile>* *<afile>*
 			       *:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
+			       *:<cexpr>* *<cexpr>*
 			       *<slnum>* *E495* *E496* *E497* *E499* *E500*
 Note: these are typed literally, they are not special keys!
 	<cword>    is replaced with the word under the cursor (like |star|)
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 7361d42..9951028 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 8.0.  Last change: 2017 Feb 03
+*diff.txt*      For Vim version 8.0.  Last change: 2017 Sep 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -226,8 +226,8 @@
 				(searching from the end of the line).  The
 				text in between is highlighted.  This means
 				that parts in the middle that are still the
-				same are highlighted anyway.  Only "iwhite" of
-				'diffopt' is used here.
+				same are highlighted anyway.  The 'diffopt'
+				flags "iwhite" and "icase" are used here.
 |hl-DiffDelete|	DiffDelete	Deleted lines.  Also called filler lines,
 				because they don't really exist in this
 				buffer.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 1650ee8..edc12ef 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2017 Sep 11
+*eval.txt*	For Vim version 8.0.  Last change: 2017 Sep 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4787,7 +4787,9 @@
 
 		Each List item is a Dictionary with the following entries:
 			bufnr		number of buffer in the window
-			height		window height
+			height		window height (excluding winbar)
+			winbar		1 if the window has a toolbar, 0
+					otherwise
 			loclist		1 if showing a location list
 					{only with the +quickfix feature}
 			quickfix	1 if quickfix or location list window
@@ -5676,6 +5678,7 @@
 			"s"	Select
 			"x"	Visual
 			"l"	langmap |language-mapping|
+			"t"	Terminal-Job
 			""	Normal, Visual and Operator-pending
 		When {mode} is omitted, the modes for "" are used.
 
@@ -8021,9 +8024,9 @@
 
 term_getcursor({buf})					*term_getcursor()*
 		Get the cursor position of terminal {buf}. Returns a list with
-		two numbers and a dictionary: [rows, cols, dict].
+		two numbers and a dictionary: [row, col, dict].
 
-		"rows" and "cols" are one based, the first screen cell is row
+		"row" and "col" are one based, the first screen cell is row
 		1, column 1.  This is the cursor position of the terminal
 		itself, not of the Vim window.
 
@@ -8138,6 +8141,10 @@
 		means the character CTRL-X.
 		{only available when compiled with the |+terminal| feature}
 
+term_setsize({buf}, {expr})				*term_setsize()*
+		Not implemented yet.
+		{only available when compiled with the |+terminal| feature}
+
 term_start({cmd}, {options})				*term_start()*
 		Open a terminal window and run {cmd} in it.
 
@@ -8609,6 +8616,7 @@
 		When {nr} is zero, the height of the current window is
 		returned.  When window {nr} doesn't exist, -1 is returned.
 		An existing window always has a height of zero or more.
+		This excludes any window toolbar line.
 		Examples: >
   :echo "The current window has " . winheight(0) . " lines."
 <
@@ -8936,7 +8944,7 @@
 toolbar			Compiled with support for |gui-toolbar|.
 ttyin			input is a terminal (tty)
 ttyout			output is a terminal (tty)
-unix			Unix version of Vim.
+unix			Unix version of Vim. *+unix*
 unnamedplus		Compiled with support for "unnamedplus" in 'clipboard'
 user_commands		User-defined commands.
 vertsplit		Compiled with vertically split windows |:vsplit|.
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 7fb6a59..dc77123 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 8.0.  Last change: 2017 Sep 16
+*gui.txt*       For Vim version 8.0.  Last change: 2017 Sep 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -784,11 +784,12 @@
 from the main menu bar.  You must then use the |:popup| or |:tearoff| command
 to display it.
 
-							*window-toolbar*
+					*window-toolbar* *WinBar*
 Each window can have a local toolbar.  This uses the first line of the window,
-thus reduces the space for the text by one line.
+thus reduces the space for the text by one line.  The items in the toolbar
+must start with "WinBar".
 
-Only text can be used.  When using Unicode special characters can be used to
+Only text can be used.  When using Unicode, special characters can be used to
 make the items look like icons.
 
 If the items do not fit then the last ones cannot be used.  The toolbar does
@@ -802,6 +803,8 @@
 <
 The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
 
+When splitting the window the window toolbar is not copied to the new window.
+
 							*popup-menu*
 In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
 special menu "PopUp".  This is the menu that is displayed when the right mouse
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index e202c33..3d0c8d6 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1583,13 +1583,17 @@
 |:tjump|	:tj[ump]	like ":tselect", but jump directly when there
 				is only one match
 |:tlast|	:tl[ast]	jump to last matching tag
+|:tmapclear|	:tmapc[lear]	remove all mappings for Terminal-Job mode
+|:tmap|		:tma[p]		like ":map" but for Terminal-Job mode
 |:tmenu|	:tm[enu]	define menu tooltip
 |:tnext|	:tn[ext]	jump to next matching tag
+|:tnoremap|	:tno[remap]	like ":noremap" but for Terminal-Job mode
 |:topleft|	:to[pleft]	make split window appear at top or far left
 |:tprevious|	:tp[revious]	jump to previous matching tag
 |:trewind|	:tr[ewind]	jump to first matching tag
 |:try|		:try		execute commands, abort on error or exception
 |:tselect|	:ts[elect]	list matching tags and select one
+|:tunmap|	:tunma[p]	like ":unmap" but for Terminal-Job mode
 |:tunmenu|	:tu[nmenu]	remove menu tooltip
 |:undo|		:u[ndo]		undo last change(s)
 |:undojoin|	:undoj[oin]	join next change with previous undo block
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 287a1d6..24ceb47 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 8.0.  Last change: 2017 Aug 24
+*intro.txt*     For Vim version 8.0.  Last change: 2017 Sep 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -264,6 +264,10 @@
 	Juergen Weigert		Lattice version, AUX improvements, UNIX and
 				MS-DOS ports, autoconf
 	Stefan 'Sec' Zehl	Maintainer of vim.org
+	Yasuhiro Matsumoto	many MS-Windows improvements
+	Ken Takata		fixes and features
+	Kazunobu Kuriyama	GTK 3
+	Christian Brabandt	many fixes, features, user support, etc.
 
 I wish to thank all the people that sent me bug reports and suggestions.  The
 list is too long to mention them all here.  Vim would not be the same without
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index fcba510..80e9077 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.0.  Last change: 2017 May 30
+*map.txt*       For Vim version 8.0.  Last change: 2017 Sep 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -55,7 +55,7 @@
 :im[ap]	{lhs} {rhs}		|mapmode-i|		*:im* *:imap*
 :lm[ap]	{lhs} {rhs}		|mapmode-l|		*:lm* *:lmap*
 :cm[ap]	{lhs} {rhs}		|mapmode-c|		*:cm* *:cmap*
-:tm[ap]	{lhs} {rhs}		|mapmode-t|		*:tma* *:tmap*
+:tma[p]	{lhs} {rhs}		|mapmode-t|		*:tma* *:tmap*
 			Map the key sequence {lhs} to {rhs} for the modes
 			where the map command applies.  The result, including
 			{rhs}, is then further scanned for mappings.  This
@@ -89,7 +89,7 @@
 :iu[nmap] {lhs}			|mapmode-i|		*:iu*   *:iunmap*
 :lu[nmap] {lhs}			|mapmode-l|		*:lu*   *:lunmap*
 :cu[nmap] {lhs}			|mapmode-c|		*:cu*   *:cunmap*
-:tu[nmap] {lhs}			|mapmode-t|		*:tunma* *:tunmap*
+:tunma[p] {lhs}			|mapmode-t|		*:tunma* *:tunmap*
 			Remove the mapping of {lhs} for the modes where the
 			map command applies.  The mapping may remain defined
 			for other modes where it applies.
@@ -125,7 +125,7 @@
 :im[ap]				|mapmode-i|
 :lm[ap]				|mapmode-l|
 :cm[ap]				|mapmode-c|
-:tm[ap]				|mapmode-t|
+:tma[p]				|mapmode-t|
 			List all key mappings for the modes where the map
 			command applies.  Note that ":map" and ":map!" are
 			used most often, because they include the other modes.
@@ -140,7 +140,7 @@
 :im[ap] {lhs}			|mapmode-i|		*:imap_l*
 :lm[ap] {lhs}			|mapmode-l|		*:lmap_l*
 :cm[ap] {lhs}			|mapmode-c|		*:cmap_l*
-:tm[ap] {lhs}			|mapmode-t|		*:tmap_l*
+:tma[p] {lhs}			|mapmode-t|		*:tmap_l*
 			List the key mappings for the key sequences starting
 			with {lhs} in the modes where the map command applies.
 			{not in Vi}
@@ -694,7 +694,7 @@
 you type slowly, or your system is slow, reset the 'timeout' option.  Then you
 might want to set the 'ttimeout' option.
 
-                            				*map-precedence*
+			      				*map-precedence*
 Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
 global mappings.  When a buffer-local mapping is the same as a global mapping,
 Vim will use the buffer-local mapping.  In addition, Vim will use a complete
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 3072793..b5e5847 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2017 Aug 27
+*options.txt*	For Vim version 8.0.  Last change: 2017 Sep 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -423,6 +423,16 @@
 							*$HOME-windows*
 On MS-Windows, if $HOME is not defined as an environment variable, then
 at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
+If $HOMEDRIVE is not set then $USERPROFILE is used.
+
+This expanded value is not exported to the environment, this matters when
+running an external command: >
+	:echo system('set | findstr ^HOME=')
+and >
+	:echo luaeval('os.getenv("HOME")')
+should echo nothing (an empty string) despite exists('$HOME') being true.
+When setting $HOME to a non-empty string it will be exported to the
+subprocesses.
 
 
 Note the maximum length of an expanded option is limited.  How much depends on
@@ -722,7 +732,8 @@
 
 	Vim may set this option automatically at startup time when Vim is
 	compiled with the |+termresponse| feature and if |t_u7| is set to the
-	escape sequence to request cursor position report.
+	escape sequence to request cursor position report.  The response can
+	be found in |v:termu7resp|.
 
 			*'antialias'* *'anti'* *'noantialias'* *'noanti'*
 'antialias' 'anti'	boolean (default: off)
@@ -870,11 +881,12 @@
 <	Vim will guess the value.  In the GUI this should work correctly,
 	in other cases Vim might not be able to guess the right value.
 
-	When the t_BG option is set, Vim will use it to request the background
+	When the |t_RB| option is set, Vim will use it to request the background
 	color from the terminal.  If the returned RGB value is dark/light and
 	'background' is not dark/light, 'background' will be set and the
 	screen is redrawn.  This may have side effects, make t_BG empty in
-	your .vimrc if you suspect this problem.
+	your .vimrc if you suspect this problem.  The response to |t_RB| can
+	be found in |v:termrgbresp|.
 
 	When starting the GUI, the default value for 'background' will be
 	"light".  When the value is not set in the .gvimrc, and Vim detects
@@ -4363,9 +4375,9 @@
 			{not in Vi}
 			{only available when compiled with |+xim| and
 			|+GUI_GTK|}
-	This option specifies the input style of Input Method.
-	Set to zero if you want to use on-the-spot style.
-	Set to one if you want to use over-the-spot style.
+	This option specifies the input style of Input Method:
+	0   use on-the-spot style
+	1   over-the-spot style
 	See: |xim-input-style|
 
 	For a long time on-the-spot sytle had been used in GTK version of vim,
@@ -5746,6 +5758,18 @@
 <	Replace the ';' with a ':' or whatever separator is used.  Note that
 	this doesn't work when $INCL contains a comma or white space.
 
+						*'perldll'*
+'perldll'		string	(default depends on the build)
+			global
+			{not in Vi}
+			{only available when compiled with the |+perl/dyn|
+			feature}
+	Specifies the name of the Perl shared library. The default is
+	DYNAMIC_PERL_DLL, which was specified at compile time.
+	Environment variables are expanded |:set_env|.
+	This option cannot be set from a |modeline| or in the |sandbox|, for
+	security reasons.
+
 			*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
 'preserveindent' 'pi'	boolean	(default off)
 			local to buffer
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 753f461..cfbfe4c 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 8.0.  Last change: 2017 Jun 13
+*quickfix.txt*  For Vim version 8.0.  Last change: 2017 Sep 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -47,11 +47,6 @@
 							*quickfix-ID*
 Each quickfix list has a unique identifier called the quickfix ID and this
 number will not change within a Vim session. The getqflist() function can be
-used to get the identifier assigned to a list.
-
-							*quickfix-ID*
-Each quickfix list has a unique identifier called the quickfix ID and this
-number will not change within a Vim session. The getqflist() function can be
 used to get the identifier assigned to a list. There is also a quickfix list
 number which may change whenever more than ten lists are added to a quickfix
 stack.
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 326b405..c4d6790 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.0.  Last change: 2017 Aug 19
+*quickref.txt*  For Vim version 8.0.  Last change: 2017 Sep 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -749,6 +749,7 @@
 'iminsert'	  'imi'     use :lmap or IM in Insert mode
 'imsearch'	  'ims'     use :lmap or IM when typing a search pattern
 'imstatusfunc'    'imsf'    function to obtain X input method status
+'imstyle'	  'imst'    specifies the input style of the input method
 'include'	  'inc'     pattern to be used to find an include file
 'includeexpr'	  'inex'    expression used to process an include line
 'incsearch'	  'is'	    highlight match while typing search pattern
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f2c2518..31836c1 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4,6 +4,7 @@
 $	motion.txt	/*$*
 $HOME	options.txt	/*$HOME*
 $HOME-use	version5.txt	/*$HOME-use*
+$HOME-windows	options.txt	/*$HOME-windows*
 $MYGVIMRC	gui.txt	/*$MYGVIMRC*
 $MYVIMRC	starting.txt	/*$MYVIMRC*
 $VIM	starting.txt	/*$VIM*
@@ -366,7 +367,9 @@
 'ims'	options.txt	/*'ims'*
 'imsearch'	options.txt	/*'imsearch'*
 'imsf'	options.txt	/*'imsf'*
+'imst'	options.txt	/*'imst'*
 'imstatusfunc'	options.txt	/*'imstatusfunc'*
+'imstyle'	options.txt	/*'imstyle'*
 'inc'	options.txt	/*'inc'*
 'include'	options.txt	/*'include'*
 'includeexpr'	options.txt	/*'includeexpr'*
@@ -746,6 +749,7 @@
 'path'	options.txt	/*'path'*
 'pdev'	options.txt	/*'pdev'*
 'penc'	options.txt	/*'penc'*
+'perldll'	options.txt	/*'perldll'*
 'pex'	options.txt	/*'pex'*
 'pexpr'	options.txt	/*'pexpr'*
 'pfn'	options.txt	/*'pfn'*
@@ -971,6 +975,7 @@
 't_PE'	term.txt	/*'t_PE'*
 't_PS'	term.txt	/*'t_PS'*
 't_RB'	term.txt	/*'t_RB'*
+'t_RC'	term.txt	/*'t_RC'*
 't_RI'	term.txt	/*'t_RI'*
 't_RS'	term.txt	/*'t_RS'*
 't_RV'	term.txt	/*'t_RV'*
@@ -980,6 +985,8 @@
 't_SR'	term.txt	/*'t_SR'*
 't_Sb'	term.txt	/*'t_Sb'*
 't_Sf'	term.txt	/*'t_Sf'*
+'t_Te'	term.txt	/*'t_Te'*
+'t_Ts'	term.txt	/*'t_Ts'*
 't_VS'	term.txt	/*'t_VS'*
 't_WP'	term.txt	/*'t_WP'*
 't_WS'	term.txt	/*'t_WS'*
@@ -1328,6 +1335,7 @@
 +timers	various.txt	/*+timers*
 +title	various.txt	/*+title*
 +toolbar	various.txt	/*+toolbar*
++unix	eval.txt	/*+unix*
 +user_commands	various.txt	/*+user_commands*
 +vertsplit	various.txt	/*+vertsplit*
 +viminfo	various.txt	/*+viminfo*
@@ -1892,6 +1900,7 @@
 :<afile>	cmdline.txt	/*:<afile>*
 :<amatch>	cmdline.txt	/*:<amatch>*
 :<cWORD>	cmdline.txt	/*:<cWORD>*
+:<cexpr>	cmdline.txt	/*:<cexpr>*
 :<cfile>	cmdline.txt	/*:<cfile>*
 :<cword>	cmdline.txt	/*:<cword>*
 :<sfile>	cmdline.txt	/*:<sfile>*
@@ -1951,6 +1960,7 @@
 :Sexplore	pi_netrw.txt	/*:Sexplore*
 :TOhtml	syntax.txt	/*:TOhtml*
 :TarDiff	pi_tar.txt	/*:TarDiff*
+:Termdebug	terminal.txt	/*:Termdebug*
 :Texplore	pi_netrw.txt	/*:Texplore*
 :UseVimball	pi_vimball.txt	/*:UseVimball*
 :Vexplore	pi_netrw.txt	/*:Vexplore*
@@ -3122,9 +3132,16 @@
 :tl	tagsrch.txt	/*:tl*
 :tlast	tagsrch.txt	/*:tlast*
 :tm	gui.txt	/*:tm*
+:tma	map.txt	/*:tma*
+:tmap	map.txt	/*:tmap*
+:tmap_l	map.txt	/*:tmap_l*
+:tmapc	map.txt	/*:tmapc*
+:tmapclear	map.txt	/*:tmapclear*
 :tmenu	gui.txt	/*:tmenu*
 :tn	tagsrch.txt	/*:tn*
 :tnext	tagsrch.txt	/*:tnext*
+:tno	map.txt	/*:tno*
+:tnoremap	map.txt	/*:tnoremap*
 :topleft	windows.txt	/*:topleft*
 :tp	tagsrch.txt	/*:tp*
 :tprevious	tagsrch.txt	/*:tprevious*
@@ -3134,6 +3151,8 @@
 :ts	tagsrch.txt	/*:ts*
 :tselect	tagsrch.txt	/*:tselect*
 :tu	gui.txt	/*:tu*
+:tunma	map.txt	/*:tunma*
+:tunmap	map.txt	/*:tunmap*
 :tunmenu	gui.txt	/*:tunmenu*
 :u	undo.txt	/*:u*
 :un	undo.txt	/*:un*
@@ -3398,6 +3417,7 @@
 <bang>	map.txt	/*<bang>*
 <buffer=N>	autocmd.txt	/*<buffer=N>*
 <buffer=abuf>	autocmd.txt	/*<buffer=abuf>*
+<cexpr>	cmdline.txt	/*<cexpr>*
 <cfile>	cmdline.txt	/*<cfile>*
 <character>	intro.txt	/*<character>*
 <count>	map.txt	/*<count>*
@@ -3428,6 +3448,7 @@
 <mods>	map.txt	/*<mods>*
 <nomodeline>	autocmd.txt	/*<nomodeline>*
 <q-args>	map.txt	/*<q-args>*
+<range>	map.txt	/*<range>*
 <reg>	map.txt	/*<reg>*
 <register>	map.txt	/*<register>*
 <sfile>	cmdline.txt	/*<sfile>*
@@ -4829,6 +4850,7 @@
 WORD	motion.txt	/*WORD*
 WWW	intro.txt	/*WWW*
 Win32	os_win32.txt	/*Win32*
+WinBar	gui.txt	/*WinBar*
 WinEnter	autocmd.txt	/*WinEnter*
 WinLeave	autocmd.txt	/*WinLeave*
 WinNew	autocmd.txt	/*WinNew*
@@ -7270,6 +7292,7 @@
 mapmode-nvo	map.txt	/*mapmode-nvo*
 mapmode-o	map.txt	/*mapmode-o*
 mapmode-s	map.txt	/*mapmode-s*
+mapmode-t	map.txt	/*mapmode-t*
 mapmode-v	map.txt	/*mapmode-v*
 mapmode-x	map.txt	/*mapmode-x*
 mapping	map.txt	/*mapping*
@@ -8005,6 +8028,7 @@
 quake.vim	syntax.txt	/*quake.vim*
 quickfix	quickfix.txt	/*quickfix*
 quickfix-6	version6.txt	/*quickfix-6*
+quickfix-ID	quickfix.txt	/*quickfix-ID*
 quickfix-directory-stack	quickfix.txt	/*quickfix-directory-stack*
 quickfix-error-lists	quickfix.txt	/*quickfix-error-lists*
 quickfix-functions	usr_41.txt	/*quickfix-functions*
@@ -8234,6 +8258,7 @@
 session-file	starting.txt	/*session-file*
 set-option	options.txt	/*set-option*
 set-spc-auto	spell.txt	/*set-spc-auto*
+setbufline()	eval.txt	/*setbufline()*
 setbufvar()	eval.txt	/*setbufvar()*
 setcharsearch()	eval.txt	/*setcharsearch()*
 setcmdpos()	eval.txt	/*setcmdpos()*
@@ -8460,6 +8485,7 @@
 strftime()	eval.txt	/*strftime()*
 strgetchar()	eval.txt	/*strgetchar()*
 stridx()	eval.txt	/*stridx()*
+strikethrough	syntax.txt	/*strikethrough*
 string	eval.txt	/*string*
 string()	eval.txt	/*string()*
 string-functions	usr_41.txt	/*string-functions*
@@ -8590,6 +8616,7 @@
 t_PE	term.txt	/*t_PE*
 t_PS	term.txt	/*t_PS*
 t_RB	term.txt	/*t_RB*
+t_RC	term.txt	/*t_RC*
 t_RI	term.txt	/*t_RI*
 t_RS	term.txt	/*t_RS*
 t_RV	term.txt	/*t_RV*
@@ -8599,6 +8626,8 @@
 t_SR	term.txt	/*t_SR*
 t_Sb	term.txt	/*t_Sb*
 t_Sf	term.txt	/*t_Sf*
+t_Te	term.txt	/*t_Te*
+t_Ts	term.txt	/*t_Ts*
 t_VS	term.txt	/*t_VS*
 t_WP	term.txt	/*t_WP*
 t_WS	term.txt	/*t_WS*
@@ -8830,6 +8859,7 @@
 term_list()	eval.txt	/*term_list()*
 term_scrape()	eval.txt	/*term_scrape()*
 term_sendkeys()	eval.txt	/*term_sendkeys()*
+term_setsize()	eval.txt	/*term_setsize()*
 term_start()	eval.txt	/*term_start()*
 term_wait()	eval.txt	/*term_wait()*
 termcap	term.txt	/*termcap*
@@ -8848,6 +8878,7 @@
 terminal-options	term.txt	/*terminal-options*
 terminal-output-codes	term.txt	/*terminal-output-codes*
 terminal-testing	terminal.txt	/*terminal-testing*
+terminal-typing	terminal.txt	/*terminal-typing*
 terminal-use	terminal.txt	/*terminal-use*
 terminal.txt	terminal.txt	/*terminal.txt*
 terminfo	term.txt	/*terminfo*
@@ -8855,6 +8886,7 @@
 test-functions	usr_41.txt	/*test-functions*
 test_alloc_fail()	eval.txt	/*test_alloc_fail()*
 test_autochdir()	eval.txt	/*test_autochdir()*
+test_feedinput()	eval.txt	/*test_feedinput()*
 test_garbagecollect_now()	eval.txt	/*test_garbagecollect_now()*
 test_ignore_error()	eval.txt	/*test_ignore_error()*
 test_null_channel()	eval.txt	/*test_null_channel()*
@@ -9081,7 +9113,11 @@
 v:t_none	eval.txt	/*v:t_none*
 v:t_number	eval.txt	/*v:t_number*
 v:t_string	eval.txt	/*v:t_string*
+v:termblinkresp	eval.txt	/*v:termblinkresp*
 v:termresponse	eval.txt	/*v:termresponse*
+v:termrgbresp	eval.txt	/*v:termrgbresp*
+v:termstyleresp	eval.txt	/*v:termstyleresp*
+v:termu7resp	eval.txt	/*v:termu7resp*
 v:testing	eval.txt	/*v:testing*
 v:this_session	eval.txt	/*v:this_session*
 v:throwpoint	eval.txt	/*v:throwpoint*
@@ -9401,6 +9437,7 @@
 window-size	term.txt	/*window-size*
 window-size-functions	usr_41.txt	/*window-size-functions*
 window-tag	windows.txt	/*window-tag*
+window-toolbar	gui.txt	/*window-toolbar*
 window-variable	eval.txt	/*window-variable*
 windowid	windows.txt	/*windowid*
 windowid-variable	eval.txt	/*windowid-variable*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index df11525..0fc6939 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.0.  Last change: 2017 Aug 26
+*term.txt*      For Vim version 8.0.  Last change: 2017 Aug 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -295,8 +295,6 @@
 	t_ts	set window title start (to status line)		*t_ts* *'t_ts'*
 	t_ue	underline end					*t_ue* *'t_ue'*
 	t_us	underline mode					*t_us* *'t_us'*
-	t_Ce	undercurl end					*t_Ce* *'t_Ce'*
-	t_Cs	undercurl mode					*t_Cs* *'t_Cs'*
 	t_ut	clearing uses the current background color	*t_ut* *'t_ut'*
 	t_vb	visual bell					*t_vb* *'t_vb'*
 	t_ve	cursor visible					*t_ve* *'t_ve'*
@@ -311,6 +309,10 @@
 	t_ZR	italics end					*t_ZR* *'t_ZR'*
 
 Added by Vim (there are no standard codes for these):
+	t_Ce	undercurl end					*t_Ce* *'t_Ce'*
+	t_Cs	undercurl mode					*t_Cs* *'t_Cs'*
+	t_Te	strikethrough end				*t_Te* *'t_Te'*
+	t_Ts	strikethrough mode				*t_Ts* *'t_Ts'*
 	t_IS	set icon text start				*t_IS* *'t_IS'*
 	t_IE	set icon text end				*t_IE* *'t_IE'*
 	t_WP	set window position (Y, X) in pixels		*t_WP* *'t_WP'*
@@ -337,6 +339,7 @@
 	t_SC	set cursor color start				*t_SC* *'t_SC'*
 	t_EC	set cursor color end				*t_EC* *'t_EC'*
 	t_SH	set cursor shape				*t_SH* *'t_SH'*
+	t_RC	request terminal cursor blinking		*t_RC* *'t_RC'*
 	t_RS	request terminal cursor style			*t_RS* *'t_RS'*
 
 Some codes have a start, middle and end part.  The start and end are defined
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 1cedf63..8247fe6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2017 Aug 27
+*todo.txt*      For Vim version 8.0.  Last change: 2017 Sep 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,25 +35,39 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
+
+Always use FEAT_WINDOWS:
+May get rid of:
+    #define W_WINCOL(wp)	(wp->w_wincol)
+    #define W_WIDTH(wp)	(wp->w_width)
+    #define W_ENDCOL(wp)	(wp->w_wincol + wp->w_width)
+    #define W_VSEP_WIDTH(wp) (wp->w_vsep_width)
+    #define W_STATUS_HEIGHT(wp) (wp->w_status_height)
+    #define W_WINROW(wp)	(wp->w_winrow)
+# define ALIST(win) (win)->w_alist
+
 No maintainer for Vietnamese translations.
 No maintainer for Simplified Chinese translations.
 
-
 Terminal emulator window:
 - Lots of stuff to implement, see src/terminal.c
-- Add debugger interface.  Implementation for gdb by Xavier de Gaye.  Should
-  work like an IDE.  Try to keep it generic.  Now found here:
-    http://clewn.sf.net.
-  Can this replace Agide?  http://www.a-a-p.org/images/debugfull.png
+- Improve debugger interface:
+  Include all debug features of Agide.
+    - Implement the right-click popup menu for the terminal. Can use the
+      completion popup menu code and mouse dragging.
+      Use it for "set breakpoint", "remove breakpoint", etc.
     - make showballoon() work in a terminal.  Requires getting mouse-move
       events.
     - send 'balloonText' events for the cursor position (using CursorHold ?)
       in terminal mode.
-    - Implement the right-click popup menu for the terminal. Can use the
-      completion popup menu code and mouse dragging.
-- Look into the idevim plugin/script.
-- Related wishes for NetBeans commands:
-    - make it possible to have 'defineAnnoType' also handle terminal colors.
+  - get ideas from http://clewn.sf.net
+  - Look into the idevim plugin/script.
+- Improve testing:
+  Make a screenshot of a terminal, store in a file.
+  Display a stored screenshot, display diff with another one.
+  Make a test that puts Vim in a specific state, make a screenshot and compare
+  with the expected screenshot.  Set t_Co to 256.
 
 +channel:
 - Try out background make plugin: 
@@ -123,8 +137,6 @@
   Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
   (2017 May 15, #1252)
 
-Patch to turn test80 into a new style test. (Yegappan Lakshmanan, 2017 Aug 20)
-
 Include a few color schemes, based on popularity:
 http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
 http://vimawesome.com/?q=tag:color-scheme
@@ -138,26 +150,45 @@
 - [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
 - [hybrid](https://github.com/w0ng/vim-hybrid)
 
+Patch to update Brazilian translations. (Eduardo Dobay, 2017 Sep 10, #2077)
+
 When starting with --clean packages under "start" are not loaded.  Make this
 work:  :packadd START {name}  similar to :runtime START name
 
+Patch to refactor qf_jump(). (Yegappan, 2017 Sep 17)
+
 When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
 
 After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
 2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
 
-Patch to add quickfix list identifier. (Yegappan, 2017 Aug 15)
+Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
+2017 Sep 17, #2110)
+
+Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
+#2111)
+
+Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
+#2103)
 
 Mac Terminal.app: ctermbg=15 gives light grey instead of white.
 ctermbg=256 breaks clearing till end of the line.  Both work fine in xterm.
 
-Patch to avoid editing a file in the session file twice. (Christian Brabandt,
-2017 Aug 21)  #1958
+Using ":hi" causes a redraw, but a redraw may update the status line, which
+may trigger a ":hi" command.
+
+Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
+#2112)
+
+"vim -c startinsert!" doesn't append. (#2117)
 
 With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
 (Marcin Szewczyk, 2017 Apr 26)
 
+Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
+2017 Sep 5)
+
 Using 'wildignore' also applies to literally entered file name.  Also with
 :drop (remote commands).
 
@@ -168,35 +199,27 @@
 
 Error in emsg with buggy script. (Dominique, 2017 Apr 30)
 
+Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
+
+mswin.vim should not map CTRL-F in the console (#2093)
+Patch from Christian, 2017 Sep 15.
+
+Default install on MS-Windows should source defaults.vim.
+Ask whether to use Windows or Vim key behavior?
+
+matchit hasn't been maintained for a long time.  #955.
+
 Test runtime files.
 Start with filetype detection: testdir/test_filetype.vim
 
-Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
-Feb 14).  Also see #1215.
-
-Patch to ignore case when 'diffopt' has "icase" for finding the difference
-inside a line. (Rick Howe, 2017 Aug 21, 22 with test)
-
-Patch to support strikethrough next to bold and italic. (Christian Brabandt,
-2013 Jul 30)  Update from Ken Takata, 2013 Oct 12.
-Update mentioned by Christian, 2016 Apr 25.
-Update from Ken Takata, 2017 Aug 23.
-
-Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
-Kiichi, 2016 Feb 28)
-Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
-Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
-Update Aug 2017: #1953
-
-Patch to fix indenting for raw C++ string. (Christian Brabandt, 2017 Aug 24,
-#2019)
+Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
 
 Add options_default() / options_restore() to set several options to Vim
 defaults for a plugin. Comments from Zyx, 2017 May 10.
 Perhaps use a vimcontext / endvimcontext command block.
 
-Patch to fix bogus characters inserted in visual-block append. (Christian
-Brabandt, 2017 Aug 23)
+After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
+13, #2084).  Set old position after the command.
 
 Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
 Still happens (2017 Jul 9)
@@ -207,17 +230,19 @@
 This example in the help does not work (Andy Wokula, 2017 Aug 20):
     augroup mine | au! BufRead | augroup END
 
+Memory leaks in test_channel? (or is it because of fork())
 Memory leak in test_arabic.
+Using uninitialized value in test_crypt.
 
-Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
+Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
+
+Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
 It can replace the BeOS code, which is likely not used anymore.
-Now on github: #1856.  Is now up-to-date?
+Now on github: #1856.
 Got permission to include this under the Vim license.
 
 Refactored HTML indent file. (Michael Lee, #1821)
 
-Using uninitialized value in test_crypt.
-
 Test_writefile_fails_conversion failure on Solaris because if different iconv
 behavior.  Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
 
@@ -235,6 +260,9 @@
 
 The ++ options for the :edit command are also useful on the Vim command line.
 
+Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
+#2089)  Patch with possible solution by Björn Linse.
+
 X11: Putting more than about 262040 characters of text on the clipboard and
 pasting it in another Vim doesn't work.  (Dominique Pelle, 2008 Aug 21-23)
 clip_x11_request_selection_cb() is called with zero value and length.
@@ -249,6 +277,9 @@
 attribute of the function.  For an unknown function assume "self" and make
 that optiona? (Bjorn Linse, 2017 Aug 5)
 
+Cindent: returning a structure has more indent for the second item.
+(Sam Pagenkopf, 2017 Sep 14, #2090)
+
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
 terminal.c and then CTRL-N twice.
@@ -1519,6 +1550,9 @@
 Win32: tear-off menu does not work when menu language is German. (Markus
 Bossler, 2011 Mar 2)  Fixed by 7.3.095?
 
+Wish for NetBeans commands:
+    - make it possible to have 'defineAnnoType' also handle terminal colors.
+
 Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
 
 7.3.014 changed how backslash at end of line works, but still get a NUL when
@@ -3709,7 +3743,7 @@
     at a multi-byte character >= 0x100.
 -   Add the possibility to enter mappings which are used whenever normal text
     could be entered.  E.g., for "f" command.  But not in Normal mode.  Sort
-    of opposite of 'langmap'.  Use ":tmap" command?
+    of opposite of 'langmap'.  Use ":amap" command?
 -   When breaking a line, take properties of multi-byte characters into
     account.  The "linebreak" program from Bruno Haible can do it:
     ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index 956dc1d..50fe4e9 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt*	For Vim version 8.0.  Last change: 2017 Aug 11
+*usr_07.txt*	For Vim version 8.0.  Last change: 2017 Sep 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -215,14 +215,14 @@
 
 	`.
 
-Suppose you are editing the file "one.txt".  Somewhere halfway the file you
-use "x" to delete a character.  Then you go to the last line with "G" and
-write the file with ":w".  You edit several other files, and then use ":edit
-one.txt" to come back to "one.txt".  If you now use `" Vim jumps to the last
-line of the file.  Using `. takes you to the position where you deleted the
-character.  Even when you move around in the file `" and `. will take you to
-the remembered position.  At least until you make another change or leave the
-file.
+Suppose you are editing the file "one.txt".  Somewhere halfway through the
+file you use "x" to delete a character.  Then you go to the last line with "G"
+and write the file with ":w".  You edit several other files, and then use
+":edit one.txt" to come back to "one.txt".  If you now use `" Vim jumps to the
+last line of the file.  Using `. takes you to the position where you deleted
+the character.  Even when you move around in the file `" and `. will take you
+to the remembered position.  At least until you make another change or leave
+the file.
 
 
 FILE MARKS
@@ -233,8 +233,8 @@
 each file has its own set of marks, they are local to the file.
    So far we were using marks with a lowercase letter.  There are also marks
 with an uppercase letter.  These are global, they can be used from any file.
-For example suppose that we are editing the file "foo.txt".  Go to halfway the
-file ("50%") and place the F mark there (F for foo): >
+For example suppose that we are editing the file "foo.txt".  Go to halfway
+down the file ("50%") and place the F mark there (F for foo): >
 
 	50%mF
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 24290fa..3790b25 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.0.  Last change: 2017 Feb 24
+*various.txt*   For Vim version 8.0.  Last change: 2017 Sep 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -322,7 +322,7 @@
 N  *+clientserver*	Unix and Win32: Remote invocation |clientserver|
    *+clipboard*		|clipboard| support
 N  *+cmdline_compl*	command line completion |cmdline-completion|
-N  *+cmdline_hist*	command line history |cmdline-history|
+S  *+cmdline_hist*	command line history |cmdline-history|
 N  *+cmdline_info*	|'showcmd'| and |'ruler'|
 N  *+comments*		|'comments'| support
 B  *+conceal*		"conceal" support, see |conceal| |:syn-conceal| etc.
@@ -361,7 +361,7 @@
    *+iconv/dyn*		Likewise |iconv-dynamic| |/dyn|
 N  *+insert_expand*	|insert_expand| Insert mode completion
 m  *+job*		starting and stopping jobs |job|
-N  *+jumplist*		|jumplist|
+S  *+jumplist*		|jumplist|
 B  *+keymap*		|'keymap'|
 N  *+lambda*		|lambda| and |closure|
 B  *+langmap*		|'langmap'|
@@ -438,14 +438,16 @@
 N  *+toolbar*		|gui-toolbar|
 N  *+user_commands*	User-defined commands. |user-commands|
 N  *+viminfo*		|'viminfo'|
-N  *+vertsplit*		Vertically split windows |:vsplit|
+   *+vertsplit*		Vertically split windows |:vsplit|; Always enabled
+			since 8.0.1118.
+			in sync with the |+windows| feature
 N  *+virtualedit*	|'virtualedit'|
 S  *+visual*		Visual mode |Visual-mode| Always enabled since 7.4.200.
 N  *+visualextra*	extra Visual mode commands |blockwise-operators|
 N  *+vreplace*		|gR| and |gr|
 N  *+wildignore*	|'wildignore'|
 N  *+wildmenu*		|'wildmenu'|
-S  *+windows*		more than one window
+   *+windows*		more than one window; Always enabled sinde 8.0.1118.
 m  *+writebackup*	|'writebackup'| is default on
 m  *+xim*		X input method |xim|
    *+xfontset*		X fontset support |xfontset|
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 5931501..c799727 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt*    For Vim version 8.0.  Last change: 2014 Mar 23
+*visual.txt*    For Vim version 8.0.  Last change: 2017 Sep 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 8e8b0bb..be26841 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 8.0.  Last change: 2017 Aug 21
+*windows.txt*   For Vim version 8.0.  Last change: 2017 Sep 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1034,6 +1034,7 @@
 		   =	a readonly buffer
 		   R	a terminal buffer with a running job
 		   F	a terminal buffer with a finished job
+		   ?    a terminal buffer without a job: `:terminal NONE`
 		    +	a modified buffer
 		    x   a buffer with read errors
 
