updated for version 7.0045
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 9c69d2c..2b7edf5 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0aa.  Last change: 2004 Dec 24
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -495,7 +495,7 @@
 				anything else that the user does not expect.
 							*InsertLeave*
 InsertLeave			When leaving Insert mode.  Also when using
-				CTRL-O |i_CTRL-O|.
+				CTRL-O |i_CTRL-O|.  But not for |i_CTRL-C|.
 							*FileEncoding*
 FileEncoding			Obsolete.  It still works and is equivalent
 				to |EncodingChanged|.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5cb9611..cbd233a 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 Jan 25
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jan 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1458,6 +1458,7 @@
 inputsecret( {prompt} [, {text}]) String  like input() but hiding the text
 insert( {list}, {item} [, {idx}]) List	insert {item} in {list} [before {idx}]
 isdirectory( {directory})	Number	TRUE if {directory} is a directory
+items( {dict})			List	List of key-value pairs in {dict}
 join( {list} [, {sep}])		String	join {list} items into one String
 keys( {dict})			List	List of keys in {dict}
 len( {expr})			Number	the length of {expr}
@@ -1519,7 +1520,8 @@
 strlen( {expr})			Number	length of the String {expr}
 strpart( {src}, {start}[, {len}])
 				String	{len} characters of {src} at {start}
-strridx( {haystack}, {needle})	Number	last index of {needle} in {haystack}
+strridx( {haystack}, {needle} [, {start}])
+				Number	last index of {needle} in {haystack}
 strtrans( {expr})		String	translate string to make it printable
 submatch( {nr})			String	specific match in ":substitute"
 substitute( {expr}, {pat}, {sub}, {flags})
@@ -1535,6 +1537,7 @@
 tr( {src}, {fromstr}, {tostr})	String	translate chars of {src} in {fromstr}
 					to chars in {tostr}
 type( {name})			Number	type of variable {name}
+values( {dict})			List	List of values in {dict}
 virtcol( {expr})		Number	screen column of cursor or mark
 visualmode( [expr])		String	last visual mode used
 winbufnr( {nr})			Number	buffer number of window {nr}
@@ -2266,7 +2269,7 @@
 		{name} can be a user defined function or an internal function.
 
 
-get({list}, {idx} [, {default}])			*get*
+get({list}, {idx} [, {default}])			*get()*
 		Get item {idx} from List {list}.  When this item is not
 		available return {default}.  Return zero when {default} is
 		omitted.
@@ -2780,6 +2783,11 @@
 		exist, or isn't a directory, the result is FALSE.  {directory}
 		is any expression, which is used as a String.
 
+items({dict})						*items()*
+		Return a List with all the key-value pairs of {dict}.  Each
+		List item is a list with two items: the key of a {dict} entry
+		and the value of this entry.  The List is in arbitrary order.
+
 
 join({list} [, {sep}])					*join()*
 		Join the items in {list} together into one String.
@@ -3517,12 +3525,15 @@
 stridx({haystack}, {needle} [, {start}])		*stridx()*
 		The result is a Number, which gives the byte index in
 		{haystack} of the first occurrence of the String {needle}.
-		If {start} is specified, the String {needle} is searched from
-		the byte index {start} in the String {haystack}.
-		The search is done case-sensitive.
+		If {start} is specified, the search starts at index {start}.
+		This can be used to find a second match: >
+			:let comma1 = stridx(line, ",")
+			:let comma2 = stridx(line, ",", comma1 + 1)
+<		The search is done case-sensitive.
 		For pattern searches use |match()|. 
 		-1 is returned if the {needle} does not occur in {haystack}.
-		See also |strridx()|. Examples: >
+		See also |strridx()|.
+		Examples: >
 		  :echo stridx("An Example", "Example")	     3
 		  :echo stridx("Starting point", "Start")    0
 		  :echo stridx("Starting point", "start")   -1
@@ -3565,10 +3576,15 @@
 		example, to get three bytes under and after the cursor: >
 			strpart(getline(line(".")), col(".") - 1, 3)
 <
-strridx({haystack}, {needle})				*strridx()*
-		The result is a Number, which gives the index in {haystack} of
-		the last occurrence of the String {needle}.
-		The search is done case-sensitive.
+strridx({haystack}, {needle} [, {start}])			*strridx()*
+		The result is a Number, which gives the byte index in
+		{haystack} of the last occurrence of the String {needle}.
+		When {start} is specified, matches beyond this index are
+		ignored.  This can be used to find a match before a previous
+		match: >
+			:let lastcomma = strridx(line, ",")
+			:let comma2 = strridx(line, ",", lastcomma - 1)
+<		The search is done case-sensitive.
 		For pattern searches use |match()|.
 		-1 is returned if the {needle} does not occur in {haystack}.
 		If the {needle} is empty the length of {haystack} is returned.
