changeset 8748:b1a19a2f73f0

commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 26 23:01:59 2016 +0100 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Mar 2016 15:15:06 +0200
parents fd9a1d2cc956
children 65a5a18d3acf
files runtime/doc/autocmd.txt runtime/doc/channel.txt runtime/doc/eval.txt runtime/doc/helphelp.txt runtime/doc/options.txt runtime/doc/repeat.txt runtime/doc/starting.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_05.txt
diffstat 10 files changed, 232 insertions(+), 120 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.4.  Last change: 2015 Dec 05
+*autocmd.txt*   For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 7.4.  Last change: 2016 Mar 15
+*channel.txt*      For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -120,24 +120,13 @@ Use |ch_status()| to see if the channel 
 
 {address} has the form "hostname:port".  E.g., "localhost:8765".
 
-{options} is a dictionary with optional entries:
+{options} is a dictionary with optional entries:	*channel-open-options*
 
 "mode" can be:						*channel-mode*
 	"json" - Use JSON, see below; most convenient way. Default.
 	"js"   - Use JS (JavaScript) encoding, more efficient than JSON.
 	"nl"   - Use messages that end in a NL character
 	"raw"  - Use raw messages
-						*in_mode* *out_mode* *err_mode*
-"in_mode"	mode specifically for stdin, only when using pipes
-"out_mode"	mode specifically for stdout, only when using pipes
-"err_mode"	mode specifically for stderr, only when using pipes
-		Note: when setting "mode" the part specific mode is
-		overwritten.  Therefore set "mode" first and the part specific
-		mode later.
-
-		Note: when writing to a file or buffer and when reading from a
-		buffer NL mode is used by default.
-
 						*channel-callback* *E921*
 "callback"	A function that is called when a message is received that is
 		not handled otherwise.  It gets two arguments: the channel
@@ -155,16 +144,8 @@ Use |ch_status()| to see if the channel 
 		as a string.
 
 		For all callbacks: Use |function()| to bind it to arguments
-		and/or a dictionary.
-							*out_cb*
-"out_cb"	A function like "callback" but used for stdout.  Only for when
-		the channel uses pipes.  When "out_cb" wasn't set the channel
-		callback is used.
-							*err_cb*
-"err_cb"	A function like "callback" but used for stderr.  Only for when
-		the channel uses pipes.  When "err_cb" wasn't set the channel
-		callback is used.
-
+		and/or a Dictionary.  Or use the form "dict.function" to bind
+		the Dictionary.
 							*close_cb*
 "close_cb"	A function that is called when the channel gets closed, other
 		than by calling ch_close().  It should be defined like this: >
@@ -178,16 +159,10 @@ Use |ch_status()| to see if the channel 
 		actually uses a 1 msec timeout, that is required on many
 		systems.  Use a larger value for a remote server, e.g.  10
 		msec at least.
-
+							*channel-timeout*
 "timeout"	The time to wait for a request when blocking, E.g. when using
 		ch_evalexpr().  In milliseconds.  The default is 2000 (2
 		seconds).
-						*out_timeout* *err_timeout*
-"out_timeout"	Timeout for stdout.  Only when using pipes.
-"err_timeout"	Timeout for stderr.  Only when using pipes.
-		Note: when setting "timeout" the part specific mode is
-		overwritten.  Therefore set "timeout" first and the part
-		specific mode later.
 
 When "mode" is "json" or "js" the "callback" is optional.  When omitted it is
 only possible to receive a message after sending one.
@@ -215,6 +190,13 @@ pipes are used (stdin/stdout/stderr) the
 what you want!  Stopping the job with job_stop() might be better.
 All readahead is discarded, callbacks will no longer be invoked.
 
+Note that a channel is closed in three stages:
+  - The I/O ends, log message: "Closing channel". There can still be queued
+    messages to read or callbacks to invoke.
+  - The readahead is cleared, log message: "Clearing channel".  Some variables
+    may still reference the channel.
+  - The channel is freed, log message: "Freeing channel".
+
 When the channel can't be opened you will get an error message.  There is a
 difference between MS-Windows and Unix: On Unix when the port doesn't exist
 ch_open() fails quickly.  On MS-Windows "waittime" applies.
@@ -326,6 +308,9 @@ completion or error.  You could use func
 
 You can also use "call |feedkeys()|" to insert any key sequence.
 
+When there is an error a message is written to the channel log, if it exists,
+and v:errmsg is set to the error.
+
 
 Command "normal" ~
 
@@ -428,6 +413,23 @@ To read all output from a RAW channel th
 To read the error output: >
 	let output = ch_readraw(channel, {"part": "err"})
 
+ch_read() and ch_readraw() use the channel timeout.  When there is nothing to
+read within that time an empty string is returned.  To specify a different
+timeout in msec use the "timeout" option:
+	{"timeout": 123} ~
+To read from the error output use the "part" option:
+	{"part": "err"} ~
+To read a message with a specific ID, on a JS or JSON channel:
+	{"id": 99} ~
+When no ID is specified or the ID is -1, the first message is returned. This
+overrules any callback waiting for this message.
+
+For a RAW channel this returns whatever is available, since Vim does not know
+where a message ends.
+For a NL channel this returns one message.
+For a JS or JSON channel this returns one decoded message.
+This includes any sequence number.
+
 ==============================================================================
 8. Starting a job with a channel			*job-start* *job*
 
@@ -524,15 +526,31 @@ job_setoptions(job, {options}).  Many op
 related to the job, using ch_setoptions(channel, {options}).
 See |job_setoptions()| and |ch_setoptions()|.
 
+						*in_mode* *out_mode* *err_mode*
+"in_mode"		mode specifically for stdin, only when using pipes
+"out_mode"		mode specifically for stdout, only when using pipes
+"err_mode"		mode specifically for stderr, only when using pipes
+			See |channel-mode| for the values.
+
+			Note: when setting "mode" the part specific mode is
+			overwritten.  Therefore set "mode" first and the part
+			specific mode later.
+
+			Note: when writing to a file or buffer and when
+			reading from a buffer NL mode is used by default.
+
 						*job-callback*
 "callback": handler	Callback for something to read on any part of the
 			channel.
-						*job-out_cb*
+						*job-out_cb* *out_cb*
 "out_cb": handler	Callback for when there is something to read on
-			stdout.
-						*job-err_cb*
+			stdout.  Only for when the channel uses pipes.  When
+			"out_cb" wasn't set the channel callback is used.
+
+						*job-err_cb* *err_cb*
 "err_cb": handler	Callback for when there is something to read on
-			stderr.
+			stderr.  Only for when the channel uses pipes.  When
+			"err_cb" wasn't set the channel callback is used.
 						*job-close_cb*
 "close_cb": handler	Callback for when the channel is closed.  Same as
 			"close_cb" on ch_open().
@@ -542,6 +560,17 @@ See |job_setoptions()| and |ch_setoption
 			Vim checks about every 10 seconds for jobs that ended.
 			The callback can also be triggered by calling
 			|job_status()|.
+							*job-timeout*
+"timeout"		The time to wait for a request when blocking, E.g.
+			when using ch_evalexpr().  In milliseconds.  The
+			default is 2000 (2 seconds).
+						*out_timeout* *err_timeout*
+"out_timeout"		Timeout for stdout.  Only when using pipes.
+"err_timeout"		Timeout for stderr.  Only when using pipes.
+			Note: when setting "timeout" the part specific mode is
+			overwritten.  Therefore set "timeout" first and the
+			part specific mode later.
+
 						*job-stoponexit*
 "stoponexit": {signal}	Send {signal} to the job when Vim exits.  See
 			|job_stop()| for possible values.
--- 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 20
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2716,13 +2716,6 @@ ch_close({handle})						*ch_close()*
 		Close {handle}.  See |channel-close|.
 		{handle} can be Channel or a Job that has a Channel.
 
-		Note that a channel is closed in three stages:
-		  - The I/O ends, log message: "Closing channel". There can
-		    still be queued messages to read or callbacks to invoke.
-		  - The readahead is cleared, log message: "Clearing channel".
-		    Some variables may still reference the channel.
-		  - The channel is freed, log message: "Freeing channel".
-
 		{only available when compiled with the |+channel| feature}
 
 ch_evalexpr({handle}, {expr} [, {options}])			*ch_evalexpr()*
@@ -2732,7 +2725,8 @@ ch_evalexpr({handle}, {expr} [, {options
 		{handle} can be Channel or a Job that has a Channel.
 								*E917*
 		{options} must be a Dictionary.  It must not have a "callback"
-		entry.  It can have a "timeout" entry.
+		entry.  It can have a "timeout" entry to specify the timeout
+		for this specific request.
 
 		ch_evalexpr() waits for a response and returns the decoded
 		expression.  When there is an error or timeout it returns an
@@ -2816,65 +2810,34 @@ ch_logfile({fname} [, {mode}])					*ch_l
 
 ch_open({address} [, {options}])				*ch_open()*
 		Open a channel to {address}.  See |channel|.
-		Returns a Channel.  Use |ch_status()| to check for
-		failure.
+		Returns a Channel.  Use |ch_status()| to check for failure.
 
 		{address} has the form "hostname:port", e.g.,
 		"localhost:8765".
 
-		If {options} is given it must be a |Dictionary|.  The optional
-		items are:
-			mode        "raw", "js" or "json".
-				    Default "json".
-			callback    function to call for requests with a zero
-				    sequence number.  See |channel-callback|.
-				    Default: none.
-			waittime    Specify connect timeout as milliseconds.
-				    Negative means forever.
-				    Default: 0 (don't wait)
-			timeout	    Specify response read timeout value in
-				    milliseconds. 
-				    Default: 2000.
+		If {options} is given it must be a |Dictionary|.
+		See |channel-open-options|.
+
 		{only available when compiled with the |+channel| feature}
 
 ch_read({handle} [, {options}])					*ch_read()*
 		Read from {handle} and return the received message.
 		{handle} can be Channel or a Job that has a Channel.
-
-		This uses the channel timeout.  When there is nothing to read
-		within that time an empty string is returned.  To specify a
-		different timeout in msec use the "timeout" option:
-			{"timeout": 123} ~
-		To read from the error output use the "part" option:
-			{"part": "err"} ~
-		To read a message with a specific ID, on a JS or JSON channel:
-			{"id": 99} ~
-		When no ID is specified or the ID is -1, the first message is
-		returned. This overrules any callback waiting for this
-		message.
-
-		For a RAW channel this returns whatever is available, since
-		Vim does not know where a message ends.
-		For a NL channel this returns one message.
-		For a JS or JSON channel this returns one decoded message.
-		This includes any sequence number.
+		See |channel-more|.
+		{only available when compiled with the |+channel| feature}
 
 ch_readraw({handle} [, {options}])			*ch_readraw()*
 		Like ch_read() but for a JS and JSON channel does not decode
-		the message.
+		the message.  See |channel-more|.
+		{only available when compiled with the |+channel| feature}
 
 ch_sendexpr({handle}, {expr} [, {options}])			*ch_sendexpr()*
 		Send {expr} over {handle}.  The {expr} is encoded
 		according to the type of channel.  The function cannot be used
-		with a raw channel.  See |channel-use|. *E912*
+		with a raw channel.
+		See |channel-use|.				*E912*
 		{handle} can be Channel or a Job that has a Channel.
 
-		{options} must be a Dictionary.  The "callback" item is a
-		Funcref or the name of a function it is invoked when the
-		response is received.  See |channel-callback|.
-		Without "callback" the channel handler is invoked, otherwise
-		any received message is dropped.
-
 		{only available when compiled with the |+channel| feature}
 
 ch_sendraw({handle}, {string} [, {options}])		*ch_sendraw()*
@@ -6675,13 +6638,17 @@ string({expr})	Return {expr} converted t
 		Float, String or a composition of them, then the result can be
 		parsed back with |eval()|.
 			{expr} type	result ~
-			String		'string'
+			String		'string' (single quotes are doubled)
 			Number		123
 			Float		123.123456 or 1.123456e8
 			Funcref		function('name')
 			List		[item, item]
 			Dictionary	{key: value, key: value}
-		Note that in String values the ' character is doubled.
+
+		When a List or Dictionary has a recursive reference it is
+		replaced by "[...]" or "{...}".  Using eval() on the result
+		will then fail.
+
 		Also see |strtrans()|.
 
 							*strlen()*
@@ -7665,6 +7632,7 @@ unix			Unix version of Vim.
 user_commands		User-defined commands.
 vertsplit		Compiled with vertically split windows |:vsplit|.
 vim_starting		True while initial source'ing takes place. |startup|
+			*vim_starting*
 viminfo			Compiled with viminfo support.
 virtualedit		Compiled with 'virtualedit' option.
 visual			Compiled with Visual mode.
--- 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 12
+*helphelp.txt*	For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -208,9 +208,11 @@ command: >
 			sorted.
 			When there are duplicates an error message is given.
 			An existing tags file is silently overwritten.
+
 			The optional "++t" argument forces adding the
 			"help-tags" tag.  This is also done when the {dir} is
 			equal to $VIMRUNTIME/doc.
+
 			To rebuild the help tags in the runtime directory
 			(requires write permission there): >
 				:helptags $VIMRUNTIME/doc
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2016 Mar 19
+*options.txt*	For Vim version 7.4.  Last change: 2016 Mar 24
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2292,6 +2292,8 @@ A jump table for the options with a shor
 			different.  The whole undo file is encrypted, not just
 			the pieces of text.
 
+	You should use "blowfish2", also to re-encrypt older files.
+
 	When reading an encrypted file 'cryptmethod' will be set automatically
 	to the detected method of the file being read.  Thus if you write it
 	without changing 'cryptmethod' the same method will be used.
@@ -3030,8 +3032,8 @@ A jump table for the options with a shor
 	  file only, the option is not changed.
 	When 'binary' is set, the value of 'fileformats' is not used.
 
-	Note that when Vim starts up with an empty buffer this option is not
-	used.  Set 'fileformat' in your .vimrc instead.
+	When Vim starts up with an empty buffer the first item is used.  You
+	can overrule this by setting 'fileformat' in your .vimrc.
 
 	For systems with a Dos-like <EOL> (<CR><NL>), when reading files that
 	are ":source"ed and for vimrc files, automatic <EOL> detection may be
@@ -5115,6 +5117,7 @@ A jump table for the options with a shor
 	   written.  A ":set nomodified" command also resets the original
 	   values to the current values and the 'modified' option will be
 	   reset.
+	   Similarly for 'eol' and 'bomb'.
 	This option is not set when a change is made to the buffer as the
 	result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
 	FileAppendPost or VimLeave autocommand event.  See |gzip-example| for
--- 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 15
+*repeat.txt*    For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -8,13 +8,14 @@ Repeating commands, Vim scripts and debu
 
 Chapter 26 of the user manual introduces repeating |usr_26.txt|.
 
-1. Single repeats	|single-repeat|
-2. Multiple repeats	|multi-repeat|
-3. Complex repeats	|complex-repeat|
-4. Using Vim scripts	|using-scripts|
-5. Using Vim packages	|packages|
-6. Debugging scripts	|debug-scripts|
-7. Profiling		|profiling|
+1. Single repeats		|single-repeat|
+2. Multiple repeats		|multi-repeat|
+3. Complex repeats		|complex-repeat|
+4. Using Vim scripts		|using-scripts|
+5. Using Vim packages		|packages|
+6. Creating Vim packages	|package-create|
+7. Debugging scripts		|debug-scripts|
+8. Profiling			|profiling|
 
 ==============================================================================
 1. Single repeats					*single-repeat*
@@ -481,7 +482,7 @@ find the syntax/some.vim file, because i
 
 Vim will also load ftdetect files, if there are any.
 
-Note that the files under "pack/foo/opt" or not loaded automatically, only the
+Note that the files under "pack/foo/opt" are not loaded automatically, only the
 ones under "pack/foo/start".  See |pack-add| below for how the "opt" directory
 is used.
 
@@ -516,14 +517,90 @@ To load an optional plugin from a pack u
 This searches for "pack/*/opt/foodebug" in 'packpath' and will find
 ~/.vim/pack/foo/opt/foodebug/plugin/debugger.vim and source it.
 
-This could be done inside always.vim, if some conditions are met.  Or you
-could add this command to your |.vimrc|.
+This could be done if some conditions are met.  For example, depending on
+whether Vim supports a feature or a dependency is missing.
+
+You can also load an optional plugin at startup, by putting this command in
+your |.vimrc|: >
+	:packadd! foodebug
+The extra "!" is so that the plugin isn't loaded with Vim was started with
+|--noplugin|.
 
 It is perfectly normal for a package to only have files in the "opt"
 directory.  You then need to load each plugin when you want to use it.
 
+
+Where to put what ~
+
+Since color schemes, loaded with `:colorscheme`, are found below
+"pack/*/start" and "pack/*/opt", you could put them anywhere.  We recommend
+you put them below "pack/*/opt", for example
+".vim/pack/mycolors/opt/dark/colors/very_dark.vim".
+
+Filetype plugins should go under "pack/*/start", so that they are always
+found.  Unless you have more than one plugin for a file type and want to
+select which one to load with `:packadd`.  E.g. depending on the compiler
+version: >
+	if foo_compiler_version > 34
+	  packadd foo_new
+	else
+	  packadd foo_old
+	endif
+
+The "after" directory is most likely not useful in a package.  It's not
+disallowed though.
+
 ==============================================================================
-6. Debugging scripts					*debug-scripts*
+6. Creating Vim packages				*package-create*
+
+This assumes you write one or more plugins that you distribute as a package.
+
+If you have two unrelated plugins you would use two packages, so that Vim
+users can chose what they include or not.  Or you can decide to use one
+package with optional plugins, and tell the user to add the ones he wants with
+`:packadd`.
+
+Decide how you want to distribute the package.  You can create an archive or
+you could use a repository.  An archive can be used by more users, but is a
+bit harder to update to a new version.  A repository can usually be kept
+up-to-date easily, but it requires a program like "git" to be available.
+You can do both, github can automatically create an archive for a release.
+
+Your directory layout would be like this:
+   start/foobar/plugin/foo.vim    	" always loaded, defines commands
+   start/foobar/plugin/bar.vim    	" always loaded, defines commands
+   start/foobar/autoload/foo.vim  	" loaded when foo command used
+   start/foobar/doc/foo.txt       	" help for foo.vim
+   start/foobar/doc/tags          	" help tags
+   opt/fooextra/plugin/extra.vim  	" optional plugin, defines commands
+   opt/fooextra/autoload/extra.vim  	" loaded when extra command used
+   opt/fooextra/doc/extra.txt  	        " help for extra.vim
+   opt/fooextra/doc/tags  	        " help tags
+
+This allows for the user to do: >
+	mkdir ~/.vim/pack/myfoobar
+	cd ~/.vim/pack/myfoobar
+	git clone https://github.com/you/foobar.git
+
+Here "myfoobar" is a name that the user can choose, the only condition is that
+it differs from other packages.
+
+In your documentation you explain what the plugins do, and tell the user how
+to load the optional plugin: >
+	:packadd! fooextra
+
+You could add this packadd command in one of your plugins, to be executed when
+the optional plugin is needed.
+
+Run the `:helptags` command to generate the doc/tags file.  Including this
+generated file in the package means that the user can drop the package in his
+pack directory and the help command works right away.  Don't forget to re-run
+the command after changing the plugin help: >
+	:helptags path/start/foobar/doc
+	:helptags path/opt/fooextra/doc
+
+==============================================================================
+7. Debugging scripts					*debug-scripts*
 
 Besides the obvious messages that you can add to your scripts to find out what
 they are doing, Vim offers a debug mode.  This allows you to step through a
@@ -748,7 +825,7 @@ OBSCURE
 		user, don't use typeahead for debug commands.
 
 ==============================================================================
-7. Profiling						*profile* *profiling*
+8. Profiling						*profile* *profiling*
 
 Profiling means that Vim measures the time that is spent on executing
 functions and/or scripts.  The |+profile| feature is required for this.
--- 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 05
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -866,8 +866,8 @@ 4. Load the plugin scripts.					*load-pl
 	use "--cmd 'set noloadplugins'" |--cmd|.
 
 	Plugin packs are loaded.  These are plugins, as above, but found in
-	'packpath' directories.  Every plugin directory found is added in
-	'runtimepath'.  See |packages|.
+	'packpath' "start" directories.  Every plugin directory found is added
+	in 'runtimepath'.  See |packages|.
 
 5. Set 'shellpipe' and 'shellredir'
 	The 'shellpipe' and 'shellredir' options are set according to the
@@ -905,8 +905,9 @@ 11. Open all windows
 12. Execute startup commands
 	If a "-t" flag was given to Vim, the tag is jumped to.
 	The commands given with the |-c| and |+cmd| arguments are executed.
+	If the 'insertmode' option is set, Insert mode is entered.
 	The starting flag is reset, has("vim_starting") will now return zero.
-	If the 'insertmode' option is set, Insert mode is entered.
+	The |v:vim_did_enter| variable is set to 1.
 	The |VimEnter| autocommands are executed.
 
 Some hints on using initializations:
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1637,6 +1637,7 @@ 05.4	usr_05.txt	/*05.4*
 05.5	usr_05.txt	/*05.5*
 05.6	usr_05.txt	/*05.6*
 05.7	usr_05.txt	/*05.7*
+05.8	usr_05.txt	/*05.8*
 06.1	usr_06.txt	/*06.1*
 06.2	usr_06.txt	/*06.2*
 06.3	usr_06.txt	/*06.3*
@@ -4453,6 +4454,8 @@ E921	channel.txt	/*E921*
 E922	eval.txt	/*E922*
 E923	eval.txt	/*E923*
 E924	quickfix.txt	/*E924*
+E925	quickfix.txt	/*E925*
+E926	quickfix.txt	/*E926*
 E93	windows.txt	/*E93*
 E94	windows.txt	/*E94*
 E95	message.txt	/*E95*
@@ -4886,6 +4889,7 @@ add-filetype-plugin	usr_05.txt	/*add-fil
 add-global-plugin	usr_05.txt	/*add-global-plugin*
 add-local-help	usr_05.txt	/*add-local-help*
 add-option-flags	options.txt	/*add-option-flags*
+add-package	usr_05.txt	/*add-package*
 add-plugin	usr_05.txt	/*add-plugin*
 added-5.1	version5.txt	/*added-5.1*
 added-5.2	version5.txt	/*added-5.2*
@@ -5222,7 +5226,9 @@ channel-demo	channel.txt	/*channel-demo*
 channel-mode	channel.txt	/*channel-mode*
 channel-more	channel.txt	/*channel-more*
 channel-open	channel.txt	/*channel-open*
+channel-open-options	channel.txt	/*channel-open-options*
 channel-raw	channel.txt	/*channel-raw*
+channel-timeout	channel.txt	/*channel-timeout*
 channel-use	channel.txt	/*channel-use*
 channel.txt	channel.txt	/*channel.txt*
 char-variable	eval.txt	/*char-variable*
@@ -6872,6 +6878,7 @@ job-start-if-needed	channel.txt	/*job-st
 job-start-nochannel	channel.txt	/*job-start-nochannel*
 job-stoponexit	channel.txt	/*job-stoponexit*
 job-term	channel.txt	/*job-term*
+job-timeout	channel.txt	/*job-timeout*
 job_getchannel()	eval.txt	/*job_getchannel()*
 job_info()	eval.txt	/*job_info()*
 job_setoptions()	eval.txt	/*job_setoptions()*
@@ -7600,6 +7607,7 @@ out_name	channel.txt	/*out_name*
 out_timeout	channel.txt	/*out_timeout*
 p	change.txt	/*p*
 pack-add	repeat.txt	/*pack-add*
+package-create	repeat.txt	/*package-create*
 packages	repeat.txt	/*packages*
 page-down	intro.txt	/*page-down*
 page-up	intro.txt	/*page-up*
@@ -8767,6 +8775,7 @@ v:true	eval.txt	/*v:true*
 v:val	eval.txt	/*v:val*
 v:var	eval.txt	/*v:var*
 v:version	eval.txt	/*v:version*
+v:vim_did_enter	eval.txt	/*v:vim_did_enter*
 v:warningmsg	eval.txt	/*v:warningmsg*
 v:windowid	eval.txt	/*v:windowid*
 v_!	change.txt	/*v_!*
@@ -8940,6 +8949,8 @@ vim-variable	eval.txt	/*vim-variable*
 vim.vim	syntax.txt	/*vim.vim*
 vim7	version7.txt	/*vim7*
 vim:	options.txt	/*vim:*
+vim_did_enter-variable	eval.txt	/*vim_did_enter-variable*
+vim_starting	eval.txt	/*vim_starting*
 vimball	pi_vimball.txt	/*vimball*
 vimball-contents	pi_vimball.txt	/*vimball-contents*
 vimball-extract	pi_vimball.txt	/*vimball-extract*
--- 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 20
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,22 +34,18 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+assert_matches('pattern', value)
+
 +channel:
-- add test for out-cb and err-cb.
-- Move more details from eval.txt to channel.txt.  Add tags in eval.txt.
 - When decoding json, don't read all the typeahead at once, use the reader
   properly.
 - When a message in the queue but there is no callback, drop it after a while?
   Add timestamp to queued messages and callbacks with ID, remove after a
   minute.  Option to set the droptime.
-- Add more ch_log calls, basically at every branch, before every callback, etc.
 - Add remark about undo sync, is there a way to force it?
 - When starting a job, have an option to open the server socket, so we know
   the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
   Feb 9)  How to do this on MS-Windows?
-- Add more unit-testing in json_test.c
-- Add a test where ["eval","getline(123)"] gets a line with special
-  characters (NUL, 0x80, etc.).  Check that it isn't garbled.
 - Make sure errors lead to a useful error msg. ["ex","foobar"]
 - For connection to server, a "keep open" flag would be useful.  Retry
   connecting in the main loop with zero timeout.
@@ -57,7 +53,11 @@ Later
 - job_start(): run job in a newly opened terminal.
     With xterm could use -S{pty}.
 
-Packages: how about "after" directory?
+Partial:
+- Maybe we also need VAR_PARTIAL support in if_mzsch.
+
+Packages:
+- make package for editexisting, others?
 
 Make it so that the window ID can be used where currently a window nr is used
 
@@ -70,6 +70,9 @@ Why does this: 	echo "a" . 1.1
 result in:	a11
 Should recognize float (so long as it's not ".1.1").
 
+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)
@@ -119,6 +122,10 @@ Regexp problems:
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
 - Search for \\~ causes error E874.
 
+Using freed memory in quickfix code. (Dominique, 2016 Mar 21)
+
+Patch 7.4.1401 caused autochdir not to work on startup. (Rob Hoelz, #704)
+
 Patch to fix that folds close with autocomplete.  #643
 Christian Brabandt, 2016 Feb 18.
 
@@ -137,6 +144,7 @@ Patch to put undo options together in un
 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.
+Updated patch, 2016 Mar 25.
 
 Patch to update the GTK icon cache when installing. (Kazunobu Kuriyama, 2016
 Feb 3)
@@ -147,12 +155,18 @@ Cannot delete a file with square bracket
 
 Patch to add 'topbot' to 'belloff' option. (Coot, 2016 Mar 18, #695)
 
+Patch to make matchit work better, respect 'matchpairs'. (Ken Takata, 2016 Mar
+25)
+
 We can use '. to go to the last change in the current buffer, but how about
 the last change in any buffer?  Can we use ', (, is next to .)?
 
 Patch for Python: #622. (Roland Puntaier, 2016 Feb 2)
 What does it change?
 
+It's possible to add ",," to 'wildignore', an empty entry.  Causes problems.
+Reject the value? #710.
+
 Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
 More tests May 14. Update May 29.  Update Aug 10.
 Now part of large file patches. (Ken Takata, 2016 Feb 1)
@@ -202,6 +216,10 @@ Patch to make "%:h:h" return "." instead
 
 Remove SPACE_IN_FILENAME ? What could possibly go wrong?
 
+Patch to change GUI behavior: instead of changing the window size change the
+lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
+#703)
+
 Installation of .desktop files does not work everywhere.
 It's now fixed, but the target directory probably isn't right.
 Add configure check?
@@ -220,6 +238,8 @@ Patch to avoid redrawing tabline when th
 
 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,
@@ -247,6 +267,8 @@ https://gist.github.com/presuku/d3d6b230
 Patch to make the behavior of "w" more straightforward, but not Vi compatible.
 With a 'cpo' flag.  (Christian Brabandt, 2016 Feb 8)
 
+Patch to add optionproperties(). (Anton Lindqvist, 2016 Mar 26)
+
 Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
 
 Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
@@ -298,7 +320,7 @@ Value returned by virtcol() changes depe
 inconsistent with the documentation.
 
 Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
-13, last version)
+13, last version)  Update Mar 21.
 
 Can we cache the syntax attributes, so that updates for 'relativenumber' and
 'cursorline'/'cursorcolumn' are a lot faster?
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -275,10 +275,9 @@ matching HTML tags, if/else/endif in Vim
 it's not backwards compatible (that's why it is not enabled by default).
 
 To start using the matchit plugin, add one line to your vimrc file: >
-	packadd matchit
+	packadd! matchit
 
-That's all!  You can also type the command to try it out.  Now you can find
-help about this plugin: >
+That's all!  After restarting Vim you can find help about this plugin: >
 	:help matchit
 
 This works, because when `:packadd` loaded the plugin it also added the