changeset 3237:91e53bcb7946

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Fri, 30 Dec 2011 13:11:27 +0100
parents 12a5ea0526b1
children 683fab13904c
files runtime/autoload/ccomplete.vim runtime/compiler/gcc.vim runtime/compiler/rst.vim runtime/doc/eval.txt runtime/doc/options.txt runtime/doc/syntax.txt runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/various.txt runtime/filetype.vim runtime/ftplugin/fortran.vim runtime/ftplugin/kwt.vim runtime/ftplugin/spec.vim runtime/indent/fortran.vim runtime/indent/gitolite.vim runtime/indent/sdl.vim runtime/indent/tex.vim runtime/syntax/abel.vim runtime/syntax/art.vim runtime/syntax/ayacc.vim runtime/syntax/basic.vim runtime/syntax/bib.vim runtime/syntax/blank.vim runtime/syntax/c.vim runtime/syntax/clean.vim runtime/syntax/clipper.vim runtime/syntax/csc.vim runtime/syntax/cupl.vim runtime/syntax/cweb.vim runtime/syntax/fortran.vim runtime/syntax/gitolite.vim runtime/syntax/java.vim runtime/syntax/kwt.vim runtime/syntax/lua.vim runtime/syntax/sdl.vim
diffstat 35 files changed, 453 insertions(+), 251 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -1,8 +1,10 @@
 " Vim completion script
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2010 Mar 23
+" Last Change:	2011 Dec 30
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 " This function is used for the 'omnifunc' option.
 function! ccomplete#Complete(findstart, base)
@@ -603,3 +605,6 @@ function! s:SearchMembers(matches, items
   endfor
   return res
 endfunc
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -9,7 +9,7 @@ endif
 let current_compiler = "gcc"
 
 let s:cpo_save = &cpo
-set cpo-=C
+set cpo&vim
 
 CompilerSet errorformat=
       \%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
--- a/runtime/compiler/rst.vim
+++ b/runtime/compiler/rst.vim
@@ -9,7 +9,7 @@ endif
 let current_compiler = "rst"
 
 let s:cpo_save = &cpo
-set cpo-=C
+set cpo&vim
 
 setlocal errorformat=
       \%f:%l:\ (%tEBUG/0)\ %m,
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2011 Dec 14
+*eval.txt*	For Vim version 7.3.  Last change: 2011 Dec 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3941,11 +3941,12 @@ line2byte({lnum})					*line2byte()*
 		Return the byte count from the start of the buffer for line
 		{lnum}.  This includes the end-of-line character, depending on
 		the 'fileformat' option for the current buffer.  The first
-		line returns 1.
+		line returns 1. 'encoding' matters, 'fileencoding' is ignored.
 		This can also be used to get the byte count for the line just
 		below the last line: >
 			line2byte(line("$") + 1)
-<		This is the file size plus one.
+<		This is the buffer size plus one.  If 'fileencoding' is empty
+		it is the file size plus one.
 		When {lnum} is invalid, or the |+byte_offset| feature has been
 		disabled at compile time, -1 is returned.
 		Also see |byte2line()|, |go| and |:goto|.
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.3.  Last change: 2011 Dec 14
+*options.txt*	For Vim version 7.3.  Last change: 2011 Dec 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5059,7 +5059,7 @@ A jump table for the options with a shor
 	respectively; see |CTRL-A| for more info on these commands.
 	alpha	If included, single alphabetical characters will be
 		incremented or decremented.  This is useful for a list with a
-		letter index a), b), etc.			*octal-number*
+		letter index a), b), etc.	  	*octal-nrformats*
 	octal	If included, numbers that start with a zero will be considered
 		to be octal.  Example: Using CTRL-A on "007" results in "010".
 	hex	If included, numbers starting with "0x" or "0X" will be
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.3.  Last change: 2011 Nov 26
+*syntax.txt*	For Vim version 7.3.  Last change: 2011 Dec 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1603,11 +1603,6 @@ which are used for the statement itself,
 strings, strings, boolean constants and types (this, super) respectively.  I
 have opted to chose another background for those statements.
 
-In order to help you write code that can be easily ported between Java and
-C++, all C++ keywords can be marked as an error in a Java program.  To
-have this add this line in your .vimrc file: >
-	:let java_allow_cpp_keywords = 0
-
 Javadoc is a program that takes special comments out of Java program files and
 creates HTML pages.  The standard configuration will highlight this HTML code
 similarly to HTML files (see |html.vim|).  You can even add Javascript
@@ -2775,7 +2770,9 @@ of specialized LaTeX commands, syntax, a
 package you'll often wish that the distributed syntax/tex.vim would support
 it.  However, clearly this is impractical.  So please consider using the
 techniques in |mysyntaxfile-add| to extend or modify the highlighting provided
-by syntax/tex.vim.
+by syntax/tex.vim.  Please consider uploading any extensions that you write,
+which typically would go in $HOME/after/syntax/tex/[pkgname].vim, to
+http://vim.sf.net/.
 
 								*tex-error*
  Tex: Excessive Error Highlighting? ~
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2011 Dec 14
+*todo.txt*      For Vim version 7.3.  Last change: 2011 Dec 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,14 +38,31 @@ Go through more coverity reports.
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
+Patch to fix crash with EXITFREE. (Dominique Pelle, 2011 Dec 20)
+
 Patch to fix "Console prompts fail to reset the console pager".
 Issue 14 on googlecode
 
 Issue 33 on googlecode: feedkeys() leaks memory.
 
+Patch for Mac using NULL pointer. (Bjorn Winckler, 2011 Dec 18)
+
 Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
 Needs more work.
 
+Issue 43: patch with new C keywords.
+
+When setting 'undofile' while the file is already loaded, but unchanged, try
+to read the undo file.  Requires computing a checksum of the text. (Andy
+Wokula)
+Patch from Christian Brabandt, 2011 Dec 22. Dec 24 with test.
+
+Patch for Vim moving to another window when resizing. (Yukihiro Nakadaira,
+2011 Dec 18)
+
+Compilation problem on z/OS, POUND is equal to '#', duplicate case.
+(Stephen Bovy, 2011 Dec 16)
+
 Once syntax and other runtime files have been fixed: add "set cp" to
 check.vim.  Use a function to run both with 'cp' and 'nocp'.
 
@@ -82,6 +99,10 @@ Patch to highlight cursor line number. (
 
 Patch for urxvt mouse support after shell command. (Issue 31)
 
+When exiting with unsaved changes, selecting an existing file in the file
+dialog, there is no dialog to ask whether the existing file should be
+overwritten. (Felipe G. Nievinski, 2011 Dec 22)
+
 7   Setting an option always sets "w_set_curswant", while this is only
     required for a few options.  Only do it for those options to avoid the
     side effect.
@@ -91,6 +112,8 @@ Patch for option in 'cino' to specify mo
 (Lech Lorens, 2011 Nov 27)
 Isn't this already possible?
 
+Patch for using objcpp file type for headers files. Issue 44.
+
 Docs fix for v:register. (Ingo Karkat, 2011 Sep 26, 27)
 v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
 
@@ -104,6 +127,9 @@ 8   ":sign unplace * file={filename}" sh
 
 Patch to add "onselected" callback for completion. (Taro Muraoka, 2011 Sep 24)
 
+Use a count before "v" and "V" to select that many characters or lines?
+(Kikyous)
+
 ":tab drop buffer.c" always opens a new tab, also if buffer.c is already in an
 open window. (Herb Sitz, 2011 Nov 17)
 
@@ -135,6 +161,8 @@ characters.  Patch by Christian Brabandt
 Patch for 'transparency' option. (Sergiu Dotenco, 2011 Sep 17)
 Only for MS-Windows.  No documentation.  Do we want this?
 
+Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27)
+
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set.  (Dennis Preiser)
 Patch 7.3.116 was the wrong solution.
@@ -472,10 +500,6 @@ 2010 Nov 5)
 Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
 Jan 7)
 
-When setting 'undofile' while the file is already loaded, but unchanged, try
-to read the undo file.  Requires computing a checksum of the text. (Andy
-Wokula)
-
 Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
 Only with "vim -u NONE".
 
@@ -1055,6 +1079,15 @@ 8   Windows install with NSIS: make it p
     http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
     Version from Guopeng Wen that does this (2010 Dec 27)
 
+Windows installer should install 32-bit version of right-click handler also on
+64-bit systems. (Brian Cunningham, 2011 Dec 28)
+
+Windows installer could add a "open in new tab of existing Vim" menu entry.
+Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
+Just have two choices, always using one Vim and selecting between using an
+argument list or opening each file in a separate tab.
+(Erik Falor, 2008 May 21, 2008 Jun 26)
+
 Windows installer: licence text should not use indent, causes bad word wrap.
 (Benjamin Fritz, 2010 Aug 16)
 
@@ -1215,12 +1248,6 @@ When unloading a buffer in a BufHidden a
 Substituting an area with a line break with almost the same area does change
 the Visual area.  Can this be fixed? (James Vega, 2006 Sept 15)
 
-Windows installer could add a "open in new tab of existing Vim" menu entry.
-Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
-Just have two choices, always using one Vim and selecting between using an
-argument list or opening each file in a separate tab.
-(Erik Falor, 2008 May 21, 2008 Jun 26)
-
 GUI: When combining fg en bg make sure they are not equal.
 
 Spell checking: Add a way to specify punctuation characters.  Add the
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.3.  Last change: 2011 Jun 19
+*usr_41.txt*	For Vim version 7.3.  Last change: 2011 Dec 15
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -670,6 +670,12 @@ Floating point computation:				*float-fu
 	cosh()			hyperbolic cosine
 	tanh()			hyperbolic tangent
 
+Other computation:					*bitwise-function*
+	and()			bitwise AND
+	invert()		bitwise invert
+	or()			bitwise OR
+	xor()			bitwise XOR
+
 Variables:						*var-functions*
 	type()			type of a variable
 	islocked()		check if a variable is locked
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.3.  Last change: 2011 Nov 28
+*various.txt*   For Vim version 7.3.  Last change: 2011 Dec 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -136,6 +136,9 @@ 8g8			Find an illegal UTF-8 byte sequenc
 			then twice the value of the 'scroll' option is used,
 			otherwise the current window height minus 3 is used.
 
+			If there is a {count} the 'window' option is set to
+			its value.
+
 			:z can be used either alone or followed by any of
 			several punctuation marks.  These have the following
 			effect:
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2011 Oct 26
+" Last Change:	2011 Dec 28
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -2533,6 +2533,10 @@ au BufNewFile,BufRead */etc/yum.repos.d/
 au BufNewFile,BufRead zsh*,zlog*		call s:StarSetf('zsh')
 
 
+" Plain text files, needs to be far down to not override others.  This avoids
+" the "conf" type being used if there is a line starting with '#'.
+au BufNewFile,BufRead *.txt,*.text		setf text
+
 
 " Use the filetype detect plugins.  They may overrule any of the previously
 " detected filetypes.
--- a/runtime/ftplugin/fortran.vim
+++ b/runtime/ftplugin/fortran.vim
@@ -1,7 +1,7 @@
 " Vim settings file
 " Language:	Fortran90 (and Fortran95, Fortran77, F and elf90)
-" Version:	0.46
-" Last Change:	2010 July 24
+" Version:	0.47
+" Last Change:	2011 December 28
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-plugin from Vim
 " Credits:
@@ -12,6 +12,9 @@ if exists("b:did_ftplugin")
   finish
 endif
 
+let s:cposet=&cpoptions
+set cpoptions&vim
+
 " Don't do other file type settings for this buffer
 let b:did_ftplugin = 1
 
@@ -78,9 +81,6 @@ setlocal fo+=tcql
 setlocal include=^\\c#\\=\\s*include\\s\\+
 setlocal suffixesadd+=.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp
 
-let s:cposet=&cpoptions
-set cpoptions-=C
-
 " Define patterns for the matchit plugin
 if !exists("b:match_words")
   let s:notend = '\%(\<end\s\+\)\@<!'
--- a/runtime/ftplugin/kwt.vim
+++ b/runtime/ftplugin/kwt.vim
@@ -1,12 +1,13 @@
 " Vim filetype plugin file
 " Language:	Kimwitu++
-" Maintainer:	Michael Piefel <piefel@informatik.hu-berlin.de>
-" Last Change:	16 August 2001
+" Maintainer:	Michael Piefel <entwurf@piefel.de>
+" Last Change:	10 December 2011
 
 " Behaves almost like C++
 runtime! ftplugin/cpp.vim ftplugin/cpp_*.vim ftplugin/cpp/*.vim
 
-set cpo-=C
+let s:cpo_save = &cpo
+set cpo&vim
 
 " Limit the browser to related files
 if has("gui_win32") && !exists("b:browsefilter")
@@ -18,3 +19,6 @@ endif
 
 " Set the errorformat for the Kimwitu++ compiler
 set efm+=kc%.%#:\ error\ at\ %f:%l:\ %m
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/ftplugin/spec.vim
+++ b/runtime/ftplugin/spec.vim
@@ -1,13 +1,16 @@
 " Plugin to update the %changelog section of RPM spec files
 " Filename: spec.vim
 " Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com>
-" Last Change: Wed, 10 Apr 2002 16:28:52 -0300
+" Last Change: 2011 Dec 25 by Thilo Six
 
 if exists("b:did_ftplugin")
 	finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 if !exists("no_plugin_maps") && !exists("no_spec_maps")
 	if !hasmapto("<Plug>SpecChangelog")
 		map <buffer> <LocalLeader>c <Plug>SpecChangelog
@@ -166,3 +169,6 @@ let b:match_words =
   \ '^Name:^%description:^%clean:^%setup:^%build:^%install:^%files:' .
   \ '^%package:^%preun:^%postun:^%changelog'
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
-" Version:	0.39
-" Last Change:	2011 May 30
+" Version:	0.40
+" Last Change:	2011 Dec. 28
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-indent from Vim
 
@@ -11,6 +11,9 @@ if exists("b:did_indent")
 endif
 let b:did_indent = 1
 
+let s:cposet=&cpoptions
+set cpoptions&vim
+
 setlocal indentkeys+==~end,=~case,=~if,=~else,=~do,=~where,=~elsewhere,=~select
 setlocal indentkeys+==~endif,=~enddo,=~endwhere,=~endselect,=~elseif
 setlocal indentkeys+==~type,=~interface,=~forall,=~associate,=~block,=~enum
@@ -67,9 +70,6 @@ else
   endif
 endif
 
-let s:cposet=&cpoptions
-set cpoptions-=C
-
 function FortranGetIndent(lnum)
   let ind = indent(a:lnum)
   let prevline=getline(a:lnum)
--- a/runtime/indent/gitolite.vim
+++ b/runtime/indent/gitolite.vim
@@ -2,7 +2,7 @@
 " Language:	gitolite configuration
 " URL:		https://github.com/tmatilai/gitolite.vim
 " Maintainer:	Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change:	2011-11-01
+" Last Change:	2011-12-24
 
 if exists("b:did_indent")
   finish
@@ -18,6 +18,9 @@ if exists("*GetGitoliteIndent")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 function! GetGitoliteIndent()
   let prevln = prevnonblank(v:lnum-1)
   let pline = getline(prevln)
@@ -37,3 +40,6 @@ function! GetGitoliteIndent()
     return 0
   endif
 endfunction
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/indent/sdl.vim
+++ b/runtime/indent/sdl.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	SDL
-" Maintainer:	Michael Piefel <piefel@informatik.hu-berlin.de>
-" Last Change:	2001 Sep 17
+" Maintainer:	Michael Piefel <entwurf@piefel.de>
+" Last Change:	10 December 2011
 
 " Shamelessly stolen from the Vim-Script indent file
 
@@ -19,7 +19,8 @@ if exists("*GetSDLIndent")
 "  finish
 endif
 
-set cpo-=C
+let s:cpo_save = &cpo
+set cpo&vim
 
 function! GetSDLIndent()
   " Find a non-blank line above the current line.
@@ -86,4 +87,7 @@ function! GetSDLIndent()
   return ind
 endfunction
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim:sw=2
--- a/runtime/indent/tex.vim
+++ b/runtime/indent/tex.vim
@@ -2,7 +2,7 @@
 " Language:     LaTeX
 " Maintainer:   Zhou YiChao <broken.zhou@gmail.com>
 " Created:      Sat, 16 Feb 2002 16:50:19 +0100
-" Last Change:	Tue, 25 Sep 2011
+" Last Change:	2011 Dec 24
 " Last Update:  25th Sep 2002, by LH :
 "               (*) better support for the option
 "               (*) use some regex instead of several '||'.
@@ -37,42 +37,42 @@
 "
 "   If this variable is unset or non-zero, it will use smartindent-like style
 "   for "{}" and "[]"
-"   
+"
 " * g:tex_indent_items
 "
 "   If this variable is set, item-environments are indented like Emacs does
 "   it, i.e., continuation lines are indented with a shiftwidth.
-"   
+"
 "   NOTE: I've already set the variable below; delete the corresponding line
 "   if you don't like this behaviour.
 "
 "   Per default, it is unset.
-"   
+"
 "              set                                unset
 "   ----------------------------------------------------------------
-"       \begin{itemize}                      \begin{itemize}  
+"       \begin{itemize}                      \begin{itemize}
 "         \item blablabla                      \item blablabla
-"           bla bla bla                        bla bla bla  
+"           bla bla bla                        bla bla bla
 "         \item blablabla                      \item blablabla
-"           bla bla bla                        bla bla bla  
-"       \end{itemize}                        \end{itemize}    
+"           bla bla bla                        bla bla bla
+"       \end{itemize}                        \end{itemize}
 "
 "
 " * g:tex_items
 "
-"   A list of tokens to be considered as commands for the beginning of an item 
-"   command. The tokens should be separated with '\|'. The initial '\' should 
+"   A list of tokens to be considered as commands for the beginning of an item
+"   command. The tokens should be separated with '\|'. The initial '\' should
 "   be escaped. The default is '\\bibitem\|\\item'.
 "
 " * g:tex_itemize_env
-" 
-"   A list of environment names, separated with '\|', where the items (item 
-"   commands matching g:tex_items) may appear. The default is 
+"
+"   A list of environment names, separated with '\|', where the items (item
+"   commands matching g:tex_items) may appear. The default is
 "   'itemize\|description\|enumerate\|thebibliography'.
 "
 " * g:tex_noindent_env
 "
-"   A list of environment names. separated with '\|', where no indentation is 
+"   A list of environment names. separated with '\|', where no indentation is
 "   required. The default is 'document\|verbatim'.
 "
 " * g:tex_indent_and
@@ -82,7 +82,7 @@
 "   Note that this feature need to search back some line, so vim may become
 "   a little slow.
 "
-" }}} 
+" }}}
 
 if exists("b:did_indent")
     finish
@@ -104,7 +104,7 @@ if g:tex_indent_items
         let g:tex_itemize_env = 'itemize\|description\|enumerate\|thebibliography'
     endif
     if !exists('g:tex_items')
-        let g:tex_items = '\\bibitem\|\\item' 
+        let g:tex_items = '\\bibitem\|\\item'
     endif
 else
     let g:tex_items = ''
@@ -125,6 +125,8 @@ let g:tex_items = '^\s*' . g:tex_items
 if exists("*GetTeXIndent") | finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 function GetTeXIndent()
     " Find a non-blank line above the current line.
@@ -137,7 +139,7 @@ function GetTeXIndent()
 
     " At the start of the file use zero indent.
     if lnum == 0
-        return 0 
+        return 0
     endif
 
     let line = getline(lnum)             " last line
@@ -159,7 +161,7 @@ function GetTeXIndent()
 
 
     if lnum == 0
-        return 0 
+        return 0
     endif
 
     let ind = indent(lnum)
@@ -171,7 +173,7 @@ function GetTeXIndent()
 
     " Add a 'shiftwidth' after beginning of environments.
     " Don't add it for \begin{document} and \begin{verbatim}
-    ""if line =~ '^\s*\\begin{\(.*\)}'  && line !~ 'verbatim' 
+    ""if line =~ '^\s*\\begin{\(.*\)}'  && line !~ 'verbatim'
     " LH modification : \begin does not always start a line
     " ZYC modification : \end after \begin won't cause wrong indent anymore
     if line =~ '\\begin{.*}' && line !~ g:tex_noindent_env
@@ -247,4 +249,7 @@ function GetTeXIndent()
     return ind
 endfunction
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: set sw=4 textwidth=80:
--- a/runtime/syntax/abel.vim
+++ b/runtime/syntax/abel.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	ABEL
-" Maintainer:	John Cook <john.cook@kla-tencor.com>
-" Last Change:	2001 Sep 2
+" Maintainer:	John Cook <johncook3@gmail.com>
+" Last Change:	2011 Dec 27
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " this language is oblivious to case
 syn case ignore
 
@@ -164,4 +167,8 @@ if version >= 508 || !exists("did_abel_s
 endif
 
 let b:current_syntax = "abel"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim:ts=8
--- a/runtime/syntax/art.vim
+++ b/runtime/syntax/art.vim
@@ -2,12 +2,15 @@
 " Language:      ART-IM and ART*Enterprise
 " Maintainer:    Dorai Sitaram <ds26@gte.com>
 " URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
-" Last Change:   Nov 6, 2002
+" Last Change:   2011 Dec 28 by Thilo Six
 
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 syn keyword artspform => and assert bind
@@ -42,3 +45,6 @@ hi def link artspform statement
 hi def link artvariable function
 
 let b:current_syntax = "art"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/ayacc.vim
+++ b/runtime/syntax/ayacc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	AYacc
 " Maintainer:	Mathieu Clabaut <mathieu.clabaut@free.fr>
-" LastChange:	02 May 2001
+" LastChange:	2011 Dec 25
 " Original:	Yacc, maintained by Dr. Charles E. Campbell, Jr.
 " Comment:	     Replaced sourcing c.vim file by ada.vim and rename yacc*
 "		in ayacc*
@@ -22,6 +22,9 @@ else
    unlet b:current_syntax
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Clusters
 syn cluster	ayaccActionGroup	contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError
 syn cluster	ayaccUnionGroup	contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly
@@ -83,4 +86,6 @@ endif
 
 let b:current_syntax = "ayacc"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=15
--- a/runtime/syntax/basic.vim
+++ b/runtime/syntax/basic.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	BASIC
 " Maintainer:	Allan Kelly <allan@fruitloaf.co.uk>
-" Last Change:	Tue Sep 14 14:24:23 BST 1999
+" Last Change:  2011 Dec 25 by Thilo Six
 
 " First version based on Micro$soft QBASIC circa 1989, as documented in
 " 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
@@ -16,6 +16,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " A bunch of useful BASIC keywords
 syn keyword basicStatement	BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
 syn keyword basicStatement	CALL call Call ABSOLUTE absolute Absolute
@@ -171,4 +174,6 @@ endif
 
 let b:current_syntax = "basic"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/bib.vim
+++ b/runtime/syntax/bib.vim
@@ -2,7 +2,7 @@
 " Language:	BibTeX (bibliographic database format for (La)TeX)
 " Maintainer:	Bernd Feige <Bernd.Feige@gmx.net>
 " Filenames:	*.bib
-" Last Change:	Mar 23, 2011
+" Last Change:	2011 Dec 25
 
 " Thanks to those who pointed out problems with this file or supplied fixes!
 
@@ -16,6 +16,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Ignore case
 syn case ignore
 
@@ -93,3 +96,6 @@ if version >= 508 || !exists("did_bib_sy
 endif
 
 let b:current_syntax = "bib"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/blank.vim
+++ b/runtime/syntax/blank.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:     Blank 1.4.1
 " Maintainer:   Rafal M. Sulejman <unefunge@friko2.onet.pl>
-" Last change:  21 Jul 2000
+" Last change:  2011 Dec 28 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 " Blank instructions
@@ -43,4 +46,7 @@ if version >= 508 || !exists("did_blank_
 endif
 
 let b:current_syntax = "blank"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,13 +1,16 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2011 Sep 07
+" Last Change:	2011 Dec 30
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " A bunch of useful C keywords
 syn keyword	cStatement	goto break return continue asm
 syn keyword	cLabel		case default
@@ -390,4 +393,6 @@ hi def link cCppOut		Comment
 
 let b:current_syntax = "c"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/clean.vim
+++ b/runtime/syntax/clean.vim
@@ -2,7 +2,7 @@
 " Language:		Clean
 " Author:		Pieter van Engelen <pietere@sci.kun.nl>
 " Co-Author:	Arthur van Leeuwen <arthurvl@sci.kun.nl>
-" Last Change:	Fri Sep 29 11:35:34 CEST 2000
+" Last Change:	2011 Dec 25 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Some Clean-keywords
 syn keyword cleanConditional if case
 syn keyword cleanLabel let! with where in of
@@ -91,4 +94,6 @@ endif
 
 let b:current_syntax = "clean"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=4
--- a/runtime/syntax/clipper.vim
+++ b/runtime/syntax/clipper.vim
@@ -2,7 +2,7 @@
 " Language:	Clipper 5.2 & FlagShip
 " Maintainer:	C R Zamana <zamana@zip.net>
 " Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
-" Last Change:	Sat Sep 09 2000
+" Last Change:	2011 Dec 29 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Exceptions for my "Very Own" (TM) user variables naming style.
 " If you don't like this, comment it
 syn match  clipperUserVariable	"\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
@@ -140,4 +143,6 @@ endif
 
 let b:current_syntax = "clipper"
 
-" vim: ts=4
+let &cpo = s:cpo_save
+unlet s:cpo_save
+" vim: ts=8
--- a/runtime/syntax/csc.vim
+++ b/runtime/syntax/csc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: Essbase script
 " Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net>
-" Last change:	2001 Sep 25
+" Last change:	2011 Dec 25 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
 	finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " folds: fix/endfix and comments
 sy	region	EssFold start="\<Fix" end="EndFix" transparent fold
 
@@ -196,4 +199,6 @@ endif
 
 let b:current_syntax = "csc"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/cupl.vim
+++ b/runtime/syntax/cupl.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	CUPL
-" Maintainer:	John Cook <john.cook@kla-tencor.com>
-" Last Change:	2001 Apr 25
+" Maintainer:	John Cook <johncook3@gmail.com>
+" Last Change:	2011 Dec 27
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " this language is oblivious to case.
 syn case ignore
 
@@ -127,4 +130,8 @@ if version >= 508 || !exists("did_cupl_s
 endif
 
 let b:current_syntax = "cupl"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim:ts=8
--- a/runtime/syntax/cweb.vim
+++ b/runtime/syntax/cweb.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	CWEB
 " Maintainer:	Andreas Scherer <andreas.scherer@pobox.com>
-" Last Change:	April 30, 2001
+" Last Change:	2011 Dec 25 by Thilo Six
 
 " Details of the CWEB language can be found in the article by Donald E. Knuth
 " and Silvio Levy, "The CWEB System of Structured Documentation", included as
@@ -36,6 +36,9 @@ endif
 " C/C++ section of a CWEB chunk or in inner C/C++ context in "|...|" groups.
 syntax include @webIncludedC <sfile>:p:h/cpp.vim
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Inner C/C++ context (ICC) should be quite simple as it's comprised of
 " material in "|...|"; however the naive definition for this region would
 " hickup at the innocious "\|" TeX macro.  Note: For the time being we expect
@@ -77,4 +80,6 @@ endif
 
 let b:current_syntax = "cweb"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
-" Version:	0.89
-" Last Change:	2010 July 21
+" Version:	0.90
+" Last Change:	2011 Dec. 28
 " Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
 " Usage:	For instructions, do :help fortran-syntax from Vim
 " Credits:
@@ -19,6 +19,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " let b:fortran_dialect = fortran_dialect if set correctly by user
 if exists("fortran_dialect")
   if fortran_dialect =~ '\<\(f\(9[05]\|77\)\|elf\|F\)\>'
@@ -257,7 +260,7 @@ if b:fortran_dialect != "f77"
   syn match  fortranType	"\<end\s*type"
   syn match  fortranType	"\<in\s*out"
 
-  syn keyword fortranUnitHeaderEx	procedure
+  syn keyword fortranType	procedure
   syn keyword fortranIOEx		namelist
   syn keyword fortranConditionalEx	while
   syn keyword fortran90IntrinsicEx	achar iachar transfer
@@ -306,13 +309,15 @@ if b:fortran_dialect == "f95"
   syn keyword fortran03ReadWrite	flush wait
   syn keyword fortran03IO	        decimal round iomsg
   syn keyword fortran03Type             asynchronous nopass non_overridable pass protected volatile abstract extends import
-  syn keyword fortran03Type             non_intrinsic value bind deferred generic final enumerator class
+  syn keyword fortran03Type             non_intrinsic value bind deferred generic final enumerator
+  syn match fortran03Type               "\<class\>"
   syn match fortran03Type               "\<associate\>"
   syn match fortran03Type               "\<end\s*associate"
   syn match fortran03Type               "\<enum\s*,\s*bind\s*(\s*c\s*)"
   syn match fortran03Type               "\<end\s*enum"
   syn match fortran03Conditional	"\<select\s*type"
   syn match fortran03Conditional        "\<type\s*is\>"
+  syn match fortran03Conditional        "\<class\s*is\>"
   syn match fortran03UnitHeader         "\<abstract\s*interface\>"
   syn match fortran03Operator           "\([\|]\)"
 
@@ -537,4 +542,6 @@ endif
 
 let b:current_syntax = "fortran"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 tw=132
--- a/runtime/syntax/gitolite.vim
+++ b/runtime/syntax/gitolite.vim
@@ -2,12 +2,15 @@
 " Language:	gitolite configuration
 " URL:		https://github.com/tmatilai/gitolite.vim
 " Maintainer:	Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change:	2011-10-18
+" Last Change:	2011-12-25
 
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Comment
 syn match	gitoliteComment		"\(^\|\s\)#.*" contains=gitoliteTodo
 syn keyword	gitoliteTodo		TODO FIXME XXX NOT contained
@@ -78,3 +81,6 @@ hi def link gitoliteInclude		Include
 hi def link gitoliteString		String
 
 let b:current_syntax = "gitolite"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -1,7 +1,7 @@
 " Vim syntax file " Language:	  Java
 " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 " URL:		http://www.fleiner.com/vim/syntax/java.vim
-" Last Change:	2010 March 23
+" Last Change:	2011 Dec 30
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -120,11 +120,8 @@ syn region  javaLabelRegion	transparent 
 syn match   javaUserLabel	"^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
 syn keyword javaLabel		default
 
-if !exists("java_allow_cpp_keywords")
-  syn keyword javaError auto delete extern friend inline redeclared
-  syn keyword javaError register signed sizeof struct template typedef union
-  syn keyword javaError unsigned operator
-endif
+" highlighting C++ keywords as errors removed, too many people find it
+" annoying.  Was: if !exists("java_allow_cpp_keywords")
 
 " The following cluster contains all java groups except the contained ones
 syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg
--- a/runtime/syntax/kwt.vim
+++ b/runtime/syntax/kwt.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Language:	kimwitu++
-" Maintainer:	Michael Piefel <piefel@informatik.hu-berlin.de>
+" Maintainer:	Michael Piefel <entwurf@piefel.de>
 " Last Change:	2 May 2001
 
 " For version 5.x: Clear all syntax items
--- a/runtime/syntax/lua.vim
+++ b/runtime/syntax/lua.vim
@@ -1,11 +1,11 @@
 " Vim syntax file
-" Language:	Lua 4.0, Lua 5.0 and Lua 5.1
-" Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol com br>
+" Language:	Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2
+" Maintainer:	Marcus Aurelius Farias <masserahguard-lua 'at' yahoo com>
 " First Author:	Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
-" Last Change:	2006 Aug 10
+" Last Change:	2011 Dec 20
 " Options:	lua_version = 4 or 5
-"		lua_subversion = 0 (4.0, 5.0) or 1 (5.1)
-"		default 5.1
+"		lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2)
+"		default 5.2
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -16,9 +16,9 @@ elseif exists("b:current_syntax")
 endif
 
 if !exists("lua_version")
-  " Default is lua 5.1
+  " Default is lua 5.2
   let lua_version = 5
-  let lua_subversion = 1
+  let lua_subversion = 2
 elseif !exists("lua_subversion")
   " lua_version exists, but lua_subversion doesn't. So, set it to 0
   let lua_subversion = 0
@@ -30,14 +30,14 @@ syn case match
 syn sync minlines=100
 
 " Comments
-syn keyword luaTodo             contained TODO FIXME XXX
-syn match   luaComment          "--.*$" contains=luaTodo,@Spell
+syn keyword luaTodo            contained TODO FIXME XXX
+syn match   luaComment         "--.*$" contains=luaTodo,@Spell
 if lua_version == 5 && lua_subversion == 0
-  syn region  luaComment        matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell
-  syn region  luaInnerComment   contained transparent start="\[\[" end="\]\]"
+  syn region luaComment        matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell
+  syn region luaInnerComment   contained transparent start="\[\[" end="\]\]"
 elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
   " Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.
-  syn region  luaComment        matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell
+  syn region luaComment        matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell
 endif
 
 " First line may start with #!
@@ -46,59 +46,66 @@ syn match luaComment "\%^#!.*"
 " catch errors caused by wrong parenthesis and wrong curly brackets or
 " keywords placed outside their respective blocks
 
-syn region luaParen transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
-syn match  luaError ")"
+syn region luaParen transparent start='(' end=')' contains=TOP,luaParenError
+syn match  luaParenError ")"
 syn match  luaError "}"
 syn match  luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"
 
 " Function declaration
-syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=TOP
 
-" if then else elseif end
-syn keyword luaCond contained else
+" else
+syn keyword luaCondElse matchgroup=luaCond contained containedin=luaCondEnd else
 
 " then ... end
-syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
+syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=TOP
 
 " elseif ... then
-syn region luaCondElseif contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaCondElseif contained containedin=luaCondEnd transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=TOP
 
 " if ... then
-syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
+syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=TOP nextgroup=luaCondEnd skipwhite skipempty
 
 " do ... end
-syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
+syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=TOP
 " repeat ... until
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=TOP
 
 " while ... do
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
+syn region luaWhile transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
 
 " for ... do and for ... in ... do
-syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
+syn region luaFor transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty
 
-" Following 'else' example. This is another item to those
-" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
-syn keyword luaRepeat contained in
+syn keyword luaFor contained containedin=luaFor in
 
 " other keywords
 syn keyword luaStatement return local break
-syn keyword luaOperator  and or not
-syn keyword luaConstant  nil
+if lua_version > 5 || (lua_version == 5 && lua_subversion >= 2)
+  syn keyword luaStatement goto
+  syn match luaLabel "::\I\i*::"
+endif
+syn keyword luaOperator and or not
+syn keyword luaConstant nil
 if lua_version > 4
   syn keyword luaConstant true false
 endif
 
 " Strings
 if lua_version < 5
-  syn match  luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
-elseif lua_version == 5 && lua_subversion == 0
-  syn match  luaSpecial contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
-  syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
-elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
-  syn match  luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
-  syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
+  syn match  luaSpecial contained "\\[\\abfnrtv\'\"]\|\\[[:digit:]]\{,3}"
+elseif lua_version == 5
+  if lua_subversion == 0
+    syn match  luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}#
+    syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell
+  else
+    if lua_subversion == 1
+      syn match  luaSpecial contained #\\[\\abfnrtv'"]\|\\[[:digit:]]\{,3}#
+    else " Lua 5.2
+      syn match  luaSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}#
+    endif
+    syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell
+  endif
 endif
 syn region luaString  start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell
 syn region luaString  start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell
@@ -106,19 +113,23 @@ syn region luaString  start=+"+ end=+"+ 
 " integer number
 syn match luaNumber "\<\d\+\>"
 " floating point number, with dot, optional exponent
-syn match luaFloat  "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"
+syn match luaNumber  "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>"
 " floating point number, starting with a dot, optional exponent
-syn match luaFloat  "\.\d\+\%(e[-+]\=\d\+\)\=\>"
+syn match luaNumber  "\.\d\+\%([eE][-+]\=\d\+\)\=\>"
 " floating point number, without dot, with exponent
-syn match luaFloat  "\<\d\+e[-+]\=\d\+\>"
+syn match luaNumber  "\<\d\+[eE][-+]\=\d\+\>"
 
 " hex numbers
-if lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
-  syn match luaNumber "\<0x\x\+\>"
+if lua_version >= 5
+  if lua_subversion == 1
+    syn match luaNumber "\<0[xX]\x\+\>"
+  elseif lua_subversion >= 2
+    syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>"
+  endif
 endif
 
 " tables
-syn region  luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
+syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=TOP,luaStatement
 
 syn keyword luaFunc assert collectgarbage dofile error next
 syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION
@@ -144,127 +155,170 @@ if lua_version == 4
   syn keyword luaFunc format strfind gsub
   syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
 elseif lua_version == 5
-  " Not sure if all these functions need to be highlighted...
-  syn keyword luaFunc _G getfenv getmetatable ipairs loadfile
-  syn keyword luaFunc loadstring pairs pcall rawequal
-  syn keyword luaFunc require setfenv setmetatable unpack xpcall
+  syn keyword luaFunc getmetatable setmetatable
+  syn keyword luaFunc ipairs pairs
+  syn keyword luaFunc pcall xpcall
+  syn keyword luaFunc _G loadfile rawequal require
   if lua_subversion == 0
+    syn keyword luaFunc getfenv setfenv
+    syn keyword luaFunc loadstring unpack
     syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME
-  elseif lua_subversion == 1
-    syn keyword luaFunc load module select
-    syn match luaFunc /package\.cpath/
-    syn match luaFunc /package\.loaded/
-    syn match luaFunc /package\.loadlib/
-    syn match luaFunc /package\.path/
-    syn match luaFunc /package\.preload/
-    syn match luaFunc /package\.seeall/
-    syn match luaFunc /coroutine\.running/
+  else
+    syn keyword luaFunc load select
+    syn match   luaFunc /\<package\.cpath\>/
+    syn match   luaFunc /\<package\.loaded\>/
+    syn match   luaFunc /\<package\.loadlib\>/
+    syn match   luaFunc /\<package\.path\>/
+    if lua_subversion == 1
+      syn keyword luaFunc getfenv setfenv
+      syn keyword luaFunc loadstring module unpack
+      syn match   luaFunc /\<package\.loaders\>/
+      syn match   luaFunc /\<package\.preload\>/
+      syn match   luaFunc /\<package\.seeall\>/
+    elseif lua_subversion == 2
+      syn keyword luaFunc _ENV rawlen
+      syn match   luaFunc /\<package\.config\>/
+      syn match   luaFunc /\<package\.preload\>/
+      syn match   luaFunc /\<package\.searchers\>/
+      syn match   luaFunc /\<package\.searchpath\>/
+      syn match   luaFunc /\<bit32\.arshift\>/
+      syn match   luaFunc /\<bit32\.band\>/
+      syn match   luaFunc /\<bit32\.bnot\>/
+      syn match   luaFunc /\<bit32\.bor\>/
+      syn match   luaFunc /\<bit32\.btest\>/
+      syn match   luaFunc /\<bit32\.bxor\>/
+      syn match   luaFunc /\<bit32\.extract\>/
+      syn match   luaFunc /\<bit32\.lrotate\>/
+      syn match   luaFunc /\<bit32\.lshift\>/
+      syn match   luaFunc /\<bit32\.replace\>/
+      syn match   luaFunc /\<bit32\.rrotate\>/
+      syn match   luaFunc /\<bit32\.rshift\>/
+    endif
+    syn match luaFunc /\<coroutine\.running\>/
   endif
-  syn match   luaFunc /coroutine\.create/
-  syn match   luaFunc /coroutine\.resume/
-  syn match   luaFunc /coroutine\.status/
-  syn match   luaFunc /coroutine\.wrap/
-  syn match   luaFunc /coroutine\.yield/
-  syn match   luaFunc /string\.byte/
-  syn match   luaFunc /string\.char/
-  syn match   luaFunc /string\.dump/
-  syn match   luaFunc /string\.find/
-  syn match   luaFunc /string\.len/
-  syn match   luaFunc /string\.lower/
-  syn match   luaFunc /string\.rep/
-  syn match   luaFunc /string\.sub/
-  syn match   luaFunc /string\.upper/
-  syn match   luaFunc /string\.format/
-  syn match   luaFunc /string\.gsub/
+  syn match   luaFunc /\<coroutine\.create\>/
+  syn match   luaFunc /\<coroutine\.resume\>/
+  syn match   luaFunc /\<coroutine\.status\>/
+  syn match   luaFunc /\<coroutine\.wrap\>/
+  syn match   luaFunc /\<coroutine\.yield\>/
+  syn match   luaFunc /\<string\.byte\>/
+  syn match   luaFunc /\<string\.char\>/
+  syn match   luaFunc /\<string\.dump\>/
+  syn match   luaFunc /\<string\.find\>/
+  syn match   luaFunc /\<string\.format\>/
+  syn match   luaFunc /\<string\.gsub\>/
+  syn match   luaFunc /\<string\.len\>/
+  syn match   luaFunc /\<string\.lower\>/
+  syn match   luaFunc /\<string\.rep\>/
+  syn match   luaFunc /\<string\.sub\>/
+  syn match   luaFunc /\<string\.upper\>/
   if lua_subversion == 0
-    syn match luaFunc /string\.gfind/
-    syn match luaFunc /table\.getn/
-    syn match luaFunc /table\.setn/
-    syn match luaFunc /table\.foreach/
-    syn match luaFunc /table\.foreachi/
+    syn match luaFunc /\<string\.gfind\>/
+  else
+    syn match luaFunc /\<string\.gmatch\>/
+    syn match luaFunc /\<string\.match\>/
+    syn match luaFunc /\<string\.reverse\>/
+  endif
+  if lua_subversion == 0
+    syn match luaFunc /\<table\.getn\>/
+    syn match luaFunc /\<table\.setn\>/
+    syn match luaFunc /\<table\.foreach\>/
+    syn match luaFunc /\<table\.foreachi\>/
   elseif lua_subversion == 1
-    syn match luaFunc /string\.gmatch/
-    syn match luaFunc /string\.match/
-    syn match luaFunc /string\.reverse/
-    syn match luaFunc /table\.maxn/
+    syn match luaFunc /\<table\.maxn\>/
+  elseif lua_subversion == 2
+    syn match luaFunc /\<table\.pack\>/
+    syn match luaFunc /\<table\.unpack\>/
   endif
-  syn match   luaFunc /table\.concat/
-  syn match   luaFunc /table\.sort/
-  syn match   luaFunc /table\.insert/
-  syn match   luaFunc /table\.remove/
-  syn match   luaFunc /math\.abs/
-  syn match   luaFunc /math\.acos/
-  syn match   luaFunc /math\.asin/
-  syn match   luaFunc /math\.atan/
-  syn match   luaFunc /math\.atan2/
-  syn match   luaFunc /math\.ceil/
-  syn match   luaFunc /math\.sin/
-  syn match   luaFunc /math\.cos/
-  syn match   luaFunc /math\.tan/
-  syn match   luaFunc /math\.deg/
-  syn match   luaFunc /math\.exp/
-  syn match   luaFunc /math\.floor/
-  syn match   luaFunc /math\.log/
-  syn match   luaFunc /math\.log10/
-  syn match   luaFunc /math\.max/
-  syn match   luaFunc /math\.min/
+  syn match   luaFunc /\<table\.concat\>/
+  syn match   luaFunc /\<table\.sort\>/
+  syn match   luaFunc /\<table\.insert\>/
+  syn match   luaFunc /\<table\.remove\>/
+  syn match   luaFunc /\<math\.abs\>/
+  syn match   luaFunc /\<math\.acos\>/
+  syn match   luaFunc /\<math\.asin\>/
+  syn match   luaFunc /\<math\.atan\>/
+  syn match   luaFunc /\<math\.atan2\>/
+  syn match   luaFunc /\<math\.ceil\>/
+  syn match   luaFunc /\<math\.sin\>/
+  syn match   luaFunc /\<math\.cos\>/
+  syn match   luaFunc /\<math\.tan\>/
+  syn match   luaFunc /\<math\.deg\>/
+  syn match   luaFunc /\<math\.exp\>/
+  syn match   luaFunc /\<math\.floor\>/
+  syn match   luaFunc /\<math\.log\>/
+  syn match   luaFunc /\<math\.max\>/
+  syn match   luaFunc /\<math\.min\>/
   if lua_subversion == 0
-    syn match luaFunc /math\.mod/
-  elseif lua_subversion == 1
-    syn match luaFunc /math\.fmod/
-    syn match luaFunc /math\.modf/
-    syn match luaFunc /math\.cosh/
-    syn match luaFunc /math\.sinh/
-    syn match luaFunc /math\.tanh/
+    syn match luaFunc /\<math\.mod\>/
+    syn match luaFunc /\<math\.log10\>/
+  else
+    if lua_subversion == 1
+      syn match luaFunc /\<math\.log10\>/
+    endif
+    syn match luaFunc /\<math\.huge\>/
+    syn match luaFunc /\<math\.fmod\>/
+    syn match luaFunc /\<math\.modf\>/
+    syn match luaFunc /\<math\.cosh\>/
+    syn match luaFunc /\<math\.sinh\>/
+    syn match luaFunc /\<math\.tanh\>/
   endif
-  syn match   luaFunc /math\.pow/
-  syn match   luaFunc /math\.rad/
-  syn match   luaFunc /math\.sqrt/
-  syn match   luaFunc /math\.frexp/
-  syn match   luaFunc /math\.ldexp/
-  syn match   luaFunc /math\.random/
-  syn match   luaFunc /math\.randomseed/
-  syn match   luaFunc /math\.pi/
-  syn match   luaFunc /io\.stdin/
-  syn match   luaFunc /io\.stdout/
-  syn match   luaFunc /io\.stderr/
-  syn match   luaFunc /io\.close/
-  syn match   luaFunc /io\.flush/
-  syn match   luaFunc /io\.input/
-  syn match   luaFunc /io\.lines/
-  syn match   luaFunc /io\.open/
-  syn match   luaFunc /io\.output/
-  syn match   luaFunc /io\.popen/
-  syn match   luaFunc /io\.read/
-  syn match   luaFunc /io\.tmpfile/
-  syn match   luaFunc /io\.type/
-  syn match   luaFunc /io\.write/
-  syn match   luaFunc /os\.clock/
-  syn match   luaFunc /os\.date/
-  syn match   luaFunc /os\.difftime/
-  syn match   luaFunc /os\.execute/
-  syn match   luaFunc /os\.exit/
-  syn match   luaFunc /os\.getenv/
-  syn match   luaFunc /os\.remove/
-  syn match   luaFunc /os\.rename/
-  syn match   luaFunc /os\.setlocale/
-  syn match   luaFunc /os\.time/
-  syn match   luaFunc /os\.tmpname/
-  syn match   luaFunc /debug\.debug/
-  syn match   luaFunc /debug\.gethook/
-  syn match   luaFunc /debug\.getinfo/
-  syn match   luaFunc /debug\.getlocal/
-  syn match   luaFunc /debug\.getupvalue/
-  syn match   luaFunc /debug\.setlocal/
-  syn match   luaFunc /debug\.setupvalue/
-  syn match   luaFunc /debug\.sethook/
-  syn match   luaFunc /debug\.traceback/
+  syn match   luaFunc /\<math\.pow\>/
+  syn match   luaFunc /\<math\.rad\>/
+  syn match   luaFunc /\<math\.sqrt\>/
+  syn match   luaFunc /\<math\.frexp\>/
+  syn match   luaFunc /\<math\.ldexp\>/
+  syn match   luaFunc /\<math\.random\>/
+  syn match   luaFunc /\<math\.randomseed\>/
+  syn match   luaFunc /\<math\.pi\>/
+  syn match   luaFunc /\<io\.close\>/
+  syn match   luaFunc /\<io\.flush\>/
+  syn match   luaFunc /\<io\.input\>/
+  syn match   luaFunc /\<io\.lines\>/
+  syn match   luaFunc /\<io\.open\>/
+  syn match   luaFunc /\<io\.output\>/
+  syn match   luaFunc /\<io\.popen\>/
+  syn match   luaFunc /\<io\.read\>/
+  syn match   luaFunc /\<io\.stderr\>/
+  syn match   luaFunc /\<io\.stdin\>/
+  syn match   luaFunc /\<io\.stdout\>/
+  syn match   luaFunc /\<io\.tmpfile\>/
+  syn match   luaFunc /\<io\.type\>/
+  syn match   luaFunc /\<io\.write\>/
+  syn match   luaFunc /\<os\.clock\>/
+  syn match   luaFunc /\<os\.date\>/
+  syn match   luaFunc /\<os\.difftime\>/
+  syn match   luaFunc /\<os\.execute\>/
+  syn match   luaFunc /\<os\.exit\>/
+  syn match   luaFunc /\<os\.getenv\>/
+  syn match   luaFunc /\<os\.remove\>/
+  syn match   luaFunc /\<os\.rename\>/
+  syn match   luaFunc /\<os\.setlocale\>/
+  syn match   luaFunc /\<os\.time\>/
+  syn match   luaFunc /\<os\.tmpname\>/
+  syn match   luaFunc /\<debug\.debug\>/
+  syn match   luaFunc /\<debug\.gethook\>/
+  syn match   luaFunc /\<debug\.getinfo\>/
+  syn match   luaFunc /\<debug\.getlocal\>/
+  syn match   luaFunc /\<debug\.getupvalue\>/
+  syn match   luaFunc /\<debug\.setlocal\>/
+  syn match   luaFunc /\<debug\.setupvalue\>/
+  syn match   luaFunc /\<debug\.sethook\>/
+  syn match   luaFunc /\<debug\.traceback\>/
   if lua_subversion == 1
-    syn match luaFunc /debug\.getfenv/
-    syn match luaFunc /debug\.getmetatable/
-    syn match luaFunc /debug\.getregistry/
-    syn match luaFunc /debug\.setfenv/
-    syn match luaFunc /debug\.setmetatable/
+    syn match luaFunc /\<debug\.getfenv\>/
+    syn match luaFunc /\<debug\.setfenv\>/
+    syn match luaFunc /\<debug\.getmetatable\>/
+    syn match luaFunc /\<debug\.setmetatable\>/
+    syn match luaFunc /\<debug\.getregistry\>/
+  elseif lua_subversion == 2
+    syn match luaFunc /\<debug\.getmetatable\>/
+    syn match luaFunc /\<debug\.setmetatable\>/
+    syn match luaFunc /\<debug\.getregistry\>/
+    syn match luaFunc /\<debug\.getuservalue\>/
+    syn match luaFunc /\<debug\.setuservalue\>/
+    syn match luaFunc /\<debug\.upvalueid\>/
+    syn match luaFunc /\<debug\.upvaluejoin\>/
   endif
 endif
 
@@ -281,24 +335,27 @@ if version >= 508 || !exists("did_lua_sy
 
   HiLink luaStatement		Statement
   HiLink luaRepeat		Repeat
+  HiLink luaFor			Repeat
   HiLink luaString		String
   HiLink luaString2		String
   HiLink luaNumber		Number
-  HiLink luaFloat		Float
   HiLink luaOperator		Operator
   HiLink luaConstant		Constant
   HiLink luaCond		Conditional
+  HiLink luaCondElse		Conditional
   HiLink luaFunction		Function
   HiLink luaComment		Comment
   HiLink luaTodo		Todo
   HiLink luaTable		Structure
   HiLink luaError		Error
+  HiLink luaParenError		Error
   HiLink luaSpecial		SpecialChar
   HiLink luaFunc		Identifier
+  HiLink luaLabel		Label
 
   delcommand HiLink
 endif
 
 let b:current_syntax = "lua"
 
-" vim: et ts=8
+" vim: et ts=8 sw=2
--- a/runtime/syntax/sdl.vim
+++ b/runtime/syntax/sdl.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Language:	SDL
-" Maintainer:	Michael Piefel <piefel@informatik.hu-berlin.de>
+" Maintainer:	Michael Piefel <entwurf@piefel.de>
 " Last Change:	2 May 2001
 
 " For version 5.x: Clear all syntax items