changeset 5239:11cd8d58372e

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Wed, 24 Jul 2013 19:53:36 +0200
parents a369ac56a506
children da95a7f1d5a8
files runtime/doc/map.txt runtime/doc/repeat.txt runtime/doc/starting.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version7.txt runtime/filetype.vim runtime/ftplugin/perl.vim runtime/ftplugin/perl6.vim runtime/ftplugin/tt2html.vim runtime/ftplugin/xs.vim runtime/indent/perl.vim runtime/indent/perl6.vim runtime/syntax/css.vim runtime/syntax/diff.vim runtime/syntax/javascript.vim runtime/syntax/perl.vim runtime/syntax/perl6.vim runtime/syntax/pli.vim runtime/syntax/pod.vim runtime/syntax/tt2.vim runtime/syntax/tt2html.vim runtime/syntax/tt2js.vim
diffstat 23 files changed, 609 insertions(+), 284 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.4a.  Last change: 2013 Jun 29
+*map.txt*       For Vim version 7.4a.  Last change: 2013 Jul 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -597,7 +597,7 @@ this (see |<>|).  Example: >
 To avoid mapping of the characters you type in insert or Command-line mode,
 type a CTRL-V first.  The mapping in Insert mode is disabled if the 'paste'
 option is on.
-
+							*map-error*
 Note that when an error is encountered (that causes an error message or beep)
 the rest of the mapping is not executed.  This is Vi-compatible.
 
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.4a.  Last change: 2012 Mar 23
+*repeat.txt*    For Vim version 7.4a.  Last change: 2013 Jul 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -54,7 +54,7 @@ 2. Multiple repeats					*multi-repeat*
 			Same as :g!.
 
 Instead of the '/' which surrounds the {pattern}, you can use any other
-single byte character, but not an alphanumeric character, '\', '"' or '|'.
+single byte character, but not an alphabetic character, '\', '"' or '|'.
 This is useful if you want to include a '/' in the search pattern or
 replacement string.
 
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4a.  Last change: 2013 Jun 12
+*starting.txt*  For Vim version 7.4a.  Last change: 2013 Jul 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -774,7 +774,8 @@ 3. Execute Ex commands, from environment
 	easy to copy it to another system.
 
 	If Vim was started with "-u filename", the file "filename" is used.
-	All following initializations until 4. are skipped.
+	All following initializations until 4. are skipped. $MYVIMRC is not
+	set.
 	"vim -u NORC" can be used to skip these initializations without
 	reading a file.  "vim -u NONE" also skips loading plugins.  |-u|
 
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6734,6 +6734,7 @@ map-<SID>	map.txt	/*map-<SID>*
 map-ambiguous	map.txt	/*map-ambiguous*
 map-backtick	tips.txt	/*map-backtick*
 map-comments	map.txt	/*map-comments*
+map-error	map.txt	/*map-error*
 map-examples	map.txt	/*map-examples*
 map-keys-fails	map.txt	/*map-keys-fails*
 map-listing	map.txt	/*map-listing*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4a.  Last change: 2013 Jul 17
+*todo.txt*      For Vim version 7.4a.  Last change: 2013 Jul 24
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,18 +34,6 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Edit changed-7.4 text.
-
-Patch for this bug: (Ken Takata, 2013 Jul 17)
-8   Win32: When mouse is hidden and in the toolbar, moving it won't make it
-    appear. (Sami Salonen)
-
-This results in 'fileformat' set to "dos" instead of "unix". (Ingo Karkat,
-2013 Jul 16)
-    :set fileformats=dos,unix
-    :new ++ff=unix
-Also for ++bin and ++enc.
-
 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
 
 Patch to add "acl" and "xpm" as a feature. (Ken Takata, 2013 Jul 8)
@@ -70,6 +58,10 @@ GTK: problem with 'L' in 'guioptions' ch
 
 Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
 
+The BufUnload event is triggered when re-using the empty buffer.
+(Pokey Rule, 2013 Jul 22)
+Patch by Marcin Szamotulski, 2013 Jul 22.
+
 The CompleteDone autocommand needs some info passed to it:
 - The word that was selected (empty if abandoned complete)
 - Type of completion: tag, omnifunc, user func.
@@ -187,7 +179,6 @@ Python: Be able to define a Python funct
 Vim script.  Requires converting the arguments and return value, like with
 vim.bindeval().
 
-
 Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
 2012 Aug 4)
 
@@ -451,7 +442,7 @@ May 24)  Update May 26.
 
 Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
 
-Problem with "syn sync gouphere". (Gustavo Niemeyer, 2011 Jan 27)
+Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
 
 Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
 2010 Dec 18)
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.4a.  Last change: 2013 Jul 13
+*version7.txt*  For Vim version 7.4a.  Last change: 2013 Jul 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -9150,7 +9150,7 @@ Files:	    src/ops.c
 
 Patch 7.2.293
 Problem:    When setting 'comments' option it may be used in a wrong way. 
-Solution:   Don't increment after skipping over digets. (Yukihiro Nakadaira)
+Solution:   Don't increment after skipping over digits. (Yukihiro Nakadaira)
 Files:	    src/misc1.c
 
 Patch 7.2.294
@@ -10192,53 +10192,96 @@ Better Python interface				*better-pytho
 
 Added |python-bindeval| function. Unlike |python-eval| this one returns 
 |python-Dictionary|, |python-List| and |python-Function| objects for 
-dictionaries lists and functions respectively in place of their python 
+dictionaries lists and functions respectively in place of their Python 
 built-in equivalents (or None if we are talking about function references).
-   For simple types this function returns python built-in types and not only 
-python `str()` like |python-eval| does. On python 3 it will return `bytes()` 
+   For simple types this function returns Python built-in types and not only 
+Python `str()` like |python-eval| does. On Python 3 it will return `bytes()` 
 objects in place of `str()` ones avoiding possibility of UnicodeDecodeError.
-   Interface of new objects mimics standard python `dict()` and `list()`
+   Interface of new objects mimics standard Python `dict()` and `list()`
 interfaces to some extent. Extent will be improved in the future.
 
 Added special |python-vars| objects also available for |python-buffer| and 
-|python-window|. They ease access to VimL variables from python.
+|python-window|. They ease access to VimL variables from Python.
 
 Now you no longer need to alter `sys.path` to import your module: special 
 hooks are responsible for importing from {rtp}/python2, {rtp}/python3 and 
-{rtp}/pythonx directories (for python 2, python 3 and both respectively). 
+{rtp}/pythonx directories (for Python 2, Python 3 and both respectively). 
 See |python-special-path|.
 
 Added possibility to work with |tabpage|s through |python-tabpage| object.
 
-Added automatic conversion of vim errors and exceptions to python 
+Added automatic conversion of Vim errors and exceptions to Python 
 exceptions.
 
-Changed the behavior of |python-buffers| object: it now uses buffer numbers 
+Changed the behavior of the |python-buffers| object: it now uses buffer numbers 
 as keys in place of the index of the buffer in the internal buffer list. 
 This should not break anything as the only way to get this index was 
 iterating over |python-buffers|.
 
 Added |:pydo| and |:py3do| commands.
 
-Added |pyeval()| and |py3eval()| functions.
-
-Now in all places which previously accepted `str()` objects in both python 
-version both `str()` and `unicode()` (python 2) or `bytes()` and `str()` 
-(python 3) are accepted.
+Added the |pyeval()| and |py3eval()| functions.
+
+Now in all places which previously accepted `str()` objects, `str()` and
+`unicode()` (Python 2) or `bytes()` and `str()` (Python 3) are accepted.
 
 |python-window| has gained `.col` and `.row` attributes that are currently 
 the only way to get internal window positions.
 
-Added or fixed support for `dir()` in vim python objects.
-
-Old python versions (≤2.2) are no longer supported. Building with them did 
-not work anyway.
+Added or fixed support for `dir()` in Vim Python objects.
 
 
 Changed							*changed-7.4*
 -------
 
+Old Python versions (≤2.2) are no longer supported. Building with them did 
+not work anyway.
+
+Options:
+	Added ability to automatically save the selection into the system 
+	clipboard when using non-GUI version of Vim (autoselectplus in 
+	'clipboard'). Also added ability to use the system clipboard as
+	default register (previously only primary selection could be used).
+	(Ivan Krasilnikov, Christian Brabandt, Bram Moolenaar)
+
+	Added a special 'shiftwidth' value that makes 'sw' follow 'tabstop'.
+	As indenting via 'indentexpr' became tricky |shiftwidth()| function
+	was added. Also added equivalent special value to 'softtabstop'
+	option.  (Christian Brabandt, so8res)
+
+	Show absolute number in number column when 'relativenumber' option is
+	on.  Now there are four combinations with 'number' and
+	'relativenumber'.  (Christian Brabandt)
+
+Commands:
+	|:diffoff| now saves the local values of some settings and restores 
+	them in place of blindly resetting them to the defaults. (Christian 
+	Brabandt)
+
+Other:
+	Lua interface now also uses userdata binded to Vim structures. (Taro 
+	Muraoka, Luis Carvalho)
+
+Added							*added-7.4*
+-----
+
+Various syntax, indent and other plugins were added.
+
+Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian
+Brabandt)
+
 Functions:
+	Bitwise functions: |and()|, |or()|, |invert()|, |xor()|.
+
+	Added |luaeval()| function. (Taro Muraoka, Luis Carvalho)
+
+	Added |sha256()| function. (Tyru, Hirohito Higashi)
+
+	Added |wildmenumode()| function. (Christian Brabandt)
+
+	Debugging functions: |screenattr()|, |screenchar()|, |screencol()|, 
+	|screenrow()|. (Simon Ruderich, Bram Moolenaar)
+
 	Added ability to use |Dictionary-function|s for |sort()|ing, via 
 	optional third argument. (Nikolay Pavlov)
 
@@ -10257,17 +10300,39 @@ Functions:
 	place of empty string in case variable is not found. (|gettabvar()|, 
 	|getwinvar()|, |getbufvar()|) (Shougo Matsushita, Hirohito Higashi)
 
+Autocommands:
+	Added |InsertCharPre| event launched before inserting character. 
+	(Jakson A. Aquino)
+
+	Added |CompleteDone| event launched after finishing completion in 
+	insert mode. (idea by Florian Klein)
+
+	Added |QuitPre| event launched when commands that can either close Vim 
+	or only some window(s) are launched.
+
+	Added |TextChanged| and |TextChangedI| events launched when text is 
+	changed.
+
+Commands:
+	|:syntime| command useful for debugging.
+
+	Made it possible to remove all signs from the current buffer using 
+	|:sign-unplace|. (Christian Brabandt)
+
+	Added |:language| autocompletion. (Dominique Pelle)
+
+	Added more |:command-complete| completion types: |:behave| suboptions, 
+	color schemes, compilers, |:cscope| suboptions, files from 'path', 
+	|:history| suboptions, locale names, |:syntime| suboptions, user 
+	names. (Dominique Pelle)
+
+	Added |:map-nowait| creating mapping which when having lhs that is the 
+	prefix of another mapping’s lhs will not allow Vim to wait for user to 
+	type more characters to resolve ambiguity, forcing Vim to take the 
+	shorter alternative: one with <nowait>.
+
 Options:
-	Added ability to automatically save selection into the system 
-	clipboard when using non-GUI version of vim (autoselectplus in 
-	'clipboard'). Also added ability to use system clipboard as default 
-	register (previously only primary selection could be used). (Ivan 
-	Krasilnikov, Christian Brabandt, Bram Moolenaar)
-
-	Added special 'shiftwidth' value that makes 'sw' follow 'tabstop'. As 
-	indenting via 'indentexpr' became tricky |shiftwidth()| function was 
-	added. Also added equivalent special value to 'softtabstop' option. 
-	(Christian Brabandt, so8res)
+	Made it possible to ignore case when completing: 'wildignorecase'.
 
 	Added ability to delete comment leader when using |J| by `j` flag in 
 	'formatoptions' (|fo-table|). (Lech Lorens)
@@ -10278,83 +10343,18 @@ Options:
 	Added ability to control alignment inside `if` condition separately 
 	from alignment inside function arguments: |cino-k|. (Lech Lorens)
 
-	Added ability to show absolute number in number column when 
-	'relativenumber' option is on. (Christian Brabandt)
-
-Comands:
-	Made it possible to remove all signs from the current buffer using 
-	|:sign-unplace|. (Christian Brabandt)
-
-	Added |:language| autocompletion. (Dominique Pelle)
-
-	|:diffoff| now saves the local values of some settings and restores 
-	them in place of blindly resetting them to the defaults. (Christian 
-	Brabandt)
-
-	Added |:map-nowait| creating mapping which when having lhs that is the 
-	prefix of another mapping’s lhs will not allow vim to wait for user to 
-	type more characters to resolve ambiguity, forcing vim to take the 
-	shorter alternative: one with <nowait>.
-
-	Added more |:command-complete| completion types: |:behave| suboptions, 
-	color schemes, compilers, |:cscope| suboptions, files from 'path', 
-	|:history| suboptions, locale names, |:syntime| suboptions, user 
-	names. (Dominique Pelle)
-
 Other:
 	Improved support for cmd.exe. (Ben Fritz, Bram Moolenaar)
 
 	Added |v:windowid| variable containing current window number in GUI 
-	vim. (Christian J. Robinson, Lech Lorens)
-
-	Lua interface now also uses userdata binded to vim structures. (Taro 
-	Muraoka, Luis Carvalho)
+	Vim. (Christian J. Robinson, Lech Lorens)
 
 	Added rxvt-unicode and >xterm-277 mouse support. (Yiding Jia, Hayaki 
 	Saito)
 
-Added							*added-7.4*
------
-
-Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian 
-Brabandt)
-
-Functions:
-	Bitwise functions: |and()|, |or()|, |invert()|, |xor()|.
-
-	Added |luaeval()| function. (Taro Muraoka, Luis Carvalho)
-
-	Added |sha256()| function. (Tyru, Hirohito Higashi)
-
-	Added |wildmenumode()| function. (Christian Brabandt)
-
-	Debugging functions: |screenattr()|, |screenchar()|, |screencol()|, 
-	|screenrow()|. (Simon Ruderich, Bram Moolenaar)
-
-Autocommands:
-	Added |InsertCharPre| event launched before inserting character. 
-	(Jakson A. Aquino)
-
-	Added |CompleteDone| event launched after finishing completion in 
-	insert mode. (idea by Florian Klein)
-
-	Added |QuitPre| event launched when commands that can either close vim 
-	or only some window(s) are launched.
-
-	Added |TextChanged| and |TextChangedI| events launched when text is 
-	changed.
-
-Commands:
-	|:syntime| command useful for debugging.
-
-Options:
-	Made it possible to ignore case when completing: 'wildignorecase'.
-
-Various syntax, indent and other plugins were added.
-
-
-Fixed							*fixed-7.4*
------
+
+All changes in 7.4						*fixed-7.4*
+------------------
 
 Patch 7.3.001
 Problem:    When editing "src/main.c" and 'path' set to "./proto",
@@ -12181,7 +12181,7 @@ Problem:    Can't compile with tiny feat
 Solution:   Add #ifdef around win_valid().
 Files:	    src/buffer.c
 
-Patch 7.3.313 after 7.3.307)
+Patch 7.3.313 (after 7.3.307)
 Problem:    One more warning when compiling with dynamic Python 3.
 Solution:   Change PySliceObject to PyObject.
 Files:	    src/if_python3.c
--- 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:	2013 Jun 24
+" Last Change:	2013 Jul 21
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1407,6 +1407,9 @@ au BufNewFile,BufRead *.rcp			setf pilrc
 " Pine config
 au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex		setf pine
 
+" PL/1, PL/I
+au BufNewFile,BufRead *.pli,*.pl1		setf pli
+
 " PL/M (also: *.inp)
 au BufNewFile,BufRead *.plm,*.p36,*.pac		setf plm
 
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-05-11
+" Last Change:   2013 Jul 24
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/perl6.vim
+++ b/runtime/ftplugin/perl6.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-05-11
+" Last Change:   2013 Jul 24
 " Contributors:  Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
 "
 " Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com>
new file mode 100644
--- /dev/null
+++ b/runtime/ftplugin/tt2html.vim
@@ -0,0 +1,13 @@
+" Language:      TT2 embedded with HTML
+" Maintainer:    vim-perl <vim-perl@googlegroups.com>
+" Homepage:      http://github.com/vim-perl/vim-perl
+" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
+" Last Change:   2013 Jul 24
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+    finish
+endif
+
+" Just use the HTML plugin for now.
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
--- a/runtime/ftplugin/xs.vim
+++ b/runtime/ftplugin/xs.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2009-08-14
+" Last Change:   2013 Jul 24
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
--- a/runtime/indent/perl.vim
+++ b/runtime/indent/perl.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   May 12, 2013
+" Last Change:   2013 Jul 24
 
 " Suggestions and improvements by :
 "   Aaron J. Sherman (use syntax for hints)
--- a/runtime/indent/perl6.vim
+++ b/runtime/indent/perl6.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-05-12
+" Last Change:   2013 Jul 24
 " Contributors:  Andy Lester <andy@petdance.com>
 "                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
 "
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -6,7 +6,7 @@
 "               Nikolai Weibull (Add CSS2 support)
 " Maintainer:   Jules Wang      <w.jq0722@gmail.com>
 " URL:          https://github.com/JulesWang/css.vim
-" Last Change:  2012 Dec 15
+" Last Change:  2013 Jul 23
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -14,10 +14,12 @@ if !exists("main_syntax")
   if version < 600
     syntax clear
   elseif exists("b:current_syntax")
+    finish
+  endif
+  let main_syntax = 'css'
+elseif exists("b:current_syntax") && b:current_syntax == "css"
   finish
 endif
-  let main_syntax = 'css'
-endif
 
 let s:cpo_save = &cpo
 set cpo&vim
--- a/runtime/syntax/diff.vim
+++ b/runtime/syntax/diff.vim
@@ -1,7 +1,8 @@
 " Vim syntax file
 " Language:	Diff (context or unified)
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2010 Aug 03
+"               Translations by Jakson Alves de Aquino.
+" Last Change:	2013 Jul 24
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -14,275 +15,309 @@ syn match diffIdentical	"^Files .* and .
 syn match diffDiffer	"^Files .* and .* differ$"
 syn match diffBDiffer	"^Binary files .* and .* differ$"
 syn match diffIsA	"^File .* is a .* while file .* is a .*"
-syn match diffNoEOL	"^No newline at end of file .*"
+syn match diffNoEOL	"^\\ No newline at end of file .*"
 syn match diffCommon	"^Common subdirectories: .*"
 
 " ca
-syn match diffOnly	"^Només a .*: .*$"
+syn match diffOnly	"^Només a .*"
 syn match diffIdentical	"^Els fitxers .* i .* són idèntics$"
 syn match diffDiffer	"^Els fitxers .* i .* difereixen$"
 syn match diffBDiffer	"^Els fitxers .* i .* difereixen$"
-syn match diffIsA	"^El fitxer .* és un .* mentre que el fitxer .* és un .*$"
-syn match diffNoEOL	"^No hi ha cap caràcter de salt de línia al final del fitxer"
-syn match diffCommon	"^Subdirectoris comuns: .* i .*$"
+syn match diffIsA	"^El fitxer .* és un .* mentre que el fitxer .* és un .*"
+syn match diffNoEOL	"^\\ No hi ha cap caràcter de salt de línia al final del fitxer"
+syn match diffCommon	"^Subdirectoris comuns: .* i .*"
 
 " cs
-syn match diffOnly	"^Pouze v .*: .*$"
+syn match diffOnly	"^Pouze v .*"
 syn match diffIdentical	"^Soubory .* a .* jsou identické$"
 syn match diffDiffer	"^Soubory .* a .* jsou různé$"
+syn match diffBDiffer	"^Binární soubory .* a .* jsou rozdílné$"
 syn match diffBDiffer	"^Soubory .* a .* jsou různé$"
-syn match diffIsA	"^Soubor .* je .* pokud soubor .* je .*$"
-syn match diffNoEOL	"^Chybí znak konce řádku na konci souboru"
-syn match diffCommon	"^Společné podadresáře: .* a .*$"
+syn match diffIsA	"^Soubor .* je .* pokud soubor .* je .*"
+syn match diffNoEOL	"^\\ Chybí znak konce řádku na konci souboru"
+syn match diffCommon	"^Společné podadresáře: .* a .*"
 
 " da
-syn match diffOnly	"^Kun i .*: .*$"
+syn match diffOnly	"^Kun i .*"
 syn match diffIdentical	"^Filerne .* og .* er identiske$"
 syn match diffDiffer	"^Filerne .* og .* er forskellige$"
 syn match diffBDiffer	"^Binære filer .* og .* er forskellige$"
-syn match diffIsA	"^Filen .* er en .* mens filen .* er en .*$"
-syn match diffNoEOL	"^Intet linjeskift ved filafslutning"
-syn match diffCommon	"^Identiske underkataloger: .* og .*$"
+syn match diffIsA	"^Filen .* er en .* mens filen .* er en .*"
+syn match diffNoEOL	"^\\ Intet linjeskift ved filafslutning"
+syn match diffCommon	"^Identiske underkataloger: .* og .*"
 
 " de
-syn match diffOnly	"^Nur in .*: .*.$"
+syn match diffOnly	"^Nur in .*"
 syn match diffIdentical	"^Dateien .* und .* sind identisch.$"
 syn match diffDiffer	"^Dateien .* und .* sind verschieden.$"
 syn match diffBDiffer	"^Binärdateien .* and .* sind verschieden.$"
+syn match diffBDiffer	"^Binärdateien .* und .* sind verschieden.$"
 syn match diffIsA	"^Datei .* ist ein .* während Datei .* ein .* ist.$"
-syn match diffNoEOL	"^Kein Zeilenumbruch am Dateiende."
+syn match diffNoEOL	"^\\ Kein Zeilenumbruch am Dateiende."
 syn match diffCommon	"^Gemeinsame Unterverzeichnisse: .* und .*.$"
 
 " el
-syn match diffOnly	"^Μόνο στο .*: .*$"
+syn match diffOnly	"^Μόνο στο .*"
 syn match diffIdentical	"^Τα αρχεία .* καί .* είναι πανομοιότυπα$"
 syn match diffDiffer	"^Τα αρχεία .* και .* διαφέρουν$"
 syn match diffBDiffer	"^Τα αρχεία .* και .* διαφέρουν$"
-syn match diffIsA	"^Το αρχείο .* είναι .* ενώ το αρχείο .* είναι .*$"
-syn match diffNoEOL	"^Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου"
+syn match diffIsA	"^Το αρχείο .* είναι .* ενώ το αρχείο .* είναι .*"
+syn match diffNoEOL	"^\\ Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου"
 syn match diffCommon	"^Οι υποκατάλογοι .* και .* είναι ταυτόσημοι$"
 
 " eo
-syn match diffOnly	"^Nur en .*: .*$"
+syn match diffOnly	"^Nur en .*"
 syn match diffIdentical	"^Dosieroj .* kaj .* estas samaj$"
 syn match diffDiffer	"^Dosieroj .* kaj .* estas malsamaj$"
 syn match diffBDiffer	"^Dosieroj .* kaj .* estas malsamaj$"
-syn match diffIsA	"^Dosiero .* estas .*, dum dosiero .* estas .*$"
-syn match diffNoEOL	"^Mankas linifino ĉe fino de dosiero"
-syn match diffCommon	"^Komunaj subdosierujoj: .* kaj .*$"
+syn match diffIsA	"^Dosiero .* estas .*, dum dosiero .* estas .*"
+syn match diffNoEOL	"^\\ Mankas linifino ĉe fino de dosiero"
+syn match diffCommon	"^Komunaj subdosierujoj: .* kaj .*"
 
 " es
-syn match diffOnly	"^Sólo en .*: .*$"
+syn match diffOnly	"^Sólo en .*"
 syn match diffIdentical	"^Los ficheros .* y .* son idénticos$"
 syn match diffDiffer	"^Los ficheros .* y .* son distintos$"
 syn match diffBDiffer	"^Los ficheros binarios .* y .* son distintos$"
-syn match diffIsA	"^El fichero .* es un .* mientras que el .* es un .*$"
-syn match diffNoEOL	"^No hay ningún carácter de nueva línea al final del fichero"
-syn match diffCommon	"^Subdirectorios comunes: .* y .*$"
+syn match diffIsA	"^El fichero .* es un .* mientras que el .* es un .*"
+syn match diffNoEOL	"^\\ No hay ningún carácter de nueva línea al final del fichero"
+syn match diffCommon	"^Subdirectorios comunes: .* y .*"
 
 " fi
-syn match diffOnly	"^Vain hakemistossa .*: .*$"
+syn match diffOnly	"^Vain hakemistossa .*"
 syn match diffIdentical	"^Tiedostot .* ja .* ovat identtiset$"
 syn match diffDiffer	"^Tiedostot .* ja .* eroavat$"
 syn match diffBDiffer	"^Binääritiedostot .* ja .* eroavat$"
-syn match diffIsA	"^Tiedosto .* on .*, kun taas tiedosto .* on .*$"
-syn match diffNoEOL	"^Ei rivinvaihtoa tiedoston lopussa"
-syn match diffCommon	"^Yhteiset alihakemistot: .* ja .*$"
+syn match diffIsA	"^Tiedosto .* on .*, kun taas tiedosto .* on .*"
+syn match diffNoEOL	"^\\ Ei rivinvaihtoa tiedoston lopussa"
+syn match diffCommon	"^Yhteiset alihakemistot: .* ja .*"
 
 " fr
-syn match diffOnly	"^Seulement dans .*: .*$"
-syn match diffIdentical	"^Les fichiers .* et .* sont identiques.$"
-syn match diffDiffer	"^Les fichiers .* et .* sont différents.$"
-syn match diffBDiffer	"^Les fichiers binaires .* et .* sont différents.$"
-syn match diffIsA	"^Le fichier .* est un .* alors que le fichier .* est un .*$"
-syn match diffNoEOL	"^Pas de fin de ligne à la fin du fichier."
-syn match diffCommon	"^Les sous-répertoires .* et .* sont identiques.$"
+syn match diffOnly	"^Seulement dans .*"
+syn match diffIdentical	"^Les fichiers .* et .* sont identiques.*"
+syn match diffDiffer	"^Les fichiers .* et .* sont différents.*"
+syn match diffBDiffer	"^Les fichiers binaires .* et .* sont différents.*"
+syn match diffIsA	"^Le fichier .* est un .* alors que le fichier .* est un .*"
+syn match diffNoEOL	"^\\ Pas de fin de ligne à la fin du fichier.*"
+syn match diffCommon	"^Les sous-répertoires .* et .* sont identiques.*"
 
 " ga
-syn match diffOnly	"^I .* amháin: .*$"
-syn match diffIdentical	"^Is comhionann iad na comhaid .* agus .*$"
-syn match diffDiffer	"^Tá difríocht idir na comhaid .* agus .*$"
-syn match diffBDiffer	"^Tá difríocht idir na comhaid .* agus .*$"
-syn match diffIsA	"^Tá comhad .* ina .* ach tá comhad .* ina .*$"
-syn match diffNoEOL	"^Gan líne nua ag an chomhadchríoch"
-syn match diffCommon	"^Fochomhadlanna i gcoitianta: .* agus .*$"
+syn match diffOnly	"^I .* amháin: .*"
+syn match diffIdentical	"^Is comhionann iad na comhaid .* agus .*"
+syn match diffDiffer	"^Tá difríocht idir na comhaid .* agus .*"
+syn match diffBDiffer	"^Tá difríocht idir na comhaid .* agus .*"
+syn match diffIsA	"^Tá comhad .* ina .* ach tá comhad .* ina .*"
+syn match diffNoEOL	"^\\ Gan líne nua ag an chomhadchríoch"
+syn match diffCommon	"^Fochomhadlanna i gcoitianta: .* agus .*"
 
 " gl
-syn match diffOnly	"^Só en .*: .*$"
+syn match diffOnly	"^Só en .*"
 syn match diffIdentical	"^Os ficheiros .* e .* son idénticos$"
 syn match diffDiffer	"^Os ficheiros .* e .* son diferentes$"
 syn match diffBDiffer	"^Os ficheiros binarios .* e .* son diferentes$"
-syn match diffIsA	"^O ficheiro .* é un .* mentres que o ficheiro .* é un .*$"
-syn match diffNoEOL	"^Non hai un salto de liña na fin da liña"
-syn match diffCommon	"^Subdirectorios comúns: .* e .*$"
+syn match diffIsA	"^O ficheiro .* é un .* mentres que o ficheiro .* é un .*"
+syn match diffNoEOL	"^\\ Non hai un salto de liña na fin da liña"
+syn match diffCommon	"^Subdirectorios comúns: .* e .*"
 
 " he
-syn match diffOnly	"^.*-ב קר אצמנ .*$"
+syn match diffOnly	"^.*-ב קר אצמנ .*"
 syn match diffIdentical	"^םיהז םניה .*-ו .* םיצבקה$"
 syn match diffDiffer	"^הזמ הז םינוש `.*'-ו `.*' םיצבקה$"
 syn match diffBDiffer	"^הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$"
 syn match diffIsA	"^.* .*-ל .* .* תוושהל ןתינ אל$"
-syn match diffNoEOL	"^ץבוקה ףוסב השדח-הרוש ות רסח"
+syn match diffNoEOL	"^\\ ץבוקה ףוסב השדח-הרוש ות רסח"
 syn match diffCommon	"^.*-ו .* :תוהז תויקית-תת$"
 
+" hr
+syn match diffOnly	"^Samo u .*"
+syn match diffIdentical	"^Datoteke .* i .* su identične$"
+syn match diffDiffer	"^Datoteke .* i .* se razlikuju$"
+syn match diffBDiffer	"^Binarne datoteke .* i .* se razlikuju$"
+syn match diffIsA	"^Datoteka .* je .*, a datoteka .* je .*"
+syn match diffNoEOL	"^\\ Nema novog retka na kraju datoteke"
+syn match diffCommon	"^Uobičajeni poddirektoriji: .* i .*"
+
 " hu
-syn match diffOnly	"^Csak .* -ben: .*$"
+syn match diffOnly	"^Csak .* -ben: .*"
 syn match diffIdentical	"^.* és .* fájlok azonosak$"
 syn match diffDiffer	"^A(z) .* és a(z) .* fájlok különböznek$"
 syn match diffBDiffer	"^A(z) .* és a(z) .* fájlok különböznek$"
-syn match diffIsA	"^A(z) .* fájl egy .*, viszont a(z) .* fájl egy .*$"
-syn match diffNoEOL	"^Nincs újsor a fájl végén"
-syn match diffCommon	"^Közös alkönyvtárak: .* és .*$"
+syn match diffIsA	"^A(z) .* fájl egy .*, viszont a(z) .* fájl egy .*"
+syn match diffNoEOL	"^\\ Nincs újsor a fájl végén"
+syn match diffCommon	"^Közös alkönyvtárak: .* és .*"
 
 " id
-syn match diffOnly	"^Hanya dalam .*: .*$"
+syn match diffOnly	"^Hanya dalam .*"
 syn match diffIdentical	"^File .* dan .* identik$"
 syn match diffDiffer	"^Berkas .* dan .* berbeda$"
 syn match diffBDiffer	"^File biner .* dan .* berbeda$"
-syn match diffIsA	"^File .* adalah .* sementara file .* adalah .*$"
-syn match diffNoEOL	"^Tidak ada baris-baru di akhir dari berkas"
-syn match diffCommon	"^Subdirektori sama: .* dan .*$"
+syn match diffIsA	"^File .* adalah .* sementara file .* adalah .*"
+syn match diffNoEOL	"^\\ Tidak ada baris-baru di akhir dari berkas"
+syn match diffCommon	"^Subdirektori sama: .* dan .*"
 
 " it
-syn match diffOnly	"^Solo in .*: .*$"
+syn match diffOnly	"^Solo in .*"
 syn match diffIdentical	"^I file .* e .* sono identici$"
 syn match diffDiffer	"^I file .* e .* sono diversi$"
 syn match diffBDiffer	"^I file .* e .* sono diversi$"
-syn match diffIsA	"^File .* è un .* mentre file .* è un .*$"
-syn match diffNoEOL	"^Manca newline alla fine del file"
-syn match diffCommon	"^Sottodirectory in comune: .* e .*$"
+syn match diffBDiffer	"^I file binari .* e .* sono diversi$"
+syn match diffIsA	"^File .* è un .* mentre file .* è un .*"
+syn match diffNoEOL	"^\\ Manca newline alla fine del file"
+syn match diffCommon	"^Sottodirectory in comune: .* e .*"
 
 " ja
-syn match diffOnly	"^.*だけに発見: .*$"
+syn match diffOnly	"^.*だけに発見: .*"
 syn match diffIdentical	"^ファイル.*と.*は同一$"
 syn match diffDiffer	"^ファイル.*と.*は違います$"
 syn match diffBDiffer	"^バイナリー・ファイル.*と.*は違います$"
-syn match diffIsA	"^ファイル.*は.*、ファイル.*は.*$"
-syn match diffNoEOL	"^ファイル末尾に改行がありません"
-syn match diffCommon	"^共通の下位ディレクトリー: .*と.*$"
+syn match diffIsA	"^ファイル.*は.*、ファイル.*は.*"
+syn match diffNoEOL	"^\\ ファイル末尾に改行がありません"
+syn match diffCommon	"^共通の下位ディレクトリー: .*と.*"
+
+" ja DiffUtils 3.3
+syn match diffOnly	"^.* のみに存在: .*"
+syn match diffIdentical	"^ファイル .* と .* は同一です$"
+syn match diffDiffer	"^ファイル .* と .* は異なります$"
+syn match diffBDiffer	"^バイナリーファイル .* と.* は異なります$"
+syn match diffIsA	"^ファイル .* は .* です。一方、ファイル .* は .* です$"
+syn match diffNoEOL	"^\\ ファイル末尾に改行がありません"
+syn match diffCommon	"^共通のサブディレクトリー: .* と .*"
 
 " lv
-syn match diffOnly	"^Tikai iekš .*: .*$"
+syn match diffOnly	"^Tikai iekš .*"
 syn match diffIdentical	"^Fails .* un .* ir identiski$"
 syn match diffDiffer	"^Faili .* un .* atšķiras$"
 syn match diffBDiffer	"^Faili .* un .* atšķiras$"
-syn match diffIsA	"^Fails .* ir .* kamēr fails .* ir .*$"
-syn match diffNoEOL	"^Nav jaunu rindu faila beigās"
-syn match diffCommon	"^Kopējās apakšdirektorijas: .* un .*$"
+syn match diffBDiffer	"^Binārie faili .* un .* atšķiras$"
+syn match diffIsA	"^Fails .* ir .* kamēr fails .* ir .*"
+syn match diffNoEOL	"^\\ Nav jaunu rindu faila beigās"
+syn match diffCommon	"^Kopējās apakšdirektorijas: .* un .*"
 
 " ms
+syn match diffOnly	"^Hanya dalam .*"
 syn match diffIdentical	"^Fail .* dan .* adalah serupa$"
 syn match diffDiffer	"^Fail .* dan .* berbeza$"
 syn match diffBDiffer	"^Fail .* dan .* berbeza$"
-syn match diffIsA	"^Fail .* adalah .* manakala fail .* adalah .*$"
-syn match diffNoEOL	"^Tiada baris baru pada penghujung fail"
-syn match diffCommon	"^Subdirektori umum: .* dan .*$"
+syn match diffIsA	"^Fail .* adalah .* manakala fail .* adalah .*"
+syn match diffNoEOL	"^\\ Tiada baris baru pada penghujung fail"
+syn match diffCommon	"^Subdirektori umum: .* dan .*"
 
 " nl
-syn match diffOnly	"^Alleen in .*: .*$"
+syn match diffOnly	"^Alleen in .*"
 syn match diffIdentical	"^Bestanden .* en .* zijn identiek$"
 syn match diffDiffer	"^Bestanden .* en .* zijn verschillend$"
 syn match diffBDiffer	"^Bestanden .* en .* zijn verschillend$"
+syn match diffBDiffer	"^Binaire bestanden .* en .* zijn verschillend$"
 syn match diffIsA	"^Bestand .* is een .* terwijl bestand .* een .* is$"
-syn match diffNoEOL	"^Geen regeleindeteken (LF) aan einde van bestand"
-syn match diffCommon	"^Gemeenschappelijke submappen: .* en .*$"
+syn match diffNoEOL	"^\\ Geen regeleindeteken (LF) aan einde van bestand"
+syn match diffCommon	"^Gemeenschappelijke submappen: .* en .*"
 
 " pl
-syn match diffOnly	"^Tylko w .*: .*$"
+syn match diffOnly	"^Tylko w .*"
 syn match diffIdentical	"^Pliki .* i .* są identyczne$"
 syn match diffDiffer	"^Pliki .* i .* różnią się$"
 syn match diffBDiffer	"^Pliki .* i .* różnią się$"
-syn match diffIsA	"^Plik .* jest .*, podczas gdy plik .* jest .*$"
-syn match diffNoEOL	"^Brak znaku nowej linii na końcu pliku"
-syn match diffCommon	"^Wspólne podkatalogi: .* i .*$"
+syn match diffBDiffer	"^Binarne pliki .* i .* różnią się$"
+syn match diffIsA	"^Plik .* jest .*, podczas gdy plik .* jest .*"
+syn match diffNoEOL	"^\\ Brak znaku nowej linii na końcu pliku"
+syn match diffCommon	"^Wspólne podkatalogi: .* i .*"
 
 " pt_BR
-syn match diffOnly	"^Somente em .*: .*$"
-syn match diffOnly	"^Apenas em .*: .*$"
+syn match diffOnly	"^Somente em .*"
+syn match diffOnly	"^Apenas em .*"
 syn match diffIdentical	"^Os aquivos .* e .* são idênticos$"
 syn match diffDiffer	"^Os arquivos .* e .* são diferentes$"
 syn match diffBDiffer	"^Os arquivos binários .* e .* são diferentes$"
-syn match diffIsA	"^O arquivo .* é .* enquanto o arquivo .* é .*$"
-syn match diffNoEOL	"^Falta o caracter nova linha no final do arquivo"
-syn match diffCommon	"^Subdiretórios idênticos: .* e .*$"
+syn match diffIsA	"^O arquivo .* é .* enquanto o arquivo .* é .*"
+syn match diffNoEOL	"^\\ Falta o caracter nova linha no final do arquivo"
+syn match diffCommon	"^Subdiretórios idênticos: .* e .*"
 
 " ro
-syn match diffOnly	"^Doar în .*: .*$"
+syn match diffOnly	"^Doar în .*"
 syn match diffIdentical	"^Fişierele .* şi .* sunt identice$"
 syn match diffDiffer	"^Fişierele .* şi .* diferă$"
 syn match diffBDiffer	"^Fişierele binare .* şi .* diferă$"
 syn match diffIsA	"^Fişierul .* este un .* pe când fişierul .* este un .*.$"
-syn match diffNoEOL	"^Nici un element de linie nouă la sfârşitul fişierului"
+syn match diffNoEOL	"^\\ Nici un element de linie nouă la sfârşitul fişierului"
 syn match diffCommon	"^Subdirectoare comune: .* şi .*.$"
 
 " ru
-syn match diffOnly	"^Только в .*: .*$"
+syn match diffOnly	"^Только в .*"
 syn match diffIdentical	"^Файлы .* и .* идентичны$"
 syn match diffDiffer	"^Файлы .* и .* различаются$"
 syn match diffBDiffer	"^Файлы .* и .* различаются$"
-syn match diffIsA	"^Файл .* это .*, тогда как файл .* -- .*$"
-syn match diffNoEOL	"^В конце файла нет новой строки"
-syn match diffCommon	"^Общие подкаталоги: .* и .*$"
+syn match diffIsA	"^Файл .* это .*, тогда как файл .* -- .*"
+syn match diffNoEOL	"^\\ В конце файла нет новой строки"
+syn match diffCommon	"^Общие подкаталоги: .* и .*"
 
 " sr
-syn match diffOnly	"^Само у .*: .*$"
+syn match diffOnly	"^Само у .*"
 syn match diffIdentical	"^Датотеке „.*“ и „.*“ се подударају$"
 syn match diffDiffer	"^Датотеке .* и .* различите$"
 syn match diffBDiffer	"^Бинарне датотеке .* и .* различите$"
 syn match diffIsA	"^Датотека „.*“ је „.*“ док је датотека „.*“ „.*“$"
-syn match diffNoEOL	"^Без новог реда на крају датотеке"
-syn match diffCommon	"^Заједнички поддиректоријуми: .* и .*$"
+syn match diffNoEOL	"^\\ Без новог реда на крају датотеке"
+syn match diffCommon	"^Заједнички поддиректоријуми: .* и .*"
 
 " sv
-syn match diffOnly	"^Endast i .*: .*$"
+syn match diffOnly	"^Endast i .*"
 syn match diffIdentical	"^Filerna .* och .* är lika$"
 syn match diffDiffer	"^Filerna .* och .* skiljer$"
 syn match diffBDiffer	"^Filerna .* och .* skiljer$"
-syn match diffIsA	"^Fil .* är en .* medan fil .* är en .*$"
-syn match diffNoEOL	"^Ingen nyrad vid filslut"
-syn match diffCommon	"^Lika underkataloger: .* och .*$"
+syn match diffIsA	"^Fil .* är en .* medan fil .* är en .*"
+syn match diffBDiffer	"^De binära filerna .* och .* skiljer$"
+syn match diffIsA	"^Filen .* är .* medan filen .* är .*"
+syn match diffNoEOL	"^\\ Ingen nyrad vid filslut"
+syn match diffCommon	"^Lika underkataloger: .* och .*"
 
 " tr
-syn match diffOnly	"^Yalnızca .*'da: .*$"
+syn match diffOnly	"^Yalnızca .*'da: .*"
 syn match diffIdentical	"^.* ve .* dosyaları birbirinin aynı$"
 syn match diffDiffer	"^.* ve .* dosyaları birbirinden farklı$"
 syn match diffBDiffer	"^.* ve .* dosyaları birbirinden farklı$"
-syn match diffIsA	"^.* dosyası, bir .*, halbuki .* dosyası bir .*$"
-syn match diffNoEOL	"^Dosya sonunda yenisatır yok."
-syn match diffCommon	"^Ortak alt dizinler: .* ve .*$"
+syn match diffBDiffer	"^İkili .* ve .* birbirinden farklı$"
+syn match diffIsA	"^.* dosyası, bir .*, halbuki .* dosyası bir .*"
+syn match diffNoEOL	"^\\ Dosya sonunda yenisatır yok."
+syn match diffCommon	"^Ortak alt dizinler: .* ve .*"
 
 " uk
-syn match diffOnly	"^Лише у .*: .*$"
+syn match diffOnly	"^Лише у .*"
 syn match diffIdentical	"^Файли .* та .* ідентичні$"
 syn match diffDiffer	"^Файли .* та .* відрізняються$"
 syn match diffBDiffer	"^Файли .* та .* відрізняються$"
-syn match diffIsA	"^Файл .* це .*, тоді як файл .* -- .*$"
-syn match diffNoEOL	"^Наприкінці файлу немає нового рядка"
-syn match diffCommon	"^Спільні підкаталоги: .* та .*$"
+syn match diffBDiffer	"^Двійкові файли .* та .* відрізняються$"
+syn match diffIsA	"^Файл .* це .*, тоді як файл .* -- .*"
+syn match diffNoEOL	"^\\ Наприкінці файлу немає нового рядка"
+syn match diffCommon	"^Спільні підкаталоги: .* та .*"
 
 " vi
-syn match diffOnly	"^Chỉ trong .*: .*$"
+syn match diffOnly	"^Chỉ trong .*"
 syn match diffIdentical	"^Hai tập tin .* và .* là bằng nhau.$"
+syn match diffIdentical	"^Cả .* và .* là cùng một tập tin$"
 syn match diffDiffer	"^Hai tập tin .* và .* là khác nhau.$"
+syn match diffBDiffer	"^Hai tập tin nhị phân .* và .* khác nhau$"
+syn match diffIsA	"^Tập tin .* là một .* trong khi tập tin .* là một .*.$"
 syn match diffBDiffer	"^Hai tập tin .* và .* là khác nhau.$"
 syn match diffIsA	"^Tập tin .* là một .* còn tập tin .* là một .*.$"
-syn match diffNoEOL	"^Không có ký tự dòng mới tại kêt thức tập tin."
-syn match diffCommon	"^Thư mục con chung: .* và .*$"
+syn match diffNoEOL	"^\\ Không có ký tự dòng mới tại kêt thức tập tin."
+syn match diffCommon	"^Thư mục con chung: .* và .*"
 
 " zh_CN
-syn match diffOnly	"^只在 .* 存在:.*$"
+syn match diffOnly	"^只在 .* 存在:.*"
 syn match diffIdentical	"^檔案 .* 和 .* 相同$"
 syn match diffDiffer	"^文件 .* 和 .* 不同$"
 syn match diffBDiffer	"^文件 .* 和 .* 不同$"
-syn match diffIsA	"^文件 .* 是.*而文件 .* 是.*$"
-syn match diffNoEOL	"^文件尾没有 newline 字符"
+syn match diffIsA	"^文件 .* 是.*而文件 .* 是.*"
+syn match diffNoEOL	"^\\ 文件尾没有 newline 字符"
 syn match diffCommon	"^.* 和 .* 有共同的子目录$"
 
 " zh_TW
+syn match diffOnly	"^只在 .* 存在:.*"
+syn match diffIdentical	"^檔案 .* 和 .* 相同$"
 syn match diffDiffer	"^檔案 .* 與 .* 不同$"
 syn match diffBDiffer	"^二元碼檔 .* 與 .* 不同$"
-syn match diffIsA	"^檔案 .* 是.*而檔案 .* 是.*$"
-syn match diffNoEOL	"^檔案末沒有 newline 字元"
+syn match diffIsA	"^檔案 .* 是.*而檔案 .* 是.*"
+syn match diffNoEOL	"^\\ 檔案末沒有 newline 字元"
 syn match diffCommon	"^.* 和 .* 有共同的副目錄$"
 
 
@@ -303,8 +338,8 @@ syn match diffLine	"^\d\+\(,\d\+\)\=[cda
 
 syn match diffFile	"^diff.*"
 syn match diffFile	"^+++ .*"
-syn match diffFile	"^Index: .*$"
-syn match diffFile	"^==== .*$"
+syn match diffFile	"^Index: .*"
+syn match diffFile	"^==== .*"
 syn match diffOldFile	"^\*\*\* .*"
 syn match diffNewFile	"^--- .*"
 
--- a/runtime/syntax/javascript.vim
+++ b/runtime/syntax/javascript.vim
@@ -22,6 +22,8 @@ if !exists("main_syntax")
     finish
   endif
   let main_syntax = 'javascript'
+elseif exists("b:current_syntax") && b:current_syntax == "javascript"
+  finish
 endif
 
 let s:cpo_save = &cpo
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl/tree/master
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-05-11
+" Last Change:   2013 Jul 24
 " Contributors:  Andy Lester <andy@petdance.com>
 "                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
 "                Lukas Mai <l.mai.web.de>
@@ -27,7 +27,7 @@
 " let perl_sync_dist = 100
 " unlet perl_fold
 " unlet perl_fold_blocks
-" let perl_nofold_packages = 1
+" unlet perl_nofold_packages
 " let perl_nofold_subs = 1
 " unlet perl_fold_anonymous_subs
 
@@ -67,7 +67,6 @@ endif
 
 
 syn cluster perlTop		contains=TOP
-syn region  perlGenericBlock	matchgroup=perlGenericBlock start="{" end="}" contained transparent
 
 
 " All keywords
@@ -95,20 +94,20 @@ syn match perlStatementVector		"\<vec\>"
 syn match perlStatementFiles		"\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
 syn match perlStatementFiles		"-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
 syn match perlStatementFlow		"\<\%(caller\|die\|dump\|eval\|exit\|wantarray\)\>"
-syn match perlStatementInclude		"\<require\>"
+syn match perlStatementInclude		"\<\%(require\|import\)\>"
 syn match perlStatementInclude		"\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
 syn match perlStatementProc		"\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
-syn match perlStatementSocket		"\<\%(acept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
+syn match perlStatementSocket		"\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
 syn match perlStatementIPC		"\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
 syn match perlStatementNetwork		"\<\%(\%(end\|[gs]et\)\%(host\|net\|proto\|serv\)ent\|get\%(\%(host\|net\)by\%(addr\|name\)\|protoby\%(name\|number\)\|servby\%(name\|port\)\)\)\>"
 syn match perlStatementPword		"\<\%(get\%(pw\%(uid\|nam\)\|gr\%(gid\|nam\)\|login\)\)\|\%(end\|[gs]et\)\%(pw\|gr\)ent\>"
 syn match perlStatementTime		"\<\%(gmtime\|localtime\|time\)\>"
 
-syn match perlStatementMisc		"\<\%(warn\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>"
+syn match perlStatementMisc		"\<\%(warn\|format\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>"
 
 syn keyword perlTodo			TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained
 
-syn region perlStatementIndirObjWrap   matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlGenericBlock extend
+syn region perlStatementIndirObjWrap   matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlBraces extend
 
 syn match perlLabel      "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
 
@@ -153,7 +152,7 @@ else
 endif
 
 if !exists("perl_no_extended_vars")
-  syn cluster perlExpr		contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlGenericBlock
+  syn cluster perlExpr		contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
   syn region perlArrow		matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
   syn region perlArrow		matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
   syn region perlArrow		matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
@@ -161,8 +160,8 @@ if !exists("perl_no_extended_vars")
   syn region perlArrow		matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
   syn region perlVarBlock	matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
   syn region perlVarBlock2	matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
-  syn match  perlVarPlain2	"[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
-  syn match  perlVarPlain	"\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
+  syn match  perlVarPlain2	"[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
+  syn match  perlVarPlain	"\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
   syn region perlVarMember	matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
   syn match  perlVarSimpleMember	"\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
   syn match  perlVarSimpleMemberName	"\I\i*" contained
@@ -223,7 +222,7 @@ syn region  perlShellCommand	matchgroup=
 syn match  perlNumber	"\<\%(0\%(x\x[[:xdigit:]_]*\|b[01][01_]*\|\o[0-7_]*\|\)\|[1-9][[:digit:]_]*\)\>"
 syn match  perlFloat	"\<\d[[:digit:]_]*[eE][\-+]\=\d\+"
 syn match  perlFloat	"\<\d[[:digit:]_]*\.[[:digit:]_]*\%([eE][\-+]\=\d\+\)\="
-syn match  perlFloat	"\.[[:digit:]_]\+\%([eE][\-+]\=\d\+\)\="
+syn match  perlFloat    "\.[[:digit:]][[:digit:]_]*\%([eE][\-+]\=\d\+\)\="
 
 syn match  perlString	"\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contains=perlVStringV
 syn match  perlVStringV	"\<v" contained
@@ -241,38 +240,38 @@ syn region perlAnglesDQ		start=+<+ end=+
 
 
 " Simple version of searches and matches
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
 
 " A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend extend
 
 " Below some hacks to recognise the // variant. This is virtually impossible to catch in all
 " cases as the / is used in so many other ways, but these should be the most obvious ones.
-syn region perlMatch	matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash
+syn region perlMatch	matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash extend
 
 
 " Substitutions
 " perlMatch is the first part, perlSubstitution* is the substitution part
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*'+  end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlSubstitutionSQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*/+  end=+/+me=e-1 contains=@perlInterpSlash nextgroup=perlSubstitutionGQQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s#+  end=+#+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
-syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*'+  end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlSubstitutionSQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*/+  end=+/+me=e-1 contains=@perlInterpSlash nextgroup=perlSubstitutionGQQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s#+  end=+#+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
+syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
 syn region perlMatch	matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
-syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ
-syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend
-syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend
-syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend
-syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend
-syn region perlSubstitutionSQ		matchgroup=perlMatchStartEnd start=+'+  end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend
+syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ extend
+syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
+syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
+syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
+syn region perlSubstitutionGQQ		matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
+syn region perlSubstitutionSQ		matchgroup=perlMatchStartEnd start=+'+  end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend extend
 
 " Translations
 " perlMatch is the first part, perlTranslation* is the second, translator part.
--- a/runtime/syntax/perl6.vim
+++ b/runtime/syntax/perl6.vim
@@ -3,7 +3,7 @@
 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
 " Homepage:      http://github.com/vim-perl/vim-perl/tree/master
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2009-07-04
+" Last Change:   2013 Jul 24
 
 " Contributors:  Luke Palmer <fibonaci@babylonia.flatirons.org>
 "                Moritz Lenz <moritz@faui2k3.org>
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/pli.vim
@@ -0,0 +1,278 @@
+" Vim syntax file
+" Modified from  http://plnet.org/files/vim/
+" using keywords from http://www.kednos.com/pli/docs/reference_manual/6291pro_contents.html
+"    2012-11-13 Alan Thompson
+
+if version < 600
+    syntax clear
+elseif exists("b:current_syntax")
+    finish
+endif
+
+syn case ignore
+
+" Todo.
+syn keyword pl1Todo TODO FIXME XXX DEBUG NOTE
+
+" pl1CommentGroup allows adding matches for special things in comments
+" 20010723az: Added this so that these could be matched in comments...  
+syn cluster pl1CommentGroup contains=pl1Todo
+
+syn match   pl1Garbage        "[^ \t()]"
+syn match   pl1Identifier     "[a-z][a-z0-9$_#]*"
+syn match   pl1HostIdentifier ":[a-z][a-z0-9$_#]*"
+
+" 20010723az: When wanted, highlight the trailing whitespace -- this is
+" based on c_space_errors 
+if exists("c_space_errors")
+    if !exists("c_no_trail_space_error")
+        syn match pl1SpaceError "\s\+$"
+    endif
+    if !exists("c_no_tab_space_error")
+        syn match pl1SpaceError " \+\t"me=e-1
+    endif
+endif
+
+" Symbols.  
+syn match   pl1Symbol         "\(;\|,\|\.\)"
+syn match   pl1PreProcSym     "%"
+
+" Operators.
+syn match   pl1Operator       "\(&\|:\|!\|+\|-\|\*\|/\|=\|<\|>\|@\|\*\*\|!=\|\~=\)"
+syn match   pl1Operator       "\(\^\|\^=\|<=\|>=\|:=\|=>\|\.\.\|||\|<<\|>>\|\"\)"
+
+" Attributes
+syn keyword pl1Attribute BACKWARDS BUFFERED BUF CONNECTED CONN CONSTANT EVENT
+syn keyword pl1Attribute EXCLUSIVE EXCL FORMAT GENERIC IRREDUCIBLE IRRED LOCAL
+syn keyword pl1Attribute REDUCIBLE RED TASK TRANSIENT UNBUFFERED UNBUF ALIGNED ANY
+syn keyword pl1Attribute AREA AUTOMATIC AUTO BASED BUILTIN CONDITION COND CONTROLLED
+syn keyword pl1Attribute CTL DEFINED DEF DIRECT ENVIRONMENT ENV EXTERNAL EXT FILE
+syn keyword pl1Attribute GLOBALDEF GLOBALREF INITIAL INIT INPUT INTERNAL INT KEYED
+syn keyword pl1Attribute LABEL LIKE LIST MEMBER NONVARYING NONVAR OPTIONAL OPTIONS
+syn keyword pl1Attribute OUTPUT PARAMETER PARM PICTURE PIC POSITION POS PRECISION
+syn keyword pl1Attribute PREC PRINT READONLY RECORD REFER RETURNS SEQUENTIAL SEQL
+syn keyword pl1Attribute STATIC STREAM STRUCTURE TRUNCATE UNALIGNED UNAL UNION UPDATE
+syn keyword pl1Attribute VARIABLE VARYING VAR COMPLEX CPLX REAL BINARY BIN BIT
+syn keyword pl1Attribute CHARACTER CHAR DECIMAL DEC DESCRIPTOR DESC DIMENSION DIM
+syn keyword pl1Attribute FIXED FLOAT OFFSET POINTER PTR REFERENCE VALUE VAL 
+
+" Functions
+syn keyword pl1Function AFTER ALL ANY BEFORE COMPLETION CPLN CONJG COUNT
+syn keyword pl1Function CURRENTSTORAGE CSTG DATAFIELD DECAT DOT ERF ERFC IMAG
+syn keyword pl1Function ONCOUNT ONFIELD ONLOC POLY PRIORITY REPEAT SAMEKEY STATUS
+syn keyword pl1Function STORAGE STG ABS ACOS ACTUALCOUNT ADD ADDR ADDREL ALLOCATION
+syn keyword pl1Function ALLOCN ASIN ATAN ATAND ATANH BOOL BYTE BYTESIZE CEIL COLLATE
+syn keyword pl1Function COPY COS COSD COSH DATE DATETIME DECODE DISPLAY DIVIDE EMPTY
+syn keyword pl1Function ENCODE ERROR EVERY EXP EXTEND FLOOR FLUSH FREE HBOUND HIGH
+syn keyword pl1Function INDEX INFORM INT LBOUND LENGTH LINE LINENO LOG LOG10 LOG2
+syn keyword pl1Function LOW LTRIM MAX MAXLENGTH MIN MOD MULTIPLY NEXT_VOLUME NULL
+syn keyword pl1Function ONARGSLIST ONCHAR ONCODE ONFILE ONKEY ONSOURCE PAGENO POSINT
+syn keyword pl1Function PRESENT PROD RANK RELEASE RESIGNAL REVERSE REWIND ROUND
+syn keyword pl1Function RTRIM SEARCH SIGN SIN SIND SINH SIZE SOME SPACEBLOCK SQRT
+syn keyword pl1Function STRING SUBSTR SUBTRACT SUM TAN TAND TANH TIME TRANSLATE TRIM
+syn keyword pl1Function TRUNC UNSPEC VALID VARIANT VERIFY WARN 
+
+" Other keywords
+syn keyword pl1Other ATTENTION ATTN C CONVERSION CONV DATA NAME NOCONVERSION
+syn keyword pl1Other NOCONV NOFIXEDOVERFLOW NOFOFL NOOVERFLOW NOSIZE
+syn keyword pl1Other NOSTRINGRANGE NOSTRG NOSTRINGSIZE NOSTRZ NOSUBSCRIPTRANGE
+syn keyword pl1Other NOSUBRG NOZERODIVIDE NOZDIV OVERFLOW OFL PENDING RECORD
+syn keyword pl1Other REENTRANT SIZE STRINGRANGE STRG STRINGSIZE STRZ
+syn keyword pl1Other SUBSCRIPTRANGE SUBRG TRANSMIT A ANYCONDITION APPEND B B1 B2
+syn keyword pl1Other B3 B4 BACKUP_DATE BATCH BLOCK_BOUNDARY_FORMAT BLOCK_IO
+syn keyword pl1Other BLOCK_SIZE BUCKET_SIZE BY CANCEL_CONTROL_O
+syn keyword pl1Other CARRIAGE_RETURN_FORMAT COLUMN COL CONTIGUOUS
+syn keyword pl1Other CONTIGUOUS_BEST_TRY CONVERSION CONV CREATION_DATE
+syn keyword pl1Other CURRENT_POSITION DEFAULT_FILE_NAME DEFERRED_WRITE E EDIT
+syn keyword pl1Other ENDFILE ENDPAGE EXPIRATION_DATE EXTENSION_SIZE F FAST_DELETE
+syn keyword pl1Other FILE_ID FILE_ID_TO FILE_SIZE FINISH FIXEDOVERFLOW FOFL
+syn keyword pl1Other FIXED_CONTROL_FROM FIXED_CONTROL_SIZE FIXED_CONTROL_SIZE_TO
+syn keyword pl1Other FIXED_CONTROL_TO FIXED_LENGTH_RECORDS FROM GROUP_PROTECTION
+syn keyword pl1Other IDENT IGNORE_LINE_MARKS IN INDEXED INDEX_NUMBER INITIAL_FILL
+syn keyword pl1Other INTO KEY KEYFROM KEYTO LINESIZE LOCK_ON_READ LOCK_ON_WRITE
+syn keyword pl1Other MAIN MANUAL_UNLOCKING MATCH_GREATER MATCH_GREATER_EQUAL
+syn keyword pl1Other MATCH_NEXT MATCH_NEXT_EQUAL MAXIMUM_RECORD_NUMBER
+syn keyword pl1Other MAXIMUM_RECORD_SIZE MULTIBLOCK_COUNT MULTIBUFFER_COUNT
+syn keyword pl1Other NOLOCK NONEXISTENT_RECORD NONRECURSIVE NO_ECHO NO_FILTER
+syn keyword pl1Other NO_SHARE OVERFLOW OFL OWNER_GROUP OWNER_ID OWNER_MEMBER
+syn keyword pl1Other OWNER_PROTECTION P PAGE PAGESIZE PRINTER_FORMAT PROMPT
+syn keyword pl1Other PURGE_TYPE_AHEAD R READ_AHEAD READ_CHECK READ_REGARDLESS
+syn keyword pl1Other RECORD_ID RECORD_ID_ACCESS RECORD_ID_TO RECURSIVE REPEAT
+syn keyword pl1Other RETRIEVAL_POINTERS REVISION_DATE REWIND_ON_CLOSE
+syn keyword pl1Other REWIND_ON_OPEN SCALARVARYING SET SHARED_READ SHARED_WRITE
+syn keyword pl1Other SKIP SPOOL STORAGE STRINGRANGE STRG SUBSCRIPTRANGE SUBRG
+syn keyword pl1Other SUPERSEDE SYSIN SYSPRINT SYSTEM_PROTECTION TAB TEMPORARY
+syn keyword pl1Other TIMEOUT_PERIOD TITLE TO UNDEFINEDFILE UNDF UNDERFLOW UFL
+syn keyword pl1Other UNTIL USER_OPEN VAXCONDITION WAIT_FOR_RECORD WHILE
+syn keyword pl1Other WORLD_PROTECTION WRITE_BEHIND WRITE_CHECK X ZERODIVIDE ZDIV 
+
+" PreProcessor keywords
+syn keyword pl1PreProc ACTIVATE DEACTIVATE DECLARE DCL DICTIONARY DO END ERROR
+syn keyword pl1PreProc FATAL GOTO IF INCLUDE INFORM LIST NOLIST PAGE PROCEDURE PROC
+syn keyword pl1PreProc REPLACE RETURN SBTTL TITLE WARN THEN ELSE 
+
+" Statements
+syn keyword pl1Statement CALL SUB ENTRY BY NAME CASE CHECK COPY DEFAULT DFT DELAY
+syn keyword pl1Statement DESCRIPTORS DISPLAY EXIT FETCH HALT IGNORE LIST LOCATE
+syn keyword pl1Statement NOCHECK NOLOCK NONE ORDER RANGE RELEASE REORDER REPLY SNAP
+syn keyword pl1Statement SYSTEM TAB UNLOCK WAIT ALLOCATE ALLOC BEGIN CALL CLOSE
+syn keyword pl1Statement DECLARE DCL DELETE DO ELSE END FORMAT GET GOTO GO TO IF
+syn keyword pl1Statement LEAVE NORESCAN ON OPEN OTHERWISE OTHER PROCEDURE PROC PUT
+syn keyword pl1Statement READ RESCAN RETURN REVERT REWRITE SELECT SIGNAL SNAP
+syn keyword pl1Statement STATEMENT STOP SYSTEM THEN WHEN WRITE 
+
+" PL1's own keywords
+" syn match   pl1Keyword "\<END\>"
+" syn match   pl1Keyword "\.COUNT\>"hs=s+1
+" syn match   pl1Keyword "\.EXISTS\>"hs=s+1
+" syn match   pl1Keyword "\.FIRST\>"hs=s+1
+" syn match   pl1Keyword "\.LAST\>"hs=s+1
+" syn match   pl1Keyword "\.DELETE\>"hs=s+1
+" syn match   pl1Keyword "\.PREV\>"hs=s+1
+" syn match   pl1Keyword "\.NEXT\>"hs=s+1
+
+if exists("pl1_highlight_triggers")
+    syn keyword pl1Trigger  INSERTING UPDATING DELETING
+endif
+
+" Conditionals.
+syn keyword pl1Conditional ELSIF ELSE IF
+syn match   pl1Conditional "\<END\s\+IF\>"
+
+" Loops.
+syn keyword pl1Repeat FOR LOOP WHILE FORALL
+syn match   pl1Repeat "\<END\s\+LOOP\>"
+
+" Various types of comments.
+" 20010723az: Added the ability to treat strings within comments just like
+" C does.
+if exists("c_comment_strings")
+    syntax match pl1CommentSkip contained "^\s*\*\($\|\s\+\)"
+    syntax region pl1CommentString contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=pl1CommentSkip
+    syntax region pl1Comment2String contained start=+L\="+ skip=+\\\\\|\\"+ end=+"+ end="$"
+    syntax region pl1CommentL start="--" skip="\\$" end="$" keepend contains=@pl1CommentGroup,pl1Comment2String,pl1CharLiteral,pl1BooleanLiteral,pl1NumbersCom,pl1SpaceError
+    syntax region pl1Comment start="/\*" end="\*/" contains=@pl1CommentGroup,pl1Comment2String,pl1CharLiteral,pl1BooleanLiteral,pl1NumbersCom,pl1SpaceError
+else
+    syntax region pl1CommentL start="--" skip="\\$" end="$" keepend contains=@pl1CommentGroup,pl1SpaceError
+    syntax region pl1Comment start="/\*" end="\*/" contains=@pl1CommentGroup,pl1SpaceError
+endif
+
+" 20010723az: These are the old comment commands ... commented out.
+" syn match   pl1Comment    "--.*$" contains=pl1Todo
+" syn region  pl1Comment    start="/\*" end="\*/" contains=pl1Todo
+syn sync ccomment pl1Comment
+syn sync ccomment pl1CommentL
+
+" To catch unterminated string literals.
+syn match   pl1StringError    "'.*$"
+
+" Various types of literals.
+" 20010723az: Added stuff for comment matching.
+syn match pl1Numbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=pl1IntLiteral,pl1FloatLiteral
+syn match pl1NumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=pl1IntLiteral,pl1FloatLiteral
+syn match pl1IntLiteral contained "[+-]\=\d\+"
+syn match pl1FloatLiteral contained "[+-]\=\d\+\.\d*"
+syn match pl1FloatLiteral contained "[+-]\=\d*\.\d*"
+"syn match pl1FloatLiteral "[+-]\=\([0-9]*\.[0-9]\+\|[0-9]\+\.[0-9]\+\)\(e[+-]\=[0-9]\+\)\="
+syn match   pl1CharLiteral    "'[^']'"
+syn match   pl1StringLiteral  "'\([^']\|''\)*'"
+syn keyword pl1BooleanLiteral TRUE FALSE NULL
+
+" The built-in types.
+syn keyword pl1Storage ANYDATA ANYTYPE BFILE BINARY_INTEGER BLOB BOOLEAN
+syn keyword pl1Storage BYTE CHAR CHARACTER CLOB CURSOR DATE DAY DEC DECIMAL
+syn keyword pl1Storage DOUBLE DSINTERVAL_UNCONSTRAINED FLOAT HOUR
+syn keyword pl1Storage INT INTEGER INTERVAL LOB LONG MINUTE
+syn keyword pl1Storage MLSLABEL MONTH NATURAL NATURALN NCHAR NCHAR_CS NCLOB
+syn keyword pl1Storage NUMBER NUMERIC NVARCHAR PLS_INT PLS_INTEGER
+syn keyword pl1Storage POSITIVE POSITIVEN PRECISION RAW REAL RECORD
+syn keyword pl1Storage SECOND SIGNTYPE SMALLINT STRING SYS_REFCURSOR TABLE TIME
+syn keyword pl1Storage TIMESTAMP TIMESTAMP_UNCONSTRAINED
+syn keyword pl1Storage TIMESTAMP_TZ_UNCONSTRAINED
+syn keyword pl1Storage TIMESTAMP_LTZ_UNCONSTRAINED UROWID VARCHAR
+syn keyword pl1Storage VARCHAR2 YEAR YMINTERVAL_UNCONSTRAINED ZONE
+
+" A type-attribute is really a type.
+" 20020916bp: Removed leading part of pattern to avoid highlighting the
+"             object
+syn match   pl1TypeAttribute  "%\(TYPE\|ROWTYPE\)\>"
+
+" All other attributes.
+syn match   pl1Attribute "%\(BULK_EXCEPTIONS\|BULK_ROWCOUNT\|ISOPEN\|FOUND\|NOTFOUND\|ROWCOUNT\)\>"
+
+" Catch errors caused by wrong parentheses and brackets
+" 20010723az: significantly more powerful than the values -- commented out
+" below the replaced values. This adds the C functionality to PL/SQL.
+syn cluster pl1ParenGroup contains=pl1ParenError,@pl1CommentGroup,pl1CommentSkip,pl1IntLiteral,pl1FloatLiteral,pl1NumbersCom
+if exists("c_no_bracket_error")
+    syn region pl1Paren transparent start='(' end=')' contains=ALLBUT,@pl1ParenGroup
+    syn match pl1ParenError ")"
+    syn match pl1ErrInParen contained "[{}]"
+else
+    syn region pl1Paren transparent start='(' end=')' contains=ALLBUT,@pl1ParenGroup,pl1ErrInBracket
+    syn match pl1ParenError "[\])]"
+    syn match pl1ErrInParen contained "[{}]"
+    syn region pl1Bracket transparent start='\[' end=']' contains=ALLBUT,@pl1ParenGroup,pl1ErrInParen
+    syn match pl1ErrInBracket contained "[);{}]"
+endif
+" syn region pl1Paren       transparent start='(' end=')' contains=ALLBUT,pl1ParenError
+" syn match pl1ParenError   ")"
+
+" Syntax Synchronizing
+syn sync minlines=10 maxlines=100
+
+" Define the default highlighting.
+" For version 5.x and earlier, only when not done already.
+" For version 5.8 and later, only when and item doesn't have highlighting
+" yet.
+if version >= 508 || !exists("did_pl1_syn_inits")
+    if version < 508
+        let did_pl1_syn_inits = 1
+        command -nargs=+ HiLink hi link <args>
+    else
+        command -nargs=+ HiLink hi def link <args>
+    endif
+
+    HiLink pl1Attribute       Macro
+    HiLink pl1BlockError      Error
+    HiLink pl1BooleanLiteral  Boolean
+    HiLink pl1CharLiteral     Character
+    HiLink pl1Comment         Comment
+    HiLink pl1CommentL        Comment
+    HiLink pl1Conditional     Conditional
+    HiLink pl1Error           Error
+    HiLink pl1ErrInBracket    Error
+    HiLink pl1ErrInBlock      Error
+    HiLink pl1ErrInParen      Error
+    HiLink pl1Exception       Function
+    HiLink pl1FloatLiteral    Float
+    HiLink pl1Function        Function
+    HiLink pl1Garbage         Error
+    HiLink pl1HostIdentifier  Label
+    HiLink pl1Identifier      Normal
+    HiLink pl1IntLiteral      Number
+    HiLink pl1Operator        Operator
+    HiLink pl1Paren           Normal
+    HiLink pl1ParenError      Error
+    HiLink pl1SpaceError      Error
+    HiLink pl1Pseudo          PreProc
+    HiLink pl1PreProc         PreProc
+    HiLink pl1PreProcSym      PreProc
+    HiLink pl1Keyword         Keyword
+    HiLink pl1Other           Keyword
+    HiLink pl1Repeat          Repeat
+    HiLink pl1Statement       Keyword
+    HiLink pl1Storage         StorageClass
+    HiLink pl1StringError     Error
+    HiLink pl1StringLiteral   String
+    HiLink pl1CommentString   String
+    HiLink pl1Comment2String  String
+    HiLink pl1Symbol          Normal
+    HiLink pl1Trigger         Function
+    HiLink pl1TypeAttribute   StorageClass
+    HiLink pl1Todo            Todo
+
+    delcommand HiLink
+endif
+
+let b:current_syntax = "pl1"
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -4,7 +4,7 @@
 " Previously:    Scott Bigham <dsb@killerbunnies.org>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013 May 30
+" Last Change:   2013 Jul 24
 
 " To add embedded POD documentation highlighting to your syntax file, add
 " the commands:
--- a/runtime/syntax/tt2.vim
+++ b/runtime/syntax/tt2.vim
@@ -3,7 +3,7 @@
 " Author:        Moriki, Atsushi <4woods+vim@gmail.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-05-12
+" Last Change:   2013 Jul 24
 "
 " Instration:
 "   put tt2.vim and tt2html.vim in to your syntax diretory.
--- a/runtime/syntax/tt2html.vim
+++ b/runtime/syntax/tt2html.vim
@@ -3,7 +3,7 @@
 " Author:        Moriki, Atsushi <4woods+vim@gmail.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2010-07-21
+" Last Change:   2013 Jul 24
 
 if exists("b:current_syntax")
     finish
--- a/runtime/syntax/tt2js.vim
+++ b/runtime/syntax/tt2js.vim
@@ -3,7 +3,7 @@
 " Author:        Yates, Peter <pd.yates@gmail.com>
 " Homepage:      http://github.com/vim-perl/vim-perl
 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change:   2013-04-10
+" Last Change:   2013 Jul 24
 
 if exists("b:current_syntax")
     finish