Updated runtime files.
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index d36f2ce..33a09be 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -142,6 +142,7 @@
 	version5.txt \
 	version6.txt \
 	version7.txt \
+	version8.txt \
 	vi_diff.txt \
 	visual.txt \
 	windows.txt \
@@ -275,6 +276,7 @@
 	version5.html \
 	version6.html \
 	version7.html \
+	version8.html \
 	vi_diff.html \
 	vimindex.html \
 	visual.html \
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b0b8479..1b4b3b7 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Mar 29
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Apr 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -411,7 +411,8 @@
 A key is always a String.  You can use a Number, it will be converted to a
 String automatically.  Thus the String '4' and the number 4 will find the same
 entry.	Note that the String '04' and the Number 04 are different, since the
-Number will be converted to the String '4'.
+Number will be converted to the String '4'.  The empty string can be used as a
+key.
 
 A value can be any expression.	Using a Dictionary for a value creates a
 nested Dictionary: >
@@ -874,11 +875,11 @@
 expr8							*expr8*
 -----
 expr8[expr1]		item of String or |List|	*expr-[]* *E111*
-							*E909*
+							*E909* *subscript*
 If expr8 is a Number or String this results in a String that contains the
 expr1'th single byte from expr8.  expr8 is used as a String, expr1 as a
 Number.  This doesn't recognize multi-byte encodings, see |byteidx()| for
-an alternative.
+an alternative, or use `split()` to turn the string into a list of characters.
 
 Index zero gives the first byte.  This is like it works in C.  Careful:
 text column numbers start with one!  Example, to get the byte under the
@@ -2046,6 +2047,7 @@
 readfile( {fname} [, {binary} [, {max}]])
 				List	get list of lines from file {fname}
 reltime( [{start} [, {end}]])	List	get time value
+reltimefloat( {time})		Float	turn the time value into a Float
 reltimestr( {time})		String	turn time value into a String
 remote_expr( {server}, {string} [, {idvar}])
 				String	send expression
@@ -2183,6 +2185,7 @@
 				Number	write list of lines to file {fname}
 xor( {expr}, {expr})		Number  bitwise XOR
 
+
 abs({expr})							*abs()*
 		Return the absolute value of {expr}.  When {expr} evaluates to
 		a |Float| abs() returns a |Float|.  When {expr} can be
@@ -2996,6 +2999,7 @@
 
 		When there is one argument {list} this is used as a |List|
 		with two, three or four item:
+			[{lnum}, {col}]
 			[{lnum}, {col}, {off}]
 			[{lnum}, {col}, {off}, {curswant}]
 		This is like the return value of |getpos()| or |getcurpos()|,
@@ -3400,7 +3404,10 @@
 			similar to using ":normal!".  You can call feedkeys()
 			several times without 'x' and then one time with 'x'
 			(possibly with an empty {string}) to execute all the
-			typeahead.
+			typeahead.  Note that when Vim ends in Insert mode it
+			will behave as if <Esc> is typed, to avoid getting
+			stuck, waiting for a character to be typed before the
+			script continues.
 		Return value is always 0.
 
 filereadable({file})					*filereadable()*
@@ -4633,7 +4640,7 @@
 			"fail"	job failed to start
 			"dead"	job died or was stopped after running
 		
-		If an exit callback was set with the "exit-cb" option and the
+		If an exit callback was set with the "exit_cb" option and the
 		job is now detected to be "dead" the callback will be invoked.
 
 		For more information see |job_info()|.
@@ -5642,7 +5649,8 @@
 reltime([{start} [, {end}]])				*reltime()*
 		Return an item that represents a time value.  The format of
 		the item depends on the system.  It can be passed to
-		|reltimestr()| to convert it to a string.
+		|reltimestr()| to convert it to a string  or |reltimefloat()|
+		to convert to a Float.
 		Without an argument it returns the current time.
 		With one argument is returns the time passed since the time
 		specified in the argument.
@@ -5652,6 +5660,16 @@
 		reltime().
 		{only available when compiled with the |+reltime| feature}
 
+reltimefloat({time})				*reltimefloat()*
+		Return a Float that represents the time value of {time}.
+		Example: >
+			let start = reltime()
+			call MyFunction()
+			let seconds = reltimefloat(reltime(start))
+<		See the note of reltimestr() about overhead.
+		Also see |profiling|.
+		{only available when compiled with the |+reltime| feature}
+
 reltimestr({time})				*reltimestr()*
 		Return a String that represents the time value of {time}.
 		This is the number of seconds, a dot and the number of
@@ -7340,7 +7358,7 @@
 		tabpage.
 		Return 1 if successful, 0 if the window cannot be found.
 