@@ -3742,6 +3758,11 @@
 			:if type(myvar) == type(function("tr"))
 			:if type(myvar) == type([])
 
+values({dict})						*values()*
+		Return a List with all the values of {dict}.  The List is in
+		arbitrary order.
+
+
 virtcol({expr})						*virtcol()*
 		The result is a Number, which is the screen column of the file
 		position given with {expr}.  That is, the last screen position
@@ -4161,17 +4182,15 @@
   :  echohl Title
   :  echo a:title
   :  echohl None
-  :  let idx = 1
-  :  while idx <= a:0
-  :    echo a:{idx} . ' '
-  :    let idx = idx + 1
-  :  endwhile
-  :  return idx
+  :  echo a:0 . " items:"
+  :  for s in a:000
+  :    echon ' ' . s
+  :  endfor
   :endfunction
 
 This function can then be called with: >
-  let lines = Table("Table", "line1", "line2")
-  let lines = Table("Empty Table")
+  call Table("Table", "line1", "line2")
+  call Table("Empty Table")
 
 To return more than one value, pass the name of a global variable: >
   :function Compute(n1, n2, divname)
@@ -4411,7 +4430,7 @@
 			List item.
 
 :let [{name}, ..., ; {lastname}] = {expr1}
-			Like |let-unpack| above, but the List may have more
+			Like |:let-unpack| above, but the List may have more
 			items than there are names.  A list of the remaining
 			items is assigned to {lastname}.  If there are no
 			remaining items {lastname} is set to an empty list.
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 579068c..74b68e1 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0aa.  Last change: 2005 Jan 05
+*insert.txt*    For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -53,7 +53,8 @@
 		yourself to use CTRL-[.
 						*i_CTRL-C*
 CTRL-C		Quit insert mode, go back to Normal mode.  Do not check for
-		abbreviations.
+		abbreviations.  Does not trigger the |InsertLeave| autocommand
+		event.
 
 						*i_CTRL-@*
 CTRL-@		Insert previously inserted text and stop insert.  {Vi: only
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 62b6de9..0adbb8d 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 Jan 14
+*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2738,7 +2738,7 @@
 	A pattern that is used to recognize a list header.  This is used for
 	the "n" flag in 'formatoptions'.
 	The pattern must match exactly the text that will be the indent for
-	the line below it.  You can use |\ze| to mark the end of the match
+	the line below it.  You can use |/\ze| to mark the end of the match
 	while still checking more characters.  There must be a character
 	following the pattern, when it matches the whole line it is handled
 	like there is no match.
@@ -4656,7 +4656,7 @@
 	List of items that control the format of the output of |:hardcopy|.
 	See |popt-option|.
 
-						*'quoteescape''* *'qe'*
+						*'quoteescape'* *'qe'*
 'quoteescape' 'qe'	string	(default "\")
 			local to buffer
 			{not in Vi}
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 21c9f57..2ff676a 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 24
+*pattern.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1027,7 +1027,7 @@
 <	Matches the words "r", "re", "ro", "rea", "roa", "read" and "road".
 	{not available when compiled without the +syntax feature}
 
-				*/\%d* */\%x* */\%o* */\%u* */\%U/* *E678*
+				*/\%d* */\%x* */\%o* */\%u* */\%U* *E678*
 
 \%d123	Matches the character specified with a decimal number.  Must be
 	followed by a non-digit.
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 4e8243d..3f202da 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -740,7 +740,7 @@
 the V (|linewise-visual|).
 
 
-HIDING FILES OR DIRECTORIES		*g:netrw-a* *g:netrw_list_hide*
+HIDING FILES OR DIRECTORIES		*netrw-a* *g:netrw_list_hide*
 
 Netrw's browsing facility allows one to use the hiding list in one of
 three ways: ignore it, hide files which match, and show only those files
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 583a784..c421a22 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Dec 09
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -631,6 +631,8 @@
 c_no_trail_space_error	 ... but no trailing spaces
 c_no_tab_space_error	 ... but no spaces before a <Tab>
 c_no_bracket_error	don't highlight {}; inside [] as errors
+c_no_curly_error	don't highlight {}; inside [] and () as errors;
+				except { and } in first column
 c_no_ansi		don't do standard ANSI types and constants
 c_ansi_typedefs		 ... but do standard ANSI types
 c_ansi_constants	 ... but do standard ANSI constants
diff --git a/runtime/doc/tags b/runtime/doc/tags
index ab5781e..e86052c 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -639,7 +639,7 @@
 'pvw'	options.txt	/*'pvw'*
 'qe'	options.txt	/*'qe'*
 'quote	motion.txt	/*'quote*
-'quoteescape''	options.txt	/*'quoteescape''*
+'quoteescape'	options.txt	/*'quoteescape'*
 'readonly'	options.txt	/*'readonly'*
 'redraw'	vi_diff.txt	/*'redraw'*
 'remap'	options.txt	/*'remap'*
@@ -1226,7 +1226,7 @@
 /\%>c	pattern.txt	/*\/\\%>c*
 /\%>l	pattern.txt	/*\/\\%>l*
 /\%>v	pattern.txt	/*\/\\%>v*
-/\%U/	pattern.txt	/*\/\\%U\/*
+/\%U	pattern.txt	/*\/\\%U*
 /\%[]	pattern.txt	/*\/\\%[]*
 /\%^	pattern.txt	/*\/\\%^*
 /\%c	pattern.txt	/*\/\\%c*
@@ -1581,6 +1581,7 @@
 :,	cmdline.txt	/*:,*
 :.	cmdline.txt	/*:.*
 :/	cmdline.txt	/*:\/*
+:0file	editing.txt	/*:0file*
 ::.	cmdline.txt	/*::.*
 ::8	cmdline.txt	/*::8*
 ::e	cmdline.txt	/*::e*
@@ -1606,13 +1607,11 @@
 :@	repeat.txt	/*:@*
 :@:	repeat.txt	/*:@:*
 :@@	repeat.txt	/*:@@*
-:Explore	pi_expl.txt	/*:Explore*
 :Man	filetype.txt	/*:Man*
 :N	editing.txt	/*:N*
 :Next	editing.txt	/*:Next*
 :P	various.txt	/*:P*
 :Print	various.txt	/*:Print*
-:Sexplore	pi_expl.txt	/*:Sexplore*
 :TOhtml	syntax.txt	/*:TOhtml*
 :X	editing.txt	/*:X*
 :\bar	cmdline.txt	/*:\\bar*
@@ -4655,9 +4654,6 @@
 expand()	eval.txt	/*expand()*
 expand-env	options.txt	/*expand-env*
 expand-environment-var	options.txt	/*expand-environment-var*
-expl-starting	pi_expl.txt	/*expl-starting*
-explorer-delete	pi_expl.txt	/*explorer-delete*
-explorer-rename	pi_expl.txt	/*explorer-rename*
 expr	eval.txt	/*expr*
 expr-!	eval.txt	/*expr-!*
 expr-!=	eval.txt	/*expr-!=*
@@ -4732,9 +4728,7 @@
 fasm.vim	syntax.txt	/*fasm.vim*
 feature-list	eval.txt	/*feature-list*
 fetch	pi_netrw.txt	/*fetch*
-file-browser	pi_expl.txt	/*file-browser*
 file-browser-5.2	version5.txt	/*file-browser-5.2*
-file-explorer	pi_expl.txt	/*file-explorer*
 file-formats	editing.txt	/*file-formats*
 file-pattern	autocmd.txt	/*file-pattern*
 file-read	insert.txt	/*file-read*
@@ -4850,22 +4844,6 @@
 g,	motion.txt	/*g,*
 g0	motion.txt	/*g0*
 g8	various.txt	/*g8*
-g:explDateFormat	pi_expl.txt	/*g:explDateFormat*
-g:explDetailedHelp	pi_expl.txt	/*g:explDetailedHelp*
-g:explDetailedList	pi_expl.txt	/*g:explDetailedList*
-g:explDirsFirst	pi_expl.txt	/*g:explDirsFirst*
-g:explFileHandler	pi_expl.txt	/*g:explFileHandler*
-g:explHideFiles	pi_expl.txt	/*g:explHideFiles*
-g:explSortBy	pi_expl.txt	/*g:explSortBy*
-g:explSplitBelow	pi_expl.txt	/*g:explSplitBelow*
-g:explSplitRight	pi_expl.txt	/*g:explSplitRight*
-g:explStartBelow	pi_expl.txt	/*g:explStartBelow*
-g:explStartRight	pi_expl.txt	/*g:explStartRight*
-g:explSuffixesLast	pi_expl.txt	/*g:explSuffixesLast*
-g:explUseSeparators	pi_expl.txt	/*g:explUseSeparators*
-g:explVertical	pi_expl.txt	/*g:explVertical*
-g:explWinSize	pi_expl.txt	/*g:explWinSize*
-g:netrw-a	pi_netrw.txt	/*g:netrw-a*
 g:netrw_list_cmd	pi_netrw.txt	/*g:netrw_list_cmd*
 g:netrw_list_hide	pi_netrw.txt	/*g:netrw_list_hide*
 g:netrw_rm_cmd	pi_netrw.txt	/*g:netrw_rm_cmd*
@@ -4906,7 +4884,7 @@
 ga	various.txt	/*ga*
 gd	pattern.txt	/*gd*
 ge	motion.txt	/*ge*
-get	eval.txt	/*get*
+get()	eval.txt	/*get()*
 getbufvar()	eval.txt	/*getbufvar()*
 getchar()	eval.txt	/*getchar()*
 getcharmod()	eval.txt	/*getcharmod()*
@@ -5314,6 +5292,7 @@
 iquote	motion.txt	/*iquote*
 is	motion.txt	/*is*
 isdirectory()	eval.txt	/*isdirectory()*
+items()	eval.txt	/*items()*
 iw	motion.txt	/*iw*
 i{	motion.txt	/*i{*
 i}	motion.txt	/*i}*
@@ -5593,6 +5572,7 @@
 netrw-R	pi_netrw.txt	/*netrw-R*
 netrw-S	pi_netrw.txt	/*netrw-S*
 netrw-U	pi_netrw.txt	/*netrw-U*
+netrw-a	pi_netrw.txt	/*netrw-a*
 netrw-activate	pi_netrw.txt	/*netrw-activate*
 netrw-b	pi_netrw.txt	/*netrw-b*
 netrw-bookmark	pi_netrw.txt	/*netrw-bookmark*
@@ -5823,7 +5803,6 @@
 php3.vim	syntax.txt	/*php3.vim*
 phtml-syntax	syntax.txt	/*phtml-syntax*
 phtml.vim	syntax.txt	/*phtml.vim*
-pi_expl.txt	pi_expl.txt	/*pi_expl.txt*
 pi_gzip.txt	pi_gzip.txt	/*pi_gzip.txt*
 pi_netrw.txt	pi_netrw.txt	/*pi_netrw.txt*
 pi_spec.txt	pi_spec.txt	/*pi_spec.txt*
@@ -6693,6 +6672,7 @@
 v_y	change.txt	/*v_y*
 v_~	change.txt	/*v_~*
 val-variable	eval.txt	/*val-variable*
+values()	eval.txt	/*values()*
 variables	eval.txt	/*variables*
 various	various.txt	/*various*
 various-cmds	various.txt	/*various-cmds*
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index a04dd30..eb5cc8b 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 20
+*various.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -492,9 +492,9 @@
 			     :sleep 100m     "sleep for a hundred milliseconds
 			     10gs	     "sleep for ten seconds
 <			Can be interrupted with CTRL-C (CTRL-Break on MS-DOS).
-			"gs" stands for "goto sleep".  While sleeping the
-			cursor is positioned in the text (if visible).  {not
-			in Vi}
+			"gs" stands for "goto sleep".
+			While sleeping the cursor is positioned in the text,
+			if at a visible position.  {not in Vi}
 
 							*g_CTRL-A*
 g CTRL-A		Only when Vim was compiled with MEM_PROFILING defined
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index bb04a6b..1712754 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -1,4 +1,4 @@
-*version6.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 16
+*version6.txt*  For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -865,8 +865,6 @@
 There are several other possibilities, such as opening a file in the preview
 window, renaming files and deleting files.
 
-See |file-explorer|.
-
 
 Editing files over a network				*new-network-files*
 ----------------------------
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 4ba6d4a..f9616a7 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.0aa.  Last change: 2004 Dec 29
+*windows.txt*   For Vim version 7.0aa.  Last change: 2005 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1098,7 +1098,7 @@
 		and can't be changed.  The 'buflisted' option will be reset
 		for a help buffer.
 
-directory	Displays directory contents.  Used by the |file-explorer|
+directory	Displays directory contents.  Can be used by a file explorer
 		plugin.  The buffer is created with these settings: >
 			:set buftype=nowrite
 			:set bufhidden=delete
diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim
index ee739b9..eef3382 100644
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2004 Dec 09
+" Last Change:	2005 Jan 26
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -67,7 +67,13 @@
 " also accept <% for {, %> for }, <: for [ and :> for ] (C99)
 " But avoid matching <::.
 syn cluster	cParenGroup	contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cCommentSkip,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
-if exists("c_no_bracket_error")
+if exists("c_no_curly_error")
+  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
+  " cCppParen: same as cParen but ends at end-of-line; used in cDefine
+  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
+  syn match	cParenError	display ")"
+  syn match	cErrInParen	display contained "^[{}]\|^<%\|^%>"
+elseif exists("c_no_bracket_error")
   syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
   " cCppParen: same as cParen but ends at end-of-line; used in cDefine
   syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell