Updated runtime files.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5cab95d..2a00e08 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2014 Mar 27
+*eval.txt*	For Vim version 7.4.  Last change: 2014 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -148,7 +148,7 @@
 
 
 1.3 Lists ~
-							*List* *Lists* *E686*
+						*list* *List* *Lists* *E686*
 A List is an ordered sequence of items.  An item can be of any type.  Items
 can be accessed by their index number.	Items can be added and removed at any
 position in the sequence.
@@ -394,7 +394,7 @@
 
 
 1.4 Dictionaries ~
-						*Dictionaries* *Dictionary*
+					*dict* *Dictionaries* *Dictionary*
 A Dictionary is an associative array: Each entry has a key and a value.  The
 entry can be located with the key.  The entries are stored without a specific
 ordering.
@@ -1005,7 +1005,7 @@
 
 
 
-string							*expr-string* *E114*
+string						*string* *expr-string* *E114*
 ------
 "string"		string constant		*expr-quote*
 
@@ -1144,7 +1144,7 @@
 |local-variable|     l:	  Local to a function.
 |script-variable|    s:	  Local to a |:source|'ed Vim script.
 |function-argument|  a:	  Function argument (only inside a function).
-|vim-variable|	     v:	  Global, predefined by Vim.
+|vim-variable|	   v:	  Global, predefined by Vim.
 
 The scope name by itself can be used as a |Dictionary|.  For example, to
 delete all script-local variables: >
@@ -2720,7 +2720,7 @@
 		Note that the current directory is used when {expr} starts
 		with "./", which may be a problem for Vim: >
 			echo exepath(v:progpath)
-< 		If {expr} cannot be found in $PATH or is not executable then
+<		If {expr} cannot be found in $PATH or is not executable then
 		an empty string is returned.
 
 							*exists()*
@@ -6455,11 +6455,20 @@
     Example: >
 	:if has("gui_running")
 <							*has-patch*
-3.  Included patches.  First check |v:version| for the version of Vim.
-    Then the "patch123" feature means that patch 123 has been included for
-    this version.  Example (checking version 6.2.148 or later): >
+3.  Included patches.  The "patch123" feature means that patch 123 has been
+    included.  Note that this form does not check the version of Vim, you need
+    to inspect |v:version| for that.
+    Example (checking version 6.2.148 or later): >
 	:if v:version > 602 || v:version == 602 && has("patch148")
-<   Note that it's possible for patch 147 to be omitted even though 148 is
+<    Note that it's possible for patch 147 to be omitted even though 148 is
+    included.
+
+4.  Beyond a certain version or at a certain version and including a specific
+    patch.  The "patch-7.4.123" feature means that the Vim version is 7.5 or
+    later, or it is version 7.4 and patch 123 was included.
+    The example above can be simplified to: >
+	:if has("patch-6.2.148")
+<    Note that it's possible for patch 147 to be omitted even though 148 is
     included.
 
 acl			Compiled with |ACL| support.
@@ -7402,6 +7411,8 @@
 			{pattern}, so long as it does not have a special
 			meaning (e.g., '|' or '"') and doesn't occur inside
 			{pattern}.
+			Information about the exception is available in
+			|v:exception|.  Also see |throw-variables|.
 			NOTE: It is not reliable to ":catch" the TEXT of
 			an error message because it may vary in different
 			locales.
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index f6e6377..75318b0 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 7.4.  Last change: 2014 Mar 25
+*recover.txt*   For Vim version 7.4.  Last change: 2014 Mar 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -84,7 +84,7 @@
 The 'swapfile' option can be reset to avoid creating a swapfile.  And the
 |:noswapfile| modifier can be used to not create a swapfile for a new buffer.
 