-win_id2tabwin({expr}					*win_id2tabwin()*
+win_id2tabwin({expr})					*win_id2tabwin()*
 		Return a list with the tab number and window number of window
 		with ID {expr}: [tabnr, winnr].
 		Return [0, 0] if the window cannot be found.
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index 605b998..c657790 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.4.  Last change: 2014 Mar 08
+*gui_x11.txt*   For Vim version 7.4.  Last change: 2016 Apr 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -305,7 +305,7 @@
 "arrow" pointer is used.
 
 ==============================================================================
-5. GTK version						*gui-gtk* *GTK+* *GTK*
+5. GTK version					*gui-gtk* *GTK+* *GTK* *GTK3*
 
 The GTK version of the GUI works a little bit different.
 
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 09cb325..23d981a 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 7.4.  Last change: 2016 Feb 27
+*help.txt*	For Vim version 7.4.  Last change: 2016 Mar 31
 
 			VIM - main help file
 									 k
@@ -178,6 +178,7 @@
 |version5.txt|	Differences between Vim version 4.6 and 5.x
 |version6.txt|	Differences between Vim version 5.7 and 6.x
 |version7.txt|	Differences between Vim version 6.4 and 7.x
+|version8.txt|	Differences between Vim version 7.4 and 8.x
 						*sys-file-list*
 Remarks about specific systems ~
 |os_390.txt|	OS/390 Unix
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 2d52d13..2a06b63 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,4 +1,4 @@
-*helphelp.txt*	For Vim version 7.4.  Last change: 2016 Mar 28
+*helphelp.txt*	For Vim version 7.4.  Last change: 2016 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -322,6 +322,10 @@
 When referring to an existing help tag and to create a hot-link, place the
 name between two bars (|) eg. |help-writing|.
 
+When referring to a Vim command and to create a hot-link, place the
+name between two backticks, eg. inside `:filetype`.  You will see this is
+highlighted as a command, like a code block (see below).
+
 When referring to a Vim option in the help file, place the option name between
 two single quotes, eg. 'statusline'
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6ddf076..b354ddf 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 Apr 03
+*options.txt*	For Vim version 7.4.  Last change: 2016 Apr 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2646,7 +2646,7 @@
 	also 'gdefault' option.
 	Switching this option on is discouraged!
 
-						*'emoji'* *'emo'*
+					*'emoji'* *'emo'* *'noemoji'* *'noemo'*
 'emoji' 'emo'	boolean (default: on)
 			global
 			{not in Vi}
@@ -3634,7 +3634,7 @@
 		      HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,
 		      SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
 		      Normally you would use "cDEFAULT".
-		qXX - quality XX.  Valid charsets are: PROOF, DRAFT,
+		qXX - quality XX.  Valid quality names are: PROOF, DRAFT,
 		      ANTIALIASED, UNANTIALIASED, CLEARTYPE, DEFAULT.
 		      Normally you would use "qDEFAULT".
 		      Some quality values isn't supported in legacy OSs.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 2a3d2c4..9cb6e11 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.4.  Last change: 2016 Jan 03
+*pattern.txt*   For Vim version 7.4.  Last change: 2016 Apr 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1104,8 +1104,8 @@
 	  '/', alphabetic, numeric, '_' or '~'.
 	  These items only work for 8-bit characters, except [:lower:] and
 	  [:upper:] also work for multi-byte characters when using the new
-	  regexp engine.  In the future these items may work for multi-byte
-	  characters.
+	  regexp engine.  See |two-engines|.  In the future these items may
+	  work for multi-byte characters.
 							*/[[=* *[==]*
 	- An equivalence class.  This means that characters are matched that
 	  have almost the same meaning, e.g., when ignoring accents.  This
diff --git a/runtime/doc/pi_logipat.txt b/runtime/doc/pi_logipat.txt
index ea3acda..d2eac80 100644
--- a/runtime/doc/pi_logipat.txt
+++ b/runtime/doc/pi_logipat.txt
@@ -1,25 +1,25 @@
-*pi_logipat.txt*	Logical Patterns				Mar 13, 2013
+*logiPat.txt*	Logical Patterns				Jun 22, 2015
 
 Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
-Copyright: (c) 2004-2013 by Charles E. Campbell	*logipat-copyright*
+Copyright: (c) 2004-2015 by Charles E. Campbell	*logiPat-copyright*
            The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
            (see |copyright|) except use "LogiPat" instead of "Vim"
 	   No warranty, express or implied.  Use At-Your-Own-Risk.
 
 ==============================================================================
-1. Contents					*logipat* *logipat-contents*
+1. Contents					*logiPat* *logiPat-contents*
 
-	1. Contents.................: |logipat-contents|
-	2. LogiPat Manual...........: |logipat-manual|
-	3. LogiPat Examples.........: |logipat-examples|
-	4. Caveat...................: |logipat-caveat|
-	5. LogiPat History..........: |logipat-history|
+	1. Contents.................: |logiPat-contents|
+	2. LogiPat Manual...........: |logiPat-manual|
+	3. LogiPat Examples.........: |logiPat-examples|
+	4. Caveat...................: |logiPat-caveat|
+	5. LogiPat History..........: |logiPat-history|
+
 
 ==============================================================================
-2. LogiPat Manual			*logipat-manual* *logipat-man*
+2. LogiPat Manual			*logiPat-manual* *logiPat-man*
 
-
-	*logipat-arg* *logipat-input* *logipat-pattern* *logipat-operators*
+	*logiPat-arg* *logiPat-input* *logiPat-pattern* *logiPat-operators*
 	Boolean logic patterns are composed of
 
 			operators  ! = not
@@ -30,13 +30,12 @@
 
 	:LogiPat {boolean-logic pattern}		*:LogiPat*
 		:LogiPat is a command which takes a boolean-logic
-		argument (|logipat-arg|).
+		argument (|logiPat-arg|).
 
 	:LP {boolean-logic pattern}			*:LP*
 		:LP is a shorthand command version of :LogiPat
-		(|:LogiPat|).
 
-	:ELP {boolean-logic pattern}			*:ELP*
+	:LPE {boolean-logic pattern}			*:LPE*
 		No search is done, but the conversion from the
 		boolean logic pattern to the regular expression
 		is performed and echoed onto the display.
@@ -59,8 +58,9 @@
 	To get a " inside a pattern, as opposed to having it delimit
 	the pattern, double it.
 
+
 ==============================================================================
-3. LogiPat Examples					*logipat-examples*
+3. LogiPat Examples					*logiPat-examples*
 
 	LogiPat takes Boolean logic arguments and produces a regular
 	expression which implements the choices.  A series of examples
@@ -96,22 +96,26 @@
 
 
 ==============================================================================
-4. Caveat						*logipat-caveat*
+4. Caveat						*logiPat-caveat*
 
 	The "not" operator may be fragile; ie. it may not always play well
 	with the & (logical-and) and | (logical-or) operators.  Please try out
 	your patterns, possibly with :set hls, to insure that what is matching
 	is what you want.
 
-==============================================================================
-3. LogiPat History					*logipat-history*
 
+==============================================================================
+3. LogiPat History					*logiPat-history*
+
+	v4 Jun 22, 2015 * LogiPat has been picked up by Bram M for standard
+			  plugin distribution; hence the name change
 	v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
 	                  in \%(...\) parentheses
-	   Dec 12, 2011 * |:ELP| added
+	   Dec 12, 2011 * |:LPE| added
 			* "" is mapped to a single " and left inside patterns
 	v2 May 31, 2005	* LPF and LogiPatFlags commands weren't working
 	v1 May 23, 2005	* initial release
 
+
 ==============================================================================
 vim:tw=78:ts=8:ft=help
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index bbc7498..68103b5 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,12 +1,12 @@
-*pi_vimball.txt*	For Vim version 7.4.  Last change: 2012 Jan 17
+*pi_vimball.txt*	For Vim version 7.4.  Last change: 2016 Apr 11
 
 			       ----------------
 			       Vimball Archiver
 			       ----------------
 
-Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
+Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: (c) 2004-2012 by Charles E. Campbell, Jr.	*Vimball-copyright*
+Copyright: (c) 2004-2015 by Charles E. Campbell		*Vimball-copyright*
 	The VIM LICENSE (see |copyright|) applies to the files in this
 	package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
 	except use "vimball" instead of "VIM".  Like anything else that's free,
@@ -99,10 +99,10 @@
 
 	If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set
 	as follows: >
-	  |g:netrw_local_mkdir|, if it exists
-	  "mkdir"              , if it is executable
-	  "makedir"            , if it is executable
-	  Otherwise            , it is undefined.
+	  |g:netrw_localmkdir|, if it exists
+	  "mkdir"             , if it is executable
+	  "makedir"           , if it is executable
+	  Otherwise           , it is undefined.
 <	One may explicitly specify the directory making command using
 	g:vimball_mkdir.  This command is used to make directories that
 	are needed as indicated by the vimball.
@@ -120,8 +120,7 @@
 	source the file to extract its contents.
 
 	Extraction will only proceed if the first line of a putative vimball
-	file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
-	line.
+	file holds the "Vimball Archiver by Charles E. Campbell" line.
 
 LISTING FILES IN A VIMBALL					*:VimballList*
 
@@ -182,13 +181,16 @@
 ==============================================================================
 4. Vimball History					*vimball-history* {{{1
 
+	37 : Jul 18, 2014 * (by request of T. Miedema) added augroup around
+			    the autocmds in vimballPlugin.vim
+	     Jul 06, 2015 * there are two uses of tabc; changed to tabc!
 	34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
 			    prepending the current directory to it.
 	33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
 			  * Changed silent! to sil! (shorter)
 			  * Safed |'swf'| setting (during vimball extraction,
 			    its now turned off)
-	32 : May 19, 2010 * (Christian Brabandt) :so someplugin.vba and
+	32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
 			    :so someplugin.vba.gz (and the other supported
 			    compression types) now works
 			  * (Jan Steffens) added support for xz compression
@@ -200,6 +202,7 @@
 			    MkVimball, however, now will create *.vmb files.
 	     Feb 11, 2011 * motoyakurotsu reported an error with vimball's
 			    handling of zero-length files
+	     Feb 18, 2016 * Changed =~ to =~# where appropriate
 	30 : Dec 08, 2008 * fnameescape() inserted to protect error
 			    messaging using corrupted filenames from
 			    causing problems
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 8d415ae..f42ea82 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.4.  Last change: 2016 Feb 24
+*quickref.txt*  For Vim version 7.4.  Last change: 2016 Mar 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -679,6 +679,7 @@
 'display'	  'dy'	    list of flags for how to display text
 'eadirection'	  'ead'     in which direction 'equalalways' works
 'edcompatible'	  'ed'	    toggle flags of ":substitute" command
+'emoji'		  'emo'	    emoji characters are considered full width
 'encoding'	  'enc'     encoding used internally
 'endofline'	  'eol'     write <EOL> for last line in file
 'equalalways'	  'ea'	    windows are automatically made the same size
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index e2c4c2f..92ab585 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.4.  Last change: 2016 Mar 27
+*repeat.txt*    For Vim version 7.4.  Last change: 2016 Apr 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -72,8 +72,8 @@
 The global commands work by first scanning through the [range] lines and
 marking each line where a match occurs (for a multi-line pattern, only the
 start of the match matters).
-In a second scan the [cmd] is executed for each marked line with its line
-number prepended.  For ":v" and ":g!" the command is executed for each not
+In a second scan the [cmd] is executed for each marked line, as if the cursor
+was in that line.  For ":v" and ":g!" the command is executed for each not
 marked line.  If a line is deleted its mark disappears.
 The default for [range] is the whole buffer (1,$).  Use "CTRL-C" to interrupt
 the command.  If an error message is given for a line, the command for that
@@ -234,8 +234,11 @@
 			there yet.
 
 			Note that {name} is the directory name, not the name
-			of the .vim file.  If the "{name}/plugin" directory
-			contains more than one file they are all sourced.
+			of the .vim file.  All the files matching the pattern
+				pack/*/opt/{name}/plugin/**/*.vim ~
+			will be sourced.  This allows for using subdirectories
+			below "plugin", just like with plugins in
+			'runtimepath'.
 
 			If the filetype detection was not enabled yet (this
 			is usually done with a "syntax enable" or "filetype
@@ -251,15 +254,24 @@
 			Also see |pack-add|.
 
 						*:packl* *:packloadall*
-:packloadall[!]		Load all packages in the "start" directories under
-			'packpath'.  The directories found are added to
-			'runtimepath'.
+:packl[oadall][!]	Load all packages in the "start" directory under each
+			entry in 'packpath'.
+			
+			First all the directories found are added to
+			'runtimepath', then the plugins found in the
+			directories are sourced.  This allows for a plugin to
+			depend on something of another plugin, e.g. an
+			"autoload" directory.  See |packload-two-steps| for
+			how this can be useful.
+
 			This is normally done automatically during startup,
 			after loading your .vimrc file.  With this command it
 			can be done earlier.
+
 			Packages will be loaded only once.  After this command
 			it won't happen again.  When the optional ! is added
 			this command will load packages even when done before.
+
 			An error only causes sourcing the script where it
 			happens to be aborted, further plugins will be loaded.
 			See |packages|.
@@ -471,8 +483,9 @@
 	pack/foo/opt/foodebug/plugin/debugger.vim
 
 When Vim starts up, after processing your .vimrc, it scans all directories in
-'packpath' for plugins under the "pack/*/start" directory and loads them.  The
-directory is added to 'runtimepath'.
+'packpath' for plugins under the "pack/*/start" directory.  First all those
+directories are added to 'runtimepath'.  Then all the plugins are loaded.
+See |packload-two-steps| for how these two steps can be useful.
 
 In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds 
 "~/.vim/pack/foo/start/foobar" to 'runtimepath'.
@@ -599,6 +612,23 @@
 	:helptags path/start/foobar/doc
 	:helptags path/opt/fooextra/doc
 
+
+Dependencies between plugins ~
+							*packload-two-steps*
+Suppose you have a two plugins that depend on the same functionality. You can
+put the common functionality in an autoload directory, so that it will be
+found automatically.  Your package would have these files:
+
+	pack/foo/start/one/plugin/one.vim  >
+		call foolib#getit()
+<	pack/foo/start/two/plugin/two.vim >
+		call foolib#getit()
+<	pack/foo/start/lib/autoload/foolib.vim >
+		func foolib#getit()
+
+This works, because loading packages will first add all found directories to
+'runtimepath' before sourcing the plugins.
+
 ==============================================================================
 7. Debugging scripts					*debug-scripts*
 
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index d2c44b9..050afcd 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 Mar 26
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Apr 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -865,9 +865,10 @@
 	commands from the command line have not been executed yet.  You can
 	use "--cmd 'set noloadplugins'" |--cmd|.
 
-	Plugin packs are loaded.  These are plugins, as above, but found in
-	'packpath' "start" directories.  Every plugin directory found is added
-	in 'runtimepath'.  See |packages|.
+	Packages are loaded.  These are plugins, as above, but found in the
+	"start" directory of each entry in 'packpath'.  Every plugin directory
+	found is added in 'runtimepath' and then the plugins are sourced.  See
+	|packages|.
 
 5. Set 'shellpipe' and 'shellredir'
 	The 'shellpipe' and 'shellredir' options are set according to the
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index f635111..ab5c083 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.4.  Last change: 2016 Mar 12
+*syntax.txt*	For Vim version 7.4.  Last change: 2016 Apr 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -941,26 +941,27 @@
 	:unlet c_comment_strings
 
 Variable		Highlight ~
-c_gnu			GNU gcc specific items
-c_comment_strings	strings and numbers inside a comment
-c_space_errors		trailing white space and spaces before a <Tab>
-c_no_trail_space_error	 ... but no trailing spaces
-c_no_tab_space_error	 ... but no spaces before a <Tab>
-c_no_bracket_error	don't highlight {}; inside [] as errors
-c_no_curly_error	don't highlight {}; inside [] and () as errors;
+*c_gnu*			GNU gcc specific items
+*c_comment_strings*	strings and numbers inside a comment
+*c_space_errors*		trailing white space and spaces before a <Tab>
+*c_no_trail_space_error*	 ... but no trailing spaces
+*c_no_tab_space_error*	 ... but no spaces before a <Tab>
+*c_no_bracket_error*	don't highlight {}; inside [] as errors
+*c_no_curly_error*	don't highlight {}; inside [] and () as errors;
 				except { and } in first column
-c_curly_error		highlight a missing }; this forces syncing from the
+*c_curly_error*		highlight a missing }; this forces syncing from the
 			start of the file, can be slow
-c_no_ansi		don't do standard ANSI types and constants
-c_ansi_typedefs		 ... but do standard ANSI types
-c_ansi_constants	 ... but do standard ANSI constants
-c_no_utf		don't highlight \u and \U in strings
-c_syntax_for_h		for *.h files use C syntax instead of C++ and use objc
+*c_no_ansi*		don't do standard ANSI types and constants
+*c_ansi_typedefs*		 ... but do standard ANSI types
+*c_ansi_constants*	 ... but do standard ANSI constants
+*c_no_utf*		don't highlight \u and \U in strings
+*c_syntax_for_h*		for *.h files use C syntax instead of C++ and use objc
 			syntax instead of objcpp
-c_no_if0		don't highlight "#if 0" blocks as comments
-c_no_cformat		don't highlight %-formats in strings
-c_no_c99		don't highlight C99 standard items
-c_no_c11		don't highlight C11 standard items
+*c_no_if0*		don't highlight "#if 0" blocks as comments
+*c_no_cformat*		don't highlight %-formats in strings
+*c_no_c99*		don't highlight C99 standard items
+*c_no_c11*		don't highlight C11 standard items
+*c_no_bsd*		don't highlight BSD specific types
 
 When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will
 become a fold.  If you don't want comments to become a fold use: >
@@ -5047,6 +5048,9 @@
 
   :syntax reset
 
+It is a bit of a wrong name, since it does not reset any syntax items, it only
+affects the highlighting.
+
 This doesn't change the colors for the 'highlight' option.
 
 Note that the syntax colors that you set in your vimrc file will also be reset
diff --git a/runtime/doc/tags b/runtime/doc/tags
index a11cf6c..ec0e580 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -538,6 +538,8 @@
 'noed'	options.txt	/*'noed'*
 'noedcompatible'	options.txt	/*'noedcompatible'*
 'noek'	options.txt	/*'noek'*
+'noemo'	options.txt	/*'noemo'*
+'noemoji'	options.txt	/*'noemoji'*
 'noendofline'	options.txt	/*'noendofline'*
 'noeol'	options.txt	/*'noeol'*
 'noequalalways'	options.txt	/*'noequalalways'*
@@ -1867,7 +1869,6 @@
 :CompilerSet	usr_41.txt	/*:CompilerSet*
 :DiffOrig	diff.txt	/*:DiffOrig*
 :DoMatchParen	pi_paren.txt	/*:DoMatchParen*
-:ELP	pi_logipat.txt	/*:ELP*
 :Explore	pi_netrw.txt	/*:Explore*
 :GLVS	pi_getscript.txt	/*:GLVS*
 :GetLatestVimScripts_dat	pi_getscript.txt	/*:GetLatestVimScripts_dat*
@@ -1876,6 +1877,7 @@
 :GnatTags	ft_ada.txt	/*:GnatTags*
 :Hexplore	pi_netrw.txt	/*:Hexplore*
 :LP	pi_logipat.txt	/*:LP*
+:LPE	pi_logipat.txt	/*:LPE*
 :LPF	pi_logipat.txt	/*:LPF*
 :Lexplore	pi_netrw.txt	/*:Lexplore*
 :LogiPat	pi_logipat.txt	/*:LogiPat*
@@ -4502,6 +4504,7 @@
 GNOME	gui_x11.txt	/*GNOME*
 GTK	gui_x11.txt	/*GTK*
 GTK+	gui_x11.txt	/*GTK+*
+GTK3	gui_x11.txt	/*GTK3*
 GUI	gui.txt	/*GUI*
 GUI-X11	gui_x11.txt	/*GUI-X11*
 GUIEnter	autocmd.txt	/*GUIEnter*
@@ -4952,6 +4955,8 @@
 assert_fails()	eval.txt	/*assert_fails()*
 assert_false()	eval.txt	/*assert_false()*
 assert_match()	eval.txt	/*assert_match()*
+assert_notequal()	eval.txt	/*assert_notequal()*
+assert_notmatch()	eval.txt	/*assert_notmatch()*
 assert_true()	eval.txt	/*assert_true()*
 at	motion.txt	/*at*
 atan()	eval.txt	/*atan()*
@@ -5073,6 +5078,7 @@
 bug-fixes-5	version5.txt	/*bug-fixes-5*
 bug-fixes-6	version6.txt	/*bug-fixes-6*
 bug-fixes-7	version7.txt	/*bug-fixes-7*
+bug-fixes-8	version8.txt	/*bug-fixes-8*
 bug-reports	intro.txt	/*bug-reports*
 bugreport.vim	intro.txt	/*bugreport.vim*
 bugs	intro.txt	/*bugs*
@@ -5166,7 +5172,25 @@
 c_Left	cmdline.txt	/*c_Left*
 c_Right	cmdline.txt	/*c_Right*
 c_Up	cmdline.txt	/*c_Up*
+c_ansi_constants	syntax.txt	/*c_ansi_constants*
+c_ansi_typedefs	syntax.txt	/*c_ansi_typedefs*
+c_comment_strings	syntax.txt	/*c_comment_strings*
+c_curly_error	syntax.txt	/*c_curly_error*
 c_digraph	cmdline.txt	/*c_digraph*
+c_gnu	syntax.txt	/*c_gnu*
+c_no_ansi	syntax.txt	/*c_no_ansi*
+c_no_bracket_error	syntax.txt	/*c_no_bracket_error*
+c_no_bsd	syntax.txt	/*c_no_bsd*
+c_no_c11	syntax.txt	/*c_no_c11*
+c_no_c99	syntax.txt	/*c_no_c99*
+c_no_cformat	syntax.txt	/*c_no_cformat*
+c_no_curly_error	syntax.txt	/*c_no_curly_error*
+c_no_if0	syntax.txt	/*c_no_if0*
+c_no_tab_space_error	syntax.txt	/*c_no_tab_space_error*
+c_no_trail_space_error	syntax.txt	/*c_no_trail_space_error*
+c_no_utf	syntax.txt	/*c_no_utf*
+c_space_errors	syntax.txt	/*c_space_errors*
+c_syntax_for_h	syntax.txt	/*c_syntax_for_h*
 c_wildchar	cmdline.txt	/*c_wildchar*
 call()	eval.txt	/*call()*
 carriage-return	intro.txt	/*carriage-return*
@@ -5327,6 +5351,7 @@
 compile-changes-5	version5.txt	/*compile-changes-5*
 compile-changes-6	version6.txt	/*compile-changes-6*
 compile-changes-7	version7.txt	/*compile-changes-7*
+compile-changes-8	version8.txt	/*compile-changes-8*
 compiler-compaqada	ft_ada.txt	/*compiler-compaqada*
 compiler-decada	ft_ada.txt	/*compiler-decada*
 compiler-gcc	quickfix.txt	/*compiler-gcc*
@@ -6783,6 +6808,7 @@
 improvements-5	version5.txt	/*improvements-5*
 improvements-6	version6.txt	/*improvements-6*
 improvements-7	version7.txt	/*improvements-7*
+improvements-8	version8.txt	/*improvements-8*
 in_bot	channel.txt	/*in_bot*
 in_buf	channel.txt	/*in_buf*
 in_mode	channel.txt	/*in_mode*
@@ -6795,6 +6821,7 @@
 incompatible-5	version5.txt	/*incompatible-5*
 incompatible-6	version6.txt	/*incompatible-6*
 incompatible-7	version7.txt	/*incompatible-7*
+incompatible-8	version8.txt	/*incompatible-8*
 indent()	eval.txt	/*indent()*
 indent-expression	indent.txt	/*indent-expression*
 indent.txt	indent.txt	/*indent.txt*
@@ -6988,18 +7015,19 @@
 location-list-window	quickfix.txt	/*location-list-window*
 log()	eval.txt	/*log()*
 log10()	eval.txt	/*log10()*
-logipat	pi_logipat.txt	/*logipat*
-logipat-arg	pi_logipat.txt	/*logipat-arg*
-logipat-caveat	pi_logipat.txt	/*logipat-caveat*
-logipat-contents	pi_logipat.txt	/*logipat-contents*
-logipat-copyright	pi_logipat.txt	/*logipat-copyright*
-logipat-examples	pi_logipat.txt	/*logipat-examples*
-logipat-history	pi_logipat.txt	/*logipat-history*
-logipat-input	pi_logipat.txt	/*logipat-input*
-logipat-man	pi_logipat.txt	/*logipat-man*
-logipat-manual	pi_logipat.txt	/*logipat-manual*
-logipat-operators	pi_logipat.txt	/*logipat-operators*
-logipat-pattern	pi_logipat.txt	/*logipat-pattern*
+logiPat	pi_logipat.txt	/*logiPat*
+logiPat-arg	pi_logipat.txt	/*logiPat-arg*
+logiPat-caveat	pi_logipat.txt	/*logiPat-caveat*
+logiPat-contents	pi_logipat.txt	/*logiPat-contents*
+logiPat-copyright	pi_logipat.txt	/*logiPat-copyright*
+logiPat-examples	pi_logipat.txt	/*logiPat-examples*
+logiPat-history	pi_logipat.txt	/*logiPat-history*
+logiPat-input	pi_logipat.txt	/*logiPat-input*
+logiPat-man	pi_logipat.txt	/*logiPat-man*
+logiPat-manual	pi_logipat.txt	/*logiPat-manual*
+logiPat-operators	pi_logipat.txt	/*logiPat-operators*
+logiPat-pattern	pi_logipat.txt	/*logiPat-pattern*
+logiPat.txt	pi_logipat.txt	/*logiPat.txt*
 long-lines	version5.txt	/*long-lines*
 love	intro.txt	/*love*
 lowercase	change.txt	/*lowercase*
@@ -7452,6 +7480,7 @@
 new-5	version5.txt	/*new-5*
 new-6	version6.txt	/*new-6*
 new-7	version7.txt	/*new-7*
+new-8	version8.txt	/*new-8*
 new-GTK-GUI	version5.txt	/*new-GTK-GUI*
 new-MzScheme	version7.txt	/*new-MzScheme*
 new-Select-mode	version5.txt	/*new-Select-mode*
@@ -7484,6 +7513,7 @@
 new-indent-flex	version6.txt	/*new-indent-flex*
 new-items-6	version6.txt	/*new-items-6*
 new-items-7	version7.txt	/*new-items-7*
+new-items-8	version8.txt	/*new-items-8*
 new-line-continuation	version5.txt	/*new-line-continuation*
 new-location-list	version7.txt	/*new-location-list*
 new-lua	version7.txt	/*new-lua*
@@ -7526,6 +7556,7 @@
 new-utf-8	version6.txt	/*new-utf-8*
 new-vertsplit	version6.txt	/*new-vertsplit*
 new-vim-script	version7.txt	/*new-vim-script*
+new-vim-script-8	version8.txt	/*new-vim-script-8*
 new-vim-server	version6.txt	/*new-vim-server*
 new-vimgrep	version7.txt	/*new-vimgrep*
 new-virtedit	version6.txt	/*new-virtedit*
@@ -7611,6 +7642,7 @@
 pack-add	repeat.txt	/*pack-add*
 package-create	repeat.txt	/*package-create*
 packages	repeat.txt	/*packages*
+packload-two-steps	repeat.txt	/*packload-two-steps*
 page-down	intro.txt	/*page-down*
 page-up	intro.txt	/*page-up*
 page_down	intro.txt	/*page_down*
@@ -7619,6 +7651,7 @@
 papp.vim	syntax.txt	/*papp.vim*
 paragraph	motion.txt	/*paragraph*
 pascal.vim	syntax.txt	/*pascal.vim*
+patches-8	version8.txt	/*patches-8*
 pathshorten()	eval.txt	/*pathshorten()*
 pattern	pattern.txt	/*pattern*
 pattern-atoms	pattern.txt	/*pattern-atoms*
@@ -7670,7 +7703,6 @@
 phtml.vim	syntax.txt	/*phtml.vim*
 pi_getscript.txt	pi_getscript.txt	/*pi_getscript.txt*
 pi_gzip.txt	pi_gzip.txt	/*pi_gzip.txt*
-pi_logipat.txt	pi_logipat.txt	/*pi_logipat.txt*
 pi_netrw.txt	pi_netrw.txt	/*pi_netrw.txt*
 pi_paren.txt	pi_paren.txt	/*pi_paren.txt*
 pi_spec.txt	pi_spec.txt	/*pi_spec.txt*
@@ -7871,6 +7903,7 @@
 regular-expression	pattern.txt	/*regular-expression*
 reload	editing.txt	/*reload*
 reltime()	eval.txt	/*reltime()*
+reltimefloat()	eval.txt	/*reltimefloat()*
 reltimestr()	eval.txt	/*reltimestr()*
 remote.txt	remote.txt	/*remote.txt*
 remote_expr()	eval.txt	/*remote_expr()*
@@ -8260,6 +8293,7 @@
 sublist	eval.txt	/*sublist*
 submatch()	eval.txt	/*submatch()*
 subscribe-maillist	intro.txt	/*subscribe-maillist*
+subscript	eval.txt	/*subscript*
 substitute()	eval.txt	/*substitute()*
 substitute-CR	version6.txt	/*substitute-CR*
 suffixes	cmdline.txt	/*suffixes*
@@ -8919,6 +8953,7 @@
 version-7.2	version7.txt	/*version-7.2*
 version-7.3	version7.txt	/*version-7.3*
 version-7.4	version7.txt	/*version-7.4*
+version-8.0	version8.txt	/*version-8.0*
 version-variable	eval.txt	/*version-variable*
 version4.txt	version4.txt	/*version4.txt*
 version5.txt	version5.txt	/*version5.txt*
@@ -8929,6 +8964,8 @@
 version7.3	version7.txt	/*version7.3*
 version7.4	version7.txt	/*version7.4*
 version7.txt	version7.txt	/*version7.txt*
+version8.0	version8.txt	/*version8.0*
+version8.txt	version8.txt	/*version8.txt*
 vi	intro.txt	/*vi*
 vi-differences	vi_diff.txt	/*vi-differences*
 vi:	options.txt	/*vi:*
@@ -8937,6 +8974,8 @@
 view-diffs	diff.txt	/*view-diffs*
 view-file	starting.txt	/*view-file*
 views-sessions	starting.txt	/*views-sessions*
+vim-7.4	version7.txt	/*vim-7.4*
+vim-8	version8.txt	/*vim-8*
 vim-additions	vi_diff.txt	/*vim-additions*
 vim-announce	intro.txt	/*vim-announce*
 vim-arguments	starting.txt	/*vim-arguments*
@@ -8950,6 +8989,7 @@
 vim-variable	eval.txt	/*vim-variable*
 vim.vim	syntax.txt	/*vim.vim*
 vim7	version7.txt	/*vim7*
+vim8	version8.txt	/*vim8*
 vim:	options.txt	/*vim:*
 vim_did_enter-variable	eval.txt	/*vim_did_enter-variable*
 vim_starting	eval.txt	/*vim_starting*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index e9a6d91..ff359b1 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 Mar 29
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Apr 11
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -27,14 +27,31 @@
 See |develop.txt| for development plans.  You can vote for which items should
 be worked on, but only if you sponsor Vim development.  See |sponsor|.
 
-Issues can also be entered online: http://code.google.com/p/vim/issues/list
+Issues can also be entered online: https://github.com/vim/vim/issues
 Updates will be forwarded to the vim_dev maillist.  Issues entered there will
 not be repeated below, unless there is extra information.
 
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Using free memory. (Dominique, 2016 Mar 27)
+Crash in garbagecollect() after starting a job. (Yasuhiro Matsumoto)
+  :let g:a = job_start(['ls'])
+  :call garbagecollect()
+-> Need to find a way to call garbagecollect() in a test.
+
+Channel closes unexpectedly. (Christian Robinson, 2016 Apr 10)
+Log file later.
+Remarks from Kazunobu Kuriyama.  Fix from Hirohito, suggested by Ozaki Kiichi.
+
+When test_partial start_job() has a non-existing command memory leaks.
+
+Vim 8 features to mention:
+* TabNew, TabNewEntered and TabClosed autocommand events.
+
+Also keep a list of loaded plugins, skip when encountered again?
+
+Memory leak in test49
+Memory leak in test_alot, with matchstrpos()
 
 +channel:
 - When a message in the queue but there is no callback, drop it after a while?
@@ -50,23 +67,17 @@
 - job_start(): run job in a newly opened terminal.
     With xterm could use -S{pty}.
 
-Partial:
-- Maybe we also need VAR_PARTIAL support in if_mzsch.
+Test for try/catch in 'tabline'. #746, Haya, 2016 Apr 10.
 
 Make it so that the window ID can be used where currently a window nr is used
 
-Patch to add "q" item to guifont. #720, Kim Brouer, 2016 Mar 29
-Better patch from Yasuhiro Matsumoto, 2016 Jan 4.
-
 Patch to make tag jump work on function({expr}). (Hirohito Higashi, 2016 Mar
 25)
 
-Allow for an empty dictionary key?
-
 Patch to improve I/O for Perl. (Damien, 2016 Jan 9, update Jan 22 2nd one)
 
-Patch to fix ml_get error. (Alexander Freiherr von Buddenbrock, 2016 Mar 4,
-#676)
+Add strgetchar(): get a character by index from a string.
+    using [] is a byte index.
 
 Regexp problems:
 - The regexp engines are not reentrant, causing havoc when interrupted by a
@@ -89,6 +100,7 @@
 - NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
 - Does not work with NFA regexp engine:
   \%u, \%x, \%o, \%d followed by a composing character
+- \%'[ does not work.  '%'] does work.  (Masaaki Nakamura, 2016 Apr 4)
 - Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
 - New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
   2015 Feb 7)
@@ -114,21 +126,31 @@
 
 Patch 7.4.1401 caused autochdir not to work on startup. (Rob Hoelz, #704)
 
+Patch to support partions for Python, #734.  Nikolai Pavlov, 2017 Apr 6
+
 Patch to fix that folds close with autocomplete.  #643
 Christian Brabandt, 2016 Feb 18.
 
 Also include update_curswant() fix for getcurpos(). (Christian Brabandt, 2016
 Feb 9)
 
+When cross-compiling skip generating the tags file (and moving it out of the
+way). (Christian Neukirchen, 2016 Apr 7)  #740
+
 Patch to list some messages and clear messages. (Yasuhiro Matsumoto, 2016 Mar
 12)
 
 Patch to fix escaping special characters for delete(). (tc-0, 2016 Mar 20,
 #700) Test fails on MS-Windows.
 
+Patch to have complete() not set 'modified'. (Shougo, 2016 Apr 9, #745)
+
 Patch to put undo options together in undo window.
 (Gary Johnson, 2016 Jan 28)
 
+Still problems with 'emoji'.  See issue #721.  Patch 7.4.1697 half-fixes it.
+Avoid PLAN_WRITE in windgoto() ?
+
 Patch to have better check for {action} argument of setqflist().
 Nikolai Pavlov, Feb 25, #661.  Can be even more strict.
 Also see patch from Hirohito Higash, Feb 25.
@@ -141,6 +163,11 @@
 
 Cannot delete a file with square brackets with delete(). (#696)
 
+Patch on issue #728 by Christian Brabandt, 2016 Apr 7.  Update with test: Apr 8.
+Might be related to:
+Test 44 fails when [[=A=]] is changed to [[=À=]].  Caused by getcmdline() not
+handling the 0x80 as a second byte correctly?  (Dominique Pelle, 2015 Jun 10)
+
 Patch to add 'topbot' to 'belloff' option. (Coot, 2016 Mar 18, #695)
 
 Patch to make matchit work better, respect 'matchpairs'. (Ken Takata, 2016 Mar
@@ -164,7 +191,13 @@
 Update 2016 Mar 28.  Can include all parts into one dist patch.
 
 Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
-Update 2016 Mar 28.
+Update 2016 Apr 4.
+
+Patch to add the :bvimgrep command.  (Christian Brabandt, 2014 Nov 12)
+Updated 2016 Feb 10
+
+Patch to improve indenting for C++ constructor with initializer list.
+(Hirohito Higashi, 2016 Mar 31)
 
 After 7.5 is released:
 - Drop support for older MS-Windows systems, before XP.
@@ -193,6 +226,8 @@
 
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
+Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
+
 jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
 What if there is an invalid character?
 
@@ -224,18 +259,22 @@
 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
 directory exists. (Sergio Gallelli, 2013 Dec 29)
 
+7   Add a watchpoint in the debug mode: An expression that breaks execution
+    when evaluating to non-zero.  Add the "watchadd expr" command, stop when
+    the value of the expression changes.  ":watchdel" deletes an item,
+    ":watchlist" lists the items. (Charles Campbell)
+Patch by Christian Brabandt, 2016 Feb 1.
+
+Patch to discard remainder of long error messages in quickfix, avoid using
+them as separate messages. (Anton Lindqvist, 2016 Apr 9)
+
 Patch to avoid redrawing tabline when the popup menu is visible.
 (Christian Brabandt, 2016 Jan 28)
 
 Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
 
 Add value "smart" to 'tagcase': ignore case when tag is all lower case.
-
-7   Add a watchpoint in the debug mode: An expression that breaks execution
-    when evaluating to non-zero.  Add the "watchadd expr" command, stop when
-    the value of the expression changes.  ":watchdel" deletes an item,
-    ":watchlist" lists the items. (Charles Campbell)
-Patch by Christian Brabandt, 2016 Feb 1.
+Patch from Christian Brabandt, 2016 Mar 30, #712.
 
 Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
 Update Sep 7.  Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
@@ -311,7 +350,7 @@
 inconsistent with the documentation.
 
 Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
-13, last version)  Update Mar 21.
+13, last version)  Update Mar 21., Apr 2.
 
 Can we cache the syntax attributes, so that updates for 'relativenumber' and
 'cursorline'/'cursorcolumn' are a lot faster?
@@ -324,7 +363,7 @@
 
 Patch to add arguments to argc() and argv(). (Yegappan Lakshmanan, 2016 Jan
 24)  Also need a way to get the global arg list?  Update later on Jan 24
-Update Mar 5.
+Update Mar 5. Update Apr 7.
 
 To support Thai (and other languages) word boundaries, include the ICU
 library:  http://userguide.icu-project.org/boundaryanalysis
@@ -332,9 +371,6 @@
 When complete() first argument is before where insert started and 'backspace'
 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
 
-Test 44 fails when [[=A=]] is changed to [[=À=]].  Caused by getcmdline() not
-handling the 0x80 as a second byte correctly?  (Dominique Pelle, 2015 Jun 10)
-
 Patch to use two highlight groups for relative numbers. (Shaun Brady, 2016 Jan
 30)
 
@@ -369,8 +405,8 @@
 When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
 the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
 
-Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
-26, update 2013 Dec 14, another 2014 Nov 22)
+Patch to add GUI colors to the terminal, when 'guicolors' is set. (ZyX, 2013
+Jan 26, update 2013 Dec 14, another 2014 Nov 22)
 
 Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
 Sep 10)
@@ -379,7 +415,7 @@
 Needs a different check for CLEARTYPE_QUALITY.
 Problem mentioned by Christian Brabandt, 2016 Jan 4.
 
-Example in editing.txt uses $HOME with the expectating that it ends in a
+Example in editing.txt uses $HOME with the expectation that it ends in a
 slash.  For me it does, but perhaps not for everybody.  Add a function that
 inserts a slash when needed?  pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
 
@@ -404,6 +440,7 @@
   covered by the above change.
 So that replaying the register doesn't use keymap/langmap and still does the
 same thing.  Remarks on issue 543 (Roland Puntaier).
+Also see #737: langmap not applied to replaying recording.
 
 Patch to add grepfile(). (Scott Prager, 2015 May 26)
 Work in progress.
@@ -539,9 +576,6 @@
 Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
 insert a space. (Micha Mos, 2014 Nov 7)
 
-Patch to add the :bvimgrep command.  (Christian Brabandt, 2014 Nov 12)
-Updated 2016 Feb 10
-
 Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
 
 No error for missing endwhile. (ZyX, 2014 Mar 20)
@@ -781,6 +815,9 @@
 May 19: with local variables.
 May 28: with options
 
+Patch to add getbufinfo(), gettabinfo() and getwininfo(). (Yegappan
+Lakshmanan, 2016 Apr 2016)
+
 Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
 28)  With tests: Oct 9.
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 4ce4c23..8bbc29d 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 Mar 27
+*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Apr 12
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -769,6 +769,7 @@
 	strftime()		convert time to a string
 	reltime()		get the current or elapsed time accurately
 	reltimestr()		convert reltime() result to a string
+	reltimefloat()		convert reltime() result to a Float
 
 			*buffer-functions* *window-functions* *arg-functions*
 Buffers, windows and the argument list:
@@ -891,7 +892,9 @@
 
 Testing:				    *test-functions*
 	assert_equal()		assert that two expressions values are equal
+	assert_notequal()	assert that two expressions values are not equal
 	assert_match()		assert that a pattern matches the value
+	assert_notmatch()	assert that a pattern does not match the value
 	assert_false()		assert that an expression is false
 	assert_true()		assert that an expression is true
 	assert_exception()	assert that a command throws an exception
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 90b80ca..0b38263 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.4.  Last change: 2014 Aug 29
+*version7.txt*  For Vim version 7.4.  Last change: 2016 Apr 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1681,7 +1681,7 @@
 The GTK font dialog uses a font size zero when the font name doesn't include a
 size.  Use a default size of 10.
 
-This example in the documentation didn't work:
+This example in the documentation didn't work: >
     :e `=foo . ".c"`
 Skip over the expression in `=expr` when looking for comments, |, % and #.
 
@@ -10158,7 +10158,7 @@
 Make the references to features in the help more consistent. (Sylvain Hitier)
 
 ==============================================================================
-VERSION 7.4					*version-7.4* *version7.4*
+VERSION 7.4				*version-7.4* *version7.4* *vim-7.4*
 
 This section is about improvements made between version 7.3 and 7.4.
 
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
new file mode 100644
index 0000000..8d14a87
--- /dev/null
+++ b/runtime/doc/version8.txt
@@ -0,0 +1,233 @@
+*version8.txt*  For Vim version 8.0.  Last change: 2016 Apr 12
+
+
+		  VIM REFERENCE MANUAL    by Bram Moolenaar
+
+NOTE: THIS FILE IS STILL BEING WORKED ON
+
+				*vim8* *vim-8* *version-8.0* *version8.0*
+Welcome to Vim 8!  A large number of bugs have been fixed and several
+features have been added.  This file mentions all the new items and changes to
+existing features since Vim 7.4. Bug fixes, the patches for Vim 7.4, can be
+found below |vim-7.4|.  Use this command to see the version you are using: >
+	:version
+
+See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
+See |version4.txt| for differences between Vim 3.x and Vim 4.x.
+See |version5.txt| for differences between Vim 4.x and Vim 5.x.
+See |version6.txt| for differences between Vim 5.x and Vim 6.x.
+See |version7.txt| for differences between Vim 6.x and Vim 7.x.
+
+INCOMPATIBLE CHANGES			|incompatible-8|
+
+NEW FEATURES				|new-8|
+
+Vim script enhancements			|new-vim-script-8|
+
+IMPROVEMENTS				|improvements-8|
+
+COMPILE TIME CHANGES			|compile-changes-8|
+
+PATCHES					|patches-8|
+
+
+==============================================================================
+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.
+
+
+Minor incompatibilities:
+
+For filetype detection: ...
+
+==============================================================================
+NEW FEATURES						*new-8*
+
+First a list to the bigger new features.  A comprehensive list is below.
+
+
+Asynchronous I/O support, channels ~
+
+Vim can now exchange messages with another process in the background. The
+message are received and handled while Vim is waiting for a character.  See
+|channel-demo| for an example, 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()|.
+
+
+Jobs ~
+
+Vim can now start a job, communicate with it and stop it.  This is very useful
+to run a process for completion, syntax checking, etc.  Channels are used to
+communicate with the job.  Jobs can also read from or write to a buffer or a
+file.  See |job_start()|.
+
+
+Timers ~
+
+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 call 4 seconds later, like: >
+	call CheckTemp()
+
+
+Partials ~
+
+Vim already had a Funcref, a reference to a function.  A partial also refers
+to a function, and additionally binds arguments and/or a dictionary.  This is
+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 make call 4 seconds later, like: >
+	call CheckTemp('out')
+
+
+Packages ~
+
+Plugins keep growing and more of them are available then ever before.  To keep
+the collection of plugins manageable package support has been added.  This is
+a convenient way to get one or more plugins, drop them in a directory and
+possibly keep them updated.  Vim will load them automatically, or only when
+desired.  See |packages|.
+
+
+New style tests ~
+
+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.
+
+These functions have been added:
+	|assert_equal()|
+	|assert_notequal()|
+	|assert_exception()|
+	|assert_fails()|
+	|assert_false()|
+	|assert_match()|
+	|assert_notmatch()|
+	|assert_true()|
+	|alloc_fail()|
+	|disable_char_avail_for_testing()|
+
+
+Window IDs ~
+
+Previously windows could only be accessed by their number. And every time a
+window would open, close or move that number changes.  Each window now has a
+unique ID, so that they are easy to find.
+
+
+Wrapping lines with indent ~
+
+The 'breakindent' option has been added to be able to wrap lines without
+changing the amount of indent.
+
+
+Windows: Direct-X support ~
+
+This adds the 'renderoptions' option to allow for switching on Direct-X
+(DirectWrite) support on MS-Windows.
+
+
+GTK+ 3 support ~
+
+GTK+ 2 is getting old, GTK+ 3 is here.  Support has been added and it already
+works quite well, mostly just like GTK+ 2.
+
+
+Vim script enhancements					*new-vim-script-8*
+-----------------------
+
+In Vim scripts the following types have been added:
+
+	|Special|	|v:false|, |v:true|, |v:none| and |v:null|
+	|Channel|	connection to another process for asynchronous I/O
+	|Job|		process control
+
+Many functions and commands have been added to support the new types.
+
+
+
+Various new items					*new-items-8*
+-----------------
+
+Normal mode commands: ~
+
+
+Insert mode commands: ~
+
+
+Options: ~
+
+
+Ex commands: ~
+
+
+Ex command modifiers: ~
+
+
+Ex command arguments: ~
+
+
+New and extended functions: ~
+
+
+
+New Vim variables: ~
+
+|v:vim_did_enter|	Set when VimEnter autocommands are triggered
+
+
+New autocommand events: ~
+
+
+
+New highlight groups: ~
+
+
+New items in search patterns: ~
+
+
+New Syntax/Indent/FTplugin files: ~
+
+
+New Keymaps: ~
+
+
+New message translations: ~
+
+
+Others: ~
+
+
+==============================================================================
+IMPROVEMENTS						*improvements-8*
+
+The existing blowfish encryption turned out to be much weaker than it was
+supposed to be.  The blowfish2 method has been added to fix that.  Note that
+this still isn't a state-of-the-art encryption, but good enough for most
+usage.  See 'cryptmethod'.
+
+==============================================================================
+COMPILE TIME CHANGES					*compile-changes-8*
+
+Dropped the support for MS-DOS.  It was too big to fit in memory.
+
+
+==============================================================================
+PATCHES						*patches-8* *bug-fixes-8*
+
+The list of patches that got included since 7.4.0.  This includes all the new
+features, but does not include runtime file changes (syntax, indent, help,
+etc.)
+
+TODO: INCLUDE PATCH LIST.
+
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1
index e2dcd42..e3c8773 100644
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -321,7 +321,7 @@
 \-R
 Read-only mode.
 The 'readonly' option will be set.
-You can still edit the buffer, but will be prevented from accidently
+You can still edit the buffer, but will be prevented from accidentally
 overwriting a file.
 If you do want to overwrite a file, add an exclamation mark to the Ex command,
 as in ":w!".