changeset 9227:ecb621205ed1

commit https://github.com/vim/vim/commit/82af8710bf8d1caeeceafb1370a052cb7d92f076 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 4 20:20:29 2016 +0200 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Sat, 04 Jun 2016 20:30:06 +0200
parents b3b95960970d
children ea504064c996
files runtime/doc/channel.txt runtime/doc/options.txt runtime/doc/quickfix.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/version7.txt runtime/doc/version8.txt runtime/ftplugin/spec.vim runtime/indent/vhdl.vim runtime/syntax/bib.vim runtime/syntax/spec.vim
diffstat 13 files changed, 133 insertions(+), 94 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 7.4.  Last change: 2016 May 29
+*channel.txt*      For Vim version 7.4.  Last change: 2016 Jun 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -573,7 +573,7 @@ See |job_setoptions()| and |ch_setoption
 			"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().
+			"close_cb" on |ch_open()|, see |close_cb|.
 						*job-exit_cb*
 "exit_cb": handler	Callback for when the job ends.  The arguments are the
 			job and the exit status.
@@ -659,10 +659,14 @@ When using JS or JSON mode with "buffer"
 ID will be added to the buffer, after decoding + encoding.  Messages with a
 positive number will be handled by a callback, commands are handled as usual.
 
-The name of the buffer is compared the full name of existing buffers.  If
-there is a match that buffer is used.  Otherwise a new buffer is created.
-Use an empty name to always create a new buffer.  |ch_getbufnr()| can then be
-used to get the buffer number.
+The name of the buffer from "out_name" or "err_name" is compared the full name
+of existing buffers, also after expanding the name for the current directory.
+E.g., when a buffer was created with ":edit somename" and the buffer name is
+"somename" it will use that buffer.
+
+If there is no matching buffer a new buffer is created.  Use an empty name to
+always create a new buffer.  |ch_getbufnr()| can then be used to get the
+buffer number.
 
 For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide".  If
 you prefer other settings, create the buffer first and pass the buffer number.
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2016 May 24
+*options.txt*	For Vim version 7.4.  Last change: 2016 Jun 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1103,6 +1103,7 @@ A jump table for the options with a shor
 
 	v:beval_bufnr	number of the buffer in which balloon is going to show
 	v:beval_winnr	number of the window
+	v:beval_winid	ID of the window
 	v:beval_lnum	line number
 	v:beval_col	column number (byte index)
 	v:beval_text	word under or after the mouse pointer
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Mar 23
+*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jun 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -457,6 +457,9 @@ expression.
 The BufWinEnter event is also triggered, again using "quickfix" for the buffer
 name.
 
+Note: When adding to an existing quickfix list the autocommand are not
+triggered.
+
 Note: Making changes in the quickfix window has no effect on the list of
 errors.  'modifiable' is off to avoid making changes.  If you delete or insert
 lines anyway, the relation between the text and the error number is messed up.
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.4.  Last change: 2016 Apr 10
+*syntax.txt*	For Vim version 7.4.  Last change: 2016 May 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4779,6 +4779,10 @@ font={font-name}					*highlight-font*
 	All fonts used, except for Menu and Tooltip, should be of the same
 	character size as the default font!  Otherwise redrawing problems will
 	occur.
