updated for version 7.0012
diff --git a/runtime/syntax/dot.vim b/runtime/syntax/dot.vim
index a2947aa..6425500 100644
--- a/runtime/syntax/dot.vim
+++ b/runtime/syntax/dot.vim
@@ -2,9 +2,9 @@
 " Language:     Dot
 " Filenames:    *.dot
 " Maintainer:   Markus Mottl  <markus@oefai.at>
-" URL:		http://www.ai.univie.ac.at/~markus/vim/syntax/dot.vim
-" Last Change:	2003 May 11
-"		2001 May 04 - initial version
+" URL:          http://www.oefai.at/~markus/vim/syntax/dot.vim
+" Last Change:  2004 Jul 26
+"               2001 May 04 - initial version
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff --git a/runtime/syntax/idl.vim b/runtime/syntax/idl.vim
index cdb66ea..855dc21 100644
--- a/runtime/syntax/idl.vim
+++ b/runtime/syntax/idl.vim
@@ -1,203 +1,314 @@
 " Vim syntax file
-" Language:	IDL (Interface Description Language)
-" Maintainer:	Jody Goldberg <jgoldberg@home.com> or <jody@gnome.org>
-" Last Change:	2004 Jul 12
+" Language:    IDL (Interface Description Language)
+" Created By:  Jody Goldberg <jody@gnome.org>
+" Maintainer:  Michael Geddes <michaelrgeddes@optushome.com.au>
+" Last Change:  2004 Jul 20
 
 " This is an experiment.  IDL's structure is simple enough to permit a full
 " grammar based approach to rather than using a few heuristics.  The result
 " is large and somewhat repetative but seems to work.
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
+" There are some Microsoft extensions to idl files that are here.  Some of
+" them are disabled by defining idl_no_ms_extensions.
+"
+" The more complex of the extensions are disabled by defining idl_no_extensions.
+"
+
+if exists("b:current_syntax")
   finish
 endif
 
+if exists("idlsyntax_showerror")
+  syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
+endif
+
+syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString
+
 " Misc basic
-syn match	idlId		contained "[a-zA-Z][a-zA-Z0-9_]*"
-syn match	idlSemiColon	contained ";"
-syn match	idlCommaArg	contained ","			skipempty skipwhite nextgroup=idlSimpDecl
-syn region	idlArraySize1	contained start=:\[: end=:\]:	skipempty skipwhite nextgroup=idlArraySize1,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
-syn match   idlSimpDecl	 contained "[a-zA-Z][a-zA-Z0-9_]*"	skipempty skipwhite nextgroup=idlSemiColon,idlCommaArg,idlArraySize1
-syn region  idlSting	 contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
-syn match   idlLiteral	 contained "[1-9]\d*\(\.\d*\)\="
-syn match   idlLiteral	 contained "\.\d\+"
-syn keyword idlLiteral	 contained TRUE FALSE
+syn match   idlId          contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
+syn match   idlEnumComma   contained ","
+syn match   idlEnumNumber  contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
+syn match   idlSemiColon   contained ";"
+syn match   idlCommaArg    contained ","                      skipempty skipwhite nextgroup=idlSimpDecl
+syn region  idlArraySize1  contained start=:\[: end=:\]:      skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
+syn match   idlSimpDecl    contained "[a-zA-Z][a-zA-Z0-9_]*"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
+syn region  idlString      contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
+syn match   idlLiteral     contained "[1-9]\d*\(\.\d*\)\="
+syn match   idlLiteral     contained "0"
+syn match   idlLiteral     contained "\.\d\+"
+syn match   idlLiteral     contained "0x[0-9A-Fa-f]\+"
+syn match   idlLiteral     contained "0[0-7]\+"
+syn keyword idlLiteral     contained TRUE FALSE
 
 " Comments
-syn keyword idlTodo contained	TODO FIXME XXX
-syn region idlComment		start="/\*"  end="\*/" contains=idlTodo
-syn match  idlComment		"//.*" contains=idlTodo
-syn match  idlCommentError	"\*/"
+syn keyword idlTodo        contained TODO FIXME XXX
+syn region idlComment      start="/\*"  end="\*/" contains=idlTodo
+syn match  idlComment      "//.*" contains=idlTodo
+syn match  idlCommentError "\*/"
 
 " C style Preprocessor
-syn region idlIncluded contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
-syn match  idlIncluded contained "<[^>]*>"
-syn match  idlInclude		"^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
-syn region idlPreCondit	start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=idlComment,idlCommentError
-syn region idlDefine	start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral, idlString
+syn region idlIncluded    contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
+syn match  idlIncluded    contained "<[^>]*>"
+syn match  idlInclude     "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
+syn region idlPreCondit   start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=idlComment,idlCommentError
+syn region idlDefine      start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString
 
 " Constants
-syn keyword idlConst	const	skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
+syn keyword idlConst    const                             skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
 
 " Attribute
-syn keyword idlROAttr	readonly	skipempty skipwhite nextgroup=idlAttr
-syn keyword idlAttr	attribute	skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
+syn keyword idlROAttr   readonly                          skipempty skipwhite nextgroup=idlAttr
+syn keyword idlAttr     attribute                         skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
 
 " Types
-syn region  idlD4	contained start="<" end=">"	skipempty skipwhite nextgroup=idlSimpDecl	contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
-syn keyword idlSeqType	contained sequence		skipempty skipwhite nextgroup=idlD4
-syn keyword idlBaseType		contained	float double char boolean octet any	skipempty skipwhite nextgroup=idlSimpDecl
-syn keyword idlBaseTypeInt	contained	short long		skipempty skipwhite nextgroup=idlSimpDecl
-syn keyword idlBaseType		contained	unsigned		skipempty skipwhite nextgroup=idlBaseTypeInt
-syn region  idlD1		contained	start="<" end=">"	skipempty skipwhite nextgroup=idlSimpDecl	contains=idlString,idlLiteral
-syn keyword idlBaseType		contained	string	skipempty skipwhite nextgroup=idlD1,idlSimpDecl
-syn match   idlBaseType		contained	"[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*"	skipempty skipwhite nextgroup=idlSimpDecl
+syn region  idlD4          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
+syn keyword idlSeqType     contained sequence             skipempty skipwhite nextgroup=idlD4
+syn keyword idlBaseType    contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
+syn keyword idlBaseTypeInt contained short long           skipempty skipwhite nextgroup=idlSimpDecl
+syn keyword idlBaseType    contained unsigned             skipempty skipwhite nextgroup=idlBaseTypeInt
+syn region  idlD1          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
+syn keyword idlBaseType    contained string               skipempty skipwhite nextgroup=idlD1,idlSimpDecl
+syn match   idlBaseType    contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*"  skipempty skipwhite nextgroup=idlSimpDecl
 
 " Modules
-syn region  idlModuleContent contained start="{" end="}"	skipempty skipwhite nextgroup=idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
-syn match   idlModuleName contained	"[a-zA-Z0-9_]\+"	skipempty skipwhite nextgroup=idlModuleContent,idlSemiColon
-syn keyword idlModule			module			skipempty skipwhite nextgroup=idlModuleName
+syn region  idlModuleContent contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
+syn match   idlModuleName  contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
+syn keyword idlModule      module                         skipempty skipwhite nextgroup=idlModuleName
 
 " Interfaces
-syn region  idlInterfaceContent contained start="{" end="}"	skipempty skipwhite nextgroup=idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlComment,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef
-syn match   idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
-syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
-syn match idlInherit contained	":"		skipempty skipwhite nextgroup=idlInheritFrom
-syn match   idlInterfaceName contained	"[a-zA-Z0-9_]\+"	skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlSemiColon
-syn keyword idlInterface		interface		skipempty skipwhite nextgroup=idlInterfaceName
+syn cluster idlCommentable contains=idlComment
+syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections
 
+syn region  idlInterfaceContent contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
+syn match   idlInheritFrom2 contained ","                     skipempty skipwhite nextgroup=idlInheritFrom
+syn match   idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
+syn match   idlInherit contained ":"                            skipempty skipwhite nextgroup=idlInheritFrom
+syn match   idlInterfaceName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
+syn keyword idlInterface     interface dispinterface          skipempty skipwhite nextgroup=idlInterfaceName
+syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
+syn match   idlSectionColon contained ":"
+
+
+syn match   idlLibraryName  contained  "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
+syn keyword idlLibrary      library                           skipempty skipwhite nextgroup=idlLibraryName
+syn region  idlLibraryContent contained start="{" end="}"     skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface
+
+syn keyword idlImportlib contained importlib                  skipempty skipwhite nextgroup=idlStringArg
+syn region idlStringArg contained start="(" end=")"           contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket
+
+syn keyword idlCoclass coclass contained                      skipempty skipwhite nextgroup=idlCoclassName
+syn match   idlCoclassName "[a-zA-Z0-9_]\+" contained         skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon
+
+syn region idlCoclassDefinition contained start="{" end="}"   contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
+syn region idlCoclassAttributes contained start=+\[+ end=+]+  skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
+syn keyword idlCoclassAttribute contained default source
+"syn keyword idlInterface       interface                      skipempty skipwhite nextgroup=idlInterfaceStubName
+
+syn match idlImportString       +"\f\+"+                      skipempty skipwhite nextgroup=idlError,idlSemiColon
+syn keyword idlImport           import                        skipempty skipwhite nextgroup=idlImportString
+
+syn region  idlAttributes start="\[" end="\]"                 contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
+syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
+if !exists('idl_no_ms_extensions')
+syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
+endif
+syn region idlAttributeParam contained start="(" end=")"      contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
+" skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
+syn match idlErrorBrace contained "}"
+syn match idlErrorBracket contained ")"
+syn match idlErrorSquareBracket contained "\]"
+
+syn match idlUuid         contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+
 
 " Raises
-syn keyword idlRaises	contained raises	skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon
+syn keyword idlRaises     contained raises               skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
 
 " Context
-syn keyword idlContext	contained context	skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon
+syn keyword idlContext    contained context              skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
 
 " Operation
-syn match   idlParmList	contained "," skipempty skipwhite nextgroup=idlOpParms
-syn region  idlArraySize contained start="\[" end="\]"	skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
-syn match   idlParmName contained "[a-zA-Z0-9_]\+"	skipempty skipwhite nextgroup=idlParmList,idlArraySize
-syn keyword idlParmInt	contained short long		skipempty skipwhite nextgroup=idlParmName
-syn keyword idlParmType	contained unsigned		skipempty skipwhite nextgroup=idlParmInt
-syn region  idlD3	contained start="<" end=">"	skipempty skipwhite nextgroup=idlParmName	contains=idlString,idlLiteral
-syn keyword idlParmType	contained string		skipempty skipwhite nextgroup=idlD3,idlParmName
-syn keyword idlParmType	contained void float double char boolean octet any	  skipempty skipwhite nextgroup=idlParmName
-syn match   idlParmType	contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
-syn keyword idlOpParms	contained in out inout		skipempty skipwhite nextgroup=idlParmType
+syn match   idlParmList   contained ","                  skipempty skipwhite nextgroup=idlOpParms
+syn region  idlArraySize  contained start="\[" end="\]"  skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
+syn match   idlParmName   contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlParmList,idlArraySize
+syn keyword idlParmInt    contained short long           skipempty skipwhite nextgroup=idlParmName
+syn keyword idlParmType   contained unsigned             skipempty skipwhite nextgroup=idlParmInt
+syn region  idlD3         contained start="<" end=">"    skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
+syn keyword idlParmType   contained string               skipempty skipwhite nextgroup=idlD3,idlParmName
+syn keyword idlParmType   contained void float double char boolean octet any    skipempty skipwhite nextgroup=idlParmName
+syn match   idlParmType   contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
+syn keyword idlOpParms    contained in out inout         skipempty skipwhite nextgroup=idlParmType
 
-syn region idlOpContents contained start="(" end=")"	skipempty skipwhite nextgroup=idlRaises,idlContext,idlSemiColon contains=idlOpParms
-syn match   idlOpName   contained "[a-zA-Z0-9_]\+"	skipempty skipwhite nextgroup=idlOpContents
-syn keyword idlOpInt	contained short long		skipempty skipwhite nextgroup=idlOpName
-syn region  idlD2	contained start="<" end=">"	skipempty skipwhite nextgroup=idlOpName	contains=idlString,idlLiteral
-syn keyword idlOp	contained unsigned		skipempty skipwhite nextgroup=idlOpInt
-syn keyword idlOp	contained string		skipempty skipwhite nextgroup=idlD2,idlOpName
-syn keyword idlOp	contained void float double char boolean octet any		skipempty skipwhite nextgroup=idlOpName
-syn match   idlOp	contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*"	skipempty skipwhite nextgroup=idlOpName
-syn keyword idlOp	contained void			skipempty skipwhite nextgroup=idlOpName
-syn keyword idlOneWayOp	contained oneway		skipempty skipwhite nextgroup=idOp
+if !exists('idl_no_ms_extensions')
+syn keyword idlOpParms    contained retval optional      skipempty skipwhite nextgroup=idlParmType
+  syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType
+
+  syn keyword idlVariantType  contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
+  syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
+endif
+
+syn region  idlOpContents contained start="(" end=")"    skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
+syn match   idlOpName   contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlOpContents
+syn keyword idlOpInt    contained short long             skipempty skipwhite nextgroup=idlOpName
+syn region  idlD2       contained start="<" end=">"      skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
+syn keyword idlOp       contained unsigned               skipempty skipwhite nextgroup=idlOpInt
+syn keyword idlOp       contained string                 skipempty skipwhite nextgroup=idlD2,idlOpName
+syn keyword idlOp       contained void float double char boolean octet any  skipempty skipwhite nextgroup=idlOpName
+syn match   idlOp       contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
+syn keyword idlOp       contained void                   skipempty skipwhite nextgroup=idlOpName
+syn keyword idlOneWayOp contained oneway                 skipempty skipwhite nextgroup=idOp
 
 " Enum
-syn region  idlEnumContents contained start="{" end="}"		skipempty skipwhite nextgroup=idlSemiColon, idlSimpDecl contains=idlId,idlComment
-syn match   idlEnumName contained	"[a-zA-Z0-9_]\+"	skipempty skipwhite nextgroup=idlEnumContents
-syn keyword idlEnum			enum			skipempty skipwhite nextgroup=idlEnumName
+syn region  idlEnumContents contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
+syn match   idlEnumName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlEnumContents
+syn keyword idlEnum     enum                             skipempty skipwhite nextgroup=idlEnumName,idlEnumContents
 
 " Typedef
-syn keyword idlTypedef			typedef			skipempty skipwhite nextgroup=idlBaseType, idlBaseTypeInt, idlSeqType
+syn keyword idlTypedef typedef                          skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError
+
+if !exists('idl_no_extensions')
+  syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite
+
+  syn region  idlDefAttributes        contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError
+
+  syn keyword idlDefBaseType      contained float double char boolean octet any  skipempty skipwhite nextgroup=idlTypedefDecl,idlError
+  syn keyword idlDefBaseTypeInt   contained short long                           skipempty skipwhite nextgroup=idlTypedefDecl,idlError
+  syn match idlDefOtherType       contained +\<\k\+\>+ skipempty                 nextgroup=idlTypedefDecl,idlError
+  " syn keyword idlDefSeqType     contained sequence                             skipempty skipwhite nextgroup=idlD4
+
+  " Enum typedef
+  syn keyword idlDefEnum          contained enum skipempty                       skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
+  syn match   idlDefEnumName      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
+  syn region  idlDefEnumContents  contained start="{" end="}"                    skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes
+
+  syn match   idlTypedefDecl      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlError,idlSemiColon
+endif
 
 " Struct
-syn region  idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlSemiColon, idlSimpDecl	contains=idlBaseType, idlBaseTypeInt, idlSeqType,idlComment, idlEnum, idlUnion
-syn match   idlStructName contained	"[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
-syn keyword idlStruct			struct		 skipempty skipwhite nextgroup=idlStructName
+syn region  idlStructContent   contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
+syn match   idlStructName      contained "[a-zA-Z0-9_]\+"    skipempty skipwhite nextgroup=idlStructContent
+syn keyword idlStruct          struct                        skipempty skipwhite nextgroup=idlStructName
 
 " Exception
-syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
+syn keyword idlException       exception                     skipempty skipwhite nextgroup=idlStructName
 
 " Union
-syn match   idlColon contained ":"	skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
-syn region  idlCaseLabel contained start="" skip="::" end=":"me=e-1	skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
-syn keyword idlCase		contained case				skipempty skipwhite nextgroup=idlCaseLabel
-syn keyword idlCase		contained default			skipempty skipwhite nextgroup=idlColon
-syn region  idlUnionContent	contained start="{" end="}"		skipempty skipwhite nextgroup=idlSemiColon,idlSimpDecl	contains=idlCase
-syn region  idlSwitchType	contained start="(" end=")"		skipempty skipwhite nextgroup=idlUnionContent
-syn keyword idlUnionSwitch	contained switch			skipempty skipwhite nextgroup=idlSwitchType
-syn match   idlUnionName	contained "[a-zA-Z0-9_]\+"		skipempty skipwhite nextgroup=idlUnionSwitch
-syn keyword idlUnion		union				skipempty skipwhite nextgroup=idlUnionName
+syn match   idlColon            contained ":"                skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
+syn region  idlCaseLabel        contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
+syn keyword idlCase             contained case               skipempty skipwhite nextgroup=idlCaseLabel
+syn keyword idlCase             contained default            skipempty skipwhite nextgroup=idlColon
+syn region  idlUnionContent     contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
+syn region  idlSwitchType       contained start="(" end=")"  skipempty skipwhite nextgroup=idlUnionContent
+syn keyword idlUnionSwitch      contained switch             skipempty skipwhite nextgroup=idlSwitchType
+syn match   idlUnionName        contained "[a-zA-Z0-9_]\+"   skipempty skipwhite nextgroup=idlUnionSwitch
+syn keyword idlUnion            union                        skipempty skipwhite nextgroup=idlUnionName
 
-syn sync lines=200
+if !exists('idl_no_extensions')
+  syn sync match  idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
+  syn sync maxlines=1000 minlines=100
+else
+  syn sync lines=200
+endif
+" syn sync fromstart
 
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_idl_syntax_inits")
-  if version < 508
-    let did_idl_syntax_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
+if !exists("did_idl_syntax_inits")
+  let did_idl_syntax_inits = 1
+  " The default methods for highlighting.  Can be overridden later
+  command -nargs=+ HiLink hi def link <args>
+
+  HiLink idlInclude             Include
+  HiLink idlPreProc             PreProc
+  HiLink idlPreCondit           PreCondit
+  HiLink idlDefine              Macro
+  HiLink idlIncluded            String
+  HiLink idlString              String
+  HiLink idlComment             Comment
+  HiLink idlTodo                Todo
+  HiLink idlLiteral             Number
+  HiLink idlUuid                Number
+  HiLink idlType                Type
+  HiLink idlVariantType         idlType
+
+  HiLink idlModule              Keyword
+  HiLink idlInterface           Keyword
+  HiLink idlEnum                Keyword
+  HiLink idlStruct              Keyword
+  HiLink idlUnion               Keyword
+  HiLink idlTypedef             Keyword
+  HiLink idlException           Keyword
+  HiLink idlTypedefOtherTypeQualifier keyword
+
+  HiLink idlModuleName          Typedef
+  HiLink idlInterfaceName       Typedef
+  HiLink idlEnumName            Typedef
+  HiLink idlStructName          Typedef
+  HiLink idlUnionName           Typedef
+
+  HiLink idlBaseTypeInt         idlType
+  HiLink idlBaseType            idlType
+  HiLink idlSeqType             idlType
+  HiLink idlD1                  Paren
+  HiLink idlD2                  Paren
+  HiLink idlD3                  Paren
+  HiLink idlD4                  Paren
+  "HiLink idlArraySize          Paren
+  "HiLink idlArraySize1         Paren
+  HiLink idlModuleContent       Paren
+  HiLink idlUnionContent        Paren
+  HiLink idlStructContent       Paren
+  HiLink idlEnumContents        Paren
+  HiLink idlInterfaceContent    Paren
+
+  HiLink idlSimpDecl            Identifier
+  HiLink idlROAttr              StorageClass
+  HiLink idlAttr                Keyword
+  HiLink idlConst               StorageClass
+
+  HiLink idlOneWayOp            StorageClass
+  HiLink idlOp                  idlType
+  HiLink idlParmType            idlType
+  HiLink idlOpName              Function
+  HiLink idlOpParms             SpecialComment
+  HiLink idlParmName            Identifier
+  HiLink idlInheritFrom         Identifier
+  HiLink idlAttribute           SpecialComment
+
+  HiLink idlId                  Constant
+  "HiLink idlCase               Keyword
+  HiLink idlCaseLabel           Constant
+
+  HiLink idlErrorBracket        Error
+  HiLink idlErrorBrace          Error
+  HiLink idlErrorSquareBracket  Error
+
+  HiLink idlImport              Keyword
+  HiLink idlImportString        idlString
+  HiLink idlCoclassAttribute    StorageClass
+  HiLink idlLibrary             Keyword
+  HiLink idlImportlib           Keyword
+  HiLink idlCoclass             Keyword
+  HiLink idlLibraryName         Typedef
+  HiLink idlCoclassName         Typedef
+  " hi idlLibraryContent guifg=red
+  HiLink idlTypedefDecl         Typedef
+  HiLink idlDefEnum             Keyword
+  HiLink idlDefv1Enum           Keyword
+  HiLink idlDefEnumName         Typedef
+  HiLink idlDefEnumContents     Paren
+  HiLink idlDefBaseTypeInt      idlType
+  HiLink idlDefBaseType         idlType
+  HiLink idlDefSeqType          idlType
+  HiLink idlInterfaceSections   Label
+
+  if exists("idlsyntax_showerror")
+    if exists("idlsyntax_showerror_soft")
+      hi default idlError guibg=#d0ffd0
+    else
+      HiLink idlError Error
+    endif
   endif
-
-  HiLink idlInclude		Include
-  HiLink idlPreProc		PreProc
-  HiLink idlPreCondit		PreCondit
-  HiLink idlDefine		Macro
-  HiLink idlIncluded		String
-  HiLink idlString		String
-  HiLink idlComment		Comment
-  HiLink idlTodo		Todo
-  HiLink idlLiteral		Number
-
-  HiLink idlModule		Keyword
-  HiLink idlInterface		Keyword
-  HiLink idlEnum		Keyword
-  HiLink idlStruct		Keyword
-  HiLink idlUnion		Keyword
-  HiLink idlTypedef		Keyword
-  HiLink idlException		Keyword
-
-  HiLink idlModuleName		Typedef
-  HiLink idlInterfaceName	Typedef
-  HiLink idlEnumName		Typedef
-  HiLink idlStructName		Typedef
-  HiLink idlUnionName		Typedef
-
-  HiLink idlBaseTypeInt		idlType
-  HiLink idlBaseType		idlType
-  HiLink idlSeqType		idlType
-  HiLink idlD1			Paren
-  HiLink idlD2			Paren
-  HiLink idlD3			Paren
-  HiLink idlD4			Paren
-  "HiLink idlArraySize		Paren
-  "HiLink idlArraySize1		Paren
-  HiLink idlModuleContent	Paren
-  HiLink idlUnionContent	Paren
-  HiLink idlStructContent	Paren
-  HiLink idlEnumContents	Paren
-  HiLink idlInterfaceContent	Paren
-
-  HiLink idlSimpDecl		Identifier
-  HiLink idlROAttr		StorageClass
-  HiLink idlAttr		Keyword
-  HiLink idlConst		StorageClass
-
-  HiLink idlOneWayOp		StorageClass
-  HiLink idlOp			idlType
-  HiLink idlParmType		idlType
-  HiLink idlOpName		Function
-  HiLink idlOpParms		StorageClass
-  HiLink idlParmName		Identifier
-  HiLink idlInheritFrom		Identifier
-
-  HiLink idlId			Constant
-  "HiLink idlCase		Keyword
-  HiLink idlCaseLabel		Constant
-
   delcommand HiLink
 endif
 
 let b:current_syntax = "idl"
 
-" vim: ts=8
+" vim: sw=2 et
diff --git a/runtime/syntax/lilo.vim b/runtime/syntax/lilo.vim
index a97bb9c..e3ba2af 100644
--- a/runtime/syntax/lilo.vim
+++ b/runtime/syntax/lilo.vim
@@ -2,22 +2,23 @@
 " This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: lilo configuration (lilo.conf)
 " Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2003 May 04
+" Last Change: 2004-07-20
 " URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
 
+
 " Setup
 if version >= 600
-	if exists("b:current_syntax")
-		finish
-	endif
+  if exists("b:current_syntax")
+    finish
+  endif
 else
-	syntax clear
+  syntax clear
 endif
 
 if version >= 600
-	command -nargs=1 SetIsk setlocal iskeyword=<args>
+  command -nargs=1 SetIsk setlocal iskeyword=<args>
 else
-	command -nargs=1 SetIsk set iskeyword=<args>
+  command -nargs=1 SetIsk set iskeyword=<args>
 endif
 SetIsk @,48-57,.,-,_
 delcommand SetIsk
@@ -34,23 +35,23 @@
 syn match liloDecNumberP "\d\+p\=" contained
 syn match liloSpecial contained "\\\(\"\|\\\|$\)"
 syn region liloString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=liloSpecial,liloEnviron
-syn match liloLabel "\S\+" contained contains=liloSpecial,liloEnviron
+syn match liloLabel :[^ "]\+: contained contains=liloSpecial,liloEnviron
 syn region liloPath start=+[$/]+ skip=+\\\\\|\\ \|\\$"+ end=+ \|$+ contained contains=liloSpecial,liloEnviron
 syn match liloDecNumberList "\(\d\|,\)\+" contained contains=liloDecNumber
 syn match liloDecNumberPList "\(\d\|[,p]\)\+" contained contains=liloDecNumberP,liloDecNumber
 syn region liloAnything start=+[^[:space:]#]+ skip=+\\\\\|\\ \|\\$+ end=+ \|$+ contained contains=liloSpecial,liloEnviron,liloString
 
 " Path
-syn keyword liloOption backup bitmap boot disktab force-backup install keytable map message nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
+syn keyword liloOption backup bitmap boot disktab force-backup keytable map message nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
 syn keyword liloKernelOpt initrd root nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
 syn keyword liloImageOpt path loader table nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
 syn keyword liloDiskOpt partition nextgroup=liloEqPath,liloEqPathComment,liloError skipwhite skipempty
 
 " Other
-syn keyword liloOption menu-scheme raid-extra-boot serial nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
-syn keyword liloOption default nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
+syn keyword liloOption menu-scheme raid-extra-boot serial install nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
+syn keyword liloOption bios-passes-dl nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
+syn keyword liloOption default label alias wmdefault nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
 syn keyword liloKernelOpt ramdisk nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
-syn keyword liloImageOpt alias label nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
 syn keyword liloImageOpt password range nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
 syn keyword liloDiskOpt set type nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
 
@@ -67,19 +68,21 @@
 syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
 
 " Hex number
-syn keyword liloImageOpt map-drive to nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
+syn keyword liloImageOpt map-drive to boot-as nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
 syn keyword liloDiskOpt bios normal hidden nextgroup=liloEqNumber,liloEqNumberComment,liloError skipwhite skipempty
 
 " Number list
-syn keyword liloOption bmp-colors bmp-timer nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
+syn keyword liloOption bmp-colors nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
 
 " Number list, some of the numbers followed by p
-syn keyword liloOption bmp-table nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
+syn keyword liloOption bmp-table bmp-timer nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
 
 " Flag
 syn keyword liloOption compact fix-table geometric ignore-table lba32 linear mandatory nowarn prompt
+syn keyword liloOption bmp-retain el-torito-bootable-CD large-memory suppress-boot-time-BIOS-data
 syn keyword liloKernelOpt read-only read-write
 syn keyword liloImageOpt bypass lock mandatory optional restricted single-key unsafe
+syn keyword liloImageOpt master-boot wmwarn wmdisable
 syn keyword liloDiskOpt change activate deactivate inaccessible reset
 
 " Image
@@ -97,7 +100,7 @@
 syn match liloEqDecNumberComment "#.*$" contained nextgroup=liloEqDecNumber,liloEqDecNumberComment,liloError skipwhite skipempty
 syn match liloEqHexNumberComment "#.*$" contained nextgroup=liloEqHexNumber,liloEqHexNumberComment,liloError skipwhite skipempty
 syn match liloEqStringComment "#.*$" contained nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
-syn match liloEqLabelComment "#.*$" contained nextgroup=liloEqLabel,liloEqLabelComment,liloError skipwhite skipempty
+syn match liloEqLabelStringComment "#.*$" contained nextgroup=liloEqLabelString,liloEqLabelStringComment,liloError skipwhite skipempty
 syn match liloEqNumberListComment "#.*$" contained nextgroup=liloEqNumberList,liloEqNumberListComment,liloError skipwhite skipempty
 syn match liloEqDecNumberPListComment "#.*$" contained nextgroup=liloEqDecNumberPList,liloEqDecNumberPListComment,liloError skipwhite skipempty
 syn match liloEqAnythingComment "#.*$" contained nextgroup=liloEqAnything,liloEqAnythingComment,liloError skipwhite skipempty
@@ -109,7 +112,7 @@
 syn match liloEqDecNumber "=" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
 syn match liloEqHexNumber "=" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
 syn match liloEqString "=" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
-syn match liloEqLabel "=" contained nextgroup=liloLabel,liloLabelComment,liloError skipwhite skipempty
+syn match liloEqLabelString "=" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
 syn match liloEqNumberList "=" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
 syn match liloEqDecNumberPList "=" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
 syn match liloEqAnything "=" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty
@@ -121,74 +124,71 @@
 syn match liloDecNumberComment "#.*$" contained nextgroup=liloDecNumber,liloDecNumberComment,liloError skipwhite skipempty
 syn match liloHexNumberComment "#.*$" contained nextgroup=liloHexNumber,liloHexNumberComment,liloError skipwhite skipempty
 syn match liloStringComment "#.*$" contained nextgroup=liloString,liloStringComment,liloError skipwhite skipempty
-syn match liloLabelComment "#.*$" contained nextgroup=liloLabel,liloLabelComment,liloError skipwhite skipempty
+syn match liloLabelStringComment "#.*$" contained nextgroup=liloString,liloLabel,liloLabelStringComment,liloError skipwhite skipempty
 syn match liloDecNumberListComment "#.*$" contained nextgroup=liloDecNumberList,liloDecNumberListComment,liloError skipwhite skipempty
 syn match liloDecNumberPListComment "#.*$" contained nextgroup=liloDecNumberPList,liloDecNumberPListComment,liloError skipwhite skipempty
 syn match liloAnythingComment "#.*$" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty
 
 " Define the default highlighting
 if version >= 508 || !exists("did_lilo_syntax_inits")
-	if version < 508
-		let did_lilo_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
+  if version < 508
+    let did_lilo_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
 
-	HiLink liloEqPath liloEquals
-	HiLink liloEqWord liloEquals
-	HiLink liloEqVga liloEquals
-	HiLink liloEqDecNumber liloEquals
-	HiLink liloEqHexNumber liloEquals
-	HiLink liloEqNumber liloEquals
-	HiLink liloEqString liloEquals
-	HiLink liloEqLabel liloEquals
-	HiLink liloEqAnything liloEquals
-	HiLink liloEquals Special
+  HiLink liloEqPath             liloEquals
+  HiLink liloEqWord             liloEquals
+  HiLink liloEqVga              liloEquals
+  HiLink liloEqDecNumber        liloEquals
+  HiLink liloEqHexNumber        liloEquals
+  HiLink liloEqNumber           liloEquals
+  HiLink liloEqString           liloEquals
+  HiLink liloEqAnything         liloEquals
+  HiLink liloEquals             Special
 
-	HiLink liloError Error
+  HiLink liloError              Error
 
-	HiLink liloEqPathComment liloComment
-	HiLink liloEqVgaComment liloComment
-	HiLink liloEqDecNumberComment liloComment
-	HiLink liloEqHexNumberComment liloComment
-	HiLink liloEqStringComment liloComment
-	HiLink liloEqLabelComment liloComment
-	HiLink liloEqAnythingComment liloComment
-	HiLink liloPathComment liloComment
-	HiLink liloVgaComment liloComment
-	HiLink liloDecNumberComment liloComment
-	HiLink liloHexNumberComment liloComment
-	HiLink liloNumberComment liloComment
-	HiLink liloStringComment liloComment
-	HiLink liloLabelComment liloComment
-	HiLink liloAnythingComment liloComment
-	HiLink liloComment Comment
+  HiLink liloEqPathComment      liloComment
+  HiLink liloEqVgaComment       liloComment
+  HiLink liloEqDecNumberComment liloComment
+  HiLink liloEqHexNumberComment liloComment
+  HiLink liloEqStringComment    liloComment
+  HiLink liloEqAnythingComment  liloComment
+  HiLink liloPathComment        liloComment
+  HiLink liloVgaComment         liloComment
+  HiLink liloDecNumberComment   liloComment
+  HiLink liloHexNumberComment   liloComment
+  HiLink liloNumberComment      liloComment
+  HiLink liloStringComment      liloComment
+  HiLink liloAnythingComment    liloComment
+  HiLink liloComment            Comment
 
-	HiLink liloDiskOpt liloOption
-	HiLink liloKernelOpt liloOption
-	HiLink liloImageOpt liloOption
-	HiLink liloOption Keyword
+  HiLink liloDiskOpt            liloOption
+  HiLink liloKernelOpt          liloOption
+  HiLink liloImageOpt           liloOption
+  HiLink liloOption             Keyword
 
-	HiLink liloDecNumber liloNumber
-	HiLink liloHexNumber liloNumber
-	HiLink liloDecNumberP liloNumber
-	HiLink liloNumber Number
-	HiLink liloString String
-	HiLink liloPath Constant
+  HiLink liloDecNumber          liloNumber
+  HiLink liloHexNumber          liloNumber
+  HiLink liloDecNumberP         liloNumber
+  HiLink liloNumber             Number
+  HiLink liloString             String
+  HiLink liloPath               Constant
 
-	HiLink liloSpecial Special
-	HiLink liloLabel Title
-	HiLink liloDecNumberList Special
-	HiLink liloDecNumberPList Special
-	HiLink liloAnything Normal
-	HiLink liloEnviron Identifier
-	HiLink liloVgaKeyword Identifier
-	HiLink liloImage Type
-	HiLink liloChRules Preproc
-	HiLink liloDisk Preproc
+  HiLink liloSpecial            Special
+  HiLink liloLabel              Title
+  HiLink liloDecNumberList      Special
+  HiLink liloDecNumberPList     Special
+  HiLink liloAnything           Normal
+  HiLink liloEnviron            Identifier
+  HiLink liloVgaKeyword         Identifier
+  HiLink liloImage              Type
+  HiLink liloChRules            Preproc
+  HiLink liloDisk               Preproc
 
-	delcommand HiLink
+  delcommand HiLink
 endif
 
 let b:current_syntax = "lilo"
diff --git a/runtime/syntax/lprolog.vim b/runtime/syntax/lprolog.vim
index 2cc42f9..7007f23 100644
--- a/runtime/syntax/lprolog.vim
+++ b/runtime/syntax/lprolog.vim
@@ -2,10 +2,10 @@
 " Language:     LambdaProlog (Teyjus)
 " Filenames:    *.mod *.sig
 " Maintainer:   Markus Mottl  <markus@oefai.at>
-" URL:		http://www.ai.univie.ac.at/~markus/vim/syntax/lprolog.vim
-" Last Change:	2003 May 11
-"		2001 Apr 26 - Upgraded for new Vim version
-"		2000 Jun  5 - Initial release
+" URL:          http://www.oefai.at/~markus/vim/syntax/lprolog.vim
+" Last Change:  2004 Jul 26
+"               2001 Apr 26 - Upgraded for new Vim version
+"               2000 Jun  5 - Initial release
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff --git a/runtime/syntax/ocaml.vim b/runtime/syntax/ocaml.vim
index 95534a4..b2ff18d 100644
--- a/runtime/syntax/ocaml.vim
+++ b/runtime/syntax/ocaml.vim
@@ -2,12 +2,12 @@
 " Language:     OCaml
 " Filenames:    *.ml *.mli *.mll *.mly
 " Maintainers:  Markus Mottl      <markus@oefai.at>
-"		Karl-Heinz Sylla  <Karl-Heinz.Sylla@gmd.de>
-"		Issac Trotts	  <<ijtrotts@ucdavis.edu>
-" URL:		http://www.oefai.at/~markus/vim/syntax/ocaml.vim
-" Last Change:	2003 May 04
-"		2002 Oct 24 - Small fix for "module type" (MM)
-"		2002 Jun 16 - Added "&&", "<" and ">" as operators (MM)
+"               Karl-Heinz Sylla  <Karl-Heinz.Sylla@gmd.de>
+"               Issac Trotts      <ijtrotts@ucdavis.edu>
+" URL:          http://www.oefai.at/~markus/vim/syntax/ocaml.vim
+" Last Change:  2004 Jul 26
+"               2003 Jan 19 - Added keyword "require" for scripting (MM)
+"               2002 Oct 30 - New variable "ocaml_revised" (MM)
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -24,7 +24,7 @@
 syn match    ocamlComment   "^#!.*"
 
 " Scripting directives
-syn match    ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|trace\|untrace\|untrace_all\|print_depth\|print_length\)\>"
+syn match    ocamlScript "^#\<\(quit\|labels\|warnings\|directory\|cd\|load\|use\|install_printer\|remove_printer\|require\|trace\|untrace\|untrace_all\|print_depth\|print_length\)\>"
 
 " lowercase identifier - the standard way to match
 syn match    ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/
@@ -163,7 +163,7 @@
   syn match    ocamlKeyChar  "!"
 endif
 
-syn keyword  ocamlType     array bool char exn float format int
+syn keyword  ocamlType     array bool char exn float format format4 int
 syn keyword  ocamlType     list option string unit
 
 syn keyword  ocamlOperator asr lor lsl lsr lxor mod not
diff --git a/runtime/syntax/sml.vim b/runtime/syntax/sml.vim
index b3c335b..5f6a862 100644
--- a/runtime/syntax/sml.vim
+++ b/runtime/syntax/sml.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
 " Language:     SML
 " Filenames:    *.sml *.sig
-" Maintainers:	Markus Mottl		<markus@oefai.at>
-"		Fabrizio Zeno Cornelli	<zeno@filibusta.crema.unimi.it>
-" URL:		http://www.ai.univie.ac.at/~markus/vim/syntax/sml.vim
-" Last Change:	2003 May 11
-"		2001 Nov 20 - Fixed small highlighting bug with modules (MM)
-"		2001 Aug 29 - Fixed small highlighting bug  (MM)
+" Maintainers:  Markus Mottl            <markus@oefai.at>
+"               Fabrizio Zeno Cornelli  <zeno@filibusta.crema.unimi.it>
+" URL:          http://www.oefai.at/~markus/vim/syntax/sml.vim
+" Last Change:  2004 Jul 26
+"               2001 Nov 20 - Fixed small highlighting bug with modules (MM)
+"               2001 Aug 29 - Fixed small highlighting bug  (MM)
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded