changeset 9286:64035abb986b

commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 12 23:01:46 2016 +0200 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Sun, 12 Jun 2016 23:15:06 +0200
parents 3e510396a743
children af25a1a875db
files runtime/doc/autocmd.txt runtime/doc/eval.txt runtime/doc/index.txt runtime/doc/map.txt runtime/doc/motion.txt runtime/doc/options.txt runtime/doc/pattern.txt runtime/doc/repeat.txt runtime/doc/starting.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/windows.txt runtime/ftplugin/c.vim runtime/ftplugin/python.vim runtime/syntax/viminfo.vim runtime/tools/blink.c
diffstat 17 files changed, 258 insertions(+), 132 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: 2016 Apr 20
+*autocmd.txt*   For Vim version 7.4.  Last change: 2016 Jun 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1204,6 +1204,8 @@ option will not cause any commands to be
 			argument is present. You probably want to use
 			<nomodeline> for events that are not used when loading
 			a buffer, such as |User|.
+			Processing modelines is also skipped when no
+			matching autocommands were executed.
 
 						*:doautoa* *:doautoall*
 :doautoa[ll] [<nomodeline>] [group] {event} [fname]
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Jun 04
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Jun 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1468,9 +1468,11 @@ v:exception	The value of the exception m
 					*v:false* *false-variable*
 v:false		A Number with value zero. Used to put "false" in JSON.  See
 		|json_encode()|.
-		When used as a string this evaluates to "false". >
+		When used as a string this evaluates to "v:false". >
 			echo v:false
-<			false ~
+<			v:false ~
+		That is so that eval() can parse the string back to the same
+		value.
 
 					*v:fcs_reason* *fcs_reason-variable*
 v:fcs_reason	The reason why the |FileChangedShell| event was triggered.
@@ -1613,17 +1615,21 @@ v:mouse_col	Column number for a mouse cl
 v:none		An empty String. Used to put an empty item in JSON.  See
 		|json_encode()|.
 		When used as a number this evaluates to zero.
-		When used as a string this evaluates to "none". >
+		When used as a string this evaluates to "v:none". >
 			echo v:none
-<			none ~
+<			v:none ~
+		That is so that eval() can parse the string back to the same
+		value.
 
 					*v:null* *null-variable*
 v:null		An empty String. Used to put "null" in JSON.  See
 		|json_encode()|.
 		When used as a number this evaluates to zero.
-		When used as a string this evaluates to "null". >
+		When used as a string this evaluates to "v:null". >
 			echo v:null
-<			null ~
+<			v:null ~
+		That is so that eval() can parse the string back to the same
+		value.
 
 					*v:oldfiles* *oldfiles-variable*
 v:oldfiles	List of file names that is loaded from the |viminfo| file on
@@ -1796,9 +1802,11 @@ v:throwpoint	The point where the excepti
 						*v:true* *true-variable*
 v:true		A Number with value one. Used to put "true" in JSON.  See
 		|json_encode()|.
-		When used as a string this evaluates to "true". >
+		When used as a string this evaluates to "v:true". >
 			echo v:true
-<			true ~
+<			v:true ~
+		That is so that eval() can parse the string back to the same
+		value.
 						*v:val* *val-variable*
 v:val		Value of the current item of a |List| or |Dictionary|.	Only
 		valid while evaluating the expression used with |map()| and
@@ -2218,6 +2226,7 @@ test_null_job()			Job	null value for tes
 test_null_list()		List	null value for testing
 test_null_partial()		Funcref	null value for testing
 test_null_string()		String	null value for testing
+test_settime({expr})		none	set current time for testing
 timer_start({time}, {callback} [, {options}])
 				Number	create a timer
 timer_stop({timer})		none	stop a timer
@@ -7275,6 +7284,11 @@ test_null_partial()					*test_null_parti
 test_null_string()					*test_null_string()*
 		Return a String that is null. Only useful for testing.
 
+test_settime({expr})					*test_settime()*
+		Set the time Vim uses internally.  Currently only used for
+		timestamps in the history, as they are used in viminfo.
+		{expr} must evaluate to a number.  When the value is zero the
+		normal behavior is restored.
 
 							*timer_start()*
 timer_start({time}, {callback} [, {options}])
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.4.  Last change: 2016 Apr 12
+*index.txt*     For Vim version 7.4.  Last change: 2016 Jun 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1156,8 +1156,9 @@ tag	      command	      action ~
 |:chdir|	:chd[ir]	change directory
 |:checkpath|	:che[ckpath]	list included files
 |:checktime|	:checkt[ime]	check timestamp of loaded buffers
+|:clast|	:cla[st]	go to the specified error, default last one
+|:clearjumps|	:cle[arjumps]	clear the jump list
 |:clist|	:cl[ist]	list all errors
-|:clast|	:cla[st]	go to the specified error, default last one
 |:close|	:clo[se]	close current window
 |:cmap|		:cm[ap]		like ":map" but for Command-line mode
 |:cmapclear|	:cmapc[lear]	clear all mappings for Command-line mode
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.4.  Last change: 2016 Jan 10
+*map.txt*       For Vim version 7.4.  Last change: 2016 Jun 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1413,11 +1413,11 @@ The valid escape sequences are
 		expands to nothing.
 						*<mods>*
 	<mods>  The command modifiers, if specified. Otherwise, expands to
-		nothing. Supported modifiers are |aboveleft|, |belowright|,
-		|botright|, |browse|, |confirm|, |hide|, |keepalt|,
-		|keepjumps|, |keepmarks|, |keeppatterns|, |lockmarks|,
-		|noswapfile|, |silent|, |tab|, |topleft|, |verbose|, and
-		|vertical|.
+		nothing. Supported modifiers are |:aboveleft|, |:belowright|,
+		|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
+		|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:lockmarks|,
+		|:noswapfile|, |:silent|, |:tab|, |:topleft|, |:verbose|, and
+		|:vertical|.
 		Examples: >
 		    command! -nargs=+ -complete=file MyEdit
 				\ for f in expand(<q-args>, 0, 1) |
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.4.  Last change: 2015 Jun 06
+*motion.txt*    For Vim version 7.4.  Last change: 2016 Jun 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1027,7 +1027,8 @@ unless the line containing that position
 
 							*CTRL-O*
 CTRL-O			Go to [count] Older cursor position in jump list
-			(not a motion command).  {not in Vi}
+			(not a motion command).
+			{not in Vi}
 			{not available without the |+jumplist| feature}
 
 <Tab>		or					*CTRL-I* *<Tab>*
@@ -1037,8 +1038,14 @@ CTRL-I			Go to [count] newer cursor posi
 			{not available without the |+jumplist| feature}
 
 							*:ju* *:jumps*
-:ju[mps]		Print the jump list (not a motion command).  {not in
-			Vi} {not available without the |+jumplist| feature}
+:ju[mps]		Print the jump list (not a motion command).
+			{not in Vi}
+			{not available without the |+jumplist| feature}
+
+							*:cle* *:clearjumps*
+:cle[arjumps]		Clear the jump list of the current window.
+			{not in Vi}
+			{not available without the |+jumplist| feature}
 
 							*jumplist*
 Jumps are remembered in a jump list.  With the CTRL-O and CTRL-I command you
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2016 Jun 04
+*options.txt*	For Vim version 7.4.  Last change: 2016 Jun 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3337,6 +3337,41 @@ A jump table for the options with a shor
 	It is not allowed to change text or jump to another window while
 	evaluating 'foldtext' |textlock|.
 
+						*'formatexpr'* *'fex'*
+'formatexpr' 'fex'	string (default "")
+			local to buffer
+			{not in Vi}
+			{not available when compiled without the |+eval|
+			feature}
+	Expression which is evaluated to format a range of lines for the |gq|
+	operator or automatic formatting (see 'formatoptions').  When this
+	option is empty 'formatprg' is used.
+
+	The |v:lnum|  variable holds the first line to be formatted.
+	The |v:count| variable holds the number of lines to be formatted.
+	The |v:char|  variable holds the character that is going to be
+		      inserted if the expression is being evaluated due to
+		      automatic formatting.  This can be empty.  Don't insert
+		      it yet!
+
+	Example: >
+		:set formatexpr=mylang#Format()
+<	This will invoke the mylang#Format() function in the
+	autoload/mylang.vim file in 'runtimepath'. |autoload|
+
+	The expression is also evaluated when 'textwidth' is set and adding
+	text beyond that limit.  This happens under the same conditions as
+	when internal formatting is used.  Make sure the cursor is kept in the
+	same spot relative to the text then!  The |mode()| function will
+	return "i" or "R" in this situation.
+	
+	When the expression evaluates to non-zero Vim will fall back to using
+	the internal format mechanism.
+
+	The expression will be evaluated in the |sandbox| when set from a
+	modeline, see |sandbox-option|.  That stops the option from working,
+	since changing the buffer text is not allowed.
+
 					*'formatoptions'* *'fo'*
 'formatoptions' 'fo'	string (Vim default: "tcq", Vi default: "vt")
 			local to buffer
@@ -3380,41 +3415,6 @@ A jump table for the options with a shor
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
 
-						*'formatexpr'* *'fex'*
-'formatexpr' 'fex'	string (default "")
-			local to buffer
-			{not in Vi}
-			{not available when compiled without the |+eval|
-			feature}
-	Expression which is evaluated to format a range of lines for the |gq|
-	operator or automatic formatting (see 'formatoptions').  When this
-	option is empty 'formatprg' is used.
-
-	The |v:lnum|  variable holds the first line to be formatted.
-	The |v:count| variable holds the number of lines to be formatted.
-	The |v:char|  variable holds the character that is going to be
-		      inserted if the expression is being evaluated due to
-		      automatic formatting.  This can be empty.  Don't insert
-		      it yet!
-
-	Example: >
-		:set formatexpr=mylang#Format()
-<	This will invoke the mylang#Format() function in the
-	autoload/mylang.vim file in 'runtimepath'. |autoload|
-
-	The expression is also evaluated when 'textwidth' is set and adding
-	text beyond that limit.  This happens under the same conditions as
-	when internal formatting is used.  Make sure the cursor is kept in the
-	same spot relative to the text then!  The |mode()| function will
-	return "i" or "R" in this situation.
-	
-	When the expression evaluates to non-zero Vim will fall back to using
-	the internal format mechanism.
-
-	The expression will be evaluated in the |sandbox| when set from a
-	modeline, see |sandbox-option|.  That stops the option from working,
-	since changing the buffer text is not allowed.
-
 					*'fsync'* *'fs'* *'nofsync'* *'nofs'*
 'fsync' 'fs'		boolean	(default on)
 			global
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.4.  Last change: 2016 Apr 26
+*pattern.txt*   For Vim version 7.4.  Last change: 2016 Jun 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -954,14 +954,18 @@ An ordinary atom can be:
 <	When 'hlsearch' is set and you move the cursor around and make changes
 	this will clearly show when the match is updated or not.
 	To match the text up to column 17: >
-		/.*\%17v
-<	Column 17 is included, because that's where the "\%17v" matches,
-	even though this is a |/zero-width| match.  Adding a dot to match the
-	next character has the same result: >
-		/.*\%17v.
+		/^.*\%17v
+<	Column 17 is not included, because this is a |/zero-width| match. To
+	include the column use: >
+		/^.*\%17v.
 <	This command does the same thing, but also matches when there is no
 	character in column 17: >
-		/.*\%<18v.
+		/^.*\%<18v.
+<	Note that without the "^" to anchor the match in the first column,
+	this will also highlight column 17: >
+		/.*\%17v
+<	Column 17 is highlighted by 'hlsearch' because there is another match
+	where ".*" matches zero characters.
 <
 
 Character classes: {not in Vi}
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.4.  Last change: 2016 May 24
+*repeat.txt*    For Vim version 7.4.  Last change: 2016 Jun 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -541,7 +541,7 @@ whether Vim supports a feature or a depe
 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
+The extra "!" is so that the plugin isn't loaded if Vim was started with
 |--noplugin|.
 
 It is perfectly normal for a package to only have files in the "opt"
@@ -620,7 +620,7 @@ the command after changing the plugin he
 
 Dependencies between plugins ~
 							*packload-two-steps*
-Suppose you have a two plugins that depend on the same functionality. You can
+Suppose you have 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:
 
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4.  Last change: 2016 Apr 22
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Jun 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1413,6 +1413,29 @@ file (it's actually merged with the exis
 'viminfo' option is a string containing information about what info should be
 stored, and contains limits on how much should be stored (see 'viminfo').
 
+Merging happens in two ways.  Most items that have been changed or set in the
+current Vim session are stored, and what was not changed is filled from what
+is currently in the viminfo file.  For example:
+- Vim session A reads the viminfo, which contains variable START.
+- Vim session B does the same
+- Vim session A sets the variables AAA and BOTH and exits
+- Vim session B sets the variables BBB and BOTH and exits
+Now the viminfo will have:
+   START - it was in the viminfo and wasn't changed in session A or B
+   AAA   - value from session A, session B kept it
+   BBB   - value from session B
+   BOTH  - value from session B, value from session A is lost
+
+For some items a timestamp is used to keep the last changed version.  Here it
+doesn't matter in which sequence Vim sessions exit, the newest item(s) are
+always kept.  This is used for:
+- The command line history.
+- The search string history.
+- The input-line history.
+- Contents of non-empty registers.
+- The jump list
+- File marks
+
 Notes for Unix:
 - The file protection for the viminfo file will be set to prevent other users
   from being able to read it, because it may contain any text or commands that
@@ -1535,14 +1558,14 @@ most of the information will be restored
 			already set (registers, marks, |v:oldfiles|, etc.)
 			will be overwritten   {not in Vi}
 
-				*:wv* *:wviminfo* *E137* *E138* *E574* *E886*
+			*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
 :wv[iminfo][!] [file]	Write to viminfo file [file] (default: see above).
 			The information in the file is first read in to make
 			a merge between old and new info.  When [!] is used,
 			the old information is not read first, only the
 			internal info is written.  If 'viminfo' is empty, marks
 			for up to 100 files will be written.
-			When you get error "E138: Can't write viminfo file"
+			When you get error "E929: Too many viminfo temp files"
 			check that no old temp files were left behind (e.g.
 			~/.viminf*) and that you can write in the directory of
 			the .viminfo file.
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2074,6 +2074,8 @@ 90.5	usr_90.txt	/*90.5*
 :cl	quickfix.txt	/*:cl*
 :cla	quickfix.txt	/*:cla*
 :clast	quickfix.txt	/*:clast*
+:cle	motion.txt	/*:cle*
+:clearjumps	motion.txt	/*:clearjumps*
 :clist	quickfix.txt	/*:clist*
 :clo	windows.txt	/*:clo*
 :close	windows.txt	/*:close*
@@ -3360,6 +3362,7 @@ 90.5	usr_90.txt	/*90.5*
 <line1>	map.txt	/*<line1>*
 <line2>	map.txt	/*<line2>*
 <lt>	intro.txt	/*<lt>*
+<mods>	map.txt	/*<mods>*
 <nomodeline>	autocmd.txt	/*<nomodeline>*
 <q-args>	map.txt	/*<q-args>*
 <reg>	map.txt	/*<reg>*
@@ -4451,6 +4454,7 @@ E925	quickfix.txt	/*E925*
 E926	quickfix.txt	/*E926*
 E927	eval.txt	/*E927*
 E928	eval.txt	/*E928*
+E929	starting.txt	/*E929*
 E93	windows.txt	/*E93*
 E94	windows.txt	/*E94*
 E95	message.txt	/*E95*
@@ -5244,6 +5248,7 @@ channel-callback	channel.txt	/*channel-c
 channel-close	channel.txt	/*channel-close*
 channel-commands	channel.txt	/*channel-commands*
 channel-demo	channel.txt	/*channel-demo*
+channel-functions	usr_41.txt	/*channel-functions*
 channel-mode	channel.txt	/*channel-mode*
 channel-more	channel.txt	/*channel-more*
 channel-open	channel.txt	/*channel-open*
@@ -6894,6 +6899,7 @@ job-control	channel.txt	/*job-control*
 job-err_cb	channel.txt	/*job-err_cb*
 job-err_io	channel.txt	/*job-err_io*
 job-exit_cb	channel.txt	/*job-exit_cb*
+job-functions	usr_41.txt	/*job-functions*
 job-in_io	channel.txt	/*job-in_io*
 job-options	channel.txt	/*job-options*
 job-out_cb	channel.txt	/*job-out_cb*
@@ -8622,6 +8628,7 @@ test_null_job()	eval.txt	/*test_null_job
 test_null_list()	eval.txt	/*test_null_list()*
 test_null_partial()	eval.txt	/*test_null_partial()*
 test_null_string()	eval.txt	/*test_null_string()*
+test_settime()	eval.txt	/*test_settime()*
 testing-variable	eval.txt	/*testing-variable*
 tex-cchar	syntax.txt	/*tex-cchar*
 tex-cole	syntax.txt	/*tex-cole*
@@ -8652,6 +8659,7 @@ throw-from-catch	eval.txt	/*throw-from-c
 throw-variables	eval.txt	/*throw-variables*
 throwpoint-variable	eval.txt	/*throwpoint-variable*
 time-functions	usr_41.txt	/*time-functions*
+timer-functions	usr_41.txt	/*timer-functions*
 timer_start()	eval.txt	/*timer_start()*
 timer_stop()	eval.txt	/*timer_stop()*
 timestamp	editing.txt	/*timestamp*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 Jun 04
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jun 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,7 +34,22 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Further implement 'barline' in viminfo:
+- jumplist: merge with vi_jumplist.
+- Use timestamp for more items: locations, marks.
+- Docs: lines are copied by Vim since 7.4.1131
+- Check if debug history works.
+
+Problem with setqflist([]): grep 4 times, ":colder 3", setqflist([]) will
+clear the next list, not the current one.  Ramel Eshed, Jun 8.
+
+Patch: Fix drawing background with &termguicolors #805 (Jacob Niehus)
+
 +channel:
+- GUI cursor blinking interrupted when the job output goes to a buffer that is
+  in a window. (Ramel Eshed, 2016 Jun 9)
+- GUI cursor blinking interrupted when there is a status line.  (Ramel Eshed,
+  2016 Jun 9)
 - 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.
@@ -49,6 +64,18 @@ Later
 - job_start(): run job in a newly opened terminal.
     With xterm could use -S{pty}.
 
+Quickfix improvements for backgroupd building and grepping:
+- Move 'efm' parsing to a separate function.  If 'efm' is the same as last
+  time re-use the fmt_first list.
+- Do not clear "dir_stack", "directory" and "file_stack", "currfile" when
+  using ":addexpr".
+  Move multiline, multiignore, multiscan outside of the function.
+- Add :cbottom, if quickfix window is visible scroll to make the last line
+  visible. Use scroll_cursor_bot(0, FALSE);
+- Add a flag/property/option to quickfix commands and functions to keep a file
+  name as a string and not create a buffer for it? To avoid creating lots of
+  buffers. (Ramel Eshed)
+
 Regexp problems:
 - Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
   (Manuel Ortega, 2016 Apr 24)
@@ -95,12 +122,8 @@ Regexp problems:
 - The pattern "\1" with the old engine gives E65, with the new engine it
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
 - Search for \\~ causes error E874.
-
-Patch to reduce number of memory allocations for quickfix lines.
-(Yegappan Lakshmanan, 2016 May 22, #831)
-
-User commands: add a <> item to pass on command modifiers, such as ":tab".
-Patch by Yegappan Lakshmanan, 2016 May 22, #829.
+- Search for /\%d0\+  causes error E363 in a file with consecutive NUL
+  characters. (Christian Brabandt, 2016 Jun 7)
 
 jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
 What if there is an invalid character?
@@ -110,34 +133,11 @@ about /S and /D options (Ken Takata, 201
 
 Cursor positioned in the wrong place when editing src/testdir/test_viml.vim.
 
-When using "k" at the hit-enter prompt only get the hit-enter prompt, not
-scrolling up. (Ramel Eshed, 2016 May 25)
-Related patches: Patch 7.4.1603, Patch 7.4.1594 
-Patch by Hirohito Higashi, 2016 May 26.
-
-Patch to make cursor blinking work better with GTK3. (Kazunobu Kuriyama, 2016
-Apr 19)  Need to check this works on Linux.
-Alternative:
-- add gui_restart_blink flag, set when key typed.
-- in gui_mch_start_blink(): continue if possible.
-- in gui_mch_stop_blink(): remember last state.
-
 Use ADDR_OTHER instead of ADDR_LINES for many more commands.
 Add tests for using number larger than number of lines in buffer.
 
-Patch to fix escaping special characters for delete(). (tc-0, 2016 Mar 20,
-#700) Test fails on MS-Windows.
-
 Invalid behavior with NULL list. (Nikolai Pavlov, #768)
 
-Patch to fix using CTRL-] on "{address}." in help. (Hirohito Higashi, 2016 May
-18, #814)
-
-Can we add a function to parse one line for 'errorformat'?  Like ":caddexpr"
-for one line.
-
-Patch to fix greying popup menu items. (Shane Harper, 2016 May 23, #834)
-
 &t_ut not used with 'termguicolors' is set. (Jacob Niehus, 2016 May 14, #804)
 Patch to fix this, Jacob Niehus, 2016 May 14, #805)
 
@@ -152,6 +152,11 @@ Correction for test, Ken Takata, 2016 Ma
 
 Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
 
+":caddexpr" should keep state, so that directory changes can be respected.
+(Luc Hermitte, 2016 Jun 6)
+Don't clear dir_stack and file_stack when returning, do it on entry when not
+adding iterms.  And keep them in qf_list_T.
+
 Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
 13, last version)  Update May 22, #830.
 
@@ -190,6 +195,9 @@ Possibly wrong value for seq_cur. (Flore
 
 Patch to improve map documentation. Issue #799.
 
+Patch for restoring wide characters in the console buffer.
+(Ken Takata, 2016 Jun 7)
+
 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 .)?
 
@@ -224,7 +232,9 @@ When doing "vi buf.md" a BufNew autocomm
 Because of using the initial buffer? (Dun Peal, 2016 May 12)
 
 Patch to add the :bvimgrep command.  (Christian Brabandt, 2014 Nov 12)
-Updated 2016 Feb 10
+Updated 2016 Jun 10, #858
+
+Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
 
 Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
 No test, needs some work to include.
@@ -286,6 +296,9 @@ Should use /usr/local/share/applications
 Or use $XDG_DATA_DIRS.
 Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
 
+Patch to add getbufinfo(), gettabinfo() and getwininfo(). (Yegappan
+Lakshmanan, 2016 Apr 2016)  Update Jun 8.
+
 Access to uninitialized memory in match_backref() regexp_nda.c:4882
 (Dominique Pelle, 2015 Nov 6)
 
@@ -296,7 +309,7 @@ 7   Add a watchpoint in the debug mode: 
     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 by Christian Brabandt, 2016 Jun 10, #859
 
 If ":bd" also closes a Tab page then the " mark is not set.  (Harm te Hennepe,
 2016 Apr 25, #780)
@@ -305,6 +318,7 @@ Patch to avoid redrawing tabline when th
 (Christian Brabandt, 2016 Jan 28)
 
 Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
+Update 2016 Jun 10, #861
 
 Add value "smart" to 'tagcase': ignore case when tag is all lower case.
 Patch from Christian Brabandt, 2016 Mar 30, #712.
@@ -397,7 +411,7 @@ Use v:none.  var == v:none
 
 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 Apr 7.
+Update Mar 5. Update Apr 7.  Update Jun 5.
 
 To support Thai (and other languages) word boundaries, include the ICU
 library:  http://userguide.icu-project.org/boundaryanalysis
@@ -577,7 +591,7 @@ Patch: On MS-Windows shellescape() may h
 (Ingo Karkat, 2015 Jan 16)
 
 Patch for variable tabstops.  On github (Christian Brabandt, 2014 May 15)
-Update 2016 Jan 31 (email).
+Update 2016 Jun 10, # 857
 
 Redo only remembers the last change.  Could use "{count}g." to redo an older
 change.  How does the user know which change?  At least have a way to list
@@ -828,9 +842,6 @@ May 17: with winlist() and tabpagelist()
 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.
 
@@ -1316,12 +1327,6 @@ Gui menu edit/paste in block mode insert
 Winckler, 2011 May 11)
 Requires a map mode for Insert mode started from blockwise Visual mode.
 
-Use json format for new items in .viminfo:
-    |["info","any info"]
-    |["text","text text text"
-    |"continuation line"]
-    |["hist",242342342,{"arg":"value"}]
-
 Writing nested List and Dict in viminfo gives error message and can't be read
 back. (Yukihiro Nakadaira, 2010 Nov 13)
 
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Jun 04
+*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Jun 11
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -602,7 +602,9 @@ String manipulation:					*string-functio
 	strdisplaywidth()	size of string when displayed, deals with tabs
 	substitute()		substitute a pattern match with a string
 	submatch()		get a specific match in ":s" and substitute()
-	strpart()		get part of a string
+	strpart()		get part of a string using byte index
+	strcharpart()		get part of a string using char index
+	strgetchar()		get character from a string using char index
 	expand()		expand special keywords
 	iconv()			convert text from one encoding to another
 	byteidx()		byte index of a character in a string
@@ -678,6 +680,7 @@ Floating point computation:				*float-fu
 	sinh()			hyperbolic sine
 	cosh()			hyperbolic cosine
 	tanh()			hyperbolic tangent
+	isnan()			check for not a number
 
 Other computation:					*bitwise-function*
 	and()			bitwise AND
@@ -732,11 +735,14 @@ Working with text in the current buffer:
 	searchpair()		find the other end of a start/skip/end
 	searchpairpos()		find the other end of a start/skip/end
 	searchdecl()		search for the declaration of a name
+	getcharsearch()		return character search information
+	setcharsearch()		set character search information
 
 					*system-functions* *file-functions*
 System functions and manipulation of files:
 	glob()			expand wildcards
 	globpath()		expand wildcards in a number of directories
+	glob2regpat()		convert a glob pattern into a search pattern
 	findfile()		find a file in a list of directories
 	finddir()		find a directory in a list of directories
 	resolve()		find out where a shortcut points to
@@ -748,6 +754,7 @@ System functions and manipulation of fil
 	filereadable()		check if a file can be read
 	filewritable()		check if a file can be written to
 	getfperm()		get the permissions of a file
+	setfperm()		set the permissions of a file
 	getftype()		get the kind of a file
 	isdirectory()		check if a directory exists
 	getfsize()		get the size of a file
@@ -790,6 +797,11 @@ Buffers, windows and the argument list:
 	bufwinnr()		get the window number of a specific buffer
 	winbufnr()		get the buffer number of a specific window
 	getbufline()		get a list of lines from the specified buffer
+	win_findbuf()		find windows containing a buffer
+	win_getid()		get window ID of a window
+	win_gotoid()		go to window with ID
+	win_id2tabwin()		get tab and window nr from window ID
+	win_id2win()		get window nr from window ID
 
 Command line:					*command-line-functions*
 	getcmdline()		get the current command line
@@ -900,14 +912,48 @@ Testing:				    *test-functions*
 	assert_true()		assert that an expression is true
 	assert_exception()	assert that a command throws an exception
 	assert_fails()		assert that a function call fails
-
-Inter-process communication:
+	test_alloc_fail()	make memory allocation fail
+	test_disable_char_avail()	test without typeahead
+	test_garbagecollect_now()	free memory right now
+	test_null_channel()	return a null Channel
+	test_null_dict()	return a null Dict
+	test_null_job()		return a null Job
+	test_null_list()	return a null List
+	test_null_partial()	return a null Partial function
+	test_null_string()	return a null String
+
+Inter-process communication:		    *channel-functions*
 	ch_open()		open a channel
 	ch_close()		close a channel
+	ch_read()		read a message from a channel
+	ch_readraw()		read a raw message from a channel
 	ch_sendexpr()		send a JSON message over a channel
 	ch_sendraw()		send a raw message over a channel
+	ch_evalexpr()		evaluates an expression over channel
+	ch_evalraw()		evaluates a raw string over channel
+	ch_status()		get status of a channel
+	ch_getbufnr()		get the buffer number of a channel
+	ch_getjob()		get the job associated with a channel
+	ch_info()		get channel information
+	ch_log()		write a message in the channel log file
+	ch_logfile()		set the channel log file
+	ch_setoptions()		set the options for a channel
 	jsonencode()		encode an expression to a JSON string
 	jsondecode()		decode a JSON string to Vim types
+	js_encode()		encode an expression to a JSON string
+	js_decode()		decode a JSON string to Vim types
+
+Jobs:		    			        *job-functions*
+	job_start()		start a job
+	job_stop()		stop a job
+	job_status()		get the status of a job
+	job_getchannel()	get the channel used by a job
+	job_info()		get information about a job
+	job_setoptions()	set options for a job
+
+Timers:						*timer-functions*
+	timer_start()		create a timer
+	timer_stop()		stop a timer
 
 Various:					*various-functions*
 	mode()			get current editing mode
@@ -1408,9 +1454,9 @@ Now we can instantiate a Dutch translati
 And a German translator: >
 
 	:let uk2de = copy(transdict)
-	:let uk2de.words = {'one': 'ein', 'two': 'zwei', 'three': 'drei'}
+	:let uk2de.words = {'one': 'eins', 'two': 'zwei', 'three': 'drei'}
 	:echo uk2de.translate('three one')
-<	drei ein ~
+<	drei eins ~
 
 You see that the copy() function is used to make a copy of the "transdict"
 Dictionary and then the copy is changed to add the words.  The original
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.4.  Last change: 2016 Feb 01
+*windows.txt*   For Vim version 7.4.  Last change: 2016 Jun 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -76,6 +76,16 @@ places where a Normal mode command can't
 The main Vim window can hold several split windows.  There are also tab pages
 |tab-page|, each of which can hold multiple windows.
 
+Each window has a unique identifier called the window ID.  This identifier
+will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
+functions can be used to convert between the window/tab number and the
+identifier.  There is also the window number, which may change whenever
+windows are opened or closed, see |winnr()|.
+
+Each buffer has a unique number and the number will not change within a Vim
+session.  The |bufnr()| and |bufname()| functions can be used to convert
+between a buffer name and the buffer number.
+
 ==============================================================================
 2. Starting Vim						*windows-starting*
 
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2012 Jul 10
+" Last Change:	2016 Jun 12
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -37,7 +37,7 @@ endif
 " When the matchit plugin is loaded, this makes the % command skip parens and
 " braces in comments.
 let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
-let b:match_skip = 's:comment\|string\|character'
+let b:match_skip = 's:comment\|string\|character\|special'
 
 " Win32 can filter files in the browse dialog
 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -1,8 +1,9 @@
 " Vim filetype plugin file
 " Language:	python
-" Maintainer:	Johannes Zellner <johannes@zellner.org>
-" Last Change:	2014 Feb 09
-" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
+" Maintainer:	James Sully <sullyj3@gmail.com>
+" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change:	Fri, 10 June 2016
+" https://github.com/sullyj3/vim-ftplugin-python
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
@@ -21,10 +22,10 @@ setlocal omnifunc=pythoncomplete#Complet
 
 set wildignore+=*.pyc
 
-nnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
+nnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)\>')<cr>
+nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)\>')<cr>
+nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)\>')<cr>
+nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)\>')<cr>
 
 if !exists('*<SID>Python_jump')
   fun! <SID>Python_jump(motion) range
--- a/runtime/syntax/viminfo.vim
+++ b/runtime/syntax/viminfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Vim .viminfo file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2012 Feb 03
+" Last Change:	2016 Jun 05
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -30,11 +30,15 @@ syn match viminfoOptionName "\*\a*"ms=s+
 " Comments
 syn match viminfoComment "^#.*"
 
+" New style lines.  TODO: highlight numbers and strings.
+syn match viminfoNew "^|.*"
+
 " Define the default highlighting.
 " Only used when an item doesn't have highlighting yet
 hi def link viminfoComment	Comment
 hi def link viminfoError	Error
 hi def link viminfoStatement	Statement
+hi def link viminfoNew		String
 
 let b:current_syntax = "viminfo"
 
--- a/runtime/tools/blink.c
+++ b/runtime/tools/blink.c
@@ -6,9 +6,10 @@
  */
 
 #include <stdio.h>
+#include <unistd.h>
 
 	int
-main()
+main(void)
 {
 	while (1)
 	{