changeset 845:0fe7765dcb8e

updated for version 7.0f03
author vimboss
date Thu, 27 Apr 2006 21:40:34 +0000
parents d3bbb5dd3913
children db44f7b81373
files runtime/autoload/vimball.vim runtime/doc/Makefile runtime/doc/pi_vimball.txt runtime/ftplugin/debchangelog.vim runtime/ftplugin/flexwiki.vim runtime/makemenu.vim runtime/plugin/matchparen.vim runtime/plugin/vimballPlugin.vim runtime/synmenu.vim runtime/syntax/vim.vim src/po/pl.UTF-8.po src/tag.c
diffstat 12 files changed, 404 insertions(+), 192 deletions(-) [+]
line wrap: on
line diff
--- 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 @@ if &cp || exists("g:loaded_vimball")
  finish
 endif
 let s:keepcpo        = &cpo
-let g:loaded_vimball = "v9"
+let g:loaded_vimball = "v11"
 set cpo&vim
 
 " =====================================================================
@@ -40,9 +40,7 @@ fun! vimball#MkVimball(line1,line2,write
   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 @@ fun! vimball#MkVimball(line1,line2,write
    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 @@ fun! vimball#MkVimball(line1,line2,write
   exe "tabc ".vbtabnr
 
   " restore options
-  let &ei  = eikeep
-  let &acd = acdkeep
+  call s:RestoreSettings()
 
 "  call Dret("MkVimball")
 endfun
@@ -148,15 +144,9 @@ fun! vimball#Vimball(really)
    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 @@ fun! vimball#Vimball(really)
    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 @@ fun! vimball#Vimball(really)
 
    " 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 @@ fun! vimball#Vimball(really)
   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 @@ fun! vimball#ShowMesg(msg)
 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
 " =====================================================================
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -75,6 +75,7 @@ DOCS = \
 	pi_paren.txt \
 	pi_spec.txt \
 	pi_tar.txt \
+	pi_vimball.txt \
 	pi_zip.txt \
 	print.txt \
 	quickfix.txt \
@@ -138,7 +139,6 @@ DOCS = \
 	version6.txt \
 	version7.txt \
 	vi_diff.txt \
-	vimball.txt \
 	visual.txt \
 	windows.txt \
 	workshop.txt
@@ -204,6 +204,9 @@ HTMLS = \
 	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 @@ HTMLS = \
 	version6.html \
 	version7.html \
 	vi_diff.html \
-	vimball.txt \
 	visual.html \
 	windows.html \
 	workshop.html
new file mode 100644
--- /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
--- 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 BufEnter * if &filetype == "debchange
 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 @@ endfunction
 
 " }}}
 
+" 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:
new file mode 100644
--- /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
--- 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.Baan:baan
 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.Expect:expect
 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.Modula\ 3:modula3
 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
--- 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 @@ function! s:Highlight_Matching_Pair()
     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
--- 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
--- 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 @@ fun! SetSyn(name)
   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.500 &Syntax.DE.Exim\ conf :cal 
 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.190 &Syntax.Me-NO.Modula\ 3 :ca
 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 @@ fun! s:Nosynonly()
   endif
 endfun
 
+" Restore 'cpoptions'
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- 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 match   vimMap	"\<map!\=\ze\s*[^(]" 
 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
--- a/src/po/pl.UTF-8.po
+++ b/src/po/pl.UTF-8.po
@@ -9,10 +9,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-12 20:24+0200\n"
-"PO-Revision-Date: 2006-04-12 20:28+0200\n"
+"POT-Creation-Date: 2006-04-27 18:27+0200\n"
+"PO-Revision-Date: 2006-04-27 19:15+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
-"Language-Team: Polish <mikmach@wp.pl>\n"
+"Language-Team: Polish <kde-transl@mer.chemia.polsl.gliwice.pl>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -198,8 +198,7 @@ msgid "E100: No other buffer in diff mod
 msgstr "E100: Brak innego bufora w trybie różnic"
 
 msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr ""
-"E101: Więcej niż jeden bufor w trybie różnicowania, nie wiem którego użyć"
+msgstr "E101: Więcej niż jeden bufor w trybie różnicowania, nie wiem którego użyć"
 
 #, c-format
 msgid "E102: Can't find buffer \"%s\""
@@ -221,6 +220,9 @@ msgstr "E544: Nie znaleziono pliku rozkładu klawiszy"
 msgid "E105: Using :loadkeymap not in a sourced file"
 msgstr "E105: Zastosowano :loadkeymap w niewczytanym pliku"
 
+msgid "E791: Empty keymap entry"
+msgstr "E791: Pusty wpis keymap"
+
 msgid " Keyword completion (^N^P)"
 msgstr " Dopełnianie słów kluczowych (^N^P)"
 
@@ -494,6 +496,22 @@ msgstr "E723: Brak końca w Słowniku '}': %s"
 msgid "E724: variable nested too deep for displaying"
 msgstr "E724: Zmienna zagnieżdżona zbyt głęboko by pokazać"
 
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Nieznana funkcja: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Za mało argumentów dla funkcji: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: Użycie <SID> poza kontekstem skryptu: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Wywołanie funkcji \"dict\" bez Słownika: %s"
+
 msgid "E699: Too many arguments"
 msgstr "E699: Za dużo argumentów"
 
@@ -1088,8 +1106,7 @@ msgid "End of function"
 msgstr "Koniec funkcji"
 
 msgid "E464: Ambiguous use of user-defined command"
-msgstr ""
-"E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownika"
+msgstr "E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownika"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Nie jest komendą edytora"
@@ -1172,8 +1189,7 @@ msgid "E180: Invalid complete value: %s"
 msgstr "E180: Niewłaściwa wartość dopełniania: %s"
 
 msgid "E468: Completion argument only allowed for custom completion"
-msgstr ""
-"E468: Argument depełniania dozwolony wyłącznie dla dopełniania użytkownika"
+msgstr "E468: Argument depełniania dozwolony wyłącznie dla dopełniania użytkownika"
 
 msgid "E467: Custom completion requires a function argument"
 msgstr "E467: Dopełnianie użytkownika wymaga funkcji jako argumentu"
@@ -1223,8 +1239,7 @@ msgid "Window position: X %d, Y %d"
 msgstr "Pozycja okna: X %d, Y %d"
 
 msgid "E188: Obtaining window position not implemented for this platform"
-msgstr ""
-"E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
+msgstr "E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos wymaga dwóch argumentów numerycznych"
@@ -1524,8 +1539,7 @@ msgid "E676: No matching autocommands fo
 msgstr "E676: Brak pasujących autokomend dla bufora acwrite"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr ""
-"E203: Autokomendy skasowały lub wyładowały bufor przeznaczony do zapisu"
+msgstr "E203: Autokomendy skasowały lub wyładowały bufor przeznaczony do zapisu"
 
 msgid "E204: Autocommand changed number of lines in unexpected way"
 msgstr "E204: Autokomenda zmieniła liczbę wierszy w nieoczekiwany sposób"
@@ -1579,8 +1593,7 @@ msgid "E512: Close failed"
 msgstr "E512: Zamknięcie się nie powiodło"
 
 msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
-msgstr ""
-"E513: Błąd zapisu, przemiana się nie powiodła (opróżnij 'fenc' aby wymusić)"
+msgstr "E513: Błąd zapisu, przemiana się nie powiodła (opróżnij 'fenc' aby wymusić)"
 
 msgid "E514: write error (file system full?)"
 msgstr "E514: błąd w zapisie (może system plików jest przepełniony?)"
@@ -1711,8 +1724,7 @@ msgstr "Zobacz \":help W11\"  dla dalszy
 
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
-msgstr ""
-"W16: OSTRZEŻENIE: Tryb pliku \"%s\" zmienił się od czasu rozpoczęcia edycji"
+msgstr "W16: OSTRZEŻENIE: Tryb pliku \"%s\" zmienił się od czasu rozpoczęcia edycji"
 
 msgid "See \":help W16\" for more info."
 msgstr "Zobacz \":help W16\"  dla dalszych informacji."
@@ -2064,8 +2076,7 @@ msgstr ""
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr ""
-"E250: Brak czcionek dla następujących zestawów znaków w zestawie czcionek %s:"
+msgstr "E250: Brak czcionek dla następujących zestawów znaków w zestawie czcionek %s:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -2494,12 +2505,32 @@ msgstr "<okno %d>"
 msgid "no such window"
 msgstr "nie ma takiego okna"
 
-msgid ""
-"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ musi być reprezentacją Łańcucha"
+
+msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E263: Przykro mi, ta komenda jest wyłączona, bo nie można załadować "
 "biblioteki Ruby."
 
+msgid "E267: unexpected return"
+msgstr "E267: nieoczekiwany return"
+
+msgid "E268: unexpected next"
+msgstr "E268: nieoczekiwany next"
+
+msgid "E269: unexpected break"
+msgstr "E269: nieoczekiwany break"
+
+msgid "E270: unexpected redo"
+msgstr "E270: nieoczekiwane redo"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: ponowna próba poza klauzulą ratunku"
+
+msgid "E272: unhandled exception"
+msgstr "E272: nieobsługiwany wyjątek"
+
 #, c-format
 msgid "E273: unknown longjmp status %d"
 msgstr "E273: Nieznany status longjmp %d"
@@ -2628,8 +2659,7 @@ msgstr "błąd vima"
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "nie mogę stworzyć bufora/okna komendy: obiekt jest kasowany"
 
-msgid ""
-"cannot register callback command: buffer/window is already being deleted"
+msgid "cannot register callback command: buffer/window is already being deleted"
 msgstr ""
 "nie mogę zarejestrować wstecznego wywołania komendy: bufor/okno już została "
 "skasowana"
@@ -2647,13 +2677,10 @@ msgstr ""
 "nie mogę zarejestrować wstecznego wywołania komendy: brak odniesienia do "
 "bufora/okna"
 
-msgid ""
-"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-msgstr ""
-"Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Tcl."
-
-msgid ""
-"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
+msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr "Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Tcl."
+
+msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
 "E281: BŁĄD TCL: kod zakończeniowy nie jest całkowity!? Proszę złożyć raport "
 "o tym na vim-dev@vim.org"
@@ -2676,8 +2703,7 @@ msgid "E573: Invalid server id used: %s"
 msgstr "E573: Użyto niewłaściwego id serwera: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
-msgstr ""
-"E251: wcielenia instancji rejestru Vima jest źle sformowane.  Skasowano!"
+msgstr "E251: wcielenia instancji rejestru Vima jest źle sformowane.  Skasowano!"
 
 msgid "Unknown option argument"
 msgstr "Nieznany argument opcji"
@@ -2692,8 +2718,7 @@ msgid "Garbage after option argument"
 msgstr "Śmiecie po argumencie opcji"
 
 msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-msgstr ""
-"Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
+msgstr "Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
 
 msgid "Invalid argument for"
 msgstr "Niewłaściwy argument dla"
@@ -2906,8 +2931,7 @@ msgstr ""
 "jakiegokolwiek pliku vimrc"
 
 msgid "-c <command>\t\tExecute <command> after loading the first file"
-msgstr ""
-"-c <command>\t\tWykonaj komendę <command> po załadowaniu pierwszego pliku"
+msgstr "-c <command>\t\tWykonaj komendę <command> po załadowaniu pierwszego pliku"
 
 msgid "-S <session>\t\tSource file <session> after loading the first file"
 msgstr "-S <sesja>\t\tWczytaj plik <sesja> po załadowaniu pierwszego pliku"
@@ -2916,12 +2940,10 @@ msgid "-s <scriptin>\tRead Normal mode c
 msgstr "-s <scriptin>\tWczytuj komendy trybu normalnego z pliku <scriptin>"
 
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
-msgstr ""
-"-w <scriptout>\tDołącz wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr "-w <scriptout>\tDołącz wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
-msgstr ""
-"-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr "-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-x\t\t\tEdit encrypted files"
 msgstr "-x\t\t\tEdytuj zakodowane pliki"
@@ -2938,15 +2960,11 @@ msgstr "--remote <pliki>\tEdytuj pliki w serwerze Vima jeśli możliwe"
 msgid "--remote-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-silent <pliki> To samo, nie narzekaj jeśli nie ma serwera"
 
-msgid ""
-"--remote-wait <files>  As --remote but wait for files to have been edited"
-msgstr ""
-"--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycją"
-
-msgid ""
-"--remote-wait-silent <files>  Same, don't complain if there is no server"
-msgstr ""
-"--remote-wait-silent <pliki>  To samo, nie narzekaj jeśli nie ma serwera"
+msgid "--remote-wait <files>  As --remote but wait for files to have been edited"
+msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycją"
+
+msgid "--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr "--remote-wait-silent <pliki>  To samo, nie narzekaj jeśli nie ma serwera"
 
 msgid "--remote-tab <files>  As --remote but open tab page for each file"
 msgstr ""
@@ -3011,8 +3029,7 @@ msgid "-background <color>\tUse <color> 
 msgstr "-background <kolor>\tUżywaj <kolor> dla tła (również: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr ""
-"-foreground <kolor>\tUżywaj <kolor> dla normalnego tekstu (również: -fg)"
+msgstr "-foreground <kolor>\tUżywaj <kolor> dla normalnego tekstu (również: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
 msgstr "-font <font>\t\tUżywaj <font> dla normalnego tekstu (również: -fn)"
@@ -3024,19 +3041,16 @@ msgid "-italicfont <font>\tUse <font> fo
 msgstr "-italicfont <font>\tUżywaj <font> dla pochyłego"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr ""
-"-geometry <geom>\tUżywaj <geom> dla początkowych rozmiarów (również: -geom)"
+msgstr "-geometry <geom>\tUżywaj <geom> dla początkowych rozmiarów (również: -geom)"
 
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
 msgstr "-borderwidth <szer>\tUżyj ramki o grubości <szer> (również: -bw)"
 
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
-msgstr ""
-"-scrollbarwidth <szer>  Używaj przewijacza o szerokości <szer> (również: -sw)"
+msgstr "-scrollbarwidth <szer>  Używaj przewijacza o szerokości <szer> (również: -sw)"
 
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr ""
-"-menuheight <height>\tStosuj belkę menu o wysokości <height> (również: -mh)"
+msgstr "-menuheight <height>\tStosuj belkę menu o wysokości <height> (również: -mh)"
 
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tStosuj negatyw kolorów (również: -rv)"
@@ -3225,8 +3239,7 @@ msgstr "E302: Nie mogłem zmienić nazwy pliku wymiany"
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr ""
-"E303: Nie mogę otworzyć pliku wymiany dla \"%s\"; odtworzenie niemożliwe"
+msgstr "E303: Nie mogę otworzyć pliku wymiany dla \"%s\"; odtworzenie niemożliwe"
 
 msgid "E304: ml_upd_block0(): Didn't get block 0??"
 msgstr "E304: ml_upd_block(): Nie otrzymałem bloku 0??"
@@ -3321,16 +3334,14 @@ msgstr "???KONIEC"
 msgid "E311: Recovery Interrupted"
 msgstr "E311: Przerwanie odtwarzania"
 
-msgid ""
-"E312: Errors detected while recovering; look for lines starting with ???"
+msgid "E312: Errors detected while recovering; look for lines starting with ???"
 msgstr "E312: Wykryto błędy podczas odtwarzania; od których wierszy zacząć ???"
 
 msgid "See \":help E312\" for more information."
 msgstr "Zobacz \":help E312\" dla dalszych informacji."
 
 msgid "Recovery completed. You should check if everything is OK."
-msgstr ""
-"Odtwarzanie zakończono. Powinieneś sprawdzić czy wszystko jest w porządku."
+msgstr "Odtwarzanie zakończono. Powinieneś sprawdzić czy wszystko jest w porządku."
 
 msgid ""
 "\n"
@@ -4217,9 +4228,6 @@ msgstr "ANCHOR_BUF_SIZE zbyt niskie."
 msgid "I/O ERROR"
 msgstr "BŁĄD I/O"
 
-msgid "...(truncated)"
-msgstr "...(obcięty)"
-
 msgid "Message"
 msgstr "Wiadomość"
 
@@ -4247,8 +4255,7 @@ msgstr "Wydrukowano '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-msgstr ""
-"E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
+msgstr "E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
 
 #, c-format
 msgid "E245: Illegal char '%c' in font name \"%s\""
@@ -4661,6 +4668,16 @@ msgstr "E388: Nie znalazłem definicji"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Nie znalazłem wzorca"
 
+#, c-format
+msgid ""
+"\n"
+"# Last %sSearch Pattern:\n"
+"~"
+msgstr ""
+"\n"
+"# Ostatni %sWyszukiwany wzorzec:\n"
+"~"
+
 msgid "E759: Format error in spell file"
 msgstr "E759: Nieprawidłowy format pliku sprawdzania pisowni"
 
@@ -4689,8 +4706,7 @@ msgstr "E756: Sprawdzanie pisowni nie jest włączone"
 
 #, c-format
 msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr ""
-"Ostrzeżenie: Nie mogę znaleźć listy słów \"%s.%s.spl\" lub \"%s.ascii.spl\""
+msgstr "Ostrzeżenie: Nie mogę znaleźć listy słów \"%s.%s.spl\" lub \"%s.ascii.spl\""
 
 #, c-format
 msgid "Reading spell file \"%s\""
@@ -5384,6 +5400,13 @@ msgstr "Nie ma zmian do cofnięcia"
 msgid "number changes  time"
 msgstr "liczba zmiany czas"
 
+#, c-format
+msgid "%ld seconds ago"
+msgstr "%ld sekund temu"
+
+msgid "E790: undojoin is not allowed after undo"
+msgstr "E790: undojoin nie jest dozwolone po undo"
+
 msgid "E439: undo list corrupt"
 msgstr "E439: uszkodzona lista cofania"
 
@@ -5690,6 +5713,9 @@ msgstr "OSTRZEŻENIE: wykryto Windows 95/98/ME"
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "wprowadź :help windows95<Enter>   dla informacji to tym  "
 
+msgid "Already only one window"
+msgstr "Już jest tylko jeden widok"
+
 msgid "E441: There is no preview window"
 msgstr "E441: Nie ma okna podglądu"
 
@@ -5702,9 +5728,6 @@ msgstr "E443: Nie mogę przekręcić, gdy inne okno jest rozdzielone"
 msgid "E444: Cannot close last window"
 msgstr "E444: Nie mogę zamknąć ostatniego okna"
 
-msgid "Already only one window"
-msgstr "Już jest tylko jeden widok"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: Inne okno zawiera zmiany"
 
@@ -5720,8 +5743,7 @@ msgid "E370: Could not load library %s"
 msgstr "E370: Nie mogłem załadować biblioteki %s"
 
 msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-msgstr ""
-"Przykro mi, ta komenda jest wyłączona: nie mogłem załadować biblioteki Perla."
+msgstr "Przykro mi, ta komenda jest wyłączona: nie mogłem załadować biblioteki Perla."
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr "E299: wyliczenie Perla zabronione w piaskownicy bez modułu Safe"
@@ -5771,8 +5793,7 @@ msgid "E10: \\ should be followed by /, 
 msgstr "E10: po \\ powinno być /, ? lub &"
 
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr ""
-"E11: Niedozwolone w oknie wiersza poleceń; <CR> wykonuje, CTRL-C opuszcza"
+msgstr "E11: Niedozwolone w oknie wiersza poleceń; <CR> wykonuje, CTRL-C opuszcza"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
 msgstr ""
@@ -6095,3 +6116,4 @@ msgstr "szukanie dobiło GÓRY; kontynuacja od KOŃCA"
 
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "szukanie dobiło KOŃCA; kontynuacja od GÓRY"
+
--- a/src/tag.c
+++ b/src/tag.c
@@ -218,7 +218,8 @@ do_tag(tag, type, count, forceit, verbos
 	    use_tagstack = TRUE;
 
 	/* new pattern, add to the tag stack */
-	if (*tag && (type == DT_TAG || type == DT_SELECT || type == DT_JUMP
+	if (*tag != NUL
+		&& (type == DT_TAG || type == DT_SELECT || type == DT_JUMP
 #ifdef FEAT_QUICKFIX
 		    || type == DT_LTAG
 #endif
@@ -356,14 +357,15 @@ do_tag(tag, type, count, forceit, verbos
 		cs_free_tags();
 #endif
 		num_matches = 0;
+		tag_freematch();
 		goto end_do_tag;
 	    }
 
 	    if (type == DT_TAG
 #if defined(FEAT_QUICKFIX)
-		|| type == DT_LTAG
+		    || type == DT_LTAG
 #endif
-		)
+	       )
 	    {
 #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
 		if (g_do_tagpreview)