updated for version 7.0f03
diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim
index b5f924c..e8042b5 100644
--- a/runtime/autoload/vimball.vim
+++ b/runtime/autoload/vimball.vim
@@ -1,7 +1,7 @@
 " vimball : construct a file containing both paths and files
 " Author: Charles E. Campbell, Jr.
-" Date:   Apr 26, 2006
-" Version: 9
+" Date:   Apr 27, 2006
+" Version: 11
 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
 " Copyright: (c) 2004-2006 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 = "v9"
+let g:loaded_vimball = "v11"
 set cpo&vim
 
 " =====================================================================
@@ -40,9 +40,7 @@
   endif
 
   " user option bypass
-  let eikeep  = &ei
-  let acdkeep = &acd
-  set ei=all noacd
+  call s:SaveSettings()
 
   " go to vim plugin home
   for home in split(&rtp,',') + ['']
@@ -72,8 +70,7 @@
    if !filereadable(svfile)
     echohl Error | echo "unable to read file<".svfile.">" | echohl None
 	call s:ChgDir(curdir)
-    let &ei  = eikeep
-    let &acd = acdkeep
+	call s:RestoreSettings()
 "    call Dret("MkVimball")
     return
    endif
@@ -131,8 +128,7 @@
   exe "tabc ".vbtabnr
 
   " restore options
-  let &ei  = eikeep
-  let &acd = acdkeep
+  call s:RestoreSettings()
 
 "  call Dret("MkVimball")
 endfun
@@ -148,15 +144,9 @@
    return
   endif
 
-  " initialize
-  let acdkeep  = &acd
-  let fenkeep  = &fen
-  let regakeep = @a
-  let eikeep   = &ei
-  let vekeep   = &ve
-  let makeep   = getpos("'a")
+  " set up standard settings
+  call s:SaveSettings()
   let curtabnr = tabpagenr()
-  set ei=all ve=all nofen noacd
 
   " set up vimball tab
   tabnew
@@ -188,6 +178,7 @@
    echohl Title | echomsg "Vimball Archive" | echohl None
   else
    echohl Title | echomsg "Vimball Archive Listing" | echohl None
+   echohl Statement | echomsg "files would be placed under: ".home | echohl None
   endif
 
   " apportion vimball contents to various files
@@ -208,15 +199,17 @@
 
    " make directories if they don't exist yet
 "   call Decho("making directories if they don't exist yet")
-   let fnamebuf= fname
-   while fnamebuf =~ '/'
-   	let dirname  = home."/".substitute(fnamebuf,'/.*$','','e')
-   	let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','e')
-	if !isdirectory(dirname)
-"	 call Decho("making <".dirname.">")
-	 call mkdir(dirname)
-	endif
-   endwhile
+   if a:really
+    let fnamebuf= fname
+    while fnamebuf =~ '/'
+    	let dirname  = home."/".substitute(fnamebuf,'/.*$','','e')
+    	let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','e')
+     if !isdirectory(dirname)
+"     call Decho("making <".dirname.">")
+      call mkdir(dirname)
+     endif
+    endwhile
+   endif
    call s:ChgDir(home)
 
    " grab specified qty of lines and place into "a" buffer
@@ -279,16 +272,7 @@
   setlocal nomod bh=wipe
   exe "tabn ".curtabnr
   exe "tabc ".vbtabnr
-  let &ei  = eikeep
-  let @a   = regakeep
-  let &fen = fenkeep
-  let &acd = acdkeep
-  if makeep[0] != 0
-   " restore mark a
-"   call Decho("restore mark-a: makeep=".string(makeep))
-   call setpos("'a",makeep)
-   ka
-  endif
+  call s:RestoreSettings()
   call s:ChgDir(curdir)
 
 "  call Dret("Vimball")
@@ -362,6 +346,44 @@
 endfun
 
 " ---------------------------------------------------------------------
+" s:SaveSettings: {{{2
+fun! s:SaveSettings()
+"  call Dfunc("SaveSettings()")
+  let s:makeep  = getpos("'a")
+  let s:regakeep= @a
+  let s:acdkeep = &acd
+  let s:eikeep  = &ei
+  let s:fenkeep = &fen
+  let s:hidkeep = &hidden
+  let s:ickeep  = &ic
+  let s:repkeep = &report
+  let s:vekeep  = &ve
+  set ei=all ve=all noacd nofen noic report=999 nohid
+"  call Dret("SaveSettings")
+endfun
+
+" ---------------------------------------------------------------------
+" s:RestoreSettings: {{{2
+fun! s:RestoreSettings()
+"  call Dfunc("RestoreSettings()")
+  let @a      = s:regakeep
+  let &acd    = s:acdkeep
+  let &ei     = s:eikeep
+  let &fen    = s:fenkeep
+  let &hidden = s:hidkeep
+  let &ic     = s:ickeep
+  let &report = s:repkeep
+  let &ve     = s:vekeep
+  if s:makeep[0] != 0
+   " restore mark a
+"   call Decho("restore mark-a: makeep=".string(makeep))
+   call setpos("'a",s:makeep)
+  endif
+  unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep
+"  call Dret("RestoreSettings")
+endfun
+
+" ---------------------------------------------------------------------
 let &cpo= s:keepcpo
 unlet s:keepcpo
 " =====================================================================
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 625c74e..a337cb6 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -75,6 +75,7 @@
 	pi_paren.txt \
 	pi_spec.txt \
 	pi_tar.txt \
+	pi_vimball.txt \
 	pi_zip.txt \
 	print.txt \
 	quickfix.txt \
@@ -138,7 +139,6 @@
 	version6.txt \
 	version7.txt \
 	vi_diff.txt \
-	vimball.txt \
 	visual.txt \
 	windows.txt \
 	workshop.txt
@@ -204,6 +204,9 @@
 	pi_netrw.html \
 	pi_paren.html \
 	pi_spec.html \
+	pi_tar.html \
+	pi_vimball.html \
+	pi_zip.html \
 	print.html \
 	quickfix.html \
 	quickref.html \
@@ -267,7 +270,6 @@
 	version6.html \
 	version7.html \
 	vi_diff.html \
-	vimball.txt \
 	visual.html \
 	windows.html \
 	workshop.html
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
new file mode 100644
index 0000000..d9e87e8
--- /dev/null
+++ b/runtime/doc/pi_vimball.txt
@@ -0,0 +1,89 @@
+*pi_vimball.txt*	For Vim version 7.0f.  Last change: 2006 Apr 27
+
+			       ----------------
+			       Vimball Archiver
+			       ----------------
+
+Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
+	  (remove NOSPAM from Campbell's email first)
+Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.	*Vimball-copyright*
+           The VIM LICENSE applies to Vimball.vim, and Vimball.txt
+           (see |copyright|) except use "Vimball" instead of "Vim".
+	   No warranty, express or implied.
+	   Use At-Your-Own-Risk!
+
+==============================================================================
+1. Contents					*vimball* *vimball-contents*
+
+	1. Contents......................................: |vimball-contents|
+	2. Vimball Manual................................: |vimball-manual|
+	3. Vimball History...............................: |vimball-history|
+
+
+==============================================================================
+2. Vimball Manual					*vimball-manual*
+
+							*:MkVimball*
+		:[range]MkVimball[!] filename
+
+	This command takes lines holding a path to files to be included in
+	your vimball; as an example: >
+		plugin/something.vim
+		doc/something.txt
+<	using MkVimball on this range will create a file called "filename.vba"
+	which can be used by Vimball.vim to re-create these files.  If the
+	"filename.vba" file already exists, then MkVimball will issue a
+	warning and not create the file.  Note that these paths are relative
+	to your .vim (vimfiles) directory, and the files should be in that
+	directory.  The vimball plugin uses the first |'runtimepath'|directory
+	that exists as a prefix; don't use absolute paths.
+
+	If you use the exclamation point (!), then MkVimball will create the
+	"filename.vba" file, overwriting it if it already exists.  This
+	behavior resembles that for |:w|.
+
+							*vimball-extract*
+		vim filename.vba
+
+	Simply editing a Vimball will cause Vimball.vim to tell the user to
+	source the file to extract its contents.
+
+	Extraction will only proceed if the first line of a putative vimball
+	file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
+	line.
+
+		:VimballList				*vimball-vimballlist*
+	
+	This command will tell Vimball to list the files in the archive, along
+	with their lengths in lines.
+
+
+==============================================================================
+3. Vimball History					*vimball-history* {{{1
+
+	11 : Apr 27, 2006 * VimballList would create missing subdirectories that
+	                    the vimball specified were needed.  Fixed.
+	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
+	                    functions.  Included some more settings in them
+			    which frequently cause trouble.
+	9  : Apr 26, 2006 * various changes to support Windows prediliction
+	                    for backslashes and spaces in file and directory
+			    names.
+	7  : Apr 25, 2006 * bypasses foldenable
+	                  * uses more exe and less norm! (:yank :put etc)
+			  * does better at insuring a "Press ENTER" prompt
+			    appears to keep its messages visible
+	4  : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
+	                    only fires once, so the "Source this file..."
+			    message is now issued only once.
+	3  : Mar 20, 2006 * removed query, now requires sourcing to be
+	                    extracted (:so %).  Message to that effect
+			    included.
+			  * :VimballList  now shows files that would be
+			    extracted.
+	2  : Mar 20, 2006 * query, :UseVimball included
+	1  : Mar 20, 2006 * initial release
+
+
+==============================================================================
+vim:tw=78:ts=8:ft=help:fdm=marker
diff --git a/runtime/ftplugin/debchangelog.vim b/runtime/ftplugin/debchangelog.vim
index 6d1f20e..3500101 100644
--- a/runtime/ftplugin/debchangelog.vim
+++ b/runtime/ftplugin/debchangelog.vim
@@ -2,7 +2,7 @@
 " Language:	Debian Changelog
 " Maintainer:	Michael Piefel <piefel@informatik.hu-berlin.de>
 "		Stefano Zacchiroli <zack@debian.org>
-" Last Change:	25 April 2006
+" Last Change:	27 April 2006
 " License:	GNU GPL, version 2.1 or later
 
 if exists("g:did_changelog_ftplugin")
@@ -203,17 +203,11 @@
 au BufLeave * if &filetype == "debchangelog" | aunmenu Changelog | endif
 augroup END
 
-" Debian changelogs are not supposed to have any other text width,
-" so the user cannot override this setting
-setlocal tw=78
-setlocal comments=f:* 
-let b:undo_ftplugin = "setlocal tw< comments<"
-
 " }}}
 " {{{1 folding
 
 setlocal foldmethod=expr
-set foldexpr=GetDebChangelogFold(v:lnum)
+setlocal foldexpr=GetDebChangelogFold(v:lnum)
 setlocal foldtext=DebChangelogFoldText()
 
 " look for an author name searching backward from a given line number
@@ -251,4 +245,12 @@
 
 " }}}
 
+" Debian changelogs are not supposed to have any other text width,
+" so the user cannot override this setting
+setlocal tw=78
+setlocal comments=f:* 
+
+" Clean unloading
+let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
+
 " vim: set foldmethod=marker:
diff --git a/runtime/ftplugin/flexwiki.vim b/runtime/ftplugin/flexwiki.vim
new file mode 100644
index 0000000..1e749f6
--- /dev/null
+++ b/runtime/ftplugin/flexwiki.vim
@@ -0,0 +1,59 @@
+" Vim filetype plugin file
+" Language:     FlexWiki, http://www.flexwiki.com/
+" Maintainer:   George V. Reilly  <george@reilly.org>
+" Home:         http://www.georgevreilly.com/vim/flexwiki/
+" Other Home:   http://www.vim.org/scripts/script.php?script_id=1529
+" Author:       George V. Reilly
+" Filenames:    *.wiki
+" Last Change: Wed Apr 26 11:00 PM 2006 P
+" Version:      0.3
+
+if exists("b:did_ftplugin")
+  finish
+endif
+
+let b:did_ftplugin = 1  " Don't load another plugin for this buffer
+
+" Reset the following options to undo this plugin.
+let b:undo_ftplugin = "setl tw< wrap< lbr< et< ts< fenc< bomb< ff<"
+
+" Allow lines of unlimited length. Do NOT want automatic linebreaks,
+" as a newline starts a new paragraph in FlexWiki.
+setlocal textwidth=0
+" Wrap long lines, rather than using horizontal scrolling.
+setlocal wrap
+" Wrap at a character in 'breakat' rather than at last char on screen
+setlocal linebreak
+" Don't transform <TAB> characters into spaces, as they are significant
+" at the beginning of the line for numbered and bulleted lists.
+setlocal noexpandtab
+" 4-char tabstops, per flexwiki.el
+setlocal tabstop=4
+" Save *.wiki files in UTF-8
+setlocal fileencoding=utf-8
+" Add the UTF-8 Byte Order Mark to the beginning of the file
+setlocal bomb
+" Save <EOL>s as \n, not \r\n
+setlocal fileformat=unix
+
+if exists("g:flexwiki_maps")
+  " Move up and down by display lines, to account for screen wrapping
+  " of very long lines
+  nmap <buffer> <Up>   gk
+  nmap <buffer> k      gk
+  vmap <buffer> <Up>   gk
+  vmap <buffer> k      gk
+
+  nmap <buffer> <Down> gj
+  nmap <buffer> j      gj
+  vmap <buffer> <Down> gj
+  vmap <buffer> j      gj
+
+  " for earlier versions - for when 'wrap' is set
+  imap <buffer> <S-Down>   <C-o>gj
+  imap <buffer> <S-Up>     <C-o>gk
+  if v:version >= 700
+      imap <buffer> <Down>   <C-o>gj
+      imap <buffer> <Up>     <C-o>gk
+  endif 
+endif
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index 5aa74fa..d76ba71 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,6 +1,6 @@
 " Script to define the syntax menu in synmenu.vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 21
+" Last Change:	2006 Apr 27
 
 " This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
@@ -97,7 +97,8 @@
 SynMenu AB.BASIC:basic
 SynMenu AB.BC\ calculator:bc
 SynMenu AB.BDF\ font:bdf
-SynMenu AB.BibTeX:bib
+SynMenu AB.BibTeX.Bibliography\ database:bib
+SynMenu AB.BibTeX.Bibliography\ Style:bst
 SynMenu AB.BIND.BIND\ config:named
 SynMenu AB.BIND.BIND\ zone:bindzone
 SynMenu AB.Blank:blank
@@ -180,6 +181,7 @@
 SynMenu DE.Exports:exports
 
 SynMenu FG.Fetchmail:fetchmail
+SynMenu FG.FlexWiki:flexwiki
 SynMenu FG.Focus\ Executable:focexec
 SynMenu FG.Focus\ Master:master
 SynMenu FG.FORM:form
@@ -300,6 +302,7 @@
 SynMenu Me-NO.Monk:monk
 SynMenu Me-NO.Mplayer\ config:mplayerconf
 SynMenu Me-NO.MOO:moo
+SynMenu Me-NO.Mrxvtrc:mrxvtrc
 SynMenu Me-NO.MS-DOS/Windows.4DOS\ \.bat\ file:btm
 SynMenu Me-NO.MS-DOS/Windows.\.bat\/\.cmd\ file:dosbatch
 SynMenu Me-NO.MS-DOS/Windows.\.ini\ file:dosini
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index a3475f0..7307d6a 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Apr 04
+" Last Change: 2006 Apr 27
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
@@ -87,18 +87,20 @@
     let c2 = '\]'
   endif
 
-  " When not in a string or comment ignore matches inside them.
-  let s_skip ='synIDattr(synID(line("."), col(".") - before, 0), "name") ' .
-	\ '=~?  "string\\|comment"'
-  execute 'if' s_skip '| let s_skip = 0 | endif'
-
   " Find the match.  When it was just before the cursor move it there for a
   " moment.
   if before > 0
     let save_cursor = getpos('.')
     call cursor(c_lnum, c_col - before)
   endif
+
+  " When not in a string or comment ignore matches inside them.
+  let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
+	\ '=~?  "string\\|comment"'
+  execute 'if' s_skip '| let s_skip = 0 | endif'
+
   let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
+
   if before > 0
     call setpos('.', save_cursor)
   endif
diff --git a/runtime/plugin/vimballPlugin.vim b/runtime/plugin/vimballPlugin.vim
index 95c06c3..32faeda 100644
--- a/runtime/plugin/vimballPlugin.vim
+++ b/runtime/plugin/vimballPlugin.vim
@@ -12,7 +12,7 @@
 if &cp || exists("g:loaded_vimball") || exists("g:loaded_vimballplugin")
  finish
 endif
-let g:loaded_vimballplugin= 1
+let g:loaded_vimballplugin = 1
 
 let s:keepcpo= &cpo
 set cpo&vim
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index c3cb625..6a9d69b 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -2,7 +2,7 @@
 " This file is normally sourced from menu.vim.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2003 Jun 22
+" Last Change:	2006 Apr 27
 
 " Define the SetSyn function, used for the Syntax menu entries.
 " Set 'filetype' and also 'syntax' if it is manually selected.
@@ -28,6 +28,10 @@
   endif
 endfun
 
+" <> notation is used here, remove '<' from 'cpoptions'
+let s:cpo_save = &cpo
+set cpo&vim
+
 " The following menu items are generated by makemenu.vim.
 " The Start Of The Syntax Menu
 
@@ -158,31 +162,32 @@
 an 50.30.510 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
 an 50.30.520 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
 an 50.40.100 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
-an 50.40.110 &Syntax.FG.Focus\ Executable :cal SetSyn("focexec")<CR>
-an 50.40.120 &Syntax.FG.Focus\ Master :cal SetSyn("master")<CR>
-an 50.40.130 &Syntax.FG.FORM :cal SetSyn("form")<CR>
-an 50.40.140 &Syntax.FG.Forth :cal SetSyn("forth")<CR>
-an 50.40.150 &Syntax.FG.Fortran :cal SetSyn("fortran")<CR>
-an 50.40.160 &Syntax.FG.FoxPro :cal SetSyn("foxpro")<CR>
-an 50.40.170 &Syntax.FG.Fstab :cal SetSyn("fstab")<CR>
-an 50.40.180 &Syntax.FG.Fvwm.Fvwm\ configuration :cal SetSyn("fvwm1")<CR>
-an 50.40.190 &Syntax.FG.Fvwm.Fvwm2\ configuration :cal SetSyn("fvwm2")<CR>
-an 50.40.200 &Syntax.FG.Fvwm.Fvwm2\ configuration\ with\ M4 :cal SetSyn("fvwm2m4")<CR>
-an 50.40.220 &Syntax.FG.GDB\ command\ file :cal SetSyn("gdb")<CR>
-an 50.40.230 &Syntax.FG.GDMO :cal SetSyn("gdmo")<CR>
-an 50.40.240 &Syntax.FG.Gedcom :cal SetSyn("gedcom")<CR>
-an 50.40.250 &Syntax.FG.Gkrellmrc :cal SetSyn("gkrellmrc")<CR>
-an 50.40.260 &Syntax.FG.GP :cal SetSyn("gp")<CR>
-an 50.40.270 &Syntax.FG.GPG :cal SetSyn("gpg")<CR>
-an 50.40.280 &Syntax.FG.Group\ file :cal SetSyn("group")<CR>
-an 50.40.290 &Syntax.FG.Grub :cal SetSyn("grub")<CR>
-an 50.40.300 &Syntax.FG.GNU\ Server\ Pages :cal SetSyn("gsp")<CR>
-an 50.40.310 &Syntax.FG.GNUplot :cal SetSyn("gnuplot")<CR>
-an 50.40.320 &Syntax.FG.GrADS\ scripts :cal SetSyn("grads")<CR>
-an 50.40.330 &Syntax.FG.Gretl :cal SetSyn("gretl")<CR>
-an 50.40.340 &Syntax.FG.Groff :cal SetSyn("groff")<CR>
-an 50.40.350 &Syntax.FG.Groovy :cal SetSyn("groovy")<CR>
-an 50.40.360 &Syntax.FG.GTKrc :cal SetSyn("gtkrc")<CR>
+an 50.40.110 &Syntax.FG.FlexWiki :cal SetSyn("flexwiki")<CR>
+an 50.40.120 &Syntax.FG.Focus\ Executable :cal SetSyn("focexec")<CR>
+an 50.40.130 &Syntax.FG.Focus\ Master :cal SetSyn("master")<CR>
+an 50.40.140 &Syntax.FG.FORM :cal SetSyn("form")<CR>
+an 50.40.150 &Syntax.FG.Forth :cal SetSyn("forth")<CR>
+an 50.40.160 &Syntax.FG.Fortran :cal SetSyn("fortran")<CR>
+an 50.40.170 &Syntax.FG.FoxPro :cal SetSyn("foxpro")<CR>
+an 50.40.180 &Syntax.FG.Fstab :cal SetSyn("fstab")<CR>
+an 50.40.190 &Syntax.FG.Fvwm.Fvwm\ configuration :cal SetSyn("fvwm1")<CR>
+an 50.40.200 &Syntax.FG.Fvwm.Fvwm2\ configuration :cal SetSyn("fvwm2")<CR>
+an 50.40.210 &Syntax.FG.Fvwm.Fvwm2\ configuration\ with\ M4 :cal SetSyn("fvwm2m4")<CR>
+an 50.40.230 &Syntax.FG.GDB\ command\ file :cal SetSyn("gdb")<CR>
+an 50.40.240 &Syntax.FG.GDMO :cal SetSyn("gdmo")<CR>
+an 50.40.250 &Syntax.FG.Gedcom :cal SetSyn("gedcom")<CR>
+an 50.40.260 &Syntax.FG.Gkrellmrc :cal SetSyn("gkrellmrc")<CR>
+an 50.40.270 &Syntax.FG.GP :cal SetSyn("gp")<CR>
+an 50.40.280 &Syntax.FG.GPG :cal SetSyn("gpg")<CR>
+an 50.40.290 &Syntax.FG.Group\ file :cal SetSyn("group")<CR>
+an 50.40.300 &Syntax.FG.Grub :cal SetSyn("grub")<CR>
+an 50.40.310 &Syntax.FG.GNU\ Server\ Pages :cal SetSyn("gsp")<CR>
+an 50.40.320 &Syntax.FG.GNUplot :cal SetSyn("gnuplot")<CR>
+an 50.40.330 &Syntax.FG.GrADS\ scripts :cal SetSyn("grads")<CR>
+an 50.40.340 &Syntax.FG.Gretl :cal SetSyn("gretl")<CR>
+an 50.40.350 &Syntax.FG.Groff :cal SetSyn("groff")<CR>
+an 50.40.360 &Syntax.FG.Groovy :cal SetSyn("groovy")<CR>
+an 50.40.370 &Syntax.FG.GTKrc :cal SetSyn("gtkrc")<CR>
 an 50.50.100 &Syntax.HIJK.Haskell.Haskell :cal SetSyn("haskell")<CR>
 an 50.50.110 &Syntax.HIJK.Haskell.Haskell-c2hs :cal SetSyn("chaskell")<CR>
 an 50.50.120 &Syntax.HIJK.Haskell.Haskell-literate :cal SetSyn("lhaskell")<CR>
@@ -274,32 +279,33 @@
 an 50.70.200 &Syntax.Me-NO.Monk :cal SetSyn("monk")<CR>
 an 50.70.210 &Syntax.Me-NO.Mplayer\ config :cal SetSyn("mplayerconf")<CR>
 an 50.70.220 &Syntax.Me-NO.MOO :cal SetSyn("moo")<CR>
-an 50.70.230 &Syntax.Me-NO.MS-DOS/Windows.4DOS\ \.bat\ file :cal SetSyn("btm")<CR>
-an 50.70.240 &Syntax.Me-NO.MS-DOS/Windows.\.bat\/\.cmd\ file :cal SetSyn("dosbatch")<CR>
-an 50.70.250 &Syntax.Me-NO.MS-DOS/Windows.\.ini\ file :cal SetSyn("dosini")<CR>
-an 50.70.260 &Syntax.Me-NO.MS-DOS/Windows.Module\ Definition :cal SetSyn("def")<CR>
-an 50.70.270 &Syntax.Me-NO.MS-DOS/Windows.Registry :cal SetSyn("registry")<CR>
-an 50.70.280 &Syntax.Me-NO.MS-DOS/Windows.Resource\ file :cal SetSyn("rc")<CR>
-an 50.70.290 &Syntax.Me-NO.Msql :cal SetSyn("msql")<CR>
-an 50.70.300 &Syntax.Me-NO.MuPAD :cal SetSyn("mupad")<CR>
-an 50.70.310 &Syntax.Me-NO.MUSHcode :cal SetSyn("mush")<CR>
-an 50.70.320 &Syntax.Me-NO.Muttrc :cal SetSyn("muttrc")<CR>
-an 50.70.340 &Syntax.Me-NO.Nanorc :cal SetSyn("nanorc")<CR>
-an 50.70.350 &Syntax.Me-NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
-an 50.70.360 &Syntax.Me-NO.Natural :cal SetSyn("natural")<CR>
-an 50.70.370 &Syntax.Me-NO.Netrc :cal SetSyn("netrc")<CR>
-an 50.70.380 &Syntax.Me-NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
-an 50.70.390 &Syntax.Me-NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
-an 50.70.400 &Syntax.Me-NO.Nroff :cal SetSyn("nroff")<CR>
-an 50.70.410 &Syntax.Me-NO.NSIS\ script :cal SetSyn("nsis")<CR>
-an 50.70.430 &Syntax.Me-NO.Objective\ C :cal SetSyn("objc")<CR>
-an 50.70.440 &Syntax.Me-NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
-an 50.70.450 &Syntax.Me-NO.OCAML :cal SetSyn("ocaml")<CR>
-an 50.70.460 &Syntax.Me-NO.Occam :cal SetSyn("occam")<CR>
-an 50.70.470 &Syntax.Me-NO.Omnimark :cal SetSyn("omnimark")<CR>
-an 50.70.480 &Syntax.Me-NO.OpenROAD :cal SetSyn("openroad")<CR>
-an 50.70.490 &Syntax.Me-NO.Open\ Psion\ Lang :cal SetSyn("opl")<CR>
-an 50.70.500 &Syntax.Me-NO.Oracle\ config :cal SetSyn("ora")<CR>
+an 50.70.230 &Syntax.Me-NO.Mrxvtrc :cal SetSyn("mrxvtrc")<CR>
+an 50.70.240 &Syntax.Me-NO.MS-DOS/Windows.4DOS\ \.bat\ file :cal SetSyn("btm")<CR>
+an 50.70.250 &Syntax.Me-NO.MS-DOS/Windows.\.bat\/\.cmd\ file :cal SetSyn("dosbatch")<CR>
+an 50.70.260 &Syntax.Me-NO.MS-DOS/Windows.\.ini\ file :cal SetSyn("dosini")<CR>
+an 50.70.270 &Syntax.Me-NO.MS-DOS/Windows.Module\ Definition :cal SetSyn("def")<CR>
+an 50.70.280 &Syntax.Me-NO.MS-DOS/Windows.Registry :cal SetSyn("registry")<CR>
+an 50.70.290 &Syntax.Me-NO.MS-DOS/Windows.Resource\ file :cal SetSyn("rc")<CR>
+an 50.70.300 &Syntax.Me-NO.Msql :cal SetSyn("msql")<CR>
+an 50.70.310 &Syntax.Me-NO.MuPAD :cal SetSyn("mupad")<CR>
+an 50.70.320 &Syntax.Me-NO.MUSHcode :cal SetSyn("mush")<CR>
+an 50.70.330 &Syntax.Me-NO.Muttrc :cal SetSyn("muttrc")<CR>
+an 50.70.350 &Syntax.Me-NO.Nanorc :cal SetSyn("nanorc")<CR>
+an 50.70.360 &Syntax.Me-NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
+an 50.70.370 &Syntax.Me-NO.Natural :cal SetSyn("natural")<CR>
+an 50.70.380 &Syntax.Me-NO.Netrc :cal SetSyn("netrc")<CR>
+an 50.70.390 &Syntax.Me-NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
+an 50.70.400 &Syntax.Me-NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
+an 50.70.410 &Syntax.Me-NO.Nroff :cal SetSyn("nroff")<CR>
+an 50.70.420 &Syntax.Me-NO.NSIS\ script :cal SetSyn("nsis")<CR>
+an 50.70.440 &Syntax.Me-NO.Objective\ C :cal SetSyn("objc")<CR>
+an 50.70.450 &Syntax.Me-NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
+an 50.70.460 &Syntax.Me-NO.OCAML :cal SetSyn("ocaml")<CR>
+an 50.70.470 &Syntax.Me-NO.Occam :cal SetSyn("occam")<CR>
+an 50.70.480 &Syntax.Me-NO.Omnimark :cal SetSyn("omnimark")<CR>
+an 50.70.490 &Syntax.Me-NO.OpenROAD :cal SetSyn("openroad")<CR>
+an 50.70.500 &Syntax.Me-NO.Open\ Psion\ Lang :cal SetSyn("opl")<CR>
+an 50.70.510 &Syntax.Me-NO.Oracle\ config :cal SetSyn("ora")<CR>
 an 50.80.100 &Syntax.PQ.Packet\ filter\ conf :cal SetSyn("pf")<CR>
 an 50.80.110 &Syntax.PQ.Palm\ resource\ compiler :cal SetSyn("pilrc")<CR>
 an 50.80.120 &Syntax.PQ.Pam\ config :cal SetSyn("pamconf")<CR>
@@ -519,3 +525,6 @@
   endif
 endfun
 
+" Restore 'cpoptions'
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index da3e757..088e38c 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Apr 26, 2006
-" Version:	7.0-47
+" Last Change:	Apr 27, 2006
+" Version:	7.0-48
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -284,11 +284,11 @@
 syn keyword vimMap	cm[ap] cno[remap] im[ap] ino[remap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] vm[ap] vn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
 syn match   vimMapLhs    contained	"\S\+"	contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
 syn match   vimMapBang   contained	"!"	skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match   vimMapMod    contained	"\c<\(buffer\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match   vimMapMod    contained	"\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
 syn match   vimMapRhs    contained  ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
 syn match   vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
 syn case ignore
-syn keyword vimMapModKey contained	buffer	leader	localleader	plug	script	sid	silent	unique
+syn keyword vimMapModKey contained	buffer	expr	leader	localleader	plug	script	sid	silent	unique
 syn case match
 
 " Menus {{{2