Update runtime files.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index f69bf06..58a61f2 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 Jan 14
+*eval.txt*	For Vim version 8.0.  Last change: 2017 Jan 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2222,8 +2222,8 @@
 				String	{count}'th match of {pat} in {expr}
 matchstrpos({expr}, {pat}[, {start}[, {count}]])
 				List	{count}'th match of {pat} in {expr}
-max({list})			Number	maximum value of items in {list}
-min({list})			Number	minimum value of items in {list}
+max({expr})			Number	maximum value of items in {expr}
+min({expr})			Number	minimum value of items in {expr}
 mkdir({name} [, {path} [, {prot}]])
 				Number	create directory {name}
 mode([expr])			String	current editing mode
@@ -4172,6 +4172,10 @@
 			  exe "normal " . v:mouse_col . "|"
 			endif
 <
+		When using bracketed paste only the first character is
+		returned, the rest of the pasted text is dropped.
+		|xterm-bracketed-paste|.
+
 		There is no prompt, you will somehow have to make clear to the
 		user that a character has to be typed.
 		There is no mapping for the character.
@@ -5797,16 +5801,20 @@
 		The type isn't changed, it's not necessarily a String.
 
 							*max()*
-max({list})	Return the maximum value of all items in {list}.
-		If {list} is not a list or one of the items in {list} cannot
-		be used as a Number this results in an error.
-		An empty |List| results in zero.
+max({expr})	Return the maximum value of all items in {expr}.
+		{expr} can be a list or a dictionary.  For a dictionary,
+		it returns the maximum of all values in the dictionary.
+		If {expr} is neither a list nor a dictionary, or one of the
+		items in {expr} cannot be used as a Number this results in
+                an error.  An empty |List| or |Dictionary| results in zero.
 
 							*min()*
-min({list})	Return the minimum value of all items in {list}.
-		If {list} is not a list or one of the items in {list} cannot
-		be used as a Number this results in an error.
-		An empty |List| results in zero.
+min({expr})	Return the minimum value of all items in {expr}.
+		{expr} can be a list or a dictionary.  For a dictionary,
+		it returns the minimum of all values in the dictionary.
+		If {expr} is neither a list nor a dictionary, or one of the
+		items in {expr} cannot be used as a Number this results in
+                an error.  An empty |List| or |Dictionary| results in zero.
 
 							*mkdir()* *E739*
 mkdir({name} [, {path} [, {prot}]])
@@ -8146,7 +8154,7 @@
 		is returned.
 		The number can be used with |CTRL-W_w| and ":wincmd w"
 		|:wincmd|.
-		Also see |tabpagewinnr()|.
+		Also see |tabpagewinnr()| and |win_getid()|.
 
 							*winrestcmd()*
 winrestcmd()	Returns a sequence of |:resize| commands that should restore
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 9378807..2016e33 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 8.0.  Last change: 2016 Sep 17
+*if_pyth.txt*   For Vim version 8.0.  Last change: 2017 Jan 28
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 4e94902..385f0bb 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 Jan 15
+*options.txt*	For Vim version 8.0.  Last change: 2017 Jan 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 2138f02..e300983 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.0.  Last change: 2016 Oct 30
+*syntax.txt*	For Vim version 8.0.  Last change: 2017 Jan 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3479,6 +3479,8 @@
 	"ignore".  Note that any items before this are not affected, and all
 	items until the next ":syntax case" command are affected.
 
+:sy[ntax] case
+	Show either "syntax case match" or "syntax case ignore" (translated).
 
 SPELL CHECKING						*:syn-spell*
 
@@ -3496,6 +3498,11 @@
 
 	To activate spell checking the 'spell' option must be set.
 
+:sy[ntax] spell
+	Show either "syntax spell toplevel", "syntax spell notoplevel" or
+	"syntax spell default" (translated).
+
+
 SYNTAX ISKEYWORD SETTING				*:syn-iskeyword*
 
 :sy[ntax] iskeyword [clear | {option}]
@@ -4089,6 +4096,9 @@
 	off" returns to the normal state where the "conceal" flag must be
 	given explicitly.
 
+:sy[ntax] conceal
+	Show either "syntax conceal on" or "syntax conceal off" (translated).
+
 ==============================================================================
 7. Syntax patterns				*:syn-pattern* *E401* *E402*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8bd61e5..f5a77ad 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -774,6 +774,8 @@
 'pvw'	options.txt	/*'pvw'*
 'pythondll'	options.txt	/*'pythondll'*
 'pythonthreedll'	options.txt	/*'pythonthreedll'*
+'pyx'	options.txt	/*'pyx'*
+'pyxversion'	options.txt	/*'pyxversion'*
 'qe'	options.txt	/*'qe'*
 'quote	motion.txt	/*'quote*
 'quoteescape'	options.txt	/*'quoteescape'*
@@ -923,6 +925,8 @@
 't_AB'	term.txt	/*'t_AB'*
 't_AF'	term.txt	/*'t_AF'*
 't_AL'	term.txt	/*'t_AL'*
+'t_BD'	term.txt	/*'t_BD'*
+'t_BE'	term.txt	/*'t_BE'*
 't_CS'	term.txt	/*'t_CS'*
 't_CV'	term.txt	/*'t_CV'*
 't_Ce'	term.txt	/*'t_Ce'*
@@ -2722,6 +2726,10 @@
 :pyfile	if_pyth.txt	/*:pyfile*
 :python	if_pyth.txt	/*:python*
 :python3	if_pyth.txt	/*:python3*
+:pythonx	if_pyth.txt	/*:pythonx*
+:pyx	if_pyth.txt	/*:pyx*
+:pyxdo	if_pyth.txt	/*:pyxdo*
+:pyxfile	if_pyth.txt	/*:pyxfile*
 :q	editing.txt	/*:q*
 :qa	editing.txt	/*:qa*
 :qall	editing.txt	/*:qall*
@@ -4770,6 +4778,8 @@
 W17	arabic.txt	/*W17*
 W18	syntax.txt	/*W18*
 W19	autocmd.txt	/*W19*
+W20	if_pyth.txt	/*W20*
+W21	if_pyth.txt	/*W21*
 WORD	motion.txt	/*WORD*
 WWW	intro.txt	/*WWW*
 Win32	os_win32.txt	/*Win32*
@@ -6603,6 +6613,7 @@
 has()	eval.txt	/*has()*
 has-patch	eval.txt	/*has-patch*
 has-python	if_pyth.txt	/*has-python*
+has-pythonx	if_pyth.txt	/*has-pythonx*
 has_key()	eval.txt	/*has_key()*
 haskell.vim	syntax.txt	/*haskell.vim*
 haslocaldir()	eval.txt	/*haslocaldir()*
@@ -7901,7 +7912,11 @@
 python2-directory	if_pyth.txt	/*python2-directory*
 python3	if_pyth.txt	/*python3*
 python3-directory	if_pyth.txt	/*python3-directory*
+python_x	if_pyth.txt	/*python_x*
+python_x-special-comments	if_pyth.txt	/*python_x-special-comments*
+pythonx	if_pyth.txt	/*pythonx*
 pythonx-directory	if_pyth.txt	/*pythonx-directory*
+pyxeval()	eval.txt	/*pyxeval()*
 q	repeat.txt	/*q*
 q/	cmdline.txt	/*q\/*
 q:	cmdline.txt	/*q:*
@@ -8443,6 +8458,8 @@
 t_AB	term.txt	/*t_AB*
 t_AF	term.txt	/*t_AF*
 t_AL	term.txt	/*t_AL*
+t_BD	term.txt	/*t_BD*
+t_BE	term.txt	/*t_BE*
 t_CS	term.txt	/*t_CS*
 t_CV	term.txt	/*t_CV*
 t_Ce	term.txt	/*t_Ce*
@@ -8481,6 +8498,8 @@
 t_KJ	term.txt	/*t_KJ*
 t_KK	term.txt	/*t_KK*
 t_KL	term.txt	/*t_KL*
+t_PE	term.txt	/*t_PE*
+t_PS	term.txt	/*t_PS*
 t_RB	term.txt	/*t_RB*
 t_RI	term.txt	/*t_RI*
 t_RV	term.txt	/*t_RV*
@@ -9332,6 +9351,7 @@
 xterm-8bit	term.txt	/*xterm-8bit*
 xterm-blink	syntax.txt	/*xterm-blink*
 xterm-blinking-cursor	syntax.txt	/*xterm-blinking-cursor*
+xterm-bracketed-paste	term.txt	/*xterm-bracketed-paste*
 xterm-clipboard	term.txt	/*xterm-clipboard*
 xterm-codes	term.txt	/*xterm-codes*
 xterm-color	syntax.txt	/*xterm-color*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 228853f..b46b399 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 8.0.  Last change: 2016 Sep 02
+*term.txt*      For Vim version 8.0.  Last change: 2017 Jan 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -99,7 +99,12 @@
 
 Note that in some situations Vim will not recognize the bracketed paste and
 you will get the raw text.  In other situations Vim will only get the first
-pasted character and drop the rest, e.g. when using the "r" command.
+pasted character and drop the rest, e.g. when using the "r" command.  If you
+have a problem with this, disable bracketed paste by putting this in your
+.vimrc: >
+	set t_BE=
+If this is done while Vim is running the 't_BD' will be sent to the terminal
+to disable bracketed paste.
 
 							*cs7-problem*
 Note: If the terminal settings are changed after running Vim, you might have
@@ -414,7 +419,7 @@
 	t_KK	<k8>		keypad 8		 *<k8>*	*t_KK* *'t_KK'*
 	t_KL	<k9>		keypad 9		 *<k9>*	*t_KL* *'t_KL'*
 		<Mouse>		leader of mouse code		*<Mouse>*
-	t_PS	start of brackted paste |xterm-bracketed-paste|   *t_PS* 't_PS'
+	t_PS	start of bracketed paste |xterm-bracketed-paste|  *t_PS* 't_PS'
 	t_PE	end of bracketed paste |xterm-bracketed-paste|    *t_PE* 't_PE'
 
 Note about t_so and t_mr: When the termcap entry "so" is not present the
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d324607..56d858f 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 Jan 16
+*todo.txt*      For Vim version 8.0.  Last change: 2017 Jan 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,8 +35,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-get_syn_options() does not respect skip in else part. (Zyx)
-
 +channel:
 - Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
@@ -60,6 +58,7 @@
   connecting in the main loop with zero timeout.
 - job_start(): run job in a newly opened terminal.
     With xterm could use -S{pty}.
+    Although user could use "xterm -e 'cmd arg'".
 
 Regexp problems:
 - Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
@@ -108,40 +107,27 @@
 
 '] mark invalid after undoing insert "hello".
 
-Make html indent file use javascript indent, now that it's not just cindent.
-#1220
-
-Concatenation with null string causes an error: 'a'[1:0] .. 'b'
-Might as well handle it like an empty string.
-
 When using symbolic links, a package path will not be inserted at the right
 position in 'runtimepath'. (Dugan Chen, 2016 Nov 18)
 
 json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
 What if there is an invalid character?
 
-Include rust files. (Klabnik, #1356)
-
 Allow using json with empty key?  Dict already has it.
 
 Json string with trailing \u should be an error. (Lcd)
 
-Patch to deal with changed configure events in GTK 3. (Jan Alexander Steffens,
-2016 Oct 23 #1193)
-Remarks from nuko8, 2016 Nov 2.
-
 Multi-byte bug: dv} splits char. (Urtica Dioica, 2017 Jan 9)
 
-Patch to change order of compiler flags. (Yousong Zhou, 2016 Sep 19, #1100)
+Patch: Make mode() return "ix" or "Rx" when in completion mode.
+(Yegappan Lakshmanan, 2017 Jan 19, #1397, update Jan 22)
 
-Patch to add command line completion for :cexpr commands. (Yegappan
-Lakshmanan, 2016 Dec 13)
+With Visual selection of a multi-byte character the '] mark is on the last
+byte, should be first byte?
 
-Patch for :pyx, run python commands depending on the supported version.
-(Marc Weber, update from Ken Takata, 2016 Sep 19, 2017 Jan 6)
-
-Patch to avoid warnings for overflow. (Mike Williams, 2016 Dec 16)
-Update Dec 19.
+When session file has name in argument list but the buffer was deleted, the
+buffer is not deleted when using the session file. (#1393)
+Should add the buffer in hidden state.
 
 When an item in the quickfix list has a file name that does not exist, behave
 like the item was not a match for :cnext.
@@ -150,18 +136,13 @@
 Also get E749 on exit.
 Another example in #1309
 
-Patch to fix vim_iswordp() works differently on chars <256 that are two bytes.
-Ozaki Kiichi, 2016 Dec 11.
+Completion for user-defined commands does not work if a few chararacters were
+already typed. (Dominique, 2017 Jan 26)
 
 When deleting a mark or register, leave a tombstone, so that it's also deleted
 when writing viminfo (and the delete was the most recent action). #1339
 
 Relevant neovim patch:
-https://github.com/neovim/neovim/pull/5717
-test case: 
-https://github.com/neovim/neovim/pull/5717#issuecomment-264845481
-Others:
-https://github.com/neovim/neovim/issues/5713#issuecomment-265136186
 https://github.com/neovim/neovim/pull/5737#issuecomment-266055165
 
 Patch for better explanation of 'compatible' side effects.
@@ -199,6 +180,10 @@
 Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
 Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
 
+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.
+
 Once .exe with updated installer is available: Add remark to download page
 about /S and /D options (Ken Takata, 2016 Apr 13)
 Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
@@ -220,6 +205,7 @@
 
 Patch for wrong cursor position on wrapped line, involving breakindent.
 (Ozaki Kiichi, 2016 Nov 25)
+Does this also fix #1408 ?
 
 Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
 
@@ -569,6 +555,9 @@
 Value returned by virtcol() changes depending on how lines wrap.  This is
 inconsistent with the documentation.
 
+Value of virtcol() for '[ and '] depend on multi-byte character.
+(Luchr, #277)
+
 Can we cache the syntax attributes, so that updates for 'relativenumber' and
 'cursorline'/'cursorcolumn' are a lot faster?
 
@@ -1061,9 +1050,6 @@
 When there are no command line arguments ":next" and ":argu" give E163, which
 is confusing.  Should say "the argument list is empty".
 
-xterm supports escape sequences to mark a paste operation.  Need to be
-enabled. (Bruno Sutic, 2014 Jul 11)  How to know the terminal supports this?
-
 URXVT:
 - will get stuck if byte sequence does not contain the expected semicolon.
 - Use urxvt mouse support also in xterm.  Explanations:
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 918333e..d45ab13 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1000,6 +1000,7 @@
 	perleval()		evaluate Perl expression (|+perl|)
 	py3eval()		evaluate Python expression (|+python3|)
 	pyeval()		evaluate Python expression (|+python|)
+	pyxeval()		evaluate |python_x| expression
 
 ==============================================================================
 *41.7*	Defining a function