-:noswap[file]   {command}			*:nos* *:noswapfile*
+:nos[wapfile]   {command}			*:nos* *:noswapfile*
 		Execute {command}. If it contains a command that loads a new
 		buffer, it will be loaded without creating a swapfile and the
 		'swapfile' option will be reset.  If a buffer already had a
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 47ad05f..a5de2f0 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4.  Last change: 2013 Jul 20
+*starting.txt*  For Vim version 7.4.  Last change: 2014 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1276,8 +1276,10 @@
 			When [!] is included an existing file is overwritten.
 			When [file] is omitted or is a number from 1 to 9, a
 			name is generated and 'viewdir' prepended.  When the
-			last directory name in 'viewdir' does not exist, this
-			directory is created.
+			last path part of 'viewdir' does not exist, this
+			directory is created.  E.g., when 'viewdir' is
+			"$VIM/vimfiles/view" then "view" is created in
+			"$VIM/vimfiles".
 			An existing file is always overwritten then.  Use
 			|:loadview| to load this view again.
 			When [file] is the name of a file ('viewdir' is not
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 005f9f8..a1230e1 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.4.  Last change: 2014 Feb 25
+*syntax.txt*	For Vim version 7.4.  Last change: 2014 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1959,7 +1959,7 @@
 There are several implementations for LPC, we intend to support most widely
 used ones.  Here the default LPC syntax is for MudOS series, for MudOS v22
 and before, you should turn off the sensible modifiers, and this will also
-asserts the new efuns after v22 to be invalid, don't set this variable when
+assert the new efuns after v22 to be invalid, don't set this variable when
 you are using the latest version of MudOS: >
 
 	:let lpc_pre_v22 = 1
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 15ac754..79d3232 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4311,6 +4311,7 @@
 E880	if_pyth.txt	/*E880*
 E881	autocmd.txt	/*E881*
 E882	eval.txt	/*E882*
+E883	eval.txt	/*E883*
 E89	message.txt	/*E89*
 E90	message.txt	/*E90*
 E91	options.txt	/*E91*
@@ -5368,6 +5369,7 @@
 dialog	gui_w32.txt	/*dialog*
 dialogs-added	version5.txt	/*dialogs-added*
 dib	motion.txt	/*dib*
+dict	eval.txt	/*dict*
 dict-functions	usr_41.txt	/*dict-functions*
 dict-identity	eval.txt	/*dict-identity*
 dict-modification	eval.txt	/*dict-modification*
@@ -5512,6 +5514,7 @@
 exclusive-linewise	motion.txt	/*exclusive-linewise*
 executable()	eval.txt	/*executable()*
 execute-menus	gui.txt	/*execute-menus*
+exepath()	eval.txt	/*exepath()*
 exim	starting.txt	/*exim*
 exists()	eval.txt	/*exists()*
 exp()	eval.txt	/*exp()*
@@ -6696,6 +6699,7 @@
 linewise-visual	visual.txt	/*linewise-visual*
 lisp.vim	syntax.txt	/*lisp.vim*
 lispindent()	eval.txt	/*lispindent()*
+list	eval.txt	/*list*
 list-functions	usr_41.txt	/*list-functions*
 list-identity	eval.txt	/*list-identity*
 list-index	eval.txt	/*list-index*
@@ -7413,6 +7417,7 @@
 profiling	repeat.txt	/*profiling*
 profiling-variable	eval.txt	/*profiling-variable*
 progname-variable	eval.txt	/*progname-variable*
+progpath-variable	eval.txt	/*progpath-variable*
 progress.vim	syntax.txt	/*progress.vim*
 pronounce	intro.txt	/*pronounce*
 psql	ft_sql.txt	/*psql*
@@ -7913,6 +7918,7 @@
 strdisplaywidth()	eval.txt	/*strdisplaywidth()*
 strftime()	eval.txt	/*strftime()*
 stridx()	eval.txt	/*stridx()*
+string	eval.txt	/*string*
 string()	eval.txt	/*string()*
 string-functions	usr_41.txt	/*string-functions*
 string-match	eval.txt	/*string-match*
@@ -7977,6 +7983,7 @@
 system()	eval.txt	/*system()*
 system-functions	usr_41.txt	/*system-functions*
 system-vimrc	starting.txt	/*system-vimrc*
+systemlist()	eval.txt	/*systemlist()*
 s~	change.txt	/*s~*
 t	motion.txt	/*t*
 t:	eval.txt	/*t:*
@@ -8420,6 +8427,7 @@
 v:prevcount	eval.txt	/*v:prevcount*
 v:profiling	eval.txt	/*v:profiling*
 v:progname	eval.txt	/*v:progname*
+v:progpath	eval.txt	/*v:progpath*
 v:register	eval.txt	/*v:register*
 v:scrollstart	eval.txt	/*v:scrollstart*
 v:searchforward	eval.txt	/*v:searchforward*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index a562093..ea6a43f 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2014 Mar 27
+*todo.txt*      For Vim version 7.4.  Last change: 2014 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,6 +35,8 @@
 -------------------- Known bugs and current work -----------------------
 
 Regexp problems:
+- Crash when using cpp syntax file with raw string. (Havard Garnes)
+  Edit "~/tmp/test.cc" and source "~/tmp/cpp.vim".
 - NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
   Shallon, 2013 Nov 18)
 - After patch 7.4.100 there is still a difference between NFA and old engine.
@@ -70,6 +72,10 @@
 
 Using autoconf 2.69 gives a lot of warnings.
 
+Spell files use a latin single quote.  Unicode also has another single quote.
+Adjust spell file scripts to duplicate words to support both quotes.
+(Ron Aaron, 2014 Apr 4)
+
 Problem with 'spellsuggest' file, only works for some words.
 (Cesar Romani, 2013 Aug 20)  Depends on file name? (Aug 24)
 Additional remark by glts: the suggested words are marked bad?
@@ -81,27 +87,20 @@
 Syntax file for gnuplot.  Existing one is very old. (Andrew Rasmussen, 2014
 Feb 24)
 
-Crash with ":%s/\n//g" on long file. (Aidan Marlin, 2014 Jan 15)
-Christian Brabandt: patch to run this into a join. (2014 Jan 18)
-Suggestion to not save replaced line for undo: Yukihiro Nakadaira, 2014 Jan
-25.
-
 Add digraph for Rouble: =P.  What's the Unicode?
 
-Bug: "!ls %" expands parenthesis in %, but not spaces.  So this doesn't work
-either: ':!ls "%"'.
-Patch by Gary Johnson, 2014 Mar 6.
-
 Issue 174: Detect Mason files.
 
 No error for missing endwhile. (ZyX, 2014 Mar 20)
 
-Patch to add v:progpath. (Viktor Kojouharov, 2014 Mar 15)
-
 Phpcomplete.vim update. (Complex, 2014 Jan 15)
 
 PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19)
 
+Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
+Also fixes wrong result from executable().
+Update from Ken Takata, 2014 Jan 10. Newer 2014 Apr 3.
+
 Can we make ":unlet $VAR" use unsetenv() to delete the env var?
 What for systems that don't have unsetenv()?
 
@@ -110,13 +109,9 @@
 This neither: (ZyX)
     vim -u NONE 1 2 3 -c 'bufdo while 1 | echo 1'
 
-spec ftplugin: patch from Igor Gnatenko, 2014 Jan 26.
-Include if maintainers don't respond.
-
-Patch to make has() check for Vim version and patch at the same time.
-(Marc Weber, 2013 Jun 7)
-
-Regression on pach 7.4.034. (Ingo Karkat, 2013 Nov 20)
+'viewdir' default on MS-Windows is not a good choice, it's a system directory.
+Change 'viewdir' to "$HOME/vimfiles/view" and use 'viewdiralt' to also read
+from?
 
 Include a plugin manager with Vim? Neobundle seems to be the best currently.
 Long message about this from ZyX, 2014 Mar 23.  And following replies.
@@ -152,17 +147,18 @@
 - Development work on plugins (although diff with distributed version would be
   useful).
 
-Patch to include smack support (Linux security library). (Jose Bollo, 2014 Jan
-14) Update Jan 15.
+Setting the spell file in a session only reads the local additions, not the
+normal spell file. (Enno Nagel, 2014 Mar 29)
 
-Tag list, as used for :tjump, does not unescape regexp. (Gary Johnson, 2014 Jan
-6) With patch in another message.
+Editing an ascii file as ucs-2 or ucs-4 causes display errors.
+(ZyX, 2014 Mar 30)
+
+":Next 1 some-arg" does not complain about trailing argument.  Also for
+various other commands.  (ZyX, 2014 Mar 30)
 
 VMS: Select() doesn't work properly, typing ESC may hang Vim.  Use sys$qiow
 instead. (Samuel Ferencik, 2013 Sep 28)
 
-Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9)
-
 Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4)
 
 Patch to add flag to shortmess to avoid giving completion messages.
@@ -258,10 +254,6 @@
 Patch to add option that tells whether small deletes go into the numbered
 registers. (Aryeh Leib Taurog, 2013 Nov 18)
 
-Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
-Also fixes wrong result from executable().
-Update from Ken Takata, 2014 Jan 10.
-
 Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
 
 The BufUnload event is triggered when re-using the empty buffer.
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index fa3c389..670c8fd 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: 2014 Jan 10
+*usr_41.txt*	For Vim version 7.4.  Last change: 2014 Apr 05
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -742,6 +742,7 @@
 	pathshorten()		shorten directory names in a path
 	simplify()		simplify a path without changing its meaning
 	executable()		check if an executable program exists
+	exepath()		full path of an executable program
 	filereadable()		check if a file can be read
 	filewritable()		check if a file can be written to
 	getfperm()		get the permissions of a file
@@ -754,7 +755,8 @@
 	mkdir()			create a new directory
 	delete()		delete a file
 	rename()		rename a file
-	system()		get the result of a shell command
+	system()		get the result of a shell command as a string
+	systemlist()		get the result of a shell command as a list
 	hostname()		name of the system
 	readfile()		read a file into a List of lines
 	writefile()		write a List of lines into a file
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index ebc0163..2f33ac1 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.4.  Last change: 2014 Mar 23
+*various.txt*   For Vim version 7.4.  Last change: 2014 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -234,25 +234,41 @@
 							*:!cmd* *:!* *E34*
 :!{cmd}			Execute {cmd} with the shell.  See also the 'shell'
 			and 'shelltype' option.
+
 			Any '!' in {cmd} is replaced with the previous
 			external command (see also 'cpoptions').  But not when
 			there is a backslash before the '!', then that
 			backslash is removed.  Example: ":!ls" followed by
 			":!echo ! \! \\!" executes "echo ls ! \!".
-			After the command has been executed, the timestamp of
-			the current file is checked |timestamp|.
+
 			A '|' in {cmd} is passed to the shell, you cannot use
 			it to append a Vim command.  See |:bar|.
+
+			If {cmd} contains "%" it is expanded to the current
+			file name.  Special characters are not escaped, use
+			quotes to avoid their special meaning: >
+				:!ls "%"
+<			If the file name contains a "$" single quotes might
+			work better (but a single quote causes trouble): >
+				:!ls '%'
+<			This should always work, but it's more typing: >
+				:exe "!ls " . shellescape(expand("%"))
+<
 			A newline character ends {cmd}, what follows is
 			interpreted as a following ":" command.  However, if
 			there is a backslash before the newline it is removed
 			and {cmd} continues.  It doesn't matter how many
 			backslashes are before the newline, only one is
 			removed.
+
 			On Unix the command normally runs in a non-interactive
 			shell.  If you want an interactive shell to be used
 			(to use aliases) set 'shellcmdflag' to "-ic".
 			For Win32 also see |:!start|.
+
+			After the command has been executed, the timestamp of
+			the current file is checked |timestamp|.
+
 			Vim redraws the screen after the command is finished,
 			because it may have printed any text.  This requires a
 			hit-enter prompt, so that you can read any messages.