changeset 13857:e751b5c9dff3

Update runtime files. commit https://github.com/vim/vim/commit/85eee130f44a2201d88ca2aeff0af3b11dd75fa9 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 6 17:57:30 2018 +0200 Update runtime files.
author Christian Brabandt <cb@256bit.org>
date Sun, 06 May 2018 18:00:08 +0200
parents 54b8c9c42b24
children 245c053021d3
files runtime/colors/README.txt runtime/doc/autocmd.txt runtime/doc/change.txt runtime/doc/develop.txt runtime/doc/gui_x11.txt runtime/doc/map.txt runtime/doc/mlang.txt runtime/doc/os_vms.txt runtime/doc/quickfix.txt runtime/doc/starting.txt runtime/doc/tags runtime/doc/tagsrch.txt runtime/doc/terminal.txt runtime/doc/todo.txt runtime/filetype.vim runtime/ftplugin/debchangelog.vim runtime/ftplugin/debcontrol.vim runtime/ftplugin/man.vim runtime/optwin.vim runtime/syntax/cs.vim runtime/syntax/debchangelog.vim runtime/syntax/debcontrol.vim runtime/syntax/debcopyright.vim runtime/syntax/debsources.vim runtime/syntax/vhdl.vim runtime/tools/ccfilter_README.txt
diffstat 26 files changed, 285 insertions(+), 203 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -73,7 +73,8 @@ Search for "highlight_init".
 If you think you have a color scheme that is good enough to be used by others,
 please check the following items:
 
-- Source the tools/check_colors.vim script to check for common mistakes.
+- Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for
+  common mistakes.
 - Does it work in a color terminal as well as in the GUI?
 - Is "g:colors_name" set to a meaningful value?  In case of doubt you can do
   it this way:
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Apr 30
+*autocmd.txt*   For Vim version 8.0.  Last change: 2018 May 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.0.  Last change: 2018 Apr 17
+*change.txt*    For Vim version 8.0.  Last change: 2018 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -110,7 +110,7 @@ is an error when 'cpoptions' includes th
 J			Join [count] lines, with a minimum of two lines.
 			Remove the indent and insert up to two spaces (see
 			below).  Fails when on the last line of the buffer.
-			If [count] is too big it is reduce to the number of
+			If [count] is too big it is reduced to the number of
 			lines available.
 
 							*v_J*
@@ -446,7 +446,7 @@ This depends on the 'nrformats' option:
 
 For decimals a leading negative sign is considered for incrementing/
 decrementing, for binary, octal and hex values, it won't be considered.  To
-ignore the sign Visually select the number before using CTRL-A or CTRL-X. 
+ignore the sign Visually select the number before using CTRL-A or CTRL-X.
 
 For numbers with leading zeros (including all octal and hexadecimal numbers),
 Vim preserves the number of characters in the number when possible.  CTRL-A on
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 8.0.  Last change: 2018 Apr 23
+*develop.txt*   For Vim version 8.0.  Last change: 2018 May 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -18,7 +18,8 @@ See the file README.txt in the "src" dir
 code.
 
 Vim is open source software.  Everybody is encouraged to contribute to help
-improving Vim.  For sending patches a context diff "diff -c" is preferred.
+improving Vim.  For sending patches a unified diff "diff -u" is preferred.
+You can create a pull request on github, but it's not required.
 Also see http://vim.wikia.com/wiki/How_to_make_and_submit_a_patch.
 
 ==============================================================================
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 8.0.  Last change: 2017 Jul 28
+*gui_x11.txt*   For Vim version 8.0.  Last change: 2018 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -53,6 +53,9 @@ When using "gvim -f" and then ":gui", Vi
 ":gui -b".
 
 "gvim --nofork" does the same as "gvim -f".
+
+When there are running jobs Vim will not fork, because the processes would no
+longer be child processes.
 								*E851* *E852*
 When starting the GUI fails Vim will try to continue running in the terminal.
 
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.0.  Last change: 2017 Sep 23
+*map.txt*       For Vim version 8.0.  Last change: 2018 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -542,9 +542,9 @@ scenario: >
 	:imap <M-C> foo
 	:set encoding=utf-8
 The mapping for <M-C> is defined with the latin1 encoding, resulting in a 0xc3
-byte.  If you type the character á (0xe1 <M-a>) in UTF-8 encoding this is the
+byte.  If you type the character á (0xe1 <M-a>) in UTF-8 encoding this is the
 two bytes 0xc3 0xa1.  You don't want the 0xc3 byte to be mapped then or
-otherwise it would be impossible to type the á character.
+otherwise it would be impossible to type the á character.
 
 					*<Leader>* *mapleader*
 To define a mapping which uses the "mapleader" variable, the special string
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 8.0.  Last change: 2017 Mar 04
+*mlang.txt*     For Vim version 8.0.  Last change: 2018 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -190,8 +190,8 @@ you can do it without restarting Vim: >
 	:source $VIMRUNTIME/menu.vim
 
 Each part of a menu path is translated separately.  The result is that when
-"Help" is translated to "Hilfe" and "Overview" to "Überblick" then
-"Help.Overview" will be translated to "Hilfe.Überblick".
+"Help" is translated to "Hilfe" and "Overview" to "Ãœberblick" then
+"Help.Overview" will be translated to "Hilfe.Ãœberblick".
 
 ==============================================================================
 3. Scripts						*multilang-scripts*
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 8.0.  Last change: 2014 Aug 29
+*os_vms.txt*    For Vim version 8.0.  Last change: 2018 May 06
 
 
 		  VIM REFERENCE MANUAL
@@ -702,13 +702,13 @@ In a cluster that contains nodes with di
 $show cluster
 View of Cluster from system ID 11655  node: TOR                                                                     18-AUG-2008 11:58:31
 +---------------------------------+
-¦        SYSTEMS        ¦ MEMBERS ¦
-+-----------------------+---------¦
-¦  NODE  ¦   SOFTWARE   ¦  STATUS ¦
-+--------+--------------+---------¦
-¦ TOR    ¦ VMS V7.3-2   ¦ MEMBER  ¦
-¦ TITAN2 ¦ VMS V8.3     ¦ MEMBER  ¦
-¦ ODIN   ¦ VMS V7.3-2   ¦ MEMBER  ¦
+|        SYSTEMS        | MEMBERS |
++-----------------------+---------|
+|  NODE  |   SOFTWARE   |  STATUS |
++--------+--------------+---------|
+| TOR    | VMS V7.3-2   | MEMBER  |
+| TITAN2 | VMS V8.3     | MEMBER  |
+| ODIN   | VMS V7.3-2   | MEMBER  |
 +---------------------------------+
 
 It is convenient to have a common VIM directory but execute different
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 8.0.  Last change: 2018 Apr 28
+*quickfix.txt*  For Vim version 8.0.  Last change: 2018 May 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1257,7 +1257,7 @@ or >
 to indicate the column of the error.  This is to be used in a multi-line error
 message.  See |errorformat-javac| for a  useful example.
 
-The "%s" conversion specifies the text to search for to locate the error line.
+The "%s" conversion specifies the text to search for, to locate the error line.
 The text is used as a literal string.  The anchors "^" and "$" are added to
 the text to locate the error line exactly matching the search text and the
 text is prefixed with the "\V" atom to make it "very nomagic".  The "%s"
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 8.0.  Last change: 2018 Mar 14
+*starting.txt*  For Vim version 8.0.  Last change: 2018 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -127,7 +127,8 @@ argument.
 On VMS all option arguments are assumed to be lowercase, unless preceded with
 a slash.  Thus "-R" means recovery and "-/R" readonly.
 
---help							*-h* *--help*
+--help							*-h* *--help* *-?*
+-?
 -h		Give usage (help) message and exit.  {not in Vi}
 		See |info-message| about capturing the text.
 
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1408,6 +1408,7 @@
 --ttyfail	starting.txt	/*--ttyfail*
 --version	starting.txt	/*--version*
 --windowid	starting.txt	/*--windowid*
+-?	starting.txt	/*-?*
 -A	starting.txt	/*-A*
 -C	starting.txt	/*-C*
 -D	starting.txt	/*-D*
@@ -5285,6 +5286,7 @@ c_<C-Left>	cmdline.txt	/*c_<C-Left>*
 c_<C-R>	cmdline.txt	/*c_<C-R>*
 c_<C-R>_<C-A>	cmdline.txt	/*c_<C-R>_<C-A>*
 c_<C-R>_<C-F>	cmdline.txt	/*c_<C-R>_<C-F>*
+c_<C-R>_<C-L>	cmdline.txt	/*c_<C-R>_<C-L>*
 c_<C-R>_<C-O>	cmdline.txt	/*c_<C-R>_<C-O>*
 c_<C-R>_<C-P>	cmdline.txt	/*c_<C-R>_<C-P>*
 c_<C-R>_<C-R>	cmdline.txt	/*c_<C-R>_<C-R>*
@@ -5333,6 +5335,7 @@ c_CTRL-R	cmdline.txt	/*c_CTRL-R*
 c_CTRL-R_=	cmdline.txt	/*c_CTRL-R_=*
 c_CTRL-R_CTRL-A	cmdline.txt	/*c_CTRL-R_CTRL-A*
 c_CTRL-R_CTRL-F	cmdline.txt	/*c_CTRL-R_CTRL-F*
+c_CTRL-R_CTRL-L	cmdline.txt	/*c_CTRL-R_CTRL-L*
 c_CTRL-R_CTRL-O	cmdline.txt	/*c_CTRL-R_CTRL-O*
 c_CTRL-R_CTRL-P	cmdline.txt	/*c_CTRL-R_CTRL-P*
 c_CTRL-R_CTRL-R	cmdline.txt	/*c_CTRL-R_CTRL-R*
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 8.0.  Last change: 2017 Oct 20
+*tagsrch.txt*   For Vim version 8.0.  Last change: 2018 May 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -36,12 +36,12 @@ An easy way back is with the CTRL-T comm
 below.
 
 						*:ta* *:tag* *E426* *E429*
-:[count]ta[g][!] {ident}
-			Jump to the definition of {ident}, using the
-			information in the tags file(s).  Put {ident} in the
+:[count]ta[g][!] {name}
+			Jump to the definition of {name}, using the
+			information in the tags file(s).  Put {name} in the
 			tag stack.  See |tag-!| for [!].
-			{ident} can be a regexp pattern, see |tag-regexp|.
-			When there are several matching tags for {ident}, jump
+			{name} can be a regexp pattern, see |tag-regexp|.
+			When there are several matching tags for {name}, jump
 			to the [count] one.  When [count] is omitted the
 			first one is jumped to. See |tag-matchlist| for
 			jumping to other matching tags.
@@ -49,16 +49,16 @@ below.
 g<LeftMouse>						*g<LeftMouse>*
 <C-LeftMouse>					*<C-LeftMouse>* *CTRL-]*
 CTRL-]			Jump to the definition of the keyword under the
-			cursor.  Same as ":tag {ident}", where {ident} is the
+			cursor.  Same as ":tag {name}", where {name} is the
 			keyword under or after cursor.
-			When there are several matching tags for {ident}, jump
+			When there are several matching tags for {name}, jump
 			to the [count] one.  When no [count] is given the
 			first one is jumped to. See |tag-matchlist| for
 			jumping to other matching tags.
 			{Vi: identifier after the cursor}
 
 							*v_CTRL-]*
-{Visual}CTRL-]		Same as ":tag {ident}", where {ident} is the text that
+{Visual}CTRL-]		Same as ":tag {name}", where {name} is the text that
 			is highlighted.  {not in Vi}
 
 							*telnet-CTRL-]*
@@ -82,7 +82,7 @@ 8. " S "  An ignore-case matching static
 
 Note that when the current file changes, the priority list is mostly not
 changed, to avoid confusion when using ":tnext".  It is changed when using
-":tag {ident}".
+":tag {name}".
 
 The ignore-case matches are not found for a ":tag" command when:
 - the 'ignorecase' option is off and 'tagcase' is "followic"
@@ -167,7 +167,7 @@ You can get from main to FuncA by using 
 you can CTRL-] to get to FuncC.  If you now want to go back to main you can
 use CTRL-T twice.  Then you can CTRL-] to FuncB.
 
-If you issue a ":ta {ident}" or CTRL-] command, this tag is inserted at the
+If you issue a ":ta {name}" or CTRL-] command, this tag is inserted at the
 current position in the stack.  If the stack was full (it can hold up to 20
 entries), the oldest entry is deleted and the older entries shift one
 position up (their index number is decremented by one).  If the last used
@@ -191,14 +191,14 @@ between them.  Note that these commands 
 the same entry.
 
 							*:ts* *:tselect*
-:ts[elect][!] [ident]	List the tags that match [ident], using the
+:ts[elect][!] [name]	List the tags that match [name], using the
 			information in the tags file(s).
-			When [ident] is not given, the last tag name from the
+			When [name] is not given, the last tag name from the
 			tag stack is used.
 			See |tag-!| for [!].
 			With a '>' in the first column is indicated which is
 			the current position in the list (if there is one).
-			[ident] can be a regexp pattern, see |tag-regexp|.
+			[name] can be a regexp pattern, see |tag-regexp|.
 			See |tag-priority| for the priorities used in the
 			listing.  {not in Vi}
 			Example output:
@@ -226,7 +226,7 @@ the same entry.
 			type 'q' and enter the number.
 
 							*:sts* *:stselect*
-:sts[elect][!] [ident]	Does ":tselect[!] [ident]" and splits the window for
+:sts[elect][!] [name]	Does ":tselect[!] [name]" and splits the window for
 			the selected tag.  {not in Vi}
 
 							*g]*
@@ -238,11 +238,11 @@ g]			Like CTRL-], but use ":tselect" ins
 			identifier.  {not in Vi}
 
 							*:tj* *:tjump*
-:tj[ump][!] [ident]	Like ":tselect", but jump to the tag directly when
+:tj[ump][!] [name]	Like ":tselect", but jump to the tag directly when
 			there is only one match.  {not in Vi}
 
 							*:stj* *:stjump*
-:stj[ump][!] [ident]	Does ":tjump[!] [ident]" and splits the window for the
+:stj[ump][!] [name]	Does ":tjump[!] [name]" and splits the window for the
 			selected tag.  {not in Vi}
 
 							*g_CTRL-]*
@@ -277,9 +277,9 @@ g CTRL-]		Like CTRL-], but use ":tjump" 
 			in Vi}
 
 							*:lt* *:ltag*
-:lt[ag][!] [ident]	Jump to tag [ident] and add the matching tags to a new
-			location list for the current window.  [ident] can be
-			a regexp pattern, see |tag-regexp|.  When [ident] is
+:lt[ag][!] [name]	Jump to tag [name] and add the matching tags to a new
+			location list for the current window.  [name] can be
+			a regexp pattern, see |tag-regexp|.  When [name] is
 			not given, the last tag name from the tag stack is
 			used.  The search pattern to locate the tag line is
 			prefixed with "\V" to escape all the special
@@ -311,12 +311,12 @@ the same as above, with a "p" prepended.
 {not available when compiled without the |+quickfix| feature}
 
 							*:pts* *:ptselect*
-:pts[elect][!] [ident]	Does ":tselect[!] [ident]" and shows the new tag in a
+:pts[elect][!] [name]	Does ":tselect[!] [name]" and shows the new tag in a
 			"Preview" window.  See |:ptag| for more info.
 			{not in Vi}
 
 							*:ptj* *:ptjump*
-:ptj[ump][!] [ident]	Does ":tjump[!] [ident]" and shows the new tag in a
+:ptj[ump][!] [name]	Does ":tjump[!] [name]" and shows the new tag in a
 			"Preview" window.  See |:ptag| for more info.
 			{not in Vi}
 
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.0.  Last change: 2018 Apr 20
+*terminal.txt*	For Vim version 8.0.  Last change: 2018 May 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -466,6 +466,8 @@ Currently supported commands:
 		Let Vim open a file, like the `:drop` command.  If {filename}
 		is already open in a window, switch to that window.  Otherwise
 		open a new window to edit {filename}.
+		Note that both the job and Vim may change the current
+		directory, thus it's best to use the full path.
 
 		[options] is only used when opening a new window.  If present,
 		it must be a Dict.  Similarly to |++opt|, These entries are recognized:
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2018 Apr 30
+*todo.txt*      For Vim version 8.0.  Last change: 2018 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -40,6 +40,10 @@ Terminal emulator window:
 
 Problem with sudo. #2758
 
+Looks like an error for inserting register makes ":file other" not work.
+(Tom M, 2018 Mar 28)  Reset did_emsg after inserting a register.
+Or at the top of the loop? (Apr 4)
+
 Make assert_functions return non-zero on failure.  Make sure they add one
 entry to v:errors then.
 Use WaitForAssert() in tests: give error when failed.
@@ -52,23 +56,19 @@ Also see #2352, want better control over
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
-Patch to shorten filenames in quickfix window. (Yegappan, 2018 Apr 28, #2851,
-closes #2846)
-
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
-Looks like an error for inserting register makes ":file other" not work.
-(Tom M, 2018 Mar 28)  Reset did_emsg after inserting a register.
-Or at the top of the loop? (Apr 4)
-
-Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
-8, #1757)  Now part of #2322.  Or #2327?  #1757 was re-opened, include that
-first.
-
 When opening foo/x.txt and bar/x.txt get swap file warning.  Should check the
 file name. (Juergen Weigert)
 
+Script generated by :mksession does not work well if there are windows with
+modified buffers
+  change "silent only" into "silent only!"
+  change "edit fname" of first buffer to "hide edit fname"
+  skip "badd fname" if "fname" is already in the buffer list
+  remove remark about unloading buffers from documentation
+
 Compiler warnings (geeknik, 2017 Oct 26):
 - signed integer overflow in do_sub() (#2249)
 - signed integer overflow in get_address() (#2248)
@@ -87,9 +87,6 @@ or asyncmake:
 Add a ModeChanged autocommand that has an argument indicating the old and new
 mode.  Also used for switching Terminal mode.
 
-Patch to shorten filenames in quickfix window. (Yegappan Lakshmanan, 2018
-Apr 27)
-
 Add an option with file patterns, to be used when unloading a buffer: If there
 is a match, remove entries for the buffer from marks, jumplist, etc.  To be
 used for git temp files.
@@ -99,10 +96,29 @@ Cursor in wrong position when line wraps
 Add an option similar to 'lazyredraw' to skip redrawing while executing a
 script or function.
 
+MS-Windows: write may fail if another program is reading the file.
+If 'readonly' is not set but the file appears to be readonly later, try again
+(wait a little while).
+CreateFile() returns ERROR_SHARING_VIOLATION (Linwei, 2018 May 5)
+
+Should add a test for every command line argument.  Check coverage for what is
+missing: --nofork, -A , -b, -h, etc.
+
+Improve the installer for MS-Windows.  There are a few alternatives:
+- Add silent install option. (Shane Lee, #751)
+- Installer from Cream (Steve Hall).
+- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
+    https://github.com/gpwen/vim-installer-mui2
+-  make it possible to do a silent install, see
+    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
+    Version from Guopeng Wen does this.
+- MSI installer: https://github.com/petrkle/vim-msi/
+- The one on Issue 279.
+Problem: they all work slightly different (e.g. don't install vimrun.exe).
+How to test that it works well for all Vim users?
+
 Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
 
-Patch to add more flags to :ls. (Marcin Szamotulski, #2751)
-
 Does setting 'cursorline' cause syntax highlighting to slow down?  Perhaps is
 mess up the cache?  (Mike Lee Williams, 2018 Jan 27, #2539)
 Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
@@ -110,6 +126,8 @@ Also: 'foldtext' is evaluated too often.
 When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
 
+Patch to support "xxd -ps". (Erik Auerswald, 2018 May 1)
+
 Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
 Jan 15, #2555)
 
@@ -117,8 +135,9 @@ Jan 15, #2555)
 
 Check argument of systemlist(). (Pavlov)
 
-Patch to support 256 colors in Windows console. (Nobuhiro Takasaki, 2018 Apr
-25, #2821)
+Can we make ":unlet $VAR" use unsetenv() to delete the env var?
+What for systems that don't have unsetenv()?  (Issue #1116)
+Patch in #2855, (Yasuhiro Matsumoto)
 
 Patch to add reg_executing() and reg_recording(). (Hirohito Higashi, #2745)
 
@@ -1216,9 +1235,6 @@ Idea: For a window in the middle (has wi
 right-mouse-drag on the status line to move a window up/down without changing
 its height?  It's like dragging the status bar above it at the same time.
 
-Can we make ":unlet $VAR" use unsetenv() to delete the env var?
-What for systems that don't have unsetenv()?  (Issue #1116)
-
 Patch to add a :domodeline command. (Christian Brabandt, 2014 Oct 21)
 
 This does not give an error: (Andre Sihera, 2014 Mar 21)
@@ -1383,19 +1399,6 @@ optional. (2013 Jul 12)
 
 Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
 
-Improve the installer for MS-Windows.  There are a few alternatives:
-- Add silent install option. (Shane Lee, #751)
-- Installer from Cream (Steve Hall).
-- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
-    https://github.com/gpwen/vim-installer-mui2
--  make it possible to do a silent install, see
-    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
-    Version from Guopeng Wen does this.
-- MSI installer: https://github.com/petrkle/vim-msi/
-- The one on Issue 279.
-Problem: they all work slightly different (e.g. don't install vimrun.exe).
-How to test that it works well for all Vim users?
-
 Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
 
 -   Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'.  Combine
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2018 Jan 28
+" Last Change:	2018 May 04
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -429,6 +429,13 @@ au BufNewFile,BufRead control
 	\|   setf debcontrol
 	\| endif
 
+" Debian Copyright
+au BufNewFile,BufRead */debian/copyright	setf debcopyright
+au BufNewFile,BufRead copyright
+	\  if getline(1) =~ '^Format:'
+	\|   setf debcopyright
+	\| endif
+
 " Debian Sources.list
 au BufNewFile,BufRead */etc/apt/sources.list		setf debsources
 au BufNewFile,BufRead */etc/apt/sources.list.d/*.list	setf debsources
--- a/runtime/ftplugin/debchangelog.vim
+++ b/runtime/ftplugin/debchangelog.vim
@@ -3,20 +3,20 @@
 " Maintainer:   Debian Vim Maintainers
 " Former Maintainers:   Michael Piefel <piefel@informatik.hu-berlin.de>
 "                       Stefano Zacchiroli <zack@debian.org>
-" Last Change:  2018-01-06
+" Last Change:  2018-01-28
 " License:      Vim License
 " URL:          https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
 
 " Bug completion requires apt-listbugs installed for Debian packages or
 " python-launchpadlib installed for Ubuntu packages
 
-if exists("b:did_ftplugin")
+if exists('b:did_ftplugin')
   finish
 endif
 let b:did_ftplugin=1
 
 " {{{1 Local settings (do on every load)
-if exists("g:debchangelog_fold_enable")
+if exists('g:debchangelog_fold_enable')
   setlocal foldmethod=expr
   setlocal foldexpr=DebGetChangelogFold(v:lnum)
   setlocal foldtext=DebChangelogFoldText()
@@ -28,10 +28,10 @@ setlocal tw=78
 setlocal comments=f:* 
 
 " Clean unloading
-let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
+let b:undo_ftplugin = 'setlocal tw< comments< foldmethod< foldexpr< foldtext<'
 " }}}1
 
-if exists("g:did_changelog_ftplugin")
+if exists('g:did_changelog_ftplugin')
   finish
 endif
 
@@ -44,41 +44,41 @@ let g:did_changelog_ftplugin = 1
 " Returns full name, either from $DEBFULLNAME or debianfullname.
 " TODO Is there a way to determine name from anywhere else?
 function <SID>FullName()
-    if exists("$DEBFULLNAME")
+    if exists('$DEBFULLNAME')
 	return $DEBFULLNAME
-    elseif exists("g:debianfullname")
+    elseif exists('g:debianfullname')
 	return g:debianfullname
     else
-	return "Your Name"
+	return 'Your Name'
     endif
 endfunction
 
 " Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
 function <SID>Email()
-    if exists("$DEBEMAIL")
+    if exists('$DEBEMAIL')
 	return $DEBEMAIL
-    elseif exists("$EMAIL")
+    elseif exists('$EMAIL')
 	return $EMAIL
-    elseif exists("g:debianemail")
+    elseif exists('g:debianemail')
 	return g:debianemail
     else
-	return "your@email.address"
+	return 'your@email.address'
     endif
 endfunction
 
 " Returns date in RFC822 format.
 function <SID>Date()
     let savelang = v:lc_time
-    execute "language time C"
-    let dateandtime = strftime("%a, %d %b %Y %X %z")
-    execute "language time " . savelang
+    execute 'language time C'
+    let dateandtime = strftime('%a, %d %b %Y %X %z')
+    execute 'language time ' . savelang
     return dateandtime
 endfunction
 
 function <SID>WarnIfNotUnfinalised()
-    if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+    if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1
 	echohl WarningMsg
-	echo "The entry has not been unfinalised before editing."
+	echo 'The entry has not been unfinalised before editing.'
 	echohl None
 	return 1
     endif
@@ -86,10 +86,10 @@ function <SID>WarnIfNotUnfinalised()
 endfunction
 
 function <SID>Finalised()
-    let savelinenum = line(".")
-    normal 1G
-    call search("^ -- ")
-    if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+    let savelinenum = line('.')
+    1
+    call search('^ -- ')
+    if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1
 	let returnvalue = 1
     else
 	let returnvalue = 0
@@ -109,54 +109,54 @@ function NewVersion()
     amenu disable Changelog.Unfinalise
     amenu enable Changelog.Finalise
     call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
-    call append(1, "")
-    call append(2, "")
-    call append(3, " -- ")
-    call append(4, "")
-    call Urgency("low")
-    normal 1G0
-    call search(")")
-    normal h
-    normal 
+    call append(1, '')
+    call append(2, '')
+    call append(3, ' -- ')
+    call append(4, '')
+    call Urgency('low')
+    normal! 1G0
+    call search(')')
+    normal! h
+    normal! 
     call setline(1, substitute(getline(1), '-\$\$', '-', ''))
-    if exists("g:debchangelog_fold_enable")
+    if exists('g:debchangelog_fold_enable')
         foldopen
     endif
     call AddEntry()
 endfunction
 
 function AddEntry()
-    normal 1G
-    call search("^ -- ")
-    normal kk
-    call append(".", "  * ")
-    normal jjj
+    1
+    call search('^ -- ')
+    .-2
+    call append('.', '  * ')
+    .+3
     let warn=<SID>WarnIfNotUnfinalised()
-    normal kk
+    .-2
     if warn
 	echohl MoreMsg
-	call input("Hit ENTER")
+	call input('Hit ENTER')
 	echohl None
     endif
     startinsert!
 endfunction
 
 function CloseBug()
-    normal 1G
-    call search("^ -- ")
+    1
+    call search('^ -- ')
     let warn=<SID>WarnIfNotUnfinalised()
-    normal kk
-    call append(".", "  *  (closes: #" . input("Bug number to close: ") . ")")
-    normal j^ll
+    .-2
+    call append('.', '  *  (closes: #' . input('Bug number to close: ') . ')')
+    normal! j^ll
     startinsert
 endfunction
 
 function Distribution(dist)
-    call setline(1, substitute(getline(1), ')  *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
+    call setline(1, substitute(getline(1), ')  *\%(UNRELEASED\|\l\+\);', ') ' . a:dist . ';', ''))
 endfunction
 
 function Urgency(urg)
-    call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
+    call setline(1, substitute(getline(1), 'urgency=.*$', 'urgency=' . a:urg, ''))
 endfunction
 
 function <SID>UnfinaliseMenu()
@@ -172,9 +172,9 @@ endfunction
 
 function Unfinalise()
     call <SID>UnfinaliseMenu()
-    normal 1G
-    call search("^ -- ")
-    call setline(".", " -- ")
+    1
+    call search('^ -- ')
+    call setline('.', ' -- ')
 endfunction
 
 function <SID>FinaliseMenu()
@@ -190,9 +190,9 @@ endfunction
 
 function Finalise()
     call <SID>FinaliseMenu()
-    normal 1G
-    call search("^ -- ")
-    call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . ">  " . <SID>Date())
+    1
+    call search('^ -- ')
+    call setline('.', ' -- ' . <SID>FullName() . ' <' . <SID>Email() . '>  ' . <SID>Date())
 endfunction
 
 
@@ -239,7 +239,7 @@ function! s:getAuthor(zonestart, zoneend
   let linepos = a:zoneend
   while linepos >= a:zonestart
     let line = getline(linepos)
-    if line =~ '^ --'
+    if line =~# '^ --'
       return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
     endif
     let linepos -= 1
@@ -254,7 +254,7 @@ function! DebGetPkgSrcName(lineno)
   let pkgname = ''
   while lineidx > 0
     let curline = getline(lineidx)
-    if curline =~ '^\S'
+    if curline =~# '^\S'
       let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
       break
     endif
@@ -264,7 +264,7 @@ function! DebGetPkgSrcName(lineno)
 endfunction
 
 function! DebChangelogFoldText()
-  if v:folddashes == '-'  " changelog entry fold
+  if v:folddashes ==# '-'  " changelog entry fold
     return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
   endif
   return foldtext()
@@ -272,19 +272,19 @@ endfunction
 
 function! DebGetChangelogFold(lnum)
   let line = getline(a:lnum)
-  if line =~ '^\w\+'
+  if line =~# '^\w\+'
     return '>1' " beginning of a changelog entry
   endif
-  if line =~ '^\s\+\[.*\]'
+  if line =~# '^\s\+\[.*\]'
     return '>2' " beginning of an author-specific chunk
   endif
-  if line =~ '^ --'
+  if line =~# '^ --'
     return '1'
   endif
   return '='
 endfunction
 
-if exists("g:debchangelog_fold_enable")
+if exists('g:debchangelog_fold_enable')
   silent! foldopen!   " unfold the entry the cursor is on (usually the first one)
 endif
 
@@ -305,13 +305,13 @@ fun! DebCompleteBugs(findstart, base)
     let try_colidx = col('.') - 1
     let colidx = -1 " default to no-completion-possible
 
-    while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:'
+    while try_colidx > 0 && line[try_colidx - 1] =~# '\s\|\d\|#\|,\|:'
       let try_colidx = try_colidx - 1
-      if line[try_colidx] == '#' && colidx == -1
+      if line[try_colidx] ==# '#' && colidx == -1
         " found hash, where we complete from:
         let colidx = try_colidx
-      elseif line[try_colidx] == ':'
-        if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~ '\clp:'
+      elseif line[try_colidx] ==# ':'
+        if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~? '\clp:'
           let g:debchangelog_complete_mode = 'lp'
         endif
         break
@@ -320,7 +320,7 @@ fun! DebCompleteBugs(findstart, base)
     return colidx
   else " return matches:
     let bug_lines = []
-    if g:debchangelog_complete_mode == 'lp'
+    if g:debchangelog_complete_mode ==? 'lp'
       if ! has('python')
         echoerr 'vim must be built with Python support to use LP bug completion'
         return
@@ -363,7 +363,7 @@ EOF
     for line in bug_lines
       let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$')
       " filter only those which match a:base:
-      if parts[1] !~ "^" . a:base
+      if parts[1] !~ '^' . a:base
         continue
       endif
       let completion = {}
--- a/runtime/ftplugin/debcontrol.vim
+++ b/runtime/ftplugin/debcontrol.vim
@@ -2,17 +2,17 @@
 " Language:     Debian control files
 " Maintainer:   Debian Vim Maintainers
 " Former Maintainer:    Pierre Habouzit <madcoder@debian.org>
-" Last Change:  2018-01-06
+" Last Change:  2018-01-28
 " URL:          https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
 
 " Do these settings once per buffer
-if exists("b:did_ftplugin")
+if exists('b:did_ftplugin')
   finish
 endif
 let b:did_ftplugin=1
 
 " {{{1 Local settings (do on every load)
-if exists("g:debcontrol_fold_enable")
+if exists('g:debcontrol_fold_enable')
   setlocal foldmethod=expr
   setlocal foldexpr=DebControlFold(v:lnum)
   setlocal foldtext=DebControlFoldText()
@@ -20,7 +20,7 @@ endif
 setlocal textwidth=0
 
 " Clean unloading
-let b:undo_ftplugin = "setlocal tw< foldmethod< foldexpr< foldtext<"
+let b:undo_ftplugin = 'setlocal tw< foldmethod< foldexpr< foldtext<'
 
 " }}}1
 
@@ -32,7 +32,7 @@ function! s:getField(f, lnum)
   while line !~ '^'.a:f.':'
     let fwdsteps += 1
     let line = getline(a:lnum + fwdsteps)
-    if line == ''
+    if line ==# ''
       return 'unknown'
     endif
   endwhile
@@ -40,9 +40,9 @@ function! s:getField(f, lnum)
 endfunction
 
 function! DebControlFoldText()
-  if v:folddashes == '-'  " debcontrol entry fold
+  if v:folddashes ==# '-'  " debcontrol entry fold
     let type = substitute(getline(v:foldstart), ':.*', '', '')
-    if type == 'Source'
+    if type ==# 'Source'
       let ftext = substitute(foldtext(), ' *Source: *', ' ', '')
       return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' '
     endif
@@ -56,11 +56,11 @@ endfunction
 function! DebControlFold(l)
 
   " This is for not merging blank lines around folds to them
-  if getline(a:l) =~ '^Source:'
+  if getline(a:l) =~# '^Source:'
     return '>1'
   endif
 
-  if getline(a:l) =~ '^Package:'
+  if getline(a:l) =~# '^Package:'
     return '>1'
   endif
 
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
 " Maintainer:	SungHyun Nam <goweol@gmail.com>
-" Last Change: 	2018 Jan 15
+" Last Change: 	2018 May 2
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
@@ -164,7 +164,7 @@ func <SID>GetPage(...)
   setl buftype=nofile noswapfile
 
   setl ma nonu nornu nofen
-  silent exec "norm 1GdG"
+  silent exec "norm! 1GdG"
   let unsetwidth = 0
   if empty($MANWIDTH)
     let $MANWIDTH = winwidth(0)
@@ -188,10 +188,10 @@ func <SID>GetPage(...)
   endif
   " Remove blank lines from top and bottom.
   while getline(1) =~ '^\s*$'
-    silent keepj norm ggdd
+    silent keepj norm! ggdd
   endwhile
   while getline('$') =~ '^\s*$'
-    silent keepj norm Gdd
+    silent keepj norm! Gdd
   endwhile
   1
   setl ft=man nomod
@@ -208,7 +208,7 @@ func <SID>PopPage()
     exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
     exec s:man_tag_buf."b"
     exec s:man_tag_lin
-    exec "norm ".s:man_tag_col."|"
+    exec "norm! ".s:man_tag_col."|"
     exec "unlet s:man_tag_buf_".s:man_tag_depth
     exec "unlet s:man_tag_lin_".s:man_tag_depth
     exec "unlet s:man_tag_col_".s:man_tag_depth
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2018 Feb 27
+" Last Change:	2018 Apr 18
 
 " If there already is an option window, jump to that one.
 let buf = bufnr('option-window')
--- a/runtime/syntax/cs.vim
+++ b/runtime/syntax/cs.vim
@@ -1,10 +1,12 @@
 " Vim syntax file
-" Language:	C#
-" Maintainer:	Anduin Withers <awithers@anduin.com>
+" Language:		C#
+" Maintainer:		Nick Jensen <nickspoon@gmail.com>
+" Former Maintainer:	Anduin Withers <awithers@anduin.com>
 " Former Maintainer:	Johannes Zellner <johannes@zellner.org>
-" Last Change:	Fri Aug 14 13:56:37 PDT 2009
-" Filenames:	*.cs
-" $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $
+" Last Change:		2018-05-02
+" Filenames:		*.cs
+" License:		Vim (see :h license)
+" Repository:		https://github.com/nickspoons/vim-cs
 "
 " REFERENCES:
 " [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)
@@ -17,11 +19,8 @@ let s:cs_cpo_save = &cpo
 set cpo&vim
 
 
-" type
-syn keyword csType			bool byte char decimal double float int long object sbyte short string uint ulong ushort void
-" storage
-syn keyword csStorage			class delegate enum interface namespace struct
-" repeat / condition / label
+syn keyword csType			bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
+syn keyword csStorage			delegate enum interface namespace struct
 syn keyword csRepeat			break continue do for foreach goto return while
 syn keyword csConditional		else if switch
 syn keyword csLabel			case default
@@ -29,21 +28,16 @@ syn keyword csLabel			case default
 syn match csOperatorError		display +::+
 " user labels (see [1] 8.6 Statements)
 syn match   csLabel			display +^\s*\I\i*\s*:\([^:]\)\@=+
-" modifier
 syn keyword csModifier			abstract const extern internal override private protected public readonly sealed static virtual volatile
-" constant
 syn keyword csConstant			false null true
-" exception
-syn keyword csException			try catch finally throw
+syn keyword csException			try catch finally throw when
+syn keyword csLinq			ascending by descending equals from group in into join let on orderby select where
+syn keyword csAsync			async await
 
-" TODO:
-syn keyword csUnspecifiedStatement	as base checked event fixed in is lock new operator out params ref sizeof stackalloc this typeof unchecked unsafe using
-" TODO:
+syn keyword csUnspecifiedStatement	as base checked event fixed get in is lock nameof operator out params ref set sizeof stackalloc this typeof unchecked unsafe using
 syn keyword csUnsupportedStatement	add remove value
-" TODO:
 syn keyword csUnspecifiedKeyword	explicit implicit
 
-
 " Contextual Keywords
 syn match csContextualStatement	/\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
 syn match csContextualStatement	/\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
@@ -56,7 +50,7 @@ syn match csContextualStatement	/\<where
 "
 " TODO: include strings ?
 "
-syn keyword csTodo		contained TODO FIXME XXX NOTE
+syn keyword csTodo		contained TODO FIXME XXX NOTE HACK
 syn region  csComment		start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell
 syn match   csComment		"//.*$" contains=@csCommentHook,csTodo,@Spell
 
@@ -89,8 +83,15 @@ syn region	csPreCondit
     \ skip="\\$" end="$" contains=csComment keepend
 syn region	csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$"
     \ end="^\s*#\s*endregion" transparent fold contains=TOP
+syn region	csSummary start="^\s*/// <summary" end="^\(\s*///\)\@!" transparent fold keepend
 
 
+syn region	csClassType start="\(@\)\@<!class\>"hs=s+6 end="[:\n{]"he=e-1 contains=csClass
+syn region	csNewType start="\(@\)\@<!new\>"hs=s+4 end="[\(\<{\[]"he=e-1 contains=csNew contains=csNewType
+syn region	csIsType start="\v (is|as) "hs=s+4 end="\v[A-Za-z0-9]+" oneline contains=csIsAs
+syn keyword	csNew new contained
+syn keyword	csClass class contained
+syn keyword	csIsAs is as
 
 " Strings and constants
 syn match   csSpecialError	contained "\\."
@@ -113,7 +114,11 @@ syn match   csNumber		"\<\d\+\([eE][-+]\
 
 " The default highlighting.
 hi def link csType			Type
+hi def link csNewType			Type
+hi def link csClassType			Type
+hi def link csIsType			Type
 hi def link csStorage			StorageClass
+hi def link csClass			StorageClass
 hi def link csRepeat			Repeat
 hi def link csConditional		Conditional
 hi def link csLabel			Label
@@ -123,8 +128,13 @@ hi def link csException			Exception
 hi def link csUnspecifiedStatement	Statement
 hi def link csUnsupportedStatement	Statement
 hi def link csUnspecifiedKeyword	Keyword
+hi def link csNew			Statement
+hi def link csLinq			Statement
+hi def link csIsAs 			Keyword
+hi def link csAsync			Keyword
 hi def link csContextualStatement	Statement
 hi def link csOperatorError		Error
+hi def link csInterfaceDeclaration	Include
 
 hi def link csTodo			Todo
 hi def link csComment			Comment
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -3,11 +3,11 @@
 " Maintainer:  Debian Vim Maintainers
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2018 Jan 06
+" Last Change: 2018 May 03
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
 
 " Standard syntax initialization
-if exists("b:current_syntax")
+if exists('b:current_syntax')
   finish
 endif
 
@@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
 syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
 exe 'syn match debchangelogFirstKV	contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
 exe 'syn match debchangelogOtherKV	contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
-syn match debchangelogTarget	contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+syn match debchangelogTarget	contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
 syn match debchangelogVersion	contained "(.\{-})"
 syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
 syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
@@ -46,6 +46,6 @@ hi def link debchangelogVersion Identifi
 hi def link debchangelogTarget  Identifier
 hi def link debchangelogEmail   Special
 
-let b:current_syntax = "debchangelog"
+let b:current_syntax = 'debchangelog'
 
 " vim: ts=8 sw=2
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,11 +3,11 @@
 " Maintainer:  Debian Vim Maintainers
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2018 Jan 06
+" Last Change: 2018 Jan 28
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
 
 " Standard syntax initialization
-if exists("b:current_syntax")
+if exists('b:current_syntax')
   finish
 endif
 
@@ -135,7 +135,7 @@ hi def link debcontrolR3            Iden
 hi def link debcontrolComment       Comment
 hi def link debcontrolElse          Special
 
-let b:current_syntax = "debcontrol"
+let b:current_syntax = 'debcontrol'
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/debcopyright.vim
@@ -0,0 +1,33 @@
+" Vim syntax file
+" Language:    Debian copyright file
+" Maintainer:  Debian Vim Maintainers
+" Last Change: 2018 Feb 05
+" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcopyright.vim
+
+" Standard syntax initialization
+if exists('b:current_syntax')
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn case match
+
+syn match debcopyrightUrl       "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcopyrightKey       "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\): *"
+syn match debcopyrightEmail     "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
+syn match debcopyrightEmail     "<.\{-}>"
+syn match debcopyrightComment   "^#.*$" contains=@Spell
+
+hi def link debcopyrightUrl     Identifier
+hi def link debcopyrightKey     Keyword
+hi def link debcopyrightEmail   Identifier
+hi def link debcopyrightComment Comment
+
+let b:current_syntax = 'debcopyright'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: ts=8 sw=2
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,11 +2,11 @@
 " Language:     Debian sources.list
 " Maintainer:   Debian Vim Maintainers
 " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2018 Jan 06
+" Last Change: 2018 May 03
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
 
 " Standard syntax initialization
-if exists("b:current_syntax")
+if exists('b:current_syntax')
   finish
 endif
 
@@ -25,7 +25,7 @@ let s:supported = [
       \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
       \ 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
       \
-      \ 'trusty', 'xenial', 'zesty', 'artful', 'bionic', 'devel'
+      \ 'trusty', 'xenial', 'artful', 'bionic', 'cosmic', 'devel'
       \ ]
 let s:unsupported = [
       \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -34,12 +34,12 @@ let s:unsupported = [
       \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
       \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
       \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
-      \ 'utopic', 'vivid', 'wily', 'yakkety'
+      \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty'
       \ ]
 let &cpo=s:cpo
 
 " Match uri's
-syn match debsourcesUri            +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' 	<>"]\++
+syn match debsourcesUri            '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' 	<>"]\+'
 exe 'syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\<\('. join(s:supported, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
 exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:unsupported, '\|') .'\)\>\([-[:alnum:]_./]*\)+'
 
@@ -51,4 +51,4 @@ hi def link debsourcesUnsupportedDistrKe
 hi def link debsourcesComment                 Comment
 hi def link debsourcesUri                     Constant
 
-let b:current_syntax = "debsources"
+let b:current_syntax = 'debsources'
--- a/runtime/syntax/vhdl.vim
+++ b/runtime/syntax/vhdl.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Daniel Kho <daniel.kho@tauhop.com>
 " Previous Maintainer:	Czo <Olivier.Sirol@lip6.fr>
 " Credits:		Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
-" Last Changed:		2016 Mar 05 by Daniel Kho
+" Last Changed:		2018 May 06 by Daniel Kho
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -43,6 +43,8 @@ syn keyword 	vhdlStatement	sequence stro
 syn keyword 	vhdlStatement	then to transport type
 syn keyword 	vhdlStatement	unaffected units until use
 syn keyword 	vhdlStatement	variable
+" VHDL-2017 interface
+syn keyword 	vhdlStatement	view
 syn keyword 	vhdlStatement	vmode vprop vunit
 syn keyword 	vhdlStatement	wait when while with
 syn keyword 	vhdlStatement	note warning error failure
@@ -69,9 +71,7 @@ syn match	vhdlType	"\<time_vector\>\'\="
 
 syn match	vhdlType	"\<character\>\'\="
 syn match	vhdlType	"\<string\>\'\="
-"syn keyword	vhdlType	severity_level
-syn keyword	vhdlType	line
-syn keyword	vhdlType	text
+syn keyword	vhdlType	line text side width
 
 " Predefined standard IEEE VHDL types
 syn match	vhdlType	"\<std_ulogic\>\'\="
@@ -124,6 +124,8 @@ syn match   	vhdlAttribute	"\'succ"
 syn match   	vhdlAttribute	"\'val"
 syn match   	vhdlAttribute	"\'image"
 syn match   	vhdlAttribute	"\'value"
+" VHDL-2017 interface attribute
+syn match   	vhdlAttribute	"\'converse"
 
 syn keyword	vhdlBoolean	true false
 
@@ -165,6 +167,9 @@ syn match	vhdlOperator	"=\|\/=\|>\|<\|>=
 syn match	vhdlOperator	"<=\|:="
 syn match	vhdlOperator	"=>"
 
+" VHDL-2017 concurrent signal association (spaceship) operator
+syn match	vhdlOperator	"<=>"
+
 " VHDL-2008 conversion, matching equality/non-equality operators
 syn match	vhdlOperator	"??\|?=\|?\/=\|?<\|?<=\|?>\|?>="
 
@@ -183,8 +188,11 @@ syn match	vhdlError	"\(<\)[&+\-\/\\]\+"
 syn match	vhdlError	"[>=&+\-\/\\]\+\(<\)"
 " Covers most operators
 " support negative sign after operators. E.g. q<=-b;
-syn match	vhdlError	"\(&\|+\|\-\|\*\*\|\/=\|??\|?=\|?\/=\|?<=\|?>=\|>=\|<=\|:=\|=>\)[<>=&+\*\\?:]\+"
-syn match	vhdlError	"[<>=&+\-\*\\:]\+\(&\|+\|\*\*\|\/=\|??\|?=\|?\/=\|?<\|?<=\|?>\|?>=\|>=\|<=\|:=\|=>\)"
+" Supports VHDL-2017 spaceship (concurrent simple signal association).
+syn match	vhdlError	"\(<=\)[<=&+\*\\?:]\+"
+syn match	vhdlError	"[>=&+\-\*\\:]\+\(=>\)"
+syn match	vhdlError	"\(&\|+\|\-\|\*\*\|\/=\|??\|?=\|?\/=\|?<=\|?>=\|>=\|:=\|=>\)[<>=&+\*\\?:]\+"
+syn match	vhdlError	"[<>=&+\-\*\\:]\+\(&\|+\|\*\*\|\/=\|??\|?=\|?\/=\|?<\|?<=\|?>\|?>=\|>=\|<=\|:=\)"
 syn match	vhdlError	"\(?<\|?>\)[<>&+\*\/\\?:]\+"
 syn match	vhdlError	"\(<<\|>>\)[<>&+\*\/\\?:]\+"
 
--- a/runtime/tools/ccfilter_README.txt
+++ b/runtime/tools/ccfilter_README.txt
@@ -1,3 +1,13 @@
+READ THIS FIRST
+===============
+
+ccfilter is a C program to filter the output of a few compilers to a common
+QuickFix format.  It is provided with Vim to make quickfix useful for more
+compilers.
+
+ccfilter WILL FAIL with long lines (more than 2047 bytes).
+
+
 COMPILING AND INSTALLING:
 =========================