diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index fd18e67..bc6bbd7 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 7.1.  Last change: 2008 Jan 04
+*cmdline.txt*   For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -62,7 +62,7 @@
   old one is removed (to avoid repeated commands moving older commands out of
   the history).
 - Only commands that are typed are remembered.  Ones that completely come from
-  mappings are not put in the history
+  mappings are not put in the history.
 - All searches are put in the search history, including the ones that come
   from commands like "*" and "#".  But for a mapping, only the last search is
   remembered (to avoid that long mappings trash the history).
@@ -226,6 +226,8 @@
 <Esc>		When typed and 'x' not present in 'cpoptions', quit
 		Command-line mode without executing.  In macros or when 'x'
 		present in 'cpoptions', start entered command.
+		Note: If your <Esc> key is hard to hit on your keyboard, train
+		yourself to use CTRL-[.
 							*c_CTRL-C*
 CTRL-C		quit command-line without executing
 
@@ -482,7 +484,7 @@
 line.  If you want to use '|' in an argument, precede it with '\'.
 
 These commands see the '|' as their argument, and can therefore not be
-followed by another command:
+followed by another Vim command:
     :argdo
     :autocmd
     :bufdo
@@ -718,6 +720,9 @@
 example, "%" stands for the current file name, while CTRL-R % inserts the
 current file name right away.  See |c_CTRL-R|.
 
+Note: If you want to avoid the special characters in a Vim script you may want
+to use |fnameescape()|.
+
 
 In Ex commands, at places where a file name can be used, the following
 characters have a special meaning.  These can also be used in the expression
@@ -893,10 +898,10 @@
 	:cd <cfile>*	:cd {file name under cursor plus "*" and then expanded}
 
 When the expanded argument contains a "!" and it is used for a shell command
-(":!cmd", ":r !cmd" or ":w !cmd"), it is escaped with a backslash to avoid it
-being expanded into a previously used command.  When the 'shell' option
-contains "sh", this is done twice, to avoid the shell trying to expand the
-"!".
+(":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to
+avoid it being expanded into a previously used command.  When the 'shell'
+option contains "sh", this is done twice, to avoid the shell trying to expand
+the "!".
 
 							*filename-backslash*
 For filesystems that use a backslash as directory separator (MS-DOS, Windows,
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index 26bc966..0a152a6 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 7.1.  Last change: 2005 Mar 29
+*debugger.txt*  For Vim version 7.2a.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index a6e9e02..67adcb8 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.1.  Last change: 2007 May 11
+*develop.txt*   For Vim version 7.2a.  Last change: 2007 May 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 904142a..f5b5ce7 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 7.1.  Last change: 2006 Jul 18
+*digraph.txt*   For Vim version 7.2a.  Last change: 2007 Sep 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -130,10 +130,10 @@
 	Exclamation mark	!	Grave
 	Apostrophe		'	Acute accent
 	Greater-Than sign	>	Circumflex accent
-	Question Mark		?	tilde
+	Question mark		?	Tilde
 	Hyphen-Minus		-	Macron
 	Left parenthesis	(	Breve
-	Full Stop		.	Dot Above
+	Full stop		.	Dot above
 	Colon			:	Diaeresis
 	Comma			,	Cedilla
 	Underline		_	Underline
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 0df39dc..2ef3f96 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.1.  Last change: 2007 May 11
+*editing.txt*   For Vim version 7.2a.  Last change: 2008 Apr 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -364,6 +364,9 @@
 current file name.
 
 							*:filename* *{file}*
+Besides the things mentioned here, more special items for where a filename is
+expected are mentioned at |cmdline-special|.
+
 Note for systems other than Unix and MS-DOS: When using a command that
 accepts a single file name (like ":edit file") spaces in the file name are
 allowed, but trailing spaces are ignored.  This is useful on systems that
@@ -888,8 +891,10 @@
 			the previous command |:!|.
 
 The default [range] for the ":w" command is the whole buffer (1,$).  If you
-write the whole buffer, it is no longer considered changed.  Also when you
-write it to a different file with ":w somefile"!
+write the whole buffer, it is no longer considered changed.  When you
+write it to a different file with ":w somefile" it depends on the "+" flag in
+'cpoptions'.  When included, the write command will reset the 'modified' flag,
+even though the buffer itself may still be different from its file.
 
 If a file name is given with ":w" it becomes the alternate file.  This can be
 used, for example, when the write fails and you want to try again later with
@@ -1105,6 +1110,8 @@
 		changed.  See |:confirm|. {not in Vi}
 
 :qa[ll]!	Exit Vim.  Any changes to buffers are lost. {not in Vi}
+		Also see |:cquit|, it does the same but exits with a non-zero
+		value.
 
 							*:quita* *:quitall*
 :quita[ll][!]	Same as ":qall". {not in Vi}
@@ -1478,7 +1485,9 @@
    supported by your operating system.  '*' and '**' are handled inside Vim, so
    they work on all operating systems.
 
-   The usage of '*' is quite simple: It matches 0 or more characters.
+   The usage of '*' is quite simple: It matches 0 or more characters.  In a
+   search pattern this would be ".*".  Note that the "." is not used for file
+   searching.
 
    '**' is more sophisticated:
       - It ONLY matches directories.
@@ -1498,7 +1507,7 @@
 	levels.
 	The allowed number range is 0 ('**0' is removed) to 255.
 	If the given number is smaller than 0 it defaults to 30, if it's
-	bigger than 255 it defaults to 255.
+	bigger than 255 then 255 is used.
       - '**' can only be at the end of the path or be followed by a path
 	separator or by a number and a path separator.
 
diff --git a/runtime/doc/gui_w16.txt b/runtime/doc/gui_w16.txt
index 50c5f29..954e138 100644
--- a/runtime/doc/gui_w16.txt
+++ b/runtime/doc/gui_w16.txt
@@ -1,4 +1,4 @@
-*gui_w16.txt*   For Vim version 7.1.  Last change: 2005 Mar 29
+*gui_w16.txt*   For Vim version 7.2a.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 17ed69a..78d696e 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 7.1.  Last change: 2007 Aug 14
+*gui_w32.txt*   For Vim version 7.2a.  Last change: 2007 Aug 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index e4cf247..dd538ac 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.1.  Last change: 2007 May 03
+*if_mzsch.txt*  For Vim version 7.2a.  Last change: 2007 May 03
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index 830c56e..08b4c49 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 7.1.  Last change: 2007 May 10
+*if_ole.txt*    For Vim version 7.2a.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 0819ace..675ed37 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 7.1.  Last change: 2006 Mar 06
+*if_perl.txt*   For Vim version 7.2a.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 4c53f59..f8b0f86 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.1.  Last change: 2006 Apr 30
+*if_pyth.txt*   For Vim version 7.2a.  Last change: 2006 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index d755957..8e5b7a3 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.1.  Last change: 2007 May 11
+*indent.txt*    For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -6,22 +6,27 @@
 
 This file is about indenting C programs and other files.
 
-1. Indenting C programs		|C-indenting|
+1. Indenting C style programs	|C-indenting|
 2. Indenting by expression	|indent-expression|
 
 ==============================================================================
-1. Indenting C programs					*C-indenting*
+1. Indenting C style programs				*C-indenting*
 
-The basics for C indenting are explained in section |30.2| of the user manual.
+The basics for C style indenting are explained in section |30.2| of the user
+manual.
 
-Vim has options for automatically indenting C program files.  These options
-affect only the indent and do not perform other formatting.  For comment
-formatting, see |format-comments|.
+Vim has options for automatically indenting C style program files. Many
+programming languages including Java and C++ follow very closely the
+formatting conventions established with C.  These options affect only the
+indent and do not perform other formatting.  There are additional options that
+affect other kinds of formatting as well as indenting, see |format-comments|,
+|fo-table|, |gq| and |formatting| for the main ones.
 
 Note that this will not work when the |+smartindent| or |+cindent| features
 have been disabled at compile time.
 
-There are in fact four methods available for indentation:
+There are in fact four main methods available for indentation, each one
+overrides the previous if it is enabled, or non-empty for 'indentexpr':
 'autoindent'	uses the indent from the previous line.
 'smartindent'	is like 'autoindent' but also recognizes some C syntax to
 		increase/reduce the indent where appropriate.
@@ -572,6 +577,115 @@
 Make sure to do ":set cmdheight=2" first to allow the display of the message.
 
 
+VHDL							*ft-vhdl-indent*
+
+Alignment of generic/port mapping statements are performed by default. This
+causes the following alignment example: >
+
+  ENTITY sync IS
+  PORT (
+         clk        : IN  STD_LOGIC;
+         reset_n    : IN  STD_LOGIC;
+         data_input : IN  STD_LOGIC;
+         data_out   : OUT STD_LOGIC
+       );
+  END ENTITY sync;
+
+To turn this off, add >
+
+  let g:vhdl_indent_genportmap = 0
+
+to the .vimrc file, which causes the previous alignment example to change: >
+
+  ENTITY sync IS
+  PORT (
+    clk        : IN  STD_LOGIC;
+    reset_n    : IN  STD_LOGIC;
+    data_input : IN  STD_LOGIC;
+    data_out   : OUT STD_LOGIC
+  );
+  END ENTITY sync;
+
+----------------------------------------
+
+Alignment of right-hand side assignment "<=" statements are performed by
+default. This causes the following alignment example: >
+
+  sig_out <= (bus_a(1) AND
+             (sig_b OR sig_c)) OR
+             (bus_a(0) AND sig_d);
+
+To turn this off, add >
+
+  let g:vhdl_indent_rhsassign = 0
+
+to the .vimrc file, which causes the previous alignment example to change: >
+
+  sig_out <= (bus_a(1) AND
+    (sig_b OR sig_c)) OR
+    (bus_a(0) AND sig_d);
+
+----------------------------------------
+
+Full-line comments (lines that begin with "--") are indented to be aligned with
+the very previous line's comment, PROVIDED that a whitespace follows after
+"--".
+
+For example: >
+
+  sig_a <= sig_b; -- start of a comment
+                  -- continuation of the comment
+                  -- more of the same comment
+
+While in Insert mode, after typing "-- " (note the space " "), hitting CTRL-F
+will align the current "-- " with the previous line's "--".
+
+If the very previous line does not contain "--", THEN the full-line comment
+will be aligned with the start of the next non-blank line that is NOT a
+full-line comment.
+
+Indenting the following code: >
+
+  sig_c <= sig_d; -- comment 0
+         -- comment 1
+               -- comment 2
+    --debug_code:
+    --PROCESS(debug_in)
+         --BEGIN
+            --  FOR i IN 15 DOWNTO 0 LOOP
+             --    debug_out(8*i+7 DOWNTO 8*i) <= debug_in(15-i);
+            --  END LOOP;
+     --END PROCESS debug_code;
+
+      -- comment 3
+  sig_e <= sig_f; -- comment 4
+           -- comment 5
+
+results in: >
+
+  sig_c <= sig_d; -- comment 0
+                  -- comment 1
+                  -- comment 2
+  --debug_code:
+  --PROCESS(debug_in)
+  --BEGIN
+  --  FOR i IN 15 DOWNTO 0 LOOP
+  --    debug_out(8*i+7 DOWNTO 8*i) <= debug_in(15-i);
+  --  END LOOP;
+  --END PROCESS debug_code;
+
+  -- comment 3
+  sig_e <= sig_f; -- comment 4
+                  -- comment 5
+
+Notice that "--debug_code:" does not align with "-- comment 2"
+because there is no whitespace that follows after "--" in "--debug_code:".
+
+Given the dynamic nature of indenting comments, indenting should be done TWICE.
+On the first pass, code will be indented. On the second pass, full-line
+comments will be indented according to the correctly indented code.
+
+
 VIM							*ft-vim-indent*
 
 For indenting Vim scripts there is one variable that specifies the amount of
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index b5a6650..db0ba0e 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.1.  Last change: 2007 May 07
+*insert.txt*    For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -882,12 +882,12 @@
 CTRL-X CTRL-V		Guess what kind of item is in front of the cursor and
 			find the first match for it.
 			Note: When CTRL-V is mapped you can often use CTRL-Q
-			instead |i_CTRL-Q|.
+			instead of |i_CTRL-Q|.
 	CTRL-V	or
 	CTRL-N		Search forwards for next match.  This match replaces
 			the previous one.
 
-	CTRL-P		Search backward for previous match.  This match
+	CTRL-P		Search backwards for previous match.  This match
 			replaces the previous one.
 
 	CTRL-X CTRL-V	Further use of CTRL-X CTRL-V will do the same as
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 3ac503a..3539111 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,23 +1,28 @@
-*netbeans.txt*  For Vim version 7.1.  Last change: 2006 Nov 14
+*netbeans.txt*  For Vim version 7.2a.  Last change: 2008 Jun 22
 
 
-		  VIM REFERENCE MANUAL    by Gordon Prieur
+		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
 
 
-NetBeans ExternalEditor Integration Features		*netbeans*
-							*netbeans-support*
+			*socket-interface* *netbeans* *netbeans-support*
+
+Vim NetBeans Protocol: a socket interface for Vim integration into an IDE.
+
 1.  Introduction				|netbeans-intro|
-2.  NetBeans Key Bindings			|netbeans-keybindings|
+2.  Integration features			|netbeans-integration|
 3.  Configuring Vim for NetBeans		|netbeans-configure|
-4.  Downloading NetBeans			|netbeans-download|
-5.  Preparing NetBeans for Vim			|netbeans-preparation|
-6.  Obtaining the External Editor Module	|obtaining-exted|
-7.  Setting up NetBeans to run with Vim		|netbeans-setup|
-8.  Messages					|netbeans-messages|
-9.  Running Vim from NetBeans			|netbeans-run|
-10. NetBeans protocol				|netbeans-protocol|
-11. NetBeans commands				|netbeans-commands|
-12. Known problems				|netbeans-problems|
+4.  Error Messages				|netbeans-messages|
+5.  Running Vim in NetBeans mode		|netbeans-run|
+6.  NetBeans protocol				|netbeans-protocol|
+7.  NetBeans key				|netbeans-key|
+8.  Known problems				|netbeans-problems|
+9.  Debugging NetBeans protocol			|netbeans-debugging|
+10. NetBeans External Editor
+    10.1. Downloading NetBeans			|netbeans-download|
+    10.2. NetBeans Key Bindings			|netbeans-keybindings|
+    10.3. Preparing NetBeans for Vim		|netbeans-preparation|
+    10.4. Obtaining the External Editor Module	|obtaining-exted|
+    10.5. Setting up NetBeans to run with Vim	|netbeans-setup|
 
 {Vi does not have any of these features}
 {only available when compiled with the |+netbeans_intg| feature}
@@ -25,13 +30,47 @@
 ==============================================================================
 1. Introduction						*netbeans-intro*
 
+The NetBeans interface was initially developed to integrate Vim into the
+NetBeans Java IDE, using the external editor plugin.  This NetBeans plugin no
+longer exists for recent versions of NetBeans but the protocol was developed
+in such a way that any IDE can use it to integrate Vim.
+
+The NetBeans protocol of Vim is a text based communication protocol, over a
+classical TCP socket. There is no dependency on Java or NetBeans. Any language
+or environment providing a socket interface can control Vim using this
+protocol. There are existing implementations in C, C++, Python and Java. The
+name NetBeans is kept today for historical reasons.
+
+Current projects using the NetBeans protocol of Vim are:
+- VimIntegration, description of various projects doing Vim Integration:
+	http://www.freehackers.org/VimIntegration
+- Agide, an IDE for the AAP project, written in Python:
+	http://www.a-a-p.org
+- Clewn, a gdb integration into Vim, written in C:
+	http://clewn.sourceforge.net/
+- VimPlugin, integration of Vim inside Eclipse:
+	http://vimplugin.sourceforge.net/wiki/pmwiki.php
+- PIDA, IDE written in Python integrating Vim:
+	http://pida.co.uk/
+- VimWrapper, library to easy Vim integration into IDE:
+	http://www.freehackers.org/VimWrapper
+
+Check the specific project pages to see how to use Vim with these projects.
+
+In the rest of this help page, we will use the term "Vim Controller" to
+describe the program controlling Vim through the NetBeans socket interface.
+
+
+About the NetBeans IDE ~
+
 NetBeans is an open source Integrated Development Environment developed
 jointly by Sun Microsystems, Inc. and the netbeans.org developer community.
 Initially just a Java IDE, NetBeans has had C, C++, and Fortran support added
 in recent releases.
 
-For more information visit the main NetBeans web site http://www.netbeans.org
-or the NetBeans External Editor site at http://externaleditor.netbeans.org.
+For more information visit the main NetBeans web site http://www.netbeans.org.
+The External Editor is now, unfortunately, declared Obsolte.  See
+ http://externaleditor.netbeans.org.
 
 Sun Microsystems, Inc. also ships NetBeans under the name Sun ONE Studio.
 Visit http://www.sun.com for more information regarding the Sun ONE Studio
@@ -41,37 +80,32 @@
 for C, C++, and Fortran.  Current releases of Sun ONE Studio provide full
 support for Java, C, C++, and Fortran.
 
-The interface to NetBeans is also supported by Agide, the A-A-P GUI IDE.
-Agide is very different from NetBeans:
-- Based on Python instead of Java, much smaller footprint and fast startup.
-- Agide is a framework in which many different tools can work together.
-See the A-A-P website for information: http://www.A-A-P.org.
-
 ==============================================================================
-2. NetBeans Key Bindings				*netbeans-keybindings*
+2. Integration features					*netbeans-integration*
 
-Vim understands a number of key bindings that execute NetBeans commands.
-These are typically all the Function key combinations.  To execute a NetBeans
-command, the user must press the Pause key followed by a NetBeans key binding.
-For example, in order to compile a Java file, the NetBeans key binding is
-"F9".  So, while in vim, press "Pause F9" to compile a java file.  To toggle a
-breakpoint at the current line, press "Pause Shift F8".
+The NetBeans socket interface of Vim allows to get information from Vim or to
+ask Vim to perform specific actions:
+- get information about buffer: buffer name, cursor position, buffer content,
+  etc.
+- be notified when buffers are open or closed
+- be notified of how the buffer content is modified
+- load and save files
+- modify the buffer content
+- installing special key bindings
+- raise the window, control the window geometry
 
-The Pause key is Function key 21.  If you don't have a working Pause key and
-want to use F8 instead, use: >
+For sending key strokes to Vim or for evaluating functions in Vim, you must
+use the |clientserver| interface.
 
-	:map <F8> <F21>
-
-The External Editor module dynamically reads the NetBeans key bindings so vim
-should always have the latest key bindings, even when NetBeans changes them.
 
 ==============================================================================
 3. Configuring Vim for NetBeans			*netbeans-configure*
 
-For more help installing vim, please read |usr_90.txt| in the Vim User Manual.
+For more help installing Vim, please read |usr_90.txt| in the Vim User Manual.
 
 
-On Unix
+On Unix:
+--------
 
 When running configure without arguments the NetBeans interface should be
 included.  That is, if the configure check to find out if your system supports
@@ -80,15 +114,16 @@
 In case you do not want the NetBeans interface you can disable it by
 uncommenting a line with "--disable-netbeans" in the Makefile.
 
-Currently, only gvim is supported in this integration as NetBeans does not
-have means to supply a terminal emulator for the vim command.  Furthermore,
+Currently, only GVim is supported in this integration as NetBeans does not
+have means to supply a terminal emulator for the Vim command.  Furthermore,
 there is only GUI support for GTK, GNOME, and Motif.
 
 If Motif support is required the user must supply XPM libraries.  See
 |workshop-xpm| for details on obtaining the latest version of XPM.
 
 
-On MS-Windows
+On MS-Windows:
+--------------
 
 The Win32 support is now in beta stage.
 
@@ -96,121 +131,56 @@
 XPM by yourself or use precompiled libraries from http://iamphet.nm.ru/misc/
 (for MS Visual C++) or http://gnuwin32.sourceforge.net (for MinGW).
 
-==============================================================================
-4. Downloading NetBeans					*netbeans-download*
+Enable debugging:
+-----------------
 
-The NetBeans IDE is available for download from netbeans.org.  You can download
-a released version, download sources, or use CVS to download the current
-source tree.  If you choose to download sources, follow directions from
-netbeans.org on building NetBeans.
-
-Depending on the version of NetBeans you download, you may need to do further
-work to get the required External Editor module.  This is the module which lets
-NetBeans work with gvim (or xemacs :-).  See http://externaleditor.netbeans.org
-for details on downloading this module if your NetBeans release does not have
-it.
-
-For C, C++, and Fortran support you will also need the cpp module.  See
-http://cpp.netbeans.org for information regarding this module.
-
-You can also download Sun ONE Studio from Sun Microsystems, Inc for a 30 day
-free trial.  See http://www.sun.com for further details.
+To enable debugging of Vim and of the NetBeans protocol, the "NBDEBUG" macro
+needs to be defined.  Search in the Makefile of the platform you are using for
+"NBDEBUG" to see what line needs to be uncommented.  This effectively adds
+"-DNBDEBUG" to the compile command.  Also see |netbeans-debugging|
 
 ==============================================================================
-5. Preparing NetBeans for Vim				*netbeans-preparation*
+4. Error Messages					*netbeans-messages*
 
-In order for NetBeans to work with vim, the NetBeans External Editor module
-must be loaded and enabled.  If you have a Sun ONE Studio Enterprise Edition
-then this module should be loaded and enabled.  If you have a NetBeans release
-you may need to find another way of obtaining this open source module.
-
-You can check if you have this module by opening the Tools->Options dialog
-and drilling down to the "Modules" list (IDE Configuration->System->Modules).
-If your Modules list has an entry for "External Editor" you must make sure
-it is enabled (the "Enabled" property should have the value "True").  If your
-Modules list has no External Editor see the next section on |obtaining-exted|.
-
-==============================================================================
-6. Obtaining the External Editor Module			    *obtaining-exted*
-
-There are 2 ways of obtaining the External Editor module.  The easiest way
-is to use the NetBeans Update Center to download and install the module.
-Unfortunately, some versions do not have this module in their update
-center.  If you cannot download via the update center you will need to
-download sources and build the module.  I will try and get the module
-available from the NetBeans Update Center so building will be unnecessary.
-Also check http://externaleditor.netbeans.org for other availability options.
-
-To download the External Editor sources via CVS and build your own module,
-see http://externaleditor.netbeans.org and http://www.netbeans.org.
-Unfortunately, this is not a trivial procedure.
-
-==============================================================================
-7. Setting up NetBeans to run with Vim			    *netbeans-setup*
-
-Assuming you have loaded and enabled the NetBeans External Editor module
-as described in |netbeans-preparation| all you need to do is verify that
-the gvim command line is properly configured for your environment.
-
-Open the Tools->Options dialog and open the Editing category.  Select the
-External Editor.  The right hand pane should contain a Properties tab and
-an Expert tab.  In the Properties tab make sure the "Editor Type" is set
-to "Vim".  In the Expert tab make sure the "Vim Command" is correct.
-
-You should be careful if you change the "Vim Command".  There are command
-line options there which must be there for the connection to be properly
-set up.  You can change the command name but that's about it.  If your gvim
-can be found by your $PATH then the VIM Command can start with "gvim".  If
-you don't want gvim searched from your $PATH then hard code in the full
-Unix path name.  At this point you should get a gvim for any source file
-you open in NetBeans.
-
-If some files come up in gvim and others (with different file suffixes) come
-up in the default NetBeans editor you should verify the MIME type in the
-Expert tab MIME Type property.  NetBeans is MIME oriented and the External
-Editor will only open MIME types specified in this property.
-
-==============================================================================
-8. Messages						*netbeans-messages*
-
-These messages are specific for NetBeans:
+These error messages are specific to NetBeans socket protocol:
 
 							*E463*
 Region is guarded, cannot modify
-		NetBeans defines guarded areas in the text, which you cannot
-		change.
-		Also sets the current buffer, if necessary.
+		The Vim Controller has defined guarded areas in the text,
+		which you cannot change.  Also sets the current buffer, if
+		necessary.
 
 							*E656*
-NetBeans disallows writes of unmodified buffers
-		NetBeans does not support writes of unmodified buffers that
-		were opened from NetBeans.
+Writes of unmodified buffers forbidden
+		Writes of unmodified buffers that were opened from the
+		Vim Controller are not possible.
 
 							*E657*
-Partial writes disallowed for NetBeans buffers
-		NetBeans does not support partial writes for buffers that were
-		opened from NetBeans.
+Partial writes disallowed
+		Partial writes for buffers that were opened from the
+		Vim Controller are not allowed.
 
 							*E658*
-NetBeans connection lost for this buffer
-		NetBeans has become confused about the state of this file.
-		Rather than risk data corruption, NetBeans has severed the
-		connection for this file.  Vim will take over responsibility
-		for saving changes to this file and NetBeans will no longer
-		know of these changes.
+Connection lost for this buffer
+		The Vim Controller has become confused about the state of
+		this file.  Rather than risk data corruption, it has severed
+		the connection for this file.  Vim will take over
+		responsibility for saving changes to this file and the
+		Vim Controller will no longer know of these changes.
 
 							*E744*
-NetBeans does not allow changes in read-only files
+Read-only file
 		Vim normally allows changes to a read-only file and only
 		enforces the read-only rule if you try to write the file.
 		However, NetBeans does not let you make changes to a file
-		which is read-only and becomes confused if vim does this.
-		So vim does not allow modifications to files when run with
-		NetBeans.
-==============================================================================
-9. Running Vim from NetBeans				*netbeans-run*
+		which is read-only and becomes confused if Vim does this.
+		So Vim does not allow modifications to files when run
+		in NetBeans mode.
 
-NetBeans starts Vim with the |-nb| argument.  Three forms can be used, that
+==============================================================================
+5. Running Vim in NetBeans mode				*netbeans-run*
+
+Vim must be started with the |-nb| argument.  Three forms can be used, that
 differ in the way the information for the connection is specified:
 
 	-nb={fname}				from a file
@@ -231,23 +201,29 @@
 Other lines are ignored.  The caller of Vim is responsible for deleting the
 file afterwards.
 
-{hostname} is the name of the machine where NetBeans is running.  When omitted
-the environment variable "__NETBEANS_HOST" is used or the default "localhost".
+{hostname} is the name of the machine where Vim Controller is running.  When
+omitted the environment variable "__NETBEANS_HOST" is used or the default
+"localhost".
 
-{addr} is the port number for NetBeans.  When omitted the environment variable
-"__NETBEANS_SOCKET" is used or the default 3219.
+{addr} is the port number for the NetBeans interface.  When omitted the
+environment variable "__NETBEANS_SOCKET" is used or the default 3219.
 
 {password} is the password for connecting to NetBeans.  When omitted the
 environment variable "__NETBEANS_VIM_PASSWORD" is used or "changeme".
 
-==============================================================================
-10. NetBeans protocol					*netbeans-protocol*
+Vim will initiate a socket connection (client side) to the specified host and
+port upon startup. The password will be sent with the AUTH event when the
+connection has been established.
 
-The communication between NetBeans and Vim uses plain text messages.  This
-protocol was first designed to work with the external editor module of
-NetBeans (see http://externaleditor.netbeans.org).  Later it was extended to
-work with Agide (A-A-P GUI IDE, see http://www.a-a-p.org).  The extensions are
-marked with "version 2.1".
+
+==============================================================================
+6. NetBeans protocol					*netbeans-protocol*
+
+The communication between the Vim Controller and Vim uses plain text
+messages.  This protocol was first designed to work with the external editor
+module of NetBeans.  Later it was extended to work with Agide (A-A-P GUI IDE,
+see http://www.a-a-p.org) and then with other IDE. The extensions are marked
+with "version 2.1".
 
 Version 2.2 of the protocol has several minor changes which should only affect
 NetBeans users (ie, not Agide users).  However, a bug was fixed which could
@@ -266,26 +242,16 @@
 plain UTF-8 text this protocol could also be used with any other communication
 mechanism.
 
-To see an example implementation look at the gvim tool in Agide.  Currently
-found here:
-	http://cvs.sf.net/viewcvs.py/a-a-p/Agide/Tools/GvimTool.py?view=markup
+6.1 Kinds of messages		|nb-messages|
+6.2 Terms			|nb-terms|
+6.3 Commands			|nb-commands|
+6.4 Functions and Replies	|nb-functions|
+6.5 Events			|nb-events|
+6.6 Special messages		|nb-special|
+6.7 Protocol errors		|nb-protocol_errors|
 
 
-
-10.1 Kinds of messages		|nb-messages|
-10.2 Terms			|nb-terms|
-10.3 Commands			|nb-commands|
-10.4 Functions and Replies	|nb-functions|
-10.5 Events			|nb-events|
-10.6 Special messages		|nb-special|
-
-*E627* *E628* *E629* *E630* *E631* *E632* *E633* *E634* *E635* *E636*
-*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
-*E647* *E648* *E649* *E650* *E651* *E652* *E653* *E654*
-These errors occur when a message violates the protocol.
-
-
-10.1 Kinds of messages					*nb-messages*
+6.1 Kinds of messages					*nb-messages*
 
 There are four kinds of messages:
 
@@ -303,10 +269,11 @@
 Command		bufID:name!seqno	11:showBalloon!123 "text"
 Function	bufID:name/seqno	11:getLength/123
 Reply		seqno			123 5000
-Event		bufID:name=123		11:keyCommand=123 "S-F2"
+Event		bufID:name=seqno	11:keyCommand=123 "S-F2"
 
 
-10.2 Terms						*nb-terms*
+
+6.2 Terms						*nb-terms*
 
 bufID		Buffer number.  A message may be either for a specific buffer
 		or generic.  Generic messages use a bufID of zero.  NOTE: this
@@ -353,7 +320,7 @@
 pathname	String argument: file name with full path.
 
 
-10.3 Commands						*nb-commands*
+6.3 Commands						*nb-commands*
 
 actionMenuItem	Not implemented.
 
@@ -381,8 +348,8 @@
 
 create		Creates a buffer without a name.  Replaces the current buffer
 		(it's hidden when it was changed).
-		NetBeans uses this as the first command for a file that is
-		being opened.  The sequence of commands could be:
+		The Vim Controller should use this as the first command for a
+		file that is being opened.  The sequence of commands could be:
 			create
 			setCaretListener	(ignored)
 			setModified		(no effect)
@@ -413,9 +380,14 @@
 editFile pathname
 		Set the name for the buffer and edit the file "pathname", a
 		string argument.
-		Normal way for the IDE to tell the editor to edit a file.  If
-		the IDE is going to pass the file text to the editor use these
-		commands instead:
+		Normal way for the IDE to tell the editor to edit a file.
+
+		You must set a bufId different of 0 with this command to
+		assign a bufId to the buffer. It will trigger an event
+		fileOpened with a bufId of 0 but the buffer has been assigned.
+
+		If the IDE is going to pass the file text to the editor use
+		these commands instead:
 			setFullName
 			insert
 			initDone
@@ -437,10 +409,10 @@
 		the current buffer.  Fires the BufReadPost autocommand event.
 
 insertDone
-		Sent by NetBeans to tell vim an initial file insert is done.
-		This triggers a read message being printed.  Prior to version
-		2.3, no read messages were displayed after opening a file.
-		New in version 2.3.
+		Sent by Vim Controller to tell Vim an initial file insert is
+		done.  This triggers a read message being printed.  Prior to
+		version 2.3, no read messages were displayed after opening a
+		file.  New in version 2.3.
 
 moveAnnoToFront serNum
 		Not implemented.
@@ -476,9 +448,9 @@
 		New in version 2.2.
 
 saveDone
-		Sent by NetBeans to tell vim a save is done.  This triggers
-		a save message being printed.  Prior to version 2.3, no save
-		messages were displayed after a save.
+		Sent by Vim Controller to tell Vim a save is done.  This
+		triggers a save message being printed.  Prior to version 2.3,
+		no save messages were displayed after a save.
 		New in version 2.3.
 
 setAsUser	Not implemented.
@@ -525,19 +497,20 @@
 		modified, when it is "F" mark it as unmodified.
 
 setModtime time
-		Update a buffers modification time after NetBeans saves the
-		file.
+		Update a buffers modification time after the file has been
+		saved directly by the Vim Controller.
 		New in version 2.3.
 
 setReadOnly
-		Passed by NetBeans to tell vim a file is readonly.
-		Implemented in verion 2.3.
+		Set a file as readonly
+		Implemented in version 2.3.
 
 setStyle	Not implemented.
 
 setTitle name
 		Set the title for the buffer to "name", a string argument.
-		The title is only used for NetBeans functions, not by Vim.
+		The title is only used for the Vim Controller functions, not
+		by Vim.
 
 setVisible visible
 		When the boolean argument "visible" is "T", goto the buffer.
@@ -551,8 +524,8 @@
 
 specialKeys
 		Map a set of keys (mostly function keys) to be passed back
-		to NetBeans for processing.  This lets NetBeans hotkeys be
-		used from vim.
+		to the Vim Controller for processing.  This lets regular IDE
+		hotkeys be used from Vim.
 		Implemented in version 2.3.
 
 startAtomic	Begin an atomic operation.  The screen will not be updated
@@ -583,7 +556,7 @@
 version		Not implemented.
 
 
-10.4 Functions and Replies				*nb-functions*
+6.4 Functions and Replies				*nb-functions*
 
 getDot		Not implemented.
 
@@ -630,7 +603,7 @@
 insert off text
 		Insert "text" before position "off".  "text" is a string
 		argument, "off" a number.
-		"off" should have a "\n" (newline) at the end of each line.
+		"text" should have a "\n" (newline) at the end of each line.
 		Or "\r\n" when 'fileformat' is "dos".  When using "insert" in
 		an empty buffer Vim will set 'fileformat' accordingly.
 		When "off" points to the start of a line the text is inserted
@@ -665,7 +638,7 @@
 		New in version 2.1.
 
 
-10.5 Events						*nb-events*
+6.5 Events						*nb-events*
 
 balloonEval off len type
 		The mouse pointer rests on text for a short while.  When "len"
@@ -685,15 +658,15 @@
 buttonRelease button lnum col
 		Report which button was pressed and the location of the cursor
 		at the time of the release.  Only for buffers that are owned
-		by NetBeans.  This event is not sent if the button was
-		released while the mouse was in the status line or in a
+		by the Vim Controller.  This event is not sent if the button
+		was released while the mouse was in the status line or in a
 		separator line.  If col is less than 1 the button release was
 		in the sign area.
 		New in version 2.2.
 
 disconnect
-		Tell NetBeans that vim is exiting and not to try and read or
-		write more commands.
+		Tell the Vim Controller that Vim is exiting and not to try and
+		read or write more commands.
 		New in version 2.3.
 
 fileClosed	Not implemented.
@@ -776,10 +749,10 @@
 		Only fired when enabled, see "startDocumentListen".
 
 version vers	Report the version of the interface implementation.  Vim
-		reports "2.2" (including the quotes).
+		reports "2.4" (including the quotes).
 
 
-10.6 Special messages					*nb-special*
+6.6 Special messages					*nb-special*
 
 These messages do not follow the style of the messages above.  They are
 terminated by a newline character.
@@ -801,22 +774,164 @@
 
 REJECT		Not used.
 
+
+6.7 Protocol errors					*nb-protocol_errors*
+
+These errors occur when a message violates the protocol:
+*E627* *E628* *E629* *E630* *E631* *E632* *E633* *E634* *E635* *E636*
+*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
+*E647* *E648* *E649* *E650* *E651* *E652* *E653* *E654*
+
+
 ==============================================================================
-11. NetBeans Commands					*netbeans-commands*
+7. NetBeans key						*netbeans-key*
 
 							*:nbkey*
-:nbkey key			Pass the key to NetBeans for processing
+:nbkey key		Pass the key to the Vim Controller for processing
 
-Pass the key to NetBeans for hot-key processing.  You should not need to use
-this command directly.  However, NetBeans passes a list of hot-keys to Vim at
-startup and when one of these keys is pressed, this command is generated to
-send the key press back to NetBeans.
+When a hot-key has been installed with the specialKeys command, this command
+can be used to generate a hotkey messages to the Vim Controller. The events
+newDotAndMark, keyCommand and keyAtPos are generated (in this order).
+
 
 ==============================================================================
-12. Known problems					*netbeans-problems*
+8. Known problems					*netbeans-problems*
 
 NUL bytes are not possible.  For editor -> IDE they will appear as NL
 characters.  For IDE -> editor they cannot be inserted.
 
 
+==============================================================================
+9. Debugging NetBeans protocol				*netbeans-debugging*
+
+To debug the Vim protocol, you must first compile Vim with debugging support
+and NetBeans debugging support.  See |netbeans-configure| for instructions
+about Vim compiling and how to enable debug support.
+
+When running Vim, set the following environment variables:
+
+    export SPRO_GVIM_DEBUG=netbeans.log
+    export SPRO_GVIM_DLEVEL=0xffffffff
+
+Vim will then log all the incoming and outgoing messages of the NetBeans
+protocol to the file netbeans.log .
+
+The content of netbeans.log after a session looks like this:
+Tue May 20 17:19:27 2008
+EVT: 0:startupDone=0
+CMD 1: (1) create
+CMD 2: (1) setTitle "testfile1.txt"
+CMD 3: (1) setFullName "testfile1.txt"
+EVT(suppressed): 1:remove=3 0 -1
+EVT: 1:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile1.txt" T F
+CMD 4: (1) initDone
+FUN 5: (0) getCursor
+REP 5: 1 1 0 0
+CMD 6: (2) create
+CMD 7: (2) setTitle "testfile2.txt"
+CMD 8: (2) setFullName "testfile2.txt"
+EVT(suppressed): 2:remove=8 0 -1
+EVT: 2:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile2.txt" T F
+CMD 9: (2) initDone
+
+
+==============================================================================
+10. NetBeans External Editor
+
+NOTE: This information is obsolete!  Only relevant if you are using an old
+version of NetBeans.
+
+
+10.1. Downloading NetBeans			*netbeans-download*
+
+The NetBeans IDE is available for download from netbeans.org.  You can download
+a released version, download sources, or use CVS to download the current
+source tree.  If you choose to download sources, follow directions from
+netbeans.org on building NetBeans.
+
+Depending on the version of NetBeans you download, you may need to do further
+work to get the required External Editor module.  This is the module which lets
+NetBeans work with gvim (or xemacs :-).  See http://externaleditor.netbeans.org
+for details on downloading this module if your NetBeans release does not have
+it.
+
+For C, C++, and Fortran support you will also need the cpp module.  See
+http://cpp.netbeans.org for information regarding this module.
+
+You can also download Sun ONE Studio from Sun Microsystems, Inc for a 30 day
+free trial.  See http://www.sun.com for further details.
+
+
+10.2. NetBeans Key Bindings			*netbeans-keybindings*
+
+Vim understands a number of key bindings that execute NetBeans commands.
+These are typically all the Function key combinations.  To execute a NetBeans
+command, the user must press the Pause key followed by a NetBeans key binding.
+For example, in order to compile a Java file, the NetBeans key binding is
+"F9".  So, while in vim, press "Pause F9" to compile a java file.  To toggle a
+breakpoint at the current line, press "Pause Shift F8".
+
+The Pause key is Function key 21.  If you don't have a working Pause key and
+want to use F8 instead, use: >
+
+	:map <F8> <F21>
+
+The External Editor module dynamically reads the NetBeans key bindings so vim
+should always have the latest key bindings, even when NetBeans changes them.
+
+
+10.3. Preparing NetBeans for Vim		*netbeans-preparation*
+
+In order for NetBeans to work with vim, the NetBeans External Editor module
+must be loaded and enabled.  If you have a Sun ONE Studio Enterprise Edition
+then this module should be loaded and enabled.  If you have a NetBeans release
+you may need to find another way of obtaining this open source module.
+
+You can check if you have this module by opening the Tools->Options dialog
+and drilling down to the "Modules" list (IDE Configuration->System->Modules).
+If your Modules list has an entry for "External Editor" you must make sure
+it is enabled (the "Enabled" property should have the value "True").  If your
+Modules list has no External Editor see the next section on |obtaining-exted|.
+
+
+10.4. Obtaining the External Editor Module	*obtaining-exted*
+
+There are 2 ways of obtaining the External Editor module.  The easiest way
+is to use the NetBeans Update Center to download and install the module.
+Unfortunately, some versions do not have this module in their update
+center.  If you cannot download via the update center you will need to
+download sources and build the module.  I will try and get the module
+available from the NetBeans Update Center so building will be unnecessary.
+Also check http://externaleditor.netbeans.org for other availability options.
+
+To download the External Editor sources via CVS and build your own module,
+see http://externaleditor.netbeans.org and http://www.netbeans.org.
+Unfortunately, this is not a trivial procedure.
+
+
+10.5. Setting up NetBeans to run with Vim	*netbeans-setup*
+
+Assuming you have loaded and enabled the NetBeans External Editor module
+as described in |netbeans-preparation| all you need to do is verify that
+the gvim command line is properly configured for your environment.
+
+Open the Tools->Options dialog and open the Editing category.  Select the
+External Editor.  The right hand pane should contain a Properties tab and
+an Expert tab.  In the Properties tab make sure the "Editor Type" is set
+to "Vim".  In the Expert tab make sure the "Vim Command" is correct.
+
+You should be careful if you change the "Vim Command".  There are command
+line options there which must be there for the connection to be properly
+set up.  You can change the command name but that's about it.  If your gvim
+can be found by your $PATH then the VIM Command can start with "gvim".  If
+you don't want gvim searched from your $PATH then hard code in the full
+Unix path name.  At this point you should get a gvim for any source file
+you open in NetBeans.
+
+If some files come up in gvim and others (with different file suffixes) come
+up in the default NetBeans editor you should verify the MIME type in the
+Expert tab MIME Type property.  NetBeans is MIME oriented and the External
+Editor will only open MIME types specified in this property.
+
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index c13986a..6ad3a50 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -1,4 +1,4 @@
-*os_beos.txt*	For Vim version 7.1.  Last change: 2005 Mar 29
+*os_beos.txt*	For Vim version 7.2a.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index b6ceaa0..0f6d2bb 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,4 +1,4 @@
-*os_risc.txt*   For Vim version 7.1.  Last change: 2005 Mar 29
+*os_risc.txt*   For Vim version 7.2a.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Thomas Leonard
diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt
index 159c57e..cf200f0 100644
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -1,4 +1,4 @@
-*os_unix.txt*   For Vim version 7.1.  Last change: 2005 Mar 29
+*os_unix.txt*   For Vim version 7.2a.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 5331cfe..cb367d0 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.1.  Last change: 2007 May 11
+*pattern.txt*   For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -138,6 +138,7 @@
 			This command doesn't work in an autocommand, because
 			the highlighting state is saved and restored when
 			executing autocommands |autocmd-searchpat|.
+			Same thing for when invoking a user function.
 
 While typing the search pattern the current match will be shown if the
 'incsearch' option is on.  Remember that you still have to finish the search
@@ -497,8 +498,8 @@
 |/[]|	[]	\[]	any character specified inside the []
 |/\%[]| \%[]	\%[]	a sequence of optionally matched atoms
 
-|/\c|	\c	\c	ignore case
-|/\C|	\C	\C	match case
+|/\c|	\c	\c	ignore case, do not use the 'ignorecase' option
+|/\C|	\C	\C	match case, do not use the 'ignorecase' option
 |/\m|	\m	\m	'magic' on for the following chars in the pattern
 |/\M|	\M	\M	'magic' off for the following chars in the pattern
 |/\v|	\v	\v	the following chars in the pattern are "very magic"
@@ -596,9 +597,9 @@
 
 	Example			matches ~
 	ab\{2,3}c		"abbc" or "abbbc"
-	a\{5}			"aaaaa".
-	ab\{2,}c		"abbc", "abbbc", "abbbbc", etc
-	ab\{,3}c		"ac", "abc", "abbc" or "abbbc".
+	a\{5}			"aaaaa"
+	ab\{2,}c		"abbc", "abbbc", "abbbbc", etc.
+	ab\{,3}c		"ac", "abc", "abbc" or "abbbc"
 	a[bc]\{3}d		"abbbd", "abbcd", "acbcd", "acccd", etc.
 	a\(bc\)\{1,2}d		"abcd" or "abcbcd"
 	a[bc]\{-}[cd]		"abc" in "abcd"
@@ -681,11 +682,11 @@
 	for a match).
 	Example			matches ~
 	\(foo\)\@<!bar		any "bar" that's not in "foobar"
-	\(\/\/.*\)\@\<!in	"in" which is not after "//"
+	\(\/\/.*\)\@<!in	"in" which is not after "//"
 
 							*/\@>*
 \@>	Matches the preceding atom like matching a whole pattern. {not in Vi}
-	Like '(?>pattern)" in Perl.
+	Like "(?>pattern)" in Perl.
 	Example		matches ~
 	\(a*\)\@>a	nothing (the "a*" takes all the "a"'s, there can't be
 			another one following)
@@ -720,7 +721,7 @@
 			start-of-line
 
 							*/$*
-$	At end of pattern or in front of "\|" or "\)" ("|" or ")" after "\v"):
+$	At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
 	matches end-of-line <EOL>; at other positions, matches literal '$'.
 	|/zero-width|
 
@@ -870,7 +871,7 @@
 	WARNING: When inserting or deleting text Vim does not automatically
 	update highlighted matches.  This means Syntax highlighting quickly
 	becomes wrong.
-	Example, to highlight the all characters after virtual column 72: >
+	Example, to highlight all the characters after virtual column 72: >
 		/\%>72v.*
 <	When 'hlsearch' is set and you move the cursor around and make changes
 	this will clearly show when the match is updated or not.
@@ -1071,6 +1072,9 @@
 <	Matches the words "r", "re", "ro", "rea", "roa", "read" and "road".
 	There can be no \(\), \%(\) or \z(\) items inside the [] and \%[] does
 	not nest.
+	To include a "[" use "[[]" and for "]" use []]", e.g.,: >
+		/index\%[[[]0[]]]
+<	matches "index" "index[", "index[0" and "index[0]".
 	{not available when compiled without the +syntax feature}
 
 				*/\%d* */\%x* */\%o* */\%u* */\%U* *E678*
@@ -1225,11 +1229,14 @@
 		'ignorecase' does not apply, use |/\c| in the pattern to
 		ignore case.  Otherwise case is not ignored.
 
+		'redrawtime' defines the maximum time searched for pattern
+		matches.
+
 		When matching end-of-line and Vim redraws only part of the
 		display you may get unexpected results.  That is because Vim
 		looks for a match in the line where redrawing starts.
 
-		Also see |matcharg()|and |getmatches()|. The former returns
+		Also see |matcharg()| and |getmatches()|. The former returns
 		the highlight group and pattern of a previous |:match|
 		command.  The latter returns a list with highlight groups and
 		patterns defined by both |matchadd()| and |:match|.
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index a5eafae..5f46de0 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -1,4 +1,4 @@
-*pi_getscript.txt*  For Vim version 7.1.  Last change: 2007 May 08
+*pi_getscript.txt*  For Vim version 7.2a.  Last change: 2008 Jan 07
 >
 		GETSCRIPT REFERENCE MANUAL  by Charles E. Campbell, Jr.
 <
@@ -136,7 +136,7 @@
 out-of-date.
 
 The SourceID is extracted by GetLatestVimScripts from the script's page on
-vim.sf.net; whenever it's greater than the one stored in the
+vim.sf.net; whenever its greater than the one stored in the
 GetLatestVimScripts.dat file, the script will be downloaded
 (see |GetLatestVimScripts_dat|).
 
@@ -335,6 +335,12 @@
 ==============================================================================
 9. GetLatestVimScripts History		*getscript-history* *glvs-hist* {{{1
 
+v29 Jan 07, 2008 : * Bram M pointed out that cpo is a global option and that
+                     getscriptPlugin.vim was setting it but not restoring it.
+v28 Jan 02, 2008 : * improved shell quoting character handling, cygwin
+		     interface, register-a bypass
+    Oct 29, 2007   * Bill McCarthy suggested a change to getscript that avoids
+                     creating pop-up windows
 v24 Apr 16, 2007 : * removed save&restore of the fo option during script
                      loading
 v23 Nov 03, 2006 : * ignores comments (#...)
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index cf099d4..c50e0d1 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,13 +1,13 @@
-*pi_tar.txt*	For Vim version 7.1.  Last change: 2006 Sep 29
+*pi_tar.txt*	For Vim version 7.2a.  Last change: 2008 Jun 12
 
-       	       	       +====================+
-       	       	       | Tar File Interface |
-       	       	       +====================+
+		       +====================+
+		       | Tar File Interface |
+		       +====================+
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: The GPL (gnu public license) applies to	*tar-copyright*
-	   tarPlugin.vim, and pi_tar.txt.
+Copyright 2005-2008: The GPL (gnu public license) applies to	*tar-copyright*
+	   tar.vim, tarPlugin.vim, and pi_tar.txt.
 	   No warranty, express or implied.  Use At-Your-Own-Risk.
 
 ==============================================================================
@@ -36,32 +36,42 @@
    *g:tar_browseoptions*  "Ptf"   used to get a list of contents
    *g:tar_readoptions*    "OPxf"  used to extract a file from a tarball
    *g:tar_cmd*            "tar"   the name of the tar program
+   *g:tar_nomax*            0     if true, file window will not be maximized
    *g:tar_writeoptions*   "uf"    used to update/replace a file
 
 
 ==============================================================================
 4. History						*tar-history*
 
+   v16 Jun 06, 2008 * tarfile:: used instead of tarfile: when editing files
+		      inside tarballs.  Fixes a problem with tarballs called
+		      things like c:\abc.tar. (tnx to Bill McCarthy)
+   v14 May 09, 2008 * arno caught a security bug
+       May 28, 2008 * various security improvements.  Now requires patch 299
+		      which provides the fnameescape() function
+       May 30, 2008 * allows one to view *.gz and *.bz2 files that are in
+		    *.tar files.
+   v12 Sep 07, 2007 * &shq now used if not the empty string for g:tar_shq
    v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
-                      of "echo and prompt user"
+		      of "echo and prompt user"
    v9 May 02, 2006 * improved detection of masquerading as tar file
    v8 May 02, 2006 * allows editing of files that merely masquerade as tar
-                     files
+		     files
    v7 Mar 22, 2006 * work on making tar plugin work across network
       Mar 27, 2006 * g:tar_cmd now available for users to change the name
-                     of the tar program to be used.  By default, of course,
-		     its "tar".
+		     of the tar program to be used.  By default, of course,
+		     it's "tar".
    v6 Dec 21, 2005 * writing to files not in directories caused problems -
-                     fixed (pointed out by Christian Robinson)
+		     fixed (pointed out by Christian Robinson)
    v5 Nov 22, 2005 * report option workaround installed
    v3 Sep 16, 2005 * handles writing files in an archive back to the
-                     archive
+		     archive
       Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
       Oct 18, 2005 * handles writing to compressed archives
       Nov 03, 2005 * handles writing tarfiles across a network using
-                     netrw#NetWrite()
+		     netrw#NetWrite()
    v2              * converted to use Vim7's new autoload feature by
-                     Bram Moolenaar
+		     Bram Moolenaar
    v1 (original)   * Michael Toren (see http://michael.toren.net/code/)
 
 ==============================================================================
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index cfb448f..e31f8a7 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.1.  Last change: 2007 May 11
+*pi_vimball.txt*	For Vim version 7.2a.  Last change: 2008 Jun 05
 
 			       ----------------
 			       Vimball Archiver
@@ -6,7 +6,7 @@
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.	*Vimball-copyright*
+Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.	*Vimball-copyright*
 	   The VIM LICENSE applies to Vimball.vim, and Vimball.txt
 	   (see |copyright|) except use "Vimball" instead of "Vim".
 	   No warranty, express or implied.
@@ -16,21 +16,51 @@
 1. Contents				*vba* *vimball* *vimball-contents*
 
 	1. Contents......................................: |vimball-contents|
-	2. Vimball Manual................................: |vimball-manual|
+	3. Vimball Manual................................: |vimball-manual|
 	   MkVimball.....................................: |:MkVimball|
 	   UseVimball....................................: |:UseVimball|
 	   RmVimball.....................................: |:RmVimball|
-	3. Vimball History...............................: |vimball-history|
+	4. Vimball History...............................: |vimball-history|
 
 
 ==============================================================================
-2. Vimball Manual					*vimball-manual*
+2. Vimball Introduction						*vimball-intro*
+
+	Vimball is intended to make life simpler for users of plugins.  All
+	a user needs to do with a vimball is: >
+		vim someplugin.vba
+		:so %
+		:q
+<	and the plugin and all its components will be installed into their
+	appropriate directories.  Note that one doesn't need to be in any
+	particular directory when one does this.  Plus, any help for the
+	plugin will also be automatically installed.
+
+	If a user has decided to use the AsNeeded plugin, vimball is smart
+	enough to put scripts nominally intended for .vim/plugin/ into
+	.vim/AsNeeded/ instead.
+
+	Removing a plugin that was installed with vimball is really easy: >
+		vim
+		:RmVimball someplugin
+<	This operation is not at all easy for zips and tarballs, for example.
+
+	Vimball examines the user's |'runtimepath'| to determine where to put
+	the scripts.  The first directory mentioned on the runtimepath is
+	usually used if possible.  Use >
+		:echo &rtp
+<	to see that directory.
+
+
+==============================================================================
+3. Vimball Manual					*vimball-manual*
 
 							*:MkVimball*
 		:[range]MkVimball[!] filename [path]
 
 	The range is composed of lines holding paths to files to be included
-	in your new vimball.  As an example: >
+	in your new vimball, omitting the portion of the paths that is
+	normally specified by the runtimepath (|'rtp'|).  As an example: >
 		plugin/something.vim
 		doc/something.txt
 <	using >
@@ -44,14 +74,34 @@
 	directory.  The vimball plugin normally uses the first |'runtimepath'|
 	directory that exists as a prefix; don't use absolute paths, unless
 	the user has specified such a path.
-							*g:vimball_home*
-	You may override the use of the |'runtimepath'| by specifying a
-	variable, g:vimball_home.
 
 	If you use the exclamation point (!), then MkVimball will create the
 	"filename.vba" file, overwriting it if it already exists.  This
 	behavior resembles that for |:w|.
 
+							*g:vimball_mkdir*
+	First, the |mkdir()| command is tried (not all systems support it).
+
+	If it doesn't exist, then g:vimball_mkdir doesn't exist, it is set to:
+	  |g:netrw_local_mkdir|, if it exists
+	   "mkdir", if it is executable
+	   "makedir", if it is executable
+	   Otherwise, it is undefined.
+	One may explicitly specify the directory making command using
+	g:vimball_mkdir.  This command is used to make directories that
+	are needed as indicated by the vimball.
+
+							*g:vimball_home*
+	You may override the use of the |'runtimepath'| by specifying a
+	variable, g:vimball_home.
+
+	Path Preprocessing				*g:vimball_path_escape*
+
+	Paths used in vimball are preprocessed by s:Path(); in addition,
+	certain characters are escaped (by prepending a backslash).  The
+	characters are in g:vimball_path_escape, and may be overridden by
+	the user in his/her .vimrc initialization script.
+
 							*vimball-extract*
 		vim filename.vba
 
@@ -88,8 +138,21 @@
 
 
 ==============================================================================
-3. Vimball History					*vimball-history* {{{1
+4. Vimball History					*vimball-history* {{{1
 
+	26 : May 27, 2008 * g:vimball_mkdir usage installed.  Makes the
+	                    $HOME/.vim (or $HOME\vimfiles) directory if
+			    necessary.
+	     May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug:
+			    vimball wasn't updating plugins to AsNeeded/
+			    when it should
+	25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x
+			    files as help files, too.
+	     Apr 18, 2008 * RmVimball command is now protected by saving and
+	                    restoring settings -- in particular, acd was
+			    causing problems as reported by Zhang Shuhan
+	24 : Nov 15, 2007 * |g:vimball_path_escape| used by s:Path() to
+	                    prevent certain characters from causing trouble
 	22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
 	21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
 	                    handling problem and it now changes \s to /s
@@ -101,7 +164,7 @@
 			    will extract plugin/somefile to the AsNeeded/
 			    directory
 	17 : Jun 28, 2006 * changes all \s to /s internally for Windows
-	16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
+	16 : Jun 15, 2006 * A. Mechylynck's idea to allow users to specify
 			    installation root paths implemented for
 			    UseVimball, MkVimball, and RmVimball.
 			  * RmVimball implemented
@@ -115,7 +178,7 @@
 	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
 			    functions.  Included some more settings in them
 			    which frequently cause trouble.
-	9  : Apr 26, 2006 * various changes to support Windows predilection
+	9  : Apr 26, 2006 * various changes to support Windows' predilection
 			    for backslashes and spaces in file and directory
 			    names.
 	7  : Apr 25, 2006 * bypasses foldenable
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index 944b848..830d5c6 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.1.  Last change: 2007 May 11
+*pi_zip.txt*	For Vim version 7.2a.  Last change: 2008 Jun 12
 
 				+====================+
 				| Zip File Interface |
@@ -6,7 +6,7 @@
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr *zip-copyright*
+Copyright: Copyright (C) 2005-2008 Charles E Campbell, Jr *zip-copyright*
            Permission is hereby granted to use and distribute this code,
 	   with or without modifications, provided that this copyright
 	   notice is copied with it. Like anything else that's free,
@@ -33,7 +33,13 @@
    zip archives via the plugin.
 
    OPTIONS
-							*zip_shq*
+
+   							*g:zip_nomax*
+
+   If this variable exists and is true, the file window will not be
+   automatically maximized when opened.
+
+							*g:zip_shq*
    Different operating systems may use one or more shells to execute
    commands.  Zip will try to guess the correct quoting mechanism to
    allow spaces and whatnot in filenames; however, if it is incorrectly
@@ -45,12 +51,12 @@
 
    							*g:zip_unzipcmd*
    Use this option to specify the program which does the duty of "unzip".
-   Its used during browsing. By default: >
+   It's used during browsing. By default: >
    	let g:zip_unzipcmd= "unzip"
 <
 							*g:zip_zipcmd*
    Use this option to specify the program which does the duty of "zip".
-   Its used during the writing (updating) of a file already in a zip
+   It's used during the writing (updating) of a file already in a zip
    file; by default: >
    	let g:zip_zipcmd= "zip"
 <
@@ -64,11 +70,13 @@
 
 	au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>"))
 <
-   One can simply extend this line to accommodate additional extensions that
-   are actually zip files.
+   One simply can extend this line to accomodate additional extensions that
+   should be treated as zip files.
 
 ==============================================================================
 4. History					*zip-history* {{{1
+   v17 May 09, 2008 * arno caught a security bug
+   v15 Sep 07, 2007 * &shq now used if not the empty string for g:zip_shq
    v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem
                       when editing alternate file to bring up a zipfile
    v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 0f05d8b..fc49cfa 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.1.  Last change: 2007 May 11
+*quickref.txt*  For Vim version 7.2a.  Last change: 2008 Jan 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -458,18 +458,29 @@
 ------------------------------------------------------------------------------
 *Q_to*		Text objects (only in Visual mode or after an operator)
 
-|v_aw|	N  aw		Select "a word"
-|v_iw|	N  iw		Select "inner word"
-|v_aW|	N  aW		Select "a |WORD|"
-|v_iW|	N  iW		Select "inner |WORD|"
-|v_as|	N  as		Select "a sentence"
-|v_is|	N  is		Select "inner sentence"
-|v_ap|	N  ap		Select "a paragraph"
-|v_ip|	N  ip		Select "inner paragraph"
-|v_ab|	N  ab		Select "a block" (from "[(" to "])")
-|v_ib|	N  ib		Select "inner block" (from "[(" to "])")
-|v_aB|	N  aB		Select "a Block" (from "[{" to "]}")
-|v_iB|	N  iB		Select "inner Block" (from "[{" to "]}")
+|v_aw|	   N  aw	Select "a word"
+|v_iw|	   N  iw	Select "inner word"
+|v_aW|	   N  aW	Select "a |WORD|"
+|v_iW|	   N  iW	Select "inner |WORD|"
+|v_as|	   N  as	Select "a sentence"
+|v_is|	   N  is	Select "inner sentence"
+|v_ap|	   N  ap	Select "a paragraph"
+|v_ip|	   N  ip	Select "inner paragraph"
+|v_ab|	   N  ab	Select "a block" (from "[(" to "])")
+|v_ib|	   N  ib	Select "inner block" (from "[(" to "])")
+|v_aB|	   N  aB	Select "a Block" (from "[{" to "]}")
+|v_iB|	   N  iB	Select "inner Block" (from "[{" to "]}")
+|v_a>|	   N  a>	Select "a <> block"
+|v_i>|	   N  i>	Select "inner <> block"
+|v_at|	   N  at	Select "a tag block" (from <aaa> to </aaa>)
+|v_it|	   N  it	Select "inner tag block" (from <aaa> to </aaa>)
+|v_a'|	   N  a'	Select "a single quoted string"
+|v_i'|	   N  i'	Select "inner single quoted string"
+|v_aquote| N  a"	Select "a double quoted string"
+|v_iquote| N  i"	Select "inner double quoted string"
+|v_a`|	   N  a`	Select "a backward quoted string"
+|v_i`|	   N  i`	Select "inner backward quoted string"
+
 ------------------------------------------------------------------------------
 *Q_re*		Repeating commands
 
@@ -806,6 +817,7 @@
 'pumheight'	  'ph'	    maximum height of the popup menu
 'quoteescape'	  'qe'	    escape characters used in a string
 'readonly'	  'ro'	    disallow writing the buffer
+'redrawtime'	  'rdt'     timeout for 'hlsearch' and |:match| highlighting
 'remap'			    allow mappings to work recursively
 'report'		    threshold for reporting nr. of lines changed
 'restorescreen'   'rs'	    Win32: restore screen when exiting
@@ -857,7 +869,7 @@
 'spellsuggest'	  'sps'     method(s) used to suggest spelling corrections
 'splitbelow'	  'sb'	    new window from split is below the current one
 'splitright'	  'spr'     new window is put right of the current one
-'startofline'	  'sol'     commands move cursor to first blank in line
+'startofline'	  'sol'     commands move cursor to first non-blank in line
 'statusline'	  'stl'     custom format for the status line
 'suffixes'	  'su'	    suffixes that are ignored with multiple match
 'suffixesadd'	  'sua'     suffixes added when searching for a file
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index fe99640..ac25f49 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.1.  Last change: 2007 Jan 05
+*sponsor.txt*   For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -51,7 +51,7 @@
 4.  The voting results appear on the results page, which is visible for
     everybody:  http://www.vim.org/sponsor/vote_results.php
 
-Additionally, once you have send 100 euro or more in total, your name appears
+Additionally, once you have sent 100 euro or more in total, your name appears
 in the "Vim hall of honour":   http://www.vim.org/sponsor/hall_of_honour.php
 But only if you enable this on your account page.
 
@@ -74,7 +74,7 @@
 		amount you transferred if you want to vote for features and
 		show others you are a registered Vim user or sponsor.
 
-Cash		Small amounts can be send with ordinary mail.  Put something
+Cash		Small amounts can be sent with ordinary mail.  Put something
 		around the money, so that it's not noticeable from the
 		outside.  Mention your e-mail address if you want to vote for
 		features and show others you are a registered Vim user or
@@ -82,9 +82,9 @@
 
 You can use this permanent address:
 			Bram Moolenaar
-			Molenstraat 2
-			2161 HP Lisse
-			The Netherlands
+			Finsterruetihof 1
+			8134 Adliswil
+			Switzerland
 
 
 
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 28a28dd..4842769 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 7.1.  Last change: 2007 May 05
+*uganda.txt*    For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -128,7 +128,7 @@
   MODIFIED_BY define.
 
 ==============================================================================
-Kibaale Children's Centre						*kcc*
+Kibaale Children's Centre		*kcc* *Kibaale*  *charity*
 
 Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
 south of Uganda, near Tanzania, in East Africa.  The area is known as Rakai
@@ -177,9 +177,9 @@
 Summer 1994 to summer 1995 I spent a whole year at the centre, working as a
 volunteer.  I have helped to expand the centre and worked in the area of water
 and sanitation.  I learned that the help that the KCC provides really helps.
-Now that I'm back in Holland, I would like to continue supporting KCC.  To do
-this I'm raising funds and organizing the sponsorship program.  Please
-consider one of these possibilities:
+When I came back to Holland, I wanted to continue supporting KCC.  To do this
+I'm raising funds and organizing the sponsorship program.  Please consider one
+of these possibilities:
 
 1.  Sponsor a child in primary school: 17 euro a month (or more).
 2.  Sponsor a child in secondary school: 25 euro a month (or more).
@@ -217,7 +217,7 @@
 		is no longer possible, unfortunately. We are looking for
 		another way to get you an IRS tax receipt. 
 		For sponsoring a child contact KCF in Canada (see below). US
-		checks can be send to them to lower banking costs.
+		checks can be sent to them to lower banking costs.
 
 Canada:		Contact Kibaale Children's Fund (KCF) in Surrey, Canada.  They
 		take care of the Canadian sponsors for the children in
@@ -278,11 +278,10 @@
 Address to send checks to:
 			stichting ICCF Holland
 			Bram Moolenaar
-			Molenstraat 2
-			2161 HP Lisse
-			The Netherlands
+			Finsterruetihof 1
+			8134 Adliswil
+			Switzerland
 
-This address is expected to be valid for a long time.  The address in Venlo
-will not be valid after June 2006.
+This address is expected to be valid for a long time.
 
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index a00c26f..44907b0 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt*	For Vim version 7.1.  Last change: 2007 Feb 28
+*usr_02.txt*	For Vim version 7.2a.  Last change: 2007 Feb 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index 6b376cd..144f6cc 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt*	For Vim version 7.1.  Last change: 2006 Jul 18
+*usr_08.txt*	For Vim version 7.2a.  Last change: 2006 Jul 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index 08eaf2e..69a431c 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -1,4 +1,4 @@
-*usr_09.txt*	For Vim version 7.1.  Last change: 2006 Apr 24
+*usr_09.txt*	For Vim version 7.2a.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 64cf78d..38e511f 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.1.  Last change: 2007 Apr 26
+*usr_41.txt*	For Vim version 7.2a.  Last change: 2008 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -579,9 +579,12 @@
 String manipulation:
 	nr2char()		get a character by its ASCII value
 	char2nr()		get ASCII value of a character
-	str2nr()		convert a string to a number
+	str2nr()		convert a string to a Number
+	str2float()		convert a string to a Float
 	printf()		format a string according to % items
 	escape()		escape characters in a string with a '\'
+	shellescape()		escape a string for use with a shell command
+	fnameescape()		escape a file name for use with a Vim command
 	tr()			translate characters from one set to another
 	strtrans()		translate a string to make it printable
 	tolower()		turn a string to lowercase
@@ -646,6 +649,20 @@
 	min()			minimum value in a Dictionary
 	count()			count number of times a value appears
 
+Floating point computation:
+	float2nr()		convert Float to Number
+	abs()			absolute value (also works for Number)
+	round()			round off
+	ceil()			round up
+	floor()			round down
+	trunc()			remove value after decimal point
+	log10()			logarithm to base 10
+	pow()			value of x to the exponent y
+	sqrt()			square root
+	sin()			sine
+	cos()			cosine
+	atan()			arc tangent
+
 Variables:
 	type()			type of a variable
 	islocked()		check if a variable is locked
@@ -797,6 +814,7 @@
 	confirm()		let the user make a choice
 	getchar()		get a character from the user
 	getcharmod()		get modifiers for the last typed character
+	feedkeys()		put characters in the typeahead queue
 	input()			get a line from the user
 	inputlist()		let the user pick an entry from a list
 	inputsecret()		get a line from the user without showing it
@@ -838,6 +856,7 @@
 	cscope_connection()	check if a cscope connection exists
 	did_filetype()		check if a FileType autocommand was used
 	eventhandler()		check if invoked by an event handler
+	getpid()		get process ID of Vim
 
 	libcall()		call a function in an external library
 	libcallnr()		idem, returning a number
@@ -887,8 +906,8 @@
 
 	Note:
 	To access a global variable from inside a function you must prepend
-	"g:" to it.  Thus "g:count" inside a function is used for the global
-	variable "count", and "count" is another variable, local to the
+	"g:" to it.  Thus "g:today" inside a function is used for the global
+	variable "today", and "today" is another variable, local to the
 	function.
 
 You now use the ":return" statement to return the smallest number to the user.
@@ -947,13 +966,13 @@
 Example: >
 
 	:function Count_words() range
-	:  let n = a:firstline
-	:  let count = 0
-	:  while n <= a:lastline
-	:    let count = count + Wordcount(getline(n))
-	:    let n = n + 1
+	:  let lnum = a:firstline
+	:  let n = 0
+	:  while lnum <= a:lastline
+	:    let n = n + len(split(getline(lnum)))
+	:    let lnum = lnum + 1
 	:  endwhile
-	:  echo "found " . count . " words"
+	:  echo "found " . n . " words"
 	:endfunction
 
 You can call this function with: >
@@ -1205,7 +1224,7 @@
 	one ~
 	two ~
 
-The will notice the keys are not ordered.  You can sort the list to get a
+You will notice the keys are not ordered.  You can sort the list to get a
 specific order: >
 
 	:for key in sort(keys(uk2nl))
@@ -2238,7 +2257,7 @@
 *41.14*	Writing a plugin that loads quickly	*write-plugin-quickload*
 
 A plugin may grow and become quite long.  The startup delay may become
-noticeable, while you hardly every use the plugin.  Then it's time for a
+noticeable, while you hardly ever use the plugin.  Then it's time for a
 quickload plugin.
 
 The basic idea is that the plugin is loaded twice.  The first time user
diff --git a/runtime/doc/usr_42.txt b/runtime/doc/usr_42.txt
index c952041..a40bf3b 100644
--- a/runtime/doc/usr_42.txt
+++ b/runtime/doc/usr_42.txt
@@ -1,4 +1,4 @@
-*usr_42.txt*	For Vim version 7.1.  Last change: 2006 Apr 24
+*usr_42.txt*	For Vim version 7.2a.  Last change: 2008 May 05
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -255,14 +255,14 @@
 *42.3*	Various
 
 You can change the appearance of the menus with flags in 'guioptions'.  In the
-default value they are all included.  You can remove a flag with a command
-like: >
+default value they are all included, except "M".  You can remove a flag with a
+command like: >
 
 	:set guioptions-=m
 <
 	m		When removed the menubar is not displayed.
 
-	M		When removed the default menus are not loaded.
+	M		When added the default menus are not loaded.
 
 	g		When removed the inactive menu items are not made grey
 			but are completely removed.  (Does not work on all
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index 3906387..b9f29e3 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.1.  Last change: 2006 Apr 24
+*usr_44.txt*	For Vim version 7.2a.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_90.txt b/runtime/doc/usr_90.txt
index a3578a8..f80c0af 100644
--- a/runtime/doc/usr_90.txt
+++ b/runtime/doc/usr_90.txt
@@ -1,4 +1,4 @@
-*usr_90.txt*	For Vim version 7.1.  Last change: 2006 Apr 24
+*usr_90.txt*	For Vim version 7.2a.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
