Update runtime files.
diff --git a/runtime/ftplugin/abaqus.vim b/runtime/ftplugin/abaqus.vim
index 17985b3..873b9bf 100644
--- a/runtime/ftplugin/abaqus.vim
+++ b/runtime/ftplugin/abaqus.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:     Abaqus finite element input file (www.abaqus.com)
 " Maintainer:   Carl Osterwisch <osterwischc@asme.org>
-" Last Change:  2004 Jul 06
+" Last Change:  2008 Oct 5
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin") | finish | endif
@@ -13,13 +13,6 @@
 let s:cpo_save = &cpoptions
 set cpoptions&vim
 
-" Folding
-if version >= 600
-    " Fold all lines that do not begin with *
-    setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
-    setlocal foldmethod=expr
-endif
-
 " Set the format of the include file specification for Abaqus
 " Used in :check gf ^wf [i and other commands
 setlocal include=\\<\\cINPUT\\s*=
@@ -42,29 +35,43 @@
 " Abaqus keywords and identifiers may include a - character
 setlocal iskeyword+=-
 
+let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
+    \ . " comments< commentstring< define< iskeyword<"
+
+if has("folding")
+    " Fold all lines that do not begin with *
+    setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
+    setlocal foldmethod=expr
+    let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
 " Set the file browse filter (currently only supported under Win32 gui)
 if has("gui_win32") && !exists("b:browsefilter")
     let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
     \ "Abaqus Results (*.dat)\t*.dat\n" .
     \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
     \ "All Files (*.*)\t*.*\n"
+    let b:undo_ftplugin .= "|unlet b:browsefilter"
 endif
 
-" Define keys used to move [count] sections backward or forward.
-" TODO: Make this do something intelligent in visual mode.
-nnoremap <silent> <buffer> [[ :call <SID>Abaqus_Jump('?^\*\a?')<CR>
-nnoremap <silent> <buffer> ]] :call <SID>Abaqus_Jump('/^\*\a/')<CR>
-function! <SID>Abaqus_Jump(motion) range
-    let s:count = v:count1
-    mark '
-    while s:count > 0
-        silent! execute a:motion
-        let s:count = s:count - 1
-    endwhile
-endfunction
+" Define patterns for the matchit plugin
+if exists("loaded_matchit") && !exists("b:match_words")
+    let b:match_ignorecase = 1
+    let b:match_words = 
+    \ '\*part:\*end\s*part,' .
+    \ '\*assembly:\*end\s*assembly,' .
+    \ '\*instance:\*end\s*instance,' .
+    \ '\*step:\*end\s*step'
+    let b:undo_ftplugin .= "|unlet b:match_ignorecase b:match_words"
+endif
+
+" Define keys used to move [count] keywords backward or forward.
+noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
+noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
 
 " Define key to toggle commenting of the current line or range
-noremap <silent> <buffer> <m-c> :call <SID>Abaqus_ToggleComment()<CR>j
+noremap <silent><buffer> <LocalLeader><LocalLeader> 
+    \ :call <SID>Abaqus_ToggleComment()<CR>j
 function! <SID>Abaqus_ToggleComment() range
     if strpart(getline(a:firstline), 0, 2) == "**"
         " Un-comment all lines in range
@@ -75,5 +82,8 @@
     endif
 endfunction
 
+let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
+    \ . "|unmap <buffer> <LocalLeader><LocalLeader>"
+
 " Restore saved compatibility options
 let &cpoptions = s:cpo_save
diff --git a/runtime/ftplugin/ada.vim b/runtime/ftplugin/ada.vim
index 045645d..091181f 100644
--- a/runtime/ftplugin/ada.vim
+++ b/runtime/ftplugin/ada.vim
@@ -1,14 +1,14 @@
 "------------------------------------------------------------------------------
 "  Description: Perform Ada specific completion & tagging.
 "     Language: Ada (2005)
-"	   $Id$
+"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
 "   Maintainer: Martin Krischik <krischik@users.sourceforge.net>
 "		Taylor Venable <taylor@metasyntax.net>
 "		Neil Bird <neil@fnxweb.com>
-"      $Author$
-"	 $Date$
+"      $Author: krischik $
+"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
 "      Version: 4.6
-"    $Revision$
+"    $Revision: 887 $
 "     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $
 "      History: 24.05.2006 MK Unified Headers
 "		26.05.2006 MK ' should not be in iskeyword.
diff --git a/runtime/ftplugin/ant.vim b/runtime/ftplugin/ant.vim
index d45ef3b..648fca1 100644
--- a/runtime/ftplugin/ant.vim
+++ b/runtime/ftplugin/ant.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	ant
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/aspvbs.vim b/runtime/ftplugin/aspvbs.vim
index e3bc709..2b841ef 100644
--- a/runtime/ftplugin/aspvbs.vim
+++ b/runtime/ftplugin/aspvbs.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	aspvbs
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jun 28
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/bst.vim b/runtime/ftplugin/bst.vim
index 973e342..5e65aac 100644
--- a/runtime/ftplugin/bst.vim
+++ b/runtime/ftplugin/bst.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	bst
 " Author:	Tim Pope <vimNOSPAM@tpope.info>
-" $Id$
+" $Id: bst.vim,v 1.1 2007/05/05 17:37:57 vimboss Exp $
 
 if exists("b:did_ftplugin")
     finish
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim
index 924d35d..30cd7b5 100644
--- a/runtime/ftplugin/changelog.vim
+++ b/runtime/ftplugin/changelog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         generic Changelog file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-05-21
+" Latest Revision:  2009-05-25
 " Variables:
 "   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
 "       description: the timeformat used in ChangeLog entries.
@@ -46,73 +46,78 @@
     endif
   endif
 
-  " Try to figure out a reasonable username of the form:
-  "   Full Name <user@host>.
-  if !exists('g:changelog_username')
-    if exists('$EMAIL') && $EMAIL != ''
-      let g:changelog_username = $EMAIL
-    elseif exists('$EMAIL_ADDRESS') && $EMAIL_ADDRESS != ''
-      " This is some Debian junk if I remember correctly.
-      let g:changelog_username = $EMAIL_ADDRESS
-    else
-      " Get the users login name.
-      let login = system('whoami')
-      if v:shell_error
-        let login = 'unknown'
-      else
-        let newline = stridx(login, "\n")
-        if newline != -1
-          let login = strpart(login, 0, newline)
-        endif
-      endif
-
-      " Try to get the full name from gecos field in /etc/passwd.
-      if filereadable('/etc/passwd')
-        for line in readfile('/etc/passwd')
-          if line =~ '^' . login
-            let name = substitute(line,'^\%([^:]*:\)\{4}\([^:]*\):.*$','\1','')
-            " Only keep stuff before the first comma.
-            let comma = stridx(name, ',')
-            if comma != -1
-              let name = strpart(name, 0, comma)
-            endif
-            " And substitute & in the real name with the login of our user.
-            let amp = stridx(name, '&')
-            if amp != -1
-              let name = strpart(name, 0, amp) . toupper(login[0]) .
-                       \ strpart(login, 1) . strpart(name, amp + 1)
-            endif
-          endif
-        endfor
-      endif
-
-      " If we haven't found a name, try to gather it from other places.
-      if !exists('name')
-        " Maybe the environment has something of interest.
-        if exists("$NAME")
-          let name = $NAME
-        else
-          " No? well, use the login name and capitalize first
-          " character.
-          let name = toupper(login[0]) . strpart(login, 1)
-        endif
-      endif
-
-      " Get our hostname.
-      let hostname = system('hostname')
-      if v:shell_error
-        let hostname = 'localhost'
-      else
-        let newline = stridx(hostname, "\n")
-        if newline != -1
-          let hostname = strpart(hostname, 0, newline)
-        endif
-      endif
-
-      " And finally set the username.
-      let g:changelog_username = name . '  <' . login . '@' . hostname . '>'
+  function! s:username()
+    if exists('g:changelog_username')
+      return g:changelog_username
+    elseif $EMAIL != ""
+      return $EMAIL
+    elseif $EMAIL_ADDRESS != ""
+      return $EMAIL_ADDRESS
     endif
-  endif
+    
+    let login = s:login()
+    return printf('%s <%s@%s>', s:name(login), login, s:hostname())
+  endfunction
+
+  function! s:login()
+    return s:trimmed_system_with_default('whoami', 'unknown')
+  endfunction
+
+  function! s:trimmed_system_with_default(command, default)
+    return s:first_line(s:system_with_default(a:command, a:default))
+  endfunction
+
+  function! s:system_with_default(command, default)
+    let output = system(a:command)
+    if v:shell_error
+      return default
+    endif
+    return output
+  endfunction
+
+  function! s:first_line(string)
+    return substitute(a:string, '\n.*$', "", "")
+  endfunction
+
+  function! s:name(login)
+    for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)]
+      if name != ""
+        return name
+      endif
+    endfor
+  endfunction
+
+  function! s:gecos_name(login)
+    for line in s:try_reading_file('/etc/passwd')
+      if line =~ '^' . a:login . ':'
+        return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "")
+      endif
+    endfor
+    return ""
+  endfunction
+
+  function! s:try_reading_file(path)
+    try
+      return readfile(a:path)
+    endtry
+    return []
+  endfunction
+
+  function! s:passwd_field(line, field)
+    let fields = split(a:line, ':', 1)
+    if len(fields) < field
+      return ""
+    endif
+    return fields[field - 1]
+  endfunction
+
+  function! s:capitalize(word)
+    return toupper(a:word[0]) . strpart(a:word, 1)
+  endfunction
+
+  function! s:hostname()
+    return s:trimmed_system_with_default('hostname', 'localhost')
+  endfunction
 
   " Format used for new date entries.
   if !exists('g:changelog_new_date_format')
@@ -178,7 +183,7 @@
       " Ok, now we look for the end of the date entry, and add an entry.
       call cursor(nextnonblank(line('.') + 1), 1)
       if search(g:changelog_date_end_entry_search, 'W') > 0
-        let p = line('.') - 1
+	let p = (line('.') == line('$')) ? line('.') : line('.') - 1
       else
         let p = line('.')
       endif
@@ -217,7 +222,7 @@
   endfunction
 
   if exists(":NewChangelogEntry") != 2
-    map <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
+    noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
     command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
   endif
 
@@ -236,14 +241,48 @@
   let &cpo = s:cpo_save
   unlet s:cpo_save
 else
+  let s:cpo_save = &cpo
+  set cpo&vim
+
   " Add the Changelog opening mapping
-  nmap <silent> <Leader>o :call <SID>open_changelog()<CR>
+  nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>
 
   function! s:open_changelog()
-    if !filereadable('ChangeLog')
+    let path = expand('%:p:h')
+    if exists('b:changelog_path')
+      let changelog = b:changelog_path
+    else
+      if exists('b:changelog_name')
+        let name = b:changelog_name
+      else
+        let name = 'ChangeLog'
+      endif
+      while isdirectory(path)
+        let changelog = path . '/' . name
+        if filereadable(changelog)
+          break
+        endif
+        let parent = substitute(path, '/\+[^/]*$', "", "")
+        if path == parent
+          break
+        endif
+        let path = parent
+      endwhile
+    endif
+    if !filereadable(changelog)
       return
     endif
-    let buf = bufnr('ChangeLog')
+
+    if exists('b:changelog_entry_prefix')
+      let prefix = call(b:changelog_entry_prefix, [])
+    else
+      let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
+    endif
+    if !empty(prefix)
+      let prefix = ' ' . prefix
+    endif
+
+    let buf = bufnr(changelog)
     if buf != -1
       if bufwinnr(buf) != -1
         execute bufwinnr(buf) . 'wincmd w'
@@ -251,9 +290,12 @@
         execute 'sbuffer' buf
       endif
     else
-      split ChangeLog
+      execute 'split' fnameescape(changelog)
     endif
 
-    call s:new_changelog_entry()
+    call s:new_changelog_entry(prefix)
   endfunction
+
+  let &cpo = s:cpo_save
+  unlet s:cpo_save
 endif
diff --git a/runtime/ftplugin/cobol.vim b/runtime/ftplugin/cobol.vim
index 443ea68..203d734 100644
--- a/runtime/ftplugin/cobol.vim
+++ b/runtime/ftplugin/cobol.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	cobol
 " Author:	Tim Pope <vimNOSPAM@tpope.info>
-" $Id$
+" $Id: cobol.vim,v 1.1 2007/05/05 17:24:38 vimboss Exp $
 
 " Insert mode mappings: <C-T> <C-D> <Tab>
 " Normal mode mappings: < > << >> [[ ]] [] ][
diff --git a/runtime/ftplugin/config.vim b/runtime/ftplugin/config.vim
index 427d0ed..df607b1 100644
--- a/runtime/ftplugin/config.vim
+++ b/runtime/ftplugin/config.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	config
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/csc.vim b/runtime/ftplugin/csc.vim
index d9f9010..ac02088 100644
--- a/runtime/ftplugin/csc.vim
+++ b/runtime/ftplugin/csc.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	csc
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/csh.vim b/runtime/ftplugin/csh.vim
index d053cbb..3f89c72 100644
--- a/runtime/ftplugin/csh.vim
+++ b/runtime/ftplugin/csh.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	csh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/dosbatch.vim b/runtime/ftplugin/dosbatch.vim
index 91d57d9..6e581e7 100644
--- a/runtime/ftplugin/dosbatch.vim
+++ b/runtime/ftplugin/dosbatch.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:    MS-DOS .bat files
 " Maintainer:  Mike Williams <mrw@eandem.co.uk>
-" Last Change: 5th February 2003
+" Last Change: 27th May 2009
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -12,10 +12,10 @@
 let b:did_ftplugin = 1
 
 " BAT comment formatting
-setlocal comments=b:rem,b:@rem,b:REM,b:@REM,b:::
+setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
 setlocal formatoptions-=t formatoptions+=rol
 
 " Define patterns for the browse file filter
 if has("gui_win32") && !exists("b:browsefilter")
-  let b:browsefilter = "DOS Batch Files (*.bat, *.btm, *.cmd)\t*.bat;*.btm;*.cmd\nAll Files (*.*)\t*.*\n"
+  let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
 endif
diff --git a/runtime/ftplugin/dtd.vim b/runtime/ftplugin/dtd.vim
index 3b15bda..eed5ca6 100644
--- a/runtime/ftplugin/dtd.vim
+++ b/runtime/ftplugin/dtd.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	dtd
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 30 Jun 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim
index 802f596..9e121c2 100644
--- a/runtime/ftplugin/eruby.vim
+++ b/runtime/ftplugin/eruby.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:		eRuby
 " Maintainer:		Tim Pope <vimNOSPAM@tpope.info>
-" Info:			$Id$
+" Info:			$Id: eruby.vim,v 1.12 2008/06/29 04:18:43 tpope Exp $
 " URL:			http://vim-ruby.rubyforge.org
 " Anon CVS:		See above site
 " Release Coordinator:	Doug Kearns <dougkearns@gmail.com>
diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim
index 9ac1aa1..63d4f33 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 Jul 30
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
@@ -29,6 +29,9 @@
 else
     setlocal keywordprg=git\ show
 endif
+if has('gui_running')
+  let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
+endif
 
 setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
 let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
diff --git a/runtime/ftplugin/gitcommit.vim b/runtime/ftplugin/gitcommit.vim
index bfc5b33..f8788c8 100644
--- a/runtime/ftplugin/gitcommit.vim
+++ b/runtime/ftplugin/gitcommit.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
-" Language:	git config file
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2008 Jun 04
+" Language:	git commit file
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
diff --git a/runtime/ftplugin/gitconfig.vim b/runtime/ftplugin/gitconfig.vim
index ee33baf..833b8b1 100644
--- a/runtime/ftplugin/gitconfig.vim
+++ b/runtime/ftplugin/gitconfig.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	git config file
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2007 Dec 16
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
diff --git a/runtime/ftplugin/gitrebase.vim b/runtime/ftplugin/gitrebase.vim
index 6e0e6c1..4680d28 100644
--- a/runtime/ftplugin/gitrebase.vim
+++ b/runtime/ftplugin/gitrebase.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	git rebase --interactive
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2008 Apr 16
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
@@ -22,12 +22,13 @@
 endfunction
 
 function! s:cycle()
-    call s:choose(get({'s':'edit','p':'squash'},getline('.')[0],'pick'))
+    call s:choose(get({'s':'edit','p':'squash','e':'reword'},getline('.')[0],'pick'))
 endfunction
 
 command! -buffer -bar Pick   :call s:choose('pick')
 command! -buffer -bar Squash :call s:choose('squash')
 command! -buffer -bar Edit   :call s:choose('edit')
+command! -buffer -bar Reword :call s:choose('reword')
 command! -buffer -bar Cycle  :call s:cycle()
 " The above are more useful when they are mapped; for example:
 "nnoremap <buffer> <silent> S :Cycle<CR>
diff --git a/runtime/ftplugin/gitsendemail.vim b/runtime/ftplugin/gitsendemail.vim
index a83e48a..8fb436e 100644
--- a/runtime/ftplugin/gitsendemail.vim
+++ b/runtime/ftplugin/gitsendemail.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin
 " Language:	git send-email message
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2007 Dec 16
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 runtime! ftplugin/mail.vim
diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim
index 6c8607d..5f1384b 100644
--- a/runtime/ftplugin/html.vim
+++ b/runtime/ftplugin/html.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	html
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2007 Nov 20
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/java.vim b/runtime/ftplugin/java.vim
index 96e62c6..6c7b367 100644
--- a/runtime/ftplugin/java.vim
+++ b/runtime/ftplugin/java.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	Java
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  2005 Mar 28
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change:  20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/jsp.vim b/runtime/ftplugin/jsp.vim
index 4987cc5..9c0eb96 100644
--- a/runtime/ftplugin/jsp.vim
+++ b/runtime/ftplugin/jsp.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	jsp
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2005 Oct 10
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/mail.vim b/runtime/ftplugin/mail.vim
index 34e1d3c..4a4c851 100644
--- a/runtime/ftplugin/mail.vim
+++ b/runtime/ftplugin/mail.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Mail
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2007 Apr 30
+" Last Change:	2009 Jun 03
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -23,7 +23,7 @@
 " Set 'formatoptions' to break text lines and keep the comment leader ">".
 setlocal fo+=tcql
 
-" Add mappings, unless the user didn't want this.
+" Add mappings, unless the user doesn't want this.
 if !exists("no_plugin_maps") && !exists("no_mail_maps")
   " Quote text by inserting "> "
   if !hasmapto('<Plug>MailQuote')
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index a58d297..eef0628 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
-" Maintainer:	Nam SungHyun <namsh@kldp.org>
-" Last Change:	2007 Nov 30
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
+" Last Change:	2008 Sep 17
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
diff --git a/runtime/ftplugin/pascal.vim b/runtime/ftplugin/pascal.vim
index c138dda..3b1db4a 100644
--- a/runtime/ftplugin/pascal.vim
+++ b/runtime/ftplugin/pascal.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	pascal
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2005 Sep 05
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 3771005..318e70f 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	Perl
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  17 Jul 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change:  20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/php.vim b/runtime/ftplugin/php.vim
index c9a0bc7..f59cf12 100644
--- a/runtime/ftplugin/php.vim
+++ b/runtime/ftplugin/php.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	php
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2007 Nov 10
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index 1d4347a..7dfdfb5 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:		Ruby
 " Maintainer:		Gavin Sinclair <gsinclair at gmail.com>
-" Info:			$Id$
+" Info:			$Id: ruby.vim,v 1.40 2008/06/29 04:18:43 tpope Exp $
 " URL:			http://vim-ruby.rubyforge.org
 " Anon CVS:		See above site
 " Release Coordinator:  Doug Kearns <dougkearns@gmail.com>
diff --git a/runtime/ftplugin/sgml.vim b/runtime/ftplugin/sgml.vim
index 4a19dda..a07d31f 100644
--- a/runtime/ftplugin/sgml.vim
+++ b/runtime/ftplugin/sgml.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	sgml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 30
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/sh.vim b/runtime/ftplugin/sh.vim
index 183215a..076b5ef 100644
--- a/runtime/ftplugin/sh.vim
+++ b/runtime/ftplugin/sh.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	sh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/sql.vim b/runtime/ftplugin/sql.vim
index 9f40b01..f41fb5b 100644
--- a/runtime/ftplugin/sql.vim
+++ b/runtime/ftplugin/sql.vim
@@ -1,8 +1,8 @@
 " SQL filetype plugin file
 " Language:    SQL (Common for Oracle, Microsoft SQL Server, Sybase)
-" Version:     4.0
+" Version:     6.0
 " Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: Wed 27 Feb 2008 04:35:21 PM Eastern Standard Time
+" Last Change: 2009 Aug 04
 " Download:    http://vim.sourceforge.net/script.php?script_id=454
 
 " For more details please use:
@@ -29,6 +29,27 @@
 "
 " To change the default dialect, add the following to your vimrc:
 "    let g:sql_type_default = 'sqlanywhere'
+"
+" This file also creates a command, SQLGetType, which allows you to 
+" determine what the current dialect is in use.
+"     :SQLGetType
+"
+" History
+"
+" Version 6.0
+" 
+" NF: Adds the command SQLGetType
+"
+" Version 5.0
+" 
+" NF: Adds the ability to choose the keys to control SQL completion, just add 
+"     the following to your .vimrc:
+"    let g:ftplugin_sql_omni_key       = '<C-C>'
+"    let g:ftplugin_sql_omni_key_right = '<Right>'
+"    let g:ftplugin_sql_omni_key_left  = '<Left>'
+"
+" BF: format-options - Auto-wrap comments using textwidth was turned off 
+"                      by mistake.
 
 
 " Only do this when not done yet for this buffer
@@ -44,7 +65,7 @@
 " c     Auto-wrap comments using textwidth, inserting the current comment
 "       leader automatically.
 setlocal formatoptions-=t
-setlocal formatoptions-=c
+setlocal formatoptions+=c
 
 " Functions/Commands to allow the user to change SQL syntax dialects
 " through the use of :SQLSetType <tab> for completion.
@@ -154,6 +175,20 @@
 
 endif
 
+" Functions/Commands to allow the user determine current SQL syntax dialect
+" This works with both Vim 6 and 7.
+
+if !exists("*SQL_GetType")
+    function SQL_GetType()
+        if exists('b:sql_type_override') 
+            echomsg "Current SQL dialect in use:".b:sql_type_override
+        else
+            echomsg "Current SQL dialect in use:".g:sql_type_default        
+        endif
+    endfunction
+    command! -nargs=0 SQLGetType :call SQL_GetType()
+endif
+
 if exists("b:sql_type_override")
     " echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
     if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
@@ -311,6 +346,19 @@
                 \ ',index,subscription,synchronization,view,variable'
 endif
 
+" Key to trigger SQL completion
+if !exists('g:ftplugin_sql_omni_key')
+    let g:ftplugin_sql_omni_key = '<C-C>'
+endif
+" Key to trigger drill into column list
+if !exists('g:ftplugin_sql_omni_key_right')
+    let g:ftplugin_sql_omni_key_right = '<Right>'
+endif
+" Key to trigger drill out of column list
+if !exists('g:ftplugin_sql_omni_key_left')
+    let g:ftplugin_sql_omni_key_left = '<Left>'
+endif
+
 " Replace all ,'s with bars, except ones with numbers after them.
 " This will most likely be a \{,1} string.
 let s:ftplugin_sql_objects = 
@@ -382,32 +430,32 @@
     if !exists('g:omni_sql_no_default_maps')
         " Static maps which use populate the completion list
         " using Vim's syntax highlighting rules
-        imap <buffer> <c-c>a <C-\><C-O>:call sqlcomplete#Map('syntax')<CR><C-X><C-O>
-        imap <buffer> <c-c>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
-        imap <buffer> <c-c>f <C-\><C-O>:call sqlcomplete#Map('sqlFunction')<CR><C-X><C-O>
-        imap <buffer> <c-c>o <C-\><C-O>:call sqlcomplete#Map('sqlOption')<CR><C-X><C-O>
-        imap <buffer> <c-c>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
-        imap <buffer> <c-c>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
         " Dynamic maps which use populate the completion list
         " using the dbext.vim plugin
-        imap <buffer> <c-c>t <C-\><C-O>:call sqlcomplete#Map('table')<CR><C-X><C-O>
-        imap <buffer> <c-c>p <C-\><C-O>:call sqlcomplete#Map('procedure')<CR><C-X><C-O>
-        imap <buffer> <c-c>v <C-\><C-O>:call sqlcomplete#Map('view')<CR><C-X><C-O>
-        imap <buffer> <c-c>c <C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
-        imap <buffer> <c-c>l <C-\><C-O>:call sqlcomplete#Map('column_csv')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " The next 3 maps are only to be used while the completion window is
         " active due to the <CR> at the beginning of the map
-        imap <buffer> <c-c>L <C-Y><C-\><C-O>:call sqlcomplete#Map('column_csv')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " <C-Right> is not recognized on most Unix systems, so only create
         " these additional maps on the Windows platform.
         " If you would like to use these maps, choose a different key and make
         " the same map in your vimrc.
-        if has('win32')
-            imap <buffer> <c-right>  <C-R>=sqlcomplete#DrillIntoTable()<CR>
-            imap <buffer> <c-left>  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>
-        endif
+        " if has('win32')
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_left.'  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
+        " endif
         " Remove any cached items useful for schema changes
-        imap <buffer> <c-c>R <C-\><C-O>:call sqlcomplete#Map('resetCache')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
     endif
 
     if b:sql_compl_savefunc != ""
diff --git a/runtime/ftplugin/svg.vim b/runtime/ftplugin/svg.vim
index 4544172..f8a0d62 100644
--- a/runtime/ftplugin/svg.vim
+++ b/runtime/ftplugin/svg.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	svg
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/tcl.vim b/runtime/ftplugin/tcl.vim
new file mode 100644
index 0000000..c5bc303
--- /dev/null
+++ b/runtime/ftplugin/tcl.vim
@@ -0,0 +1,36 @@
+" Vim filetype plugin file
+" Language:         Tcl
+" Maintainer:       Robert L Hicks <sigzero@gmail.com>
+" Latest Revision:  2009-05-01
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:cpo_save = &cpo
+set cpo-=C
+
+setlocal comments=:#
+setlocal commentstring=#%s
+setlocal formatoptions+=croql
+
+" Change the browse dialog on Windows to show mainly Tcl-related files
+if has("gui_win32")
+    let b:browsefilter = "Tcl Source Files (.tcl)\t*.tcl\n" .
+                \ "Tcl Test Files (.test)\t*.test\n" .
+                \ "All Files (*.*)\t*.*\n"
+endif
+
+"-----------------------------------------------------------------------------
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
+	    \	      " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:cpo_save
+
+" vim: set et ts=4 sw=4 tw=78:
diff --git a/runtime/ftplugin/tcsh.vim b/runtime/ftplugin/tcsh.vim
index 4c724e6..dacb44e 100644
--- a/runtime/ftplugin/tcsh.vim
+++ b/runtime/ftplugin/tcsh.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	tcsh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/verilog.vim b/runtime/ftplugin/verilog.vim
index 1d37d60..6594f2e 100644
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Verilog HDL
 " Maintainer:	Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change:	Mon Sep  5 11:05:54 CST 2005 and 2006 April 30
+" Last Change:	Wed Sep  3 15:24:49 CST 2008
 " URL:		http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
 
 " Only do this when not done yet for this buffer
@@ -12,6 +12,10 @@
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
+" Set 'cpoptions' to allow line continuations
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Undo the plugin effect
 let b:undo_ftplugin = "setlocal fo< com< tw<"
     \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
@@ -28,8 +32,6 @@
   setlocal tw=78
 endif
 
-set cpo-=C
-
 " Win32 can filter files in the browse dialog
 if has("gui_win32") && !exists("b:browsefilter")
   let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
@@ -49,3 +51,7 @@
     \ '\<task\>:\<endtask\>,' .
     \ '\<specify\>:\<endspecify\>'
 endif
+
+" Reset 'cpoptions' back to the user's setting
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index ca66597..de8a047 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	Vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2008 Feb 27
+" Last Change:	2009 Jan 22
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -11,16 +11,20 @@
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
-let cpo_save = &cpo
+let s:cpo_save = &cpo
 set cpo-=C
 
-let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
+let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
 	\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
 
 " Set 'formatoptions' to break comment lines but not other lines,
 " and insert the comment leader when hitting <CR> or using "o".
 setlocal fo-=t fo+=croql
 
+" To allow tag lookup via CTRL-] for autoload functions, '#' must be a
+" keyword character.  E.g., for netrw#Nread().
+setlocal isk+=#
+
 " Set 'comments' to format dashed lists in comments
 setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
 
@@ -53,8 +57,7 @@
   let b:match_ignorecase = 0
   let b:match_words =
 	\ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
-	\ '\<wh\%[ile]\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<endw\%[hile]\>,' .
-	\ '\<for\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<endfo\%[r]\>,' .
+ 	\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
 	\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
 	\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
 	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
@@ -64,7 +67,8 @@
 	\ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"'
 endif
 
-let &cpo = cpo_save
+let &cpo = s:cpo_save
+unlet s:cpo_save
 
 " removed this, because 'cpoptions' is a global option.
 " setlocal cpo+=M		" makes \%( match \)
diff --git a/runtime/ftplugin/xhtml.vim b/runtime/ftplugin/xhtml.vim
index e03407b..a50ed92 100644
--- a/runtime/ftplugin/xhtml.vim
+++ b/runtime/ftplugin/xhtml.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xhtml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/xml.vim b/runtime/ftplugin/xml.vim
index 55d9ee6..74cd064 100644
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 30 Jun 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff --git a/runtime/ftplugin/xsd.vim b/runtime/ftplugin/xsd.vim
index 1cd7adc..b033760 100644
--- a/runtime/ftplugin/xsd.vim
+++ b/runtime/ftplugin/xsd.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xsd
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff --git a/runtime/ftplugin/xslt.vim b/runtime/ftplugin/xslt.vim
index 9580432..1a5ee62 100644
--- a/runtime/ftplugin/xslt.vim
+++ b/runtime/ftplugin/xslt.vim
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xslt
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif