Updated runtime files.
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 47039e1..dd4b8d3 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 7.4.  Last change: 2016 Jun 02
+*channel.txt*      For Vim version 7.4.  Last change: 2016 Jul 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -495,6 +495,9 @@
 job stdin.  This allows for editing the last line and sending it when pressing
 Enter.
 
+NUL bytes in the text will be passed to the job (internally Vim stores these
+as NL bytes).
+
 
 Reading job output in the close callback ~
 							*read-in-close-cb*
@@ -684,7 +687,8 @@
 first column of the last line, the cursor will be moved to the newly added
 line and the window is scrolled up to show the cursor if needed.
 
-Undo is synced for every added line.
+Undo is synced for every added line.  NUL bytes are accepted (internally Vim
+stores these as NL bytes).
 
 
 Writing to a file ~
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 438e28e..d8fe9c0 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3283,7 +3283,7 @@
 		It is not possible to use `:redir` anywhere in {command}.
 
 		To get a list of lines use |split()| on the result: >
-			split(evalcmd('args'), "\n")
+			split(execute('args'), "\n")
 
 <		When used recursively the output of the recursive call is not
 		included in the output of the higher level call.
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 5584460..4b9299b 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.4.  Last change: 2016 Jun 10
+*map.txt*       For Vim version 7.4.  Last change: 2016 Jul 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1274,6 +1274,7 @@
 	-complete=mapping	mapping name
 	-complete=menu		menus
 	-complete=option	options
+	-complete=packadd	optional package |pack-add| names
 	-complete=shellcmd	Shell command
 	-complete=sign		|:sign| suboptions
 	-complete=syntax	syntax file names |'syntax'|
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 98017ec..f535fcf 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2016 Jul 01
+*options.txt*	For Vim version 7.4.  Last change: 2016 Jul 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -8180,10 +8180,10 @@
 		has been used since the last search command.
 							*viminfo-n*
 	n	Name of the viminfo file.  The name must immediately follow
-		the 'n'.  Must be the last one!  If the "-i" argument was
-		given when starting Vim, that file name overrides the one
-		given here with 'viminfo'.  Environment variables are expanded
-		when opening the file, not when setting the option.
+		the 'n'.  Must be at the end of the option!  If the "-i"
+		argument was given when starting Vim, that file name overrides
+		the one given here with 'viminfo'.  Environment variables are
+		expanded when opening the file, not when setting the option.
 							*viminfo-r*
 	r	Removable media.  The argument is a string (up to the next
 		',').  This parameter can be given several times.  Each
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 817703d..b613cf0 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4.  Last change: 2016 Jun 15
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Jul 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1426,6 +1426,7 @@
    BBB   - value from session B
    BOTH  - value from session B, value from session A is lost
 
+							*viminfo-timestamp*
 For some items a timestamp is used to keep the last changed version.  Here it
 doesn't matter in which sequence Vim sessions exit, the newest item(s) are
 always kept.  This is used for:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index a35bb7a..12ed733 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2041,6 +2041,8 @@
 :cat	eval.txt	/*:cat*
 :catch	eval.txt	/*:catch*
 :cb	quickfix.txt	/*:cb*
+:cbo	quickfix.txt	/*:cbo*
+:cbottom	quickfix.txt	/*:cbottom*
 :cbuffer	quickfix.txt	/*:cbuffer*
 :cc	quickfix.txt	/*:cc*
 :ccl	quickfix.txt	/*:ccl*
@@ -2393,6 +2395,8 @@
 :lat	undo.txt	/*:lat*
 :later	undo.txt	/*:later*
 :lb	quickfix.txt	/*:lb*
+:lbo	quickfix.txt	/*:lbo*
+:lbottom	quickfix.txt	/*:lbottom*
 :lbuffer	quickfix.txt	/*:lbuffer*
 :lc	editing.txt	/*:lc*
 :lcd	editing.txt	/*:lcd*
@@ -4457,6 +4461,7 @@
 E928	eval.txt	/*E928*
 E929	starting.txt	/*E929*
 E93	windows.txt	/*E93*
+E930	eval.txt	/*E930*
 E94	windows.txt	/*E94*
 E95	message.txt	/*E95*
 E96	diff.txt	/*E96*
@@ -4472,6 +4477,7 @@
 Ex-mode	intro.txt	/*Ex-mode*
 Exuberant_ctags	tagsrch.txt	/*Exuberant_ctags*
 F	motion.txt	/*F*
+FALSE	eval.txt	/*FALSE*
 FAQ	intro.txt	/*FAQ*
 Farsi	farsi.txt	/*Farsi*
 FileAppendCmd	autocmd.txt	/*FileAppendCmd*
@@ -4686,6 +4692,7 @@
 TOhtml-performance	syntax.txt	/*TOhtml-performance*
 TOhtml-uncopyable-text	syntax.txt	/*TOhtml-uncopyable-text*
 TOhtml-wrap-text	syntax.txt	/*TOhtml-wrap-text*
+TRUE	eval.txt	/*TRUE*
 TSQL	ft_sql.txt	/*TSQL*
 TTpro-telnet	syntax.txt	/*TTpro-telnet*
 Tab	intro.txt	/*Tab*
@@ -5746,6 +5753,7 @@
 exclusive	motion.txt	/*exclusive*
 exclusive-linewise	motion.txt	/*exclusive-linewise*
 executable()	eval.txt	/*executable()*
+execute()	eval.txt	/*execute()*
 execute-menus	gui.txt	/*execute-menus*
 exepath()	eval.txt	/*exepath()*
 exim	starting.txt	/*exim*
@@ -6373,6 +6381,7 @@
 getcmdpos()	eval.txt	/*getcmdpos()*
 getcmdtype()	eval.txt	/*getcmdtype()*
 getcmdwintype()	eval.txt	/*getcmdwintype()*
+getcompletion()	eval.txt	/*getcompletion()*
 getcurpos()	eval.txt	/*getcurpos()*
 getcwd()	eval.txt	/*getcwd()*
 getfontname()	eval.txt	/*getfontname()*
@@ -9051,6 +9060,7 @@
 viminfo-read	starting.txt	/*viminfo-read*
 viminfo-read-write	starting.txt	/*viminfo-read-write*
 viminfo-s	options.txt	/*viminfo-s*
+viminfo-timestamp	starting.txt	/*viminfo-timestamp*
 viminfo-write	starting.txt	/*viminfo-write*
 vimrc	starting.txt	/*vimrc*
 vimrc-filetype	usr_05.txt	/*vimrc-filetype*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 07c4f05..88a6ce2 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 Jul 02
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jul 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,14 +34,10 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Further implement 'barline' in viminfo:
-- Use timestamp for more items: locations, marks.
-
 Problem with setqflist([]): grep 4 times, ":colder 3", setqflist([]) will
 clear the next list, not the current one.  Ramel Eshed, Jun 8.
 
 +channel:
-- Should write_buf_line() change NL to NUL characters?
 - GUI cursor blinking interrupted when the job output goes to a buffer that is
   in a window. (Ramel Eshed, 2016 Jun 9)
 - GUI cursor blinking interrupted when there is a status line.  (Ramel Eshed,
@@ -61,17 +57,11 @@
     With xterm could use -S{pty}.
 
 Quickfix improvements for background building and grepping:
-  Patch from Yegappan, 2016 Jun 17.
-  Need to reset values when starting a new list.
-- If 'efm' is the same as last time re-use the fmt_first list.
-- Do not clear "dir_stack", "directory" and "file_stack", "currfile" when
-  using ":addexpr".
-  Move multiline, multiignore, multiscan outside of the function.
-- Add :cbottom, if quickfix window is visible scroll to make the last line
-  visible. Use scroll_cursor_bot(0, FALSE);
-- Add a flag/property/option to quickfix commands and functions to keep a file
-  name as a string and not create a buffer for it? To avoid creating lots of
-  buffers. (Ramel Eshed)
+- Add a command modifier ":usefname" to quickfix commands and functions to
+  keep a file name as a string and not create a buffer for it? To avoid
+  creating lots of buffers. (Ramel Eshed)
+  Store the relative file name and set a flag "qf_relative".  Before changing
+  directory turn them into full paths.
 
 Regexp problems:
 - When using automatic engine selection there is a false match.  Forcing
@@ -130,16 +120,18 @@
 Should json_encode()/json_decode() restrict recursiveness?
 Or avoid recursiveness.
 
-Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
-Update 2016 Apr 24.
-Update 2016 Jun 14, includes some tests.
-
-Patch to support expression argument to sort() instead of a function name.
-Yasuhiro Matsumoto, 2013 May 31.
-Or should we add a more general mechanism, like a lambda() function?
+Add a lambda() function.
 Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17.
 Correction for test, Ken Takata, 2016 May 27.
 Merged patch: Ken Takata, 2016 Jun 15.
+Need to separate-out closure and lambda somehow.
+Define lambda directly, not as a string: {v -> v * 8}
+Lambda implementation by Ken Takata, 2016 Jul 7.
+
+Python: Extended funcrefs: use func_T* structure in place of char_u* function
+names.
+(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
+Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
 
 Once .exe with updated installer is available: Add remark to download page
 about /S and /D options (Ken Takata, 2016 Apr 13)
@@ -161,7 +153,8 @@
 5)
 
 'completeopt' noinsert breaks redo register (Shougo, 2016 Jun 18, #874)
-Patch to fix this: #875
+Patch to fix this: #905.
+There also is #875 to fix another problem?
 
 Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
 
@@ -769,11 +762,6 @@
 
 :help gives example for z?, but it does not work.  m? and t? do work.
 
-Python: Extended funcrefs: use func_T* structure in place of char_u* function
-names.
-(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
-Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
-
 Patch to add funcref to Lua.  (Luis Carvalho, 2013 Sep 4)
 With tests: Sep 5.
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index d720344..1eec17e 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Jun 13
+*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Jul 09
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -611,6 +611,7 @@
 	byteidxcomp()		like byteidx() but count composing characters
 	repeat()		repeat a string multiple times
 	eval()			evaluate a string expression
+	execute()		execute an Ex command and get the output
 
 List manipulation:					*list-functions*
 	get()			get an item without error for wrong index
@@ -978,6 +979,8 @@
 
 	shiftwidth()		effective value of 'shiftwidth'
 
+	wordcount()		get byte/word/char count of buffer
+
 	taglist()		get list of matching tags
 	tagfiles()		get a list of tags files
 
@@ -986,7 +989,6 @@
 	perleval()		evaluate Perl expression (|+perl|)
 	py3eval()		evaluate Python expression (|+python3|)
 	pyeval()		evaluate Python expression (|+python|)
-	wordcount()		get byte/word/char count of buffer
 
 ==============================================================================
 *41.7*	Defining a function
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 31f1a1b..01182c7 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.4.  Last change: 2016 May 24
+*various.txt*   For Vim version 7.4.  Last change: 2016 Jul 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -470,9 +470,12 @@
 			shown on the screen.  When [!] is included, an
 			existing file is overwritten.  When [!] is omitted,
 			and {file} exists, this command fails.
+
 			Only one ":redir" can be active at a time.  Calls to
 			":redir" will close any active redirection before
-			starting redirection to the new target.
+			starting redirection to the new target.  For recursive
+			use check out |execute()|.
+
 			To stop the messages and commands from being echoed to
 			the screen, put the commands in a function and call it
 			with ":silent call Function()".
@@ -512,6 +515,8 @@
 			redirection starts, if the variable is removed or
 			locked or the variable type is changed, then further
 			command output messages will cause errors. {not in Vi}
+			To get the output of one command the |execute()|
+			function can be used.
 
 :redi[r] =>> {var}	Append messages to an existing variable.  Only string
 			variables can be used. {not in Vi}
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index bb8d62d..5340733 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.0.  Last change: 2016 Jun 04
+*version8.txt*  For Vim version 8.0.  Last change: 2016 Jul 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -16,12 +16,12 @@
 See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for
 differences between other versions.
 
-INCOMPATIBLE CHANGES			|incompatible-8|
-
 NEW FEATURES				|new-8|
 
 Vim script enhancements			|new-vim-script-8|
 
+INCOMPATIBLE CHANGES			|incompatible-8|
+
 IMPROVEMENTS				|improvements-8|
 
 COMPILE TIME CHANGES			|compile-changes-8|
@@ -30,21 +30,6 @@
 
 
 ==============================================================================
-INCOMPATIBLE CHANGES				*incompatible-8*
-
-These changes are incompatible with previous releases.  Check this list if you
-run into a problem when upgrading from Vim 7.4 to 8.0.
-
-The support for MS-DOS has been removed.  It hasn't been working for a while
-and removing it cleans up the code quite a bit.
-
-The support for Windows 16 bit (Windows 95 and older) has been removed.
-
-Minor incompatibilities:
-
-For filetype detection: ...
-
-==============================================================================
 NEW FEATURES						*new-8*
 
 First a list of the bigger new features.  A comprehensive list is below.
@@ -52,14 +37,18 @@
 
 Asynchronous I/O support, channels ~
 
-Vim can now exchange messages with another process in the background.  The
-messages are received and handled while Vim is waiting for a character.  See
-|channel-demo| for an example, communicating with a Python server.
+Vim can now exchange messages with other processes in the background.  This
+makes it possible to have servers do work and send back the results to Vim.
+See |channel-demo| for an example, this shows communicating with a Python
+server.
 
 Closely related to channels is JSON support.  JSON is widely supported and can
 easily be used for inter-process communication, allowing for writing a server
 in any language.  The functions to use are |json_encode()| and |json_decode()|.
 
+This makes it possible to build very complex plugins, written in any language
+and running in a separate process.
+
 
 Jobs ~
 
@@ -74,8 +63,8 @@
 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 make a call four seconds (4000 milli seconds) later, like: >
-	call CheckTemp()
+This will call the CheckTemp() function four seconds (4000 milli seconds)
+later.
 
 
 Partials ~
@@ -85,8 +74,7 @@
 especially useful for callbacks on channels and timers.  E.g., for the timer
 example above, to pass an argument to the function: >
 	let tempTimer = timer_start(4000, function('CheckTemp', ['out']))
-This will a make call four seconds later, like: >
-	call CheckTemp('out')
+This will call CheckTemp('out') four seconds later.
 
 
 Packages ~
@@ -103,26 +91,7 @@
 This is for Vim developers.  So far writing tests for Vim has not been easy.
 Vim 8 adds assert functions and a framework to run tests.  This makes it a lot
 simpler to write tests and keep them updated.  Also new are several functions
-that are added specifically for testing.
-
-These functions have been added:
-	|assert_equal()|
-	|assert_notequal()|
-	|assert_exception()|
-	|assert_fails()|
-	|assert_false()|
-	|assert_match()|
-	|assert_notmatch()|
-	|assert_true()|
-	|test_alloc_fail()|
-	|test_disable_char_avail()|
-	|test_garbagecollect_now()|
-	|test_null_channel()|
-	|test_null_dict()|
-	|test_null_job()|
-	|test_null_list()|
-	|test_null_partial()|
-	|test_null_string()|
+that are added specifically for testing. See |test-functions|.
 
 
 Window IDs ~
@@ -132,6 +101,13 @@
 unique ID, so that they are easy to find.  See |win_getid()| and |win_id2win()|.
 
 
+Viminfo uses timestamps ~
+
+Previously the information stored in viminfo was whatever the last Vim wrote
+there.  Now timestamps are used to always keep the most recent items.
+See |viminfo-timestamp|.
+
+
 Wrapping lines with indent ~
 
 The 'breakindent' option has been added to be able to wrap lines without
@@ -216,6 +192,21 @@
 
 
 ==============================================================================
+INCOMPATIBLE CHANGES				*incompatible-8*
+
+These changes are incompatible with previous releases.  Check this list if you
+run into a problem when upgrading from Vim 7.4 to 8.0.
+
+The support for MS-DOS has been removed.  It hasn't been working for a while
+and removing it cleans up the code quite a bit.
+
+The support for Windows 16 bit (Windows 95 and older) has been removed.
+
+Minor incompatibilities:
+
+For filetype detection: ...
+
+==============================================================================
 IMPROVEMENTS						*improvements-8*
 
 The existing blowfish encryption turned out to be much weaker than it was