updated for version 7.0017
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 14605e8..eddfead 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 Aug 30
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2004 Sep 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -234,22 +234,26 @@
 				should not be changed.  |Cmd-event|
 							*FileWritePre*
 FileWritePre			Before writing to a file, when not writing the
-				whole buffer.
+				whole buffer.  Use the '[ and '] marks for the
+				range of lines.
 							*FileWritePost*
 FileWritePost			After writing to a file, when not writing the
 				whole buffer.
 							*FileWriteCmd*
 FileWriteCmd			Before writing to a file, when not writing the
 				whole buffer.  Should do the writing to the
-				file.  Should not change the buffer.
+				file.  Should not change the buffer.  Use the
+				'[ and '] marks for the range of lines.
 				|Cmd-event|
 							*FileAppendPre*
-FileAppendPre			Before appending to a file.
+FileAppendPre			Before appending to a file.  Use the '[ and ']
+				marks for the range of lines.
 							*FileAppendPost*
 FileAppendPost			After appending to a file.
 							*FileAppendCmd*
 FileAppendCmd			Before appending to a file.  Should do the
-				appending to the file. |Cmd-event|
+				appending to the file.  Use the '[ and ']
+				marks for the range of lines.|Cmd-event|
 							*FilterWritePre*
 FilterWritePre			Before writing a file for a filter command or
 				making a diff.
@@ -738,8 +742,9 @@
   the new lines will be inserted.
 - Before the *ReadPost event the '[ mark is set to the first line that was
   just read, the '] mark to the last line.
-- Before executing the *WritePre and *AppendPre autocommands the '[ mark is
-  set to the first line that will be written, the '] mark to the last line.
+- Before executing the *WriteCmd, *WritePre and *AppendPre autocommands the '[
+  mark is set to the first line that will be written, the '] mark to the last
+  line.
 Careful: '[ and '] change when using commands that change the buffer.
 
 In commands which expect a file name, you can use "<afile>" for the file name
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 93c554f..48a1611 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 16
+*change.txt*    For Vim version 7.0aa.  Last change: 2004 Sep 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -659,7 +659,7 @@
       \0	  replaced with the whole matched pattern	   *\0* *s/\0*
       \1	  replaced with the matched pattern in the first
 		  pair of ()					     *s/\1*
-      \2	  replaced with the matched pattern in the first
+      \2	  replaced with the matched pattern in the second
 		  pair of ()					     *s/\2*
       ..	  ..						     *s/\3*
       \9	  replaced with the matched pattern in the ninth
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 529b30d..ed45271 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 7.0aa.  Last change: 2001 Sep 03
+*digraph.txt*   For Vim version 7.0aa.  Last change: 2004 Oct 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -28,7 +28,8 @@
 							*E104* *E39*
 :dig[raphs] {char1}{char2} {number} ...
 			Add digraph {char1}{char2} to the list.  {number} is
-			the decimal representation of the character.
+			the decimal representation of the character.  Normally
+			it is the Unicode character, see |digraph-encoding|.
 			Example: >
 	:digr e: 235 a: 228
 <			Avoid defining a digraph with '_' (underscore) as the
@@ -48,7 +49,24 @@
 if you look at it on a system that does not support digraphs or if you print
 this file.
 
-The decimal number is the number of the character.
+							*digraph-encoding*
+The decimal number normally is the Unicode number of the character.  Note that
+the meaning doesn't change when 'encoding' changes.  The character will be
+converted from Unicode to 'encoding' when needed.  This does require the
+conversion to be available, it might fail.
+
+When Vim was compiled without the +multi_byte feature, you need to specify the
+character in the encoding given with 'encoding'.  You might want to use
+something like this: >
+
+	if has("multi_byte")
+		digraph oe 339
+	elseif &encoding == "iso-8859-15"
+		digraph oe 189
+	endif
+
+This defines the "oe" digraph for a character that is number 339 in Unicode
+and 189 in latin9 (iso-8859-15).
 
 ==============================================================================
 2. Using digraphs					*digraphs-use*
@@ -142,6 +160,9 @@
 These are the RFC1345 digraphs for the one-byte characters.  See the output of
 ":digraphs" for the others.  The characters above 255 are only available when
 Vim was compiled with the |+multi_byte| feature.
+
+Exception: RFC1345 doesn't specify the euro sign.  In Vim the digraph =e was
+added for this.
 							*digraph-table*
 char  digraph	hex	dec	official name ~
 ^@	NU	0x00	  0	NULL (NUL)
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b854362..f3ee1fe 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2004 Sep 13
+*eval.txt*      For Vim version 7.0aa.  Last change: 2004 Oct 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -125,8 +125,8 @@
 |expr8|	expr9[expr1]		index in String
 
 |expr9|	number			number constant
-	"string"		string constant
-	'string'		literal string constant
+	"string"		string constant, backslash is special
+	'string'		string constant
 	&option			option value
 	(expr1)			nested expression
 	variable		internal variable
@@ -355,13 +355,18 @@
 
 literal-string						*literal-string* *E115*
 ---------------
-'string'		literal string constant		*expr-'*
+'string'		string constant			*expr-'*
 
 Note that single quotes are used.
 
-This string is taken literally.  No backslashes are removed or have a special
-meaning.  A literal-string cannot contain a single quote.  Use a normal string
-for that.
+This string is taken as it is.  No backslashes are removed or have a special
+meaning.  A literal-string cannot contain a single quote.  Use a normal,
+double-quoted string for that.
+
+Single quoted strings are useful for patterns, so that backslashes do not need
+to be doubled.  These two commands are equivalent: >
+	if a =~ "\\s*"
+	if a =~ '\s*'
 
 
 option						*expr-option* *E112* *E113*
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index 269a0ce..d31815a 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -79,9 +79,33 @@
 this again for every buffer.
 
 The auto-instantiation can be achieved with autocommands, e.g. you can put
-something like this in your .vimrc: >
-    au VimEnter,BufNew,BufNewFile,BufAdd,BufReadPre *
-	\:mz (require (prefix vim- vimext)
+something like this in your .vimrc (EOFs should not have indentation): >
+    function s:MzRequire()
+	if has("mzscheme")
+	    :mz << EOF
+	    (require (prefix vim- vimext))
+	    (let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
+	      (when (and buf (not (eq? buf (vim-curr-buff))))
+		(parameterize ((current-namespace (vim-get-buff-namespace buf)))
+		  (namespace-attach-module vim-global-namespace 'vimext)
+		  (namespace-require '(prefix vim vimext)))))
+    EOF
+	endif
+    endfunction
+
+    function s:MzStartup()
+	if has("mzscheme")
+	    au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
+	    :mz << EOF
+	    (current-library-collection-paths
+		(cons
+		    (build-path (find-system-path 'addon-dir) (version) "collects")
+		    (current-library-collection-paths)))
+    EOF
+	endif
+    endfunction
+
+    call s:MzStartup()
 <
 
 The global namespace just instantiated this module with the prefix "vimext:".
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 17201b4..4879a64 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2004 Sep 04
+*options.txt*	For Vim version 7.0aa.  Last change: 2004 Oct 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -954,6 +954,12 @@
 	prefer using ".bak", but make sure that you don't have files with
 	".bak" that you want to keep.
 
+	If you like to keep a lot of backups, you could use a BufWritePre
+	autocommand to change 'backupext' just before writing the file to
+	include a timestamp. >
+		:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'
+<	Use 'backupdir' to put the backup in a different directory.
+
 						*'backupskip'* *'bsk'*
 'backupskip' 'bsk'	string	(default: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
 			global
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 991c9a4..47d0d7e 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt  For Vim version 6.2.  Last change: Sep 10, 2004
+*pi_netrw.txt  For Vim version 6.2.  Last change: Sep 13, 2004
 
 
 		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
@@ -587,10 +587,14 @@
 					"directories" and "files" in the
 					listing.  This pattern is used to
 					remove such embedded messages.
-	g:netrw_keepdir			keep current directory immune from the
-					browsing directory.  The browsing
-					directory is contained in b:netrw_curdir
+	g:netrw_keepdir			=1 (default) keep current directory
+					immune from the browsing directory.
+					=0 keep the current directory the
+					same as the browsing directory.
+					The browsing directory is contained in
+					b:netrw_curdir
 	g:netrw_list_cmd		command for listing remote directories
+	g:netrw_longlist		if =1, then long listing will be default
 	g:netrw_ftp_list_cmd		options for passing along to ftp for
 					directory listing.  Defaults:
 					 unix or g:netrw_cygwin set: : "ls -lF"
@@ -601,6 +605,12 @@
 	g:netrw_local_rmdir		remove directory command (rmdir)
 	g:netrw_local_rename		rename file/directory command
 					unix-default: rm    win32-default: ren
+	g:netrw_maxfilenamelen		=32 by default, selected so as to make
+					long listings fit on 80 column displays.
+					If your screen is wider, and you have
+					file/directory names longer than 32 bytes,
+					you may set this option to keep listings
+					columnar.
 	g:netrw_mkdir_cmd		command for making a remote directory
 	g:netrw_rm_cmd			command for removing files
 	g:netrw_rmdir_cmd		command for removing directories
@@ -825,22 +835,26 @@
 file with mozilla.
 
 
-MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY		*netrw-c*
+MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY	*netrw-c* *netrw-curdir*
 
-By default, g:netrw_keepdir is 0.  This setting means that the current
-directory will track the browsing directory.  However, setting g:netrw_keepdir
-to 1 (say, in your <.vimrc>) will keep the current directory independent
-of the browsing directory.  In that case, in order to make the two
-directories the same, use the "c" map (just type c).
+By default, g:netrw_keepdir is 1.  This setting means that the current
+directory will not track the browsing directory.  However, setting
+g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to have the
+currently browsed directory be the current directory.
+
+With the default setting for g:netrw_keepdir, in order to make the two
+directories the same, use the "c" map (just type c).  That map will set
+the current directory to the current browsing directory.
 
 
-BOOKMARKING A DIRECTORY						*netrw-b*
+BOOKMARKING A DIRECTORY		*netrw-b* *netrw-bookmark* *netrw-bookmarks*
 
 One may easily "bookmark" a directory by using
 
 	{cnt}b
 
-Any count may be used.
+Any count may be used.  One may use viminfo's "!" option to retain bookmarks
+between vim sessions.
 
 
 CHANGING TO A BOOKMARKED DIRECTORY				*netrw-B*
@@ -913,7 +927,10 @@
 
 	P4. I would like long listings to be the default.
 
-		let g:netrw_longlist=1
+			let g:netrw_longlist=1
+
+		Check out |netrw-browse-var| for more customizations that
+		you can set.
 
 	P5. My times come up oddly in local browsing
 
@@ -923,10 +940,10 @@
 		your <.vimrc>:
 			let g:netrw_timefmt= "%X"  (where X is the option)
 
-	P6. I don't want my current directory changing just because I'm
-	    browsing somewhere.
+	P6. I want my current directory to track my browsing.
+	    How do I do that?
 
-	    	let g:netrw_keepdir= 1
+	    	let g:netrw_keepdir= 0
 	
 
 ==============================================================================
@@ -979,60 +996,65 @@
 ==============================================================================
 10. History						*netrw-history*
 
-	v48: * One may use ftp to do remote host file browsing
+	v50: * directories now displayed using buftype=nofile; should keep the
+	       directory names as-is
+	     * attempts to remove empty "[No File]" buffers leftover
+	       from :file ..name.. commands
+	     * bugfix: a "caps-lock" editing difficulty left in v49 was fixed
+	     * syntax highlighting for "Showing:" the hiding list included
+	     * bookmarks can now be retained if "!" is in the viminfo option
+	v49: * will use ftp for http://.../ browsing v48: * One may use ftp to
+	       do remote host file browsing
 	     * (windows and !cygwin) remote browsing with ftp can now use
 	       the "dir" command internally to provide listings
 	     * g:netrw_keepdir now allows one to keep the initial current
-	       directory as the current directory (normally the local
-	       file browser makes the currently viewed directory the
-	       current directory)
+	       directory as the current directory (normally the local file
+	       browser makes the currently viewed directory the current
+	       directory)
 	     * g:netrw_alto and g:netrw_altv now support alternate placement
 	       of windows started with o or v
 	     * Nread ? and Nwrite ?  now uses echomsg (instead of echo) so
 	       :messages can repeat showing the help
 	     * bugfix: avoids problems with partial matches of directory names
 	       to prior buffers with longer names
-	     * one can suppress error messages with g:netrw_quiet
-	     * ctrl-h used instead of <Leader>h for editing hiding list
-	     * one may edit the sorting sequence with the S map
-	     * now allows confirmation of deletion with [y(es) n(o) a(ll) q(uit)]
-	     * the "x" map now handles special file viewing with:
-	       (windows) rundll32 url.dll
-	       (gnome)   gnome-open
-	       (kde)     kfmclient
-	       If none of these are on the executable path, then
+	     * one can suppress error messages with g:netrw_quiet ctrl-h used
+	     * instead of <Leader>h for editing hiding list one may edit the
+	     * sorting sequence with the S map now allows confirmation of
+	     * deletion with [y(es) n(o) a(ll) q(uit)] the "x" map now handles
+	     * special file viewing with:
+	       (windows) rundll32 url.dll (gnome)   gnome-open (kde)
+	       kfmclient If none of these are on the executable path, then
 	       NetrwFileHandlers.vim is used.
 	     * directory bookmarking during both local and remote browsing
 	       implemented
 	     * one may view all, use the hiding list to suppress, or use the
-	       hiding list to show-only remote and local file/directory listings
-	     * improved unusual file and directory name handling
-	     * preview window support
-	v47: * now handles local directory browsing.
-	v46: * now handles remote directory browsing
+	       hiding list to show-only remote and local file/directory
+	       listings
+	     * improved unusual file and directory name handling preview
+	     * window support
+	v47: * now handles local directory browsing.  v46: * now handles
+	remote directory browsing
 	     * g:netrw_silent (if 1) will cause all transfers to be silent'd
-	v45: * made the [user@]hostname:path form a bit more restrictive
-	       to better handle errors in using protocols
-	       (e.g. scp:usr@host:file was being recognized as an rcp request)
-	v44: * changed from "rsync -a" to just "rsync"
+	v45: * made the [user@]hostname:path form a bit more restrictive to
+	       better handle errors in using protocols (e.g. scp:usr@host:file
+	       was being recognized as an rcp request) v44: * changed from
+	       "rsync -a" to just "rsync"
 	     * somehow an editing error messed up the test to recognize
 	       use of the fetch method for NetRead.
 	     * more debugging statements included
-	v43: * moved "Explanation" comments to <pi_netrw.txt> help file
-	       as "Network Reference" (|netrw-ref|)
+	v43: * moved "Explanation" comments to <pi_netrw.txt> help file as
+	       "Network Reference" (|netrw-ref|)
 	     * <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging
 	     * removed superfluous NetRestorePosn() calls
-	v42: * now does BufReadPre and BufReadPost events on file:///*
-	       and file://localhost/*
-	v41: * installed file:///* and file://localhost/* handling
-	v40: * prevents redraw when a protocol error occurs so that the
-	       user may see it
-	v39: * sftp support
-	v38: * Now uses NetRestorePosn() calls with Nread/Nwrite commands
+	v42: * now does BufReadPre and BufReadPost events on file:///* and
+	       file://localhost/* v41: * installed file:///* and
+	       file://localhost/* handling v40: * prevents redraw when a
+	       protocol error occurs so that the user may see it v39: * sftp
+	       support v38: * Now uses NetRestorePosn() calls with
+	       Nread/Nwrite commands
 	     * Temporary files now removed via bwipe! instead of bwipe
-	       (thanks to Dave Roberts)
-	v37: * Claar's modifications which test if ftp is successful, otherwise
-	       give an error message
+	       (thanks to Dave Roberts) v37: * Claar's modifications which
+	       test if ftp is successful, otherwise give an error message
 	     * After a read, the alternate file was pointing to the temp file.
 	       The temp file buffer is now wiped out.
 	     * removed silent from transfer methods so user can see what's
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 152728f..6fe03f9 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 Sep 13
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Sep 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1799,7 +1799,7 @@
 
 	:let perl_no_extended_vars = 1
 
-{In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)
+(In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)
 
 The coloring strings can be changed. By default strings and qq friends will be
 highlighted like the first line. If you set the variable
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 98aa7aa..c46eeb6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3542,6 +3542,7 @@
 E676	options.txt	/*E676*
 E677	eval.txt	/*E677*
 E678	pattern.txt	/*E678*
+E679	syntax.txt	/*E679*
 E68	pattern.txt	/*E68*
 E69	pattern.txt	/*E69*
 E70	pattern.txt	/*E70*
@@ -4414,6 +4415,7 @@
 diff-patchexpr	diff.txt	/*diff-patchexpr*
 diff.txt	diff.txt	/*diff.txt*
 digraph-arg	change.txt	/*digraph-arg*
+digraph-encoding	digraph.txt	/*digraph-encoding*
 digraph-table	digraph.txt	/*digraph-table*
 digraph.txt	digraph.txt	/*digraph.txt*
 digraphs	digraph.txt	/*digraphs*
@@ -4920,7 +4922,6 @@
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	various.txt	/*help*
 help-context	help.txt	/*help-context*
-help-tags	tags	1
 help-translated	various.txt	/*help-translated*
 help-xterm-window	various.txt	/*help-xterm-window*
 help.txt	help.txt	/*help.txt*
@@ -5454,6 +5455,8 @@
 netrw-S	pi_netrw.txt	/*netrw-S*
 netrw-activate	pi_netrw.txt	/*netrw-activate*
 netrw-b	pi_netrw.txt	/*netrw-b*
+netrw-bookmark	pi_netrw.txt	/*netrw-bookmark*
+netrw-bookmarks	pi_netrw.txt	/*netrw-bookmarks*
 netrw-browse	pi_netrw.txt	/*netrw-browse*
 netrw-browse-cmds	pi_netrw.txt	/*netrw-browse-cmds*
 netrw-browse-var	pi_netrw.txt	/*netrw-browse-var*
@@ -5463,6 +5466,7 @@
 netrw-cr	pi_netrw.txt	/*netrw-cr*
 netrw-credits	pi_netrw.txt	/*netrw-credits*
 netrw-ctrl-l	pi_netrw.txt	/*netrw-ctrl-l*
+netrw-curdir	pi_netrw.txt	/*netrw-curdir*
 netrw-d	pi_netrw.txt	/*netrw-d*
 netrw-debug	pi_netrw.txt	/*netrw-debug*
 netrw-delete	pi_netrw.txt	/*netrw-delete*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d4d0cda..7cb6dba 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Sep 13
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Oct 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,18 +30,15 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Endless loop when "syntax reset" in ~/.vim/after/syntax/syncolor.vim.
-Crash when using ":set background=dark".  Solved!
-Limit init_highlight() to five recursive calls?
-    patch for Vim 6.3 for free_oldval and init_highlight()?
+Add browsedir(): like browse() but for directories.
+    For GTK it already sort-of works when the default name is empty.
 
-Crash with long line. (Walter Briscoe, Sep 13)
+When ":file" sets the alternate file name and it's empty this doesn't make
+sense.  Could skip it, but would that break scripts that rely on the buffer to
+exist?
 
-Add fix for appending BOM to 6.3?  Reported by Alex Jakushev.
-
-Win32 console doesn't compile.  Does GetCommandLineW() work for non-GUI?
-(Dave Roberts)  If yes, then move the functions to another file.
-link with kernel32.lib?
+Folding support for 2html. (Carl Osterwisch, Oct 4)
+How to evaluate an expression in the sandbox?
 
 Aborting at the ATTENTION prompt causes trouble:
     buffer remains active, nwindows isn't closed (fixed in buffer.c)
@@ -59,7 +56,44 @@
 work. (Valery Kondakoff)
 Solved in os_mswin.c.  Add to 6.3?
 
+Patch for Win32 textdomain: NAKADAIRA Yukihiro, Sept 17.
+
+GTK 2 error message with this sequence (Namsh Oct 7):
+	- start gvim with French locale
+	- set enc=utf-8
+	- :aunmenu *
+	- :unlet  did_install_default_menus
+	- :source $VIMRUNTIME/menu.vim
+
 Valencia: executable("xxd.exe") returns true while "!xxd" doesn't work.
+Works fine for me.  Only in specific environment?
+
+netrw plugin: When coming back to the same directory a scratch buffer appears.
+Only on Win32. (Charles Campbell, Sept 15)
+
+New Eiffel indent script from Jocelyn Fiat.  OK with David Clarke.
+
+Win32: not using 'tenc' in GUI causes problems on Win 98?  (Jiri Jezdinsky)
+Try out with Russian input method.
+
+After "Y" '[ and '] are not at start/end of the yanked text. (Ken Clark)
+
+Patch for adding 'fsync' option: disable using fsync() on file write. (Sept.
+26, Ciaran McCreesh)
+
+Folding for C syntax: (Olaf Dabrunz 27 sept 2004)
+
+Add remark about using Vim with VS .net to Visvim docs. (David Fishburn, Sept
+27)
+
+Vim icon for documents associated with Vim? (Rahul Kulkarni, sept 28)
+
+Add a function to test if a font name actually works.
+
+When using "set laststatus=2 cmdheight=2" in the .gvimrc you only get one line
+for the cmdline. (Christian Robinson)  When the Vim window is resized (e.g.,
+xterm with many lines) it's OK.
+
 
 For version 7.0:
 
@@ -70,6 +104,7 @@
     7   For Visual mode: Command to do a search for the string in the marked
 	area.  Only when fewer than two lines. Use "g/" and "gb".  Patch from
 	Yegappan Lakshmanan. 2004 Jul 11
+	When more than two lines: perform a search in the Visual area only.
     8   Make 'statusline' local, so that each window can have a different
 	value.  But should it also be local to a buffer? (Yegappan Lakshmanan
 	has a patch, 2004 Jul 11)
@@ -168,6 +203,12 @@
     -   findmatch() should be adjusted for Lisp.  See remark at
 	get_lisp_indent().  Esp. \( and \) should be skipped. (Dorai Sitaram,
 	incomplete patch Mar 18)
+    -	Set user variables to the names of the actually used user vimrc file,
+	the first directory looked for user plugins/syntax files.
+	$MYVIMRC for .vimrc, $MYGVIMRC for .gvimrc, $MYRUNTIME/plugin for
+	runtime files?
+	Also: when the environment variable exists, use it.  If it doesn't
+	exist, set it.  Requires good names: $VIM_USER_VIMRC  $VIM_USER_DIR
 
 
 -   In the kvim/KDE source files fix the formatting.
@@ -192,6 +233,8 @@
 	  the contains list directly for matching syntax items.
         - Keep wordlist in syntax group, load it only once and use it several
 	  times later.  Sort of global syntax items.
+	- Use wordlists from openoffice (myspell).  Work together with them to
+	  update the wordlist.  (Adri Verhoef, Aad Nales)
 -   REFACTORING: The main() function is very long.  Move parts to separate
     functions, especially loops.  Ideas from Walter Briscoe (2003 Apr 3, 2004
     Feb 9).
@@ -205,9 +248,33 @@
 	http://sourceforge.net/projects/insenvim
 	http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
 	Ivan Villanueva has something for Java.
+    Can't call it Intellisense, it is a trademark by Microsoft.
+    Ideas from the Vim 7 BOF at SANE:
+    - It's not possible to have one solution for all languages.  Design an
+      interface for completion plugins.  The matches can be done in a
+      Vim-script list.
+    - For interpreted languages, use the interpreter to obtain information.
+      Should work for Java (Eclipse does this), Python, Tcl, etc.
+    - Check Readline for its completion interface.
+    - Use ctags for other languages.  Writing a file could trigger running
+      ctags, merging the tags of the changed file.
+-   UNDO TREE: keep all states of the text, don't delete undo info.
+    When making a change, instead of clearing any future undo (thus redo)
+    info, make a new branch.
+    To navigate through the undo tree number the states of the text
+    sequentially and make it possible to go through the tree in that order.
+    Could also use timestamps (to show the time and/or jump to a state five
+    minutes ago). (David Schweikert)
+    To go from one state to another: backtrack to a common state, then forward
+    again.
+    Only difficult thing: When going back in time, how to find the previous
+    text state in the tree?
+    Show the list of changes in a window to be able to select a version?
 -   PERSISTENT UNDO: store undo in a file.
-    Support multiple threads.  Show the list of changes in a window to be able
-    to select a version.
+    Use timestamps, so that a version a certain time ago can be found and info
+    before some time/date can be flushed. 'undopersist' gives maximum time to
+    keep undo: "3h", "1d", "2w", "1y", etc.  For the file use dot and
+    extension: ".filename.un~" (like swapfile but "un~" instead of "swp").
 7   SWAP FILE CHANGE: When a dos format file was edited with ":e ++ff=unix",
     Vim is killed and trying to recover the file, 'ff' will be dos.  Same for
     non-default fileencoding.  (Miroslaw Dobrzanski-Neumann, Jul 17)
@@ -235,8 +302,12 @@
 -   STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
     Especially when using the scrollbar.  Typing a cursor-movement command
     scrolls back to where the cursor is.
+-   Execute a function with standard option values.  No need to save and
+    restore option values.  Especially useful for new options.  Problem: how
+    to avoid a performance penalty (esp. for string options)?
 8   Support four composing/combining characters, needed for Hebrew. (Ron Aaron)
     Add the 'maxcombining' option to set the nr. of composing characters.
+    At the same time support more colors (use two bytes when necessary).
 -   Add a few more things to 'diffopt': "horizontal", "vertical",
     "foldcolumn". (Benji Fisher, 2004 Jun 21)
 -   FileChangedShellPost autocommand event: after (not) reloading a changed
@@ -265,6 +336,9 @@
 -   "onemore" flag in 'virtualedit': move cursor past end of line.  Patch by
     Mattias Flodin (2004 Jul 30)
 
+The fsync() in buf_write() causes laptop harddisk spinup.  Add an option to
+avoid it?
+
 Support ":set syntax=cpp.doxygen"?  Suggested patch by Michael Geddes (9 Aug
 2004).  Should also work for 'filetype'.
 
@@ -274,6 +348,9 @@
 Win32: In 'fileencodings' allow using "acp" for the active codepage.  Useful
 value: "ucs-bom,utf-8,acp,latin1"
 
+Win32: Cannot edit a file starting with # with --remote. (Giuseppe Bilotta,
+Oct 6 2004)
+
 For manipulating buffers without opening a new window, support Virtual
 windows.  Example:
     :virtwin let l = GetBufLine(4, 10)
@@ -291,6 +368,10 @@
 Mathias Michaelis (2004 Sep 6)
 Also place vimtutor.bat in %windir%?
 
+Support ":enew filename" to edit a new buffer with a name.  It's like "enew |
+file filename" but without setting the alternate file to a buffer without a
+name. (Charles Campbell)
+
 
 Vi incompatibility:
 9   In Ex mode, "u" undoes all changes, not just the last one. (John Cowan)
@@ -386,6 +467,7 @@
 
 KDE GUI known bugs:
 -   The default font is ugly.  bold text isn't displayed correctly.
+    (bold characters are half the width of normal characters)
 -   Error messages when starting up.  The "tip of the day" box is empty.
 -   Encoding of menu items needs to be converted. (Yasuhiro Matsumoto)
 
@@ -2041,6 +2123,7 @@
     *Leave	    - Leaving a mode (in pair with the above *Enter)
     VimLeaveCheck    - Before Vim decides to exit, so that it can be cancelled
 		      when exiting isn't a good idea.
+    WinMoved	    - when windows have been moved around, e.g, ":wincmd J"
     CmdUndefined    - Like FuncUndefined but for user commands.
     SearchPost	    - After doing a search command (e.g. to do "M")
     PreDirChanged/PostDirChanged
@@ -2511,8 +2594,6 @@
 -   Add command to repeat a whole mapping ("." only repeats the last change in
     a mapping).  Also: Repeat a whole insert command, including any mappings
     that it included.  Sort-of automatic recording?
--   Make it possible to undo all the commands from a mapping, including a
-    trailing unfinished command, e.g. for ":map K iX^[r".
 -   Add an option to ":map" that makes it display the special keys in
     <> notation (e.g. <CR> instead of ^M).  Or just always do this?
 -   Include an option (or flag to 'cpoptions') that makes errors in mappings
@@ -2663,6 +2744,8 @@
 
 
 Undo:
+-   Make it possible to undo all the commands from a mapping, including a
+    trailing unfinished command, e.g. for ":map K iX^[r".
 -   When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
     possible, even when typing <Esc> immediately. (Grahn)  Also for "i", "a",
     etc.  Postpone saving for undo until something is really inserted?
@@ -2676,9 +2759,6 @@
     version without changing the rest of the file.  Stop doing this when a
     change includes only some of these lines and changes the line count.  Need
     to store these undo actions as a separate change that can be undone.
-7   Add an undo tree: When making a change, instead of clearing any future
-    undo (thus redo) info, make a new branch.  How to navigate through the
-    undo tree?
 -   For u_save() include the column number. This can be used to set '[ and '].
     And in the future the undo can be made more efficient (Webb).
 -   In out-of-memory situations: Free allocated space in undo, and reduce the
@@ -2897,7 +2977,7 @@
     below/above).
 -   Use digraph table to tell Vim about the collating sequence of special
     characters?
-8   Add command to remove (all) digraphs. (Brown)
+8   Add command to remove one or more (all) digraphs. (Brown)
 7   Support different sets of digraphs (depending on the character set?).  At
     least Latin1/Unicode, Latin-2, MS-DOS (esp. for Win32).
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 97c39d9..ace402f 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: 2004 Aug 28
+*usr_41.txt*	For Vim version 7.0aa.  Last change: 2004 Oct 06
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -218,9 +218,9 @@
 	:echo name
 <	"peter" ~
 
-Inside a single-quote string all the characters are taken literally.  The
-drawback is that it's impossible to include a single quote.  A backslash is
-taken literally as well, thus you can't use it to change the meaning of the
+Inside a single-quote string all the characters are as they are.  The drawback
+is that it's impossible to include a single quote.  A backslash is taken
+literally as well, thus you can't use it to change the meaning of the
 character after it.
    In double-quote strings it is possible to use special characters.  Here are
 a few useful ones:
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 01705ff..7074532 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Sep 13
+*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Oct 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -243,6 +243,12 @@
 For the '%' item in 'viminfo', allow a number to set a maximum for the number
 of buffers.
 
+When a file looks like a shell script, check for an "exec" command that starts
+the tcl interpreter. (suggested by Alexios Zavras)
+
+Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
+digraphs still work when iconv is not available.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
@@ -373,4 +379,21 @@
 xterm reports the number of colors), the hit-enter prompt overwrote the last
 line.  Don't reset msg_didout in normal_cmd() for K_IGNORE.
 
+Mac GUI: Shift-Tab didn't work.
+
+When defining tooltip text, don't translate terminal codes, since it's not
+going to be used like a command.
+
+GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
+GTK error.  Invalid characters may appear when 'encoding' is changed.
+
+GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
+
+Win32: When 'encoding' is changed while starting up, use the Unicode command
+line to convert the file arguments to 'encoding'.  Both for the GUI and the
+console version.
+
+Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
+there is no codepage for latin9.  Do our own conversion from latin9 to UCS2.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 5fd12aa..26c222f 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2004 Sep 11
+" Last Change:	2004 Oct 02
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1339,22 +1339,41 @@
       unlet b:is_bash
     endif
   endif
-  setf sh
+  call SetFileTypeShell("sh")
+endfun
+
+" For shell-like file types, check for an "exec" command hidden in a comment,
+" as used for Tcl.
+fun! SetFileTypeShell(name)
+  let l = 2
+  while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
+    " Skip empty and comment lines.
+    let l = l + 1
+  endwhile
+  if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
+    " Found an "exec" line after a comment with continuation
+    let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
+    if n =~ '\<tclsh\|\<wish'
+      setf tcl
+      return
+    endif
+  endif
+  exe "setf " . a:name
 endfun
 
 " tcsh scripts
-au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login	setf tcsh
+au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login	call SetFileTypeShell("tcsh")
 
 " csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
 au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias  call SetFileTypeCSH()
 
 fun! SetFileTypeCSH()
   if exists("g:filetype_csh")
-    exe "setf " . g:filetype_csh
+    call SetFileTypeShell(g:filetype_csh)
   elseif &shell =~ "tcsh"
-    setf tcsh
+    call SetFileTypeShell("tcsh")
   else
-    setf csh
+    call SetFileTypeShell("csh")
   endif
 endfun
 
diff --git a/runtime/indent/eiffel.vim b/runtime/indent/eiffel.vim
index ac31d10..22b932a 100644
--- a/runtime/indent/eiffel.vim
+++ b/runtime/indent/eiffel.vim
@@ -1,9 +1,11 @@
 " Vim indent file
 " Language:	Eiffel
-" Maintainer:	David Clarke <gadicath@dishevelled.net>
+" Maintainer:	Jocelyn Fiat <eiffel@djoce.net>
+" Previous-Maintainer:	David Clarke <gadicath@dishevelled.net>
 " $Date$
 " $Revision$
-" URL: http://gadicath.webhop.net/other/eiffel.vim
+" URL: http://www.djoce.net/page/vim/
+" Last Change:	2004 Sep 14
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -20,8 +22,6 @@
 setlocal indentkeys+==end,=else,=ensure,=require,=check,=loop,=until
 setlocal indentkeys+==creation,=feature,=inherit,=class,=is,=redefine,=rename,=variant
 setlocal indentkeys+==invariant,=do,=local,=export
-setlocal sw=3
-setlocal tw=78
 
 " Define some stuff
 " keywords grouped by indenting
@@ -96,7 +96,7 @@
 
   " set indent of zero end statements that are at an indent of 3, this should
   " only ever be the class's end.
-  if getline(v:lnum) =~ '^\s*end\>' && ind == 3
+  if getline(v:lnum) =~ '^\s*end\>' && ind == &sw
     let ind = 0
   endif
 
diff --git a/runtime/indent/java.vim b/runtime/indent/java.vim
index a600c4b..311d708 100644
--- a/runtime/indent/java.vim
+++ b/runtime/indent/java.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Java
-" Maintainer:	Toby Allsopp <toby.allsopp@peace.com>
-" Last Change:	2003 Oct 21
+" Maintainer:	Toby Allsopp <toby.allsopp@peace.com> (resigned)
+" Last Change:	2004 Oct 05
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/menu.vim b/runtime/menu.vim
index b4ab630..b504ff8 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:	2004 May 26
+" Last Change:	2004 Sep 16
 
 " 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.
@@ -382,7 +382,7 @@
   endif
   unlet s:n
 endif
-if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_photon")
+if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
   an 20.470 &Edit.Select\ Fo&nt\.\.\.	:set guifont=*<CR>
 endif
 
diff --git a/runtime/plugin/netrw.vim b/runtime/plugin/netrw.vim
index 9f5dc9e..608cc7d 100644
--- a/runtime/plugin/netrw.vim
+++ b/runtime/plugin/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
-" Last Change:	Sep 10, 2004
+" Last Change:	Sep 14, 2004
 " Maintainer:	Charles E. Campbell, Jr. PhD   <drchipNOSPAM at campbellfamily.biz>
-" Version:	48
+" Version:	51a	NOT RELEASED
 " License:	Vim License  (see vim's :help license)
 "
 "  But be doers of the Word, and not only hearers, deluding your own selves
@@ -14,7 +14,7 @@
 if exists("g:loaded_netrw") || &cp
   finish
 endif
-let g:loaded_netrw  = "v48"
+let g:loaded_netrw  = "v51a"
 let s:save_cpo      = &cpo
 let loaded_explorer = 1
 set cpo&vim
@@ -115,7 +115,7 @@
  let g:netrw_hide= 1
 endif
 if !exists("g:netrw_ftp_browse_reject")
- let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not'
+ let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$'
 endif
 if !exists("g:netrw_keepdir")
  let g:netrw_keepdir= 1
@@ -140,6 +140,9 @@
 if !exists("g:netrw_altv")
  let g:netrw_altv= 0
 endif
+if !exists("g:netrw_maxfilenamelen")
+ let g:netrw_maxfilenamelen= 32
+endif
 
 " BufEnter event ignored by decho when following variable is true
 "  Has a side effect that doau BufReadPost doesn't work, so
@@ -211,9 +214,11 @@
    au BufReadCmd  file:///*		exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
    au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
   endif
-  au BufReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread 0r ".expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
-  au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread "   .expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
-  au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    		exe "silent doau BufWritePre ".expand("<afile>")|exe "Nwrite " .expand("<afile>")|exe "silent doau BufWritePost ".expand("<afile>")
+  au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread 0r ".expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
+  au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread "   .expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
+  au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<afile>")|exe "Nwrite " .expand("<afile>")|exe "silent doau BufWritePost ".expand("<afile>")
+  au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<afile>")|exe "'[,']Nwrite " .expand("<afile>")|exe "silent doau BufWritePost ".expand("<afile>")
+"  au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	if exists("vcount")|call Decho("vcount=".vcount)|else|call Decho("no vcount")|endif
  augroup END
 endif
 
@@ -1025,7 +1030,8 @@
 "  call Dfunc("NetBrowse(dirname<".a:dirname.">) longlist=".g:netrw_longlist)
 
   " sanity check
-  if exists("b:netrw_method") && b:netrw_method =~ '[23]'
+  if exists("b:netrw_method") && b:netrw_method =~ '[235]'
+"   call Decho("b:netrw_method=".b:netrw_method)
    if !executable("ftp")
     if !exists("g:netrw_quiet")
      echoerr "***netrw*** this system doesn't support remote directory listing via ftp"
@@ -1066,11 +1072,13 @@
 "  call Decho("set up path   <".path   .">")
 "  call Decho("set up fname  <".fname  .">")
 
-  if method == "ftp"
+  if method == "ftp" || method == "http"
+   let method  = "ftp"
    let listcmd = g:netrw_ftp_list_cmd
   else
    let listcmd = substitute(g:netrw_list_cmd,'\<HOSTNAME\>',user.machine,'')
   endif
+
   if exists("b:netrw_method")
 "   call Decho("setting s:netrw_method<".b:netrw_method.">")
    let s:netrw_method= b:netrw_method
@@ -1144,11 +1152,12 @@
   endif
 
   " rename file to reflect where its from
-  setlocal ts=32 bt=nofile bh=wipe nobl
+  setlocal bt=nofile bh=wipe nobl noswf
+  exe "setlocal ts=".g:netrw_maxfilenamelen
 "  call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
   exe 'file '.escape(bufname,s:netrw_cd_escape)
 "  call Decho("renaming file to bufname<".bufname.">")
-  setlocal bt=nowrite bh=hide nobl
+  setlocal bh=hide nobl
 
   " set up buffer-local mappings
 "  call Decho("set up buffer-local mappings")
@@ -1338,7 +1347,6 @@
    else
     " strip off a directory name from dirname
     let dirname= substitute(dirname,'^\(.*/\)[^/]\+/','\1','')
-  exe "silent! keepjumps ".curline.",$d"
    endif
 "   call Decho("go up one dir: dirname<".dirname."> trailer<".trailer.">")
 
@@ -1573,7 +1581,7 @@
 
   if a:remote == 1
    let eikeep= &ei
-   set ei=all bh=delete bt=nofile
+   set ei=all bh=delete bt=nofile noswf
    exe "norm! \<c-o>"
    let &ei= eikeep
    redraw!
@@ -1601,15 +1609,13 @@
   exe "silent! keepjumps ".curline.",$d"
 
    ".........................................
-  if s:netrw_method == 2
+  if s:netrw_method == 2 || s:netrw_method == 5
    " ftp + <.netrc>:  Method #2
    if a:path != ""
     put ='cd '.a:path
    endif
    exe "put ='".a:cmd."'"
-
-
-"    redraw!|call inputsave()|call input("Pausing...")|call inputrestore() "Decho
+"    redraw!|call inputsave()|call input("Pausing...")|call inputrestore()
    if exists("g:netrw_port") && g:netrw_port != ""
 "    call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
     exe g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -1875,29 +1881,29 @@
 
   if a:chg == 0
    " bookmark the current directory
-   let s:netrw_bookmarkdir_{v:count}= a:curdir
-   if !exists("s:bookmarkmax")
-    let s:bookmarkmax= v:count
-   elseif v:count > s:bookmarkmax
-    let s:bookmarkmax= v:count
+   let g:NETRW_BOOKMARKDIR_{v:count}= a:curdir
+   if !exists("g:NETRW_BOOKMARKMAX")
+    let g:NETRW_BOOKMARKMAX= v:count
+   elseif v:count > g:NETRW_BOOKMARKMAX
+    let g:NETRW_BOOKMARKMAX= v:count
    endif
 
   elseif a:chg == 1
    " change to the bookmarked directory
-   if exists("s:netrw_bookmarkdir_{v:count}")
-    exe "e ".s:netrw_bookmarkdir_{v:count}
+   if exists("g:NETRW_BOOKMARKDIR_{v:count}")
+    exe "e ".g:NETRW_BOOKMARKDIR_{v:count}
    else
     echomsg "Sorry, bookmark#".v:count." doesn't exist!"
    endif
 
-  elseif exists("s:bookmarkmax")
+  elseif exists("g:NETRW_BOOKMARKMAX")
    " list bookmarks
-"   call Decho("list bookmarks [0,".s:bookmarkmax."]")
+"   call Decho("list bookmarks [0,".g:NETRW_BOOKMARKMAX."]")
    let cnt= 0
-   while cnt <= s:bookmarkmax
-    if exists("s:netrw_bookmarkdir_{cnt}")
-     echo "Netrw Bookmark#".cnt.": ".s:netrw_bookmarkdir_{cnt}
-"     call Decho("Netrw Bookmark#".cnt.": ".s:netrw_bookmarkdir_{cnt})
+   while cnt <= g:NETRW_BOOKMARKMAX
+    if exists("g:NETRW_BOOKMARKDIR_{cnt}")
+     echo "Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt}
+"     call Decho("Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt})
     endif
     let cnt= cnt + 1
    endwhile
@@ -1905,7 +1911,6 @@
 "  call Dret("NetBookmarkDir")
 endfun
 
-
 " ---------------------------------------------------------------------
 "  Browsing Support For Local Directories And Files:    {{{1
 
@@ -1972,20 +1977,32 @@
     endif
    endif
 "   call Decho("buffer already exists, but needs re-listing (buf#".dirnamenr.")")
+"   call Decho("buffer name<".bufname("%")."> dirname<".dirname.">")
    setlocal ma
    keepjumps %d
-   if expand("%:p") != dirname
+   if expand("%") != dirname
+    " set standard browser options on buffer
+    setlocal bt=nofile bh=hide nobl noswf
+    exe "setlocal ts=".g:netrw_maxfilenamelen
     exe 'silent! file '.escape(dirname,s:netrw_cd_escape)
-"    call Decho("renamed file to<".escape(dirname,' #').">")
+"    call Decho("renamed buffer to<".escape(dirname,s:netrw_cd_escape).">")
+"    call Decho("yielding actual bufname<".bufname("%").">")
    endif
   else
 "   call Decho("generate new buffer named<".escape(dirname,' #').">")
    silent! enew!
+   " set standard browser options on buffer
+   setlocal bt=nofile bh=hide nobl noswf
+   exe "setlocal ts=".g:netrw_maxfilenamelen
    exe 'silent! file '.substitute(escape(dirname,s:netrw_cd_escape),'/$','','e')
-"   call Decho("renamed file to<".escape(dirname,s:netrw_cd_escape).">")
+"   call Decho("renamed buffer to<".substitute(escape(dirname,s:netrw_cd_escape),'/$','','e').">")
+"   call Decho("yielding actual bufname<".bufname("%").">")
   endif
-  " set standard browser options on buffer
-  setlocal ts=32 bt=nowrite bh=hide nobl
+  if bufname("#") == "" && bufnr("#") != -1
+   " the file command produces a lot of [No File] buffers
+"   call Decho("wiping out nofile buffer#".bufnr("#"))
+   exe bufnr("#")."bwipe"
+  endif
 
   " set up all the maps
 "  call Decho("Setting up local browser maps")
@@ -2076,7 +2093,7 @@
   setlocal noma nomod
   if g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
 
-"  call Dret("LocalBrowse : file<".expand("%:p").">")
+"  call Dret("LocalBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
 endfun
 
 " ---------------------------------------------------------------------
@@ -2123,7 +2140,7 @@
     let filelist = substitute(filelist,'^.\{-}\n\(.*\)$','\1','e')
    else
     let file     = filelist
-    let filelist= ""
+    let filelist = ""
    endif
    let pfile= file
    if isdirectory(file)
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 07d04ff..69bee3a 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2004 Sep 02
+" Last change:	2004 Oct 02
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
@@ -57,14 +57,14 @@
     " csh scripts
   elseif s:name =~ '^csh\>'
     if exists("g:filetype_csh")
-      let &ft = g:filetype_csh
+      call SetFileTypeShell(g:filetype_csh)
     else
-      set ft=csh
+      call SetFileTypeShell("csh")
     endif
 
     " tcsh scripts
   elseif s:name =~ '^tcsh\>'
-    set ft=tcsh
+    call SetFileTypeShell("tcsh")
 
     " Z shell scripts
   elseif s:name =~ '^zsh\>'
diff --git a/runtime/syntax/lss.vim b/runtime/syntax/lss.vim
index fe20701..6620707 100644
--- a/runtime/syntax/lss.vim
+++ b/runtime/syntax/lss.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Lynx 2.7.1 style file
-" Maintainer:	Scott Bigham <dsb@cs.duke.edu>
-" Last Change:	2001 May 09
+" Maintainer:	Scott Bigham <dsb@killerbunnies.org>
+" Last Change:	2004 Oct 06
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff --git a/runtime/syntax/pccts.vim b/runtime/syntax/pccts.vim
index ef52681..8341f5b 100644
--- a/runtime/syntax/pccts.vim
+++ b/runtime/syntax/pccts.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Language:	PCCTS
-" Maintainer:	Scott Bigham <dsb@cs.duke.edu>
+" Maintainer:	Scott Bigham <dsb@killerbunnies.org>
 " Last Change:	10 Aug 1999
 
 " For version 5.x: Clear all syntax items
diff --git a/runtime/syntax/pod.vim b/runtime/syntax/pod.vim
index 24d0c85..60f3353 100644
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Perl POD format
-" Maintainer:	Scott Bigham <dsb@cs.duke.edu>
-" Last Change:	2001 May 09
+" Maintainer:	Scott Bigham <dsb@killerbunnies.org>
+" Last Change:	2004 Oct 05
 
 " To add embedded POD documentation highlighting to your syntax file, add
 " the commands:
@@ -25,7 +25,7 @@
 endif
 
 " POD commands
-syn match podCommand	"^=head[12]"	nextgroup=podCmdText
+syn match podCommand	"^=head[1234]"	nextgroup=podCmdText
 syn match podCommand	"^=item"	nextgroup=podCmdText
 syn match podCommand	"^=over"	nextgroup=podOverIndent skipwhite
 syn match podCommand	"^=back"
@@ -52,7 +52,11 @@
 syn match podSpecial	"[$@%]\I\i*\(::\I\i*\)*\>"
 
 " Special formatting sequences
-syn region podFormat	start="[IBSCLFXEZ]<" end=">" oneline contains=podFormat
+syn region podFormat	start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat
+syn match  podFormat	"Z<>"
+syn match  podFormat	"E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2
+syn match  podEscape	"\I\i*>"me=e-1 contained
+syn match  podEscape2	"\d\+>"me=e-1 contained
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -72,6 +76,8 @@
   HiLink podFormat		Identifier
   HiLink podVerbatimLine	PreProc
   HiLink podSpecial		Identifier
+  HiLink podEscape		String
+  HiLink podEscape2		Number
 
   delcommand HiLink
 endif
diff --git a/runtime/syntax/samba.vim b/runtime/syntax/samba.vim
index 10f7edc..31570e0 100644
--- a/runtime/syntax/samba.vim
+++ b/runtime/syntax/samba.vim
@@ -2,7 +2,7 @@
 " Language:	samba configuration files (smb.conf)
 " Maintainer:	Rafael Garcia-Suarez <rgarciasuarez@free.fr>
 " URL:		http://rgarciasuarez.free.fr/vim/syntax/samba.vim
-" Last change:	2002 May 06
+" Last change:	2004 September 21
 
 " Don't forget to run your config file through testparm(1)!
 
@@ -17,8 +17,8 @@
 syn case ignore
 
 syn match sambaParameter /^[a-zA-Z \t]\+=/ contains=sambaKeyword
-syn match sambaSection /^\s*\[[a-zA-Z0-9_\-. ]\+\]/
-syn match sambaMacro /%[SPugUGHvhmLMNpRdaIT]/
+syn match sambaSection /^\s*\[[a-zA-Z0-9_\-.$ ]\+\]/
+syn match sambaMacro /%[SPugUGHvhmLMNpRdaITD]/
 syn match sambaMacro /%$([a-zA-Z0-9_]\+)/
 syn match sambaComment /^\s*[;#].*/
 syn match sambaContinue /\\$/
@@ -92,6 +92,18 @@
 syn keyword sambaKeyword contained disable dn egd entropy enum extensions mmap
 syn keyword sambaKeyword contained policy spin spoolss
 
+" Since Samba 3.0.2
+syn keyword sambaKeyword contained abort afs algorithmic backend
+syn keyword sambaKeyword contained charset cups defer display
+syn keyword sambaKeyword contained enable idmap kerberos lookups
+syn keyword sambaKeyword contained methods modules nested NIS ntlm NTLMv2
+syn keyword sambaKeyword contained objects paranoid partners passdb
+syn keyword sambaKeyword contained plaintext prefix primary private
+syn keyword sambaKeyword contained profile quota realm replication
+syn keyword sambaKeyword contained reported rid schannel sendfile sharing
+syn keyword sambaKeyword contained shutdown signing special spnego
+syn keyword sambaKeyword contained store unknown unwriteable
+
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
 " For version 5.8 and later: only when an item doesn't have highlighting yet
diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim
index 1d4f55d..41d491c 100644
--- a/runtime/syntax/scheme.vim
+++ b/runtime/syntax/scheme.vim
@@ -194,7 +194,6 @@
     syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature 
     syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export
     syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax
-    hi def link schemeExtSyntax Type
 
     syn keyword schemeExtFunc format system-type current-extension-compiler current-extension-linker
     syn keyword schemeExtFunc use-standard-linker use-standard-compiler
@@ -217,7 +216,6 @@
     syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch?
     " Command-line parsing
     syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each 
-    hi def link schemeExtFunc PreProc
 
     " syntax quoting, unquoting and quasiquotation
     syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL
@@ -230,6 +228,37 @@
     syn region schemeQuoted matchgroup=Delimiter start="#['`](" matchgroup=Delimiter end=")" contains=ALL
 endif
 
+
+if exists("b:is_chicken") || exists("is_chicken")
+    syn match schemeOther oneline    "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax oneline    "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+
+    syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
+    syn keyword schemeExtSyntax foreign-lambda foreign-lambda* 
+    syn keyword schemeExtSyntax let-optionals let-optionals* define-foreign-variable
+    syn keyword schemeExtFunc ##core#inline ##sys#error ##sys#update-errno
+
+    " here-string
+    syn region schemeString start=+#<<\s*\z(.*\)+ end=+^\z1$+
+ 
+    if filereadable(expand("<sfile>:p:h")."/cpp.vim")
+	unlet! b:current_syntax
+	syn include @ChickenC <sfile>:p:h/cpp.vim
+	syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-declare "+ end=+")\@=+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+foreign-declare\s*#<<\z(.*\)$+hs=s+15 end=+^\z1$+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse "+ end=+")\@=+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+foreign-parse\s*#<<\z(.*\)$+hs=s+13 end=+^\z1$+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse/spec "+ end=+")\@=+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+foreign-parse/spec\s*#<<\z(.*\)$+hs=s+18 end=+^\z1$+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+#>+ end=+<#+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+#>?+ end=+<#+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+#>!+ end=+<#+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+#>\$+ end=+<#+ contains=@ChickenC
+	syn region ChickenC matchgroup=schemeComment start=+#>%+ end=+<#+ contains=@ChickenC
+    endif
+
+endif
+
 " Synchronization and the wrapping up...
 
 syn sync match matchPlace grouphere NONE "^[^ \t]"
@@ -255,12 +284,14 @@
   HiLink schemeBoolean		Boolean
 
   HiLink schemeDelimiter	Delimiter
-  HiLink schemeConstant	Constant
+  HiLink schemeConstant		Constant
 
   HiLink schemeComment		Comment
   HiLink schemeMultilineComment	Comment
   HiLink schemeError		Error
 
+  HiLink schemeExtSyntax	Type
+  HiLink schemeExtFunc		PreProc
   delcommand HiLink
 endif