updated for version 7.2c-000
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 6221294..8bd597a 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across
 "            AUTOLOAD SECTION
-" Date:		Jul 12, 2008
-" Version:	127
+" Date:		Aug 01, 2008
+" Version:	131
 " Maintainer:	Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -27,7 +27,7 @@
  let s:WARNING = 1
  let s:ERROR   = 2
 endif
-let g:loaded_netrw = "v127"
+let g:loaded_netrw = "v131"
 
 " sanity checks
 if v:version < 700
@@ -76,7 +76,13 @@
   let g:netrw_ftp_cmd	= "ftp"
 endif
 if !exists("g:netrw_http_cmd")
- if executable("curl")
+ if executable("elinks")
+  let g:netrw_http_cmd = "elinks"
+  let g:netrw_http_xcmd= "-dump >"
+ elseif executable("links")
+  let g:netrw_http_cmd = "links"
+  let g:netrw_http_xcmd= "-dump >"
+ elseif executable("curl")
   let g:netrw_http_cmd	= "curl -o"
  elseif executable("wget")
   let g:netrw_http_cmd	= "wget -q -O"
@@ -359,6 +365,7 @@
 if !exists("g:netrw_tmpfile_escape")
  let g:netrw_tmpfile_escape= ' &;'
 endif
+let s:netrw_map_escape = "<|\n\r\\\<C-V>\""
 
 " BufEnter event ignored by decho when following variable is true
 "  Has a side effect that doau BufReadPost doesn't work, so
@@ -712,15 +719,16 @@
 "     call Decho("read via ftp+.netrc (method #2)")
      let netrw_fname= b:netrw_fname
      call s:SaveBufVars()|new|call s:RestoreBufVars()
+     let filtbuf= bufnr("%")
      setlocal ff=unix
-     exe "put ='".g:netrw_ftpmode."'"
-"     call Decho("filter input: ".getline('.'))
+     put =g:netrw_ftpmode
+"     call Decho("filter input: ".getline(line("$")))
      if exists("g:netrw_ftpextracmd")
-      exe "put ='".g:netrw_ftpextracmd."'"
-"      call Decho("filter input: ".getline('.'))
+      put =g:netrw_ftpextracmd
+"      call Decho("filter input: ".getline(line("$")))
      endif
-     exe "put ='".'get \"'.netrw_fname.'\" '.tmpfile."'"
-"     call Decho("filter input: ".getline('.'))
+     call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile)
+"     call Decho("filter input: ".getline(line("$")))
      if exists("g:netrw_port") && g:netrw_port != ""
 "      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1))
       exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1)
@@ -746,6 +754,7 @@
 "    call Decho("read via ftp+mipf (method #3)")
     let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
     call s:SaveBufVars()|new|call s:RestoreBufVars()
+    let filtbuf= bufnr("%")
     setlocal ff=unix
     if exists("g:netrw_port") && g:netrw_port != ""
      put ='open '.g:netrw_machine.' '.g:netrw_port
@@ -770,7 +779,7 @@
 "     call Decho("filter input: ".getline('.'))
     endif
     if exists("g:netrw_ftpextracmd")
-     exe "put ='".g:netrw_ftpextracmd."'"
+     put =g:netrw_ftpextracmd
 "     call Decho("filter input: ".getline('.'))
     endif
     put ='get \"'.netrw_fname.'\" '.tmpfile
@@ -820,15 +829,20 @@
      return
     endif
 
-    if match(b:netrw_fname,"#") == -1
-     " using g:netrw_http_cmd (usually wget or curl)
+    if match(b:netrw_fname,"#") == -1 || exists("g:netrw_http_xcmd")
+     " using g:netrw_http_cmd (usually elinks, links, curl, wget, or fetch)
 "     call Decho('using '.g:netrw_http_cmd.' (# not in b:netrw_fname<'.b:netrw_fname.">)")
-"     call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.netrw_fname,1))
-     exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)
+     if exists("g:netrw_http_xcmd")
+"      call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1))
+      exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)
+     else
+"      call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1))
+      exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)
+     endif
      let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
 
     else
-     " wget/curl plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
+     " wget/curl/fetch plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
 "     call Decho(("wget/curl plus jump (# in b:netrw_fname<".b:netrw_fname.">)")
      let netrw_html= substitute(b:netrw_fname,"#.*$","","")
      let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
@@ -1084,14 +1098,14 @@
     new
 "    call Decho("filter input window#".winnr())
     setlocal ff=unix
-    exe "put ='".g:netrw_ftpmode."'"
-"    call Decho("filter input: ".getline('.'))
+    put =g:netrw_ftpmode
+"    call Decho("filter input: ".getline('$'))
     if exists("g:netrw_ftpextracmd")
-     exe "put ='".g:netrw_ftpextracmd."'"
-"     call Decho("filter input: ".getline('.'))
+     put =g:netrw_ftpextracmd
+"     call Decho("filter input: ".getline("$"))
     endif
-    exe "put ='".'put \"'.tmpfile.'\" \"'.netrw_fname.'\"'."'"
-"    call Decho("filter input: ".getline('.'))
+    call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"')
+"    call Decho("filter input: ".getline("$"))
     if exists("g:netrw_port") && g:netrw_port != ""
 "     call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1))
      exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1)
@@ -1276,10 +1290,11 @@
    let i= 1
    while i <= a:0
     call netrw#NetRead(3,a:{i})
-"    call Decho("s:netread_tmpfile<".s:netrw_tmpfile.">")
+"    call Decho("(netrw#NetSource) s:netread_tmpfile<".s:netrw_tmpfile.">")
     if s:FileReadable(s:netrw_tmpfile)
-"     call Decho("exe so ".s:netrw_tmpfile)
-     exe "so ".s:netrw_tmpfile
+"     call Decho("(netrw#NetSource) exe so ".fnameescape(s:netrw_tmpfile))
+     exe "so ".fnameescape(s:netrw_tmpfile)
+"     call Decho("(netrw#NetSource) delete(".s:netrw_tmpfile.")")
      call delete(s:netrw_tmpfile)
      unlet s:netrw_tmpfile
     else
@@ -1654,6 +1669,7 @@
 fun! s:BrowserMaps(islocal)
 "  call Dfunc("s:BrowserMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">")
   if a:islocal
+"   call Decho("make local maps")
    nnoremap <buffer> <silent> <cr>	:call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr>
    nnoremap <buffer> <silent> -		:exe "norm! 0"<bar>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,'../'))<cr>
    nnoremap <buffer> <silent> a		:call <SID>NetrwHide(1)<cr>
@@ -1709,23 +1725,25 @@
    if s:didstarstar || !mapcheck("<s-up>","n")
     nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
    endif
+   let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape)
    if g:netrw_mousemaps == 1
     nnoremap <buffer> <silent> <leftmouse>   <leftmouse>:call <SID>NetrwLeftmouse(1)<cr>
     nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr>
     nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr>
-    exe 'nnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
-    exe 'vnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
+    exe 'nnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
+    exe 'vnoremap <buffer> <silent> <rightmouse>  <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
    endif
-   exe 'nnoremap <buffer> <silent> <del>	:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
-   exe 'vnoremap <buffer> <silent> <del>	:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
-   exe 'nnoremap <buffer> <silent> D		:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
-   exe 'vnoremap <buffer> <silent> D		:call <SID>NetrwLocalRm("'.b:netrw_curdir.'")<cr>'
-   exe 'nnoremap <buffer> <silent> R		:call <SID>NetrwLocalRename("'.b:netrw_curdir.'")<cr>'
-   exe 'vnoremap <buffer> <silent> R		:call <SID>NetrwLocalRename("'.b:netrw_curdir.'")<cr>'
+   exe 'nnoremap <buffer> <silent> <del>	:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
+   exe 'vnoremap <buffer> <silent> <del>	:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
+   exe 'nnoremap <buffer> <silent> D		:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
+   exe 'vnoremap <buffer> <silent> D		:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>'
+   exe 'nnoremap <buffer> <silent> R		:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>'
+   exe 'vnoremap <buffer> <silent> R		:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>'
    exe 'nnoremap <buffer> <silent> <Leader>m	:call <SID>NetrwMakeDir("")<cr>'
    nnoremap <buffer> <F1>		:he netrw-quickhelp<cr>
 
   else " remote
+"   call Decho("make remote maps")
    call s:RemotePathAnalysis(b:netrw_curdir)
    nnoremap <buffer> <silent> <cr>	:call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr>
    nnoremap <buffer> <silent> <c-l>	:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
@@ -1774,21 +1792,25 @@
    if !hasmapto('<Plug>NetrwRefresh')
     nmap <buffer> <c-l> <Plug>NetrwRefresh
    endif
+
+   let mapsafepath     = escape(s:path, s:netrw_map_escape)
+   let mapsafeusermach = escape(s:user.s:machine, s:netrw_map_escape)
+
    nnoremap <buffer> <silent> <Plug>NetrwRefresh		:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
    if g:netrw_mousemaps == 1
     nnoremap <buffer> <silent> <leftmouse>   <leftmouse>:call <SID>NetrwLeftmouse(0)<cr>
     nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr>
     nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr>
-    exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
-    exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
+    exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+    exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
    endif
-   exe 'nnoremap <buffer> <silent> <del>	:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
-   exe 'vnoremap <buffer> <silent> <del>	:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
-   exe 'nnoremap <buffer> <silent> d	:call <SID>NetrwMakeDir("'.s:user.s:machine.'")<cr>'
-   exe 'nnoremap <buffer> <silent> D	:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
-   exe 'vnoremap <buffer> <silent> D	:call <SID>NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")<cr>'
-   exe 'nnoremap <buffer> <silent> R	:call <SID>NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")<cr>'
-   exe 'vnoremap <buffer> <silent> R	:call <SID>NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")<cr>'
+   exe 'nnoremap <buffer> <silent> <del>	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+   exe 'vnoremap <buffer> <silent> <del>	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+   exe 'nnoremap <buffer> <silent> d	:call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>'
+   exe 'nnoremap <buffer> <silent> D	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+   exe 'vnoremap <buffer> <silent> D	:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+   exe 'nnoremap <buffer> <silent> R	:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
+   exe 'vnoremap <buffer> <silent> R	:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>'
    nnoremap <buffer> <F1>			:he netrw-quickhelp<cr>
   endif
   call s:SetRexDir(a:islocal,b:netrw_curdir)
@@ -1842,7 +1864,7 @@
    " change to the bookmarked directory
 "   call Decho("(user: <B>) change to the bookmarked directory")
    if exists("g:NETRW_BOOKMARKDIR_{v:count}")
-    exe "e ".g:NETRW_BOOKMARKDIR_{v:count}
+    exe "e ".fnameescape(g:NETRW_BOOKMARKDIR_{v:count})
    else
     echomsg "Sorry, bookmark#".v:count." doesn't exist!"
    endif
@@ -2340,8 +2362,8 @@
 "    let v:errmsg= "" " Decho
     let escdirname= fnameescape(dirname)
 "    call Decho("  errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">")
-"    call Decho('  exe silent! keepalt file '.fnameescape(escdirname))
-    exe 'silent! keepalt file '.fnameescape(escdirname)
+"    call Decho('  exe silent! keepalt file '.escdirname)
+    exe 'silent! keepalt file '.escdirname
 "    call Decho("  errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">")
    endif
 "   call Decho("  named enew buffer#".bufnr("%")."<".bufname("%").">")
@@ -3273,7 +3295,7 @@
      if starpat == 1
       " starpat=1: Explore *//pattern  (current directory only search for files containing pattern)
 "      call Decho("starpat=".starpat.": build *//pattern list")
-      exe "vimgrep /".pattern."/gj ".b:netrw_curdir."/*"
+      exe "vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*"
       let w:netrw_explore_list = map(getqflist(),'bufname(v:val.bufnr)')
       if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
 
@@ -3707,6 +3729,14 @@
 "                  of whatever may happen to be under the cursor at that
 "                  moment.  When the mouse and gui are available,
 "                  shift-leftmouse may also be used to mark files.
+"
+"  Creates two lists
+"    s:netrwmarkfilelist    -- holds complete paths to all marked files
+"    s:netrwmarkfilelist_#  -- holds list of marked files in current-buffer's directory (#==bufnr())
+"
+"  Creates a marked file match string
+"    s:netrwmarfilemtch_#   -- used with 2match to display marked files
+"
 fun! s:NetrwMarkFile(islocal,fname)
 "  call Dfunc("s:NetrwMarkFile(islocal=".a:islocal." fname<".a:fname.">)")
   let curbufnr= bufnr("%")
@@ -3826,7 +3856,7 @@
         let fname= shellescape(s:ComposePath(curdir,fname))
        endif
       else
-       let fname= shellescape(b:netrw_curdir.fname)
+       let fname= shellescape(b:netrw_curdir.fname,1)
       endif
       if executable(exe)
        if a:islocal
@@ -3886,7 +3916,7 @@
   if      a:islocal &&  s:netrwmftgt_islocal
    " Copy marked files, local directory to local directory
 "   call Decho("copy from local to local")
-   let args= join(map(copy(s:netrwmarkfilelist_{bufnr('%')}),"b:netrw_curdir.\"/\".shellescape(v:val)"))
+   let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"shellescape(b:netrw_curdir.\"/\".v:val)"))
 "   call Decho("system(".g:netrw_localcopycmd." ".args." ".shellescape(s:netrwmftgt).")")
    call system(s:WinPath(g:netrw_localcopycmd)." ".args." ".shellescape(s:netrwmftgt))
 
@@ -3914,7 +3944,7 @@
    if isdirectory(tmpdir)
     exe "keepjumps lcd ".fnameescape(tmpdir)
     call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir)
-    let localfiles= map(copy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")')
+    let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")')
     call s:NetrwUpload(localfiles,s:netrwmftgt)
     if getcwd() == tmpdir
      for fname in s:netrwmarkfilelist_{bufnr('%')}
@@ -3957,24 +3987,21 @@
 fun! s:NetrwMarkFileDiff(islocal)
 "  call Dfunc("s:NetrwMarkFileDiff(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">")
   let curbufnr= bufnr("%")
-  if exists("s:netrwmarkfilelist_{curbufnr}")
 
+  if exists("s:netrwmarkfilelist_{curbufnr}")
    let cnt    = 0
    let curdir = b:netrw_curdir
    for fname in s:netrwmarkfilelist
     let cnt= cnt + 1
-    if !a:islocal
-     let fname= curdir.fname
-    endif
     if cnt == 1
-"     call Decho("diffthis: ".fname)
-     exe "e ".fname
+"     call Decho("diffthis: fname<".fname.">")
+     exe "e ".fnameescape(fname)
      diffthis
     elseif cnt == 2 || cnt == 3
      vsplit
      wincmd l
 "     call Decho("diffthis: ".fname)
-     exe "e ".fname
+     exe "e ".fnameescape(fname)
      diffthis
     else
      break
@@ -3982,6 +4009,7 @@
    endfor
    call s:NetrwUnmarkList(curbufnr,curdir)
   endif
+
 "  call Dret("s:NetrwMarkFileDiff")
 endfun
 
@@ -3995,17 +4023,7 @@
   let curbufnr = bufnr("%")
   if exists("s:netrwmarkfilelist_{curbufnr}")
    call s:SetRexDir(a:islocal,curdir)
-   if a:islocal && g:netrw_keepdir
-    " use complete paths if its local and keepdir enabled
-    let flist= ""
-    for fname in s:netrwmarkfilelist
-"     let flist= flist." ".s:ComposePath(curdir,fname)
-     let flist= flist." ".fname
-    endfor
-   else
-"    let flist= substitute(escape(join(s:netrwmarkfilelist_{curbufnr},"\t"),' '),"\t",' ','g')
-    let flist= substitute(escape(join(s:netrwmarkfilelist,"\t"),' '),"\t",' ','g')
-   endif
+   let flist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
    " unmark markedfile list
 "   call s:NetrwUnmarkList(curbufnr,curdir)
    call s:NetrwUnmarkAll()
@@ -4138,17 +4156,11 @@
 fun! s:NetrwMarkFileGrep(islocal)
 "  call Dfunc("s:NetrwMarkFileGrep(islocal=".a:islocal.")")
   let svpos    = netrw#NetrwSavePosn()
-  let curdir   = b:netrw_curdir
   let curbufnr = bufnr("%")
 
   if exists("s:netrwmarkfilelist")
 "  call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">")
-   let netrwmarkfilelist= ""
-   for fname in s:netrwmarkfilelist
-"    call Decho("fname<".fname.">")
-    let fname             = escape(substitute(fname,"[\"']","","g")," ")
-    let netrwmarkfilelist = netrwmarkfilelist." ".fname
-   endfor
+   let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
    call s:NetrwUnmarkAll()
 
    " ask user for pattern
@@ -4295,7 +4307,7 @@
     1split
     " the autocmds will handle both local and remote files
 "    call Decho("exe silent e ".escape(fname,' '))
-    exe "silent e ".escape(fname,' ')
+    exe "silent e ".fnameescape(fname)
 "    call Decho("hardcopy")
     hardcopy
     q
@@ -4419,21 +4431,11 @@
 
   if exists("s:netrwmarkfilelist")
 "   call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">")
-   if a:islocal && g:netrw_keepdir
-    let netrwmarkfilelist= ""
-    for fname in s:netrwmarkfilelist
-"     let netrwmarkfilelist= netrwmarkfilelist." ".s:ComposePath(curdir,fname)
-     let netrwmarkfilelist= netrwmarkfilelist." ".fname
-    endfor
-   else
-    let netrwmarkfilelist= string(s:netrwmarkfilelist)
-    let netrwmarkfilelist= substitute(netrwmarkfilelist,'[[\],]','','g')
-   endif
+   let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "shellescape(v:val,".!a:islocal.")"))
    call s:NetrwUnmarkAll()
 
    if a:islocal
     if executable(g:netrw_ctags)
-     call map(netrwmarkfilelist,"shellescape(v:val)")
 "     call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")")
      call system(g:netrw_ctags." ".netrwmarkfilelist)
     else
@@ -4447,7 +4449,7 @@
     e tags
     let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','')
 "    call Decho("curdir<".curdir."> path<".path.">")
-    exe '%s/\t\(\S\+\)\t/\t'.escape(path,'/').'\1\t/e'
+    exe '%s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e'
     wq!
    endif
    2match none
@@ -4771,7 +4773,7 @@
      endfor
     else
      " transfer files with one command
-     let filelist= join(map(copy(fname),"shellescape(v:val)"))
+     let filelist= join(map(deepcopy(fname),"shellescape(v:val)"))
 "     call Decho("system(".g:netrw_localcopycmd." ".filelist." ".shellescape(topath).")")
      call system(g:netrw_localcopycmd." ".filelist." ".shellescape(topath))
     endif
@@ -4801,7 +4803,7 @@
     else
      let path= ""
     endif
-    let filelist= join(map(copy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1))'))
+    let filelist= join(map(deepcopy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1)'))
 "    call Decho("exe ".s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1))
     exe s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1)
 
@@ -4812,7 +4814,7 @@
      let tmpbufnr= bufnr("%")
      setlocal ff=unix
      if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
-      exe "put ='".g:netrw_ftpmode."'"
+      put =g:netrw_ftpmode
 "      call Decho("filter input: ".getline('$'))
      endif
 
@@ -4822,7 +4824,7 @@
      endif
 
      if exists("g:netrw_ftpextracmd")
-      exe "put ='".g:netrw_ftpextracmd."'"
+      put =g:netrw_ftpextracmd
 "      call Decho("filter input: ".getline('$'))
      endif
      for fname in fnamelist
@@ -4880,12 +4882,12 @@
     endif
 
     if exists("g:netrw_ftpextracmd")
-     exe "put ='".g:netrw_ftpextracmd."'"
+     put =g:netrw_ftpextracmd
 "     call Decho("filter input: ".getline('$'))
     endif
 
     if exists("g:netrw_ftpextracmd")
-     exe "put ='".g:netrw_ftpextracmd."'"
+     put =g:netrw_ftpextracmd
 "     call Decho("filter input: ".getline('$'))
     endif
     for fname in fnamelist
@@ -5053,15 +5055,13 @@
    " handle uploading a single file using NetWrite
 "   call Decho("handle uploading a single file via NetWrite")
    1split
-   let efname= escape(a:fname,g:netrw_fname_escape)
-"   call Decho("exe e ".efname)
-   exe "e ".efname
+"   call Decho("exe e ".fnameescape(a:fname))
+   exe "e ".fnameescape(a:fname)
 "   call Decho("now locally editing<".expand("%").">, has ".line("$")." lines")
    if a:tgt =~ '/$'
     let wfname= substitute(a:fname,'^.*/','','')
-    let wfname= escape(a:tgt.wfname,g:netrw_fname_escape)
 "    call Decho("exe w! ".fnameescape(wfname))
-    exe "w! ".fnameescape(wfname)
+    exe "w! ".fnameescape(a:tgt.wfname)
    else
 "    call Decho("writing local->remote: exe w ".fnameescape(a:tgt))
     exe "w ".fnameescape(a:tgt)
@@ -5075,8 +5075,8 @@
    let curdir= getcwd()
    if a:tgt =~ '^scp:'
     exe "keepjumps silent lcd ".fnameescape(fromdir)
-    let filelist= copy(s:netrwmarkfilelist_{bufnr('%')})
-    let args    = join(map(filelist,"shellescape(v:val)"))
+    let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')})
+    let args    = join(map(filelist,"shellescape(v:val, 1)"))
     if exists("g:netrw_port") && g:netrw_port != ""
      let useport= " ".g:netrw_scpport." ".g:netrw_port
     else
@@ -5097,11 +5097,11 @@
      silent keepjumps new
 "     call Decho("filter input window#".winnr())
 
-     exe "put ='".g:netrw_ftpmode."'"
+     put =g:netrw_ftpmode
 "     call Decho("filter input: ".getline('$'))
 
      if exists("g:netrw_ftpextracmd")
-      exe "put ='".g:netrw_ftpextracmd."'"
+      put =g:netrw_ftpextracmd
 "      call Decho("filter input: ".getline('$'))
      endif
 
@@ -5166,7 +5166,7 @@
      endif
 
      if exists("g:netrw_ftpextracmd")
-      exe "put ='".g:netrw_ftpextracmd."'"
+      put =g:netrw_ftpextracmd
 "      call Decho("filter input: ".getline('$'))
      endif
 
@@ -5210,7 +5210,7 @@
   call s:NetrwSafeOptions()
   if has("quickfix")
    if !isdirectory(a:path)
-    exe (g:netrw_preview? "vert " : "")."pedit ".escape(a:path,g:netrw_fname_escape)
+    exe (g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path)
    elseif !exists("g:netrw_quiet")
     call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38)
    endif
@@ -6027,8 +6027,8 @@
    let listcmd= s:MakeSshCmd(g:netrw_list_cmd)
 "   call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)")
    if g:netrw_scp_cmd =~ '^pscp'
-"    call Decho("1: exe silent r! ".listcmd.s:path)
-    exe "silent r! ".listcmd.s:path
+"    call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1))
+    exe "silent r! ".listcmd.shellescape(s:path, 1)
     " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like
     g/^Listing directory/d
     g/^d[-rwx][-rwx][-rwx]/s+$+/+e
@@ -6286,7 +6286,7 @@
     put ='cd \"'.a:path.'\"'
    endif
    if exists("g:netrw_ftpextracmd")
-    exe "put ='".g:netrw_ftpextracmd."'"
+    put =g:netrw_ftpextracmd
 "    call Decho("filter input: ".getline('.'))
    endif
    call setline(line("$")+1,a:listcmd)
@@ -6320,7 +6320,7 @@
     put ='cd \"'.a:path.'\"'
    endif
    if exists("g:netrw_ftpextracmd")
-    exe "put ='".g:netrw_ftpextracmd."'"
+    put =g:netrw_ftpextracmd
 "    call Decho("filter input: ".getline('.'))
    endif
    call setline(line("$")+1,a:listcmd)
@@ -6669,7 +6669,7 @@
    if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1
     " wipe out any non-displaying netrw buffer
 "    call Decho("wiping  buf#".ibuf,"<".bufname(ibuf).">")
-    exe "silent! bd ".ibuf
+    exe "silent! bd ".fnameescape(ibuf)
     call remove(s:netrw_browselist,ibl)
 "    call Decho("browselist=".string(s:netrw_browselist))
     continue
@@ -6860,7 +6860,7 @@
       let newname = substitute(oldname,subfrom,subto,'')
      endif
     endif
-    let ret= rename(oldname,newname)
+    call rename(oldname,newname)
    endfor
    2match none
    unlet s:netrwmarkfilelist_{bufnr("%")}
@@ -6891,7 +6891,7 @@
     let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
     call inputrestore()
 
-    let ret= rename(oldname,newname)
+    call rename(oldname,newname)
 "   call Decho("renaming <".oldname."> to <".newname.">")
 
     let ctr= ctr + 1
@@ -7570,22 +7570,24 @@
 "  call Dfunc("s:SetRexDir(islocal=".a:islocal." dirname<".a:dirname.">)")
   " set up Rex and leftmouse-double-click
   if a:islocal
-   exe 'com! Rexplore call s:NetrwRexplore(1,"'.a:dirname.'")'
+   exe 'com! Rexplore call s:NetrwRexplore(1,"'.escape(a:dirname,'"\').'")'
    if g:netrw_retmap
     silent! unmap <2-leftmouse>
     if !hasmapto("<Plug>NetrwReturn")
      nmap <unique> <silent> <2-leftmouse>	<Plug>NetrwReturn
     endif
-    exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(1,"'.a:dirname.'")<cr>'
+    let dir = escape(a:dirname, s:netrw_map_escape)
+    exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(1,"'.dir.'")<cr>'
    endif
   else
-   exe 'com! Rexplore call s:NetrwRexplore(0,"'.a:dirname.'")'
+   exe 'com! Rexplore call s:NetrwRexplore(0,"'.escape(a:dirname,'"\').'")'
    if g:netrw_retmap
     silent! unmap <2-leftmouse>
     if !hasmapto("<Plug>NetrwReturn")
      nmap <unique> <silent> <2-leftmouse>	<Plug>NetrwReturn
     endif
-    exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(0,"'.a:dirname.'")<cr>'
+    let dir = escape(a:dirname, s:netrw_map_escape)
+    exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(0,"'.dir.'")<cr>'
    endif
   endif
 "  call Dret("s:SetRexDir")
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index b1529d6..fc168e8 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -1,7 +1,7 @@
 " tar.vim: Handles browsing tarfiles
 "            AUTOLOAD PORTION
-" Date:			Jul 12, 2008
-" Version:		19 + changes by Bram
+" Date:			Jul 30, 2008
+" Version:		20
 " Maintainer:	Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " License:		Vim License  (see vim's :help license)
 "
@@ -24,7 +24,7 @@
 if &cp || exists("g:loaded_tar") || v:version < 700
  finish
 endif
-let g:loaded_tar= "v19+b"
+let g:loaded_tar= "v20"
 "call Decho("loading autoload/tar.vim")
 if v:version < 701 || (v:version == 701 && !has("patch299"))
  echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299"
diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim
index d69c645..4f6292b 100644
--- a/runtime/autoload/vimball.vim
+++ b/runtime/autoload/vimball.vim
@@ -1,7 +1,7 @@
 " vimball.vim : construct a file containing both paths and files
 " Author:	Charles E. Campbell, Jr.
-" Date:		Jun 05, 2008
-" Version:	27
+" Date:		Jul 30, 2008
+" Version:	29
 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
 " Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.
 "            The VIM LICENSE applies to Vimball.vim, and Vimball.txt
@@ -15,7 +15,7 @@
  finish
 endif
 let s:keepcpo        = &cpo
-let g:loaded_vimball = "v27"
+let g:loaded_vimball = "v29"
 set cpo&vim
 "DechoTabOn
 
@@ -169,9 +169,8 @@
    call setline(lastline+1,0)
 
    " write the file from the tab
-   let svfilepath= s:Path(svfile,'')
-"   call Decho("exe $r ".fnameescape(svfilepath))
-   exe "$r ".fnameescape(svfilepath)
+"   call Decho("exe $r ".fnameescape(svfile))
+   exe "$r ".fnameescape(svfile)
 
    call setline(lastline+1,line("$") - lastline - 1)
 "   call Decho("lastline=".lastline." line$=".line("$"))
@@ -186,13 +185,11 @@
   call s:ChgDir(curdir)
   setlocal ff=unix
   if a:writelevel
-   let vbnamepath= s:Path(vbname,'')
-"   call Decho("exe w! ".fnameescape(vbnamepath))
-   exe "w! ".fnameescape(vbnamepath)
+"   call Decho("exe w! ".fnameescape(vbname))
+   exe "w! ".fnameescape(vbname)
   else
-   let vbnamepath= s:Path(vbname,'')
-"   call Decho("exe w ".fnameescape(vbnamepath))
-   exe "w ".fnameescape(vbnamepath)
+"   call Decho("exe w ".fnameescape(vbname))
+   exe "w ".fnameescape(vbname)
   endif
 "  call Decho("Vimball<".vbname."> created")
   echo "Vimball<".vbname."> created"
@@ -215,8 +212,8 @@
 fun! vimball#Vimball(really,...)
 "  call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
 
-  if v:version < 701 || (v:version == 701 && !has("patch299"))
-   echoerr "This version of vimball requires vim 7.1 with patch 299"
+  if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
+   echoerr "your vim is missing the fnameescape() function"
 "   call Dret("vimball#Vimball : needs 7.1 with patch 299")
    return
   endif
@@ -338,7 +335,7 @@
 
    " write tab to file
    if a:really
-    let fnamepath= s:Path(home."/".fname,'')
+    let fnamepath= home."/".fname
 "    call Decho("exe w! ".fnameescape(fnamepath))
 	exe "silent w! ".fnameescape(fnamepath)
     echo "wrote ".fnamepath
@@ -364,9 +361,9 @@
   " set up help
 "  call Decho("about to set up help: didhelp<".didhelp.">")
   if didhelp != ""
-   let htpath= s:Path(home."/".didhelp,"")
+   let htpath= home."/".didhelp
 "   call Decho("exe helptags ".htpath)
-   exe "helptags ".htpath
+   exe "helptags ".fnameescape(htpath)
    echo "did helptags"
   endif
 
@@ -578,27 +575,6 @@
 endfun
 
 " ---------------------------------------------------------------------
-" s:Path: prepend and append quotes and do escaping {{{2
-fun! s:Path(cmd,quote)
-"  call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">")
-  if (has("win32") || has("win95") || has("win64") || has("win16"))
-"   let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
-   let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote
-"   call Decho("cmdpath<".cmdpath."> (win32 mod)")
-  else
-   let cmdpath= a:quote.a:cmd.a:quote
-"   call Decho("cmdpath<".cmdpath."> (not-win32 mod)")
-  endif
-  if a:quote == "" && g:vimball_path_escape !~ ' '
-   let cmdpath= escape(cmdpath,' ')
-"   call Decho("cmdpath<".cmdpath."> (empty quote case)")
-  endif
-  let cmdpath= escape(cmdpath,g:vimball_path_escape)
-"  call Dret("Path <".cmdpath.">")
-  return cmdpath
-endfun
-
-" ---------------------------------------------------------------------
 " s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
 fun! s:RecordInVar(home,cmd)
 "  call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)")
@@ -719,14 +695,14 @@
    let s:acdkeep = &acd
   endif
   let s:eikeep  = &ei
-  let s:fenkeep = &fen
+  let s:fenkeep = &l:fen
   let s:hidkeep = &hidden
   let s:ickeep  = &ic
   let s:lzkeep  = &lz
   let s:pmkeep  = &pm
   let s:repkeep = &report
   let s:vekeep  = &ve
-  let s:ffkeep  = &ff
+  let s:ffkeep  = &l:ff
   if exists("&acd")
    setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
   else
@@ -745,7 +721,7 @@
   if exists("&acd")
    let &acd   = s:acdkeep
   endif
-  let &fen    = s:fenkeep
+  let &l:fen  = s:fenkeep
   let &hidden = s:hidkeep
   let &ic     = s:ickeep
   let &lz     = s:lzkeep
@@ -753,7 +729,7 @@
   let &report = s:repkeep
   let &ve     = s:vekeep
   let &ei     = s:eikeep
-  let &ff     = s:ffkeep
+  let &l:ff   = s:ffkeep
   if s:makeep[0] != 0
    " restore mark a
 "   call Decho("restore mark-a: makeep=".string(makeep))
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index b35a411..af56944 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -1,7 +1,7 @@
 " zip.vim: Handles browsing zipfiles
 "            AUTOLOAD PORTION
-" Date:		Jul 12, 2008
-" Version:	21 (modified by Bram)
+" Date:		Jul 30, 2008
+" Version:	22
 " Maintainer:	Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " License:	Vim License  (see vim's :help license)
 " Copyright:    Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
@@ -22,7 +22,7 @@
  finish
 endif
 
-let g:loaded_zip     = "v21+b"
+let g:loaded_zip     = "v22"
 let s:zipfile_escape = ' ?&;\'
 let s:ERROR          = 2
 let s:WARNING        = 1
@@ -58,6 +58,12 @@
   set report=10
 
   " sanity checks
+  if !exists("*fnameescape")
+   if &verbose > 1
+    echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
+   endif
+   return
+  endif
   if !executable(g:zip_unzipcmd)
    redraw!
    echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
@@ -99,8 +105,8 @@
   0d
   $
 
-"  call Decho("exe silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1))
-  exe "silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1)
+"  call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
+  exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)
   if v:shell_error != 0
    redraw!
    echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
@@ -193,8 +199,8 @@
 "  call Decho("zipfile<".zipfile.">")
 "  call Decho("fname  <".fname.">")
 
-"  call Decho("exe r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
-  exe "silent r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
+"  call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
+  exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
 
   " cleanup
   0d
@@ -286,8 +292,8 @@
     let fname = substitute(fname, '[', '[[]', 'g')
   endif
 
-"  call Decho(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0))
-  call system(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0))
+"  call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
+  call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
   if v:shell_error != 0
    redraw!
    echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
@@ -342,9 +348,8 @@
 fun! s:ChgDir(newdir,errlvl,errmsg)
 "  call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl."  errmsg<".a:errmsg.">)")
 
-
   try
-   exe "cd ".fnameescape(newdir)
+   exe "cd ".fnameescape(a:newdir)
   catch /^Vim\%((\a\+)\)\=:E344/
    redraw!
    if a:errlvl == s:NOTE
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index c1800ea..4117122 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -1,6 +1,6 @@
 " Vim color file
 " Maintainer:	Bohdan Vlasyuk <bohdan@vstu.edu.ua>
-" Last Change:	2006 Apr 30
+" Last Change:	2008 Jul 18
 
 " darkblue -- for those who prefer dark background
 " [note: looks bit uglier with come terminal palettes,
@@ -58,3 +58,9 @@
 hi type		ctermfg=green guifg=#60ff60 gui=none cterm=none
 hi Underlined	cterm=underline term=underline
 hi Ignore	guifg=bg ctermfg=bg
+
+" suggested by tigmoid, 2008 Jul 18
+hi Pmenu guifg=#c0c0c0 guibg=#404080
+hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
+hi PmenuSbar guifg=blue guibg=darkgray
+hi PmenuThumb guifg=#c0c0c0
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 3a289d7..2f69750 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -287,6 +287,11 @@
 	vimdiff-it.UTF-8.1 \
 	vimtutor-it.UTF-8.1 \
 	xxd-it.UTF-8.1 \
+	vim-pl.UTF-8.1 \
+	evim-pl.UTF-8.1 \
+	vimdiff-pl.UTF-8.1 \
+	vimtutor-pl.UTF-8.1 \
+	xxd-pl.UTF-8.1 \
 	vim-ru.UTF-8.1 \
 	evim-ru.UTF-8.1 \
 	vimdiff-ru.UTF-8.1 \
@@ -296,7 +301,7 @@
 .SUFFIXES:
 .SUFFIXES: .c .o .txt .html
 
-all: tags vim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
+all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
 
 # Use Vim to generate the tags file.  Can only be used when Vim has been
 # compiled and installed.  Supports multiple languages.
@@ -314,6 +319,9 @@
 vim.man: vim.1
 	nroff -man vim.1 | sed -e s/.//g > vim.man
 
+evim.man: evim.1
+	nroff -man evim.1 | sed -e s/.//g > evim.man
+
 vimdiff.man: vimdiff.1
 	nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man
 
@@ -445,6 +453,21 @@
 xxd-it.UTF-8.1: xxd-it.1
 	iconv -f latin1 -t utf-8 $< >$@
 
+vim-pl.UTF-8.1: vim-pl.1
+	iconv -f latin2 -t utf-8 $< >$@
+
+evim-pl.UTF-8.1: evim-pl.1
+	iconv -f latin2 -t utf-8 $< >$@
+
+vimdiff-pl.UTF-8.1: vimdiff-pl.1
+	iconv -f latin2 -t utf-8 $< >$@
+
+vimtutor-pl.UTF-8.1: vimtutor-pl.1
+	iconv -f latin2 -t utf-8 $< >$@
+
+xxd-pl.UTF-8.1: xxd-pl.1
+	iconv -f latin2 -t utf-8 $< >$@
+
 vim-ru.UTF-8.1: vim-ru.1
 	iconv -f KOI8-R -t utf-8 $< >$@
 
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index dc8e9b1..164764c 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt*	For Vim version 7.2b.  Last change: 2005 Mar 29
+*arabic.txt*	For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Nadim Shaikli
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index e892f4c..271dd5c 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.2b.  Last change: 2008 Jun 27
+*autocmd.txt*   For Vim version 7.2c.  Last change: 2008 Jun 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 65af5fc..e38cc24 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.2b.  Last change: 2008 Jul 09
+*change.txt*    For Vim version 7.2c.  Last change: 2008 Jul 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1561,10 +1561,12 @@
 
 			With [n] sorting is done on the first decimal number
 			in the line (after or inside a {pattern} match).
+			One leading '-' is included in the number.
 
 			With [x] sorting is done on the first hexadecimal
 			number in the line (after or inside a {pattern}
 			match).  A leading "0x" or "0X" is ignored.
+			One leading '-' is included in the number.
 
 			With [o] sorting is done on the first octal number in
 			the line (after or inside a {pattern} match).
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 8f577c8..66a8de3 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 7.2b.  Last change: 2008 Jul 11
+*cmdline.txt*   For Vim version 7.2c.  Last change: 2008 Jul 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -99,19 +99,20 @@
 		cursor to end of command-line
 
 							*c_<LeftMouse>*
-<LeftMouse>	cursor to position of mouse click.
+<LeftMouse>	Move the cursor to the position of the mouse click.
 
 CTRL-H							*c_<BS>* *c_CTRL-H*
