changeset 3082:3502a7f991fc

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Wed, 14 Sep 2011 17:55:08 +0200
parents 1e50bdaa24f8
children dc60200a16b2
files runtime/doc/autocmd.txt runtime/doc/eval.txt runtime/doc/gui.txt runtime/doc/gui_w32.txt runtime/doc/gui_x11.txt runtime/doc/if_pyth.txt runtime/doc/indent.txt runtime/doc/index.txt runtime/doc/insert.txt runtime/doc/map.txt runtime/doc/motion.txt runtime/doc/options.txt runtime/doc/os_vms.txt runtime/doc/os_win32.txt runtime/doc/pattern.txt runtime/doc/pi_vimball.txt runtime/doc/pi_zip.txt runtime/doc/starting.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/undo.txt runtime/doc/vi_diff.txt runtime/doc/windows.txt runtime/filetype.vim runtime/ftplugin/c.vim runtime/ftplugin/man.vim runtime/indent/awk.vim runtime/indent/r.vim runtime/indent/rst.vim runtime/plugin/matchparen.vim runtime/syntax/c.vim runtime/syntax/dosini.vim runtime/syntax/pamconf.vim runtime/syntax/php.vim runtime/syntax/verilog.vim
diffstat 35 files changed, 903 insertions(+), 297 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.3.  Last change: 2011 May 19
+*autocmd.txt*   For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -448,6 +448,9 @@ BufWriteCmd			Before writing the whole b
 				'modified' if successful, unless '+' is in
 				'cpo' and writing to another file |cpo-+|.
 				The buffer contents should not be changed.
+				When the command resets 'modified' the undo
+				information is adjusted to mark older undo
+				states as 'modified', like |:write| does.
 				|Cmd-event|
 							*BufWritePost*
 BufWritePost			After writing the whole buffer to a file
@@ -508,6 +511,7 @@ CursorMoved			After the cursor was moved
 				not expect or that is slow.
 							*CursorMovedI*
 CursorMovedI			After the cursor was moved in Insert mode.
+				Not triggered when the popup menu is visible.
 				Otherwise the same as CursorMoved.
 							*EncodingChanged*
 EncodingChanged			Fires off after the 'encoding' option has been
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2011 Jul 13
+*eval.txt*	For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,7 +39,7 @@ 1.1 Variable types ~
 							*E712*
 There are six types of variables:
 
-Number		A 32 bit signed number.  |expr-number| *Number*
+Number		A 32 or 64 bit signed number.  |expr-number| *Number*
 		Examples:  -123  0x10  0177
 
 Float		A floating point number. |floating-point-format| *Float*
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.3.  Last change: 2010 Nov 03
+*gui.txt*       For Vim version 7.3.  Last change: 2011 Jul 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,6 +147,15 @@ task bar with the 'guiheadroom' option.
 If you are running the X Window System, you can get information about the
 window Vim is running in with this command: >
 	:!xwininfo -id $WINDOWID
+<
+							*gui-IME* *iBus*
+Input methods for international characters in X that rely on the XIM
+framework, most notably iBus, have been known to produce undesirable results
+in gVim. These may include an inability to enter spaces, or long delays
+between typing a character and it being recognized by the application.
+
+One workaround that has been successful, for unknown reasons, is to prevent
+gvim from forking into the background by starting it with the |-f| argument.
 
 ==============================================================================
 2. Scrollbars						*gui-scrollbars*
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 7.3.  Last change: 2010 Dec 19
+*gui_w32.txt*   For Vim version 7.3.  Last change: 2011 Jul 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -137,6 +137,9 @@ options:
 And if there already is a gvim running:
 "Edit with existing gvim"   -- edit the file with the running gvim
 
+The "edit with existing Vim" entries can be disabled by adding an entry in the
+registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
+any value.
 						*install-registry*
 You can add the "Edit with Vim" menu entry in an easy way by using the
 "install.exe" program.  It will add several registry entries for you.
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.3.  Last change: 2010 Jul 20
+*gui_x11.txt*   For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -53,6 +53,8 @@ When using "gvim -f" and then ":gui", Vi
 ":gui -b".
 
 "gvim --nofork" does the same as "gvim -f".
+								*E851* *E852*
+When starting the GUI fails Vim will try to continue running in the terminal.
 
 If you want the GUI to run in the foreground always, include the 'f'
 flag in 'guioptions'.  |-f|.
--- 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 May 07
+*if_pyth.txt*   For Vim version 7.3.  Last change: 2011 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -380,7 +380,7 @@ 3. You undefine PY_NO_RTLD_GLOBAL in aut
 							*has-python*
 You can test what Python version is available with: >
 	if has('python')
-	  echo 'there is Pyton 2.x'
+	  echo 'there is Python 2.x'
   	elseif has('python3')
 	  echo 'there is Python 3.x'
 	endif
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.3.  Last change: 2011 Jul 15
+*indent.txt*    For Vim version 7.3.  Last change: 2011 Sep 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -132,8 +132,8 @@ The 'cinoptions' option sets how Vim per
 the option character can be one of these (N is any number):
 	N	indent N spaces
 	-N	indent N spaces to the left
-	Ns	N times 'shiftwidth spaces
-	-Ns	N times 'shiftwidth spaces to the left
+	Ns	N times 'shiftwidth' spaces
+	-Ns	N times 'shiftwidth' spaces to the left
 
 In the list below,
 "N" represents a number of your choice (the number can be negative).  When
@@ -432,7 +432,7 @@ The examples below assume a 'shiftwidth'
 		       c3			    c3
 		      ) && c4;			) && c4;
 <
-							*cino-2*
+							*cino-w*
 	wN    When in unclosed parentheses and N is non-zero and either
 	      using "(0" or "u0", respectively, or using "U0" and the unclosed
 	      parentheses is the first non-white character in its line, line
@@ -706,6 +706,43 @@ Indent for a continuation line: >
 	let g:pyindent_continue = '&sw * 2'
 
 
+R								*ft-r-indent*
+
+Function arguments are aligned if they span for multiple lines. If you prefer
+do not have the arguments of functions aligned, put in your |vimrc|:
+>
+   let r_indent_align_args = 0
+<
+All lines beginning with a comment character, #, get the same indentation
+level of the normal R code. Users of Emacs/ESS may be used to have lines
+beginning with a single # indented in the 40th column, ## indented as R code,
+and ### not indented. If you prefer that lines beginning with comment
+characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
+>
+   let r_indent_ess_comments = 1
+<
+If you prefer that lines beginning with a single # are aligned at a column
+different from the 40th one, you should set a new value to the variable
+r_indent_comment_column, as in the example below:
+>
+   let r_indent_comment_column = 30
+<
+Any code after a line that ends with "<-" is indented. Emacs/ESS does not
+indent the code if it is a top level function. If you prefer that the
+Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|:
+>
+   let r_indent_ess_compatible = 1
+<
+Below is an example of indentation with and without this option enabled:
+>
+   ### r_indent_ess_compatible = 1           ### r_indent_ess_compatible = 0
+   foo <-                                    foo <-
+       function(x)                               function(x)
+   {                                             {
+       paste(x)                                      paste(x)
+   }                                             }
+<
+
 SHELL							*ft-sh-indent*
 
 The amount of indent applied under various circumstances in a shell file can
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.3.  Last change: 2011 Jan 04
+*index.txt*     For Vim version 7.3.  Last change: 2011 Aug 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1261,7 +1261,7 @@ tag	      command	      action ~
 |:k|		:k		set a mark
 |:keepalt|	:keepa[lt]	following command keeps the alternate file
 |:keepmarks|	:kee[pmarks]	following command keeps marks where they are
-|:keepjumps|	:keepj[jumps]	following command keeps jumplist and marks
+|:keepjumps|	:keepj[umps]	following command keeps jumplist and marks
 |:lNext|	:lN[ext]	go to previous entry in location list
 |:lNfile|	:lNf[ile]	go to last entry in previous file
 |:list|		:l[ist]		print lines
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.3.  Last change: 2010 Nov 10
+*insert.txt*    For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1020,6 +1020,21 @@ On the second invocation the arguments a
 The function must return a List with the matching words.  These matches
 usually include the "a:base" text.  When there are no matches return an empty
 List.
+
+In order to return more information than the matching words, return a Dict
+that contains the List.  The Dict can have these items:
+	words		The List of matching words (mandatory).
+	refresh		A string to control re-invocation of the function
+			(optional).
+			The only value currently recognized is "always", the
+			effect is that the function is called whenever the
+			leading text is changed.
+Other items are ignored.
+
+For example, the function can contain this: >
+	let matches = ... list of words ...
+	return {'words': matches, 'refresh': 'always'}
+<
 						*complete-items*
 Each list item can either be a string or a Dictionary.  When it is a string it
 is used as the completion.  When it is a Dictionary it can contain these
@@ -1040,9 +1055,10 @@ items:
 	empty		when non-zero this match will be added even when it is
 			an empty string
 
-All of these except 'icase' must be a string.  If an item does not meet these
-requirements then an error message is given and further items in the list are
-not used.  You can mix string and Dictionary items in the returned list.
+All of these except 'icase', 'dup' and 'empty' must be a string.  If an item
+does not meet these requirements then an error message is given and further
+items in the list are not used.  You can mix string and Dictionary items in
+the returned list.
 
 The "menu" item is used in the popup menu and may be truncated, thus it should
 be relatively short.  The "info" item can be longer, it will  be displayed in
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.3.  Last change: 2011 Jun 13
+*map.txt*       For Vim version 7.3.  Last change: 2011 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -228,7 +228,7 @@ text before the cursor and start omni co
 
 For abbreviations |v:char| is set to the character that was typed to trigger
 the abbreviation.  You can use this to decide how to expand the {lhs}.  You
-you should not either insert or change the v:char.
+should not either insert or change the v:char.
 
 Be very careful about side effects!  The expression is evaluated while
 obtaining characters, you may very well make the command dysfunctional.
@@ -544,6 +544,7 @@ construct can be used:
 	<Char-123>	character 123
 	<Char-033>	character 27
 	<Char-0x7f>	character 127
+	<S-Char-114>    character 114 ('r') shifted ('R')
 This is useful to specify a (multi-byte) character in a 'keymap' file.
 Upper and lowercase differences are ignored.
 
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.3.  Last change: 2011 Jun 02
+*motion.txt*    For Vim version 7.3.  Last change: 2011 Jul 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1017,8 +1017,6 @@ CTRL-O			Go to [count] Older cursor posi
 <Tab>		or					*CTRL-I* *<Tab>*
 CTRL-I			Go to [count] newer cursor position in jump list
 			(not a motion command).
-			In a |quickfix-window| it takes you to the position of
-			the error under the cursor.
 			{not in Vi}
 			{not available without the |+jumplist| feature}
 
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.3.  Last change: 2011 Jul 07
+*options.txt*	For Vim version 7.3.  Last change: 2011 Sep 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4861,6 +4861,10 @@ A jump table for the options with a shor
 	   written.  A ":set nomodified" command also resets the original
 	   values to the current values and the 'modified' option will be
 	   reset.
+	This option is not set when a change is made to the buffer as the
+	result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
+	FileAppendPost or VimLeave autocommand event.  See |gzip-example| for
+	an explanation.
 	When 'buftype' is "nowrite" or "nofile" this option may be set, but
 	will be ignored.
 
@@ -5898,8 +5902,11 @@ A jump table for the options with a shor
 	"bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
 	systems, the default is set according to the value of 'shell', to
 	reduce the need to set this option by the user.  It's not used for
-	OS/2 (EMX figures this out itself).  See |option-backslash| about
-	including spaces and backslashes.  See |dos-shell|.
+	OS/2 (EMX figures this out itself).
+	On Unix it can have more than one flag.  Each white space separated
+	part is passed as an argument to the shell command.
+	See |option-backslash| about including spaces and backslashes.
+	Also see |dos-shell| for MS-DOS and MS-Windows.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
 
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.3.  Last change: 2010 Aug 16
+*os_vms.txt*    For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL
@@ -38,9 +38,6 @@ You can download the Vim source code by 
 Or use one of the mirrors:
 	ftp://ftp.vim.org/pub/vim/MIRRORS
 
-You will need both the Unix and Extra archives to build vim.exe for VMS.
-For using Vim's full power you will need the runtime files as well.
-
 You can download precompiled executables from:
 	http://www.polarhome.com/vim/
 	ftp://ftp.polarhome.com/pub/vim/
@@ -75,7 +72,7 @@ See the file [.SRC]INSTALLVMS.TXT.
 4. Problems						*vms-problems*
 
 The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
-platforms with the DEC C compiler.  It should work without bigger problems.
+platforms with the DEC C compiler.  It should work without big problems.
 If your system does not have some include libraries you can tune up in
 OS_VMS_CONF.H file.
 
@@ -88,11 +85,11 @@ Also GTK, XPM library paths should be co
 
 Note: Under VAX it should work with the DEC C compiler without problems.  The
 VAX C compiler is not fully ANSI C compatible in pre-processor directives
-semantics, therefore you have to use a converter program what will do the lion
+semantics, therefore you have to use a converter program that will do the lion
 part of the job.  For detailed instructions read file INSTALLvms.txt
 
-MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
-change to subdirectory and build it separately.
+MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
+change to a subdirectory and build it separately.
 
 CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
 specific source might contain CTAGS source files as described above.
@@ -184,9 +181,9 @@ You may want to create .vimrc and .gvimr
 
 The easiest way is just rename example files.  You may leave the menu file
 (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory.  It will
-be default setup for all users, and for users it is enough just to have their
-own additions or resetting in their home directory in files .vimrc and .gvimrc.
-It should work without problems.
+be the default setup for all users, and for users it is enough to just have
+their own additions or resetting in their home directory in files .vimrc and
+.gvimrc.  It should work without problems.
 
 Note: Remember, system rc files (default for all users) don't have a leading
 ".".  So, system rc files are: >
@@ -200,7 +197,7 @@ and user customized rc files are: >
 	sys$login:.vimrc
 	sys$login:.gvimrc
 
-You can check that everything is on the right place with the :version command.
+You can check that everything is at the right place with the :version command.
 
 Example LOGIN.COM: >
 
@@ -209,15 +206,15 @@ Example LOGIN.COM: >
 	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
 	$ set disp/create/node=192.168.5.223/trans=tcpip
 
-Note: This set-up should be enough, if you are working on standalone server or
-clustered environment, but if you want to use Vim as internode editor in
+Note: This set-up should be enough, if you are working on a standalone server or
+clustered environment, but if you want to use Vim as an internode editor in
 DECNET environment, it will satisfy as well.
 You just have to define the "whole" path: >
 
 	$ define VIM "<server_name>[""user password""]::device:<path>"
 	$ vi*m :== "mcr VIM:VIM.EXE"
 
-As for example: >
+For example: >
 
 	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
 	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
@@ -300,12 +297,12 @@ 3) Another elegant solution is XDM if yo
 
 4) If you are working on MS-Windows or some other non X/Window environment
    you need to set up one X server and run Vim as in point 2.
-   For MS-Windows there are available free X servers as MIX , Omni X etc.,
+   For MS-Windows there are available free X servers as MIX, Omni X etc.,
    as well as excellent commercial products as eXcursion or ReflectionX with
    built-in DEC support.
 
 Please note, that executables without GUI are slightly faster during startup
-then with enabled GUI in character mode. Therefore, if you do not use GUI
+than with enabled GUI in character mode. Therefore, if you do not use GUI
 features, it is worth to choose non GUI executables.
 
 ==============================================================================
@@ -326,8 +323,8 @@ 8.11 diff and other GNU programs
 8.12 diff-mode
 8.13 Allow '$' in C keywords
 8.14 VIMTUTOR for beginners
-8.15 Slow start in console mode issue 
-8.16 Common VIM directory - different architectures 
+8.15 Slow start in console mode issue
+8.16 Common VIM directory - different architectures
 
 8.1 Backspace/delete
 
@@ -360,7 +357,7 @@ number, try these settings. >
 	:set nowritebackup   " does not have any purpose on VMS.  It's the
 			     " default.
 
-Recovery is working perfect as well from the default swap file.
+Recovery is working perfectly as well from the default swap file.
 Read more with :help swapfile
 
 (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
@@ -386,7 +383,7 @@ Note: You may use <,> brackets as well (
 rf10:<user.zay.work>test.c;1
 
 (David Elins <delins@foliage.com>, Jerome Lauret
-<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
+<JLAURET@mail.chem.sunysb.edu> Vim 5.6)
 
 
 8.5 Remote host invocation
@@ -445,14 +442,14 @@ Terminal entry not found in termcap
     builtin_dumb
 defaulting to 'vt320'
 ---
-The solution is to define default terminal name: >
+The solution is to define the default terminal name: >
 
 	$ ! unknown terminal name.  Let us use vt320 or ansi instead.
 	$ ! Note: it's case sensitive
 	$ define term "vt320"
 
-Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
-keyboard mappings.  They should work perfect as they are, including arrows,
+Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
+keyboard mappings.  They should work perfectly as they are, including arrows,
 Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
 .gvimrc: >
 
@@ -465,8 +462,8 @@ your .vimrc file: >
 
 	set ttyfast	" set fast terminal
 
-Note: if you're using Vim on remote host or through very slow connection, it's
-recommended to avoid fast terminal option with: >
+Note: if you're using Vim on remote host or through a very slow connection, it's
+recommended to avoid the fast terminal option with: >
 
 	set nottyfast   " set terminal to slow mode
 
@@ -483,8 +480,8 @@ special commands to execute executables:
 
 OpenVMS users always have to be aware that the Vim command :! "just" drop them
 to DCL prompt.  This feature is possible to use without any problem with all
-DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
-we're running into trouble if we follow the Vim documentation (see: help
+DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
+etc.  we're running into trouble if we follow the Vim documentation (see: help
 xxd).
 
 Solution: Execute with the MC command and add the full path to the executable.
@@ -534,7 +531,7 @@ Example: >
 
 	$define SYS$PRINT HP5ANSI
 
-You can print out whole buffer or just the marked area.
+You can print out the whole buffer or just the marked area.
 More info under :help hardcopy
 
 (Zoltan Arpadffy, Vim 6.0c)
@@ -561,16 +558,16 @@ 8.11 diff and other GNU programs
 From 6.0 diff functionality has been implemented, but OpenVMS does not use
 GNU/Unix like diff therefore built in diff does not work.
 There is a simple solution to solve this anomaly.  Install a Unix like diff
-and Vim will work perfect in diff mode too.  You just have to redefine your
+and Vim will work perfectly in diff mode too.  You just have to redefine your
 diff program as: >
 
 	define /nolog diff <GNU_PATH>diff.exe
 
 Another, more sophisticated solution is described below (8.12 diff-mode)
-There are some other programs as patch, make etc that may cause same problems.
-At www.polarhome.com is possible to download an GNU package for Alpha and VAX
-boxes that is meant to solve GNU problems on OpenVMS.
-( Zoltan Arpadffy, Vim 6.1)
+There are other programs such as patch, make etc that may cause the same
+problems.  At www.polarhome.com is possible to download an GNU package for
+Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
+(Zoltan Arpadffy, Vim 6.1)
 
 
 8.12 diff-mode
@@ -632,7 +629,7 @@ You can now compare files in 4 ways: >
     3. VIM  diff:  $ VIMDIFF  <FILE1> <FILE2>
     4. GVIM diff:  $ GVIMDIFF <FILE1> <FILE2>
 
-( Coen Engelbarts, Vim 6.1)
+(Coen Engelbarts, Vim 6.1)
 
 
 8.13 Allow '$' in C keywords
@@ -653,35 +650,36 @@ Now word-based commands, e.g. the '*'-se
 tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
 C keywords since ctags version 5.1.)
 
-( Coen Engelbarts, Vim 6.1)
+(Coen Engelbarts, Vim 6.1)
 
 8.14 VIMTUTOR for beginners
 
-It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
-first steps with Vim on OpenVMS.  Depending of binary distribution you may
-start it with: >
+The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
+steps with Vim on OpenVMS.  Depending of binary distribution you may start it
+with: >
 
 	@vim:vimtutor
 
 (Thomas.R.Wyant III, Vim 6.1)
 
-8.14 Slow start in console mode issue
+8.16 Slow start in console mode issue
 
 As GUI/GTK Vim works equally well in console mode, many administrators
 deploy those executables system wide.
 Unfortunately, on a remote slow connections GUI/GTK executables behave rather
-slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
+slow when user wants to run Vim just in the console mode - because of X
+environment detection timeout.
 
 Luckily, there is a simple solution for that. Administrators need to deploy
 both GUI/GTK build and just console build executables, like below: >
 
     |- vim73
     |----- doc
-    |----- syntax        
+    |----- syntax
        vimrc    (system rc files)
        gvimrc
-       gvim.exe (the renamed GUI or GTK built vim.exe)      
-       vim.exe  (the console only executable) 
+       gvim.exe (the renamed GUI or GTK built vim.exe)
+       vim.exe  (the console only executable)
 
 Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
 
@@ -692,7 +690,7 @@ Define system symbols like below in for 
 	$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
 
 
-Like this, users that do not have X environment and want to use Vim just in 
+Like this, users that do not have X environment and want to use Vim just in
 console mode can avoid performance problems.
 
 (Zoltan Arpadffy, Vim 7.2)
@@ -714,8 +712,8 @@ View of Cluster from system ID 11655  no
 +---------------------------------+
 
 It is convenient to have a common VIM directory but execute different
-executables. 
-There are more solutions for this problem:
+executables.
+There are several solutions for this problem:
 
 Solution 1.  All executables in the same directory with different names
 This is easily done with the following script that can be added
@@ -769,7 +767,7 @@ 9. VMS related changes					*vms-changes*
 Version 7.3
 - CTAGS 5.8 included
 - VMS compile warnings fixed - floating-point overflow warning corrected on VAX
-- filepath completition corrected - too many chars were escaped in filename
+- filepath completion corrected - too many chars were escaped in filename
   and shell commands
 - the following plugins are included into VMS runtime:
 	genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
@@ -784,10 +782,10 @@ Version 7.3
 Version 7.2 (2008 Aug 9)
 - VCF files write corrected
 - CTAGS 5.7 included
-- corrected make_vms.mms (on VAX gave syntax error) 
+- corrected make_vms.mms (on VAX gave syntax error)
 
 Version 7.1 (2007 Jun 15)
-- create TAGS file from menu 
+- create TAGS file from menu
 
 Version 7 (2006 May 8)
 - Improved low level char input (affects just console mode)
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.3.  Last change: 2011 May 28
+*os_win32.txt*  For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
@@ -316,11 +316,11 @@ A. When using :! to run an external comm
    There are two optional arguments (see the next Q):
        /min  the window will be minimized.
        /b"   no console window will be opened
-   You can only one of these flags at a time.  A second second one will be
+   You can use only one of these flags at a time.  A second one will be
    treated as the start of the command.
 
 Q. How do I avoid getting a window for programs that I run asynchronously?
-A. You have two possible solutions depending on what exactly do you want:
+A. You have two possible solutions depending on what you want:
    1) You may use the /min flag in order to run program in a minimized state
       with no other changes. It will work equally for console and GUI
       applications.
@@ -328,7 +328,7 @@ A. You have two possible solutions depen
       console window for them (GUI applications are not affected). But you
       should use this flag only if the application you run doesn't require any
       input.  Otherwise it will get an EOF error because its input stream
-      (stdin) would be redirected to \\.\NUL (stdoud and stderr too).
+      (stdin) would be redirected to \\.\NUL (stdout and stderr too).
 
    Example for a console application, run Exuberant ctags: >
         :!start /min ctags -R .
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.3.  Last change: 2011 May 25
+*pattern.txt*   For Vim version 7.3.  Last change: 2011 Jul 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.3.  Last change: 2011 Apr 02
+*pi_vimball.txt*	For Vim version 7.3.  Last change: 2011 Aug 14
 
 			       ----------------
 			       Vimball Archiver
@@ -16,6 +16,7 @@ Copyright: (c) 2004-2011 by Charles E. C
 1. Contents				*vba* *vimball* *vimball-contents*
 
 	1. Contents......................................: |vimball-contents|
+	2. Vimball Introduction..........................: |vimball-intro|
 	3. Vimball Manual................................: |vimball-manual|
 	   MkVimball.....................................: |:MkVimball|
 	   UseVimball....................................: |:UseVimball|
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.3.  Last change: 2011 May 24
+*pi_zip.txt*	For Vim version 7.3.  Last change: 2011 Aug 14
 
 				+====================+
 				| Zip File Interface |
@@ -69,7 +69,6 @@ 2. Usage						*zip-usage* *zip-manual*
 	let g:loaded_zipPlugin= 1
 	let g:loaded_zip      = 1
 <
-<
 
 ==============================================================================
 3. Additional Extensions					*zip-extension*
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.3.  Last change: 2010 Sep 18
+*starting.txt*  For Vim version 7.3.  Last change: 2011 Jul 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -424,12 +424,7 @@ a slash.  Thus "-R" means recovery and "
 		"-d con:30/10/600/150".  But you can also use it to start
 		editing on another device, e.g., AUX:.  {not in Vi}
 							*-f*
--f		Amiga: Do not restart Vim to open a new window.  This
-		option should be used when Vim is started by a program that
-		will wait for the edit session to finish (e.g., mail or
-		readnews).  See |amiga-window|.
-
-		GUI: Do not disconnect from the program that started Vim.
+-f		GUI: Do not disconnect from the program that started Vim.
 		'f' stands for "foreground".  If omitted, the GUI forks a new
 		process and exits the current one.  "-f" should be used when
 		gvim is started by a program that will wait for the edit
@@ -437,8 +432,14 @@ a slash.  Thus "-R" means recovery and "
 		never to fork, include 'f' in 'guioptions' in your |gvimrc|.
 		Careful: You can use "-gf" to start the GUI in the foreground,
 		but "-fg" is used to specify the foreground color.  |gui-fork|
+
+		Amiga: Do not restart Vim to open a new window.  This
+		option should be used when Vim is started by a program that
+		will wait for the edit session to finish (e.g., mail or
+		readnews).  See |amiga-window|.
 		{not in Vi}
 
+
 							*--nofork*
 --nofork	GUI: Do not fork.  Same as |-f|.
 							*-u* *E282*
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4233,6 +4233,8 @@ E848	syntax.txt	/*E848*
 E849	syntax.txt	/*E849*
 E85	options.txt	/*E85*
 E850	change.txt	/*E850*
+E851	gui_x11.txt	/*E851*
+E852	gui_x11.txt	/*E852*
 E86	windows.txt	/*E86*
 E87	windows.txt	/*E87*
 E88	windows.txt	/*E88*
@@ -4963,7 +4965,6 @@ cino-(	indent.txt	/*cino-(*
 cino-)	indent.txt	/*cino-)*
 cino-+	indent.txt	/*cino-+*
 cino-/	indent.txt	/*cino-\/*
-cino-2	indent.txt	/*cino-2*
 cino-:	indent.txt	/*cino-:*
 cino-=	indent.txt	/*cino-=*
 cino->	indent.txt	/*cino->*
@@ -4990,6 +4991,7 @@ cino-p	indent.txt	/*cino-p*
 cino-star	indent.txt	/*cino-star*
 cino-t	indent.txt	/*cino-t*
 cino-u	indent.txt	/*cino-u*
+cino-w	indent.txt	/*cino-w*
 cino-{	indent.txt	/*cino-{*
 cino-}	indent.txt	/*cino-}*
 cinoptions-values	indent.txt	/*cinoptions-values*
@@ -5690,6 +5692,7 @@ ft-ptcap-syntax	syntax.txt	/*ft-ptcap-sy
 ft-python-indent	indent.txt	/*ft-python-indent*
 ft-python-syntax	syntax.txt	/*ft-python-syntax*
 ft-quake-syntax	syntax.txt	/*ft-quake-syntax*
+ft-r-indent	indent.txt	/*ft-r-indent*
 ft-readline-syntax	syntax.txt	/*ft-readline-syntax*
 ft-rexx-syntax	syntax.txt	/*ft-rexx-syntax*
 ft-ruby-omni	insert.txt	/*ft-ruby-omni*
@@ -6022,6 +6025,7 @@ gtk-tooltip-colors	gui_x11.txt	/*gtk-too
 gu	change.txt	/*gu*
 gugu	change.txt	/*gugu*
 gui	gui.txt	/*gui*
+gui-IME	gui.txt	/*gui-IME*
 gui-clipboard	gui_w32.txt	/*gui-clipboard*
 gui-colors	syntax.txt	/*gui-colors*
 gui-extras	gui.txt	/*gui-extras*
@@ -6230,6 +6234,7 @@ i)	motion.txt	/*i)*
 i<	motion.txt	/*i<*
 i>	motion.txt	/*i>*
 iB	motion.txt	/*iB*
+iBus	gui.txt	/*iBus*
 iW	motion.txt	/*iW*
 i[	motion.txt	/*i[*
 i]	motion.txt	/*i]*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2011 Jul 15
+*todo.txt*      For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,21 +34,40 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Patch to start GTK only after forking. (Tim Starling, 2011 Sep 12)
+
+Patch for Lua debug(). (Rob Hoelz, 2011 Sep 12)
+
 Go through more coverity reports.
 
+Using "." to repeat a Visual delete counts bytes, not characters.  Can this be
+fixed? (Connor Lane Smith, 2011 Sep 1)
+
+Patch to allow getchar() in expression mapping.
+Why was typeahead saved and restored? (James Vega, 2011 Aug 31)
+
 Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
+Patch to fail if configure can't find an interface, such as Python.
+(Shlomi Fish, 2011 Jul 11)
+
 Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
 Needs more work.
 
-With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
-register. (Michael Seiwald, 2011 Jun 28)
-
-The :z command doesn't work exactly as it should. (ChangZhuo Chen, 2011 Mar 2)
-Compare with how old Vi works and with posix spec.  terminal is 80 x 24,
-'scroll' option set to 11.
+Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
+one)
+
+Patch for: (Christian Brabandt, 2011 Aug 22)
+-   Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
+    below/above).
+
+Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
+8   ":sign unplace * file={filename}" should work.  Also: ":sign unplace *
+    buffer={bufnr}".  So one can remove all signs for one file/buffer.
+
+Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
 
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set.  (Dennis Preiser)
@@ -63,29 +82,12 @@ Syntax region with 'concealends' and a '
 only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
 21, Ben Fritz, 2010 Sep 14)
 
-When opening file from windows explorer, characters inside [] cause
-problems, even though double quotes are used. (Manuel Stol, 2011 Mar 9)
-
-Patch to change the meaning of \n in substitute(). (motoya kurotsu, 2011 Mar 8)
-
-Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
-Winckler, 2011 May 11)
-Use function to set paste option and restore it, use CTRL-R+ to paste.
-
-Help file foldexpr (ZyX)
+Need to escape $HOME on Windows?  (ZyX, 2011 Jul 21)
 
 Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
 
-Patch to automatically get version number into NSIS. (Guopeng Wen, 2011 May
-27)
-
-Patch to add more command completions (Dominique Pelle, 2011 Jun 25)
-
-Patch to have GvimExt not use "edit with existing Vim" entries.
-(Jerome Vuarand, 2011 Jun 22)
-
-Patch to make character classes work with multi-byte characters.
-(Dominique Pelle, 2011 May 31, update July 11)
+With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
+register. (Michael Seiwald, 2011 Jun 28)  I can't reproduce it.
 
 In GTK Gvim, setting 'lines' and 'columns' to 99999 causes a crash (Tony
 Mechelynck, 2011 Apr 25).  Can reproduce the crash sometimes:
@@ -102,19 +104,9 @@ The error was 'RenderBadPicture (invalid
    backtrace from your debugger if you break on the gdk_x_error() function.)
 Check that number of pixels doesn't go above 65535?
 
-8   Add an event like CursorHold that is triggered repeatedly, not just once
-    after typing something.
-Need for CursorHold that retriggers.  Use a key that doesn't do anything, or a
-function that resets did_cursorhold.
-Patch by Christian Brabandt, 2011 May 6.
-
 popup completion menu closes quickly when there is a fold in the buffer. (Jan
 Christoph Ebersbach, 2011 Jul 3)
 
-CursorHold repeats typed key when it's the start of a mapping.
-(Will Gray, 2011 Mar 23)
-Christian Brabandt: problem is that OP_PENDING isn't set.
-
 Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)
 
 This line hangs Vim, because of syntax HL:
@@ -135,6 +127,8 @@ 15)
 
 Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
 
+Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
+
 On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
 64 bits value.  Change all number options to use nropt_T and define it to the
 right type.
@@ -142,18 +136,17 @@ right type.
 string() can't parse back "inf" and "nan".  Fix documentation or fix code?
 (ZyX, 2010 Aug 23)
 
+Make 'formatprg' global-local. (Sung Pae)
+
 When doing "redir => s:foo" in a script and then "redir END" somewhere else
 (e.g. in a function) it can't find s:foo.
 
+7   Make "ga" show the digraph for a character, if it exists.
+Patch from Christian Brabandt, 2011 Aug 19.
+
 maparg() does not show the <script> flag.  When temporarily changing a
 mapping, how to restore the script ID?
 
-Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
-Update Nov 19.  James Vega: still not right.  Christian: it's difficult.
-
-Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
-Also add named groups: \%{name}(re)  and \%{name}g
-
 Bug in try/catch: return with invalid compare throws error that isn't caught.
 (ZyX, 2011 Jan 26)
 
@@ -171,10 +164,6 @@ Build problem with small features on Mac
 
 "0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
 
-Deleting a linewise selection that includes the last line of the file leaves
-an empty line. (Ben Schmidt, 2011 Mar 17)
-Patch by Christian Brabandt, 2011 Mar 19.
-
 Patch to support sorting on floating point number.  (Alex Jakushev, 2010 Oct
 30)
 
@@ -194,6 +183,29 @@ With a filler line in diff mode, it isn'
 number, but it is in the sign column.  Doesn't look right. (ZyX 2011 Jun 5)
 Patch by Christian Brabandt, 2011 Jun 5.  Introduces new problems.
 
+8   Add a command to jump to the next character highlighted with "Error".
+Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
+
+8   Add an event like CursorHold that is triggered repeatedly, not just once
+    after typing something.
+Need for CursorHold that retriggers.  Use a key that doesn't do anything, or a
+function that resets did_cursorhold.
+Patch by Christian Brabandt, 2011 May 6.
+
+7   Use "++--", "+++--" for different levels instead of "+---" "+----".
+Patch by Christian Brabandt, 2011 Jul 27.
+Update by Ben Fritz, with fix for TOhtml. (2011 Jul 30)
+
+9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
+    avoid matching something up to a time 11:22:33.
+Patch by Christian Brabandt, 2011 Jul 27.
+
+Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
+Update Nov 19.  James Vega: still not right.  Christian: it's difficult.
+
+Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
+Also add named groups: \%{name}(re)  and \%{name}g
+
 In the sandbox it's not allowed to do many things, but it's possible to change
 or set variables.  Add a way to prevent variables from being changed in the
 sandbox?  E.g.: ":protect g:restore_settings".
@@ -223,9 +235,6 @@ New esperanto spell file can't be proces
 "L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
 2011 Feb 27)
 
-Patch to fail if configure can't find an interface, such as Python.
-(Shlomi Fish, 2011 Jul 11)
-
 Copy/paste between Vim and Google chrome doesn't work well for multi-byte
 characters. (Ben Haskell, 2010 Sep 17)
 When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -309,26 +318,20 @@ Echo starts in the wrong column:
 
 Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
 
-GvimExt sets $LANG in the wrong way.  Patch by Yasuhiro Matsumoto, 2011 Jun
-15.  This will fix issue no 11.
-
 When writing a file > 2Gbyte, the reported number of bytes is negative.
 (Antonio Colombo, 2010 Dec 18)
 
 Patch: Let rare word highlighting overrule good word highlighting.
 (Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
 
-Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
-
-Patch for VisVim, pass file name to VimOpenFile. (Jiri Sedlak, 2010 Nov 12)
-
 When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
 instead of one. (Constantin Pan, 2010 Sep 10)
 
 Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
 
-Patch to handle resizing when tab is opened, when at full size. (Yukihiro
-Nakadaira, 2010 Jan 6)
+Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
+Winckler, 2011 May 11)
+Requires a map mode for Insert mode started from blockwise Visual mode.
 
 Writing nested List and Dict in viminfo gives error message and can't be read
 back. (Yukihiro Nakadaira, 2010 Nov 13)
@@ -426,10 +429,6 @@ echo, just not for  ":call" and ":call c
 Cannot use getchar() inside :normal and using an expression mapping.  Is this
 supposed to work?  (XyX, 2010 Sep 22)
 
-When using an expression mapping with a multi-byte character each byte is
-converted to a utf-8 character. (ZyX, 2011 Jan 4)
-Patch for possible solution. (Yukihiro Nakadaira, 2011 Jan 5)
-
 When a:base in 'completefunc' starts with a number it's passed as a number,
 not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
 string value.
@@ -756,11 +755,6 @@ an alternate solution, also for src/ex_g
 This also fails when the file or directory name contains "%". (Thoml, 2008
 July 7)
 
-The str2special() function doesn't handle multi-byte characters properly.
-Patch from Vladimir Vichniakov, 2007 Apr 24.
-Should clean up the whole function.  Also allow modifiers like <S-Char-32>?
-find_special_key() also has this problem.
-
 Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
 2008 May 14)
 
@@ -836,8 +830,6 @@ try/catch not working for argument of re
 
 try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
 
-Recognize and ignore BOM in error file. (Aleksey Baibarin)
-
 ":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)
 
@@ -871,9 +863,6 @@ Can't easily close the help window, like
 ":ccl" closes the quickfix window.  Add ":hclose". (Chris Gaal)
 Patch for :helpclose, Christian Brabandt, 2010 Sep 6.
 
-Patch for :lmake not updating the quickfix window title. (Lech Lorens, 2011
-Mar 26)
-
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
 
@@ -934,9 +923,6 @@ popup menu over it, first draw the new p
 size and then redraw the text, skipping the characters under the popup menu.
 This should avoid flicker.  Other solution by A.Politz, 2007 Aug 22.
 
-When the popup menu is close to the edge of the window it is truncated.  Patch
-to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
-
 Windows 98: pasting from the clipboard with text from another application has
 a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
 isn't right?
@@ -1075,9 +1061,6 @@ If the variable "g:x#y#z" exists complet
 Feature request: Command to go to previous tab, like what CTRL-W p does for
 windows. (Adam George)
 
-When using input() in a loop and then ":echo" the display column isn't right.
-(Benjamin Fritz, 2008 Aug 28)  Patch by Ben Schmidt, 2008 Sep 2.
-
 F1 - F4 in an xterm produce a different escape sequence when used with a
 modifier key.  Need to catch three different sequences.  Use K_ZF1, like
 K_ZHOME? (Dickey, 2007 Dec 2)
@@ -2662,7 +2645,6 @@ 8   Vertical folds: looks like verticall
 8   Add "z/" and "z?" for searching in not folded text only.
 9   Add search pattern item to only match in closed or open fold and/or fold
     with certain level.  Allows doing ":g/pat/cmd" to work on closed folds.
-7   Use "++--", "+++--" for different levels instead of "+---" "+----".
 8   When a closed fold is displayed open because of 'foldminlines', the
     behavior of commands is still like the fold is closed.  How to make the
     user aware of this?
@@ -2842,7 +2824,6 @@ 8   Add specific syntax item to match wi
 8   Highlight the text between two matching parens (e.g., with a grey
     background) when on one of the parens or in between them.
     Option for the matchparen plugin?
-8   Add a command to jump to the next character highlighted with "Error".
 8   When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
     sequences.	Add remark in docs that :if 'term' == "term-name" should be
     used.
@@ -4479,11 +4460,8 @@ 6   Add "unnamed mark" feature: Like mar
 
 
 Digraphs:
-7   Make "ga" show the digraph for a character, if it exists.
-    Also the keymap?
+7   Make "ga" show the keymap for a character, if it exists.
     Also show the code of the character after conversion to 'filenecoding'.
--   Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
-    below/above).
 -   Use digraph table to tell Vim about the collating sequence of special
     characters?
 8   Add command to remove one or more (all) digraphs. (Brown)
@@ -4601,8 +4579,6 @@ 7   Make the debug mode history availabl
 Various improvements:
 9   Python: be able to define a Python function that can be called directly
     from Vim script.  Requires converting the arguments and return value.
-8   ":sign unplace * file={filename}" should work.  Also: ":sign unplace *
-    buffer={bufnr}".  So one can remove all signs for one file/buffer.
 7   Add plugins for formatting?  Should be able to make a choice depending on
     the language of a file (English/Korean/Japanese/etc.).
     Setting the 'langformat' option to "chinese" would load the
@@ -4620,8 +4596,6 @@ 8   Add ":rename" command: rename the fi
 7   Instead of filtering errors with a shell script it should be possible to
     do this with Vim script.  A function that filters the raw text that comes
     from the 'makeprg'?
-9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
-    avoid matching something up to a time 11:22:33.
 -   Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
     Govindachar)
 7   Add a command that goes back to the position from before jumping to the
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.3.  Last change: 2010 Dec 19
+*undo.txt*      For Vim version 7.3.  Last change: 2011 Aug 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -35,8 +35,10 @@ CTRL-R			Redo [count] changes which were
 :red[o]			Redo one change which was undone.  {Vi: no redo}
 
 							*U*
-U			Undo all latest changes on one line.  {Vi: while not
-			moved off of it}
+U			Undo all latest changes on one line, the line where
+			the latest change was made. |U| itself also counts as
+			a change, and thus |U| undoes a previous |U|.
+			{Vi: while not moved off of the last modified line}
 
 The last changes are remembered.  You can use the undo and redo commands above
 to revert the text to how it was before each change.  You can also apply the
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.3.  Last change: 2010 Oct 11
+*vi_diff.txt*   For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -88,8 +88,8 @@ Maximum display width	   Unix and Win32:
 			   characters
 Maximum lhs of a mapping   50 characters.
 Number of different highlighting types: over 30000
-Range of a Number variable:  -2147483648 to 2147483647 (more on 64 bit
-			   systems)
+Range of a Number variable:  -2147483648 to 2147483647 (might be more on 64
+			   bit systems)
 Maximum length of a line in a tags file: 512 bytes.
 
 Information for undo and text in registers is kept in memory, thus when making
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.3.  Last change: 2010 Aug 15
+*windows.txt*   For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -246,7 +246,7 @@ window will appear.
 
 These command modifiers can be combined to make a vertically split window
 occupy the full height.  Example: >
-	:vertical topleft edit tags
+	:vertical topleft split tags
 Opens a vertically split, full-height window on the "tags" file at the far
 left of the Vim window.
 
--- 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 Jul 17
+" Last Change:	2011 Sep 07
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -922,7 +922,7 @@ au BufNewFile,BufRead *.java,*.jav		setf
 au BufNewFile,BufRead *.jj,*.jjt		setf javacc
 
 " JavaScript, ECMAScript
-au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx	setf javascript
+au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.json   setf javascript
 
 " Java Server Pages
 au BufNewFile,BufRead *.jsp			setf jsp
@@ -2345,6 +2345,9 @@ endfunc
 " Yaml
 au BufNewFile,BufRead *.yaml,*.yml		setf yaml
 
+" yum conf (close enough to dosini)
+au BufNewFile,BufRead */etc/yum.conf 		setf dosini
+
 " Zope
 "   dtml (zope dynamic template markup language), pt (zope page template),
 "   cpt (zope form controller page template)
@@ -2515,6 +2518,9 @@ au BufNewFile,BufRead *xmodmap*			call s
 " Xinetd conf
 au BufNewFile,BufRead */etc/xinetd.d/*		call s:StarSetf('xinetd')
 
+" yum conf (close enough to dosini)
+au BufNewFile,BufRead */etc/yum.repos.d/* 	call s:StarSetf('dosini')
+
 " Z-Shell script
 au BufNewFile,BufRead zsh*,zlog*		call s:StarSetf('zsh')
 
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2007 Sep 25
+" Last Change:	2011 Aug 04
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -36,7 +36,7 @@ endif
 
 " When the matchit plugin is loaded, this makes the % command skip parens and
 " braces in comments.
-let b:match_words = &matchpairs
+let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
 let b:match_skip = 's:comment\|string\|character'
 
 " Win32 can filter files in the browse dialog
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
 " Maintainer:	SungHyun Nam <goweol@gmail.com>
-" Last Change:	2010 Nov 29
+" Last Change:	2011 Jul 25
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
@@ -17,7 +17,9 @@ if &filetype == "man"
 
   " Ensure Vim is not recursively invoked (man-db does this)
   " when doing ctrl-[ on a man page reference.
-  let $MANPAGER = ""
+  if exists("$MANPAGER")
+    let $MANPAGER = ""
+  endif
 
   " allow dot and dash in manual page name.
   setlocal iskeyword+=\.,-
--- a/runtime/indent/awk.vim
+++ b/runtime/indent/awk.vim
@@ -23,6 +23,7 @@
 " 26-04-2002 Got initial version working reasonably well
 " 29-04-2002 Fixed problems in function headers and max line width
 "	     Added support for two-line if's without curly braces
+" Fixed hang: 2011 Aug 31
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -118,7 +119,7 @@ function! GetAwkIndent()
 
    " Case 1
    if prev_data =~ ')' && brace_balance < 0
-      while brace_balance != 0
+      while brace_balance != 0 && prev_lineno > 0
 	 let prev_lineno = s:Get_prev_line( prev_lineno )
 	 let prev_data = getline( prev_lineno )
 	 let brace_balance=brace_balance+s:Get_brace_balance(prev_data,'(',')' )
new file mode 100644
--- /dev/null
+++ b/runtime/indent/r.vim
@@ -0,0 +1,482 @@
+" Vim indent file
+" Language:	R
+" Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change:	Wed Aug 31, 2011  12:24AM
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_r_indent")
+    finish
+endif
+let b:did_r_indent = 1
+
+setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentexpr=GetRIndent()
+
+" Only define the function once.
+if exists("*GetRIndent")
+    finish
+endif
+
+" Options to make the indentation more similar to Emacs/ESS:
+if !exists("g:r_indent_align_args")
+    let g:r_indent_align_args = 1
+endif
+if !exists("g:r_indent_ess_comments")
+    let g:r_indent_ess_comments = 0
+endif
+if !exists("g:r_indent_comment_column")
+    let g:r_indent_comment_column = 40
+endif
+if ! exists("g:r_indent_ess_compatible")
+    let g:r_indent_ess_compatible = 0
+endif
+
+function s:RDelete_quotes(line)
+    let i = 0
+    let j = 0
+    let line1 = ""
+    let llen = strlen(a:line)
+    while i < llen
+        if a:line[i] == '"'
+            let i += 1
+            let line1 = line1 . 's'
+            while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
+                let i += 1
+            endwhile
+            if a:line[i] == '"'
+                let i += 1
+            endif
+        else
+            if a:line[i] == "'"
+                let i += 1
+                let line1 = line1 . 's'
+                while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
+                    let i += 1
+                endwhile
+                if a:line[i] == "'"
+                    let i += 1
+                endif
+            else
+                if a:line[i] == "`"
+                    let i += 1
+                    let line1 = line1 . 's'
+                    while a:line[i] != "`" && i < llen
+                        let i += 1
+                    endwhile
+                    if a:line[i] == "`"
+                        let i += 1
+                    endif
+                endif
+            endif
+        endif
+        if i == llen
+            break
+        endif
+        let line1 = line1 . a:line[i]
+        let j += 1
+        let i += 1
+    endwhile
+    return line1
+endfunction
+
+" Convert foo(bar()) int foo()
+function s:RDelete_parens(line)
+    if s:Get_paren_balance(a:line, "(", ")") != 0
+        return a:line
+    endif
+    let i = 0
+    let j = 0
+    let line1 = ""
+    let llen = strlen(a:line)
+    while i < llen
+        let line1 = line1 . a:line[i]
+        if a:line[i] == '('
+            let nop = 1
+            while nop > 0 && i < llen
+                let i += 1
+                if a:line[i] == ')'
+                    let nop -= 1
+                else
+                    if a:line[i] == '('
+                        let nop += 1 
+                    endif
+                endif
+            endwhile
+            let line1 = line1 . a:line[i]
+        endif
+        let i += 1
+    endwhile
+    return line1
+endfunction
+
+function! s:Get_paren_balance(line, o, c)
+    let line2 = substitute(a:line, a:o, "", "g")
+    let openp = strlen(a:line) - strlen(line2)
+    let line3 = substitute(line2, a:c, "", "g")
+    let closep = strlen(line2) - strlen(line3)
+    return openp - closep
+endfunction
+
+function! s:Get_matching_brace(linenr, o, c, delbrace)
+    let line = SanitizeRLine(getline(a:linenr))
+    if a:delbrace == 1
+        let line = substitute(line, '{$', "", "")
+    endif
+    let pb = s:Get_paren_balance(line, a:o, a:c)
+    let i = a:linenr
+    while pb != 0 && i > 1
+        let i -= 1
+        let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c)
+    endwhile
+    return i
+endfunction
+
+" This function is buggy because there 'if's without 'else'
+" It must be rewritten relying more on indentation
+function! s:Get_matching_if(linenr, delif)
+"    let filenm = expand("%")
+"    call writefile([filenm], "/tmp/matching_if_" . a:linenr)
+    let line = SanitizeRLine(getline(a:linenr))
+    if a:delif
+        let line = substitute(line, "if", "", "g")
+    endif
+    let elsenr = 0
+    let i = a:linenr
+    let ifhere = 0
+    while i > 0
+        let line2 = substitute(line, '\<else\>', "xxx", "g")
+        let elsenr += strlen(line) - strlen(line2)
+        if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()'
+            let elsenr -= 1
+            if elsenr == 0
+                let ifhere = i
+                break
+            endif
+        endif
+        let i -= 1
+        let line = SanitizeRLine(getline(i))
+    endwhile
+    if ifhere
+        return ifhere
+    else
+        return a:linenr
+    endif
+endfunction
+
+function! s:Get_last_paren_idx(line, o, c, pb)
+    let blc = a:pb
+    let line = substitute(a:line, '\t', s:curtabstop, "g")
+    let theidx = -1
+    let llen = strlen(line)
+    let idx = 0
+    while idx < llen
+        if line[idx] == a:o
+            let blc -= 1
+            if blc == 0
+                let theidx = idx
+            endif
+        else
+            if line[idx] == a:c
+                let blc += 1
+            endif
+        endif
+        let idx += 1
+    endwhile
+    return theidx + 1
+endfunction
+
+" Get previous relevant line. Search back until getting a line that isn't
+" comment or blank
+function s:Get_prev_line(lineno)
+    let lnum = a:lineno - 1
+    let data = getline( lnum )
+    while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
+        let lnum = lnum - 1
+        let data = getline( lnum )
+    endwhile
+    return lnum
+endfunction
+
+" This function is also used by r-plugin/common_global.vim
+" Delete from '#' to the end of the line, unless the '#' is inside a string.
+function SanitizeRLine(line)
+    let newline = s:RDelete_quotes(a:line)
+    let newline = s:RDelete_parens(newline)
+    let newline = substitute(newline, '#.*', "", "")
+    let newline = substitute(newline, '\s*$', "", "")
+    return newline
+endfunction
+
+function GetRIndent()
+
+    let clnum = line(".")    " current line
+
+    let cline = getline(clnum)
+    if cline =~ '^\s*#'
+        if g:r_indent_ess_comments == 1
+            if cline =~ '^\s*###'
+                return 0
+            endif
+            if cline !~ '^\s*##'
+                return g:r_indent_comment_column
+            endif
+        endif
+    endif
+
+    let cline = SanitizeRLine(cline)
+
+    if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$'
+        let indline = s:Get_matching_brace(clnum, '{', '}', 1)
+        if indline > 0 && indline != clnum
+            let iline = SanitizeRLine(getline(indline))
+            if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$'
+                return indent(indline)
+            else
+                let indline = s:Get_matching_brace(indline, '(', ')', 1)
+                return indent(indline)
+            endif
+        endif
+    endif
+
+    " Find the first non blank line above the current line
+    let lnum = s:Get_prev_line(clnum)
+    " Hit the start of the file, use zero indent.
+    if lnum == 0
+        return 0
+    endif
+
+    let line = SanitizeRLine(getline(lnum))
+
+    if &filetype == "rhelp"
+        if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{'
+            return 0
+        endif
+        if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{'
+            return 0
+        endif
+        if line =~ '^\\method{.*}{.*}(.*'
+            let line = substitute(line, '^\\method{\(.*\)}{.*}', '\1', "")
+        endif
+    endif
+
+    if cline =~ '^\s*{'
+        if g:r_indent_ess_compatible && line =~ ')$'
+            let nlnum = lnum
+            let nline = line
+            while s:Get_paren_balance(nline, '(', ')') < 0
+                let nlnum = s:Get_prev_line(nlnum)
+                let nline = SanitizeRLine(getline(nlnum)) . nline
+            endwhile
+            if nline =~ '^\s*function\s*(' && indent(nlnum) == &sw
+                return 0
+            endif
+        endif
+        if s:Get_paren_balance(line, "(", ")") == 0
+            return indent(lnum)
+        endif
+    endif
+
+    " line is an incomplete command:
+    if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$'
+        return indent(lnum) + &sw
+    endif
+
+    " Deal with () and []
+
+    let pb = s:Get_paren_balance(line, '(', ')')
+
+    if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
+        return indent(lnum) + &sw
+    endif
+
+    let bb = s:Get_paren_balance(line, '[', ']')
+
+    let s:curtabstop = repeat(' ', &tabstop)
+    if g:r_indent_align_args == 1
+
+        if pb == 0 && bb == 0 && (line =~ '.*[,&|\-\*+<>]$' || cline =~ '^\s*[,&|\-\*+<>]')
+            return indent(lnum)
+        endif
+
+        if pb > 0
+            if &filetype == "rhelp"
+                let ind = s:Get_last_paren_idx(line, '(', ')', pb)
+            else
+                let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb)
+            endif
+            return ind
+        endif
+
+        if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
+            let lnum = s:Get_prev_line(lnum)
+            while pb < 1 && lnum > 0
+                let line = SanitizeRLine(getline(lnum))
+                let line = substitute(line, '\t', s:curtabstop, "g")
+                let ind = strlen(line)
+                while ind > 0
+                    if line[ind] == ')'
+                        let pb -= 1
+                    else
+                        if line[ind] == '('
+                            let pb += 1
+                        endif
+                    endif
+                    if pb == 1
+                        return ind + 1
+                    endif
+                    let ind -= 1
+                endwhile
+                let lnum -= 1
+            endwhile
+            return 0
+        endif
+
+        if bb > 0
+            let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb)
+            return ind
+        endif
+    endif
+
+    let post_block = 0
+    if line =~ '}$'
+        let lnum = s:Get_matching_brace(lnum, '{', '}', 0)
+        let line = SanitizeRLine(getline(lnum))
+        if lnum > 0 && line =~ '^\s*{'
+            let lnum = s:Get_prev_line(lnum)
+            let line = SanitizeRLine(getline(lnum))
+        endif
+        let pb = s:Get_paren_balance(line, '(', ')')
+        let post_block = 1
+    endif
+
+    let post_fun = 0
+    if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$'
+        let post_fun = 1
+        while pb < 0 && lnum > 0
+            let lnum -= 1
+            let linepiece = SanitizeRLine(getline(lnum))
+            let pb += s:Get_paren_balance(linepiece, "(", ")")
+            let line = linepiece . line
+        endwhile
+        if line =~ '{$' && post_block == 0
+            return indent(lnum) + &sw
+        endif
+
+        " Now we can do some tests again
+        if cline =~ '^\s*{'
+            return indent(lnum)
+        endif
+        if post_block == 0
+            let newl = SanitizeRLine(line)
+            if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
+                return indent(lnum) + &sw
+            endif
+        endif
+    endif
+
+    if cline =~ '^\s*else'
+        if line =~ '<-\s*if\s*()'
+            return indent(lnum) + &sw
+        else
+            if line =~ '\<if\s*()'
+                return indent(lnum)
+            else
+                return indent(lnum) - &sw
+            endif
+        endif
+    endif
+
+    if bb < 0 && line =~ '.*]'
+        while bb < 0 && lnum > 0
+            let lnum -= 1
+            let linepiece = SanitizeRLine(getline(lnum))
+            let bb += s:Get_paren_balance(linepiece, "[", "]")
+            let line = linepiece . line
+        endwhile
+        let line = s:RDelete_parens(line)
+    endif
+
+    let plnum = s:Get_prev_line(lnum)
+    let ppost_else = 0
+    if plnum > 0
+        let pline = SanitizeRLine(getline(plnum))
+        let ppost_block = 0
+        if pline =~ '}$'
+            let ppost_block = 1
+            let plnum = s:Get_matching_brace(plnum, '{', '}', 0)
+            let pline = SanitizeRLine(getline(plnum))
+            if pline =~ '^\s*{$' && plnum > 0
+                let plnum = s:Get_prev_line(plnum)
+                let pline = SanitizeRLine(getline(plnum))
+            endif
+        endif
+
+        if pline =~ 'else$'
+            let ppost_else = 1
+            let plnum = s:Get_matching_if(plnum, 0)
+            let pline = SanitizeRLine(getline(plnum))
+        endif
+
+        if pline =~ '^\s*else\s*if\s*('
+            let pplnum = s:Get_prev_line(plnum)
+            let ppline = SanitizeRLine(getline(pplnum))
+            while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$'
+                let plnum = pplnum
+                let pline = ppline
+                let pplnum = s:Get_prev_line(plnum)
+                let ppline = SanitizeRLine(getline(pplnum))
+            endwhile
+            while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$'
+                let plnum = pplnum
+                let pline = ppline
+                let pplnum = s:Get_prev_line(plnum)
+                let ppline = SanitizeRLine(getline(pplnum))
+            endwhile
+        endif
+
+        let ppb = s:Get_paren_balance(pline, '(', ')')
+        if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$')
+            while ppb < 0 && plnum > 0
+                let plnum -= 1
+                let linepiece = SanitizeRLine(getline(plnum))
+                let ppb += s:Get_paren_balance(linepiece, "(", ")")
+                let pline = linepiece . pline
+            endwhile
+            let pline = s:RDelete_parens(pline)
+        endif
+    endif
+
+    let ind = indent(lnum)
+    let pind = indent(plnum)
+
+    if g:r_indent_align_args == 0 && pb != 0
+        let ind += pb * &sw
+        return ind
+    endif
+
+    if ind == pind || (ind == (pind  + &sw) && pline =~ '{$' && ppost_else == 0)
+        return ind
+    endif
+
+    while pind < ind && plnum > 0 && ppb == 0
+        let ind = pind
+        let plnum = s:Get_prev_line(plnum)
+        let pline = getline(plnum)
+        let ppb = s:Get_paren_balance(pline, '(', ')')
+        while pline =~ '^\s*else'
+            let plnum = s:Get_matching_if(plnum, 1)
+            let pline = getline(plnum)
+            let ppb = s:Get_paren_balance(pline, '(', ')')
+        endwhile
+        let pind = indent(plnum)
+        if ind == (pind  + &sw) && pline =~ '{$'
+            return ind
+        endif
+    endwhile
+
+    return ind
+
+endfunction
+
+" vim: sw=4
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         reStructuredText Documentation Format
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-12-20
+" Latest Revision:  2011-08-03
 
 if exists("b:did_indent")
   finish
@@ -16,6 +16,9 @@ if exists("*GetRSTIndent")
   finish
 endif
 
+let s:itemization_pattern = '^\s*[-*+]\s'
+let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'
+
 function GetRSTIndent()
   let lnum = prevnonblank(v:lnum - 1)
   if lnum == 0
@@ -25,27 +28,30 @@ function GetRSTIndent()
   let ind = indent(lnum)
   let line = getline(lnum)
 
-  if line =~ '^\s*[-*+]\s'
-    let ind = ind + 2
-  elseif line =~ '^\s*\d\+.\s'
-    let ind = ind + matchend(substitute(line, '^\s*', '', ''), '\d\+.\s\+')
+  if line =~ s:itemization_pattern
+    let ind += 2
+  elseif line =~ s:enumeration_pattern
+    let ind += matchend(line, s:enumeration_pattern)
   endif
 
   let line = getline(v:lnum - 1)
 
+  " Indent :FIELD: lines.  Don’t match if there is no text after the field or
+  " if the text ends with a sent-ender.
+   if line =~ '^:.\+:\s\{-1,\}\S.\+[^.!?:]$'
+     return matchend(line, '^:.\{-1,}:\s\+')
+   endif
+
   if line =~ '^\s*$'
     execute lnum
-    call search('^\s*\%([-*+]\s\|\d\+.\s\|\.\.\|$\)', 'bW')
+    call search('^\s*\%([-*+]\s\|\%(\d\+\|#\)\.\s\|\.\.\|$\)', 'bW')
     let line = getline('.')
-    if line =~ '^\s*[-*+]'
-      let ind = ind - 2
-    elseif line =~ '^\s*\d\+\.\s'
-      let ind = ind - matchend(substitute(line, '^\s*', '', ''),
-            \ '\d\+\.\s\+')
+    if line =~ s:itemization_pattern
+      let ind -= 2
+    elseif line =~ s:enumeration_pattern
+      let ind -= matchend(line, s:enumeration_pattern)
     elseif line =~ '^\s*\.\.'
-      let ind = ind - 3
-    else
-      let ind = ind
+      let ind -= 3
     endif
   endif
 
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2010 Nov 16
+" Last Change: 2011 Aug 27
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
@@ -82,7 +82,7 @@ function! s:Highlight_Matching_Pair()
   endif
 
   " When not in a string or comment ignore matches inside them.
-  " We match "escape" for special items, such as listpEscapeSpecial.
+  " We match "escape" for special items, such as lispEscapeSpecial.
   let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
 	\ '=~?  "string\\|character\\|singlequote\\|escape\\|comment"'
   execute 'if' s_skip '| let s_skip = 0 | endif'
--- 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 May 2
+" Last Change:	2011 Sep 07
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -273,18 +273,18 @@ endif
 
 " Accept %: for # (C99)
 syn region	cPreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
-syn match	cPreConditMatch	display "^\s*\(%:\|#\)\s*\(else\|endif\|elif\)\>"
+syn match	cPreConditMatch	display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
 if !exists("c_no_if0")
   syn cluster	cCppOutInGroup	contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
-  syn region	cCppOutWrapper	start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse
+  syn region	cCppOutWrapper	start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse fold
   syn region	cCppOutIf	contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
   if !exists("c_no_if0_fold")
-    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip
+    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip fold
   else
-    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip fold
+    syn region	cCppOutIf2	contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip
   endif
   syn region	cCppOutElse	contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
-  syn region	cCppInWrapper	start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse
+  syn region	cCppInWrapper	start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
   syn region	cCppInIf	contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
   if !exists("c_no_if0_fold")
     syn region	cCppInElse	contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
--- a/runtime/syntax/dosini.vim
+++ b/runtime/syntax/dosini.vim
@@ -1,10 +1,10 @@
 " Vim syntax file
-" Language:	Configuration File (ini file) for MSDOS/MS Windows
-" Version Info: @(#)dosini.vim 1.6 97/12/15 08:54:12
-" Author:       Sean M. McKee <mckee@misslink.net>
-" Maintainer:   Nima Talebi <nima@it.net.au>
-" Updated By:   Hong Xu
-" Last Change:	2011 Jul 16
+" Language:               Configuration File (ini file) for MSDOS/MS Windows
+" Version:                2.0
+" Original Author:        Sean M. McKee <mckee@misslink.net>
+" Previous Maintainer:    Nima Talebi <nima@it.net.au>
+" Current Maintainer:     Hong Xu <xuhdev@gmail.com>
+" Last Change:            2011 Jul 21
 
 
 " For version 5.x: Clear all syntax items
@@ -18,9 +18,13 @@ endif
 " shut case off
 syn case ignore
 
-syn match  dosiniLabel		"^.\{-}="
-syn region dosiniHeader		start="^\[" end="\]"
-syn match  dosiniComment	"^[#;].*$"
+syn match  dosiniBool     "\<\(yes\|no\|y\|n\|true\|false\)\>"
+syn match  dosiniNumber   "\<\d\+\>"
+syn match  dosiniNumber   "\<\d*\.\d\+\>"
+syn match  dosiniNumber   "\<\d\+e[+-]\=\d\+\>"
+syn match  dosiniLabel    "^.\{-}="
+syn region dosiniHeader   start="^\s*\[" end="\]"
+syn match  dosiniComment  "^[#;].*$"
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -33,13 +37,15 @@ if version >= 508 || !exists("did_dosini
     command -nargs=+ HiLink hi def link <args>
   endif
 
-	HiLink dosiniHeader	Special
-	HiLink dosiniComment	Comment
-	HiLink dosiniLabel	Type
+  HiLink dosiniBool     Boolean
+  HiLink dosiniNumber   Number
+  HiLink dosiniHeader   Special
+  HiLink dosiniComment  Comment
+  HiLink dosiniLabel    Type
 
   delcommand HiLink
 endif
 
 let b:current_syntax = "dosini"
 
-" vim:ts=8
+" vim: sts=2 sw=2 et
--- a/runtime/syntax/pamconf.vim
+++ b/runtime/syntax/pamconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pam(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2011-08-03
 
 
 if exists("b:current_syntax")
@@ -33,7 +33,7 @@ syn match   pamconfTypeLineCont     cont
                                     \ pamconfTypeLineCont skipwhite skipnl
 
 syn keyword pamconfControl          contained requisite required sufficient
-                                    \ optional
+                                    \ optional include substack
                                     \ nextgroup=pamconfMPath,
                                     \ pamconfControlLineContH skipwhite
 
@@ -57,7 +57,9 @@ syn keyword pamconfControlValues    cont
                                     \ bad_item and default
                                     \ nextgroup=pamconfControlValueEq
 
-syn match   pamconfControlValueEq   contained '=' nextgroup=pamconfControlAction
+syn match   pamconfControlValueEq   contained '='
+                                    \ nextgroup=pamconfControlActionN,
+                                    \           pamconfControlAction
 
 syn match   pamconfControlActionN   contained '\d\+\>'
                                     \ nextgroup=pamconfControlValues,
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: php PHP 3/4/5
 " Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change:  April 28, 2011
+" Last Change: July 29, 2011
 " URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
 " Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
 "         Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -54,14 +54,6 @@
 "        the string would be highlighted as an error, what is incorrect.
 "    ii) Same problem if you are setting php_folding = 2 with a closing
 "        } inside an string on the first line of this string.
-"
-"  - A double-quoted string like this:
-"      "$foo->someVar->someOtherVar->bar"
-"    will highight '->someOtherVar->bar' as though they will be parsed
-"    as object member variables, but PHP only recognizes the first
-"    object member variable ($foo->someVar).
-"
-"
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -131,7 +123,7 @@ syn keyword phpCoreConstant PHP_VERSION 
 
 syn case ignore
 
-syn keyword phpConstant  __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__  contained
+syn keyword phpConstant  __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__  contained
 
 
 " Function and Methods ripped from php_manual_de.tar.gz Jan 2003
@@ -273,7 +265,7 @@ syn keyword phpRepeat as do endfor endfo
 syn keyword phpLabel  case default switch contained
 
 " Statement
-syn keyword phpStatement  return break continue exit  contained
+syn keyword phpStatement  return break continue exit goto  contained
 
 " Keyword
 syn keyword phpKeyword  var const contained
@@ -282,7 +274,7 @@ syn keyword phpKeyword  var const contai
 syn keyword phpType bool[ean] int[eger] real double float string array object NULL  contained
 
 " Structure
-syn keyword phpStructure  extends implements instanceof parent self contained
+syn keyword phpStructure  namespace extends implements instanceof parent self contained
 
 " Operator
 syn match phpOperator "[-=+%^&|*!.~?:]" contained display
@@ -302,11 +294,41 @@ syn match phpIdentifierSimply "${\h\w*}"
 syn region  phpIdentifierComplex  matchgroup=phpParent start="{\$"rs=e-1 end="}"  contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
 syn region  phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
 
+" Interpolated indentifiers (inside strings)
+	syn match phpBrackets "[][}{]" contained display
+	" errors
+		syn match phpInterpSimpleError "\[[^]]*\]" contained display  " fallback (if nothing else matches)
+		syn match phpInterpSimpleError "->[^a-zA-Z_]" contained display
+		" make sure these stay above the correct DollarCurlies so they don't take priority
+		syn match phpInterpBogusDollarCurley "${[^}]*}" contained display  " fallback (if nothing else matches)
+	syn match phpinterpSimpleBracketsInner "\w\+" contained
+	syn match phpInterpSimpleBrackets "\[\h\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+	syn match phpInterpSimpleBrackets "\[\d\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+	syn match phpInterpSimpleBrackets "\[0[xX]\x\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+	syn match phpInterpSimple "\$\h\w*\(\[[^]]*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpSimpleError,phpMethods,phpMemberSelector display
+	syn match phpInterpVarname "\h\w*" contained
+	syn match phpInterpMethodName "\h\w*" contained " default color
+	syn match phpInterpSimpleCurly "\${\h\w*}"  contains=phpInterpVarname contained extend
+	syn region phpInterpDollarCurley1Helper matchgroup=phpParent start="{" end="\[" contains=phpInterpVarname contained
+	syn region phpInterpDollarCurly1 matchgroup=phpParent start="\${\h\w*\["rs=s+1 end="]}" contains=phpInterpDollarCurley1Helper,@phpClConst contained extend
+
+	syn match phpInterpDollarCurley2Helper "{\h\w*->" contains=phpBrackets,phpInterpVarname,phpMemberSelector contained
+
+	syn region phpInterpDollarCurly2 matchgroup=phpParent start="\${\h\w*->"rs=s+1 end="}" contains=phpInterpDollarCurley2Helper,phpInterpMethodName contained
+
+	syn match phpInterpBogusDollarCurley "${\h\w*->}" contained display
+	syn match phpInterpBogusDollarCurley "${\h\w*\[]}" contained display
+
+	syn region phpInterpComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
+	syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
+	" define a cluster to get all interpolation syntaxes for double-quoted strings
+	syn cluster phpInterpDouble contains=phpInterpSimple,phpInterpSimpleCurly,phpInterpDollarCurly1,phpInterpDollarCurly2,phpInterpBogusDollarCurley,phpInterpComplex
+
 " Methoden
 syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display
 
 " Include
-syn keyword phpInclude  include require include_once require_once contained
+syn keyword phpInclude  include require include_once require_once use contained
 
 " Peter Hodge - added 'clone' keyword
 " Define
@@ -322,12 +344,18 @@ syn match phpNumber "\<0x\x\{1,8}\>"  co
 " Float
 syn match phpFloat  "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display
 
-" SpecialChar
-syn match phpSpecialChar  "\\[abcfnrtyv\\]" contained display
-syn match phpSpecialChar  "\\\d\{3}"  contained contains=phpOctalError display
-syn match phpSpecialChar  "\\x\x\{2}" contained display
-syn match phpDoubleSpecialChar "\\\"" contained display
-syn match phpSingleSpecialChar "\\[\\']" contained display
+" Backslash escapes
+	syn case match
+	" for double quotes and heredoc
+	syn match phpBackslashSequences  "\\[fnrtv\\\"$]" contained display
+	syn match phpBackslashSequences  "\\\d\{1,3}"  contained contains=phpOctalError display
+	syn match phpBackslashSequences  "\\x\x\{1,2}" contained display
+	" additional sequence for double quotes only
+	syn match phpBackslashDoubleQuote "\\[\"]" contained display
+	" for single quotes only
+	syn match phpBackslashSingleQuote "\\[\\']" contained display
+	syn case ignore
+
 
 " Error
 syn match phpOctalError "[89]"  contained display
@@ -356,23 +384,32 @@ endif
 
 " String
 if exists("php_parent_error_open")
-  syn region  phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+  contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex,phpDoubleSpecialChar contained keepend
-  syn region  phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+  contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained keepend
-  syn region  phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+  contains=@phpAddStrings,phpSingleSpecialChar contained keepend
+  syn region  phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+  contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained keepend
+  syn region  phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+  contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
+  syn region  phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+  contains=@phpAddStrings,phpBackslashSingleQuote contained keepend
 else
-  syn region  phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+  contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex,phpDoubleSpecialChar contained extend keepend
-  syn region  phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+  contains=@phpAddStrings,phpIdentifier,phpSpecialChar,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
-  syn region  phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+  contains=@phpAddStrings,phpSingleSpecialChar contained keepend extend
+  syn region  phpStringDouble matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+  contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained extend keepend
+  syn region  phpBacktick matchgroup=None start=+`+ skip=+\\\\\|\\"+ end=+`+  contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
+  syn region  phpStringSingle matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+  contains=@phpAddStrings,phpBackslashSingleQuote contained keepend extend
 endif
 
-" HereDoc
+" HereDoc and NowDoc
 if version >= 600
   syn case match
-  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\z(\I\i*\)$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
+
+  " HereDoc
+  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
 " including HTML,JavaScript,SQL even if not enabled via options
-  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@="  contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
-  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
-  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)$" end="^\z1\(;\=$\)\@="  contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpSpecialChar,phpMethodsVar keepend extend
+  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@="  contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+  syn region  phpHereDoc  matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@="  contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+
+  " NowDoc
+  syn region  phpNowDoc  matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained keepend extend
+" including HTML,JavaScript,SQL even if not enabled via options
+  syn region  phpNowDoc  matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@="  contained contains=@htmlTop keepend extend
+  syn region  phpNowDoc  matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop keepend extend
+  syn region  phpNowDoc  matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@="  contained contains=@htmlJavascript keepend extend
   syn case ignore
 endif
 
@@ -389,7 +426,7 @@ else
 endif
 
 syn cluster phpClConst  contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
-syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc
+syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc,phpNowDoc
 syn cluster phpClFunction contains=@phpClInside,phpDefine,phpParentError,phpStorageClass
 syn cluster phpClTop  contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch
 
@@ -452,17 +489,14 @@ else
   syn keyword phpStorageClass final global private protected public static  contained
 endif
 
+" TODO: fold on "trait". For now just make sure it gets colored:
+syn keyword phpStructure trait
+
 " ================================================================
 " Peter Hodge - June 9, 2006
 " Some of these changes (highlighting isset/unset/echo etc) are not so
 " critical, but they make things more colourful. :-)
 
-" corrected highlighting for an escaped '\$' inside a double-quoted string
-syn match phpSpecialChar  "\\\$"  contained display
-
-" highlight object variables inside strings
-syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display containedin=phpStringDouble
-
 " highlight constant E_STRICT
 syntax case match
 syntax keyword phpCoreConstant E_STRICT contained
@@ -613,13 +647,21 @@ if version >= 508 || !exists("did_php_sy
   HiLink   phpType  Type
   HiLink   phpInclude Include
   HiLink   phpDefine  Define
-  HiLink   phpSpecialChar SpecialChar
-  HiLink   phpDoubleSpecialChar SpecialChar
-  HiLink   phpSingleSpecialChar SpecialChar
+  HiLink   phpBackslashSequences SpecialChar
+  HiLink   phpBackslashDoubleQuote SpecialChar
+  HiLink   phpBackslashSingleQuote SpecialChar
   HiLink   phpParent  Delimiter
+  HiLink   phpBrackets  Delimiter
   HiLink   phpIdentifierConst Delimiter
   HiLink   phpParentError Error
   HiLink   phpOctalError  Error
+  HiLink   phpInterpSimpleError Error
+  HiLink   phpInterpBogusDollarCurley Error
+  HiLink   phpInterpDollarCurly1 Error
+  HiLink   phpInterpDollarCurly2 Error
+  HiLink   phpInterpSimpleBracketsInner String
+  HiLink   phpInterpSimpleCurly Delimiter
+  HiLink   phpInterpVarname Identifier
   HiLink   phpTodo  Todo
   HiLink   phpMemberSelector  Structure
   if exists("php_oldStyle")
@@ -631,13 +673,13 @@ if version >= 508 || !exists("did_php_sy
   hi  phpIdentifier guifg=DarkGray ctermfg=Brown
   hi  phpIdentifierSimply guifg=DarkGray ctermfg=Brown
   else
-  HiLink  phpIntVar Identifier
-  HiLink  phpEnvVar Identifier
-  HiLink  phpOperator Operator
-  HiLink  phpVarSelector  Operator
-  HiLink  phpRelation Operator
-  HiLink  phpIdentifier Identifier
-  HiLink  phpIdentifierSimply Identifier
+  HiLink   phpIntVar Identifier
+  HiLink   phpEnvVar Identifier
+  HiLink   phpOperator Operator
+  HiLink   phpVarSelector  Operator
+  HiLink   phpRelation Operator
+  HiLink   phpIdentifier Identifier
+  HiLink   phpIdentifierSimply Identifier
   endif
 
   delcommand HiLink
--- a/runtime/syntax/verilog.vim
+++ b/runtime/syntax/verilog.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Verilog
 " Maintainer:	Mun Johl <Mun.Johl@emulex.com>
-" Last Update:  Fri Oct 13 11:44:32 PDT 2006
+" Last Update:  Wed Jul 20 16:04:19 PDT 2011
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,11 +11,13 @@ elseif exists("b:current_syntax")
    finish
 endif
 
-" Set the local value of the 'iskeyword' option
+" Set the local value of the 'iskeyword' option.
+" NOTE: '?' was added so that verilogNumber would be processed correctly when
+"       '?' is the last character of the number.
 if version >= 600
-   setlocal iskeyword=@,48-57,_,192-255
+   setlocal iskeyword=@,48-57,63,_,192-255
 else
-   set iskeyword=@,48-57,_,192-255
+   set iskeyword=@,48-57,63,_,192-255
 endif
 
 " A bunch of useful Verilog keywords
@@ -48,7 +50,7 @@ syn keyword verilogLabel       begin end
 syn keyword verilogConditional if else case casex casez default endcase
 syn keyword verilogRepeat      forever repeat while for
 
-syn keyword verilogTodo contained TODO
+syn keyword verilogTodo contained TODO FIXME
 
 syn match   verilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"
 
@@ -113,17 +115,17 @@ if version >= 508 || !exists("did_verilo
    " The default highlighting.
    HiLink verilogCharacter       Character
    HiLink verilogConditional     Conditional
-   HiLink verilogRepeat		 Repeat
-   HiLink verilogString		 String
-   HiLink verilogTodo		 Todo
-   HiLink verilogComment	 Comment
-   HiLink verilogConstant	 Constant
-   HiLink verilogLabel		 Label
-   HiLink verilogNumber		 Number
-   HiLink verilogOperator	 Special
-   HiLink verilogStatement	 Statement
-   HiLink verilogGlobal		 Define
-   HiLink verilogDirective	 SpecialComment
+   HiLink verilogRepeat          Repeat
+   HiLink verilogString          String
+   HiLink verilogTodo            Todo
+   HiLink verilogComment         Comment
+   HiLink verilogConstant        Constant
+   HiLink verilogLabel           Label
+   HiLink verilogNumber          Number
+   HiLink verilogOperator        Special
+   HiLink verilogStatement       Statement
+   HiLink verilogGlobal          Define
+   HiLink verilogDirective       SpecialComment
    HiLink verilogEscape		 Special
 
    delcommand HiLink