changeset 3256:ba708ee8d69d

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Tue, 10 Jan 2012 14:55:01 +0100
parents 3c04cfb72ad9
children 75217982ea46
files runtime/autoload/spellfile.vim runtime/doc/change.txt runtime/doc/eval.txt runtime/doc/sign.txt runtime/doc/syntax.txt runtime/doc/todo.txt runtime/doc/various.txt runtime/filetype.vim runtime/ftplugin/lisp.vim runtime/ftplugin/scheme.vim runtime/indent/lisp.vim runtime/syntax/asm.vim runtime/syntax/c.vim runtime/syntax/eiffel.vim runtime/syntax/forth.vim runtime/syntax/fortran.vim runtime/syntax/gsp.vim runtime/syntax/hb.vim runtime/syntax/help.vim runtime/syntax/ist.vim runtime/syntax/jam.vim runtime/syntax/ninja.vim runtime/tutor/tutor.de runtime/tutor/tutor.de.utf-8
diffstat 24 files changed, 278 insertions(+), 103 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/spellfile.vim
+++ b/runtime/autoload/spellfile.vim
@@ -1,6 +1,6 @@
 " Vim script to download a missing spell file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2008 Nov 29
+" Last Change:	2012 Jan 08
 
 if !exists('g:spellfile_URL')
   " Prefer using http:// when netrw should be able to use it, since
@@ -70,7 +70,7 @@ function! spellfile#LoadFile(lang)
     " Remember the buffer number, we check it below.
     new
     let newbufnr = winbufnr(0)
-    setlocal bin
+    setlocal bin fenc=
     echo 'Downloading ' . fname . '...'
     call spellfile#Nread(fname)
     if getline(2) !~ 'VIMspell'
@@ -83,7 +83,7 @@ function! spellfile#LoadFile(lang)
 	  " Our buffer has vanished!?  Open a new window.
 	  echomsg "download buffer disappeared, opening a new one"
 	  new
-	  setlocal bin
+	  setlocal bin fenc=
 	else
 	  exe winnr . "wincmd w"
 	endif
@@ -120,6 +120,7 @@ function! spellfile#LoadFile(lang)
       else
 	let dirname = escape(dirlist[dirchoice], ' ')
       endif
+      setlocal fenc=
       exe "write " . dirname . '/' . fname
 
       " Also download the .sug file, if the user wants to.
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.3.  Last change: 2011 Oct 28
+*change.txt*    For Vim version 7.3.  Last change: 2012 Jan 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -88,7 +88,8 @@ An exception for the d{motion} command: 
 start and end of the motion are not in the same line, and there are only
 blanks before the start and after the end of the motion, the delete becomes
 linewise.  This means that the delete also removes the line of blanks that you
-might expect to remain.
+might expect to remain. Use the |o_v| operator to force the motion to be
+characterwise.
 
 Trying to delete an empty region of text (e.g., "d0" in the first column)
 is an error when 'cpoptions' includes the 'E' flag.
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2011 Dec 19
+*eval.txt*	For Vim version 7.3.  Last change: 2012 Jan 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -6157,7 +6157,7 @@ xor({expr}, {expr})					*xor()*
 		to a number.  A List, Dict or Float argument causes an error.
 		Example: >
 			:let bits = xor(bits, 0x80)
-
+<
 
 
 							*feature-list*
@@ -6340,6 +6340,7 @@ windows			Compiled with support for more
 writebackup		Compiled with 'writebackup' default on.
 xfontset		Compiled with X fontset support |xfontset|.
 xim			Compiled with X input method support |xim|.
+xpm_w32			Compiled with pixmap support for Win32.
 xsmp			Compiled with X session management support.
 xsmp_interact		Compiled with interactive X session management support.
 xterm_clipboard		Compiled with support for xterm clipboard.
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt*      For Vim version 7.3.  Last change: 2010 Oct 14
+*sign.txt*      For Vim version 7.3.  Last change: 2012 Jan 04
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -76,7 +76,7 @@ DEFINING A SIGN.			*:sign-define* *E255*
 
 		Accepted arguments:
 
-	icon={pixmap}
+	icon={bitmap}
 		Define the file name where the bitmap can be found.  Should be
 		a full path.  The bitmap should fit in the place of two
 		characters.  This is not checked.  If the bitmap is too big it
@@ -86,6 +86,8 @@ DEFINING A SIGN.			*:sign-define* *E255*
 			GTK 1		pixmap (.xpm)
 			GTK 2		many
 			Motif		pixmap (.xpm)
+			Win32		.bmp, .ico, .cur
+					pixmap (.xpm) |+xpm_w32|
 
 	linehl={group}
 		Highlighting group used for the whole line the sign is placed
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.3.  Last change: 2011 Dec 30
+*syntax.txt*	For Vim version 7.3.  Last change: 2012 Jan 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -758,6 +758,7 @@ c_syntax_for_h		use C syntax for *.h fil
 c_no_if0		don't highlight "#if 0" blocks as comments
 c_no_cformat		don't highlight %-formats in strings
 c_no_c99		don't highlight C99 standard items
+c_no_c11		don't highlight C11 standard items
 
 When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will
 become a fold.  If you don't want comments to become a fold use: >
@@ -1155,11 +1156,9 @@ conditionals are LightBlue for better di
 FORTRAN					*fortran.vim* *ft-fortran-syntax*
 
 Default highlighting and dialect ~
-Highlighting appropriate for f95 (Fortran 95) is used by default.  This choice
-should be appropriate for most users most of the time because Fortran 95 is a
-superset of Fortran 90 and almost a superset of Fortran 77. Support for 
-Fortran 2003 and Fortran 2008 features has been introduced and is
-automatically available in the default (f95) highlighting.
+Highlighting appropriate for Fortran 2008 is used by default.  This choice
+should be appropriate for most users most of the time because Fortran 2008 is 
+almost a superset of previous versions (Fortran 2003, 95, 90, and 77). 
 
 Fortran source code form ~
 Fortran 9x code can be in either fixed or free source form.  Note that the
@@ -1244,7 +1243,9 @@ construct.
 
 Non-default fortran dialects ~
 The syntax script supports five Fortran dialects: f95, f90, f77, the Lahey
-subset elf90, and the Imagine1 subset F.
+subset elf90, and the Imagine1 subset F. However, these dialects are outdated;
+the next version of the syntax script will support only two variants: modern
+Fortran and legacy Fortran.
 
 If you use f77 with extensions, even common ones like do/enddo loops, do/while
 loops and free source form that are supported by most f77 compilers including
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2011 Dec 30
+*todo.txt*      For Vim version 7.3.  Last change: 2012 Jan 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,37 +38,32 @@ Go through more coverity reports.
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
-Patch to fix crash with EXITFREE. (Dominique Pelle, 2011 Dec 20)
-
-Patch to fix "Console prompts fail to reset the console pager".
-Issue 14 on googlecode
-
-Issue 33 on googlecode: feedkeys() leaks memory.
-
-Patch for Mac using NULL pointer. (Bjorn Winckler, 2011 Dec 18)
-
-Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
-Needs more work.
-
-Issue 43: patch with new C keywords.
-
-When setting 'undofile' while the file is already loaded, but unchanged, try
-to read the undo file.  Requires computing a checksum of the text. (Andy
-Wokula)
-Patch from Christian Brabandt, 2011 Dec 22. Dec 24 with test.
-
-Patch for Vim moving to another window when resizing. (Yukihiro Nakadaira,
-2011 Dec 18)
-
 Compilation problem on z/OS, POUND is equal to '#', duplicate case.
 (Stephen Bovy, 2011 Dec 16)
 
 Once syntax and other runtime files have been fixed: add "set cp" to
 check.vim.  Use a function to run both with 'cp' and 'nocp'.
 
+Patch to fix regression caused by 7.3.251. (Christian Brabandt, 2012 Jan 5)
+
 Patch to make ":helpgrep" work with non-UTF-8 encoding. (Yasuhiro Matsumoto,
 2011 Nov 28, update later that day)
 
+Patch to fix messing up terminal when redrawing too early. (Christian
+Brabandt, 2012 Jan 5)
+
+Patch to fix member confusion in Lua interface. (Taro Muraoka, 2012 Jan 8)
+Update Jan 9.
+Carvalho will merge the patch.
+
+Possible quickfix bug: Audrius Kažukauskas, 2012 Jan 6
+
+Problem reading german spell file? (Jan Stocker, 2012 Jan 5)
+
+Win32: When a directory name contains an exclamation mark, completion doesn't
+complete the contents of the directory.  No escaping for the "!"? (Jan
+Stocker, 2012 Jan 5)
+
 ":doau" says it triggers modeline.  Should this only happen for events used
 when loading a buffer?  (Kana Natsuno, 2011 Nov 7)
 
@@ -163,6 +158,9 @@ Only for MS-Windows.  No documentation. 
 
 Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27)
 
+Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
+Needs more work.  Pinged 2012 Jan 4.
+
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set.  (Dennis Preiser)
 Patch 7.3.116 was the wrong solution.
@@ -409,6 +407,10 @@ mkdir().
 
 'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)
 
+C-indenting: A matching { in a comment is ignored, but intermediate { are not
+checked to be in a comment.  Implement FM_SKIPCOMM flag of findmatchlimit().
+Issue 46.
+
 When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
 right away. (Samuel Ferencik, 2010 Dec 7)
 
@@ -1746,18 +1748,6 @@ 8   non-ASCII font names don't work.  Ne
     the wide functions.
 8   On Windows 98 the unicows library is needed to support functions with UCS2
     file names.  Can we load unicows.dll dynamically?
-8   Win32: With two monitors, gvim partly on both, and adding/removing a
-    scrollbar Vim resizes and moves to one of the monitors. (Chris Monkiewicz,
-    2008 Oct)
-8   When the primary monitor is below or right of the secondary monitor and
-    Vim is on the secondary monitor it will often move to the primary monitor.
-    Window position coordinates can be negative. (James Harvey)
-    When the primary monitor is on the right, coordinates on the left monitor
-    are negative.  Clamping to zero means gvim jups to the primary monitor.
-    (Michael Wookey, 2010 Aug 17)
-    Probably the same issue: When the GUI tab pages line is displayed Vim
-    jumps from the secondary to the primary monitor. (Afton Lewis, 2007 Mar 9)
-    Possible solution using GetSystemMetrics() (Sergey Khorev, 2010 Aug 18)
 8   The -P argument doesn't work very well with many MDI applications.
     The last argument of CreateWindowEx() should be used, see MSDN docs.
     Tutorial: http://win32assembly.online.fr/tut32.html
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.3.  Last change: 2011 Dec 29
+*various.txt*   For Vim version 7.3.  Last change: 2012 Jan 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -391,35 +391,36 @@ N  *+statusline*	Options 'statusline', '
 m  *+sun_workshop*	|workshop|
 N  *+syntax*		Syntax highlighting |syntax|
    *+system()*		Unix only: opposite of |+fork|
-N  *+tag_binary*	binary searching in tags file |tag-binary-search|
+N  *+tag_binary*		binary searching in tags file |tag-binary-search|
 N  *+tag_old_static*	old method for static tags |tag-old-static|
 m  *+tag_any_white*	any white space allowed in tags file |tag-any-white|
-m  *+tcl*		Tcl interface |tcl|
+m  *+tcl*			Tcl interface |tcl|
 m  *+tcl/dyn*		Tcl interface |tcl-dynamic| |/dyn|
    *+terminfo*		uses |terminfo| instead of termcap
 N  *+termresponse*	support for |t_RV| and |v:termresponse|
-N  *+textobjects*	|text-objects| selection
+N  *+textobjects*		|text-objects| selection
    *+tgetent*		non-Unix only: able to use external termcap
 N  *+title*		Setting the window 'title' and 'icon'
 N  *+toolbar*		|gui-toolbar|
 N  *+user_commands*	User-defined commands. |user-commands|
 N  *+viminfo*		|'viminfo'|
 N  *+vertsplit*		Vertically split windows |:vsplit|
-N  *+virtualedit*	|'virtualedit'|
+N  *+virtualedit*		|'virtualedit'|
 S  *+visual*		Visual mode |Visual-mode|
-N  *+visualextra*	extra Visual mode commands |blockwise-operators|
+N  *+visualextra*		extra Visual mode commands |blockwise-operators|
 N  *+vreplace*		|gR| and |gr|
-N  *+wildignore*	|'wildignore'|
+N  *+wildignore*		|'wildignore'|
 N  *+wildmenu*		|'wildmenu'|
 S  *+windows*		more than one window
-m  *+writebackup*	|'writebackup'| is default on
-m  *+xim*		X input method |xim|
+m  *+writebackup*		|'writebackup'| is default on
+m  *+xim*			X input method |xim|
    *+xfontset*		X fontset support |xfontset|
+m  *+xpm_w32*		Win32 GUI only: pixmap support |:sign-define|
    *+xsmp*		XSMP (X session management) support
    *+xsmp_interact*	interactive XSMP (X session management) support
 N  *+xterm_clipboard*	Unix only: xterm clipboard handling
-m  *+xterm_save*	save and restore xterm screen |xterm-screens|
-N  *+X11*		Unix only: can restore window title |X11|
+m  *+xterm_save*		save and restore xterm screen |xterm-screens|
+N  *+X11*			Unix only: can restore window title |X11|
 
 							*/dyn* *E370* *E448*
 			To some of the features "/dyn" is added when the
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2011 Dec 28
+" Last Change:	2012 Jan 04
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1217,6 +1217,9 @@ au BufNewFile,BufRead *.NS[ACGLMNPS]		se
 " Netrc
 au BufNewFile,BufRead .netrc			setf netrc
 
+" Ninja file
+au BufNewFile,BufRead *.ninja			setf ninja
+
 " Novell netware batch files
 au BufNewFile,BufRead *.ncf			setf ncf
 
--- a/runtime/ftplugin/lisp.vim
+++ b/runtime/ftplugin/lisp.vim
@@ -1,10 +1,10 @@
 " Vim filetype plugin
 " Language:      Lisp
 " Maintainer:    Sergey Khorev <sergey.khorev@gmail.com>
-" URL:		 http://iamphet.nm.ru/vim
+" URL:		 http://sites.google.com/site/khorser/opensource/vim
 " Original author:    Dorai Sitaram <ds26@gte.com>
 " Original URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
-" Last Change:   Nov 8, 2004
+" Last Change:   Jan 9, 2012
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
--- a/runtime/ftplugin/scheme.vim
+++ b/runtime/ftplugin/scheme.vim
@@ -1,13 +1,32 @@
 " Vim filetype plugin
 " Language:      Scheme
 " Maintainer:    Sergey Khorev <sergey.khorev@gmail.com>
-" URL:		 http://iamphet.nm.ru/vim
+" URL:		 http://sites.google.com/site/khorser/opensource/vim
 " Original author:    Dorai Sitaram <ds26@gte.com>
 " Original URL:		 http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
-" Last Change:   Nov 22, 2004
+" Last Change:   Jan 9, 2012
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+  finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
 
-runtime! ftplugin/lisp.vim ftplugin/lisp_*.vim ftplugin/lisp/*.vim
+" Copy-paste from ftplugin/lisp.vim
+setl comments=:;
+setl define=^\\s*(def\\k*
+setl formatoptions-=t
+setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
+setl lisp
 
+" make comments behaviour like in c.vim
+" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
+setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
+setl formatoptions+=croql
+
+" Scheme-specific settings
 if exists("b:is_mzscheme") || exists("is_mzscheme")
     " improve indenting
     setl iskeyword+=#,%,^
--- a/runtime/indent/lisp.vim
+++ b/runtime/indent/lisp.vim
@@ -1,8 +1,8 @@
 " Vim indent file
 " Language:	Lisp
 " Maintainer:    Sergey Khorev <sergey.khorev@gmail.com>
-" URL:		 http://iamphet.nm.ru/vim
-" Last Change:	2005 May 19
+" URL:		 http://sites.google.com/site/khorser/opensource/vim
+" Last Change:	2012 Jan 10
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
--- a/runtime/syntax/asm.vim
+++ b/runtime/syntax/asm.vim
@@ -3,7 +3,7 @@
 " Maintainer:	Erik Wognsen <erik.wognsen@gmail.com>
 "		Previous maintainer:
 "		Kevin Dahlhausen <kdahlhaus@yahoo.com>
-" Last Change:	2010 Apr 18
+" Last Change:	2012 Jan 5
 
 " Thanks to Ori Avtalion for feedback on the comment markers!
 
@@ -15,6 +15,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 " storage types
@@ -40,7 +43,7 @@ syn match asmIdentifier		"[a-z_][a-z0-9_
 " Various #'s as defined by GAS ref manual sec 3.6.2.1
 " Technically, the first decNumber def is actually octal,
 " since the value of 0-7 octal is the same as 0-7 decimal,
-" I prefer to map it as decimal:
+" I (Kevin) prefer to map it as decimal:
 syn match decNumber		"0\+[1-7]\=[\t\n$,; ]"
 syn match decNumber		"[1-9]\d*"
 syn match octNumber		"0[0-7][0-7]\+"
@@ -49,14 +52,34 @@ syn match binNumber		"0[bB][0-1]*"
 
 syn keyword asmTodo		contained TODO
 
-" GAS supports various comment markers as described here:
-" http://sourceware.org/binutils/docs-2.19/as/Comments.html
-" I have commented out the ARM comment marker "@" by default as I think more
-" people are using "@" with the .type directive. See
-" http://sourceware.org/binutils/docs-2.19/as/Type.html
+
+" GAS supports one type of multi line comments:
 syn region asmComment		start="/\*" end="\*/" contains=asmTodo
+
+" Line comment characters depend on the target architecture and command line
+" options and some comments may double as logical line number directives or
+" preprocessor commands. This situation is described at
+" http://sourceware.org/binutils/docs-2.22/as/Comments.html
+" Some line comment characters have other meanings for other targets. For
+" example, .type directives may use the `@' character which is also an ARM
+" comment marker.
+" As a compromise to accommodate what I arbitrarily assume to be the most
+" frequently used features of the most popular architectures (and also the
+" non-GNU assembly languages that use this syntax file because their asm files
+" are also named *.asm), the following are used as line comment characters:
 syn match asmComment		"[#;!|].*" contains=asmTodo
-" syn match asmComment		"@.*" contains=asmTodo
+
+" Side effects of this include:
+" - When `;' is used to separate statements on the same line (many targets
+"   support this), all statements except the first get highlighted as
+"   comments. As a remedy, remove `;' from the above.
+" - ARM comments are not highlighted correctly. For ARM, uncomment the
+"   following two lines and comment the one above.
+"syn match asmComment		"@.*" contains=asmTodo
+"syn match asmComment		"^#.*" contains=asmTodo
+
+" Advanced users of specific architectures will probably want to change the
+" comment highlighting or use a specific, more comprehensive syntax file.
 
 syn match asmInclude		"\.include"
 syn match asmCond		"\.if"
@@ -97,7 +120,7 @@ if version >= 508 || !exists("did_asm_sy
   HiLink octNumber	Number
   HiLink binNumber	Number
 
-  HiLink asmIdentifier Identifier
+  HiLink asmIdentifier	Identifier
   HiLink asmType	Type
 
   delcommand HiLink
@@ -105,4 +128,7 @@ endif
 
 let b:current_syntax = "asm"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2011 Dec 30
+" Last Change:	2012 Jan 04
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -181,7 +181,7 @@ if !exists("c_no_ansi") || exists("c_ans
   syn keyword   cType		mbstate_t wctrans_t wint_t wctype_t
 endif
 if !exists("c_no_c99") " ISO C99
-  syn keyword	cType		bool complex
+  syn keyword	cType		_Bool bool _Complex complex _Imaginary imaginary
   syn keyword	cType		int8_t int16_t int32_t int64_t
   syn keyword	cType		uint8_t uint16_t uint32_t uint64_t
   syn keyword	cType		int_least8_t int_least16_t int_least32_t int_least64_t
@@ -203,6 +203,15 @@ endif
 if !exists("c_no_c99")
   syn keyword	cStorageClass	inline restrict
 endif
+if !exists("c_no_c11")
+  syn keyword	cStorageClass	_Alignas alignas
+  syn keyword	cOperator	_Alignof alignof
+  syn keyword	cStorageClass	_Atomic
+  syn keyword	cOperator	_Generic
+  syn keyword	cStorageClass	_Noreturn noreturn
+  syn keyword	cOperator	_Static_assert static_assert
+  syn keyword	cStorageClass	_Thread_local thread_local
+endif
 
 if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
   if exists("c_gnu")
--- a/runtime/syntax/eiffel.vim
+++ b/runtime/syntax/eiffel.vim
@@ -3,7 +3,7 @@
 " Maintainer:	Reimer Behrends <behrends@cse.msu.edu>
 "		With much input from Jocelyn Fiat <fiat@eiffel.com>
 " See http://www.cse.msu.edu/~behrends/vim/ for the most current version.
-" Last Change:	2001 May 09
+" Last Change:	2011 Dec 31 by Thilo Six
 
 " 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
+
 " Option handling
 
 if exists("eiffel_ignore_case")
@@ -193,4 +196,6 @@ endif
 
 let b:current_syntax = "eiffel"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/forth.vim
+++ b/runtime/syntax/forth.vim
@@ -1,11 +1,11 @@
 " Vim syntax file
 " Language:    FORTH
 " Maintainer:  Christian V. J. Brüssow <cvjb@cvjb.de>
-" Last Change: Di 07 Jul 2009 21:38:45 CEST
+" Last Change: Sa 07 Jan 2012 21:30:55 CET
 " Filenames:   *.fs,*.ft
 " URL:	       http://www.cvjb.de/comp/vim/forth.vim
 
-" $Id: forth.vim,v 1.12 2008/07/07 21:39:12 bruessow Exp $
+" $Id: forth.vim,v 1.13 2012/01/07 21:31:31 bruessow Exp $
 
 " The list of keywords is incomplete, compared with the offical ANS
 " wordlist. If you use this language, please improve it, and send me
@@ -16,6 +16,10 @@
 " for forth.vim).
 
 " Many Thanks to...
+" 
+" 2012-01-07:
+" Thilo Six <T.Six at gmx dot de> send a patch for cpoptions.
+" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151
 "
 " 2009-06-28:
 " Josh Grams send a patch to allow the parenthesis comments at the
@@ -47,7 +51,7 @@
 " Thomas E. Vaughan <tevaugha at ball dot com> send me a patch
 " for the parenthesis comment word, so words with a trailing
 " parenthesis will not start the highlighting for such comments.
-" 
+"
 " 2003-05-10:
 " Andrew Gaul <andrew at gaul.org> send me a patch for
 " forthOperators.
@@ -80,6 +84,9 @@ elseif exists("b:current_syntax")
     finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Synchronization method
 syn sync ccomment
 syn sync maxlines=200
@@ -125,7 +132,7 @@ syn keyword forthOperators F~REL F~ABS F
 syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >= U< U<=
 syn keyword forthOperators U> U>= D0< D0<= D0<> D0= D0> D0>= D< D<= D<>
 syn keyword forthOperators D= D> D>= DU< DU<= DU> DU>= WITHIN ?NEGATE
-syn keyword forthOperators ?DNEGATE 
+syn keyword forthOperators ?DNEGATE
 
 " stack manipulations
 syn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLL
@@ -171,7 +178,7 @@ syn keyword forthDefine LITERAL CREATE-I
 syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT
 syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP
 syn keyword forthDefine NAME>STRING STATE C; CVARIABLE
-syn keyword forthDefine , 2, F, C, 
+syn keyword forthDefine , 2, F, C,
 syn match forthDefine "\[IFDEF]"
 syn match forthDefine "\[IFUNDEF]"
 syn match forthDefine "\[THEN]"
@@ -210,7 +217,7 @@ syn match forthCharOps '\<\[char\]\s\S\s
 syn region forthCharOps start=+."\s+ skip=+\\"+ end=+"+
 
 " char-number conversion
-syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F 
+syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F
 syn keyword forthConversion D>S DIGIT DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER
 syn keyword forthConversion F>S S>F
 
@@ -225,7 +232,7 @@ syn keyword forthVocs ONLY FORTH ALSO RO
 syn keyword forthVocs VOCABULARY DEFINITIONS
 
 " File keywords
-syn keyword forthFileMode R/O R/W W/O BIN 
+syn keyword forthFileMode R/O R/W W/O BIN
 syn keyword forthFileWords OPEN-FILE CREATE-FILE CLOSE-FILE DELETE-FILE
 syn keyword forthFileWords RENAME-FILE READ-FILE READ-LINE KEY-FILE
 syn keyword forthFileWords KEY?-FILE WRITE-FILE WRITE-LINE EMIT-FILE
@@ -331,4 +338,6 @@ endif
 
 let b:current_syntax = "forth"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim:ts=8:sw=4:nocindent:smartindent:
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
-" Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
-" Version:	0.90
-" Last Change:	2011 Dec. 28
+" Language:	Fortran 2008 (and earlier versions including 2003, 95, 90, and 77)
+" Version:	0.91
+" Last Change:	2012 Jan. 02
 " Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
 " Usage:	For instructions, do :help fortran-syntax from Vim
 " Credits:
@@ -133,6 +133,7 @@ syn match fortranUnitHeader	"\<program\>
 syn keyword fortranKeyword	return stop
 syn keyword fortranConditional	else then
 syn match fortranConditional	"\<if\>"
+syn match fortranConditionalOb	"\<if\s*(.*)\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*$"
 syn match fortranRepeat		"\<do\>"
 
 syn keyword fortranTodo		contained todo fixme
@@ -144,6 +145,7 @@ syn match  fortranParenError   ")"
 syn match fortranOperator	"\.\s*n\=eqv\s*\."
 syn match fortranOperator	"\.\s*\(and\|or\|not\)\s*\."
 syn match fortranOperator	"\(+\|-\|/\|\*\)"
+syn match fortranTypeOb		"\<character\>\@<=\s*\*"
 
 syn match fortranBoolean	"\.\s*\(true\|false\)\s*\."
 
@@ -161,7 +163,7 @@ syn keyword fortranIO		access blank dire
 syn keyword fortran66Intrinsic		alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl
 
 " Intrinsics provided by some vendors
-syn keyword fortranExtraIntrinsic	algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama erf erfc gamma iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh
+syn keyword fortranExtraIntrinsic	algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh
 
 syn keyword fortran77Intrinsic	abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
 syn match fortran77Intrinsic	"\<len\s*[(,]"me=s+3
@@ -211,10 +213,12 @@ syn keyword fortranTypeEx	external
 syn keyword fortranIOEx		format
 syn match fortranKeywordEx	"\<continue\>"
 syn match fortranKeyword	"^\s*\d\+\s\+continue\>"
-syn match fortranKeywordEx	"\<go\s*to\>"
+syn match fortranKeyword  	"\<go\s*to\>"
+syn match fortranKeywordDel  	"\<go\s*to\ze\s\+.*,\s*(.*$"
+syn match fortranKeywordOb  	"\<go\s*to\ze\s*(\d\+.*$"
 syn region fortranStringEx	start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber
 syn keyword fortran77IntrinsicEx	dim lge lgt lle llt mod
-syn keyword fortranKeywordOb	assign pause to
+syn keyword fortranKeywordDel	assign pause
 
 if b:fortran_dialect != "f77"
 
@@ -273,7 +277,7 @@ syn match   fortranConditional	"\<end\s*
 syn match   fortranIO		contains=fortranOperator "\<e\(nd\|rr\)\s*=\s*\d\+"
 syn match   fortranConditional	"\<else\s*if"
 
-syn keyword fortranUnitHeaderR	entry
+syn keyword fortranUnitHeaderOb	entry
 syn match fortranTypeR		display "double\s\+precision"
 syn match fortranTypeR		display "double\s\+complex"
 syn match fortranUnitHeaderR	display "block\s\+data"
@@ -467,6 +471,20 @@ if version >= 508 || !exists("did_fortra
   HiLink fortran08Intrinsic	Function
   HiLink fortran03Constant	Function
 
+  if b:fortran_dialect != "f77"
+    HiLink fortranUnitHeaderOb    Todo
+    HiLink fortranKeywordOb       Todo
+    HiLink fortranConditionalOb   Todo
+    HiLink fortranTypeOb          Todo
+    HiLink fortranKeywordDel      Todo
+  else
+    HiLink fortranUnitHeaderOb    fortranUnitHeader
+    HiLink fortranKeywordOb       fortranKeyword
+    HiLink fortranConditionalOb   fortranConditional
+    HiLink fortranTypeOb          fortranType
+    HiLink fortranKeywordDel      fortranKeyword
+  endif
+
   if ( b:fortran_dialect == "elf" || b:fortran_dialect == "F" )
     HiLink fortranKeywordOb	fortranObsolete
     HiLink fortran66Intrinsic	fortranObsolete
--- a/runtime/syntax/gsp.vim
+++ b/runtime/syntax/gsp.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	GSP - GNU Server Pages (v. 0.86)
 " Created By:	Nathaniel Harward nharward@yahoo.com
-" Last Changed: Dec. 12, 2000
+" Last Changed: 2012 Jan 08 by Thilo Six
 " Filenames:    *.gsp
 " URL:		http://www.constructicon.com/~nharward/vim/syntax/gsp.vim
 
@@ -34,6 +34,9 @@ else
   syn include @gspJava syntax/java.vim
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Add <java> as an HTML tag name along with its args
 syn keyword htmlTagName contained java
 syn keyword htmlArg     contained type file page
@@ -57,3 +60,6 @@ let b:current_syntax = "gsp"
 if main_syntax == 'gsp'
   unlet main_syntax
 endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/hb.vim
+++ b/runtime/syntax/hb.vim
@@ -2,7 +2,7 @@
 " Language:	Hyper Builder
 " Maintainer:	Alejandro Forero Cuervo
 " URL:		http://bachue.com/hb/vim/syntax/hb.vim
-" Last Change:	2001 Sep 02
+" Last Change:	2012 Jan 08 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,9 @@ elseif exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Read the HTML syntax to start with
 "syn include @HTMLStuff <sfile>:p:h/htmlhb.vim
 
@@ -94,4 +97,6 @@ syn sync match Normal grouphere NONE "^:
 
 let b:current_syntax = "hb"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,13 +1,16 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	Bram Moolenaar (Bram@vim.org)
-" Last Change:	2011 Dec 03
+" Last Change:	2012 Jan 08
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn match helpHeadline		"^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
 syn match helpSectionDelim	"^=\{3,}.*===$"
 syn match helpSectionDelim	"^-\{3,}.*--$"
@@ -196,4 +199,6 @@ hi def link helpURL		String
 
 let b:current_syntax = "help"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 sw=2
--- a/runtime/syntax/ist.vim
+++ b/runtime/syntax/ist.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Makeindex style file, *.ist
 " Maintainer:	Peter Meszaros <pmeszaros@effice.hu>
-" Last Change:	May 4, 2001
+" Last Change:	2012 Jan 08 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
+
 if version >= 600
   setlocal iskeyword=$,@,48-57,_
 else
@@ -67,4 +70,6 @@ endif
 
 let b:current_syntax = "ist"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 sw=2
--- a/runtime/syntax/jam.vim
+++ b/runtime/syntax/jam.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	JAM
 " Maintainer:	Ralf Lemke (ralflemk@t-online.de)
-" Last change:	09-10-2000
+" Last change:	2012 Jan 08 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
+
 if version >= 600
   setlocal iskeyword=@,48-57,_,-
 else
@@ -249,4 +252,6 @@ endif
 
 let b:current_syntax = "jam"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/ninja.vim
@@ -0,0 +1,63 @@
+" ninja build file syntax.
+" Language: ninja build file as described at
+"           http://martine.github.com/ninja/manual.html
+" Version: 1.0
+" Last Change: 2012 Jan 04
+" Maintainer: Nicolas Weber <nicolasweber@gmx.de>
+
+" ninja lexer and parser are at
+" https://github.com/martine/ninja/blob/master/src/lexer.in.cc
+" https://github.com/martine/ninja/blob/master/src/parsers.cc
+
+if exists("b:current_syntax")
+  finish
+endif
+
+syn case match
+
+" Toplevel statements are the ones listed here and
+" toplevel variable assignments (ident '=' value).
+" lexer.in.cc, ReadToken() and parsers.cc, Parse()
+syn match ninjaKeyword "^build\>"
+syn match ninjaKeyword "^rule\>"
+syn match ninjaKeyword "^default\>"
+syn match ninjaKeyword "^include\>"
+syn match ninjaKeyword "^subninja\>"
+
+" Both 'build' and 'rule' begin a variable scope that ends
+" on the first line without indent. 'rule' allows only a
+" limited set of magic variables, 'build' allows general
+" let assignments.
+" parsers.cc, ParseRule()
+syn region ninjaRule start="^rule" end="^\ze\S" contains=ALL transparent
+syn keyword ninjaRuleCommand contained command depfile description generator restat
+
+" Strings are parsed as follows:
+" lexer.in.cc, ReadEvalString()
+" simple_varname = [a-zA-Z0-9_-]+;
+" varname = [a-zA-Z0-9_.-]+;
+" $$ -> $
+" $\n -> line continuation
+" '$ ' -> escaped space
+" $simple_varname -> variable
+" ${varname} -> variable
+
+syn match   ninjaWrapLineOperator "\$$"
+syn match   ninjaSimpleVar "\$[a-zA-Z0-9_-]\+"
+syn match   ninjaVar       "\${[a-zA-Z0-9_.-]\+}"
+
+" operators are:
+" variable assignment =
+" rule definition :
+" implicit dependency |
+" order-only dependency ||
+syn match ninjaOperator "\(=\|:\||\|||\)\ze\s"
+
+hi def link ninjaKeyword Keyword
+hi def link ninjaRuleCommand Statement
+hi def link ninjaWrapLineOperator ninjaOperator
+hi def link ninjaOperator Operator
+hi def link ninjaSimpleVar ninjaVar
+hi def link ninjaVar Identifier
+
+let b:current_syntax = "ninja"
--- a/runtime/tutor/tutor.de
+++ b/runtime/tutor/tutor.de
@@ -374,7 +374,7 @@ Bemerkung:  Die Eingabe lediglich des Be
 
   1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
 
-  2. Tippe  dd  , um die Zeile zu löschen und sie in eimem Vim-Register zu
+  2. Tippe  dd  , um die Zeile zu löschen und sie in einem Vim-Register zu
      speichern.
 
   3. Bewege den Cursor zur Zeile c), ÜBER derjenigen, wo die gelöschte Zeile
--- a/runtime/tutor/tutor.de.utf-8
+++ b/runtime/tutor/tutor.de.utf-8
@@ -374,7 +374,7 @@ Bemerkung:  Die Eingabe lediglich des Be
 
   1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
 
-  2. Tippe  dd  , um die Zeile zu löschen und sie in eimem Vim-Register zu
+  2. Tippe  dd  , um die Zeile zu löschen und sie in einem Vim-Register zu
      speichern.
 
   3. Bewege den Cursor zur Zeile c), ÜBER derjenigen, wo die gelöschte Zeile