-<BS>		delete the character in front of the cursor (see |:fixdel| if
+<BS>		Delete the character in front of the cursor (see |:fixdel| if
 		your <BS> key does not do what you want).
 							*c_<Del>*
-<Del>		delete the character under the cursor (at end of line:
+<Del>		Delete the character under the cursor (at end of line:
 		character before the cursor) (see |:fixdel| if your <Del>
 		key does not do what you want).
 							*c_CTRL-W*
-CTRL-W		delete the word before the cursor
+CTRL-W		Delete the |word| before the cursor.  This depends on the
+		'iskeyword' option.
 							*c_CTRL-U*
-CTRL-U		remove all characters between the cursor position and
+CTRL-U		Remove all characters between the cursor position and
 		the beginning of the line.  Previous versions of vim
 		deleted all characters on the line.  If that is the
 		preferred behavior, add the following to your .vimrc: >
@@ -997,7 +998,7 @@
 If you would like to execute the command under the cursor and then have the
 command-line window open again, you may find this mapping useful: >
 
-	:map <F5> <CR>q:
+	:autocmd CmdwinEnter * map <buffer> <F5> <CR>q:
 
 
 VARIOUS
@@ -1044,9 +1045,9 @@
 specifically for the command-line window.  Be careful not to cause side
 effects!
 Example: >
-	:au CmdwinEnter :  let b:cpt_save = &cpt | set cpt=v
+	:au CmdwinEnter :  let b:cpt_save = &cpt | set cpt=.
 	:au CmdwinLeave :  let &cpt = b:cpt_save
-This sets 'complete' to use command-line completion in Insert mode for CTRL-N.
+This sets 'complete' to use completion in the current window for |i_CTRL-N|.
 Another example: >
 	:au CmdwinEnter [/?]  startinsert
 This will make Vim start in Insert mode in the command-line window.
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 1eb20af..aac589f 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -1,4 +1,4 @@
-*debug.txt*     For Vim version 7.2b.  Last change: 2006 May 01
+*debug.txt*     For Vim version 7.2c.  Last change: 2006 May 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index ea9858a..dfb302d 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 7.2b.  Last change: 2005 Mar 29
+*debugger.txt*  For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 85bf1c5..d18b954 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.2b.  Last change: 2007 May 11
+*develop.txt*   For Vim version 7.2c.  Last change: 2007 May 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 379f6a6..2177c56 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,12 +1,12 @@
-*diff.txt*      For Vim version 7.2b.  Last change: 2006 Oct 02
+*diff.txt*      For Vim version 7.2c.  Last change: 2008 Jul 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 
 
 				*diff* *vimdiff* *gvimdiff* *diff-mode*
-This file describes the +diff feature: Showing differences between two or
-three versions of the same file.
+This file describes the +diff feature: Showing differences between two,
+three or four versions of the same file.
 
 The basics are explained in section |08.7| of the user manual.
 
@@ -49,7 +49,7 @@
 using the |-O| argument.  This uses vertical splits.  If you prefer horizontal
 splits add the |-o| argument: >
 
-	vimdiff -o file1 file2 [file3]
+	vimdiff -o file1 file2 [file3 [file4]]
 
 If you always prefer horizontal splits include "horizontal" in 'diffopt'.
 
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index b15651d..7cc2558 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 7.2b.  Last change: 2007 Sep 10
+*digraph.txt*   For Vim version 7.2c.  Last change: 2008 Jul 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -53,7 +53,9 @@
 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.
+conversion to be available, it might fail.  For the NUL character you will see
+"10".  That's because NUL characters are internally represented with a NL
+character.  When you write the file it will become a NUL character.
 
 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
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 65a1134..05a9e14 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.2b.  Last change: 2008 Jul 05
+*editing.txt*   For Vim version 7.2c.  Last change: 2008 Jul 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 20fa361..ffe5ea9 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.2b.  Last change: 2008 Jul 09
+*eval.txt*	For Vim version 7.2c.  Last change: 2008 Jul 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -967,11 +967,16 @@
 	3.		empty {M}
 	1e40		missing .{M}
 
+							*float-pi* *float-e*
+A few useful values to copy&paste: >
+	:let pi = 3.14159265359
+	:let e  = 2.71828182846
+
 Rationale:
 Before floating point was introduced, the text "123.456" was interpreted as
 the two numbers "123" and "456", both converted to a string and concatenated,
 resulting in the string "123456".  Since this was considered pointless, and we
-could not find it actually being used in Vim scripts, this backwards
+could not find it intentionally being used in Vim scripts, this backwards
 incompatibility was accepted in favor of being able to use the normal notation
 for floating point numbers.
 
@@ -4963,9 +4968,16 @@
 		and replace all "'" with "'\''".
 		When the {special} argument is present and it's a non-zero
 		Number or a non-empty String (|non-zero-arg|), then special
-		items such as "%", "#" and "<cword>" will be preceded by a
-		backslash.  This backslash will be removed again by the |:!|
+		items such as "!", "%", "#" and "<cword>" will be preceded by
+		a backslash.  This backslash will be removed again by the |:!|
 		command.
+		The "!" character will be escaped (again with a |non-zero-arg|
+		{special}) when 'shell' contains "csh" in the tail.  That is
+		because for csh and tcsh "!" is used for history replacement
+		even when inside single quotes.
+		The <NL> character is also escaped.  With a |non-zero-arg|
+		{special} and 'shell' containing "csh" in the tail it's
+		escaped a second time.
 		Example of use with a |:!| command: >
 		    :exe '!dir ' . shellescape(expand('<cfile>'), 1)
 <		This results in a directory listing for the file under the
@@ -5918,7 +5930,7 @@
 A function local to a script must start with "s:".  A local script function
 can only be called from within the script and from functions, user commands
 and autocommands defined in the script.  It is also possible to call the
-function from a mappings defined in the script, but then |<SID>| must be used
+function from a mapping defined in the script, but then |<SID>| must be used
 instead of "s:" when the mapping is expanded outside of the script.
 
 					*:fu* *:function* *E128* *E129* *E123*
@@ -6028,7 +6040,7 @@
 that "a:1" is the same as "a:000[0]".
 								*E742*
 The a: scope and the variables in it cannot be changed, they are fixed.
-However, if a |List| or |Dictionary| is used, you can changes their contents.
+However, if a |List| or |Dictionary| is used, you can change their contents.
 Thus you can pass a |List| to a function and have the function add an item to
 it.  If you want to make sure the function cannot change a |List| or
 |Dictionary| use |:lockvar|.
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 5a42e43..f044e0f 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt*     For Vim version 7.2b.  Last change: 2005 Mar 29
+*farsi.txt*     For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 4bff42d..4b5ac9e 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 7.2b.  Last change: 2008 Jun 27
+*filetype.txt*  For Vim version 7.2c.  Last change: 2008 Jul 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -482,6 +482,29 @@
 			The default is '^\s*$' which finds lines that contain
 			only whitespace or are completely empty.
 
+b:changelog_name					*b:changelog_name*
+			Name of the ChangeLog file to look for.
+			The default is 'ChangeLog'.
+
+b:changelog_path
+			Path of the ChangeLog to use for the current buffer.
+			The default is empty, thus looking for a file named
+			|b:changelog_name| in the same directory as the
+			current buffer.  If not found, the parent directory of
+			the current buffer is searched.  This continues
+			recursively until a file is found or there are no more
+			parent directories to search.
+
+b:changelog_entry_prefix
+			Name of a function to call to generate a prefix to a
+			new entry.  This function takes no arguments and
+			should return a string containing the prefix.
+			Returning an empty prefix is fine.
+			The default generates the shortest path between the
+			ChangeLog's pathname and the current buffers pathname.
+			In the future, it will also be possible to use other
+			variable contexts for this variable, for example, g:.
+
 The Changelog entries are inserted where they add the least amount of text.
 After figuring out the current date and user, the file is searched for an
 entry beginning with the current date and user and if found adds another item
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 8a8d800..f4aa799 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt*      For Vim version 7.2b.  Last change: 2007 May 11
+*fold.txt*      For Vim version 7.2c.  Last change: 2007 May 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 621d583..92d1433 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt*	For Vim version 7.2b.  Last change: 2008 Jun 21
+*ft_ada.txt*	For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		    ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index 8d236a1..38b5b58 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -1,4 +1,4 @@
-*ft_sql.txt*	For Vim version 7.2b.  Last change: Wed Apr 26 2006 3:05:33 PM
+*ft_sql.txt*	For Vim version 7.2c.  Last change: Wed Apr 26 2006 3:05:33 PM
 
 by David Fishburn
 
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 58123b1..c3b84c0 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.2b.  Last change: 2008 Jun 14
+*gui.txt*       For Vim version 7.2c.  Last change: 2008 Jun 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_w16.txt b/runtime/doc/gui_w16.txt
index db1f831..e75416a 100644
--- a/runtime/doc/gui_w16.txt
+++ b/runtime/doc/gui_w16.txt
@@ -1,4 +1,4 @@
-*gui_w16.txt*   For Vim version 7.2b.  Last change: 2005 Mar 29
+*gui_w16.txt*   For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 85b910f..ed42122 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 7.2b.  Last change: 2007 Aug 30
+*gui_w32.txt*   For Vim version 7.2c.  Last change: 2007 Aug 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index ff84856..d33f56b 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.2b.  Last change: 2007 Dec 09
+*gui_x11.txt*   For Vim version 7.2c.  Last change: 2007 Dec 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 29a828a..c743fc6 100644
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -1,4 +1,4 @@
-*hangulin.txt*  For Vim version 7.2b.  Last change: 2006 Apr 02
+*hangulin.txt*  For Vim version 7.2c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index d28c33d..c9b141f 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt*    For Vim version 7.2b.  Last change: 2007 Jun 14
+*hebrew.txt*    For Vim version 7.2c.  Last change: 2007 Jun 14
 
 
 	   VIM REFERENCE MANUAL    by Ron Aaron (and Avner Lottem)
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index e81dd3a..db3f1b6 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 7.2b.  Last change: 2008 Jun 21
+*help.txt*	For Vim version 7.2c.  Last change: 2008 Jul 21
 
 			VIM - main help file
 									 k
@@ -126,7 +126,7 @@
 |tabpage.txt|	commands for using multiple tab pages
 |syntax.txt|	syntax highlighting
 |spell.txt|	spell checking
-|diff.txt|	working with two or three versions of the same file
+|diff.txt|	working with two to four versions of the same file
 |autocmd.txt|	automatically executing commands on an event
 |filetype.txt|	settings done specifically for a type of file
 |eval.txt|	expression evaluation, conditional commands
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index fbad7be..3e2bf25 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,4 +1,4 @@
-*howto.txt*	For Vim version 7.2b.  Last change: 2006 Apr 02
+*howto.txt*	For Vim version 7.2c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 97bb4b1..290e2f2 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt*  For Vim version 7.2b.  Last change: 2005 Mar 29
+*if_cscop.txt*  For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Andy Kahn
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index 559c439..84e90dd 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.2b.  Last change: 2008 Jun 28
+*if_mzsch.txt*  For Vim version 7.2c.  Last change: 2008 Jun 28
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index d1a3063..6a31d3a 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 7.2b.  Last change: 2007 May 10
+*if_ole.txt*    For Vim version 7.2c.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 97e99b9..aa9cd25 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 7.2b.  Last change: 2006 Mar 06
+*if_perl.txt*   For Vim version 7.2c.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index efdc37e..bc455e2 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.2b.  Last change: 2006 Apr 30
+*if_pyth.txt*   For Vim version 7.2c.  Last change: 2006 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index 6de1f10..836cb85 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 7.2b.  Last change: 2006 Apr 30
+*if_ruby.txt*   For Vim version 7.2c.  Last change: 2006 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt
index 3129c14..c5e2996 100644
--- a/runtime/doc/if_sniff.txt
+++ b/runtime/doc/if_sniff.txt
@@ -1,4 +1,4 @@
-*if_sniff.txt*	For Vim version 7.2b.  Last change: 2005 Mar 29
+*if_sniff.txt*	For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index a9f5af7..223d365 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,4 +1,4 @@
-*if_tcl.txt*    For Vim version 7.2b.  Last change: 2008 Jun 26
+*if_tcl.txt*    For Vim version 7.2c.  Last change: 2008 Jun 26
 
 
 		  VIM REFERENCE MANUAL    by Ingo Wilken
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 542e03d..ffd366d 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.2b.  Last change: 2008 Jun 30
+*indent.txt*    For Vim version 7.2c.  Last change: 2008 Jul 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -584,8 +584,8 @@
 PYTHON							*ft-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.
+given are 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'
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 35f5044..731a607 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.2b.  Last change: 2008 May 04
+*index.txt*     For Vim version 7.2c.  Last change: 2008 May 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 6752ba6..51f0657 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.2b.  Last change: 2008 Jun 21
+*insert.txt*    For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index ac750ee..9a27cce 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.2b.  Last change: 2008 Jun 24
+*intro.txt*     For Vim version 7.2c.  Last change: 2008 Jun 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 131e1bd..06eaa4f 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.2b.  Last change: 2008 Jul 09
+*map.txt*       For Vim version 7.2c.  Last change: 2008 Jul 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 60445d1..6633fbe 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.2b.  Last change: 2008 Jun 21
+*mbyte.txt*     For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 4731a71..cd95889 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 7.2b.  Last change: 2007 Aug 19
+*message.txt*   For Vim version 7.2c.  Last change: 2007 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index d214c27..b8ce3cc 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 7.2b.  Last change: 2008 Jun 08
+*mlang.txt*     For Vim version 7.2c.  Last change: 2008 Jun 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index c1b8d38..9b8cd0b 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.2b.  Last change: 2008 May 02
+*motion.txt*    For Vim version 7.2c.  Last change: 2008 Aug 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -851,16 +851,16 @@
 was made yet in the current file.
 
 							*'<* *`<*
-'<  `<			To the first character of the last selected Visual
-			area in the current buffer.  For block mode it may
-			also be the last character in the first line (to be
-			able to define the block).  {not in Vi}.
+'<  `<			To the first line or character of the last selected
+			Visual area in the current buffer.  For block mode it
+			may also be the last character in the first line (to
+			be able to define the block).  {not in Vi}.
 
 							*'>* *`>*
-'>  `>			To the last character of the last selected Visual
-			area in the current buffer.  For block mode it may
-			also be the first character of the last line (to be
-			able to define the block).  Note that 'selection'
+'>  `>			To the last line or character of the last selected
+			Visual area in the current buffer.  For block mode it
+			may also be the first character of the last line (to
+			be able to define the block).  Note that 'selection'
 			applies, the position may be just after the Visual
 			area.  {not in Vi}.
 
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index b8074c7..01266a7 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.2b.  Last change: 2008 Jun 28
+*netbeans.txt*  For Vim version 7.2c.  Last change: 2008 Jun 28
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 22c0419..1302f16 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.2b.  Last change: 2008 Jul 05
+*options.txt*	For Vim version 7.2c.  Last change: 2008 Aug 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2292,6 +2292,8 @@
 	  or "\\", the swap file name will be built from the complete path to
 	  the file with all path separators substituted to percent '%' signs.
 	  This will ensure file name uniqueness in the preserve directory.
+	  On Win32, when a separating comma is following, you must use "//",
+	  since "\\" will include the comma in the file name.
 	- Spaces after the comma are ignored, other spaces are considered part
 	  of the directory name.  To have a space at the start of a directory
 	  name, precede it with a backslash.
@@ -4898,7 +4900,7 @@
 	name, datestamp and permissions.  This option contains the extra
 	information, the nature of which will vary between systems.
 	The value of this option is usually set when the file is loaded, and
-	use to set the file type when file is written.
+	is used to set the operating system file type when file is written.
 	It can affect the pattern matching of the automatic commands.
 	|autocmd-osfiletypes|
 
@@ -6306,15 +6308,15 @@
 	      directory.
 	F S   Full path to the file in the buffer.
 	t S   File name (tail) of file in the buffer.
-	m F   Modified flag, text is " [+]"; " [-]" if 'modifiable' is off.
+	m F   Modified flag, text is "[+]"; "[-]" if 'modifiable' is off.
 	M F   Modified flag, text is ",+" or ",-".
-	r F   Readonly flag, text is " [RO]".
+	r F   Readonly flag, text is "[RO]".
 	R F   Readonly flag, text is ",RO".
-	h F   Help buffer flag, text is " [help]".
+	h F   Help buffer flag, text is "[help]".
 	H F   Help buffer flag, text is ",HLP".
-	w F   Preview window flag, text is " [Preview]".
+	w F   Preview window flag, text is "[Preview]".
 	W F   Preview window flag, text is ",PRV".
-	y F   Type of file in the buffer, e.g., " [vim]".  See 'filetype'.
+	y F   Type of file in the buffer, e.g., "[vim]".  See 'filetype'.
 	Y F   Type of file in the buffer, e.g., ",VIM".  See 'filetype'.
 	      {not available when compiled without |+autocmd| feature}
 	k S   Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
@@ -6361,14 +6363,9 @@
 	      to StatusLineNC for the statusline of non-current windows.
 	      The number N must be between 1 and 9.  See |hl-User1..9|
 
-	Display of flags are controlled by the following heuristic:
-	If a flag text starts with comma it is assumed that it wants to
-	separate itself from anything but preceding plaintext.  If it starts
-	with a space it is assumed that it wants to separate itself from
-	anything but other flags.  That is: A leading comma is removed if the
-	preceding character stems from plaintext.  A leading space is removed
-	if the preceding character stems from another active flag.  This will
-	make a nice display when flags are used like in the examples below.
+	When displaying a flag, Vim removes the leading comma, if any, when
+	that flag comes right after plaintext.  This will make a nice display
+	when flags are used like in the examples below.
 
 	When all items in a group becomes an empty string (i.e. flags that are
 	not set) and a minwid is not set for the group, the whole group will
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
index 59074a6..0b0e836 100644
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -1,4 +1,4 @@
-*os_390.txt*    For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_390.txt*    For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Ralf Schandl
diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt
index 1e21121..7e262bf 100644
--- a/runtime/doc/os_amiga.txt
+++ b/runtime/doc/os_amiga.txt
@@ -1,4 +1,4 @@
-*os_amiga.txt*  For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_amiga.txt*  For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index c7bbf37..e5f54b8 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -1,4 +1,4 @@
-*os_beos.txt*	For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_beos.txt*	For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index e4cfb70..085b295 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt*    For Vim version 7.2b.  Last change: 2006 Mar 30
+*os_dos.txt*    For Vim version 7.2c.  Last change: 2006 Mar 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 68dbcfb..5521a93 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,4 +1,4 @@
-*os_mac.txt*    For Vim version 7.2b.  Last change: 2006 Apr 30
+*os_mac.txt*    For Vim version 7.2c.  Last change: 2006 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar et al.
diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt
index 1afd335..e529887 100644
--- a/runtime/doc/os_mint.txt
+++ b/runtime/doc/os_mint.txt
@@ -1,4 +1,4 @@
-*os_mint.txt*   For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_mint.txt*   For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Jens M. Felderhoff
diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt
index a9fd7be..1cb3803 100644
--- a/runtime/doc/os_msdos.txt
+++ b/runtime/doc/os_msdos.txt
@@ -1,4 +1,4 @@
-*os_msdos.txt*  For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_msdos.txt*  For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index fbae5f9..072922a 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -1,4 +1,4 @@
-*os_os2.txt*    For Vim version 7.2b.  Last change: 2007 Apr 22
+*os_os2.txt*    For Vim version 7.2c.  Last change: 2007 Apr 22
 
 
 		  VIM REFERENCE MANUAL    by Paul Slootman
diff --git a/runtime/doc/os_qnx.txt b/runtime/doc/os_qnx.txt
index c199a97..3b50ace 100644
--- a/runtime/doc/os_qnx.txt
+++ b/runtime/doc/os_qnx.txt
@@ -1,4 +1,4 @@
-*os_qnx.txt*    For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_qnx.txt*    For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Julian Kinraid
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index e7fb806..a54576e 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,4 +1,4 @@
-*os_risc.txt*   For Vim version 7.2b.  Last change: 2008 Jun 28
+*os_risc.txt*   For Vim version 7.2c.  Last change: 2008 Jun 28
 
 
 		  VIM REFERENCE MANUAL    by Thomas Leonard
diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt
index 036f597..740712e 100644
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -1,4 +1,4 @@
-*os_unix.txt*   For Vim version 7.2b.  Last change: 2005 Mar 29
+*os_unix.txt*   For Vim version 7.2c.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 8b96929..8fd6712 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.2b.  Last change: 2006 Nov 18
+*os_vms.txt*    For Vim version 7.2c.  Last change: 2006 Nov 18
 
 
 		  VIM REFERENCE MANUAL
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 73d55e9..92392c1 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.2b.  Last change: 2008 May 02
+*os_win32.txt*  For Vim version 7.2c.  Last change: 2008 May 02
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index ae60b83..d48d9f1 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.2b.  Last change: 2008 Jun 21
+*pattern.txt*   For Vim version 7.2c.  Last change: 2008 Jul 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1122,7 +1122,7 @@
 
 						*CR-used-for-NL*
 When 'fileformat' is "mac", <NL> characters in the file are stored as <CR>
-characters internally.  In the display they are shown as "^M".  Otherwise this
+characters internally.  In the text they are shown as "^J".  Otherwise this
 works similar to the usage of <NL> for a <Nul>.
 
 When working with expression evaluation, a <NL> character in the pattern
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index 2d7edb8..dc0b2ff 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -1,4 +1,4 @@
-*pi_getscript.txt*  For Vim version 7.2b.  Last change: 2008 Jun 29
+*pi_getscript.txt*  For Vim version 7.2c.  Last change: 2008 Jun 29
 >
 		GETSCRIPT REFERENCE MANUAL  by Charles E. Campbell, Jr.
 <
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index e9e224b..4f20124 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,4 +1,4 @@
-*pi_gzip.txt*   For Vim version 7.2b.  Last change: 2002 Oct 29
+*pi_gzip.txt*   For Vim version 7.2c.  Last change: 2002 Oct 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 7e0c597..1879dd8 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.2b.  Last change: 2008 Jul 13
+*pi_netrw.txt*  For Vim version 7.2c.  Last change: 2008 Aug 01
 
 	    -----------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell, Jr.
@@ -1437,21 +1437,56 @@
 for setting up no-password ssh and scp and discusses associated security
 issues.  It used to be available at http://hacks.oreilly.com/pub/h/66 ,
 but apparently that address is now being redirected to some "hackzine".
-I'll attempt a summary:
+I'll attempt a summary based on that article and on a communication from
+Ben Schmidt:
 
-	1. Generate a public/private key pair on the ssh server:
-	   ssh-keygen -t rsa
-	   (saving the file in ~/.ssh/id_rsa is ok)
-	2. Just hit the <CR> when asked for passphrase (twice).
-	3. This creates two files:
-	     ~/.ssh/id_rsa
-	     ~/.ssh/id_rsa.pub
-	4. On the client:
-	    cd
-	    mkdir .ssh
-	    chmod 0700 .ssh
-	    scp {serverhostname}:.ssh/id_rsa.pub .
-	    cat id_rsa.pub >> .ssh/authorized_keys2
+	1. Generate a public/private key pair on the local machine
+	   (ssh client): >
+		ssh-keygen -t rsa
+		(saving the file in ~/.ssh/id_rsa as prompted)
+<
+	2. Just hit the <CR> when asked for passphrase (twice) for no
+	   passphrase.  If you do use a passphrase, you will also need to use
+	   ssh-agent so you only have to type the passphrase once per session.
+	   If you don't use a passphrase, simply logging onto your local
+	   computer or getting access to the keyfile in any way will suffice
+	   to access any ssh servers which have that key authorized for login.
+
+	3. This creates two files: >
+		~/.ssh/id_rsa
+		~/.ssh/id_rsa.pub
+<
+	4. On the target machine (ssh server): >
+		cd
+		mkdir -p .ssh
+		chmod 0700 .ssh
+<
+	5. On your local machine (ssh client): (one line) >
+		ssh {serverhostname}
+		  cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
+<
+	   or, for OpenSSH, (one line) >
+		ssh {serverhostname}
+		  cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
+<
+You can test it out with >
+	ssh {serverhostname}
+and you should be log onto the server machine without further need to type
+anything.
+
+If you decided to use a passphrase, do: >
+	ssh-agent $SHELL
+	ssh-add
+	ssh {serverhostname}
+You will be prompted for your key passphrase when you use ssh-add, but not
+subsequently when you use ssh.  For use with vim, you can use >
+	ssh-agent vim
+and, when next within vim, use >
+	:!ssh-add
+Alternatively, you can apply ssh-agent to the terminal you're planning on
+running vim in: >
+	ssh-agent xterm &
+and do ssh-add whenever you need.
 
 For Windows, folks on the vim mailing list have mentioned that Pageant helps
 with avoiding the constant need to enter the password.
@@ -1628,6 +1663,13 @@
 	    (See |netrw-mf| and |netrw-mr| for how to mark files)
 		      (uses the global marked file list)
 
+	WARNING: moving files is more dangerous than copying them.
+	A file being moved is first copied and then deleted; if the
+	copy operation fails and the delete succeeds, you will lose
+	the file.  Either try things out with unimportant files
+	first or do the copy and then delete yourself using mc and D.
+	Use at your own risk!
+
 Select a target directory with mT (|netrw-mt|).  Then change directory,
 select file(s) (see |netrw-mf|), and press "mm".
 
@@ -2387,6 +2429,16 @@
 ==============================================================================
 12. History						*netrw-history* {{{1
 
+	v130: Jul 31, 2008 * trying out elinks/links for http://host/
+			     requests.  One problem: in-page links
+			     (such as with ...#LABEL) are not supported
+			   * verified that Bram's modified netrwPlugin works
+	      Aug 01, 2008 * fixed a bug: when sourcing a file via ftp, the
+			     "filter window" was left behind.
+	v129: Jul 31, 2008 * bug found in non-mouse enabled vim and some
+			     local maps
+	v128: Jul 30, 2008 * much work done in using shellescape() and
+			     fnameescape()
 	v126: Jun 30, 2008 * after having gone to a remote directory,
 	                     <f1> was no longer taking one to the correct
 			     entry in the help (|netrw-quickhelp|).  Fixed.
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index faa889b..3a539a9 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt*  For Vim version 7.2b.  Last change: 2008 Jun 16
+*pi_paren.txt*  For Vim version 7.2c.  Last change: 2008 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index e5cb3da..80e10aa 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt*   For Vim version 7.2b.  Last change: 2006 Apr 24
+*pi_spec.txt*   For Vim version 7.2c.  Last change: 2006 Apr 24
 
 by Gustavo Niemeyer ~
 
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index c6926cd..e1ef097 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt*	For Vim version 7.2b.  Last change: 2008 Jul 13
+*pi_tar.txt*	For Vim version 7.2c.  Last change: 2008 Jul 13
 
 		       +====================+
 		       | Tar File Interface |
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index 7220d0e..258f307 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.2b.  Last change: 2008 Jun 05
+*pi_vimball.txt*	For Vim version 7.2c.  Last change: 2008 Jul 30
 
 			       ----------------
 			       Vimball Archiver
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index d4e3f67..b28dcf0 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.2b.  Last change: 2008 Jun 29
+*pi_zip.txt*	For Vim version 7.2c.  Last change: 2008 Jul 30
 
 				+====================+
 				| Zip File Interface |
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index af1e2c0..4e92d76 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 7.2b.  Last change: 2008 Apr 30
+*print.txt*     For Vim version 7.2c.  Last change: 2008 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 5c48e67..75f59c4 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.2b.  Last change: 2008 Mar 14
+*quickfix.txt*  For Vim version 7.2c.  Last change: 2008 Mar 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 230a110..b9a7ee3 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.2b.  Last change: 2008 Jan 22
+*quickref.txt*  For Vim version 7.2c.  Last change: 2008 Jan 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt
index af87451..71e82d2 100644
--- a/runtime/doc/quotes.txt
+++ b/runtime/doc/quotes.txt
@@ -1,4 +1,4 @@
-*quotes.txt*    For Vim version 7.2b.  Last change: 2006 Apr 24
+*quotes.txt*    For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 75f5d7e..879f56f 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 7.2b.  Last change: 2006 Apr 24
+*recover.txt*   For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index bbf1c12..2037398 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 7.2b.  Last change: 2008 May 24
+*remote.txt*    For Vim version 7.2c.  Last change: 2008 May 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 577c0de..e9c02c8 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.2b.  Last change: 2007 Aug 12
+*repeat.txt*    For Vim version 7.2c.  Last change: 2007 Aug 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index 40f00bc..5b288b9 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt*    For Vim version 7.2b.  Last change: 2006 Apr 24
+*rileft.txt*    For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Avner Lottem
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index 0ba9be7..b6b7985 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -1,4 +1,4 @@
-*russian.txt*   For Vim version 7.2b.  Last change: 2006 Apr 24
+*russian.txt*   For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Vassily Ragosin
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 141eee6..72a59aa 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt*    For Vim version 7.2b.  Last change: 2006 Aug 27
+*scroll.txt*    For Vim version 7.2c.  Last change: 2006 Aug 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 7e29520..26e6aeb 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt*      For Vim version 7.2b.  Last change: 2006 Apr 24
+*sign.txt*      For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index ea4da25..bc52a9a 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.2b.  Last change: 2008 Jun 21
+*spell.txt*	For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 9e67ec4..c2a9994 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.2b.  Last change: 2008 Jun 21
+*sponsor.txt*   For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index dfb403b..d259a9f 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.2b.  Last change: 2008 Jun 21
+*starting.txt*  For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 839ab34..c4779cb 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.2b.  Last change: 2008 Jun 21
+*syntax.txt*	For Vim version 7.2c.  Last change: 2008 Jul 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -852,8 +852,8 @@
 DOXYGEN						*doxygen.vim* *doxygen-syntax*
 
 Doxygen generates code documentation using a special documentation format
-(similar to Javadoc).  This syntax script adds doxygen highlighting to c, cpp
-and idl files, and should also work with java.
+(similar to Javadoc).  This syntax script adds doxygen highlighting to c, cpp,
+idl and php files, and should also work with java.
 
 There are a few of ways to turn on doxygen formatting. It can be done
 explicitly or in a modeline by appending '.doxygen' to the syntax of the file.
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 518f980..166e26a 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.2b.  Last change: 2007 Mar 11
+*tabpage.txt*   For Vim version 7.2c.  Last change: 2007 Mar 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index b955aaf..7e2ef9a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4615,6 +4615,7 @@
 a}	motion.txt	/*a}*
 b	motion.txt	/*b*
 b:changedtick-variable	eval.txt	/*b:changedtick-variable*
+b:changelog_name	filetype.txt	/*b:changelog_name*
 b:current_syntax-variable	syntax.txt	/*b:current_syntax-variable*
 b:netrw_lastfile	pi_netrw.txt	/*b:netrw_lastfile*
 b:var	eval.txt	/*b:var*
@@ -5329,6 +5330,8 @@
 fixed-7.1	version7.txt	/*fixed-7.1*
 fixed-7.2	version7.txt	/*fixed-7.2*
 flexwiki.vim	syntax.txt	/*flexwiki.vim*
+float-e	eval.txt	/*float-e*
+float-pi	eval.txt	/*float-pi*
 float2nr()	eval.txt	/*float2nr()*
 floating-point-format	eval.txt	/*floating-point-format*
 floating-point-precision	eval.txt	/*floating-point-precision*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 952bb96..c08e633 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 7.2b.  Last change: 2006 Apr 24
+*tagsrch.txt*   For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index cf960bd..57235c0 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 7.2b.  Last change: 2008 Jun 21
+*term.txt*      For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index ffeea0f..2dfe35d 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt*      For Vim version 7.2b.  Last change: 2006 Jul 24
+*tips.txt*      For Vim version 7.2c.  Last change: 2006 Jul 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 03e4981..dba4c8e 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.2b.  Last change: 2008 Jul 13
+*todo.txt*      For Vim version 7.2c.  Last change: 2008 Aug 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -31,10 +31,13 @@
 -------------------- Known bugs and current work -----------------------
 
 ":pedit %" with a BufReadPre autocommand causes the cursor to move to the
-first line. (Ingo Karkat, 2008 Jul 1)
+first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
 
 Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
 
+netrw: dragging status line causes selection of entry.  Should check row
+number to be below last visible line.
+
 Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
 
 Patch to add extra argument to glob() and globpath() to ignore 'wildignore'.
@@ -52,6 +55,13 @@
 laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
 Works OK with Vim in an xterm.
 
+When using ":e ++enc=foo file" and the file is already loaded with
+'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
+fileencoding differs.  Reload the buffer in this situation?  Need to check for
+the buffer to be unmodified.
+Unfinished patch by Ian Kelling, 2008 Jul 11.  Followup Jul 14, need to have
+another look at it.
+
 Fix for matchparen HL doesn't work.  beep.
 
 Win32: associating a type with Vim doesn't take care of space after a
@@ -59,17 +69,22 @@
 
 After using <Tab> for command line completion after ":ta blah" and getting E33
 (no tags file), further editing the command to e.g., ":echo 'blah'", the
-command is not executed.
+command is not executed.  Fix by Ian Kelling?
 
 When 'bomb' is changed the window title is updated to show/hide a "+", but the
 tab page label isn't. (Patrick Texier, 2008 Jun 24)
 
+":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
+Chase)  Fix by Ian Kelling, 2008 Jul 14.
+
 Despite adding save_subexpr() this still doesn't work properly:
 Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
 Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
 Backreference not cleared when retrying after \@<= fails?
 (Brett Stahlman, 2008 March 8)
 
+Patch for 2html.vim to avoid "&amp;nbsp;". (Markus Heidelberg, 2008 Jul 19)
+
 Win32: remote editing fails when the current directory name contains "[".
 (Ivan Tishchenko, Liu Yubao)  Suggested patch by Chris Lubinski: Avoid
 escaping characters where the backslash is not removed later.  Asked Chris for
@@ -111,6 +126,9 @@
 Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008
 Mar 5)  Alternative: Kazuki Sakamoto, Mar 7.
 
+Mac: trouble compiling with Motif, requires --disable-darwin. (Raf, 2008 Aug
+1)  Reply by Ben Schmidt.
+
 ":emenu" works with the translated menu name.  Should also work with the
 untranslated name.  Would need to store both the English and the translated
 name.  Patch by Bjorn Winckler, 2008 Mar 30.
@@ -125,8 +143,6 @@
 Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
 1)
 
-"vim -O aa aa" gives only one window. (Zdenek Sekera, 2008 Apr 16)
-
 Including NFA regexp code:
 Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new.
 Useful in tests.
@@ -158,6 +174,10 @@
 'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
 Likonen, March 19)
 
+The documentation mentions the priority for ":2match" and ":3match", but it
+appears the last one wins. (John Beckett, 2008 Jul 22)  Caused by adding
+matchadd()?  Suggested patch by John, 2008 Jul 24.
+
 Replace ccomplete.vim by cppcomplete.vim from www.vim.org?  script 1520
 by Vissale Neang.  (Martin Stubenschrott)
 Asked Vissale to make the scripts more friendly for the Vim distribution.
@@ -168,8 +188,9 @@
 
 More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
 
-Error when cancelling completion menu and auto-formatting. (Tim Weber, 2008
-Apr 17)
+Insert mode completion: When editing the text and pressing CTRL-N again goes
+back to originally completed text, edited text is gone. (Peng Yu, 2008 Jul 24)
+Suggestion by Ben Schmidt, 2008 Aug 6.
 
 Problem with compound words?  (Bert, 2008 May 6)
 No warning for when flags are defined after they are used in an affix.
@@ -193,6 +214,9 @@
 size and then redraw the text, skipping the characters under the popup menu.
 This should avoid flicker.  Other solution by A.Politz, 2007 Aug 22.
 
+When the popup menu is close to the edge of the window it is truncated.  Patch
+to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
+
 Spell checking: Add a way to specify punctuation characters.  Add the
 superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
 
@@ -200,9 +224,9 @@
 a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
 isn't right?
 
-Completion: Scanning for tags doesn't check for typed key now and then?
-Hangs for about 5 seconds.  Appears to be caused by finding include files with
-"foo/**" in 'path'.  (Kalisiak, 2006 July 15)
+Command line completion: Scanning for tags doesn't check for typed key now and
+then?  Hangs for about 5 seconds.  Appears to be caused by finding include
+files with "foo/**" in 'path'.  (Kalisiak, 2006 July 15)
 Additional info: When using the |wildcards| ** globing, vim hangs
 indefinitely on lots of directories. The |file-searching| globing, like in
 ":set path=/**" does not hang as often as with globing with |wildcards|, like
@@ -247,6 +271,9 @@
 
 Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
 
+":cscope find f  filename" doesn't work because of the extra space. (Ethan
+Mallove)
+
 Win32: XPM support only works with path without spaces.  Patch by Mathias
 Michaelis, 2006 Jun 9.  Another patch for more path names, 2006 May 31.
 New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
@@ -280,6 +307,10 @@
 
 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
 
+When file b is a link to file a and editing b twice you get the correct
+warning for existing swap file, but when trying to recover it doesn't find the
+swapfile. (Matt Wozniski, 2008 Aug 5)
+
 Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
 Ebersbach, 2008 Feb 1)
 
@@ -321,6 +352,8 @@
 Check other interfaces for changing curbuf in a wrong way.  Patch like for
 if_ruby.c.
 
+Problem with cursorcolumn highlighting and folds. (John Mullin, 2008 Jul 18)
+
 Spell checking in popup menu: If the only problem is the case of the first
 character, don't offer "ignore" and "add to word list".
 
@@ -381,12 +414,19 @@
 
 Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
 
+When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.  Compare with
+using "ga" on a NUL when 'ff' is "unix". (Andy Wokula, 2008 Jul 16)
+
 Add an option to specify the character to use when a double-width character is
 moved to the next line.  Default '>', set to a space to blank it out.  Check
 that char is single width when it's set (compare with 'listchars').
 
 The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
 
+In a C file with spell checking, in "% integer" "nteger" is seen as an error,
+but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
+Jul 22)
+
 Session file creation: 'autochdir' causes trouble.  Keep it off until after
 loading all files.
 
@@ -443,7 +483,7 @@
 middle?
 
 When running inside screen it's possible to kill the X server and restart it
-(using pty's the program can keep on running).  Vim dies because it looses the
+(using pty's the program can keep on running).  Vim dies because it loses the
 connection to the X server.  Can Vim simply quit using the X server instead of
 dying?  Also relevant when running in a console.
 
@@ -463,9 +503,6 @@
 
 Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
 
-":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
-Chase)
-
 A custom completion function in a ":command" cannot be a Funcref. (Andy
 Wokula, 2007 Aug 25)
 
@@ -487,10 +524,6 @@
 GTK: when using the -geom argument with an offset from the right edge and the
 size is smaller than the default, the Vim window is not positioned properly.
 
-GTK: when editing a directory with the netrw plugin in a terminal and doing
-":gui" Vim hangs in obtaining the selection.  Workaround patch 7.1.209 is a
-hack (timeout after 3 seconds).  Why don't we get the selection here?
-
 After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
 the cursor line.  It works OK after some other commands.
 
@@ -626,6 +659,16 @@
 -   gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2007 Sep 13,
     2008 Jun 12)
 -   recognize hex numbers better. (Mark Manning, 2006 Sep 13)
+-   Add <AbbrExpand> key, to expand an abbreviation in a mapping. (Kana
+    Natsuno, 2008 Jul 17)
+-   Add 'wspara' option, also accept blank lines like empty lines for "{" and
+    "}". (Mark Lundquist, 2008 Jul 18)
+-   Patch to add CTRL-T to delete part of a path on cmdline. (Adek, 2008 Jul
+    21)
+-   Instead of creating a copy of the tutor in all the shell scripts, do it in
+    vimtutor.vim. (Jan Minar, 2008 Jul 20)
+-   When fsync() fails there is no hint about what went wrong.  Patch by Ben
+    Schmidt, 2008 Jul 22.
 
 
 Awaiting updated patches:
@@ -1204,11 +1247,6 @@
     the :catch commands are always executed, also when the file is edited
     normally.  Should reset did_emsg and undo side effects.  Also make sure
     the ATTENTION message shows up.  Servatius Brandt works on this.
-9   When using ":e ++enc=foo file" and the file is already loaded with
-    'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though
-    the fileencoding differs.  Reload the buffer in this situation?  Need to
-    check for the buffer to be unmodified.
-    Unfinished patch by Ian Kelling, 2008 Jul 11.
 8   ":g//" gives "Pattern not found error" with E486.  Should not use the
     error number, it's not a regular error message.
 7   Vimtutor leaves escape sequence in terminal. This is the xterm response to
@@ -1307,7 +1345,7 @@
 9   When editing a file with 'readonly' set, there is no check for an existing
     swap file.  Then using ":write" (without making any changes) doesn't give
     a warning either.  Should check for an existing swap file without creating
-    one. Unfinished patch by Ian Kelling, 2008 July 7.
+    one. Unfinished patch by Ian Kelling, 2008 July 14.
 7   When 'showbreak' is set, the amount of space a Tab occupies changes.
     Should work like 'showbreak' is inserted without changing the Tabs.
 7   When 'mousefocus' is set and switching to another window with a typed
@@ -1477,6 +1515,13 @@
 -   GTK: when using the popup menu with spelling suggestions and releasing the
     right mouse button before the menu appears selecting an item with the
     right mouse button has no effect.  GTK does not produce an event for this.
+-   GTK 2: Cannot use the file selector.  When using it many things become
+    slow.  This is caused by some code in GTK that writes
+    ~/.recently-used.xbel every time an event is handled.  It assumes the main
+    loop is never quit, which is a wrong assumption.  Also, it overwrites the
+    file with different file permissions, which is a privacy issue.  This
+    needs to be fixed in GTK.  A solution in Vim would be really complicated.
+    (2008 Jul 31)
 -   xterm title: The following scenario may occur (esp. when running the Vim
     test script): Vim 1 sets the title to "file1", then restores the title to
     "xterm" with an ESC sequence when exiting.  Vim 2 obtains the old title
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 655725f..ed8b954 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 7.2b.  Last change: 2008 Jun 21
+*uganda.txt*    For Vim version 7.2c.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 6940102..eb87dac 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.2b.  Last change: 2006 Apr 30
+*undo.txt*      For Vim version 7.2c.  Last change: 2006 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index 3a56abe..3c45079 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -1,4 +1,4 @@
-*usr_01.txt*	For Vim version 7.2b.  Last change: 2008 May 07
+*usr_01.txt*	For Vim version 7.2c.  Last change: 2008 May 07
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index f47c63e..5e6613e 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt*	For Vim version 7.2b.  Last change: 2007 Feb 28
+*usr_02.txt*	For Vim version 7.2c.  Last change: 2007 Feb 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 47d24d4..75191e2 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -1,4 +1,4 @@
-*usr_03.txt*	For Vim version 7.2b.  Last change: 2006 Jun 21
+*usr_03.txt*	For Vim version 7.2c.  Last change: 2006 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index dd6a84c..19ebba0 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt*	For Vim version 7.2b.  Last change: 2006 Jun 21
+*usr_04.txt*	For Vim version 7.2c.  Last change: 2006 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 93c34de..f832ebb 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 7.2b.  Last change: 2007 May 11
+*usr_05.txt*	For Vim version 7.2c.  Last change: 2007 May 11
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt
index 8ee32c4..0daec59 100644
--- a/runtime/doc/usr_06.txt
+++ b/runtime/doc/usr_06.txt
@@ -1,4 +1,4 @@
-*usr_06.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_06.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index ac21649..25b82c3 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_07.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index 5c3a93e..5c26f58 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt*	For Vim version 7.2b.  Last change: 2006 Jul 18
+*usr_08.txt*	For Vim version 7.2c.  Last change: 2006 Jul 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index d2c652e..73b61c6 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -1,4 +1,4 @@
-*usr_09.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_09.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_10.txt b/runtime/doc/usr_10.txt
index b41976f..5ff2012 100644
--- a/runtime/doc/usr_10.txt
+++ b/runtime/doc/usr_10.txt
@@ -1,4 +1,4 @@
-*usr_10.txt*	For Vim version 7.2b.  Last change: 2006 Nov 05
+*usr_10.txt*	For Vim version 7.2c.  Last change: 2006 Nov 05
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index d23743a..6a1a0de 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_11.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index 3988de8..438b330 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt*	For Vim version 7.2b.  Last change: 2007 May 11
+*usr_12.txt*	For Vim version 7.2c.  Last change: 2007 May 11
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt
index 864559c..fab7714 100644
--- a/runtime/doc/usr_20.txt
+++ b/runtime/doc/usr_20.txt
@@ -1,4 +1,4 @@
-*usr_20.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_20.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index b15e7f0..c0f5cc9 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt*	For Vim version 7.2b.  Last change: 2007 May 01
+*usr_21.txt*	For Vim version 7.2c.  Last change: 2007 May 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index a642c59..6b19b04 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt*	For Vim version 7.2b.  Last change: 2007 Aug 14
+*usr_22.txt*	For Vim version 7.2c.  Last change: 2007 Aug 14
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt
index ead8711..0143488 100644
--- a/runtime/doc/usr_23.txt
+++ b/runtime/doc/usr_23.txt
@@ -1,4 +1,4 @@
-*usr_23.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_23.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt
index eab8a36..5976cb7 100644
--- a/runtime/doc/usr_24.txt
+++ b/runtime/doc/usr_24.txt
@@ -1,4 +1,4 @@
-*usr_24.txt*	For Vim version 7.2b.  Last change: 2006 Jul 23
+*usr_24.txt*	For Vim version 7.2c.  Last change: 2006 Jul 23
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt
index 22ddddf..5d167a6 100644
--- a/runtime/doc/usr_25.txt
+++ b/runtime/doc/usr_25.txt
@@ -1,4 +1,4 @@
-*usr_25.txt*	For Vim version 7.2b.  Last change: 2007 May 11
+*usr_25.txt*	For Vim version 7.2c.  Last change: 2007 May 11
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_26.txt b/runtime/doc/usr_26.txt
index b8252dd..96e04c3 100644
--- a/runtime/doc/usr_26.txt
+++ b/runtime/doc/usr_26.txt
@@ -1,4 +1,4 @@
-*usr_26.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_26.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt
index d2d0cc4..f4aa914 100644
--- a/runtime/doc/usr_27.txt
+++ b/runtime/doc/usr_27.txt
@@ -1,4 +1,4 @@
-*usr_27.txt*	For Vim version 7.2b.  Last change: 2007 Nov 10
+*usr_27.txt*	For Vim version 7.2c.  Last change: 2007 Nov 10
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt
index 045aef8..dc7388d 100644
--- a/runtime/doc/usr_28.txt
+++ b/runtime/doc/usr_28.txt
@@ -1,4 +1,4 @@
-*usr_28.txt*	For Vim version 7.2b.  Last change: 2008 Jun 14
+*usr_28.txt*	For Vim version 7.2c.  Last change: 2008 Jun 14
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 20f72ea..07c4a43 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt*	For Vim version 7.2b.  Last change: 2008 Jun 28
+*usr_29.txt*	For Vim version 7.2c.  Last change: 2008 Jun 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt
index 51ffcdf..18c6108 100644
--- a/runtime/doc/usr_30.txt
+++ b/runtime/doc/usr_30.txt
@@ -1,4 +1,4 @@
-*usr_30.txt*	For Vim version 7.2b.  Last change: 2007 Nov 10
+*usr_30.txt*	For Vim version 7.2c.  Last change: 2007 Nov 10
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt
index 403086f..f00a76c 100644
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt*	For Vim version 7.2b.  Last change: 2007 May 08
+*usr_31.txt*	For Vim version 7.2c.  Last change: 2007 May 08
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_32.txt b/runtime/doc/usr_32.txt
index b049540..852c7c8 100644
--- a/runtime/doc/usr_32.txt
+++ b/runtime/doc/usr_32.txt
@@ -1,4 +1,4 @@
-*usr_32.txt*	For Vim version 7.2b.  Last change: 2006 Apr 30
+*usr_32.txt*	For Vim version 7.2c.  Last change: 2006 Apr 30
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt
index cc8acc1..e21d2f9 100644
--- a/runtime/doc/usr_40.txt
+++ b/runtime/doc/usr_40.txt
@@ -1,4 +1,4 @@
-*usr_40.txt*	For Vim version 7.2b.  Last change: 2006 Jun 21
+*usr_40.txt*	For Vim version 7.2c.  Last change: 2006 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 25e911a..3673de4 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.2b.  Last change: 2008 Jun 21
+*usr_41.txt*	For Vim version 7.2c.  Last change: 2008 Jun 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_42.txt b/runtime/doc/usr_42.txt
index b8c4eea..5082ba9 100644
--- a/runtime/doc/usr_42.txt
+++ b/runtime/doc/usr_42.txt
@@ -1,4 +1,4 @@
-*usr_42.txt*	For Vim version 7.2b.  Last change: 2008 May 05
+*usr_42.txt*	For Vim version 7.2c.  Last change: 2008 May 05
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_43.txt b/runtime/doc/usr_43.txt
index dbf3b86..1ddbb26 100644
--- a/runtime/doc/usr_43.txt
+++ b/runtime/doc/usr_43.txt
@@ -1,4 +1,4 @@
-*usr_43.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_43.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index 19165d4..d409bf5 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_44.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index 5f6a14f..5bea5d8 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt*	For Vim version 7.2b.  Last change: 2008 Apr 30
+*usr_45.txt*	For Vim version 7.2c.  Last change: 2008 Apr 30
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_90.txt b/runtime/doc/usr_90.txt
index 24efda2..f31af73 100644
--- a/runtime/doc/usr_90.txt
+++ b/runtime/doc/usr_90.txt
@@ -1,4 +1,4 @@
-*usr_90.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_90.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index 75f29ce..d473d45 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 7.2b.  Last change: 2006 Apr 24
+*usr_toc.txt*	For Vim version 7.2c.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index e8f4de1..5163adc 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.2b.  Last change: 2008 Jun 08
+*various.txt*   For Vim version 7.2c.  Last change: 2008 Aug 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -644,7 +644,12 @@
 			":tnext" command can then be used to jump to other
 			matches, "tselect" to list matches and choose one. >
 				:help index| :tse z.
-<			This command can be followed by '|' and another
+<			When there is no argument you will see matches for
+			"help", to avoid listing all possible matches (that
+			would be very slow).
+			The number of matches displayed is limited to 300.
+
+			This command can be followed by '|' and another
 			command, but you don't need to escape the '|' inside a
 			help command.  So these both work: >
 				:help |
diff --git a/runtime/doc/version4.txt b/runtime/doc/version4.txt
index 5eb6241..9bdcafc 100644
--- a/runtime/doc/version4.txt
+++ b/runtime/doc/version4.txt
@@ -1,4 +1,4 @@
-*version4.txt*  For Vim version 7.2b.  Last change: 2006 Apr 24
+*version4.txt*  For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt
index 8120577..778dd1a 100644
--- a/runtime/doc/version5.txt
+++ b/runtime/doc/version5.txt
@@ -1,4 +1,4 @@
-*version5.txt*  For Vim version 7.2b.  Last change: 2008 Jun 28
+*version5.txt*  For Vim version 7.2c.  Last change: 2008 Jun 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index 0ab4d1d..5f7c8c8 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -1,4 +1,4 @@
-*version6.txt*  For Vim version 7.2b.  Last change: 2007 May 11
+*version6.txt*  For Vim version 7.2c.  Last change: 2008 Aug 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -5894,7 +5894,7 @@
 
 Patch 6.1b.023
 Problem:    On MS-Windows system() may cause checking timestamps, because Vim
-	    looses and gains input focus, while this doesn't happen on Unix.
+	    loses and gains input focus, while this doesn't happen on Unix.
 Solution:   Don't check timestamps while system() is busy.
 Files:	    src/ex_cmds2.c, src/fileio.c, src/globals.h, src/misc1.c
 
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 7f450f4..bea46a3 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.2b.  Last change: 2008 Jul 13
+*version7.txt*  For Vim version 7.2c.  Last change: 2008 Aug 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -4727,6 +4727,7 @@
 Other new runtime files:
 	Esperanto menus and message translations. (Dominique Pelle)
 	Finnish translation of menus and messages. (Flammie Pirinen)
+	Brazilian Portugese message translations. (Eduardo Dobay)
 
 Added floating point support. |Float|
 
@@ -6847,7 +6848,7 @@
 Solution:   Don't use UTF_COMPOSINGLIKE() on an illegal byte.  In
 	    msg_outtrans_len_attr() use char2cells() instead of ptr2cells().
 	    In utf_ptr2char() don't check second byte when first byte is
-	    illega.  (Dominique Pelle)
+	    illegal.  (Dominique Pelle)
 Files:	    src/mbyte.c, src/message.c
 
 Patch 7.2a.011
@@ -6916,7 +6917,7 @@
 STRMOVE() instead. (Ralf Wildenhues)
 
 Mac: On Leopard gvim, when using the mouse wheel nothing would happen until
-another event occures, such as moving the mouse.  Then the recorded scrolling
+another event occurs, such as moving the mouse.  Then the recorded scrolling
 would take place all at once. (Eckehard Berns)
 
 Solution for cursor color not reflecting IM status for GTK 2.  Add
@@ -6936,5 +6937,179 @@
 The #ifdef for including "vimio.h" was inconsistent.  In a few files it
 depended on MSWIN, which isn't defined until later.
 
+Patch 7.2b.001
+Problem:    Compilation problem: mb_fix_col() missing with multi-byte feature
+	    but without GUI or clipboard.
+Solution:   Remove #ifdef.
+Files:	    src/mbyte.c
+
+Patch 7.2b.002
+Problem:    Compiler warnings for signed/unsigned mismatch.
+Solution:   Add type casts.
+Files:	    src/screen.c
+
+Patch 7.2b.003
+Problem:    Still a compilation problem, check_col() and check_row() missing.
+Solution:   Add FEAT_MBYTE to the #if.
+Files:	    src/ui.c
+
+Patch 7.2b.004
+Problem:    Trying to free memory for a static string when using ":helpgrep".
+	    (George Reilly)
+Solution:   Set 'cpo' to empty_option instead of an empty string.  Also for
+	    searchpair() and substitute().
+Files:	    src/quickfix.c, src/eval.c
+
+Patch 7.2b.005
+Problem:    The special character "!" isn't handled properly in shellescape().
+	    (Jan Minar)
+Solution:   Escape "!" when using a "csh" like shell and with
+	    shellescape(s, 1).  Twice for both.  Also escape <NL>.
+Files:	    src/misc2.c
+
+Patch 7.2b.006
+Problem:    Reading past end of string when reading info from tags line.
+Solution:   Break the loop when encountering a NUL. (Dominique Pelle)
+Files:	    src/tag.c
+
+Patch 7.2b.007
+Problem:    Part of a message cannot be translated.
+Solution:   Put _() around the message.
+Files:	    src/search.c
+
+Patch 7.2b.008
+Problem:    A few filetypes are not detected or not detected properly.
+Solution:   Add filetype detection patterns. (Nikolai Weibull)
+Files:	    runtime/filetype.vim
+
+Patch 7.2b.009
+Problem:    Reading past end of screen line. (Epicurus)
+Solution:   Avoid going past the value of Columns.
+Files:	    src/screen.c
+
+Patch 7.2b.010
+Problem:    ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan
+	    Mallove)
+Solution:   Check for "nxo", "nso" and other strange mapping combinations.
+Files:	    src/getchar.c
+
+Patch 7.2b.011
+Problem:    Configure for TCL ends up with include file in compiler command.
+	    (Richard Hogg)
+Solution:   Delete items from $TCL_DEFS that do not start with a dash.
+Files:	    src/auto/configure, src/configure.in
+
+Patch 7.2b.012
+Problem:    Build failure with +multi_byte but without +diff.
+Solution:   Add #ifdef. (Patrick Texier)
+Files:	    src/main.c
+
+Patch 7.2b.013
+Problem:    Build fails with tiny features and Perl. (Dominique Pelle)
+Solution:   Define missing functions.  Also when compiling Python.
+Files:	    src/if_perl.xs, src/if_python.c
+
+Patch 7.2b.014
+Problem:    Configure uses an unsafe temp file to store commands.
+Solution:   Create the temp file in local directory.
+Files:	    src/auto/configure, src/configure.in
+
+Patch 7.2b.015
+Problem:    Build fails on Mac when using Aap.
+Solution:   Fix typo in configure script.
+Files:	    src/auto/configure, src/configure.in
+
+Patch 7.2b.016
+Problem:    Build fails with normal features but without +autocmd.
+Solution:   Fix #ifdefs. (Ian Kelling)
+Files:	    src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c,
+	    src/ex_docmd.c
+
+Patch 7.2b.017
+Problem:    "vim -O foo foo" results in only one window.  (Zdenek Sekera)
+Solution:   Handle result of ATTENTION prompt properly. (Ian Kelling)
+Files:	    src/main.c
+
+Patch 7.2b.018
+Problem:    When doing command line completion on a file name for a csh-like
+	    shell argument a '!' character isn't escaped properly.
+Solution:   Add another backslash.
+Files:	    src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c
+
+Patch 7.2b.019 (extra)
+Problem:    Win32: Various compiler warnings.
+Solution:   Use __w64 attribute.  Comment-out unused parameters.  Adjust a few
+	    #ifdefs. (George Reilly)
+Files:	    src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak,
+	    src/os_mswin.c, src/os_win32.c, src/vim.h
+
+Patch 7.2b.020
+Problem:    ":sort n" doesn't handle negative numbers. (James Vega)
+Solution:   Include '-' in the number.
+Files:	    src/charset.c, src/ex_cmds.c
+
+Patch 7.2b.021
+Problem:    Reloading doesn't read the BOM correctly. (Steve Gardner)
+Solution:   Accept utf-8 BOM when specified file encoding is utf-8.
+Files:	    src/fileio.c
+
+Patch 7.2b.022
+Problem:    When using ":normal" while updating the status line the count of
+	    an operator is lost. (Dominique Pelle)
+Solution:   Save and restore "opcount".
+Files:	    src/ex_docmd.c, src/globals.h, src/normal.c
+
+Patch 7.2b.023
+Problem:    Crash when using the result of synstack(0,0). (Matt Wozniski)
+Solution:   Check for v_list to be NULL in a few more places.
+Files:	    src/eval.c
+
+Patch 7.2b.024
+Problem:    Using ":gui" while the netrw plugin is active causes a delay in
+	    updating the display.
+Solution:   Don't check for terminal codes when starting the GUI.
+Files:	    src/term.c
+
+Patch 7.2b.025
+Problem:    When the CursorHold event triggers a pending count is lost.
+	    (Juergen Kraemer)
+Solution:   Save the counts and restore them.
+Files:	    src/normal.c, src/structs.h
+
+Patch 7.2b.026
+Problem:    The GTK 2 file chooser causes the ~/.recently-used.xbel file to be
+	    written over and over again.  This may cause a significant
+	    slowdown. (Guido Berhoerster)
+Solution:   Don't use the GTK 2 file chooser.
+Files:	    src/gui_gtk.c
+
+Patch 7.2b.027
+Problem:    Memory leak for Python, Perl, etc. script command with end marker.
+Solution:   Free the memory of the end marker. (Andy Kittner)
+Files:	    src/ex_getln.c
+
+Patch 7.2b.028
+Problem:    Reading uninitialized memory when doing ":gui -f". (Dominique
+	    Pelle)
+Solution:   Don't position the cursor when the screen size is invalid.
+Files:	    src/gui.c
+
+Patch 7.2b.029
+Problem:    ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck)
+Solution:   Get all tags and throw away more than TAG_MANY after sorting.
+	    When there is no argument find matches for "help" to avoid a long
+	    delay.
+Files:	    src/ex_cmds.c, src/ex_getln.c
+
+Patch 7.2b.030
+Problem:    When changing the value of t_Co from 8 to 16 the Visual
+	    highlighting keeps both reverse and a background color.
+Solution:   Remove the attribute when setting the default highlight color.
+	    (Markus Heidelberg)
+Files:	    src/syntax.c
+
+Error when cancelling completion menu and auto-formatting. (fixed by Ian
+Kelling)
+
 
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index bd5df64..47c5494 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.2b.  Last change: 2008 Jun 28
+*vi_diff.txt*   For Vim version 7.2c.  Last change: 2008 Jun 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/vim-fr.1 b/runtime/doc/vim-fr.1
index 5843440..3b49351 100644
--- a/runtime/doc/vim-fr.1
+++ b/runtime/doc/vim-fr.1
@@ -549,7 +549,7 @@
 Script pour détecter le type d'un fichier d'après son contenu.
 Voir ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Fichiers utilisés pour l'impression PostScript.
 .PP
 Pour disposer d'informations récentes, consulter le site Internet de VIM :
diff --git a/runtime/doc/vim-fr.UTF-8.1 b/runtime/doc/vim-fr.UTF-8.1
index aa2c3c9..6e7b183 100644
--- a/runtime/doc/vim-fr.UTF-8.1
+++ b/runtime/doc/vim-fr.UTF-8.1
@@ -549,7 +549,7 @@
 Script pour détecter le type d'un fichier d'après son contenu.
 Voir ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Fichiers utilisés pour l'impression PostScript.
 .PP
 Pour disposer d'informations récentes, consulter le site Internet de VIM :
diff --git a/runtime/doc/vim-it.1 b/runtime/doc/vim-it.1
index d712af4..1a8967f 100755
--- a/runtime/doc/vim-it.1
+++ b/runtime/doc/vim-it.1
@@ -534,7 +534,7 @@
 Script Vim per determinare il tipo di un file a partire dal suo contenuto.
 Vedere ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 File usati per stampa PostScript.
 .PP
 Per informazioni aggiornate [in inglese \- NdT] vedere la home page di Vim:
diff --git a/runtime/doc/vim-it.UTF-8.1 b/runtime/doc/vim-it.UTF-8.1
index f41691d..a7ea5f9 100644
--- a/runtime/doc/vim-it.UTF-8.1
+++ b/runtime/doc/vim-it.UTF-8.1
@@ -534,7 +534,7 @@
 Script Vim per determinare il tipo di un file a partire dal suo contenuto.
 Vedere ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 File usati per stampa PostScript.
 .PP
 Per informazioni aggiornate [in inglese \- NdT] vedere la home page di Vim:
diff --git a/runtime/doc/vim-pl.1 b/runtime/doc/vim-pl.1
index 25dd786..3fa34e2 100644
--- a/runtime/doc/vim-pl.1
+++ b/runtime/doc/vim-pl.1
@@ -523,7 +523,7 @@
 /usr/local/lib/vim/scripts.vim
 Skrypt do wykrywania typu pliku wed³ug jego zawarto¶ci. Zobacz ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Pliku u¿ywane do drukowania PostScriptu.
 .PP
 Naj¶wie¿sze wiadomo¶ci na stronie
diff --git a/runtime/doc/vim-pl.UTF-8.1 b/runtime/doc/vim-pl.UTF-8.1
index ab19a52..365da5a 100644
--- a/runtime/doc/vim-pl.UTF-8.1
+++ b/runtime/doc/vim-pl.UTF-8.1
@@ -523,7 +523,7 @@
 /usr/local/lib/vim/scripts.vim
 Skrypt do wykrywania typu pliku według jego zawartości. Zobacz ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Pliku używane do drukowania PostScriptu.
 .PP
 Najświeższe wiadomości na stronie
diff --git a/runtime/doc/vim-ru.1 b/runtime/doc/vim-ru.1
index 11e3017..bb2597f 100644
--- a/runtime/doc/vim-ru.1
+++ b/runtime/doc/vim-ru.1
@@ -452,7 +452,7 @@
 /usr/local/lib/vim/scripts.vim
 óÃÅÎÁÒÉÊ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÉÐÁ ÆÁÊÌÁ ÐÏ ÓÏÄÅÒÖÉÍÏÍÕ. óÍ. ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 æÁÊÌÙ ÄÌÑ ÐÅÞÁÔÉ PostScript.
 .PP
 âÏÌÅÅ Ó×ÅÖÁÑ ÉÎÆÏÒÍÁÃÉÑ -- ÎÁ ÓÁÊÔÅ VIM:
diff --git a/runtime/doc/vim-ru.UTF-8.1 b/runtime/doc/vim-ru.UTF-8.1
index b4d88ed..78127a1 100644
--- a/runtime/doc/vim-ru.UTF-8.1
+++ b/runtime/doc/vim-ru.UTF-8.1
@@ -452,7 +452,7 @@
 /usr/local/lib/vim/scripts.vim
 Сценарий для определения типа файла по содержимому. См. ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Файлы для печати PostScript.
 .PP
 Более свежая информация -- на сайте VIM:
diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1
index 4e90da2..820caa2 100644
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -187,7 +187,7 @@
 .TP
 \-d
 Start in diff mode.
-There should be two or three file name arguments.
+There should be two, three or four file name arguments.
 .B Vim
 will open all the files and show differences between them.
 Works like vimdiff(1).
@@ -522,7 +522,7 @@
 /usr/local/lib/vim/scripts.vim
 Script to detect the type of a file by its contents.  See ":help 'filetype'".
 .TP
-/usr/local/lib/vim/*.ps
+/usr/local/lib/vim/print/*.ps
 Files used for PostScript printing.
 .PP
 For recent info read the VIM home page:
diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index fa5c5c8..5b9b83c 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -135,9 +135,9 @@
                    Vim  behave  mostly  like  Vi,  even  though  a .vimrc file
                    exists.
 
-       -d          Start in diff mode.  There should be two or three file name
-                   arguments.   Vim  will  open all the files and show differ-
-                   ences between them.  Works like vimdiff(1).
+       -d          Start in diff mode.  There should be  two,  three  or  four
+                   file  name arguments.  Vim will open all the files and show
+                   differences between them.  Works like vimdiff(1).
 
        -d {device} Open {device} for use as a terminal.  Only  on  the  Amiga.
                    Example: "-d con:20/30/600/150".
@@ -398,7 +398,7 @@
                       Script to detect the type of a  file  by  its  contents.
                       See ":help 'filetype'".
 
-       /usr/local/lib/vim/*.ps
+       /usr/local/lib/vim/print/*.ps
                       Files used for PostScript printing.
 
        For recent info read the VIM home page:
diff --git a/runtime/doc/vimdiff.1 b/runtime/doc/vimdiff.1
index 90ed8b8..bed2b32 100644
--- a/runtime/doc/vimdiff.1
+++ b/runtime/doc/vimdiff.1
@@ -1,17 +1,17 @@
 .TH VIMDIFF 1 "2001 March 30"
 .SH NAME
-vimdiff \- edit two or three versions of a file with Vim and show differences
+vimdiff \- edit two, three or four versions of a file with Vim and show differences
 .SH SYNOPSIS
 .br
 .B vimdiff
-[options] file1 file2 [file3]
+[options] file1 file2 [file3 [file4]]
 .PP
 .B gvimdiff
 .SH DESCRIPTION
 .B Vimdiff
 starts
 .B Vim
-on two (or three) files.
+on two (or three or four) files.
 Each file gets its own window.
 The differences between the files are highlighted.
 This is a nice way to inspect changes and to move changes from one version
diff --git a/runtime/doc/vimdiff.man b/runtime/doc/vimdiff.man
index 41ef47f..913ac13 100644
--- a/runtime/doc/vimdiff.man
+++ b/runtime/doc/vimdiff.man
@@ -3,19 +3,19 @@
 
 
 NAME
-       vimdiff  -  edit two or three versions of a file with Vim and show dif-
-       ferences
+       vimdiff  - edit two, three or four versions of a file with Vim and show
+       differences
 
 SYNOPSIS
-       vimdiff [options] file1 file2 [file3]
+       vimdiff [options] file1 file2 [file3 [file4]]
 
        gvimdiff
 
 DESCRIPTION
-       Vimdiff starts Vim on two (or three) files.  Each  file  gets  its  own
-       window.   The differences between the files are highlighted.  This is a
-       nice way to inspect changes and to move changes  from  one  version  to
-       another version of the same file.
+       Vimdiff starts Vim on two (or three or four) files.  Each file gets its
+       own  window.   The differences between the files are highlighted.  This
+       is a nice way to inspect changes and to move changes from  one  version
+       to another version of the same file.
 
        See vim(1) for details about Vim itself.
 
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index fca71f3..6968f77 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt*    For Vim version 7.2b.  Last change: 2006 Sep 26
+*visual.txt*    For Vim version 7.2c.  Last change: 2006 Sep 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 40e98c4..6291770 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.2b.  Last change: 2008 Jul 05
+*windows.txt*   For Vim version 7.2c.  Last change: 2008 Jul 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/workshop.txt b/runtime/doc/workshop.txt
index e676852..da56f28 100644
--- a/runtime/doc/workshop.txt
+++ b/runtime/doc/workshop.txt
@@ -1,4 +1,4 @@
-*workshop.txt*  For Vim version 7.2b.  Last change: 2006 Apr 24
+*workshop.txt*  For Vim version 7.2c.  Last change: 2006 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 17f7a80..a8e6261 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:	2008 Jul 17
+" Last Change:	2008 Aug 03
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -25,7 +25,7 @@
 	\ if s:name != s:short && s:short != "" |
 	\   exe "doau filetypedetect BufRead " . fnameescape(s:short) |
 	\ endif |
-	\ unlet s:name s:short
+	\ unlet! s:name s:short
 au BufNewFile,BufRead ?\+.in
 	\ if expand("<afile>:t") != "configure.in" |
 	\   exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
@@ -181,7 +181,7 @@
     endif
   endif
 
-  exe "setf " . b:asmsyntax
+  exe "setf " . fnameescape(b:asmsyntax)
 endfunc
 
 func! s:FTasmsyntax()
@@ -189,8 +189,9 @@
   " b:asmsyntax appropriately
   let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
 	\" ".getline(5)." "
-  if head =~ '\sasmsyntax=\S\+\s'
-    let b:asmsyntax = substitute(head, '.*\sasmsyntax=\([a-zA-Z0-9]\+\)\s.*','\1', "")
+  let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
+  if match != ''
+    let b:asmsyntax = match
   elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
     let b:asmsyntax = "vmasm"
   endif
@@ -690,6 +691,9 @@
 endif
 au BufNewFile,BufRead   *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95  setf fortran
 
+" Framescript
+au BufNewFile,BufRead *.fsl			setf framescript
+
 " FStab
 au BufNewFile,BufRead fstab,mtab		setf fstab
 
@@ -1347,7 +1351,7 @@
     else
       call s:FTasmsyntax()
       if exists("b:asmsyntax")
-	exe "setf " . b:asmsyntax
+	exe "setf " . fnameescape(b:asmsyntax)
       else
 	setf pov
       endif
@@ -1751,6 +1755,7 @@
 " Z-Shell script
 au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks  setf zsh
 au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump*  call s:StarSetf('zsh')
+au BufNewFile,BufRead *.zsh 			setf zsh
 
 " Scheme
 au BufNewFile,BufRead *.scm,*.ss		setf scheme
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index a596fc8..6653351 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         a2ps(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*Include:
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index 0ef6991..5d763c8 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         alsaconf(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 2da9e40..71d831e 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         GNU Arch inventory file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index c48ea13..20b06af 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,10 +1,16 @@
 " Vim filetype plugin file
 " Language:         Automake
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index a010c2c..120c5df 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         BDF font definition
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=b:COMMENT commentstring=COMMENT\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index ca56511..6f117e3 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         calendar(1) input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/cdrdaoconf.vim
+++ b/runtime/ftplugin/cdrdaoconf.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 8e0b7f8..1b110e4 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         generic configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index c74be07..1c7d678 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ConTeXt typesetting engine
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
@@ -29,8 +29,7 @@
   let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
   let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
         \ '\\start\(\a\+\):\\stop\1'
-endif " exists("loaded_matchit")
-
+endif
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index 8ec42a9..e86e683 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         CRM114
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index d80582e..43d1edf 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,13 +1,16 @@
 " Vim filetype plugin file
 " Language:         CSS
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-05-08
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo< ofu<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
@@ -15,3 +18,6 @@
 setlocal omnifunc=csscomplete#CompleteCSS
 
 let &l:include = '^\s*@import\s\+\%(url(\)\='
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index 2a49f8d..c4105305 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         cvs(1) RC file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/denyhosts.vim b/runtime/ftplugin/denyhosts.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/denyhosts.vim
+++ b/runtime/ftplugin/denyhosts.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index 6ebd94a..659046c 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dict(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index bda8782..ee738c5 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dictd(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index bdbecc0..3b3d046 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dircolors(1) input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim
index 354b093..461403c 100644
--- a/runtime/ftplugin/dosini.vim
+++ b/runtime/ftplugin/dosini.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Configuration File (ini file) for MSDOS/MS Windows
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-08-23
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dtd.vim b/runtime/ftplugin/dtd.vim
index 9911187..3b15bda 100644
--- a/runtime/ftplugin/dtd.vim
+++ b/runtime/ftplugin/dtd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	dtd
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
+" Last Changed: 30 Jun 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,12 @@
 set cpo-=C
 
 setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_dtd_autocomment") || (g:ft_dtd_autocomment == 1)
+    setlocal formatoptions+=croql
+endif
 
 if exists("loaded_matchit")
     let b:match_words = '<!--:-->,<!:>'
@@ -26,7 +32,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal commentstring<" .
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
 		\     " | unlet! b:matchwords b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index c7c11f6..7d92575 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         elinks(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index df5bf50..e072c63 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         eterm(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index 174ed44..a0d4650 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         fetchmail(1) RC File
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/framescript.vim b/runtime/ftplugin/framescript.vim
new file mode 100644
index 0000000..805401a
--- /dev/null
+++ b/runtime/ftplugin/framescript.vim
@@ -0,0 +1,30 @@
+" Vim ftplugin file
+" Language:         FrameScript
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-19
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */
+setlocal formatoptions-=t formatoptions+=croql
+setlocal include=^\\s*<#Include
+
+if exists("loaded_matchit")
+  let s:not_end = '\c\%(\<End\)\@<!'
+  let b:match_words =
+        \ s:not_end . '\<If\>:\c\<ElseIf\>:\c\<Else\>:\c\<EndIf\>,' .
+        \ s:not_end . '\<Loop\>:\c\<EndLoop\>' .
+        \ s:not_end . '\<Sub\>:\c\<EndSub\>'
+  unlet s:not_end
+endif
+
+let &cpo = s:cpo_save 
+unlet s:cpo_save
diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim
index f8d331f..9ac1aa1 100644
--- a/runtime/ftplugin/git.vim
+++ b/runtime/ftplugin/git.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	generic git output
 " Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2008 Jun 20
+" Last Change:	2008 Jul 30
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
@@ -22,7 +22,7 @@
 
 if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
     if b:git_dir =~# '/\.git$' " Not a bare repository
-        let &l:path = escape(fnamemodify(b:git_dir,':t'),'\, ').','.&l:path
+        let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
     endif
     let &l:path = escape(b:git_dir,'\, ').','.&l:path
     let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index d4bed14..5caa1f6 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         gpg(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index 447ba18..eef3cd6 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         group(5) user group file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 162fcd3..21c4e36 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         grub(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index f5a3a80..144f9f6 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Haskell
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index 46c844c..5c6dac8 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Vim help file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl fo< tw<"
 
 setlocal formatoptions+=tcroql textwidth=78
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/hostconf.vim b/runtime/ftplugin/hostconf.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/hostconf.vim
+++ b/runtime/ftplugin/hostconf.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/hostsaccess.vim b/runtime/ftplugin/hostsaccess.vim
new file mode 100644
index 0000000..a2f55ac
--- /dev/null
+++ b/runtime/ftplugin/hostsaccess.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language:         hosts_access(5) control file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-09
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim
index 4797f4b..6c8607d 100644
--- a/runtime/ftplugin/html.vim
+++ b/runtime/ftplugin/html.vim
@@ -12,8 +12,14 @@
 let s:save_cpo = &cpo
 set cpo-=C
 
-setlocal commentstring=<!--%s-->
 setlocal matchpairs+=<:>
+setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
+
+if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1)
+    setlocal formatoptions-=t formatoptions+=croql
+endif
+
 
 if exists('&omnifunc')
     " Distinguish between HTML versions
@@ -77,7 +83,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc<"
+let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" .
     \	" | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 2047b1d..0e195b0 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         indent(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/kconfig.vim b/runtime/ftplugin/kconfig.vim
index bb93218..1b10c86 100644
--- a/runtime/ftplugin/kconfig.vim
+++ b/runtime/ftplugin/kconfig.vim
@@ -1,12 +1,18 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-10
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index 544fc0d..31ce5c9 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         ld(1) script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index e81684c..9e2eeb5 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         lftp(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 8845b17..38bd3de 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         libao.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index 6b18c83..cd5b7b5 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         limits(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index c5cb1b1..7c44f97 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         login.access(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index 431755e..668d08a 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         login.defs(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 8702584..0ffe0ac 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         m4
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:dnl commentstring=dnl\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mailaliases.vim b/runtime/ftplugin/mailaliases.vim
index f52583f..1b10c86 100644
--- a/runtime/ftplugin/mailaliases.vim
+++ b/runtime/ftplugin/mailaliases.vim
@@ -1,12 +1,18 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-03-27
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index df4e994..f4c8c23 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Mailcap configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index 69cf6f5..a249a97 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         man.conf(5) - man configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index e351a13..fd1d3ce 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,14 +1,19 @@
 " Vim filetype plugin file
 " Language:         MetaFont
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index 97102a1..f200e9f 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         modules.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index 3709782..316fa9b 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,13 +1,16 @@
 " Vim filetype plugin file
 " Language:         MetaPost
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-07-04
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
@@ -20,3 +23,6 @@
     g/^beginfig(\d*);$/s//\='beginfig('.i.');'/ | let i = i + 1
   endfunction
 endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index e410667..65034a8 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         mplayer(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index 18b06d8..a109e5d 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -8,9 +8,15 @@
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
 
 let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index 67a2a48..be20d12 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         nanorc(5) - GNU nano configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 0f9417a..105a1d3 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         netrc(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/nsis.vim b/runtime/ftplugin/nsis.vim
new file mode 100644
index 0000000..acc2620
--- /dev/null
+++ b/runtime/ftplugin/nsis.vim
@@ -0,0 +1,22 @@
+" Vim ftplugin file
+" Language:         NSIS script
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-09
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
+setlocal formatoptions-=t formatoptions+=croql
+setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
+setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/ocaml.vim b/runtime/ftplugin/ocaml.vim
index 53431c9..7acf493 100644
--- a/runtime/ftplugin/ocaml.vim
+++ b/runtime/ftplugin/ocaml.vim
@@ -5,7 +5,8 @@
 "              Stefano Zacchiroli  <zack@bononia.it>
 "              Vincent Aravantinos <firstname.name@imag.fr>
 " URL:         http://www.ocaml.info/vim/ftplugin/ocaml.vim
-" Last Change: 2007 Sep 09 - Added .annot support for ocamlbuild, python not 
+" Last Change: 2008 Jul 17 - Bugfix related to fnameescape (VA)
+"              2007 Sep 09 - Added .annot support for ocamlbuild, python not 
 "                            needed anymore (VA)
 "              2006 May 01 - Added .annot support for file.whateverext (SZ)
 "	             2006 Apr 11 - Fixed an initialization bug; fixed ASS abbrev (MM)
@@ -16,6 +17,17 @@
 endif
 let b:did_ftplugin=1
 
+" some macro
+if exists('*fnameescape')
+  function! s:Fnameescape(s)
+    return fnameescape(a:s)
+  endfun
+else
+  function! s:Fnameescape(s)
+    return escape(a:s," \t\n*?[{`$\\%#'\"|!<")
+  endfun
+endif
+
 " Error handling -- helps moving where the compiler wants you to go
 let s:cposet=&cpoptions
 set cpo-=C
@@ -71,14 +83,14 @@
   map <LocalLeader>S :call OCaml_switch(1)<CR>
   fun OCaml_switch(newwin)
     if (match(bufname(""), "\\.mli$") >= 0)
-      let fname = substitute(bufname(""), "\\.mli$", ".ml", "")
+      let fname = s:Fnameescape(substitute(bufname(""), "\\.mli$", ".ml", ""))
       if (a:newwin == 1)
         exec "new " . fname
       else
         exec "arge " . fname
       endif
     elseif (match(bufname(""), "\\.ml$") >= 0)
-      let fname = bufname("") . "i"
+      let fname = s:Fnameescape(bufname("")) . "i"
       if (a:newwin == 1)
         exec "new " . fname
       else
@@ -260,6 +272,7 @@
   "      For the moment, the only possible keyword is \"type\"."
   " >>
 
+
 " 1. Finding the annotation file even if we use ocamlbuild
 
     " In:  two strings representing paths
@@ -286,16 +299,16 @@
   function! s:Locate_annotation()
     if !b:annotation_file_located
 
-      silent exe 'cd' expand('%:p:h')
+      silent exe 'cd' s:Fnameescape(expand('%:p:h'))
 
-      let annot_file_name = expand('%:r').'.annot'
+      let annot_file_name = s:Fnameescape(expand('%:r')).'.annot'
 
       " 1st case : the annot file is in the same directory as the buffer (no ocamlbuild)
       let b:annot_file_path = findfile(annot_file_name,'.')
       if b:annot_file_path != ''
         let b:annot_file_path = getcwd().'/'.b:annot_file_path
         let b:_build_path = ''
-        let b:source_file_relative_path = expand('%')
+        let b:source_file_relative_path = s:Fnameescape(expand('%'))
       else
         " 2nd case : the buffer and the _build directory are in the same directory
         "      ..
@@ -310,7 +323,7 @@
           if b:annot_file_path != ''
             let b:annot_file_path = getcwd().'/'.b:annot_file_path
           endif
-          let b:source_file_relative_path = expand('%')
+          let b:source_file_relative_path = s:Fnameescape(expand('%'))
         else
           " 3rd case : the _build directory is in a directory higher in the file hierarchy 
           "            (it can't be deeper by ocamlbuild requirements)
@@ -325,9 +338,9 @@
           let b:_build_path = finddir('_build',';')
           if b:_build_path != ''
             let project_path                = substitute(b:_build_path,'/_build$','','')
-            let path_relative_to_project    = substitute(expand('%:p:h'),project_path.'/','','')
+            let path_relative_to_project    = s:Fnameescape(substitute(expand('%:p:h'),project_path.'/','',''))
             let b:annot_file_path           = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
-            let b:source_file_relative_path = substitute(expand('%:p'),project_path.'/','','')
+            let b:source_file_relative_path = s:Fnameescape(substitute(expand('%:p'),project_path.'/','',''))
           else
             let b:annot_file_path = findfile(annot_file_name,'**')
             "4th case : what if the user decided to change the name of the _build directory ?
@@ -339,7 +352,7 @@
                 let b:annot_file_path = getcwd().'/'.b:annot_file_path
                 let b:_build_path     = getcwd().'/'.b:_build_path
               endif
-              let b:source_file_relative_path = expand('%')
+              let b:source_file_relative_path = s:Fnameescape(expand('%'))
             else
               " 4b. anarchy : the renamed _build directory may be higher in the hierarchy
               " this will work if the file for which we are looking annotations has a unique name in the whole project
@@ -380,16 +393,16 @@
       set hidden
       let s:current_buf = bufname('%')
       if bufloaded(b:annot_file_path)
-        silent exe 'keepj keepalt' 'buffer' b:annot_file_path
+        silent exe 'keepj keepalt' 'buffer' s:Fnameescape(b:annot_file_path)
       else
-        silent exe 'keepj keepalt' 'view' b:annot_file_path
+        silent exe 'keepj keepalt' 'view' s:Fnameescape(b:annot_file_path)
       endif
     endfun
 
       " After call:
       "   The original buffer has been restored in the exact same state as before.
     function! s:Exit_annotation_buffer()
-      silent exe 'keepj keepalt' 'buffer' s:current_buf
+      silent exe 'keepj keepalt' 'buffer' s:Fnameescape(s:current_buf)
       let &l:hidden = s:current_hidden
       call setpos('.',s:current_pos)
     endfun
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index cf9707a..96d9646 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         pam(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 20f2b7f..5088c43 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         passwd(5) password file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 3f3e570..3771005 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Perl
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  2007 Nov 30
+" Last Change:  17 Jul 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,7 @@
 set cpo-=C
 
 setlocal formatoptions+=crq
+setlocal keywordprg=perldoc\ -f
 
 setlocal comments=:#
 setlocal commentstring=#%s
@@ -63,7 +64,7 @@
 "---------------------------------------------
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf<" .
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
 	    \	      " | unlet! b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index 7f1ecdf..6ec1f87 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         pinfo(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index a8db58e..cc2ceed 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,15 +1,21 @@
 " Vim filetype plugin file
 " Language:         procmail(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
 let &l:include = '^\s*INCLUDERC\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index cf191a9..caeb574 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Prolog
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index b3679bd..2486ff9 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         protocols(5) - Internet protocols definition file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index 25c6e7e..f62693b 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Quake[1-3] configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:// commentstring=//\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 72c1e14..7ff22f8 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Racc input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index 9656c57..0a4dbb5 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         readline(3) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index a5d21fb..2b8fd50 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Relax NG compact syntax
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index 8fc25e9..b871cf1 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< et< fo<"
 
 setlocal comments=fb:.. commentstring=..\ %s expandtab
 setlocal formatoptions+=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 92ce475..95c3849 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         screen(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index e1f66fc..813d14c 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         sensors.conf(5) - libsensors configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index d670cd9..d34349e 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         services(5) - Internet network services list
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index 4b4796b..f9d5945 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         setserial(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index d906e19..9a8759c 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Sieve filtering language input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index 8c92a55..0c45689 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index 07e42c1..e9d533e 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location registration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index d6a6751..8d64d47 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location SPI file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index 3552696..f940af9 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         OpenSSH client configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index a698f04..5756302 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         sudoers(5) configuration files
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index 6b1ac6c..fb1098d 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         sysctl.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:;,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index a473bcd..7ce31d1 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         terminfo(5) definition
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index c0a0982..6042e14 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index 82602b1..e7ad31d 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) permissions file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index 3cb4c33..be8d646 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) rules file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index db35fee..f4e7bce 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index b441dfe..cd85182 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         X resources files like ~/.Xdefaults (xrdb)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index 29e9eac..ab7569a 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         XFree86 Configuration File
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index b62dec5..f209af1 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         xinetd.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xml.vim b/runtime/ftplugin/xml.vim
index 8cff537..55d9ee6 100644
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	xml
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
+" Last Changed: 30 Jun 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,13 @@
 set cpo-=C
 
 setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
+    setlocal formatoptions+=croql
+endif
+
 
 " XML:  thanks to Johannes Zellner and Akbar Ibrahim
 " - case sensitive
@@ -49,7 +56,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal cms<" .
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
 		\     " | unlet! b:match_ignorecase b:match_words b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index a0d913e..027ae09 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         xmodmap(1) definition file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:! commentstring=!\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index a2893cd..b88803a 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         YAML (YAML Ain't Markup Language)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< et< fo<"
 
 setlocal comments=:# commentstring=#\ %s expandtab
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index c8f82a5..c6db781 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Zsh shell script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/indent/dtd.vim b/runtime/indent/dtd.vim
new file mode 100644
index 0000000..3c35116
--- /dev/null
+++ b/runtime/indent/dtd.vim
@@ -0,0 +1,325 @@
+" Vim indent file
+" Language:	    DTD (Document Type Definition for XML)
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-18
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal indentexpr=GetDTDIndent()
+setlocal indentkeys=!^F,o,O,>
+setlocal nosmartindent
+
+if exists("*GetDTDIndent")
+  finish
+endif
+
+" TODO: Needs to be adjusted to stop at [, <, and ].
+let s:token_pattern = '^[^[:space:]]\+'
+
+function s:lex1(input, start, ...)
+  let pattern = a:0 > 0 ? a:1 : s:token_pattern
+  let start = matchend(a:input, '^\_s*', a:start)
+  if start == -1
+    return ["", a:start]
+  endif
+  let end = matchend(a:input, pattern, start)
+  if end == -1
+    return ["", a:start]
+  endif
+  let token = strpart(a:input, start, end - start)
+  return [token, end]
+endfunction
+
+function s:lex(input, start, ...)
+  let pattern = a:0 > 0 ? a:1 : s:token_pattern
+  let info = s:lex1(a:input, a:start, pattern)
+  while info[0] == '--'
+    let info = s:lex1(a:input, info[1], pattern)
+    while info[0] != "" && info[0] != '--'
+      let info = s:lex1(a:input, info[1], pattern)
+    endwhile
+    if info[0] == ""
+      return info
+    endif
+    let info = s:lex1(a:input, info[1], pattern)
+  endwhile
+  return info
+endfunction
+
+function s:indent_to_innermost_parentheses(line, end)
+  let token = '('
+  let end = a:end
+  let parentheses = [end - 1]
+  while token != ""
+    let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\)[?*+]\=')
+    if token[0] == '('
+      call add(parentheses, end - 1)
+    elseif token[0] == ')'
+      if len(parentheses) == 1
+        return [-1, end]
+      endif
+      call remove(parentheses, -1)
+    endif
+  endwhile
+  return [parentheses[-1] - strridx(a:line, "\n", parentheses[-1]), end]
+endfunction
+
+" TODO: Line and end could be script global (think OO members).
+function GetDTDIndent()
+  if v:lnum == 1
+    return 0
+  endif
+  
+  " Begin by searching back for a <! that isn’t inside a comment.
+  " From here, depending on what follows immediately after, parse to
+  " where we’re at to determine what to do.
+  if search('<!', 'bceW') == 0
+    return indent(v:lnum - 1)
+  endif
+  let lnum = line('.')
+  let col = col('.')
+  let indent = indent('.')
+  let line = join(getline(lnum, v:lnum - 1), "\n")
+
+  let [declaration, end] = s:lex1(line, col)
+  if declaration == ""
+    return indent + &sw
+  elseif declaration == '--'
+    " We’re looking at a comment.  Now, simply determine if the comment is
+    " terminated or not.  If it isn’t, let Vim take care of that using
+    " 'comments' and 'autoindent'. Otherwise, indent to the first lines level.
+    while declaration != ""
+      let [declaration, end] = s:lex(line, end)
+      if declaration == "-->"
+        return indent
+      endif
+    endwhile
+    return -1
+  elseif declaration == 'ELEMENT'
+    " Check for element name.  If none exists, indent one level.
+    let [name, end] = s:lex(line, end)
+    if name == ""
+      return indent + &sw
+    endif
+
+    " Check for token following element name.  This can be a specification of
+    " whether the start or end tag may be omitted.  If nothing is found, indent
+    " one level.
+    let [token, end] = s:lex(line, end)
+    let n = 0
+    while token =~ '[-O]' && n < 2
+      let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)')
+      let n += 1
+    endwhile
+    if token == ""
+      return indent + &sw
+    endif
+
+    " Next comes the content model.  If the token we’ve found isn’t a
+    " parenthesis it must be either ANY, EMPTY or some random junk.  Either
+    " way, we’re done indenting this element, so set it to that of the first
+    " line so that the terminating “>” winds up having the same indention.
+    if token != '('
+      return indent
+    endif
+
+    " Now go through the content model.  We need to keep track of the nesting
+    " of parentheses.  As soon as we hit 0 we’re done.  If that happens we must
+    " have a complete content model.  Thus set indention to be the same as that
+    " of the first line so that the terminating “>” winds up having the same
+    " indention.  Otherwise, we’ll indent to the innermost parentheses not yet
+    " matched.
+    let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
+    if indent_of_innermost != -1
+      return indent_of_innermost
+    endif
+
+    " Finally, look for any additions and/or exceptions to the content model.
+    " This is defined by a “+” or “-” followed by another content model
+    " declaration.
+    " TODO: Can the “-” be separated by whitespace from the “(”?
+    let seen = { '+(': 0, '-(': 0 }
+    while 1
+      let [additions_exceptions, end] = s:lex(line, end, '^[+-](')
+      if additions_exceptions != '+(' && additions_exceptions != '-('
+        let [token, end] = s:lex(line, end)
+        if token == '>'
+          return indent
+        endif
+        " TODO: Should use s:lex here on getline(v:lnum) and check for >.
+        return getline(v:lnum) =~ '^\s*>' || count(values(seen), 0) == 0 ? indent : (indent + &sw)
+      endif
+
+      " If we’ve seen an addition or exception already and this is of the same
+      " kind, the user is writing a broken DTD.  Time to bail.
+      if seen[additions_exceptions]
+        return indent
+      endif
+      let seen[additions_exceptions] = 1
+
+      let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
+      if indent_of_innermost != -1
+        return indent_of_innermost
+      endif
+    endwhile
+  elseif declaration == 'ATTLIST'
+    " Check for element name.  If none exists, indent one level.
+    let [name, end] = s:lex(line, end)
+    if name == ""
+      return indent + &sw
+    endif
+
+    " Check for any number of attributes.
+    while 1
+      " Check for attribute name.  If none exists, indent one level, unless the
+      " current line is a lone “>”, in which case we indent to the same level
+      " as the first line.  Otherwise, if the attribute name is “>”, we have
+      " actually hit the end of the attribute list, in which case we indent to
+      " the same level as the first line.
+      let [name, end] = s:lex(line, end)
+      if name == ""
+        " TODO: Should use s:lex here on getline(v:lnum) and check for >.
+        return getline(v:lnum) =~ '^\s*>' ? indent : (indent + &sw)
+      elseif name == ">"
+        return indent
+      endif
+
+      " Check for attribute value declaration.  If none exists, indent two
+      " levels.  Otherwise, if it’s an enumerated value, check for nested
+      " parentheses and indent to the innermost one if we don’t reach the end
+      " of the listc.  Otherwise, just continue with looking for the default
+      " attribute value.
+      " TODO: Do validation of keywords
+      " (CDATA|NMTOKEN|NMTOKENS|ID|IDREF|IDREFS|ENTITY|ENTITIES)?
+      let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
+      if value == ""
+        return indent + &sw * 2
+      elseif value == 'NOTATION'
+        " If this is a enumerated value based on notations, read another token
+        " for the actual value.  If it doesn’t exist, indent three levels.
+        " TODO: If validating according to above, value must be equal to '('.
+        let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
+        if value == ""
+          return indent + &sw * 3
+        endif
+      endif
+
+      if value == '('
+        let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end)
+        if indent_of_innermost != -1
+          return indent_of_innermost
+        endif
+      endif
+
+      " Finally look for the attribute’s default value.  If non exists, indent
+      " two levels.
+      " TODO: Do validation of keywords (#REQUIRED|#IMPLIED)?
+      let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|[^[:space:]]\+\)')
+      if default == ""
+        return indent + &sw * 2
+      elseif default == '#FIXED'
+        " We need to look for the fixed value.  If non exists, indent three
+        " levels.
+        let [default, end] = s:lex(line, end, '^"\_[^"]*"')
+        if default == ""
+          return indent + &sw * 3
+        endif
+      endif
+    endwhile
+  elseif declaration == 'ENTITY'
+    " Check for entity name.  If none exists, indent one level.  Otherwise, if
+    " the name actually turns out to be a percent sign, “%”, this is a
+    " parameter entity.  Read another token to determine the entity name and,
+    " again, if none exists, indent one level.
+    let [name, end] = s:lex(line, end)
+    if name == ""
+      return indent + &sw
+    elseif name == '%'
+      let [name, end] = s:lex(line, end)
+      if name == ""
+        return indent + &sw
+      endif
+    endif
+
+    " Now check for the entity value.  If none exists, indent one level.  If it
+    " does exist, indent to same level as first line, as we’re now done with
+    " this entity.
+    "
+    " The entity value can be a string in single or double quotes (no escapes
+    " to worry about, as entities are used instead).  However, it can also be
+    " that this is an external unparsed entity.  In that case we have to look
+    " further for (possibly) a public ID and an URI followed by the NDATA
+    " keyword and the actual notation name.  For the public ID and URI, indent
+    " two levels, if they don’t exist.  If the NDATA keyword doesn’t exist,
+    " indent one level.  Otherwise, if the actual notation name doesn’t exist,
+    " indent two level.  If it does, indent to same level as first line, as
+    " we’re now done with this entity.
+    let [value, end] = s:lex(line, end)
+    if value == ""
+      return indent + &sw
+    elseif value == 'SYSTEM' || value == 'PUBLIC'
+      let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
+      if quoted_string == ""
+        return indent + &sw * 2
+      endif
+
+      if value == 'PUBLIC'
+        let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
+        if quoted_string == ""
+          return indent + &sw * 2
+        endif
+      endif
+
+      let [ndata, end] = s:lex(line, end)
+      if ndata == ""
+        return indent + &sw
+      endif
+
+      let [name, end] = s:lex(line, end)
+      return name == "" ? (indent + &sw * 2) : indent
+    else
+      return indent
+    endif
+  elseif declaration == 'NOTATION'
+    " Check for notation name.  If none exists, indent one level.
+    let [name, end] = s:lex(line, end)
+    if name == ""
+      return indent + &sw
+    endif
+
+    " Now check for the external ID.  If none exists, indent one level.
+    let [id, end] = s:lex(line, end)
+    if id == ""
+      return indent + &sw
+    elseif id == 'SYSTEM' || id == 'PUBLIC'
+      let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
+      if quoted_string == ""
+        return indent + &sw * 2
+      endif
+
+      if id == 'PUBLIC'
+        let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\|>\)')
+        if quoted_string == ""
+          " TODO: Should use s:lex here on getline(v:lnum) and check for >.
+          return getline(v:lnum) =~ '^\s*>' ? indent : (indent + &sw * 2)
+        elseif quoted_string == '>'
+          return indent
+        endif
+      endif
+    endif
+
+    return indent
+  endif
+
+  " TODO: Processing directives could be indented I suppose.  But perhaps it’s
+  " just as well to let the user decide how to indent them (perhaps extending
+  " this function to include proper support for whatever processing directive
+  " language they want to use).
+
+  " Conditional sections are simply passed along to let Vim decide what to do
+  " (and hence the user).
+  return -1
+endfunction
+
+let &cpo = s:cpo_save
diff --git a/runtime/indent/framescript.vim b/runtime/indent/framescript.vim
new file mode 100644
index 0000000..49ff92a
--- /dev/null
+++ b/runtime/indent/framescript.vim
@@ -0,0 +1,41 @@
+" Vim indent file
+" Language:         FrameScript
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-19
+
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetFrameScriptIndent()
+setlocal indentkeys=!^F,o,O,0=~Else,0=~EndIf,0=~EndLoop,0=~EndSub
+setlocal nosmartindent
+
+if exists("*GetFrameScriptIndent")
+  finish
+endif
+
+function GetFrameScriptIndent()
+  let lnum = prevnonblank(v:lnum - 1)
+
+  if lnum == 0
+    return 0
+  endif
+
+  if getline(v:lnum) =~ '^\s*\*'
+    return cindent(v:lnum)
+  endif
+
+  let ind = indent(lnum)
+
+  if getline(lnum) =~? '^\s*\%(If\|Loop\|Sub\)'
+    let ind = ind + &sw
+  endif
+
+  if getline(v:lnum) =~? '^\s*\%(Else\|End\%(If\|Loop\|Sub\)\)'
+    let ind = ind - &sw
+  endif
+
+  return ind
+endfunction
diff --git a/runtime/plugin/netrwPlugin.vim b/runtime/plugin/netrwPlugin.vim
index f84aadc..36f576c 100644
--- a/runtime/plugin/netrwPlugin.vim
+++ b/runtime/plugin/netrwPlugin.vim
@@ -1,9 +1,9 @@
 " netrwPlugin.vim: Handles file transfer and remote directory listing across a network
 "            PLUGIN SECTION
-" Date:		Apr 07, 2008
+" Date:		Aug 01, 2008
 " Maintainer:	Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Copyright:    Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
 "               Permission is hereby granted to use and distribute this code,
 "               with or without modifications, provided that this copyright
 "               notice is copied with it. Like anything else that's free,
@@ -22,7 +22,7 @@
 if &cp || exists("g:loaded_netrwPlugin")
  finish
 endif
-let g:loaded_netrwPlugin = "v127"
+let g:loaded_netrwPlugin = "v131"
 let s:keepcpo            = &cpo
 if v:version < 700
  echohl WarningMsg | echo "***netrw*** you need vim version 7.0 for this version of netrw" | echohl None
@@ -47,19 +47,19 @@
 augroup Network
  au!
  if has("win32") || has("win95") || has("win64") || has("win16")
-  au BufReadCmd  file://*		exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "bwipe ".expand("<amatch>")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+  au BufReadCmd  file://*		exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
  else
-  au BufReadCmd  file://*		exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "bwipe ".expand("<amatch>")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
-  au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',"")|exe "bwipe ".substitute(expand("<amatch>"),'file://\(\k\+@\)\=','','')|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+  au BufReadCmd  file://*		exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
+  au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',""))|exe "bwipe ".fnameescape(substitute(expand("<amatch>"),'file://\(\k\+@\)\=','',''))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
  endif
- au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<amatch>")|exe '2Nread "'.expand("<amatch>").'"'|exe "silent doau BufReadPost ".expand("<amatch>")
- au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau FileReadPre ".expand("<amatch>")|exe 'Nread "'   .expand("<amatch>").'"'|exe "silent doau FileReadPost ".expand("<amatch>")
- au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau BufWritePre ".expand("<amatch>")|exe 'Nwrite "' .expand("<amatch>").'"'|exe "silent doau BufWritePost ".expand("<amatch>")
- au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau FileWritePre ".expand("<amatch>")|exe "'[,']".'Nwrite "' .expand("<amatch>").'"'|exe "silent doau FileWritePost ".expand("<amatch>")
+ au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|exe '2Nread '.fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
+ au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|exe 'Nread '.fnameescape(expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
+ au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
  try
-  au SourceCmd    ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource "'.expand("<amatch>").'"'
+  au SourceCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource '.fnameescape(expand("<amatch>"))
  catch /^Vim\%((\a\+)\)\=:E216/
-  au SourcePre    ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource "'.expand("<amatch>").'"'
+  au SourcePre   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe 'Nsource '.fnameescape(expand("<amatch>"))
  endtry
 augroup END
 
diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim
index 412ceed..9a28a10 100644
--- a/runtime/plugin/tarPlugin.vim
+++ b/runtime/plugin/tarPlugin.vim
@@ -14,7 +14,7 @@
 if &cp || exists("g:loaded_tarPlugin")
  finish
 endif
-let g:loaded_tarPlugin = "v19"
+let g:loaded_tarPlugin = "v20"
 let s:keepcpo          = &cpo
 set cpo&vim
 
diff --git a/runtime/plugin/vimballPlugin.vim b/runtime/plugin/vimballPlugin.vim
index 502c821..630bb9f 100644
--- a/runtime/plugin/vimballPlugin.vim
+++ b/runtime/plugin/vimballPlugin.vim
@@ -16,7 +16,7 @@
 if &cp || exists("g:loaded_vimballPlugin")
  finish
 endif
-let g:loaded_vimballPlugin = "v27"
+let g:loaded_vimballPlugin = "v29"
 let s:keepcpo              = &cpo
 set cpo&vim
 
diff --git a/runtime/plugin/zipPlugin.vim b/runtime/plugin/zipPlugin.vim
index e198c66..b80ecc6 100644
--- a/runtime/plugin/zipPlugin.vim
+++ b/runtime/plugin/zipPlugin.vim
@@ -20,16 +20,7 @@
 if &cp || exists("g:loaded_zipPlugin")
  finish
 endif
-
-" Don't use the plugin if fnameescape() is not available
-if !exists("*fnameescape")
-  if &verbose > 1
-   echoerr "zipPlugin not loaded because fnameescape() is not available"
- endif
- finish
-endif
-
-let g:loaded_zipPlugin = "v21+b"
+let g:loaded_zipPlugin = "v22"
 let s:keepcpo          = &cpo
 set cpo&vim
 
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 201c375..a586920 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:	2008 Jun 30
+" Last change:	2008 Jul 17
 
 " 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
@@ -276,6 +276,7 @@
 
     " Strace
   elseif s:line1 =~ '^[0-9]* *execve('
+  elseif s:line1 =~ '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~ '^__libc_start_main'
     set ft=strace
 
     " VSE JCL
diff --git a/runtime/spell/pt/main.aap b/runtime/spell/pt/main.aap
index 17ba24d..b2ad65b 100644
--- a/runtime/spell/pt/main.aap
+++ b/runtime/spell/pt/main.aap
@@ -1,5 +1,5 @@
 # Aap recipe for Portuguese Vim spell files.
-#
+# See ftp://ftp.vim.org/pub/vim/runtime/spell/README.txt
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
diff --git a/runtime/spell/pt/pt_BR.diff b/runtime/spell/pt/pt_BR.diff
index 0bd44e2..f4814af 100644
--- a/runtime/spell/pt/pt_BR.diff
+++ b/runtime/spell/pt/pt_BR.diff
@@ -14,7 +14,7 @@
 --- 13,32 ----
   
 + NAME    Brazilian Portuguese
-+ VERSION 20080221V
++ VERSION 2008-07-07V
 + HOME	http://www.broffice.org/verortografico
 + AUTHOR  Raimundo Santos Moura
 + EMAIL   raimundomoura AT openoffice DOT org
diff --git a/runtime/spell/pt/pt_PT.diff b/runtime/spell/pt/pt_PT.diff
index 4b048eb..36a12ac 100644
--- a/runtime/spell/pt/pt_PT.diff
+++ b/runtime/spell/pt/pt_PT.diff
@@ -10,7 +10,7 @@
   SET ISO8859-1
   
 + NAME European Portuguese
-+ VERSION 2008-03-20
++ VERSION 2008-07-05
 + HOME http://natura.di.uminho.pt/
 + AUTHOR Rui Vilela
 + EMAIL ruivilela AT di DOT uminho DOT pt
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim
index bd40166..ee66bf6 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: 2007 Aug 31
+" Last Change: 2008 Jul 17
 "	       (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
 "	       (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
 "	       (made w3 compliant by Edd Barrett <vext01@gmail.com>)
@@ -238,7 +238,7 @@
 let s:HtmlEndline = ''
 if exists("html_no_pre")
   let s:HtmlEndline = '<br' . s:tag_close
-    let s:LeadingSpace = '&nbsp;'
+  let s:LeadingSpace = '&nbsp;'
   let s:HtmlSpace = '\' . s:LeadingSpace
 endif
 
diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim
index bbefd6f..42d4cfd 100644
--- a/runtime/syntax/autohotkey.vim
+++ b/runtime/syntax/autohotkey.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         AutoHotkey script file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-01
+" Latest Revision:  2008-06-22
 
 if exists("b:current_syntax")
   finish
@@ -246,6 +246,15 @@
       \ true
       \ false
 
+" TODO: Shouldn't we look for g:, b:,  variables before defaulting to
+" something?
+if exists("g:autohotkey_syntax_sync_minlines")
+  let b:autohotkey_syntax_sync_minlines = g:autohotkey_syntax_sync_minlines
+else
+  let b:autohotkey_syntax_sync_minlines = 50
+endif
+exec "syn sync ccomment autohotkeyComment minlines=" . b:autohotkey_syntax_sync_minlines
+
 hi def link autohotkeyTodo                Todo
 hi def link autohotkeyComment             Comment
 hi def link autohotkeyCommentStart        autohotkeyComment
diff --git a/runtime/syntax/bzr.vim b/runtime/syntax/bzr.vim
index afbae1a..2968f79 100644
--- a/runtime/syntax/bzr.vim
+++ b/runtime/syntax/bzr.vim
@@ -4,7 +4,7 @@
 " URL:          http://www.hlabs.spb.ru/vim/bzr.vim
 " Revision:     $Id$
 " Filenames:    bzr_log.*
-" Version:      1.0
+" Version:      1.1
 
 " For version 5.x: Clear all syntax items.
 " For version 6.x: Quit when a syntax file was already loaded.
@@ -14,7 +14,7 @@
   finish
 endif
 
-syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=ALL
+syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=ALL contains=@NoSpell
 syn match bzrRemoved   "^removed:$" contained
 syn match bzrAdded     "^added:$" contained
 syn match bzrRenamed   "^renamed:$" contained
diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim
index 4916b4d..fb4d3cc 100644
--- a/runtime/syntax/doxygen.vim
+++ b/runtime/syntax/doxygen.vim
@@ -1,11 +1,11 @@
 " DoxyGen syntax hilighting extension for c/c++/idl/java
-" Language:     doxygen on top of c, cpp, idl, java
+" Language:     doxygen on top of c, cpp, idl, java, php
 " Maintainer:   Michael Geddes <vimmer@frog.wheelycreek.net>
 " Author:       Michael Geddes
-" Last Change:  April 2007
-" Version:      1.20
+" Last Change:  July 2008
+" Version:      1.22
 "
-" Copyright 2004-2006 Michael Geddes
+" Copyright 2004-2008 Michael Geddes
 " Please feel free to use, modify & distribute all or part of this script,
 " providing this copyright message remains.
 " I would appreciate being acknowledged in any derived scripts, and would
@@ -30,12 +30,14 @@
 " also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
 " can be used to override it.
 "
-" By default, highlighting is done assumng you have the JAVADOC_AUTOBRIEF
+" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF
 " setting turned on in your Doxygen configuration.  If you don't, you
 " can set the variable g:doxygen_javadoc_autobrief to 0 to have the
 " highlighting more accurately reflect the way Doxygen will interpret your
 " comments.
 "
+" Support for cpp, c, idl, doxygen and php.
+"
 " Special thanks to:  Wu Yongwei, Toby Allsopp
 "
 
@@ -56,10 +58,10 @@
   "
 
   " C/C++ Style line comments
-  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold
-  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2 fold
-  syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl fold
-  syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial fold
+  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion
+  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion
+  syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
+  syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
 
   " Single line brief followed by multiline comment.
   syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
@@ -98,7 +100,7 @@
   " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
   syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
 
-  syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink  skipwhite keepend
+  syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipwhite keepend
 
   " Match a '<' for applying a comment to the previous element.
   syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
diff --git a/runtime/syntax/forth.vim b/runtime/syntax/forth.vim
index a61f7db..8713a72 100644
--- a/runtime/syntax/forth.vim
+++ b/runtime/syntax/forth.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    FORTH
 " Maintainer:  Christian V. J. Brüssow <cvjb@cvjb.de>
-" Last Change: Sa 14 Jul 2007 21:39:53 CEST
+" Last Change: Sa 09 Feb 2008 13:27:29 CET
 " Filenames:   *.fs,*.ft
 " URL:	       http://www.cvjb.de/comp/vim/forth.vim
 
@@ -10,9 +10,17 @@
 " The list of keywords is incomplete, compared with the offical ANS
 " wordlist. If you use this language, please improve it, and send me
 " the patches.
+"
+" Before sending me patches, please download the newest version of this file
+" from http://www.cvjb.de/comp/vim/forth.vim or http://www.vim.org/ (search
+" for forth.vim).
 
 " Many Thanks to...
 "
+" 2008-02-09:
+" Shawn K. Quinn <sjquinn at speakeasy dot net> send a big patch with
+" new words commonly used in Forth programs or defined by GNU Forth.
+"
 " 2007-07-11:
 " Benjamin Krill <ben at codiert dot org> send me a patch
 " to highlight space errors.
@@ -79,7 +87,7 @@
 syn match forthTodo contained 'Copyright\(\s([Cc])\)\=\(\s[0-9]\{2,4}\)\='
 
 " Characters allowed in keywords
-" I don't know if 128-255 are allowed in ANS-FORHT
+" I don't know if 128-255 are allowed in ANS-FORTH
 if version >= 600
     setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
 else
@@ -100,21 +108,27 @@
 
 " basic mathematical and logical operators
 syn keyword forthOperators + - * / MOD /MOD NEGATE ABS MIN MAX
-syn keyword forthOperators AND OR XOR NOT INVERT 2* 2/ 1+ 1- 2+ 2- 8*
+syn keyword forthOperators AND OR XOR NOT LSHIFT RSHIFT INVERT 2* 2/ 1+
+syn keyword forthOperators 1- 2+ 2- 8* UNDER+
 syn keyword forthOperators M+ */ */MOD M* UM* M*/ UM/MOD FM/MOD SM/REM
-syn keyword forthOperators D+ D- DNEGATE DABS DMIN DMAX
+syn keyword forthOperators D+ D- DNEGATE DABS DMIN DMAX D2* D2/
 syn keyword forthOperators F+ F- F* F/ FNEGATE FABS FMAX FMIN FLOOR FROUND
 syn keyword forthOperators F** FSQRT FEXP FEXPM1 FLN FLNP1 FLOG FALOG FSIN
 syn keyword forthOperators FCOS FSINCOS FTAN FASIN FACOS FATAN FATAN2 FSINH
-syn keyword forthOperators FCOSH FTANH FASINH FACOSH FATANH
-syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >=
-syn keyword forthOperators ?NEGATE ?DNEGATE
+syn keyword forthOperators FCOSH FTANH FASINH FACOSH FATANH F2* F2/ 1/F
+syn keyword forthOperators F~REL F~ABS F~
+syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >= U< U<=
+syn keyword forthOperators U> U>= D0< D0<= D0<> D0= D0> D0>= D< D<= D<>
+syn keyword forthOperators D= D> D>= DU< DU<= DU> DU>= WITHIN ?NEGATE
+syn keyword forthOperators ?DNEGATE 
 
 " stack manipulations
 syn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLL
-syn keyword forthStack 2DROP 2NIP 2DUP 2OVER 2TUCK 2SWAP 2ROT
-syn keyword forthStack 3DUP 4DUP
+syn keyword forthStack 2DROP 2NIP 2DUP 2OVER 2TUCK 2SWAP 2ROT 2-ROT
+syn keyword forthStack 3DUP 4DUP 5DUP 3DROP 4DROP 5DROP 8DROP 4SWAP 4ROT
+syn keyword forthStack 4-ROT 4TUCK 8SWAP 8DUP
 syn keyword forthRStack >R R> R@ RDROP 2>R 2R> 2R@ 2RDROP
+syn keyword forthRstack 4>R 4R> 4R@ 4RDROP
 syn keyword forthFStack FDROP FNIP FDUP FOVER FTUCK FSWAP FROT
 
 " stack pointer manipulations
@@ -139,24 +153,40 @@
 syn keyword forthLoop UNLOOP LEAVE ?LEAVE EXIT DONE FOR NEXT
 
 " new words
+syn match forthClassDef '\<:class\s*[^ \t]\+\>'
+syn match forthObjectDef '\<:object\s*[^ \t]\+\>'
 syn match forthColonDef '\<:m\?\s*[^ \t]\+\>'
 syn keyword forthEndOfColonDef ; ;M ;m
-syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE CREATE
-syn keyword forthDefine USER VALUE TO DEFER IS DOES> IMMEDIATE COMPILE-ONLY
-syn keyword forthDefine COMPILE RESTRICT INTERPRET POSTPONE EXECUTE LITERAL
-syn keyword forthDefine CREATE-INTERPRET/COMPILE INTERPRETATION> <INTERPRETATION
-syn keyword forthDefine COMPILATION> <COMPILATION ] LASTXT COMP' POSTPONE,
-syn keyword forthDefine FIND-NAME NAME>INT NAME?INT NAME>COMP NAME>STRING STATE
-syn keyword forthDefine C; CVARIABLE
+syn keyword forthEndOfClassDef ;class
+syn keyword forthEndOfObjectDef ;object
+syn keyword forthDefine CONSTANT 2CONSTANT FCONSTANT VARIABLE 2VARIABLE
+syn keyword forthDefine FVARIABLE CREATE USER VALUE TO DEFER IS DOES> IMMEDIATE
+syn keyword forthDefine COMPILE-ONLY COMPILE RESTRICT INTERPRET POSTPONE EXECUTE
+syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION>
+syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT
+syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP
+syn keyword forthDefine NAME>STRING STATE C; CVARIABLE
+syn keyword forthDefine , 2, F, C, 
+syn match forthDefine "\[IFDEF]"
+syn match forthDefine "\[IFUNDEF]"
+syn match forthDefine "\[THEN]"
+syn match forthDefine "\[ENDIF]"
+syn match forthDefine "\[ELSE]"
+syn match forthDefine "\[?DO]"
+syn match forthDefine "\[DO]"
+syn match forthDefine "\[LOOP]"
+syn match forthDefine "\[+LOOP]"
+syn match forthDefine "\[NEXT]"
+syn match forthDefine "\[BEGIN]"
+syn match forthDefine "\[UNTIL]"
+syn match forthDefine "\[AGAIN]"
+syn match forthDefine "\[WHILE]"
+syn match forthDefine "\[REPEAT]"
 syn match forthDefine "\[COMP']"
 syn match forthDefine "'"
 syn match forthDefine '\<\[\>'
 syn match forthDefine "\[']"
 syn match forthDefine '\[COMPILE]'
-syn match forthClassDef '\<:class\s*[^ \t]\+\>'
-syn match forthObjectDef '\<:object\s*[^ \t]\+\>'
-syn keyword forthEndOfClassDef ';class'
-syn keyword forthEndOfObjectDef ';object'
 
 " debugging
 syn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINE
@@ -175,27 +205,48 @@
 syn region forthCharOps start=+."\s+ skip=+\\"+ end=+"+
 
 " char-number conversion
-syn keyword forthConversion <# # #> #S (NUMBER) (NUMBER?) CONVERT D>F D>S DIGIT
-syn keyword forthConversion DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER
+syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F 
+syn keyword forthConversion D>S DIGIT DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER
+syn keyword forthConversion F>S S>F
 
 " interptreter, wordbook, compiler
 syn keyword forthForth (LOCAL) BYE COLD ABORT >BODY >NEXT >LINK CFA >VIEW HERE
 syn keyword forthForth PAD WORDS VIEW VIEW> N>LINK NAME> LINK> L>NAME FORGET
-syn keyword forthForth BODY>
+syn keyword forthForth BODY> ASSERT( ASSERT0( ASSERT1( ASSERT2( ASSERT3( )
 syn region forthForth start=+ABORT"\s+ skip=+\\"+ end=+"+
 
 " vocabularies
 syn keyword forthVocs ONLY FORTH ALSO ROOT SEAL VOCS ORDER CONTEXT #VOCS
 syn keyword forthVocs VOCABULARY DEFINITIONS
 
+" File keywords
+syn keyword forthFileMode R/O R/W W/O BIN 
+syn keyword forthFileWords OPEN-FILE CREATE-FILE CLOSE-FILE DELETE-FILE
+syn keyword forthFileWords RENAME-FILE READ-FILE READ-LINE KEY-FILE
+syn keyword forthFileWords KEY?-FILE WRITE-FILE WRITE-LINE EMIT-FILE
+syn keyword forthFileWords FLUSH-FILE FILE-STATUS FILE-POSITION
+syn keyword forthFileWords REPOSITION-FILE FILE-SIZE RESIZE-FILE
+syn keyword forthFileWords SLURP-FILE SLURP-FID STDIN STDOUT STDERR
+syn keyword forthBlocks OPEN-BLOCKS USE LOAD --> BLOCK-OFFSET
+syn keyword forthBlocks GET-BLOCK-FID BLOCK-POSITION LIST SCR BLOCK
+syn keyword forthBlocks BUFER EMPTY-BUFFERS EMPTY-BUFFER UPDATE UPDATED?
+syn keyword forthBlocks SAVE-BUFFERS SAVE-BUFFER FLUSH THRU +LOAD +THRU
+syn keyword forthBlocks BLOCK-INCLUDED
+
 " numbers
 syn keyword forthMath DECIMAL HEX BASE
 syn match forthInteger '\<-\=[0-9.]*[0-9.]\+\>'
+syn match forthInteger '\<&-\=[0-9.]*[0-9.]\+\>'
 " recognize hex and binary numbers, the '$' and '%' notation is for gforth
 syn match forthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
 syn match forthInteger '\<\x*\d\x*\>'  " *2* --- this order!
 syn match forthInteger '\<%[0-1]*[0-1]\+\>'
-syn match forthFloat '\<-\=\d*[.]\=\d\+[Ee]\d\+\>'
+syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe]\d\+\>'
+syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe][-+]\d\+\>'
+
+" XXX If you find this overkill you can remove it. this has to come after the
+" highlighting for numbers otherwise it has no effect.
+syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo
 
 " Strings
 syn region forthString start=+\.*\"+ end=+"+ end=+$+
@@ -212,9 +263,15 @@
 
 " Include files
 syn match forthInclude '^INCLUDE\s\+\k\+'
+syn match forthInclude '^require\s\+\k\+'
 syn match forthInclude '^fload\s\+'
 syn match forthInclude '^needs\s\+'
 
+" Locals definitions
+syn region forthLocals start='{\s' start='{$' end='\s}' end='^}'
+syn match forthLocals '{ }' " otherwise, at least two spaces between
+syn region forthDeprecated start='locals|' end='|'
+
 " 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
@@ -257,6 +314,11 @@
     HiLink forthObjectDef Define
     HiLink forthEndOfObjectDef Define
     HiLink forthInclude Include
+    HiLink forthLocals Type " nothing else uses type and locals must stand out
+    HiLink forthDeprecated Error " if you must, change to Type
+    HiLink forthFileMode Function
+    HiLink forthFileWords Statement
+    HiLink forthBlocks Statement
     HiLink forthSpaceError Error
 
     delcommand HiLink
diff --git a/runtime/syntax/mailaliases.vim b/runtime/syntax/mailaliases.vim
index de85a17..743068f 100644
--- a/runtime/syntax/mailaliases.vim
+++ b/runtime/syntax/mailaliases.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         aliases(5) local alias database file
 " Maintainer:       Nikolai Weibull <nikolai@bitwi.se>
-" Latest Revision:  2006-01-14
+" Latest Revision:  2008-04-14
 
 if exists("b:current_syntax")
   finish
@@ -19,7 +19,7 @@
                                     \ nextgroup=mailaliasesName,
                                     \ mailaliasesComment
 
-syn match   mailaliasesName         contained '[0-9A-Za-z_-]\+'
+syn match   mailaliasesName         contained '[[:alnum:]\._-]\+'
                                     \ nextgroup=mailaliasesColon
 
 syn region  mailaliasesName         contained oneline start=+"+
diff --git a/runtime/syntax/make.vim b/runtime/syntax/make.vim
index 5e72f4e..e9d7ee9 100644
--- a/runtime/syntax/make.vim
+++ b/runtime/syntax/make.vim
@@ -2,7 +2,7 @@
 " Language:	Makefile
 " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 " URL:		http://www.fleiner.com/vim/syntax/make.vim
-" Last Change:	2007 Apr 30
+" Last Change:	2008 Aug 04
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -63,7 +63,7 @@
 
 
 " Statements / Functions (GNU make)
-syn match makeStatement contained "(\(subst\|addprefix\|addsuffix\|basename\|call\|dir\|error\|eval\|filter-out\|filter\|findstring\|firstword\|foreach\|if\|join\|notdir\|origin\|patsubst\|shell\|sort\|strip\|suffix\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
+syn match makeStatement contained "(\(subst\|abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
 
 " Comment
 if exists("make_microsoft")
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index d4e8827..54b6593 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         modules.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-17
+" Latest Revision:  2007-10-25
 
 if exists("b:current_syntax")
   finish
@@ -21,7 +21,7 @@
 
 syn keyword modconfPreProc      alias define include keep prune
                                 \ post-install post-remove pre-install
-                                \ pre-remove persistdir
+                                \ pre-remove persistdir blacklist
 
 syn keyword modconfKeyword      add above below install options probe probeall
                                 \ remove
diff --git a/runtime/syntax/natural.vim b/runtime/syntax/natural.vim
index f7f140f..2628151 100644
--- a/runtime/syntax/natural.vim
+++ b/runtime/syntax/natural.vim
@@ -1,205 +1,209 @@
 " Vim syntax file
 "
-" Language:		NATURAL
-" Version:		2.0.26.17
-" Maintainer:	Marko Leipert <vim@mleipert.de>
-" Last Changed:	2002-02-28 09:50:36
-" Support:		http://www.winconsole.de/vim/syntax.html
+" Language:	NATURAL
+" Version:	2.1.0.3
+" Maintainer:	Marko von Oppen <marko@von-oppen.com>
+" Last Changed:	2008-07-29 01:40:52
+" Support:	http://www.von-oppen.com/
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when this syntax file was already loaded
 if v:version < 600
-	syntax clear
-	set iskeyword+=-,*,#,+,_,/
+  syntax clear
+  set iskeyword+=-,*,#,+,_,/
 elseif exists("b:current_syntax")
-	finish
+  finish
 else
-	setlocal iskeyword+=-,*,#,+,_,/
+  setlocal iskeyword+=-,*,#,+,_,/
 endif
 
 " NATURAL is case insensitive
 syntax case ignore
 
 " preprocessor
-syn keyword naturalInclude		include nextgroup=naturalObjName skipwhite
+syn keyword naturalInclude	include nextgroup=naturalObjName skipwhite
 
 " define data
-syn keyword naturalKeyword		define data end-define
-syn keyword naturalKeyword		independent global parameter local redefine view
-syn keyword naturalKeyword		const[ant] init initial
+syn keyword naturalKeyword	define data end-define
+syn keyword naturalKeyword	independent global parameter local redefine view
+syn keyword naturalKeyword	const[ant] init initial
 
 " loops
-syn keyword naturalLoop			read end-read end-work find end-find histogram end-histogram
-syn keyword naturalLoop			end-all sort end-sort sorted descending ascending
-syn keyword naturalRepeat		repeat end-repeat while until for step end-for
-syn keyword naturalKeyword		in file with field starting from ending at thru by isn where
-syn keyword naturalError		on error end-error
-syn keyword naturalKeyword		accept reject end-enddata number unique retain as release
-syn keyword naturalKeyword		start end-start break end-break physical page top sequence
-syn keyword naturalKeyword		end-toppage end-endpage end-endfile before processing
-syn keyword naturalKeyword		end-before
+syn keyword naturalLoop		read end-read end-work find end-find histogram end-histogram
+syn keyword naturalLoop		end-all sort end-sort sorted descending ascending
+syn keyword naturalRepeat	repeat end-repeat while until for step end-for
+syn keyword naturalKeyword	in file with field starting from ending at thru by isn where
+syn keyword naturalError	on error end-error
+syn keyword naturalKeyword	accept reject end-enddata number unique retain as release
+syn keyword naturalKeyword	start end-start break end-break physical page top sequence
+syn keyword naturalKeyword	end-toppage end-endpage end-endfile before processing
+syn keyword naturalKeyword	end-before
 
 " conditionals
 syn keyword naturalConditional	if then else end-if end-norec
 syn keyword naturalConditional	decide end-decide value when condition none any
 
 " assignment / calculation
-syn keyword naturalKeyword		reset assign move left right justified compress to into edited
-syn keyword naturalKeyword		add subtract multiply divide compute name
-syn keyword naturalKeyword		all giving remainder rounded leaving space
-syn keyword naturalKeyword		examine full replace giving separate delimiter modified
-syn keyword naturalKeyword		suspend identical suppress
+syn keyword naturalKeyword	reset assign move left right justified compress to into edited
+syn keyword naturalKeyword	add subtract multiply divide compute name
+syn keyword naturalKeyword	all giving remainder rounded leaving space numeric
+syn keyword naturalKeyword	examine full replace giving separate delimiter modified
+syn keyword naturalKeyword	suspend identical suppress
 
 " program flow
-syn keyword naturalFlow			callnat fetch return enter escape bottom top stack formatted
-syn keyword naturalFlow			command call
-syn keyword naturalflow			end-subroutine routine
+syn keyword naturalFlow		callnat fetch return enter escape bottom top stack formatted
+syn keyword naturalFlow		command call
+syn keyword naturalflow		end-subroutine routine
 
 " file operations
-syn keyword naturalKeyword		update store get delete end transaction work once close
+syn keyword naturalKeyword	update store get delete end transaction work once close
 
 " other keywords
-syn keyword naturalKeyword		first every of no record[s] found ignore immediate
-syn keyword naturalKeyword		set settime key control stop terminate
+syn keyword naturalKeyword	first every of no record[s] found ignore immediate
+syn keyword naturalKeyword	set settime key control stop terminate
 
 " in-/output
-syn keyword naturalKeyword		write display input reinput notitle nohdr map newpage mark
-syn keyword naturalKeyword		alarm text help eject index
-syn keyword naturalKeyword		format printer skip lines
+syn keyword naturalKeyword	write display input reinput notitle nohdr map newpage
+syn keyword naturalKeyword	alarm text help eject index window base size
+syn keyword naturalKeyword	format printer skip lines
 
 " functions
-syn keyword naturalKeyword		abs atn cos exp frac int log sgn sin sqrt tan val old
+syn keyword naturalKeyword	abs atn cos exp frac int log sgn sin sqrt tan val old
+syn keyword naturalKeyword	pos
 
 " report mode keywords
 syn keyword naturalRMKeyword	same loop obtain indexed do doend
 
 " Subroutine name
-syn keyword	naturalFlow			perform subroutine nextgroup=naturalFunction skipwhite
-syn match	naturalFunction		"\<[a-z][-_a-z0-9]*\>"
+syn keyword naturalFlow		perform subroutine nextgroup=naturalFunction skipwhite
+syn match   naturalFunction	"\<[a-z][-_a-z0-9]*\>"
 
-syn keyword	naturalFlow			using nextgroup=naturalKeyword,naturalObjName skipwhite
-syn match	naturalObjName		"\<[a-z][-_a-z0-9]\{,7}\>"
+syn keyword naturalFlow		using nextgroup=naturalKeyword,naturalObjName skipwhite
+syn match   naturalObjName	"\<[a-z][-_a-z0-9]\{,7}\>"
 
 " Labels
-syn match	naturalLabel		"\<[+#a-z][-_#a-z0-9]*\."
-syn match	naturalRef			"\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>"
+syn match   naturalLabel	"\<[+#a-z][-_#a-z0-9]*\."
+syn match   naturalRef		"\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>"
+
+" mark keyword special handling
+syn keyword naturalKeyword	mark nextgroup=naturalMark skipwhite
+syn match   naturalMark		"\<\*[a-z][-_#.a-z0-9]*\>"
 
 " System variables
-syn match	naturalSysVar		"\<\*[a-z][-a-z0-9]*\>"
+syn match   naturalSysVar	"\<\*[a-z][-a-z0-9]*\>"
 
 "integer number, or floating point number without a dot.
-syn match	naturalNumber		"\<-\=\d\+\>"
+syn match   naturalNumber	"\<-\=\d\+\>"
 "floating point number, with dot
-syn match	naturalNumber		"\<-\=\d\+\.\d\+\>"
+syn match   naturalNumber	"\<-\=\d\+\.\d\+\>"
 "floating point number, starting with a dot
-syn match	naturalNumber		"\.\d\+"
+syn match   naturalNumber	"\.\d\+"
 
 " Formats in write statement
-syn match	naturalFormat		"\<\d\+[TX]\>"
+syn match   naturalFormat	"\<\d\+[TX]\>"
 
 " String and Character contstants
-syn match	naturalString		"H'\x\+'"
-syn region  naturalString		start=+"+ end=+"+
-syn region	naturalString		start=+'+ end=+'+
+syn match   naturalString	"H'\x\+'"
+syn region  naturalString	start=+"+ end=+"+
+syn region  naturalString	start=+'+ end=+'+
 
 " Type definition
-syn match	naturalAttribute	"\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>"
-syn match	naturalType			contained "\<[ABINP]\d\+\(,\d\+\)\=\>"
-syn match	naturalType			contained "\<[CL]\>"
+syn match   naturalAttribute	"\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>"
+syn match   naturalType		contained "\<[ABINP]\d\+\(,\d\+\)\=\>"
+syn match   naturalType		contained "\<[CL]\>"
 
 " "TODO" / other comments
-syn keyword naturalTodo			contained todo test
-syn match	naturalCommentMark	contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1
+syn keyword naturalTodo		contained todo test
+syn match   naturalCommentMark	contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1
 
 " comments
-syn region	naturalComment		start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
-syn region	naturalComment		start="^\*[\ \*]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
-syn region	naturalComment		start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
-syn match	naturalComment		"^*$"
-syn match	naturalComment		"^\d\{4} \*$"lc=5
+syn region  naturalComment	start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
+syn region  naturalComment	start="^\*[ *]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
+syn region  naturalComment	start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
+syn match   naturalComment	"^\*$"
+syn match   naturalComment	"^\d\{4} \*$"lc=5
 " /* is legal syntax in parentheses e.g. "#ident(label./*)"
-syn region	naturalPComment		contained start="/\*\s*[^),]"  end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
+syn region  naturalPComment	contained start="/\*\s*[^),]"  end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
 
 " operators
-syn keyword	naturalOperator		and or not eq ne gt lt ge le mask scan
+syn keyword naturalOperator	and or not eq ne gt lt ge le mask scan modified
 
 " constants
-syn keyword naturalBoolean		true false
-
-syn match	naturalLineNo		"^\d\{4}"
+syn keyword naturalBoolean	true false
+syn match   naturalLineNo	"^\d\{4}"
 
 " identifiers
-syn match	naturalIdent		"\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
-syn match	naturalIdent		"\<[+#a-z][-_#a-z0-9]*$"
-syn match	naturalLegalIdent	"[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"
+syn match   naturalIdent	"\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
+syn match   naturalIdent	"\<[+#a-z][-_#a-z0-9]*$"
+syn match   naturalLegalIdent	"[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"
 
 " parentheses
-syn region  naturalPar			matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
-syn match	naturalLineRef		"(\d\{4})"
+syn region  naturalPar		matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
+syn match   naturalLineRef	"(\d\{4})"
 
 " build syntax groups
 syntax cluster naturalConstant	contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean
 
 " folding
 if v:version >= 600
-	set foldignore=*
+  set foldignore=*
 endif
 
 
 if v:version >= 508 || !exists("did_natural_syntax_inits")
-	if v:version < 508
-		let did_natural_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
-	" The default methods for highlighting.  Can be overridden later
+  if v:version < 508
+    let did_natural_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+  " The default methods for highlighting.  Can be overridden later
 
-	" Constants
-	HiLink naturalFormat		Constant
-	HiLink naturalAttribute		Constant
-	HiLink naturalNumber		Number
-	HiLink naturalString		String
-	HiLink naturalBoolean		Boolean
+  " Constants
+  HiLink naturalFormat		Constant
+  HiLink naturalAttribute	Constant
+  HiLink naturalNumber		Number
+  HiLink naturalString		String
+  HiLink naturalBoolean		Boolean
 
-	" All kinds of keywords
-	HiLink naturalConditional	Conditional
-	HiLink naturalRepeat		Repeat
-	HiLink naturalLoop			Repeat
-	HiLink naturalFlow			Keyword
-	HiLink naturalError			Keyword
-	HiLink naturalKeyword		Keyword
-	HiLink naturalOperator		Operator
-	HiLink naturalParGui		Operator
+  " All kinds of keywords
+  HiLink naturalConditional	Conditional
+  HiLink naturalRepeat		Repeat
+  HiLink naturalLoop		Repeat
+  HiLink naturalFlow		Keyword
+  HiLink naturalError		Keyword
+  HiLink naturalKeyword		Keyword
+  HiLink naturalOperator	Operator
+  HiLink naturalParGui		Operator
 
-	" Labels
-	HiLink naturalLabel			Label
-	HiLink naturalRefLabel		Label
+  " Labels
+  HiLink naturalLabel		Label
+  HiLink naturalRefLabel	Label
 
-	" Comments
-	HiLink naturalPComment		Comment
-	HiLink naturalComment		Comment
-	HiLink naturalTodo			Todo
-	HiLink naturalCommentMark	PreProc
+  " Comments
+  HiLink naturalPComment	Comment
+  HiLink naturalComment		Comment
+  HiLink naturalTodo		Todo
+  HiLink naturalCommentMark	PreProc
 
-	HiLink naturalInclude		Include
-	HiLink naturalSysVar		Identifier
-	HiLink naturalLineNo		LineNr
-	HiLink naturalLineRef		Error
-	HiLink naturalSpecial		Special
-	HiLink naturalComKey		Todo
+  HiLink naturalInclude		Include
+  HiLink naturalSysVar		Identifier
+  HiLink naturalLineNo		LineNr
+  HiLink naturalLineRef		Error
+  HiLink naturalSpecial		Special
+  HiLink naturalComKey		Todo
 
-	" illegal things
-	HiLink naturalRMKeyword		Error
-	HiLink naturalLegalIdent	Error
+  " illegal things
+  HiLink naturalRMKeyword	Error
+  HiLink naturalLegalIdent	Error
 
-	HiLink naturalType			Type
-	HiLink naturalFunction		Function
-	HiLink naturalObjName		Function
+  HiLink naturalType		Type
+  HiLink naturalFunction	Function
+  HiLink naturalObjName		PreProc
 
-	delcommand HiLink
+  delcommand HiLink
 endif
 
 let b:current_syntax = "natural"
 
-" vim:set ts=4 sw=4 noet ft=vim list:
+" vim:set ts=8 sw=8 noet ft=vim:
diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim
index 795b652..d412227 100644
--- a/runtime/syntax/racc.vim
+++ b/runtime/syntax/racc.vim
@@ -1,7 +1,7 @@
 " Vim default file
 " Language:         Racc input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-07-09
+" Latest Revision:  2008-06-22
 
 if exists("b:current_syntax")
   finish
@@ -31,7 +31,7 @@
                             \ nextgroup=raccPrecToken,raccPrecString skipwhite
                             \ skipnl
 
-syn match   raccPrecToken   contained '\<\u[A-Z0-9]*\>'
+syn match   raccPrecToken   contained '\<\u[A-Z0-9_]*\>'
                             \ nextgroup=raccPrecToken,raccPrecString skipwhite
                             \ skipnl
 
@@ -48,7 +48,7 @@
 syn keyword raccTokenDecl   contained token
                             \ nextgroup=raccTokenR skipwhite skipnl
 
-syn match   raccTokenR      contained '\<\u[A-Z0-9]*\>'
+syn match   raccTokenR      contained '\<\u[A-Z0-9_]*\>'
                             \ nextgroup=raccTokenR skipwhite skipnl
 
 syn keyword raccExpect      contained expect
@@ -67,13 +67,13 @@
                             \ contains=raccComment,raccConvToken skipwhite
                             \ skipnl
 
-syn match   raccConvToken   contained '\<\u[A-Z0-9]*\>'
+syn match   raccConvToken   contained '\<\u[A-Z0-9_]*\>'
                             \ nextgroup=raccString skipwhite skipnl
 
 syn keyword raccStart       contained start
                             \ nextgroup=raccTargetS skipwhite skipnl
 
-syn match   raccTargetS     contained '\<\l[a-z0-9]*\>'
+syn match   raccTargetS     contained '\<\l[a-z0-9_]*\>'
 
 syn match   raccSpecial     contained '\\["'\\]'
 
@@ -87,11 +87,11 @@
                             \ raccNumber,raccToken,raccTarget,raccDelimiter,
                             \ raccAction
 
-syn match   raccTarget      contained '\<\l[a-z0-9]*\>'
+syn match   raccTarget      contained '\<\l[a-z0-9_]*\>'
 
 syn match   raccDelimiter   contained '[:|]'
 
-syn match   raccToken       contained '\<\u[A-Z0-9]*\>'
+syn match   raccToken       contained '\<\u[A-Z0-9_]*\>'
 
 syn include @raccRuby       syntax/ruby.vim
 
diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim
index 68e8788..976dca2 100644
--- a/runtime/syntax/sas.vim
+++ b/runtime/syntax/sas.vim
@@ -1,7 +1,11 @@
 " Vim syntax file
 " Language:	SAS
 " Maintainer:	James Kidd <james.kidd@covance.com>
-" Last Change:	02 Jun 2003
+" Last Change:  18 Jul 2008 by Paulo Tanimoto <ptanimoto@gmail.com>
+"               Fixed comments with * taking multiple lines.
+"               Fixed highlighting of macro keywords.
+"               Added words to cases that didn't fit anywhere.
+"             	02 Jun 2003
 "		Added highlighting for additional keywords and such;
 "		Attempted to match SAS default syntax colors;
 "		Changed syncing so it doesn't lose colors on large blocks;
@@ -25,18 +29,18 @@
 
 syn match sasNumber	"-\=\<\d*\.\=[0-9_]\>"
 
+" Block comment
 syn region sasComment	start="/\*"  end="\*/" contains=sasTodo
+
 " Ignore misleading //JCL SYNTAX... (Bob Heckel)
 syn region sasComment	start="[^/][^/]/\*"  end="\*/" contains=sasTodo
 
-" Allow highlighting of embedded TODOs (Bob Heckel)
-syn match sasComment	"^\s*\*.*;" contains=sasTodo
+" Previous code for comments was written by Bob Heckel
+" Comments with * may take multiple lines (Paulo Tanimoto)
+syn region sasComment start=";\s*\*"hs=s+1 end=";" contains=sasTodo
 
-" Allow highlighting of embedded TODOs (Bob Heckel)
-syn match sasComment	";\s*\*.*;"hs=s+1 contains=sasTodo
-
-" Handle macro comments too (Bob Heckel).
-syn match sasComment	"^\s*%*\*.*;" contains=sasTodo
+" Comments with * starting after a semicolon (Paulo Tanimoto)
+syn region sasComment start="^\s*\*" end=";" contains=sasTodo
 
 " This line defines macro variables in code.  HiLink at end of file
 " defines the color scheme. Begin region with ampersand and end with
@@ -84,24 +88,71 @@
 syn keyword sasStatement	RESET RESTRICT SELECT SET TABLE
 syn keyword sasStatement	UNIQUE UPDATE VALIDATE VIEW WHERE
 
+" Match declarations have to appear one per line (Paulo Tanimoto)
+syn match sasStatement	"FOOTNOTE\d"
+syn match sasStatement	"TITLE\d"
 
-syn match sasStatement	"FOOTNOTE\d" "TITLE\d"
-
-syn match sasMacro	"%BQUOTE" "%NRBQUOTE" "%CMPRES" "%QCMPRES"
-syn match sasMacro	"%COMPSTOR" "%DATATYP" "%DISPLAY" "%DO"
-syn match sasMacro	"%ELSE" "%END" "%EVAL" "%GLOBAL"
-syn match sasMacro	"%GOTO" "%IF" "%INDEX" "%INPUT"
-syn match sasMacro	"%KEYDEF" "%LABEL" "%LEFT" "%LENGTH"
-syn match sasMacro	"%LET" "%LOCAL" "%LOWCASE" "%MACRO"
-syn match sasMacro	"%MEND" "%NRBQUOTE" "%NRQUOTE" "%NRSTR"
-syn match sasMacro	"%PUT" "%QCMPRES" "%QLEFT" "%QLOWCASE"
-syn match sasMacro	"%QSCAN" "%QSUBSTR" "%QSYSFUNC" "%QTRIM"
-syn match sasMacro	"%QUOTE" "%QUPCASE" "%SCAN" "%STR"
-syn match sasMacro	"%SUBSTR" "%SUPERQ" "%SYSCALL" "%SYSEVALF"
-syn match sasMacro	"%SYSEXEC" "%SYSFUNC" "%SYSGET" "%SYSLPUT"
-syn match sasMacro	"%SYSPROD" "%SYSRC" "%SYSRPUT" "%THEN"
-syn match sasMacro	"%TO" "%TRIM" "%UNQUOTE" "%UNTIL"
-syn match sasMacro	"%UPCASE" "%VERIFY" "%WHILE" "%WINDOW"
+" Match declarations have to appear one per line (Paulo Tanimoto)
+syn match sasMacro "%BQUOTE"
+syn match sasMacro "%NRBQUOTE"
+syn match sasMacro "%CMPRES"
+syn match sasMacro "%QCMPRES"
+syn match sasMacro "%COMPSTOR"
+syn match sasMacro "%DATATYP"
+syn match sasMacro "%DISPLAY"
+syn match sasMacro "%DO"
+syn match sasMacro "%ELSE"
+syn match sasMacro "%END"
+syn match sasMacro "%EVAL"
+syn match sasMacro "%GLOBAL"
+syn match sasMacro "%GOTO"
+syn match sasMacro "%IF"
+syn match sasMacro "%INDEX"
+syn match sasMacro "%INPUT"
+syn match sasMacro "%KEYDEF"
+syn match sasMacro "%LABEL"
+syn match sasMacro "%LEFT"
+syn match sasMacro "%LENGTH"
+syn match sasMacro "%LET"
+syn match sasMacro "%LOCAL"
+syn match sasMacro "%LOWCASE"
+syn match sasMacro "%MACRO"
+syn match sasMacro "%MEND"
+syn match sasMacro "%NRBQUOTE"
+syn match sasMacro "%NRQUOTE"
+syn match sasMacro "%NRSTR"
+syn match sasMacro "%PUT"
+syn match sasMacro "%QCMPRES"
+syn match sasMacro "%QLEFT"
+syn match sasMacro "%QLOWCASE"
+syn match sasMacro "%QSCAN"
+syn match sasMacro "%QSUBSTR"
+syn match sasMacro "%QSYSFUNC"
+syn match sasMacro "%QTRIM"
+syn match sasMacro "%QUOTE"
+syn match sasMacro "%QUPCASE"
+syn match sasMacro "%SCAN"
+syn match sasMacro "%STR"
+syn match sasMacro "%SUBSTR"
+syn match sasMacro "%SUPERQ"
+syn match sasMacro "%SYSCALL"
+syn match sasMacro "%SYSEVALF"
+syn match sasMacro "%SYSEXEC"
+syn match sasMacro "%SYSFUNC"
+syn match sasMacro "%SYSGET"
+syn match sasMacro "%SYSLPUT"
+syn match sasMacro "%SYSPROD"
+syn match sasMacro "%SYSRC"
+syn match sasMacro "%SYSRPUT"
+syn match sasMacro "%THEN"
+syn match sasMacro "%TO"
+syn match sasMacro "%TRIM"
+syn match sasMacro "%UNQUOTE"
+syn match sasMacro "%UNTIL"
+syn match sasMacro "%UPCASE"
+syn match sasMacro "%VERIFY"
+syn match sasMacro "%WHILE"
+syn match sasMacro "%WINDOW"
 
 " SAS Functions
 
@@ -159,13 +210,17 @@
 syn keyword sasTodo	TODO TBD FIXME contained
 
 " These don't fit anywhere else (Bob Heckel).
-syn match sasUnderscore	"_NULL_"
+" Added others that were missing.
+syn match sasUnderscore	"_ALL_"
+syn match sasUnderscore "_AUTOMATIC_"
+syn match sasUnderscore	"_CHARACTER_"
 syn match sasUnderscore	"_INFILE_"
 syn match sasUnderscore	"_N_"
-syn match sasUnderscore	"_WEBOUT_"
+syn match sasUnderscore "_NAME_"
+syn match sasUnderscore	"_NULL_"
 syn match sasUnderscore	"_NUMERIC_"
-syn match sasUnderscore	"_CHARACTER_"
-syn match sasUnderscore	"_ALL_"
+syn match sasUnderscore "_USER_"
+syn match sasUnderscore	"_WEBOUT_"
 
 " End of SAS Functions
 
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index cb92bbd..5fa8d93 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Jul 01, 2008
-" Version:		100
+" Last Change:		Jul 11, 2008
+" Version:		102
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Éric Brunet (eric.brunet@ens.fr)
@@ -42,9 +42,6 @@
   endif
 endif
 
-" adjust iskeyword for shell characters
-"setlocal isk=@,48-57,_,192-255,#,.,/
-
 " set up default g:sh_fold_enabled {{{1
 if !exists("g:sh_fold_enabled")
  let g:sh_fold_enabled= 0
@@ -275,7 +272,7 @@
 endif
 syn region  shSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=shStringSpecial,@Spell
 syn region  shDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
-syn match   shStringSpecial	"[^[:print:]]"	contained
+syn match   shStringSpecial	"[^[:print:] \t]"	contained
 syn match   shStringSpecial	"\%(\\\\\)*\\[\\"'`$()#]"
 syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
 syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index f651cbd..4bb4417 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Sieve filtering language input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2007-10-25
 
 if exists("b:current_syntax")
   finish
@@ -33,7 +33,7 @@
                               \ not size true
 syn keyword sievePreProc      require stop
 syn keyword sieveAction       reject fileinto redirect keep discard
-syn match   sieveKeyword      '\<\h\w*\>'
+syn keyword sieveKeyword      vacation
 
 syn case match
 
@@ -46,7 +46,7 @@
 hi def link sieveConditional Conditional
 hi def link sieveTest        Keyword
 hi def link sievePreProc     PreProc
-hi def link sieveAction      Keyword
+hi def link sieveAction      Function
 hi def link sieveKeyword     Keyword
 
 let b:current_syntax = "sieve"
diff --git a/runtime/syntax/svn.vim b/runtime/syntax/svn.vim
index d691ba1..bb4f594 100644
--- a/runtime/syntax/svn.vim
+++ b/runtime/syntax/svn.vim
@@ -4,10 +4,11 @@
 " URL:          http://www.hlabs.spb.ru/vim/svn.vim
 " Revision:     $Id$
 " Filenames:    svn-commit*.tmp
-" Version:      1.5
+" Version:      1.6
 
 " Contributors:
 "   Stefano Zacchiroli
+"   A. S. Budden
 
 " For version 5.x: Clear all syntax items.
 " For version 6.x: Quit when a syntax file was already loaded.
@@ -17,7 +18,7 @@
   finish
 endif
 
-syn region svnRegion    start="^--.*--$" end="\%$" contains=ALL
+syn region svnRegion    start="^--.*--$" end="\%$" contains=ALL contains=@NoSpell
 syn match svnRemoved    "^D    .*$" contained
 syn match svnAdded      "^A[ M]   .*$" contained
 syn match svnModified   "^M[ M]   .*$" contained
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
index dd8e6f7..4f912d4 100644
--- a/runtime/syntax/updatedb.vim
+++ b/runtime/syntax/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2007-10-25
 
 if exists("b:current_syntax")
   finish
@@ -18,7 +18,7 @@
 syn match   updatedbBegin   display '^'
                             \ nextgroup=updatedbName,updatedbComment skipwhite
 
-syn keyword updatedbName    contained PRUNEFS PRUNEPATHS
+syn keyword updatedbName    contained PRUNEFS PRUNEPATHS PRUNE_BIND_MOUNTS
                             \ nextgroup=updatedbNameEq
 
 syn match   updatedbNameEq  contained display '=' nextgroup=updatedbValue
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index c220f9d..5bfcd66 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.2 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Jul 10, 2008
-" Version:	7.2-79+
+" Last Change:	July 29, 2008
+" Version:	7.2-82
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -16,11 +16,11 @@
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	ab[breviate] argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo ca[bbrev] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fir[st] foldd[oopen] gr[ep] helpg[rep] iabc[lear] inorea[bbrev] ju[mps] laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lnew[er] lNf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] nu[mber] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sn[ext] snor[emap] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xm[ap] XMLent xnoremenu
-syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fix[del] foldo[pen] grepa[dd] helpt[ags] if is[earch] k lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lne[xt] ln[oremap] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] smapc[lear] sN[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xmapc[lear] XMLns xunme
-syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] cnorea[bbrev] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] exi[t] fina[lly] fo[ld] for ha[rdcopy] hid[e] ij[ump] isp[lit] keepalt laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lm[ap] lN[ext] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] sme sni[ff] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xme xn[oremap] xunmenu
-syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exu[sage] fin[d] foldc[lose] fu[nction] h[elp] his[tory] il[ist] iuna[bbrev] keepj[umps] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lmapc[lear] lnf[ile] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] norea[bbrev] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] smenu sno[magic] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] xmenu xnoreme y[ank]
-syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fini[sh] folddoc[losed] go[to] helpf[ind] ia[bbrev] imapc[lear] j[oin] kee[pmarks] 
+syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exu[sage] fin[d] foldc[lose] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lmapc[lear] lnf[ile] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sn[ext] snor[emap] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xm[ap] XMLent xnoremenu
+syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fini[sh] folddoc[losed] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lnew[er] lNf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] smapc[lear] sN[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xmapc[lear] XMLns xunme
+syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fir[st] foldd[oopen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lne[xt] ln[oremap] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] sme sni[ff] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xme xn[oremap] xunmenu
+syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fix[del] foldo[pen] grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lm[ap] lN[ext] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] smenu sno[magic] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] xmenu xnoreme y[ank]
+syn keyword vimCommand contained	argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] exi[t] fina[lly] fo[ld] for 
 syn match   vimCommand contained	"\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -292,6 +292,10 @@
 " ===
 syn keyword vimLet	let	unl[et]	skipwhite nextgroup=vimVar
 
+" Abbreviations {{{2
+" =============
+syn keyword vimAbb	ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs
+
 " Autocmd {{{2
 " =======
 syn match   vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
@@ -664,6 +668,7 @@
  hi def link vimBufnrWarn	vimWarn
 endif
 
+hi def link vimAbb	vimCommand
 hi def link vimAddress	vimMark
 hi def link vimAugroupKey	vimCommand
 hi def link vimAutoCmdOpt	vimOption
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index abda3f8..9ebab70 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         YAML (YAML Ain't Markup Language)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-27
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -10,140 +10,53 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword yamlTodo
-      \ contained
-      \ TODO
-      \ FIXME
-      \ XXX
-      \ NOTE
+syn keyword yamlTodo            contained TODO FIXME XXX NOTE
 
-syn region  yamlComment
-      \ display
-      \ oneline
-      \ start='%(^|s)#'
-      \ end='$'
-      \ contains=yamlTodo,@Spell
+syn region  yamlComment         display oneline start='\%(^\|\s\)#' end='$'
+                                \ contains=yamlTodo,@Spell
 
-syn match   yamlNodeProperty
-      \ '!\%(![^\\^% \t]\+\|[^!][^:/ \t]*\)'
+syn match   yamlNodeProperty    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)'
 
-syn match   yamlAnchor
-      \ '&.+'
+syn match   yamlAnchor          '&.\+'
 
-syn match   yamlAlias
-      \ '*.+'
+syn match   yamlAlias           '\*.\+'
 
-syn match   yamlDelimiter
-      \ '[-,:]'
-syn match   yamlBlock
-      \ '[[]{}>|]'
-syn match   yamlOperator
-      \ '[?+-]'
-syn match   yamlKey
-      \ 'w+(s+w+)*zes*:'
+syn match   yamlDelimiter       '[-,:]'
+syn match   yamlBlock           '[\[\]{}>|]'
+syn match   yamlOperator        '[?+-]'
+syn match   yamlKey             '\w\+\(\s\+\w\+\)*\ze\s*:'
 
-syn region  yamlString
-      \ start=+"+
-      \ skip=+\"+
-      \ end=+"+
-      \ contains=yamlEscape
-syn region  yamlString
-      \ start=+'+
-      \ skip=+''+
-      \ end=+'+
-      \ contains=yamlSingleEscape
-syn match   yamlEscape
-      \ contained
-      \ display
-      \ +\[\"abefnrtv^0_ NLP]+
-syn match   yamlEscape
-      \ contained
-      \ display
-      \ '\xx{2}'
-syn match   yamlEscape
-      \ contained
-      \ display
-      \ '\ux{4}'
-syn match   yamlEscape
-      \ contained
-      \ display
-      \ '\Ux{8}'
-
+syn region  yamlString          start=+"+ skip=+\\"+ end=+"+
+                                \ contains=yamlEscape
+syn region  yamlString          start=+'+ skip=+''+ end=+'+
+                                \ contains=yamlSingleEscape
+syn match   yamlEscape          contained display +\\[\\"abefnrtv^0_ NLP]+
+syn match   yamlEscape          contained display '\\x\x\{2}'
+syn match   yamlEscape          contained display '\\u\x\{4}'
+syn match   yamlEscape          contained display '\\U\x\{8}'
 " TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
-" XXX: Em, what is going on here?  This can't be right.  Leave out until we
-" figure out what this is meant to do.
-"syn match   yamlEscape
-"      \ contained
-"      \ display
-"      \ '\%(rn|[rn])'
-syn match   yamlSingleEscape
-      \ contained
-      \ display
-      \ +''+
+syn match   yamlEscape          display '\\\%(\r\n\|[\r\n]\)'
+syn match   yamlSingleEscape    contained display +''+
 
 " TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
-syn match   yamlNumber
-      \ display
-      \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
-syn match   yamlNumber
-      \ display
-      \ '0o+'
-syn match   yamlNumber
-      \ display
-      \ '0xx+'
-syn match   yamlNumber
-      \ display
-      \ '([+-]=[iI]nf)'
-syn match   yamlNumber
-      \ display
-      \ '(NaN)'
+syn match   yamlNumber          display
+                                \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
+syn match   yamlNumber          display '0\o\+'
+syn match   yamlNumber          display '0x\x\+'
+syn match   yamlNumber          display '([+-]\=[iI]nf)'
+syn match   yamlNumber          display '(NaN)'
 
-syn match   yamlConstant
-      \ '<[~yn]>'
-syn keyword yamlConstant
-      \ true
-      \ True
-      \ TRUE
-      \ false
-      \ False
-      \ FALSE
-syn keyword yamlConstant
-      \ yes
-      \ Yes
-      \ on
-      \ ON
-      \ no
-      \ No
-      \ off
-      \ OFF
-syn keyword yamlConstant
-      \ null
-      \ Null
-      \ NULL
-      \ nil
-      \ Nil
-      \ NIL
+syn match   yamlConstant        '\<[~yn]\>'
+syn keyword yamlConstant        true True TRUE false False FALSE
+syn keyword yamlConstant        yes Yes on ON no No off OFF
+syn keyword yamlConstant        null Null NULL nil Nil NIL
 
-syn match   yamlTimestamp
-      \ '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
+syn match   yamlTimestamp       '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
 
-syn region  yamlDocumentHeader
-      \ start='---'
-      \ end='$'
-      \ contains=yamlDirective
-syn match   yamlDocumentEnd
-      \ '\.\.\.'
+syn region  yamlDocumentHeader  start='---' end='$' contains=yamlDirective
+syn match   yamlDocumentEnd     '\.\.\.'
 
-syn match   yamlDirective
-      \ contained
-      \ '%[^:]+:.+'
-
-syn match   yamlIndentation
-      \ '^s*'
-      \ contains=yamlIndentationError
-
-syn match   yamlIndentationError
-      \ 't'
+syn match   yamlDirective       contained '%[^:]\+:.\+'
 
 hi def link yamlTodo            Todo
 hi def link yamlComment         Comment
@@ -163,7 +76,6 @@
 hi def link yamlNumber          Number
 hi def link yamlConstant        Constant
 hi def link yamlTimestamp       Number
-hi def link yamlIndentationError  Error
 
 let b:current_syntax = "yaml"
 
diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim
index eb19eba..ecd6f05 100644
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Zsh shell script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-17
+" Latest Revision:  2008-07-17
 
 if exists("b:current_syntax")
   finish
@@ -34,7 +34,9 @@
 
 syn keyword zshConditional      if then elif else fi case in esac select
 
-syn keyword zshRepeat           for while until repeat foreach
+syn keyword zshRepeat           while until repeat
+
+syn keyword zshRepeat           for foreach nextgroup=zshVariable skipwhite
 
 syn keyword zshException        always
 
@@ -49,19 +51,30 @@
 syn match   zshRedir            '\d\=\(>\|>>\|>&\s*[0-9p-]\=\|&>\|>>&\|&>>\)[|!]\='
 syn match   zshRedir            '|&\='
 
-syn region  zshHereDoc          matchgroup=zshRedir start='<<\s*\z(\S*\)'
-                                \ end='^\z1\>' contains=@zshSubst
-syn region  zshHereDoc          matchgroup=zshRedir start='<<-\s*\z(\S*\)'
-                                \ end='^\s*\z1\>' contains=@zshSubst
 syn region  zshHereDoc          matchgroup=zshRedir
-                                \ start=+<<\s*\(["']\)\z(\S*\)\1+  end='^\z1\>'
+                                \ start='<\@<!<<\s*\z([^<]\S*\)'
+                                \ end='^\z1\>'
+                                \ contains=@zshSubst
 syn region  zshHereDoc          matchgroup=zshRedir
-                                \ start=+<<-\s*\(["']\)\z(\S*\)\1+
+                                \ start='<\@<!<<\s*\\\z(\S\+\)'
+                                \ end='^\z1\>'
+                                \ contains=@zshSubst
+syn region  zshHereDoc          matchgroup=zshRedir
+                                \ start='<\@<!<<-\s*\\\=\z(\S\+\)'
+                                \ end='^\s*\z1\>'
+                                \ contains=@zshSubst
+syn region  zshHereDoc          matchgroup=zshRedir
+                                \ start=+<\@<!<<\s*\(["']\)\z(\S\+\)\1+ 
+                                \ end='^\z1\>'
+syn region  zshHereDoc          matchgroup=zshRedir
+                                \ start=+<\@<!<<-\s*\(["']\)\z(\S\+\)\1+
                                 \ end='^\s*\z1\>'
 
-syn match   zshVariable         '\<\h\w*\ze+\=='
+syn match   zshVariable         '\<\h\w*' contained
+
+syn match   zshVariableDef      '\<\h\w*\ze+\=='
 " XXX: how safe is this?
-syn region  zshVariable         oneline
+syn region  zshVariableDef      oneline
                                 \ start='\$\@<!\<\h\w*\[' end='\]\ze+\=='
                                 \ contains=@zshSubst
 
@@ -87,7 +100,7 @@
 if s:zsh_syntax_variables =~ 'all'
   syn match zshDeref            '\$[=^~]*[#+]*\h\w*\>'
 else
-  syn match zshDeref            transparent '\$[=^~]*[#+]*\h\w*\>'
+  syn match zshDeref            transparent contains=NONE '\$[=^~]*[#+]*\h\w*\>'
 endif
 
 syn match   zshCommands         '\%(^\|\s\)[.:]\ze\s'
@@ -119,6 +132,7 @@
 syn match   zshNumber           '[+-]\=\d\+#[-+]\=\w\+\>'
 syn match   zshNumber           '[+-]\=\d\+\.\d\+\>'
 
+" TODO: $[...] is the same as $((...)), so add that as well.
 syn cluster zshSubst            contains=zshSubst,zshOldSubst,zshMathSubst
 syn region  zshSubst            matchgroup=zshSubstDelim transparent
                                 \ start='\$(' skip='\\)' end=')' contains=TOP
@@ -131,10 +145,14 @@
 syn region  zshBrackets         contained transparent start='{' skip='\\}'
                                 \ end='}'
 syn region  zshSubst            matchgroup=zshSubstDelim start='\${' skip='\\}'
-                                \ end='}' contains=@zshSubst,zshBrackets,zshQuoted
+                                \ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString
 syn region  zshOldSubst         matchgroup=zshSubstDelim start=+`+ skip=+\\`+
                                 \ end=+`+ contains=TOP,zshOldSubst
 
+syn sync    minlines=50
+syn sync    match zshHereDocSync    grouphere   NONE '<<-\=\s*\%(\\\=\S\+\|\(["']\)\S\+\1\)'
+syn sync    match zshHereDocEndSync groupthere  NONE '^\s*EO\a\+\>'
+
 hi def link zshTodo             Todo
 hi def link zshComment          Comment
 hi def link zshPreProc          PreProc
@@ -163,6 +181,7 @@
   hi def link zshRedir            None
 endif
 hi def link zshVariable         None
+hi def link zshVariableDef      zshVariable
 hi def link zshDereferencing    PreProc
 if s:zsh_syntax_variables =~ 'short\|all'
   hi def link zshShortDeref     zshDereferencing
diff --git a/runtime/tools/vimm b/runtime/tools/vimm
index 042c4a0..7b84cb2 100755
--- a/runtime/tools/vimm
+++ b/runtime/tools/vimm
@@ -1,6 +1,6 @@
 #!/bin/sh
 # enable DEC locator input model on remote terminal
-echo  "\033[1;2'z\033[1;3'{\c"
+printf  "\033[1;2'z\033[1;3'{\c"
 vim "$@"
 # disable DEC locator input model on remote terminal
-echo  "\033[2;4'{\033[0'z\c"
+printf  "\033[2;4'{\033[0'z\c"
diff --git a/runtime/tools/vimspell.sh b/runtime/tools/vimspell.sh
index b405b7a..d336fe6 100755
--- a/runtime/tools/vimspell.sh
+++ b/runtime/tools/vimspell.sh
@@ -11,6 +11,7 @@
 #
 # Neil Schemenauer <nascheme@ucalgary.ca>
 # March 1999
+# updated 2008 Jul 17 by Bram
 #
 # Safe method for the temp file by Javier Fernández-Sanguino_Peña
 
@@ -22,7 +23,7 @@
 # create a file in the safest way possible.
 if test "$OUTFILE" = none; then
         OUTFILE=$tmp/vimspell$$
-	[ -e $OUTFILE ] && { echo "Cannot use temporary file $OUTFILE, it already exists!; exit 1 ; } 
+	[ -e $OUTFILE ] && { echo "Cannot use temporary file $OUTFILE, it already exists!"; exit 1 ; } 
         (umask 077; touch $OUTFILE)
 fi
 # Note the copy of vimspell cannot be deleted on exit since it is
diff --git a/runtime/tutor/tutor.vim b/runtime/tutor/tutor.vim
index 81e5a19..11584d5 100644
--- a/runtime/tutor/tutor.vim
+++ b/runtime/tutor/tutor.vim
@@ -1,8 +1,9 @@
 " Vim tutor support file
 " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-" Last Change:	2008 Jun 21
+" Maintainer: Bram Moolenaar
+" Last Change:	2008 Jul 21
 
-" This small source file is used for detecting if a translation of the
+" This Vim script is used for detecting if a translation of the
 " tutor file exist, i.e., a tutor.xx file, where xx is the language.
 " If the translation does not exist, or no extension is given,
 " it defaults to the english version.
@@ -160,7 +161,7 @@
 
 " If 'encoding' is utf-8 s:ext must end in utf-8.
 if &enc == 'utf-8' && s:ext !~ '\.utf-8'
-  s:ext .= '.utf-8'
+  let s:ext .= '.utf-8'
 endif
 
 " 2. Build the name of the file: