changeset 3312:b7811ab264bf v7.3.423

updated for version 7.3.423 Problem: Small mistakes in comments, proto and indent. Solution: Fix the mistakes. Also update runtime files
author Bram Moolenaar <bram@vim.org>
date Sat, 04 Feb 2012 21:59:01 +0100
parents 54d1536a1c8b
children 10442177904a
files runtime/doc/eval.txt runtime/doc/if_pyth.txt runtime/doc/insert.txt runtime/doc/map.txt runtime/doc/netbeans.txt runtime/doc/pi_netrw.txt runtime/doc/todo.txt runtime/doc/undo.txt runtime/filetype.vim runtime/ftplugin/debchangelog.vim runtime/ftplugin/ocaml.vim runtime/indent/ocaml.vim runtime/syntax/awk.vim runtime/syntax/logtalk.vim runtime/syntax/mail.vim runtime/syntax/masm.vim runtime/syntax/mma.vim runtime/syntax/monk.vim runtime/syntax/mrxvtrc.vim runtime/syntax/muttrc.vim runtime/syntax/nroff.vim runtime/syntax/opl.vim runtime/syntax/rpl.vim runtime/syntax/sd.vim runtime/syntax/sendpr.vim runtime/syntax/smil.vim runtime/syntax/snnspat.vim runtime/syntax/spup.vim runtime/syntax/sqlanywhere.vim runtime/syntax/tasm.vim runtime/syntax/tsalt.vim runtime/syntax/vhdl.vim runtime/syntax/viminfo.vim runtime/syntax/xpm2.vim runtime/tutor/tutor.eo runtime/tutor/tutor.eo.utf-8 runtime/tutor/tutor.fr runtime/tutor/tutor.fr.utf-8 src/ex_cmds2.c src/po/ca.po src/po/eo.po src/po/fr.po src/po/ru.cp1251.po src/po/ru.po src/proto/ex_docmd.pro src/structs.h src/ui.c src/version.c
diffstat 48 files changed, 883 insertions(+), 377 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2012 Jan 04
+*eval.txt*	For Vim version 7.3.  Last change: 2012 Jan 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4814,6 +4814,10 @@ search({pattern} [, {flags} [, {stopline
 		Search for regexp pattern {pattern}.  The search starts at the
 		cursor position (you can use |cursor()| to set it).
 
+		If there is no match a 0 is returned and the cursor doesn't
+		move.  No error message is given.
+		When a match has been found its line number is returned.
+
 		{flags} is a String, which can contain these character flags:
 		'b'	search backward instead of forward
 		'c'	accept a match at the cursor position
@@ -4847,9 +4851,6 @@ search({pattern} [, {flags} [, {stopline
 		giving the argument.
 		{only available when compiled with the |+reltime| feature}
 
-		If there is no match a 0 is returned and the cursor doesn't
-		move.  No error message is given.
-		When a match has been found its line number is returned.
 							*search()-sub-match*
 		With the 'p' flag the returned value is one more than the
 		first sub-match in \(\).  One if none of them matched but the
@@ -5068,7 +5069,8 @@ setcmdpos({pos})					*setcmdpos()*
 		line.
 
 setline({lnum}, {text})					*setline()*
-		Set line {lnum} of the current buffer to {text}.
+		Set line {lnum} of the current buffer to {text}.  To insert
+		lines use |append()|.
 		{lnum} is used like with |getline()|.
 		When {lnum} is just below the last line the {text} will be
 		added as a new line.
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.3.  Last change: 2011 Aug 19
+*if_pyth.txt*   For Vim version 7.3.  Last change: 2012 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -222,8 +222,9 @@ Buffer objects represent vim buffers.  Y
 	- from indexing vim.buffers (|python-buffers|)
 	- from the "buffer" attribute of a window (|python-window|)
 
-Buffer objects have one read-only attribute - name - the full file name for
-the buffer.  They also have three methods (append, mark, and range; see below).
+Buffer objects have two read-only attributes - name - the full file name for
+the buffer, and number - the buffer number.  They also have three methods
+(append, mark, and range; see below).
 
 You can also treat buffer objects as sequence objects.  In this context, they
 act as if they were lists (yes, they are mutable) of strings, with each
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.3.  Last change: 2011 Sep 14
+*insert.txt*    For Vim version 7.3.  Last change: 2012 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1010,7 +1010,8 @@ number between zero and the cursor colum
 at the characters just before the cursor and including those characters that
 could be part of the completed item.  The text between this column and the
 cursor column will be replaced with the matches.  Return -1 if no completion
-can be done.
+can be done, the completion will be cancelled with an error message.  Return
+-2 to cancel silently.
 
 On the second invocation the arguments are:
    a:findstart  0
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.3.  Last change: 2011 Oct 22
+*map.txt*       For Vim version 7.3.  Last change: 2012 Feb 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -527,7 +527,7 @@ mappings.
 <LocalLeader> is just like <Leader>, except that it uses "maplocalleader"
 instead of "mapleader".  <LocalLeader> is to be used for mappings which are
 local to a buffer.  Example: >
-      :map <LocalLeader>q  \DoItNow
+      :map <buffer> <LocalLeader>A  oanother line<Esc>
 <
 In a global plugin <Leader> should be used and in a filetype plugin
 <LocalLeader>.  "mapleader" and "maplocalleader" can be equal.  Although, if
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.3.  Last change: 2011 Oct 20
+*netbeans.txt*  For Vim version 7.3.  Last change: 2012 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
@@ -266,7 +266,7 @@ mechanism.
 Netbeans messages are processed when Vim is idle, waiting for user input.
 When Vim is run in non-interactive mode, for example when running an automated
 test case that sources a Vim script, the idle loop may not be called often
-enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
+enough. In that case, insert |:sleep| commands in the Vim script. The |:sleep|
 command does invoke Netbeans messages processing.
 
 6.1 Kinds of messages		|nb-messages|
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.3.  Last change: 2011 Sep 26
+*pi_netrw.txt*  For Vim version 7.3.  Last change: 2012 Jan 26
 
 	    -----------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell, Jr.
@@ -43,7 +43,7 @@ 4.  Network-Oriented File Transfer......
 5.  Activation...........................................|netrw-activate|
 6.  Transparent Remote File Editing......................|netrw-transparent|
 7.  Ex Commands..........................................|netrw-ex|
-8.  Variables and Options................................|netrw-var|
+8.  Variables and Options................................|netrw-settings|
 9.  Browsing.............................................|netrw-browse|
       Introduction To Browsing...........................|netrw-intro-browse|
       Quick Reference: Maps..............................|netrw-browse-maps|
@@ -309,7 +309,7 @@ CHANGING USERID AND PASSWORD		*netrw-chg
 	:call NetUserPass("uid","password")	-- sets global uid and password
 
 NETRW VARIABLES AND SETTINGS				*netrw-variables* {{{2
-(also see: |netrw-browser-var| |netrw-protocol| |netrw-settings| |netrw-var|)
+(also see: |netrw-browser-var| |netrw-protocol| |netrw-settings|)
 
 Netrw provides a lot of variables which allow you to customize netrw to your
 preferences.  One way to look at them is via the command :NetrwSettings (see
@@ -2354,7 +2354,7 @@ settings.  You may change any of their v
 settings therein will be used.  One may also press "?" on any of the lines for
 help on what each of the variables do.
 
-(also see: |netrw-browser-var| |netrw-protocol| |netrw-var| |netrw-variables|)
+(also see: |netrw-browser-var| |netrw-protocol| |netrw-settings| |netrw-variables|)
 
 
 ==============================================================================
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2012 Jan 20
+*todo.txt*      For Vim version 7.3.  Last change: 2012 Feb 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -41,18 +41,27 @@ Discussion about canonicalization of Heb
 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'.
 
-Win32: When the taskbar is at the top of the screen creating the tabbar causes
-the window to move unnecessarily. (William E. Skeith III, 2012 Jan 12)
-Patch: 2012 Jan 13
-
-Patch for using DBCS encoding in user command. (Yasuhiro Matsumoto, 2012 Jan
-15)  Update Jan 17.
-
 Repeating search history entries. (Edwin Steiner, 2012 Jan 17)
 Jan 18: Caused by patch 7.3.265?
 
+Patch for '$' not being displayed for a change when 'cpoptions' contains "$".
+(Yasuhiro Matsumoto, 2012 Jan 28, patch by Hideki EIRAKU and Hirohito Higashi)
+
+Patch to speed up readfile(). (John Little, 2012 Feb 1)
+Adjustment by Charles Peacech, Feb 3.
+8   When editing a file with extremely long lines (e.g., an executable), the
+    "linerest" in readfile() is allocated twice to be able to copy what was
+    read so far.  Use realloc() instead?  Or split the line when allocating
+    memory fails and "linerest" is big (> 100000)?
+
+Patch to fix a crash when an xpm file is invalid. (Dave Bodenstab, 2012 Jan
+27)
+
 Hang in using VimEnter. (Alex Efros, 2012 Jan 14)
 
+Patch for behavior of "." in compatible mode. (Yasuhiro Matsumoto, patch by
+Hideki EIRAKU, 2012 Jan 28)
+
 ":cd" doesn't work when current directory path contains wildcards.
 finddir() has the same problem.  (Yukihiro Nakadaira, 2012 Jan 10)
 
@@ -70,8 +79,9 @@ Another one from Taro Muraoka, 2012 Jan 
 ":doau" says it triggers modeline.  Should this only happen for events used
 when loading a buffer?  (Kana Natsuno, 2011 Nov 7)
 
-Patch to fix "it" and "at" when there is a dash in the tag name.
-(Christian Brabandt, 2011 Nov 20)
+Patch for compiler warnings in if_perl. (James McCoy, 2011 Jan 30)
+
+Patch for X selection conversion. (Alex Efros, 2012 Jan 24)
 
 Patch to make 'shcf' default work better. (Benjamin Fritz, 2011 Nov 18)
     Win32: When 'shell' is cmd.exe this command fails:
@@ -83,6 +93,15 @@ Patch to make 'shcf' default work better
 Other way to start Mzscheme. Tim Brown, 2011 Oct 5: change main call.
 Later patch by Sergey Khorev, 2011 Oct 9.
 
+Patch to allow ! for :all and :sall, as documented. (Hirohito Higashi, 2012
+Jan 30)
+
+Patch for "tab drop hoge" moving current window. (Higashi, 2012 Jan 31)
+":tab drop buffer.c" always opens a new tab, also if buffer.c is already in an
+open window. (Herb Sitz, 2011 Nov 17)
+":tab drop filename" doesn't work nicely when "filename" is open in a window
+in another tab. (Tony Mechelynck, 2009 Feb 13)
+
 Patch to make InsertCharPre work better. (Yasuhiro Matsumoto, 2011 Oct 21)
 
 Patch to fix closed folds with "loadview". (Xavier de Gaye, 2011 Nov 25)
@@ -93,9 +112,24 @@ Or use expand('<sid>')?
 Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
 one)
 
+Win32: When the taskbar is at the top of the screen creating the tabbar causes
+the window to move unnecessarily. (William E. Skeith III, 2012 Jan 12)
+Patch: 2012 Jan 13  Needs more work (2012 Feb 2)
+
 Patch to highlight cursor line number. (Howard Buchholz (lhb), 2011 Oct 18)
 
-Patch for urxvt mouse support after shell command. (Issue 31)
+URXVT:
+- will get stuck if byte sequence does not containe expected semicolon.
+- Patch for urxvt mouse support after shell command. (Issue 31)
+- Use urxvt mouse support also in xterm.  Explanations:
+  http://www.midnight-commander.org/ticket/2662
+
+Patch for using QuickFixCmdPre for more commands. (Marcin Szamotulski, 2012
+Feb 1, update Feb 2)
+
+When running Vim in silent ex mode, an existing swapfile causes Vim to wait
+for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
+Do give the prompt? Quit with an error?
 
 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
@@ -128,13 +162,15 @@ 8   ":sign unplace * file={filename}" sh
     buffer={bufnr}".  So one can remove all signs for one file/buffer.
 
 Patch to add "onselected" callback for completion. (Taro Muraoka, 2011 Sep 24)
+Another for CompleteFuncOk. (Florian Klein, 2012 Jan 31)
+Name it "CompleteFuncDone".
+
+Patch for Make_mvc.mak and Make_ming.mak for Ruby support. (Yasuhiro
+Matsumoto, 2012 Jan 30)
 
 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)
-
 Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
 Patch Sep 18.
 
@@ -289,6 +325,8 @@ 30)
 Patch to addd TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
 May 24)  Update May 26.
 
+Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
+
 When a script contains "redir => s:foo" but doesn't end redirection, a
 following "redir" command gives an error for not being able to access s:foo.
 (ZyX, 2011 Mar 27)
@@ -949,9 +987,6 @@ try/catch not working when inside a for 
 ":tab help" always opens a new tab, while ":help" re-uses an existing window.
 Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
 
-":tab drop filename" doesn't work nicely when "filename" is open in a window
-in another tab. (Tony Mechelynck, 2009 Feb 13)
-
 Add ":nofold".  Range will apply without expanding to closed fold.
 
 Including NFA regexp code:
@@ -3228,10 +3263,6 @@ 7   Compile Ex commands to byte codes.  
     Add command to compile a vim script and add it to the file in-place.
     Split Ex command executing into a parsing and executing phase.
     Use compiled code for functions, while loops, etc.
-8   When editing a file with extremely long lines (e.g., an executable), the
-    "linerest" in readfile() is allocated twice to be able to copy what was
-    read so far.  Use realloc() instead?  Or split the line when allocating
-    memory fails and "linerest" is big (> 100000)?
 8   When defining autocommands (e.g., from $VIMRUNTIME/filetype.vim), need to
     compare each pattern with all existing patterns.  Use a hash code to avoid
     using strcmp() too often?
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.3.  Last change: 2011 Aug 02
+*undo.txt*      For Vim version 7.3.  Last change: 2012 Jan 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -267,7 +267,12 @@ respectively:
 		(the magic number at the start of the file is wrong), then
 		this fails, unless the ! was added.
 		If it exists and does look like an undo file it is
-		overwritten.
+		overwritten. If there is no undo-history, nothing will be 
+		written.
+		Implementation detail: Overwriting happens by first deleting
+		the existing file and then creating a new file with the same
+		name. So it is not possible to overwrite an existing undofile
+		in a write-protected directory.
 		{not in Vi}
 
 :rundo {file}	Read undo history from {file}.
--- 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:	2012 Jan 04
+" Last Change:	2012 Feb 03
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1264,7 +1264,7 @@ au BufNewFile,BufRead *.nqc			setf nqc
 au BufNewFile,BufRead *.nsi			setf nsis
 
 " OCAML
-au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly	setf ocaml
+au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit	setf ocaml
 
 " Occam
 au BufNewFile,BufRead *.occ			setf occam
--- a/runtime/ftplugin/debchangelog.vim
+++ b/runtime/ftplugin/debchangelog.vim
@@ -3,8 +3,8 @@
 " Maintainer:   Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers:   Michael Piefel <piefel@informatik.hu-berlin.de>
 "                       Stefano Zacchiroli <zack@debian.org>
-" Last Change:  2010-07-11
-" License:      GNU GPL, version 2.0 or later
+" Last Change:  2012-01-31
+" License:      Vim License
 " URL:          http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
 
 " Bug completion requires apt-listbugs installed for Debian packages or
--- a/runtime/ftplugin/ocaml.vim
+++ b/runtime/ftplugin/ocaml.vim
@@ -2,17 +2,18 @@
 " Maintainer:  David Baelde        <firstname.name@ens-lyon.org>
 "              Mike Leary          <leary@nwlink.com>
 "              Markus Mottl        <markus.mottl@gmail.com>
+"              Pierre Vittet       <pierre-vittet@pvittet.com>
 "              Stefano Zacchiroli  <zack@bononia.it>
 "              Vincent Aravantinos <firstname.name@imag.fr>
 " URL:         http://www.ocaml.info/vim/ftplugin/ocaml.vim
-" Last Change: 2010 Jul 10 - Bugfix, thanks to Pat Rondon
+" Last Change:
+"              2012 Jan 15 - Bugfix :reloading .annot file does not close
+"              splitted view (Pierre Vittet)
+"              2011 Nov 28 - Bugfix + support of multiple ml annotation file
+"              (Pierre Vittet)
+"              2010 Jul 10 - Bugfix, thanks to Pat Rondon
 "              2008 Jul 17 - Bugfix related to fnameescape (VA)
-"              2007 Sep 09 - Added .annot support for ocamlbuild, python not
-"                            needed anymore (VA)
-"              2006 May 01 - Added .annot support for file.whateverext (SZ)
-"	             2006 Apr 11 - Fixed an initialization bug; fixed ASS abbrev (MM)
-"              2005 Oct 13 - removed GPL; better matchit support (MM, SZ)
-"
+
 if exists("b:did_ftplugin")
   finish
 endif
@@ -287,24 +288,27 @@ endfunction
   endfun
 
     " After call:
-    " - b:annot_file_path :
+    "
+    "  Following information have been put in s:annot_file_list, using
+    "  annot_file_name name as key:
+    " - annot_file_path :
     "                       path to the .annot file corresponding to the
     "                       source file (dealing with ocamlbuild stuff)
-    " - b:_build_path:
+    " - _build_path:
     "                       path to the build directory even if this one is
     "                       not named '_build'
+    " - date_of_last annot:
+    "                       Set to 0 until we load the file. It contains the
+    "                       date at which the file has been loaded.
   function! s:Locate_annotation()
-    if !b:annotation_file_located
-
+    let annot_file_name = s:Fnameescape(expand('%:t:r')).'.annot'
+    if !exists ("s:annot_file_list[annot_file_name]")
       silent exe 'cd' s:Fnameescape(expand('%:p:h'))
-
-      let annot_file_name = s:Fnameescape(expand('%:r')).'.annot'
-
       " 1st case : the annot file is in the same directory as the buffer (no ocamlbuild)
-      let b:annot_file_path = findfile(annot_file_name,'.')
-      if b:annot_file_path != ''
-        let b:annot_file_path = getcwd().'/'.b:annot_file_path
-        let b:_build_path = ''
+      let annot_file_path = findfile(annot_file_name,'.')
+      if annot_file_path != ''
+        let annot_file_path = getcwd().'/'.annot_file_path
+        let _build_path = ''
       else
         " 2nd case : the buffer and the _build directory are in the same directory
         "      ..
@@ -312,12 +316,12 @@ endfunction
         "    /    \
         " _build  .ml
         "
-        let b:_build_path = finddir('_build','.')
-        if b:_build_path != ''
-          let b:_build_path = getcwd().'/'.b:_build_path
-          let b:annot_file_path           = findfile(annot_file_name,'_build')
-          if b:annot_file_path != ''
-            let b:annot_file_path = getcwd().'/'.b:annot_file_path
+        let _build_path = finddir('_build','.')
+        if _build_path != ''
+          let _build_path = getcwd().'/'._build_path
+          let annot_file_path           = findfile(annot_file_name,'_build')
+          if annot_file_path != ''
+            let annot_file_path = getcwd().'/'.annot_file_path
           endif
         else
           " 3rd case : the _build directory is in a directory higher in the file hierarchy
@@ -330,46 +334,54 @@ endfunction
           "            \
           "           .ml
           "
-          let b:_build_path = finddir('_build',';')
-          if b:_build_path != ''
-            let project_path                = substitute(b:_build_path,'/_build$','','')
+          let _build_path = finddir('_build',';')
+          if _build_path != ''
+            let project_path                = substitute(_build_path,'/_build$','','')
             let path_relative_to_project    = s:Fnameescape(substitute(expand('%:p:h'),project_path.'/','',''))
-            let b:annot_file_path           = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
+            let annot_file_path           = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
           else
-            let b:annot_file_path = findfile(annot_file_name,'**')
+            let annot_file_path = findfile(annot_file_name,'**')
             "4th case : what if the user decided to change the name of the _build directory ?
             "           -> we relax the constraints, it should work in most cases
-            if b:annot_file_path != ''
+            if annot_file_path != ''
               " 4a. we suppose the renamed _build directory is in the current directory
-              let b:_build_path = matchstr(b:annot_file_path,'^[^/]*')
-              if b:annot_file_path != ''
-                let b:annot_file_path = getcwd().'/'.b:annot_file_path
-                let b:_build_path     = getcwd().'/'.b:_build_path
+              let _build_path = matchstr(annot_file_path,'^[^/]*')
+              if annot_file_path != ''
+                let annot_file_path = getcwd().'/'.annot_file_path
+                let _build_path     = getcwd().'/'._build_path
               endif
             else
+              let annot_file_name = ''
+              "(Pierre Vittet: I have commented 4b because this was chrashing
+              "my vim (it produced infinite loop))
+              "
               " 4b. anarchy : the renamed _build directory may be higher in the hierarchy
               " this will work if the file for which we are looking annotations has a unique name in the whole project
               " if this is not the case, it may still work, but no warranty here
-              let b:annot_file_path = findfile(annot_file_name,'**;')
-              let project_path      = s:Find_common_path(b:annot_file_path,expand('%:p:h'))
-              let b:_build_path       = matchstr(b:annot_file_path,project_path.'/[^/]*')
+              "let annot_file_path = findfile(annot_file_name,'**;')
+              "let project_path      = s:Find_common_path(annot_file_path,expand('%:p:h'))
+              "let _build_path       = matchstr(annot_file_path,project_path.'/[^/]*')
             endif
           endif
         endif
       endif
 
-      if b:annot_file_path == ''
+      if annot_file_path == ''
         throw 'E484: no annotation file found'
       endif
 
       silent exe 'cd' '-'
-
-      let b:annotation_file_located = 1
+      let s:annot_file_list[annot_file_name]= [annot_file_path, _build_path, 0]
     endif
   endfun
 
-  " This in order to locate the .annot file only once
-  let b:annotation_file_located = 0
+  " This variable contain a dictionnary of list. Each element of the dictionnary
+  " represent an annotation system. An annotation system is a list with :
+  " - annotation file name as it's key
+  " - annotation file path as first element of the contained list
+  " - build path as second element of the contained list
+  " - annot_file_last_mod (contain the date of .annot file) as third element
+  let s:annot_file_list = {}
 
 " 2. Finding the type information in the annotation file
 
@@ -379,16 +391,17 @@ endfunction
       " After call:
       " The current buffer is now the one containing the .annot file.
       " We manage to keep all this hidden to the user's eye.
-    function! s:Enter_annotation_buffer()
+    function! s:Enter_annotation_buffer(annot_file_path)
       let s:current_pos = getpos('.')
       let s:current_hidden = &l:hidden
       set hidden
       let s:current_buf = bufname('%')
-      if bufloaded(b:annot_file_path)
-        silent exe 'keepj keepalt' 'buffer' s:Fnameescape(b:annot_file_path)
+      if bufloaded(a:annot_file_path)
+        silent exe 'keepj keepalt' 'buffer' s:Fnameescape(a:annot_file_path)
       else
-        silent exe 'keepj keepalt' 'view' s:Fnameescape(b:annot_file_path)
+        silent exe 'keepj keepalt' 'view' s:Fnameescape(a:annot_file_path)
       endif
+      call setpos(".", [0, 0 , 0 , 0])
     endfun
 
       " After call:
@@ -402,21 +415,29 @@ endfunction
       " After call:
       "   The annot file is loaded and assigned to a buffer.
       "   This also handles the modification date of the .annot file, eg. after a
-      "   compilation.
-    function! s:Load_annotation()
-      if bufloaded(b:annot_file_path) && b:annot_file_last_mod < getftime(b:annot_file_path)
-        call s:Enter_annotation_buffer()
-        silent exe "bunload"
-        call s:Exit_annotation_buffer()
+      "   compilation (return an updated annot_file_list).
+    function! s:Load_annotation(annot_file_name)
+      let annot = s:annot_file_list[a:annot_file_name]
+      let annot_file_path = annot[0]
+      let annot_file_last_mod = 0
+      if exists("annot[2]")
+        let annot_file_last_mod = annot[2]
       endif
-      if !bufloaded(b:annot_file_path)
-        call s:Enter_annotation_buffer()
+      if bufloaded(annot_file_path) && annot_file_last_mod < getftime(annot_file_path)
+        " if there is a more recent file
+        let nr = bufnr(annot_file_path)
+        silent exe 'keepj keepalt' 'bunload' nr
+      endif
+      if !bufloaded(annot_file_path)
+        call s:Enter_annotation_buffer(annot_file_path)
         setlocal nobuflisted
         setlocal bufhidden=hide
         setlocal noswapfile
         setlocal buftype=nowrite
         call s:Exit_annotation_buffer()
-        let b:annot_file_last_mod = getftime(b:annot_file_path)
+        let annot[2] = getftime(annot_file_path)
+        " List updated with the new date
+        let s:annot_file_list[a:annot_file_name] = annot
       endif
     endfun
 
@@ -466,8 +487,9 @@ endfunction
       "In:  the pattern to look for in order to match the block
       "Out: the type information (calls s:Match_data)
       " Should be called in the annotation buffer
-    function! s:Extract_type_data(block_pattern)
-      call s:Enter_annotation_buffer()
+    function! s:Extract_type_data(block_pattern, annot_file_name)
+      let annot_file_path = s:annot_file_list[a:annot_file_name][0]
+      call s:Enter_annotation_buffer(annot_file_path)
       try
         if search(a:block_pattern,'e') == 0
           throw "no_annotation"
@@ -527,9 +549,9 @@ endfunction
 
       "In:  the current mode (eg. "visual", "normal", etc.)
       "Out: the type information (calls s:Extract_type_data)
-    function! s:Get_type(mode)
+    function! s:Get_type(mode, annot_file_name)
       let [lin1,lin2,col1,col2] = s:Match_borders(a:mode)
-      return s:Extract_type_data(s:Block_pattern(lin1,lin2,col1,col2))
+      return s:Extract_type_data(s:Block_pattern(lin1,lin2,col1,col2), a:annot_file_name)
     endfun
 
   "d. main
@@ -537,9 +559,10 @@ endfunction
       "After call: the type information is displayed
     if !exists("*Ocaml_get_type")
       function Ocaml_get_type(mode)
+        let annot_file_name = s:Fnameescape(expand('%:t:r')).'.annot'
         call s:Locate_annotation()
-        call s:Load_annotation()
-        return s:Get_type(a:mode)
+        call s:Load_annotation(annot_file_name)
+        return s:Get_type(a:mode, annot_file_name)
       endfun
     endif
 
--- a/runtime/indent/ocaml.vim
+++ b/runtime/indent/ocaml.vim
@@ -1,12 +1,12 @@
 " Vim indent file
 " Language:     OCaml
-" Maintainers:	Jean-Francois Yuen   <jfyuen@happycoders.org>
-"		Mike Leary	     <leary@nwlink.com>
-"		Markus Mottl	     <markus.mottl@gmail.com>
-" URL:		http://www.ocaml.info/vim/indent/ocaml.vim
-" Last Change:  2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
-"		2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
-"		2005 Apr 11 - Fixed an indentation bug concerning "let" (MM)
+" Maintainers:  Jean-Francois Yuen   <jfyuen@happycoders.org>
+"               Mike Leary           <leary@nwlink.com>
+"               Markus Mottl         <markus.mottl@gmail.com>
+" URL:          http://www.ocaml.info/vim/indent/ocaml.vim
+" Last Change:  2010 Sep 04 - Added an indentation improvement by Mark Weber
+"               2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
+"               2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -44,7 +44,7 @@ let s:obj = '^\s*\(constraint\|inherit\|
 let s:type = '^\s*\%(class\|let\|type\)\>.*='
 
 " Skipping pattern, for comments
-function s:GetLineWithoutFullComment(lnum)
+function! s:GetLineWithoutFullComment(lnum)
  let lnum = prevnonblank(a:lnum - 1)
  let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '')
  while lline =~ '^\s*$' && lnum > 0
@@ -55,7 +55,7 @@ function s:GetLineWithoutFullComment(lnu
 endfunction
 
 " Indent for ';;' to match multiple 'let'
-function s:GetInd(lnum, pat, lim)
+function! s:GetInd(lnum, pat, lim)
  let llet = search(a:pat, 'bW')
  let old = indent(a:lnum)
  while llet > 0
@@ -70,18 +70,18 @@ function s:GetInd(lnum, pat, lim)
 endfunction
 
 " Indent pairs
-function s:FindPair(pstart, pmid, pend)
+function! s:FindPair(pstart, pmid, pend)
  call search(a:pend, 'bW')
  return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
 endfunction
 
 " Indent 'let'
-function s:FindLet(pstart, pmid, pend)
+function! s:FindLet(pstart, pmid, pend)
  call search(a:pend, 'bW')
  return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ s:beflet'))
 endfunction
 
-function GetOCamlIndent()
+function! GetOCamlIndent()
  " Find a non-commented line above the current line.
  let lnum = s:GetLineWithoutFullComment(v:lnum)
 
@@ -239,6 +239,20 @@ function GetOCamlIndent()
  elseif lline =~ '^\s*(\*' && line =~ '^\s*\*'
    let ind = ind + 1
 
+ else
+ " Don't change indentation of this line
+ " for new lines (indent==0) use indentation of previous line
+
+ " This is for preventing removing indentation of these args:
+ "   let f x =
+ "     let y = x + 1 in
+ "     Printf.printf
+ "       "o"           << here
+ "       "oeuth"       << don't touch indentation
+
+   let i = indent(v:lnum)
+   return i == 0 ? ind : i
+
  endif
 
  " Subtract a 'shiftwidth' after lines matching 'match ... with parser':
--- a/runtime/syntax/awk.vim
+++ b/runtime/syntax/awk.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	awk, nawk, gawk, mawk
-" Maintainer:	Antonio Colombo <azc10@yahoo.com>
-" Last Change:	2005 Mar 16
+" Maintainer:	Antonio Colombo <azc100@gmail.com>
+" Last Change:	2012 Jan 31
 
 " AWK  ref.  is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
 " The AWK Programming Language, Addison-Wesley, 1988
@@ -25,6 +25,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " A bunch of useful Awk keywords
 " AWK  ref. p. 188
 syn keyword awkStatement	break continue delete exit
@@ -213,4 +216,7 @@ endif
 
 let b:current_syntax = "awk"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -2,7 +2,7 @@
 "
 " Language:	Logtalk
 " Maintainer:	Paulo Moura <pmoura@logtalk.org>
-" Last Change:	Oct 31, 2008
+" Last Change:	February 4, 2012
 
 
 " Quit when a syntax file was already loaded:
@@ -13,6 +13,8 @@ elseif exists("b:current_syntax")
 	finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 " Logtalk is case sensitive:
 
@@ -75,8 +77,13 @@ syn region	logtalkEntityRel	matchgroup=l
 
 " Logtalk directives
 
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- if("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- elif("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn match	logtalkDirTag		":- else\."
+syn match	logtalkDirTag		":- endif\."
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- alias("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- calls("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- coinductive("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- encoding("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- initialization("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- info("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
@@ -89,17 +96,27 @@ syn region	logtalkDir		matchgroup=logtal
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- protected("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- private("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_predicate("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_non_terminal("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- op("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_logtalk_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- synchronized("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn match	logtalkDirTag		":- synchronized\."
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- uses("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn match	logtalkDirTag		":- threaded\."
 
 
+" Prolog directives
+
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- ensure_loaded("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- include("     	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_prolog_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+
+
 " Module directives
 
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- export("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- reexport("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- use_module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 
 
@@ -109,7 +126,7 @@ syn match	logtalkBuiltIn		"\<\(abolish\|
 
 syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze("
 
-syn match	logtalkBuiltIn		"\<complements_object\ze("
+syn match	logtalkBuiltIn		"\<co\(mplements_object\|nforms_to_protocol\)\ze("
 syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\|category\)\ze("
 syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze("
 syn match	logtalkBuiltIn		"\<\(instantiat\|specializ\)es_class\ze("
@@ -119,7 +136,7 @@ syn match	logtalkBuiltIn		"\<current_eve
 
 syn match	logtalkBuiltIn		"\<\(curren\|se\)t_logtalk_flag\ze("
 
-syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\)\)\ze("
+syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\)\ze("
 
 syn match	logtalkBuiltIn		"\<\(for\|retract\)all\ze("
 
@@ -145,7 +162,7 @@ syn match	logtalkBuiltInMethod	"\<f\(ind
 syn match	logtalkBuiltInMethod	"\<before\ze("
 syn match	logtalkBuiltInMethod	"\<after\ze("
 
-syn match	logtalkBuiltInMethod	"\<expand_term\ze("
+syn match	logtalkBuiltInMethod	"\<expand_\(goal\|term\)\ze("
 syn match	logtalkBuiltInMethod	"\<\(goal\|term\)_expansion\ze("
 syn match	logtalkBuiltInMethod	"\<phrase\ze("
 
@@ -182,12 +199,14 @@ syn match	logtalkKeyword		"\<var\ze("
 syn match	logtalkKeyword		"\<atom\(ic\)\?\ze("
 syn match	logtalkKeyword		"\<integer\ze("
 syn match	logtalkKeyword		"\<float\ze("
-syn match	logtalkKeyword		"\<compound\ze("
+syn match	logtalkKeyword		"\<c\(allable\|ompound\)\ze("
 syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze("
+syn match	logtalkKeyword		"\<ground\ze("
 
 
 " Term comparison
 
+syn match	logtalkKeyword		"\<compare\ze("
 syn match	logtalkOperator		"@=<"
 syn match	logtalkOperator		"=="
 syn match	logtalkOperator		"\\=="
@@ -202,6 +221,7 @@ syn match	logtalkKeyword		"\<functor\ze(
 syn match	logtalkKeyword		"\<arg\ze("
 syn match	logtalkOperator		"=\.\."
 syn match	logtalkKeyword		"\<copy_term\ze("
+syn match	logtalkKeyword		"\<numbervars\ze("
 
 
 " Arithemtic evaluation
@@ -250,6 +270,7 @@ syn match	logtalkKeyword		"\<\(current_\
 " Logic and control
 
 syn match	logtalkOperator		"\\+"
+syn match	logtalkKeyword		"\<ignore\ze("
 syn match	logtalkKeyword		"\<once\ze("
 syn match	logtalkKeyword		"\<repeat\>"
 
@@ -269,6 +290,11 @@ syn match	logtalkKeyword		"\<halt\ze("
 syn match	logtalkKeyword		"\<halt\>"
 
 
+" Sorting
+
+syn match	logtalkKeyword		"\<\(key\)\?sort\ze("
+
+
 " Evaluable functors
 
 syn match	logtalkOperator		"+"
@@ -277,6 +303,8 @@ syn match	logtalkOperator		"\*"
 syn match	logtalkOperator		"//"
 syn match	logtalkOperator		"/"
 syn match	logtalkKeyword		"\<r\(ound\|em\)\ze("
+syn match	logtalkKeyword		"\<e\>"
+syn match	logtalkKeyword		"\<pi\>"
 syn match	logtalkKeyword		"\<rem\>"
 syn match	logtalkKeyword		"\<mod\ze("
 syn match	logtalkKeyword		"\<mod\>"
@@ -311,7 +339,12 @@ syn match	logtalkOperator		"\\"
 syn match	logtalkOperator		"|"
 
 
-" Logtalk numbers
+" Logtalk existential quantifier operator
+
+syn match	logtalkOperator		"\^"
+
+
+" Logtalk numbers 
 
 syn match	logtalkNumber		"\<\d\+\>"
 syn match	logtalkNumber		"\<\d\+\.\d\+\>"
@@ -333,6 +366,17 @@ syn match	logtalkOperator		"\."
 syn region	logtalkBlockComment	start="/\*"	end="\*/"	fold
 syn match	logtalkLineComment	"%.*"
 
+syn cluster	logtalkComment		contains=logtalkBlockComment,logtalkLineComment
+
+
+" Logtalk conditional compilation folding
+
+syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
+syn region logtalkIf transparent fold keepend start=":- if(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
+syn region logtalkElseIf transparent fold keepend start=":- elif(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
+syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP
+
+
 
 " Logtalk entity folding
 
@@ -362,6 +406,11 @@ if version >= 508 || !exists("did_logtal
 	HiLink	logtalkOpenEntityDir	Normal
 	HiLink	logtalkOpenEntityDirTag	PreProc
 
+	HiLink	logtalkIfContainer	PreProc
+	HiLink	logtalkIf		PreProc
+	HiLink	logtalkElseIf		PreProc
+	HiLink	logtalkElse		PreProc
+
 	HiLink	logtalkEntity		Normal
 
 	HiLink	logtalkEntityRel	Normal
@@ -396,3 +445,6 @@ endif
 
 
 let b:current_syntax = "logtalk"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/mail.vim
+++ b/runtime/syntax/mail.vim
@@ -2,13 +2,16 @@
 " Language:		Mail file
 " Previous Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de>
 " Maintainer:		GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
-" Last Change:		Sat 03 Dec 2011 10:34:27 PM EST
+" Last Change:		Thu 02 Feb 2012 08:47:04 PM EST
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " The mail header is recognized starting with a "keyword:" line and ending
 " with an empty line or other line that can't be in the header. All lines of
 " the header are highlighted. Headers of quoted messages (quoted with >) are
@@ -40,7 +43,7 @@ syn match	mailHeaderKey	contained contai
 syn region	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
 syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
 syn match	mailHeaderKey	contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
-syn match	mailSubject	contained contains=@NoSpell "\v^subject:.*$" fold
+syn match	mailSubject	contained "\v^subject:.*$" fold
 syn match	mailSubject	contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
 
 " Anything in the header between < and > is an email address
@@ -104,3 +107,6 @@ hi def link mailQuoteExp5	mailQuoted5
 hi def link mailQuoteExp6	mailQuoted6
 
 let b:current_syntax = "mail"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/masm.vim
+++ b/runtime/syntax/masm.vim
@@ -2,8 +2,8 @@
 " Language:	Microsoft Macro Assembler (80x86)
 " Orig Author:	Rob Brady <robb@datatone.com>
 " Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
-" Last Change:	$Date: 2007/04/21 13:20:15 $
-" $Revision: 1.44 $
+" Last Change:	$Date: 2012/02/04 12:45:39 $
+" $Revision: 1.46 $
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -13,6 +13,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 
@@ -184,6 +187,12 @@ syn keyword masmRegister	DR0 DR1 DR2 DR3
 syn keyword masmRegister	TR3 TR4 TR5 TR6 TR7
 syn match   masmRegister	"ST([0-7])"
 
+" x86-64 registers
+syn keyword masmRegister	RAX RBX RCX RDX RSI RDI RBP RSP
+syn keyword masmRegister	R8 R9 R10 R11 R12 R13 R14 R15
+syn keyword masmRegister	R8D R9D R10D R11D R12D R13D R14D R15D
+syn keyword masmRegister	R8W R9W R10W R11W R12W R13W R14W R15W
+syn keyword masmRegister	R8B R9B R10B R11B R12B R13B R14B R15B
 
 " Instruction prefixes
 syn keyword masmOpcode		LOCK REP REPE REPNE REPNZ REPZ
@@ -340,4 +349,7 @@ endif
 
 let b:current_syntax = "masm"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8
--- a/runtime/syntax/mma.vim
+++ b/runtime/syntax/mma.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
 " Language:     Mathematica
 " Maintainer:   steve layland <layland@wolfram.com>
-" Last Change:  Thu May 19 21:36:04 CDT 2005
+" Last Change:  2012 Feb 03 by Thilo Six
 " Source:       http://members.wri.com/layland/vim/syntax/mma.vim
 "               http://vim.sourceforge.net/scripts/script.php?script_id=1273
 " Id:           $Id: mma.vim,v 1.4 2006/04/14 20:40:38 vimboss Exp $
 " NOTE:
-" 
+"
 " Empty .m files will automatically be presumed as Matlab files
 " unless you have the following in your .vimrc:
 "
@@ -14,7 +14,7 @@
 "
 " I also recommend setting the default 'Comment' hilighting to something
 " other than the color used for 'Function', since both are plentiful in
-" most mathematica files, and they are often the same color (when using 
+" most mathematica files, and they are often the same color (when using
 " background=dark).
 "
 " Credits:
@@ -24,11 +24,11 @@
 "    from the Java vim syntax file by Claudio Fleiner.  Thanks!
 " o  Everything else written by steve <layland@wolfram.com>
 "
-" Bugs: 
-" o  Vim 6.1 didn't really have support for character classes 
+" Bugs:
+" o  Vim 6.1 didn't really have support for character classes
 "    of other named character classes.  For example, [\a\d]
 "    didn't work.  Therefore, a lot of this code uses explicit
-"    character classes instead: [0-9a-zA-Z] 
+"    character classes instead: [0-9a-zA-Z]
 "
 " TODO:
 "   folding
@@ -41,6 +41,9 @@ elseif exists("b:current_syntax")
     finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Group Definitions:
 syntax cluster mmaNotes contains=mmaTodo,mmaFixme
 syntax cluster mmaComments contains=mmaComment,mmaFunctionComment,mmaItem,mmaFunctionTitle,mmaCommentStar
@@ -58,7 +61,7 @@ syntax cluster mmaTop contains=mmaOperat
 syntax keyword mmaVariable True False None Automatic All Null C General
 
 " mathematical constants:
-syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher 
+syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher
 
 " stream data / atomic heads:
 syntax keyword mmaVariable Byte Character Expression Number Real String Word EndOfFile Integer Symbol
@@ -80,7 +83,7 @@ syntax keyword mmaVariable Above Below L
 syntax keyword mmaVariable Black Blue Brown Cyan Gray Green Magenta Orange Pink Purple Red White Yellow
 
 " function attributes
-syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub 
+syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub
 
 " Comment Sections:
 "   this:
@@ -135,25 +138,25 @@ syntax region mmaCommentString oneline s
 
 " Patterns:
 "   Each pattern marker below can be Blank[] (_), BlankSequence[] (__)
-"   or BlankNullSequence[] (___).  Most examples below can also be 
+"   or BlankNullSequence[] (___).  Most examples below can also be
 "   combined, for example Pattern tests with Default values.
-"   
+"
 "   _Head                   Anonymous patterns
-"   name_Head 
+"   name_Head
 "   name:(_Head|_Head2)     Named patterns
-"    
+"
 "   _Head : val
 "   name:_Head:val          Default values
 "
-"   _Head?testQ, 
+"   _Head?testQ,
 "   _Head?(test[#]&)        Pattern tests
 "
 "   name_Head/;test[name]   Conditionals
-"   
+"
 "   _Head:.                 Predefined Default
 "
 "   .. ...                  Pattern Repeat
-   
+
 syntax match mmaPatternError "\%(_\{4,}\|)\s*&\s*)\@!\)" contained
 
 "pattern name:
@@ -172,7 +175,7 @@ syntax match mmaPattern "[A-Za-z0-9`]*_\
 "   >= <= < >
 "   += -= *=
 "   /= ++ --    Math
-"   ^* 
+"   ^*
 "   -> :>       Rules
 "   @@ @@@      Apply
 "   /@ //@      Map
@@ -200,7 +203,7 @@ syntax match mmaPureFunction "#\%(#\|\d\
 syntax match mmaPureFunction "&"
 
 " Named Functions:
-" Since everything is pretty much a function, get this straight 
+" Since everything is pretty much a function, get this straight
 " from context
 syntax match mmaGenericFunction "[A-Za-z0-9`]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator
 syntax match mmaGenericFunction "\~\s*[^~]\+\s*\~"hs=s+1,he=e-1 contains=mmaOperator,mmaBoring
@@ -223,7 +226,7 @@ syntax match mmaError "\*)" containedin=
 syntax match mmaError "\%([/]{3,}\|[&:|+*?~-]\{3,}\|[.=]\{4,}\|_\@<=\.\{2,}\|`\{2,}\)" containedin=ALLBUT,@mmaComments,@mmaStrings
 
 " Punctuation:
-" things that shouldn't really be highlighted, or highlighted 
+" things that shouldn't really be highlighted, or highlighted
 " in they're own group if you _really_ want. :)
 "  ( ) { }
 " TODO - use Delimiter group?
@@ -251,9 +254,9 @@ set commentstring='(*%s*)'
 
 "function MmaFoldText()
 "    let line = getline(v:foldstart)
-"    
+"
 "    let lines = v:foldend-v:foldstart+1
-"    
+"
 "    let sub = substitute(line, '(\*\+|\*\+)|[-*_]\+', '', 'g')
 "
 "    if match(line, '(\*') != -1
@@ -264,7 +267,7 @@ set commentstring='(*%s*)'
 "
 "    return v:folddashes.' '.lines.' '.sub
 "endf
-    
+
 "this is slow for computing folds, but it does so accurately
 syntax sync fromstart
 
@@ -288,8 +291,8 @@ if version >= 508 || !exists("did_mma_sy
 		command -nargs=+ HiLink hi def link <args>
 	endif
 
-    " NOTE - the following links are not guaranteed to 
-    " look good under all colorschemes.  You might need to 
+    " NOTE - the following links are not guaranteed to
+    " look good under all colorschemes.  You might need to
     " :so $VIMRUNTIME/syntax/hitest.vim and tweak these to
     " look good in yours
 
@@ -323,3 +326,6 @@ if version >= 508 || !exists("did_mma_sy
 endif
 
 let b:current_syntax = "mma"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/monk.vim
+++ b/runtime/syntax/monk.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: Monk (See-Beyond Technologies)
 " Maintainer: Mike Litherland <litherm@ccf.org>
-" Last Change: March 6, 2002
+" Last Change: 2012 Feb 03 by Thilo Six
 
 " This syntax file is good enough for my needs, but others
 " may desire more features.  Suggestions and bug reports
@@ -29,6 +29,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 " Fascist highlighting: everything that doesn't fit the rules is an error...
@@ -226,3 +229,6 @@ if version >= 508 || !exists("did_monk_s
 endif
 
 let b:current_syntax = "monk"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/mrxvtrc.vim
+++ b/runtime/syntax/mrxvtrc.vim
@@ -1,13 +1,16 @@
+" Description	: Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
 " Created	: Wed 26 Apr 2006 01:20:53 AM CDT
-" 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)
+" Modified	: Thu 02 Feb 2012 08:37:45 PM EST
+" Maintainer	: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case match
 
 " Errors
@@ -274,3 +277,6 @@ hi def link mrxvtrcCmd		PreProc
 hi def link mrxvtrcSubwin	mrxvtrcStrVal
 
 let b:current_syntax = "mrxvtrc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/muttrc.vim
+++ b/runtime/syntax/muttrc.vim
@@ -2,9 +2,9 @@
 " Language:	Mutt setup files
 " Original:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
 " Maintainer:	Kyle Wheeler <kyle-muttrc.vim@memoryhole.net>
-" Last Change:	9 Aug 2010
+" Last Change:	2 Feb 2012
 
-" This file covers mutt version 1.5.20 (and most of the mercurial tip)
+" This file covers mutt version 1.5.21 (and most of the mercurial tip)
 " Included are also a few features from 1.4.2.1
 
 " For version 5.x: Clear all syntax items
@@ -15,6 +15,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Set the keyword characters
 if version < 600
   set isk=@,48-57,_,-
@@ -22,6 +25,11 @@ else
   setlocal isk=@,48-57,_,-
 endif
 
+" handling optional variables
+if !exists("use_mutt_sidebar")
+  let use_mutt_sidebar=0
+endif
+
 syn match muttrcComment		"^# .*$" contains=@Spell
 syn match muttrcComment		"^#[^ ].*$"
 syn match muttrcComment		"^#$"
@@ -98,7 +106,7 @@ syn region  muttrcKey		contained start=+
 syn region  muttrcKey		contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
 syn match   muttrcKeyName	contained "\<f\%(\d\|10\)\>"
 syn match   muttrcKeyName	contained "\\[trne]"
-syn match   muttrcKeyName	contained "\c<\%(BackSpace\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
+syn match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
 syn match   muttrcKeyName	contained "<F[0-9]\+>"
 
 syn keyword muttrcVarBool	skipwhite contained allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split auto_tag autoedit beep beep_new nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -207,6 +215,9 @@ syn keyword muttrcVarBool	skipwhite cont
 syn keyword muttrcVarBool	skipwhite contained invthread_received invtilde invuncollapse_jump invuse_8bitmime nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarBool	skipwhite contained invuse_domain invuse_envelope_from invuse_from invuse_idn invuse_ipv6 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarBool	skipwhite contained invuser_agent invwait_key invweed invwrap_search invwrite_bcc nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarBool skipwhite contained sidebar_visible sidebar_sort nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 syn keyword muttrcVarQuad	skipwhite contained abort_nosubject abort_unmodified bounce copy nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarQuad	skipwhite contained crypt_verify_sig delete fcc_attach forward_edit honor_followup_to nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -232,6 +243,9 @@ syn keyword muttrcVarNum	skipwhite conta
 syn keyword muttrcVarNum	skipwhite contained score_threshold_flag score_threshold_read search_context sendmail_wait sleep_time nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarNum	skipwhite contained smime_timeout ssl_min_dh_prime_bits timeout time_inc wrap wrapmargin nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarNum	skipwhite contained write_inc nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarNum skipwhite contained sidebar_width nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 syn match muttrcFormatErrors contained /%./
 
@@ -372,6 +386,9 @@ syn keyword muttrcVarStr	contained skipw
 syn keyword muttrcVarStr	contained skipwhite smtp_url smtp_authenticators smtp_pass sort sort_alias sort_aux nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarStr	contained skipwhite sort_browser spam_separator spoolfile ssl_ca_certificates_file ssl_client_cert nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarStr	contained skipwhite status_chars tmpdir to_chars tunnel visual nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarStr skipwhite contained sidebar_delim nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 " Present in 1.4.2.1 (pgp_create_traditional was a bool then)
 syn keyword muttrcVarBool	contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -417,7 +434,10 @@ syn keyword muttrcSubscribeKeyword	unsub
 syn keyword muttrcAlternateKeyword contained alternates unalternates
 syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
 
-syn match muttrcVariable	contained "\\\@<!\$[a-zA-Z_-]\+"
+" muttrcVariable includes a prefix because partial strings are considered
+" valid.
+syn match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
+syn match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
 syn match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"
 
 syn match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
@@ -450,6 +470,9 @@ syn match muttrcFunction	contained "\<un
 syn match muttrcFunction	contained "\<collapse-\%(parts\|thread\|all\)\>"
 syn match muttrcFunction	contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
 syn match muttrcFunction	contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>"
+if use_mutt_sidebar == 1
+    syn match muttrcFunction    contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
+endif
 syn match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
 
 syn keyword muttrcCommand	set     skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -523,7 +546,7 @@ syn match muttrcSimplePat contained "!\?
 syn match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable
 syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
 syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
-syn match muttrcSimplePat contained "!\?\^\?[=][bh]\s*" nextgroup=muttrcSimplePatString
+syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
 syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
 "syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
 syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
@@ -557,9 +580,12 @@ syn region muttrcColorRXPat	contained st
 syn region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
 syn keyword muttrcColorField	contained attachment body bold error hdrdefault header index indicator markers message normal quoted search signature status tilde tree underline
 syn match   muttrcColorField	contained "\<quoted\d\=\>"
+if use_mutt_sidebar == 1
+    syn keyword muttrcColorField contained sidebar_new
+endif
 syn keyword muttrcColor	contained black blue cyan default green magenta red white yellow
 syn keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
-syn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,2}\>"
+syn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
 " Now for the structure of the color line
 syn match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
 syn match muttrcColorBG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
@@ -641,7 +667,7 @@ if version >= 508 || !exists("did_muttrc
   HiLink muttrcSetQuadAssignment	Boolean
   HiLink muttrcSetStrAssignment	String
   HiLink muttrcEmail		Special
-  HiLink muttrcVariable		Special
+  HiLink muttrcVariableInner	Special
   HiLink muttrcEscapedVariable	String
   HiLink muttrcHeader		Type
   HiLink muttrcKeySpecial	SpecialChar
@@ -765,4 +791,6 @@ endif
 
 let b:current_syntax = "muttrc"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 "EOF	vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim
--- a/runtime/syntax/nroff.vim
+++ b/runtime/syntax/nroff.vim
@@ -1,8 +1,8 @@
 " VIM syntax file
 " Language:	nroff/groff
-" Maintainer:	Alejandro Lpez-Valencia <dradul@yahoo.com>
-" URL:		http://dradul.tripod.com/vim
-" Last Change:	2006 Apr 14
+" Maintainer:	Pedro Alejandro Lpez-Valencia <palopezv@gmail.com>
+" URL:		http://vorbote.wordpress.com/
+" Last Change:	2012 Feb 2
 "
 " {{{1 Acknowledgements
 "
@@ -31,6 +31,9 @@ elseif exists("b:current_syntax")
 	finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 "
 " {{{1 plugin settings...
 "
@@ -256,4 +259,6 @@ endif
 
 let b:current_syntax = "nroff"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim600: set fdm=marker fdl=2:
--- a/runtime/syntax/opl.vim
+++ b/runtime/syntax/opl.vim
@@ -1,6 +1,7 @@
 " Vim syntax file
 " Language:	OPL
 " Maintainer:	Czo <Olivier.Sirol@lip6.fr>
+" Last Change:	2012 Feb 03 by Thilo Six
 " $Id: opl.vim,v 1.1 2004/06/13 17:34:11 vimboss Exp $
 
 " Open Psion Language... (EPOC16/EPOC32)
@@ -13,6 +14,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " case is not significant
 syn case ignore
 
@@ -93,4 +97,6 @@ endif
 
 let b:current_syntax = "opl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/rpl.vim
+++ b/runtime/syntax/rpl.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	RPL/2
 " Version:	0.15.15 against RPL/2 version 4.00pre7i
-" Last Change:	2003 august 24
+" Last Change:	2012 Feb 03 by Thilo Six
 " Maintainer:	Jol BERTRAND <rpl2@free.fr>
 " URL:		http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
 " Credits:	Nothing
@@ -14,6 +14,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Keyword characters (not used)
 " set iskeyword=33-127
 
@@ -488,4 +491,6 @@ endif
 
 let b:current_syntax = "rpl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 tw=132
--- a/runtime/syntax/sd.vim
+++ b/runtime/syntax/sd.vim
@@ -3,7 +3,7 @@
 " License: This file can be redistribued and/or modified under the same terms
 "   as Vim itself.
 " URL: http://netstudent.polito.it/vim_syntax/
-" Last Change: 2006-09-27
+" Last Change: 2012 Feb 03 by Thilo Six
 
 if version < 600
         syntax clear
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
         finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Always ignore case
 syn case ignore
 
@@ -24,13 +27,13 @@ syn match sdIPSpecial /\%(127\.\d\{1,3}\
 syn match sdIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@sdIPCluster
 
 " Statements
-syn keyword sdStatement AGGREGATE AUDIO_CHANNELS 
+syn keyword sdStatement AGGREGATE AUDIO_CHANNELS
 syn keyword sdStatement BYTE_PER_PCKT BIT_PER_SAMPLE BITRATE
 syn keyword sdStatement CLOCK_RATE CODING_TYPE CREATOR
 syn match sdStatement /^\s*CODING_TYPE\>/ nextgroup=sdCoding skipwhite
 syn match sdStatement /^\s*ENCODING_NAME\>/ nextgroup=sdEncoding skipwhite
 syn keyword sdStatement FILE_NAME FRAME_LEN FRAME_RATE FORCE_FRAME_RATE
-syn keyword sdStatement LICENSE 
+syn keyword sdStatement LICENSE
 syn match sdStatement /^\s*MEDIA_SOURCE\>/ nextgroup=sdSource skipwhite
 syn match sdStatement /^\s*MULTICAST\>/ nextgroup=sdIP skipwhite
 syn keyword sdStatement PAYLOAD_TYPE PKT_LEN PRIORITY
@@ -73,3 +76,6 @@ if version >= 508 || !exists("did_config
 endif
 
 let b:current_syntax = "sd"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/sendpr.vim
+++ b/runtime/syntax/sendpr.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: FreeBSD send-pr file
 " Maintainer: Hendrik Scholz <hendrik@scholz.net>
-" Last Change: 2002 Mar 21
+" Last Change: 2012 Feb 03
 "
 " http://raisdorf.net/files/misc/send-pr.vim
 
@@ -13,6 +13,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn match sendprComment /^SEND-PR:/
 " email address
 syn match sendprType /<[a-zA-Z0-9\-\_\.]*@[a-zA-Z0-9\-\_\.]*>/
@@ -30,3 +33,6 @@ hi def link sendprComment   Comment
 hi def link sendprType      Type
 hi def link sendprString    String
 hi def link sendprLabel     Label
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/smil.vim
+++ b/runtime/syntax/smil.vim
@@ -2,7 +2,7 @@
 " Language:	SMIL (Synchronized Multimedia Integration Language)
 " Maintainer:	Herve Foucher <Herve.Foucher@helio.org>
 " URL:		http://www.helio.org/vim/syntax/smil.vim
-" Last Change:	2003 May 11
+" Last Change:	2012 Feb 03 by Thilo Six
 
 " To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/
 " and to http://www.helio.org/products/smil/tutorial/
@@ -15,6 +15,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " SMIL is case sensitive
 syn case match
 
@@ -151,4 +154,6 @@ if main_syntax == 'smil'
   unlet main_syntax
 endif
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/snnspat.vim
+++ b/runtime/syntax/snnspat.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	SNNS pattern file
 " Maintainer:	Davide Alberani <alberanid@bigfoot.com>
-" Last Change:	28 Apr 2001
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version:	0.2
 " URL:		http://digilander.iol.it/alberanid/vim/syntax/snnspat.vim
 "
@@ -14,6 +14,8 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 " anything that isn't part of the header, a comment or a number
 " is wrong
@@ -65,4 +67,6 @@ endif
 
 let b:current_syntax = "snnspat"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 sw=2
--- a/runtime/syntax/spup.vim
+++ b/runtime/syntax/spup.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:     Speedup, plant simulator from AspenTech
 " Maintainer:   Stefan.Schwarzer <s.schwarzer@ndh.net>
-" URL:			http://www.ndh.net/home/sschwarzer/download/spup.vim
-" Last Change:  2003 May 11
+" URL:		http://www.ndh.net/home/sschwarzer/download/spup.vim
+" Last Change:  2012 Feb 03 by Thilo Six
 " Filename:     spup.vim
 
 " Bugs
@@ -25,6 +25,9 @@ elseif exists("b:current_syntax")
     finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " don't hightlight several keywords like subsections
 "let strict_subsections = 1
 
@@ -43,7 +46,7 @@ endif
 
 " Speedup SECTION regions
 syn case ignore
-syn region spupCdi		  matchgroup=spupSection start="^CDI"		 end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
+syn region spupCdi	  matchgroup=spupSection start="^CDI"	     end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
 syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode
 syn region spupDeclare    matchgroup=spupSection start="^DECLARE"    end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode
 syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary
@@ -63,7 +66,7 @@ syn region spupTitle      matchgroup=spu
 syn region spupUnit       matchgroup=spupSection start="^UNIT"       end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary
 
 " Subsections
-syn keyword spupCdiSubs		   INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
+syn keyword spupCdiSubs	       INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
 syn keyword spupDeclareSubs    TYPE STREAM contained
 syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained
 syn keyword spupExternalSubs   TRANSMIT RECEIVE contained
@@ -183,7 +186,7 @@ syn sync minlines=100
 syn sync maxlines=500
 
 syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
-syn sync match spupSyncCdi		  grouphere spupCdi		   "^CDI"
+syn sync match spupSyncCdi	  grouphere spupCdi	   "^CDI"
 syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS"
 syn sync match spupSyncDeclare    grouphere spupDeclare    "^DECLARE"
 syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION"
@@ -207,71 +210,73 @@ syn sync match spupSyncUnit       grouph
 " For version 5.8 and later: only when an item doesn't have highlighting yet
 if version >= 508 || !exists("did_spup_syn_inits")
     if version < 508
-		let did_spup_syn_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
+	let did_spup_syn_inits = 1
+	command -nargs=+ HiLink hi link <args>
+    else
+	command -nargs=+ HiLink hi def link <args>
     endif
 
-	HiLink spupCdi			spupSection
-	HiLink spupConditions	spupSection
-	HiLink spupDeclare		spupSection
-	HiLink spupEstimation	spupSection
-	HiLink spupExternal		spupSection
-	HiLink spupFlowsheet	spupSection
-	HiLink spupFunction		spupSection
-	HiLink spupGlobal		spupSection
-	HiLink spupHomotopy		spupSection
-	HiLink spupMacro		spupSection
-	HiLink spupModel		spupSection
-	HiLink spupOperation	spupSection
-	HiLink spupOptions		spupSection
-	HiLink spupProcedure	spupSection
-	HiLink spupProfiles		spupSection
-	HiLink spupReport		spupSection
-	HiLink spupTitle		spupConstant  " this is correct, truly ;)
-	HiLink spupUnit			spupSection
+    HiLink spupCdi	    spupSection
+    HiLink spupConditions   spupSection
+    HiLink spupDeclare	    spupSection
+    HiLink spupEstimation   spupSection
+    HiLink spupExternal	    spupSection
+    HiLink spupFlowsheet    spupSection
+    HiLink spupFunction	    spupSection
+    HiLink spupGlobal	    spupSection
+    HiLink spupHomotopy	    spupSection
+    HiLink spupMacro	    spupSection
+    HiLink spupModel	    spupSection
+    HiLink spupOperation    spupSection
+    HiLink spupOptions	    spupSection
+    HiLink spupProcedure    spupSection
+    HiLink spupProfiles	    spupSection
+    HiLink spupReport	    spupSection
+    HiLink spupTitle	    spupConstant  " this is correct, truly ;)
+    HiLink spupUnit	    spupSection
 
-	HiLink spupCdiSubs		  spupSubs
-	HiLink spupConditionsSubs spupSubs
-	HiLink spupDeclareSubs	  spupSubs
-	HiLink spupEstimationSubs spupSubs
-	HiLink spupExternalSubs   spupSubs
-	HiLink spupFlowsheetSubs  spupSubs
-	HiLink spupFunctionSubs   spupSubs
-	HiLink spupHomotopySubs   spupSubs
-	HiLink spupMacroSubs	  spupSubs
-	HiLink spupModelSubs	  spupSubs
-	HiLink spupOperationSubs  spupSubs
-	HiLink spupOptionsSubs	  spupSubs
-	HiLink spupProcedureSubs  spupSubs
-	HiLink spupReportSubs	  spupSubs
-	HiLink spupUnitSubs		  spupSubs
+    HiLink spupCdiSubs	      spupSubs
+    HiLink spupConditionsSubs spupSubs
+    HiLink spupDeclareSubs    spupSubs
+    HiLink spupEstimationSubs spupSubs
+    HiLink spupExternalSubs   spupSubs
+    HiLink spupFlowsheetSubs  spupSubs
+    HiLink spupFunctionSubs   spupSubs
+    HiLink spupHomotopySubs   spupSubs
+    HiLink spupMacroSubs      spupSubs
+    HiLink spupModelSubs      spupSubs
+    HiLink spupOperationSubs  spupSubs
+    HiLink spupOptionsSubs    spupSubs
+    HiLink spupProcedureSubs  spupSubs
+    HiLink spupReportSubs     spupSubs
+    HiLink spupUnitSubs	      spupSubs
 
-	HiLink spupCode			   Normal
-	HiLink spupComment		   Comment
-	HiLink spupComment2		   spupComment
-	HiLink spupConditional	   Statement
-	HiLink spupConstant		   Constant
-	HiLink spupError		   Error
-	HiLink spupHelp			   Normal
-	HiLink spupIdentifier	   Identifier
-	HiLink spupNumber		   Constant
-	HiLink spupOperator		   Special
-	HiLink spupOpenBrace	   spupError
-	HiLink spupSection		   Statement
-	HiLink spupSpecial		   spupTextprocGeneric
-	HiLink spupStreams		   Type
-	HiLink spupString		   Constant
-	HiLink spupSubs			   Statement
-	HiLink spupSymbol		   Special
-	HiLink spupTextprocError   Normal
-	HiLink spupTextprocGeneric PreProc
-	HiLink spupTypes		   Type
+    HiLink spupCode	       Normal
+    HiLink spupComment	       Comment
+    HiLink spupComment2	       spupComment
+    HiLink spupConditional     Statement
+    HiLink spupConstant	       Constant
+    HiLink spupError	       Error
+    HiLink spupHelp	       Normal
+    HiLink spupIdentifier      Identifier
+    HiLink spupNumber	       Constant
+    HiLink spupOperator	       Special
+    HiLink spupOpenBrace       spupError
+    HiLink spupSection	       Statement
+    HiLink spupSpecial	       spupTextprocGeneric
+    HiLink spupStreams	       Type
+    HiLink spupString	       Constant
+    HiLink spupSubs	       Statement
+    HiLink spupSymbol	       Special
+    HiLink spupTextprocError   Normal
+    HiLink spupTextprocGeneric PreProc
+    HiLink spupTypes	       Type
 
     delcommand HiLink
 endif
 
 let b:current_syntax = "spup"
 
-" vim:ts=4
+let &cpo = s:cpo_save
+unlet s:cpo_save
+" vim:ts=8
--- a/runtime/syntax/sqlanywhere.vim
+++ b/runtime/syntax/sqlanywhere.vim
@@ -1,10 +1,12 @@
+
 " Vim syntax file
 " Language:    SQL, Adaptive Server Anywhere
-" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: 2009 Mar 15
-" Version:     11.0.1
+" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2012 Jan 23
+" Version:     12.0.1
 
-" Description: Updated to Adaptive Server Anywhere 11.0.1
+" Description: Updated to Adaptive Server Anywhere 12.0.1 (including spatial data)
+"              Updated to Adaptive Server Anywhere 11.0.1
 "              Updated to Adaptive Server Anywhere 10.0.1
 "              Updated to Adaptive Server Anywhere  9.0.2
 "              Updated to Adaptive Server Anywhere  9.0.1
@@ -67,6 +69,9 @@ syn keyword sqlFunction	 hash compress d
 syn keyword sqlFunction	 connection_extended_property text_handle_vector_match
 syn keyword sqlFunction	 read_client_file write_client_file
 
+" 12.0.1 functions
+syn keyword sqlFunction	 http_response_header
+
 " string functions
 syn keyword sqlFunction	 ascii char left ltrim repeat
 syn keyword sqlFunction	 space right rtrim trim lcase ucase
@@ -358,7 +363,7 @@ syn keyword sqlFunction  xp_write_file
 
 " http functions
 syn keyword sqlFunction	 http_header http_variable
-syn keyword sqlFunction	 next_http_header next_http_variable
+syn keyword sqlFunction	 next_http_header next_http_response_header next_http_variable
 syn keyword sqlFunction	 sa_set_http_header sa_set_http_option
 syn keyword sqlFunction	 sa_http_variable_info sa_http_header_info
 
@@ -366,114 +371,231 @@ syn keyword sqlFunction	 sa_http_variabl
 syn keyword sqlFunction	 http_encode http_decode
 syn keyword sqlFunction	 html_encode html_decode
 
+" XML function support
+syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction	 xmlattributes
+
+" Spatial Compatibility Functions
+syn keyword sqlFunction  ST_BdMPolyFromText
+syn keyword sqlFunction  ST_BdMPolyFromWKB
+syn keyword sqlFunction  ST_BdPolyFromText
+syn keyword sqlFunction  ST_BdPolyFromWKB
+syn keyword sqlFunction  ST_CPolyFromText
+syn keyword sqlFunction  ST_CPolyFromWKB
+syn keyword sqlFunction  ST_CircularFromTxt
+syn keyword sqlFunction  ST_CircularFromWKB
+syn keyword sqlFunction  ST_CompoundFromTxt
+syn keyword sqlFunction  ST_CompoundFromWKB
+syn keyword sqlFunction  ST_GeomCollFromTxt
+syn keyword sqlFunction  ST_GeomCollFromWKB
+syn keyword sqlFunction  ST_GeomFromText
+syn keyword sqlFunction  ST_GeomFromWKB
+syn keyword sqlFunction  ST_LineFromText
+syn keyword sqlFunction  ST_LineFromWKB
+syn keyword sqlFunction  ST_MCurveFromText
+syn keyword sqlFunction  ST_MCurveFromWKB
+syn keyword sqlFunction  ST_MLineFromText
+syn keyword sqlFunction  ST_MLineFromWKB
+syn keyword sqlFunction  ST_MPointFromText
+syn keyword sqlFunction  ST_MPointFromWKB
+syn keyword sqlFunction  ST_MPolyFromText
+syn keyword sqlFunction  ST_MPolyFromWKB
+syn keyword sqlFunction  ST_MSurfaceFromTxt
+syn keyword sqlFunction  ST_MSurfaceFromWKB
+syn keyword sqlFunction  ST_OrderingEquals
+syn keyword sqlFunction  ST_PointFromText
+syn keyword sqlFunction  ST_PointFromWKB
+syn keyword sqlFunction  ST_PolyFromText
+syn keyword sqlFunction  ST_PolyFromWKB
+" Spatial Structural Methods
+syn keyword sqlFunction  ST_CoordDim
+syn keyword sqlFunction  ST_CurveN
+syn keyword sqlFunction  ST_Dimension
+syn keyword sqlFunction  ST_EndPoint
+syn keyword sqlFunction  ST_ExteriorRing
+syn keyword sqlFunction  ST_GeometryN
+syn keyword sqlFunction  ST_GeometryType
+syn keyword sqlFunction  ST_InteriorRingN
+syn keyword sqlFunction  ST_Is3D
+syn keyword sqlFunction  ST_IsClosed
+syn keyword sqlFunction  ST_IsEmpty
+syn keyword sqlFunction  ST_IsMeasured
+syn keyword sqlFunction  ST_IsRing
+syn keyword sqlFunction  ST_IsSimple
+syn keyword sqlFunction  ST_IsValid
+syn keyword sqlFunction  ST_NumCurves
+syn keyword sqlFunction  ST_NumGeometries
+syn keyword sqlFunction  ST_NumInteriorRing
+syn keyword sqlFunction  ST_NumPoints
+syn keyword sqlFunction  ST_PointN
+syn keyword sqlFunction  ST_StartPoint
+"Spatial Computation
+syn keyword sqlFunction  ST_Length
+syn keyword sqlFunction  ST_Area
+syn keyword sqlFunction  ST_Centroid
+syn keyword sqlFunction  ST_Area
+syn keyword sqlFunction  ST_Centroid
+syn keyword sqlFunction  ST_IsWorld
+syn keyword sqlFunction  ST_Perimeter
+syn keyword sqlFunction  ST_PointOnSurface
+syn keyword sqlFunction  ST_Distance
+" Spatial Input/Output
+syn keyword sqlFunction  ST_AsBinary
+syn keyword sqlFunction  ST_AsGML
+syn keyword sqlFunction  ST_AsGeoJSON
+syn keyword sqlFunction  ST_AsSVG
+syn keyword sqlFunction  ST_AsSVGAggr
+syn keyword sqlFunction  ST_AsText
+syn keyword sqlFunction  ST_AsWKB
+syn keyword sqlFunction  ST_AsWKT
+syn keyword sqlFunction  ST_AsXML
+syn keyword sqlFunction  ST_GeomFromBinary
+syn keyword sqlFunction  ST_GeomFromShape
+syn keyword sqlFunction  ST_GeomFromText
+syn keyword sqlFunction  ST_GeomFromWKB
+syn keyword sqlFunction  ST_GeomFromWKT
+syn keyword sqlFunction  ST_GeomFromXML
+" Spatial Cast Methods
+syn keyword sqlFunction  ST_CurvePolyToPoly
+syn keyword sqlFunction  ST_CurveToLine
+syn keyword sqlFunction  ST_ToCircular
+syn keyword sqlFunction  ST_ToCompound
+syn keyword sqlFunction  ST_ToCurve
+syn keyword sqlFunction  ST_ToCurvePoly
+syn keyword sqlFunction  ST_ToGeomColl
+syn keyword sqlFunction  ST_ToLineString
+syn keyword sqlFunction  ST_ToMultiCurve
+syn keyword sqlFunction  ST_ToMultiLine
+syn keyword sqlFunction  ST_ToMultiPoint
+syn keyword sqlFunction  ST_ToMultiPolygon
+syn keyword sqlFunction  ST_ToMultiSurface
+syn keyword sqlFunction  ST_ToPoint
+syn keyword sqlFunction  ST_ToPolygon
+syn keyword sqlFunction  ST_ToSurface
+
+
 " keywords
-syn keyword sqlKeyword	 absolute accent action active add address aes_decrypt
-syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allowed
-syn keyword sqlKeyword	 alter and ansi_substring any as append apply asc ascii ase
-syn keyword sqlKeyword	 assign at atan2 atomic attach attended audit authorization
+syn keyword sqlKeyword	 absolute accent action active add address admin aes_decrypt
+syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allow allowed alter 
+syn keyword sqlKeyword	 and angular ansi_substring any as append apply 
+syn keyword sqlKeyword	 arbiter asc ascii ase
+syn keyword sqlKeyword	 assign at atan2 atomic attended 
+syn keyword sqlKeyword	 audit auditing authorization axis
 syn keyword sqlKeyword	 autoincrement autostop batch bcp before
 syn keyword sqlKeyword	 between bit_and bit_length bit_or bit_substr bit_xor
 syn keyword sqlKeyword	 blank blanks block
-syn keyword sqlKeyword	 both bottom unbounded break breaker bufferpool
+syn keyword sqlKeyword	 both bottom unbounded breaker bufferpool
 syn keyword sqlKeyword	 build bulk by byte bytes cache calibrate calibration
 syn keyword sqlKeyword	 cancel capability cascade cast
-syn keyword sqlKeyword	 catalog ceil changes char char_convert check checksum
+syn keyword sqlKeyword	 catalog ceil change changes char char_convert check checksum
 syn keyword sqlKeyword	 class classes client cmp
 syn keyword sqlKeyword	 cluster clustered collation
 syn keyword sqlKeyword	 column columns
-syn keyword sqlKeyword	 command comment committed comparisons
+syn keyword sqlKeyword	 command comments committed comparisons
 syn keyword sqlKeyword	 compatible component compressed compute computes
 syn keyword sqlKeyword	 concat configuration confirm conflict connection
 syn keyword sqlKeyword	 console consolidate consolidated
-syn keyword sqlKeyword	 constraint constraints content continue
-syn keyword sqlKeyword	 convert coordinator copy count count_set_bits
+syn keyword sqlKeyword	 constraint constraints content 
+syn keyword sqlKeyword	 convert coordinate coordinator copy count count_set_bits
 syn keyword sqlKeyword	 crc createtime cross cube cume_dist
 syn keyword sqlKeyword	 current cursor data data database
-syn keyword sqlKeyword	 current_timestamp current_user
+syn keyword sqlKeyword	 current_timestamp current_user cycle
 syn keyword sqlKeyword	 databases datatype dba dbfile
 syn keyword sqlKeyword	 dbspace dbspaces dbspacename debug decoupled
 syn keyword sqlKeyword	 decrypted default defaults default_dbspace deferred
 syn keyword sqlKeyword	 definer definition
 syn keyword sqlKeyword	 delay deleting delimited dependencies desc
-syn keyword sqlKeyword	 description detach deterministic directory
-syn keyword sqlKeyword	 disable disabled distinct do domain download duplicate
-syn keyword sqlKeyword	 dsetpass dttm dynamic each editproc ejb
+syn keyword sqlKeyword	 description deterministic directory
+syn keyword sqlKeyword	 disable disabled disallow distinct do domain download duplicate
+syn keyword sqlKeyword	 dsetpass dttm dynamic each earth editproc ejb
+syn keyword sqlKeyword	 elimination ellipsoid
 syn keyword sqlKeyword	 else elseif empty enable encapsulated encrypted end
 syn keyword sqlKeyword	 encoding endif engine environment erase error escape escapes event
-syn keyword sqlKeyword	 event_parameter every except exception exclude excluded exclusive exec
+syn keyword sqlKeyword	 event_parameter every exception exclude excluded exclusive exec
 syn keyword sqlKeyword	 existing exists expanded expiry express exprtype extended_property
 syn keyword sqlKeyword	 external externlogin factor failover false
-syn keyword sqlKeyword	 fastfirstrow fieldproc file files filler
-syn keyword sqlKeyword	 fillfactor finish first first_keyword first_value
+syn keyword sqlKeyword	 fastfirstrow feature fieldproc file files filler
+syn keyword sqlKeyword	 fillfactor final finish first first_keyword first_value
+syn keyword sqlKeyword	 flattening
 syn keyword sqlKeyword	 following force foreign format forxml forxml_sep fp frame
-syn keyword sqlKeyword	 freepage french fresh full function gb get_bit go global
+syn keyword sqlKeyword	 free freepage french fresh full function 
+syn keyword sqlKeyword	 gb generic get_bit go global grid
 syn keyword sqlKeyword	 group handler hash having header hexadecimal
 syn keyword sqlKeyword	 hidden high history hg hng hold holdlock host
 syn keyword sqlKeyword	 hours http_body http_session_timeout id identified identity ignore
 syn keyword sqlKeyword	 ignore_dup_key ignore_dup_row immediate
-syn keyword sqlKeyword	 in inactiv inactive inactivity included incremental
+syn keyword sqlKeyword	 in inactiv inactive inactivity included increment incremental
 syn keyword sqlKeyword	 index index_enabled index_lparen indexonly info
 syn keyword sqlKeyword	 inline inner inout insensitive inserting
 syn keyword sqlKeyword	 instead integrated
-syn keyword sqlKeyword	 internal intersection into introduced invoker iq is isolation
+syn keyword sqlKeyword	 internal intersection into introduced inverse invoker 
+syn keyword sqlKeyword	 iq is isolation
 syn keyword sqlKeyword	 jar java java_location java_main_userid java_vm_options
 syn keyword sqlKeyword	 jconnect jdk join kb key keep kerberos language last
-syn keyword sqlKeyword	 last_keyword last_value lateral ld left len lf ln level like
-syn keyword sqlKeyword	 limit local location log
-syn keyword sqlKeyword	 logging login logscan long low lru main manual mark
-syn keyword sqlKeyword	 match matched materialized max maximum mb membership
-syn keyword sqlKeyword	 merge metadata methods minimum minutes mirror mode modify monitor move mru
-syn keyword sqlKeyword	 multiplex name named national native natural new next no
-syn keyword sqlKeyword	 noholdlock nolock nonclustered none not
-syn keyword sqlKeyword	 notify null nullable_constant nulls object oem_string of off offline
-syn keyword sqlKeyword	 old on online only openstring optimization optimizer option
-syn keyword sqlKeyword	 or order others out outer over
+syn keyword sqlKeyword	 last_keyword last_value lateral latitude
+syn keyword sqlKeyword	 ld left len linear lf ln level like
+syn keyword sqlKeyword	 limit local location log 
+syn keyword sqlKeyword	 logging logical login logscan long longitude low lru ls
+syn keyword sqlKeyword	 main major manual mark
+syn keyword sqlKeyword	 match matched materialized max maxvalue maximum mb measure membership
+syn keyword sqlKeyword	 merge metadata methods minimum minor minutes minvalue mirror 
+syn keyword sqlKeyword	 mode modify monitor move mru multiplex 
+syn keyword sqlKeyword	 name named namespaces national native natural new next nextval 
+syn keyword sqlKeyword	 ngram no noholdlock nolock nonclustered none normal not
+syn keyword sqlKeyword	 notify null nullable_constant nulls 
+syn keyword sqlKeyword	 object oem_string of off offline offset olap
+syn keyword sqlKeyword	 old on online only openstring operator
+syn keyword sqlKeyword	 optimization optimizer option
+syn keyword sqlKeyword	 or order organization others out outer over
 syn keyword sqlKeyword	 package packetsize padding page pages
-syn keyword sqlKeyword	 paglock parallel part partial partition partitions partner password path
-syn keyword sqlKeyword	 pctfree plan policy populate port postfilter preceding precision
-syn keyword sqlKeyword	 prefetch prefilter prefix preserve preview primary
-syn keyword sqlKeyword	 prior priority priqty private privileges procedure profile
+syn keyword sqlKeyword	 paglock parallel parameter parent part 
+syn keyword sqlKeyword	 partition partitions partner password path pctfree 
+syn keyword sqlKeyword	 perms plan planar policy polygon populate port postfilter preceding 
+syn keyword sqlKeyword	 precisionprefetch prefilter prefix preserve preview previous
+syn keyword sqlKeyword	 primary prior priority priqty private privileges procedure profile
 syn keyword sqlKeyword	 property_is_cumulative property_is_numeric public publication publish publisher
 syn keyword sqlKeyword	 quiesce quote quotes range readclientfile readcommitted reader readfile readonly
 syn keyword sqlKeyword	 readpast readuncommitted readwrite rebuild
 syn keyword sqlKeyword	 received recompile recover recursive references
-syn keyword sqlKeyword	 referencing refresh regex regexp regexp_substr relative relocate
-syn keyword sqlKeyword	 rename repeatable repeatableread
-syn keyword sqlKeyword	 replicate request_timeout required rereceive resend reserve reset
-syn keyword sqlKeyword	 resizing resolve resource respect
+syn keyword sqlKeyword	 referencing regex regexp regexp_substr relative relocate
+syn keyword sqlKeyword	 rename repeatable repeatableread replicate 
+syn keyword sqlKeyword	 requests request_timeout required rereceive resend reserve reset
+syn keyword sqlKeyword	 resizing resolve resource respect restart
 syn keyword sqlKeyword	 restrict result retain
 syn keyword sqlKeyword	 returns reverse right role
-syn keyword sqlKeyword	 rollup root row row_number rowlock rows save
+syn keyword sqlKeyword	 rollup root row row_number rowlock rows 
 syn keyword sqlKeyword	 sa_index_hash sa_internal_fk_verify sa_internal_termbreak
 syn keyword sqlKeyword	 sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
-syn keyword sqlKeyword	 schedule schema scope scripted scroll seconds secqty security
-syn keyword sqlKeyword	 send sensitive sent serializable
+syn keyword sqlKeyword	 scale schedule schema scope scripted scroll seconds secqty security
+syn keyword sqlKeyword	 semi send sensitive sent sequence serializable
 syn keyword sqlKeyword	 server server session set_bit set_bits sets
-syn keyword sqlKeyword	 share simple since site size skip
-syn keyword sqlKeyword	 snapshot soapheader soap_header split some sorted_data
-syn keyword sqlKeyword	 sqlcode sqlid sqlflagger sqlstate sqrt square
+syn keyword sqlKeyword	 shapefile share side simple since site size skip
+syn keyword sqlKeyword	 snap snapshot soapheader soap_header 
+syn keyword sqlKeyword	 spatial split some sorted_data
+syn keyword sqlKeyword	 sql sqlcode sqlid sqlflagger sqlstate sqrt square
 syn keyword sqlKeyword	 stacker stale statement statistics status stddev_pop stddev_samp
-syn keyword sqlKeyword	 stemmer stogroup stoplist store
+syn keyword sqlKeyword	 stemmer stogroup stoplist storage store
 syn keyword sqlKeyword	 strip stripesizekb striping subpages subscribe subscription
 syn keyword sqlKeyword	 subtransaction suser_id suser_name synchronization
-syn keyword sqlKeyword	 syntax_error table tablock
-syn keyword sqlKeyword	 tablockx tb temp template temporary term then
-syn keyword sqlKeyword	 ties timezone to to_char to_nchar top traced_plan tracing
-syn keyword sqlKeyword	 transfer transaction transactional tries true
-syn keyword sqlKeyword	 tsequal type tune uncommitted unconditionally
-syn keyword sqlKeyword	 unenforced unicode unique union unistr unknown unlimited unload
+syn keyword sqlKeyword	 syntax_error table tables tablock
+syn keyword sqlKeyword	 tablockx tb temp template temporary term then ties 
+syn keyword sqlKeyword	 timezone timeout to to_char to_nchar tolerance top
+syn keyword sqlKeyword	 traced_plan tracing
+syn keyword sqlKeyword	 transfer transform transaction transactional treat tries 
+syn keyword sqlKeyword	 true tsequal type tune uncommitted unconditionally
+syn keyword sqlKeyword	 unenforced unicode unique unistr unit unknown unlimited unload
 syn keyword sqlKeyword	 unpartition unquiesce updatetime updating updlock upgrade upload
-syn keyword sqlKeyword	 upper use user
+syn keyword sqlKeyword	 upper usage use user
 syn keyword sqlKeyword	 using utc utilities validproc
 syn keyword sqlKeyword	 value values varchar variable
-syn keyword sqlKeyword	 varying var_pop var_samp vcat verify versions view virtual wait
-syn keyword sqlKeyword	 warning wd web when where window with with_auto
+syn keyword sqlKeyword	 varying var_pop var_samp vcat verbosity
+syn keyword sqlKeyword	 verify versions view virtual wait
+syn keyword sqlKeyword	 warning wd web when where with with_auto
 syn keyword sqlKeyword	 with_auto with_cube with_rollup without
 syn keyword sqlKeyword	 with_lparen within word work workload write writefile
-syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock zeros
-" XML function support
-syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
-syn keyword sqlFunction	 xmlattributes
+syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock 
+syn keyword sqlKeyword	 zeros zone
+" XML 
 syn keyword sqlKeyword	 raw auto elements explicit
 " HTTP support
 syn keyword sqlKeyword	 authorization secure url service next_soap_header
@@ -488,37 +610,119 @@ syn keyword sqlKeyword	 regr_sxx regr_sy
 syn keyword sqlKeyword	 character dec options proc reference
 syn keyword sqlKeyword	 subtrans tran syn keyword
 
+" Spatial Predicates
+syn keyword sqlKeyword   ST_Contains
+syn keyword sqlKeyword   ST_ContainsFilter
+syn keyword sqlKeyword   ST_CoveredBy
+syn keyword sqlKeyword   ST_CoveredByFilter
+syn keyword sqlKeyword   ST_Covers
+syn keyword sqlKeyword   ST_CoversFilter
+syn keyword sqlKeyword   ST_Crosses
+syn keyword sqlKeyword   ST_Disjoint
+syn keyword sqlKeyword   ST_Equals
+syn keyword sqlKeyword   ST_EqualsFilter
+syn keyword sqlKeyword   ST_Intersects
+syn keyword sqlKeyword   ST_IntersectsFilter
+syn keyword sqlKeyword   ST_IntersectsRect
+syn keyword sqlKeyword   ST_OrderingEquals
+syn keyword sqlKeyword   ST_Overlaps
+syn keyword sqlKeyword   ST_Relate
+syn keyword sqlKeyword   ST_Touches
+syn keyword sqlKeyword   ST_Within
+syn keyword sqlKeyword   ST_WithinFilter
+" Spatial Set operations
+syn keyword sqlKeyword   ST_Affine
+syn keyword sqlKeyword   ST_Boundary
+syn keyword sqlKeyword   ST_Buffer
+syn keyword sqlKeyword   ST_ConvexHull
+syn keyword sqlKeyword   ST_ConvexHullAggr
+syn keyword sqlKeyword   ST_Difference
+syn keyword sqlKeyword   ST_Intersection
+syn keyword sqlKeyword   ST_IntersectionAggr
+syn keyword sqlKeyword   ST_SymDifference
+syn keyword sqlKeyword   ST_Union
+syn keyword sqlKeyword   ST_UnionAggr
+" Spatial Bounds
+syn keyword sqlKeyword   ST_Envelope
+syn keyword sqlKeyword   ST_EnvelopeAggr
+syn keyword sqlKeyword   ST_Lat
+syn keyword sqlKeyword   ST_LatMax
+syn keyword sqlKeyword   ST_LatMin
+syn keyword sqlKeyword   ST_Long
+syn keyword sqlKeyword   ST_LongMax
+syn keyword sqlKeyword   ST_LongMin
+syn keyword sqlKeyword   ST_M
+syn keyword sqlKeyword   ST_MMax
+syn keyword sqlKeyword   ST_MMin
+syn keyword sqlKeyword   ST_Point
+syn keyword sqlKeyword   ST_X
+syn keyword sqlKeyword   ST_XMax
+syn keyword sqlKeyword   ST_XMin
+syn keyword sqlKeyword   ST_Y
+syn keyword sqlKeyword   ST_YMax
+syn keyword sqlKeyword   ST_YMin
+syn keyword sqlKeyword   ST_Z
+syn keyword sqlKeyword   ST_ZMax
+syn keyword sqlKeyword   ST_ZMin
+" Spatial Collection Aggregates
+syn keyword sqlKeyword   ST_GeomCollectionAggr
+syn keyword sqlKeyword   ST_LineStringAggr
+syn keyword sqlKeyword   ST_MultiCurveAggr
+syn keyword sqlKeyword   ST_MultiLineStringAggr
+syn keyword sqlKeyword   ST_MultiPointAggr
+syn keyword sqlKeyword   ST_MultiPolygonAggr
+syn keyword sqlKeyword   ST_MultiSurfaceAggr
+syn keyword sqlKeyword   ST_Perimeter
+syn keyword sqlKeyword   ST_PointOnSurface
+" Spatial SRS
+syn keyword sqlKeyword   ST_CompareWKT
+syn keyword sqlKeyword   ST_FormatWKT
+syn keyword sqlKeyword   ST_ParseWKT
+syn keyword sqlKeyword   ST_TransformGeom
+syn keyword sqlKeyword   ST_GeometryTypeFromBaseType
+syn keyword sqlKeyword   ST_SnapToGrid
+syn keyword sqlKeyword   ST_Transform
+syn keyword sqlKeyword   ST_SRID
+syn keyword sqlKeyword   ST_SRIDFromBaseType
+syn keyword sqlKeyword   ST_LoadConfigurationData
+" Spatial Indexes
+syn keyword sqlKeyword   ST_LinearHash
+syn keyword sqlKeyword   ST_LinearUnHash
 
 syn keyword sqlOperator	 in any some all between exists
 syn keyword sqlOperator	 like escape not is and or
-syn keyword sqlOperator  intersect minus
+syn keyword sqlOperator  minus
 syn keyword sqlOperator  prior distinct
 
-syn keyword sqlStatement allocate alter backup begin call case
-syn keyword sqlStatement checkpoint clear close commit configure connect
-syn keyword sqlStatement create deallocate declare delete describe
-syn keyword sqlStatement disconnect drop execute exit explain fetch
+syn keyword sqlStatement allocate alter attach backup begin break call case
+syn keyword sqlStatement checkpoint clear close comment commit configure connect
+syn keyword sqlStatement continue create deallocate declare delete describe
+syn keyword sqlStatement detach disconnect drop except execute exit explain fetch
 syn keyword sqlStatement for forward from get goto grant help if include
-syn keyword sqlStatement input insert install leave load lock loop
-syn keyword sqlStatement message open output parameter parameters passthrough
-syn keyword sqlStatement prepare print put raiserror read readtext release
+syn keyword sqlStatement input insert install intersect leave load lock loop
+syn keyword sqlStatement message open output parameters passthrough
+syn keyword sqlStatement prepare print put raiserror read readtext refresh release
 syn keyword sqlStatement remote remove reorganize resignal restore resume
-syn keyword sqlStatement return revoke rollback savepoint select
+syn keyword sqlStatement return revoke rollback save savepoint select
 syn keyword sqlStatement set setuser signal start stop synchronize
-syn keyword sqlStatement system trigger truncate unload update
-syn keyword sqlStatement validate waitfor whenever while writetext
+syn keyword sqlStatement system trigger truncate union unload update
+syn keyword sqlStatement validate waitfor whenever while window writetext
 
 
-syn keyword sqlType	 char long varchar text
-syn keyword sqlType	 bigint decimal double float int integer numeric
+syn keyword sqlType	 char nchar long varchar nvarchar text ntext uniqueidentifierstr xml
+syn keyword sqlType	 bigint bit decimal double varbit
+syn keyword sqlType	 float int integer numeric
 syn keyword sqlType	 smallint tinyint real
 syn keyword sqlType	 money smallmoney
-syn keyword sqlType	 bit
-syn keyword sqlType	 date datetime smalldate time timestamp
+syn keyword sqlType	 date datetime datetimeoffset smalldatetime time timestamp
 syn keyword sqlType	 binary image varbinary uniqueidentifier
-syn keyword sqlType	 xml unsigned
-" New types 10.0.0
-syn keyword sqlType	 varbit nchar nvarchar
+syn keyword sqlType	 unsigned
+" Spatial types
+syn keyword sqlType	 st_geometry st_point st_curve st_surface st_geomcollection
+syn keyword sqlType	 st_linestring st_circularstring st_compoundcurve
+syn keyword sqlType	 st_curvepolygon st_polygon
+syn keyword sqlType	 st_multipoint st_multicurve st_multisurface
+syn keyword sqlType	 st_multilinestring st_multipolygon
 
 syn keyword sqlOption    Allow_nulls_by_default
 syn keyword sqlOption    Allow_read_client_file
@@ -556,6 +760,7 @@ syn keyword sqlOption    Default_dbspace
 syn keyword sqlOption    Default_timestamp_increment
 syn keyword sqlOption    Delayed_commit_timeout
 syn keyword sqlOption    Delayed_commits
+syn keyword sqlOption    Divide_by_zero_error
 syn keyword sqlOption    Escape_character
 syn keyword sqlOption    Exclude_operators
 syn keyword sqlOption    Extended_join_syntax
@@ -633,6 +838,7 @@ syn keyword sqlOption    Updatable_state
 syn keyword sqlOption    Update_statistics
 syn keyword sqlOption    Upgrade_database_capability
 syn keyword sqlOption    User_estimates
+syn keyword sqlOption    Uuid_has_hyphens
 syn keyword sqlOption    Verify_password_function
 syn keyword sqlOption    Wait_for_commit
 syn keyword sqlOption    Webservice_namespace_host
--- a/runtime/syntax/tasm.vim
+++ b/runtime/syntax/tasm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: TASM: turbo assembler by Borland
 " Maintaner: FooLman of United Force <foolman@bigfoot.com>
-" Last change: 22 aug 2000
+" Last Change: 2012 Feb 03 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
 syn match tasmLabel "^[\ \t]*[@a-z_$][a-z0-9_$@]*\ *:"
 syn keyword tasmDirective ALIAS ALIGN ARG ASSUME %BIN CATSRT CODESEG
@@ -120,3 +123,6 @@ if version >= 508 || !exists("did_tasm_s
 endif
 
 let b:curret_syntax = "tasm"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/tsalt.vim
+++ b/runtime/syntax/tsalt.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Telix (Modem Comm Program) SALT Script
 " Maintainer:	Sean M. McKee <mckee@misslink.net>
-" Last Change:	2001 May 09
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version Info: @(#)tsalt.vim	1.5	97/12/16 08:11:15
 
 " For version 5.x: Clear all syntax items
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " turn case matching off
 syn case ignore
 
@@ -211,4 +214,6 @@ endif
 
 let b:current_syntax = "tsalt"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/vhdl.vim
+++ b/runtime/syntax/vhdl.vim
@@ -2,6 +2,7 @@
 " Language:	VHDL
 " Maintainer:	Czo <Olivier.Sirol@lip6.fr>
 " Credits:	Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
+" Last Changed:	2012 Feb 03 by Thilo Six
 " $Id: vhdl.vim,v 1.1 2004/06/13 15:34:56 vimboss Exp $
 
 " VHSIC Hardware Description Language
@@ -15,6 +16,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " This is not VHDL. I use the C-Preprocessor cpp to generate different binaries
 " from one VHDL source file. Unfortunately there is no preprocessor for VHDL
 " available. If you don't like this, please remove the following lines.
@@ -181,4 +185,6 @@ endif
 
 let b:current_syntax = "vhdl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/viminfo.vim
+++ b/runtime/syntax/viminfo.vim
@@ -1,13 +1,16 @@
 " Vim syntax file
 " Language:	Vim .viminfo file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Jun 20
+" Last Change:	2012 Feb 03
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " The lines that are NOT recognized
 syn match viminfoError "^[^\t].*"
 
@@ -35,4 +38,7 @@ hi def link viminfoStatement	Statement
 
 let b:current_syntax = "viminfo"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8 sw=2
--- a/runtime/syntax/xpm2.vim
+++ b/runtime/syntax/xpm2.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	X Pixmap v2
 " Maintainer:	Steve Wall (hitched97@velnet.com)
-" Last Change:	2008 May 28
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version:	5.8
 "
 " Made from xpm.vim by Ronald Schild <rs@scutum.de>
@@ -14,6 +14,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn region  xpm2PixelString	start="^"  end="$"  contains=@xpm2Colors
 syn keyword xpm2Todo		TODO FIXME XXX  contained
 syn match   xpm2Comment		"\!.*$"  contains=xpm2Todo
@@ -159,4 +162,6 @@ delcommand Hi
 
 let b:current_syntax = "xpm2"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8:sw=2:noet:
--- a/runtime/tutor/tutor.eo
+++ b/runtime/tutor/tutor.eo
@@ -1,5 +1,5 @@
 ==============================================================================
-=  B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.7.eo.3 =
+=  B o n v e n o n   al   la   I n s t r u i l o  de  V I M  -  Versio 1.7   =
 ==============================================================================
 
    Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
@@ -108,7 +108,7 @@ RIMARKO: Trairante la instruilon, ne pro
      reimo. Ripetu la paojn 2 is 4 por korekti la frazon.
 
 ---> Mank en i linio.
----> Mankas tekston en i tiu linio.
+---> Mankas teksto en i tiu linio.
 
   5. Kiam vi sentas vin komforta pri enmeto de teksto, moviu al la
      leciono 1.5.
@@ -160,7 +160,7 @@ RIMARKO: Trairante la instruilon, ne pro
 
   4. Konservu la dosieron kun anoj kaj eliru el Vim per:  :wq  <Enenklavo>
 
-  5. Se vi eliris la instruilon vimtutor en pao 1, restartu la intruilon
+  5. Se vi eliris la instruilon vimtutor en pao 1, restartigu la intruilon
      vimtutor kaj moviu suben al la sekvanta resumo.
 
   6. Post kiam vi legis la suprajn paojn, kaj komprenis ilin: faru ilin.
@@ -640,7 +640,7 @@ RIMARKO: iuj  :  komandoj devas finii per tajpo de <Enenklavo>
   1. Tajpu  !dir  a  !ls  por akiri liston de via dosierujo.
      Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.
 
-  2. Elektu dosieron, kiu ne jam ekzistas, kiel ekzemple TESTO.
+  2. Elektu dosieron, kiu ankora ne ekzistas, kiel ekzemple TESTO.
 
   3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)
 
@@ -669,7 +669,7 @@ RIMARKO: Se vi volus eliri el Vim kaj restartigi in denove per  vim TESTO,
 
   3. Premu la  :  signon.  e la fino de la ekrano  :'<,'>  aperos.
 
-  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ne jam ekzistas.
+  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ankora ne ekzistas.
      Kontrolu, ke vi vidas  :'<,'>w TESTO  anta premi <Enenklavo>.
 
   5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
@@ -984,8 +984,8 @@ RIMARKO: Kompletigo funkcias por multaj 
 
   Modifita por Vim de Bram Moolenaar.
 
-  Tradukita en Esperanto de Dominique Pell, 2008-04-01
+  Esperantigita fare de Dominique Pell, 2008-04-01
   Retpoto: dominique.pelle@gmail.com
-  Lasta ano: 2010-05-23
+  Lasta ano: 2011-11-27
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/runtime/tutor/tutor.eo.utf-8
+++ b/runtime/tutor/tutor.eo.utf-8
@@ -1,5 +1,5 @@
 ==============================================================================
-=  B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.7.eo.3 =
+=  B o n v e n o n   al   la   I n s t r u i l o  de  V I M  -  Versio 1.7   =
 ==============================================================================
 
    Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
@@ -108,7 +108,7 @@ RIMARKO: Trairante la instruilon, ne pro
      reĝimo. Ripetu la paŝojn 2 ĝis 4 por korekti la frazon.
 
 ---> Mank en ĉi linio.
----> Mankas tekston en ĉi tiu linio.
+---> Mankas teksto en ĉi tiu linio.
 
   5. Kiam vi sentas vin komforta pri enmeto de teksto, moviĝu al la
      leciono 1.5.
@@ -160,7 +160,7 @@ RIMARKO: Trairante la instruilon, ne pro
 
   4. Konservu la dosieron kun ŝanĝoj kaj eliru el Vim per:  :wq  <Enenklavo>
 
-  5. Se vi eliris la instruilon vimtutor en paŝo 1, restartu la intruilon
+  5. Se vi eliris la instruilon vimtutor en paŝo 1, restartigu la intruilon
      vimtutor kaj moviĝu suben al la sekvanta resumo.
 
   6. Post kiam vi legis la suprajn paŝojn, kaj komprenis ilin: faru ilin.
@@ -640,7 +640,7 @@ RIMARKO: Ĉiuj  :  komandoj devas finiĝi per tajpo de <Enenklavo>
   1. Tajpu  !dir  aŭ  !ls  por akiri liston de via dosierujo.
      Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.
 
-  2. Elektu dosieron, kiu ne jam ekzistas, kiel ekzemple TESTO.
+  2. Elektu dosieron, kiu ankoraŭ ne ekzistas, kiel ekzemple TESTO.
 
   3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)
 
@@ -669,7 +669,7 @@ RIMARKO: Se vi volus eliri el Vim kaj restartigi ĝin denove per  vim TESTO,
 
   3. Premu la  :  signon.  Ĉe la fino de la ekrano  :'<,'>  aperos.
 
-  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ne jam ekzistas.
+  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ankoraŭ ne ekzistas.
      Kontrolu, ke vi vidas  :'<,'>w TESTO  antaŭ premi <Enenklavo>.
 
   5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
@@ -984,8 +984,8 @@ RIMARKO: Kompletigo funkcias por multaj 
 
   Modifita por Vim de Bram Moolenaar.
 
-  Tradukita en Esperanto de Dominique Pellé, 2008-04-01
+  Esperantigita fare de Dominique Pellé, 2008-04-01
   Retpoŝto: dominique.pelle@gmail.com
-  Lasta ŝanĝo: 2010-05-23
+  Lasta ŝanĝo: 2011-11-27
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/runtime/tutor/tutor.fr
+++ b/runtime/tutor/tutor.fr
@@ -451,7 +451,7 @@ NOTE : N'oubliez pas que vous devriez ap
   3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)
 
   4. Appuyez <chap> et placez-vous sur le prochain caractre qui doit
-     tre chang).
+     tre chang.
 
   5. Rptez les tapes 3 et 4 jusqu' ce que la premire phrase soit
      identique  la seconde.
@@ -560,7 +560,7 @@ NOTE : Vous pouvez peut-tre voir le curseur en bas  droite de l'cran.
 ---> erreur ne s'crit pas "errreuur" ; errreuur est une erreur.
 
 NOTE : Quand la recherche atteint la fin du fichier, elle reprend au dbut
-       sauf si l'option 'wrapscan' est dactive.
+       sauf si l'option 'wrapscan' est dsactive.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1034,5 +1034,5 @@ NOTE : Le compltement fonctionne pour de nombreuses commandes. Essayez
   Dernires mises  jour par Dominique Pell.
 
   E-mail :      dominique.pelle@gmail.com
-  Last Change : 2011 Jun 25
+  Last Change : 2011 Nov 27
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/runtime/tutor/tutor.fr.utf-8
+++ b/runtime/tutor/tutor.fr.utf-8
@@ -451,7 +451,7 @@ NOTE : N'oubliez pas que vous devriez ap
   3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)
 
   4. Appuyez <Échap> et placez-vous sur le prochain caractère qui doit
-     être changé).
+     être changé.
 
   5. Répétez les étapes 3 et 4 jusqu'à ce que la première phrase soit
      identique à la seconde.
@@ -560,7 +560,7 @@ NOTE : Vous pouvez peut-être voir le curseur en bas à droite de l'écran.
 ---> erreur ne s'écrit pas "errreuur" ; errreuur est une erreur.
 
 NOTE : Quand la recherche atteint la fin du fichier, elle reprend au début
-       sauf si l'option 'wrapscan' est déactivée.
+       sauf si l'option 'wrapscan' est désactivée.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1034,5 +1034,5 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
   Dernières mises à jour par Dominique Pellé.
 
   E-mail :      dominique.pelle@gmail.com
-  Last Change : 2011 Jun 25
+  Last Change : 2011 Nov 27
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1939,7 +1939,7 @@ alist_check_arg_idx()
 }
 
 /*
- * Return TRUE if window "win" is editing then file at the current argument
+ * Return TRUE if window "win" is editing the file at the current argument
  * index.
  */
     static int
--- a/src/po/ca.po
+++ b/src/po/ca.po
@@ -1,6 +1,6 @@
 # Catalan messages for vim.
-# Copyright (C) 2003-2008 Ernest Adrogu <eadrogue@gmx.net>.
-# This file is distributed under the GNU General Public License.
+# Copyright (C) 2003-2012 Ernest Adrogu <eadrogue@gmx.net>.
+# This file is distributed under the Vim License.
 #
 msgid ""
 msgstr ""
@@ -13,8 +13,6 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Catalan\n"
-"X-Poedit-Country: SPAIN\n"
 
 msgid "E82: Cannot allocate any buffer, exiting..."
 msgstr "E82: No s'ha pogut assignar memria per cap buffer, sortint..."
--- a/src/po/eo.po
+++ b/src/po/eo.po
@@ -23,10 +23,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Esperanto)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-21 17:23+0200\n"
-"PO-Revision-Date: 2011-06-21 17:26+0200\n"
+"POT-Creation-Date: 2012-01-22 15:37+0100\n"
+"PO-Revision-Date: 2012-01-22 15:38+0100\n"
 "Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
 "Language-Team: \n"
+"Language: eo\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -562,7 +563,7 @@ msgstr "E117: Nekonata funkcio: %s"
 
 #, c-format
 msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Ne sufiĉe da argumentoj de funkcio: %s"
+msgstr "E119: Ne sufiĉe da argumentoj por funkcio: %s"
 
 #, c-format
 msgid "E120: Using <SID> not in a script context: %s"
@@ -741,6 +742,10 @@ msgstr "E124: Mankas '(': %s"
 msgid "E125: Illegal argument: %s"
 msgstr "E125: Nevalida argumento: %s"
 
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Ripetita nomo de argumento: %s"
+
 msgid "E126: Missing :endfunction"
 msgstr "E126: Mankas \":endfunction\""
 
@@ -2035,6 +2040,12 @@ msgstr "Neniu mapo trovita"
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: Nevalida reĝimo"
 
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: Ne sukcesis krei novan procezon por la grafika interfaco"
+
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: La ida procezo ne sukcesis startigi la grafikan interfacon"
+
 msgid "E229: Cannot start the GUI"
 msgstr "E229: Ne eblas lanĉi la grafikan interfacon"
 
@@ -4057,6 +4068,9 @@ msgstr "Tajpu la ŝlosilon denove: "
 msgid "Keys don't match!"
 msgstr "Ŝlosiloj ne kongruas!"
 
+msgid "E854: path too long for completion"
+msgstr "E854: tro longa vojo por kompletigo"
+
 #, c-format
 msgid ""
 "E343: Invalid path: '**[number]' must be at the end of the path or be "
@@ -4238,8 +4252,8 @@ msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
 msgstr ""
-"Apartigis %s%ld de %ld Linioj; %ld de %ld Vortoj; %ld de %ld Signoj; %ld de %"
-"ld Bajtoj"
+"Apartigis %s%ld de %ld Linioj; %ld de %ld Vortoj; %ld de %ld Signoj; %ld de "
+"%ld Bajtoj"
 
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
@@ -4250,8 +4264,8 @@ msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"Kol %s de %s; Linio %ld de %ld; Vorto %ld de %ld; Signo %ld de %ld; Bajto %"
-"ld de %ld"
+"Kol %s de %s; Linio %ld de %ld; Vorto %ld de %ld; Signo %ld de %ld; Bajto "
+"%ld de %ld"
 
 #, c-format
 msgid "(+%ld for BOM)"
@@ -5576,6 +5590,9 @@ msgstr "Serĉado de dosiero de etikedoj %s"
 msgid "E430: Tag file path truncated for %s\n"
 msgstr "E430: Vojo de etikeda dosiero trunkita por %s\n"
 
+msgid "Ignoring long line in tags file"
+msgstr "Ignoro de longa linio en etikeda dosiero"
+
 #, c-format
 msgid "E431: Format error in tags file \"%s\""
 msgstr "E431: Eraro de formato en etikeda dosiero \"%s\""
@@ -5592,9 +5609,6 @@ msgstr "E432: Etikeda dosiero ne estas o
 msgid "E433: No tags file"
 msgstr "E433: Neniu etikeda dosiero"
 
-msgid "Ignoring long line in tags file"
-msgstr "Ignoro de longa linio en etikeda dosiero"
-
 msgid "E434: Can't find tag pattern"
 msgstr "E434: Ne eblas trovi ŝablonon de etikedo"
 
--- a/src/po/fr.po
+++ b/src/po/fr.po
@@ -15,10 +15,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Franais)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-21 17:23+0200\n"
-"PO-Revision-Date: 2011-06-21 17:26+0200\n"
+"POT-Creation-Date: 2012-01-22 15:37+0100\n"
+"PO-Revision-Date: 2012-01-22 15:40+0100\n"
 "Last-Translator: Dominique Pell <dominique.pelle@gmail.com>\n"
 "Language-Team: \n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO_8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -817,6 +818,10 @@ msgstr "E124: Il manque '(' aprs %s"
 msgid "E125: Illegal argument: %s"
 msgstr "E125: Argument invalide : %s"
 
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Nom d'argument dupliqu : %s"
+
 msgid "E126: Missing :endfunction"
 msgstr "E126: Il manque :endfunction"
 
@@ -2242,6 +2247,15 @@ msgstr "Aucun mappage trouv"
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap : mode invalide"
 
+msgid "E851: Failed to create a new process for the GUI"
+msgstr ""
+"E851: chec lors de la cration d'un nouveau processus pour l'interface "
+"graphique"
+
+msgid "E852: The child process failed to start the GUI"
+msgstr ""
+"E852: Le processus fils n'a pas russi  dmarrer l'interface graphique"
+
 msgid "E229: Cannot start the GUI"
 msgstr "E229: Impossible de dmarrer l'interface graphique"
 
@@ -4293,6 +4307,9 @@ msgstr "Tapez la cl  nouveau : "
 msgid "Keys don't match!"
 msgstr "Les cls ne correspondent pas !"
 
+msgid "E854: path too long for completion"
+msgstr "E854: chemin trop long pour compltement"
+
 #, c-format
 msgid ""
 "E343: Invalid path: '**[number]' must be at the end of the path or be "
@@ -4478,8 +4495,8 @@ msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
 msgstr ""
-"%s%ld sur %ld Lignes ; %ld sur %ld Mots ; %ld sur %ld Caractres ; %ld sur %"
-"ld octets slectionns"
+"%s%ld sur %ld Lignes ; %ld sur %ld Mots ; %ld sur %ld Caractres ; %ld sur "
+"%ld octets slectionns"
 
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
@@ -4491,8 +4508,8 @@ msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %ld sur %ld ; Caractre %ld sur %"
-"ld ; Octet %ld sur %ld"
+"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %ld sur %ld ; Caractre %ld sur "
+"%ld ; Octet %ld sur %ld"
 
 #, c-format
 msgid "(+%ld for BOM)"
@@ -5832,6 +5849,9 @@ msgstr "Examen du fichier de marqueurs %
 msgid "E430: Tag file path truncated for %s\n"
 msgstr "E430: Chemin de fichiers de marqueurs tronqu pour %s\n"
 
+msgid "Ignoring long line in tags file"
+msgstr "Ignore longue ligne dans le fichier de marqueurs"
+
 #, c-format
 msgid "E431: Format error in tags file \"%s\""
 msgstr "E431: Erreur de format dans le fichier de marqueurs \"%s\""
@@ -5848,9 +5868,6 @@ msgstr "E432: Le fichier de marqueurs %s n'est pas ordonn"
 msgid "E433: No tags file"
 msgstr "E433: Aucun fichier de marqueurs"
 
-msgid "Ignoring long line in tags file"
-msgstr "Ignore longue ligne dans le fichier de marqueurs"
-
 msgid "E434: Can't find tag pattern"
 msgstr "E434: Le motif de marqueur est introuvable"
 
--- a/src/po/ru.cp1251.po
+++ b/src/po/ru.cp1251.po
@@ -4888,15 +4888,15 @@ msgstr "  & Vim-"
 msgid "Edit with single &Vim"
 msgstr "  & Vim"
 
-msgid "&Diff with Vim"
-msgstr "&   Vim"
+msgid "Diff with Vim"
+msgstr "   Vim"
 
 msgid "Edit with &Vim"
 msgstr "&   Vim"
 
 #. Now concatenate
-msgid "Edit with existing Vim - &"
-msgstr "   Vim - &"
+msgid "Edit with existing Vim - "
+msgstr "   Vim - "
 
 msgid "Edits the selected file(s) with Vim"
 msgstr "     Vim"
--- a/src/po/ru.po
+++ b/src/po/ru.po
@@ -4888,15 +4888,15 @@ msgstr "Редактировать в &разных Vim-ах"
 msgid "Edit with single &Vim"
 msgstr "Редактировать в &одном Vim"
 
-msgid "&Diff with Vim"
-msgstr "&Сравнить с помощью Vim"
+msgid "Diff with Vim"
+msgstr "Сравнить с помощью Vim"
 
 msgid "Edit with &Vim"
 msgstr "Ре&дактировать с помощью Vim"
 
 #. Now concatenate
-msgid "Edit with existing Vim - &"
-msgstr "Редактировать в запущенном Vim - &"
+msgid "Edit with existing Vim - "
+msgstr "Редактировать в запущенном Vim - "
 
 msgid "Edits the selected file(s) with Vim"
 msgstr "Редактировать выделенные файлы с помощью Vim"
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -1,7 +1,7 @@
 /* ex_docmd.c */
 void do_exmode __ARGS((int improved));
 int do_cmdline_cmd __ARGS((char_u *cmd));
-int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
+int do_cmdline __ARGS((char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags));
 int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
 void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
 int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
--- a/src/structs.h
+++ b/src/structs.h
@@ -1846,7 +1846,7 @@ struct window_S
 				       often, keep it the first item!) */
 
 #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-    synblock_T	*w_s;
+    synblock_T	*w_s;		    /* for :ownsyntax */
 #endif
 
 #ifdef FEAT_WINDOWS
--- a/src/ui.c
+++ b/src/ui.c
@@ -2363,14 +2363,14 @@ clip_x11_own_selection(myShell, cbd)
 	       XtLastTimestampProcessed(XtDisplay(myShell)),
 	       clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
 	       NULL) == False)
-	return FAIL;
+	    return FAIL;
     }
     else
 #endif
     {
 	if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
 		  cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
-	return FAIL;
+	    return FAIL;
     }
     /* Flush is required in a terminal as nothing else is doing it. */
     XFlush(XtDisplay(myShell));
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    423,
+/**/
     422,
 /**/
     421,