updated for version 7.0e01
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index e450412..d65ece8 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0e.  Last change: 2006 Apr 06
+*editing.txt*   For Vim version 7.0e.  Last change: 2006 Apr 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1213,7 +1213,7 @@
 Changing directory fails when the current buffer is modified, the '.' flag is
 present in 'cpoptions' and "!" is not used in the command.
 
-							*:cd* *E472*
+							*:cd* *E747* *E472*
 :cd[!]			On non-Unix systems: Print the current directory
 			name.  On Unix systems: Change the current directory
 			to the home directory.  Use |:pwd| to print the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 6b2b27e..a327261 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3958,6 +3958,7 @@
 E744	netbeans.txt	/*E744*
 E745	eval.txt	/*E745*
 E746	eval.txt	/*E746*
+E747	editing.txt	/*E747*
 E747	syntax.txt	/*E747*
 E748	repeat.txt	/*E748*
 E749	eval.txt	/*E749*
@@ -5615,6 +5616,7 @@
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	various.txt	/*help*
 help-context	help.txt	/*help-context*
+help-tags	tags	1
 help-translated	various.txt	/*help-translated*
 help-xterm-window	various.txt	/*help-xterm-window*
 help.txt	help.txt	/*help.txt*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0463dd6..599e370 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 15
+*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -862,6 +862,9 @@
 
 
 Problems that will (probably) not be solved:
+-   GTK: when using the popup menu with spelling suggestions and releasing the
+    right mouse button before the menu appears selecting an item with the
+    right mouse button has no effect.  GTK does not produce an event for this.
 -   xterm title: The following scenario may occur (esp. when running the Vim
     test script): Vim 1 sets the title to "file1", then restores the title to
     "xterm" with an ESC sequence when exiting.  Vim 2 obtains the old title
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 4cdd41f..6d0183d 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 16
+*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2514,4 +2514,10 @@
 When using ":vsp" or ":sp" the available space wasn't used equally between
 windows. (Servatius Brandt)
 
+Expanding <cWORD> on a trailing blank resulted in the first word in the line
+if 'encoding' is a multi-byte encoding.
+
+Spell checking: spellbadword() didn't see a missing capital in the first word
+of a line.  Popup menu now only suggest the capitalized word when appropriate.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/lang/menu_fr_fr.latin1.vim b/runtime/lang/menu_fr_fr.latin1.vim
index efca71b..e4b1bb8 100644
--- a/runtime/lang/menu_fr_fr.latin1.vim
+++ b/runtime/lang/menu_fr_fr.latin1.vim
@@ -1,7 +1,8 @@
 " Menu Translations:	Francais
 " Maintainer:		Adrien Beau <version.francaise@free.fr>
 " First Version:	Francois Thunus <thunus@systran.fr>
-" Last Change:		2003 May 29
+" Last Modification:    David Blanchet <david.blanchet@free.fr>
+" Last Change:		2006 Apr 11
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -24,6 +25,7 @@
 " -sep1-
 menutrans &Credits				&Remerciements
 menutrans Co&pying				&License
+menutrans &Sponsor/Register			Sponsor/&Enregistrement
 menutrans O&rphans				&Orphelins
 " -sep2-
 menutrans &Version				&Version
@@ -36,6 +38,7 @@
 
 menutrans &Open\.\.\.<Tab>:e			&Ouvrir\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp		Ouvrir\ à\ p&art\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew		Ouvrir\ dans\ un\ onglet\.\.\.<Tab>:tabnew
 menutrans &New<Tab>:enew			&Nouveau<Tab>:enew
 menutrans &Close<Tab>:close			&Fermer<Tab>:close
 " -SEP1-
@@ -64,7 +67,7 @@
 menutrans Put\ &Before<Tab>[p			Placer\ a&vant<Tab>[p
 menutrans Put\ &After<Tab>]p			Placer\ apr&ès<Tab>]p
 menutrans &Delete<Tab>x				Effa&cer<Tab>x
-menutrans &Select\ all<Tab>ggVG			&Sélectionner\ tout<Tab>ggVG
+menutrans &Select\ All<Tab>ggVG			&Sélectionner\ tout<Tab>ggVG
 " -SEP2-
 menutrans &Find\.\.\.				Rec&hercher\.\.\.
 menutrans Find\ and\ Rep&lace\.\.\.		Re&mplacer\.\.\.
@@ -133,6 +136,26 @@
 menutrans Build\ &Tags\ File			&Générer\ fichier\ d'étiquettes
 
 " -SEP1-
+menutrans &Spelling			&Orthographe
+menutrans &Spell\ Check\ On			&Activer
+menutrans Spell\ Check\ &Off			&Désactiver
+menutrans To\ &Next\ error<Tab>]s		À\ l'erreur\ &suivante<Tab>]s
+menutrans To\ &Previous\ error<Tab>[s		À\ l'erreur\ &précédente<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=		Suggérer\ &correction<Tab>z=
+menutrans &Repeat\ correction<Tab>:spellrepall	&Reporter\ la\ correction<Tab>:spellrepall
+
+an 40.335.205 &Tools.&Spelling.Français\ (fr)	:set spl=fr spell<CR>
+menutrans Set\ language\ to\ "en"		Anglais
+menutrans Set\ language\ to\ "en_au"		Anglais\ (en_au)
+menutrans Set\ language\ to\ "en_ca"		Anglais\ (en_ca)
+menutrans Set\ language\ to\ "en_gb"		Anglais\ (en_gb)
+menutrans Set\ language\ to\ "en_nz"		Anglais\ (en_nz)
+menutrans Set\ language\ to\ "en_us"		Anglais\ (en_us)
+
+menutrans &Find\ More\ Languages		&Trouver\ d'autres\ langues 
+
+
+
 menutrans &Folding				&Replis
 
 menutrans &Enable/Disable\ folds<Tab>zi			&Replis\ on/off<Tab>zi
@@ -185,7 +208,7 @@
 menutrans &Convert\ to\ HEX<Tab>:%!xxd		Convertir\ en\ he&xa<Tab>:%!xxd
 menutrans Conve&rt\ back<Tab>:%!xxd\ -r		Décon&vertir<Tab>:%!xxd\ -r
 
-menutrans &Set\ Compiler			Type\ de\ &compilateur
+menutrans Se&T\ Compiler			&Type\ de\ compilateur
 
 
 menutrans &Buffers			&Tampons
@@ -327,6 +350,7 @@
 
 menutrans &Syntax			&Syntaxe
 
+menutrans &Off					Désactiver
 menutrans &Manual				&Manuelle
 menutrans A&utomatic				&Automatique
 menutrans on/off\ for\ &This\ file		On/off\ pour\ &ce\ fichier
@@ -440,5 +464,5 @@
 menutrans &Off					&Off
 " -SEP3-
 menutrans Co&lor\ test				Tester\ les\ co&uleurs
-menutrans &Highlight\ test			Tester\ les\ g&roupes\ de\ surlignage
+menutrans &Highlight\ test			Tester\ les\ g&roupes\ de\ surbrillance
 menutrans &Convert\ to\ HTML			Con&vertir\ en\ HTML
diff --git a/runtime/menu.vim b/runtime/menu.vim
index bf95d61..d2b8b3d 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 16
+" Last Change:	2006 Apr 17
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -896,7 +896,11 @@
       call cursor(0, curcol)	" put the cursor back where it was
     endif
     if w != ''
-      let s:suglist = spellsuggest(w, 10)
+      if a == 'caps'
+	let s:suglist = [substitute(w, '.*', '\u&', '')]
+      else
+	let s:suglist = spellsuggest(w, 10)
+      endif
       if len(s:suglist) <= 0
 	call cursor(0, curcol)	" put the cursor back where it was
       else
diff --git a/runtime/syntax/automake.vim b/runtime/syntax/automake.vim
index ea09927..d0877a5 100644
--- a/runtime/syntax/automake.vim
+++ b/runtime/syntax/automake.vim
@@ -1,9 +1,16 @@
 " Vim syntax file
 " Language:	automake Makefile.am
-" Maintainer:	John Williams <jrw@pobox.com>
-" Last change:	2001 May 09
-
-
+" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer:	John Williams <jrw@pobox.com>
+" Last Change:	$LastChangedDate: 2006-04-16 22:06:40 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/automake.vim?op=file&rev=0&sc=0
+"
+" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
+"     it only because patches have been submitted for it by Debian users and the
+"     former maintainer was MIA (Missing In Action), taking over its
+"     maintenance was thus the only way to include those patches.
+"     If you care about this file, and have time to maintain it please do so!
+"
 " This script adds support for automake's Makefile.am format. It highlights
 " Makefile variables significant to automake as well as highlighting
 " autoconf-style @variable@ substitutions . Subsitutions are marked as errors
@@ -20,7 +27,7 @@
 
 syn match automakePrimary "^[A-Za-z0-9_]\+\(_PROGRAMS\|LIBRARIES\|_LIST\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_JAVA\|_LTLIBRARIES\)\s*="me=e-1
 syn match automakePrimary "^TESTS\s*="me=e-1
-syn match automakeSecondary "^[A-Za-z0-9_]\+\(_SOURCES\|_LDADD\|_LIBADD\|_LDFLAGS\|_DEPENDENCIES\)\s*="me=e-1
+syn match automakeSecondary "^[A-Za-z0-9_]\+\(_SOURCES\|_LDADD\|_LIBADD\|_LDFLAGS\|_DEPENDENCIES\|_CPPFLAGS\)\s*="me=e-1
 syn match automakeSecondary "^OMIT_DEPENDENCIES\s*="me=e-1
 syn match automakeExtra "^EXTRA_[A-Za-z0-9_]\+\s*="me=e-1
 syn match automakeOptions "^\(AUTOMAKE_OPTIONS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*="me=e-1
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
index 577b48d..24a9c96 100644
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -1,7 +1,9 @@
 " Vim syntax file
-" Language:	Debian changelog files
-" Maintainer:	Wichert Akkerman <wakkerma@debian.org>
-" Last Change:	30 April 2001
+" Language:    Debian changelog files
+" Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer: Wichert Akkerman <wakkerma@debian.org>
+" Last Change: $LastChangedDate: 2006-04-16 21:50:31 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/debchangelog.vim?op=file&rev=0&sc=0
 
 " Standard syntax initialization
 if version < 600
@@ -15,10 +17,10 @@
 
 " Define some common expressions we can use later on
 syn match debchangelogName	contained "^[[:alpha:]][[:alnum:].+-]\+ "
-syn match debchangelogUrgency	contained "; urgency=\(low\|medium\|high\|critical\)"
-syn match debchangelogTarget	contained "\( stable\| frozen\| unstable\| experimental\)\+"
+syn match debchangelogUrgency	contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
+syn match debchangelogTarget	contained "\( stable\| frozen\| unstable\| testing-proposed-updates\| experimental\| sarge-backports\| sarge-volatile\| stable-security\| testing-security\)\+"
 syn match debchangelogVersion	contained "(.\{-})"
-syn match debchangelogCloses	contained "closes:\s*\(bug\)\=#\s\=\d\+\(,\s*\(bug\)\=#\s\=\d\+\)*"
+syn match debchangelogCloses	contained "closes:\s*\(bug\)\=#\=\s\=\d\+\(,\s*\(bug\)\=#\=\s\=\d\+\)*"
 syn match debchangelogEmail	contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
 syn match debchangelogEmail	contained "<.\{-}>"
 
diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim
index bc04ae9..4ae3a93 100644
--- a/runtime/syntax/doxygen.vim
+++ b/runtime/syntax/doxygen.vim
@@ -48,520 +48,517 @@
 endif
 
 let s:cpo_save = &cpo
-set cpo&vim
+try
+  set cpo&vim
 
-" Start of Doxygen syntax hilighting:
-"
+  " Start of Doxygen syntax hilighting:
+  "
 
-" C/C++ Style line comments
-syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend
-syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2
-syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl
-syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial
+  " C/C++ Style line comments
+  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend
+  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2
+  syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl
+  syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial
 
-" Single line brief followed by multiline comment.
-syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend
-" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
-syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
+  " Single line brief followed by multiline comment.
+  syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend
+  " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
+  syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
 
-" Skip empty lines at the start for when comments start on the 2nd/3rd line.
-syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
-syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
-syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
+  " Skip empty lines at the start for when comments start on the 2nd/3rd line.
+  syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
+  syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
+  syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
 
-" Match the Starting pattern (effectively creating the start of a BNF)
-if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
-  syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-else
-  syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-endif
-syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
-
-" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
-syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-
-" Match the first sentence as a brief comment
-if ! exists('g:doxygen_end_punctuation')
-  let g:doxygen_end_punctuation='[.]'
-endif
-exe 'syn region doxygenBrief contained start=+[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink  skipnl nextgroup=doxygenBody'
-
-syn match doxygenBriefEndComment +\*/+ contained
-
-exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup keepend'
-
-syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink  skipwhite keepend
-
-" Match a '<' for applying a comment to the previous element.
-syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenSpecial,doxygenStartSkip skipwhite
-syn match doxygenPrevL +<+ contained  nextgroup=doxygenBriefL,doxygenSpecial skipwhite
-
-" These are anti-doxygen comments.  If there are more than two asterisks or 3 '/'s
-" then turn the comments back into normal C comments.
-syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
-syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
-
-" Special commands at the start of the area:  starting with '@' or '\'
-syn region doxygenStartSpecial contained start=+[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1  contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
-syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
-
-"syn region doxygenBodyBit contained start=+$+
-
-" The main body of a doxygen comment.
-syn region doxygenBody contained start=+.\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup
-
-" These allow the skipping of comment continuation '*' characters.
-syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
-
-" Catch a Brief comment without punctuation - flag it as an error but
-" make sure the end comment is picked up also.
-syn match doxygenErrorComment contained +\*/+
-
-
-" Skip empty lines at the start for when comments start on the 2nd/3rd line.
-if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
-  syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-  syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-else
-  syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
-  syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
-endif
-
-" Match an [@\]brief so that it moves to body-mode.
-"
-"
-" syn match doxygenBriefLine  contained
-syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
-syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
-
-
-" Create the single word matching special identifiers.
-
-fun! s:DxyCreateSmallSpecial( kword, name )
-
-  let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
-  exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
-  exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial keepend'
-endfun
-call s:DxyCreateSmallSpecial('p', 'Code')
-call s:DxyCreateSmallSpecial('c', 'Code')
-call s:DxyCreateSmallSpecial('b', 'Bold')
-call s:DxyCreateSmallSpecial('e', 'Emphasised')
-call s:DxyCreateSmallSpecial('em', 'Emphasised')
-call s:DxyCreateSmallSpecial('a', 'Argument')
-call s:DxyCreateSmallSpecial('ref', 'Ref')
-delfun s:DxyCreateSmallSpecial
-
-syn match doxygenSmallSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
-
-" Now for special characters
-syn match doxygenSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
-" doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
-"
-syn match doxygenGroupDefine contained +@\@<=[{}]+
-syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
-
-syn match doxygenErrorSpecial contained +\s+
-
-" Match Parmaters and retvals (hilighting the first word as special).
-syn match doxygenParamDirection contained +\[\(\<in\>\|\<out\>\|,\)\+\]+ nextgroup=doxygenParamName skipwhite
-syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
-syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
-syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
-
-" Match one line identifiers.
-syn keyword doxygenOther contained addindex anchor
-\ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
-\ example htmlonly image include ingroup internal latexonly line
-\ overload relates relatesalso sa skip skipline
-\ until verbinclude version addtogroup htmlinclude copydoc dotfile
-\ xmlonly endxmlonly
-\ nextgroup=doxygenSpecialOnelineDesc
-
-syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment
-syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
-
-syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment
-syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
-
-let b:doxygen_syntax_save=b:current_syntax
-unlet b:current_syntax
-syn include @Dotx syntax/dot.vim
-let b:current_syntax=b:doxygen_syntax_save
-unlet b:doxygen_syntax_save
-syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@Dotx
-syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
-
-" Match single line identifiers.
-syn keyword doxygenBOther contained class enum file fn mainpage interface
-\ namespace struct typedef union var def name
-\ nextgroup=doxygenSpecialTypeOnelineDesc
-
-syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
-syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
-
-syn keyword doxygenOther contained arg author date deprecated li return see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
-syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
-syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
-syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
-
-" Handle \link, \endlink, hilighting the link-to and the link text bits separately.
-syn region doxygenOtherLink matchgroup=doxygenOther start=+link+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
-syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
-
-syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
-syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
-syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
-syn match doxygenLinkError "\*/" contained
-" #Link hilighting.
-syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
-syn match doxygenHashSpecial /#/ contained
-syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
-
-" Handle \page.  This does not use doxygenBrief.
-syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
-syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
-syn region doxygenPageDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
-syn match doxygenPageIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenPageDesc
-
-" Handle section
-syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
-syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
-syn match doxygenSpecialIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
-
-" Does the one-line description for the one-line type identifiers.
-syn region doxygenSpecialTypeOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
-syn region doxygenSpecialOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
-
-" Handle the multiline description for the multiline type identifiers.
-" Continue until an 'empty' line (can contain a '*' continuation) or until the
-" next whole-line @ command \ command.
-syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([pcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup  skipwhite keepend
-syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
-
-" Handle special cases  'bold' and 'group'
-syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
-syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
-syn match doxygenSpecialHeading +.\++ contained skipwhite
-syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
-syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
-
-" Handle special symbol identifiers  @$, @\, @$ etc
-syn match doxygenSymbol contained +[$\\&<>#]+
-
-" Simplistic handling of formula regions
-syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
-syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
-syn match doxygenFormulaEscaped contained "."
-syn match doxygenFormulaKeyword contained  "[a-z]\+"
-syn match doxygenFormulaOperator contained +[_^]+
-
-syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
-syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
-
-" Add TODO hilighting.
-syn keyword doxygenTODO contained TODO README XXX FIXME
-
-" Supported HTML subset.  Not perfect, but okay.
-syn case ignore
-syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar
-syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
-syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
-syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
-syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
-syn case match
-syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
-
-syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
-
-syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
-" Html Support
-syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
-hi link doxygenHtmlLink Underlined
-
-syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
-syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
-syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
-syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
-syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
-syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
-syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
-syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
-
-syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic
-syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
-syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
-syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold
-syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold
-syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
-syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
-syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
-syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
-
-syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline
-syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
-syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
-syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
-syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop
-syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold
-syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
-syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
-
-syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop
-
-" Prevent the doxygen contained matches from leaking into the c groups.
-syn cluster cParenGroup add=doxygen.*
-syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
-syn cluster cPreProcGroup add=doxygen.*
-syn cluster cMultiGroup add=doxygen.*
-syn cluster rcParenGroup add=doxygen.*
-syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
-syn cluster rcGroup add=doxygen.*
-
-" Trick to force special doxygen hilighting if the background changes (need to
-" syn clear first)
-if !exists(':SynColor') 
-  if exists("did_doxygen_syntax_inits")
-    if did_doxygen_syntax_inits != &background && synIDattr(highlightID('doxygen_Dummy'), 'fg', 'gui')==''
-      command -nargs=+ SynColor hi <args>
-      unlet did_doxygen_syntax_inits
-    endif
+  " Match the Starting pattern (effectively creating the start of a BNF)
+  if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
+    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
   else
-      command -nargs=+ SynColor hi def <args>
+    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
   endif
-endif
+  syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
 
-if !exists("did_doxygen_syntax_inits")
-  command -nargs=+ SynLink hi def link <args>
-  let did_doxygen_syntax_inits = &background
-  hi doxygen_Dummy guifg=black
+  " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
+  syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
 
-  fun! s:Doxygen_Hilights_Base()
-    SynLink doxygenHtmlSpecial Special
-    SynLink doxygenHtmlVar Type
-    SynLink doxygenHtmlExpr String
+  " Match the first sentence as a brief comment
+  if ! exists('g:doxygen_end_punctuation')
+    let g:doxygen_end_punctuation='[.]'
+  endif
+  exe 'syn region doxygenBrief contained start=+[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink  skipnl nextgroup=doxygenBody'
 
-    SynLink doxygenSmallSpecial SpecialChar
+  syn match doxygenBriefEndComment +\*/+ contained
 
-    SynLink doxygenSpecialCodeWord doxygenSmallSpecial
-    SynLink doxygenSpecialBoldWord doxygenSmallSpecial
-    SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
-    SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
+  exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup keepend'
 
-    " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
-    SynLink doxygenFormulaKeyword Keyword
-    "SynColor doxygenFormulaEscaped  ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
-    SynLink doxygenFormulaEscaped Special
-    SynLink doxygenFormulaOperator Operator
-    SynLink doxygenFormula Statement
-    SynLink doxygenSymbol Constant
-    SynLink doxygenSpecial Special
-    SynLink doxygenFormulaSpecial Special
-    "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
+  syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink  skipwhite keepend
+
+  " Match a '<' for applying a comment to the previous element.
+  syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenSpecial,doxygenStartSkip skipwhite
+  syn match doxygenPrevL +<+ contained  nextgroup=doxygenBriefL,doxygenSpecial skipwhite
+
+  " These are anti-doxygen comments.  If there are more than two asterisks or 3 '/'s
+  " then turn the comments back into normal C comments.
+  syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
+  syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
+
+  " Special commands at the start of the area:  starting with '@' or '\'
+  syn region doxygenStartSpecial contained start=+[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1  contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
+  syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
+
+  "syn region doxygenBodyBit contained start=+$+
+
+  " The main body of a doxygen comment.
+  syn region doxygenBody contained start=+.\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup
+
+  " These allow the skipping of comment continuation '*' characters.
+  syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
+
+  " Catch a Brief comment without punctuation - flag it as an error but
+  " make sure the end comment is picked up also.
+  syn match doxygenErrorComment contained +\*/+
+
+
+  " Skip empty lines at the start for when comments start on the 2nd/3rd line.
+  if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
+    syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+    syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+  else
+    syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
+    syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
+  endif
+
+  " Match an [@\]brief so that it moves to body-mode.
+  "
+  "
+  " syn match doxygenBriefLine  contained
+  syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
+  syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
+
+
+  " Create the single word matching special identifiers.
+
+  fun! s:DxyCreateSmallSpecial( kword, name )
+
+    let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
+    exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
+    exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial keepend'
   endfun
-  call s:Doxygen_Hilights_Base()
+  call s:DxyCreateSmallSpecial('p', 'Code')
+  call s:DxyCreateSmallSpecial('c', 'Code')
+  call s:DxyCreateSmallSpecial('b', 'Bold')
+  call s:DxyCreateSmallSpecial('e', 'Emphasised')
+  call s:DxyCreateSmallSpecial('em', 'Emphasised')
+  call s:DxyCreateSmallSpecial('a', 'Argument')
+  call s:DxyCreateSmallSpecial('ref', 'Ref')
+  delfun s:DxyCreateSmallSpecial
 
-  fun! s:Doxygen_Hilights()
-    " Pick a sensible default for 'codeword'.
-    let font=''
-    if exists('g:doxygen_codeword_font')
-      if g:doxygen_codeword_font !~ '\<\k\+='
-        let font='font='.g:doxygen_codeword_font
+  syn match doxygenSmallSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
+
+  " Now for special characters
+  syn match doxygenSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
+  " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
+  "
+  syn match doxygenGroupDefine contained +@\@<=[{}]+
+  syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
+
+  syn match doxygenErrorSpecial contained +\s+
+
+  " Match Parmaters and retvals (hilighting the first word as special).
+  syn match doxygenParamDirection contained +\[\(\<in\>\|\<out\>\|,\)\+\]+ nextgroup=doxygenParamName skipwhite
+  syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
+  syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
+  syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
+
+  " Match one line identifiers.
+  syn keyword doxygenOther contained addindex anchor
+  \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
+  \ example htmlonly image include ingroup internal latexonly line
+  \ overload relates relatesalso sa skip skipline
+  \ until verbinclude version addtogroup htmlinclude copydoc dotfile
+  \ xmlonly endxmlonly
+  \ nextgroup=doxygenSpecialOnelineDesc
+
+  syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment
+  syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
+
+  syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment
+  syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
+
+  let b:doxygen_syntax_save=b:current_syntax
+  unlet b:current_syntax
+  syn include @Dotx syntax/dot.vim
+  let b:current_syntax=b:doxygen_syntax_save
+  unlet b:doxygen_syntax_save
+  syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@Dotx
+  syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
+
+  " Match single line identifiers.
+  syn keyword doxygenBOther contained class enum file fn mainpage interface
+  \ namespace struct typedef union var def name
+  \ nextgroup=doxygenSpecialTypeOnelineDesc
+
+  syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
+  syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
+
+  syn keyword doxygenOther contained arg author date deprecated li return see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
+  syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
+  syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
+  syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
+
+  " Handle \link, \endlink, hilighting the link-to and the link text bits separately.
+  syn region doxygenOtherLink matchgroup=doxygenOther start=+link+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
+  syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
+
+  syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
+  syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
+  syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
+  syn match doxygenLinkError "\*/" contained
+  " #Link hilighting.
+  syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
+  syn match doxygenHashSpecial /#/ contained
+  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
+
+  " Handle \page.  This does not use doxygenBrief.
+  syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
+  syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
+  syn region doxygenPageDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
+  syn match doxygenPageIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenPageDesc
+
+  " Handle section
+  syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
+  syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
+  syn match doxygenSpecialIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
+
+  " Does the one-line description for the one-line type identifiers.
+  syn region doxygenSpecialTypeOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
+  syn region doxygenSpecialOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
+
+  " Handle the multiline description for the multiline type identifiers.
+  " Continue until an 'empty' line (can contain a '*' continuation) or until the
+  " next whole-line @ command \ command.
+  syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([pcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup  skipwhite keepend
+  syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
+
+  " Handle special cases  'bold' and 'group'
+  syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
+  syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
+  syn match doxygenSpecialHeading +.\++ contained skipwhite
+  syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
+  syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
+
+  " Handle special symbol identifiers  @$, @\, @$ etc
+  syn match doxygenSymbol contained +[$\\&<>#]+
+
+  " Simplistic handling of formula regions
+  syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
+  syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
+  syn match doxygenFormulaEscaped contained "."
+  syn match doxygenFormulaKeyword contained  "[a-z]\+"
+  syn match doxygenFormulaOperator contained +[_^]+
+
+  syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
+  syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
+
+  " Add TODO hilighting.
+  syn keyword doxygenTODO contained TODO README XXX FIXME
+
+  " Supported HTML subset.  Not perfect, but okay.
+  syn case ignore
+  syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar
+  syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
+  syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
+  syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
+  syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
+  syn case match
+  syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
+
+  syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
+
+  syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
+  " Html Support
+  syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
+  hi link doxygenHtmlLink Underlined
+
+  syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
+  syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
+  syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
+  syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
+  syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
+  syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
+  syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
+  syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
+
+  syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic
+  syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
+  syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
+  syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold
+  syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold
+  syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
+  syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
+  syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
+  syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
+
+  syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline
+  syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
+  syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
+  syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
+  syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop
+  syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold
+  syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
+  syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
+
+  syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop
+
+  " Prevent the doxygen contained matches from leaking into the c groups.
+  syn cluster cParenGroup add=doxygen.*
+  syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
+  syn cluster cPreProcGroup add=doxygen.*
+  syn cluster cMultiGroup add=doxygen.*
+  syn cluster rcParenGroup add=doxygen.*
+  syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
+  syn cluster rcGroup add=doxygen.*
+
+  let s:my_syncolor=0
+  if !exists(':SynColor') 
+    command -nargs=+ SynColor hi def <args>
+    let s:my_syncolor=1
+  endif
+
+  let s:my_synlink=0
+  if !exists(':SynLink')
+    command -nargs=+ SynLink hi def link <args>
+    let s:my_synlink=1
+  endif
+
+  try
+    "let did_doxygen_syntax_inits = &background
+    hi doxygen_Dummy guifg=black
+
+    fun! s:Doxygen_Hilights_Base()
+      SynLink doxygenHtmlSpecial Special
+      SynLink doxygenHtmlVar Type
+      SynLink doxygenHtmlExpr String
+
+      SynLink doxygenSmallSpecial SpecialChar
+
+      SynLink doxygenSpecialCodeWord doxygenSmallSpecial
+      SynLink doxygenSpecialBoldWord doxygenSmallSpecial
+      SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
+      SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
+
+      " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
+      SynLink doxygenFormulaKeyword Keyword
+      "SynColor doxygenFormulaEscaped  ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
+      SynLink doxygenFormulaEscaped Special
+      SynLink doxygenFormulaOperator Operator
+      SynLink doxygenFormula Statement
+      SynLink doxygenSymbol Constant
+      SynLink doxygenSpecial Special
+      SynLink doxygenFormulaSpecial Special
+      "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
+    endfun
+    call s:Doxygen_Hilights_Base()
+
+    fun! s:Doxygen_Hilights()
+      " Pick a sensible default for 'codeword'.
+      let font=''
+      if exists('g:doxygen_codeword_font')
+        if g:doxygen_codeword_font !~ '\<\k\+='
+          let font='font='.g:doxygen_codeword_font
+        else
+          let font=g:doxygen_codeword_font
+        endif
       else
-        let font=g:doxygen_codeword_font
-      endif
-    else
-      " Try and pick a font (only some platforms have been tested).
-      if has('gui_running')
-        if has('gui_gtk2')
-          if &guifont == ''
-            let font="font='FreeSerif 12'"
-          else
-            let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
-          endif
+        " Try and pick a font (only some platforms have been tested).
+        if has('gui_running')
+          if has('gui_gtk2')
+            if &guifont == ''
+              let font="font='FreeSerif 12'"
+            else
+              let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
+            endif
 
-        elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
-          if &guifont == ''
-            let font='font=Lucida_Console:h10'
-          else
-            let font='font='.substitute(&guifont, '^[^:]*', 'Lucida_Console','')
+          elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
+            if &guifont == ''
+              let font='font=Lucida_Console:h10'
+            else
+              let font='font='.substitute(&guifont, '^[^:]*', 'Lucida_Console','')
+            endif
+          elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
+            if &guifont == ''
+              let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
+            else
+            " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
+            " The above line works, but it is hard to expect the combination of
+            " the two fonts will look good.
+            endif
+          elseif has('gui_kde')
+            " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
           endif
-        elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
-          if &guifont == ''
-            let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
-          else
-          " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
-          " The above line works, but it is hard to expect the combination of
-          " the two fonts will look good.
-          endif
-        elseif has('gui_kde')
-          " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
         endif
       endif
-    endif
-    if font=='' | let font='gui=bold' | endif
-    exe 'SynColor doxygenCodeWord             term=bold cterm=bold '.font
-    if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
-      if &background=='light'
-        SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
-        SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
-        SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
-        SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
-        SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
-        SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
-        SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
-        SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
-        SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
-        SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
+      if font=='' | let font='gui=bold' | endif
+      exe 'SynColor doxygenCodeWord             term=bold cterm=bold '.font
+      if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
+        if &background=='light'
+          SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
+          SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
+          SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
+          SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
+          SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
+          SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
+          SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
+          SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
+          SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
+          SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
+        else
+          SynColor doxygenComment ctermfg=LightRed guifg=LightRed
+          SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
+          SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
+          SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
+          SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
+          SynColor doxygenParam ctermfg=LightGray guifg=LightGray
+          SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
+          SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
+          SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
+          SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
+        endif
       else
-        SynColor doxygenComment ctermfg=LightRed guifg=LightRed
-        SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
-        SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
-        SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
-        SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
-        SynColor doxygenParam ctermfg=LightGray guifg=LightGray
-        SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
-        SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
-        SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
-        SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
+        SynLink doxygenComment SpecialComment
+        SynLink doxygenBrief Statement
+        SynLink doxygenBody Comment
+        SynLink doxygenSpecialTypeOnelineDesc Statement
+        SynLink doxygenBOther Constant
+        SynLink doxygenParam SpecialComment
+        SynLink doxygenParamName Underlined
+        SynLink doxygenSpecialOnelineDesc Statement
+        SynLink doxygenSpecialHeading Statement
+        SynLink doxygenPrev SpecialComment
       endif
-    else
-      SynLink doxygenComment SpecialComment
-      SynLink doxygenBrief Statement
-      SynLink doxygenBody Comment
-      SynLink doxygenSpecialTypeOnelineDesc Statement
-      SynLink doxygenBOther Constant
-      SynLink doxygenParam SpecialComment
-      SynLink doxygenParamName Underlined
-      SynLink doxygenSpecialOnelineDesc Statement
-      SynLink doxygenSpecialHeading Statement
-      SynLink doxygenPrev SpecialComment
+    endfun
+
+    call s:Doxygen_Hilights()
+
+    " This is still a proposal, but won't do any harm.
+    aug doxygengroup
+    au!
+    au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
+    au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
+    aug END
+
+
+    SynLink doxygenBody                   Comment
+    SynLink doxygenTODO                   Todo
+    SynLink doxygenOtherTODO              Todo
+    SynLink doxygenOtherWARN              Todo
+    SynLink doxygenOtherBUG               Todo
+
+    SynLink doxygenErrorSpecial           Error
+    SynLink doxygenErrorEnd               Error
+    SynLink doxygenErrorComment           Error
+    SynLink doxygenLinkError              Error
+    SynLink doxygenBriefSpecial           doxygenSpecial
+    SynLink doxygenHashSpecial            doxygenSpecial
+    SynLink doxygenGroupDefineSpecial     doxygenSpecial
+    SynLink doxygenEndlinkSpecial         doxygenSpecial
+    SynLink doxygenCodeRegionSpecial      doxygenSpecial
+    SynLink doxygenVerbatimRegionSpecial  doxygenSpecial
+    SynLink doxygenGroupDefine            doxygenParam
+
+    SynLink doxygenSpecialMultilineDesc   doxygenSpecialOnelineDesc
+    SynLink doxygenFormulaEnds            doxygenSpecial
+    SynLink doxygenBold                   doxygenParam
+    SynLink doxygenBriefWord              doxygenParam
+    SynLink doxygenRetval                 doxygenParam
+    SynLink doxygenOther                  doxygenParam
+    SynLink doxygenStart                  doxygenComment
+    SynLink doxygenStart2                 doxygenStart
+    SynLink doxygenComment2               doxygenComment
+    SynLink doxygenCommentL               doxygenComment
+    SynLink doxygenContinueComment        doxygenComment
+    SynLink doxygenSpecialContinueComment doxygenComment
+    SynLink doxygenSkipComment            doxygenComment
+    SynLink doxygenEndComment             doxygenComment
+    SynLink doxygenStartL                 doxygenComment
+    SynLink doxygenBriefEndComment        doxygenComment
+    SynLink doxygenPrevL                  doxygenPrev
+    SynLink doxygenBriefL                 doxygenBrief
+    SynLink doxygenBriefLine              doxygenBrief
+    SynLink doxygenHeaderLine             doxygenSpecialHeading
+    SynLink doxygenStartSkip              doxygenContinueComment
+    SynLink doxygenLinkWord               doxygenParamName
+    SynLink doxygenLinkRest               doxygenSpecialMultilineDesc
+    SynLink doxygenHyperLink              doxygenLinkWord
+    SynLink doxygenHashLink               doxygenLinkWord
+
+    SynLink doxygenPage                   doxygenSpecial
+    SynLink doxygenPagePage               doxygenBOther
+    SynLink doxygenPageIdent              doxygenParamName
+    SynLink doxygenPageDesc               doxygenSpecialTypeOnelineDesc
+
+    SynLink doxygenSpecialIdent           doxygenPageIdent
+    SynLink doxygenSpecialSectionDesc     doxygenSpecialMultilineDesc
+
+    SynLink doxygenSpecialRefWord         doxygenOther
+    SynLink doxygenRefWord                doxygenPageIdent
+    SynLink doxygenContinueLinkComment    doxygenComment
+
+    SynLink doxygenHtmlCh                 Function
+    SynLink doxygenHtmlCmd                Statement
+    SynLink doxygenHtmlBoldItalicUnderline     doxygenHtmlBoldUnderlineItalic
+    SynLink doxygenHtmlUnderlineBold           doxygenHtmlBoldUnderline
+    SynLink doxygenHtmlUnderlineItalicBold     doxygenHtmlBoldUnderlineItalic
+    SynLink doxygenHtmlUnderlineBoldItalic     doxygenHtmlBoldUnderlineItalic
+    SynLink doxygenHtmlItalicUnderline         doxygenHtmlUnderlineItalic
+    SynLink doxygenHtmlItalicBold              doxygenHtmlBoldItalic
+    SynLink doxygenHtmlItalicBoldUnderline     doxygenHtmlBoldUnderlineItalic
+    SynLink doxygenHtmlItalicUnderlineBold     doxygenHtmlBoldUnderlineItalic
+    SynLink doxygenHtmlLink                    Underlined
+
+    SynLink doxygenParamDirection              StorageClass
+
+
+    if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
+      SynColor doxygenBoldWord             term=bold cterm=bold gui=bold
+      SynColor doxygenEmphasisedWord       term=italic cterm=italic gui=italic
+      SynLink  doxygenArgumentWord         doxygenEmphasisedWord
+      SynLink  doxygenHtmlCode             doxygenCodeWord
+      SynLink  doxygenHtmlBold             doxygenBoldWord
+      SynColor doxygenHtmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
+      SynColor doxygenHtmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
+      SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
+      SynColor doxygenHtmlUnderline        term=underline cterm=underline gui=underline
+      SynColor doxygenHtmlUnderlineItalic  term=italic,underline cterm=italic,underline gui=italic,underline
+      SynColor doxygenHtmlItalic           term=italic cterm=italic gui=italic
     endif
-  endfun
-  fun! s:Doxygen_ResetSyntax()
-    if exists("did_doxygen_syntax_inits")
-      unlet did_doxygen_syntax_inits
-    endif
-  endfun
 
-  call s:Doxygen_Hilights()
-  " This is still a proposal, but won't do any harm.
-  au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
-  au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
-  "au User Syntax_UserColor_off nested call s:Doxygen_ResetSyntax()
+  finally
+    if s:my_synlink | delcommand SynLink | endif
+    if s:my_syncolor | delcommand SynColor | endif
+  endtry
 
-
-  SynLink doxygenBody                   Comment
-  SynLink doxygenTODO                   Todo
-  SynLink doxygenOtherTODO              Todo
-  SynLink doxygenOtherWARN              Todo
-  SynLink doxygenOtherBUG               Todo
-
-  SynLink doxygenErrorSpecial           Error
-  SynLink doxygenErrorEnd               Error
-  SynLink doxygenErrorComment           Error
-  SynLink doxygenLinkError              Error
-  SynLink doxygenBriefSpecial           doxygenSpecial
-  SynLink doxygenHashSpecial            doxygenSpecial
-  SynLink doxygenGroupDefineSpecial     doxygenSpecial
-  SynLink doxygenEndlinkSpecial         doxygenSpecial
-  SynLink doxygenCodeRegionSpecial      doxygenSpecial
-  SynLink doxygenVerbatimRegionSpecial  doxygenSpecial
-  SynLink doxygenGroupDefine            doxygenParam
-
-  SynLink doxygenSpecialMultilineDesc   doxygenSpecialOnelineDesc
-  SynLink doxygenFormulaEnds            doxygenSpecial
-  SynLink doxygenBold                   doxygenParam
-  SynLink doxygenBriefWord              doxygenParam
-  SynLink doxygenRetval                 doxygenParam
-  SynLink doxygenOther                  doxygenParam
-  SynLink doxygenStart                  doxygenComment
-  SynLink doxygenStart2                 doxygenStart
-  SynLink doxygenComment2               doxygenComment
-  SynLink doxygenCommentL               doxygenComment
-  SynLink doxygenContinueComment        doxygenComment
-  SynLink doxygenSpecialContinueComment doxygenComment
-  SynLink doxygenSkipComment            doxygenComment
-  SynLink doxygenEndComment             doxygenComment
-  SynLink doxygenStartL                 doxygenComment
-  SynLink doxygenBriefEndComment        doxygenComment
-  SynLink doxygenPrevL                  doxygenPrev
-  SynLink doxygenBriefL                 doxygenBrief
-  SynLink doxygenBriefLine              doxygenBrief
-  SynLink doxygenHeaderLine             doxygenSpecialHeading
-  SynLink doxygenStartSkip              doxygenContinueComment
-  SynLink doxygenLinkWord               doxygenParamName
-  SynLink doxygenLinkRest               doxygenSpecialMultilineDesc
-  SynLink doxygenHyperLink              doxygenLinkWord
-  SynLink doxygenHashLink               doxygenLinkWord
-
-  SynLink doxygenPage                   doxygenSpecial
-  SynLink doxygenPagePage               doxygenBOther
-  SynLink doxygenPageIdent              doxygenParamName
-  SynLink doxygenPageDesc               doxygenSpecialTypeOnelineDesc
-
-  SynLink doxygenSpecialIdent           doxygenPageIdent
-  SynLink doxygenSpecialSectionDesc     doxygenSpecialMultilineDesc
-
-  SynLink doxygenSpecialRefWord         doxygenOther
-  SynLink doxygenRefWord                doxygenPageIdent
-  SynLink doxygenContinueLinkComment    doxygenComment
-
-  SynLink doxygenHtmlCh                 Function
-  SynLink doxygenHtmlCmd                Statement
-  SynLink doxygenHtmlBoldItalicUnderline     doxygenHtmlBoldUnderlineItalic
-  SynLink doxygenHtmlUnderlineBold           doxygenHtmlBoldUnderline
-  SynLink doxygenHtmlUnderlineItalicBold     doxygenHtmlBoldUnderlineItalic
-  SynLink doxygenHtmlUnderlineBoldItalic     doxygenHtmlBoldUnderlineItalic
-  SynLink doxygenHtmlItalicUnderline         doxygenHtmlUnderlineItalic
-  SynLink doxygenHtmlItalicBold              doxygenHtmlBoldItalic
-  SynLink doxygenHtmlItalicBoldUnderline     doxygenHtmlBoldUnderlineItalic
-  SynLink doxygenHtmlItalicUnderlineBold     doxygenHtmlBoldUnderlineItalic
-  SynLink doxygenHtmlLink                    Underlined
-
-  SynLink doxygenParamDirection              StorageClass
-
-
-  if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
-    SynColor doxygenBoldWord             term=bold cterm=bold gui=bold
-    SynColor doxygenEmphasisedWord       term=italic cterm=italic gui=italic
-    SynLink  doxygenArgumentWord         doxygenEmphasisedWord
-    SynLink  doxygenHtmlCode             doxygenCodeWord
-    SynLink  doxygenHtmlBold             doxygenBoldWord
-    SynColor doxygenHtmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
-    SynColor doxygenHtmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
-    SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
-    SynColor doxygenHtmlUnderline        term=underline cterm=underline gui=underline
-    SynColor doxygenHtmlUnderlineItalic  term=italic,underline cterm=italic,underline gui=italic,underline
-    SynColor doxygenHtmlItalic           term=italic cterm=italic gui=italic
+  if &syntax=='idl'
+    syn cluster idlCommentable add=doxygenComment,doxygenCommentL
   endif
-  delcommand SynLink
-  delcommand SynColor
-endif
 
-if &syntax=='idl'
-  syn cluster idlCommentable add=doxygenComment,doxygenCommentL
-endif
+  "syn sync clear
+  "syn sync maxlines=500
+  "syn sync minlines=50
+  syn sync match doxygenComment groupthere cComment "/\@<!/\*"
+  syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
+  "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
+  syn sync match doxygenSyncEndComment groupthere NONE "\*/"
 
-"syn sync clear
-"syn sync maxlines=500
-"syn sync minlines=50
-if v:version >= 600
-syn sync match doxygenComment groupthere cComment "/\@<!/\*"
-syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
-else
-syn sync match doxygencComment groupthere cComment "/\*"
-syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]"
-endif
-"syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
-syn sync match doxygenSyncEndComment groupthere NONE "\*/"
+  if !exists('b:current_syntax')
+    let b:current_syntax = "doxygen"
+  else
+    let b:current_syntax = b:current_syntax.'.doxygen'
+  endif
 
-if !exists('b:current_syntax')
-  let b:current_syntax = "doxygen"
-else
-  let b:current_syntax = b:current_syntax.'.doxygen'
-endif
+finally
+  let &cpo = s:cpo_save
+  unlet s:cpo_save
+endtry
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
 " vim:et sw=2 sts=2
diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim
index 4a1f1a9..a95feca 100644
--- a/runtime/syntax/muttrc.vim
+++ b/runtime/syntax/muttrc.vim
@@ -1,9 +1,18 @@
 " Vim syntax file
 " Language:	Mutt setup files
-" Maintainer:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
 " Contributor:	Gary Johnson <garyjohn@spk.agilent.com>
-" Last Change:	27 May 2004
+" Last Change:	$LastChangedDate: 2006-04-16 22:06:40 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/muttrc.vim?op=file&rev=0&sc=0
+"
+" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
+"     it only because patches have been submitted for it by Debian users and the
+"     former maintainer was MIA (Missing In Action), taking over its
+"     maintenance was thus the only way to include those patches.
+"     If you care about this file, and have time to maintain it please do so!
 
+" XXX outdated comment
 " This file covers mutt version 1.4.2.1i
 
 " For version 5.x: Clear all syntax items
@@ -120,6 +129,8 @@
 syn keyword muttrcVarBool	contained invstatus_on_top invstrict_threads invsuspend invtext_flowed invthorough_search
 syn keyword muttrcVarBool	contained invthread_received invtilde invuncollapse_jump invuse_8bitmime invuse_domain invuse_from
 syn keyword muttrcVarBool	contained invuse_ipv6 invuser_agent invwait_key invweed invwrap_search invwrite_bcc
+syn keyword muttrcVarBool	contained crypt_autosign crypt_autoencrypt xterm_set_titles
+syn keyword muttrcVarBool       contained maildir_header_cache_verify
 
 syn keyword muttrcVarQuad	contained abort_nosubject abort_unmodified copy delete honor_followup_to include mime_forward
 syn keyword muttrcVarQuad	contained mime_forward_rest mime_fwd move pgp_create_traditional pgp_verify_sig pop_delete
@@ -139,7 +150,7 @@
 syn keyword muttrcVarNum	contained pgp_timeout pop_checkinterval read_inc score_threshold_delete score_threshold_flag
 syn keyword muttrcVarNum	contained score_threshold_read sendmail_wait sleep_time timeout wrapmargin write_inc
 
-syn keyword muttrcVarStr	contained alias_file alias_format alternates attach_format attach_sep attribution certificate_file
+syn keyword muttrcVarStr	contained alias_file alias_format attach_format attach_sep attribution certificate_file
 syn keyword muttrcVarStr	contained charset compose_format date_format default_hook display_filter dotlock_program dsn_notify
 syn keyword muttrcVarStr	contained dsn_return editor entropy_file escape folder folder_format forw_format forward_format
 syn keyword muttrcVarStr	contained from gecos_mask hdr_format hostname imap_authenticators imap_delim_chars
@@ -154,6 +165,7 @@
 syn keyword muttrcVarStr	contained postponed preconnect print_cmd print_command query_command quote_regexp realname record
 syn keyword muttrcVarStr	contained reply_regexp send_charset sendmail shell signature simple_search smileys sort sort_alias
 syn keyword muttrcVarStr	contained sort_aux sort_browser spoolfile status_chars status_format tmpdir to_chars tunnel visual
+syn keyword muttrcVarStr	contained header_cache header_cache_pagesize 
 
 syn keyword muttrcMenu		contained alias attach browser compose editor index pager postpone pgp mix query generic
 
@@ -161,6 +173,7 @@
 syn keyword muttrcCommand	folder-hook hdr_order iconv-hook ignore lists mailboxes message-hook mbox-hook my_hdr
 syn keyword muttrcCommand	pgp-hook push save-hook score send-hook source subscribe unalias unauto_view unhdr_order
 syn keyword muttrcCommand	unhook unignore unlists unmono unmy_hdr unscore unsubscribe
+syn keyword muttrcCommand	send2-hook alternates unalternates
 
 syn keyword muttrcSet		set     skipwhite nextgroup=muttrcVar.*
 syn keyword muttrcUnset		unset   skipwhite nextgroup=muttrcVar.*
diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim
index b94a271..46b547b 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,8 +1,15 @@
 " Vim syntax file
 " Language:	php PHP 3/4/5
-" Maintainer:	Lutz Eymers <ixtab@polzin.com>
-" URL:		http://www.isp.de/data/php.vim
-" Last Change:	2004 Feb 04
+" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer:	Lutz Eymers <ixtab@polzin.com>
+" Last Change:	$LastChangedDate: 2006-04-16 22:06:40 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/php.vim?op=file&rev=0&sc=0
+"
+" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
+"     it only because patches have been submitted for it by Debian users and the
+"     former maintainer was MIA (Missing In Action), taking over its
+"     maintenance was thus the only way to include those patches.
+"     If you care about this file, and have time to maintain it please do so!
 "
 " Options	php_sql_query = 1  for SQL syntax highlighting inside strings
 "		php_htmlInStrings = 1  for HTML syntax highlighting inside strings
@@ -326,9 +333,11 @@
 " String
 if exists("php_parent_error_open")
   syn region	phpStringDouble	matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex	contained keepend
+  syn region	phpBacktick	matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+	contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex	contained keepend
   syn region	phpStringSingle	matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=@phpAddStrings contained keepend
 else
   syn region	phpStringDouble	matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
+  syn region	phpBacktick	matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+	contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
   syn region	phpStringSingle	matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=@phpAddStrings contained keepend extend
 endif
 
@@ -355,7 +364,7 @@
   syn match phpParent	"[({[\]})]"	contained
 endif
 
-syn cluster	phpClConst	contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
+syn cluster	phpClConst	contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
 syn cluster	phpClInside	contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc
 syn cluster	phpClFunction	contains=@phpClInside,phpDefine,phpParentError,phpStorageClass
 syn cluster	phpClTop	contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch
@@ -463,6 +472,7 @@
   HiLink	 phpStructure	Structure
   HiLink	 phpStringSingle	String
   HiLink	 phpStringDouble	String
+  HiLink	 phpBacktick	String
   HiLink	 phpNumber	Number
   HiLink	 phpFloat	Float
   HiLink	 phpMethods	Function
diff --git a/runtime/syntax/slrnrc.vim b/runtime/syntax/slrnrc.vim
index c15d9af..011a215 100644
--- a/runtime/syntax/slrnrc.vim
+++ b/runtime/syntax/slrnrc.vim
@@ -1,7 +1,15 @@
 " Vim syntax file
 " Language:	Slrn setup file (based on slrn 0.9.8.0)
-" Maintainer:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
-" Last Change:	19 May 2004
+" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+" Last Change:	$LastChangedDate: 2006-04-16 22:06:40 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/slrnrc.vim?op=file&rev=0&sc=0
+"
+" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
+"     it only because patches have been submitted for it by Debian users and the
+"     former maintainer was MIA (Missing In Action), taking over its
+"     maintenance was thus the only way to include those patches.
+"     If you care about this file, and have time to maintain it please do so!
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -119,7 +127,7 @@
 syn keyword slrnrcFunArt	contained help hide_article locate_article mark_spot next next_high_score next_same_subject pipe post post_postponed previous print quit redraw
 syn keyword slrnrcFunArt	contained repeat_last_key reply request save show_spoilers shrink_article_window skip_quotes skip_to_next_group skip_to_previous_group
 syn keyword slrnrcFunArt	contained subject_search_backward subject_search_forward supersede suspend tag_header toggle_collapse_threads toggle_header_formats
-syn keyword slrnrcFunArt	contained toggle_header_tag toggle_headers toggle_pgpsignature toggle_quotes toggle_rot13 toggle_signature toggle_verbatim_marks
+syn keyword slrnrcFunArt	contained toggle_header_tag toggle_headers toggle_pgpsignature toggle_quotes toggle_rot13 toggle_signature toggle_sort toggle_verbatim_marks
 syn keyword slrnrcFunArt	contained toggle_verbatim_text uncatchup uncatchup_all undelete untag_headers view_scores wrap_article zoom_article_window
 
 " Listed for removal
@@ -136,7 +144,7 @@
 syn keyword slrnrcFunGroup	contained down group_bob group_eob pagedown pageup toggle_group_display uncatch_up up
 
 " Functions in readline mode (actually from slang's slrline.c)
-syn keyword slrnrcFunRead	contained bdel bol del deleol down enter eol left quoted_insert right self_insert trim up
+syn keyword slrnrcFunRead	contained bdel bol complete cycle del delbol delbow deleol down enter eol left quoted_insert right self_insert trim up
 
 " Binding keys
 syn keyword slrnrcSetkeyObj	contained article group readline
diff --git a/runtime/syntax/stata.vim b/runtime/syntax/stata.vim
index 49955cc..5005609 100644
--- a/runtime/syntax/stata.vim
+++ b/runtime/syntax/stata.vim
@@ -1,14 +1,14 @@
 " stata.vim -- Vim syntax file for Stata do, ado, and class files.
 " Language:	Stata and/or Mata
 " Maintainer:	Jeff Pitblado <jpitblado@stata.com>
-" Last Change:	14apr2006
-" Version:	1.1.1
+" Last Change:	17apr2006
+" Version:	1.1.2
 " Location:	http://www.stata.com/users/jpitblado/files/vimfiles/syntax/stata.vim
 
 " Log:
 " 14apr2006	renamed syntax groups st* to stata*
 "		'syntax clear' only under version control
-"		check for 'b:current_syntax', removed 'did_stat_syntax_inits'
+"		check for 'b:current_syntax', removed 'did_stata_syntax_inits'
 
 if version < 600
 	syntax clear
@@ -188,224 +188,224 @@
 
 " Stata functions
 " Math
-syn region stataFunc matchgroup=Function start=/abs(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/acos(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/asin(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/atan(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/atan2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/atanh(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ceil(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/cloglog(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/comb(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/cos(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/digamma(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/exp(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/floor(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/int(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invcloglog(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invlogit(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ln(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lnfact(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lnfactorial(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lngamma(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/log(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/log10(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/logit(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/max(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mod(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/reldif(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/round(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/sign(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/sin(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/sqrt(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/sum(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/tan(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/tanh(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/trigamma(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/trunc(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<abs(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<acos(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<asin(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<atan(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<atan2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<atanh(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ceil(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<cloglog(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<comb(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<cos(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<digamma(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<exp(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<floor(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<int(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invcloglog(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invlogit(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ln(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lnfact(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lnfactorial(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lngamma(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<log(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<log10(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<logit(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<max(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mod(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<reldif(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<round(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<sign(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<sin(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<sqrt(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<sum(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<tan(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<tanh(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<trigamma(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<trunc(/ end=/)/ contains=@stataFuncGroup
 " Probability distriubtions and density functions
-syn region stataFunc matchgroup=Function start=/betaden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/Binomial(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/binorm(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/binormal(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/chi2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/chi2tail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dgammapda(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dgammapdada(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dgammapdadx(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dgammapdx(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dgammapdxdx(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/F(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/Fden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/Ftail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/gammaden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/gammap(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ibeta(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invbinomial(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invchi2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invchi2tail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invF(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invFtail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invgammap(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invibeta(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invnchi2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invFtail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invibeta(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invnorm(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invnormal(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invttail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lnnormal(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lnnormalden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nbetaden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nchi2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nFden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nFtail(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nibeta(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/norm(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/normal(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/normalden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/normden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/npnchi2(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/tden(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ttail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<betaden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<Binomial(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<binorm(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<binormal(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<chi2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<chi2tail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dgammapda(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dgammapdada(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dgammapdadx(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dgammapdx(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dgammapdxdx(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<F(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<Fden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<Ftail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<gammaden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<gammap(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ibeta(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invbinomial(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invchi2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invchi2tail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invF(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invgammap(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invnchi2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invnorm(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invnormal(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invttail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lnnormal(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lnnormalden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nbetaden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nchi2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nFden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nFtail(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nibeta(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<norm(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<normal(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<normalden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<normden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<npnchi2(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<tden(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ttail(/ end=/)/ contains=@stataFuncGroup
 " Random numbers
-syn region stataFunc matchgroup=Function start=/uniform(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup
 " String
-syn region stataFunc matchgroup=Function start=/abbrev(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/hchar(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/indexnot(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/itrim(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/length(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/lower(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ltrim(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/plural(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/proper(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/real(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/regexm(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/regexr(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/regexs(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/reverse(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/rtrim(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/string(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/strlen(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/strmatch(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/strpos(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/subinstr(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/subinword(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/substr(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/trim(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/upper(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/word(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/wordcount(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<abbrev(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<hchar(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<indexnot(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<itrim(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<length(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<lower(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ltrim(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<plural(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<proper(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<real(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<regexm(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<regexr(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<regexs(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<reverse(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<rtrim(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<string(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<strlen(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<strmatch(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<strpos(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<subinstr(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<subinword(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<substr(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<trim(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<upper(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<word(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<wordcount(/ end=/)/ contains=@stataFuncGroup
 " Programming
-syn region stataFunc matchgroup=Function start=/autocode(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/byteorder(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/c(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/_caller(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/chop(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/clip(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/cond(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/e(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/epsdouble(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/epsfloat(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/float(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/has_eprop(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/has_eprop(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/inlist(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/inrange(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/irecode(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/matrix(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/maxbyte(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/maxdouble(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/maxfloat(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/maxint(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/maxlong(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mi(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/minbyte(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mindouble(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/minfloat(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/minint(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/minlong(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/missing(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/r(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/recode(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/replay(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/return(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/s(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/scalar(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<autocode(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<byteorder(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<c(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<_caller(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<chop(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<clip(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<cond(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<e(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<epsdouble(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<epsfloat(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<float(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<inlist(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<inrange(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<irecode(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<matrix(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<maxbyte(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<maxdouble(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<maxfloat(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<maxint(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<maxlong(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mi(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<minbyte(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mindouble(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<minfloat(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<minint(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<minlong(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<missing(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<r(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<recode(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<replay(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<return(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<s(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<scalar(/ end=/)/ contains=@stataFuncGroup
 " Date
-syn region stataFunc matchgroup=Function start=/d(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/date(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/day(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dow(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/doy(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/halfyear(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mdy(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/month(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/quarter(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/week(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/year(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<date(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<day(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dow(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<doy(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<halfyear(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mdy(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<month(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<quarter(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<week(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<year(/ end=/)/ contains=@stataFuncGroup
 " Time-series
-syn region stataFunc matchgroup=Function start=/daily(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/halfyearly(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/monthly(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/quarterly(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/weekly(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/yearly(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<daily(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<halfyearly(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<monthly(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<quarterly(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<weekly(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<yearly(/ end=/)/ contains=@stataFuncGroup
 "
-syn region stataFunc matchgroup=Function start=/yh(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/ym(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/yq(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/yw(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<yh(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<ym(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<yq(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<yw(/ end=/)/ contains=@stataFuncGroup
 "
-syn region stataFunc matchgroup=Function start=/d(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/h(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/m(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/q(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/w(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/y(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<h(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<m(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<q(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<w(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<y(/ end=/)/ contains=@stataFuncGroup
 "
-syn region stataFunc matchgroup=Function start=/dofd(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dofh(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dofm(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dofq(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dofw(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/dofy(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/hofd(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mofd(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/qofd(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/wofd(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/yofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofh(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofm(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofq(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofw(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<dofy(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<hofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<qofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<wofd(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<yofd(/ end=/)/ contains=@stataFuncGroup
 "
-syn region stataFunc matchgroup=Function start=/tin(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/twithin(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup
 " Matrix
-syn region stataFunc matchgroup=Function start=/colnumb(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/colsof(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/det(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/diag0cnt(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/el(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/issymmetric(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/matmissing(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/mreldif(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/rownumb(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/rowsof(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/trace(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<colnumb(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<colsof(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<det(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<diag0cnt(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<el(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<issymmetric(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<matmissing(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<mreldif(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<rownumb(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<rowsof(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<trace(/ end=/)/ contains=@stataFuncGroup
 "
-syn region stataFunc matchgroup=Function start=/cholsky(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/corr(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/diag(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/get(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/hadamard(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/I(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/inv(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/invsym(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/J(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/matuniform(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/nullmat(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/sweep(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/vec(/ end=/)/ contains=@stataFuncGroup
-syn region stataFunc matchgroup=Function start=/vecdiag(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<cholsky(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<corr(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<diag(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<get(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<hadamard(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<I(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<inv(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<invsym(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<J(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<matuniform(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<nullmat(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<sweep(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<vec(/ end=/)/ contains=@stataFuncGroup
+syn region stataFunc matchgroup=Function start=/\<vecdiag(/ end=/)/ contains=@stataFuncGroup
 
 " Errors to catch
 " taken from $VIMRUNTIME/syntax/c.vim 
diff --git a/runtime/syntax/tpp.vim b/runtime/syntax/tpp.vim
index 8eb7480..92fa6f8 100644
--- a/runtime/syntax/tpp.vim
+++ b/runtime/syntax/tpp.vim
@@ -1,11 +1,18 @@
 " Vim syntax file
 " Language:	tpp - Text Presentation Program
-" Maintainer:	Gerfried Fuchs <alfie@ist.org>
+" Maintainer:   Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Former Maintainer:	Gerfried Fuchs <alfie@ist.org>
+" Last Change:	$LastChangedDate: 2006-04-16 22:06:40 -0400 (dom, 16 apr 2006) $
+" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/tpp.vim?op=file&rev=0&sc=0
 " Filenames:	*.tpp
-" Last Change:	28. October 2004
-" URL:		http://alfie.ist.org/projects/vim/syntax/tpp.vim
 " License:	BSD
 "
+" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
+"     it only because patches have been submitted for it by Debian users and the
+"     former maintainer was MIA (Missing In Action), taking over its
+"     maintenance was thus the only way to include those patches.
+"     If you care about this file, and have time to maintain it please do so!
+"
 " Comments are very welcome - but please make sure that you are commenting on
 " the latest version of this file.
 " SPAM is _NOT_ welcome - be ready to be reported!
@@ -24,15 +31,15 @@
 
 
 "" list of the legal switches/options
-syn match tppAbstractOptionKey contained "^--\%(author\|title\|date\) *" nextgroup=tppValue
-syn match tppPageLocalOptionKey contained "^--\%(heading\|center\|right\|huge\|sethugefont\|exec\) *" nextgroup=tppValue
+syn match tppAbstractOptionKey contained "^--\%(author\|title\|date\|footer\) *" nextgroup=tppString
+syn match tppPageLocalOptionKey contained "^--\%(heading\|center\|right\|huge\|sethugefont\|exec\) *" nextgroup=tppString
 syn match tppPageLocalSwitchKey contained "^--\%(horline\|-\|\%(begin\|end\)\%(\%(shell\)\?output\|slide\%(left\|right\|top\|bottom\)\)\|\%(bold\|rev\|ul\)\%(on\|off\)\|withborder\)"
-syn match tppNewPageOptionKey contained "^--newpage *" nextgroup=tppValue
+syn match tppNewPageOptionKey contained "^--newpage *" nextgroup=tppString
 syn match tppColorOptionKey contained "^--\%(\%(bg\|fg\)\?color\) *"
 syn match tppTimeOptionKey contained "^--sleep *"
 
-syn match tppValue contained ".*"
-syn match tppColor contained "\%(white\|yellow\|red\|green\|blue\|cyan\|magenta\|black\)"
+syn match tppString contained ".*"
+syn match tppColor contained "\%(white\|yellow\|red\|green\|blue\|cyan\|magenta\|black\|default\)"
 syn match tppTime contained "\d\+"
 
 syn region tppPageLocalSwitch start="^--" end="$" contains=tppPageLocalSwitchKey oneline
@@ -40,7 +47,7 @@
 syn region tppTimeOption start="^--sleep" end="$" contains=tppTimeOptionKey,tppTime oneline
 syn region tppNewPageOption start="^--newpage" end="$" contains=tppNewPageOptionKey oneline
 syn region tppPageLocalOption start="^--\%(heading\|center\|right\|huge\|sethugefont\|exec\)" end="$" contains=tppPageLocalOptionKey oneline
-syn region tppAbstractOption start="^--\%(author\|title\|date\)" end="$" contains=tppAbstractOptionKey oneline
+syn region tppAbstractOption start="^--\%(author\|title\|date\|footer\)" end="$" contains=tppAbstractOptionKey oneline
 
 if main_syntax != 'sh'
   " shell command
@@ -74,7 +81,7 @@
   HiLink tppColorOptionKey		Keyword
   HiLink tppTimeOptionKey		Comment
   HiLink tppNewPageOptionKey		PreProc
-  HiLink tppValue			String
+  HiLink tppString			String
   HiLink tppColor			String
   HiLink tppTime			Number
   HiLink tppComment			Comment
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index b4cbd55..f5e654a 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,7 +2,7 @@
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
 " Last Change:	Apr 12, 2006
-" Version:	7.0-41
+" Version:	7.0-42
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -161,7 +161,10 @@
 endif
 syn case ignore
 syn keyword vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
-syn keyword vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option tag tag_listfiles var
+syn keyword vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option something tag tag_listfiles var
+syn keyword vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
+syn match   vimUserAttrbCmpltFunc contained	",\%(\h\w*#\u\w*\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
+
 syn case match
 syn match   vimUserAttrbCmplt contained	"custom,\u\w*"
 
@@ -695,6 +698,7 @@
 hi def link vimSyncNone	Type
 hi def link vimTodo	Todo
 hi def link vimUserCmdError	Error
+hi def link vimUserAttrbCmpltFunc	Special
 
 " Current Syntax Variable: {{{2
 let b:current_syntax = "vim"