updated for version 7.2a
diff --git a/runtime/syntax/cdrdaoconf.vim b/runtime/syntax/cdrdaoconf.vim
new file mode 100644
index 0000000..5058c23
--- /dev/null
+++ b/runtime/syntax/cdrdaoconf.vim
@@ -0,0 +1,139 @@
+" Vim syntax file
+" Language:         cdrdao(1) configuration file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2007-09-02
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword cdrdaoconfTodo
+      \ TODO FIXME XXX NOTE
+
+syn match   cdrdaoconfBegin
+      \ display
+      \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment
+      \ '^'
+
+syn cluster cdrdaoconfKeyword
+      \ contains=cdrdaoconfIntegerKeyword,
+      \          cdrdaoconfDriverKeyword,
+      \          cdrdaoconfDeviceKeyword,
+      \          cdrdaoconfPathKeyword
+
+syn keyword cdrdaoconfIntegerKeyword
+      \ contained
+      \ nextgroup=cdrdaoconfIntegerDelimiter
+      \ write_speed
+      \ write_buffers
+      \ user_capacity
+      \ full_burn
+      \ read_speed
+      \ cddb_timeout
+
+syn keyword cdrdaoconfIntegerKeyword
+      \ contained
+      \ nextgroup=cdrdaoconfParanoiaModeDelimiter
+      \ read_paranoia_mode
+
+syn keyword cdrdaoconfDriverKeyword
+      \ contained
+      \ nextgroup=cdrdaoconfDriverDelimiter
+      \ write_driver
+      \ read_driver
+
+syn keyword cdrdaoconfDeviceKeyword
+      \ contained
+      \ nextgroup=cdrdaoconfDeviceDelimiter
+      \ write_device
+      \ read_device
+
+syn keyword cdrdaoconfPathKeyword
+      \ contained
+      \ nextgroup=cdrdaoconfPathDelimiter
+      \ cddb_directory
+      \ tmp_file_dir
+
+syn match   cdrdaoconfIntegerDelimiter
+      \ contained
+      \ nextgroup=cdrdaoconfInteger
+      \ skipwhite
+      \ ':'
+
+syn match   cdrdaoconfParanoiaModeDelimiter
+      \ contained
+      \ nextgroup=cdrdaoconfParanoiaMode
+      \ skipwhite
+      \ ':'
+
+syn match   cdrdaoconfDriverDelimiter
+      \ contained
+      \ nextgroup=cdrdaoconfDriver
+      \ skipwhite
+      \ ':'
+
+syn match   cdrdaoconfDeviceDelimiter
+      \ contained
+      \ nextgroup=cdrdaoconfDevice
+      \ skipwhite
+      \ ':'
+
+syn match   cdrdaoconfPathDelimiter
+      \ contained
+      \ nextgroup=cdrdaoconfPath
+      \ skipwhite
+      \ ':'
+
+syn match   cdrdaoconfInteger
+      \ contained
+      \ '\<\d\+\>'
+
+syn match   cdrdaoParanoiaMode
+      \ contained
+      \ '[0123]'
+
+syn match   cdrdaoconfDriver
+      \ contained
+      \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>'
+
+syn region  cdrdaoconfDevice
+      \ contained
+      \ matchgroup=cdrdaoconfDevice
+      \ start=+"+
+      \ end=+"+
+
+syn region  cdrdaoconfPath
+      \ contained
+      \ matchgroup=cdrdaoconfPath
+      \ start=+"+
+      \ end=+"+
+
+syn match   cdrdaoconfComment
+      \ contains=cdrdaoconfTodo,@Spell
+      \ '^.*#.*$'
+
+hi def link cdrdaoconfTodo              Todo
+hi def link cdrdaoconfComment           Comment
+hi def link cdrdaoconfKeyword           Keyword
+hi def link cdrdaoconfIntegerKeyword    cdrdaoconfKeyword
+hi def link cdrdaoconfDriverKeyword     cdrdaoconfKeyword
+hi def link cdrdaoconfDeviceKeyword     cdrdaoconfKeyword
+hi def link cdrdaoconfPathKeyword       cdrdaoconfKeyword
+hi def link cdrdaoconfDelimiter         Delimiter
+hi def link cdrdaoconfIntegerDelimiter  cdrdaoconfDelimiter
+hi def link cdrdaoconfDriverDelimiter   cdrdaoconfDelimiter
+hi def link cdrdaoconfDeviceDelimiter   cdrdaoconfDelimiter
+hi def link cdrdaoconfPathDelimiter     cdrdaoconfDelimiter
+hi def link cdrdaoconfInteger           Number
+hi def link cdrdaoconfParanoiaMode      Number
+hi def link cdrdaoconfDriver            Identifier
+hi def link cdrdaoconfDevice            cdrdaoconfPath
+hi def link cdrdaoconfPath              String
+
+let b:current_syntax = "cdrdaoconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 302417e..4dd5c3a 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -49,7 +49,7 @@
 syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
            \ nextgroup=cmakeArgument
 syn keyword cmakeStatement
-           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
+           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
            \ nextgroup=cmakeArgumnts
 
 "syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts
diff --git a/runtime/syntax/coco.vim b/runtime/syntax/coco.vim
new file mode 100644
index 0000000..4094a55
--- /dev/null
+++ b/runtime/syntax/coco.vim
@@ -0,0 +1,33 @@
+" Vim syntax file
+" Language:     Coco/R
+" Maintainer:   Ashish Shukla <wahjava@gmail.com>
+" Last Change:  2007 Aug 10
+" Remark:       Coco/R syntax partially implemented.
+" License:      Vim license
+
+if version < 600
+	syntax clear
+elseif exists("b:current_syntax")
+	finish
+endif
+
+syn keyword cocoKeywords ANY CHARACTERS COMMENTS COMPILER CONTEXT END FROM IF IGNORE IGNORECASE NESTED PRAGMAS PRODUCTIONS SYNC TO TOKENS WEAK
+syn match   cocoUnilineComment    #//.*$#
+syn match   cocoIdentifier        /[[:alpha:]][[:alnum:]]*/
+syn region  cocoMultilineComment  start=#/[*]# end=#[*]/#
+syn region  cocoString            start=/"/ skip=/\\"\|\\\\/ end=/"/
+syn region  cocoCharacter         start=/'/ skip=/\\'\|\\\\/ end=/'/
+syn match   cocoOperator          /+\||\|\.\.\|-\|(\|)\|{\|}\|\[\|\]\|=\|<\|>/
+syn region  cocoProductionCode    start=/([.]/ end=/[.])/
+syn match   cocoPragma            /[$][[:alnum:]]*/
+
+hi def link cocoKeywords         Keyword
+hi def link cocoUnilineComment   Comment 
+hi def link cocoMultilineComment Comment
+hi def link cocoIdentifier       Identifier
+hi def link cocoString           String
+hi def link cocoCharacter        Character
+hi def link cocoOperator         Operator
+hi def link cocoProductionCode   Statement
+hi def link cocoPragma           Special
+
diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim
index 7f9ac25..a73836a 100644
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -2,7 +2,7 @@
 " Language:	Cascading Style Sheets
 " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 " URL:		http://www.fleiner.com/vim/syntax/css.vim
-" Last Change:	2006 Jun 19
+" Last Change:	2007 Nov 06
 " CSS2 by Nikolai Weibull
 " Full CSS2, HTML4 support by Yeti
 
@@ -194,7 +194,7 @@
 syn match cssSpecialCharQ +\\'+ contained
 syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
 syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
-syn match cssClassName "\.[A-Za-z][A-Za-z0-9-]\+"
+syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
 
 if main_syntax == "css"
   syn sync minlines=10
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index f15e83c..3b01fb5 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,8 +3,8 @@
 " Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: $LastChangedDate: 2006-04-16 21:50:31 -0400 (Sun, 16 Apr 2006) $
-" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/debcontrol.vim?op=file&rev=0&sc=0
+" Last Change: 2008-02-23
+" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian
 
 " Comments are very welcome - but please make sure that you are commenting on
 " the latest version of this file.
@@ -17,6 +17,9 @@
   finish
 endif
 
+" Should match case except for the keys of each field
+syn case match
+
 " Everything that is not explicitly matched by the rules below
 syn match debcontrolElse "^.*$"
 
@@ -25,28 +28,47 @@
 syn match debControlSpace " "
 
 " Define some common expressions we can use later on
-syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(eb\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390\|sheb\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
-syn match debcontrolName contained "[a-z][a-z0-9+-]*"
+syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
+syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
 syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolPackageType contained "u\?deb"
 syn match debcontrolVariable contained "\${.\{-}}"
 
+" A URL (using the domain name definitions from RFC 1034 and 1738), right now
+" only enforce protocol and some sanity on the server/path part;
+syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
+syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+
 " An email address
 syn match	debcontrolEmail	"[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
 syn match	debcontrolEmail	"<.\{-}>"
 
+" #-Comments
+syn match debcontrolComment "^#.*$"
+
+syn case ignore
+
 " List of all legal keys
-syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\): *"
+syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\): *"
 
 " Fields for which we do strict syntax checking
 syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
 syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
 syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
 syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
+syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
+syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
 
 " Catch-all for the other legal fields
-syn region debcontrolField start="^\(Maintainer\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Bugs\|Origin\|Enhances\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\(Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
+syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
 
 " Associate our matches and regions with pretty colours
 if version >= 508 || !exists("did_debcontrol_syn_inits")
@@ -65,8 +87,14 @@
   HiLink debcontrolName		Normal
   HiLink debcontrolPriority	Normal
   HiLink debcontrolSection	Normal
+  HiLink debcontrolPackageType	Normal
   HiLink debcontrolVariable	Identifier
   HiLink debcontrolEmail	Identifier
+  HiLink debcontrolVcsSvn	Identifier
+  HiLink debcontrolVcsCvs	Identifier
+  HiLink debcontrolVcsGit	Identifier
+  HiLink debcontrolHTTPUrl	Identifier
+  HiLink debcontrolComment	Comment
   HiLink debcontrolElse		Special
 
   delcommand HiLink
diff --git a/runtime/syntax/denyhosts.vim b/runtime/syntax/denyhosts.vim
new file mode 100644
index 0000000..0ec09ba
--- /dev/null
+++ b/runtime/syntax/denyhosts.vim
@@ -0,0 +1,289 @@
+" Vim syntax file
+" Language:         denyhosts configuration file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2007-06-25
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword denyhostsTodo
+      \ contained
+      \ TODO
+      \ FIXME
+      \ XXX
+      \ NOTE
+
+syn case ignore
+
+syn match   denyhostsComment
+      \ contained
+      \ display
+      \ '#.*'
+      \ contains=denyhostsTodo,
+      \          @Spell
+
+syn match   denyhostsBegin
+      \ display
+      \ '^'
+      \ nextgroup=@denyhostsSetting,
+      \           denyhostsComment
+      \ skipwhite
+
+syn cluster denyhostsSetting
+      \ contains=denyhostsStringSetting,
+      \          denyhostsBooleanSetting,
+      \          denyhostsPathSetting,
+      \          denyhostsNumericSetting,
+      \          denyhostsTimespecSetting,
+      \          denyhostsFormatSetting,
+      \          denyhostsRegexSetting
+
+syn keyword denyhostsStringSetting
+      \ contained
+      \ ADMIN_EMAIL
+      \ SMTP_HOST
+      \ SMTP_USERNAME
+      \ SMTP_PASSWORD
+      \ SMTP_FROM
+      \ SMTP_SUBJECT
+      \ BLOCK_SERVICE
+      \ nextgroup=denyhostsStringDelimiter
+      \ skipwhite
+
+syn keyword denyhostsBooleanSetting
+      \ contained
+      \ SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS
+      \ HOSTNAME_LOOKUP
+      \ SYSLOG_REPORT
+      \ RESET_ON_SUCCESS
+      \ SYNC_UPLOAD
+      \ SYNC_DOWNLOAD
+      \ ALLOWED_HOSTS_HOSTNAME_LOOKUP
+      \ nextgroup=denyhostsBooleanDelimiter
+      \ skipwhite
+
+syn keyword denyhostsPathSetting
+      \ contained
+      \ DAEMON_LOG
+      \ PLUGIN_DENY
+      \ PLUGIN_PURGE
+      \ SECURE_LOG
+      \ LOCK_FILE
+      \ HOSTS_DENY
+      \ WORK_DIR
+      \ nextgroup=denyhostsPathDelimiter
+      \ skipwhite
+
+syn keyword denyhostsNumericSetting
+      \ contained
+      \ SYNC_DOWNLOAD_THRESHOLD
+      \ SMTP_PORT
+      \ PURGE_THRESHOLD
+      \ DENY_THRESHOLD_INVALID
+      \ DENY_THRESHOLD_VALID
+      \ DENY_THRESHOLD_ROOT
+      \ DENY_THRESHOLD_RESTRICTED
+      \ nextgroup=denyhostsNumericDelimiter
+      \ skipwhite
+
+syn keyword denyhostsTimespecSetting
+      \ contained
+      \ DAEMON_SLEEP
+      \ DAEMON_PURGE
+      \ AGE_RESET_INVALID
+      \ AGE_RESET_VALID
+      \ AGE_RESET_ROOT
+      \ AGE_RESET_RESTRICTED
+      \ SYNC_INTERVAL
+      \ SYNC_DOWNLOAD_RESILIENCY
+      \ PURGE_DENY
+      \ nextgroup=denyhostsTimespecDelimiter
+      \ skipwhite
+
+syn keyword denyhostsFormatSetting
+      \ contained
+      \ DAEMON_LOG_TIME_FORMAT
+      \ DAEMON_LOG_MESSAGE_FORMAT
+      \ SMTP_DATE_FORMAT
+      \ nextgroup=denyhostsFormatDelimiter
+      \ skipwhite
+
+syn keyword denyhostsRegexSetting
+      \ contained
+      \ SSHD_FORMAT_REGEX
+      \ FAILED_ENTRY_REGEX
+      \ FAILED_ENTRY_REGEX2
+      \ FAILED_ENTRY_REGEX3
+      \ FAILED_ENTRY_REGEX4
+      \ FAILED_ENTRY_REGEX5
+      \ FAILED_ENTRY_REGEX6
+      \ FAILED_ENTRY_REGEX7
+      \ USERDEF_FAILED_ENTRY_REGEX
+      \ SUCCESSFUL_ENTRY_REGEX
+      \ nextgroup=denyhostsRegexDelimiter
+      \ skipwhite
+
+syn keyword denyhostURLSetting
+      \ contained
+      \ SYNC_SERVER
+      \ nextgroup=denyhostsURLDelimiter
+      \ skipwhite
+
+syn match   denyhostsStringDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsString
+      \ skipwhite
+
+syn match   denyhostsBooleanDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=@denyhostsBoolean
+      \ skipwhite
+
+syn match   denyhostsPathDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsPath
+      \ skipwhite
+
+syn match   denyhostsNumericDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsNumber
+      \ skipwhite
+
+syn match   denyhostsTimespecDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsTimespec
+      \ skipwhite
+
+syn match   denyhostsFormatDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsFormat
+      \ skipwhite
+
+syn match   denyhostsRegexDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsRegex
+      \ skipwhite
+
+syn match   denyhostsURLDelimiter
+      \ contained
+      \ display
+      \ '[:=]'
+      \ nextgroup=denyhostsURL
+      \ skipwhite
+
+syn match   denyhostsString
+      \ contained
+      \ display
+      \ '.\+'
+
+syn cluster denyhostsBoolean
+      \ contains=denyhostsBooleanTrue,
+      \          denyhostsBooleanFalse
+
+syn match   denyhostsBooleanFalse
+      \ contained
+      \ display
+      \ '.\+'
+
+syn match   denyhostsBooleanTrue
+      \ contained
+      \ display
+      \ '\s*\%(1\|t\%(rue\)\=\|y\%(es\)\=\)\>\s*$'
+
+syn match   denyhostsPath
+      \ contained
+      \ display
+      \ '.\+'
+
+syn match   denyhostsNumber
+      \ contained
+      \ display
+      \ '\d\+\>'
+
+syn match   denyhostsTimespec
+      \ contained
+      \ display
+      \ '\d\+[mhdwy]\>'
+
+syn match   denyhostsFormat
+      \ contained
+      \ display
+      \ '.\+'
+      \ contains=denyhostsFormattingExpandos
+
+syn match   denyhostsFormattingExpandos
+      \ contained
+      \ display
+      \ '%.'
+
+syn match   denyhostsRegex
+      \ contained
+      \ display
+      \ '.\+'
+
+" TODO: Perhaps come up with a better regex here?  There should really be a
+" library for these kinds of generic regexes, that is, URLs, mail addresses, …
+syn match   denyhostsURL
+      \ contained
+      \ display
+      \ '.\+'
+
+hi def link denyhostsTodo               Todo
+hi def link denyhostsComment            Comment
+hi def link denyhostsSetting            Keyword
+hi def link denyhostsStringSetting      denyhostsSetting
+hi def link denyhostsBooleanSetting     denyhostsSetting
+hi def link denyhostsPathSetting        denyhostsSetting
+hi def link denyhostsNumericSetting     denyhostsSetting
+hi def link denyhostsTimespecSetting    denyhostsSetting
+hi def link denyhostsFormatSetting      denyhostsSetting
+hi def link denyhostsRegexSetting       denyhostsSetting
+hi def link denyhostURLSetting          denyhostsSetting
+hi def link denyhostsDelimiter          Normal
+hi def link denyhostsStringDelimiter    denyhostsDelimiter
+hi def link denyhostsBooleanDelimiter   denyhostsDelimiter
+hi def link denyhostsPathDelimiter      denyhostsDelimiter
+hi def link denyhostsNumericDelimiter   denyhostsDelimiter
+hi def link denyhostsTimespecDelimiter  denyhostsDelimiter
+hi def link denyhostsFormatDelimiter    denyhostsDelimiter
+hi def link denyhostsRegexDelimiter     denyhostsDelimiter
+hi def link denyhostsURLDelimiter       denyhostsDelimiter
+hi def link denyhostsString             String
+if exists('g:syntax_booleans_simple') || exists('b:syntax_booleans_simple')
+  hi def link denyhostsBoolean          Boolean
+  hi def link denyhostsBooleanFalse     denyhostsBoolean
+  hi def link denyhostsBooleanTrue      denyhostsBoolean
+else
+  hi def    denyhostsBooleanTrue        term=bold ctermfg=Green guifg=Green
+  hi def    denyhostsBooleanFalse       ctermfg=Red guifg=Red
+endif
+hi def link denyhostsPath               String
+hi def link denyhostsNumber             Number
+hi def link denyhostsTimespec           Number
+hi def link denyhostsFormat             String
+hi def link denyhostsFormattingExpandos Special
+hi def link denyhostsRegex              String
+hi def link denyhostsURL                String
+
+let b:current_syntax = "denyhosts"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/git.vim b/runtime/syntax/git.vim
new file mode 100644
index 0000000..fd76b73
--- /dev/null
+++ b/runtime/syntax/git.vim
@@ -0,0 +1,67 @@
+" Vim syntax file
+" Language:	generic git output
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Last Change:	2008 Mar 21
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+syn sync minlines=50
+
+syn include @gitDiff syntax/diff.vim
+
+syn region gitHead start=/\%^/ end=/^$/
+syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/
+
+" For git reflog and git show ...^{tree}, avoid sync issues
+syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
+syn match gitHead /^\x\{40\} \x\{40}\t.*/
+
+syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold
+syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff
+
+syn match  gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
+syn match  gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
+syn match  gitKeyword /^Merge:/  contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
+syn match  gitMode    /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
+syn match  gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+syn match  gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+syn match  gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
+syn match  gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
+syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
+
+syn match  gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
+syn match  gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
+syn match  gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
+
+syn match  gitDate      /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
+syn match  gitDate      /-\=\d\+ [+-]\d\d\d\d\>/               contained
+syn match  gitDate      /\<\d\+ \l\+ ago\>/                    contained
+syn match  gitType      /\<\%(tag\|commit\|tree\|blob\)\>/     contained nextgroup=gitHash skipwhite
+syn match  gitStage     /\<\d\t\@=/                            contained
+syn match  gitReference /\S\+\S\@!/                            contained
+syn match  gitHash      /\<\x\{40\}\>/                         contained nextgroup=gitIdentity,gitStage skipwhite
+syn match  gitHash      /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
+syn match  gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
+syn match  gitHashAbbrev /\<\x\{40\}\>/             contained nextgroup=gitHashAbbrev skipwhite
+
+hi def link gitDateHeader        gitIdentityHeader
+hi def link gitIdentityHeader    gitIdentityKeyword
+hi def link gitIdentityKeyword   Label
+hi def link gitReflogHeader      gitKeyword
+hi def link gitKeyword           Keyword
+hi def link gitIdentity          String
+hi def link gitEmailDelimiter    Delimiter
+hi def link gitEmail             Special
+hi def link gitDate              Number
+hi def link gitMode              Number
+hi def link gitHashAbbrev        gitHash
+hi def link gitHash              Identifier
+hi def link gitReflogMiddle      gitReference
+hi def link gitReference         Function
+hi def link gitStage             gitType
+hi def link gitType              Type
+
+let b:current_syntax = "git"
diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim
new file mode 100644
index 0000000..e75d044
--- /dev/null
+++ b/runtime/syntax/gitcommit.vim
@@ -0,0 +1,65 @@
+" Vim syntax file
+" Language:	git commit file
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Filenames:	*.git/COMMIT_EDITMSG
+" Last Change:	2008 Apr 09
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+syn sync minlines=50
+
+if has("spell")
+    syn spell toplevel
+endif
+
+syn include @gitcommitDiff syntax/diff.vim
+syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+
+syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl
+syn match   gitcommitSummary  	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+syn match   gitcommitOverflow	".*" contained contains=@Spell
+syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell
+syn match   gitcommitComment	"^#.*"
+syn region  gitcommitHead	start=/^#   / end=/^#$/ contained transparent
+syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match   gitcommitBranch	"\S\+" contained
+syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment
+
+syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
+syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained
+
+syn region  gitcommitDiscarded	start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
+syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
+
+syn match   gitcommitDiscardedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
+syn match   gitcommitSelectedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
+syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
+syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
+syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
+
+hi def link gitcommitSummary		Keyword
+hi def link gitcommitComment		Comment
+hi def link gitcommitUntracked		gitcommitComment
+hi def link gitcommitDiscarded		gitcommitComment
+hi def link gitcommitSelected		gitcommitComment
+hi def link gitcommitOnBranch		Comment
+hi def link gitcommitBranch		Special
+hi def link gitcommitDiscardedType	gitcommitType
+hi def link gitcommitSelectedType	gitcommitType
+hi def link gitcommitType		Type
+hi def link gitcommitHeader		PreProc
+hi def link gitcommitUntrackedFile	gitcommitFile
+hi def link gitcommitDiscardedFile	gitcommitFile
+hi def link gitcommitSelectedFile	gitcommitFile
+hi def link gitcommitFile		Constant
+hi def link gitcommitDiscardedArrow	gitcommitArrow
+hi def link gitcommitSelectedArrow	gitcommitArrow
+hi def link gitcommitArrow		gitcommitComment
+"hi def link gitcommitOverflow		Error
+hi def link gitcommitBlank		Error
+
+let b:current_syntax = "gitcommit"
diff --git a/runtime/syntax/hostconf.vim b/runtime/syntax/hostconf.vim
new file mode 100644
index 0000000..4fc8af0
--- /dev/null
+++ b/runtime/syntax/hostconf.vim
@@ -0,0 +1,147 @@
+" Vim syntax file
+" Language:         host.conf(5) configuration file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2007-06-25
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword hostconfTodo
+      \ contained
+      \ TODO
+      \ FIXME
+      \ XXX
+      \ NOTE
+
+syn match   hostconfComment
+      \ display
+      \ contained
+      \ '\s*#.*'
+      \ contains=hostconfTodo,
+      \          @Spell
+
+syn match   hostconfBegin
+      \ display
+      \ '^'
+      \ nextgroup=hostconfComment,hostconfKeyword
+      \ skipwhite
+
+syn keyword hostconfKeyword
+      \ contained
+      \ order
+      \ nextgroup=hostconfLookupOrder
+      \ skipwhite
+
+let s:orders = ['bind', 'hosts', 'nis']
+
+function s:permute_suffixes(list)
+  if empty(a:list)
+    return []
+  elseif len(a:list) == 1
+    return a:list[0]
+  else
+    let i = 0
+    let n = len(a:list)
+    let sub_permutations = []
+    while i < n
+      let list_copy = copy(a:list)
+      let removed = list_copy[i]
+      call remove(list_copy, i)
+      call add(sub_permutations, [removed, s:permute_suffixes(list_copy)])
+      let i += 1
+    endwhile
+    return sub_permutations
+  endif
+endfunction
+
+function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context)
+  for order_of_orders in a:list_of_order_of_orders
+    let order = order_of_orders[0]
+    let trailing_context = a:trailing_context . toupper(order[0]) . order[1:]
+    let nextgroup = 'hostconfLookupOrder' . trailing_context
+    let nextgroup_delimiter = nextgroup . 'Delimiter'
+    let group = 'hostconfLookupOrder' . a:context
+    execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite'
+    execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite'
+    if a:context != ""
+      execute 'hi def link' group 'hostconfLookupOrder'
+    endif
+    execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter'
+    let context = trailing_context
+    if type(order_of_orders[1]) == type([])
+      call s:generate_suffix_groups(order_of_orders[1], context, trailing_context)
+    else
+      execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1]
+      execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder'
+    endif
+  endfor
+endfunction
+
+call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "")
+
+delfunction s:generate_suffix_groups
+delfunction s:permute_suffixes
+
+syn keyword hostconfKeyword
+      \ contained
+      \ trim
+      \ nextgroup=hostconfDomain
+      \ skipwhite
+
+syn match   hostconfDomain
+      \ contained
+      \ '\.[^:;,[:space:]]\+'
+      \ nextgroup=hostconfDomainDelimiter
+      \ skipwhite
+
+syn match   hostconfDomainDelimiter
+      \ contained
+      \ display
+      \ '[:;,]'
+      \ nextgroup=hostconfDomain
+      \ skipwhite
+
+syn keyword hostconfKeyword
+      \ contained
+      \ multi
+      \ nospoof
+      \ spoofalert
+      \ reorder
+      \ nextgroup=hostconfBoolean
+      \ skipwhite
+
+syn keyword hostconfBoolean
+      \ contained
+      \ on
+      \ off
+
+syn keyword hostconfKeyword
+      \ contained
+      \ spoof
+      \ nextgroup=hostconfSpoofValue
+      \ skipwhite
+
+syn keyword hostconfSpoofValue
+      \ contained
+      \ off
+      \ nowarn
+      \ warn
+
+hi def link hostconfTodo                  Todo
+hi def link hostconfComment               Comment
+hi def link hostconfKeyword               Keyword
+hi def link hostconfLookupOrder           Identifier
+hi def link hostconfLookupOrderDelimiter  Delimiter
+hi def link hostconfDomain                String
+hi def link hostconfDomainDelimiter       Delimiter
+hi def link hostconfBoolean               Boolean
+hi def link hostconfSpoofValue            hostconfBoolean
+
+let b:current_syntax = "hostconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index cd800e7..55390aa 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,12 +1,13 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Apr 12, 2007
-" Version:     19
+" Last Change: Oct 19, 2007
+" Version:     20
 " URL:	       http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 "  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
 "  taken from the HyperSpec
+"  Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim
 
 " ---------------------------------------------------------------------
 "  Load Once: {{{1
@@ -19,462 +20,542 @@
 endif
 
 if version >= 600
- setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
+ setlocal iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
 else
- set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
+ set iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
+endif
+
+if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
+ set ignorecase
 endif
 
 " ---------------------------------------------------------------------
 " Clusters: {{{1
-syn cluster			 lispAtomCluster		  contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
-syn cluster			 lispBaseListCluster		  contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
+syn cluster			lispAtomCluster		contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
+syn cluster			lispBaseListCluster	contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
 if exists("g:lisp_instring")
- syn cluster			 lispListCluster		  contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
+ syn cluster			lispListCluster		contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
 else
- syn cluster			 lispListCluster		  contains=@lispBaseListCluster,lispString
+ syn cluster			lispListCluster		contains=@lispBaseListCluster,lispString
 endif
 
 syn case ignore
 
 " ---------------------------------------------------------------------
 " Lists: {{{1
-syn match			 lispSymbol			  contained			   ![^()'`,"; \t]\+!
-syn match			 lispBarSymbol			  contained			   !|..\{-}|!
+syn match			lispSymbol			contained			![^()'`,"; \t]\+!
+syn match			lispBarSymbol			contained			!|..\{-}|!
 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
- syn region lispParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1 
- syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2 
- syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3 
- syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4 
- syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5 
- syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6 
- syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7 
- syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8 
- syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9 
+ syn region lispParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
+ syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
+ syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3
+ syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4
+ syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5
+ syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6
+ syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7
+ syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8
+ syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
  syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
 else
- syn region			 lispList			  matchgroup=Delimiter start="("   skip="|.\{-}|"			    matchgroup=Delimiter end=")"	contains=@lispListCluster
- syn region			 lispBQList			  matchgroup=PreProc   start="`("  skip="|.\{-}|"		    matchgroup=PreProc   end=")"		contains=@lispListCluster
+ syn region lispList			matchgroup=Delimiter start="("   skip="|.\{-}|"			matchgroup=Delimiter end=")"	contains=@lispListCluster
+ syn region lispBQList			matchgroup=PreProc   start="`("  skip="|.\{-}|"			matchgroup=PreProc   end=")"		contains=@lispListCluster
 endif
 
 " ---------------------------------------------------------------------
 " Atoms: {{{1
-syn match			 lispAtomMark			  "'"
-syn match			 lispAtom			  "'("me=e-1			   contains=lispAtomMark	    nextgroup=lispAtomList
-syn match			 lispAtom			  "'[^ \t()]\+"			   contains=lispAtomMark
-syn match			 lispAtomBarSymbol		  !'|..\{-}|!			   contains=lispAtomMark
-syn region			 lispAtom			  start=+'"+			   skip=+\\"+ end=+"+
-syn region			 lispAtomList			  contained			   matchgroup=Special start="("	    skip="|.\{-}|" matchgroup=Special end=")"			      contains=@lispAtomCluster,lispString
-syn match			 lispAtomNmbr			  contained			   "\<\d\+"
-syn match			 lispLeadWhite			  contained			   "^\s\+"
+syn match lispAtomMark			"'"
+syn match lispAtom			"'("me=e-1			contains=lispAtomMark	nextgroup=lispAtomList
+syn match lispAtom			"'[^ \t()]\+"			contains=lispAtomMark
+syn match lispAtomBarSymbol		!'|..\{-}|!			contains=lispAtomMark
+syn region lispAtom			start=+'"+			skip=+\\"+ end=+"+
+syn region lispAtomList			contained			matchgroup=Special start="("	skip="|.\{-}|" matchgroup=Special end=")"	contains=@lispAtomCluster,lispString,lispSpecial
+syn match lispAtomNmbr			contained			"\<\d\+"
+syn match lispLeadWhite			contained			"^\s\+"
 
 " ---------------------------------------------------------------------
 " Standard Lisp Functions and Macros: {{{1
-syn keyword lispFunc		 *				  find-method			   pprint-indent
-syn keyword lispFunc		 **				  find-package			   pprint-linear
-syn keyword lispFunc		 ***				  find-restart			   pprint-logical-block
-syn keyword lispFunc		 +				  find-symbol			   pprint-newline
-syn keyword lispFunc		 ++				  finish-output			   pprint-pop
-syn keyword lispFunc		 +++				  first				   pprint-tab
-syn keyword lispFunc		 -				  fixnum			   pprint-tabular
-syn keyword lispFunc		 /				  flet				   prin1
-syn keyword lispFunc		 //				  float				   prin1-to-string
-syn keyword lispFunc		 ///				  float-digits			   princ
-syn keyword lispFunc		 /=				  float-precision		   princ-to-string
-syn keyword lispFunc		 1+				  float-radix			   print
-syn keyword lispFunc		 1-				  float-sign			   print-not-readable
-syn keyword lispFunc		 <				  floating-point-inexact	   print-not-readable-object
-syn keyword lispFunc		 <=				  floating-point-invalid-operation print-object
-syn keyword lispFunc		 =				  floating-point-overflow	   print-unreadable-object
-syn keyword lispFunc		 >				  floating-point-underflow	   probe-file
-syn keyword lispFunc		 >=				  floatp			   proclaim
-syn keyword lispFunc		 abort				  floor				   prog
-syn keyword lispFunc		 abs				  fmakunbound			   prog*
-syn keyword lispFunc		 access				  force-output			   prog1
-syn keyword lispFunc		 acons				  format			   prog2
-syn keyword lispFunc		 acos				  formatter			   progn
-syn keyword lispFunc		 acosh				  fourth			   program-error
-syn keyword lispFunc		 add-method			  fresh-line			   progv
-syn keyword lispFunc		 adjoin				  fround			   provide
-syn keyword lispFunc		 adjust-array			  ftruncate			   psetf
-syn keyword lispFunc		 adjustable-array-p		  ftype				   psetq
-syn keyword lispFunc		 allocate-instance		  funcall			   push
-syn keyword lispFunc		 alpha-char-p			  function			   pushnew
-syn keyword lispFunc		 alphanumericp			  function-keywords		   putprop
-syn keyword lispFunc		 and				  function-lambda-expression	   quote
-syn keyword lispFunc		 append				  functionp			   random
-syn keyword lispFunc		 apply				  gbitp				   random-state
-syn keyword lispFunc		 applyhook			  gcd				   random-state-p
-syn keyword lispFunc		 apropos			  generic-function		   rassoc
-syn keyword lispFunc		 apropos-list			  gensym			   rassoc-if
-syn keyword lispFunc		 aref				  gentemp			   rassoc-if-not
-syn keyword lispFunc		 arithmetic-error		  get				   ratio
-syn keyword lispFunc		 arithmetic-error-operands	  get-decoded-time		   rational
-syn keyword lispFunc		 arithmetic-error-operation	  get-dispatch-macro-character	   rationalize
-syn keyword lispFunc		 array				  get-internal-real-time	   rationalp
-syn keyword lispFunc		 array-dimension		  get-internal-run-time		   read
-syn keyword lispFunc		 array-dimension-limit		  get-macro-character		   read-byte
-syn keyword lispFunc		 array-dimensions		  get-output-stream-string	   read-char
-syn keyword lispFunc		 array-displacement		  get-properties		   read-char-no-hang
-syn keyword lispFunc		 array-element-type		  get-setf-expansion		   read-delimited-list
-syn keyword lispFunc		 array-has-fill-pointer-p	  get-setf-method		   read-eval-print
-syn keyword lispFunc		 array-in-bounds-p		  get-universal-time		   read-from-string
-syn keyword lispFunc		 array-rank			  getf				   read-line
-syn keyword lispFunc		 array-rank-limit		  gethash			   read-preserving-whitespace
-syn keyword lispFunc		 array-row-major-index		  go				   read-sequence
-syn keyword lispFunc		 array-total-size		  graphic-char-p		   reader-error
-syn keyword lispFunc		 array-total-size-limit		  handler-bind			   readtable
-syn keyword lispFunc		 arrayp				  handler-case			   readtable-case
-syn keyword lispFunc		 ash				  hash-table			   readtablep
-syn keyword lispFunc		 asin				  hash-table-count		   real
-syn keyword lispFunc		 asinh				  hash-table-p			   realp
-syn keyword lispFunc		 assert				  hash-table-rehash-size	   realpart
-syn keyword lispFunc		 assoc				  hash-table-rehash-threshold	   reduce
-syn keyword lispFunc		 assoc-if			  hash-table-size		   reinitialize-instance
-syn keyword lispFunc		 assoc-if-not			  hash-table-test		   rem
-syn keyword lispFunc		 atan				  host-namestring		   remf
-syn keyword lispFunc		 atanh				  identity			   remhash
-syn keyword lispFunc		 atom				  if				   remove
-syn keyword lispFunc		 base-char			  if-exists			   remove-duplicates
-syn keyword lispFunc		 base-string			  ignorable			   remove-if
-syn keyword lispFunc		 bignum				  ignore			   remove-if-not
-syn keyword lispFunc		 bit				  ignore-errors			   remove-method
-syn keyword lispFunc		 bit-and			  imagpart			   remprop
-syn keyword lispFunc		 bit-andc1			  import			   rename-file
-syn keyword lispFunc		 bit-andc2			  in-package			   rename-package
-syn keyword lispFunc		 bit-eqv			  in-package			   replace
-syn keyword lispFunc		 bit-ior			  incf				   require
-syn keyword lispFunc		 bit-nand			  initialize-instance		   rest
-syn keyword lispFunc		 bit-nor			  inline			   restart
-syn keyword lispFunc		 bit-not			  input-stream-p		   restart-bind
-syn keyword lispFunc		 bit-orc1			  inspect			   restart-case
-syn keyword lispFunc		 bit-orc2			  int-char			   restart-name
-syn keyword lispFunc		 bit-vector			  integer			   return
-syn keyword lispFunc		 bit-vector-p			  integer-decode-float		   return-from
-syn keyword lispFunc		 bit-xor			  integer-length		   revappend
-syn keyword lispFunc		 block				  integerp			   reverse
-syn keyword lispFunc		 boole				  interactive-stream-p		   room
-syn keyword lispFunc		 boole-1			  intern			   rotatef
-syn keyword lispFunc		 boole-2			  internal-time-units-per-second   round
-syn keyword lispFunc		 boole-and			  intersection			   row-major-aref
-syn keyword lispFunc		 boole-andc1			  invalid-method-error		   rplaca
-syn keyword lispFunc		 boole-andc2			  invoke-debugger		   rplacd
-syn keyword lispFunc		 boole-c1			  invoke-restart		   safety
-syn keyword lispFunc		 boole-c2			  invoke-restart-interactively	   satisfies
-syn keyword lispFunc		 boole-clr			  isqrt				   sbit
-syn keyword lispFunc		 boole-eqv			  keyword			   scale-float
-syn keyword lispFunc		 boole-ior			  keywordp			   schar
-syn keyword lispFunc		 boole-nand			  labels			   search
-syn keyword lispFunc		 boole-nor			  lambda			   second
-syn keyword lispFunc		 boole-orc1			  lambda-list-keywords		   sequence
-syn keyword lispFunc		 boole-orc2			  lambda-parameters-limit	   serious-condition
-syn keyword lispFunc		 boole-set			  last				   set
-syn keyword lispFunc		 boole-xor			  lcm				   set-char-bit
-syn keyword lispFunc		 boolean			  ldb				   set-difference
-syn keyword lispFunc		 both-case-p			  ldb-test			   set-dispatch-macro-character
-syn keyword lispFunc		 boundp				  ldiff				   set-exclusive-or
-syn keyword lispFunc		 break				  least-negative-double-float	   set-macro-character
-syn keyword lispFunc		 broadcast-stream		  least-negative-long-float	   set-pprint-dispatch
-syn keyword lispFunc		 broadcast-stream-streams	  least-negative-normalized-double-float			    set-syntax-from-char
-syn keyword lispFunc		 built-in-class			  least-negative-normalized-long-float				    setf
-syn keyword lispFunc		 butlast			  least-negative-normalized-short-float				    setq
-syn keyword lispFunc		 byte				  least-negative-normalized-single-float			    seventh
-syn keyword lispFunc		 byte-position			  least-negative-short-float	   shadow
-syn keyword lispFunc		 byte-size			  least-negative-single-float	   shadowing-import
-syn keyword lispFunc		 call-arguments-limit		  least-positive-double-float	   shared-initialize
-syn keyword lispFunc		 call-method			  least-positive-long-float	   shiftf
-syn keyword lispFunc		 call-next-method		  least-positive-normalized-double-float			    short-float
-syn keyword lispFunc		 capitalize			  least-positive-normalized-long-float				    short-float-epsilon
-syn keyword lispFunc		 car				  least-positive-normalized-short-float				    short-float-negative-epsilon
-syn keyword lispFunc		 case				  least-positive-normalized-single-float			    short-site-name
-syn keyword lispFunc		 catch				  least-positive-short-float	   signal
-syn keyword lispFunc		 ccase				  least-positive-single-float	   signed-byte
-syn keyword lispFunc		 cdr				  length			   signum
-syn keyword lispFunc		 ceiling			  let				   simle-condition
-syn keyword lispFunc		 cell-error			  let*				   simple-array
-syn keyword lispFunc		 cell-error-name		  lisp				   simple-base-string
-syn keyword lispFunc		 cerror				  lisp-implementation-type	   simple-bit-vector
-syn keyword lispFunc		 change-class			  lisp-implementation-version	   simple-bit-vector-p
-syn keyword lispFunc		 char				  list				   simple-condition-format-arguments
-syn keyword lispFunc		 char-bit			  list*				   simple-condition-format-control
-syn keyword lispFunc		 char-bits			  list-all-packages		   simple-error
-syn keyword lispFunc		 char-bits-limit		  list-length			   simple-string
-syn keyword lispFunc		 char-code			  listen			   simple-string-p
-syn keyword lispFunc		 char-code-limit		  listp				   simple-type-error
-syn keyword lispFunc		 char-control-bit		  load				   simple-vector
-syn keyword lispFunc		 char-downcase			  load-logical-pathname-translations				    simple-vector-p
-syn keyword lispFunc		 char-equal			  load-time-value		   simple-warning
-syn keyword lispFunc		 char-font			  locally			   sin
-syn keyword lispFunc		 char-font-limit		  log				   single-flaot-epsilon
-syn keyword lispFunc		 char-greaterp			  logand			   single-float
-syn keyword lispFunc		 char-hyper-bit			  logandc1			   single-float-epsilon
-syn keyword lispFunc		 char-int			  logandc2			   single-float-negative-epsilon
-syn keyword lispFunc		 char-lessp			  logbitp			   sinh
-syn keyword lispFunc		 char-meta-bit			  logcount			   sixth
-syn keyword lispFunc		 char-name			  logeqv			   sleep
-syn keyword lispFunc		 char-not-equal			  logical-pathname		   slot-boundp
-syn keyword lispFunc		 char-not-greaterp		  logical-pathname-translations	   slot-exists-p
-syn keyword lispFunc		 char-not-lessp			  logior			   slot-makunbound
-syn keyword lispFunc		 char-super-bit			  lognand			   slot-missing
-syn keyword lispFunc		 char-upcase			  lognor			   slot-unbound
-syn keyword lispFunc		 char/=				  lognot			   slot-value
-syn keyword lispFunc		 char<				  logorc1			   software-type
-syn keyword lispFunc		 char<=				  logorc2			   software-version
-syn keyword lispFunc		 char=				  logtest			   some
-syn keyword lispFunc		 char>				  logxor			   sort
-syn keyword lispFunc		 char>=				  long-float			   space
-syn keyword lispFunc		 character			  long-float-epsilon		   special
-syn keyword lispFunc		 characterp			  long-float-negative-epsilon	   special-form-p
-syn keyword lispFunc		 check-type			  long-site-name		   special-operator-p
-syn keyword lispFunc		 cis				  loop				   speed
-syn keyword lispFunc		 class				  loop-finish			   sqrt
-syn keyword lispFunc		 class-name			  lower-case-p			   stable-sort
-syn keyword lispFunc		 class-of			  machine-instance		   standard
-syn keyword lispFunc		 clear-input			  machine-type			   standard-char
-syn keyword lispFunc		 clear-output			  machine-version		   standard-char-p
-syn keyword lispFunc		 close				  macro-function		   standard-class
-syn keyword lispFunc		 clrhash			  macroexpand			   standard-generic-function
-syn keyword lispFunc		 code-char			  macroexpand-1			   standard-method
-syn keyword lispFunc		 coerce				  macroexpand-l			   standard-object
-syn keyword lispFunc		 commonp			  macrolet			   step
-syn keyword lispFunc		 compilation-speed		  make-array			   storage-condition
-syn keyword lispFunc		 compile			  make-array			   store-value
-syn keyword lispFunc		 compile-file			  make-broadcast-stream		   stream
-syn keyword lispFunc		 compile-file-pathname		  make-char			   stream-element-type
-syn keyword lispFunc		 compiled-function		  make-concatenated-stream	   stream-error
-syn keyword lispFunc		 compiled-function-p		  make-condition		   stream-error-stream
-syn keyword lispFunc		 compiler-let			  make-dispatch-macro-character	   stream-external-format
-syn keyword lispFunc		 compiler-macro			  make-echo-stream		   streamp
-syn keyword lispFunc		 compiler-macro-function	  make-hash-table		   streamup
-syn keyword lispFunc		 complement			  make-instance			   string
-syn keyword lispFunc		 complex			  make-instances-obsolete	   string-capitalize
-syn keyword lispFunc		 complexp			  make-list			   string-char
-syn keyword lispFunc		 compute-applicable-methods	  make-load-form		   string-char-p
-syn keyword lispFunc		 compute-restarts		  make-load-form-saving-slots	   string-downcase
-syn keyword lispFunc		 concatenate			  make-method			   string-equal
-syn keyword lispFunc		 concatenated-stream		  make-package			   string-greaterp
-syn keyword lispFunc		 concatenated-stream-streams	  make-pathname			   string-left-trim
-syn keyword lispFunc		 cond				  make-random-state		   string-lessp
-syn keyword lispFunc		 condition			  make-sequence			   string-not-equal
-syn keyword lispFunc		 conjugate			  make-string			   string-not-greaterp
-syn keyword lispFunc		 cons				  make-string-input-stream	   string-not-lessp
-syn keyword lispFunc		 consp				  make-string-output-stream	   string-right-strim
-syn keyword lispFunc		 constantly			  make-symbol			   string-right-trim
-syn keyword lispFunc		 constantp			  make-synonym-stream		   string-stream
-syn keyword lispFunc		 continue			  make-two-way-stream		   string-trim
-syn keyword lispFunc		 control-error			  makunbound			   string-upcase
-syn keyword lispFunc		 copy-alist			  map				   string/=
-syn keyword lispFunc		 copy-list			  map-into			   string<
-syn keyword lispFunc		 copy-pprint-dispatch		  mapc				   string<=
-syn keyword lispFunc		 copy-readtable			  mapcan			   string=
-syn keyword lispFunc		 copy-seq			  mapcar			   string>
-syn keyword lispFunc		 copy-structure			  mapcon			   string>=
-syn keyword lispFunc		 copy-symbol			  maphash			   stringp
-syn keyword lispFunc		 copy-tree			  mapl				   structure
-syn keyword lispFunc		 cos				  maplist			   structure-class
-syn keyword lispFunc		 cosh				  mask-field			   structure-object
-syn keyword lispFunc		 count				  max				   style-warning
-syn keyword lispFunc		 count-if			  member			   sublim
-syn keyword lispFunc		 count-if-not			  member-if			   sublis
-syn keyword lispFunc		 ctypecase			  member-if-not			   subseq
-syn keyword lispFunc		 debug				  merge				   subsetp
-syn keyword lispFunc		 decf				  merge-pathname		   subst
-syn keyword lispFunc		 declaim			  merge-pathnames		   subst-if
-syn keyword lispFunc		 declaration			  method			   subst-if-not
-syn keyword lispFunc		 declare			  method-combination		   substitute
-syn keyword lispFunc		 decode-float			  method-combination-error	   substitute-if
-syn keyword lispFunc		 decode-universal-time		  method-qualifiers		   substitute-if-not
-syn keyword lispFunc		 defclass			  min				   subtypep
-syn keyword lispFunc		 defconstant			  minusp			   svref
-syn keyword lispFunc		 defgeneric			  mismatch			   sxhash
-syn keyword lispFunc		 define-compiler-macro		  mod				   symbol
-syn keyword lispFunc		 define-condition		  most-negative-double-float	   symbol-function
-syn keyword lispFunc		 define-method-combination	  most-negative-fixnum		   symbol-macrolet
-syn keyword lispFunc		 define-modify-macro		  most-negative-long-float	   symbol-name
-syn keyword lispFunc		 define-setf-expander		  most-negative-short-float	   symbol-package
-syn keyword lispFunc		 define-setf-method		  most-negative-single-float	   symbol-plist
-syn keyword lispFunc		 define-symbol-macro		  most-positive-double-float	   symbol-value
-syn keyword lispFunc		 defmacro			  most-positive-fixnum		   symbolp
-syn keyword lispFunc		 defmethod			  most-positive-long-float	   synonym-stream
-syn keyword lispFunc		 defpackage			  most-positive-short-float	   synonym-stream-symbol
-syn keyword lispFunc		 defparameter			  most-positive-single-float	   sys
-syn keyword lispFunc		 defsetf			  muffle-warning		   system
-syn keyword lispFunc		 defstruct			  multiple-value-bind		   t
-syn keyword lispFunc		 deftype			  multiple-value-call		   tagbody
-syn keyword lispFunc		 defun				  multiple-value-list		   tailp
-syn keyword lispFunc		 defvar				  multiple-value-prog1		   tan
-syn keyword lispFunc		 delete				  multiple-value-seteq		   tanh
-syn keyword lispFunc		 delete-duplicates		  multiple-value-setq		   tenth
-syn keyword lispFunc		 delete-file			  multiple-values-limit		   terpri
-syn keyword lispFunc		 delete-if			  name-char			   the
-syn keyword lispFunc		 delete-if-not			  namestring			   third
-syn keyword lispFunc		 delete-package			  nbutlast			   throw
-syn keyword lispFunc		 denominator			  nconc				   time
-syn keyword lispFunc		 deposit-field			  next-method-p			   trace
-syn keyword lispFunc		 describe			  nil				   translate-logical-pathname
-syn keyword lispFunc		 describe-object		  nintersection			   translate-pathname
-syn keyword lispFunc		 destructuring-bind		  ninth				   tree-equal
-syn keyword lispFunc		 digit-char			  no-applicable-method		   truename
-syn keyword lispFunc		 digit-char-p			  no-next-method		   truncase
-syn keyword lispFunc		 directory			  not				   truncate
-syn keyword lispFunc		 directory-namestring		  notany			   two-way-stream
-syn keyword lispFunc		 disassemble			  notevery			   two-way-stream-input-stream
-syn keyword lispFunc		 division-by-zero		  notinline			   two-way-stream-output-stream
-syn keyword lispFunc		 do				  nreconc			   type
-syn keyword lispFunc		 do*				  nreverse			   type-error
-syn keyword lispFunc		 do-all-symbols			  nset-difference		   type-error-datum
-syn keyword lispFunc		 do-exeternal-symbols		  nset-exclusive-or		   type-error-expected-type
-syn keyword lispFunc		 do-external-symbols		  nstring			   type-of
-syn keyword lispFunc		 do-symbols			  nstring-capitalize		   typecase
-syn keyword lispFunc		 documentation			  nstring-downcase		   typep
-syn keyword lispFunc		 dolist				  nstring-upcase		   unbound-slot
-syn keyword lispFunc		 dotimes			  nsublis			   unbound-slot-instance
-syn keyword lispFunc		 double-float			  nsubst			   unbound-variable
-syn keyword lispFunc		 double-float-epsilon		  nsubst-if			   undefined-function
-syn keyword lispFunc		 double-float-negative-epsilon	  nsubst-if-not			   unexport
-syn keyword lispFunc		 dpb				  nsubstitute			   unintern
-syn keyword lispFunc		 dribble			  nsubstitute-if		   union
-syn keyword lispFunc		 dynamic-extent			  nsubstitute-if-not		   unless
-syn keyword lispFunc		 ecase				  nth				   unread
-syn keyword lispFunc		 echo-stream			  nth-value			   unread-char
-syn keyword lispFunc		 echo-stream-input-stream	  nthcdr			   unsigned-byte
-syn keyword lispFunc		 echo-stream-output-stream	  null				   untrace
-syn keyword lispFunc		 ed				  number			   unuse-package
-syn keyword lispFunc		 eighth				  numberp			   unwind-protect
-syn keyword lispFunc		 elt				  numerator			   update-instance-for-different-class
-syn keyword lispFunc		 encode-universal-time		  nunion			   update-instance-for-redefined-class
-syn keyword lispFunc		 end-of-file			  oddp				   upgraded-array-element-type
-syn keyword lispFunc		 endp				  open				   upgraded-complex-part-type
-syn keyword lispFunc		 enough-namestring		  open-stream-p			   upper-case-p
-syn keyword lispFunc		 ensure-directories-exist	  optimize			   use-package
-syn keyword lispFunc		 ensure-generic-function	  or				   use-value
-syn keyword lispFunc		 eq				  otherwise			   user
-syn keyword lispFunc		 eql				  output-stream-p		   user-homedir-pathname
-syn keyword lispFunc		 equal				  package			   values
-syn keyword lispFunc		 equalp				  package-error			   values-list
-syn keyword lispFunc		 error				  package-error-package		   vector
-syn keyword lispFunc		 etypecase			  package-name			   vector-pop
-syn keyword lispFunc		 eval				  package-nicknames		   vector-push
-syn keyword lispFunc		 eval-when			  package-shadowing-symbols	   vector-push-extend
-syn keyword lispFunc		 evalhook			  package-use-list		   vectorp
-syn keyword lispFunc		 evenp				  package-used-by-list		   warn
-syn keyword lispFunc		 every				  packagep			   warning
-syn keyword lispFunc		 exp				  pairlis			   when
-syn keyword lispFunc		 export				  parse-error			   wild-pathname-p
-syn keyword lispFunc		 expt				  parse-integer			   with-accessors
-syn keyword lispFunc		 extended-char			  parse-namestring		   with-compilation-unit
-syn keyword lispFunc		 fboundp			  pathname			   with-condition-restarts
-syn keyword lispFunc		 fceiling			  pathname-device		   with-hash-table-iterator
-syn keyword lispFunc		 fdefinition			  pathname-directory		   with-input-from-string
-syn keyword lispFunc		 ffloor				  pathname-host			   with-open-file
-syn keyword lispFunc		 fifth				  pathname-match-p		   with-open-stream
-syn keyword lispFunc		 file-author			  pathname-name			   with-output-to-string
-syn keyword lispFunc		 file-error			  pathname-type			   with-package-iterator
-syn keyword lispFunc		 file-error-pathname		  pathname-version		   with-simple-restart
-syn keyword lispFunc		 file-length			  pathnamep			   with-slots
-syn keyword lispFunc		 file-namestring		  peek-char			   with-standard-io-syntax
-syn keyword lispFunc		 file-position			  phase				   write
-syn keyword lispFunc		 file-stream			  pi				   write-byte
-syn keyword lispFunc		 file-string-length		  plusp				   write-char
-syn keyword lispFunc		 file-write-date		  pop				   write-line
-syn keyword lispFunc		 fill				  position			   write-sequence
-syn keyword lispFunc		 fill-pointer			  position-if			   write-string
-syn keyword lispFunc		 find				  position-if-not		   write-to-string
-syn keyword lispFunc		 find-all-symbols		  pprint			   y-or-n-p
-syn keyword lispFunc		 find-class			  pprint-dispatch		   yes-or-no-p
-syn keyword lispFunc		 find-if			  pprint-exit-if-list-exhausted	   zerop
-syn keyword lispFunc		 find-if-not			  pprint-fill
+syn keyword lispFunc		*				find-method					pprint-indent
+syn keyword lispFunc		**				find-package					pprint-linear
+syn keyword lispFunc		***				find-restart					pprint-logical-block
+syn keyword lispFunc		+				find-symbol					pprint-newline
+syn keyword lispFunc		++				finish-output					pprint-pop
+syn keyword lispFunc		+++				first						pprint-tab
+syn keyword lispFunc		-				fixnum						pprint-tabular
+syn keyword lispFunc		/				flet						prin1
+syn keyword lispFunc		//				float						prin1-to-string
+syn keyword lispFunc		///				float-digits					princ
+syn keyword lispFunc		/=				float-precision					princ-to-string
+syn keyword lispFunc		1+				float-radix					print
+syn keyword lispFunc		1-				float-sign					print-not-readable
+syn keyword lispFunc		<				floating-point-inexact				print-not-readable-object
+syn keyword lispFunc		<=				floating-point-invalid-operation print-object
+syn keyword lispFunc		=				floating-point-overflow				print-unreadable-object
+syn keyword lispFunc		>				floating-point-underflow			probe-file
+syn keyword lispFunc		>=				floatp						proclaim
+syn keyword lispFunc		abort				floor						prog
+syn keyword lispFunc		abs				fmakunbound					prog*
+syn keyword lispFunc		access				force-output					prog1
+syn keyword lispFunc		acons				format						prog2
+syn keyword lispFunc		acos				formatter					progn
+syn keyword lispFunc		acosh				fourth						program-error
+syn keyword lispFunc		add-method			fresh-line					progv
+syn keyword lispFunc		adjoin				fround						provide
+syn keyword lispFunc		adjust-array			ftruncate					psetf
+syn keyword lispFunc		adjustable-array-p		ftype						psetq
+syn keyword lispFunc		allocate-instance		funcall						push
+syn keyword lispFunc		alpha-char-p			function					pushnew
+syn keyword lispFunc		alphanumericp			function-keywords				putprop
+syn keyword lispFunc		and				function-lambda-expression			quote
+syn keyword lispFunc		append				functionp					random
+syn keyword lispFunc		apply				gbitp						random-state
+syn keyword lispFunc		applyhook			gcd						random-state-p
+syn keyword lispFunc		apropos				generic-function				rassoc
+syn keyword lispFunc		apropos-list			gensym						rassoc-if
+syn keyword lispFunc		aref				gentemp						rassoc-if-not
+syn keyword lispFunc		arithmetic-error		get						ratio
+syn keyword lispFunc		arithmetic-error-operands	get-decoded-time				rational
+syn keyword lispFunc		arithmetic-error-operation	get-dispatch-macro-character			rationalize
+syn keyword lispFunc		array				get-internal-real-time				rationalp
+syn keyword lispFunc		array-dimension			get-internal-run-time				read
+syn keyword lispFunc		array-dimension-limit		get-macro-character				read-byte
+syn keyword lispFunc		array-dimensions		get-output-stream-string			read-char
+syn keyword lispFunc		array-displacement		get-properties					read-char-no-hang
+syn keyword lispFunc		array-element-type		get-setf-expansion				read-delimited-list
+syn keyword lispFunc		array-has-fill-pointer-p	get-setf-method					read-eval-print
+syn keyword lispFunc		array-in-bounds-p		get-universal-time				read-from-string
+syn keyword lispFunc		array-rank			getf						read-line
+syn keyword lispFunc		array-rank-limit		gethash						read-preserving-whitespace
+syn keyword lispFunc		array-row-major-index		go						read-sequence
+syn keyword lispFunc		array-total-size		graphic-char-p					reader-error
+syn keyword lispFunc		array-total-size-limit		handler-bind					readtable
+syn keyword lispFunc		arrayp				handler-case					readtable-case
+syn keyword lispFunc		ash				hash-table					readtablep
+syn keyword lispFunc		asin				hash-table-count				real
+syn keyword lispFunc		asinh				hash-table-p					realp
+syn keyword lispFunc		assert				hash-table-rehash-size				realpart
+syn keyword lispFunc		assoc				hash-table-rehash-threshold			reduce
+syn keyword lispFunc		assoc-if			hash-table-size					reinitialize-instance
+syn keyword lispFunc		assoc-if-not			hash-table-test					rem
+syn keyword lispFunc		atan				host-namestring					remf
+syn keyword lispFunc		atanh				identity					remhash
+syn keyword lispFunc		atom				if						remove
+syn keyword lispFunc		base-char			if-exists					remove-duplicates
+syn keyword lispFunc		base-string			ignorable					remove-if
+syn keyword lispFunc		bignum				ignore						remove-if-not
+syn keyword lispFunc		bit				ignore-errors					remove-method
+syn keyword lispFunc		bit-and				imagpart					remprop
+syn keyword lispFunc		bit-andc1			import						rename-file
+syn keyword lispFunc		bit-andc2			in-package					rename-package
+syn keyword lispFunc		bit-eqv				in-package					replace
+syn keyword lispFunc		bit-ior				incf						require
+syn keyword lispFunc		bit-nand			initialize-instance				rest
+syn keyword lispFunc		bit-nor				inline						restart
+syn keyword lispFunc		bit-not				input-stream-p					restart-bind
+syn keyword lispFunc		bit-orc1			inspect						restart-case
+syn keyword lispFunc		bit-orc2			int-char					restart-name
+syn keyword lispFunc		bit-vector			integer						return
+syn keyword lispFunc		bit-vector-p			integer-decode-float				return-from
+syn keyword lispFunc		bit-xor				integer-length					revappend
+syn keyword lispFunc		block				integerp					reverse
+syn keyword lispFunc		boole				interactive-stream-p				room
+syn keyword lispFunc		boole-1				intern						rotatef
+syn keyword lispFunc		boole-2				internal-time-units-per-second			round
+syn keyword lispFunc		boole-and			intersection					row-major-aref
+syn keyword lispFunc		boole-andc1			invalid-method-error				rplaca
+syn keyword lispFunc		boole-andc2			invoke-debugger					rplacd
+syn keyword lispFunc		boole-c1			invoke-restart					safety
+syn keyword lispFunc		boole-c2			invoke-restart-interactively			satisfies
+syn keyword lispFunc		boole-clr			isqrt						sbit
+syn keyword lispFunc		boole-eqv			keyword						scale-float
+syn keyword lispFunc		boole-ior			keywordp					schar
+syn keyword lispFunc		boole-nand			labels						search
+syn keyword lispFunc		boole-nor			lambda						second
+syn keyword lispFunc		boole-orc1			lambda-list-keywords				sequence
+syn keyword lispFunc		boole-orc2			lambda-parameters-limit				serious-condition
+syn keyword lispFunc		boole-set			last						set
+syn keyword lispFunc		boole-xor			lcm						set-char-bit
+syn keyword lispFunc		boolean				ldb						set-difference
+syn keyword lispFunc		both-case-p			ldb-test					set-dispatch-macro-character
+syn keyword lispFunc		boundp				ldiff						set-exclusive-or
+syn keyword lispFunc		break				least-negative-double-float			set-macro-character
+syn keyword lispFunc		broadcast-stream		least-negative-long-float			set-pprint-dispatch
+syn keyword lispFunc		broadcast-stream-streams	least-negative-normalized-double-float		set-syntax-from-char
+syn keyword lispFunc		built-in-class			least-negative-normalized-long-float		setf
+syn keyword lispFunc		butlast				least-negative-normalized-short-float		setq
+syn keyword lispFunc		byte				least-negative-normalized-single-float		seventh
+syn keyword lispFunc		byte-position			least-negative-short-float			shadow
+syn keyword lispFunc		byte-size			least-negative-single-float			shadowing-import
+syn keyword lispFunc		call-arguments-limit		least-positive-double-float			shared-initialize
+syn keyword lispFunc		call-method			least-positive-long-float			shiftf
+syn keyword lispFunc		call-next-method		least-positive-normalized-double-float		short-float
+syn keyword lispFunc		capitalize			least-positive-normalized-long-float		short-float-epsilon
+syn keyword lispFunc		car				least-positive-normalized-short-float		short-float-negative-epsilon
+syn keyword lispFunc		case				least-positive-normalized-single-float		short-site-name
+syn keyword lispFunc		catch				least-positive-short-float			signal
+syn keyword lispFunc		ccase				least-positive-single-float			signed-byte
+syn keyword lispFunc		cdr				length						signum
+syn keyword lispFunc		ceiling				let						simple-condition
+syn keyword lispFunc		cell-error			let*						simple-array
+syn keyword lispFunc		cell-error-name			lisp						simple-base-string
+syn keyword lispFunc		cerror				lisp-implementation-type			simple-bit-vector
+syn keyword lispFunc		change-class			lisp-implementation-version			simple-bit-vector-p
+syn keyword lispFunc		char				list						simple-condition-format-arguments
+syn keyword lispFunc		char-bit			list*						simple-condition-format-control
+syn keyword lispFunc		char-bits			list-all-packages				simple-error
+syn keyword lispFunc		char-bits-limit			list-length					simple-string
+syn keyword lispFunc		char-code			listen						simple-string-p
+syn keyword lispFunc		char-code-limit			listp						simple-type-error
+syn keyword lispFunc		char-control-bit		load						simple-vector
+syn keyword lispFunc		char-downcase			load-logical-pathname-translations		simple-vector-p
+syn keyword lispFunc		char-equal			load-time-value					simple-warning
+syn keyword lispFunc		char-font			locally						sin
+syn keyword lispFunc		char-font-limit			log						single-flaot-epsilon
+syn keyword lispFunc		char-greaterp			logand						single-float
+syn keyword lispFunc		char-hyper-bit			logandc1					single-float-epsilon
+syn keyword lispFunc		char-int			logandc2					single-float-negative-epsilon
+syn keyword lispFunc		char-lessp			logbitp						sinh
+syn keyword lispFunc		char-meta-bit			logcount					sixth
+syn keyword lispFunc		char-name			logeqv						sleep
+syn keyword lispFunc		char-not-equal			logical-pathname				slot-boundp
+syn keyword lispFunc		char-not-greaterp		logical-pathname-translations			slot-exists-p
+syn keyword lispFunc		char-not-lessp			logior						slot-makunbound
+syn keyword lispFunc		char-super-bit			lognand						slot-missing
+syn keyword lispFunc		char-upcase			lognor						slot-unbound
+syn keyword lispFunc		char/=				lognot						slot-value
+syn keyword lispFunc		char<				logorc1						software-type
+syn keyword lispFunc		char<=				logorc2						software-version
+syn keyword lispFunc		char=				logtest						some
+syn keyword lispFunc		char>				logxor						sort
+syn keyword lispFunc		char>=				long-float					space
+syn keyword lispFunc		character			long-float-epsilon				special
+syn keyword lispFunc		characterp			long-float-negative-epsilon			special-form-p
+syn keyword lispFunc		check-type			long-site-name					special-operator-p
+syn keyword lispFunc		cis				loop						speed
+syn keyword lispFunc		class				loop-finish					sqrt
+syn keyword lispFunc		class-name			lower-case-p					stable-sort
+syn keyword lispFunc		class-of			machine-instance				standard
+syn keyword lispFunc		clear-input			machine-type					standard-char
+syn keyword lispFunc		clear-output			machine-version					standard-char-p
+syn keyword lispFunc		close				macro-function					standard-class
+syn keyword lispFunc		clrhash				macroexpand					standard-generic-function
+syn keyword lispFunc		code-char			macroexpand-1					standard-method
+syn keyword lispFunc		coerce				macroexpand-l					standard-object
+syn keyword lispFunc		commonp				macrolet					step
+syn keyword lispFunc		compilation-speed		make-array					storage-condition
+syn keyword lispFunc		compile				make-array					store-value
+syn keyword lispFunc		compile-file			make-broadcast-stream				stream
+syn keyword lispFunc		compile-file-pathname		make-char					stream-element-type
+syn keyword lispFunc		compiled-function		make-concatenated-stream			stream-error
+syn keyword lispFunc		compiled-function-p		make-condition					stream-error-stream
+syn keyword lispFunc		compiler-let			make-dispatch-macro-character			stream-external-format
+syn keyword lispFunc		compiler-macro			make-echo-stream				streamp
+syn keyword lispFunc		compiler-macro-function	make-hash-table						streamup
+syn keyword lispFunc		complement			make-instance					string
+syn keyword lispFunc		complex				make-instances-obsolete				string-capitalize
+syn keyword lispFunc		complexp			make-list					string-char
+syn keyword lispFunc		compute-applicable-methods	make-load-form					string-char-p
+syn keyword lispFunc		compute-restarts		make-load-form-saving-slots			string-downcase
+syn keyword lispFunc		concatenate			make-method					string-equal
+syn keyword lispFunc		concatenated-stream		make-package					string-greaterp
+syn keyword lispFunc		concatenated-stream-streams	make-pathname					string-left-trim
+syn keyword lispFunc		cond				make-random-state				string-lessp
+syn keyword lispFunc		condition			make-sequence					string-not-equal
+syn keyword lispFunc		conjugate			make-string					string-not-greaterp
+syn keyword lispFunc		cons				make-string-input-stream			string-not-lessp
+syn keyword lispFunc		consp				make-string-output-stream			string-right-strim
+syn keyword lispFunc		constantly			make-symbol					string-right-trim
+syn keyword lispFunc		constantp			make-synonym-stream				string-stream
+syn keyword lispFunc		continue			make-two-way-stream				string-trim
+syn keyword lispFunc		control-error			makunbound					string-upcase
+syn keyword lispFunc		copy-alist			map						string/=
+syn keyword lispFunc		copy-list			map-into					string<
+syn keyword lispFunc		copy-pprint-dispatch		mapc						string<=
+syn keyword lispFunc		copy-readtable			mapcan						string=
+syn keyword lispFunc		copy-seq			mapcar						string>
+syn keyword lispFunc		copy-structure			mapcon						string>=
+syn keyword lispFunc		copy-symbol			maphash						stringp
+syn keyword lispFunc		copy-tree			mapl						structure
+syn keyword lispFunc		cos				maplist						structure-class
+syn keyword lispFunc		cosh				mask-field					structure-object
+syn keyword lispFunc		count				max						style-warning
+syn keyword lispFunc		count-if			member						sublim
+syn keyword lispFunc		count-if-not			member-if					sublis
+syn keyword lispFunc		ctypecase			member-if-not					subseq
+syn keyword lispFunc		debug				merge						subsetp
+syn keyword lispFunc		decf				merge-pathname					subst
+syn keyword lispFunc		declaim				merge-pathnames					subst-if
+syn keyword lispFunc		declaration			method						subst-if-not
+syn keyword lispFunc		declare				method-combination				substitute
+syn keyword lispFunc		decode-float			method-combination-error			substitute-if
+syn keyword lispFunc		decode-universal-time		method-qualifiers				substitute-if-not
+syn keyword lispFunc		defclass			min						subtypep
+syn keyword lispFunc		defconstant			minusp						svref
+syn keyword lispFunc		defgeneric			mismatch					sxhash
+syn keyword lispFunc		define-compiler-macro		mod						symbol
+syn keyword lispFunc		define-condition		most-negative-double-float			symbol-function
+syn keyword lispFunc		define-method-combination	most-negative-fixnum				symbol-macrolet
+syn keyword lispFunc		define-modify-macro		most-negative-long-float			symbol-name
+syn keyword lispFunc		define-setf-expander		most-negative-short-float			symbol-package
+syn keyword lispFunc		define-setf-method		most-negative-single-float			symbol-plist
+syn keyword lispFunc		define-symbol-macro		most-positive-double-float			symbol-value
+syn keyword lispFunc		defmacro			most-positive-fixnum				symbolp
+syn keyword lispFunc		defmethod			most-positive-long-float			synonym-stream
+syn keyword lispFunc		defpackage			most-positive-short-float			synonym-stream-symbol
+syn keyword lispFunc		defparameter			most-positive-single-float			sys
+syn keyword lispFunc		defsetf				muffle-warning					system
+syn keyword lispFunc		defstruct			multiple-value-bind				t
+syn keyword lispFunc		deftype				multiple-value-call				tagbody
+syn keyword lispFunc		defun				multiple-value-list				tailp
+syn keyword lispFunc		defvar				multiple-value-prog1				tan
+syn keyword lispFunc		delete				multiple-value-seteq				tanh
+syn keyword lispFunc		delete-duplicates		multiple-value-setq				tenth
+syn keyword lispFunc		delete-file			multiple-values-limit				terpri
+syn keyword lispFunc		delete-if			name-char					the
+syn keyword lispFunc		delete-if-not			namestring					third
+syn keyword lispFunc		delete-package			nbutlast					throw
+syn keyword lispFunc		denominator			nconc						time
+syn keyword lispFunc		deposit-field			next-method-p					trace
+syn keyword lispFunc		describe			nil						translate-logical-pathname
+syn keyword lispFunc		describe-object			nintersection					translate-pathname
+syn keyword lispFunc		destructuring-bind		ninth						tree-equal
+syn keyword lispFunc		digit-char			no-applicable-method				truename
+syn keyword lispFunc		digit-char-p			no-next-method					truncase
+syn keyword lispFunc		directory			not						truncate
+syn keyword lispFunc		directory-namestring		notany						two-way-stream
+syn keyword lispFunc		disassemble			notevery					two-way-stream-input-stream
+syn keyword lispFunc		division-by-zero		notinline					two-way-stream-output-stream
+syn keyword lispFunc		do				nreconc						type
+syn keyword lispFunc		do*				nreverse					type-error
+syn keyword lispFunc		do-all-symbols			nset-difference					type-error-datum
+syn keyword lispFunc		do-exeternal-symbols		nset-exclusive-or				type-error-expected-type
+syn keyword lispFunc		do-external-symbols		nstring						type-of
+syn keyword lispFunc		do-symbols			nstring-capitalize				typecase
+syn keyword lispFunc		documentation			nstring-downcase				typep
+syn keyword lispFunc		dolist				nstring-upcase					unbound-slot
+syn keyword lispFunc		dotimes				nsublis						unbound-slot-instance
+syn keyword lispFunc		double-float			nsubst						unbound-variable
+syn keyword lispFunc		double-float-epsilon		nsubst-if					undefined-function
+syn keyword lispFunc		double-float-negative-epsilon	nsubst-if-not					unexport
+syn keyword lispFunc		dpb				nsubstitute					unintern
+syn keyword lispFunc		dribble				nsubstitute-if					union
+syn keyword lispFunc		dynamic-extent			nsubstitute-if-not				unless
+syn keyword lispFunc		ecase				nth						unread
+syn keyword lispFunc		echo-stream			nth-value					unread-char
+syn keyword lispFunc		echo-stream-input-stream	nthcdr						unsigned-byte
+syn keyword lispFunc		echo-stream-output-stream	null						untrace
+syn keyword lispFunc		ed				number						unuse-package
+syn keyword lispFunc		eighth				numberp						unwind-protect
+syn keyword lispFunc		elt				numerator					update-instance-for-different-class
+syn keyword lispFunc		encode-universal-time		nunion						update-instance-for-redefined-class
+syn keyword lispFunc		end-of-file			oddp						upgraded-array-element-type
+syn keyword lispFunc		endp				open						upgraded-complex-part-type
+syn keyword lispFunc		enough-namestring		open-stream-p					upper-case-p
+syn keyword lispFunc		ensure-directories-exist	optimize					use-package
+syn keyword lispFunc		ensure-generic-function	or							use-value
+syn keyword lispFunc		eq				otherwise					user
+syn keyword lispFunc		eql				output-stream-p					user-homedir-pathname
+syn keyword lispFunc		equal				package						values
+syn keyword lispFunc		equalp				package-error					values-list
+syn keyword lispFunc		error				package-error-package				vector
+syn keyword lispFunc		etypecase			package-name					vector-pop
+syn keyword lispFunc		eval				package-nicknames				vector-push
+syn keyword lispFunc		eval-when			package-shadowing-symbols			vector-push-extend
+syn keyword lispFunc		evalhook			package-use-list				vectorp
+syn keyword lispFunc		evenp				package-used-by-list				warn
+syn keyword lispFunc		every				packagep					warning
+syn keyword lispFunc		exp				pairlis						when
+syn keyword lispFunc		export				parse-error					wild-pathname-p
+syn keyword lispFunc		expt				parse-integer					with-accessors
+syn keyword lispFunc		extended-char			parse-namestring				with-compilation-unit
+syn keyword lispFunc		fboundp				pathname					with-condition-restarts
+syn keyword lispFunc		fceiling			pathname-device					with-hash-table-iterator
+syn keyword lispFunc		fdefinition			pathname-directory				with-input-from-string
+syn keyword lispFunc		ffloor				pathname-host					with-open-file
+syn keyword lispFunc		fifth				pathname-match-p				with-open-stream
+syn keyword lispFunc		file-author			pathname-name					with-output-to-string
+syn keyword lispFunc		file-error			pathname-type					with-package-iterator
+syn keyword lispFunc		file-error-pathname		pathname-version				with-simple-restart
+syn keyword lispFunc		file-length			pathnamep					with-slots
+syn keyword lispFunc		file-namestring			peek-char					with-standard-io-syntax
+syn keyword lispFunc		file-position			phase						write
+syn keyword lispFunc		file-stream			pi						write-byte
+syn keyword lispFunc		file-string-length		plusp						write-char
+syn keyword lispFunc		file-write-date			pop						write-line
+syn keyword lispFunc		fill				position					write-sequence
+syn keyword lispFunc		fill-pointer			position-if					write-string
+syn keyword lispFunc		find				position-if-not					write-to-string
+syn keyword lispFunc		find-all-symbols		pprint						y-or-n-p
+syn keyword lispFunc		find-class			pprint-dispatch					yes-or-no-p
+syn keyword lispFunc		find-if				pprint-exit-if-list-exhausted			zerop
+syn keyword lispFunc		find-if-not			pprint-fill
 
-syn match   lispFunc		 "\<c[ad]\+r\>"
+syn match   lispFunc		"\<c[ad]\+r\>"
+if exists("g:lispsyntax_clisp")
+  " CLISP FFI:
+  syn match lispFunc	"\<\(ffi:\)\?with-c-\(place\|var\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?with-foreign-\(object\|string\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?default-foreign-\(language\|library\)\>"
+  syn match lispFunc	"\<\([us]_\?\)\?\(element\|deref\|cast\|slot\|validp\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?set-foreign-pointer\>"
+  syn match lispFunc	"\<\(ffi:\)\?allocate-\(deep\|shallow\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?c-lines\>"
+  syn match lispFunc	"\<\(ffi:\)\?foreign-\(value\|free\|variable\|function\|object\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?foreign-address\(-null\|unsigned\)\?\>"
+  syn match lispFunc	"\<\(ffi:\)\?undigned-foreign-address\>"
+  syn match lispFunc	"\<\(ffi:\)\?c-var-\(address\|object\)\>"
+  syn match lispFunc	"\<\(ffi:\)\?typeof\>"
+  syn match lispFunc	"\<\(ffi:\)\?\(bit\)\?sizeof\>"
+" CLISP Macros, functions et al:
+  syn match lispFunc	"\<\(ext:\)\?with-collect\>"
+  syn match lispFunc	"\<\(ext:\)\?letf\*\?\>"
+  syn match lispFunc	"\<\(ext:\)\?finalize\>\>"
+  syn match lispFunc	"\<\(ext:\)\?memoized\>"
+  syn match lispFunc	"\<\(ext:\)\?getenv\>"
+  syn match lispFunc	"\<\(ext:\)\?convert-string-\(to\|from\)-bytes\>"
+  syn match lispFunc	"\<\(ext:\)\?ethe\>"
+  syn match lispFunc	"\<\(ext:\)\?with-gensyms\>"
+  syn match lispFunc	"\<\(ext:\)\?open-http\>"
+  syn match lispFunc	"\<\(ext:\)\?string-concat\>"
+  syn match lispFunc	"\<\(ext:\)\?with-http-\(in\|out\)put\>"
+  syn match lispFunc	"\<\(ext:\)\?with-html-output\>"
+  syn match lispFunc	"\<\(ext:\)\?expand-form\>"
+  syn match lispFunc	"\<\(ext:\)\?\(without-\)\?package-lock\>"
+  syn match lispFunc	"\<\(ext:\)\?re-export\>"
+  syn match lispFunc	"\<\(ext:\)\?saveinitmem\>"
+  syn match lispFunc	"\<\(ext:\)\?\(read\|write\)-\(integer\|float\)\>"
+  syn match lispFunc	"\<\(ext:\)\?\(read\|write\)-\(char\|byte\)-sequence\>"
+  syn match lispFunc	"\<\(custom:\)\?\*system-package-list\*\>"
+  syn match lispFunc	"\<\(custom:\)\?\*ansi\*\>"
+endif
 
 " ---------------------------------------------------------------------
 " Lisp Keywords (modifiers): {{{1
-syn keyword lispKey		 :abort				  :from-end			   :overwrite
-syn keyword lispKey		 :adjustable			  :gensym			   :predicate
-syn keyword lispKey		 :append			  :host				   :preserve-whitespace
-syn keyword lispKey		 :array				  :if-does-not-exist		   :pretty
-syn keyword lispKey		 :base				  :if-exists			   :print
-syn keyword lispKey		 :case				  :include			   :print-function
-syn keyword lispKey		 :circle			  :index			   :probe
-syn keyword lispKey		 :conc-name			  :inherited			   :radix
-syn keyword lispKey		 :constructor			  :initial-contents		   :read-only
-syn keyword lispKey		 :copier			  :initial-element		   :rehash-size
-syn keyword lispKey		 :count				  :initial-offset		   :rehash-threshold
-syn keyword lispKey		 :create			  :initial-value		   :rename
-syn keyword lispKey		 :default			  :input			   :rename-and-delete
-syn keyword lispKey		 :defaults			  :internal			   :size
-syn keyword lispKey		 :device			  :io				   :start
-syn keyword lispKey		 :direction			  :junk-allowed			   :start1
-syn keyword lispKey		 :directory			  :key				   :start2
-syn keyword lispKey		 :displaced-index-offset	  :length			   :stream
-syn keyword lispKey		 :displaced-to			  :level			   :supersede
-syn keyword lispKey		 :element-type			  :name				   :test
-syn keyword lispKey		 :end				  :named			   :test-not
-syn keyword lispKey		 :end1				  :new-version			   :type
-syn keyword lispKey		 :end2				  :nicknames			   :use
-syn keyword lispKey		 :error				  :output			   :verbose
-syn keyword lispKey		 :escape			  :output-file			   :version
-syn keyword lispKey		 :external
+syn keyword lispKey		:abort				:from-end			:overwrite
+syn keyword lispKey		:adjustable			:gensym				:predicate
+syn keyword lispKey		:append				:host				:preserve-whitespace
+syn keyword lispKey		:array				:if-does-not-exist		:pretty
+syn keyword lispKey		:base				:if-exists			:print
+syn keyword lispKey		:case				:include			:print-function
+syn keyword lispKey		:circle				:index				:probe
+syn keyword lispKey		:conc-name			:inherited			:radix
+syn keyword lispKey		:constructor			:initial-contents		:read-only
+syn keyword lispKey		:copier				:initial-element		:rehash-size
+syn keyword lispKey		:count				:initial-offset			:rehash-threshold
+syn keyword lispKey		:create				:initial-value			:rename
+syn keyword lispKey		:default			:input				:rename-and-delete
+syn keyword lispKey		:defaults			:internal			:size
+syn keyword lispKey		:device				:io				:start
+syn keyword lispKey		:direction			:junk-allowed			:start1
+syn keyword lispKey		:directory			:key				:start2
+syn keyword lispKey		:displaced-index-offset		:length				:stream
+syn keyword lispKey		:displaced-to			:level				:supersede
+syn keyword lispKey		:element-type			:name				:test
+syn keyword lispKey		:end				:named				:test-not
+syn keyword lispKey		:end1				:new-version			:type
+syn keyword lispKey		:end2				:nicknames			:use
+syn keyword lispKey		:error				:output				:verbose
+syn keyword lispKey		:escape				:output-file			:version
+syn keyword lispKey		:external
+" defpackage arguments
+syn keyword lispKey	:documentation	:shadowing-import-from	:modern		:export
+syn keyword lispKey	:case-sensitive	:case-inverted		:shadow		:import-from	:intern
+" lambda list keywords
+syn keyword lispKey	&allow-other-keys	&aux		&body
+syn keyword lispKey	&environment	&key			&optional	&rest		&whole
+" make-array argument
+syn keyword lispKey	:fill-pointer
+" readtable-case values
+syn keyword lispKey	:upcase		:downcase		:preserve	:invert
+" eval-when situations
+syn keyword lispKey	:load-toplevel	:compile-toplevel	:execute
+" ANSI Extended LOOP:
+syn keyword lispKey	:while      :until       :for         :do       :if          :then         :else     :when      :unless :in
+syn keyword lispKey	:across     :finally     :collect     :nconc    :maximize    :minimize     :sum
+syn keyword lispKey	:and        :with        :initially   :append   :into        :count        :end      :repeat
+syn keyword lispKey	:always     :never       :thereis     :from     :to          :upto         :downto   :below
+syn keyword lispKey	:above      :by          :on          :being    :each        :the          :hash-key :hash-keys
+syn keyword lispKey	:hash-value :hash-values :using       :of-type  :upfrom      :downfrom
+if exists("g:lispsyntax_clisp")
+  " CLISP FFI:
+  syn keyword lispKey	:arguments  :return-type :library     :full     :malloc-free
+  syn keyword lispKey	:none       :alloca      :in          :out      :in-out      :stdc-stdcall :stdc     :c
+  syn keyword lispKey	:language   :built-in    :typedef     :external
+  syn keyword lispKey	:fini       :init-once   :init-always
+endif
 
 " ---------------------------------------------------------------------
 " Standard Lisp Variables: {{{1
-syn keyword lispVar		 *applyhook*			  *load-pathname*		   *print-pprint-dispatch*
-syn keyword lispVar		 *break-on-signals*		  *load-print*			   *print-pprint-dispatch*
-syn keyword lispVar		 *break-on-signals*		  *load-truename*		   *print-pretty*
-syn keyword lispVar		 *break-on-warnings*		  *load-verbose*		   *print-radix*
-syn keyword lispVar		 *compile-file-pathname*	  *macroexpand-hook*		   *print-readably*
-syn keyword lispVar		 *compile-file-pathname*	  *modules*			   *print-right-margin*
-syn keyword lispVar		 *compile-file-truename*	  *package*			   *print-right-margin*
-syn keyword lispVar		 *compile-file-truename*	  *print-array*			   *query-io*
-syn keyword lispVar		 *compile-print*		  *print-base*			   *random-state*
-syn keyword lispVar		 *compile-verbose*		  *print-case*			   *read-base*
-syn keyword lispVar		 *compile-verbose*		  *print-circle*		   *read-default-float-format*
-syn keyword lispVar		 *debug-io*			  *print-escape*		   *read-eval*
-syn keyword lispVar		 *debugger-hook*		  *print-gensym*		   *read-suppress*
-syn keyword lispVar		 *default-pathname-defaults*	  *print-length*		   *readtable*
-syn keyword lispVar		 *error-output*			  *print-level*			   *standard-input*
-syn keyword lispVar		 *evalhook*			  *print-lines*			   *standard-output*
-syn keyword lispVar		 *features*			  *print-miser-width*		   *terminal-io*
-syn keyword lispVar		 *gensym-counter*		  *print-miser-width*		   *trace-output*
+syn keyword lispVar		*applyhook*			*load-pathname*			*print-pprint-dispatch*
+syn keyword lispVar		*break-on-signals*		*load-print*			*print-pprint-dispatch*
+syn keyword lispVar		*break-on-signals*		*load-truename*			*print-pretty*
+syn keyword lispVar		*break-on-warnings*		*load-verbose*			*print-radix*
+syn keyword lispVar		*compile-file-pathname*		*macroexpand-hook*		*print-readably*
+syn keyword lispVar		*compile-file-pathname*		*modules*			*print-right-margin*
+syn keyword lispVar		*compile-file-truename*		*package*			*print-right-margin*
+syn keyword lispVar		*compile-file-truename*		*print-array*			*query-io*
+syn keyword lispVar		*compile-print*			*print-base*			*random-state*
+syn keyword lispVar		*compile-verbose*		*print-case*			*read-base*
+syn keyword lispVar		*compile-verbose*		*print-circle*			*read-default-float-format*
+syn keyword lispVar		*debug-io*			*print-escape*			*read-eval*
+syn keyword lispVar		*debugger-hook*			*print-gensym*			*read-suppress*
+syn keyword lispVar		*default-pathname-defaults*	*print-length*			*readtable*
+syn keyword lispVar		*error-output*			*print-level*			*standard-input*
+syn keyword lispVar		*evalhook*			*print-lines*			*standard-output*
+syn keyword lispVar		*features*			*print-miser-width*		*terminal-io*
+syn keyword lispVar		*gensym-counter*		*print-miser-width*		*trace-output*
 
 " ---------------------------------------------------------------------
 " Strings: {{{1
-syn region			 lispString			  start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=@Spell
+syn region			lispString			start=+"+ skip=+\\\\\|\\"+ end=+"+	contains=@Spell
 if exists("g:lisp_instring")
- syn region			 lispInString			  keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
- syn region			 lispInStringString		  start=+\\"+ skip=+\\\\+ end=+\\"+ contained
+ syn region			lispInString			keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
+ syn region			lispInStringString		start=+\\"+ skip=+\\\\+ end=+\\"+ contained
 endif
 
 " ---------------------------------------------------------------------
 " Shared with Xlisp, Declarations, Macros, Functions: {{{1
-syn keyword lispDecl		 defmacro			  do-all-symbols		   labels
-syn keyword lispDecl		 defsetf			  do-external-symbols		   let
-syn keyword lispDecl		 deftype			  do-symbols			   locally
-syn keyword lispDecl		 defun				  dotimes			   macrolet
-syn keyword lispDecl		 do*				  flet				   multiple-value-bind
+syn keyword lispDecl		defmacro			do-all-symbols		labels
+syn keyword lispDecl		defsetf				do-external-symbols	let
+syn keyword lispDecl		deftype				do-symbols		locally
+syn keyword lispDecl		defun				dotimes			macrolet
+syn keyword lispDecl		do*				flet			multiple-value-bind
+if exists("g:lispsyntax_clisp")
+  " CLISP FFI:
+  syn match lispDecl	"\<\(ffi:\)\?def-c-\(var\|const\|enum\|type\|struct\)\>"
+  syn match lispDecl	"\<\(ffi:\)\?def-call-\(out\|in\)\>"
+  syn match lispDecl	"\<\(ffi:\)\?c-\(function\|struct\|pointer\|string\)\>"
+  syn match lispDecl	"\<\(ffi:\)\?c-ptr\(-null\)\?\>"
+  syn match lispDecl	"\<\(ffi:\)\?c-array\(-ptr\|-max\)\?\>"
+  syn match lispDecl	"\<\(ffi:\)\?[us]\?\(char\|short\|int\|long\)\>"
+  syn match lispDecl	"\<\(win32:\|w32\)\?d\?word\>"
+  syn match lispDecl	"\<\([us]_\?\)\?int\(8\|16\|32\|64\)\(_t\)\?\>"
+  syn keyword lispDecl	size_t off_t time_t handle
+endif
 
 " ---------------------------------------------------------------------
 " Numbers: supporting integers and floating point numbers {{{1
-syn match lispNumber		 "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
+syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
 
-syn match lispSpecial		 "\*\w[a-z_0-9-]*\*"
-syn match lispSpecial		 !#|[^()'`,"; \t]\+|#!
-syn match lispSpecial		 !#x\x\+!
-syn match lispSpecial		 !#o\o\+!
-syn match lispSpecial		 !#b[01]\+!
-syn match lispSpecial		 !#\\[ -}\~]!
-syn match lispSpecial		 !#[':][^()'`,"; \t]\+!
-syn match lispSpecial		 !#([^()'`,"; \t]\+)!
-syn match lispSpecial		 !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
+syn match lispSpecial		"\*\w[a-z_0-9-]*\*"
+syn match lispSpecial		!#|[^()'`,"; \t]\+|#!
+syn match lispSpecial		!#x\x\+!
+syn match lispSpecial		!#o\o\+!
+syn match lispSpecial		!#b[01]\+!
+syn match lispSpecial		!#\\[ -}\~]!
+syn match lispSpecial		!#[':][^()'`,"; \t]\+!
+syn match lispSpecial		!#([^()'`,"; \t]\+)!
+syn match lispSpecial		!#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
+syn match lispSpecial		"\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
 
-syn match lispConcat		 "\s\.\s"
-syn match lispParenError	 ")"
+syn match lispConcat		"\s\.\s"
+syn match lispParenError	")"
 
 " ---------------------------------------------------------------------
 " Comments: {{{1
-syn cluster lispCommentGroup	 contains=lispTodo,@Spell
-syn match   lispComment		 ";.*$"				  contains=@lispCommentGroup
-syn region  lispCommentRegion	 start="#|" end="|#"		  contains=lispCommentRegion,@lispCommentGroup
-syn keyword lispTodo		 contained			  combak			   combak:			    todo			     todo:
+syn cluster lispCommentGroup	contains=lispTodo,@Spell
+syn match   lispComment		";.*$"				contains=@lispCommentGroup
+syn region  lispCommentRegion	start="#|" end="|#"		contains=lispCommentRegion,@lispCommentGroup
+syn keyword lispTodo		contained			combak			combak:			todo			todo:
 
 " ---------------------------------------------------------------------
 " Synchronization: {{{1
@@ -487,38 +568,38 @@
 if version >= 508
   command -nargs=+ HiLink hi def link <args>
 
-  HiLink lispCommentRegion	 lispComment
-  HiLink lispAtomNmbr		 lispNumber
-  HiLink lispAtomMark		 lispMark
-  HiLink lispInStringString	 lispString
+  HiLink lispCommentRegion	lispComment
+  HiLink lispAtomNmbr		lispNumber
+  HiLink lispAtomMark		lispMark
+  HiLink lispInStringString	lispString
 
-  HiLink lispAtom		 Identifier
-  HiLink lispAtomBarSymbol	 Special
-  HiLink lispBarSymbol		 Special
-  HiLink lispComment		 Comment
-  HiLink lispConcat		 Statement
-  HiLink lispDecl		 Statement
-  HiLink lispFunc		 Statement
-  HiLink lispKey		 Type
-  HiLink lispMark		 Delimiter
-  HiLink lispNumber		 Number
-  HiLink lispParenError		 Error
-  HiLink lispSpecial		 Type
-  HiLink lispString		 String
-  HiLink lispTodo		 Todo
-  HiLink lispVar		 Statement
+  HiLink lispAtom		Identifier
+  HiLink lispAtomBarSymbol	Special
+  HiLink lispBarSymbol		Special
+  HiLink lispComment		Comment
+  HiLink lispConcat		Statement
+  HiLink lispDecl		Statement
+  HiLink lispFunc		Statement
+  HiLink lispKey		Type
+  HiLink lispMark		Delimiter
+  HiLink lispNumber		Number
+  HiLink lispParenError		Error
+  HiLink lispSpecial		Type
+  HiLink lispString		String
+  HiLink lispTodo		Todo
+  HiLink lispVar		Statement
 
   if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
    if &bg == "dark"
     hi def hlLevel0 ctermfg=red         guifg=red1
-    hi def hlLevel1 ctermfg=yellow      guifg=orange1      
-    hi def hlLevel2 ctermfg=green       guifg=yellow1      
-    hi def hlLevel3 ctermfg=cyan        guifg=greenyellow  
-    hi def hlLevel4 ctermfg=magenta     guifg=green1       
-    hi def hlLevel5 ctermfg=red         guifg=springgreen1 
-    hi def hlLevel6 ctermfg=yellow      guifg=cyan1        
-    hi def hlLevel7 ctermfg=green       guifg=slateblue1   
-    hi def hlLevel8 ctermfg=cyan        guifg=magenta1     
+    hi def hlLevel1 ctermfg=yellow      guifg=orange1
+    hi def hlLevel2 ctermfg=green       guifg=yellow1
+    hi def hlLevel3 ctermfg=cyan        guifg=greenyellow
+    hi def hlLevel4 ctermfg=magenta     guifg=green1
+    hi def hlLevel5 ctermfg=red         guifg=springgreen1
+    hi def hlLevel6 ctermfg=yellow      guifg=cyan1
+    hi def hlLevel7 ctermfg=green       guifg=slateblue1
+    hi def hlLevel8 ctermfg=cyan        guifg=magenta1
     hi def hlLevel9 ctermfg=magenta     guifg=purple1
    else
     hi def hlLevel0 ctermfg=red         guifg=red3
diff --git a/runtime/syntax/lsl.vim b/runtime/syntax/lsl.vim
new file mode 100644
index 0000000..3f24816
--- /dev/null
+++ b/runtime/syntax/lsl.vim
@@ -0,0 +1,272 @@
+" Vim syntax file
+" Language:	Linden Scripting Language
+" Maintainer:	Timo Frenay <timo@frenay.net>
+" Last Change:	2008 Mar 29
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+" Initializations
+syn case match
+
+" Keywords
+syn keyword lslKeyword default do else for if jump return state while
+
+" Types
+syn keyword lslType float integer key list quaternion rotation string vector
+
+" Labels
+syn match lslLabel +@\h\w*+ display
+
+" Constants
+syn keyword lslConstant
+\ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY
+\ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT
+\ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON
+\ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD
+\ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT
+\ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER
+\ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT
+\ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC
+\ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE
+\ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP
+\ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM
+\ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG
+\ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED
+\ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION
+\ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD
+\ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK
+\ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT
+\ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN
+\ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT
+\ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON
+\ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT
+\ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO
+\ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL
+\ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD
+\ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION
+\ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK
+\ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT
+\ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER
+\ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH
+\ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS
+\ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN
+\ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV
+\ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP
+\ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP
+\ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL
+\ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER
+\ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA
+\ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME
+\ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY
+\ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS
+\ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY
+\ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
+\ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS
+\ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY
+\ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP
+\ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST
+\ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT
+\ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC
+\ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET
+\ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE
+\ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE
+\ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE
+\ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE
+\ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY
+\ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS
+\ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS
+\ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG
+\ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT
+\ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS
+\ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY
+\ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION
+\ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR
+\ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT
+\ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH
+\ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL
+\ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE
+\ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION
+\ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE
+\ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW
+\ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN
+\ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX
+\ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY
+\ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT
+\ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS
+\ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK
+\ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA
+\ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS
+\ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK
+\ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE
+\ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA
+\ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK
+\ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK
+\ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END
+\ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE
+\ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE
+\ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN
+\ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE
+\ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP
+\ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL
+\ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT
+\ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM
+\ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS
+\ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX
+\ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE
+\ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE
+\ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X
+\ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD
+\ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY
+\ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY
+\ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE
+\ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION
+\ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX
+\ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED
+\ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+\ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY
+\ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY
+\ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER
+\ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT
+\ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY
+\ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE
+\ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE
+\ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET
+\ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON
+\ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED
+\ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
+\ ZERO_ROTATION ZERO_VECTOR
+
+" Events
+syn keyword lslEvent
+\ attach at_rot_target at_target changed collision collision_end collision_start
+\ control dataserver email http_response land_collision land_collision_end
+\ land_collision_start link_message listen money moving_end moving_start
+\ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions
+\ sensor state_entry state_exit timer touch touch_end touch_start not_at_target
+
+" Functions
+syn keyword lslFunction
+\ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume
+\ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse
+\ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot
+\ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List
+\ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter
+\ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList
+\ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup
+\ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner
+\ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie
+\ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL
+\ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo
+\ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList
+\ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass
+\ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory
+\ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey
+\ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask
+\ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName
+\ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot
+\ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines
+\ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails
+\ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount
+\ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags
+\ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners
+\ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams
+\ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName
+\ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot
+\ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname
+\ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture
+\ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay
+\ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock
+\ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround
+\ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest
+\ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV
+\ llList2Float llList2Integer llList2Key llList2List llList2ListStrided
+\ llList2Rot llList2String llList2Vector llListFindList llListInsertList
+\ llListRandomize llListReplaceList llListSort llListStatistics llListen
+\ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound
+\ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire
+\ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay
+\ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel
+\ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery
+\ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions
+\ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound
+\ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls
+\ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript
+\ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList
+\ llRemoveInventory llRemoveVehicleFlags llRequestAgentData
+\ llRequestInventoryData llRequestPermissions llRequestSimulatorData
+\ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript
+\ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler
+\ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget
+\ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture
+\ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat
+\ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset
+\ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce
+\ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha
+\ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot
+\ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL
+\ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams
+\ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText
+\ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture
+\ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags
+\ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType
+\ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound
+\ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover
+\ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength
+\ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls
+\ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower
+\ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist
+\ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings
+\ llXorBase64StringsCorrect
+
+" Operators
+syn match lslOperator +[-!%&*+/<=>^|~]+ display
+
+" Numbers
+syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display
+
+" Vectors and rotations
+syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display
+
+" Vector and rotation properties
+syn match lslProperty +\.\@<=[sxyz]\>+ display
+
+" Strings
+syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell
+syn match lslSpecialChar +\\.+ contained display
+
+" Keys
+syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display
+
+" Parentheses, braces and brackets
+syn match lslBlock +[][(){}]+ display
+
+" Typecast operators
+syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display
+
+" Comments
+syn match lslComment +//.*+ contains=@Spell
+
+" Define the default highlighting.
+hi def link lslKeyword      Keyword
+hi def link lslType         Type
+hi def link lslLabel        Label
+hi def link lslConstant     Constant
+hi def link lslEvent        PreProc
+hi def link lslFunction     Function
+hi def link lslOperator     Operator
+hi def link lslNumber       Number
+hi def link lslVectorRot    Special
+hi def link lslProperty     Identifier
+hi def link lslString       String
+hi def link lslSpecialChar  SpecialChar
+hi def link lslKey          Special
+hi def link lslBlock        Special
+hi def link lslTypecast     Operator
+hi def link lslComment      Comment
+
+let b:current_syntax = "lsl"
+
+" vim: ts=8
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index e982b8c..d4e8827 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,13 +1,13 @@
 " Vim syntax file
 " Language:         modules.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2007-06-17
 
 if exists("b:current_syntax")
   finish
 endif
 
-setlocal iskeyword=@,48-57,-
+setlocal iskeyword+=-
 
 let s:cpo_save = &cpo
 set cpo&vim
diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim
index d86f8e4..878021e 100644
--- a/runtime/syntax/mrxvtrc.vim
+++ b/runtime/syntax/mrxvtrc.vim
@@ -1,5 +1,5 @@
 " Created	: Wed 26 Apr 2006 01:20:53 AM CDT
-" Modified	: Mon 20 Nov 2006 12:14:16 AM PST
+" Modified	: Mon 27 Aug 2007 12:10:37 PM PDT
 " Author	: Gautam Iyer <gi1242@users.sourceforge.net>
 " Description	: Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
 
@@ -31,19 +31,19 @@
 				\ fullscreen reverseVideo loginShell
 				\ jumpScroll scrollBar scrollbarRight
 				\ scrollbarFloating scrollTtyOutputInhibit
-				\ scrollTtyKeypress scrollWithBuffer
-				\ transparentForce transparentScrollbar
-				\ transparentMenubar transparentTabbar
-				\ tabUsePixmap utmpInhibit visualBell mapAlert
-				\ meta8 mouseWheelScrollPage multibyte_cursor
+				\ scrollTtyKeypress transparentForce
+				\ transparentScrollbar transparentMenubar
+				\ transparentTabbar tabUsePixmap utmpInhibit
+				\ visualBell mapAlert meta8
+				\ mouseWheelScrollPage multibyte_cursor
 				\ tripleclickwords showMenu xft xftNomFont
 				\ xftSlowOutput xftAntialias xftHinting
 				\ xftAutoHint xftGlobalAdvance cmdAllTabs
 				\ protectSecondary thai borderLess
-				\ overrideRedirect broadcast
-				\ smartResize smoothResize pointerBlank
-				\ cursorBlink noSysConfig disableMacros
-				\ linuxHomeEndKey sessionMgt
+				\ overrideRedirect broadcast smartResize
+				\ pointerBlank cursorBlink noSysConfig
+				\ disableMacros linuxHomeEndKey sessionMgt
+				\ boldColors smoothResize useFifo veryBright
 syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcBColon,mrxvtrcError
 				\ '\v<transparent>'
 syn match	mrxvtrcBColon	contained skipwhite
@@ -74,8 +74,7 @@
 				\ externalBorder internalBorder lineSpace
 				\ pointerBlankDelay cursorBlinkInterval
 				\ shading backgroundFade bgRefreshInterval
-				\ fading focusDelay opacity opacityDegree
-				\ xftPSize
+				\ fading opacity opacityDegree xftPSize
 syn match	mrxvtrcNColon	contained skipwhite
 				\ nextgroup=mrxvtrcNumVal,mrxvtrcError ':'
 syn match	mrxvtrcNumVal	contained skipwhite nextgroup=mrxvtrcError
@@ -91,7 +90,6 @@
 				\ greektoggle_key menu menubarPixmap
 				\ scrollbarPixmap tabbarPixmap appIcon
 				\ multichar_encoding initProfileList
-				\ winTitleFormat
 syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcSColon,mrxvtrcError
 				\ '\v<m?font[1-5]?>'
 syn match	mrxvtrcSColon	contained skipwhite nextgroup=mrxvtrcStrVal ':'
@@ -104,6 +102,7 @@
 syn keyword	mrxvtrcPSOpts	contained nextgroup=mrxvtrcSColon,mrxvtrcError
 				\ tabTitle command holdExitText holdExitTitle
 				\ Pixmap workingDirectory titleFormat
+				\ winTitleFormat
 syn keyword	mrxvtrcPCOpts	contained nextgroup=mrxvtrcCColon,mrxvtrcError
 				\ background foreground
 syn keyword	mrxvtrcPNOpts	contained nextgroup=mrxvtrcNColon,mrxvtrcError
@@ -205,7 +204,7 @@
 				\ Dummy Copy Paste ToggleVeryBold
 				\ ToggleTransparency ToggleBroadcast
 				\ ToggleHold SetTitle ToggleMacros
-				\ ToggleFullscreen
+				\ ToggleFullscreen Raise
 
 " Macros with a string argument
 syn keyword	mrxvtrcMacro	contained skipwhite nextgroup=mrxvtrcStrVal
@@ -214,7 +213,7 @@
 " Macros with a numeric argument
 syn keyword	mrxvtrcMacro	contained skipwhite
 				\ nextgroup=mrxvtrcNumVal,mrxvtrcError
-				\ Close GotoTab MoveTab ResizeFont
+				\ Close GotoTab MoveTab ResizeFont UseFifo
 
 " NewTab macro
 syn keyword	mrxvtrcMacro	contained skipwhite
diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim
index aa123b7..79cf4b5 100644
--- a/runtime/syntax/mysql.vim
+++ b/runtime/syntax/mysql.vim
@@ -1,10 +1,10 @@
 " Vim syntax file
 " Language:     mysql
 " Maintainer:   Kenneth J. Pronovici <pronovic@ieee.org>
-" Last Change:  $Date$
+" Last Change:  $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $
 " Filenames:    *.mysql
-" URL:		ftp://cedar-solutions.com/software/mysql.vim
-" Note:		The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
+" URL:          ftp://cedar-solutions.com/software/mysql.vim
+" Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -18,56 +18,56 @@
 syn case ignore
 
 " General keywords which don't fall into other categories
-syn keyword mysqlKeyword	 action add after aggregate all alter as asc auto_increment avg avg_row_length
-syn keyword mysqlKeyword	 both by
-syn keyword mysqlKeyword	 cascade change character check checksum column columns comment constraint create cross
-syn keyword mysqlKeyword	 current_date current_time current_timestamp
-syn keyword mysqlKeyword	 data database databases day day_hour day_minute day_second
-syn keyword mysqlKeyword	 default delayed delay_key_write delete desc describe distinct distinctrow drop
-syn keyword mysqlKeyword	 enclosed escape escaped explain
-syn keyword mysqlKeyword	 fields file first flush for foreign from full function
-syn keyword mysqlKeyword	 global grant grants group
-syn keyword mysqlKeyword	 having heap high_priority hosts hour hour_minute hour_second
-syn keyword mysqlKeyword	 identified ignore index infile inner insert insert_id into isam
-syn keyword mysqlKeyword	 join
-syn keyword mysqlKeyword	 key keys kill last_insert_id leading left limit lines load local lock logs long
-syn keyword mysqlKeyword	 low_priority
-syn keyword mysqlKeyword	 match max_rows middleint min_rows minute minute_second modify month myisam
-syn keyword mysqlKeyword	 natural no
-syn keyword mysqlKeyword	 on optimize option optionally order outer outfile
-syn keyword mysqlKeyword	 pack_keys partial password primary privileges procedure process processlist
-syn keyword mysqlKeyword	 read references reload rename replace restrict returns revoke row rows
-syn keyword mysqlKeyword	 second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
-syn keyword mysqlKeyword	 sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
-syn keyword mysqlKeyword	 status straight_join string
-syn keyword mysqlKeyword	 table tables temporary terminated to trailing type
-syn keyword mysqlKeyword	 unique unlock unsigned update usage use using
-syn keyword mysqlKeyword	 values varbinary variables varying
-syn keyword mysqlKeyword	 where with write
-syn keyword mysqlKeyword	 year_month
-syn keyword mysqlKeyword	 zerofill
+syn keyword mysqlKeyword         action add after aggregate all alter as asc auto_increment avg avg_row_length
+syn keyword mysqlKeyword         both by
+syn keyword mysqlKeyword         cascade change character check checksum column columns comment constraint create cross
+syn keyword mysqlKeyword         current_date current_time current_timestamp
+syn keyword mysqlKeyword         data database databases day day_hour day_minute day_second
+syn keyword mysqlKeyword         default delayed delay_key_write delete desc describe distinct distinctrow drop
+syn keyword mysqlKeyword         enclosed escape escaped explain
+syn keyword mysqlKeyword         fields file first flush for foreign from full function
+syn keyword mysqlKeyword         global grant grants group
+syn keyword mysqlKeyword         having heap high_priority hosts hour hour_minute hour_second
+syn keyword mysqlKeyword         identified ignore index infile inner insert insert_id into isam
+syn keyword mysqlKeyword         join
+syn keyword mysqlKeyword         key keys kill last_insert_id leading left limit lines load local lock logs long 
+syn keyword mysqlKeyword         low_priority
+syn keyword mysqlKeyword         match max_rows middleint min_rows minute minute_second modify month myisam
+syn keyword mysqlKeyword         natural no
+syn keyword mysqlKeyword         on optimize option optionally order outer outfile
+syn keyword mysqlKeyword         pack_keys partial password primary privileges procedure process processlist
+syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke row rows
+syn keyword mysqlKeyword         second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
+syn keyword mysqlKeyword         sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
+syn keyword mysqlKeyword         status straight_join string
+syn keyword mysqlKeyword         table tables temporary terminated to trailing type
+syn keyword mysqlKeyword         unique unlock unsigned update usage use using
+syn keyword mysqlKeyword         values varbinary variables varying
+syn keyword mysqlKeyword         where with write
+syn keyword mysqlKeyword         year_month
+syn keyword mysqlKeyword         zerofill
 
 " Special values
-syn keyword mysqlSpecial	 false null true
+syn keyword mysqlSpecial         false null true
 
 " Strings (single- and double-quote)
-syn region mysqlString		 start=+"+  skip=+\\\\\|\\"+  end=+"+
-syn region mysqlString		 start=+'+  skip=+\\\\\|\\'+  end=+'+
+syn region mysqlString           start=+"+  skip=+\\\\\|\\"+  end=+"+
+syn region mysqlString           start=+'+  skip=+\\\\\|\\'+  end=+'+
 
 " Numbers and hexidecimal values
-syn match mysqlNumber		 "-\=\<[0-9]*\>"
-syn match mysqlNumber		 "-\=\<[0-9]*\.[0-9]*\>"
-syn match mysqlNumber		 "-\=\<[0-9]*e[+-]\=[0-9]*\>"
-syn match mysqlNumber		 "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
-syn match mysqlNumber		 "\<0x[abcdefABCDEF0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber            "\<0x[abcdefABCDEF0-9]*\>"
 
 " User variables
-syn match mysqlVariable		 "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*"
+syn match mysqlVariable          "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*"
 
 " Comments (c-style, mysql-style and modified sql-style)
-syn region mysqlComment		 start="/\*"  end="\*/"
-syn match mysqlComment		 "#.*"
-syn match mysqlComment		 "-- .*"
+syn region mysqlComment          start="/\*"  end="\*/"
+syn match mysqlComment           "#.*"
+syn match mysqlComment           "--\_s.*"
 syn sync ccomment mysqlComment
 
 " Column types
@@ -84,189 +84,189 @@
 " The second problem is that some of these keywords are included in
 " function names.  For instance, year() is part of the name of the
 " dayofyear() function, and the dec keyword (no parenthesis) is part of
-" the name of the decode() function.
+" the name of the decode() function. 
 
-syn keyword mysqlType		 tinyint smallint mediumint int integer bigint
-syn keyword mysqlType		 date datetime time bit bool
-syn keyword mysqlType		 tinytext mediumtext longtext text
-syn keyword mysqlType		 tinyblob mediumblob longblob blob
-syn region mysqlType		 start="float\W" end="."me=s-1
-syn region mysqlType		 start="float$" end="."me=s-1
-syn region mysqlType		 start="float(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="double\W" end="."me=s-1
-syn region mysqlType		 start="double$" end="."me=s-1
-syn region mysqlType		 start="double(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="double precision\W" end="."me=s-1
-syn region mysqlType		 start="double precision$" end="."me=s-1
-syn region mysqlType		 start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="real\W" end="."me=s-1
-syn region mysqlType		 start="real$" end="."me=s-1
-syn region mysqlType		 start="real(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="dec\W" end="."me=s-1
-syn region mysqlType		 start="dec$" end="."me=s-1
-syn region mysqlType		 start="dec(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="decimal\W" end="."me=s-1
-syn region mysqlType		 start="decimal$" end="."me=s-1
-syn region mysqlType		 start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="\Wtimestamp\W" end="."me=s-1
-syn region mysqlType		 start="\Wtimestamp$" end="."me=s-1
-syn region mysqlType		 start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="^timestamp\W" end="."me=s-1
-syn region mysqlType		 start="^timestamp$" end="."me=s-1
-syn region mysqlType		 start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="^year(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="char(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType		 start="enum(" end=")" contains=mysqlString,mysqlVariable
-syn region mysqlType		 start="\Wset(" end=")" contains=mysqlString,mysqlVariable
-syn region mysqlType		 start="^set(" end=")" contains=mysqlString,mysqlVariable
+syn keyword mysqlType            tinyint smallint mediumint int integer bigint 
+syn keyword mysqlType            date datetime time bit bool 
+syn keyword mysqlType            tinytext mediumtext longtext text
+syn keyword mysqlType            tinyblob mediumblob longblob blob
+syn region mysqlType             start="float\W" end="."me=s-1 
+syn region mysqlType             start="float$" end="."me=s-1 
+syn region mysqlType             start="float(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="double\W" end="."me=s-1
+syn region mysqlType             start="double$" end="."me=s-1
+syn region mysqlType             start="double(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="double precision\W" end="."me=s-1
+syn region mysqlType             start="double precision$" end="."me=s-1
+syn region mysqlType             start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="real\W" end="."me=s-1
+syn region mysqlType             start="real$" end="."me=s-1
+syn region mysqlType             start="real(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="dec\W" end="."me=s-1
+syn region mysqlType             start="dec$" end="."me=s-1
+syn region mysqlType             start="dec(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="decimal\W" end="."me=s-1
+syn region mysqlType             start="decimal$" end="."me=s-1
+syn region mysqlType             start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="\Wtimestamp\W" end="."me=s-1
+syn region mysqlType             start="\Wtimestamp$" end="."me=s-1
+syn region mysqlType             start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="^timestamp\W" end="."me=s-1
+syn region mysqlType             start="^timestamp$" end="."me=s-1
+syn region mysqlType             start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="^year(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="char(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="enum(" end=")" contains=mysqlString,mysqlVariable
+syn region mysqlType             start="\Wset(" end=")" contains=mysqlString,mysqlVariable
+syn region mysqlType             start="^set(" end=")" contains=mysqlString,mysqlVariable
 
 " Logical, string and  numeric operators
-syn keyword mysqlOperator	 between not and or is in like regexp rlike binary exists
-syn region mysqlOperator	 start="isnull(" end=")" contains=ALL
-syn region mysqlOperator	 start="coalesce(" end=")" contains=ALL
-syn region mysqlOperator	 start="interval(" end=")" contains=ALL
+syn keyword mysqlOperator        between not and or is in like regexp rlike binary exists
+syn region mysqlOperator         start="isnull(" end=")" contains=ALL
+syn region mysqlOperator         start="coalesce(" end=")" contains=ALL
+syn region mysqlOperator         start="interval(" end=")" contains=ALL
 
 " Control flow functions
-syn keyword mysqlFlow		 case when then else end
-syn region mysqlFlow		 start="ifnull("   end=")"  contains=ALL
-syn region mysqlFlow		 start="nullif("   end=")"  contains=ALL
-syn region mysqlFlow		 start="if("	   end=")"  contains=ALL
+syn keyword mysqlFlow            case when then else end
+syn region mysqlFlow             start="ifnull("   end=")"  contains=ALL
+syn region mysqlFlow             start="nullif("   end=")"  contains=ALL
+syn region mysqlFlow             start="if("       end=")"  contains=ALL
 
 " General Functions
 "
 " I'm leery of just defining keywords for functions, since according to the MySQL manual:
 "
-"     Function names do not clash with table or column names. For example, ABS is a
-"     valid column name. The only restriction is that for a function call, no spaces
-"     are allowed between the function name and the `(' that follows it.
+"     Function names do not clash with table or column names. For example, ABS is a 
+"     valid column name. The only restriction is that for a function call, no spaces 
+"     are allowed between the function name and the `(' that follows it. 
 "
-" This means that if I want to highlight function names properly, I have to use a
-" region to define them, not just a keyword.  This will probably cause the syntax file
+" This means that if I want to highlight function names properly, I have to use a 
+" region to define them, not just a keyword.  This will probably cause the syntax file 
 " to load more slowly, but at least it will be 'correct'.
 
-syn region mysqlFunction	 start="abs(" end=")" contains=ALL
-syn region mysqlFunction	 start="acos(" end=")" contains=ALL
-syn region mysqlFunction	 start="adddate(" end=")" contains=ALL
-syn region mysqlFunction	 start="ascii(" end=")" contains=ALL
-syn region mysqlFunction	 start="asin(" end=")" contains=ALL
-syn region mysqlFunction	 start="atan(" end=")" contains=ALL
-syn region mysqlFunction	 start="atan2(" end=")" contains=ALL
-syn region mysqlFunction	 start="benchmark(" end=")" contains=ALL
-syn region mysqlFunction	 start="bin(" end=")" contains=ALL
-syn region mysqlFunction	 start="bit_and(" end=")" contains=ALL
-syn region mysqlFunction	 start="bit_count(" end=")" contains=ALL
-syn region mysqlFunction	 start="bit_or(" end=")" contains=ALL
-syn region mysqlFunction	 start="ceiling(" end=")" contains=ALL
-syn region mysqlFunction	 start="character_length(" end=")" contains=ALL
-syn region mysqlFunction	 start="char_length(" end=")" contains=ALL
-syn region mysqlFunction	 start="concat(" end=")" contains=ALL
-syn region mysqlFunction	 start="concat_ws(" end=")" contains=ALL
-syn region mysqlFunction	 start="connection_id(" end=")" contains=ALL
-syn region mysqlFunction	 start="conv(" end=")" contains=ALL
-syn region mysqlFunction	 start="cos(" end=")" contains=ALL
-syn region mysqlFunction	 start="cot(" end=")" contains=ALL
-syn region mysqlFunction	 start="count(" end=")" contains=ALL
-syn region mysqlFunction	 start="curdate(" end=")" contains=ALL
-syn region mysqlFunction	 start="curtime(" end=")" contains=ALL
-syn region mysqlFunction	 start="date_add(" end=")" contains=ALL
-syn region mysqlFunction	 start="date_format(" end=")" contains=ALL
-syn region mysqlFunction	 start="date_sub(" end=")" contains=ALL
-syn region mysqlFunction	 start="dayname(" end=")" contains=ALL
-syn region mysqlFunction	 start="dayofmonth(" end=")" contains=ALL
-syn region mysqlFunction	 start="dayofweek(" end=")" contains=ALL
-syn region mysqlFunction	 start="dayofyear(" end=")" contains=ALL
-syn region mysqlFunction	 start="decode(" end=")" contains=ALL
-syn region mysqlFunction	 start="degrees(" end=")" contains=ALL
-syn region mysqlFunction	 start="elt(" end=")" contains=ALL
-syn region mysqlFunction	 start="encode(" end=")" contains=ALL
-syn region mysqlFunction	 start="encrypt(" end=")" contains=ALL
-syn region mysqlFunction	 start="exp(" end=")" contains=ALL
-syn region mysqlFunction	 start="export_set(" end=")" contains=ALL
-syn region mysqlFunction	 start="extract(" end=")" contains=ALL
-syn region mysqlFunction	 start="field(" end=")" contains=ALL
-syn region mysqlFunction	 start="find_in_set(" end=")" contains=ALL
-syn region mysqlFunction	 start="floor(" end=")" contains=ALL
-syn region mysqlFunction	 start="format(" end=")" contains=ALL
-syn region mysqlFunction	 start="from_days(" end=")" contains=ALL
-syn region mysqlFunction	 start="from_unixtime(" end=")" contains=ALL
-syn region mysqlFunction	 start="get_lock(" end=")" contains=ALL
-syn region mysqlFunction	 start="greatest(" end=")" contains=ALL
-syn region mysqlFunction	 start="group_unique_users(" end=")" contains=ALL
-syn region mysqlFunction	 start="hex(" end=")" contains=ALL
-syn region mysqlFunction	 start="inet_aton(" end=")" contains=ALL
-syn region mysqlFunction	 start="inet_ntoa(" end=")" contains=ALL
-syn region mysqlFunction	 start="instr(" end=")" contains=ALL
-syn region mysqlFunction	 start="lcase(" end=")" contains=ALL
-syn region mysqlFunction	 start="least(" end=")" contains=ALL
-syn region mysqlFunction	 start="length(" end=")" contains=ALL
-syn region mysqlFunction	 start="load_file(" end=")" contains=ALL
-syn region mysqlFunction	 start="locate(" end=")" contains=ALL
-syn region mysqlFunction	 start="log(" end=")" contains=ALL
-syn region mysqlFunction	 start="log10(" end=")" contains=ALL
-syn region mysqlFunction	 start="lower(" end=")" contains=ALL
-syn region mysqlFunction	 start="lpad(" end=")" contains=ALL
-syn region mysqlFunction	 start="ltrim(" end=")" contains=ALL
-syn region mysqlFunction	 start="make_set(" end=")" contains=ALL
-syn region mysqlFunction	 start="master_pos_wait(" end=")" contains=ALL
-syn region mysqlFunction	 start="max(" end=")" contains=ALL
-syn region mysqlFunction	 start="md5(" end=")" contains=ALL
-syn region mysqlFunction	 start="mid(" end=")" contains=ALL
-syn region mysqlFunction	 start="min(" end=")" contains=ALL
-syn region mysqlFunction	 start="mod(" end=")" contains=ALL
-syn region mysqlFunction	 start="monthname(" end=")" contains=ALL
-syn region mysqlFunction	 start="now(" end=")" contains=ALL
-syn region mysqlFunction	 start="oct(" end=")" contains=ALL
-syn region mysqlFunction	 start="octet_length(" end=")" contains=ALL
-syn region mysqlFunction	 start="ord(" end=")" contains=ALL
-syn region mysqlFunction	 start="period_add(" end=")" contains=ALL
-syn region mysqlFunction	 start="period_diff(" end=")" contains=ALL
-syn region mysqlFunction	 start="pi(" end=")" contains=ALL
-syn region mysqlFunction	 start="position(" end=")" contains=ALL
-syn region mysqlFunction	 start="pow(" end=")" contains=ALL
-syn region mysqlFunction	 start="power(" end=")" contains=ALL
-syn region mysqlFunction	 start="quarter(" end=")" contains=ALL
-syn region mysqlFunction	 start="radians(" end=")" contains=ALL
-syn region mysqlFunction	 start="rand(" end=")" contains=ALL
-syn region mysqlFunction	 start="release_lock(" end=")" contains=ALL
-syn region mysqlFunction	 start="repeat(" end=")" contains=ALL
-syn region mysqlFunction	 start="reverse(" end=")" contains=ALL
-syn region mysqlFunction	 start="round(" end=")" contains=ALL
-syn region mysqlFunction	 start="rpad(" end=")" contains=ALL
-syn region mysqlFunction	 start="rtrim(" end=")" contains=ALL
-syn region mysqlFunction	 start="sec_to_time(" end=")" contains=ALL
-syn region mysqlFunction	 start="session_user(" end=")" contains=ALL
-syn region mysqlFunction	 start="sign(" end=")" contains=ALL
-syn region mysqlFunction	 start="sin(" end=")" contains=ALL
-syn region mysqlFunction	 start="soundex(" end=")" contains=ALL
-syn region mysqlFunction	 start="space(" end=")" contains=ALL
-syn region mysqlFunction	 start="sqrt(" end=")" contains=ALL
-syn region mysqlFunction	 start="std(" end=")" contains=ALL
-syn region mysqlFunction	 start="stddev(" end=")" contains=ALL
-syn region mysqlFunction	 start="strcmp(" end=")" contains=ALL
-syn region mysqlFunction	 start="subdate(" end=")" contains=ALL
-syn region mysqlFunction	 start="substring(" end=")" contains=ALL
-syn region mysqlFunction	 start="substring_index(" end=")" contains=ALL
-syn region mysqlFunction	 start="subtime(" end=")" contains=ALL
-syn region mysqlFunction	 start="sum(" end=")" contains=ALL
-syn region mysqlFunction	 start="sysdate(" end=")" contains=ALL
-syn region mysqlFunction	 start="system_user(" end=")" contains=ALL
-syn region mysqlFunction	 start="tan(" end=")" contains=ALL
-syn region mysqlFunction	 start="time_format(" end=")" contains=ALL
-syn region mysqlFunction	 start="time_to_sec(" end=")" contains=ALL
-syn region mysqlFunction	 start="to_days(" end=")" contains=ALL
-syn region mysqlFunction	 start="trim(" end=")" contains=ALL
-syn region mysqlFunction	 start="ucase(" end=")" contains=ALL
-syn region mysqlFunction	 start="unique_users(" end=")" contains=ALL
-syn region mysqlFunction	 start="unix_timestamp(" end=")" contains=ALL
-syn region mysqlFunction	 start="upper(" end=")" contains=ALL
-syn region mysqlFunction	 start="user(" end=")" contains=ALL
-syn region mysqlFunction	 start="version(" end=")" contains=ALL
-syn region mysqlFunction	 start="week(" end=")" contains=ALL
-syn region mysqlFunction	 start="weekday(" end=")" contains=ALL
-syn region mysqlFunction	 start="yearweek(" end=")" contains=ALL
+syn region mysqlFunction         start="abs(" end=")" contains=ALL
+syn region mysqlFunction         start="acos(" end=")" contains=ALL
+syn region mysqlFunction         start="adddate(" end=")" contains=ALL
+syn region mysqlFunction         start="ascii(" end=")" contains=ALL
+syn region mysqlFunction         start="asin(" end=")" contains=ALL
+syn region mysqlFunction         start="atan(" end=")" contains=ALL
+syn region mysqlFunction         start="atan2(" end=")" contains=ALL
+syn region mysqlFunction         start="benchmark(" end=")" contains=ALL
+syn region mysqlFunction         start="bin(" end=")" contains=ALL
+syn region mysqlFunction         start="bit_and(" end=")" contains=ALL
+syn region mysqlFunction         start="bit_count(" end=")" contains=ALL
+syn region mysqlFunction         start="bit_or(" end=")" contains=ALL
+syn region mysqlFunction         start="ceiling(" end=")" contains=ALL
+syn region mysqlFunction         start="character_length(" end=")" contains=ALL
+syn region mysqlFunction         start="char_length(" end=")" contains=ALL
+syn region mysqlFunction         start="concat(" end=")" contains=ALL
+syn region mysqlFunction         start="concat_ws(" end=")" contains=ALL
+syn region mysqlFunction         start="connection_id(" end=")" contains=ALL
+syn region mysqlFunction         start="conv(" end=")" contains=ALL
+syn region mysqlFunction         start="cos(" end=")" contains=ALL
+syn region mysqlFunction         start="cot(" end=")" contains=ALL
+syn region mysqlFunction         start="count(" end=")" contains=ALL
+syn region mysqlFunction         start="curdate(" end=")" contains=ALL
+syn region mysqlFunction         start="curtime(" end=")" contains=ALL
+syn region mysqlFunction         start="date_add(" end=")" contains=ALL
+syn region mysqlFunction         start="date_format(" end=")" contains=ALL
+syn region mysqlFunction         start="date_sub(" end=")" contains=ALL
+syn region mysqlFunction         start="dayname(" end=")" contains=ALL
+syn region mysqlFunction         start="dayofmonth(" end=")" contains=ALL
+syn region mysqlFunction         start="dayofweek(" end=")" contains=ALL
+syn region mysqlFunction         start="dayofyear(" end=")" contains=ALL
+syn region mysqlFunction         start="decode(" end=")" contains=ALL
+syn region mysqlFunction         start="degrees(" end=")" contains=ALL
+syn region mysqlFunction         start="elt(" end=")" contains=ALL
+syn region mysqlFunction         start="encode(" end=")" contains=ALL
+syn region mysqlFunction         start="encrypt(" end=")" contains=ALL
+syn region mysqlFunction         start="exp(" end=")" contains=ALL
+syn region mysqlFunction         start="export_set(" end=")" contains=ALL
+syn region mysqlFunction         start="extract(" end=")" contains=ALL
+syn region mysqlFunction         start="field(" end=")" contains=ALL
+syn region mysqlFunction         start="find_in_set(" end=")" contains=ALL
+syn region mysqlFunction         start="floor(" end=")" contains=ALL
+syn region mysqlFunction         start="format(" end=")" contains=ALL
+syn region mysqlFunction         start="from_days(" end=")" contains=ALL
+syn region mysqlFunction         start="from_unixtime(" end=")" contains=ALL
+syn region mysqlFunction         start="get_lock(" end=")" contains=ALL
+syn region mysqlFunction         start="greatest(" end=")" contains=ALL
+syn region mysqlFunction         start="group_unique_users(" end=")" contains=ALL
+syn region mysqlFunction         start="hex(" end=")" contains=ALL
+syn region mysqlFunction         start="inet_aton(" end=")" contains=ALL
+syn region mysqlFunction         start="inet_ntoa(" end=")" contains=ALL
+syn region mysqlFunction         start="instr(" end=")" contains=ALL
+syn region mysqlFunction         start="lcase(" end=")" contains=ALL
+syn region mysqlFunction         start="least(" end=")" contains=ALL
+syn region mysqlFunction         start="length(" end=")" contains=ALL
+syn region mysqlFunction         start="load_file(" end=")" contains=ALL
+syn region mysqlFunction         start="locate(" end=")" contains=ALL
+syn region mysqlFunction         start="log(" end=")" contains=ALL
+syn region mysqlFunction         start="log10(" end=")" contains=ALL
+syn region mysqlFunction         start="lower(" end=")" contains=ALL
+syn region mysqlFunction         start="lpad(" end=")" contains=ALL
+syn region mysqlFunction         start="ltrim(" end=")" contains=ALL
+syn region mysqlFunction         start="make_set(" end=")" contains=ALL
+syn region mysqlFunction         start="master_pos_wait(" end=")" contains=ALL
+syn region mysqlFunction         start="max(" end=")" contains=ALL
+syn region mysqlFunction         start="md5(" end=")" contains=ALL
+syn region mysqlFunction         start="mid(" end=")" contains=ALL
+syn region mysqlFunction         start="min(" end=")" contains=ALL
+syn region mysqlFunction         start="mod(" end=")" contains=ALL
+syn region mysqlFunction         start="monthname(" end=")" contains=ALL
+syn region mysqlFunction         start="now(" end=")" contains=ALL
+syn region mysqlFunction         start="oct(" end=")" contains=ALL
+syn region mysqlFunction         start="octet_length(" end=")" contains=ALL
+syn region mysqlFunction         start="ord(" end=")" contains=ALL
+syn region mysqlFunction         start="period_add(" end=")" contains=ALL
+syn region mysqlFunction         start="period_diff(" end=")" contains=ALL
+syn region mysqlFunction         start="pi(" end=")" contains=ALL
+syn region mysqlFunction         start="position(" end=")" contains=ALL
+syn region mysqlFunction         start="pow(" end=")" contains=ALL
+syn region mysqlFunction         start="power(" end=")" contains=ALL
+syn region mysqlFunction         start="quarter(" end=")" contains=ALL
+syn region mysqlFunction         start="radians(" end=")" contains=ALL
+syn region mysqlFunction         start="rand(" end=")" contains=ALL
+syn region mysqlFunction         start="release_lock(" end=")" contains=ALL
+syn region mysqlFunction         start="repeat(" end=")" contains=ALL
+syn region mysqlFunction         start="reverse(" end=")" contains=ALL
+syn region mysqlFunction         start="round(" end=")" contains=ALL
+syn region mysqlFunction         start="rpad(" end=")" contains=ALL
+syn region mysqlFunction         start="rtrim(" end=")" contains=ALL
+syn region mysqlFunction         start="sec_to_time(" end=")" contains=ALL
+syn region mysqlFunction         start="session_user(" end=")" contains=ALL
+syn region mysqlFunction         start="sign(" end=")" contains=ALL
+syn region mysqlFunction         start="sin(" end=")" contains=ALL
+syn region mysqlFunction         start="soundex(" end=")" contains=ALL
+syn region mysqlFunction         start="space(" end=")" contains=ALL
+syn region mysqlFunction         start="sqrt(" end=")" contains=ALL
+syn region mysqlFunction         start="std(" end=")" contains=ALL
+syn region mysqlFunction         start="stddev(" end=")" contains=ALL
+syn region mysqlFunction         start="strcmp(" end=")" contains=ALL
+syn region mysqlFunction         start="subdate(" end=")" contains=ALL
+syn region mysqlFunction         start="substring(" end=")" contains=ALL
+syn region mysqlFunction         start="substring_index(" end=")" contains=ALL
+syn region mysqlFunction         start="subtime(" end=")" contains=ALL
+syn region mysqlFunction         start="sum(" end=")" contains=ALL
+syn region mysqlFunction         start="sysdate(" end=")" contains=ALL
+syn region mysqlFunction         start="system_user(" end=")" contains=ALL
+syn region mysqlFunction         start="tan(" end=")" contains=ALL
+syn region mysqlFunction         start="time_format(" end=")" contains=ALL
+syn region mysqlFunction         start="time_to_sec(" end=")" contains=ALL
+syn region mysqlFunction         start="to_days(" end=")" contains=ALL
+syn region mysqlFunction         start="trim(" end=")" contains=ALL
+syn region mysqlFunction         start="ucase(" end=")" contains=ALL
+syn region mysqlFunction         start="unique_users(" end=")" contains=ALL
+syn region mysqlFunction         start="unix_timestamp(" end=")" contains=ALL
+syn region mysqlFunction         start="upper(" end=")" contains=ALL
+syn region mysqlFunction         start="user(" end=")" contains=ALL
+syn region mysqlFunction         start="version(" end=")" contains=ALL
+syn region mysqlFunction         start="week(" end=")" contains=ALL
+syn region mysqlFunction         start="weekday(" end=")" contains=ALL
+syn region mysqlFunction         start="yearweek(" end=")" contains=ALL
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -279,16 +279,16 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  HiLink mysqlKeyword		 Statement
-  HiLink mysqlSpecial		 Special
-  HiLink mysqlString		 String
-  HiLink mysqlNumber		 Number
-  HiLink mysqlVariable		 Identifier
-  HiLink mysqlComment		 Comment
-  HiLink mysqlType		 Type
-  HiLink mysqlOperator		 Statement
-  HiLink mysqlFlow		 Statement
-  HiLink mysqlFunction		 Function
+  HiLink mysqlKeyword            Statement
+  HiLink mysqlSpecial            Special
+  HiLink mysqlString             String
+  HiLink mysqlNumber             Number
+  HiLink mysqlVariable           Identifier
+  HiLink mysqlComment            Comment
+  HiLink mysqlType               Type
+  HiLink mysqlOperator           Statement
+  HiLink mysqlFlow               Statement
+  HiLink mysqlFunction           Function
 
   delcommand HiLink
 endif
diff --git a/runtime/syntax/phtml.vim b/runtime/syntax/phtml.vim
index 2ff6dd9..646129a 100644
--- a/runtime/syntax/phtml.vim
+++ b/runtime/syntax/phtml.vim
@@ -1,244 +1,6 @@
 " Vim syntax file
-" Language:	phtml PHP 2.0
-" Maintainer:	Lutz Eymers <ixtab@polzin.com>
-" URL:		http://www.isp.de/data/phtml.vim
-" Email:	Subject: send syntax_vim.tgz
-" Last change:	2003 May 11
-"
-" Options	phtml_sql_query = 1 for SQL syntax highligthing inside strings
-"		phtml_minlines = x     to sync at least x lines backwards
+" PHTML used to be the filetype for PHP 2.0.  Now everything is PHP.
 
-" 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")
-  finish
+if !exists("b:current_syntax")
+  runtime! syntax/php.vim
 endif
-
-if !exists("main_syntax")
-  let main_syntax = 'phtml'
-endif
-
-if version < 600
-  so <sfile>:p:h/html.vim
-else
-  runtime! syntax/html.vim
-  unlet b:current_syntax
-endif
-
-syn cluster htmlPreproc add=phtmlRegionInsideHtmlTags
-
-if exists( "phtml_sql_query")
-  if phtml_sql_query == 1
-    syn include @phtmlSql <sfile>:p:h/sql.vim
-    unlet b:current_syntax
-  endif
-endif
-syn cluster phtmlSql remove=sqlString,sqlComment
-
-syn case match
-
-" Env Variables
-syn keyword phtmlEnvVar SERVER_SOFTWARE SERVER_NAME SERVER_URL GATEWAY_INTERFACE   contained
-syn keyword phtmlEnvVar SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO  contained
-syn keyword phtmlEnvVar PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST contained
-syn keyword phtmlEnvVar REMOTE_ADDR AUTH_TYPE REMOTE_USER CONTEN_TYPE  contained
-syn keyword phtmlEnvVar CONTENT_LENGTH HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE  contained
-syn keyword phtmlEnvVar HTTP_ACCECT HTTP_USER_AGENT HTTP_IF_MODIFIED_SINCE  contained
-syn keyword phtmlEnvVar HTTP_FROM HTTP_REFERER contained
-syn keyword phtmlEnvVar PHP_SELF contained
-
-syn case ignore
-
-" Internal Variables
-syn keyword phtmlIntVar phperrmsg php_self contained
-
-" Comment
-syn region phtmlComment		start="/\*" end="\*/"  contained contains=phtmlTodo
-
-" Function names
-syn keyword phtmlFunctions  Abs Ada_Close Ada_Connect Ada_Exec Ada_FetchRow contained
-syn keyword phtmlFunctions  Ada_FieldName Ada_FieldNum Ada_FieldType contained
-syn keyword phtmlFunctions  Ada_FreeResult Ada_NumFields Ada_NumRows Ada_Result contained
-syn keyword phtmlFunctions  Ada_ResultAll AddSlashes ASort BinDec Ceil ChDir contained
-syn keyword phtmlFunctions  AdaGrp ChMod ChOwn Chop Chr ClearStack ClearStatCache contained
-syn keyword phtmlFunctions  closeDir CloseLog Cos Count Crypt Date dbList  contained
-syn keyword phtmlFunctions  dbmClose dbmDelete dbmExists dbmFetch dbmFirstKey contained
-syn keyword phtmlFunctions  dbmInsert dbmNextKey dbmOpen dbmReplace DecBin DecHex contained
-syn keyword phtmlFunctions  DecOct doubleval Echo End ereg eregi ereg_replace contained
-syn keyword phtmlFunctions  eregi_replace EscapeShellCmd Eval Exec Exit Exp contained
-syn keyword phtmlFunctions  fclose feof fgets fgetss File fileAtime fileCtime contained
-syn keyword phtmlFunctions  fileGroup fileInode fileMtime fileOwner filePerms contained
-syn keyword phtmlFunctions  fileSize fileType Floor Flush fopen fputs FPassThru contained
-syn keyword phtmlFunctions  fseek fsockopen ftell getAccDir GetEnv getHostByName contained
-syn keyword phtmlFunctions  getHostByAddr GetImageSize getLastAcess contained
-syn keyword phtmlFunctions  getLastbrowser getLastEmail getLastHost getLastMod contained
-syn keyword phtmlFunctions  getLastref getLogDir getMyInode getMyPid getMyUid contained
-syn keyword phtmlFunctions  getRandMax getStartLogging getToday getTotal GetType contained
-syn keyword phtmlFunctions  gmDate Header HexDec HtmlSpecialChars ImageArc contained
-syn keyword phtmlFunctions  ImageChar ImageCharUp IamgeColorAllocate  contained
-syn keyword phtmlFunctions  ImageColorTransparent ImageCopyResized ImageCreate contained
-syn keyword phtmlFunctions  ImageCreateFromGif ImageDestroy ImageFill contained
-syn keyword phtmlFunctions  ImageFilledPolygon ImageFilledRectangle contained
-syn keyword phtmlFunctions  ImageFillToBorder ImageGif ImageInterlace ImageLine contained
-syn keyword phtmlFunctions  ImagePolygon ImageRectangle ImageSetPixel  contained
-syn keyword phtmlFunctions  ImageString ImageStringUp ImageSX ImageSY Include contained
-syn keyword phtmlFunctions  InitSyslog intval IsSet Key Link LinkInfo Log Log10 contained
-syn keyword phtmlFunctions  LosAs Mail Max Md5 mi_Close mi_Connect mi_DBname contained
-syn keyword phtmlFunctions  mi_Exec mi_FieldName mi_FieldNum mi_NumFields contained
-syn keyword phtmlFunctions  mi_NumRows mi_Result Microtime Min MkDir MkTime msql contained
-syn keyword phtmlFunctions  msql_connect msql_CreateDB msql_dbName msql_DropDB contained
-syn keyword phtmlFunctions  msqlFieldFlags msql_FieldLen msql_FieldName contained
-syn keyword phtmlFunctions  msql_FieldType msql_FreeResult msql_ListDBs contained
-syn keyword phtmlFunctions  msql_Listfields msql_ListTables msql_NumFields contained
-syn keyword phtmlFunctions  msql_NumRows msql_RegCase msql_Result msql_TableName contained
-syn keyword phtmlFunctions  mysql mysql_affected_rows mysql_close mysql_connect contained
-syn keyword phtmlFunctions  mysql_CreateDB mysql_dbName mysqlDropDB  contained
-syn keyword phtmlFunctions  mysql_FieldFlags mysql_FieldLen mysql_FieldName contained
-syn keyword phtmlFunctions  mysql_FieldType mysql_FreeResult mysql_insert_id contained
-syn keyword phtmlFunctions  mysql_listDBs mysql_Listfields mysql_ListTables contained
-syn keyword phtmlFunctions  mysql_NumFields mysql_NumRows mysql_Result  contained
-syn keyword phtmlFunctions  mysql_TableName Next OctDec openDir OpenLog  contained
-syn keyword phtmlFunctions  Ora_Bind Ora_Close Ora_Commit Ora_CommitOff contained
-syn keyword phtmlFunctions  Ora_CommitOn Ora_Exec Ora_Fetch Ora_GetColumn contained
-syn keyword phtmlFunctions  Ora_Logoff Ora_Logon Ora_Parse Ora_Rollback Ord  contained
-syn keyword phtmlFunctions  Parse_str PassThru pclose pg_Close pg_Connect contained
-syn keyword phtmlFunctions  pg_DBname pg_ErrorMessage pg_Exec pg_FieldName contained
-syn keyword phtmlFunctions  pg_FieldPrtLen pg_FieldNum pg_FieldSize  contained
-syn keyword phtmlFunctions  pg_FieldType pg_FreeResult pg_GetLastOid pg_Host contained
-syn keyword phtmlFunctions  pg_NumFields pg_NumRows pg_Options pg_Port  contained
-syn keyword phtmlFunctions  pg_Result pg_tty phpInfo phpVersion popen pos pow contained
-syn keyword phtmlFunctions  Prev PutEnv QuoteMeta Rand readDir ReadFile ReadLink contained
-syn keyword phtmlFunctions  reg_Match reg_replace reg_Search Rename Reset return  contained
-syn keyword phtmlFunctions  rewind rewindDir RmDir rSort SetCookie SetErrorReporting contained
-syn keyword phtmlFunctions  SetLogging SetShowInfo SetType shl shr Sin Sleep contained
-syn keyword phtmlFunctions  Solid_Close Solid_Connect Solid_Exec Solid_FetchRow contained
-syn keyword phtmlFunctions  Solid_FieldName Solid_FieldNum Solid_FreeResult  contained
-syn keyword phtmlFunctions  Solid_NumFields Solid_NumRows Solid_Result Sort contained
-syn keyword phtmlFunctions  Spundtex Sprintf Sqrt Srand strchr strtr  contained
-syn keyword phtmlFunctions  StripSlashes strlen strchr strstr strtok strtolower contained
-syn keyword phtmlFunctions  strtoupper strval substr sybSQL_CheckConnect contained
-syn keyword phtmlFunctions  sybSQL_DBUSE sybSQL_Connect sybSQL_Exit contained
-syn keyword phtmlFunctions  sybSQL_Fieldname sybSQL_GetField sybSQL_IsRow  contained
-syn keyword phtmlFunctions  sybSQL_NextRow sybSQL_NumFields sybSQL_NumRows contained
-syn keyword phtmlFunctions  sybSQL_Query sybSQL_Result sybSQL_Result sybSQL_Seek contained
-syn keyword phtmlFunctions  Symlink syslog System Tan TempNam Time Umask UniqId contained
-syn keyword phtmlFunctions  Unlink Unset UrlDecode UrlEncode USleep Virtual contained
-syn keyword phtmlFunctions  SecureVar contained
-
-" Conditional
-syn keyword phtmlConditional  if else elseif endif switch endswitch contained
-
-" Repeat
-syn keyword phtmlRepeat  while endwhile contained
-
-" Repeat
-syn keyword phtmlLabel  case default contained
-
-" Statement
-syn keyword phtmlStatement  break return continue exit contained
-
-" Operator
-syn match phtmlOperator  "[-=+%^&|*!]" contained
-syn match phtmlOperator  "[-+*/%^&|]=" contained
-syn match phtmlOperator  "/[^*]"me=e-1 contained
-syn match phtmlOperator  "\$" contained
-syn match phtmlRelation  "&&" contained
-syn match phtmlRelation  "||" contained
-syn match phtmlRelation  "[!=<>]=" contained
-syn match phtmlRelation  "[<>]" contained
-
-" Identifier
-syn match  phtmlIdentifier "$\h\w*" contained contains=phtmlEnvVar,phtmlIntVar,phtmlOperator
-
-
-" Include
-syn keyword phtmlInclude  include contained
-
-" Definesag
-syn keyword phtmlDefine  Function contained
-
-" String
-syn region phtmlString keepend matchgroup=None start=+"+ skip=+\\\\\|\\"+  end=+"+ contains=phtmlIdentifier,phtmlSpecialChar,@phtmlSql contained
-
-" Number
-syn match phtmlNumber  "-\=\<\d\+\>" contained
-
-" Float
-syn match phtmlFloat  "\(-\=\<\d+\|-\=\)\.\d\+\>" contained
-
-" SpecialChar
-syn match phtmlSpecialChar "\\[abcfnrtyv\\]" contained
-syn match phtmlSpecialChar "\\\d\{3}" contained contains=phtmlOctalError
-syn match phtmlSpecialChar "\\x[0-9a-fA-F]\{2}" contained
-
-syn match phtmlOctalError "[89]" contained
-
-
-syn match phtmlParentError "[)}\]]" contained
-
-" Todo
-syn keyword phtmlTodo TODO Todo todo contained
-
-" Parents
-syn cluster phtmlInside contains=phtmlComment,phtmlFunctions,phtmlIdentifier,phtmlConditional,phtmlRepeat,phtmlLabel,phtmlStatement,phtmlOperator,phtmlRelation,phtmlString,phtmlNumber,phtmlFloat,phtmlSpecialChar,phtmlParent,phtmlParentError,phtmlInclude
-
-syn cluster phtmlTop contains=@phtmlInside,phtmlInclude,phtmlDefine,phtmlParentError,phtmlTodo
-syn region phtmlParent	matchgroup=Delimiter start="(" end=")" contained contains=@phtmlInside
-syn region phtmlParent	matchgroup=Delimiter start="{" end="}" contained contains=@phtmlInside
-syn region phtmlParent	matchgroup=Delimiter start="\[" end="\]" contained contains=@phtmlInside
-
-syn region phtmlRegion keepend matchgroup=Delimiter start="<?" skip=+(.*>.*)\|".\{-}>.\{-}"\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop
-syn region phtmlRegionInsideHtmlTags keepend matchgroup=Delimiter start="<?" skip=+(.*>.*)\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop contained
-
-" sync
-if exists("phtml_minlines")
-  exec "syn sync minlines=" . phtml_minlines
-else
-  syn sync minlines=100
-endif
-
-" 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_phtml_syn_inits")
-  if version < 508
-    let did_phtml_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
-
-  HiLink phtmlComment		Comment
-  HiLink phtmlString		String
-  HiLink phtmlNumber		Number
-  HiLink phtmlFloat		Float
-  HiLink phtmlIdentifier	Identifier
-  HiLink phtmlIntVar		Identifier
-  HiLink phtmlEnvVar		Identifier
-  HiLink phtmlFunctions		Function
-  HiLink phtmlRepeat		Repeat
-  HiLink phtmlConditional	Conditional
-  HiLink phtmlLabel		Label
-  HiLink phtmlStatement		Statement
-  HiLink phtmlType		Type
-  HiLink phtmlInclude		Include
-  HiLink phtmlDefine		Define
-  HiLink phtmlSpecialChar	SpecialChar
-  HiLink phtmlParentError	Error
-  HiLink phtmlOctalError	Error
-  HiLink phtmlTodo		Todo
-  HiLink phtmlOperator		Operator
-  HiLink phtmlRelation		Operator
-
-  delcommand HiLink
-endif
-
-let b:current_syntax = "phtml"
-
-if main_syntax == 'phtml'
-  unlet main_syntax
-endif
-
-" vim: ts=8
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index 7840f7c..3a9b68d 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Quake[1-3] configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2007-06-17
 "               quake_is_quake1 - the syntax is to be used for quake1 configs
 "               quake_is_quake2 - the syntax is to be used for quake2 configs
 "               quake_is_quake3 - the syntax is to be used for quake3 configs
@@ -14,7 +14,7 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-setlocal iskeyword=@,48-57,+,-,_
+setlocal iskeyword+=-,+
 
 syn keyword quakeTodo         contained TODO FIXME XXX NOTE
 
diff --git a/runtime/syntax/rexx.vim b/runtime/syntax/rexx.vim
index 179e453..b4d0732 100644
--- a/runtime/syntax/rexx.vim
+++ b/runtime/syntax/rexx.vim
@@ -4,6 +4,7 @@
 " Last Change:  2005 Dez  9, added some <http://www.ooRexx.org>-coloring,
 "                            line comments, do *over*, messages, directives,
 "                            highlighting classes, methods, routines and requires
+"               2007 Oct 17, added support for new ooRexx 3.2 features
 "               Rony G. Flatscher <rony.flatscher@wu-wien.ac.at>
 "
 " URL:		http://www.geulig.de/vim/rexx.vim
@@ -27,122 +28,194 @@
 setlocal iskeyword+=?
 
 " ---rgf, position important: must be before comments etc. !
-syn match rexxOperator "[-=|\/\\\+\*\[\],;<>&\~]"
+syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]"
 
-syn match rexxIdentifier        "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
-syn match rexxEnvironmentSymbol "\<\.\+\([a-zA-Z0-9._?!]\)*\>"
-
+" rgf syn match rexxIdentifier        "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
+syn match rexxIdentifier        "\<\K\k*\>"
+syn match rexxEnvironmentSymbol "\<\.\k\+\>"
 
 " A Keyword is the first symbol in a clause.  A clause begins at the start
 " of a line or after a semicolon.  THEN, ELSE, OTHERWISE, and colons are always
 " followed by an implied semicolon.
-syn match rexxClause "\(^\|;\|:\|then \|else \|otherwise \)\s*\w\+" contains=ALLBUT,rexxParse2,rexxRaise2
-
+syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2
 
 " Considered keywords when used together in a phrase and begin a clause
-syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\=\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>"
-syn match rexxParse2 "\<with\>" contained containedin=rexxParse
-
+syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\?\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>" containedin=rexxClause contains=rexxParse2
+syn match rexxParse2 "\<with\>" containedin=rexxParse
 
 syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
-syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>"
-syn match rexxKeyword contained "\<procedure\(\s*expose\)\=\>"
-syn match rexxKeyword contained "\<do\>\(\s*forever\)\=\>"
-syn match rexxKeyword contained "\<use\>\s*\<arg\>"
+syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>"
+syn match rexxKeyword contained "\<procedure\(\s*expose\)\?\>"
+
+syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>"
+syn match rexxKeyword contained "\<use\>\s*\(strict\s*\)\?\<arg\>"
 
 " Another keyword phrase, separated to aid highlighting in rexxFunction
-syn match rexxKeyword contained "\<signal\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|lostdigits\|nomethod\|nostring\|notready\|novalue\|syntax\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
-syn match rexxKeyword2 contained "\<call\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|notready\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
+syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)"
+syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal
 
+syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)"
+
+" hilite label given after keyword "name"
+syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling
+" hilite condition name (serves as label)
+syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling
+" user exception handling, hilite user defined name
+syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling
 
 " Considered keywords when they begin a clause
-syn match rexxKeyword contained "\<\(arg\|do\|drop\|end\|exit\|expose\|forward\|if\|interpret\|iterate\|leave\|nop\)\>"
-syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
+syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>"
+syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
+
+" Conditional keywords starting a new statement
+syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements
 
 " Conditional phrases
-syn match rexxConditional  "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\( \|\s*$\)"
-syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\>"
+syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion
 
 " must be after Conditional phrases!
-syn match rexxKeyword ".*\<\(then\|else\)\s*\<do\>"
+syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\<over\>\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)" 
+
+" color label's name
+syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion
+
+" make sure control variable is normal
+syn match rexxControlVariable        "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\<over\>" containedin=doLoopSelectLabelRegion
+
+" make sure control variable assignment is normal
+syn match rexxStartValueAssignment       "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\<to\>" containedin=doLoopSelectLabelRegion
+
+" highlight label name
+syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2
+syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion
+
+" Guard statement
+syn match rexxGuard "\(^\|;\|:\)\s*\<guard\>\s\+\<\(on\|off\)\>"
+
+" Trace statement
+syn match rexxTrace "\(^\|;\|:\)\s*\<trace\>\s\+\<\K\k*\>"
 
 " Raise statement
-syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\="
-syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|return\)\>" contained containedin=rexxRaise
+syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
+syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise
 
-" Forward statement keywords
-syn match rexxForward  "\(^\|;\|:\)\<forward\>\s*"
-syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained containedin=rexxForward
+" Forward statement
+syn match rexxForward  "\(^\|;\|:\)\<forward\>\s*" contains=rexxForward2
+syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained
 
 " Functions/Procedures
-syn match rexxFunction	"\<\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword,rexxIdentifier
-syn match rexxFunction 	"\<\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>("me=e-1
-syn match rexxFunction	"\<call\s\+\k\+\>"  contains=rexxKeyword2
+syn match rexxFunction 	"\<\<[a-zA-Z\!\?_]\k*\>("me=e-1
 syn match rexxFunction "[()]"
 
 " String constants
-syn region rexxString	  start=+"+ skip=+""+ end=+"\(x\|b\)\=+ oneline
-syn region rexxString	  start=+'+ skip=+''+ end=+'\(x\|b\)\=+ oneline
+syn region rexxString	start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline
+syn region rexxString	start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline
 
-" Catch errors caused by wrong parenthesis
 syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword
+" Catch errors caused by wrong parenthesis
 syn match rexxParenError	 ")"
 syn match rexxInParen		"[\\[\\]{}]"
 
 " Comments
-syn region rexxComment		start="/\*" end="\*/" contains=rexxTodo,rexxComment
-syn match  rexxCommentError	"\*/"
-syn match  rexxLineComment       /--.*/
+syn region	rexxComment	start="/\*"	end="\*/" contains=rexxTodo,rexxComment
+syn match	rexxCommentError "\*/"
+syn region	rexxLineComment	start="--"	end="\_$" oneline
+
+" Highlight User Labels
+" check for labels between comments, labels stated in a statement in the middle of a line
+syn match rexxLabel		 "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment
 
 syn keyword rexxTodo contained	TODO FIXME XXX
 
-
 " ooRexx messages
 syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1
 syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator
 
-" Highlight User Labels
-syn match rexxLabel		 "^\s*\k*\s*:"me=e-1
-
+" line continuations, take care of (line-)comments after it
 syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$"
+
 " the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one
-syn match rexxLineContinue "-\ze\(\s+--.*\|\s*\/\*.*\)*$"
+syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$"
 
 " Special Variables
 syn keyword rexxSpecialVariable  sigl rc result self super
+syn keyword rexxSpecialVariable  .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque
 
 " Constants
-syn keyword rexxConst .true .false .nil
+syn keyword rexxConst .true .false .nil .endOfLine .line
 
-" ooRexx builtin classes, first define dot to be o.k. in keywords
-syn keyword rexxBuiltinClass .object .class .method .message
-syn keyword rexxBuiltinClass .monitor .alarm
-syn keyword rexxBuiltinClass .stem .stream .string
-syn keyword rexxBuiltinClass .mutablebuffer
-syn keyword rexxBuiltinClass .array .list .queue .directory .table .set
-syn keyword rexxBuiltinClass .relation .bag .supplier .regularExpressions
+syn match rexxNumber "\(-\|+\)\?\s*\zs\<\(\d\+\.\?\|\d*\.\d\+\(E\(+\|-\)\d\{2,2}\)\?\)\?\>"
+
+" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords
+syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator
+syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue
+syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator
+syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .InputOutputStream
+syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection
+syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object
+syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Properties .Queue
+syn keyword rexxBuiltinClass .Relation .RexxQueue .Set .SetCollection .Stem .Stream
+syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan
 
 " Windows-only classes
-syn keyword rexxBuiltinClass .OLEObject .MenuObject .WindowsClipboard .WindowsEventLog
-syn keyword rexxBuiltinClass .WindowsManager .WindowObject .WindowsProgramManager
+syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl
+syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl
+syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog
+syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice
+syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox
+syn keyword rexxBuiltinClass .MultiListChoice .PasswordBox .PlainBaseDialog .PlainUserDialog
+syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton
+syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl
+syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage
+syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase
+syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard
+syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry
 
+" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched!
+syn region rexxClassDirective     start="::\s*class\s*"ms=e+1    end="\ze\(\s\|;\|$\)"
+syn region rexxMethodDirective    start="::\s*method\s*"ms=e+1   end="\ze\(\s\|;\|$\)"
+syn region rexxRequiresDirective  start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+syn region rexxRoutineDirective   start="::\s*routine\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
+syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
 
-" ooRexx directives, ---rgf location important, otherwise directives in top of
-" file not matched!
-syn region rexxClass    start="::\s*class\s*"ms=e+1    end="\ze\(\s\|;\|$\)"
-syn region rexxMethod   start="::\s*method\s*"ms=e+1   end="\ze\(\s\|;\|$\)"
-syn region rexxRequires start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
-syn region rexxRoutine  start="::\s*routine\s*"ms=e+1  end="\ze\(\s\|;\|$\)"
+syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+"  end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective keepend
 
-syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+"  end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClass,rexxMethod,rexxRoutine,rexxRequires keepend
+syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1
+syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze" 
 
+" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the
+" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work)
+" attempt: just colorize the parenthesis in matching colors, keep content
+"          transparent to keep the formatting already done to it!
+" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2
+" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained
+" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained
+" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained
+" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained
 
+" this will colorize the entire region, removing any colorizing already done!
+" syn region par1 matchgroup=par1 start="(" end=")" contains=par2
+" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained
+" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained
+" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained
+" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained
 
-if !exists("rexx_minlines")
-"  let rexx_minlines = 10
-  let rexx_minlines = 500
-endif
-exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
+hi par1 ctermfg=red 		guifg=red
+hi par2 ctermfg=blue 		guifg=blue
+hi par3 ctermfg=darkgreen 	guifg=darkgreen
+hi par4 ctermfg=darkyellow	guifg=darkyellow
+hi par5 ctermfg=darkgrey 	guifg=darkgrey
+
+" line continuation (trailing comma or single dash)
+syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$"
+
+" if !exists("rexx_minlines")
+"   let rexx_minlines = 500
+" endif
+" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
+
+" always scan from start, PCs are powerful enough for that in 2007 !
+exec "syn sync fromstart"
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -155,6 +228,20 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
+  " make binary and hex strings stand out
+  hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold
+
+  HiLink rexxLabel2		Function
+  HiLink doLoopSelectLabelRegion	rexxKeyword
+  HiLink endIterateLeaveLabelRegion	rexxKeyword
+  HiLink rexxLoopKeywords	rexxKeyword " Todo
+
+  HiLink rexxNumber		Normal	
+"  HiLink rexxIdentifier		DiffChange
+
+  HiLink rexxRegularCallSignal	Statement
+  HiLink rexxExceptionHandling	Statement
+
   HiLink rexxLabel		Function
   HiLink rexxCharacter		Character
   HiLink rexxParenError		rexxError
@@ -162,7 +249,8 @@
   HiLink rexxCommentError	rexxError
   HiLink rexxError		Error
   HiLink rexxKeyword		Statement
-  HiLink rexxKeyword2		rexxKeyword
+  HiLink rexxKeywordStatements	Statement  
+
   HiLink rexxFunction		Function
   HiLink rexxString		String
   HiLink rexxComment		Comment
@@ -172,15 +260,16 @@
 
   HiLink rexxOperator		Operator
   HiLink rexxMessageOperator	rexxOperator
-  HiLink rexxLineComment	RexxComment
+  HiLink rexxLineComment	Comment
 
   HiLink rexxLineContinue	WildMenu
 
   HiLink rexxDirective		rexxKeyword
-  HiLink rexxClass              Type
-  HiLink rexxMethod             rexxFunction
-  HiLink rexxRequires           Include
-  HiLink rexxRoutine            rexxFunction
+  HiLink rexxClassDirective	Type
+  HiLink rexxMethodDirective	rexxFunction
+  HiLink rexxAttributeDirective	rexxFunction
+  HiLink rexxRequiresDirective	Include
+  HiLink rexxRoutineDirective	rexxFunction
 
   HiLink rexxConst		Constant
   HiLink rexxTypeSpecifier	Type
@@ -192,6 +281,9 @@
   HiLink rexxParse              rexxKeyword
   HiLink rexxParse2             rexxParse
 
+  HiLink rexxGuard              rexxKeyword
+  HiLink rexxTrace              rexxKeyword
+
   HiLink rexxRaise              rexxKeyword
   HiLink rexxRaise2             rexxRaise
 
diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim
index 1f6460f..07eb63d 100644
--- a/runtime/syntax/snobol4.vim
+++ b/runtime/syntax/snobol4.vim
@@ -2,8 +2,12 @@
 " Language:     SNOBOL4
 " Maintainer:   Rafal Sulejman <rms@poczta.onet.pl>
 " Site: http://rms.republika.pl/vim/syntax/snobol4.vim
-" Last change:  2006 may 1
+" Last change:  2006 may 10
 " Changes: 
+" - strict snobol4 mode (set snobol4_strict_mode to activate)
+" - incorrect HL of dots in strings corrected
+" - incorrect HL of dot-variables in parens corrected 
+" - one character labels weren't displayed correctly.
 " - nonexistent Snobol4 keywords displayed as errors.
 
 " For version 5.x: Clear all syntax items
@@ -15,40 +19,54 @@
 endif
 
 syntax case ignore
-" Vanilla Snobol4 keywords
-syn keyword     snobol4Keyword   any apply arb arbno arg array
-syn keyword     snobol4Keyword   break
-syn keyword     snobol4Keyword   char clear code collect convert copy
-syn keyword     snobol4Keyword   data datatype date define detach differ dump dupl
-syn keyword     snobol4Keyword   endfile eq eval
-syn keyword     snobol4Keyword   field
-syn keyword     snobol4Keyword   ge gt ident
-syn keyword     snobol4Keyword   input integer item
-syn keyword     snobol4Keyword   le len lgt local lpad lt
-syn keyword     snobol4Keyword   ne notany
-syn keyword     snobol4Keyword   opsyn output
-syn keyword     snobol4Keyword   pos prototype
-syn keyword     snobol4Keyword   remdr replace rpad rpos rtab
-syn keyword     snobol4Keyword   size span stoptr
-syn keyword     snobol4Keyword   tab table time trace trim terminal
-syn keyword     snobol4Keyword   unload
-syn keyword     snobol4Keyword   value
-" Spitbol keywords
-" CSNOBOL keywords
-syn keyword     snobol4Keyword   sset
 
-syn region      snobol4String       matchgroup=Quote start=+"+ skip=+\\"+ end=+"+
-syn region      snobol4String       matchgroup=Quote start=+'+ skip=+\\'+ end=+'+
-syn match       snobol4Statement    "^-[^ ][^ ]*"
-syn match       snobol4Comment      "^\*.*$"
-syn match       snobol4Comment      ";\*.*$"
-syn match       snobol4Constant     "[^a-z]\.[a-z][a-z0-9\-]*"
-syn region      snobol4Goto        start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
+" Snobol4 keywords
+syn keyword     snobol4Keyword      any apply arb arbno arg array
+syn keyword     snobol4Keyword      break
+syn keyword     snobol4Keyword      char clear code collect convert copy
+syn keyword     snobol4Keyword      data datatype date define detach differ dump dupl
+syn keyword     snobol4Keyword      endfile eq eval
+syn keyword     snobol4Keyword      field
+syn keyword     snobol4Keyword      ge gt ident
+syn keyword     snobol4Keyword      input integer item
+syn keyword     snobol4Keyword      le len lgt local lpad lt
+syn keyword     snobol4Keyword      ne notany
+syn keyword     snobol4Keyword      opsyn output
+syn keyword     snobol4Keyword      pos prototype
+syn keyword     snobol4Keyword      remdr replace rpad rpos rtab rewind
+syn keyword     snobol4Keyword      size span stoptr
+syn keyword     snobol4Keyword      tab table time trace trim terminal
+syn keyword     snobol4Keyword      unload
+syn keyword     snobol4Keyword      value
+
+" CSNOBOL keywords
+syn keyword     snobol4ExtKeyword   breakx
+syn keyword     snobol4ExtKeyword   char chop
+syn keyword     snobol4ExtKeyword   date delete
+syn keyword     snobol4ExtKeyword   exp
+syn keyword     snobol4ExtKeyword   freeze function
+syn keyword     snobol4ExtKeyword   host
+syn keyword     snobol4ExtKeyword   io_findunit
+syn keyword     snobol4ExtKeyword   label lpad leq lge lle llt lne log
+syn keyword     snobol4ExtKeyword   ord
+syn keyword     snobol4ExtKeyword   reverse rpad rsort rename
+syn keyword     snobol4ExtKeyword   serv_listen sset set sort sqrt substr
+syn keyword     snobol4ExtKeyword   thaw
+syn keyword     snobol4ExtKeyword   vdiffer
+
+syn region      snobol4String       matchgroup=Quote start=+"+ end=+"+
+syn region      snobol4String       matchgroup=Quote start=+'+ end=+'+
+syn match       snobol4BogusStatement    "^-[^ ][^ ]*"
+syn match       snobol4Statement    "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)"
+syn match       snobol4Constant     /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
+syn region      snobol4Goto         start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
 syn match       snobol4Number       "\<\d*\(\.\d\d*\)*\>" 
-syn match       snobol4BogusSysVar       "&\w\{1,}"
+syn match       snobol4BogusSysVar  "&\w\{1,}"
 syn match       snobol4SysVar       "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)"
-syn match       snobol4Label        "^[^-\.\+ \t]\S\{1,}"
-"
+syn match       snobol4ExtSysVar    "&\(gtrace\|line\|file\|lastline\|lastfile\)"
+syn match       snobol4Label        "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
+syn match       snobol4Comment      "\(^\|;\)\([\*\|!;#].*$\)"
+
 " Parens matching
 syn cluster     snobol4ParenGroup   contains=snobol4ParenError
 syn region      snobol4Paren        transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket
@@ -58,8 +76,7 @@
 syn match       snobol4ErrInBracket display contained "[){}]\|<%\|%>"
 
 " optional shell shebang line
-syn match       snobol4Comment    "^\#\!.*$"
-
+" syn match       snobol4Comment      "^\#\!.*$"
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -80,19 +97,26 @@
   HiLink snobol4Number          Number
   HiLink snobol4Error           Error
   HiLink snobol4Statement       PreProc
+  HiLink snobol4BogusStatement  snobol4Error
   HiLink snobol4String          String
   HiLink snobol4Comment         Comment
   HiLink snobol4Special         Special
   HiLink snobol4Todo            Todo
-  HiLink snobol4Keyword         Statement
-  HiLink snobol4Function        Statement
   HiLink snobol4Keyword         Keyword
+  HiLink snobol4Function        Function
   HiLink snobol4MathsOperator   Operator
   HiLink snobol4ParenError      snobol4Error
   HiLink snobol4ErrInParen      snobol4Error
   HiLink snobol4ErrInBracket    snobol4Error
   HiLink snobol4SysVar          Keyword
   HiLink snobol4BogusSysVar     snobol4Error
+  if exists("snobol4_strict_mode")
+    HiLink snobol4ExtSysVar       WarningMsg
+    HiLink snobol4ExtKeyword      WarningMsg
+  else
+    HiLink snobol4ExtSysVar       snobol4SysVar
+    HiLink snobol4ExtKeyword      snobol4Keyword
+  endif
 
   delcommand HiLink
 endif
diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim
index 311d9ee..7ba20f3 100644
--- a/runtime/syntax/sql.vim
+++ b/runtime/syntax/sql.vim
@@ -36,4 +36,4 @@
 " Source the appropriate file
 exec 'runtime syntax/'.filename.'.vim'
 
-" vim:sw=4:ff=unix:
+" vim:sw=4:
diff --git a/runtime/syntax/yacc.vim b/runtime/syntax/yacc.vim
index aef02b5..d4bd019 100644
--- a/runtime/syntax/yacc.vim
+++ b/runtime/syntax/yacc.vim
@@ -1,14 +1,17 @@
 " Vim syntax file
 " Language:	Yacc
-" Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Feb 22, 2006
-" Version:	4
+" Maintainer:	Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+" Last Change:	Jan 09, 2008
+" Version:	5
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
-" Option:
+" Options: {{{1
 "   g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
+"   g:yacc_minlines : see :help :he syn-sync-minlines -- default 50
+"   g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200
 
-" For version 5.x: Clear all syntax items
+" ---------------------------------------------------------------------
+" For version 5.x: Clear all syntax items {{{1
 " For version 6.x: Quit when a syntax file was already loaded
 if version < 600
   syntax clear
@@ -16,7 +19,8 @@
   finish
 endif
 
-" Read the C syntax to start with
+" ---------------------------------------------------------------------
+" Read the C syntax to start with {{{1
 if version >= 600
   if exists("g:yacc_uses_cpp")
     runtime! syntax/cpp.vim
@@ -29,11 +33,13 @@
   so <sfile>:p:h/c.vim
 endif
 
-" Clusters
+" ---------------------------------------------------------------------
+" Clusters {{{1
 syn cluster	yaccActionGroup	contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError
 syn cluster	yaccUnionGroup	contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly
 
-" Yacc stuff
+" ---------------------------------------------------------------------
+" Yacc stuff {{{1
 syn match	yaccDelim	"^\s*[:|;]"
 syn match	yaccOper	"@\d\+"
 
@@ -49,17 +55,32 @@
 syn match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt
 syn match	yaccDefinition	"^[A-Za-z][A-Za-z0-9_]*\_s*:"
 
-" special Yacc separators
+" ---------------------------------------------------------------------
+" special Yacc separators {{{1
 syn match	yaccSectionSep	"^[ \t]*%%"
 syn match	yaccSep	"^[ \t]*%{"
 syn match	yaccSep	"^[ \t]*%}"
 
-" I'd really like to highlight just the outer {}.  Any suggestions???
+" ---------------------------------------------------------------------
+" I'd really like to highlight just the outer {}.  Any suggestions??? {{{1
 syn match	yaccCurlyError	"[{}]"
 syn region	yaccAction	matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup
 
+" ---------------------------------------------------------------------
+" Yacc synchronization: {{{1
+if exists("g:yacc_maxlines")
+ exe "syn sync maxlines=".g:yacc_maxlines
+else
+ syn sync maxlines=200
+endif
+if exists("g:yacc_minlines")
+ exe "syn sync minlines=".g:yacc_minlines
+else
+ syn sync minlines=50
+endif
 
-" Define the default highlighting.
+" ---------------------------------------------------------------------
+" Define the default highlighting. {{{1
 " 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_yacc_syn_inits")
@@ -70,13 +91,13 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  " Internal yacc highlighting links
+  " Internal yacc highlighting links {{{2
   HiLink yaccBrkt	yaccStmt
   HiLink yaccKey	yaccStmt
   HiLink yaccOper	yaccStmt
   HiLink yaccUnionStart	yaccKey
 
-  " External yacc highlighting links
+  " External yacc highlighting links {{{2
   HiLink yaccCurly	Delimiter
   HiLink yaccCurlyError	Error
   HiLink yaccDefinition	Function
@@ -87,12 +108,13 @@
   HiLink yaccStmt	Statement
   HiLink yaccType	Type
 
-  " since Bram doesn't like my Delimiter :|
+  " since Bram doesn't like my Delimiter :| {{{2
   HiLink Delimiter	Type
 
   delcommand HiLink
 endif
-
 let b:current_syntax = "yacc"
 
-" vim: ts=15
+" ---------------------------------------------------------------------
+"  Modelines: {{{1
+" vim: ts=15 fdm=marker
diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim
index 761e3ac..eb19eba 100644
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Zsh shell script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-08-06
+" Latest Revision:  2007-06-17
 
 if exists("b:current_syntax")
   finish
@@ -10,7 +10,7 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-setlocal iskeyword=@,48-57,_,-
+setlocal iskeyword+=-
 
 syn keyword zshTodo             contained TODO FIXME XXX NOTE