diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 379d5e1..7ed2499 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 21
+*change.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -527,7 +527,7 @@
 
 4.2 Substitute						*:substitute*
 							*:s* *:su*
-:[range]s[ubstitute]/{pattern}/{string}/[&][#][c][e][g][p][r][i][I] [count]
+:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
 			For each line in [range] replace a match of {pattern}
 			with {string}.
 			For the {pattern} see |pattern|.
@@ -539,31 +539,31 @@
 			starting with the last line in [range].  When [range]
 			is omitted start in the current line.
 			Also see |cmdline-ranges|.
-			See |:s_flags| for the flags.
+			See |:s_flags| for [flags].
 
-:[range]s[ubstitute] [#][c][e][g][p][r][i][I] [count]
-:[range]&[&][#][c][e][g][p][r][i][I] [count]			*:&*
+:[range]s[ubstitute] [flags] [count]
+:[range]&[&][flags] [count]					*:&*
 			Repeat last :substitute with same search pattern and
 			substitute string, but without the same flags.  You
-			may add extra flags (see |:s_flags|).
+			may add [flags], see |:s_flags|.
 			Note that after ":substitute" the '&' flag can't be
 			used, it's recognized as a pattern separator.
 			The space between ":substitute" and the 'c', 'g' and
 			'r' flags isn't required, but in scripts it's a good
 			idea to keep it to avoid confusion.
 
-:[range]~[&][#][c][e][g][p][r][i][I] [count]			*:~*
+:[range]~[&][flags] [count]					*:~*
 			Repeat last substitute with same substitute string
 			but with last used search pattern.  This is like
-			":&r".  See |:s_flags| for the flags.
+			":&r".  See |:s_flags| for [flags].
 
-						*&*
+								*&*
 &			Synonym for ":s//~/" (repeat last substitute).  Note
 			that the flags are not remembered, thus it might
 			actually work differently.  You can use ":&&" to keep
 			the flags.
 
-						*g&*
+								*g&*
 g&			Synonym for ":%s//~/&" (repeat last substitute on all
 			lines with the same flags).
 			Mnemonic: global substitute. {not in Vi}
@@ -629,6 +629,10 @@
 	options are not used.
 	{not in Vi}
 
+[n]	Report the number of matches, do not actually substitute.  The [c]
+	flag is ignored.  The matches are reported as if 'report' is zero.
+	Useful to |count-items|.
+
 [p]	Print the line containing the last substitute.
 
 [#]	Like [p] and prepend the line number.
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index b9536e6..5bea42a 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 7.0aa.  Last change: 2005 Jan 29
+*debugger.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 23
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -90,8 +90,8 @@
 However, the feature was implemented in as general a manner as possible and
 could be used for displaying other information as well.
 
-The Balloon Evaluation has some settable parameters too.  The font list and
-colors can be set via X resources (XmNballoonEvalFontList,
+The Balloon Evaluation has some settable parameters too.  For Motif the font
+list and colors can be set via X resources (XmNballoonEvalFontList,
 XmNballoonEvalBackground, and XmNballoonEvalForeground).
 The 'balloondelay' option sets the delay before an attempt is made to show a
 balloon.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 028aa08..1838a82 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Feb 21
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Feb 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -961,7 +961,7 @@
 See below |internal-variables|.
 
 
-function call		*expr-function* *E116* *E117* *E118* *E119* *E120*
+function call		*expr-function* *E116* *E118* *E119* *E120*
 -------------
 function(expr1, ...)	function call
 See below |functions|.
@@ -1270,6 +1270,10 @@
 			:vmap % <Esc>:call MyFilter(v:prevcount)<CR>
 <		Read-only.
 
+					*v:profiling* *profiling-variable*
+v:profiling	Normally zero.  Set to one after using ":profile start".
+		See |profiling|.
+
 					*v:progname* *progname-variable*
 v:progname	Contains the name (with path removed) with which Vim was
 		invoked.  Allows you to do special initialisations for "view",
@@ -1396,6 +1400,7 @@
 diff_filler( {lnum})		Number	diff filler lines about {lnum}
 diff_hlID( {lnum}, {col})	Number	diff highlighting at {lnum}/{col}
 empty( {expr})			Number	TRUE if {expr} is empty
+errorlist()			List	list of quickfix items
 escape( {string}, {chars})	String	escape {chars} in {string} with '\'
 eval( {string})			any	evaluate {string} into its value 
 eventhandler( )			Number	TRUE if inside an event handler
@@ -1965,6 +1970,28 @@
 		For a long List this is much faster then comparing the length
 		with zero.
 
+errorlist()						*errorlist()*
+		Returns a list with all the current quickfix errors.  Each
+		list item is a dictionary with these entries:
+			bufnr	number of buffer that has the file name, use
+				bufname() to get the name
+			lnum	line number in the buffer (first line is 1)
+			col	column number (first column is 1)
+			vcol	non-zero: column number is visual column
+				zero: column number is byte index
+			nr	error number
+			text	description of the error
+			type	type of the error, 'E', '1', etc.
+			valid	non-zero: recognized error message
+
+		Useful application: Find pattern matches in multiple files and
+		do something with them: >
+			:vimgrep /theword/jg *.c
+			:for d in errorlist()
+			:   echo bufname(d.bufnr) ':' d.lnum '=' d.text
+			:endfor
+
+
 escape({string}, {chars})				*escape()*
 		Escape the characters in {chars} that occur in {string} with a
 		backslash.  Example: >
@@ -3031,7 +3058,14 @@
 			:echo match("testing", "ing")	" results in 4
 			:echo match([1, 'x'], '\a')	" results in 2
 <		See |string-match| for how {pat} is used.
-
+								*strpbrk()*
+		Vim doesn't have a strpbrk() function.  But you can do: >
+			:let sepidx = match(line, '[.,;: \t]')
+<								*strcasestr()*
+		Vim doesn't have a strcasestr() function.  But you can add
+		"\c" to the pattern to ignore case: >
+			:let idx = match(haystack, '\cneedle')
+<
 		When {count} is given use the {count}'th match.  When a match
 		is found in a String the search for the next one starts on
 		character further.  Thus this example results in 1: >
@@ -3063,6 +3097,13 @@
 		the match.  Example: >
 			:echo matchend("testing", "ing")
 <		results in "7".
+							*strspn()* *strcspn()*
+		Vim doesn't have a strspn() or strcspn() function, but you can
+		do it with matchend(): >
+			:let span = matchend(line, '[a-zA-Z]')
+			:let span = matchend(line, '[^a-zA-Z]')
+<		Except that -1 is returned when there are no matches.
+
 		The {start}, if given, has the same meaning as for match(). >
 			:echo matchend("testing", "ing", 2)
 <		results in "7". >
@@ -3620,7 +3661,10 @@
 		  :echo stridx("An Example", "Example")	     3
 		  :echo stridx("Starting point", "Start")    0
 		  :echo stridx("Starting point", "start")   -1
-<
+<	  					*strstr()* *strchr()*
+		stridx() works similar to the C function strstr().  When used
+		with a single character it works similar to strchr().
+
 							*string()*
 string({expr})	Return {expr} converted to a String.  If {expr} is a Number,
 		String or a composition of them, then the result can be parsed
@@ -3673,7 +3717,10 @@
 		If the {needle} is empty the length of {haystack} is returned.
 		See also |stridx()|. Examples: >
 		  :echo strridx("an angry armadillo", "an")	     3
-<
+<		  					*strrchr()*
+		When used with a single character it works similar to the C
+		function strrchr().
+
 strtrans({expr})					*strtrans()*
 		The result is a String, which is {expr} with all unprintable
 		characters translated into printable characters |'isprint'|.
@@ -3769,7 +3816,7 @@
 		When {input} is given, this string is written to a file and
 		passed as stdin to the command.  The string is written as-is,
 		you need to take care of using the correct line separators
-		yourself.
+		yourself.  Pipes are not used.
 		Note: newlines in {expr} may cause the command to fail.  The
 		characters in 'shellquote' and 'shellxquote' may also cause
 		trouble.
@@ -4081,6 +4128,7 @@
 perl			Compiled with Perl interface.
 postscript		Compiled with PostScript file printing.
 printer			Compiled with |:hardcopy| support.
+profile			Compiled with |:profile| support.
 python			Compiled with Python interface.
 qnx			QNX version of Vim.
 quickfix		Compiled with |quickfix| support.
@@ -4384,6 +4432,8 @@
 
 Using an autocommand ~
 
+This is introduced in the user manual, section |41.14|.
+
 The autocommand is useful if you have a plugin that is a long Vim script file.
 You can define the autocommand and quickly quit the script with |:finish|.
 That makes Vim startup faster.  The autocommand should then load the same file
@@ -4400,6 +4450,8 @@
 
 Using an autoload script ~
 							*autoload* *E746*
+This is introduced in the user manual, section |41.15|.
+
 Using a script in the "autoload" directory is simpler, but requires using
 exactly the right file name.  A function that can be autoloaded has a name
 like this: >
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 5fc7b06..bd4bb41 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.0aa.  Last change: 2004 Sep 02
+*indent.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -485,6 +485,20 @@
 other extensions such as .for.
 
 
+PYTHON							*python-indent*
+
+The amount of indent can be set for the following situations.  The examples
+given are de the defaults.  Note that the variables are set to an expression,
+so that you can change the value of 'shiftwidth' later.
+
+Indent after an open paren: >
+	let g:pyindent_open_paren = '&sw * 2'
+Indent after a nested paren: >
+	let g:pyindent_nested_paren = '&sw'
+Indent for a continuation line: >
+	let g:pyindent_continue = '&sw * 2'
+
+
 VERILOG							*verilog-indent*
 
 General block statements such as if, for, case, always, initial, function,
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 5484ebc..7735e37 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.0aa.  Last change: 2005 Jan 31
+*index.txt*     For Vim version 7.0aa.  Last change: 2005 Feb 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1258,10 +1258,13 @@
 |:options|	:opt[ions]	open the options-window
 |:ounmap|	:ou[nmap]	like ":unmap" but for Operator-pending mode
 |:ounmenu|	:ounme[nu]	remove menu for Operator-pending mode
-|:print|	:p[rint]	print lines
 |:pclose|	:pc[lose]	close preview window
 |:pedit|	:ped[it]	edit file in the preview window
 |:perl|		:pe[rl]		execute Perl command
+|:print|	:p[rint]	print lines
+|:profile|	:prof[ile]	profiling functions and scripts
+|:promptfind|	:pro[mtfind]	open GUI dialog for searching
+|:promptrepl| 	:promtr[epl]	open GUI dialog for search/replace
 |:perldo|	:perld[o]	execute Perl command for each line
 |:pop|		:po[p]		jump to older entry in tag stack
 |:popup|	:pop[up]	popup a menu by name
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e8b4a9d..4bf27f6 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 21
+*options.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2986,7 +2986,8 @@
 	font names a list can be specified, font names separated with commas.
 	The first valid font is used.
 
-	When 'guifontset' is not empty, 'guifont' is not used.
+	On systems where 'guifontset' is supported (X11) and 'guifontset' is
+	not empty, then 'guifont' is not used.
 
 	Spaces after a comma are ignored.  To include a comma in a font name
 	precede it with a backslash.  Setting an option requires an extra
@@ -3003,7 +3004,7 @@
 	the case of X).  The font names given should be "normal" fonts.  Vim
 	will try to find the related bold and italic fonts.
 
-	For Win32, GTK and Photon only: >
+	For Win32, GTK, Mac OS and Photon: >
 	    :set guifont=*
 <	will bring up a font requester, where you can pick the font you want.
 
@@ -3013,7 +3014,10 @@
 	For the GTK+ 2 GUI the font name looks like this: >
 	    :set guifont=Andale\ Mono\ 11
 <	That's all.  XLFDs are no longer accepted.
-								*E236*
+
+	For Mac OSX you can use something like this: >
+	    :set guifont=Monaco:h10
+<								*E236*
 	Note that the fonts must be mono-spaced (all characters have the same
 	width).  An exception is GTK 2: all fonts are accepted, but
 	mono-spaced fonts look best.
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index ee61f6a..f9a56af 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 06
+*quickfix.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -30,6 +30,11 @@
 to jump to the errors one by one.  You can examine each problem and fix it,
 without having to remember all the error messages.
 
+In Vim the quickfix commands are used more generally to find a list of
+positions in files.  For example, |:vimgrep| finds pattern matches.  You can
+use the positions in a script with the |errorlist()| function.  Thus you can
+do a lot more than the edit/compile/fix cycle!
+
 If you are using Manx's Aztec C compiler on the Amiga look here for how to use
 it with Vim: |quickfix-manx|.  If you are using another compiler you should
 save the error messages in a file and start Vim with "vim -q filename".  An
@@ -170,12 +175,14 @@
 
 In the quickfix window, each line is one error.  The line number is equal to
 the error number.  You can use ":.cc" to jump to the error under the cursor.
-Hitting the <CR> key or double-clicking the mouse on a line has the same
+Hitting the <Enter> key or double-clicking the mouse on a line has the same
 effect.  The file containing the error is opened in the window above the
 quickfix window.  If there already is a window for that file, it is used
 instead.  If the buffer in the used window has changed, and the error is in
 another file, jumping to the error will fail.  You will first have to make
 sure the window contains a buffer which can be abandoned.
+					*CTRL-W_<Enter>* *CTRL-W_<CR>*
+You can use CTRL-W <Enter> to open a new window and jump to the error there.
 
 When the quickfix window has been filled, two autocommand events are
 triggered.  First the 'filetype' option is set to "qf", which triggers the
@@ -303,16 +310,25 @@
 5.1 using Vim's internal grep
 
 					*:vim* *:vimgrep* *E682* *E683*
-:vim[grep][!] /{pattern}/ {file} ...
+:vim[grep][!] /{pattern}/[g][j] {file} ...
 			Search for {pattern} in the files {file} ... and set
 			the error list to the matches.
-			{pattern} if a Vim search pattern.  Instead of
-			enclosing it in / any non-ID character |'isident'|
-			can be used, so long as it does not appear in
-			{pattern}.
-			'ignorecase' applies.  To overrule it use |/\c| to
-			ignore case or |/\C| to match case.  'smartcase' is
-			not used.
+			Without the 'g' flag each line is added only once.
+			With 'g' every match is added.
+
+			{pattern} is a Vim search pattern.  Instead of
+			enclosing it in / any non-ID character (see
+			|'isident'|) can be used, so long as it does not
+			appear in {pattern}.
+			'ignorecase' applies.  To overrule it put |/\c| in the
+			pattern to ignore case or |/\C| to match case.
+			'smartcase' is not used.
+
+			Without the 'j' flag Vim jumps to the first match.
+			With 'j' only the quickfix list is updated.
+			With the [!] any changes in the current buffer are
+			abandoned.
+
 			Every second or so the searched file name is displayed
 			to give you an idea of the progress made.
 			Examples: >
@@ -327,7 +343,8 @@
 				:vimgrep Error *.c
 <
 						*:vimgrepa* *:vimgrepadd*
-:vimgrepa[dd][!] [/]{pattern}[/] {file} ...
+:vimgrepa[dd][!] /{pattern}/[g][j] {file} ...
+:vimgrepa[dd][!] {pattern} {file} ...
 			Just like ":vimgrep", but instead of making a new list
 			of errors the matches are appended to the current
 			list.
@@ -462,7 +479,7 @@
 - Execute ":runtime! compiler/{name}.vim".  The plugins are expected to set
   options with "CompilerSet" and set the "current_compiler" variable to the
   name of the compiler.
-- Delete the "CompilerSet user command.
+- Delete the "CompilerSet" user command.
 - Set "b:current_compiler" to the value of "current_compiler".
 - Without "!" the old value of "current_compiler" is restored.
 
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 04fb0ad..b165bf1 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 19
+*repeat.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -13,6 +13,7 @@
 3. Complex repeats	|complex-repeat|
 4. Using Vim scripts	|using-scripts|
 5. Debugging scripts	|debug-scripts|
+6. Profiling		|profiling|
 
 ==============================================================================
 1. Single repeats					*single-repeat*
@@ -483,6 +484,7 @@
 The [lnum] is the line number of the breakpoint.  Vim will stop at or after
 this line.  When omitted line 1 is used.
 
+							*:debug-name*
 {name} is a pattern that is matched with the file or function name.  The
 pattern is like what is used for autocommands.  There must be a full match (as
 if the pattern starts with "^" and ends in "$").  A "*" matches any sequence
@@ -547,4 +549,88 @@
 		Undo ":debuggreedy": get debug mode commands directly from the
 		user, don't use typeahead for debug commands.
 
+==============================================================================
+6. Profiling						*profile* *profiling*
+
+Profiling means that Vim measures the time that is spend on executing
+functions and/or scripts.  The |+profile| feature is required for this.
+It is only included when Vim was compiled with "huge" features.
+{Vi does not have profiling}
+
+:prof[ile] start {fname}			*:prof* *:profile* *E750*
+		Start profiling, write the output in {fname} upon exit.
+		If {fname} already exists it will be overwritten.
+		The variable |v:profiling| is set to one.
+
+:prof[ile] func {pattern}
+		Profile function that matches the pattern {pattern}.
+		See |:debug-name| for how {pattern} is used.
+
+:prof[ile][!] file {pattern}
+		Profile script file that matches the pattern {pattern}.
+		See |:debug-name| for how {pattern} is used.
+		This only profiles the script itself, not the functions
+		defined in it.
+		When the [!] is added then all functions defined in the script
+		will also be profiled.
+
+
+You must always start with a ":profile start fname" command.  The resulting
+file is written when Vim exits.  Here is an example of the output, with line
+numbers prepended for the explanation:
+
+  1 FUNCTION  Test2() ~
+  2 Called 1 time ~
+  3 Total time:   0.155251 ~
+  4  Self time:   0.002006 ~
+  5  ~
+  6 count  total (s)   self (s) ~
+  7     9              0.000096   for i in range(8) ~
+  8     8   0.153655   0.000410     call Test3() ~
+  9     8              0.000070   endfor ~
+ 10                               " Ask a question ~
+ 11     1              0.001341   echo input("give me an answer: ") ~
+
+The header (lines 1-4) gives the time for the whole function.  The "Total"
+time is the time passed while the function was executing.  The "Self" time is
+the "Total" time reduced by time spent in:
+- other user defined functions
+- sourced scripts
+- executed autocommands
+- external (shell) commands
+
+Lines 7-11 show the time spent in each executed line.  Lines that are not
+executed do not count.  Thus a comment line is never counted.
+
+The Count column shows how many times a line was executed.  Note that the
+"for" command in line 7 is executed one more time as the following lines.
+That is because the line is also executed to detect the end of the loop.
+
+The time Vim spends waiting for user input isn't counted at all.  Thus how
+long you take to respond to the input() prompt is irrelevant.
+
+Profiling should give a good indication of where time is spent, but keep in
+mind there are various things that may clobber the results:
+
+- The accuracy of the time measured depends on the gettimeofday() system
+  function.  It may only be as accurate as 1/100 second, even though the times
+  are displayed in micro seconds.
+
+- Real elapsed time is measured, if other processes are busy they may cause
+  delays at unpredictable moments.  You may want to run the profiling several
+  times and use the lowest results.
+
+- If you have several commands in one line you only get one time.  Split the
+  line to see the time for the individual commands.
+
+- The time of the lines added up is mostly less than the time of the whole
+  function.  There is some overhead in between.
+
+- Functions that are deleted before Vim exits will not produce profiling
+  information.  You can check the |v:profiling| variable if needed: >
+  	:if !v:profiling
+	:   delfunc MyFunc
+	:endif
+<
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index dedbc71..4f73e69 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1539,6 +1539,8 @@
 41.11	usr_41.txt	/*41.11*
 41.12	usr_41.txt	/*41.12*
 41.13	usr_41.txt	/*41.13*
+41.14	usr_41.txt	/*41.14*
+41.15	usr_41.txt	/*41.15*
 41.2	usr_41.txt	/*41.2*
 41.3	usr_41.txt	/*41.3*
 41.4	usr_41.txt	/*41.4*
@@ -1824,6 +1826,7 @@
 :d	change.txt	/*:d*
 :de	change.txt	/*:de*
 :debug	repeat.txt	/*:debug*
+:debug-name	repeat.txt	/*:debug-name*
 :debugg	repeat.txt	/*:debugg*
 :debuggreedy	repeat.txt	/*:debuggreedy*
 :del	change.txt	/*:del*
@@ -2207,6 +2210,8 @@
 :previous	editing.txt	/*:previous*
 :print	various.txt	/*:print*
 :pro	change.txt	/*:pro*
+:prof	repeat.txt	/*:prof*
+:profile	repeat.txt	/*:profile*
 :promptfind	change.txt	/*:promptfind*
 :promptr	change.txt	/*:promptr*
 :promptrepl	change.txt	/*:promptrepl*
@@ -2860,7 +2865,9 @@
 CTRL-W_-	windows.txt	/*CTRL-W_-*
 CTRL-W_<	windows.txt	/*CTRL-W_<*
 CTRL-W_<BS>	windows.txt	/*CTRL-W_<BS>*
+CTRL-W_<CR>	quickfix.txt	/*CTRL-W_<CR>*
 CTRL-W_<Down>	windows.txt	/*CTRL-W_<Down>*
+CTRL-W_<Enter>	quickfix.txt	/*CTRL-W_<Enter>*
 CTRL-W_<Left>	windows.txt	/*CTRL-W_<Left>*
 CTRL-W_<Right>	windows.txt	/*CTRL-W_<Right>*
 CTRL-W_<Up>	windows.txt	/*CTRL-W_<Up>*
@@ -2977,7 +2984,6 @@
 E114	eval.txt	/*E114*
 E115	eval.txt	/*E115*
 E116	eval.txt	/*E116*
-E117	eval.txt	/*E117*
 E118	eval.txt	/*E118*
 E119	eval.txt	/*E119*
 E12	message.txt	/*E12*
@@ -3667,6 +3673,7 @@
 E748	repeat.txt	/*E748*
 E749	eval.txt	/*E749*
 E75	vi_diff.txt	/*E75*
+E750	repeat.txt	/*E750*
 E76	pattern.txt	/*E76*
 E77	message.txt	/*E77*
 E78	motion.txt	/*E78*
@@ -4596,6 +4603,7 @@
 docbkxml.vim	syntax.txt	/*docbkxml.vim*
 docbook	syntax.txt	/*docbook*
 documentation-6	version6.txt	/*documentation-6*
+donate	uganda.txt	/*donate*
 dos	os_dos.txt	/*dos*
 dos-:cd	os_dos.txt	/*dos-:cd*
 dos-CTRL-Break	os_dos.txt	/*dos-CTRL-Break*
@@ -4659,6 +4667,7 @@
 errorformat-multi-line	quickfix.txt	/*errorformat-multi-line*
 errorformat-separate-filename	quickfix.txt	/*errorformat-separate-filename*
 errorformats	quickfix.txt	/*errorformats*
+errorlist()	eval.txt	/*errorlist()*
 escape	intro.txt	/*escape*
 escape()	eval.txt	/*escape()*
 escape-bar	version4.txt	/*escape-bar*
@@ -5890,6 +5899,8 @@
 printcap-syntax	syntax.txt	/*printcap-syntax*
 printing	print.txt	/*printing*
 printing-formfeed	print.txt	/*printing-formfeed*
+profile	repeat.txt	/*profile*
+profiling	repeat.txt	/*profiling*
 progname-variable	eval.txt	/*progname-variable*
 progress-syntax	syntax.txt	/*progress-syntax*
 progress.vim	syntax.txt	/*progress.vim*
@@ -5907,6 +5918,7 @@
 python-error	if_pyth.txt	/*python-error*
 python-eval	if_pyth.txt	/*python-eval*
 python-examples	if_pyth.txt	/*python-examples*
+python-indent	indent.txt	/*python-indent*
 python-input	if_pyth.txt	/*python-input*
 python-output	if_pyth.txt	/*python-output*
 python-range	if_pyth.txt	/*python-range*
@@ -6200,13 +6212,20 @@
 static-tag	tagsrch.txt	/*static-tag*
 status-line	windows.txt	/*status-line*
 statusmsg-variable	eval.txt	/*statusmsg-variable*
+strcasestr()	eval.txt	/*strcasestr()*
+strchr()	eval.txt	/*strchr()*
+strcspn()	eval.txt	/*strcspn()*
 strftime()	eval.txt	/*strftime()*
 stridx()	eval.txt	/*stridx()*
 string()	eval.txt	/*string()*
 string-match	eval.txt	/*string-match*
 strlen()	eval.txt	/*strlen()*
 strpart()	eval.txt	/*strpart()*
+strpbrk()	eval.txt	/*strpbrk()*
+strrchr()	eval.txt	/*strrchr()*
 strridx()	eval.txt	/*strridx()*
+strspn()	eval.txt	/*strspn()*
+strstr()	eval.txt	/*strstr()*
 strtrans()	eval.txt	/*strtrans()*
 style-changes	develop.txt	/*style-changes*
 style-examples	develop.txt	/*style-examples*
@@ -6902,8 +6921,10 @@
 write-device	editing.txt	/*write-device*
 write-fail	editing.txt	/*write-fail*
 write-filetype-plugin	usr_41.txt	/*write-filetype-plugin*
+write-library-script	usr_41.txt	/*write-library-script*
 write-local-help	usr_41.txt	/*write-local-help*
 write-plugin	usr_41.txt	/*write-plugin*
+write-plugin-quickload	usr_41.txt	/*write-plugin-quickload*
 write-quit	editing.txt	/*write-quit*
 write-readonly	editing.txt	/*write-readonly*
 writefile()	eval.txt	/*writefile()*
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 7074779..917ab9c 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt*      For Vim version 7.0aa.  Last change: 2004 Feb 17
+*tips.txt*      For Vim version 7.0aa.  Last change: 2005 Feb 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -201,21 +201,22 @@
 ==============================================================================
 Counting words, lines, etc.				*count-items*
 
-To count how often any pattern occurs in a buffer, set 'report' to 0, and use
-the substitute command to replace the pattern with itself.  The reported
-number of substitutions is the number of items.  Examples: >
+To count how often any pattern occurs in the current buffer use the substitute
+command and add the 'n' flag to avoid the substitution.  The reported number
+of substitutions is the number of items.  Examples: >
 
-	:set report=0
-	:%s/./&/g		characters
-	:%s/\i\+/&/g		words
-	:%s/^			lines
-	:%s/the/&/g		"the" anywhere
-	:%s/\<the\>/&/g		"the" as a word
+	:%s/./&/gn		characters
+	:%s/\i\+/&/gn		words
+	:%s/^//n		lines
+	:%s/the/&/gn		"the" anywhere
+	:%s/\<the\>/&/gn	"the" as a word
 
 You might want to reset 'hlsearch' or do ":nohlsearch".
+Add the 'e' flag if you don't want an error when there are no matches.
 
-This does not work if the 'modifiable' option is off.  An alternative is using
-|v_g_CTRL-G| in Visual mode.
+An alternative is using |v_g_CTRL-G| in Visual mode.
+
+If you want to find matches in multiple files use |:vimgrep|.
 
 							*count-bytes*
 If you want to count bytes, you can use this:
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0231942..db411d6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Feb 21
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Feb 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,14 +30,21 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Test11 sometimes fails.  Must be a problem with fork() and pipes.
+
+'sw' is sometimes 8 when using :vimgrep.
+
+Mingw can use setjmp()?  Move code from os_unix.c to common file, adjust
+#ifdefs.  Try with example from Michaelis.
+
+Russian helpfile doesn't show up correctly when 'encoding' is koi8-r.
+(Vassily Ragosin 2005 Feb 16)
+
 Mac unicode patch (Da Woon Jung):
-- default font is ugly
 - typing doesn't work
 - selecting proportional font breaks display
 
 autoload:
-- Add docs in user manual: one for using one script and FuncUndefined and one
-  for using autoload with two scripts.
 - Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of
   script names and a help file and produces a script that can be sourced to
   install the scripts in the user's directories.
@@ -48,20 +55,13 @@
     helpfile doc/myscript.txt
   For the "helpfile" item ":helptags" is run.
 
+Patch for 'balloonexpr' option.  Sergey Khorev, Feb 26.
+
 Awaiting response:
 -   Patch for mch_FullName() also in Vim 6.3?  os_mswin.c
 -   Win32: tearoff menu window should have a scrollbar when it's taller than
     the screen.
 
-Improvements for Python indent script: Peter Wilson.
-
-Win32: when 'encoding' is "utf-8" getenv() should convert from the active
-codepage to utf-8, putenv() the other way around.  Or use _wgetenv() (but that
-duplicates the environment).
-
-Russian helpfile doesn't show up correctly when 'encoding' is koi8-r.
-(Vassily Ragosin 2005 Feb 16)
-
 
 PLANNED FOR VERSION 7.0:
 
@@ -309,9 +309,6 @@
 				layout and 'c' for console dialog. (Haegg)
 				Flemming Madsen has a patch for the 'c' flag
 				(2003 May 13)
-	system({cmd}, {expr})	Filter {expr} through the shell command
-				{cmd} and return the result.
-				(Patch from Yegappan Lakshmanan)
 	raisewin()		raise gvim window (see HierAssist patch for
 				Tcl implementation ~/vim/HierAssist/ )
     7   Add patch from Benoit Cerrina to integrate Vim and Perl functions
@@ -1594,11 +1591,12 @@
 	mapname({idx}, mode)	return the name of the idx'th mapping.
 				Patch by Ilya Sher, 2004 Mar 4.
 				Return a list instead.
-	sprintf(format, arg, ..) How to prevent a crash???
+	printf(format, arg, ..) How to prevent a crash???
+	char2hex()		convert char string to hex string.
 	attributes()		return file protection flags "drwxrwxrwx"
-	copy(from, to)		Copy a file
-	perl(cmd)		call Perl and return string
+	filecopy(from, to)	Copy a file
 	shorten(fname)		shorten a file name, like home_replace()
+	perl(cmd)		call Perl and return string
 	input(prompt, complete)	like input() but do specified completion
 	inputrl()		like input() but right-to-left
 	virtualmode()		add argument to obtain whether "$" was used in
@@ -1608,14 +1606,10 @@
 	getbufline()		get line from any buffer
 	deletebufline()		delete line in any buffer
 	appendbufline()		append line in any buffer
-	sort()			Sort a newline-separated string.  Also:
-				":sort".
 	libcall()		Allow more than one argument.
 	libcallext()		Like libcall(), but using a callback function
 				to allow the library to execute a command or
 				evaluate an expression.
-	char2hex()		convert char string to hex string.  XX
-	hex2char()		convert hex string to char string. XX
 7   Make bufname("'0") return the buffer name from mark '0.  How to get the
     column and line number?  col("'0") currently returns zero.
 8   argc() returns 0 when using "vim -t tag".  How to detect that no file was
@@ -2440,7 +2434,8 @@
     (Scott Graham)  "ac" and "au"?
 8   Add a text object for any kind of quoting, also with multi-byte
     characters.  Option to specify what quotes are recognized (default: all)
-    use "aq" and "iq".
+    use "aq" and "iq".  Use 'quotepairs' to define pairs of quotes, like
+    'matchpairs'?
 8   Add text object for any kind of parens, also multi-byte ones.
 7   Add text object for current search pattern: "a/" and "i/".  Makes it
     possible to turn text highlighted for 'hlsearch' into a Visual area.
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index b8139a3..6ceb9cb 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 7.0aa.  Last change: 2004 Aug 29
+*uganda.txt*    For Vim version 7.0aa.  Last change: 2005 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -172,7 +172,7 @@
 family with medical help.  When needed, transport to a hospital is offered.
 Immunization programs are carried out and help is provided when an epidemic is
 breaking out (measles and cholera have been a problem).
-
+							*donate*
 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.
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 638a158..17bc3ea 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 08
+*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 23
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -22,6 +22,8 @@
 |41.11|	Writing a plugin
 |41.12|	Writing a filetype plugin
 |41.13|	Writing a compiler plugin
+|41.14|	Writing a plugin that loads quickly
+|41.15|	Writing library scripts
 
      Next chapter: |usr_42.txt|  Add new menus
  Previous chapter: |usr_40.txt|  Make new commands
@@ -663,6 +665,7 @@
 	executable()		check if an executable program exists
 	filereadable()		check if a file can be read
 	filewritable()		check if a file can be written to
+	mkdir()			create a new directory
 	isdirectory()		check if a directory exists
 	getcwd()		get the current working directory
 	getfsize()		get the size of a file
@@ -742,6 +745,7 @@
 	maparg()		get rhs of a mapping
 	exists()		check if a variable, function, etc. exists
 	has()			check if a feature is supported in Vim
+	errorlist()		list of quickfix errors
 	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
@@ -2129,6 +2133,143 @@
 that could be ~/.vim/after/compiler.
 
 ==============================================================================
+*41.14*	Writing a plugin that loads quickly	*write-plugin-quickload*
+
+A plugin may grow and become quite long.  The startup delay may become
+noticable, while you hardly every 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
+commands and mappings are defined that offer the functionality.  The second
+time the functions that implement the functionality are defined.
+
+It may sound surprising that quickload means loading a script twice.  What we
+mean is that it loads quickly the first time, postponing the bulk of the
+script to the second time, which only happens when you actually use it.  When
+you always use the functionality it actually gets slower!
+
+The following example shows how it's done: >
+
+	" Vim global plugin for demonstrating quick loading
+	" Last Change:	2005 Feb 25
+	" Maintainer:	Bram Moolenaar <Bram@vim.org>
+	" License:	This file is placed in the public domain.
+
+	if !exists("s:did_load")
+		command -nargs=* BNRead  call BufNetRead(<f-args>)
+		map <F19> :call BufNetWrite('something')<CR>
+
+		let s:did_load = 1
+		exe 'au FuncUndefined BufNet* source ' . expand('<sfile>')
+		finish
+	endif
+
+	function BufNetRead(...)
+		echo 'BufNetRead(' . string(a:000) . ')'
+		" read functionality here
+	endfunction
+
+	function BufNetWrite(...)
+		echo 'BufNetWrite(' . string(a:000) . ')'
+		" write functionality here
+	endfunction
+
+When the script is first loaded "s:did_load" is not set.  The commands between
+the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
+the rest of the script is not executed.
+
+The second time the script is loaded "s:did_load" exists and the commands
+after the "endif" are executed.  This defines the (possible long)
+BufNetRead() and BufNetWrite() functions.
+
+If you drop this script in your plugin directory Vim will execute it on
+startup.  This is the sequence of events that happens:
+
+1. The "BNRead" command is defined and the <F19> key is mapped when the script
+   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
+   ":finish" command causes the script to terminate early.
+
+2. The user types the BNRead command or presses the <F19> key.  The
+   BufNetRead() or BufNetWrite() function will be called.
+   
+3. Vim can't find the function and triggers the |FuncUndefined| autocommand
+   event.  Since the pattern "BufNet*" matches the invoked function, the
+   command "source fname" will be executed.  "fname" will be equal to the name
+   of the script, no matter where it is located, because it comes from
+   expanding "<sfile>" (see |expand()|).
+
+4. The script is sourced again, the "s:did_load" variable exists and the
+   functions are defined.
+
+Notice that the functions that are loaded afterwards match the pattern in the
+|FuncUndefined| autocommand.  You must make sure that no other plugin defines
+functions that match this pattern.
+
+==============================================================================
+*41.15*	Writing library scripts			*write-library-script*
+
+Some functionality will be required in several places.  When this becomes more
+than a few lines you will want to put it in one script and use it from many
+scripts.  We will call that one script a library script.
+
+Manually loading a library script is possible, so long as you avoid loading it
+when it's already done.  You can do this with the |exists()| function.
+Example: >
+
+	if !exists('*MyLibFunction')
+	   runtime library/mylibscript.vim
+	endif
+	call MyLibFunction(arg)
+
+Here you need to know that MyLibFunction() is defined in a script
+"library/mylibscript.vim" in one of the directories in 'runtimepath'.
+
+To make this a bit simpler Vim offers the autoload mechanism.  Then the
+example looks like this: >
+
+	call mylib:myfunction(arg)
+
+That's a lot simpler, isn't it?  Vim will recognize the function name and when
+it's not defined search for the script "autoload/mylib.vim" in 'runtimepath'.
+That script must define the "mylib:myfunction()" function.
+
+You can put many other functions in the mylib.vim script, you are free to
+organize your functions in library scripts.  But you must use function names
+where the part before the colon matches the script name.  Otherwise Vim
+would not know what script to load.
+
+If you get really enthousiastic and write lots of library scripts, you may
+want to use subdirectories.  Example: >
+
+	call netlib:ftp:read('somefile')
+
+For Unix the library script used for this could be:
+
+	~/.vim/autoload/netlib/ftp.vim
+
+Where the function is defined like this: >
+
+	function netlib:ftp:read(fname)
+		"  Read the file fname through ftp
+	endfunction
+
+Notice that the name the function is defined with is exactly the same as the
+name used for calling the function.  And the part before the last colon
+exactly matches the subdirectory and script name.
+
+You can use the same mechanism for variables: >
+
+	let weekdays = dutch:weekdays
+
+This will load the script "autoload/dutch.vim", which should contain something
+like: >
+
+	let dutch:weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
+		\ 'donderdag', 'vrijdag', 'zaterdag']
+
+Further reading: |autoload|.
+
+==============================================================================
 
 Next chapter: |usr_42.txt|  Add new menus
 
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index 51e8171..554ab70 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 06
+*usr_toc.txt*	For Vim version 7.0aa.  Last change: 2005 Feb 22
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -292,6 +292,8 @@
 		|41.11|	Writing a plugin
 		|41.12|	Writing a filetype plugin
 		|41.13|	Writing a compiler plugin
+		|41.14|	Writing a plugin that loads quickly
+		|41.15|	Writing library scripts
 
 |usr_42.txt|  Add new menus
 		|42.1|	Introduction
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 3813364..b007cdd 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 21
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -161,6 +161,9 @@
 patterns, this also allows grepping in compressed and remote files.
 |:vimgrep|.
 
+If you want to use the search results in a script you can use the
+|errorlist()| function.
+
 
 POSIX compatibility					*new-posix*
 -------------------
@@ -216,6 +219,9 @@
 a", a' and a`		New text objects to select quoted strings. |a'|
 i", i' and i'		(Taro Muraoka)
 
+CTRL-W <Enter>		In the quickfix window: opens a new window to show the
+			location of the error under the cursor.
+
 Options: ~
 
 'completefunc'		The name of a function used for user-specified Insert
@@ -272,6 +278,7 @@
 |count()|		count nr of times a value is in a List or Dictionary
 |deepcopy()|		make a full copy of a List or Dictionary
 |empty()|		check if List or Dictionary is empty
+|errorlist()|		list of quickfix errors
 |extend()|		append one List to another or add items from one
 			Dictionary to another
 |filter()|		remove selected items from a List or Dictionary
@@ -283,7 +290,7 @@
 |getfontname()| 	Get actual font name being used.
 |getfperm()|		Get file permission string. (Nikolai Weibull)
 |getftype()|		Get type of file. (Nikolai Weibull)
-|getline()|		get List with buffer lines
+|getline()|		With second argument: get List with buffer lines
 |has_key()|		check whether a key appears in a Dictionary
 |insert()|		insert an item somewhere in a List
 |items()|		get List of Dictionary key-value pairs
@@ -367,6 +374,8 @@
 
 Irish message translations. (Kevin Patrick Scannell)
 
+Vietnamese message translations and menu. (Phan Vinh Thinh)
+
 
 Others: ~
 
@@ -520,6 +529,12 @@
 When "beep" is included in 'debug' a function or script that causes a beep
 will result in a message with the source of the error.
 
+When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
+":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
+
+To count items (pattern matches) without changing the buffer the 'n' flag has
+been added to |:substitute|.  See |count-items|.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
@@ -605,6 +620,9 @@
 alignment may go wrong.  'cindent' also suffers from this for right-aligned
 items.
 
+Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
+active codepage.  Convert to utf-8.  Also for $HOME.
+
 The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw".  Now use
 "cn" or "tw" as intended.
 
@@ -868,4 +886,9 @@
 It was not possible to use a NL after a backslash in Ex mode.  This is
 sometimes used to feed multiple lines to a shell command.
 
+When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
+from the terminal we actually get 3 lines for the cmdline in gvim.
+
+When setting $HOME allocated memory would leak.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1
index d58943d..6fa949b 100644
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -492,9 +492,17 @@
 .B Vim
 initializations.
 .TP
+~/.vimrc
+Your personal
+.B Vim
+initializations.
+.TP
 /usr/local/lib/vim/gvimrc
 System wide gvim initializations.
 .TP
+~/.gvimrc
+Your personal gvim initializations.
+.TP
 /usr/local/lib/vim/optwin.vim
 Script used for the ":options" command, a nice way to view and set options.
 .TP
diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index ff925c6..f26c130 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -370,9 +370,13 @@
        /usr/local/lib/vim/vimrc
                       System wide Vim initializations.
 
+       ~/.vimrc       Your personal Vim initializations.
+
        /usr/local/lib/vim/gvimrc
                       System wide gvim initializations.
 
+       ~/.gvimrc      Your personal gvim initializations.
+
        /usr/local/lib/vim/optwin.vim
                       Script  used  for  the ":options" command, a nice way to
                       view and set options.
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index e0e8e71..38ef1d2 100644
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,7 +2,7 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2005 Feb 08
+" Last Change:		2005 Feb 24
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -22,16 +22,19 @@
   finish
 endif
 
+" Come here when loading the script the first time.
+
 let s:maxoff = 50	" maximum number of lines to look backwards for ()
 
 function GetPythonIndent(lnum)
+ 
   " If this line is explicitly joined: If the previous line was also joined,
   " line it up with that one, otherwise add two 'shiftwidth'
   if getline(a:lnum - 1) =~ '\\$'
     if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
       return indent(a:lnum - 1)
     endif
-    return indent(a:lnum - 1) + (&sw * 2)
+    return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (&sw * 2))
   endif
 
   " If the start of the line is in a string don't change the indent.
@@ -84,9 +87,9 @@
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
 	  \ . " =~ '\\(Comment\\|String\\)$'")
       if pp > 0
-	return indent(plnum) + &sw
+	return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : &sw)
       endif
-      return indent(plnum) + (&sw * 2)
+      return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (&sw * 2))
     endif
     if plnumstart == p
       return indent(plnum)
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 08d8ebf..c96298d 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Vim script
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2004 Sep 02
+" Last Change:	2005 Feb 25
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -44,7 +44,7 @@
     else
       let ind = ind + &sw * 3
     endif
-  elseif getline(lnum) =~ '\(^\||\)\s*\(if\|wh\%[ile]\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>'
+  elseif getline(lnum) =~ '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>'
     let ind = ind + &sw
   elseif getline(lnum) =~ '^\s*aug\%[roup]' && getline(lnum) !~ '^\s*aug\%[roup]\s*!\=\s\+END'
     let ind = ind + &sw
diff --git a/runtime/lang/menu_vi_vn.vim b/runtime/lang/menu_vi_vn.vim
new file mode 100644
index 0000000..efc0083
--- /dev/null
+++ b/runtime/lang/menu_vi_vn.vim
@@ -0,0 +1,294 @@
+" Menu Translations:	Vietnamese
+" Maintainer:		Phan Vinh Thinh <teppi@vnlinux.org>
+" Last Change:		23 Feb 2005
+" URL:			http://iatp.vspu.ac.ru/phan/vietvim/lang/menu_vi_VN.vim
+"
+"
+" Adopted for VietVim project by Phan Vinh Thinh.
+" First translation: Phan Vinh Thinh <teppi@vnlinux.org>
+"
+"
+" Quit when menu translations have already been done.
+"
+if exists("did_menu_trans")
+   finish
+endif
+let did_menu_trans = 1
+
+scriptencoding utf-8
+
+" Top
+menutrans &File				&Tập\ tin
+menutrans &Edit				&Soạn\ thảo
+menutrans &Tools			&Công\ cụ
+menutrans &Syntax			Cú\ &pháp
+menutrans &Buffers			&Bộ\ đệm
+menutrans &Window			Cử&a\ sổ
+menutrans &Help				Trợ\ &giúp
+"
+"
+"
+" Help menu
+menutrans &Overview<Tab><F1>		&Tổng\ quan<Tab><F1>
+menutrans &User\ Manual			&Hướng\ dẫn\ sử\ dụng
+menutrans &How-to\ links		&Làm\ như\ thế\ nào
+menutrans &Find\.\.\.			Tìm\ &kiếm\.\.\.
+"--------------------
+menutrans &Credits			Lời\ &cảm\ ơn
+menutrans Co&pying			&Bản\ quyền
+menutrans &Sponsor/Register		&Giúp\ đỡ/Đăng\ ký
+menutrans O&rphans			Trẻ\ &mồ\ côi
+"--------------------
+menutrans &Version			&Phiên\ bản
+menutrans &About			&Về\ Vim
+"
+"
+" File menu
+menutrans &Open\.\.\.<Tab>:e		&Mở\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp	&Chia-Mở\.\.\.<Tab>:sp
+menutrans &New<Tab>:enew		Mớ&i<Tab>:enew
+menutrans &Close<Tab>:close		Đó&ng<Tab>:close
+"--------------------
+menutrans &Save<Tab>:w			&Ghi\ nhớ<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav	Ghi\ n&hư\.\.\.<Tab>:sav
+"--------------------
+menutrans Split\ &Diff\ with\.\.\.	&So\ sánh\ với\.\.\.
+menutrans Split\ Patched\ &By\.\.\.	So\ sánh\ đã\ vá\ lỗi\ &bởi\.\.\.
+"--------------------
+menutrans &Print			&In
+menutrans Sa&ve-Exit<Tab>:wqa		Ghi\ nhớ\ rồ&i\ thoát <Tab>:wqa
+menutrans E&xit<Tab>:qa			Th&oát<Tab>:qa
+"
+"
+" Edit menu
+menutrans &Undo<Tab>u			&Hủy\ bước<Tab>u
+menutrans &Redo<Tab>^R			&Làm\ lại<Tab>^R
+menutrans Rep&eat<Tab>\.		Lặ&p lại<Tab>\.
+"--------------------
+menutrans Cu&t<Tab>"+x			&Cắt<Tab>"+x
+menutrans &Copy<Tab>"+y			&Sao chép<Tab>"+y
+menutrans &Paste<Tab>"+gP		&Dán<Tab>"+gP
+menutrans Put\ &Before<Tab>[p		Dán\ trướ&c<Tab>[p
+menutrans Put\ &After<Tab>]p		Dán\ sa&u<Tab>]p
+menutrans &Delete<Tab>x			&Xóa<Tab>x
+menutrans &Select\ All<Tab>ggVG		Chọ&n\ tất\ cả<Tab>ggVG
+"--------------------
+menutrans &Find\.\.\.<Tab>/		&Tìm\ kiếm\.\.\.<Tab>/
+menutrans Find\ and\ Rep&lace\.\.\.     Tìm\ &kiếm\ và\ thay\ thế\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s     Tìm\ &kiếm\ và\ thay\ thế\.\.\.<Tab>:%s
+menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s     Tìm\ &kiếm\ và\ thay\ thế\.\.\<Tab>:s
+"--------------------
+menutrans Settings\ &Window		&Cửa\ sổ\ thiết\ lập
+menutrans &Global\ Settings		Thiết\ &lập\ toàn\ cầu
+menutrans F&ile\ Settings		Thiết\ lập\ tập\ t&in
+menutrans C&olor\ Scheme		Phối\ hợp\ màu\ &sắc
+menutrans &Keymap			Sơ\ đồ\ &bàn\ phím
+menutrans Select\ Fo&nt\.\.\.		Chọn\ &phông\ chữ\.\.\.
+">>>----------------- Edit/Global settings
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!     &Chiếu\ sáng\ từ\ tìm\ thấy <Tab>:set\ hls!
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		 &Lờ\ đi\ kiểu\ chữ<Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm!		 Cho\ &biết\ phần\ tử\ có\ cặp<Tab>:set\ sm!
+menutrans &Context\ lines				 &Dòng\ quanh\ con\ trỏ
+menutrans &Virtual\ Edit				 &Soạn\ thảo\ ảo
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		 C&hế\ độ\ chèn<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		 Tương\ thích\ với\ &Vi<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.				 Đường\ dẫn\ tìm\ &kiếm\.\.\.
+menutrans Ta&g\ Files\.\.\.				 Tập\ tin\ thẻ\ &ghi\.\.\.
+"
+menutrans Toggle\ &Toolbar				 Thanh\ côn&g\ cụ
+menutrans Toggle\ &Bottom\ Scrollbar			 Thanh\ kéo\ ở\ &dưới
+menutrans Toggle\ &Left\ Scrollbar			 Thanh\ kéo\ ở\ &bên trái
+menutrans Toggle\ &Right\ Scrollbar			 Thanh\ kéo\ ở\ &bên phải
+">>>->>>------------- Edit/Global settings/Virtual edit
+menutrans Never						 Tắt
+menutrans Block\ Selection				 Khi\ chọn\ khối
+menutrans Insert\ mode					 Trong\ chế\ độ\ Chèn
+menutrans Block\ and\ Insert				 Khi\ chọn\ khối\ và\ Chèn
+menutrans Always					 Luôn\ luôn\ bật
+">>>----------------- Edit/File settings
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	 Đánh\ số\ &dòng<Tab>:set\ nu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!		 &Chế\ độ\ danh\ sách<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		 &Ngắt\ những\ dòng\ dài<Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	 Ngắt\ từ\ nguyên\ &vẹn<Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et!		 Dấ&u\ trắng\ thay\ cho\ tab<Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai!		 Tự\ độn&g\ thụt\ dòng<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin!		 T&hụt\ dòng\ kiểu\ C<Tab>:set\ cin!
+">>>---
+menutrans &Shiftwidth					 Chiều\ &rộng\ thụt\ dòng
+menutrans Soft\ &Tabstop				 Chiều\ rộng\ T&ab
+menutrans Te&xt\ Width\.\.\.				 Chiều\ rộng\ &văn\ bản\.\.\.
+menutrans &File\ Format\.\.\.				 Định\ dạng\ tập\ t&in\.\.\.
+"
+"
+"
+" Tools menu
+menutrans &Jump\ to\ this\ tag<Tab>g^]			&Nhảy\ tới\ thẻ\ ghi<Tab>g^]
+menutrans Jump\ &back<Tab>^T				&Quay\ lại<Tab>^T
+menutrans Build\ &Tags\ File				&Tạo\ tập\ tin\ thẻ\ ghi
+"-------------------
+menutrans &Folding					Nếp\ &gấp
+menutrans &Diff						&Khác\ biệt (diff)
+"-------------------
+menutrans &Make<Tab>:make				&Biên\ dịch<Tab>:make
+menutrans &List\ Errors<Tab>:cl				&Danh\ sách\ lỗi<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!			Danh\ &sách\ thông\ báo<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn				&Lỗi\ tiếp\ theo<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp			Lỗi\ t&rước<Tab>:cp
+menutrans &Older\ List<Tab>:cold			Danh\ sách\ &cũ\ hơn<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew			Danh\ sách\ &mới\ hơn<Tab>:cnew
+menutrans Error\ &Window				Cửa\ sổ\ &lỗi
+menutrans &Set\ Compiler				Chọn\ trình\ biên\ &dịch
+"-------------------
+menutrans &Convert\ to\ HEX<Tab>:%!xxd			&Chuyển\ thành\ HEX<Tab>:%!xxd
+menutrans Conve&rt\ back<Tab>:%!xxd\ -r			Chuyển\ từ\ HE&X<Tab>:%!xxd\ -r
+">>>---------------- Folds
+menutrans &Enable/Disable\ folds<Tab>zi			Bật/tắt\ nếp\ &gấp<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv			Xe&m\ dòng\ có\ con\ trỏ<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Chỉ\ &xem\ dòng\ có\ con\ trỏ<Tab>zMzx
+menutrans C&lose\ more\ folds<Tab>zm			Đóng\ &nhiều\ nếp\ gấp\ hơn<Tab>zm
+menutrans &Close\ all\ folds<Tab>zM			Đóng\ mọi\ nếp\ &gấp<Tab>zM
+menutrans &Open\ all\ folds<Tab>zR			&Mở\ mọi\ nếp\ gấp<Tab>zR
+menutrans O&pen\ more\ folds<Tab>zr			Отк&рыть\ больше\ складок<Tab>zr
+menutrans Fold\ Met&hod					&Phương\ pháp\ gấp
+menutrans Create\ &Fold<Tab>zf				&Tạo\ nếp\ gấp<Tab>zf
+menutrans &Delete\ Fold<Tab>zd				&Xóa\ nếp\ gấp<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD			Xóa\ mọ&i\ nếp\ gấp<Tab>zD
+menutrans Fold\ col&umn\ width				&Chiều\ rộng\ cột\ nếp\ gấp
+">>>->>>----------- Tools/Folds/Fold Method
+menutrans M&anual					&Thủ\ công
+menutrans I&ndent					Thụt\ &dòng
+menutrans E&xpression					&Biểu\ thức
+menutrans S&yntax					&Cú\ pháp
+menutrans Ma&rker					&Dấu\ hiệu
+">>>--------------- Tools/Diff
+menutrans &Update					&Cập\ nhật
+menutrans &Get\ Block					&Thay\ đổi\ bộ\ đệm\ này
+menutrans &Put\ Block					T&hay\ đổi\ bộ\ đệm\ khác
+">>>--------------- Tools/Diff/Error window
+menutrans &Update<Tab>:cwin				&Cập\ nhật<Tab>:cwin
+menutrans &Close<Tab>:cclose				Đón&g<Tab>:cclose
+menutrans &Open<Tab>:copen				&Mở<Tab>:copen
+"
+"
+" Syntax menu
+"
+menutrans &Show\ filetypes\ in\ menu			&Hiển\ thị\ loại\ tập\ tin\ trong\ trình\ đơn
+menutrans Set\ '&syntax'\ only				&Chỉ\ thay\ đổi\ giá\ trị\ 'syntax'
+menutrans Set\ '&filetype'\ too				Th&ay\ đổi\ cả\ giá\ trị\ 'filetype'
+menutrans &Off						&Tắt
+menutrans &Manual					&Bằng\ tay
+menutrans A&utomatic					Tự\ độ&ng
+menutrans on/off\ for\ &This\ file			Bật\ tắt\ &cho\ tập\ tin\ này
+menutrans Co&lor\ test					&Kiểm\ tra\ màu\ sắc
+menutrans &Highlight\ test				Kiểm\ tra\ c&hiếu\ sáng
+menutrans &Convert\ to\ HTML				&Chuyển\ thành\ HTML
+"
+"
+" Buffers menu
+"
+menutrans &Refresh\ menu				&Cập\ nhật\ trình\ đơn
+menutrans Delete					&Xóa
+menutrans &Alternate					Xen\ &kẽ
+menutrans &Next						Tiế&p\ theo
+menutrans &Previous					&Trước
+menutrans [No\ File]					[Không\ có\ tập\ tin]
+"
+"
+" Window menu
+"
+menutrans &New<Tab>^Wn					&Mới<Tab>^Wn
+menutrans S&plit<Tab>^Ws				&Chia\ đôi<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^			Chia &tới #<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv			Chia\ &dọc<Tab>^Wv
+menutrans Split\ File\ E&xplorer			&Mở\ trình\ duyệt\ tập\ tin
+"
+menutrans &Close<Tab>^Wc				Đó&ng<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo			Đóng\ các\ cửa\ sổ\ &khác<Tab>^Wo
+"
+menutrans Move\ &To					Ch&uyển tới
+menutrans Rotate\ &Up<Tab>^WR				&Lên\ trên<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr				&Xuống\ dưới<Tab>^Wr
+"
+menutrans &Equal\ Size<Tab>^W=				Cân\ bằng\ &kích\ thước<Tab>^W=
+menutrans &Max\ Height<Tab>^W_				Chiều\ c&ao\ lớn\ nhất<Tab>^W_
+menutrans M&in\ Height<Tab>^W1_				Chiều\ ca&o\ nhỏ\ nhất<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|				Chiều\ &rộng\ lớn\ nhất<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|				Chiề&u\ rộng\ nhỏ\ nhất<Tab>^W1\|
+">>>----------------- Window/Move To
+menutrans &Top<Tab>^WK					Đầ&u<Tab>^WK
+menutrans &Bottom<Tab>^WJ				&Cuối<Tab>^WJ
+menutrans &Left\ side<Tab>^WH				&Trái<Tab>^WH
+menutrans &Right\ side<Tab>^WL				&Phải<Tab>^WL
+"
+"
+" The popup menu
+"
+"
+menutrans &Undo						&Hủy\ bước
+menutrans Cu&t						&Cắt
+menutrans &Copy						&Sao\ chép
+menutrans &Paste					&Dán
+menutrans &Delete					&Xóa
+menutrans Select\ Blockwise				Chọn\ &theo\ khối
+menutrans Select\ &Word					Chọ&n\ từ
+menutrans Select\ &Line					Chọn\ dòn&g
+menutrans Select\ &Block				Chọn\ &khối
+menutrans Select\ &All					Chọn\ tất\ &cả
+"
+" The GUI toolbar
+"
+if has("toolbar")
+  if exists("*Do_toolbar_tmenu")
+    delfun Do_toolbar_tmenu
+  endif
+  fun Do_toolbar_tmenu()
+    tmenu ToolBar.Open					Mở tập tin
+    tmenu ToolBar.Save					Ghi nhớ tập tin
+    tmenu ToolBar.SaveAll				Ghi nhớ tất cả
+    tmenu ToolBar.Print					In
+    tmenu ToolBar.Undo					Hủy bước
+    tmenu ToolBar.Redo					Làm lại
+    tmenu ToolBar.Cut					Cắt
+    tmenu ToolBar.Copy					Sao chép
+    tmenu ToolBar.Paste					Dán
+    tmenu ToolBar.Find					Tìm...
+    tmenu ToolBar.FindNext				Tìm tiếp theo
+    tmenu ToolBar.FindPrev				Tìm ngược lại
+    tmenu ToolBar.Replace				Thay thế...
+    tmenu ToolBar.LoadSesn				Nạp buổi làm việc
+    tmenu ToolBar.SaveSesn				Ghi nhớ buổi làm việc
+    tmenu ToolBar.RunScript				Chạy script của Vim
+    tmenu ToolBar.Make					Biên dịch
+    tmenu ToolBar.Shell					Shell
+    tmenu ToolBar.RunCtags				Tạo tập tin thẻ ghi
+    tmenu ToolBar.TagJump				Chuyển tới thẻ ghi
+    tmenu ToolBar.Help					Trợ giúp
+    tmenu ToolBar.FindHelp				Tìm trong trợ giúp
+  endfun
+endif
+"
+"
+" Dialog texts
+"
+" Find in help dialog
+"
+let g:menutrans_help_dialog = "Hãy nhập câu lệnh hoặc từ khóa tìm kiếm:\n\nThêm i_ để tìm kiếm câu lệnh của chế độ Nhập Input (Ví dụ, i_CTRL-X)\nThêm c_ để tìm kiếm câu lệnh của chế độ soạn thảo dòng lệnh (Ví dụ, с_<Del>)\nThêm ' để tìm kiếm trợ giúp cho một tùy chọn (ví dụ, 'shiftwidth')"
+"
+" Searh path dialog
+"
+let g:menutrans_path_dialog = "Hãy chỉ ra đường dẫn để tìm kiếm tập tin.\nTên của thư mục phân cách nhau bởi dấu phẩy."
+"
+" Tag files dialog
+"
+let g:menutrans_tags_dialog = "Nhập tên tập tin thẻ ghi (phân cách bởi dấu phẩy).\n"
+"
+" Text width dialog
+"
+let g:menutrans_textwidth_dialog = "Hãy nhập chiều rộng văn bản mới.\nNhập 0 để hủy bỏ."
+"
+" File format dialog
+"
+let g:menutrans_fileformat_dialog = "Hãy chọn định dạng tập tin."
+let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Hủy bỏ"
+"
+let menutrans_no_file = "[không có tập tin]"
diff --git a/runtime/menu.vim b/runtime/menu.vim
index 6f30018..3b15111 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Feb 03
+" Last Change:	2005 Feb 24
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -54,7 +54,7 @@
       " There is no exact match, try matching with a wildcard added
       " (e.g. find menu_de_de.iso_8859-1.vim if s:lang == de_DE).
       let s:lang = substitute(s:lang, '\.[^.]*', "", "")
-      exe "runtime! lang/menu_" . s:lang . "[^a-z]*.vim"
+      exe "runtime! lang/menu_" . s:lang . "[^a-z]*vim"
 
       if !exists("did_menu_trans") && strlen($LANG) > 1
 	" On windows locale names are complicated, try using $LANG, it might
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim
index 2a7a2b1..1d4135b 100644
--- a/runtime/syntax/2html.vim
+++ b/runtime/syntax/2html.vim
@@ -1,6 +1,6 @@
 " Vim syntax support file
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2004 Dec 14
+" Last Change: 2005 Feb 26
 "	       (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
 "	       (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
 
@@ -400,7 +400,6 @@
   exe "normal! a" . s:new . s:HtmlEndline . "\n\e"
   exe s:orgwin . "wincmd w"
   let s:lnum = s:lnum + 1
-  +
 endwhile
 " Finish with the last line
 exe s:newwin . "wincmd w"
@@ -515,11 +514,13 @@
 unlet s:whatterm s:idlist s:lnum s:end s:fgc s:bgc s:old_magic
 unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:numblines
 unlet s:orgwin s:newwin s:orgbufnr
-delfunc s:HtmlColor
-delfunc s:HtmlFormat
-delfunc s:CSS1
-if !exists("html_use_css")
-  delfunc s:HtmlOpening
-  delfunc s:HtmlClosing
+if !v:profiling
+  delfunc s:HtmlColor
+  delfunc s:HtmlFormat
+  delfunc s:CSS1
+  if !exists("html_use_css")
+    delfunc s:HtmlOpening
+    delfunc s:HtmlClosing
+  endif
 endif
 silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:HtmlEndline
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 8e6f8d3..b9af064 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Feb 14, 2005
-" Version:	7.0-05
+" Last Change:	February 22, 2005
+" Version:	7.0-07
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -16,7 +16,7 @@
 syn cluster vimCommentGroup	contains=vimTodo
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] lockv[ar] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] sandbox sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] so[urce] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] winpos* win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] 
+syn keyword vimCommand contained	ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] lockv[ar] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] sandbox sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] so[urce] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] 
 syn match   vimCommand contained	"\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -316,6 +316,11 @@
 syn match vimUserFunc contained	"\%([sS]:\|<[sS][iI][dD]>\)\i\+\|\<\u\i*\>\|\<if\>"	contains=vimNotation,vimCommand
 syn match vimNotFunc  contained	"\<[aiAIrR]("
 
+" Norm
+" ====
+syn match vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
+syn match vimNormCmds contained	".*$"
+
 " Syntax {{{2
 "=======
 syn match   vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
@@ -592,6 +597,7 @@
 hi def link vimMenuMod	vimMapMod
 hi def link vimMenuNameMore	vimMenuName
 hi def link vimMtchComment	vimComment
+hi def link vimNorm	vimCommand
 hi def link vimNotFunc	vimCommand
 hi def link vimNotPatSep	vimString
 hi def link vimPatSepR	vimPatSep