+	To use a font name with an embedded space or other special character,
+	put it in single quotes.  The single quote cannot be used then.
+	Example: >
+	    :hi comment font='Monospace 10'
 
 guifg={color-name}					*highlight-guifg*
 guibg={color-name}					*highlight-guibg*
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4916,7 +4916,6 @@ added-win32-GUI	version5.txt	/*added-win
 aff-dic-format	spell.txt	/*aff-dic-format*
 after-directory	options.txt	/*after-directory*
 aleph	options.txt	/*aleph*
-alloc_fail()	eval.txt	/*alloc_fail()*
 alt	intro.txt	/*alt*
 alt-input	debugger.txt	/*alt-input*
 alternate-file	editing.txt	/*alternate-file*
@@ -5037,6 +5036,7 @@ beval_bufnr-variable	eval.txt	/*beval_bu
 beval_col-variable	eval.txt	/*beval_col-variable*
 beval_lnum-variable	eval.txt	/*beval_lnum-variable*
 beval_text-variable	eval.txt	/*beval_text-variable*
+beval_winid-variable	eval.txt	/*beval_winid-variable*
 beval_winnr-variable	eval.txt	/*beval_winnr-variable*
 bitwise-function	usr_41.txt	/*bitwise-function*
 blockwise-examples	visual.txt	/*blockwise-examples*
@@ -5069,6 +5069,7 @@ buflisted()	eval.txt	/*buflisted()*
 bufloaded()	eval.txt	/*bufloaded()*
 bufname()	eval.txt	/*bufname()*
 bufnr()	eval.txt	/*bufnr()*
+bufwinid()	eval.txt	/*bufwinid()*
 bufwinnr()	eval.txt	/*bufwinnr()*
 bug-fixes-5	version5.txt	/*bug-fixes-5*
 bug-fixes-6	version6.txt	/*bug-fixes-6*
@@ -5619,7 +5620,6 @@ dip	motion.txt	/*dip*
 dircolors.vim	syntax.txt	/*dircolors.vim*
 dis	motion.txt	/*dis*
 disable-menus	gui.txt	/*disable-menus*
-disable_char_avail_for_testing()	eval.txt	/*disable_char_avail_for_testing()*
 discard	editing.txt	/*discard*
 distribute-script	usr_41.txt	/*distribute-script*
 distribution	intro.txt	/*distribution*
@@ -7187,6 +7187,7 @@ mouse-using	term.txt	/*mouse-using*
 mouse_col-variable	eval.txt	/*mouse_col-variable*
 mouse_lnum-variable	eval.txt	/*mouse_lnum-variable*
 mouse_win-variable	eval.txt	/*mouse_win-variable*
+mouse_winid-variable	eval.txt	/*mouse_winid-variable*
 movement	intro.txt	/*movement*
 ms-dos	os_msdos.txt	/*ms-dos*
 msdos	os_msdos.txt	/*msdos*
@@ -8612,6 +8613,8 @@ terminal-options	term.txt	/*terminal-opt
 terminfo	term.txt	/*terminfo*
 termresponse-variable	eval.txt	/*termresponse-variable*
 test-functions	usr_41.txt	/*test-functions*
+test_alloc_fail()	eval.txt	/*test_alloc_fail()*
+test_disable_char_avail()	eval.txt	/*test_disable_char_avail()*
 test_garbagecollect_now()	eval.txt	/*test_garbagecollect_now()*
 test_null_channel()	eval.txt	/*test_null_channel()*
 test_null_dict()	eval.txt	/*test_null_dict()*
@@ -8761,6 +8764,7 @@ v:beval_bufnr	eval.txt	/*v:beval_bufnr*
 v:beval_col	eval.txt	/*v:beval_col*
 v:beval_lnum	eval.txt	/*v:beval_lnum*
 v:beval_text	eval.txt	/*v:beval_text*
+v:beval_winid	eval.txt	/*v:beval_winid*
 v:beval_winnr	eval.txt	/*v:beval_winnr*
 v:char	eval.txt	/*v:char*
 v:charconvert_from	eval.txt	/*v:charconvert_from*
@@ -8795,6 +8799,7 @@ v:lnum	eval.txt	/*v:lnum*
 v:mouse_col	eval.txt	/*v:mouse_col*
 v:mouse_lnum	eval.txt	/*v:mouse_lnum*
 v:mouse_win	eval.txt	/*v:mouse_win*
+v:mouse_winid	eval.txt	/*v:mouse_winid*
 v:none	eval.txt	/*v:none*
 v:null	eval.txt	/*v:null*
 v:oldfiles	eval.txt	/*v:oldfiles*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 May 24
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jun 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,49 +34,11 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Close_cb crash. (Luc Hermitte, 2016 May 10)
-Stack trace by Dominique, May 10.
-Reference count in partial dict wrong?
-
-Any other callbacks that could be invoked at the wrong moment?
-
-If removing buffer that's being read from, close channel?
-
-Problem with "Ignore" after adding 'guicolors'. (Charles Campbell, 2016 Apr
-27)
-
-In test_partial when start_job() has a non-existing command memory (a dict
-item) leaks.
-
-Memory leak in test49
-Memory leak in test_alot, with matchstrpos()
-
-Packages:
-- Add the "after" directory to 'runtimepath', only if it exists.
-  (Greg Hurrell, May 1)
-- Also keep a list of loaded plugins, skip when encountered again?
-
-Vim.org: when a user already has a homepage, do show the field so that it can
-be deleted.
-
-Comparing partials doesn't work well. (Nikolai Pavlov, 2016 May 17, #813)
-Examples in the form of a test (May 19)
-
 +channel:
-- Feedback from Ramel Eshed, May 7.  Occasional crashes.
-- Close_cb isn't invoked when output goes to a buffer. (Luc Hermitte)
-- close_cb and exit_cb not invoked when using jo_stop() on Windows.
-  (Linwei, 2016 May 18, #817)
-  Similar problem, related to keeping reference to job. (Skywind, May 18)
-- Recursive callback call?  (Luc Hermitte, 2016 May 17)
-- GUI:cursor blinking is irregular when invoking callbacks. (Ramel Eshed, 2016
-  Apr 16) somehow remember the previous state?
 - 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.
-- Inefficiency in ch_read() with very long lines.  Reallocating buffer with
-  small increments in channel_collapse().  Avoid calling strlen() too often.
-  Add an option to drop text of very long lines?  Default to 1 Mbyte.
+- Add an option to drop text of very long lines?  Default to 1 Mbyte.
 - 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,
@@ -87,8 +49,6 @@ Later
 - job_start(): run job in a newly opened terminal.
     With xterm could use -S{pty}.
 
-Make it so that the window ID can be used where currently a window nr is used
-
 Regexp problems:
 - Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
   (Manuel Ortega, 2016 Apr 24)
@@ -136,9 +96,11 @@ 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 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.
 
 jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
 What if there is an invalid character?
@@ -146,6 +108,13 @@ What if there is an invalid character?
 Once .exe with updated installer is available: Add remark to download page
 about /S and /D options (Ken Takata, 2016 Apr 13)
 
+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:
@@ -164,8 +133,8 @@ Invalid behavior with NULL list. (Nikola
 Patch to fix using CTRL-] on "{address}." in help. (Hirohito Higashi, 2016 May
 18, #814)
 
-Patch to reduce number of memory allocations for quickfix lines.
-(Yegappan Lakshmanan, 2016 May 22, #831)
+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)
 
@@ -175,8 +144,17 @@ Patch to fix this, Jacob Niehus, 2016 Ma
 For current Windows build .pdb file is missing. (Gabriele Fava, 2016 May 11)
 5)
 
+Patch to support expression argument to sort() instead of a function name.
+Yasuhiro Matsumoto, 2013 May 31.
+Or should we add a more general mechanism, like a lambda() function?
+Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17.
+Correction for test, Ken Takata, 2016 May 27.
+
 Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
 
+Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
+13, last version)  Update May 22, #830.
+
 When 'autochdir' is set, writing  new file does not change the current dir.
 (Dan Church, issue #777)
 Patch to fix this. (mister fish (Allen Haim), 2016 May 14, #803)
@@ -237,6 +215,8 @@ Update 2016 Mar 28.  Can include all par
 Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
 Update 2016 Apr 24.
 
+Patch to improve cscope. (Adrian Kocis, #843)
+
 Patch for groovy multi-line comment highlighting. (Justin M. Keyes, 2016 May
 20 #644)
 
@@ -284,11 +264,6 @@ Patch to make tests pass with EBCDIC. (O
 When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
 Apr 17)  #762
 
-Patch to support expression argument to sort() instead of a function name.
-Yasuhiro Matsumoto, 2013 May 31.
-Or should we add a more general mechanism, like a lambda() function?
-Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17.
-
 Should jsonencode()/jsondecode() restrict recursiveness?
 Or avoid recursiveness.
 
@@ -411,9 +386,6 @@ Patch to add :mapgroup, put mappings in 
 Value returned by virtcol() changes depending on how lines wrap.  This is
 inconsistent with the documentation.
 
-Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
-13, last version)  Update May 22, #830.
-
 Can we cache the syntax attributes, so that updates for 'relativenumber' and
 'cursorline'/'cursorcolumn' are a lot faster?
 
@@ -459,8 +431,6 @@ wildcards.  Add a ":nowild" command modi
 Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
 Update Aug 14.
 
-Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27)
-
 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)
 
--- 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 Apr 12
+*usr_41.txt*	For Vim version 7.4.  Last change: 2016 Jun 04
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -786,6 +786,7 @@ Buffers, windows and the argument list:
 	tabpagenr()		get the number of a tab page
 	tabpagewinnr()		like winnr() for a specified tab page
 	winnr()			get the window number for the current window
+	bufwinid()		get the window ID of a specific buffer
 	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
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.4.  Last change: 2016 Apr 03
+*version7.txt*  For Vim version 7.4.  Last change: 2016 Jun 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.0.  Last change: 2016 May 20
+*version8.txt*  For Vim version 8.0.  Last change: 2016 Jun 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -102,7 +102,8 @@ 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.
+simpler to write tests and keep them updated.  Also new are several functions
+that are added specifically for testing.
 
 These functions have been added:
 	|assert_equal()|
@@ -113,15 +114,22 @@ These functions have been added:
 	|assert_match()|
 	|assert_notmatch()|
 	|assert_true()|
-	|alloc_fail()|
-	|disable_char_avail_for_testing()|
+	|test_alloc_fail()|
+	|test_disable_char_avail()|
+	|test_garbagecollect_now()|
+	|test_null_channel()|
+	|test_null_dict()|
+	|test_null_job()|
+	|test_null_list()|
+	|test_null_partial()|
+	|test_null_string()|
 
 
 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.
+unique ID, so that they are easy to find.  See |win_getid()| and |win_id2win()|.
 
 
 Wrapping lines with indent ~
--- a/runtime/ftplugin/spec.vim
+++ b/runtime/ftplugin/spec.vim
@@ -36,10 +36,11 @@ except ImportError:
 else:
     specfile = vim.current.buffer.name
     if specfile:
+        rpm.delMacro("dist")
         spec = rpm.spec(specfile)
-        headers = spec.packages[0].header
-        version = headers['Version']
-        release = ".".join(headers['Release'].split(".")[:-1])
+        headers = spec.sourceHeader
+        version = headers["Version"]
+        release = headers["Release"]
         vim.command("let ver = " + version)
         vim.command("let rel = " + release)
 PYEND
@@ -113,7 +114,10 @@ if !exists("*s:SpecChangelog")
 			endif
 		endif
 		if (chgline != -1)
+			let tmptime = v:lc_time
+			language time C
 			let parsed_format = "* ".strftime(format)." - ".ver."-".rel
+			execute "language time" tmptime
 			let release_info = "+ ".name."-".ver."-".rel
 			let wrong_format = 0
 			let wrong_release = 0
@@ -179,12 +183,8 @@ if !exists("*s:ParseRpmVars")
 		endif
 		let varname = strpart(a:str, start+2, end-(start+2))
 		execute a:strline
-		let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
+		let definestr = "^[ \t]*%(?:global|define)[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
 		let linenum = search(definestr, "bW")
-		if (linenum == 0)
-			let definestr = substitute(definestr, "%define", "%global", "")
-			let linenum = search(definestr, "bW")
-		endif
 		if (linenum != -1)
 			let ret = ret .  substitute(getline(linenum), definestr, "\\1", "")
 		else
@@ -201,7 +201,7 @@ endif
 
 let b:match_ignorecase = 0
 let b:match_words =
-  \ '^Name:^%description:^%clean:^%setup:^%build:^%install:^%files:' .
+  \ '^Name:^%description:^%clean:^%(?:auto)?setup:^%build:^%install:^%files:' .
   \ '^%package:^%preun:^%postun:^%changelog'
 
 let &cpo = s:cpo_save
--- a/runtime/indent/vhdl.vim
+++ b/runtime/indent/vhdl.vim
@@ -1,8 +1,8 @@
 " VHDL indent ('93 syntax)
 " Language:    VHDL
 " Maintainer:  Gerald Lai <laigera+vim?gmail.com>
-" Version:     1.58
-" Last Change: 2011 Sep 27
+" Version:     1.60
+" Last Change: 2016 Feb 26
 " URL:         http://www.vim.org/scripts/script.php?script_id=1450
 
 " only load this indent file when no other was loaded
@@ -104,7 +104,7 @@ function GetVHDLindent()
     let pn = prevnonblank(pn - 1)
     let ps = getline(pn)
   endwhile
-  if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
+  if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\((.*)\)*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\s\+\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
     " align closing ")" with opening "("
     if curs =~ '^\s*)'
       return ind2 + stridx(prevs_noi, '(')
@@ -412,11 +412,22 @@ function GetVHDLindent()
 
   " ****************************************************************************************
   " indent:   maintain indent of previous opening statement
-  " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
+  " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
   " where:    start of current line
-  if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
+  if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
     return ind2
   endif
+  " ****************************************************************************************
+  " indent:     maintain indent of previous opening statement, corner case which
+  "             does not end in ;, but is part of a mapping
+  " keywords:   without "procedure", "generic", "map", "port" + ":" but not ":=", never + ;$ and
+  "             prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
+  " where:      start of current line
+  if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
+      if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
+         return ind2
+     endif
+ endif
 
   " return leftover filtered indent
   return ind
--- a/runtime/syntax/bib.vim
+++ b/runtime/syntax/bib.vim
@@ -2,7 +2,7 @@
 " Language:	BibTeX (bibliographic database format for (La)TeX)
 " Maintainer:	Bernd Feige <Bernd.Feige@gmx.net>
 " Filenames:	*.bib
-" Last Change:	2014 Mar 26
+" Last Change:	2016 May 31
 
 " Thanks to those who pointed out problems with this file or supplied fixes!
 
@@ -35,8 +35,40 @@ syn keyword bibEntryKw contained	crossre
 syn keyword bibEntryKw contained	institution journal key month note
 syn keyword bibEntryKw contained	number organization pages publisher
 syn keyword bibEntryKw contained	school series title type volume year
+
+" biblatex keywords, cf. http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf
+syn keyword bibType contained	mvbook bookinbook suppbook collection mvcollection suppcollection
+syn keyword bibType contained	online patent periodical suppperiodical mvproceedings reference
+syn keyword bibType contained	mvreference inreference report set thesis xdata customa customb
+syn keyword bibType contained	customc customd custome customf electronic www artwork audio bibnote
+syn keyword bibType contained	commentary image jurisdiction legislation legal letter movie music
+syn keyword bibType contained	performance review software standard video
+
+syn keyword bibEntryKw contained	abstract isbn issn keywords url
+syn keyword bibEntryKw contained	addendum afterwordannotation annotation annotator authortype
+syn keyword bibEntryKw contained	bookauthor bookpagination booksubtitle booktitleaddon
+syn keyword bibEntryKw contained	commentator date doi editora editorb editorc editortype
+syn keyword bibEntryKw contained	editoratype editorbtype editorctype eid entrysubtype
+syn keyword bibEntryKw contained	eprint eprintclass eprinttype eventdate eventtitle
+syn keyword bibEntryKw contained	eventtitleaddon file foreword holder indextitle
+syn keyword bibEntryKw contained	introduction isan ismn isrn issue issuesubtitle
+syn keyword bibEntryKw contained	issuetitle iswc journalsubtitle journaltitle label
+syn keyword bibEntryKw contained	language library location mainsubtitle maintitle
+syn keyword bibEntryKw contained	maintitleaddon nameaddon origdate origlanguage
+syn keyword bibEntryKw contained	origlocation origpublisher origtitle pagetotal
+syn keyword bibEntryKw contained	pagination part pubstate reprinttitle shortauthor
+syn keyword bibEntryKw contained	shorteditor shorthand shorthandintro shortjournal
+syn keyword bibEntryKw contained	shortseries shorttitle subtitle titleaddon translator
+syn keyword bibEntryKw contained	urldate venue version volumes entryset execute gender
+syn keyword bibEntryKw contained	langid langidopts ids indexsorttitle options presort
+syn keyword bibEntryKw contained	related relatedoptions relatedtype relatedstring
+syn keyword bibEntryKw contained	sortkey sortname sortshorthand sorttitle sortyear xdata
+syn keyword bibEntryKw contained	xref namea nameb namec nameatype namebtype namectype
+syn keyword bibEntryKw contained	lista listb listc listd liste listf usera userb userc
+syn keyword bibEntryKw contained	userd usere userf verba verbb verbc archiveprefix pdf
+syn keyword bibEntryKw contained	primaryclass
+
 " Non-standard:
-syn keyword bibNSEntryKw contained	abstract isbn issn keywords url
 " AMS mref http://www.ams.org/mref
 syn keyword bibNSEntryKw contained	mrclass mrnumber mrreviewer fjournal coden
 
--- a/runtime/syntax/spec.vim
+++ b/runtime/syntax/spec.vim
@@ -3,7 +3,7 @@
 " Language:    SPEC: Build/install scripts for Linux RPM packages
 " Maintainer:  Igor Gnatenko i.gnatenko.brain@gmail.com
 " Former Maintainer:  Donovan Rebbechi elflord@panix.com (until March 2014)
-" Last Change: Sun Mar 2 10:33 MSK 2014 Igor Gnatenko
+" Last Change: Sat Apr 9 15:30 2016 Filip SzymaƄski
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -83,8 +83,8 @@ syn keyword specMacroNameLocal contained
 
 "One line macros - valid in all ScriptAreas
 "tip: remember do include new items on specScriptArea's skip section
-syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
-syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier
+syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|autosetup\|autopatch\|configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
+syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier
 
 "%% Files Section %%
 "TODO %config valid parameters: missingok\|noreplace
@@ -105,7 +105,7 @@ syn case ignore
 "%% PreAmble Section %%
 "Copyright and Serial were deprecated by License and Epoch
 syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
-syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
+syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
 
 "%% Description Section %%
 syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment
@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou
 syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
 
 "%% Scripts Section %%
-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
+syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
 
 "%% Changelog Section %%
 syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense