changeset 819:23f82b5d2814 v7.0c10

updated for version 7.0c10
author vimboss
date Wed, 05 Apr 2006 20:41:53 +0000
parents 1f929f3ca806
children 57c7403f6599
files Filelist runtime/KVim.desktop runtime/autoload/gzip.vim runtime/autoload/netrw.vim runtime/autoload/phpcomplete.vim runtime/autoload/sqlcomplete.vim runtime/autoload/tar.vim runtime/autoload/vimball.vim runtime/autoload/xmlcomplete.vim runtime/autoload/zip.vim runtime/doc/autocmd.txt runtime/doc/diff.txt runtime/doc/editing.txt runtime/doc/eval.txt runtime/doc/gui.txt runtime/doc/hangulin.txt runtime/doc/help.txt runtime/doc/howto.txt runtime/doc/insert.txt runtime/doc/mbyte.txt runtime/doc/options.txt runtime/doc/os_dos.txt runtime/doc/os_win32.txt runtime/doc/pattern.txt runtime/doc/pi_paren.txt runtime/doc/pi_tar.txt runtime/doc/pi_zip.txt runtime/doc/spell.txt runtime/doc/sql.txt runtime/doc/starting.txt runtime/doc/syntax.txt runtime/doc/tabpage.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_05.txt runtime/doc/usr_24.txt runtime/doc/usr_31.txt runtime/doc/usr_toc.txt runtime/doc/version7.txt runtime/doc/vimball.txt runtime/doc/windows.txt runtime/filetype.vim runtime/ftplugin/fortran.vim runtime/indent/fortran.vim runtime/indent/python.vim runtime/lang/menu_de_de.latin1.vim runtime/lang/menu_it_it.latin1.vim runtime/menu.vim runtime/mswin.vim runtime/plugin/matchparen.vim runtime/plugin/vimballPlugin.vim runtime/syntax/c.vim runtime/syntax/desc.vim runtime/syntax/fortran.vim runtime/syntax/rhelp.vim runtime/syntax/vim.vim runtime/tutor/tutor.pl runtime/tutor/tutor.pl.cp1250 runtime/tutor/tutor.pl.utf-8 src/Make_bc5.mak src/Make_vms.mms src/Makefile src/auto/configure src/buffer.c src/config.h.in src/configure.in src/diff.c src/doc-txt.icns src/edit.c src/eval.c src/ex_cmds.c src/ex_cmds.h src/ex_cmds2.c src/ex_docmd.c src/ex_getln.c src/feature.h src/fileio.c src/getchar.c src/globals.h src/gui.c src/gui.h src/gui_gtk_f.h src/gui_gtk_vms.h src/gui_mac.icns src/gui_motif.c src/gui_w32.c src/gui_xmebw.c src/hardcopy.c src/if_xcmdsrv.c src/infplist.xml src/installman.sh src/installml.sh src/main.aap src/main.c src/misc1.c src/normal.c src/option.c src/os_mac_rsrc/app.icns src/os_mac_rsrc/doc-txt.icns src/os_mac_rsrc/doc.icns src/os_unix.h src/os_vms_conf.h src/os_win32.c src/po/Makefile src/po/de.po src/po/it.po src/po/pl.UTF-8.po src/po/pl.cp1250.po src/po/pl.po src/proto/ex_getln.pro src/proto/gui_motif.pro src/proto/misc1.pro src/proto/option.pro src/proto/os_win32.pro src/proto/syntax.pro src/screen.c src/search.c src/spell.c src/structs.h src/syntax.c src/testdir/test58.in src/testdir/test58.ok src/testdir/test59.in src/testdir/test59.ok src/version.h src/vim.h src/window.c src/xxd/xxd.c
diffstat 128 files changed, 11984 insertions(+), 3134 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -361,8 +361,7 @@ SRC_MAC =	\
 		src/INSTALLmac.txt \
 		src/dehqx.py \
 		src/gui_mac.c \
-		src/gui_mac.icns \
-		src/doc-txt.icns \
+		src/os_mac_rsrc/*.icns \
 		src/os_mac.h \
 		src/os_mac.rsr.hqx \
 		src/os_mac_conv.c \
@@ -522,7 +521,6 @@ RT_SCRIPTS =	\
 # Unix runtime
 RT_UNIX =	\
 		README_unix.txt \
-		runtime/KVim.desktop \
 		runtime/hi16-action-make.png \
 		runtime/hi22-action-make.png \
 		runtime/vim16x16.png \
deleted file mode 100644
--- a/runtime/KVim.desktop
+++ /dev/null
@@ -1,44 +0,0 @@
-# KDE Config File
-[Desktop Entry]
-Type=Application
-Exec=kvim -f %F
-Icon=kvim
-MiniIcon=kvim
-DocPath=kvim/index.html
-Comment=
-Comment[xx]=xx
-Terminal=0
-Name=KVim
-Name[eo]=VIM-fasado
-Name[sv]=Kvim
-Name[xx]=xx
-Comment=Text Editor
-Comment[ar]=محرر نصوص
-Comment[bg]=Текст Редактор
-Comment[de]=Texteditor
-Comment[el]=Διορθωτής Κειμένου
-Comment[eo]=Tekstredaktilo
-Comment[et]=Tekstiredaktor
-Comment[eu]=Testu Editorea
-Comment[fi]=Tekstieditori
-Comment[he]=עורך טקסט
-Comment[is]=Textaritill
-Comment[ja]=テキストエディタ
-Comment[lt]=Teksto redaktorius
-Comment[mt]=Editur tat-test
-Comment[pt_BR]=Editor de Texto
-Comment[ro]=Editor de text
-Comment[ru]=редактор
-Comment[sk]=Textový editor
-Comment[sl]=Urejevalnik besedil
-Comment[ta]=¯¨Ã ¦¾¡ÌôÀ¡Ç÷
-Comment[tr]=Metin Düzenleyici
-Comment[uk]=Редактор текстів
-Comment[vi]=Trình soạn văn bản
-Comment[xx]=xx
-Comment[zh_CN]=文本编辑器
-Comment[zh_TW]=文字編輯器
-MimeType=application/mathml+xml;application/xhtml+xml;application/x-perl;application/x-python;application/x-shellscript;audio/x-mpegurl;audio/x-scpls;image/svg+xml;message/news;message/rfc822;text/calendar;text/css;text/english;text/html;text/mrml;text/plain;text/rdf;text/rss;text/rtf;text/sgml;text/vnd.wap.wml;text/x-adasrc;text/x-bibtex;text/x-chdr;text/x-c++hdr;text/x-csrc;text/x-c++src;text/x-csv;text/x-diff;text/x-java;text/x-katefilelist;text/x-latex;text/x-log;text/x-lyx;text/x-makefile;text/xmcd;text/xml;text/x-moc;text/x-mswinurl;text/x-objcsrc;text/x-pascal;text/x-perl;text/x-python;text/x-tcl;text/x-tex;text/x-vcalendar;text/x-vcard;text/x-xslfo;text/x-xslt
-X-KDE-StartupNotify=true
-X-KDE-AuthorizeAction=shell access
-
--- a/runtime/autoload/gzip.vim
+++ b/runtime/autoload/gzip.vim
@@ -1,6 +1,6 @@
 " Vim autoload file for editing compressed files.
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Jul 26
+" Last Change: 2006 Mar 31
 
 " These functions are used by the gzip plugin.
 
@@ -84,9 +84,14 @@ fun gzip#read(cmd)
     '[,']d _
   endif
   " read in the uncompressed lines "'[-1r tmp"
+  " Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options.
   setlocal nobin
   if exists(":lockmarks")
-    execute "silent lockmarks " . l . "r " . tmp
+    if empty
+      execute "silent lockmarks " . l . "r ++edit " . tmp
+    else
+      execute "silent lockmarks " . l . "r " . tmp
+    endif
   else
     execute "silent " . l . "r " . tmp
   endif
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
 "            AUTOLOAD PORTION
-" Date:		Mar 22, 2006
-" Version:	83
+" Date:		Mar 31, 2006
+" Version:	84
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -23,7 +23,7 @@
 if &cp || exists("g:loaded_netrw")
   finish
 endif
-let g:loaded_netrw = "v83"
+let g:loaded_netrw = "v84"
 if v:version < 700
  echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
  finish
@@ -404,8 +404,9 @@ fun! netrw#NetRead(mode,...)
    call s:NetMethod(choice)
 
    " Check if NetBrowse() should be handling this request
-"   call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
+"   call Decho("checking if NetBrowse() should handle choice<".choice."> with netrw_list_cmd<".g:netrw_list_cmd.">")
    if choice =~ "^.*[\/]$"
+"    call Decho("yes, choice matches '^.*[\/]$'")
     keepjumps call s:NetBrowse(choice)
 "    call Dret("NetRead")
     return
@@ -457,6 +458,7 @@ fun! netrw#NetRead(mode,...)
    elseif b:netrw_method  == 2		" read with ftp + <.netrc>
 "     call Decho("read via ftp+.netrc (method #2)")
      let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+"     call Decho("netrw_fname<".netrw_fname.">")
      new
      setlocal ff=unix
      exe "put ='".g:netrw_ftpmode."'"
@@ -780,7 +782,7 @@ fun! s:NetGetFile(readcmd, tfile, method
 "   call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
    call NetReadFixup(a:method, line1, line2)
 " else " Decho
-"  call Decho("NetReadFixup() not called, doesn't exist")
+"  call Decho("NetReadFixup() not called, doesn't exist  (line1=".line1." line2=".line2.")")
   endif
 
   " update the Buffers menu
@@ -1239,7 +1241,6 @@ fun! s:NetBrowse(dirname)
    exe "silent doau BufReadPre ".fname
    silent call netrw#NetRead(2,method."://".user.machine."/".path)
    exe "silent doau BufReadPost ".fname
-   keepjumps 1d
 
    " save certain window-oriented variables into buffer-oriented variables
    call s:SetBufWinVars()
@@ -1352,7 +1353,7 @@ fun! s:NetBrowse(dirname)
    endif
    let w:netrw_bannercnt= w:netrw_bannercnt + 1
   endif
-  keepjumps put ='\"   Quick Help:    ?:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
+  keepjumps put ='\"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
   keepjumps put ='\" ==========================================================================='
 
   " remote read the requested directory listing
@@ -2943,7 +2944,7 @@ fun! netrw#DirBrowse(dirname)
    endif
    let w:netrw_bannercnt= w:netrw_bannercnt + 1
   endif
-  keepjumps put ='\"   Quick Help:    ?:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
+  keepjumps put ='\"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
   keepjumps put ='\" ============================================================================'
   let w:netrw_bannercnt= w:netrw_bannercnt + 2
 
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	PHP
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Mar ---
+" Last Change:	2006 Apr 05
 "
 "   TODO:
 "   - Class aware completion:
@@ -47,400 +47,594 @@ function! phpcomplete#CompletePHP(findst
 			" We can be also inside of phpString with HTML tags. Deal with
 			" it later (time, not lines).
 		endif
-	else
-		" If exists b:php_menu it means completion was already constructed we
-		" don't need to do anything more
-		if exists("b:php_menu")
-			return b:php_menu
-		endif
-		" Initialize base return lists
-		let res = []
-		" a:base is very short - we need context
-		if exists("b:compl_context")
-			let context = b:compl_context
-			unlet! b:compl_context
-		endif
+
+	endif
+	" If exists b:php_menu it means completion was already constructed we
+	" don't need to do anything more
+	if exists("b:php_menu")
+		return b:php_menu
+	endif
+	" Initialize base return lists
+	let res = []
+	let res2 = []
+	" a:base is very short - we need context
+	if exists("b:compl_context")
+		let context = b:compl_context
+		unlet! b:compl_context
+	endif
+
+	if !exists('g:php_builtin_functions')
+		call phpcomplete#LoadData()
+	endif
+
+	let scontext = substitute(context, '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '')
 
-		if !exists('g:php_builtin_functions')
-			call phpcomplete#LoadData()
+	if scontext =~ '\(=\s*new\|extends\)\s\+$'
+		" Complete class name
+		" Internal solution for finding classes in current file.
+		let file = getline(1, '$')
+		call filter(file, 
+				\ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'class\s\+')
+		let int_classes = {}
+		for i in int_values
+			let c_name = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			if c_name != ''
+				let int_classes[c_name] = ''
+			endif
+		endfor
+
+		" Prepare list of functions from tags file
+		let ext_classes = {}
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				" [:space:] thing: we don't have to be so strict when
+				" dealing with tags files - entries there were already
+				" checked by ctags.
+				let item = matchstr(field['text'], '^[^[:space:]]\+')
+				let ext_classes[item] = ''
+			endfor
 		endif
 
-		let scontext = substitute(context, 
-				\ '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '')
+		call extend(int_classes, ext_classes)
+
+		for m in sort(keys(int_classes))
+			if m =~ '^'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let int_list = res
+
+		let final_menu = []
+		for i in int_list
+			let final_menu += [{'word':i, 'kind':'c'}]
+		endfor
+
+		return final_menu
 
-		if scontext =~ '\(=\s*new\|extends\)\s\+$'
-			" Complete class name
-			" Internal solution for finding classes in current file.
-			let file = getline(1, '$')
-			call filter(file, 
-					\ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let jfile = join(file, ' ')
-			let int_values = split(jfile, 'class\s\+')
-			let int_classes = {}
-			for i in int_values
-				let c_name = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
-				if c_name != ''
-					let int_classes[c_name] = ''
-				endif
-			endfor
+	elseif scontext =~ '\(->\|::\)$'
+		" Complete user functions and variables
+		" Internal solution for current file.
+		" That seems as unnecessary repeating of functions but there are
+		" few not so subtle differences as not appending of $ and addition
+		" of 'kind' tag (not necessary in regular completion)
+
+		if scontext =~ '->$' && scontext !~ '\$this->$'
 
-			" Prepare list of functions from tags file
-			let ext_classes = {}
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			if fnames != ''
-				exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					" [:space:] thing: we don't have to be so strict when
-					" dealing with tags files - entries there were already
-					" checked by ctags.
-					let item = matchstr(field['text'], '^[^[:space:]]\+')
-					let ext_classes[item] = ''
-				endfor
+			" Get name of the class
+			let classname = phpcomplete#GetClassName(scontext)
+
+			" Get location of class definition, we have to iterate through all
+			" tags files separately because we need relative path from current
+			" file to the exact file (tags file can be in different dir)
+			if classname != ''
+				let classlocation = phpcomplete#GetClassLocation(classname)
+			else
+				let classlocation = ''
 			endif
 
-			call extend(int_classes, ext_classes)
-
-			for m in sort(keys(int_classes))
-				if m =~ '^'.a:base
-					call add(res, m)
-				endif
-			endfor
-
-			let int_list = res
-
-			let final_menu = []
-			for i in int_list
-				let final_menu += [{'word':i, 'kind':'c'}]
-			endfor
-
-			return final_menu
+			if filereadable(classlocation)
+				let classfile = readfile(classlocation)
+				let classcontent = ''
+				let classcontent .= "\n".phpcomplete#GetClassContents(classfile, classname)
+				let sccontent = split(classcontent, "\n")
 
-		elseif scontext =~ '\(->\|::\)$'
-			" Complete user functions and variables
-			" Internal solution for current file.
-			" That seems as unnecessary repeating of functions but there are
-			" few not so subtle differences as not appending of $ and addition
-			" of 'kind' tag (not necessary in regular completion)
-			if a:base =~ '^\$'
-				let adddollar = '$'
-			else
-				let adddollar = ''
-			endif
-			let file = getline(1, '$')
-			let jfile = join(file, ' ')
-			let sfile = split(jfile, '\$')
-			let int_vars = {}
-			for i in sfile
-				if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
-					let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
-				else
-					let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
-				endif
-				if val !~ ''
-					let int_vars[adddollar.val] = ''
-				endif
-			endfor
-			
-			" ctags has good support for PHP, use tags file for external
-			" variables
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let ext_vars = {}
-			if fnames != ''
-				let sbase = substitute(a:base, '^\$', '', '')
-				exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					let item = matchstr(field['text'], '^[^[:space:]]\+')
-					" Add -> if it is possible object declaration
-					let classname = ''
-					if field['text'] =~ item.'\s*=\s*new\s\+'
-						let item = item.'->'
-						let classname = matchstr(field['text'], 
-								\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+				" YES, YES, YES! - we have whole content including extends!
+				" Now we need to get two elements: public functions and public
+				" vars
+				" NO, NO, NO! - third separate filtering looking for content
+				" :(, but all of them have differences. To squeeze them into
+				" one implementation would require many additional arguments
+				" and ifs. No good solution
+				" Functions declared with public keyword or without any
+				" keyword are public
+				let functions = filter(deepcopy(sccontent), 
+						\ 'v:val =~ "^\\s*\\(public\\s\\*\\)\\?function"')
+				let jfuncs = join(functions, ' ')
+				let sfuncs = split(jfuncs, 'function\s\+')
+				let c_functions = {}
+				for i in sfuncs
+					let f_name = matchstr(i, 
+							\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+					let f_args = matchstr(i, 
+							\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
+					if f_name != ''
+						let c_functions[f_name.'('] = f_args
+					endif
+				endfor
+				" Variables declared with var or with public keyword are
+				" public
+				let variables = filter(deepcopy(sccontent), 
+						\ 'v:val =~ "^\\s*\\(public\\|var\\)\\s\\+\\$"')
+				let jvars = join(variables, ' ')
+				let svars = split(jvars, '\$')
+				let c_variables = {}
+				for i in svars
+					let c_var = matchstr(i, 
+							\ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+					if c_var != ''
+						let c_variables[c_var] = ''
 					endif
-					let ext_vars[adddollar.item] = classname
+				endfor
+
+				let all_values = {}
+				call extend(all_values, c_functions)
+				call extend(all_values, c_variables)
+				call extend(all_values, g:php_builtin_object_functions)
+
+				for m in sort(keys(all_values))
+					if m =~ '^'.a:base && m !~ '::'
+						call add(res, m)
+					elseif m =~ '::'.a:base
+						call add(res2, m)
+					endif
 				endfor
+
+				let start_list = res + res2
+
+				let final_list = []
+				for i in start_list
+					if has_key(c_variables, i)
+						let class = ' '
+						if all_values[i] != ''
+							let class = i.' class '
+						endif
+						let final_list += 
+								\ [{'word':i, 
+								\   'info':class.all_values[i], 
+								\   'kind':'v'}]
+					else
+						let final_list += 
+								\ [{'word':substitute(i, '.*::', '', ''), 
+								\   'info':i.all_values[i].')',
+								\   'kind':'f'}]
+					endif
+				endfor
+
+				return final_list
+
 			endif
 
-			" Now we have all variables in int_vars dictionary
-			call extend(int_vars, ext_vars)
-
-			" Internal solution for finding functions in current file.
-			let file = getline(1, '$')
-			call filter(file, 
-					\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let jfile = join(file, ' ')
-			let int_values = split(jfile, 'function\s\+')
-			let int_functions = {}
-			for i in int_values
-				let f_name = matchstr(i, 
-						\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
-				let f_args = matchstr(i, 
-						\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
-				let int_functions[f_name.'('] = f_args
-			endfor
-
-			" Prepare list of functions from tags file
-			let ext_functions = {}
-			if fnames != ''
-				exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					" File name
-					let item = matchstr(field['text'], '^[^[:space:]]\+')
-					let fname = matchstr(field['text'], '\t\zs\f\+\ze')
-					let prototype = matchstr(field['text'], 
-							\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
-					let ext_functions[item.'('] = prototype.') - '.fname
-				endfor
-			endif
-
-			let all_values = {}
-			call extend(all_values, int_functions)
-			call extend(all_values, ext_functions)
-			call extend(all_values, int_vars) " external variables are already in
-			call extend(all_values, g:php_builtin_object_functions)
-
-			for m in sort(keys(all_values))
-				if m =~ '\(^\|::\)'.a:base
-					call add(res, m)
-				endif
-			endfor
-
-			let start_list = res
-
-			let final_list = []
-			for i in start_list
-				if has_key(int_vars, i)
-					let class = ' '
-					if all_values[i] != ''
-						let class = i.' class '
-					endif
-					let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}]
-				else
-					let final_list += 
-							\ [{'word':substitute(i, '.*::', '', ''), 
-							\   'info':i.all_values[i],
-							\   'kind':'f'}]
-				endif
-			endfor
-
-			return final_list
 		endif
 
 		if a:base =~ '^\$'
-			" Complete variables
-			" Built-in variables {{{
-			let g:php_builtin_vars = {'$GLOBALS':'',
-									\ '$_SERVER':'',
-									\ '$_GET':'',
-									\ '$_POST':'',
-									\ '$_COOKIE':'',
-									\ '$_FILES':'',
-									\ '$_ENV':'',
-									\ '$_REQUEST':'',
-									\ '$_SESSION':'',
-									\ '$HTTP_SERVER_VARS':'',
-									\ '$HTTP_ENV_VARS':'',
-									\ '$HTTP_COOKIE_VARS':'',
-									\ '$HTTP_GET_VARS':'',
-									\ '$HTTP_POST_VARS':'',
-									\ '$HTTP_POST_FILES':'',
-									\ '$HTTP_SESSION_VARS':'',
-									\ '$php_errormsg':'',
-									\ '$this':''
-									\ }
-			" }}}
-
-			" Internal solution for current file.
-			let file = getline(1, '$')
-			let jfile = join(file, ' ')
-			let int_vals = split(jfile, '\ze\$')
-			let int_vars = {}
-			for i in int_vals
-				if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
-					let val = matchstr(i, 
-							\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
-				else
-					let val = matchstr(i, 
-							\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			let adddollar = '$'
+		else
+			let adddollar = ''
+		endif
+		let file = getline(1, '$')
+		let jfile = join(file, ' ')
+		let sfile = split(jfile, '\$')
+		let int_vars = {}
+		for i in sfile
+			if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
+				let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
+			else
+				let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			endif
+			if val !~ ''
+				let int_vars[adddollar.val] = ''
+			endif
+		endfor
+		
+		" ctags has good support for PHP, use tags file for external
+		" variables
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let ext_vars = {}
+		if fnames != ''
+			let sbase = substitute(a:base, '^\$', '', '')
+			exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				let item = matchstr(field['text'], '^[^[:space:]]\+')
+				" Add -> if it is possible object declaration
+				let classname = ''
+				if field['text'] =~ item.'\s*=\s*new\s\+'
+					let item = item.'->'
+					let classname = matchstr(field['text'], 
+							\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
 				endif
-				if val != ''
-					let int_vars[val] = ''
-				endif
+				let ext_vars[adddollar.item] = classname
 			endfor
+		endif
 
-			call extend(int_vars,g:php_builtin_vars)
-			
-			" ctags has good support for PHP, use tags file for external
-			" variables
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let ext_vars = {}
-			if fnames != ''
-				let sbase = substitute(a:base, '^\$', '', '')
-				exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
-					let m_menu = ''
-					" Add -> if it is possible object declaration
-					" How to detect if previous line is help line?
-					if field['text'] =~ item.'\s*=\s*new\s\+'
-						let item = item.'->'
-						let m_menu = matchstr(field['text'], 
-								\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
-					endif
-					let ext_vars[item] = m_menu
-				endfor
-			endif
+		" Now we have all variables in int_vars dictionary
+		call extend(int_vars, ext_vars)
 
-			call extend(int_vars, ext_vars)
-			let g:a0 = keys(int_vars)
+		" Internal solution for finding functions in current file.
+		let file = getline(1, '$')
+		call filter(file, 
+				\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'function\s\+')
+		let int_functions = {}
+		for i in int_values
+			let f_name = matchstr(i, 
+					\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+			let f_args = matchstr(i, 
+					\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
+			let int_functions[f_name.'('] = f_args.')'
+		endfor
 
-			for m in sort(keys(int_vars))
-				if m =~ '^\'.a:base
-					call add(res, m)
-				endif
+		" Prepare list of functions from tags file
+		let ext_functions = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				" File name
+				let item = matchstr(field['text'], '^[^[:space:]]\+')
+				let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+				let prototype = matchstr(field['text'], 
+						\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+				let ext_functions[item.'('] = prototype.') - '.fname
 			endfor
-
-			let int_list = res
+		endif
 
-			let int_dict = []
-			for i in int_list
-				if int_vars[i] != ''
-					let class = ' '
-					if int_vars[i] != ''
-						let class = i.' class '
-					endif
-					let int_dict += [{'word':i, 'info':class.int_vars[i], 'kind':'v'}]
-				else
-					let int_dict += [{'word':i, 'kind':'v'}]
-				endif
-			endfor
-
-			return int_dict
-
-		else
-			" Complete everything else - 
-			"  + functions,  DONE
-			"  + keywords of language DONE
-			"  + defines (constant definitions), DONE
-			"  + extend keywords for predefined constants, DONE
-			"  + classes (after new), DONE
-			"  + limit choice after -> and :: to funcs and vars DONE
+		let all_values = {}
+		call extend(all_values, int_functions)
+		call extend(all_values, ext_functions)
+		call extend(all_values, int_vars) " external variables are already in
+		call extend(all_values, g:php_builtin_object_functions)
 
-			" Internal solution for finding functions in current file.
-			let file = getline(1, '$')
-			call filter(file, 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let jfile = join(file, ' ')
-			let int_values = split(jfile, 'function\s\+')
-			let int_functions = {}
-			for i in int_values
-				let f_name = matchstr(i, 
-						\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
-				let f_args = matchstr(i, 
-						\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\s*\zs.\{-}\ze\s*)\_s*{')
-				let int_functions[f_name.'('] = f_args.')'
-			endfor
+		for m in sort(keys(all_values))
+			if m =~ '\(^\|::\)'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let start_list = res
 
-			" Prepare list of functions from tags file
-			let ext_functions = {}
-			if fnames != ''
-				exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					" File name
-					let item = matchstr(field['text'], '^[^[:space:]]\+')
-					let fname = matchstr(field['text'], '\t\zs\f\+\ze')
-					let prototype = matchstr(field['text'], 
-							\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
-					let ext_functions[item.'('] = prototype.') - '.fname
-				endfor
+		let final_list = []
+		for i in start_list
+			if has_key(int_vars, i)
+				let class = ' '
+				if all_values[i] != ''
+					let class = i.' class '
+				endif
+				let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}]
+			else
+				let final_list += 
+						\ [{'word':substitute(i, '.*::', '', ''), 
+						\   'info':i.all_values[i],
+						\   'kind':'f'}]
 			endif
+		endfor
 
-			" All functions
-			call extend(int_functions, ext_functions)
-			call extend(int_functions, g:php_builtin_functions)
-
-			" Internal solution for finding constants in current file
-			let file = getline(1, '$')
-			call filter(file, 'v:val =~ "define\\s*("')
-			let jfile = join(file, ' ')
-			let int_values = split(jfile, 'define\s*(\s*')
-			let int_constants = {}
-			for i in int_values
-				let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1')
-				" let c_value = matchstr(i, 
-				" \ '\(["'']\)[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\1\s*,\s*\zs.\{-}\ze\s*)')
-				if c_name != ''
-					let int_constants[c_name] = '' " c_value
-				endif
-			endfor
+		return final_list
+	endif
 
-			" Prepare list of constants from tags file
-			let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
-			let ext_constants = {}
-			if fnames != ''
-				exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
-				let qflist = getqflist()
-				for field in qflist
-					let item = matchstr(field['text'], '^[^[:space:]]\+')
-					let ext_constants[item] = ''
-				endfor
-			endif
-
-			" All constants
-			call extend(int_constants, ext_constants)
-			" Treat keywords as constants
-
-			let all_values = {}
-
-			" One big dictionary of functions
-			call extend(all_values, int_functions)
+	if a:base =~ '^\$'
+		" Complete variables
+		" Built-in variables {{{
+		let g:php_builtin_vars = {'$GLOBALS':'',
+								\ '$_SERVER':'',
+								\ '$_GET':'',
+								\ '$_POST':'',
+								\ '$_COOKIE':'',
+								\ '$_FILES':'',
+								\ '$_ENV':'',
+								\ '$_REQUEST':'',
+								\ '$_SESSION':'',
+								\ '$HTTP_SERVER_VARS':'',
+								\ '$HTTP_ENV_VARS':'',
+								\ '$HTTP_COOKIE_VARS':'',
+								\ '$HTTP_GET_VARS':'',
+								\ '$HTTP_POST_VARS':'',
+								\ '$HTTP_POST_FILES':'',
+								\ '$HTTP_SESSION_VARS':'',
+								\ '$php_errormsg':'',
+								\ '$this':''
+								\ }
+		" }}}
 
-			" Add constants
-			call extend(all_values, int_constants)
-			" Add keywords
-			call extend(all_values, b:php_keywords)
-
-			for m in sort(keys(all_values))
-				if m =~ '^'.a:base
-					call add(res, m)
-				endif
-			endfor
-
-			let int_list = res
+		" Internal solution for current file.
+		let file = getline(1, '$')
+		let jfile = join(file, ' ')
+		let int_vals = split(jfile, '\ze\$')
+		let int_vars = {}
+		for i in int_vals
+			if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
+				let val = matchstr(i, 
+						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
+			else
+				let val = matchstr(i, 
+						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			endif
+			if val != ''
+				let int_vars[val] = ''
+			endif
+		endfor
 
-			let final_list = []
-			for i in int_list
-				if has_key(int_functions, i)
-					let final_list += 
-							\ [{'word':i, 
-							\   'info':i.int_functions[i],
-							\   'kind':'f'}]
-				elseif has_key(int_constants, i)
-					let final_list += [{'word':i, 'kind':'d'}]
-				else
-					let final_list += [{'word':i}]
+		call extend(int_vars,g:php_builtin_vars)
+		
+		" ctags has support for PHP, use tags file for external variables
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let ext_vars = {}
+		if fnames != ''
+			let sbase = substitute(a:base, '^\$', '', '')
+			exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
+				let m_menu = ''
+				" Add -> if it is possible object declaration
+				if field['text'] =~ item.'\s*=\s*new\s\+'
+					let item = item.'->'
+					let m_menu = matchstr(field['text'], 
+							\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
 				endif
+				let ext_vars[item] = m_menu
 			endfor
-
-			return final_list
-
 		endif
 
+		call extend(int_vars, ext_vars)
+		let g:a0 = keys(int_vars)
+
+		for m in sort(keys(int_vars))
+			if m =~ '^\'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let int_list = res
+
+		let int_dict = []
+		for i in int_list
+			if int_vars[i] != ''
+				let class = ' '
+				if int_vars[i] != ''
+					let class = i.' class '
+				endif
+				let int_dict += [{'word':i, 'info':class.int_vars[i], 'kind':'v'}]
+			else
+				let int_dict += [{'word':i, 'kind':'v'}]
+			endif
+		endfor
+
+		return int_dict
+
+	else
+		" Complete everything else - 
+		"  + functions,  DONE
+		"  + keywords of language DONE
+		"  + defines (constant definitions), DONE
+		"  + extend keywords for predefined constants, DONE
+		"  + classes (after new), DONE
+		"  + limit choice after -> and :: to funcs and vars DONE
+
+		" Internal solution for finding functions in current file.
+		let file = getline(1, '$')
+		call filter(file, 
+				\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'function\s\+')
+		let int_functions = {}
+		for i in int_values
+			let f_name = matchstr(i, 
+					\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+			let f_args = matchstr(i, 
+					\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\s*\zs.\{-}\ze\s*)\_s*{')
+			let int_functions[f_name.'('] = f_args.')'
+		endfor
+
+		" Prepare list of functions from tags file
+		let ext_functions = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				" File name
+				let item = matchstr(field['text'], '^[^[:space:]]\+')
+				let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+				let prototype = matchstr(field['text'], 
+						\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+				let ext_functions[item.'('] = prototype.') - '.fname
+			endfor
+		endif
+
+		" All functions
+		call extend(int_functions, ext_functions)
+		call extend(int_functions, g:php_builtin_functions)
+
+		" Internal solution for finding constants in current file
+		let file = getline(1, '$')
+		call filter(file, 'v:val =~ "define\\s*("')
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'define\s*(\s*')
+		let int_constants = {}
+		for i in int_values
+			let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1')
+			" let c_value = matchstr(i, 
+			" \ '\(["'']\)[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\1\s*,\s*\zs.\{-}\ze\s*)')
+			if c_name != ''
+				let int_constants[c_name] = '' " c_value
+			endif
+		endfor
+
+		" Prepare list of constants from tags file
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+		let ext_constants = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			for field in qflist
+				let item = matchstr(field['text'], '^[^[:space:]]\+')
+				let ext_constants[item] = ''
+			endfor
+		endif
+
+		" All constants
+		call extend(int_constants, ext_constants)
+		" Treat keywords as constants
+
+		let all_values = {}
+
+		" One big dictionary of functions
+		call extend(all_values, int_functions)
+
+		" Add constants
+		call extend(all_values, int_constants)
+		" Add keywords
+		call extend(all_values, g:php_keywords)
+
+		for m in sort(keys(all_values))
+			if m =~ '^'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let int_list = res
+
+		let final_list = []
+		for i in int_list
+			if has_key(int_functions, i)
+				let final_list += 
+						\ [{'word':i, 
+						\   'info':i.int_functions[i],
+						\   'kind':'f'}]
+			elseif has_key(int_constants, i)
+				let final_list += [{'word':i, 'kind':'d'}]
+			else
+				let final_list += [{'word':i}]
+			endif
+		endfor
+
+		return final_list
+
 	endif
+
 endfunction
 
+function! phpcomplete#GetClassName(scontext) " {{{
+	" Get class name
+	" Class name can be detected in few ways:
+	" @var $myVar class
+	" line above
+	" or line in tags file
+
+	let object = matchstr(a:scontext, '\zs[a-zA-Z_0-9\x7f-\xff]\+\ze->')
+	let i = 1
+	while i < line('.')
+		let line = getline(line('.')-i)
+		if line =~ '^\s*\*\/\?\s*$'
+			let i += 1
+			continue
+		else
+			if line =~ '@var\s\+\$'.object.'\s\+[a-zA-Z_0-9\x7f-\xff]\+'
+				let classname = matchstr(line, '@var\s\+\$'.object.'\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+')
+				return classname
+			else
+				break
+			endif
+		endif
+	endwhile
+
+	" OK, first way failed, now check tags file(s)
+	let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
+	exe 'silent! vimgrep /^'.object.'.*\$'.object.'.*=\s*new\s\+.*\tv\(\t\|$\)/j '.fnames
+	let qflist = getqflist()
+	if len(qflist) == 0
+		return []
+	endif
+	" In all properly managed projects it should be one item list, even if it
+	" *is* longer we cannot solve conflicts, assume it is first element
+	let classname = matchstr(qflist[0]['text'], '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+	return classname
+
+endfunction
+" }}}
+function! phpcomplete#GetClassLocation(classname) " {{{
+	" Get class location
+	for fname in tagfiles()
+		let fhead = fnamemodify(fname, ":h")
+		if fhead != ''
+			let psep = '/'
+			let fhead .= psep
+		endif
+		let fname = escape(fname, " \\")
+		exe 'silent! vimgrep /^'.a:classname.'.*\tc\(\t\|$\)/j '.fname
+		let qflist = getqflist()
+		" As in GetClassName we can manage only one element
+		let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
+		" And only one class location
+		if classlocation != ''
+			let pset = '/' " Note: slash is potential problem!
+			let classlocation = fhead.classlocation
+			return classlocation
+		endif
+	endfor
+
+endfunction
+" }}}
+
+function! phpcomplete#GetClassContents(file, name) " {{{
+	let cfile = join(a:file, "\n")
+	" We use new buffer and (later) normal! because 
+	" this is the most efficient way. The other way
+	" is to go through the looong string looking for
+	" matching {} 
+	below 1new
+	0put =cfile
+	call search('class\s\+'.a:name)
+	let cfline = line('.')
+	" Catch extends
+	if getline('.') =~ 'extends'
+		let extends_class = matchstr(getline('.'), 
+				\ 'class\s\+'.a:name.'\s\+extends\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+	else
+		let extends_class = ''
+	endif
+	normal! %
+	let classc = getline(cfline, ".")
+	let classcontent = join(classc, "\n")
+
+	bw! %
+	if extends_class != ''
+		let classlocation = phpcomplete#GetClassLocation(extends_class)
+		if filereadable(classlocation)
+			let classfile = readfile(classlocation)
+			let classcontent .= "\n".phpcomplete#GetClassContents(classfile, extends_class)
+		endif
+	endif
+
+	return classcontent
+endfunction
+" }}}
+
 function! phpcomplete#LoadData() " {{{
 " Keywords/reserved words, all other special things {{{
 " Later it is possible to add some help to values, or type of
 " defined variable
-let b:php_keywords = {
+let g:php_keywords = {
 \ 'PHP_SELF':'',
 \ 'argv':'',
 \ 'argc':'',
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -1,8 +1,8 @@
 " Vim completion script
 " Language:    SQL
 " Maintainer:  David Fishburn <fishburn@ianywhere.com>
-" Version:     1.0
-" Last Change: Tue Mar 28 2006 4:39:49 PM
+" Version:     2.0
+" Last Change: Mon Apr 03 2006 10:21:36 PM
 
 " Set completion with CTRL-X CTRL-O to autoloaded function.
 " This check is in place in case this script is
@@ -21,20 +21,20 @@ endif
 let g:loaded_sql_completion = 1
 
 " Maintains filename of dictionary
-let s:sql_file_table             = ""
-let s:sql_file_procedure         = ""
-let s:sql_file_view              = ""
+let s:sql_file_table        = ""
+let s:sql_file_procedure    = ""
+let s:sql_file_view         = ""
 
 " Define various arrays to be used for caching
-let s:tbl_name                   = []
-let s:tbl_alias                  = []
-let s:tbl_cols                   = []
-let s:syn_list                   = []
-let s:syn_value                  = []
+let s:tbl_name              = []
+let s:tbl_alias             = []
+let s:tbl_cols              = []
+let s:syn_list              = []
+let s:syn_value             = []
  
 " Used in conjunction with the syntaxcomplete plugin
-let s:save_inc = ""
-let s:save_exc = ""
+let s:save_inc              = ""
+let s:save_exc              = ""
 if exists('g:omni_syntax_group_include_sql')
     let s:save_inc = g:omni_syntax_group_include_sql
 endif
@@ -43,12 +43,23 @@ if exists('g:omni_syntax_group_exclude_s
 endif
  
 " Used with the column list
-let s:save_prev_table = ""
+let s:save_prev_table       = ""
 
 " Default the option to verify table alias
 if !exists('g:omni_sql_use_tbl_alias')
     let g:omni_sql_use_tbl_alias = 'a'
 endif
+" Default syntax items to precache
+if !exists('g:omni_sql_precache_syntax_groups')
+    let g:omni_sql_precache_syntax_groups = [
+                \ 'syntax',
+                \ 'sqlKeyword',
+                \ 'sqlFunction',
+                \ 'sqlOption',
+                \ 'sqlType',
+                \ 'sqlStatement'
+                \ ]
+endif
 
 " This function is used for the 'omnifunc' option.
 function! sqlcomplete#Complete(findstart, base)
@@ -60,6 +71,8 @@ function! sqlcomplete#Complete(findstart
         let compl_type = b:sql_compl_type
     endif
 
+    " First pass through this function determines how much of the line should
+    " be replaced by whatever is chosen from the completion list
     if a:findstart
         " Locate the start of the item, including "."
         let line = getline('.')
@@ -68,15 +81,16 @@ function! sqlcomplete#Complete(findstart
         while start > 0
             if line[start - 1] =~ '\w'
                 let start -= 1
-            elseif line[start - 1] =~ '\.' && compl_type =~ 'column\|table'
-                " If the completion type is table or column
-                " Then assume we are looking for column completion
-                " column_type can be either 'column' or 'column_csv'
-                if lastword == -1
+            elseif line[start - 1] =~ '\.' && compl_type =~ 'column'
+                " If the completion type is column then assume we are looking
+                " for column completion column_type can be either 
+                " 'column' or 'column_csv'
+                if lastword == -1 && compl_type == 'column'
+                    " Do not replace the table name prefix or alias
+                    " if completing only a single column name
                     let lastword = start
                 endif
                 let start -= 1
-                let b:sql_compl_type = 'column'
             else
                 break
             endif
@@ -92,8 +106,12 @@ function! sqlcomplete#Complete(findstart
         return lastword
     endif
 
+    " Second pass through this function will determine what data to put inside
+    " of the completion list
+    " s:prepended is set by the first pass
     let base = s:prepended . a:base
 
+    " Default the completion list to an empty list
     let compl_list = []
 
     " Default to table name completion
@@ -178,36 +196,8 @@ function! sqlcomplete#Complete(findstart
         let s:tbl_cols  = []
         let s:syn_list  = []
         let s:syn_value = []
-        return []
     else
-        " Default to empty or not found
-        let compl_list = []
-        " Check if we have already cached the syntax list
-        let list_idx = index(s:syn_list, compl_type, 0, &ignorecase)
-        if list_idx > -1
-            " Return previously cached value
-            let compl_list = s:syn_value[list_idx]
-        else
-            " Request the syntax list items from the 
-            " syntax completion plugin
-            if compl_type == 'syntax'
-                " Handle this special case.  This allows the user
-                " to indicate they want all the syntax items available,
-                " so do not specify a specific include list.
-                let g:omni_syntax_group_include_sql = ''
-            else
-                " The user has specified a specific syntax group
-                let g:omni_syntax_group_include_sql = compl_type
-            endif
-            let g:omni_syntax_group_exclude_sql = ''
-            let syn_value                       = OmniSyntaxList()
-            let g:omni_syntax_group_include_sql = s:save_inc
-            let g:omni_syntax_group_exclude_sql = s:save_exc
-            " Cache these values for later use
-            let s:syn_list  = add( s:syn_list,  compl_type )
-            let s:syn_value = add( s:syn_value, syn_value )
-            let compl_list  = syn_value
-        endif
+        let compl_list = s:SQLCGetSyntaxList(compl_type)
     endif
 
     if base != ''
@@ -217,6 +207,10 @@ function! sqlcomplete#Complete(findstart
         let compl_list = filter(copy(compl_list), expr)
     endif
 
+    if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
+        let &omnifunc = b:sql_compl_savefunc
+    endif
+
     return compl_list
 endfunc
 
@@ -232,6 +226,70 @@ function! s:SQLCErrorMsg(msg)
     echohl None
 endfunction
       
+function! sqlcomplete#PreCacheSyntax(...)
+    let syn_group_arr = []
+    if a:0 > 0 
+        let syn_group_arr = a:1
+    else
+        let syn_group_arr = g:omni_sql_precache_syntax_groups
+    endif
+    if !empty(syn_group_arr)
+        for group_name in syn_group_arr
+            call s:SQLCGetSyntaxList(group_name)
+        endfor
+    endif
+endfunction
+
+function! sqlcomplete#Map(type)
+    " Tell the SQL plugin what you want to complete
+    let b:sql_compl_type=a:type
+    " Record previous omnifunc, if the SQL completion
+    " is being used in conjunction with other filetype
+    " completion plugins
+    if &omnifunc != "" && &omnifunc != 'sqlcomplete#Complete'
+        " Record the previous omnifunc, the plugin
+        " will automatically set this back so that it
+        " does not interfere with other ftplugins settings
+        let b:sql_compl_savefunc=&omnifunc
+    endif
+    " Set the OMNI func for the SQL completion plugin
+    let &omnifunc='sqlcomplete#Complete'
+endfunction
+
+function! s:SQLCGetSyntaxList(syn_group)
+    let syn_group  = a:syn_group
+    let compl_list = []
+
+    " Check if we have already cached the syntax list
+    let list_idx = index(s:syn_list, syn_group, 0, &ignorecase)
+    if list_idx > -1
+        " Return previously cached value
+        let compl_list = s:syn_value[list_idx]
+    else
+        " Request the syntax list items from the 
+        " syntax completion plugin
+        if syn_group == 'syntax'
+            " Handle this special case.  This allows the user
+            " to indicate they want all the syntax items available,
+            " so do not specify a specific include list.
+            let g:omni_syntax_group_include_sql = ''
+        else
+            " The user has specified a specific syntax group
+            let g:omni_syntax_group_include_sql = syn_group
+        endif
+        let g:omni_syntax_group_exclude_sql = ''
+        let syn_value                       = OmniSyntaxList()
+        let g:omni_syntax_group_include_sql = s:save_inc
+        let g:omni_syntax_group_exclude_sql = s:save_exc
+        " Cache these values for later use
+        let s:syn_list  = add( s:syn_list,  syn_group )
+        let s:syn_value = add( s:syn_value, syn_value )
+        let compl_list  = syn_value
+    endif
+
+    return compl_list
+endfunction
+
 function! s:SQLCCheck4dbext()
     if !exists('g:loaded_dbext')
         let msg = "The dbext plugin must be loaded for dynamic SQL completion"
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -1,6 +1,6 @@
 " tar.vim: Handles browsing tarfiles
 "            AUTOLOAD PORTION
-" Date:			Dec 24, 2005
+" Date:			Mar 27, 2006
 " Version:		7
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
 " License:		Vim License  (see vim's :help license)
@@ -25,6 +25,7 @@ if exists("g:loaded_tar")
  finish
 endif
 let g:loaded_tar= "v7"
+"call Decho("loading autoload/tar.vim")
 
 " ---------------------------------------------------------------------
 "  Default Settings: {{{1
@@ -34,6 +35,9 @@ endif
 if !exists("g:tar_readoptions")
  let g:tar_readoptions= "OPxf"
 endif
+if !exists("g:tar_cmd")
+ let g:tar_cmd= "tar"
+endif
 if !exists("g:tar_writeoptions")
  let g:tar_writeoptions= "uf"
 endif
@@ -50,14 +54,15 @@ fun! tar#Browse(tarfile)
   set report=10
 
   " sanity checks
-  if !executable("tar")
-   echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system'
+  if !executable(g:tar_cmd)
+   echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
    let &report= repkeep
 "   call Dret("tar#Browse")
    return
   endif
   if !filereadable(a:tarfile)
+"   call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
    if a:tarfile !~# '^\a\+://'
     " if its an url, don't complain, let url-handlers such as vim do its thing
     echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
@@ -80,20 +85,33 @@ fun! tar#Browse(tarfile)
   set ft=tar
 
   " give header
+"  call Decho("printing header")
   exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'"
   exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'"
   exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
   0d
   $
 
-  if a:tarfile =~# '\.\(gz\|tgz\)$'
-   exe "silent r! gzip -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - "
-  elseif a:tarfile =~# '\.bz2$'
-   exe "silent r! bzip2 -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - "
+  let tarfile= a:tarfile
+  if has("win32") && executable("cygpath")
+   " assuming cygwin
+   let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
+  endif
+  if tarfile =~# '\.\(gz\|tgz\)$'
+"   call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
+   exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
+  elseif tarfile =~# '\.bz2$'
+"   call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
+   exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
   else
-   exe "silent r! tar -".g:tar_browseoptions." '".a:tarfile."'"
+"   call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'")
+   exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'"
   endif
-  silent %g@/$@d
+  if v:shell_error != 0
+   echohl Error | echo '***error*** (tar#Browse) while browsing; check your g:tar_browseoptions<".g:tar_browseoptions.">"
+"  call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
+   return
+  endif
 
   setlocal noma nomod ro
   noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
@@ -121,12 +139,21 @@ fun! s:TarBrowseSelect()
   " about to make a new window, need to use w:tarfile
   let tarfile= w:tarfile
   let curfile= expand("%")
+  if has("win32") && executable("cygpath")
+   " assuming cygwin
+   let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
+  endif
 
   new
   wincmd _
   let s:tblfile_{winnr()}= curfile
-"  call Decho("exe e tarfile:".tarfile.':'.fname)
-  exe "e tarfile:".tarfile.':'.fname
+"  if has("unix")
+""   call Decho("exe e tarfile:".tarfile.':'.fname)
+"   exe "e tarfile:".tarfile.':'.fname
+"  elseif has("win32")
+"   call tar#Read("tarfile:".tarfile.':'.fname,1)
+"  endif
+  call tar#Read("tarfile:".tarfile.':'.fname,1)
   filetype detect
 
   let &report= repkeep
@@ -141,7 +168,12 @@ fun! tar#Read(fname,mode)
   set report=10
   let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','')
   let fname   = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','')
-"  call Decho("tarfile<".tarfile."> fname<".fname.">")
+  if has("win32") && executable("cygpath")
+   " assuming cygwin
+   let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
+  endif
+"  call Decho("tarfile<".tarfile.">")
+"  call Decho("fname<".fname.">")
 
   if tarfile =~# '\.\(gz\|tgz\)$'
 "   call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'")
@@ -151,7 +183,7 @@ fun! tar#Read(fname,mode)
    exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
   else
 "   call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'")
-   exe "silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'"
+   exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." '".tarfile."' '".fname."'"
   endif
   let w:tarfile= a:fname
   exe "file tarfile:".fname
@@ -172,8 +204,8 @@ fun! tar#Write(fname)
   set report=10
 
   " sanity checks
-  if !executable("tar")
-   echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system'
+  if !executable(g:tar_cmd)
+   echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
    let &report= repkeep
 "   call Dret("tar#Write")
--- 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:   Mar 22, 2006
-" Version: 5
+" Date:   Mar 31, 2006
+" Version: 6
 " 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 = "v5"
+let g:loaded_vimball = "v6"
 set cpo&vim
 
 " =====================================================================
@@ -190,7 +190,7 @@ fun! vimball#Vimball(really)
 "   call Decho("yanked ".fsize." lines into register-a")
 
 "   call Decho("didhelp<".didhelp."> fname<".fname.">")
-   if didhelp == "" && fname =~ 'doc/[^/]\+\.txt$'
+   if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.txt$'
    	let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','e')
 "	call Decho("didhelp<".didhelp.">")
    endif
--- a/runtime/autoload/xmlcomplete.vim
+++ b/runtime/autoload/xmlcomplete.vim
@@ -1,13 +1,13 @@
 " Vim completion script
 " Language:	XML
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Mar 19
+" Last Change:	2006 Mar 31
 
 " This function will create Dictionary with users namespace strings and values
 " canonical (system) names of data files.  Names should be lowercase,
 " descriptive to avoid any future conflicts. For example 'xhtml10s' should be
 " name for data of XHTML 1.0 Strict and 'xhtml10t' for XHTML 1.0 Transitional
-" User interface will be provided by XMLns command defined ...
+" User interface will be provided by XMLns command defined in ftplugin/xml.vim
 " Currently supported canonicals are:
 " xhtml10s - XHTML 1.0 Strict
 " xsl      - XSL
@@ -224,8 +224,13 @@ function! xmlcomplete#CompleteTags(finds
 			let attrs = ['encoding', 'version="1.0"', 'version']
 		elseif tag =~ '^!'
 			" Don't make completion at all
+			"
 			return []
 		else
+            if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag)
+				" Abandon when data file isn't complete
+ 				return []
+ 			endif
 			let attrs = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1])
 		endif
 
@@ -324,6 +329,10 @@ function! xmlcomplete#CompleteTags(finds
 	    let tags = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]})
 		call filter(tags, 'v:val !~ "^vimxml"')
 	else
+		if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag)
+			" Abandon when data file isn't complete
+			return []
+		endif
 		let tags = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[opentag][0]
 	endif
 
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -75,11 +75,15 @@ fun! zip#Browse(zipfile)
   0d
   $
 
-"  call Decho("exe silent r! unzip -l '".escape(a:zipfile,s:zipfile_escape)."'")
-  exe "silent r! unzip -l ".escape(a:zipfile,s:zipfile_escape)
+"  call Decho("exe silent r! unzip -l '".a:zipfile."'")
+  exe "silent r! unzip -l '".a:zipfile."'"
+"  call Decho("line 6: ".getline(6))
+  let namecol= stridx(getline(6),'Name') + 1
+"  call Decho("namecol=".namecol)
+  4,$g/^\s*----/d
+  4,$g/^\s*\a/d
   $d
-  silent 4,$v/^\s\+\d\+\s\{0,5}\d/d
-  silent  4,$s/^\%(.*\)\s\+\(\S\)/\1/
+  exe 'silent 4,$s/^.*\%'.namecol.'c//'
 
   setlocal noma nomod ro
   noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
@@ -114,15 +118,15 @@ fun! s:ZipBrowseSelect()
 
   " get zipfile to the new-window
   let zipfile= substitute(w:zipfile,'.zip$','','e')
-  let curfile= escape(expand("%"),s:zipfile_escape)
+  let curfile= expand("%")
 "  call Decho("zipfile<".zipfile.">")
 "  call Decho("curfile<".curfile.">")
 
   new
   wincmd _
   let s:zipfile_{winnr()}= curfile
-"  call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname)
-  exe "e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname
+"  call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).':'.escape(fname,s:zipfile_escape))
+  exe "e zipfile:".escape(zipfile,s:zipfile_escape).':'.escape(fname,s:zipfile_escape)
   filetype detect
 
   let &report= repkeep
@@ -140,8 +144,8 @@ fun! zip#Read(fname,mode)
   let fname   = substitute(a:fname,'zipfile:.\{-}:\([^\\].*\)$','\1','')
 "  call Decho("zipfile<".zipfile."> fname<".fname.">")
 
-"  call Decho("exe r! unzip -p '".escape(zipfile,s:zipfile_escape)."' ".fname)
-  exe "r! unzip -p ".escape(zipfile,s:zipfile_escape)." ".fname
+"  call Decho("exe r! unzip -p '".zipfile."' '".fname."'")
+  exe "silent r! unzip -p '".zipfile."' '".fname."'"
 
   " cleanup
   0d
@@ -154,7 +158,7 @@ endfun
 " ---------------------------------------------------------------------
 " zip#Write: {{{2
 fun! zip#Write(fname)
-"  call Dfunc("zip#Write(fname<".a:fname.") zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
+"  call Dfunc("zip#Write(fname<".a:fname.">) zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
   let repkeep= &report
   set report=10
 
@@ -211,6 +215,7 @@ fun! zip#Write(fname)
    if executable("cygpath")
     let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
    endif
+"   call Decho("mkdir(dirpath<".dirpath.">,p)")
    call mkdir(dirpath,"p")
   endif
   if zipfile !~ '/'
@@ -218,13 +223,13 @@ fun! zip#Write(fname)
   endif
 "  call Decho("zipfile<".zipfile."> fname<".fname.">")
 
-  exe "w! ".fname
+  exe "w! ".escape(fname,s:zipfile_escape)
   if executable("cygpath")
    let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
   endif
 
-"  call Decho("zip -u ".zipfile.".zip ".fname)
-  call system("zip -u ".zipfile.".zip ".fname)
+"  call Decho("zip -u '".zipfile.".zip' '".fname."'")
+  call system("zip -u '".zipfile.".zip' '".fname."'")
   if v:shell_error != 0
    echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0c.  Last change: 2006 Mar 15
+*autocmd.txt*   For Vim version 7.0c.  Last change: 2006 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -510,6 +510,10 @@ FileChangedRO			Before making the first 
 				just before the change is applied to the text.
 				WARNING: If the autocommand moves the cursor
 				the effect of the change is undefined.
+							*E788*
+				It is not allowed to change to another buffer
+				here.  You can reload the buffer but not edit
+				another one.
 							*FileChangedShell*
 FileChangedShell		When Vim notices that the modification time of
 				a file has changed since editing started.
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.0c.  Last change: 2006 Mar 15
+*diff.txt*      For Vim version 7.0c.  Last change: 2006 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -272,6 +272,10 @@ buffer: >
 Note that deleted lines are displayed, but not counted as text lines.  You
 can't move the cursor into them.  To fill the deleted lines with the lines
 from another buffer use ":diffget" on the line below them.
+								*E787*
+When the buffer that is about to be modified is read-only and the autocommand
+that is triggered by |FileChangedRO| changes buffers the command will fail.
+The autocommand must not change buffers.
 
 The [bufspec] argument above can be a buffer number, a pattern for a buffer
 name or a part of a buffer name.  Examples:
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0c.  Last change: 2006 Mar 06
+*editing.txt*   For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -422,14 +422,18 @@ name.  Line breaks also separate names.
 The [++opt] argument can be used to force the value of 'fileformat',
 'fileencoding' or 'binary' to a value for one command, and to specify the
 behavior for bad characters.  The form is: >
+	++{optname}
+Or: >
 	++{optname}={value}
 
-Where {optname} is one of:		*++ff* *++enc* *++bin* *++nobin*
+Where {optname} is one of:	    *++ff* *++enc* *++bin* *++nobin* *++edit*
     ff     or  fileformat   overrides 'fileformat'
     enc    or  encoding	    overrides 'fileencoding'
     bin    or  binary	    sets 'binary'
     nobin  or  nobinary	    resets 'binary'
     bad                     specifies behavior for bad characters
+    edit		    for |:read| only: keep option values as if editing
+    			    a file
 
 {value} cannot contain white space.  It can be any valid value for these
 options.  Examples: >
@@ -897,6 +901,7 @@ used, for example, when the write fails 
 			The [!] is needed to overwrite an existing file.
 			When 'filetype' is empty filetype detection is done
 			with the new name, before the file is written.
+			When the write was successful 'readonly' is reset.
 			{not in Vi}
 
 							*:up* *:update*
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0c.  Last change: 2006 Mar 29
+*eval.txt*      For Vim version 7.0c.  Last change: 2006 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -110,8 +110,8 @@ around the arguments, to invoke the func
 	:let Fn = function("MyFunc")
 	:echo Fn()
 <							*E704* *E705* *E707*
-A Funcref variable must start with a capital, "s:", "w:" or "b:".  You cannot
-have both a Funcref variable and a function with the same name.
+A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:".  You
+cannot have both a Funcref variable and a function with the same name.
 
 A special case is defining a function and directly assigning its Funcref to a
 Dictionary entry.  Example: >
@@ -504,7 +504,7 @@ the function was invoked from.
 It is also possible to add a function without the "dict" attribute as a
 Funcref to a Dictionary, but the "self" variable is not available then.
 
-						*numbered-function*
+				*numbered-function* *anonymous-function*
 To avoid the extra name for the function it can be defined and directly
 assigned to a Dictionary in this way: >
 	:let mydict = {'data': [0, 1, 2, 3]}
@@ -1030,6 +1030,7 @@ specified by what is prepended:
 		(nothing) In a function: local to a function; otherwise: global
 |buffer-variable|    b:	  Local to the current buffer.
 |window-variable|    w:	  Local to the current window.
+|tabpage-variable|   t:	  Local to the current tab page.
 |global-variable|    g:	  Global.
 |local-variable|     l:	  Local to a function.
 |script-variable|    s:	  Local to a |:source|'ed Vim script.
@@ -1063,6 +1064,11 @@ b:changedtick	The total number of change
 A variable name that is preceded with "w:" is local to the current window.  It
 is deleted when the window is closed.
 
+						*tabpage-variable* *t:var*
+A variable name that is preceded with "t:" is local to the current tab page,
+It is deleted when the tab page is closed. {not available when compiled
+without the +windows feature}
+
 						*global-variable* *g:var*
 Inside functions global variables are accessed with "g:".  Omitting this will
 access a variable local to a function.  But "g:" can also be used in any other
@@ -1628,6 +1634,7 @@ mapcheck( {name}[, {mode} [, {abbr}]])
 				String	check for mappings matching {name}
 match( {expr}, {pat}[, {start}[, {count}]])
 				Number	position where {pat} matches in {expr}
+matcharg( {nr})			List	arguments of |:match|
 matchend( {expr}, {pat}[, {start}[, {count}]])
 				Number	position where {pat} ends in {expr}
 matchlist( {expr}, {pat}[, {start}[, {count}]])
@@ -1641,6 +1648,7 @@ mkdir({name} [, {path} [, {prot}]])
 mode()				String	current editing mode
 nextnonblank( {lnum})		Number	line nr of non-blank line >= {lnum}
 nr2char( {expr})		String	single char with ASCII value {expr}
+pathshorten( {expr})		String	shorten directory names in a path
 prevnonblank( {lnum})		Number	line nr of non-blank line <= {lnum}
 printf( {fmt}, {expr1}...)	String  format text
 pumvisible()			Number  whether popup menu is visible
@@ -2252,6 +2260,9 @@ executable({expr})					*executable()*
 		extension.
 		On MS-DOS and MS-Windows it only checks if the file exists and
 		is not a directory, not if it's really executable.
+		On MS-Windows an executable in the same directory as Vim is
+		always found.  Since this directory is added to $PATH it
+		should also work to execute it |win32-PATH|.
 		The result is a Number:
 			1	exists
 			0	does not exist
@@ -2720,10 +2731,10 @@ getfontname([{name}])					*getfontname()
 		Otherwise the actual font name is returned, or {name} if the
 		GUI does not support obtaining the real name.
 		Only works when the GUI is running, thus not you your vimrc or
+		gvimrc file.  Use the |GUIEnter| autocommand to use this
+		function just after the GUI has started.
 		Note that the GTK 2 GUI accepts any font name, thus checking
 		for a valid name does not work.
-		gvimrc file.  Use the |GUIEnter| autocommand to use this
-		function just after the GUI has started.
 
 getfperm({fname})					*getfperm()*
 		The result is a String, which is the read, write, and execute
@@ -3137,9 +3148,9 @@ inputdialog({prompt} [, {text} [, {cance
 		NOTE: Command-line completion is not supported.
 
 inputlist({textlist})					*inputlist()*
-		{textlist} must be a list of strings.  This list is displayed,
-		one string per line.  The user will be prompted to enter a
-		number, which is returned.
+		{textlist} must be a |List| of strings.  This |List| is
+		displayed, one string per line.  The user will be prompted to
+		enter a number, which is returned.
 		The user can also select an item by clicking on it with the
 		mouse.  For the first string 0 is returned.  When clicking
 		above the first item a negative number is returned.  When
@@ -3196,7 +3207,7 @@ isdirectory({directory})				*isdirectory
 		exist, or isn't a directory, the result is FALSE.  {directory}
 		is any expression, which is used as a String.
 
-islocked({expr})					*islocked()*
+islocked({expr})					*islocked()* *E786*
 		The result is a Number, which is non-zero when {expr} is the
 		name of a locked variable.
 		{expr} must be the name of a variable, |List| item or
@@ -3479,6 +3490,18 @@ match({expr}, {pat}[, {start}[, {count}]
 		the pattern.  'smartcase' is NOT used.  The matching is always
 		done like 'magic' is set and 'cpoptions' is empty.
 
+
+matcharg({nr})							*matcharg()*
+		Selects the {nr} match item, as set with a |:match|, 
+		|:2match| or |:3match| command.
+		Return a |List| with two elements:
+			The name of the highlight group used
+			The pattern used.
+		When {nr} is not 1, 2 or 3 returns an empty |List|.
+		When there is no match item set returns ['', ''].
+		This is usef to save and restore a |:match|.
+
+
 matchend({expr}, {pat}[, {start}[, {count}]])			*matchend()*
 		Same as match(), but return the index of first character after
 		the match.  Example: >
@@ -3598,6 +3621,15 @@ getpos({expr})	Get the position for {exp
 			call setpos('.', save_cursor)
 <		Also see |setpos()|.
 
+pathshorten({expr})					*pathshorten()*
+		Shorten directory names in the path {expr} and return the
+		result.  The tail, the file name, is kept as-is.  The other
+		components in the path are reduced to single letters.  Leading
+		'~' and '.' characters are kept.  Example: >
+			:echo pathshorten('~/.vim/autoload/myfile.vim')
+<			~/.v/a/myfile.vim ~
+		It doesn't matter if the path exists or not.
+
 prevnonblank({lnum})					*prevnonblank()*
 		Return the line number of the first line at or above {lnum}
 		that is not blank.  Example: >
@@ -5036,7 +5068,6 @@ gui			Compiled with GUI enabled.
 gui_athena		Compiled with Athena GUI.
 gui_gtk			Compiled with GTK+ GUI (any version).
 gui_gtk2		Compiled with GTK+ 2 GUI (gui_gtk is also defined).
-gui_kde			Compiled with KDE GUI |KVim|
 gui_mac			Compiled with Macintosh GUI.
 gui_motif		Compiled with Motif GUI.
 gui_photon		Compiled with Photon GUI.
@@ -5654,6 +5685,7 @@ 7. Commands						*expression-commands*
 			  g:	global variables
 			  b:	local buffer variables
 			  w:	local window variables
+			  t:	local tab page variables
 			  s:	script-local variables
 			  l:	local function variables
 			  v:	Vim variables.
@@ -5711,8 +5743,8 @@ 7. Commands						*expression-commands*
 
 			Note that when two variables refer to the same |List|
 			and you lock one of them, the |List| will also be
-			locked when used through the other variable.  Example:
-			>
+			locked when used through the other variable.
+			Example: >
 				:let l = [0, 1, 2, 3]
 				:let cl = l
 				:lockvar l
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.0c.  Last change: 2006 Mar 20
+*gui.txt*       For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -36,6 +36,10 @@ The X11 version of Vim can run both in G
 |gui-x11-start|.
 
 					*gui-init* *gvimrc* *.gvimrc* *_gvimrc*
+The gvimrc file is where GUI-specific startup commands should be placed.  It
+is always sourced after the |vimrc| file.  If you have one then the $MYGVIMRC
+environment variable has its name.
+
 When the GUI starts up initializations are carried out, in this order:
 - The 'term' option is set to "builgin_gui" and terminal options are reset to
   their default value for the GUI |terminal-options|.
@@ -66,6 +70,8 @@ When the GUI starts up initializations a
   - For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
   - When a "_gvimrc" file is not found, ".gvimrc" is tried too.  And vice
     versa.
+  The name of the first file found is stored in $MYGVIMRC, unless it was
+  already set.
 - If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc
   is sourced, if it exists and isn't the same file as the system or user
   gvimrc file.  If this file is not owned by you, some security restrictions
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -1,4 +1,4 @@
-*hangulin.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*hangulin.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
@@ -48,7 +48,7 @@ If both are set, VIM_KEYBOARD has higher
 
 Hangul Fonts
 ------------
-You can set text font using $HOME/.Xdefaults or $HOME/.gvimrc.
+You can set text font using $HOME/.Xdefaults or in your gvimrc file.
 But to use Hangul, you should set 'guifontset' in your vimrc.
 
 $HOME/.Xdefaults: >
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*help.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 			VIM - main help file
 									 k
@@ -85,7 +85,7 @@ Making Vim Run ~
 |usr_90.txt|  Installing Vim
 
 
-REFERENCE MANUAL: These files explain every detail of Vim.	*ref-toc*
+REFERENCE MANUAL: These files explain every detail of Vim.	*reference_toc*
 
 General subjects ~
 |intro.txt|	general introduction to Vim; notation used in help files
@@ -195,6 +195,12 @@ Standard plugins ~
 |pi_zip.txt|	Zip archive explorer
 
 LOCAL ADDITIONS:				*local-additions*
+|cecutil.txt|	DrChip's Utilities				Jun 11, 2004
+|example.txt|	Example for a locally added help file
+|matchit.txt|   Extended "%" matching
+|test.txt|	Testing the hlp cmmnd nw
+|typecorr.txt|	Plugin for correcting typing mistakes
+|helpp.txt|	Dummy line to avoid an error message
 
 ------------------------------------------------------------------------------
 *bars*		Bars example
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,4 +1,4 @@
-*howto.txt*	For Vim version 7.0c.  Last change: 2001 Sep 03
+*howto.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -75,7 +75,7 @@ How to ...				*howdoi* *how-do-i* *howto
 |auto-setting|		set options automatically
 |term-dependent-settings| set options depending on terminal name
 |save-settings|		save settings
-|:quote|		comment my exrc/vimrc/gvimrc files
+|:quote|		comment my .vim files
 |'helpheight'|		change the default help height
 |'highlight'|		set various highlighting modes
 |'title'|		set the window title
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0c.  Last change: 2006 Mar 29
+*insert.txt*    For Vim version 7.0c.  Last change: 2006 Apr 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1004,10 +1004,12 @@ List.
 Each list item can either be a string or a Dictionary.  When it is a string it
 is used as the completion.  When it is a Dictionary it can contain these
 items:
-	word		the completion, mandatory
-	abbr		abbreviation of "word", to be used in the menu
-	menu		extra text for the popup menu
-	info		more information about the item
+	word		the text that will be inserted, mandatory
+	abbr		abbreviation of "word"; when not empty it is used in
+			the menu instead of "word"
+	menu		extra text for the popup menu, after "word" or "abbr"
+	info		more information about the item, can be displayed in a
+			preview window
 	kind		single letter indicating the type of completion
 	icase		when non-zero case is to be ignored; when omitted
 			the 'ignorecase' option is used
@@ -1291,6 +1293,14 @@ Script completes:
 - after $ variables name
   - if variable was declared as object add "->", if tags file is available show
     name of class
+  - after "->" complete only function and variable names specific for given
+    class. To find class location and contents tags file is required. Because
+    PHP isn't strongly typed language user can use @var tag to declare class: >
+
+    	/* @var $myVar myClass */
+	$myVar->
+<
+    Still, to find myClass contents tags file is required.
 
 - function names with additonal info:
   - in case of built-in functions list of possible arguments and after | type
@@ -1375,6 +1385,12 @@ It will also dynamically complete tables
 with data pulled directly from within a database.  For detailed instructions
 and a tutorial see |omni-sql-completion|.
 
+The SQL completion plugin can be used in conjunction with other completion
+plugins.  For example, the PHP filetype has it's own completion plugin.
+Since PHP is often used to generate dynamic website by accessing a database,
+the SQL completion plugin can also be enabled.  This allows you to complete
+PHP code and SQL code at the same time.
+
 
 XML							*ft-xml-omni*
 
@@ -1634,11 +1650,15 @@ NOTE: ":append" and ":insert" don't work
 10. Inserting a file					*inserting-file*
 
 							*:r* *:re* *:read*
-:r[ead] [name]		Insert the file [name] (default: current file) below
+:r[ead] [++opt] [name]
+			Insert the file [name] (default: current file) below
 			the cursor.
+			See |++opt| for the possible values of [++opt].
 
-:{range}r[ead] [name]	Insert the file [name] (default: current file) below
+:{range}r[ead] [++opt] [name]
+			Insert the file [name] (default: current file) below
 			the specified line.
+			See |++opt| for the possible values of [++opt].
 
 							*:r!* *:read!*
 :r[ead] !{cmd}		Execute {cmd} and insert its standard output below
@@ -1663,6 +1683,14 @@ If a file name is given with ":r", it be
 used, for example, when you want to edit that file instead: ":e! #".  This can
 be switched off by removing the 'a' flag from the 'cpoptions' option.
 
+Of the [++opt] arguments one is specifically for ":read", the ++edit argument.
+This is useful when the ":read" command is actually used to read a file into
+the buffer as if editing that file.  Use this command in an empty buffer: >
+	:read ++edit filename
+The effect is that the 'fileformat', 'fileencoding', 'bomb', etc. options are
+set to what has been detected for "filename".  Note that a single empty line
+remains, you may want to delete it.
+
 							*file-read*
 The 'fileformat' option sets the <EOL> style for a file:
 'fileformat'    characters	   name				~
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.0c.  Last change: 2006 Mar 29
+*mbyte.txt*     For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -985,7 +985,7 @@ Cursor color when IME or XIM is on				*C
     This works in the same way when using XIM.
 
     You can select cursor color when status is on by using highlight group
-    CursorIM.  For example, add these lines to your _gvimrc: >
+    CursorIM.  For example, add these lines to your |gvimrc|: >
 
 	if has('multi_byte_ime')
 	    highlight Cursor guifg=NONE guibg=Green
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0c.  Last change: 2006 Mar 29
+*options.txt*	For Vim version 7.0c.  Last change: 2006 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -684,8 +684,7 @@ A jump table for the options with a shor
 	or selected.
 	This option is provided for backward compatibility with the Vim
 	released with Sun ONE Studio 4 Enterprise Edition.
-	Note: When this option is on some plugins may not work.  The directory
-	browser sets if off.
+	Note: When this option is on some plugins may not work.
 
 				*'arabic'* *'arab'* *'noarabic'* *'noarab'*
 'arabic' 'arab'		boolean (default off)
@@ -1488,8 +1487,8 @@ A jump table for the options with a shor
 	|fold-marker|.
 
 			*'compatible'* *'cp'* *'nocompatible'* *'nocp'*
-'compatible' 'cp'	boolean	(default on, off when a .vimrc or .gvimrc file
-								is found)
+'compatible' 'cp'	boolean	(default on, off when a |vimrc| or |gvimrc|
+								file is found)
 			global
 			{not in Vi}
 	This option has the effect of making Vim either more Vi-compatible, or
@@ -1504,10 +1503,10 @@ A jump table for the options with a shor
 	options.  This default was chosen for those people who want to use Vim
 	just like Vi, and don't even (want to) know about the 'compatible'
 	option.
-	When a ".vimrc" or ".gvimrc" file is found while Vim is starting up,
+	When a |vimrc| or |gvimrc| file is found while Vim is starting up,
 	this option is switched off, and all options that have not been
 	modified will be set to the Vim defaults.  Effectively, this means
-	that when a ".vimrc" or ".gvimrc" file exists, Vim will use the Vim
+	that when a |vimrc| or |gvimrc| file exists, Vim will use the Vim
 	defaults, otherwise it will use the Vi defaults.  (Note: This doesn't
 	happen for the system-wide vimrc or gvimrc file).  Also see
 	|compatible-default| and |posix-compliance|.
@@ -2719,6 +2718,8 @@ A jump table for the options with a shor
 <	This is similar to the default, except that these characters will also
 	be used when there is highlighting.
 
+	for "stl" and "stlnc" only single-byte values are supported.
+
 	The highlighting used for these items:
 	  item		highlight group ~
 	  stl:c		StatusLine		|hl-StatusLine|
@@ -2894,6 +2895,7 @@ A jump table for the options with a shor
 		quickfix	":cn", ":crew", ":make", etc.
 		search		search for a pattern: "/", "n", "*", "gd", etc.
 				(not for a search pattern in a ":" command)
+				Also for |[s| and |]s|.
 		tag		jumping to a tag: ":ta", CTRL-T, etc.
 		undo		undo or redo: "u" and CTRL-R
 	When the command is part of a mapping this option is not used.  Add
@@ -3332,7 +3334,7 @@ A jump table for the options with a shor
 		can use "gvim -f" or ":gui -f" to start the GUI in the
 		foreground.  |gui-fork|
 		Note: Set this option in the vimrc file.  The forking may have
-		happened already when the gvimrc file is read.
+		happened already when the |gvimrc| file is read.
 
 	  'i'	Use a Vim icon.  For GTK with KDE it is used in the left-upper
 		corner of the window.  It's black&white on non-GTK, because of
@@ -3341,7 +3343,7 @@ A jump table for the options with a shor
 	  'm'	Menu bar is present.
 	  'M'	The system menu "$VIMRUNTIME/menu.vim" is not sourced.  Note
 		that this flag must be added in the .vimrc file, before
-		switching on syntax or filetype recognition (when the .gvimrc
+		switching on syntax or filetype recognition (when the |gvimrc|
 		file is sourced the system menu has already been loaded; the
 		":syntax on" and ":filetype on" commands load the menu too).
 	  'g'	Grey menu items: Make menu items that are not active grey.  If
@@ -3374,7 +3376,7 @@ A jump table for the options with a shor
 	  'p'	Use Pointer callbacks for X11 GUI.  This is required for some
 		window managers.  If the cursor is not blinking or hollow at
 		the right moment, try adding this flag.  This must be done
-		before starting the GUI.  Set it in your gvimrc.  Adding or
+		before starting the GUI.  Set it in your |gvimrc|.  Adding or
 		removing it after the GUI has started has no effect.
 	  'F'	Add a footer.  Only for Motif.  See |gui-footer|.
 
@@ -3469,7 +3471,7 @@ A jump table for the options with a shor
 				     "8:SpecialKey,@:NonText,d:Directory,
 				     e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
 				     M:ModeMsg,n:LineNr,r:Question,
-				     s:StatusLine,S:StatusLineNC,c:VertSplit
+				     s:StatusLine,S:StatusLineNC,c:VertSplit,
 				     t:Title,v:Visual,w:WarningMsg,W:WildMenu,
 				     f:Folded,F:FoldColumn,A:DiffAdd,
 				     C:DiffChange,D:DiffDelete,T:DiffText,
@@ -3560,7 +3562,7 @@ A jump table for the options with a shor
 	highlight all of the matched text.  However, this depends on where the
 	search starts.  This will be the first line in the window or the first
 	line below a closed fold.  A match in a previous line which is not
-	drawn may not continue in an newly drawn line.
+	drawn may not continue in a newly drawn line.
 	NOTE: This option is reset when 'compatible' is set.
 
 						*'history'* *'hi'*
@@ -4265,7 +4267,7 @@ A jump table for the options with a shor
 
 	The characters ':' and ',' should not be used.  UTF-8 characters can
 	be used when 'encoding' is "utf-8", otherwise only printable
-	characters are allowed.
+	characters are allowed.  All characters must be single width.
 
 	Examples: >
 	    :set lcs=tab:>-,trail:-
@@ -5369,6 +5371,8 @@ A jump table for the options with a shor
 			   going back to the other window, it still uses the
 			   same relative offset.
 	Also see |scroll-binding|.
+	When 'diff' mode is active there always is vertical scroll binding,
+	even when "ver" isn't there.
 
 						*'sections'* *'sect'*
 'sections' 'sect'	string	(default "SHNHH HUnhsh")
@@ -5969,8 +5973,9 @@ A jump table for the options with a shor
 	|zg| and |zw| commands can be used to access each.  This allows using
 	a personal word list file and a project word list file.
 	When a word is added while this option is empty Vim will set it for
-	you: Using the first "spell" directory in 'runtimepath' that is
-	writable and the first language name that appears in 'spelllang',
+	you: Using the first directory in 'runtimepath' that is writable.  If
+	there is no "spell" directory yet it will be created.  For the file
+	name the first language name that appears in 'spelllang' is used,
 	ignoring the region.
 	The resulting ".spl" file will be used for spell checking, it does not
 	have to appear in 'spelllang'.
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt*    For Vim version 7.0c.  Last change: 2006 Feb 14
+*os_dos.txt*    For Vim version 7.0c.  Last change: 2006 Mar 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -77,10 +77,11 @@ is especially useful when using a Unix-l
 ==============================================================================
 3. Standard mappings				*dos-standard-mappings*
 
-CTRL-PageUp	cursor to first screen line			*<C-PageUp>*
-CTRL-PageDown	cursor to last screen line, last character	*<C-PageDown>*
+The mappings for CTRL-PageUp and CTRL-PageDown have been removed, they now
+jump to the next or previous tab page |<C-PageUp>| |<C-PageDown>|
 
-These mappings accomplish this:
+If you want them to move to the first and last screen line you can use these
+mappings:
 
 key		key code     Normal/Visual mode	    Insert mode ~
 CTRL-PageUp	<M-N><M-C-D>	    H		    <C-O>H
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_win32.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
@@ -87,6 +87,12 @@ The only kind of terminal type that the 
 probably get very strange behavior from Vim.  Therefore Vim does not obtain
 the default value of 'term' from the environment variable "TERM".
 
+$PATH							*win32-PATH*
+
+The directory of the Vim executable is appended to $PATH.  This is mostly to
+make "!xxd' work, as it is in the Tools menu.  And it also means that when
+executable() returns 1 the executable can actually be executed.
+
 ==============================================================================
 3. Restore screen contents				*win32-restore*
 
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.0c.  Last change: 2006 Mar 25
+*pattern.txt*   For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1220,6 +1220,9 @@ 10. Highlighting matches				*match-highl
 		'ignorecase' does not apply, use |/\c| in the pattern to
 		ignore case.  Otherwise case is not ignored.
 
+		Also see |matcharg()|, it returns the highlight group and
+		pattern of a previous :match command.
+
 		Another example, which highlights all characters in virtual
 		column 72 and more: >
 			:highlight rightMargin term=bold ctermfg=blue guifg=blue
@@ -1235,10 +1238,10 @@ 10. Highlighting matches				*match-highl
 		Clear a previously defined match pattern.
 
 
-:2mat[ch] {group} /{pattern}/
+:2mat[ch] {group} /{pattern}/					*:2match*
 :2mat[ch]
 :2mat[ch] none
-:3mat[ch] {group} /{pattern}/
+:3mat[ch] {group} /{pattern}/					*:3match*
 :3mat[ch]
 :3mat[ch] none
 		Just like |:match| above, but set a separate match.  Thus
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt*  For Vim version 7.0c.  Last change: 2006 Mar 29
+*pi_paren.txt*  For Vim version 7.0c.  Last change: 2006 Apr 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -38,9 +38,13 @@ in a string or comment syntax item, then
 syntax items are ignored.  Any syntax items with "string" or "comment"
 somewhere in their name are considered string or comment items.
 
-The search is limited to what is visible in the window.  The plugin doesn't
-search further than 100 lines to avoid a long delay when there are closed
-folds.
+The search is limited to avoid a delay when moving the cursor.  The limits
+are:
+- What is visible in the window.
+- 100 lines above or below the cursor to avoid a long delay when there are
+  closed folds.
+- 'synmaxcolumn' times 2 bytes before or after the cursor to avoid a delay
+  in a long line with syntax highlighting.
 
 ==============================================================================
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,6 +1,8 @@
 *tar.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
 
-	Tar File Interface
+       	       	       +====================+
+       	       	       | Tar File Interface |
+       	       	       +====================+
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
@@ -12,7 +14,8 @@ Copyright: The GPL (gnu public license) 
 1. Contents					*tar* *tar-contents*
    1. Contents..................................................|tar-contents|
    2. Usage.....................................................|tar-usage|
-   3. History...................................................|tar-history|
+   3. Options...................................................|tar-options|
+   4. History...................................................|tar-history|
 
 ==============================================================================
 2. Usage					*tar-usage* *tar-manual*
@@ -24,7 +27,25 @@ 2. Usage					*tar-usage* *tar-manual*
    tar archives via the plugin.
 
 ==============================================================================
-3. History						*tar-history*
+3. Options						*tar-options*
+
+   These options are variables that one may change, typically in one's
+   <.vimrc> file.
+                         Default
+   Variable               Value   Explanation
+   *g:tar_browseoptions*  "Ptf"   used to get a list of contents
+   *g:tar_readoptions*    "OPxf"  used to extract a file from a tarball
+   *g:tar_cmd*            "tar"   the name of the tar program
+   *g:tar_writeoptions*   "uf"    used to update/replace a file
+
+
+==============================================================================
+4. History						*tar-history*
+
+   v7 Mar 22, 2006 * work on making tar plugin work across network
+      Mar 27, 2006 * g:tar_cmd now available for users to change the name
+                     of the tar program to be used.  By default, of course,
+		     its "tar".
    v6 Dec 21, 2005 * writing to files not in directories caused problems -
                      fixed (pointed out by Christian Robinson)
    v5 Nov 22, 2005 * report option workaround installed
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,18 +1,20 @@
-*zip.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*zip.txt*	For Vim version 7.0c.  Last change: 2006 Apr 03
 
-	Zip File Interface
+				+====================+
+				| Zip File Interface |
+				+====================+
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright:    Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 *zip-copyright*
-              Permission is hereby granted to use and distribute this code,
-	      with or without modifications, provided that this copyright
-	      notice is copied with it. Like anything else that's free,
-	      zip.vim, zipPlugin.vim, and pi_zip.txt are provided *as is*
-	      and it comes with no warranty of any kind, either expressed or
-	      implied. By using this plugin, you agree that in no event will
-	      the copyright holder be liable for any damages resulting from
-	      the use of this software.
+Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr {{{1 *zip-copyright*
+           Permission is hereby granted to use and distribute this code,
+	   with or without modifications, provided that this copyright
+	   notice is copied with it. Like anything else that's free,
+	   zip.vim, zipPlugin.vim, and pi_zip.txt are provided *as is*
+	   and it comes with no warranty of any kind, either expressed or
+	   implied. By using this plugin, you agree that in no event will
+	   the copyright holder be liable for any damages resulting from
+	   the use of this software.
 
 ==============================================================================
 1. Contents					*zip* *zip-contents*
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0c.  Last change: 2006 Mar 27
+*spell.txt*	For Vim version 7.0c.  Last change: 2006 Apr 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -500,7 +500,7 @@ then Vim will try to guess.
 		:mkspell ~/.vim/spell/en /tmp/en_US /tmp/en_CA /tmp/en_AU
 <			This combines the English word lists for US, CA and AU
 			into one en.spl file.
-			Up to eight regions can be combined. *E754* *755*
+			Up to eight regions can be combined. *E754* *E755*
 			The REP and SAL items of the first .aff file where
 			they appear are used. |spell-REP| |spell-SAL|
 
@@ -1058,36 +1058,8 @@ Specifically, the affix flags can be use
 - Making the word with the affix rare, by using the |spell-RARE| flag.
 - Exclude the word with the affix from compounding, by using the
   |spell-COMPOUNDFORBIDFLAG| flag.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-OLD STUFF: This needs to be rewritten to use affix flags.
-							*spell-affix-rare*
-An extra item for Vim is the "rare" flag.  It must come after the other
-fields, before a comment.  When used then all words that use the affix will be
-marked as rare words.  Examples:
-
-	PFX F 0 nene  .   rare ~
-	SFX F 0 oin   n   rare   # hardly ever used ~
-
-However, if the word also appears as a good word in another way (e.g., in
-another region) it won't be marked as rare.
-
-							*spell-affix-nocomp*
-Another extra item for Vim is the "nocomp" flag.  It must come after the other
-fields, before a comment.  It can be either before or after "rare".  When
-present then all words that use the affix will not be part of a compound word.
-Example:
-	affix file:
-		COMPOUNDFLAG c ~
-		SFX a Y 2 ~
-		SFX a 0 s   . ~
-		SFX a 0 ize . nocomp ~
-	dictionary:
-		word/c ~
-		util/ac ~
-
-This allows for "wordutil" and "wordutils" but not "wordutilize".
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+- Allow the word with the affix to be part of a compound word on the side of
+  the affix with the |spell-COMPOUNDPERMITFLAG|.
 
 						    *spell-PFXPOSTPONE*
 When an affix file has very many prefixes that apply to many words it's not
@@ -1146,6 +1118,11 @@ words that are correct for the language,
 a typing mistake anyway.  When the same word is found as good it won't be
 highlighted as rare.
 
+This flag can also be used on an affix, so that a basic word is not rare but
+the basic word plus affix is rare |spell-affix-flags|.  However, if the word
+also appears as a good word in another way (e.g., in another region) it won't
+be marked as rare.
+
 
 BAD WORDS						*spell-BAD*
 
@@ -1243,6 +1220,12 @@ A specific example: Allow a compound to 
 
 This allows for the word "start-end", but not "startend".
 
+An additional implied rule is that, without further flags, a word with a
+prefix cannot be compounded after another word, and a word with a suffix
+cannot be compounded with a following word.  Thus the affix cannot appear
+on the inside of a compound word.  This can be changed with the
+|spell-COMPOUNDPERMITFLAG|.
+
 							*spell-NEEDCOMPOUND*
 The NEEDCOMPOUND flag is used to require that a word is used as part of a
 compound word.  The word itself is not a good word.  Example:
@@ -1282,13 +1265,24 @@ COMPOUNDWORDMAX words or contains up to 
 
 						    *spell-COMPOUNDFORBIDFLAG*
 The COMPOUNDFORBIDFLAG specifies a flag that can be used on an affix.  It
-means that the word plus affix cannot be used in a compound word.
+means that the word plus affix cannot be used in a compound word.  Example:
+	affix file:
+		COMPOUNDFLAG c ~
+		COMPOUNDFORBIDFLAG x ~
+		SFX a Y 2 ~
+		SFX a 0 s   . ~
+		SFX a 0 ize/x . ~
+	dictionary:
+		word/c ~
+		util/ac ~
+
+This allows for "wordutil" and "wordutils" but not "wordutilize".
 
 						    *spell-COMPOUNDPERMITFLAG*
 The COMPOUNDPERMITFLAG specifies a flag that can be used on an affix.  It
 means that the word plus affix can also be used in a compound word in a way
-where the affix ends up halfway the word.
-NOT IMPLEMENTED YET.
+where the affix ends up halfway the word.  Without this flag that is not
+allowed.
 
 						    *spell-COMPOUNDROOT*
 The COMPOUNDROOT flag is used for words in the dictionary that are already a
@@ -1309,9 +1303,9 @@ With the example "ideeen" has three syll
 
 Only case-folded letters need to be included.
 
-Above another way to restrict compounding was mentioned above: adding "nocomp"
-after an affix causes all words that are made with that affix not be be used
-for compounding. |spell-affix-nocomp|
+Above another way to restrict compounding was mentioned above: Adding the
+|spell-COMPOUNDFORBIDFLAG| flag to an affix causes all words that are made
+with that affix not be be used for compounding.
 
 
 UNLIMITED COMPOUNDING					*spell-NOBREAK*
--- a/runtime/doc/sql.txt
+++ b/runtime/doc/sql.txt
@@ -1,4 +1,4 @@
-*sql.txt*   	For Vim version 7.0c.  Last change: Tue Mar 28 2006 9:33:14 PM
+*sql.txt*   	For Vim version 7.0c.  Last change: Mon Apr 03 2006 10:34:00 PM
 
 by David Fishburn
 
@@ -26,7 +26,8 @@ 4. OMNI SQL Completion  		        |sql-c
         4.3.3 Complete Procedures		|sql-completion-procedures|
         4.3.4 Complete Views			|sql-completion-views|
     4.4 Completion Customization		|sql-completion-customization|
-    4.5 Customizing Maps			|sql-completion-maps|
+    4.5 SQL Maps	        		|sql-completion-maps|
+    4.6 Using with other filetypes		|sql-completion-filetypes|
 
 ==============================================================================
 1. Navigation	        			*sql-navigation*
@@ -321,41 +322,48 @@ 4.1 Static Mode  		                *sql-
 ---------------
 The static popups created contain items defined by the active syntax rules
 while editing a file with a filetype of SQL.  The plugin defines (by default)
-various maps to help the user refine which list of items they wish displayed.
+various maps to help the user refine the list of items to be displayed.
 The defaults static maps are: >
-        imap <buffer> <C-C>a <C-\><C-O>:let b:sql_compl_type='syntax'<CR><C-X><C-O>
-        imap <buffer> <C-C>s <C-\><C-O>:let b:sql_compl_type='sqlStatement'<CR><C-X><C-O>
-        imap <buffer> <C-C>f <C-\><C-O>:let b:sql_compl_type='sqlFunction'<CR><C-X><C-O>
-        imap <buffer> <C-C>k <C-\><C-O>:let b:sql_compl_type='sqlKeyword'<CR><C-X><C-O>
-        imap <buffer> <C-C>o <C-\><C-O>:let b:sql_compl_type='sqlOption'<CR><C-X><C-O>
-        imap <buffer> <C-C>T <C-\><C-O>:let b:sql_compl_type='sqlType'<CR><C-X><C-O>
+    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>
 < 
 The static maps (which are based on the syntax highlight groups) follow this
 format: >
-    imap <buffer> <C-C>k <C-\><C-O>:let b:sql_compl_type='sqlKeyword'<CR><C-X><C-O>
+    imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
 <
 This command breaks down as: >
     imap                   - Create an insert map
     <buffer>               - Only for this buffer
-    <C-C>k             - Your choice of key map
+    <C-C>k                 - Your choice of key map
     <C-\><C-O>             - Execute one command, return to Insert mode
-    :let b:sql_compl_type= - Choose the highlight group's entries to display.
+    :call sqlcomplete#Map( - Allows the SQL completion plugin to perform some
+                             housekeeping functions to allow it to be used in
+                             conjunction with other completion plugins.
+                             Indicate which item you want the SQL completion
+                             plugin to complete.
+                             In this case we are asking the plugin to display
+                             items from the syntax highlight group
+                             'sqlKeyword'.
                              You can view a list of highlight group names to
                              choose from by executing the
                                  :syntax list
                              command while editing a SQL file.
     'sqlKeyword'           - Display the items for the sqlKeyword highlight
                              group
-    <CR>                   - Execute the :let command
+    )<CR>                  - Execute the :let command
     <C-X><C-O>             - Trigger the standard omni completion key stroke.
-                             By setting the b:sql_compl_type variable, this
-                             instructs the SQL completion plugin to populate
-                             the popup with items from the sqlKeyword highlight
-                             group.  The plugin will also cache this result
-                             until Vim is restarted.  The syntax list is 
-                             retrieved using the syntaxcomplete plugin.
+                             Passing in 'sqlKeyword' instructs the SQL
+                             completion plugin to populate the popup with
+                             items from the sqlKeyword highlight group.  The
+                             plugin will also cache this result until Vim is
+                             restarted.  The syntax list is retrieved using
+                             the syntaxcomplete plugin.
 <
-Setting b:sql_compl_type = 'syntax' is a special case.  This instructs the
+Using the 'syntax' keyword is a special case.  This instructs the
 syntaxcomplete plugin to retrieve all syntax items.  So this will effectively
 work for any of Vim's SQL syntax files.  At the time of writing this includes
 10 different syntax files for the different dialects of SQL (see section 3
@@ -383,7 +391,7 @@ order for the dynamic feature to be enab
 plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).
 
 Dynamic mode is used by several features of the SQL completion plugin.  
-After installing the dbext plugin see the |dbext-tutorial| for additional
+After installing the dbext plugin see the dbext-tutorial for additional
 configuration and usage.  The dbext plugin allows the SQL completion plugin
 to display a list of tables, procedures, views and columns. >
      Table List
@@ -403,9 +411,7 @@ the space bar):
      Stored Procedure List  - <C-C>p
      View List              - <C-C>v
      Column List            - <C-C>c
-                            - .<C-X><C-O>
-                            - If <C-X><C-O> is pressed following a period
-                              it is assumed you are asking for a column list.
+                            - Windows platform only
                             - When viewing a popup window displaying the list
                               of tables, you can press <C-Right>, this will
                               replace the table currently highlighted with
@@ -418,7 +424,7 @@ The SQL completion plugin caches various
 the popup window.  This makes the re-displaying of these lists very
 fast.  If new tables or columns are added to the database it may become 
 necessary to clear the plugins cache.  The default map for this is: >
-        imap <buffer> <C-C>R <C-O>:let b:sql_compl_type='ResetCache'<CR><C-X><C-O>
+    imap <buffer> <C-C>R <C-\><C-O>:call sqlcomplete#Map('ResetCache')<CR><C-X><C-O>
 <
  
 4.3 SQL Tutorial				*sql-completion-tutorial*
@@ -472,7 +478,7 @@ is to run the command, :DBListTable.  If
 dbext.vim is working as expected.  If not, please consult the dbext.txt 
 documentation.
 
-Assuming you have followed the |dbext-tutorial| you can press <C-C>t to
+Assuming you have followed the dbext-tutorial you can press <C-C>t to
 display a list of tables.  There is a delay while dbext is creating the table
 list.  After the list is displayed press <C-W>.  This will remove both the 
 popup window and the table name already chosen when the list became active. >
@@ -496,7 +502,7 @@ platforms since *nix does not recognize 
 together.  If you wish to enable this functionality on a *nix platform choose
 a key and create this mapping (see |sql-completion-maps| for further 
 details on where to create this imap): >
-    imap <buffer> <your_keystroke>  <CR><C-\><C-O>:let b:sql_compl_type='column'<CR><C-X><C-O>
+    imap <buffer> <your_keystroke> <CR><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
 <
 Example of using column completion:
      - Press <C-C>t again to display the list of tables.  
@@ -611,9 +617,65 @@ your |vimrc|: >
                    MYTABLENAME --> M
 <
  
-4.5 Customizing Maps				*sql-completion-maps*
---------------------
+4.5 SQL Maps	        			*sql-completion-maps*
+------------
+
+The default SQL maps have been described in other sections of this document in
+greater detail.  Here is a list of the maps with a brief description of each.
+
+Static Maps
+-----------
+These are maps which use populate the completion list using Vim's syntax
+highlighting rules. >
+    <C-C>a
+<       - Displays all SQL syntax items. >
+    <C-C>k 
+<       - Displays all SQL syntax items defined as 'sqlKeyword'. >
+    <C-C>f 
+<       - Displays all SQL syntax items defined as 'sqlFunction. >
+    <C-C>o
+<       - Displays all SQL syntax items defined as 'sqlOption'. >
+    <C-C>T
+<       - Displays all SQL syntax items defined as 'sqlType'. >
+    <C-C>s
+<       - Displays all SQL syntax items defined as 'sqlStatement'. >
 
+Dynamic Maps
+------------
+These are maps which use populate the completion list using the dbext.vim plugin. >
+    <C-C>t  
+<       - Displays a list of tables. >
+    <C-C>p
+<       - Displays a list of procedures. >
+    <C-C>v
+<       - Displays a list of views. >
+    <C-C>c
+<       - Displays a list of columns for a specific table. >
+    <C-C>l
+<       - Displays a comma separated list of columns for a specific table. >
+    <C-C>L
+<       - Displays a comma separated list of columns for a specific table.
+          This should only be used when the completion window is active. >
+    <C-Right>
+<       - Displays a list of columns for the table currently highlighted in
+          the completion window.  <C-Right> is not recognized on most Unix
+          systems, so this maps is only created on the Windows platform.
+          If you would like the same feature on Unix, choose a different key
+          and make the same map in your vimrc.
+          This should only be used when the completion window is active. >
+    <C-Left>
+<       - Displays the list of tables.
+          <C-Left> is not recognized on most Unix systems, so this maps is
+          only created on the Windows platform.  If you would like the same
+          feature on Unix, choose a different key and make the same map in
+          your vimrc.
+          This should only be used when the completion window is active. >
+    <C-C>R
+<       - This maps removes all cached items and forces the SQL completion 
+          to regenerate the list of items.
+
+Customizing Maps
+----------------
 You can create as many additional key maps as you like.  Generally, the maps
 will be specifying different syntax highlight groups.  
 
@@ -624,7 +686,7 @@ your |vimrc|: >
 < 
 Do no edit ftplugin/sql.vim directly!  If you change this file your changes
 will be over written on future updates.  Vim has a special directory structure
-that allows you to make customizations without changing the files that are
+which allows you to make customizations without changing the files that are
 included with the Vim distribution.  If you wish to customize the maps
 create an after/ftplugin/sql.vim (see |after-directory|) and place the same
 maps from the ftplugin/sql.vim in it using your own key strokes.  <C-C> was
@@ -632,4 +694,44 @@ chosen since it will work on both Window
 platform you can also use <C-Space> or ALT keys.
  
 
+4.6 Using with other filetypes		        *sql-completion-filetypes*
+------------------------------
+
+Many times SQL can be used with different filetypes.  For example Perl, Java,
+PHP, Javascript can all interact with a database.  Often you need both the SQL
+completion as well as the completion capabilities for the current language you
+are editing.
+
+This can be enabled easily with the following steps (assuming a Perl file): >
+    1.  :e test.pl
+    2.  :set filetype=sql
+    3.  :set ft=perl
+
+Step 1
+------
+Begins by editing a Perl file.  Vim automatically sets the filetype to
+"perl".  By default, Vim runs the appropriate filetype file
+ftplugin/perl.vim.  If you are using the syntax completion plugin by following
+the directions at |ft-syntax-omni| then the |'omnifunc'| option has been set to
+"syntax#Complete".  Pressing <C-X><C-O> will display the omni popup containing
+the syntax items for Perl.
+
+Step 2
+------
+Manually setting the filetype to 'sql' will also fire the appropriate filetype
+files ftplugin/sql.vim.  This file will define a number of buffer specific
+maps for SQL completion, see |sql-completion-maps|.  Now these maps have
+been created and the SQL completion plugin has been initialized.  All SQL
+syntax items have been cached in preparation.  The SQL filetype script detects
+we are attempting to use two different completion plugins.  Since the SQL maps
+begin with <C-C>, the maps will toggle the |'omnifunc'| when in use.  So you
+can use <C-X><C-O> to continue using the completion for Perl (using the syntax
+completion plugin) and <C-C> to use the SQL completion features.
+
+Step 3
+------
+Setting the filetype back to Perl sets all the usual "perl" related items back
+as they were.
+     
+
 vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.0c.  Last change: 2006 Mar 26
+*starting.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -413,7 +413,7 @@ a slash.  Thus "-R" means recovery and "
 		process and exits the current one.  "-f" should be used when
 		gvim is started by a program that will wait for the edit
 		session to finish (e.g., mail or readnews).  If you want gvim
-		never to fork, include 'f' in 'guioptions' in your .gvimrc.
+		never to fork, include 'f' in 'guioptions' in your |gvimrc|.
 		Careful: You can use "-gf" to start the GUI in the foreground,
 		but "-fg" is used to specify the foreground color.  |gui-fork|
 		{not in Vi}
@@ -430,7 +430,7 @@ a slash.  Thus "-R" means recovery and "
 <		Also consider using autocommands; see |autocommand|.
 		When {vimrc} is equal to "NONE" (all uppercase), all
 		initializations from files and environment variables are
-		skipped, including reading the .gvimrc file when the GUI
+		skipped, including reading the |gvimrc| file when the GUI
 		starts.  Loading plugins is also skipped.
 		When {vimrc} is equal to "NORC" (all uppercase), this has the
 		same effect as "NONE", but loading plugins is not skipped.
@@ -440,7 +440,7 @@ a slash.  Thus "-R" means recovery and "
 		{not in Vi}
 
 							*-U* *E230*
--U {gvimrc}	The file "gvimrc" is read for initializations when the GUI
+-U {gvimrc}	The file {gvimrc} is read for initializations when the GUI
 		starts.  Other GUI initializations are skipped.  When {gvimrc}
 		is equal to "NONE", no file is read for GUI initializations at
 		all.  |gui-init|
@@ -761,7 +761,8 @@ 3. Execute Ex commands, from environment
 
 			  *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc*
      c. Four places are searched for initializations.  The first that exists
-	is used, the others are ignored.
+	is used, the others are ignored.  The $MYVIMRC environment variable is
+	set to the file that was first found, unless $MYVIMRC was already set.
 	-  The environment variable VIMINIT (see also |compatible-default|) (*)
 	   The value of $VIMINIT is used as an Ex command line.
 	-  The user vimrc file(s):
@@ -905,7 +906,8 @@ resetting other options (see 'compatible
 not been set or reset will be changed.  This has the same effect like the
 value of 'compatible' had this value when starting Vim.  Note that this
 doesn't happen for the system-wide vimrc file.  It does also happen for gvimrc
-files.
+files.  The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc
+and/or gvimrc file.
 
 But there is a side effect of setting or resetting 'compatible' at the moment
 a .vimrc file is found: Mappings are interpreted the moment they are
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Mar 28
+*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Apr 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -81,14 +81,14 @@ automatically selected if the 'fileforma
 
 NOTE: When using reverse video ("gvim -fg white -bg black"), the default value
 of 'background' will not be set until the GUI window is opened, which is after
-reading the .gvimrc.  This will cause the wrong default highlighting to be
+reading the |gvimrc|.  This will cause the wrong default highlighting to be
 used.  To set the default value of 'background' before switching on
-highlighting, include the ":gui" command in the .gvimrc: >
+highlighting, include the ":gui" command in the |gvimrc|: >
 
    :gui		" open window and set default for 'background'
    :syntax on	" start highlighting, use 'background' to set colors
 
-NOTE: Using ":gui" in the .gvimrc means that "gvim -f" won't start in the
+NOTE: Using ":gui" in the |gvimrc| means that "gvim -f" won't start in the
 foreground!  Use ":gui -f" then.
 
 
@@ -1013,10 +1013,10 @@ source form if the fortran_free_source v
 fixed source form if the fortran_fixed_source variable has been set.  If
 neither of these variables have been set, the syntax script attempts to
 determine which source form has been used by examining the first five columns
-of the first 25 lines of your file.  If no signs of free source form are
+of the first 250 lines of your file.  If no signs of free source form are
 detected, then the file is assumed to be in fixed source form.  The algorithm
 should work in the vast majority of cases.  In some cases, such as a file that
-begins with 25 or more full-line comments, the script may incorrectly decide
+begins with 250 or more full-line comments, the script may incorrectly decide
 that the fortran code is in fixed form.  If that happens, just add a
 non-comment statement beginning anywhere in the first five columns of the
 first twenty five lines, save (:w) and then reload (:e!) the file.
@@ -2304,7 +2304,7 @@ vimrc file: >
 
 SH		*sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
 
-This covers the "normal" Unix (Bourne) sh, bash and the Korn shell.
+This covers the "normal" Unix (Borne) sh, bash and the Korn shell.
 
 Vim attempts to determine which shell type is in use by specifying that
 various filenames are of specific types: >
@@ -2328,6 +2328,11 @@ variables in your <.vimrc>:
 <   sh: >
 	let is_sh	 = 1
 
+If there's no "#! ..." line, and the user hasn't availed himself/herself of a
+default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
+the Borne shell syntax.  No need to quote RFCs or market penetration
+statistics in error reports, please.
+
 If, in your <.vimrc>, you set >
 	let g:sh_fold_enabled= 1
 >
@@ -3760,7 +3765,7 @@ term={attr-list}			*attr-list* *highligh
 	have the same effect.
 	"undercurl" is a curly underline.  When "undercurl" is not possible
 	then "underline" is used.  In general "undercurl" is only available in
-	the GUI.
+	the GUI.  The color is set with |highlight-guisp|.
 
 start={term-list}				*highlight-start* *E422*
 stop={term-list}				*term-list* *highlight-stop*
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.0c.  Last change: 2006 Mar 03
+*tabpage.txt*   For Vim version 7.0c.  Last change: 2006 Mar 31
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -119,12 +119,14 @@ Using the mouse: If the tab page line is
 label to switch to that tab page.  Click where there is no label to go to the
 next tab page.  |'tabline'|
 
-:tabn[ext]					*:tabn* *:tabnext* *gt*
-gt		Go to the next tab page.  Wraps around from the last to the
+:tabn[ext]				*:tabn* *:tabnext* *gt*
+gt					*CTRL-<PageDown>* *<C-PageDown>*
+<C-PageDown>	Go to the next tab page.  Wraps around from the last to the
 		first one.
 
 :tabn[ext] {count}
-{count}gt	Go to tab page {count}.  The first tab page has number one.
+{count}gt				*CTRL-<PageUp>* *<C-PageUp>*
+<C-PageUp>	Go to tab page {count}.  The first tab page has number one.
 
 
 :tabp[revious]				*:tabp* *:tabprevious* *gT*
@@ -198,6 +200,8 @@ Diff mode works per tab page.  You can s
 within one tab page.  Other tab pages can show differences between other
 files.
 
+Variables local to a tab page start with "t:". |tabpage-variable|
+
 The TabLeave and TabEnter autocommand events can be used to do something when
 switching from one tab page to another.  The exact order depends on what you
 are doing.  When creating a new tab page this works as if you create a new
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1042,6 +1042,7 @@
 ++bad	editing.txt	/*++bad*
 ++bin	editing.txt	/*++bin*
 ++builtin_terms	various.txt	/*++builtin_terms*
+++edit	editing.txt	/*++edit*
 ++enc	editing.txt	/*++enc*
 ++ff	editing.txt	/*++ff*
 ++nobin	editing.txt	/*++nobin*
@@ -1655,7 +1656,6 @@ 45.2	usr_45.txt	/*45.2*
 45.3	usr_45.txt	/*45.3*
 45.4	usr_45.txt	/*45.4*
 45.5	usr_45.txt	/*45.5*
-755	spell.txt	/*755*
 8g8	various.txt	/*8g8*
 90.1	usr_90.txt	/*90.1*
 90.2	usr_90.txt	/*90.2*
@@ -1676,6 +1676,8 @@ 90.5	usr_90.txt	/*90.5*
 :.	cmdline.txt	/*:.*
 :/	cmdline.txt	/*:\/*
 :0file	editing.txt	/*:0file*
+:2match	pattern.txt	/*:2match*
+:3match	pattern.txt	/*:3match*
 ::.	cmdline.txt	/*::.*
 ::8	cmdline.txt	/*::8*
 ::e	cmdline.txt	/*::e*
@@ -2909,8 +2911,8 @@ 90.5	usr_90.txt	/*90.5*
 <C-LeftMouse>	tagsrch.txt	/*<C-LeftMouse>*
 <C-MouseDown>	scroll.txt	/*<C-MouseDown>*
 <C-MouseUp>	scroll.txt	/*<C-MouseUp>*
-<C-PageDown>	os_dos.txt	/*<C-PageDown>*
-<C-PageUp>	os_dos.txt	/*<C-PageUp>*
+<C-PageDown>	tabpage.txt	/*<C-PageDown>*
+<C-PageUp>	tabpage.txt	/*<C-PageUp>*
 <C-Right>	motion.txt	/*<C-Right>*
 <C-RightMouse>	tagsrch.txt	/*<C-RightMouse>*
 <CR>	motion.txt	/*<CR>*
@@ -3118,6 +3120,8 @@ C-indenting	indent.txt	/*C-indenting*
 COMSPEC	starting.txt	/*COMSPEC*
 CR-used-for-NL	pattern.txt	/*CR-used-for-NL*
 CTRL-6	editing.txt	/*CTRL-6*
+CTRL-<PageDown>	tabpage.txt	/*CTRL-<PageDown>*
+CTRL-<PageUp>	tabpage.txt	/*CTRL-<PageUp>*
 CTRL-A	change.txt	/*CTRL-A*
 CTRL-B	scroll.txt	/*CTRL-B*
 CTRL-C	pattern.txt	/*CTRL-C*
@@ -3961,6 +3965,7 @@ E751	spell.txt	/*E751*
 E752	spell.txt	/*E752*
 E753	spell.txt	/*E753*
 E754	spell.txt	/*E754*
+E755	spell.txt	/*E755*
 E756	spell.txt	/*E756*
 E757	options.txt	/*E757*
 E758	spell.txt	/*E758*
@@ -3994,6 +3999,9 @@ E782	spell.txt	/*E782*
 E783	spell.txt	/*E783*
 E784	tabpage.txt	/*E784*
 E785	eval.txt	/*E785*
+E786	eval.txt	/*E786*
+E787	diff.txt	/*E787*
+E788	autocmd.txt	/*E788*
 E79	message.txt	/*E79*
 E80	message.txt	/*E80*
 E800	arabic.txt	/*E800*
@@ -4428,6 +4436,7 @@ alt	intro.txt	/*alt*
 alt-input	debugger.txt	/*alt-input*
 alternate-file	editing.txt	/*alternate-file*
 amiga-window	starting.txt	/*amiga-window*
+anonymous-function	eval.txt	/*anonymous-function*
 ant.vim	syntax.txt	/*ant.vim*
 ap	motion.txt	/*ap*
 apache.vim	syntax.txt	/*apache.vim*
@@ -5398,6 +5407,10 @@ g:netrw_uid	pi_netrw.txt	/*g:netrw_uid*
 g:netrw_use_nt_rcp	pi_netrw.txt	/*g:netrw_use_nt_rcp*
 g:netrw_win95ftp	pi_netrw.txt	/*g:netrw_win95ftp*
 g:netrw_winsize	pi_netrw.txt	/*g:netrw_winsize*
+g:tar_browseoptions	pi_tar.txt	/*g:tar_browseoptions*
+g:tar_cmd	pi_tar.txt	/*g:tar_cmd*
+g:tar_readoptions	pi_tar.txt	/*g:tar_readoptions*
+g:tar_writeoptions	pi_tar.txt	/*g:tar_writeoptions*
 g:var	eval.txt	/*g:var*
 g;	motion.txt	/*g;*
 g<	message.txt	/*g<*
@@ -6052,6 +6065,7 @@ masm.vim	syntax.txt	/*masm.vim*
 match()	eval.txt	/*match()*
 match-highlight	pattern.txt	/*match-highlight*
 match-parens	tips.txt	/*match-parens*
+matcharg()	eval.txt	/*matcharg()*
 matchend()	eval.txt	/*matchend()*
 matchit-install	usr_05.txt	/*matchit-install*
 matchlist()	eval.txt	/*matchlist()*
@@ -6426,6 +6440,7 @@ pager	message.txt	/*pager*
 papp.vim	syntax.txt	/*papp.vim*
 paragraph	motion.txt	/*paragraph*
 pascal.vim	syntax.txt	/*pascal.vim*
+pathshorten()	eval.txt	/*pathshorten()*
 pattern	pattern.txt	/*pattern*
 pattern-atoms	pattern.txt	/*pattern-atoms*
 pattern-multi-byte	pattern.txt	/*pattern-multi-byte*
@@ -6607,8 +6622,8 @@ recursive_mapping	map.txt	/*recursive_ma
 redo	undo.txt	/*redo*
 redo-register	undo.txt	/*redo-register*
 ref	intro.txt	/*ref*
-ref-toc	help.txt	/*ref-toc*
 reference	intro.txt	/*reference*
+reference_toc	help.txt	/*reference_toc*
 regexp	pattern.txt	/*regexp*
 regexp-changes-5.4	version5.txt	/*regexp-changes-5.4*
 register	sponsor.txt	/*register*
@@ -6876,9 +6891,7 @@ spell-affix-chars	spell.txt	/*spell-affi
 spell-affix-comment	spell.txt	/*spell-affix-comment*
 spell-affix-flags	spell.txt	/*spell-affix-flags*
 spell-affix-mbyte	spell.txt	/*spell-affix-mbyte*
-spell-affix-nocomp	spell.txt	/*spell-affix-nocomp*
 spell-affix-not-supported	spell.txt	/*spell-affix-not-supported*
-spell-affix-rare	spell.txt	/*spell-affix-rare*
 spell-affix-vim	spell.txt	/*spell-affix-vim*
 spell-compound	spell.txt	/*spell-compound*
 spell-dic-format	spell.txt	/*spell-dic-format*
@@ -6913,6 +6926,7 @@ sql-completion	sql.txt	/*sql-completion*
 sql-completion-columns	sql.txt	/*sql-completion-columns*
 sql-completion-customization	sql.txt	/*sql-completion-customization*
 sql-completion-dynamic	sql.txt	/*sql-completion-dynamic*
+sql-completion-filetypes	sql.txt	/*sql-completion-filetypes*
 sql-completion-maps	sql.txt	/*sql-completion-maps*
 sql-completion-procedures	sql.txt	/*sql-completion-procedures*
 sql-completion-static	sql.txt	/*sql-completion-static*
@@ -7015,6 +7029,7 @@ system()	eval.txt	/*system()*
 system-vimrc	starting.txt	/*system-vimrc*
 s~	change.txt	/*s~*
 t	motion.txt	/*t*
+t:var	eval.txt	/*t:var*
 t_#2	term.txt	/*t_#2*
 t_#4	term.txt	/*t_#4*
 t_%1	term.txt	/*t_%1*
@@ -7174,6 +7189,7 @@ tab-page-intro	tabpage.txt	/*tab-page-in
 tab-page-other	tabpage.txt	/*tab-page-other*
 tabline-menu	tabpage.txt	/*tabline-menu*
 tabpage	tabpage.txt	/*tabpage*
+tabpage-variable	eval.txt	/*tabpage-variable*
 tabpage.txt	tabpage.txt	/*tabpage.txt*
 tabpagebuflist()	eval.txt	/*tabpagebuflist()*
 tabpagenr()	eval.txt	/*tabpagenr()*
@@ -7210,6 +7226,7 @@ tar-contents	pi_tar.txt	/*tar-contents*
 tar-copyright	pi_tar.txt	/*tar-copyright*
 tar-history	pi_tar.txt	/*tar-history*
 tar-manual	pi_tar.txt	/*tar-manual*
+tar-options	pi_tar.txt	/*tar-options*
 tar-usage	pi_tar.txt	/*tar-usage*
 tar.txt	pi_tar.txt	/*tar.txt*
 tcl	if_tcl.txt	/*tcl*
@@ -7663,6 +7680,7 @@ win16-truetype	gui_w16.txt	/*win16-truet
 win16-various	gui_w16.txt	/*win16-various*
 win32	os_win32.txt	/*win32*
 win32-!start	gui_w32.txt	/*win32-!start*
+win32-PATH	os_win32.txt	/*win32-PATH*
 win32-colors	gui_w32.txt	/*win32-colors*
 win32-compiling	os_win32.txt	/*win32-compiling*
 win32-curdir	os_win32.txt	/*win32-curdir*
@@ -7682,6 +7700,7 @@ win32-win3.1	os_win32.txt	/*win32-win3.1
 win32s	os_win32.txt	/*win32s*
 winbufnr()	eval.txt	/*winbufnr()*
 wincol()	eval.txt	/*wincol()*
+window	windows.txt	/*window*
 window-contents	intro.txt	/*window-contents*
 window-exit	editing.txt	/*window-exit*
 window-move-cursor	windows.txt	/*window-move-cursor*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 29
+*todo.txt*      For Vim version 7.0c.  Last change: 2006 Apr 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,22 +30,22 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-When "search" is in 'foldopen' have [s and ]s open folds.
+New Hungarian dictionary. (Laci Nemeth)
+-   Support flags on a suffix used for second level affixes.
+    The flags may also be used for compounding.  Default is an OR
+    mechanism with the flags of the word.
+    Adding "compset" flag on the affixes means the compound flags of the word
+    are not used?
 
-New Hungarian dictionary. (Laci Nemeth)
-    test COMPOUNDFORBIDFLAG
-    implement use of COMPOUNDPERMITFLAG
-    implement use of CHECKCOMPOUND* flags, <compoptions>
-    implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
-    explain the use of affix flags, replace |spell-affix-rare|
+-   implement use of CHECKCOMPOUND* flags, <compoptions> in .spl file
+
+-   Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
+    How is it supposed to work?
 
--   Set user variables to the names of the actually used user vimrc file,
-    the first directory looked for user plugins/syntax files.
-    $MYVIMRC for .vimrc, $MYGVIMRC for .gvimrc, $MYRUNTIME/plugin for
-    runtime files?
-    Also: when the environment variable exists, use it.  If it doesn't
-    exist, set it.  Requires good names: $VIM_USER_VIMRC  $VIM_USER_DIR
-    Add a menu item "Preferences" that does "sp $MYVIMRC".
+-   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
+
+Obey 'switchbuf' "useopen" value for windows in other tabs, e.g. for :sbuffer.
+Or use another value, e.g., "usetab"?
 
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
@@ -641,7 +641,7 @@ 8   On MS-Windows ":make" doesn't show o
     UnxUtils.zip archive.
     Alternate one: http://www.pramodx.20m.com/tee_for_win32.htm, but Walter
     Briscoe says it's not as good.
-8   'fillchars' doesn't work for multi-byte characters.
+8   "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
 8   Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
     ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
 7   Output for ":scriptnames" and ":breaklist" should shorten the file names:
@@ -1090,7 +1090,6 @@ 8   Support saving and restoring session
 
 
 Tab pages:
-9   Win32 GUI: menu for tab pages line.
 9   GUI implementation for the tab pages line for other systems.
 8   Make GUI menu in tab pages line configurable.  Like the popup menu.
 8   tab pages in the session file, if "tabpages" in 'sessionoptions'
@@ -1106,28 +1105,14 @@ 7   Add local highlighting for each tab 
 
 
 Spell checking:
--   Implement COMPOUNDFORBIDFLAG .
 -   Check out Hunspell 1.1.4.
     The manpage doesn't match the source code...
     Try to make the newly added features compatible.
     what does MAXNGRAMSUGS do?
     is COMPLEXPREFIXES necessary when we have flags for affixes?
--   Look into Hungarian dictionary: hu_HU-1.0.tar.gz
-    This one doesn't match with Hunspell 1.1.4.
--   Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
-    How is it supposed to work?
--   When compounding Hunspell doesn't allow affixes inside the compound word,
-    only before and after it.  COMPOUNDPERMITFLAG can be used to allow it.
-    Check Myspell and Aspell if they also work this way.
-    Thus a word + suffix needs a flag that it can't be used with a following
-    compound, and word + prefix can't be after another word in a compound.
+-   Add a command the repeats ]s and z=, showing the misspelled word in its
+    context.  Thus to spell-check a whole file.
 -   suggestion for "KG" to "kg" when it's keepcase.
--   Support flags on a suffix.  Used for second level affixes, rare and
-    nocomp.  The flags may also be used for compounding.  Default is an OR
-    mechanism with the flags of the word.  Adding "compset" on the affixes
-    means the compound flags of the word are not used.
-    Instead of "SFX a 0 add/FLAGS ." we could use "SFX a 0 add . /FLAGS" (or
-    support both).
 -   Support breakpoint character ? 0xb7 and ignore it?  Makes it possible to
     use same wordlist for hyphenation.
 -   Compound word is accepted if nr of words is <= COMPOUNDWORDMAX OR nr of
@@ -1335,6 +1320,8 @@ 8   Support "containedin" argument for "
     cluster can be added to existing syntax items.
 8   C syntax: Don't highlight {} as errors inside () when used like this:
     "({ something })", often used in GCC code.
+7   Add a "startgroup" to a region.  Used like "nextgroup" inside the region,
+    preferred item at the start of the region. (Charles Campbell)
 8   When editing a new file without a name and giving it a name (by writing
     it) and 'filetype' is not set, detect the filetype.  Avoid doing it for
     ":wq file".
@@ -2245,6 +2232,12 @@ 7   Use 'matchpairs' for 'showmatch': Wh
 
 
 'cindent', 'smartindent':
+8   Aligning with "e" of "error" because of the ':' doesn't make sense:
+	cout << (  a ? f() : "error")
+8   Wrong indent with default settings when (dl) appears in this line:
+	    (dl)->barbar(
+			 dk);
+    When "(dl)" is changed to "dl" it uses 'sw' * 2 as expected.
 8   Wrong indent below ? : with ():
 	if ((a ? (b) : c) != 0)
 		       aligns with ":".
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_05.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -25,27 +25,27 @@ Table of contents: |usr_toc.txt|
 *05.1*	The vimrc file					*vimrc-intro*
 
 You probably got tired of typing commands that you use very often.  To start
-with all your favorite option settings and mappings, you write them in what is
-called the vimrc file.  Vim reads this file when it starts up.
-
-If you have trouble finding your vimrc file, use this command: >
+Vim with all your favorite option settings and mappings, you write them in
+what is called the vimrc file.  Vim executes the commands in this file when it
+starts up.
 
-	:scriptnames
+If you already have a vimrc file (e.g., when your sysadmin has one setup for
+you), you can edit it this way: >
 
-One of the first files in the list should be called ".vimrc" or "_vimrc" and
-is located in your home directory.
-   If you don't have a vimrc file yet, see |vimrc| to find out where you can
+	:edit $MYVIMRC
+
+If you don't have a vimrc file yet, see |vimrc| to find out where you can
 create a vimrc file.  Also, the ":version" command mentions the name of the
 "user vimrc file" Vim looks for.
 
-For Unix this file is always used: >
+For Unix and Macintosh this file is always used and is recommended:
 
-	~/.vimrc
+	~/.vimrc ~
 
-For MS-DOS and MS-Windows it is mostly one of these: >
+For MS-DOS and MS-Windows you can use one of these:
 
-	$HOME/_vimrc
-	$VIM/_vimrc
+	$HOME/_vimrc ~
+	$VIM/_vimrc ~
 
 The vimrc file can contain all the commands that you type after a colon.  The
 most simple ones are for setting options.  For example, if you want Vim to
--- a/runtime/doc/usr_24.txt
+++ b/runtime/doc/usr_24.txt
@@ -1,4 +1,4 @@
-*usr_24.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_24.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -232,6 +232,32 @@ and go one directory level deeper, use C
 The results depend on what is found in your file system, of course.  The
 matches are sorted alphabetically.
 
+
+COMPLETING IN SOURCE CODE
+
+Source code files are well structured.  That makes it possible to do
+completion in an intelligent way.  In Vim this is called Omni completion.  In
+some other editors it's called intellisense, but that is a trademark.
+
+The key to Omni completion is CTRL-X CTRL-O.  Obviously the O stands for Omni
+here, so that you can remember it easier.  Let's use an example for editing C
+source:
+
+	{ ~
+	    struct foo *p; ~
+	    p-> ~
+
+The cursor is after "p->".  Now type CTRL-X CTRL-O.  Vim will offer you a list
+of alternatives, which are the items that "struct foo" contains.  That is
+quite different from using CTRL-P, which would complete any word, while only
+members of "struct foo" are valid here.
+
+For Omni completion to work you may need to do some setup.  For C code you
+need to create a tags file and set the 'tags' option.  That is explained
+|ft-c-omni|.  For other filetypes you may need to do something similar, look
+below |compl-omni-filetypes|.  It only works for specific filetypes.  Check
+the value of the 'omnifunc' option to find out if it would work.
+
 ==============================================================================
 *24.4*	Repeating an insert
 
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_31.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -249,6 +249,11 @@ You don't want to do this in a terminal,
 an xterm that supports resizing).
    The gvimrc file is searched for in the same locations as the vimrc file.
 Normally it's name is "~/.gvimrc" for Unix and "$VIM/_gvimrc" for MS-Windows.
+The $MYGVIMRC environment variable is set to it, thus you can use this command
+to edit the file, if you have one: >
+
+	:edit $MYGVIMRC
+<
    If for some reason you don't want to use the normal gvimrc file, you can
 specify another one with the "-U" argument: >
 
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_toc.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -49,7 +49,7 @@ Making Vim Run
 
 
 Reference manual
-|ref-toc|     More detailed information for all commands
+|reference_toc|     More detailed information for all commands
 
 The user manual is available as a single, ready to print HTML and PDF file
 here:
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0c.  Last change: 2006 Mar 29
+*version7.txt*  For Vim version 7.0c.  Last change: 2006 Apr 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -86,6 +86,12 @@ Minor incompatibilities:
 For filetype detection: For many types, instead of ~/.dir/filename use
 */.dir/filename, so that it also works for other user's files.
 
+For quite a few filetypes the indent settings have been moved from the
+filetype plugin to the indent plugin.  If you used: >
+	:filetype plugin on
+Then some indent settings may be missing.  You need to use: >
+	:filetype plugin indent on
+
 ":0verbose" now sets 'verbose' to zero instead of one.
 
 Removed the old and incomplete "VimBuddy" code.
@@ -151,6 +157,10 @@ When defining a user command with |:comm
 abbreviated.  This caused unexpected behavior, such as <li> being recognized
 as <line1>.  The items can no longer be abbreviated.
 
+When executing a FileChangedRO autocommand it is no longer allowed to switch
+to another buffer or edit another file.  This is to prevent crashes (the event
+is triggered deep down in the code where changing buffers is not anticipated).
+
 ==============================================================================
 NEW FEATURES						*new-7*
 
@@ -170,7 +180,7 @@ variable.  Works for Numbers, Strings an
 can be used to turn the string back into the variable value.
 
 The |:let| command can now use "+=".  ":let var += expr" works like
-":let var = var + expr".  "-=" and ".=" works in a similar way.
+":let var = var + expr".  "-=" and ".=" work in a similar way.
 
 With the |:profile| command you can find out where your function or script
 wastes its time.
@@ -277,6 +287,8 @@ window open a new tab instead.
 The |--remote-tab| argument can be used to edit a file in a new tab page in an
 already running Vim server.
 
+Variables starting with "t:" are local to a tab page.
+
 More info here: |tabpage|
 The Win32 GUI tabs were implemented by Yegappan Lakshmanan.
 
@@ -747,6 +759,7 @@ New and extended functions: ~
 |maparg()|		extra argument: use abbreviation
 |mapcheck()|		extra argument: use abbreviation
 |match()|		extra argument: count
+|matcharg()|		return arguments of |:match| command
 |matchend()|		extra argument: count
 |matchlist()|		list with match and submatches of a pattern in a string
 |matchstr()|		extra argument: count
@@ -981,6 +994,11 @@ Vietnamese message translations and menu
 
 Others: ~
 
+The |:read| command has the |++edit| argument.  This means it will use the
+detected 'fileformat', 'fileencoding' and other options for the buffer.  This
+also fixes the problem that editing a compressed file didn't set these
+options.
+
 The Netbeans interface was updated for Sun Studio 10.  The protocol number
 goes from 2.2 to 2.3. (Gordon Prieur)
 
@@ -1056,6 +1074,9 @@ will add a word, but exclude the part of
 
 Ruby interface: add line number methods. (Ryan Paul)
 
+The $MYVIMRC environment variable is set to the first found vimrc file.
+The $MYGVIMRC environment variable is set to the first found gvimrc file.
+
 ==============================================================================
 IMPROVEMENTS						*improvements-7*
 
@@ -2183,7 +2204,7 @@ Yu-sung, 2005 March 21)
 Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
 Paul)
 
---- fixes since Vim 6.0b ---
+--- fixes since Vim 7.0b ---
 
 Getting the GCC version in configure didn't work with Solaris sed.  First
 strip any "darwin." and then get the version number.
@@ -2217,7 +2238,7 @@ apparently doesn't work everywhere.  Use
 
 Typing BS at the "z=" prompt removed the prompt.
 
---- fixes since Vim 6.0c ---
+--- fixes since Vim 7.0c ---
 
 When jumping to another tab page the Vim window size was always set, even when
 nothing in the layout changed.
@@ -2255,4 +2276,113 @@ line.
 Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
 because many people use Windows-1252 while 'encoding' is "latin1".
 
+GTK: Added a workaround for gvim crashing when used over an untrusted ssh
+link, caused by GTK doing something nasty. (Ed Catmur)
+
+Win32: The font used for the tab page labels is too big.  Use the system menu
+font. (George Reilly)
+
+Win32: Adjusting the window position and size to keep it on the screen didn't
+work properly when the taskbar is on the left or top of the screen.
+
+The installman.sh and installml.sh scripts use ${10}, that didn't work with
+old shells.  And use "test -f" instead of "test -e".
+
+Win32: When 'encoding' was set in the vimrc then a directory argument for diff
+mode didn't work.
+
+GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
+were still at their old position.
+
+The parenmatch plugin didn't remember the highlighting per window.
+
+Using ":bd" for a buffer that's the current window in another tab page caused
+a crash.
+
+For a new tab page the 'scroll' option wasn't set to a good default.
+
+Using an end offset for a search "/pat/e" didn't work properly for multi-byte
+text. (Yukihiro Nakadaira)
+
+":s/\n/,/" doubled the text when used on the last line.
+
+When "search" is in 'foldopen' "[s" and "]s" now open folds.
+
+When using a numbered function "dict" can be omitted, but "self" didn't work
+then.  Always add FC_DICT to the function flags when it's part of a
+dictionary.
+
+When "--remote-tab" executes locally it left an empty tab page.
+
+"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
+text.  Do update further lines even though the "$" is displayed.
+
+VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
+
+When highlighting of statusline or tabline is changed there was no redraw to
+show the effect.
+
+Mac: Added "CFBundleIdentifier" to infplist.xml.
+
+Added tabpage-local variables t:var.
+
+Win32: Added double-click in tab pages line creates new tab. (Yegappan
+Lakshmanan)
+
+Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
+
+Fixed crash when 'lines' was set to 1000 in a modeline.
+
+When init_spellfile() finds a writable directory in 'runtimepath' but it
+doesn't contain a "spell" directory, create one.
+
+Win32: executable() also finds "xxd" in the directory where Vim was started,
+but "!xxd" doesn't work.  Append the Vim starting directory to $PATH.
+
+The tab page labels are shortened, directory names are reduced to a single
+letter by default.  Added the pathshorten() function to allow a user to do the
+same.
+
+":saveas" now resets 'readonly' if the file was successfully written.
+
+Set $MYVIMRC file to the first found .vimrc file.
+Set $MYGVIMRC file to the first found .gvimrc file.
+Added menu item "Startup Settings" that edits the $MYVIMRC file
+
+Added matcharg().
+
+Error message E745 appeared twice.  Renamed one to E786.
+
+Fixed crash when using "au BufRead * Sexplore" and doing ":help".  Was wiping
+out a buffer that's still in a window.
+
+":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
+'printencoding' is empty.  Now it assumes latin1. (Mike Williams)
+
+The check for the toolbar feature for Motif, depending on certain included
+files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
+
+Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
+instead of the original text.
+
+When displaying a UTF-8 character with a zero lower byte Vim might think the
+previous character is double-wide.
+
+The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
+
+Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
+HAVE_XM_UNHIGHLIGHTT_H was missing a T.
+
+Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
+copied at once.  Adjusted the Info.plist file for three icons.
+
+When Visual mode is active while switching to another tabpage could get ml_get
+errors.
+
+When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
+to move to the right.
+
+When a line wraps, 'cursorcolumn' was never displayed past the end of the
+line.
+
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/vimball.txt
+++ b/runtime/doc/vimball.txt
@@ -1,4 +1,4 @@
-*vimball.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*vimball.txt*	For Vim version 7.0c.  Last change: 2006 Apr 01
 
 	Vimball Archiver
 
@@ -56,6 +56,9 @@ 2. Vimball Manual					*vimball-manual*
 ==============================================================================
 3. Vimball History					*vimball-history*
 
+	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.
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.0c.  Last change: 2006 Mar 11
+*windows.txt*   For Vim version 7.0c.  Last change: 2006 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -33,7 +33,7 @@ compile time}
 disabled at compile time}
 
 ==============================================================================
-1. Introduction						*windows-intro*
+1. Introduction					*windows-intro* *window*
 
 A window is a viewport onto a buffer.  You can use multiple windows on one
 buffer, or several windows on different buffers.
@@ -618,13 +618,15 @@ can also get to them with the buffer lis
 		The |argument-list| is set, like with the |:next| command.
 		The purpose of this command is that it can be used from a
 		program that wants Vim to edit another file, e.g., a debugger.
+		When using the |:tab| modifier each argument is opened in a
+		tab page.  The last window is used if it's empty.
 		{only available when compiled with the +gui feature}
 
 ==============================================================================
 8. Do a command in all buffers or windows			*list-repeat*
 
 							*:windo*
-:windo[!] {cmd}		Execute {cmd} in each window.
+:windo {cmd}		Execute {cmd} in each window.
 			It works like doing this: >
 				CTRL-W t
 				:{cmd}
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 28
+" Last Change:	2006 Apr 04
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -146,7 +146,7 @@ au BufNewFile,BufRead *.asp
 	\ endif
 
 " Grub (must be before catch *.lst)
-au BufNewFile,BufRead /boot/grub/menu.lst,/boot/grub/grub.conf	setf grub
+au BufNewFile,BufRead /boot/grub/menu.lst,/boot/grub/grub.conf,/etc/grub.conf	setf grub
 
 " Assembly (all kinds)
 " *.lst is not pure assembly, it has two extra columns (address, byte codes)
@@ -602,10 +602,10 @@ au BufNewFile,BufRead *.mas,*.master		se
 au BufNewFile,BufRead *.fs,*.ft			setf forth
 
 " Fortran
-au BufNewFile,BufRead *.f,*.F,*.for,*.fpp,*.FPP*.ftn,*.f77,*.F77,*.f90,*.F90,*.f95,*.F95	setf fortran
+au BufNewFile,BufRead *.f,*.F,*.for,*.fpp,*.FPP,*.ftn,*.f77,*.F77,*.f90,*.F90,*.f95,*.F95	setf fortran
 
 " FStab
-au BufNewFile,BufRead fstab			setf fstab
+au BufNewFile,BufRead fstab,mtab		setf fstab
 
 " GDB command files
 au BufNewFile,BufRead .gdbinit			setf gdb
@@ -880,7 +880,7 @@ au BufNewFile,BufRead *.ist,*.mst		setf 
 au BufNewFile,BufRead *.man			setf man
 
 " Man config
-au BufNewFile,BufRead /etc/man.conf		setf manconf
+au BufNewFile,BufRead /etc/man.conf,man.config	setf manconf
 
 " Maple V
 au BufNewFile,BufRead *.mv,*.mpl,*.mws		setf maple
@@ -1555,6 +1555,10 @@ au BufNewFile,BufRead *.sim			setf simul
 " SINDA
 au BufNewFile,BufRead *.sin,*.s85		setf sinda
 
+" SiSU
+au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._ssi setf sisu
+au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu
+
 " SKILL
 au BufNewFile,BufRead *.il,*.ils,*.cdf		setf skill
 
--- a/runtime/ftplugin/fortran.vim
+++ b/runtime/ftplugin/fortran.vim
@@ -1,10 +1,11 @@
 " Vim settings file
 " Language:	Fortran90 (and Fortran95, Fortran77, F and elf90)
-" Version:	0.44
-" Last Change:	2003 May 18
+" Version:	0.45
+" Last Change:	2006 Apr. 03
 " URL:		http://www.unb.ca/chem/ajit/ftplugin/fortran.vim
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-plugin from Vim
+" Credits:      Useful suggestions were made by Stefano Zacchiroli
 
 " Only do these settings when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -26,11 +27,11 @@ if !exists("b:fortran_fixed_source")
   else
     " f90 and f95 allow both fixed and free source form
     " assume fixed source form unless signs of free source form
-    " are detected in the first five columns of the first 25 lines
+    " are detected in the first five columns of the first 250 lines
     " Detection becomes more accurate and time-consuming if more lines
     " are checked. Increase the limit below if you keep lots of comments at
     " the very top of each file and you have a fast computer
-    let s:lmax = 25
+    let s:lmax = 250
     if ( s:lmax > line("$") )
       let s:lmax = line("$")
     endif
@@ -73,7 +74,8 @@ endif
 " Set 'formatoptions' to break comment and text lines but allow long lines
 setlocal fo+=tcql
 
-setlocal include=^#\\=\\s*include\\s\\+
+setlocal include=^\\c#\\=\\s*include\\s\\+
+setlocal suffixesadd+=.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp
 
 let s:cposet=&cpoptions
 set cpoptions-=C
@@ -83,6 +85,7 @@ if !exists("b:match_words")
   let s:notend = '\%(\<end\s\+\)\@<!'
   let s:notselect = '\%(\<select\s\+\)\@<!'
   let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!'
+  let s:notprocedure = '\%(\s\+procedure\>\)\@!'
   let b:match_ignorecase = 1
   let b:match_words =
     \ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' .
@@ -95,7 +98,7 @@ if !exists("b:match_words")
     \ s:notend . '\<interface\>:\<end\s*interface\>,'.
     \ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'.
     \ s:notend . '\<function\>:\<end\s*function\>,'.
-    \ s:notend . '\<module\>:\<end\s*module\>,'.
+    \ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'.
     \ s:notend . '\<program\>:\<end\s*program\>'
 endif
 
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -2,7 +2,7 @@
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
 " Version:	0.36
 " URL:		http://www.unb.ca/chem/ajit/indent/fortran.vim
-" Last Change:	2004 Apr. 05
+" Last Change:	2006 Apr. 02
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-indent from Vim
 
@@ -12,9 +12,6 @@ if exists("b:did_indent")
 endif
 let b:did_indent = 1
 
-let s:cposet=&cpoptions
-set cpoptions-=C
-
 setlocal indentkeys+==~end,=~case,=~if,=~else,=~do,=~where,=~elsewhere,=~select
 setlocal indentkeys+==~endif,=~enddo,=~endwhere,=~endselect
 
@@ -30,11 +27,11 @@ if !exists("b:fortran_fixed_source")
   else
     " f90 and f95 allow both fixed and free source form
     " assume fixed source form unless signs of free source form
-    " are detected in the first five columns of the first 25 lines
+    " are detected in the first five columns of the first 250 lines
     " Detection becomes more accurate and time-consuming if more lines
     " are checked. Increase the limit below if you keep lots of comments at
     " the very top of each file and you have a fast computer
-    let s:lmax = 25
+    let s:lmax = 250
     if ( s:lmax > line("$") )
       let s:lmax = line("$")
     endif
@@ -64,6 +61,9 @@ else
   endif
 endif
 
+let s:cposet=&cpoptions
+set cpoptions-=C
+
 function FortranGetIndent(lnum)
   let ind = indent(a:lnum)
   let prevline=getline(a:lnum)
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -56,7 +56,7 @@ function GetPythonIndent(lnum)
   " Trick: use the non-existing "dummy" variable to break out of the loop when
   " going too far back.
   call cursor(plnum, 1)
-  let parlnum = searchpair('(', '', ')', 'nbW',
+  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
 	  \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
 	  \ . " =~ '\\(Comment\\|String\\)$'")
@@ -75,14 +75,14 @@ function GetPythonIndent(lnum)
   "       + b
   "       + c)
   call cursor(a:lnum, 1)
-  let p = searchpair('(', '', ')', 'bW',
+  let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
 	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
 	  \ . " =~ '\\(Comment\\|String\\)$'")
   if p > 0
     if p == plnum
       " When the start is inside parenthesis, only indent one 'shiftwidth'.
-      let pp = searchpair('(', '', ')', 'bW',
+      let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
 	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
 	  \ . " =~ '\\(Comment\\|String\\)$'")
--- a/runtime/lang/menu_de_de.latin1.vim
+++ b/runtime/lang/menu_de_de.latin1.vim
@@ -102,7 +102,7 @@ menutrans &Keymap					&Tastatur-Belegung
 
 " {{{  TOOLS / WERKZEUGE
 if has("spell")
-    menutrans &Spelling					&Rechtschreibprfung
+    menutrans &Spelling					&Rechtschreibung
     menutrans &Spell\ Check\ On				&Rechtschreibprfung\ An
     menutrans Spell\ Check\ &Off			Rechtschreibprfung\ &Aus
     menutrans To\ &Next\ error<Tab>]s			Zum\ &Nchsten\ Fehler<Tab>]s
--- a/runtime/lang/menu_it_it.latin1.vim
+++ b/runtime/lang/menu_it_it.latin1.vim
@@ -1,7 +1,7 @@
 " Menu Translations:	Italian / Italiano
-" Maintainer:		Antonio Colombo <azc10@yahoo.com>
-"			Vlad Sandrini <sator72@libero.it>
-" Last Change:	2005 Aug 13
+" Maintainer:		Antonio Colombo <azc100@gmail.com>
+"			Vlad Sandrini <vlad.gently@gmail.com>
+" Last Change:	2006 Apr 03
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -33,6 +33,7 @@ let g:menutrans_help_dialog = "Batti un comando o una parola per cercare aiuto:\n\nPremetti i_ per comandi in modalit Input (ad.es.: i_CTRL-X)\nPremetti c_ per comandi che editano la linea-comandi (ad.es.: c_<Del>)\nPremetti ' per un nome di opzione (ad.es.: 'shiftwidth')"
 "
 menut &Open\.\.\.<Tab>:e		&Apri\.\.\.<Tab>:e
 menut Sp&lit-Open\.\.\.<Tab>:sp	A&pri\ nuova\ Finestra\.\.\.<Tab>:sp
+menut Open\ Tab\.\.\.<Tab>:tabnew Apri\ nuova\ &Linguetta\.\.\.<Tab>:tabnew
 menut &New<Tab>:enew		&Nuovo<Tab>:enew
 menut &Close<Tab>:close		&Chiudi<Tab>:close
 menut &Save<Tab>:w			&Salva<Tab>:w
@@ -84,7 +85,7 @@ menut Always		Sempre
 
 menut Toggle\ Insert\ &Mode<Tab>:set\ im!	&Modalit\ Inserimento\ S/No<Tab>:set\ im!
 menut Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	C&ompatibile\ Vi\ S/No<Tab>:set\ cp!
-menut Search\ &Path\.\.\.	Ca&mmino\ di\ ricerca\.\.\.
+menut Search\ &Path\.\.\.	&Percorso\ di\ ricerca\.\.\.
 menut Ta&g\ Files\.\.\.		File\ Ta&g\.\.\.
 "
 " Opzioni GUI
@@ -166,7 +167,7 @@ menut &Spell\ Check\ On			Attiva\ &Contr
 menut Spell\ Check\ &Off		&Disattiva\ controllo\ ortografico
 menut To\ &Next\ error<Tab>]s		Errore\ &Seguente<tab>]s
 menut To\ &Previous\ error<Tab>[s	Errore\ &Precedente<tab>[s
-menut Suggest\ &Corrections<Tab>z?	&Suggerimenti<Tab>z?
+menut Suggest\ &Corrections<Tab>z=	&Suggerimenti<Tab>z=
 menut &Repeat\ correction<Tab>:spellrepall	&Ripeti\ correzione<Tab>:spellrepall
 menut Set\ language\ to\ "en"		Imposta\ lingua\ a\ "en"
 menut Set\ language\ to\ "en_au"	Imposta\ lingua\ a\ "en_au"
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 09
+" Last Change:	2006 Apr 02
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -177,6 +177,28 @@ endif
 
 an 20.425	 &Edit.-SEP3-				<Nop>
 an 20.430	 &Edit.Settings\ &Window		:options<CR>
+an 20.435	 &Edit.Startup\ &Settings		:call <SID>EditVimrc()<CR>
+
+fun! s:EditVimrc()
+  if $MYVIMRC != ''
+    let fname = "$MYVIMRC"
+  elseif has("win32") || has("dos32") || has("dos16") || has("os2")
+    if $HOME != ''
+      let fname = "$HOME/_vimrc"
+    else
+      let fname = "$VIM/_vimrc"
+    endif
+  elseif has("amiga")
+    let fname = "s:.vimrc"
+  else
+    let fname = "$HOME/.vimrc"
+  endif
+  if &mod
+    exe "split " . fname
+  else
+    exe "edit " . fname
+  endif
+endfun
 
 fun! s:FixFText()
   " Fix text in nameless register to be used with :promptfind.
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -1,7 +1,7 @@
 " Set options and add mapping such that Vim behaves a lot like MS-Windows
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2006 Mar 28
+" Last change:	2006 Apr 02
 
 " bail out if this isn't wanted (mrsvim.vim uses this).
 if exists("g:skip_loading_mswin") && g:skip_loading_mswin
@@ -83,6 +83,8 @@ noremap <C-A> gggH<C-O>G
 inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
 cnoremap <C-A> <C-C>gggH<C-O>G
 onoremap <C-A> <C-C>gggH<C-O>G
+snoremap <C-A> <C-C>gggH<C-O>G
+xnoremap <C-A> <C-C>ggVG
 
 " CTRL-Tab is Next window
 noremap <C-Tab> <C-W>w
--- 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 Mar 29
+" Last Change: 2006 Apr 04
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
@@ -16,8 +16,6 @@ augroup matchparen
   autocmd! CursorMoved,CursorMovedI * call s:Highlight_Matching_Pair()
 augroup END
 
-let s:paren_hl_on = 0
-
 " Skip the rest if it was already done.
 if exists("*s:Highlight_Matching_Pair")
   finish
@@ -30,9 +28,9 @@ set cpo-=C
 " for any matching paren.
 function! s:Highlight_Matching_Pair()
   " Remove any previous match.
-  if s:paren_hl_on
+  if exists('w:paren_hl_on') && w:paren_hl_on
     3match none
-    let s:paren_hl_on = 0
+    let w:paren_hl_on = 0
   endif
 
   " Avoid that we remove the popup menu.
@@ -63,21 +61,25 @@ function! s:Highlight_Matching_Pair()
 
   " Figure out the arguments for searchpairpos().
   " Restrict the search to visible lines with "stopline".
-  " And avoid searching very far (e.g., for closed folds)
+  " And avoid searching very far (e.g., for closed folds and long lines)
   if i % 2 == 0
     let s_flags = 'nW'
     let c2 = plist[i + 1]
-    let stopline = line('w$')
-    if stopline > c_lnum + 100
-      let stopline = c_lnu + 100
+    if has("byte_offset") && has("syntax_items") && &smc > 0
+      let stopbyte = min([line2byte("$"), line2byte(".") + col(".") + &smc * 2])
+      let stopline = min([line('w$'), byte2line(stopbyte)])
+    else
+      let stopline = min([line('w$'), c_lnum + 100])
     endif
   else
     let s_flags = 'nbW'
     let c2 = c
     let c = plist[i - 1]
-    let stopline = line('w0')
-    if stopline < c_lnum - 100
-      let stopline = c_lnu - 100
+    if has("byte_offset") && has("syntax_items") && &smc > 0
+      let stopbyte = max([1, line2byte(".") + col(".") - &smc * 2])
+      let stopline = max([line('w0'), byte2line(stopbyte)])
+    else
+      let stopline = max([line('w0'), c_lnum - 100])
     endif
   endif
   if c == '['
@@ -86,7 +88,7 @@ function! s:Highlight_Matching_Pair()
   endif
 
   " When not in a string or comment ignore matches inside them.
-  let s_skip ='synIDattr(synID(c_lnum, c_col - before, 0), "name") ' .
+  let s_skip ='synIDattr(synID(line("."), col(".") - before, 0), "name") ' .
 	\ '=~?  "string\\|comment"'
   execute 'if' s_skip '| let s_skip = 0 | endif'
 
@@ -105,7 +107,7 @@ function! s:Highlight_Matching_Pair()
   if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
     exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
 	  \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
-    let s:paren_hl_on = 1
+    let w:paren_hl_on = 1
   endif
 endfunction
 
--- a/runtime/plugin/vimballPlugin.vim
+++ b/runtime/plugin/vimballPlugin.vim
@@ -21,7 +21,7 @@ set cpo&vim
 com! -ra -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>)
 com! -na=0 UseVimball  call vimball#Vimball(1)
 com! -na=0 VimballList call vimball#Vimball(0)
-au BufReadPost *.vba echohl WarningMsg | echo "Source this file to extract it! (:so %)" | echohl None
+au BufEnter *.vba echohl WarningMsg | echo "Source this file to extract it! (:so %)" | echohl None
 
 let &cpo= s:keepcpo
 unlet s:keepcpo
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Jun 20
+" Last Change:	2006 Apr 05
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -184,7 +184,7 @@ endif
 
 if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
   if exists("c_gnu")
-    syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__
+    syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
   endif
   syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__
   syn keyword cConstant __STDC_VERSION__
@@ -195,6 +195,7 @@ if !exists("c_no_ansi") || exists("c_ans
   syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN
   syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX
   if !exists("c_no_c99")
+    syn keyword cConstant __func__
     syn keyword cConstant LLONG_MAX ULLONG_MAX
     syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN
     syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX
--- a/runtime/syntax/desc.vim
+++ b/runtime/syntax/desc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
-" Language:	ROCKLinux .desc
-" Maintainer:	Piotr Esden-Tempski <esden@rocklinux.org>
-" Last Change:	2002 Apr 23
+" Language:	T2 / ROCK Linux .desc
+" Maintainer:	René Rebe <rene@exactcode.de>, Piotr Esden-Tempski <esden@rocklinux.org>
+" Last Change:	2006 Mar 30
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -14,10 +14,11 @@ endif
 " syntax definitions
 
 setl iskeyword+=-
-syn keyword descFlag DIETLIBC contained
+syn keyword descFlag DIETLIBC KAFFE JAIL FPIC-QUIRK NO-LIBTOOL-QUIRK AUTOMAKE-QUIRK NO-AS-NEEDED NO-SSP contained
 syn keyword descLicense Unknown GPL LGPL FDL MIT BSD OpenSource Free-to-use Commercial contained
 
 " tags
+syn match descTag /^\[\(COPY\)\]/
 syn match descTag /^\[\(I\|TITLE\)\]/
 syn match descTag /^\[\(T\|TEXT\)\]/ contained
 syn match descTag /^\[\(U\|URL\)\]/
@@ -29,6 +30,7 @@ syn match descTag /^\[\(E\|DEP\|DEPENDEN
 syn match descTag /^\[\(R\|ARCH\|ARCHITECTURE\)\]/
 syn match descTag /^\[\(L\|LICENSE\)\]/ contained
 syn match descTag /^\[\(S\|STATUS\)\]/
+syn match descTag /^\[\(O\|CONF\)\]/
 syn match descTag /^\[\(V\|VER\|VERSION\)\]/
 syn match descTag /^\[\(P\|PRI\|PRIORITY\)\]/ nextgroup=descInstall skipwhite
 syn match descTag /^\[\(D\|DOWN\|DOWNLOAD\)\]/ nextgroup=descSum skipwhite
@@ -36,7 +38,7 @@ syn match descTag /^\[\(D\|DOWN\|DOWNLOA
 " misc
 syn match descUrl /\w\+:\/\/\S\+/
 syn match descCategory /\w\+\/\w\+/ contained
-syn match descEmail /<\w\+@[\.A-Za-z0-9]\+>/
+syn match descEmail /<[\.A-Za-z0-9]\+@[\.A-Za-z0-9]\+>/
 
 " priority tag
 syn match descInstallX /X/ contained
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
-" Version:	0.86
+" Version:	0.87
 " URL:		http://www.unb.ca/chem/ajit/syntax/fortran.vim
-" Last Change:	2003 Mar. 12
+" Last Change:	2006 Apr. 04
 " Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-syntax from Vim
 " Credits:
@@ -74,7 +74,7 @@ if !exists("b:fortran_fixed_source")
     " Detection becomes more accurate and time-consuming if more lines
     " are checked. Increase the limit below if you keep lots of comments at
     " the very top of each file and you have a fast computer.
-    let b:lmax = 25
+    let b:lmax = 250
     if ( b:lmax > line("$") )
       let b:lmax = line("$")
     endif
@@ -94,10 +94,7 @@ endif
 
 syn case ignore
 
-if b:fortran_dialect == "f77"
-  syn match fortranIdentifier		"\<\a\(\a\|\d\)*\>" contains=fortranSerialNumber
-else
-  syn match fortran90Identifier		"\<\a\w*\>" contains=fortranSerialNumber
+if b:fortran_dialect !=? "f77"
   if version >= 600
     if b:fortran_fixed_source == 1
       syn match fortranConstructName	"^\s\{6,}\zs\a\w*\ze\s*:"
@@ -120,7 +117,9 @@ endif
 
 syn match   fortranUnitHeader	"\<end\>"
 
-syn keyword fortranType		character complex integer
+syn match fortranType		"\<character\>"
+syn match fortranType		"\<complex\>"
+syn match fortranType		"\<integer\>"
 syn keyword fortranType		intrinsic
 syn match fortranType		"\<implicit\>"
 syn keyword fortranStructure	dimension
@@ -129,7 +128,7 @@ syn match fortranUnitHeader	"\<subroutin
 syn keyword fortranCall		call
 syn match fortranUnitHeader	"\<function\>"
 syn match fortranUnitHeader	"\<program\>"
-syn keyword fortranStatement	return stop
+syn keyword fortranKeyword	return stop
 syn keyword fortranConditional	else then
 syn match fortranConditional	"\<if\>"
 syn match fortranRepeat		"\<do\>"
@@ -137,7 +136,7 @@ syn match fortranRepeat		"\<do\>"
 syn keyword fortranTodo		contained todo fixme
 
 "Catch errors caused by too many right parentheses
-syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded
+syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded,@spell
 syn match  fortranParenError   ")"
 
 syn match fortranOperator	"\.\s*n\=eqv\s*\."
@@ -146,8 +145,7 @@ syn match fortranOperator	"\(+\|-\|/\|\*
 
 syn match fortranBoolean	"\.\s*\(true\|false\)\s*\."
 
-syn keyword fortranReadWrite	backspace close inquire open rewind endfile
-syn keyword fortranReadWrite	read write print
+syn keyword fortranReadWrite	backspace close endfile inquire open print read rewind write
 
 "If tabs are allowed then the left margin checks do not work
 if exists("fortran_have_tabs")
@@ -156,36 +154,14 @@ else
   syn match fortranTab		"\t"
 endif
 
-syn keyword fortranIO		unit file iostat access blank fmt form
-syn keyword fortranIO		recl status exist opened number named name
-syn keyword fortranIO		sequential direct rec
-syn keyword fortranIO		formatted unformatted nextrec
+syn keyword fortranIO		access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit
 
-syn keyword fortran66Intrinsic		cabs ccos cexp clog csin csqrt
-syn keyword fortran66Intrinsic		dacos dasin datan datan2 dcos dcosh
-syn keyword fortran66Intrinsic		ddim dexp dint dlog dlog10 dmod dabs
-syn keyword fortran66Intrinsic		dnint dsign dsin dsinh dsqrt dtan
-syn keyword fortran66Intrinsic		dtanh iabs idim idnint isign idint ifix
-syn keyword fortran66Intrinsic		amax0 amax1 dmax1 max0 max1
-syn keyword fortran66Intrinsic		amin0 amin1 dmin1 min0 min1
-syn keyword fortran66Intrinsic		amod float sngl alog alog10
+syn keyword fortran66Intrinsic		alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl
 
 " Intrinsics provided by some vendors
-syn keyword fortranExtraIntrinsic	cdabs cdcos cdexp cdlog cdsin cdsqrt
-syn keyword fortranExtraIntrinsic	cqabs cqcos cqexp cqlog cqsin cqsqrt
-syn keyword fortranExtraIntrinsic	qacos qasin qatan qatan2 qcos qcosh
-syn keyword fortranExtraIntrinsic	qdim qexp iqint qlog qlog10 qmod qabs
-syn keyword fortranExtraIntrinsic	qnint qsign qsin qsinh qsqrt qtan
-syn keyword fortranExtraIntrinsic	qtanh qmax1 qmin1
-syn keyword fortranExtraIntrinsic	dimag qimag dcmplx qcmplx dconjg qconjg
-syn keyword fortranExtraIntrinsic	gamma dgamma qgamma algama dlgama qlgama
-syn keyword fortranExtraIntrinsic	erf derf qerf erfc derfc qerfc
-syn keyword fortranExtraIntrinsic	dfloat
+syn keyword fortranExtraIntrinsic	algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama erf erfc gamma iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh
 
-syn keyword fortran77Intrinsic	abs acos aimag aint anint asin atan atan2
-syn keyword fortran77Intrinsic	cos sin tan sinh cosh tanh exp log log10
-syn keyword fortran77Intrinsic	sign sqrt int cmplx nint min max conjg
-syn keyword fortran77Intrinsic	char ichar index
+syn keyword fortran77Intrinsic	abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
 syn match fortran77Intrinsic	"\<len\s*[(,]"me=s+3
 syn match fortran77Intrinsic	"\<real\s*("me=s+4
 syn match fortranType		"\<implicit\s\+real"
@@ -231,15 +207,16 @@ endif
 
 syn keyword fortranTypeEx	external
 syn keyword fortranIOEx		format
-syn keyword fortranStatementEx	continue
-syn match fortranStatementEx	"\<go\s*to\>"
+syn keyword fortranKeywordEx	continue
+syn match fortranKeywordEx	"\<go\s*to\>"
 syn region fortranStringEx	start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber
 syn keyword fortran77IntrinsicEx	dim lge lgt lle llt mod
-syn keyword fortranStatementOb	assign pause to
+syn keyword fortranKeywordOb	assign pause to
 
 if b:fortran_dialect != "f77"
 
-  syn keyword fortranType	type none
+  syn match fortranType         "\<type\>"
+  syn keyword fortranType	none
 
   syn keyword fortranStructure	private public intent optional
   syn keyword fortranStructure	pointer target allocatable
@@ -252,7 +229,7 @@ if b:fortran_dialect != "f77"
   syn keyword fortranUnitHeader	result operator assignment
   syn match fortranUnitHeader	"\<interface\>"
   syn match fortranUnitHeader	"\<recursive\>"
-  syn keyword fortranStatement	allocate deallocate nullify cycle exit
+  syn keyword fortranKeyword	allocate deallocate nullify cycle exit
   syn match fortranConditional	"\<select\>"
   syn keyword fortranConditional	case default where elsewhere
 
@@ -263,21 +240,9 @@ if b:fortran_dialect != "f77"
   syn keyword fortranIO		pad position action delim readwrite
   syn keyword fortranIO		eor advance nml
 
-  syn keyword fortran90Intrinsic	adjustl adjustr all allocated any
-  syn keyword fortran90Intrinsic	associated bit_size btest ceiling
-  syn keyword fortran90Intrinsic	count cshift date_and_time
-  syn keyword fortran90Intrinsic	digits dot_product eoshift epsilon exponent
-  syn keyword fortran90Intrinsic	floor fraction huge iand ibclr ibits ibset ieor
-  syn keyword fortran90Intrinsic	ior ishft ishftc lbound len_trim
-  syn keyword fortran90Intrinsic	matmul maxexponent maxloc maxval merge
-  syn keyword fortran90Intrinsic	minexponent minloc minval modulo mvbits nearest
-  syn keyword fortran90Intrinsic	pack present product radix random_number
+  syn keyword fortran90Intrinsic	adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack precision present product radix random_number random_seed range repeat reshape rrspacing
+  syn keyword fortran90Intrinsic	scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify
   syn match fortran90Intrinsic		"\<not\>\(\s*\.\)\@!"me=s+3
-  syn keyword fortran90Intrinsic	random_seed range repeat reshape rrspacing scale
-  syn keyword fortran90Intrinsic	selected_int_kind selected_real_kind scan
-  syn keyword fortran90Intrinsic	shape size spacing spread set_exponent
-  syn keyword fortran90Intrinsic	tiny transpose trim ubound unpack verify
-  syn keyword fortran90Intrinsic	precision sum system_clock
   syn match fortran90Intrinsic	"\<kind\>\s*[(,]"me=s+4
 
   syn match  fortranUnitHeader	"\<end\s*function"
@@ -343,7 +308,7 @@ else
 endif
 
 if b:fortran_dialect != "f77"
-  syn match fortranComment	excludenl "!.*$" contains=@fortranCommentGroup
+  syn match fortranComment	excludenl "!.*$" contains=@fortranCommentGroup,@spell
 endif
 
 "cpp is often used with Fortran
@@ -356,26 +321,27 @@ syn match	cIncluded		contained "<[^>]*>"
 syn match	cInclude		"^\s*#\s*include\>\s*["<]" contains=cIncluded
 
 "Synchronising limits assume that comment and continuation lines are not mixed
-if (b:fortran_fixed_source == 0)
-  syn sync linecont "&" maxlines=40
+if exists("fortran_fold") || exists("fortran_more_precise")
+  syn sync fromstart
+elseif (b:fortran_fixed_source == 0)
+  syn sync linecont "&" minlines=20
 else
   syn sync minlines=20
 endif
 
 if version >= 600 && exists("fortran_fold")
 
-  syn sync fromstart
   if (b:fortran_fixed_source == 1)
     syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
     syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
-    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
+    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
     syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
     syn region fortranBlockData transparent fold keepend start="\<block\s*data\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
     syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
   else
     syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
     syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
-    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
+    syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
     syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
     syn region fortranBlockData transparent fold keepend start="\<block\s*data\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
     syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
@@ -422,31 +388,31 @@ if version >= 508 || !exists("did_fortra
   " fortranBlockData
   " fortran77Loop, fortran90Loop, fortranIfBlock, fortranCase
   " fortranMultiCommentLines
-  HiLink fortranStatement		Statement
-  HiLink fortranConstructName	Special
-  HiLink fortranConditional		Conditional
+  HiLink fortranKeyword 	Keyword
+  HiLink fortranConstructName	Identifier
+  HiLink fortranConditional	Conditional
   HiLink fortranRepeat		Repeat
-  HiLink fortranTodo			Todo
-  HiLink fortranContinueMark		Todo
+  HiLink fortranTodo		Todo
+  HiLink fortranContinueMark	Todo
   HiLink fortranString		String
   HiLink fortranNumber		Number
-  HiLink fortranOperator		Operator
+  HiLink fortranOperator	Operator
   HiLink fortranBoolean		Boolean
-  HiLink fortranLabelError		Error
-  HiLink fortranObsolete		Todo
-  HiLink fortranType			Type
-  HiLink fortranStructure		Type
-  HiLink fortranStorageClass		StorageClass
-  HiLink fortranCall			fortranUnitHeader
-  HiLink fortranUnitHeader		fortranPreCondit
-  HiLink fortranReadWrite		fortran90Intrinsic
-  HiLink fortranIO			fortran90Intrinsic
-  HiLink fortran95Intrinsic		fortran90Intrinsic
-  HiLink fortran77Intrinsic		fortran90Intrinsic
-  HiLink fortran90Intrinsic		Special
+  HiLink fortranLabelError	Error
+  HiLink fortranObsolete	Todo
+  HiLink fortranType		Type
+  HiLink fortranStructure	Type
+  HiLink fortranStorageClass	StorageClass
+  HiLink fortranCall		fortranUnitHeader
+  HiLink fortranUnitHeader	fortranPreCondit
+  HiLink fortranReadWrite	Keyword
+  HiLink fortranIO		Keyword
+  HiLink fortran95Intrinsic	fortran90Intrinsic
+  HiLink fortran77Intrinsic	fortran90Intrinsic
+  HiLink fortran90Intrinsic	Function
 
   if ( b:fortran_dialect == "elf" || b:fortran_dialect == "F" )
-    HiLink fortranStatementOb	fortranObsolete
+    HiLink fortranKeywordOb	fortranObsolete
     HiLink fortran66Intrinsic	fortranObsolete
     HiLink fortran77IntrinsicR	fortranObsolete
     HiLink fortranUnitHeaderR	fortranObsolete
@@ -454,47 +420,47 @@ if version >= 508 || !exists("did_fortra
     HiLink fortranStorageClassR	fortranObsolete
     HiLink fortran90StorageClassR	fortranObsolete
     HiLink fortran77OperatorR	fortranObsolete
-    HiLink fortranInclude		fortranObsolete
+    HiLink fortranInclude	fortranObsolete
   else
-    HiLink fortranStatementOb	Statement
+    HiLink fortranKeywordOb	fortranKeyword
     HiLink fortran66Intrinsic	fortran90Intrinsic
     HiLink fortran77IntrinsicR	fortran90Intrinsic
     HiLink fortranUnitHeaderR	fortranPreCondit
     HiLink fortranTypeR		fortranType
     HiLink fortranStorageClassR	fortranStorageClass
     HiLink fortran77OperatorR	fortranOperator
-    HiLink fortranInclude		Include
+    HiLink fortranInclude	Include
     HiLink fortran90StorageClassR	fortranStorageClass
   endif
 
   if ( b:fortran_dialect == "F" )
     HiLink fortranLabelNumber	fortranObsolete
-    HiLink fortranTarget		fortranObsolete
-    HiLink fortranFormatSpec		fortranObsolete
-    HiLink fortranFloatDExp		fortranObsolete
-    HiLink fortranFloatNoDec		fortranObsolete
+    HiLink fortranTarget	fortranObsolete
+    HiLink fortranFormatSpec	fortranObsolete
+    HiLink fortranFloatDExp	fortranObsolete
+    HiLink fortranFloatNoDec	fortranObsolete
     HiLink fortranFloatIniDec	fortranObsolete
     HiLink fortranFloatEndDec	fortranObsolete
-    HiLink fortranTypeEx		fortranObsolete
+    HiLink fortranTypeEx	fortranObsolete
     HiLink fortranIOEx		fortranObsolete
-    HiLink fortranStatementEx	fortranObsolete
-    HiLink fortranStringEx		fortranObsolete
+    HiLink fortranKeywordEx	fortranObsolete
+    HiLink fortranStringEx	fortranObsolete
     HiLink fortran77IntrinsicEx	fortranObsolete
     HiLink fortranUnitHeaderEx	fortranObsolete
     HiLink fortranConditionalEx	fortranObsolete
     HiLink fortran90IntrinsicEx	fortranObsolete
   else
     HiLink fortranLabelNumber	Special
-    HiLink fortranTarget		Special
-    HiLink fortranFormatSpec		Identifier
-    HiLink fortranFloatDExp		fortranFloat
-    HiLink fortranFloatNoDec		fortranFloat
+    HiLink fortranTarget	Special
+    HiLink fortranFormatSpec	Identifier
+    HiLink fortranFloatDExp	fortranFloat
+    HiLink fortranFloatNoDec	fortranFloat
     HiLink fortranFloatIniDec	fortranFloat
     HiLink fortranFloatEndDec	fortranFloat
-    HiLink fortranTypeEx		fortranType
+    HiLink fortranTypeEx	fortranType
     HiLink fortranIOEx		fortranIO
-    HiLink fortranStatementEx	fortranStatement
-    HiLink fortranStringEx		fortranString
+    HiLink fortranKeywordEx	fortranKeyword
+    HiLink fortranStringEx	fortranString
     HiLink fortran77IntrinsicEx	fortran90Intrinsic
     HiLink fortranUnitHeaderEx	fortranUnitHeader
     HiLink fortranConditionalEx	fortranConditional
@@ -502,21 +468,18 @@ if version >= 508 || !exists("did_fortra
   endif
 
   HiLink fortranFloat		Float
-  HiLink fortran90Identifier		fortranIdentifier
-  "Uncomment the next line if you want all fortran variables to be highlighted
-  "HiLink fortranIdentifier		Identifier
-  HiLink fortranPreCondit		PreCondit
+  HiLink fortranPreCondit	PreCondit
   HiLink fortranInclude		Include
-  HiLink cIncluded			fortranString
-  HiLink cInclude			Include
-  HiLink cPreProc			PreProc
-  HiLink cPreCondit			PreCondit
-  HiLink fortranParenError		Error
+  HiLink cIncluded		fortranString
+  HiLink cInclude		Include
+  HiLink cPreProc		PreProc
+  HiLink cPreCondit		PreCondit
+  HiLink fortranParenError	Error
   HiLink fortranComment		Comment
-  HiLink fortranSerialNumber		Todo
-  HiLink fortranTab			Error
+  HiLink fortranSerialNumber	Todo
+  HiLink fortranTab		Error
   " Vendor extensions
-  HiLink fortranExtraIntrinsic	Special
+  HiLink fortranExtraIntrinsic	Function
 
   delcommand HiLink
 endif
--- a/runtime/syntax/rhelp.vim
+++ b/runtime/syntax/rhelp.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    R Help File
 " Maintainer:  Johannes Ranke <jranke@uni-bremen.de>
-" Last Change: 2006 Mr 06
+" Last Change: 2006 Apr 05
 " Version:     0.5
 " Remarks:     - Now includes R syntax highlighting in the appropriate
 "                sections if an r.vim file is in the same directory or in the
@@ -15,7 +15,7 @@
 
 " Version Clears: {{{1
 " For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" For version 6.x and 7.x: Quit when a syntax file was already loaded
 if version < 600 
   syntax clear
 elseif exists("b:current_syntax")
@@ -36,7 +36,7 @@ let s:syntaxdir = expand("<sfile>:p:h") 
 let s:rsyntax = s:syntaxdir . "/r.vim"
 if filereadable(s:rsyntax)  
   syn include @R <sfile>:p:h/r.vim
-elseif filereadable('/usr/share/vim/vim64/syntax/r.vim')  "and debian location
+elseif filereadable('/usr/share/vim/vimcurrent/syntax/r.vim')  "and debian location
   syn include @R /usr/share/vim/vimcurrent/syntax/r.vim
 else 
   syn match rhelpRComment /\#.*/				"if no r.vim is found, do comments
@@ -46,12 +46,12 @@ syn region rhelpRcode matchgroup=Delimit
 syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpIdentifier
 syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end=/}/ contains=@R
 syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end=/}/ contains=@R contained
-syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end=/}/ contains=@R contained
+syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpLink contained
 
 " Strings {{{1
 syn region rhelpString start=/"/ end=/"/ 
 
-" Special TeX characters  ( \$ \& \% \# \{ \} \_) {{{1
+" Special characters  ( \$ \& \% \# \{ \} \_) {{{1
 syn match rhelpSpecialChar        "\\[$&%#{}_]"
 
 " Special Delimiters {{{1
--- 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:	March 29, 2006
-" Version:	7.0-37	NOT RELEASED
+" Last Change:	April 04, 2006
+" Version:	7.0-38
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -55,7 +55,7 @@ syn match vimHLGroup contained	"Conceal"
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained	add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call changenr char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchlist matchstr max min mkdir mode nextnonblank nr2char prevnonblank printf pumvisible range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split str2nr strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile 
+syn keyword vimFuncName contained	add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call changenr char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matcharg matchend matchlist matchstr max min mkdir mode nextnonblank nr2char pathshorten prevnonblank printf pumvisible range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split str2nr strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile 
 
 "--- syntax above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
--- a/runtime/tutor/tutor.pl
+++ b/runtime/tutor/tutor.pl
@@ -5,7 +5,7 @@
      Vim to potny edytor, ktry posiada wiele polece, zbyt duo by
      wyjani je wszystkie w tym tutorialu. Ten przewodnik ma nauczy
      Ci posugiwa si wystarczajco wieloma komendami by mg atwo
-     uywa Vim-a jako edytora oglnego przeznaczenia.
+     uywa Vima jako edytora oglnego przeznaczenia.
 
      Czas potrzebny na ukoczenie tutoriala to 25 do 30 minut i zaley
      od tego jak wiele czasu spdzisz na eksperymentowaniu.  
@@ -15,10 +15,10 @@
 	 wczeniej kopi tego pliku do wicze (jeli zacze komend
 	 "vimtutor" to ju pracujesz na kopii).
 
-     Wane jest, by pamita, e przewodnik ten zosta zaprojektowany do
-     nauki poprzez wiczenia. To oznacza, e musisz wykonywa polecenia
-     by nauczy si ich prawidowo. Jeli bdziesz jedynie czyta tekst
-     szybko zapomnisz wiele polece!
+	 Pamitaj e przewodnik ten zosta zaprojektowany do nauki poprzez
+	 wiczenia. Oznacza to, e musisz wykonywa polecenia by nauczy si ich
+	 prawidowo. Jeli bdziesz jedynie czyta tekst szybko zapomnisz wiele
+	 polece!
 
      Teraz upewnij si, e nie masz wcinitego CapsLocka i wciskaj  j
      tak dugo dopki Lekcja 1.1. nie wypeni cakowicie ekranu.
@@ -45,7 +45,7 @@ Uwaga: Jeli nie jeste pewien czego co wpisae, wcinij <ESC> by wrci do
 
 Uwaga: Klawisze kursora take powinny dziaa, ale uywajc  hjkl  bdziesz
        w stanie porusza si o wiele szybciej jak si tylko przyzwyczaisz.
-	   Naprawd!
+       Naprawd!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
@@ -65,7 +65,7 @@ Uwaga: Klawisze kursora take powinny dziaa, ale uywajc  hjkl  bdziesz
      wyj i wrci do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobie. W nastpnych
-lekcjach dowiesz si jak je zapamitywa.
+       lekcjach dowiesz si jak je zapamitywa.
 
   5. Przenie kursor do lekcji 1.3.
 
@@ -150,16 +150,16 @@ UWAGA: Ucz si przez wiczenie, nie wkuwanie.
   1. Zakocz tutorial tak jak w lekcji 1.2.:  :q!
 
   2. W powoce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiajcym edytor Vimm. 'tutor' to nazwa pliku
+     "vim" jest poleceniem uruchamiajcym edytor Vim. 'tutor' to nazwa pliku
      jaki chcesz edytowa. Uyj pliku jaki moe zosta zmieniony.
 
   3. Dodaj i usu tekst tak jak si nauczye w poprzednich lekcjach.
 
-  4. Zapisz plik ze zmianami w opu Vima:  :wq<ENTER>
+  4. Zapisz plik ze zmianami i opu Vima:  :wq<ENTER>
 
   5. Uruchom ponownie vimtutor i przejd do podsumowania lekcji.
 
-  6. Po przeczytaniu wszystkich krokw i zrozumieniu ich: wykonaj je.
+  6. Po przeczytaniu wszystkich krokw i ich zrozumieniu: wykonaj je.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -168,21 +168,21 @@ UWAGA: Ucz si przez wiczenie, nie wkuwanie.
   1. Poruszasz kursorem uywajc "strzaek" i klawiszy  hjkl .
        h (w lewo)	 j (w d)	 k (do gry)		l (w prawo)
 
-  2. By wej do Vim-a (z powoki) wpisz:
+  2. By wej do Vima (z powoki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyj z Vim-a wpisz:
+  3. By wyj z Vima wpisz:
 			    <ESC> :q!<ENTER>  by usunc wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachowa.
 
   4. By usun znak pod kursorem wcinij:  x
 
   5. By wstawi tekst przed kursorem lub doda:
-	i         wpisz tekst      <ESC> wstawi przed kursorem
-	A         wpisz tekst      <ESC> doda na kocu linii
+	i   wpisz tekst   <ESC>         wstawi przed kursorem
+	A   wpisz tekst   <ESC>         doda na kocu linii
 
 UWAGA: Wcinicie <ESC> przeniesie Ci z powrotem do trybu Normal
-lub odwoa niechciane lub czciowo wprowadzone polecenia.
+       lub odwoa niechciane lub czciowo wprowadzone polecenia.
 
 Teraz moemy kontynuowa i przej do Lekcji 2.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -197,11 +197,11 @@ Teraz moemy kontynuowa i przej do Lekcji 2.
 
   3. Przesu kursor na pocztek wyrazu, ktre chcesz usun.
 
-  4. Wpisz   dw   by usunc wyraz.
+  4. Wpisz   dw   by usun wyraz.
 
   UWAGA: Litera  d  pojawi si na dole ekranu. Vim czeka na wpisanie  w . 
-	 Jeli zobaczysz inny znak wpisae co le, wcinij <ESC> i zacznij
-	 od pocztku.
+	 Jeli zobaczysz inny znak oznacza to, e wpisae co le, wcinij
+	 <ESC> i zacznij od pocztku.
 
 ---> Jest tu par papier wyrazw, ktre kamie nie nale do noyce tego zdania.
 
@@ -306,13 +306,13 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
 
 		   ** Wpisz  dd  aby usun ca lini. **
 
-  Z powodu czstoci usuwania caych linii, projektanci VI zdecydowali, e
+  Z powodu czstoci usuwania caych linii, projektanci Vi zdecydowali, e
   bdzie atwiej wpisa dwa razy  d  aby usun lini.
 
-  1. Przenie kursor do zdania poniej.
-  2. Wpisz  dd  aby usunc wiersz.
+  1. Przenie kursor do drugiego zdania z wierszyka poniej.
+  2. Wpisz  dd  aby usun wiersz.
   3. Teraz przenie si do czwartego wiersza.
-  4. Wpisz  2dd  aby usunc dwia wiersze.
+  4. Wpisz  2dd  aby usunc dwa wiersze.
 
 --->  1)  Re s czerwone,
 --->  2)  Boto jest fajne,
@@ -337,7 +337,7 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
   4. Tym razem popraw wszystkie bdy w linii uywajc polecenia  x .
   5. Teraz wcinij wielkie U aby przywrci lini do oryginalnego stanu.
   6. Teraz wcinij  u  kilka razy by cofn  U  i poprzednie polecenia.
-  7. Teraz wpsz CTRL-R (trzymaj rwnoczenie wcinite klawisze CTRL i R)
+  7. Teraz wpisz CTRL-R (trzymaj rwnoczenie wcinite klawisze CTRL i R)
      kilka razy, by cofn cofnicia.
 
 ---> Poopraw bldyyy w teej liniii i zaamiie je prrzez coofnij.
@@ -377,14 +377,14 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
 
   1. Przenie kursor do pierwszej linii ---> poniej.
 
-  2. Wpisz  dd  aby usun lini i przechowa j w rejestrze Vim-a.
+  2. Wpisz  dd  aby usun lini i przechowa j w rejestrze Vima.
 
   3. Przenie kursor do linii c), POWYEJ tej gdzie usunita linia powinna
      si znajdowa.
 
   4. Wcinij  p  by wstawi lini poniej kursora.
 
-  5. Powtaj kroki 2. do 4. a znajd si w odpowiednim porzdku.
+  5. Powtarzaj kroki 2. do 4. a znajd si w odpowiednim porzdku.
 
 ---> d) Jak dwa anioki.
 ---> b) Na dole fioki,
@@ -456,7 +456,7 @@ UWAGA: Pamitaj by uczy si wiczc, a nie pamiciowo.
 
   5. Wpisz  c$ , popraw koniec wiersza i wcinij <ESC>.
 
----> Koniec tego wiersza musi by poprawiony aby wygldal tak jak drugi.
+---> Koniec tego wiersza musi by poprawiony aby wyglda tak jak drugi.
 ---> Koniec tego wiersza musi by poprawiony uywajc polecenia  c$ .
 
 UWAGA:  Moesz uywa <BS> aby poprawia bdy w czasie pisania.
@@ -526,15 +526,15 @@ UWAGA: Moesz te zobaczy pozycj kursora w prawym, dolnym rogu ekranu.
   5. Aby wrci gdzie bye wcinij  CTRL-O. Powtarzaj by wrci dalej. CTRL-I
      idzie do przodu.
 
-UWAGA:  'bond' to nie jest metoda by przeliterowa bd; 'bond' to bd.
-UWAGA:  Kiedy szukanie osignie koniec pliku bdzie kontynuowao od pocztku
-o ile opcja 'wrapscan' nie zostaa przestawiona.
+Uwaga:  'bond' to nie jest metoda by przeliterowa bd; 'bond' to bd.
+Uwaga:  Kiedy szukanie osignie koniec pliku bdzie kontynuowao od pocztku
+        o ile opcja 'wrapscan' nie zostaa przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		Lekcja 4.3.: W POSZUKIWANIU PARUJCYCH NAWIASW
 
 
-		** Wpisz  %  by znale pasujcy ),], lub } . **
+	       ** Wpisz  %  by znale parujcy ), ], lub } . **
 
   1. Umie kursor na ktrym z (, [, lub { w linii poniej oznaczonej --->.
 
@@ -548,7 +548,7 @@ o ile opcja 'wrapscan' nie zostaa przestawiona.
 
 ---> To ( jest linia testowa z (, [, ] i {, } . ))
 
-UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
+Uwaga: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
        z niesparowanymi nawiasami!
 
 
@@ -598,7 +598,7 @@ UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
      By zamieni wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
      By zamieni frazy pomidzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
      By zamieni wszystkie wystpienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosi Ci o potwierdzienie dodaj 'c'	   :%s/stary/nowy/gc
+     By Vim prosi Ci o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		 Lekcja 5.1.: JAK WYKONA POLECENIA ZEWNTRZNE
 
@@ -606,7 +606,7 @@ UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
 	** Wpisz  :!  a nastpnie zewntrzne polecenie by je wykona. **
 
   1. Wpisz znajome polecenie  :  by ustawi kursor na dole ekranu. To pozwala
-     na wprowadzenie polecenia.
+     na wprowadzenie komendy linii polece.
 
   2. Teraz wstaw  !  (wykrzyknik). To umoliwi Ci wykonanie dowolnego
      zewntrznego polecenia powoki.
@@ -638,12 +638,12 @@ Uwaga:  Wszystkie polecenia  :  musz by zakoczone <ENTER>.
   4. To polecenie zapamita cay plik (Vim Tutor) pod nazw TEST.
      By to sprawdzi wpisz  :!dir  lub  :!ls , eby znowu zobaczy list plikw.
 
-Uwaga: Zauwa, e gdyby teraz wyszed z Vim-a, a nastpnie wszed ponownie
-       komend  vim TEST , plik byby dokadn kopi tutoriala kiedy go
+Uwaga: Zauwa, e gdyby teraz wyszed z Vima, a nastpnie wszed ponownie
+       poleceniem  vim TEST , plik byby dokadn kopi tutoriala kiedy go
        zapisywae.
 
-  5. Teraz usu plik wpisujc:		   :!rm TEST
-
+  5. Teraz usu plik wpisujc (MS-DOS):		   :!del TEST
+                          lub (Unix):              :!rm TEST
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
@@ -687,8 +687,8 @@ UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd
      teraz s dwie kopie Lekcji 5.3., orygina i kopia z pliku.
 
 UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
-       :r !ls  wczytuje wyjcie polecenia ls i umieszcza je pod kursorem.
-
+       :r !ls  wczytuje wyjcie polecenia ls i umieszcza je pod poniej
+       kursora.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -703,7 +703,7 @@ UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
 
 	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.
 
-  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vim-a na dysk z nazw NAZWA_PLIKU.
+  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazw NAZWA_PLIKU.
 
   3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
 
@@ -752,13 +752,13 @@ UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
   4. Dokocz wyraz tak jak w linii poniej. Wcinij <ESC> aby opuci tryb
      Insert.
 
-  5. Uyj  e  by przej do kolejnego niedokoczonego wyraze i powtarzaj kroki
+  5. Uyj  e  by przej do kolejnego niedokoczonego wyrazu i powtarzaj kroki
      3. i 4.
 
 ---> Ta li poz Ci wi dodaw teks do ko lin
 ---> Ta linia pozwoli Ci wiczy dodawanie tekstu do koca linii.
 
-Uwaga:  a ,  i  and  A  prowadz do trybu Insert, jedyn rnic jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadz do trybu Insert, jedyn rnic jest miejsce
        gdzie nowe znaki bd dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -789,7 +789,7 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale kady znak usuwa istniejcy
 
        ** uyj operatora  y  aby skopiowa tekst i  p  aby go wklei **
 
-  1. Przejd do linii oznaczonej ---> i umiec kursor za "a)".
+  1. Przejd do linii oznaczonej ---> i umie kursor za "a)".
 
   2. Wejd w tryb Visual  v  i przenie kursor na pocztek "pierwszy".
 
@@ -799,8 +799,8 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale kady znak usuwa istniejcy
 
   5. Wcinij  p  aby wpakowa (paste) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. Uyj trybu Visual aby wybra " element.", yankuj go  y , przejd do koca
-     nastpnej linii  j$ i upakuj tam tekst z  p .
+  6. Uyj trybu Wizualnego aby wybra " element.", yankuj go  y , przejd do
+     koca nastpnej linii  j$ i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -818,7 +818,7 @@ Uwaga: moesz uy  y  jako operatora;  yw  kopiuje jeden wyraz.
   2. Ustaw opcj 'ic' (Ignore case -- ignoruj wielko liter) poprzez
      wpisanie:		:set ic
 
-  3. Teraz szukaj 'ignore' ponownie wciskujc:  n
+  3. Teraz szukaj 'ignore' ponownie wciskajc:  n
      Zauwa, e Ignore i IGNORE take s teraz znalezione.
 
   4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is
@@ -835,16 +835,18 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
   1. Wpisanie  o  otwiera lini PONIEJ kursora.
-     Wpisanie wielkiego  O  otwiera lini POWYEJ kursora.
-  2. Wpisz  a  by wstawi tekst ZA znakiem na, ktrym jest kursor.
-     Wpisanie wielkiego  A  dodaje tekst na kocu linii.
+     Wpisanie  O  otwiera lini POWYEJ kursora.
+
+  2. Wpisanie  a  by wstawi tekst ZA znakiem na, ktrym jest kursor.
+     Wpisanie  A  dodaje tekst na kocu linii.
+
   3. Polecenie  e  przenosi do koca wyrazu.
-  4. Operato  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopki
      nie zostanie wcinity <ESC>.
   6. Wpisanie ":set xxx" ustawia opcj "xxx". Nietkre opcje:
-	'ic' 'ignorecase'	ignoruj wielko znakw
-	'is' 'incsearch'	poka czciowe dopasowania
+	'ic'  'ignorecase'	ignoruj wielko znakw
+	'is'  'incsearch'	poka czciowe dopasowania
 	'hls' 'hlsearch'	podwietl wszystkie dopasowania
      Moesz uy zarwno dugiej jak i krtkiej formy.
   7. Dodaj "no" aby wyczy opcj:   :set noic
@@ -854,14 +856,14 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKA POMOC 
+			LEKCJA 7.1. JAK UZYSKA POMOC
 
 		      ** Uycie systemu pomocy on-line **
 
   Vim posiada bardzo dobry system pomocy on-line. By zacz sprbuj jednej
   z trzech moliwoci:
-	- wcinij klawisz <HELP> (jeli takowy posiadasz)
-	- wcinij klawisz <F1> (jeli takowy posiadasz)
+	- wcinij klawisz <HELP> (jeli taki masz)
+	- wcinij klawisz <F1> (jeli taki masz)
 	- wpisz   :help<ENTER>
 
   Przeczytaj tekst w oknie pomocy  aby dowiedzie si jak dziaa pomoc.
@@ -878,7 +880,7 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
 
-			 ** Wcz moliwoci Vim-a **
+			  ** Wcz moliwoci Vima **
 
   Vim ma o wiele wicej moliwoci ni Vi, ale wikszo z nich jest domylnie
   wyczona. Jeli chcesz wczy te moliwoci na starcie musisz utworzy
@@ -943,23 +945,23 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj si koczy tutorial Vim-a. Zosta on pomylany tak aby da krtki
+  Tutaj si koczy tutorial Vima. Zosta on pomylany tak aby da krtki
   przegld jego moliwoci, wystarczajcy by mg go uywa. Jest on
   daleki od kompletnoci poniewa Vim ma o wiele, wiele wicej polece.
 
   Dla dalszej nauki rekomendujemy ksik:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksizka cakowicie powicona Vim-owi. Uyteczna zwaszcza dla
+  Pierwsza ksizka cakowicie powicona Vimowi. Uyteczna zwaszcza dla
   pocztkujcych. Zawiera wiele przykadw i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
-  Ta ksika jest starsza i bardziej o Vi ni o Vim-ie, ale take warta
+  Starsza pozycja i bardziej o Vi ni o Vimie, ale take warta
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
   To dobra ksika by dowiedzie si niemal wszystkiego co chciaby zrobi
-  z Vi. Szsta edycja zawiera te informacje o Vim-ie.
+  z Vi. Szsta edycja zawiera te informacje o Vimie.
 
   Po polsku wydano:
 	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
@@ -967,10 +969,10 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
 	ISBN: 83-7197-472-8
 	http://helion.pl/ksiazki/vilek.htm
   Jest to ksieczka zawierajca spis polece vi i jego najwaniejszych
-  klonw (midzy innymi Vim-a).
+  klonw (midzy innymi Vima).
 
 	Edytor vi - autorzy Linda Lamb i Arnold Robbins
-	Wydawca: Helion 2001 (O'Reilly) - wg 6 ang. wydania
+	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
 	ISBN: 83-7197-539-2
 	http://helion.pl/ksiazki/viedyt.htm
   Rozszerzona wersja Learning the Vi Editor w polskim tumaczeniu.
@@ -980,7 +982,7 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
   Colorado State University.
   E-mail: bware@mines.colorado.edu.
 
-  Zmodyfikowane dla Vim-a przez Brama Moolenaara.
+  Zmodyfikowane dla Vima przez Brama Moolenaara.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -988,4 +990,5 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
   Sierpie 2001,
   rev. Marzec 2002
   2nd rev. Wrzesie 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi prosz kierowa na: mikmach@wp.pl
--- a/runtime/tutor/tutor.pl.cp1250
+++ b/runtime/tutor/tutor.pl.cp1250
@@ -5,7 +5,7 @@
      Vim to potny edytor, ktry posiada wiele polece, zbyt duo by
      wyjani je wszystkie w tym tutorialu. Ten przewodnik ma nauczy
      Ci posugiwa si wystarczajco wieloma komendami by mg atwo
-     uywa Vim-a jako edytora oglnego przeznaczenia.
+     uywa Vima jako edytora oglnego przeznaczenia.
 
      Czas potrzebny na ukoczenie tutoriala to 25 do 30 minut i zaley
      od tego jak wiele czasu spdzisz na eksperymentowaniu.  
@@ -15,10 +15,10 @@
 	 wczeniej kopi tego pliku do wicze (jeli zacze komend
 	 "vimtutor" to ju pracujesz na kopii).
 
-     Wane jest, by pamita, e przewodnik ten zosta zaprojektowany do
-     nauki poprzez wiczenia. To oznacza, e musisz wykonywa polecenia
-     by nauczy si ich prawidowo. Jeli bdziesz jedynie czyta tekst
-     szybko zapomnisz wiele polece!
+	 Pamitaj e przewodnik ten zosta zaprojektowany do nauki poprzez
+	 wiczenia. Oznacza to, e musisz wykonywa polecenia by nauczy si ich
+	 prawidowo. Jeli bdziesz jedynie czyta tekst szybko zapomnisz wiele
+	 polece!
 
      Teraz upewnij si, e nie masz wcinitego CapsLocka i wciskaj  j
      tak dugo dopki Lekcja 1.1. nie wypeni cakowicie ekranu.
@@ -45,7 +45,7 @@ Uwaga: Jeli nie jeste pewien czego co wpisae, wcinij <ESC> by wrci do
 
 Uwaga: Klawisze kursora take powinny dziaa, ale uywajc  hjkl  bdziesz
        w stanie porusza si o wiele szybciej jak si tylko przyzwyczaisz.
-	   Naprawd!
+       Naprawd!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
@@ -65,7 +65,7 @@ Uwaga: Klawisze kursora take powinny dziaa, ale uywajc  hjkl  bdziesz
      wyj i wrci do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobie. W nastpnych
-lekcjach dowiesz si jak je zapamitywa.
+       lekcjach dowiesz si jak je zapamitywa.
 
   5. Przenie kursor do lekcji 1.3.
 
@@ -150,16 +150,16 @@ UWAGA: Ucz si przez wiczenie, nie wkuwanie.
   1. Zakocz tutorial tak jak w lekcji 1.2.:  :q!
 
   2. W powoce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiajcym edytor Vimm. 'tutor' to nazwa pliku
+     "vim" jest poleceniem uruchamiajcym edytor Vim. 'tutor' to nazwa pliku
      jaki chcesz edytowa. Uyj pliku jaki moe zosta zmieniony.
 
   3. Dodaj i usu tekst tak jak si nauczye w poprzednich lekcjach.
 
-  4. Zapisz plik ze zmianami w opu Vima:  :wq<ENTER>
+  4. Zapisz plik ze zmianami i opu Vima:  :wq<ENTER>
 
   5. Uruchom ponownie vimtutor i przejd do podsumowania lekcji.
 
-  6. Po przeczytaniu wszystkich krokw i zrozumieniu ich: wykonaj je.
+  6. Po przeczytaniu wszystkich krokw i ich zrozumieniu: wykonaj je.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -168,21 +168,21 @@ UWAGA: Ucz si przez wiczenie, nie wkuwanie.
   1. Poruszasz kursorem uywajc "strzaek" i klawiszy  hjkl .
        h (w lewo)	 j (w d)	 k (do gry)		l (w prawo)
 
-  2. By wej do Vim-a (z powoki) wpisz:
+  2. By wej do Vima (z powoki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyj z Vim-a wpisz:
+  3. By wyj z Vima wpisz:
 			    <ESC> :q!<ENTER>  by usunc wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachowa.
 
   4. By usun znak pod kursorem wcinij:  x
 
   5. By wstawi tekst przed kursorem lub doda:
-	i         wpisz tekst      <ESC> wstawi przed kursorem
-	A         wpisz tekst      <ESC> doda na kocu linii
+	i   wpisz tekst   <ESC>         wstawi przed kursorem
+	A   wpisz tekst   <ESC>         doda na kocu linii
 
 UWAGA: Wcinicie <ESC> przeniesie Ci z powrotem do trybu Normal
-lub odwoa niechciane lub czciowo wprowadzone polecenia.
+       lub odwoa niechciane lub czciowo wprowadzone polecenia.
 
 Teraz moemy kontynuowa i przej do Lekcji 2.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -197,11 +197,11 @@ Teraz moemy kontynuowa i przej do Lekcji 2.
 
   3. Przesu kursor na pocztek wyrazu, ktre chcesz usun.
 
-  4. Wpisz   dw   by usunc wyraz.
+  4. Wpisz   dw   by usun wyraz.
 
   UWAGA: Litera  d  pojawi si na dole ekranu. Vim czeka na wpisanie  w . 
-	 Jeli zobaczysz inny znak wpisae co le, wcinij <ESC> i zacznij
-	 od pocztku.
+	 Jeli zobaczysz inny znak oznacza to, e wpisae co le, wcinij
+	 <ESC> i zacznij od pocztku.
 
 ---> Jest tu par papier wyrazw, ktre kamie nie nale do noyce tego zdania.
 
@@ -306,13 +306,13 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
 
 		   ** Wpisz  dd  aby usun ca lini. **
 
-  Z powodu czstoci usuwania caych linii, projektanci VI zdecydowali, e
+  Z powodu czstoci usuwania caych linii, projektanci Vi zdecydowali, e
   bdzie atwiej wpisa dwa razy  d  aby usun lini.
 
-  1. Przenie kursor do zdania poniej.
-  2. Wpisz  dd  aby usunc wiersz.
+  1. Przenie kursor do drugiego zdania z wierszyka poniej.
+  2. Wpisz  dd  aby usun wiersz.
   3. Teraz przenie si do czwartego wiersza.
-  4. Wpisz  2dd  aby usunc dwia wiersze.
+  4. Wpisz  2dd  aby usunc dwa wiersze.
 
 --->  1)  Re s czerwone,
 --->  2)  Boto jest fajne,
@@ -337,7 +337,7 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
   4. Tym razem popraw wszystkie bdy w linii uywajc polecenia  x .
   5. Teraz wcinij wielkie U aby przywrci lini do oryginalnego stanu.
   6. Teraz wcinij  u  kilka razy by cofn  U  i poprzednie polecenia.
-  7. Teraz wpsz CTRL-R (trzymaj rwnoczenie wcinite klawisze CTRL i R)
+  7. Teraz wpisz CTRL-R (trzymaj rwnoczenie wcinite klawisze CTRL i R)
      kilka razy, by cofn cofnicia.
 
 ---> Poopraw bldyyy w teej liniii i zaamiie je prrzez coofnij.
@@ -377,14 +377,14 @@ UWAGA:  Mnonik pomidzy operatorem  d  i ruchem dziaa podobnie do ruchu bez
 
   1. Przenie kursor do pierwszej linii ---> poniej.
 
-  2. Wpisz  dd  aby usun lini i przechowa j w rejestrze Vim-a.
+  2. Wpisz  dd  aby usun lini i przechowa j w rejestrze Vima.
 
   3. Przenie kursor do linii c), POWYEJ tej gdzie usunita linia powinna
      si znajdowa.
 
   4. Wcinij  p  by wstawi lini poniej kursora.
 
-  5. Powtaj kroki 2. do 4. a znajd si w odpowiednim porzdku.
+  5. Powtarzaj kroki 2. do 4. a znajd si w odpowiednim porzdku.
 
 ---> d) Jak dwa anioki.
 ---> b) Na dole fioki,
@@ -456,7 +456,7 @@ UWAGA: Pamitaj by uczy si wiczc, a nie pamiciowo.
 
   5. Wpisz  c$ , popraw koniec wiersza i wcinij <ESC>.
 
----> Koniec tego wiersza musi by poprawiony aby wygldal tak jak drugi.
+---> Koniec tego wiersza musi by poprawiony aby wyglda tak jak drugi.
 ---> Koniec tego wiersza musi by poprawiony uywajc polecenia  c$ .
 
 UWAGA:  Moesz uywa <BS> aby poprawia bdy w czasie pisania.
@@ -526,15 +526,15 @@ UWAGA: Moesz te zobaczy pozycj kursora w prawym, dolnym rogu ekranu.
   5. Aby wrci gdzie bye wcinij  CTRL-O. Powtarzaj by wrci dalej. CTRL-I
      idzie do przodu.
 
-UWAGA:  'bond' to nie jest metoda by przeliterowa bd; 'bond' to bd.
-UWAGA:  Kiedy szukanie osignie koniec pliku bdzie kontynuowao od pocztku
-o ile opcja 'wrapscan' nie zostaa przestawiona.
+Uwaga:  'bond' to nie jest metoda by przeliterowa bd; 'bond' to bd.
+Uwaga:  Kiedy szukanie osignie koniec pliku bdzie kontynuowao od pocztku
+        o ile opcja 'wrapscan' nie zostaa przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		Lekcja 4.3.: W POSZUKIWANIU PARUJCYCH NAWIASW
 
 
-		** Wpisz  %  by znale pasujcy ),], lub } . **
+	       ** Wpisz  %  by znale parujcy ), ], lub } . **
 
   1. Umie kursor na ktrym z (, [, lub { w linii poniej oznaczonej --->.
 
@@ -548,7 +548,7 @@ o ile opcja 'wrapscan' nie zostaa przestawiona.
 
 ---> To ( jest linia testowa z (, [, ] i {, } . ))
 
-UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
+Uwaga: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
        z niesparowanymi nawiasami!
 
 
@@ -598,7 +598,7 @@ UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
      By zamieni wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
      By zamieni frazy pomidzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
      By zamieni wszystkie wystpienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosi Ci o potwierdzienie dodaj 'c'	   :%s/stary/nowy/gc
+     By Vim prosi Ci o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		 Lekcja 5.1.: JAK WYKONA POLECENIA ZEWNTRZNE
 
@@ -606,7 +606,7 @@ UWAGA: Ta funkcja jest bardzo uyteczna w debuggowaniu programu
 	** Wpisz  :!  a nastpnie zewntrzne polecenie by je wykona. **
 
   1. Wpisz znajome polecenie  :  by ustawi kursor na dole ekranu. To pozwala
-     na wprowadzenie polecenia.
+     na wprowadzenie komendy linii polece.
 
   2. Teraz wstaw  !  (wykrzyknik). To umoliwi Ci wykonanie dowolnego
      zewntrznego polecenia powoki.
@@ -638,12 +638,12 @@ Uwaga:  Wszystkie polecenia  :  musz by zakoczone <ENTER>.
   4. To polecenie zapamita cay plik (Vim Tutor) pod nazw TEST.
      By to sprawdzi wpisz  :!dir  lub  :!ls , eby znowu zobaczy list plikw.
 
-Uwaga: Zauwa, e gdyby teraz wyszed z Vim-a, a nastpnie wszed ponownie
-       komend  vim TEST , plik byby dokadn kopi tutoriala kiedy go
+Uwaga: Zauwa, e gdyby teraz wyszed z Vima, a nastpnie wszed ponownie
+       poleceniem  vim TEST , plik byby dokadn kopi tutoriala kiedy go
        zapisywae.
 
-  5. Teraz usu plik wpisujc:		   :!rm TEST
-
+  5. Teraz usu plik wpisujc (MS-DOS):		   :!del TEST
+                          lub (Unix):              :!rm TEST
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
@@ -687,8 +687,8 @@ UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd
      teraz s dwie kopie Lekcji 5.3., orygina i kopia z pliku.
 
 UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
-       :r !ls  wczytuje wyjcie polecenia ls i umieszcza je pod kursorem.
-
+       :r !ls  wczytuje wyjcie polecenia ls i umieszcza je pod poniej
+       kursora.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -703,7 +703,7 @@ UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
 
 	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.
 
-  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vim-a na dysk z nazw NAZWA_PLIKU.
+  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazw NAZWA_PLIKU.
 
   3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
 
@@ -752,13 +752,13 @@ UWAGA: Moesz te wczyta wyjcie zewntrznego polecenia. Na przykad
   4. Dokocz wyraz tak jak w linii poniej. Wcinij <ESC> aby opuci tryb
      Insert.
 
-  5. Uyj  e  by przej do kolejnego niedokoczonego wyraze i powtarzaj kroki
+  5. Uyj  e  by przej do kolejnego niedokoczonego wyrazu i powtarzaj kroki
      3. i 4.
 
 ---> Ta li poz Ci wi dodaw teks do ko lin
 ---> Ta linia pozwoli Ci wiczy dodawanie tekstu do koca linii.
 
-Uwaga:  a ,  i  and  A  prowadz do trybu Insert, jedyn rnic jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadz do trybu Insert, jedyn rnic jest miejsce
        gdzie nowe znaki bd dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -789,7 +789,7 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale kady znak usuwa istniejcy
 
        ** uyj operatora  y  aby skopiowa tekst i  p  aby go wklei **
 
-  1. Przejd do linii oznaczonej ---> i umiec kursor za "a)".
+  1. Przejd do linii oznaczonej ---> i umie kursor za "a)".
 
   2. Wejd w tryb Visual  v  i przenie kursor na pocztek "pierwszy".
 
@@ -799,8 +799,8 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale kady znak usuwa istniejcy
 
   5. Wcinij  p  aby wpakowa (paste) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. Uyj trybu Visual aby wybra " element.", yankuj go  y , przejd do koca
-     nastpnej linii  j$ i upakuj tam tekst z  p .
+  6. Uyj trybu Wizualnego aby wybra " element.", yankuj go  y , przejd do
+     koca nastpnej linii  j$ i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -818,7 +818,7 @@ Uwaga: moesz uy  y  jako operatora;  yw  kopiuje jeden wyraz.
   2. Ustaw opcj 'ic' (Ignore case -- ignoruj wielko liter) poprzez
      wpisanie:		:set ic
 
-  3. Teraz szukaj 'ignore' ponownie wciskujc:  n
+  3. Teraz szukaj 'ignore' ponownie wciskajc:  n
      Zauwa, e Ignore i IGNORE take s teraz znalezione.
 
   4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is
@@ -835,16 +835,18 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
   1. Wpisanie  o  otwiera lini PONIEJ kursora.
-     Wpisanie wielkiego  O  otwiera lini POWYEJ kursora.
-  2. Wpisz  a  by wstawi tekst ZA znakiem na, ktrym jest kursor.
-     Wpisanie wielkiego  A  dodaje tekst na kocu linii.
+     Wpisanie  O  otwiera lini POWYEJ kursora.
+
+  2. Wpisanie  a  by wstawi tekst ZA znakiem na, ktrym jest kursor.
+     Wpisanie  A  dodaje tekst na kocu linii.
+
   3. Polecenie  e  przenosi do koca wyrazu.
-  4. Operato  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopki
      nie zostanie wcinity <ESC>.
   6. Wpisanie ":set xxx" ustawia opcj "xxx". Nietkre opcje:
-	'ic' 'ignorecase'	ignoruj wielko znakw
-	'is' 'incsearch'	poka czciowe dopasowania
+	'ic'  'ignorecase'	ignoruj wielko znakw
+	'is'  'incsearch'	poka czciowe dopasowania
 	'hls' 'hlsearch'	podwietl wszystkie dopasowania
      Moesz uy zarwno dugiej jak i krtkiej formy.
   7. Dodaj "no" aby wyczy opcj:   :set noic
@@ -854,14 +856,14 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKA POMOC 
+			LEKCJA 7.1. JAK UZYSKA POMOC
 
 		      ** Uycie systemu pomocy on-line **
 
   Vim posiada bardzo dobry system pomocy on-line. By zacz sprbuj jednej
   z trzech moliwoci:
-	- wcinij klawisz <HELP> (jeli takowy posiadasz)
-	- wcinij klawisz <F1> (jeli takowy posiadasz)
+	- wcinij klawisz <HELP> (jeli taki masz)
+	- wcinij klawisz <F1> (jeli taki masz)
 	- wpisz   :help<ENTER>
 
   Przeczytaj tekst w oknie pomocy  aby dowiedzie si jak dziaa pomoc.
@@ -878,7 +880,7 @@ Uwaga: Aby ignorowa wielko liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
 
-			 ** Wcz moliwoci Vim-a **
+			  ** Wcz moliwoci Vima **
 
   Vim ma o wiele wicej moliwoci ni Vi, ale wikszo z nich jest domylnie
   wyczona. Jeli chcesz wczy te moliwoci na starcie musisz utworzy
@@ -943,23 +945,23 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj si koczy tutorial Vim-a. Zosta on pomylany tak aby da krtki
+  Tutaj si koczy tutorial Vima. Zosta on pomylany tak aby da krtki
   przegld jego moliwoci, wystarczajcy by mg go uywa. Jest on
   daleki od kompletnoci poniewa Vim ma o wiele, wiele wicej polece.
 
   Dla dalszej nauki rekomendujemy ksik:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksizka cakowicie powicona Vim-owi. Uyteczna zwaszcza dla
+  Pierwsza ksizka cakowicie powicona Vimowi. Uyteczna zwaszcza dla
   pocztkujcych. Zawiera wiele przykadw i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
-  Ta ksika jest starsza i bardziej o Vi ni o Vim-ie, ale take warta
+  Starsza pozycja i bardziej o Vi ni o Vimie, ale take warta
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
   To dobra ksika by dowiedzie si niemal wszystkiego co chciaby zrobi
-  z Vi. Szsta edycja zawiera te informacje o Vim-ie.
+  z Vi. Szsta edycja zawiera te informacje o Vimie.
 
   Po polsku wydano:
 	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
@@ -967,10 +969,10 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
 	ISBN: 83-7197-472-8
 	http://helion.pl/ksiazki/vilek.htm
   Jest to ksieczka zawierajca spis polece vi i jego najwaniejszych
-  klonw (midzy innymi Vim-a).
+  klonw (midzy innymi Vima).
 
 	Edytor vi - autorzy Linda Lamb i Arnold Robbins
-	Wydawca: Helion 2001 (O'Reilly) - wg 6 ang. wydania
+	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
 	ISBN: 83-7197-539-2
 	http://helion.pl/ksiazki/viedyt.htm
   Rozszerzona wersja Learning the Vi Editor w polskim tumaczeniu.
@@ -980,7 +982,7 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
   Colorado State University.
   E-mail: bware@mines.colorado.edu.
 
-  Zmodyfikowane dla Vim-a przez Brama Moolenaara.
+  Zmodyfikowane dla Vima przez Brama Moolenaara.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -988,4 +990,5 @@ UWAGA: Uzupenianie dziaa dla wielu polece. Sprbuj wcisn CTRL-D i <TAB>.
   Sierpie 2001,
   rev. Marzec 2002
   2nd rev. Wrzesie 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi prosz kierowa na: mikmach@wp.pl
--- a/runtime/tutor/tutor.pl.utf-8
+++ b/runtime/tutor/tutor.pl.utf-8
@@ -5,7 +5,7 @@
      Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo by
      wyjaśnić je wszystkie w tym tutorialu. Ten przewodnik ma nauczyć
      Cię posługiwać się wystarczająco wieloma komendami byś mógł łatwo
-     używać Vim-a jako edytora ogólnego przeznaczenia.
+     używać Vima jako edytora ogólnego przeznaczenia.
 
      Czas potrzebny na ukończenie tutoriala to 25 do 30 minut i zależy
      od tego jak wiele czasu spędzisz na eksperymentowaniu.  
@@ -15,10 +15,10 @@
 	 wcześniej kopię tego pliku do ćwiczeń (jeśli zacząłeś komendą
 	 "vimtutor" to już pracujesz na kopii).
 
-     Ważne jest, byś pamiętał, że przewodnik ten został zaprojektowany do
-     nauki poprzez ćwiczenia. To oznacza, że musisz wykonywać polecenia
-     by nauczyć się ich prawidłowo. Jeśli będziesz jedynie czytał tekst
-     szybko zapomnisz wiele poleceń!
+	 Pamiętaj że przewodnik ten został zaprojektowany do nauki poprzez
+	 ćwiczenia. Oznacza to, że musisz wykonywać polecenia by nauczyć się ich
+	 prawidłowo. Jeśli będziesz jedynie czytał tekst szybko zapomnisz wiele
+	 poleceń!
 
      Teraz upewnij się, że nie masz wciśniętego CapsLocka i wciskaj  j
      tak długo dopóki Lekcja 1.1. nie wypełni całkowicie ekranu.
@@ -45,7 +45,7 @@ Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC> by wrócić do
 
 Uwaga: Klawisze kursora także powinny działać, ale używając  hjkl  będziesz
        w stanie poruszać się o wiele szybciej jak się tylko przyzwyczaisz.
-	   Naprawdę!
+       Naprawdę!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
@@ -65,7 +65,7 @@ Uwaga: Klawisze kursora także powinny działać, ale używając  hjkl  będziesz
      wyjść i wrócić do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobiłeś. W następnych
-lekcjach dowiesz się jak je zapamiętywać.
+       lekcjach dowiesz się jak je zapamiętywać.
 
   5. Przenieś kursor do lekcji 1.3.
 
@@ -150,16 +150,16 @@ UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.
   1. Zakończ tutorial tak jak w lekcji 1.2.:  :q!
 
   2. W powłoce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiającym edytor Vimm. 'tutor' to nazwa pliku
+     "vim" jest poleceniem uruchamiającym edytor Vim. 'tutor' to nazwa pliku
      jaki chcesz edytować. Użyj pliku jaki może zostać zmieniony.
 
   3. Dodaj i usuń tekst tak jak się nauczyłeś w poprzednich lekcjach.
 
-  4. Zapisz plik ze zmianami w opuść Vima:  :wq<ENTER>
+  4. Zapisz plik ze zmianami i opuść Vima:  :wq<ENTER>
 
   5. Uruchom ponownie vimtutor i przejdź do podsumowania lekcji.
 
-  6. Po przeczytaniu wszystkich kroków i zrozumieniu ich: wykonaj je.
+  6. Po przeczytaniu wszystkich kroków i ich zrozumieniu: wykonaj je.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -168,21 +168,21 @@ UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.
   1. Poruszasz kursorem używając "strzałek" i klawiszy  hjkl .
        h (w lewo)	 j (w dół)	 k (do góry)		l (w prawo)
 
-  2. By wejść do Vim-a (z powłoki) wpisz:
+  2. By wejść do Vima (z powłoki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyjść z Vim-a wpisz:
+  3. By wyjść z Vima wpisz:
 			    <ESC> :q!<ENTER>  by usunąc wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachować.
 
   4. By usunąć znak pod kursorem wciśnij:  x
 
   5. By wstawić tekst przed kursorem lub dodać:
-	i         wpisz tekst      <ESC> wstawi przed kursorem
-	A         wpisz tekst      <ESC> doda na końcu linii
+	i   wpisz tekst   <ESC>         wstawi przed kursorem
+	A   wpisz tekst   <ESC>         doda na końcu linii
 
 UWAGA: Wciśnięcie <ESC> przeniesie Cię z powrotem do trybu Normal
-lub odwoła niechciane lub częściowo wprowadzone polecenia.
+       lub odwoła niechciane lub częściowo wprowadzone polecenia.
 
 Teraz możemy kontynuować i przejść do Lekcji 2.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -197,11 +197,11 @@ Teraz możemy kontynuować i przejść do Lekcji 2.
 
   3. Przesuń kursor na początek wyrazu, które chcesz usunąć.
 
-  4. Wpisz   dw   by usunąc wyraz.
+  4. Wpisz   dw   by usunąć wyraz.
 
   UWAGA: Litera  d  pojawi się na dole ekranu. Vim czeka na wpisanie  w . 
-	 Jeśli zobaczysz inny znak wpisałeś coś źle, wciśnij <ESC> i zacznij
-	 od początku.
+	 Jeśli zobaczysz inny znak oznacza to, że wpisałeś coś źle, wciśnij
+	 <ESC> i zacznij od początku.
 
 ---> Jest tu parę papier wyrazów, które kamień nie należą do nożyce tego zdania.
 
@@ -306,13 +306,13 @@ UWAGA:  Mnożnik pomiędzy operatorem  d  i ruchem działa podobnie do ruchu bez
 
 		   ** Wpisz  dd  aby usunąć całą linię. **
 
-  Z powodu częstości usuwania całych linii, projektanci VI zdecydowali, że
+  Z powodu częstości usuwania całych linii, projektanci Vi zdecydowali, że
   będzie łatwiej wpisać dwa razy  d  aby usunąć linię.
 
-  1. Przenieś kursor do zdania poniżej.
-  2. Wpisz  dd  aby usunąc wiersz.
+  1. Przenieś kursor do drugiego zdania z wierszyka poniżej.
+  2. Wpisz  dd  aby usunąć wiersz.
   3. Teraz przenieś się do czwartego wiersza.
-  4. Wpisz  2dd  aby usunąc dwia wiersze.
+  4. Wpisz  2dd  aby usunąc dwa wiersze.
 
 --->  1)  Róże są czerwone,
 --->  2)  Błoto jest fajne,
@@ -337,7 +337,7 @@ UWAGA:  Mnożnik pomiędzy operatorem  d  i ruchem działa podobnie do ruchu bez
   4. Tym razem popraw wszystkie błędy w linii używając polecenia  x .
   5. Teraz wciśnij wielkie U aby przywrócić linię do oryginalnego stanu.
   6. Teraz wciśnij  u  kilka razy by cofnąć  U  i poprzednie polecenia.
-  7. Teraz wpsz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
+  7. Teraz wpisz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
      kilka razy, by cofnąć cofnięcia.
 
 ---> Poopraw blędyyy w teej liniii i zaamiień je prrzez coofnij.
@@ -377,14 +377,14 @@ UWAGA:  Mnożnik pomiędzy operatorem  d  i ruchem działa podobnie do ruchu bez
 
   1. Przenieś kursor do pierwszej linii ---> poniżej.
 
-  2. Wpisz  dd  aby usunąć linię i przechować ją w rejestrze Vim-a.
+  2. Wpisz  dd  aby usunąć linię i przechować ją w rejestrze Vima.
 
   3. Przenieś kursor do linii c), POWYŻEJ tej gdzie usunięta linia powinna
      się znajdować.
 
   4. Wciśnij  p  by wstawić linię poniżej kursora.
 
-  5. Powtaj kroki 2. do 4. aż znajdą się w odpowiednim porządku.
+  5. Powtarzaj kroki 2. do 4. aż znajdą się w odpowiednim porządku.
 
 ---> d) Jak dwa aniołki.
 ---> b) Na dole fiołki,
@@ -456,7 +456,7 @@ UWAGA: Pamiętaj by uczyć się ćwicząc, a nie pamięciowo.
 
   5. Wpisz  c$ , popraw koniec wiersza i wciśnij <ESC>.
 
----> Koniec tego wiersza musi być poprawiony aby wyglądal tak jak drugi.
+---> Koniec tego wiersza musi być poprawiony aby wyglądał tak jak drugi.
 ---> Koniec tego wiersza musi być poprawiony używając polecenia  c$ .
 
 UWAGA:  Możesz używać <BS> aby poprawiać błędy w czasie pisania.
@@ -526,15 +526,15 @@ UWAGA: Możesz też zobaczyć pozycję kursora w prawym, dolnym rogu ekranu.
   5. Aby wrócić gdzie byłeś wciśnij  CTRL-O. Powtarzaj by wrócić dalej. CTRL-I
      idzie do przodu.
 
-UWAGA:  'błond' to nie jest metoda by przeliterować błąd; 'błond' to błąd.
-UWAGA:  Kiedy szukanie osiągnie koniec pliku będzie kontynuowało od początku
-o ile opcja 'wrapscan' nie została przestawiona.
+Uwaga:  'błond' to nie jest metoda by przeliterować błąd; 'błond' to błąd.
+Uwaga:  Kiedy szukanie osiągnie koniec pliku będzie kontynuowało od początku
+        o ile opcja 'wrapscan' nie została przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		Lekcja 4.3.: W POSZUKIWANIU PARUJĄCYCH NAWIASÓW
 
 
-		** Wpisz  %  by znaleźć pasujący ),], lub } . **
+	       ** Wpisz  %  by znaleźć parujący ), ], lub } . **
 
   1. Umieść kursor na którymś z (, [, lub { w linii poniżej oznaczonej --->.
 
@@ -548,7 +548,7 @@ o ile opcja 'wrapscan' nie została przestawiona.
 
 ---> To ( jest linia testowa z (, [, ] i {, } . ))
 
-UWAGA: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
+Uwaga: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
        z niesparowanymi nawiasami!
 
 
@@ -598,7 +598,7 @@ UWAGA: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
      By zamienić wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
      By zamienić frazy pomiędzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
      By zamienić wszystkie wystąpienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosił Cię o potwierdzienie dodaj 'c'	   :%s/stary/nowy/gc
+     By Vim prosił Cię o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		 Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE
 
@@ -606,7 +606,7 @@ UWAGA: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
 	** Wpisz  :!  a następnie zewnętrzne polecenie by je wykonać. **
 
   1. Wpisz znajome polecenie  :  by ustawić kursor na dole ekranu. To pozwala
-     na wprowadzenie polecenia.
+     na wprowadzenie komendy linii poleceń.
 
   2. Teraz wstaw  !  (wykrzyknik). To umożliwi Ci wykonanie dowolnego
      zewnętrznego polecenia powłoki.
@@ -638,12 +638,12 @@ Uwaga:  Wszystkie polecenia  :  muszą być zakończone <ENTER>.
   4. To polecenie zapamięta cały plik (Vim Tutor) pod nazwą TEST.
      By to sprawdzić wpisz  :!dir  lub  :!ls , żeby znowu zobaczyć listę plików.
 
-Uwaga: Zauważ, że gdybyś teraz wyszedł z Vim-a, a następnie wszedł ponownie
-       komendą  vim TEST , plik byłby dokładną kopią tutoriala kiedy go
+Uwaga: Zauważ, że gdybyś teraz wyszedł z Vima, a następnie wszedł ponownie
+       poleceniem  vim TEST , plik byłby dokładną kopią tutoriala kiedy go
        zapisywałeś.
 
-  5. Teraz usuń plik wpisując:		   :!rm TEST
-
+  5. Teraz usuń plik wpisując (MS-DOS):		   :!del TEST
+                          lub (Unix):              :!rm TEST
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
@@ -687,8 +687,8 @@ UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdź
      teraz są dwie kopie Lekcji 5.3., oryginał i kopia z pliku.
 
 UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
-       :r !ls  wczytuje wyjście polecenia ls i umieszcza je pod kursorem.
-
+       :r !ls  wczytuje wyjście polecenia ls i umieszcza je pod poniżej
+       kursora.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -703,7 +703,7 @@ UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
 
 	  :!rm NAZWA_PLIKU  -  usuwa plik NAZWA_PLIKU.
 
-  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vim-a na dysk z nazwą NAZWA_PLIKU.
+  2.  :w NAZWA_PLIKU  zapisuje obecny plik Vima na dysk z nazwą NAZWA_PLIKU.
 
   3.  v ruch :w NAZWA_PLIKU  zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
 
@@ -752,13 +752,13 @@ UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
   4. Dokończ wyraz tak jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
      Insert.
 
-  5. Użyj  e  by przejść do kolejnego niedokończonego wyraze i powtarzaj kroki
+  5. Użyj  e  by przejść do kolejnego niedokończonego wyrazu i powtarzaj kroki
      3. i 4.
 
 ---> Ta li poz Ci ćwi dodaw teks do koń lin
 ---> Ta linia pozwoli Ci ćwiczyć dodawanie tekstu do końca linii.
 
-Uwaga:  a ,  i  and  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce
        gdzie nowe znaki będą dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -789,7 +789,7 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale każdy znak usuwa istniejący
 
        ** użyj operatora  y  aby skopiować tekst i  p  aby go wkleić **
 
-  1. Przejdź do linii oznaczonej ---> i umieśc kursor za "a)".
+  1. Przejdź do linii oznaczonej ---> i umieść kursor za "a)".
 
   2. Wejdź w tryb Visual  v  i przenieś kursor na początek "pierwszy".
 
@@ -799,8 +799,8 @@ UWAGA: Tryb Replace jest jak tryb Insert, ale każdy znak usuwa istniejący
 
   5. Wciśnij  p  aby wpakować (paste) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. Użyj trybu Visual aby wybrać " element.", yankuj go  y , przejdź do końca
-     następnej linii  j$ i upakuj tam tekst z  p .
+  6. Użyj trybu Wizualnego aby wybrać " element.", yankuj go  y , przejdź do
+     końca następnej linii  j$ i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -818,7 +818,7 @@ Uwaga: możesz użyć  y  jako operatora;  yw  kopiuje jeden wyraz.
   2. Ustaw opcję 'ic' (Ignore case -- ignoruj wielkość liter) poprzez
      wpisanie:		:set ic
 
-  3. Teraz szukaj 'ignore' ponownie wciskując:  n
+  3. Teraz szukaj 'ignore' ponownie wciskając:  n
      Zauważ, że Ignore i IGNORE także są teraz znalezione.
 
   4. Ustaw opcje 'hlsearch' i 'incsearch':    :set hls is
@@ -835,16 +835,18 @@ Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
   1. Wpisanie  o  otwiera linię PONIŻEJ kursora.
-     Wpisanie wielkiego  O  otwiera linię POWYŻEJ kursora.
-  2. Wpisz  a  by wstawić tekst ZA znakiem na, którym jest kursor.
-     Wpisanie wielkiego  A  dodaje tekst na końcu linii.
+     Wpisanie  O  otwiera linię POWYŻEJ kursora.
+
+  2. Wpisanie  a  by wstawić tekst ZA znakiem na, którym jest kursor.
+     Wpisanie  A  dodaje tekst na końcu linii.
+
   3. Polecenie  e  przenosi do końca wyrazu.
-  4. Operato  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopóki
      nie zostanie wciśnięty <ESC>.
   6. Wpisanie ":set xxx" ustawia opcję "xxx". Nietkóre opcje:
-	'ic' 'ignorecase'	ignoruj wielkość znaków
-	'is' 'incsearch'	pokaż częściowe dopasowania
+	'ic'  'ignorecase'	ignoruj wielkość znaków
+	'is'  'incsearch'	pokaż częściowe dopasowania
 	'hls' 'hlsearch'	podświetl wszystkie dopasowania
      Możesz użyć zarówno długiej jak i krótkiej formy.
   7. Dodaj "no" aby wyłączyć opcję:   :set noic
@@ -854,14 +856,14 @@ Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKAĆ POMOC 
+			LEKCJA 7.1. JAK UZYSKAĆ POMOC
 
 		      ** Użycie systemu pomocy on-line **
 
   Vim posiada bardzo dobry system pomocy on-line. By zacząć spróbuj jednej
   z trzech możliwości:
-	- wciśnij klawisz <HELP> (jeśli takowy posiadasz)
-	- wciśnij klawisz <F1> (jeśli takowy posiadasz)
+	- wciśnij klawisz <HELP> (jeśli taki masz)
+	- wciśnij klawisz <F1> (jeśli taki masz)
 	- wpisz   :help<ENTER>
 
   Przeczytaj tekst w oknie pomocy  aby dowiedzieć się jak działa pomoc.
@@ -878,7 +880,7 @@ Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
 
-			 ** Włącz możliwości Vim-a **
+			  ** Włącz możliwości Vima **
 
   Vim ma o wiele więcej możliwości niż Vi, ale większość z nich jest domyślnie
   wyłączona. Jeśli chcesz włączyć te możliwości na starcie musisz utworzyć
@@ -943,23 +945,23 @@ UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj się kończy tutorial Vim-a. Został on pomyślany tak aby dać krótki
+  Tutaj się kończy tutorial Vima. Został on pomyślany tak aby dać krótki
   przegląd jego możliwości, wystarczający byś mógł go używać. Jest on
   daleki od kompletności ponieważ Vim ma o wiele, wiele więcej poleceń.
 
   Dla dalszej nauki rekomendujemy książkę:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksiązka całkowicie poświęcona Vim-owi. Użyteczna zwłaszcza dla
+  Pierwsza ksiązka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
   początkujących. Zawiera wiele przykładów i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
-  Ta książka jest starsza i bardziej o Vi niż o Vim-ie, ale także warta
+  Starsza pozycja i bardziej o Vi niż o Vimie, ale także warta
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
   To dobra książka by dowiedzieć się niemal wszystkiego co chciałbyś zrobić
-  z Vi. Szósta edycja zawiera też informacje o Vim-ie.
+  z Vi. Szósta edycja zawiera też informacje o Vimie.
 
   Po polsku wydano:
 	Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
@@ -967,10 +969,10 @@ UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
 	ISBN: 83-7197-472-8
 	http://helion.pl/ksiazki/vilek.htm
   Jest to książeczka zawierająca spis poleceń vi i jego najważniejszych
-  klonów (między innymi Vim-a).
+  klonów (między innymi Vima).
 
 	Edytor vi - autorzy Linda Lamb i Arnold Robbins
-	Wydawca: Helion 2001 (O'Reilly) - wg 6 ang. wydania
+	Wydawca: Helion 2001 (O'Reilly) - wg 6. ang. wydania
 	ISBN: 83-7197-539-2
 	http://helion.pl/ksiazki/viedyt.htm
   Rozszerzona wersja Learning the Vi Editor w polskim tłumaczeniu.
@@ -980,7 +982,7 @@ UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
   Colorado State University.
   E-mail: bware@mines.colorado.edu.
 
-  Zmodyfikowane dla Vim-a przez Brama Moolenaara.
+  Zmodyfikowane dla Vima przez Brama Moolenaara.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -988,4 +990,5 @@ UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
   Sierpień 2001,
   rev. Marzec 2002
   2nd rev. Wrzesień 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi proszę kierować na: mikmach@wp.pl
--- a/src/Make_bc5.mak
+++ b/src/Make_bc5.mak
@@ -51,6 +51,7 @@
 #		NOTE: compilation on WinNT/2K/XP requires
 #		at least version 1.6.5 of Ruby.  Earlier versions
 #		of Ruby will cause a compile error on these systems.
+#   RUBY_VER_LONG  same, but in format with dot. (1.6)
 #   DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no)
 # MBYTE		no or yes: set to yes for multi-byte support (yes)
 #               NOTE: multi-byte support is broken in the Borland libraries,
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -2,7 +2,7 @@
 # Makefile for Vim on OpenVMS
 #
 # Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
-# Last change:  2006 Mar 24
+# Last change:  2006 Mar 31
 #
 # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
 # with MMS and MMK
@@ -98,7 +98,8 @@ CCVER = YES
 
 .IFDEF VAX
 .IFDEF DECC	     # VAX with DECC
-CC_DEF  = cc/decc
+CC_DEF  = cc # /decc # some system requires this switch
+                     # but when it is not required /ver might fail
 PREFIX  = /prefix=all
 .ELSE		     # VAX with VAXC
 CC_DEF	= cc
@@ -148,10 +149,11 @@ GUI = YES
 # X/Motif/GTK executable  (also works in terminal mode )
 
 .IFDEF GTK
-# define GTK root directory
+# NOTE: you need to set up your GTK_DIR (GTK root directory), because it is
+# unique on every system - logicals are not accepted
 # please note: directory should end with . in order to /trans=conc work
-# example: GTK_DIR  = $1$DGA104:[USERS.ZAY.WORK.GTK1210.]
-GTK_DIR  = ALPHA$DKA0:[GTK128.]
+# Example: GTK_DIR  = $1$DGA104:[USERS.ZAY.WORK.GTK1210.]
+GTK_DIR  = DKA0:[GTK1210.]
 DEFS     = "HAVE_CONFIG_H","FEAT_GUI_GTK"
 LIBS     = ,OS_VMS_GTK.OPT/OPT
 GUI_FLAG = /name=(as_is,short)/float=ieee/ieee=denorm
--- a/src/Makefile
+++ b/src/Makefile
@@ -1322,7 +1322,8 @@ DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8
 DEST_MAN_IT = $(DEST_MAN_TOP)/it$(MAN1DIR)
 DEST_MAN_IT_I = $(DEST_MAN_TOP)/it.ISO8859-1$(MAN1DIR)
 DEST_MAN_IT_U = $(DEST_MAN_TOP)/it.UTF-8$(MAN1DIR)
-DEST_MAN_PL = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR)
+DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR)
+DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR)
 DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR)
 DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR)
 DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR)
@@ -1523,8 +1524,8 @@ PRO_AUTO = \
 	$(ALL_GUI_PRO) \
 	$(TCL_PRO)
 
-ICON_APP = gui_mac.icns
-ICON_DOCTXT = doc-txt.icns
+# Resources used for the Mac are in one directory.
+RSRC_DIR = os_mac_rsrc
 
 PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
 	os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
@@ -1905,6 +1906,7 @@ install-tool-languages:
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
@@ -1918,6 +1920,7 @@ install-languages: languages $(DEST_LANG
 	-$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
@@ -1936,6 +1939,8 @@ install-languages: languages $(DEST_LANG
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_PL) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_PL_I) $(INSTALLMLARGS)
+	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_PL_U) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU) $(INSTALLMLARGS)
@@ -2077,6 +2082,7 @@ uninstall_runtime:
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT_I) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT_U) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL) "" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL_I) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL_U) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_RU) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_RU_U) "" $(INSTALLMANARGS)
@@ -2097,6 +2103,8 @@ uninstall_runtime:
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_PL) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_PL_I) $(INSTALLMLARGS)
+	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_PL_U) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU) $(INSTALLMLARGS)
@@ -2105,7 +2113,7 @@ uninstall_runtime:
 	-rm -f $(DEST_MAN)/xxd.1
 	-rm -f $(DEST_MAN_FR)/xxd.1 $(DEST_MAN_FR_I)/xxd.1 $(DEST_MAN_FR_U)/xxd.1
 	-rm -f $(DEST_MAN_IT)/xxd.1 $(DEST_MAN_IT_I)/xxd.1 $(DEST_MAN_IT_U)/xxd.1
-	-rm -f $(DEST_MAN_PL)/xxd.1 $(DEST_MAN_PL_U)/xxd.1
+	-rm -f $(DEST_MAN_PL)/xxd.1 $(DEST_MAN_PL_I)/xxd.1 $(DEST_MAN_PL_U)/xxd.1
 	-rm -f $(DEST_MAN_RU)/xxd.1 $(DEST_MAN_RU_U)/xxd.1
 	-rm -f $(DEST_HELP)/*.txt $(DEST_HELP)/tags $(DEST_HELP)/*.pl
 	-rm -f $(DEST_HELP)/*.??x $(DEST_HELP)/tags-??
@@ -2162,9 +2170,9 @@ shadow:	runtime pixmaps
 	cp config.mk.dist $(SHADOWDIR)
 	mkdir $(SHADOWDIR)/xxd
 	cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
-	if test -f $(ICON_APP); then \
+	if test -d $(RSRC_DIR); then \
 		cd $(SHADOWDIR); \
-		ln -s ../$(ICON_APP) ../$(ICON_DOCTXT) ../os_mac.rsr.hqx ../dehqx.py .; \
+		ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \
 	fi
 	mkdir $(SHADOWDIR)/testdir
 	cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
@@ -2526,17 +2534,7 @@ VERSION = $(VIMMAJOR).$(VIMMINOR)
 
 ### Common flags
 M4FLAGSX = $(M4FLAGS) -DAPP_EXE=$(VIMNAME) -DAPP_NAME=$(VIMNAME) \
-		-DAPP_VER=$(VERSION) -DICON_APP=$(ICON_APP)
-
-### Icons
-ICONS = $(RESDIR)/$(ICON_APP) $(RESDIR)/$(ICON_DOCTXT)
-
-# If you uncomment the following lines the *.icns in the src directory will be
-# detected by this Makefile automatically, and used for Vim.
-#ICON_APP = $(shell if [ -e app.icns ] ; then echo app.icns ; else echo gui_mac.icns ; fi)
-#ICON_DOC = $(shell if [ -e doc.icns ] ; then echo doc.icns ; else echo ; fi)
-#ICON_DOCTXT = $(shell if [ -e doc-txt.icns ] ; then echo doc-txt.icns ; else echo ; fi)
-#ICONS = $(addprefix $(RESDIR)/, $(ICON_APP) $(ICON_DOC) $(ICON_DOCTXT))
+		-DAPP_VER=$(VERSION)
 
 install_macosx: gui_bundle
 # Remove the link to the runtime dir, don't want to copy all of that.
@@ -2577,9 +2575,8 @@ bundle-info:  bundle-dir
 	@echo "Creating Info.plist"
 	m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist
 
-bundle-resource: bundle-dir bundle-icons bundle-rsrc
-
-bundle-icons: $(ICONS)
+bundle-resource: bundle-dir bundle-rsrc
+	cp -f $(RSRC_DIR)/*.icns $(RESDIR)
 
 ### Classic resources
 # Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9)
@@ -2603,9 +2600,6 @@ bundle-language: bundle-dir
 	-$(SHELL) ./mkinstalldirs $(APPDIR)/Contents/MacOS
 	-$(SHELL) ./mkinstalldirs $(RESDIR)/English.lproj
 
-$(RESDIR)/%.icns: %.icns
-	cp $< $@
-
 
 ###############################################################################
 ### (automatically generated by 'make depend')
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -2781,7 +2781,10 @@ if test -z "$CFLAGS"; then
   test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
 fi
 if test "$GCC" = yes; then
-  gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[^0-9]*\([0-9]\.[0-9.]*\).*$/\1/g'`
+    gccversion=`"$CC" -dumpversion`
+  if test "x$gccversion" = "x"; then
+        gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[^0-9]*\([0-9]\.[0-9.]*\).*$/\1/g'`
+  fi
     if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
     echo 'GCC [34].0.[12] has a bug in the optimizer, disabling "-O#"'
     CFLAGS=`echo "$CFLAGS" | sed 's/-O[23456789]/-O/'`
@@ -9133,6 +9136,70 @@ fi
 
 done
 
+
+  if test $ac_cv_header_Xm_XpmP_h = yes; then
+        echo "$as_me:$LINENO: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
+echo $ECHO_N "checking for XpmAttributes_21 in Xm/XpmP.h... $ECHO_C" >&6
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <Xm/XpmP.h>
+int
+main ()
+{
+XpmAttributes_21 attr;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; cat >>confdefs.h <<\_ACEOF
+#define XPMATTRIBUTES_TYPE XpmAttributes_21
+_ACEOF
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; cat >>confdefs.h <<\_ACEOF
+#define XPMATTRIBUTES_TYPE XpmAttributes
+_ACEOF
+
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  else
+    cat >>confdefs.h <<\_ACEOF
+#define XPMATTRIBUTES_TYPE XpmAttributes_21
+_ACEOF
+
+  fi
   CPPFLAGS=$cppflags_save
 fi
 
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1814,6 +1814,10 @@ buflist_getfile(n, lnum, options, forcei
 	text_locked_msg();
 	return FAIL;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return FAIL;
+#endif
 
     /* altfpos may be changed by getfile(), get it now */
     if (lnum == 0)
@@ -3316,6 +3320,12 @@ build_stl_str_hl(wp, out, outlen, fmt, u
 
     if (fillchar == 0)
 	fillchar = ' ';
+#ifdef FEAT_MBYTE
+    /* Can't handle a multi-byte fill character yet. */
+    else if (mb_char2len(fillchar) > 1)
+	fillchar = '-';
+#endif
+
     /*
      * Get line & check if empty (cursorpos will show "0-1").
      * If inversion is possible we use it. Else '=' characters are used.
@@ -4367,6 +4377,14 @@ do_arg_all(count, forceit, keep_tabs)
     ++autocmd_no_leave;
 #endif
     win_enter(lastwin, FALSE);
+#ifdef FEAT_WINDOWS
+    /* ":drop all" should re-use an empty window to avoid "--remote-tab"
+     * leaving an empty tab page when executed locally. */
+    if (keep_tabs && bufempty() && curbuf->b_nwindows == 1
+			    && curbuf->b_ffname == NULL && !curbuf->b_changed)
+	use_firstwin = TRUE;
+#endif
+
     for (i = 0; i < count && i < alist->al_ga.ga_len && !got_int; ++i)
     {
 	if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -243,6 +243,9 @@
 #undef HAVE_X11_XMU_EDITRES_H
 #undef HAVE_X11_SM_SMLIB_H
 
+/* Define to the type of the XpmAttributes type. */
+#undef XPMATTRIBUTES_TYPE
+
 /* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
 #undef HAVE_SYS_WAIT_H
 
--- a/src/configure.in
+++ b/src/configure.in
@@ -29,7 +29,12 @@ if test -z "$CFLAGS"; then
   test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
 fi
 if test "$GCC" = yes; then
-  gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
+  dnl method that should work for nearly all versions
+  gccversion=`"$CC" -dumpversion`
+  if test "x$gccversion" = "x"; then
+    dnl old method; fall-back for when -dumpversion doesn't work
+    gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
+  fi
   dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
   if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
     echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
@@ -1897,6 +1902,17 @@ if test -z "$SKIP_MOTIF"; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
 		   Xm/UnhighlightT.h)
+
+  if test $ac_cv_header_Xm_XpmP_h = yes; then
+    dnl Solaris uses XpmAttributes_21, very annoying.
+    AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
+    AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
+	AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
+	AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
+	)
+  else
+    AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21)
+  fi
   CPPFLAGS=$cppflags_save
 fi
 
--- a/src/diff.c
+++ b/src/diff.c
@@ -1000,7 +1000,8 @@ ex_diffpatch(eap)
 
 #ifdef FEAT_AUTOCMD
 		/* Do filetype detection with the new name. */
-		do_cmdline_cmd((char_u *)":doau filetypedetect BufRead");
+		if (au_has_group((char_u *)"filetypedetect"))
+		    do_cmdline_cmd((char_u *)":doau filetypedetect BufRead");
 #endif
 	    }
 	}
@@ -2056,6 +2057,19 @@ ex_diffgetput(eap)
 	aucmd_prepbuf(&aco, curtab->tp_diffbuf[idx_other]);
     }
 
+    /* May give the warning for a changed buffer here, which can trigger the
+     * FileChangedRO autocommand, which may do nasty things and mess
+     * everything up. */
+    if (!curbuf->b_changed)
+    {
+	change_warning(0);
+	if (diff_buf_idx(curbuf) != idx_to)
+	{
+	    EMSG(_("E787: Buffer changed unexpectedly"));
+	    return;
+	}
+    }
+
     dprev = NULL;
     for (dp = curtab->tp_first_diff; dp != NULL; )
     {
@@ -2131,7 +2145,8 @@ ex_diffgetput(eap)
 		nr = dp->df_lnum[idx_from] + start_skip + i;
 		if (nr > curtab->tp_diffbuf[idx_from]->b_ml.ml_line_count)
 		    break;
-		p = vim_strsave(ml_get_buf(curtab->tp_diffbuf[idx_from], nr, FALSE));
+		p = vim_strsave(ml_get_buf(curtab->tp_diffbuf[idx_from],
+								  nr, FALSE));
 		if (p != NULL)
 		{
 		    ml_append(lnum + i - 1, p, 0, FALSE);
@@ -2154,7 +2169,8 @@ ex_diffgetput(eap)
 		/* Check if there are any other buffers and if the diff is
 		 * equal in them. */
 		for (i = 0; i < DB_COUNT; ++i)
-		    if (curtab->tp_diffbuf[i] != NULL && i != idx_from && i != idx_to
+		    if (curtab->tp_diffbuf[i] != NULL && i != idx_from
+								&& i != idx_to
 			    && !diff_equal_entry(dp, idx_from, i))
 			break;
 		if (i == DB_COUNT)
deleted file mode 100644
index c66b0ceffbdd6af00184a6cc8f7c024333b61f62..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/src/edit.c
+++ b/src/edit.c
@@ -40,7 +40,7 @@
 static char *ctrl_x_msgs[] =
 {
     N_(" Keyword completion (^N^P)"), /* ctrl_x_mode == 0, ^P/^N compl. */
-    N_(" ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"),
+    N_(" ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"),
     NULL,
     N_(" Whole line completion (^L^N^P)"),
     N_(" File name completion (^F^N^P)"),
@@ -53,7 +53,7 @@ static char *ctrl_x_msgs[] =
     N_(" Command-line completion (^V^N^P)"),
     N_(" User defined completion (^U^N^P)"),
     N_(" Omni completion (^O^N^P)"),
-    N_(" Spelling suggestion (^S^N^P)"),
+    N_(" Spelling suggestion (s^N^P)"),
     N_(" Keyword Local completion (^N^P)"),
 };
 
@@ -3139,7 +3139,9 @@ ins_compl_prep(c)
 	    case Ctrl_S:
 		ctrl_x_mode = CTRL_X_SPELL;
 #ifdef FEAT_SPELL
+		++emsg_off;	/* Avoid getting the E756 error twice. */
 		spell_back_to_badword();
+		--emsg_off;
 #endif
 		break;
 	    case Ctrl_RSB:
@@ -3286,7 +3288,7 @@ ins_compl_prep(c)
 		if (compl_leader != NULL)
 		    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
 		else if (compl_first_match != NULL)
-		    ins_bytes(compl_first_match->cp_str
+		    ins_bytes(compl_orig_text
 					  + curwin->w_cursor.col - compl_col);
 		retval = TRUE;
 	    }
--- a/src/eval.c
+++ b/src/eval.c
@@ -369,6 +369,9 @@ static void list_hashtable_vars __ARGS((
 static void list_glob_vars __ARGS((void));
 static void list_buf_vars __ARGS((void));
 static void list_win_vars __ARGS((void));
+#ifdef FEAT_WINDOWS
+static void list_tab_vars __ARGS((void));
+#endif
 static void list_vim_vars __ARGS((void));
 static void list_script_vars __ARGS((void));
 static void list_func_vars __ARGS((void));
@@ -567,6 +570,7 @@ static void f_map __ARGS((typval_T *argv
 static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_match __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_matcharg __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_matchend __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_matchlist __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_matchstr __ARGS((typval_T *argvars, typval_T *rettv));
@@ -578,6 +582,7 @@ static void f_mkdir __ARGS((typval_T *ar
 static void f_mode __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_prevnonblank __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_printf __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_pumvisible __ARGS((typval_T *argvars, typval_T *rettv));
@@ -1685,6 +1690,9 @@ ex_let(eap)
 	    list_glob_vars();
 	    list_buf_vars();
 	    list_win_vars();
+#ifdef FEAT_WINDOWS
+	    list_tab_vars();
+#endif
 	    list_script_vars();
 	    list_func_vars();
 	    list_vim_vars();
@@ -1947,6 +1955,17 @@ list_win_vars()
     list_hashtable_vars(&curwin->w_vars.dv_hashtab, (char_u *)"w:", TRUE);
 }
 
+#ifdef FEAT_WINDOWS
+/*
+ * List tab page variables.
+ */
+    static void
+list_tab_vars()
+{
+    list_hashtable_vars(&curtab->tp_vars.dv_hashtab, (char_u *)"t:", TRUE);
+}
+#endif
+
 /*
  * List Vim variables.
  */
@@ -2043,6 +2062,9 @@ list_arg_vars(eap, arg)
 				case 'g': list_glob_vars(); break;
 				case 'b': list_buf_vars(); break;
 				case 'w': list_win_vars(); break;
+#ifdef FEAT_WINDOWS
+				case 't': list_tab_vars(); break;
+#endif
 				case 'v': list_vim_vars(); break;
 				case 's': list_script_vars(); break;
 				case 'l': list_func_vars(); break;
@@ -3577,12 +3599,20 @@ get_user_var_name(xp, idx)
     static long_u	gdone;
     static long_u	bdone;
     static long_u	wdone;
+#ifdef FEAT_WINDOWS
+    static long_u	tdone;
+#endif
     static int		vidx;
     static hashitem_T	*hi;
     hashtab_T		*ht;
 
     if (idx == 0)
+    {
 	gdone = bdone = wdone = vidx = 0;
+#ifdef FEAT_WINDOWS
+	tdone = 0;
+#endif
+    }
 
     /* Global variables */
     if (gdone < globvarht.ht_used)
@@ -3629,6 +3659,21 @@ get_user_var_name(xp, idx)
 	return cat_prefix_varname('w', hi->hi_key);
     }
 
+#ifdef FEAT_WINDOWS
+    /* t: variables */
+    ht = &curtab->tp_vars.dv_hashtab;
+    if (tdone < ht->ht_used)
+    {
+	if (tdone++ == 0)
+	    hi = ht->ht_array;
+	else
+	    ++hi;
+	while (HASHITEM_EMPTY(hi))
+	    ++hi;
+	return cat_prefix_varname('t', hi->hi_key);
+    }
+#endif
+
     /* v: variables */
     if (vidx < VV_LEN)
 	return cat_prefix_varname('v', (char_u *)vimvars[vidx++].vv_name);
@@ -5697,7 +5742,9 @@ list_append_string(l, str, len)
     list_append(l, li);
     li->li_tv.v_type = VAR_STRING;
     li->li_tv.v_lock = 0;
-    if ((li->li_tv.vval.v_string = (len >= 0 ? vim_strnsave(str, len)
+    if (str == NULL)
+	li->li_tv.vval.v_string = NULL;
+    else if ((li->li_tv.vval.v_string = (len >= 0 ? vim_strnsave(str, len)
 						 : vim_strsave(str))) == NULL)
 	return FAIL;
     return OK;
@@ -5995,6 +6042,9 @@ garbage_collect()
     int		i;
     funccall_T	*fc;
     int		did_free = FALSE;
+#ifdef FEAT_WINDOWS
+    tabpage_T	*tp;
+#endif
 
     /*
      * 1. Go through all accessible variables and mark all lists and dicts
@@ -6009,9 +6059,15 @@ garbage_collect()
 	set_ref_in_ht(&buf->b_vars.dv_hashtab, copyID);
 
     /* window-local variables */
-    FOR_ALL_WINDOWS(wp)
+    FOR_ALL_TAB_WINDOWS(tp, wp)
 	set_ref_in_ht(&wp->w_vars.dv_hashtab, copyID);
 
+#ifdef FEAT_WINDOWS
+    /* tabpage-local variables */
+    for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+	set_ref_in_ht(&tp->tp_vars.dv_hashtab, copyID);
+#endif
+
     /* global variables */
     set_ref_in_ht(&globvarht, copyID);
 
@@ -7021,6 +7077,7 @@ static struct fst
     {"maparg",		1, 3, f_maparg},
     {"mapcheck",	1, 3, f_mapcheck},
     {"match",		2, 4, f_match},
+    {"matcharg",	1, 1, f_matcharg},
     {"matchend",	2, 4, f_matchend},
     {"matchlist",	2, 4, f_matchlist},
     {"matchstr",	2, 4, f_matchstr},
@@ -7032,6 +7089,7 @@ static struct fst
     {"mode",		0, 0, f_mode},
     {"nextnonblank",	1, 1, f_nextnonblank},
     {"nr2char",		1, 1, f_nr2char},
+    {"pathshorten",	1, 1, f_pathshorten},
     {"prevnonblank",	1, 1, f_prevnonblank},
     {"printf",		2, 19, f_printf},
     {"pumvisible",	0, 0, f_pumvisible},
@@ -11484,7 +11542,7 @@ f_islocked(argvars, rettv)
 		}
 	    }
 	    else if (lv.ll_range)
-		EMSG(_("E745: Range not allowed"));
+		EMSG(_("E786: Range not allowed"));
 	    else if (lv.ll_newkey != NULL)
 		EMSG2(_(e_dictkey), lv.ll_newkey);
 	    else if (lv.ll_list != NULL)
@@ -12120,6 +12178,30 @@ f_match(argvars, rettv)
 }
 
 /*
+ * "matcharg()" function
+ */
+    static void
+f_matcharg(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+    if (rettv_list_alloc(rettv) == OK)
+    {
+#ifdef FEAT_SEARCH_EXTRA
+	int	mi = get_tv_number(&argvars[0]);
+
+	if (mi >= 1 && mi <= 3)
+	{
+	    list_append_string(rettv->vval.v_list,
+				 syn_id2name(curwin->w_match_id[mi - 1]), -1);
+	    list_append_string(rettv->vval.v_list,
+					     curwin->w_match_pat[mi - 1], -1);
+	}
+#endif
+    }
+}
+
+/*
  * "matchend()" function
  */
     static void
@@ -12392,6 +12474,29 @@ f_nr2char(argvars, rettv)
 }
 
 /*
+ * "pathshorten()" function
+ */
+    static void
+f_pathshorten(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+    char_u	*p;
+
+    rettv->v_type = VAR_STRING;
+    p = get_tv_string_chk(&argvars[0]);
+    if (p == NULL)
+	rettv->vval.v_string = NULL;
+    else
+    {
+	p = vim_strsave(p);
+	rettv->vval.v_string = p;
+	if (p != NULL)
+	    shorten_dir(p);
+    }
+}
+
+/*
  * "prevnonblank()" function
  */
     static void
@@ -16658,6 +16763,10 @@ set_cmdarg(eap, oldarg)
 	len = 8;
     else
 	len = 0;
+
+    if (eap->read_edit)
+	len += 7;
+
     if (eap->force_ff != 0)
 	len += (unsigned)STRLEN(eap->cmd + eap->force_ff) + 6;
 # ifdef FEAT_MBYTE
@@ -16677,6 +16786,10 @@ set_cmdarg(eap, oldarg)
 	sprintf((char *)newval, " ++nobin");
     else
 	*newval = NUL;
+
+    if (eap->read_edit)
+	STRCAT(newval, " ++edit");
+
     if (eap->force_ff != 0)
 	sprintf((char *)newval + STRLEN(newval), " ++ff=%s",
 						eap->cmd + eap->force_ff);
@@ -17144,6 +17257,9 @@ find_var_in_ht(ht, varname, writing)
 	    case 'v': return &vimvars_var;
 	    case 'b': return &curbuf->b_bufvar;
 	    case 'w': return &curwin->w_winvar;
+#ifdef FEAT_WINDOWS
+	    case 't': return &curtab->tp_winvar;
+#endif
 	    case 'l': return current_funccal == NULL
 					? NULL : &current_funccal->l_vars_var;
 	    case 'a': return current_funccal == NULL
@@ -17207,6 +17323,10 @@ find_var_ht(name, varname)
 	return &curbuf->b_vars.dv_hashtab;
     if (*name == 'w')				/* window variable */
 	return &curwin->w_vars.dv_hashtab;
+#ifdef FEAT_WINDOWS
+    if (*name == 't')				/* tab page variable */
+	return &curtab->tp_vars.dv_hashtab;
+#endif
     if (*name == 'v')				/* v: variable */
 	return &vimvarht;
     if (*name == 'a' && current_funccal != NULL) /* function argument */
@@ -18528,6 +18648,9 @@ ex_function(eap)
 	    fudi.fd_di->di_tv.v_lock = 0;
 	    fudi.fd_di->di_tv.vval.v_string = vim_strsave(name);
 	    fp->uf_refcount = 1;
+
+	    /* behave like "dict" was used */
+	    flags |= FC_DICT;
 	}
 
 	/* insert the new function in the function list */
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2601,7 +2601,9 @@ do_write(eap)
 	    /* If 'filetype' was empty try detecting it now. */
 	    if (*curbuf->b_p_ft == NUL)
 	    {
-		(void)do_doautocmd((char_u *)"filetypedetect BufRead", TRUE);
+		if (au_has_group((char_u *)"filetypedetect"))
+		    (void)do_doautocmd((char_u *)"filetypedetect BufRead",
+									TRUE);
 		do_modelines(0);
 	    }
 #endif
@@ -2610,6 +2612,9 @@ do_write(eap)
 	retval = buf_write(curbuf, ffname, fname, eap->line1, eap->line2,
 				 eap, eap->append, eap->forceit, TRUE, FALSE);
 
+	/* After ":saveas fname" reset 'readonly'. */
+	if (eap->cmdidx == CMD_saveas && retval == OK)
+	    curbuf->b_p_ro = FALSE;
     }
 
 theend:
@@ -2698,7 +2703,6 @@ check_overwrite(eap, buf, fname, ffname,
 	    }
 	    swapname = makeswapname(fname, ffname, curbuf, dir);
 	    r = vim_fexists(swapname);
-	    vim_free(swapname);
 	    if (r)
 	    {
 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
@@ -2711,7 +2715,10 @@ check_overwrite(eap, buf, fname, ffname,
 								    swapname);
 		    if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2)
 								   != VIM_YES)
+		    {
+			vim_free(swapname);
 			return FAIL;
+		    }
 		    eap->forceit = TRUE;
 		}
 		else
@@ -2719,9 +2726,11 @@ check_overwrite(eap, buf, fname, ffname,
 		{
 		    EMSG2(_("E768: Swap file exists: %s (:silent! overrides)"),
 								    swapname);
+		    vim_free(swapname);
 		    return FAIL;
 		}
 	    }
+	    vim_free(swapname);
 	}
     }
     return OK;
@@ -2885,6 +2894,10 @@ getfile(fnum, ffname, sfname, setpm, lnu
 
     if (text_locked())
 	return 1;
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return 1;
+#endif
 
     if (fnum == 0)
     {
@@ -4609,7 +4622,7 @@ do_sub(eap)
 				    sub, sub_firstline, FALSE, p_magic, TRUE);
 
 		/* When the match included the "$" of the last line it may
-		 * include one line too much. */
+		 * go beyond the last line of the buffer. */
 		if (nmatch > curbuf->b_ml.ml_line_count - sub_firstlnum + 1)
 		{
 		    nmatch = curbuf->b_ml.ml_line_count - sub_firstlnum + 1;
@@ -4701,6 +4714,15 @@ do_sub(eap)
 		/* Remember next character to be copied. */
 		copycol = regmatch.endpos[0].col;
 
+		if (skip_match)
+		{
+		    /* Already hit end of the buffer, sub_firstlnum is one
+		     * less than what it ought to be. */
+		    vim_free(sub_firstline);
+		    sub_firstline = vim_strsave((char_u *)"");
+		    copycol = 0;
+		}
+
 		/*
 		 * Now the trick is to replace CTRL-M chars with a real line
 		 * break.  This would make it impossible to insert a CTRL-M in
@@ -5418,11 +5440,13 @@ ex_help(eap)
     if (tag != NULL)
 	do_tag(tag, DT_HELP, 1, FALSE, TRUE);
 
-    /* Delete the empty buffer if we're not using it. */
+    /* Delete the empty buffer if we're not using it.  Careful: autocommands
+     * may have jumped to another window, check that the buffer is not in a
+     * window. */
     if (empty_fnum != 0 && curbuf->b_fnum != empty_fnum)
     {
 	buf = buflist_findnr(empty_fnum);
-	if (buf != NULL)
+	if (buf != NULL && buf->b_nwindows == 0)
 	    wipe_buffer(buf, TRUE);
     }
 
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1142,6 +1142,7 @@ struct exarg
     int		amount;		/* number of '>' or '<' for shift command */
     int		regname;	/* register name (NUL if none) */
     int		force_bin;	/* 0, FORCE_BIN or FORCE_NOBIN */
+    int		read_edit;	/* ++edit argument */
     int		force_ff;	/* ++ff= argument (index in cmd[]) */
 #ifdef FEAT_MBYTE
     int		force_enc;	/* ++enc= argument (index in cmd[]) */
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -2223,7 +2223,7 @@ ex_listdo(eap)
 #endif
 
 #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
-    if (eap->cmdidx != CMD_windo)
+    if (eap->cmdidx != CMD_windo && eap->cmdidx != CMD_tabdo)
 	/* Don't do syntax HL autocommands.  Skipping the syntax file is a
 	 * great speed improvement. */
 	save_ei = au_event_disable(",Syntax");
@@ -2486,7 +2486,7 @@ source_callback(fname, cookie)
     char_u	*fname;
     void	*cookie;
 {
-    (void)do_source(fname, FALSE, FALSE);
+    (void)do_source(fname, FALSE, DOSO_NONE);
 }
 
 /*
@@ -2669,7 +2669,7 @@ cmd_source(fname, eap)
 						 );
 
     /* ":source" read ex commands */
-    else if (do_source(fname, FALSE, FALSE) == FAIL)
+    else if (do_source(fname, FALSE, DOSO_NONE) == FAIL)
 	EMSG2(_(e_notopen), fname);
 }
 
@@ -2766,7 +2766,7 @@ fopen_noinh_readbin(filename)
 do_source(fname, check_other, is_vimrc)
     char_u	*fname;
     int		check_other;	    /* check for .vimrc and _vimrc */
-    int		is_vimrc;	    /* call vimrc_found() when file exists */
+    int		is_vimrc;	    /* DOSO_ value */
 {
     struct source_cookie    cookie;
     char_u		    *save_sourcing_name;
@@ -2873,8 +2873,10 @@ do_source(fname, check_other, is_vimrc)
 							sourcing_lnum, fname);
 	verbose_leave();
     }
-    if (is_vimrc)
-	vimrc_found();
+    if (is_vimrc == DOSO_VIMRC)
+	vimrc_found(fname_exp, (char_u *)"MYVIMRC");
+    else if (is_vimrc == DOSO_GVIMRC)
+	vimrc_found(fname_exp, (char_u *)"MYGVIMRC");
 
 #ifdef USE_CRNL
     /* If no automatic file format: Set default to CR-NL. */
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2176,6 +2176,14 @@ do_one_cmd(cmdlinep, sourcing,
 		errormsg = (char_u *)_(e_secure);
 	    goto doend;
 	}
+#ifdef FEAT_AUTOCMD
+	if (!(ea.argt & CMDWIN)
+# ifdef FEAT_USR_CMDS
+		&& !USER_CMDIDX(ea.cmdidx)
+# endif
+		&& curbuf_locked())
+	    goto doend;
+#endif
 
 	if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
 	{
@@ -4587,6 +4595,14 @@ getargopt(eap)
 	return OK;
     }
 
+    /* ":read ++edit file" */
+    if (STRNCMP(arg, "edit", 4) == 0)
+    {
+	eap->read_edit = TRUE;
+	eap->arg = skipwhite(arg + 4);
+	return OK;
+    }
+
     if (STRNCMP(arg, "ff", 2) == 0)
     {
 	arg += 2;
@@ -6086,6 +6102,10 @@ ex_quit(eap)
 	text_locked_msg();
 	return;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return;
+#endif
 
 #ifdef FEAT_NETBEANS_INTG
     netbeansForcedQuit = eap->forceit;
@@ -6155,6 +6175,10 @@ ex_quit_all(eap)
 	text_locked_msg();
 	return;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return;
+#endif
 
     exiting = TRUE;
     if (eap->forceit || !check_changed_any(FALSE))
@@ -6175,7 +6199,11 @@ ex_close(eap)
 	cmdwin_result = K_IGNORE;
     else
 # endif
-	if (!text_locked())
+	if (!text_locked()
+#ifdef FEAT_AUTOCMD
+		&& !curbuf_locked()
+#endif
+		)
 	    ex_win_close(eap->forceit, curwin, NULL);
 }
 
@@ -6275,7 +6303,11 @@ ex_tabclose(eap)
 		    return;
 		}
 	    }
-	    if (!text_locked())
+	    if (!text_locked()
+#ifdef FEAT_AUTOCMD
+		    && !curbuf_locked()
+#endif
+	       )
 		tabpage_close(eap->forceit);
 	}
 
@@ -6481,6 +6513,10 @@ ex_exit(eap)
 	text_locked_msg();
 	return;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return;
+#endif
 
     /*
      * if more files or windows we won't exit
@@ -6596,6 +6632,10 @@ handle_drop(filec, filev, split)
     /* Postpone this while editing the command line. */
     if (text_locked())
 	return;
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return;
+#endif
 
     /* Check whether the current buffer is changed. If so, we will need
      * to split the current window or data could be lost.
@@ -10300,7 +10340,7 @@ ex_loadview(eap)
     fname = get_view_file(*eap->arg);
     if (fname != NULL)
     {
-	do_source(fname, FALSE, FALSE);
+	do_source(fname, FALSE, DOSO_NONE);
 	vim_free(fname);
     }
 }
@@ -10658,6 +10698,8 @@ ex_match(eap)
     {
 	vim_free(curwin->w_match[mi].regprog);
 	curwin->w_match[mi].regprog = NULL;
+	vim_free(curwin->w_match_pat[mi]);
+	curwin->w_match_pat[mi] = NULL;
 	redraw_later(SOME_VALID);	/* always need a redraw */
     }
 
@@ -10703,12 +10745,14 @@ ex_match(eap)
 	    c = *end;
 	    *end = NUL;
 	    curwin->w_match[mi].regprog = vim_regcomp(p + 1, RE_MAGIC);
-	    *end = c;
 	    if (curwin->w_match[mi].regprog == NULL)
 	    {
 		EMSG2(_(e_invarg2), p);
+		*end = c;
 		return;
 	    }
+	    curwin->w_match_pat[mi] = vim_strsave(p + 1);
+	    *end = c;
 	}
     }
     eap->nextcmd = find_nextcmd(end);
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1942,6 +1942,23 @@ text_locked_msg()
 	EMSG(_(e_secure));
 }
 
+#if defined(FEAT_AUTOCMD) || defined(PROTO)
+/*
+ * Check if "curbuf_lock" is set and return TRUE when it is and give an error
+ * message.
+ */
+    int
+curbuf_locked()
+{
+    if (curbuf_lock > 0)
+    {
+	EMSG(_("E788: Not allowed to edit another buffer now"));
+	return TRUE;
+    }
+    return FALSE;
+}
+#endif
+
     static int
 cmdline_charsize(idx)
     int		idx;
--- a/src/feature.h
+++ b/src/feature.h
@@ -753,7 +753,7 @@
 /*
  * GUI tabline
  */
-#if defined(FEAT_WINDOWS) && (defined(FEAT_GUI_GTK) \
+#if defined(FEAT_WINDOWS) && (defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF)\
 	|| (defined(FEAT_GUI_MSWIN) && (!defined(_MSC_VER) || _MSC_VER > 1020)))
 # define FEAT_GUI_TABLINE
 #endif
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -217,6 +217,7 @@ readfile(fname, sfname, from, lines_to_s
 {
     int		fd = 0;
     int		newfile = (flags & READ_NEW);
+    int		set_options = newfile || (eap != NULL && eap->read_edit);
     int		check_readonly;
     int		filtering = (flags & READ_FILTER);
     int		read_stdin = (flags & READ_STDIN);
@@ -416,7 +417,7 @@ readfile(fname, sfname, from, lines_to_s
 #endif
 
     /* set default 'fileformat' */
-    if (newfile)
+    if (set_options)
     {
 	if (eap != NULL && eap->force_ff != 0)
 	    set_fileformat(get_fileformat_force(curbuf, eap), OPT_LOCAL);
@@ -622,7 +623,7 @@ readfile(fname, sfname, from, lines_to_s
     if ((check_readonly && file_readonly) || curbuf->b_help)
 	curbuf->b_p_ro = TRUE;
 
-    if (newfile)
+    if (set_options)
     {
 	curbuf->b_p_eol = TRUE;
 	curbuf->b_start_eol = TRUE;
@@ -769,7 +770,7 @@ readfile(fname, sfname, from, lines_to_s
     if (eap != NULL && eap->bad_char != 0)
     {
 	bad_char_behavior = eap->bad_char;
-	if (newfile)
+	if (set_options)
 	    curbuf->b_bad_char = eap->bad_char;
     }
     else
@@ -884,7 +885,7 @@ retry:
 	    ml_delete(lnum--, FALSE);
 	file_rewind = FALSE;
 #ifdef FEAT_MBYTE
-	if (newfile)
+	if (set_options)
 	    curbuf->b_p_bomb = FALSE;
 	conv_error = 0;
 #endif
@@ -1326,7 +1327,7 @@ retry:
 		    filesize += blen;
 		    size -= blen;
 		    mch_memmove(ptr, ptr + blen, (size_t)size);
-		    if (newfile)
+		    if (set_options)
 			curbuf->b_p_bomb = TRUE;
 		}
 
@@ -1955,7 +1956,7 @@ rewind_retry:
 		    fileformat = default_fileformat();
 
 		/* if editing a new file: may set p_tx and p_ff */
-		if (newfile)
+		if (set_options)
 		    set_fileformat(fileformat, OPT_LOCAL);
 	    }
 	}
@@ -2037,7 +2038,7 @@ rewind_retry:
 					|| lseek(fd, (off_t)0L, SEEK_SET) == 0))
 				{
 				    fileformat = EOL_UNIX;
-				    if (newfile)
+				    if (set_options)
 					set_fileformat(EOL_UNIX, OPT_LOCAL);
 				    file_rewind = TRUE;
 				    keep_fileformat = TRUE;
@@ -2087,7 +2088,8 @@ failed:
 		&& *line_start == Ctrl_Z
 		&& ptr == line_start + 1))
     {
-	if (newfile)			/* remember for when writing */
+	/* remember for when writing */
+	if (set_options)
 	    curbuf->b_p_eol = FALSE;
 	*ptr = NUL;
 	if (ml_append(lnum, line_start,
@@ -2097,7 +2099,7 @@ failed:
 	    read_no_eol_lnum = ++lnum;
     }
 
-    if (newfile)
+    if (set_options)
 	save_file_ff(curbuf);		/* remember the current file format */
 
 #ifdef FEAT_CRYPT
@@ -2106,8 +2108,9 @@ failed:
 #endif
 
 #ifdef FEAT_MBYTE
-    /* If editing a new file: set 'fenc' for the current buffer. */
-    if (newfile)
+    /* If editing a new file: set 'fenc' for the current buffer.
+     * Also for ":read ++edit file". */
+    if (set_options)
 	set_string_option_direct((char_u *)"fenc", -1, fenc,
 						       OPT_FREE|OPT_LOCAL, 0);
     if (fenc_alloced)
@@ -2398,7 +2401,7 @@ failed:
 
 	/* Save the fileformat now, otherwise the buffer will be considered
 	 * modified if the format/encoding was automatically detected. */
-	if (newfile)
+	if (set_options)
 	    save_file_ff(curbuf);
 
 	/*
@@ -2482,6 +2485,7 @@ prep_exarg(eap, buf)
     eap->force_ff = 7;
 
     eap->force_bin = buf->b_p_bin ? FORCE_BIN : FORCE_NOBIN;
+    eap->read_edit = FALSE;
     eap->forceit = FALSE;
     return OK;
 }
@@ -3705,7 +3709,7 @@ buf_write(buf, fname, sfname, start, end
     }
 #endif
 
-    /* When using ":w!" and writing to the current file, readonly makes no
+    /* When using ":w!" and writing to the current file, 'readonly' makes no
      * sense, reset it, unless 'Z' appears in 'cpoptions'.  */
     if (forceit && overwriting && vim_strchr(p_cpo, CPO_KEEPRO) == NULL)
     {
@@ -4653,7 +4657,7 @@ set_rw_fname(fname, sfname)
     /* Do filetype detection now if 'filetype' is empty. */
     if (*curbuf->b_p_ft == NUL)
     {
-	if (au_find_group((char_u *)"filetypedetect") != AUGROUP_ERROR)
+	if (au_has_group((char_u *)"filetypedetect"))
 	    (void)do_doautocmd((char_u *)"filetypedetect BufRead", FALSE);
 	do_modelines(0);
     }
@@ -7321,7 +7325,6 @@ au_find_group(name)
     return AUGROUP_ERROR;
 }
 
-#if defined(FEAT_BROWSE) || defined(PROTO)
 /*
  * Return TRUE if augroup "name" exists.
  */
@@ -7331,7 +7334,6 @@ au_has_group(name)
 {
     return au_find_group(name) != AUGROUP_ERROR;
 }
-#endif
 
 /*
  * ":augroup {name}".
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1058,6 +1058,7 @@ typebuf_typed()
     return typebuf.tb_maplen == 0;
 }
 
+#if defined(FEAT_VISUAL) || defined(PROTO)
 /*
  * Return the number of characters that are mapped (or not typed).
  */
@@ -1066,6 +1067,7 @@ typebuf_maplen()
 {
     return typebuf.tb_maplen;
 }
+#endif
 
 /*
  * remove "len" characters from typebuf.tb_buf[typebuf.tb_off + offset]
@@ -4743,10 +4745,12 @@ static struct initmap
 #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
 	/* Use the Windows (CUA) keybindings. */
 # ifdef FEAT_GUI
+#  if 0	    /* These are now used to move tab pages */
 	{(char_u *)"<C-PageUp> H", NORMAL+VIS_SEL},
 	{(char_u *)"<C-PageUp> <C-O>H",INSERT},
 	{(char_u *)"<C-PageDown> L$", NORMAL+VIS_SEL},
 	{(char_u *)"<C-PageDown> <C-O>L<C-O>$", INSERT},
+#  endif
 
 	/* paste, copy and cut */
 	{(char_u *)"<S-Insert> \"*P", NORMAL},
@@ -4758,10 +4762,12 @@ static struct initmap
 	{(char_u *)"<C-X> \"*d", VIS_SEL},
 	/* Missing: CTRL-C (cancel) and CTRL-V (block selection) */
 # else
+#  if 0	    /* These are now used to move tab pages */
 	{(char_u *)"\316\204 H", NORMAL+VIS_SEL},    /* CTRL-PageUp is "H" */
 	{(char_u *)"\316\204 \017H",INSERT},	    /* CTRL-PageUp is "^OH"*/
 	{(char_u *)"\316v L$", NORMAL+VIS_SEL},	    /* CTRL-PageDown is "L$" */
 	{(char_u *)"\316v \017L\017$", INSERT},	    /* CTRL-PageDown ="^OL^O$"*/
+#  endif
 	{(char_u *)"\316w <C-Home>", NORMAL+VIS_SEL},
 	{(char_u *)"\316w <C-Home>", INSERT+CMDLINE},
 	{(char_u *)"\316u <C-End>", NORMAL+VIS_SEL},
--- a/src/globals.h
+++ b/src/globals.h
@@ -595,6 +595,11 @@ EXTERN int	textlock INIT(= 0);
 				/* non-zero when changing text and jumping to
 				 * another window or buffer is not allowed */
 
+#ifdef FEAT_AUTOCMD
+EXTERN int	curbuf_lock INIT(= 0);
+				/* non-zero when the current buffer can't be
+				 * changed.  Used for FileChangedRO. */
+#endif
 #ifdef FEAT_EVAL
 # define HAVE_SANDBOX
 EXTERN int	sandbox INIT(= 0);
--- a/src/gui.c
+++ b/src/gui.c
@@ -335,7 +335,7 @@ gui_init()
 	if (vim_strchr(p_go, GO_NOSYSMENU) == NULL)
 	{
 	    sys_menu = TRUE;
-	    do_source((char_u *)SYS_MENU_FILE, FALSE, FALSE);
+	    do_source((char_u *)SYS_MENU_FILE, FALSE, DOSO_NONE);
 	    sys_menu = FALSE;
 	}
 #endif
@@ -356,7 +356,7 @@ gui_init()
 	{
 	    if (STRCMP(use_gvimrc, "NONE") != 0
 		    && STRCMP(use_gvimrc, "NORC") != 0
-		    && do_source(use_gvimrc, FALSE, FALSE) != OK)
+		    && do_source(use_gvimrc, FALSE, DOSO_NONE) != OK)
 		EMSG2(_("E230: Cannot read from \"%s\""), use_gvimrc);
 	}
 	else
@@ -365,7 +365,7 @@ gui_init()
 	     * Get system wide defaults for gvim, only when file name defined.
 	     */
 #ifdef SYS_GVIMRC_FILE
-	    do_source((char_u *)SYS_GVIMRC_FILE, FALSE, FALSE);
+	    do_source((char_u *)SYS_GVIMRC_FILE, FALSE, DOSO_NONE);
 #endif
 
 	    /*
@@ -378,14 +378,16 @@ gui_init()
 	     * The first that exists is used, the rest is ignored.
 	     */
 	    if (process_env((char_u *)"GVIMINIT", FALSE) == FAIL
-		 && do_source((char_u *)USR_GVIMRC_FILE, TRUE, TRUE) == FAIL
+		 && do_source((char_u *)USR_GVIMRC_FILE, TRUE,
+							  DOSO_GVIMRC) == FAIL
 #ifdef USR_GVIMRC_FILE2
-		 && do_source((char_u *)USR_GVIMRC_FILE2, TRUE, TRUE) == FAIL
+		 && do_source((char_u *)USR_GVIMRC_FILE2, TRUE,
+							  DOSO_GVIMRC) == FAIL
 #endif
 				)
 	    {
 #ifdef USR_GVIMRC_FILE3
-		(void)do_source((char_u *)USR_GVIMRC_FILE3, TRUE, TRUE);
+		(void)do_source((char_u *)USR_GVIMRC_FILE3, TRUE, DOSO_GVIMRC);
 #endif
 	    }
 
@@ -429,7 +431,7 @@ gui_init()
 				     (char_u *)GVIMRC_FILE, FALSE) != FPC_SAME
 #endif
 			)
-		    do_source((char_u *)GVIMRC_FILE, TRUE, TRUE);
+		    do_source((char_u *)GVIMRC_FILE, TRUE, DOSO_GVIMRC);
 
 		if (secure == 2)
 		    need_wait_return = TRUE;
@@ -1142,7 +1144,8 @@ gui_position_components(total_width)
 	text_area_y = TOOLBAR_BUTTON_HEIGHT + TOOLBAR_BORDER_HEIGHT;
 #endif
 
-#if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_MSWIN)
+# if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
+	|| defined(FEAT_GUI_MOTIF))
     if (gui_has_tabline())
 	text_area_y += TABLINE_HEIGHT;
 #endif
@@ -1228,9 +1231,10 @@ gui_get_base_height()
 	base_height += gui.toolbar_height;
 #  endif
 # endif
-# if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_MSWIN)
+# if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
+	|| defined(FEAT_GUI_MOTIF))
     if (gui_has_tabline())
-    	base_height += TABLINE_HEIGHT;
+	base_height += TABLINE_HEIGHT;
 # endif
 # ifdef FEAT_FOOTER
     if (vim_strchr(p_go, GO_FOOTER) != NULL)
@@ -3448,8 +3452,9 @@ get_tabline_label(tp)
     }
     else
     {
-	/* Get the buffer name into NameBuff[] */
+	/* Get the buffer name into NameBuff[] and shorten it. */
 	get_trans_bufname(tp == curtab ? curbuf : tp->tp_curwin->w_buffer);
+	shorten_dir(NameBuff);
 
 	wp = (tp == curtab) ? firstwin : tp->tp_firstwin;
 	for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount)
@@ -4571,11 +4576,11 @@ xy2win(x, y)
 	update_mouseshape(SHAPE_IDX_CLINE);
 #  ifdef FEAT_VERTSPLIT
     else if (!(State & CMDLINE) && W_VSEP_WIDTH(wp) > 0 && col == wp->w_width
-	    && (row != wp->w_height || !stl_connected(wp)))
+	    && (row != wp->w_height || !stl_connected(wp)) && msg_scrolled == 0)
 	update_mouseshape(SHAPE_IDX_VSEP);
 #  endif
     else if (!(State & CMDLINE) && W_STATUS_HEIGHT(wp) > 0
-						       && row == wp->w_height)
+				  && row == wp->w_height && msg_scrolled == 0)
 	update_mouseshape(SHAPE_IDX_STATUS);
     else
 	update_mouseshape(-2);
@@ -4825,6 +4830,7 @@ concat_esc(gap, text, what)
     {
 #ifdef FEAT_MBYTE
 	int l = (*mb_ptr2len)(text);
+
 	if (l > 1)
 	{
 	    while (--l >= 0)
--- a/src/gui.h
+++ b/src/gui.h
@@ -161,6 +161,9 @@
 #ifdef FEAT_GUI_MSWIN
 # define TABLINE_HEIGHT 22
 #endif
+#ifdef FEAT_GUI_MOTIF
+# define TABLINE_HEIGHT 30
+#endif
 
 #if defined(NO_CONSOLE) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
 # define NO_CONSOLE_INPUT	/* use no_console_input() to check if there
--- a/src/gui_gtk_f.h
+++ b/src/gui_gtk_f.h
@@ -9,10 +9,6 @@
 #ifndef __GTK_FORM_H__
 #define __GTK_FORM_H__
 
-#ifdef VMS
-# include "gui_gtk_vms.h"
-#endif
-
 #include <gdk/gdk.h>
 #include <gtk/gtkcontainer.h>
 
--- a/src/gui_gtk_vms.h
+++ b/src/gui_gtk_vms.h
@@ -77,6 +77,7 @@
 /* INTRINSIC.H omits proto if XtFree is defined */
 /* VMS_BEGIN_C_PLUS_PLUS */
 extern void XtFree(char*);
+extern void XTFREE(char*);
 /* VMS_END_C_PLUS_PLUS */
 
 #define _XRegisterFilterByType _XREGISTERFILTERBYTYPE
@@ -123,6 +124,7 @@ extern void XtFree(char*);
 #define XCreateRegion XCREATEREGION
 #define XCreateSimpleWindow XCREATESIMPLEWINDOW
 #define XCreateWindow XCREATEWINDOW
+#define XDefaultRootWindow XDEFAULTROOTWINDOW
 #define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY
 #define XDefineCursor XDEFINECURSOR
 #define XDeleteProperty XDELETEPROPERTY
@@ -186,6 +188,7 @@ extern void XtFree(char*);
 #define XGetSubImage XGETSUBIMAGE
 #define XGetVisualInfo XGETVISUALINFO
 #define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS
+#define XGetWMIconName XGETWMICONNAME
 #define XGetWMProtocols XGETWMPROTOCOLS
 #define XGetWMHints XGETWMHINTS
 #define XGetWMName XGETWMNAME
@@ -289,6 +292,7 @@ extern void XtFree(char*);
 #define XShapeCombineRectangles XSHAPECOMBINERECTANGLES
 #define XShapeGetRectangles XSHAPEGETRECTANGLES
 #define XShrinkRegion XSHRINKREGION
+#define XStoreBuffer XSTOREBUFFER
 #define XStoreColor XSTORECOLOR
 #define XStoreColors XSTORECOLORS
 #define XStoreName XSTORENAME
@@ -603,7 +607,9 @@ extern void XtFree(char*);
 #define XtUnmanageChild XTUNMANAGECHILD
 #define XtUnmanageChildren XTUNMANAGECHILDREN
 #define XtUnrealizeWidget XTUNREALIZEWIDGET
+#define XtVaAppCreateShell XTVAAPPCREATESHELL
 #define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET
+#define XtVaCreatePopupShell XTVACREATEPOPUPSHELL
 #define XtVaCreateWidget XTVACREATEWIDGET
 #define XtVaGetValues XTVAGETVALUES
 #define XtVaSetValues XTVASETVALUES
deleted file mode 100644
index 8405dc1273883b7ba3ee3a0f54c9659ed5e101a5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -26,6 +26,7 @@
 #include <Xm/LabelG.h>
 #include <Xm/ToggleBG.h>
 #include <Xm/SeparatoG.h>
+#include <Xm/Notebook.h>
 
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
@@ -63,6 +64,11 @@ Widget textArea;
 static Widget toolBarFrame;
 static Widget toolBar;
 #endif
+#ifdef FEAT_GUI_TABLINE
+static Widget	tabLine;
+static Widget	tabLine_menu = 0;
+static int	showing_tabline = 0;
+#endif
 #ifdef FEAT_FOOTER
 static Widget footer;
 #endif
@@ -75,6 +81,11 @@ static Widget menuBar;
 #endif
 
 static void scroll_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data));
+#ifdef FEAT_GUI_TABLINE
+static void tabline_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data));
+static void tabline_button_cb __ARGS((Widget w, XtPointer client_data, XtPointer call_data));
+static void tabline_menu_cb __ARGS((Widget w, XtPointer	closure, XEvent	*e, Boolean *continue_dispatch));
+#endif
 #ifdef FEAT_TOOLBAR
 # ifdef FEAT_FOOTER
 static void toolbarbutton_enter_cb __ARGS((Widget, XtPointer, XEvent *, Boolean *));
@@ -120,6 +131,76 @@ scroll_cb(w, client_data, call_data)
     gui_drag_scrollbar(sb, value, dragging);
 }
 
+#ifdef FEAT_GUI_TABLINE
+/*ARGSUSED*/
+    static void
+tabline_cb(w, client_data, call_data)
+    Widget	w;
+    XtPointer	client_data, call_data;
+{
+    XmNotebookCallbackStruct *nptr;
+
+    nptr = (XmNotebookCallbackStruct *)call_data;
+    if (nptr->reason != (int)XmCR_NONE)
+	send_tabline_event(nptr->page_number);
+}
+
+/*ARGSUSED*/
+    static void
+tabline_button_cb(w, client_data, call_data)
+    Widget	w;
+    XtPointer	client_data, call_data;
+{
+    char_u	string[3];
+    int		cmd, tab_idx;
+
+    XtVaGetValues(w, XmNuserData, &cmd, NULL);
+    XtVaGetValues(tabLine_menu, XmNuserData, &tab_idx, NULL);
+
+    string[0] = CSI;
+    string[1] = KS_TABMENU;
+    string[2] = KE_FILLER;
+    add_to_input_buf(string, 3);
+    string[0] = tab_idx;
+    string[1] = (char_u)(long)cmd;
+    add_to_input_buf_csi(string, 2);
+}
+
+/*ARGSUSED*/
+    static void
+tabline_menu_cb(w, closure, e, continue_dispatch)
+    Widget	w;
+    XtPointer	closure;
+    XEvent	*e;
+    Boolean	*continue_dispatch;
+{
+    Widget			tab_w;
+    XButtonPressedEvent		*event;
+    int				tab_idx = 0;
+    WidgetList			children;
+    Cardinal			numChildren;
+
+    event = (XButtonPressedEvent *)e;
+
+    if (event->button != Button3)
+	return;
+
+    if (event->subwindow != None)
+    {
+	tab_w = XtWindowToWidget(XtDisplay(w), event->subwindow);
+	if (tab_w != (Widget)0 && XmIsPushButton(tab_w))
+	    XtVaGetValues(tab_w, XmNpageNumber, &tab_idx, NULL);
+    }
+
+    XtVaSetValues(tabLine_menu, XmNuserData, tab_idx, NULL);
+    XtVaGetValues(tabLine_menu, XmNchildren, &children, XmNnumChildren,
+		  &numChildren, NULL);
+    XtManageChildren(children, numChildren);
+    XmMenuPosition(tabLine_menu, (XButtonPressedEvent *)e) ;
+    XtManageChild(tabLine_menu);
+}
+#endif
+
 /*
  * End of call-back routines
  */
@@ -222,6 +303,13 @@ label_expose(_w, _event, _region)
     void
 gui_x11_create_widgets()
 {
+#ifdef FEAT_GUI_TABLINE
+    Widget	button;
+    Arg		args[10];
+    int		n;
+    XmString	xms;
+#endif
+
     /*
      * Install the 3D shade effect drawing routines.
      */
@@ -318,6 +406,57 @@ gui_x11_create_widgets()
 
 #endif
 
+#ifdef FEAT_GUI_TABLINE
+    /* Create the Vim GUI tabline */
+    n = 0;
+    XtSetArg(args[n], XmNbindingType, XmNONE); n++;
+    XtSetArg(args[n], XmNorientation, XmVERTICAL); n++;
+    XtSetArg(args[n], XmNbackPageSize, XmNONE); n++;
+    XtSetArg(args[n], XmNbackPageNumber, 0); n++;
+    XtSetArg(args[n], XmNbackPagePlacement, XmTOP_RIGHT); n++;
+    XtSetArg(args[n], XmNmajorTabSpacing, 0); n++;
+    XtSetArg(args[n], XmNshadowThickness, 0); n++;
+    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
+    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
+    tabLine = XmCreateNotebook(vimForm, "Vim tabline", args, n);
+
+    XtAddCallback(tabLine, XmNpageChangedCallback, (XtCallbackProc)tabline_cb,
+			NULL);
+    XtAddEventHandler(tabLine, ButtonPressMask, False,
+			(XtEventHandler)tabline_menu_cb, NULL);
+
+    /* Create the tabline popup menu */
+    tabLine_menu = XmCreatePopupMenu(tabLine, "tabline popup", NULL, 0);
+
+    /* Add the buttons to the menu */
+    n = 0;
+    XtSetArg(args[n], XmNuserData, TABLINE_MENU_CLOSE); n++;
+    xms = XmStringCreate((char *)"Close tab", STRING_TAG);
+    XtSetArg(args[n], XmNlabelString, xms); n++;
+    button = XmCreatePushButton(tabLine_menu, "Close", args, n);
+    XtAddCallback(button, XmNactivateCallback,
+		  (XtCallbackProc)tabline_button_cb, NULL);
+    XmStringFree(xms);
+
+    n = 0;
+    XtSetArg(args[n], XmNuserData, TABLINE_MENU_NEW); n++;
+    xms = XmStringCreate((char *)"New Tab", STRING_TAG);
+    XtSetArg(args[n], XmNlabelString, xms); n++;
+    button = XmCreatePushButton(tabLine_menu, "New Tab", args, n);
+    XtAddCallback(button, XmNactivateCallback,
+		  (XtCallbackProc)tabline_button_cb, NULL);
+    XmStringFree(xms);
+
+    n = 0;
+    XtSetArg(args[n], XmNuserData, TABLINE_MENU_OPEN); n++;
+    xms = XmStringCreate((char *)"Open tab...", STRING_TAG);
+    XtSetArg(args[n], XmNlabelString, xms); n++;
+    button = XmCreatePushButton(tabLine_menu, "Open tab...", args, n);
+    XtAddCallback(button, XmNactivateCallback,
+		  (XtCallbackProc)tabline_button_cb, NULL);
+    XmStringFree(xms);
+#endif
+
     textAreaForm = XtVaCreateManagedWidget("textAreaForm",
 	xmFormWidgetClass, vimForm,
 	XmNleftAttachment, XmATTACH_FORM,
@@ -550,18 +689,46 @@ gui_mch_enable_menu(flag)
 		XmNtopAttachment, XmATTACH_WIDGET,
 		XmNtopWidget, menuBar,
 		NULL);
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_WIDGET,
-		XmNtopWidget, XtParent(toolBar),
-		NULL);
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar),
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar),
+			      NULL);
 	}
 	else
 #endif
 	{
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_WIDGET,
-		XmNtopWidget, menuBar,
-		NULL);
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar,
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar,
+			      NULL);
 	}
     }
     else
@@ -573,17 +740,44 @@ gui_mch_enable_menu(flag)
 	    XtVaSetValues(XtParent(toolBar),
 		XmNtopAttachment, XmATTACH_FORM,
 		NULL);
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_WIDGET,
-		XmNtopWidget, XtParent(toolBar),
-		NULL);
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar),
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar),
+			      NULL);
 	}
 	else
 #endif
 	{
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_FORM,
-		NULL);
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_FORM,
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_FORM,
+			      NULL);
 	}
     }
 
@@ -2770,10 +2964,24 @@ gui_mch_show_toolbar(int showit)
 	}
 	gui.toolbar_height = gui_mch_compute_toolbar_height();
 	XtManageChild(XtParent(toolBar));
-	XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_WIDGET,
-		XmNtopWidget, XtParent(toolBar),
-		NULL);
+#ifdef FEAT_GUI_TABLINE
+	if (showing_tabline)
+	{
+	    XtVaSetValues(tabLine,
+			  XmNtopAttachment, XmATTACH_WIDGET,
+			  XmNtopWidget, XtParent(toolBar),
+			  NULL);
+	    XtVaSetValues(textAreaForm,
+			  XmNtopAttachment, XmATTACH_WIDGET,
+			  XmNtopWidget, tabLine,
+			  NULL);
+	}
+	else
+#endif
+	    XtVaSetValues(textAreaForm,
+			  XmNtopAttachment, XmATTACH_WIDGET,
+			  XmNtopWidget, XtParent(toolBar),
+			  NULL);
 	if (XtIsManaged(menuBar))
 	    XtVaSetValues(XtParent(toolBar),
 		    XmNtopAttachment, XmATTACH_WIDGET,
@@ -2788,14 +2996,45 @@ gui_mch_show_toolbar(int showit)
     {
 	gui.toolbar_height = 0;
 	if (XtIsManaged(menuBar))
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_WIDGET,
-		XmNtopWidget, menuBar,
-		NULL);
+	{
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar,
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar,
+			      NULL);
+	}
 	else
-	    XtVaSetValues(textAreaForm,
-		XmNtopAttachment, XmATTACH_FORM,
-		NULL);
+	{
+#ifdef FEAT_GUI_TABLINE
+	    if (showing_tabline)
+	    {
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_FORM,
+			      NULL);
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, tabLine,
+			      NULL);
+	    }
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_FORM,
+			      NULL);
+	}
 
 	XtUnmanageChild(XtParent(toolBar));
     }
@@ -2914,6 +3153,165 @@ toolbarbutton_leave_cb(w, client_data, e
 # endif
 #endif
 
+#if defined(FEAT_GUI_TABLINE) || defined(PROTO)
+/*
+ * Show or hide the tabline.
+ */
+    void
+gui_mch_show_tabline(int showit)
+{
+    if (tabLine == (Widget)0)
+	return;
+
+    if (!showit != !showing_tabline)
+    {
+	if (showit)
+	{
+	    XtManageChild(tabLine);
+	    XtUnmanageChild(XtNameToWidget(tabLine, "PageScroller"));
+#ifdef FEAT_MENU
+# ifdef FEAT_TOOLBAR
+	    if (XtIsManaged(XtParent(toolBar)))
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar), NULL);
+	    else
+# endif
+		if (XtIsManaged(menuBar))
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar, NULL);
+	    else
+#endif
+		XtVaSetValues(tabLine,
+			      XmNtopAttachment, XmATTACH_FORM, NULL);
+	    XtVaSetValues(textAreaForm,
+			  XmNtopAttachment, XmATTACH_WIDGET,
+			  XmNtopWidget, tabLine,
+			  NULL);
+	}
+	else
+	{
+	    XtUnmanageChild(tabLine);
+#ifdef FEAT_MENU
+# ifdef FEAT_TOOLBAR
+	    if (XtIsManaged(XtParent(toolBar)))
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, XtParent(toolBar), NULL);
+	    else
+# endif
+		if (XtIsManaged(menuBar))
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_WIDGET,
+			      XmNtopWidget, menuBar, NULL);
+	    else
+#endif
+		XtVaSetValues(textAreaForm,
+			      XmNtopAttachment, XmATTACH_FORM, NULL);
+	}
+	showing_tabline = showit;
+    }
+}
+
+/*
+ * Return TRUE when tabline is displayed.
+ */
+    int
+gui_mch_showing_tabline(void)
+{
+    return tabLine != (Widget)0 && showing_tabline;
+}
+
+/*
+ * Update the labels of the tabline.
+ */
+    void
+gui_mch_update_tabline(void)
+{
+    tabpage_T		*tp;
+    int			nr = 1, n;
+    Arg			args[10];
+    int			curtabidx = 0, currentpage;
+    Widget		tab;
+    XmNotebookPageInfo	page_info;
+    XmNotebookPageStatus page_status;
+    int			last_page, tab_count;
+
+    if (tabLine == (Widget)0)
+	return;
+
+    /* Add a label for each tab page.  They all contain the same text area. */
+    for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr)
+    {
+	if (tp == curtab)
+	    curtabidx = nr;
+
+	page_status = XmNotebookGetPageInfo(tabLine, nr, &page_info);
+	if (page_status == XmPAGE_INVALID
+	    || page_info.major_tab_widget == (Widget)0)
+	{
+	    /* Add the tab */
+	    n = 0;
+	    XtSetArg(args[n], XmNnotebookChildType, XmMAJOR_TAB); n++;
+	    XtSetArg(args[n], XmNtraversalOn, False); n++;
+	    XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++;
+	    XtSetArg(args[n], XmNhighlightThickness, 1); n++;
+	    XtSetArg(args[n], XmNshadowThickness , 1); n++;
+	    tab = XmCreatePushButton(tabLine, "-Empty-", args, n);
+	    XtManageChild(tab);
+	}
+	else
+	    tab = page_info.major_tab_widget;
+
+	XtVaSetValues(tab, XmNpageNumber, nr, NULL);
+	get_tabline_label(tp);
+	XtVaSetValues(tab, XtVaTypedArg, XmNlabelString, XmRString,
+		      NameBuff, STRLEN(NameBuff) + 1, NULL);
+    }
+
+    tab_count = nr - 1;
+
+    XtVaGetValues(tabLine, XmNlastPageNumber, &last_page, NULL);
+
+    /* Remove any old labels. */
+    while (nr <= last_page)
+    {
+	if (XmNotebookGetPageInfo(tabLine, nr, &page_info) != XmPAGE_INVALID
+	    && page_info.page_number == nr
+	    && page_info.major_tab_widget != (Widget)0)
+	{
+	    XtUnmanageChild(page_info.major_tab_widget);
+	    XtDestroyWidget(page_info.major_tab_widget);
+	}
+	nr++;
+    }
+
+    XtVaSetValues(tabLine, XmNlastPageNumber, tab_count, NULL);
+
+    XtVaGetValues(tabLine, XmNcurrentPageNumber, &currentpage, NULL);
+    if (currentpage != curtabidx)
+	XtVaSetValues(tabLine, XmNcurrentPageNumber, curtabidx, NULL);
+}
+
+/*
+ * Set the current tab to "nr".  First tab is 1.
+ */
+    void
+gui_mch_set_curtab(nr)
+    int		nr;
+{
+    int		currentpage;
+
+    if (tabLine == (Widget)0)
+	return;
+
+    XtVaGetValues(tabLine, XmNcurrentPageNumber, &currentpage, NULL);
+    if (currentpage != nr)
+	XtVaSetValues(tabLine, XmNcurrentPageNumber, nr, NULL);
+}
+#endif
+
 /*
  * Set the colors of Widget "id" to the menu colors.
  */
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -727,6 +727,33 @@ init_mouse_wheel(void)
 	    }
 	    return MyWindowProc(hwnd, uMsg, wParam, lParam);
 	}
+	case WM_LBUTTONDBLCLK:
+	{
+	    /*
+	     * If the user double clicked the tabline, create a new tab
+	     */
+	    if (gui_mch_showing_tabline())
+	    {
+		POINT pt;
+		RECT rect;
+
+		GetCursorPos((LPPOINT)&pt);
+		GetWindowRect(s_textArea, &rect);
+		if (pt.y < rect.top)
+		{
+		    char_u	    string[3];
+
+		    string[0] = CSI;
+		    string[1] = KS_TABMENU;
+		    string[2] = KE_FILLER;
+		    add_to_input_buf(string, 3);
+		    string[0] = 0;
+		    string[1] = (char_u)(long)TABLINE_MENU_NEW;
+		    add_to_input_buf_csi(string, 2);
+		}
+	    }
+	    return MyWindowProc(hwnd, uMsg, wParam, lParam);
+	}
 #endif
 
     case WM_QUERYENDSESSION:	/* System wants to go down. */
@@ -1152,7 +1179,7 @@ gui_mch_init(void)
      * Otherwise only characters in the active codepage will work. */
     if (GetClassInfoW(s_hinst, szVimWndClassW, &wndclassw) == 0)
     {
-	wndclassw.style = 0;
+	wndclassw.style = CS_DBLCLKS;
 	wndclassw.lpfnWndProc = _WndProc;
 	wndclassw.cbClsExtra = 0;
 	wndclassw.cbWndExtra = 0;
@@ -1183,7 +1210,7 @@ gui_mch_init(void)
 
     if (GetClassInfo(s_hinst, szVimWndClass, &wndclass) == 0)
     {
-	wndclass.style = 0;
+	wndclass.style = CS_DBLCLKS;
 	wndclass.lpfnWndProc = _WndProc;
 	wndclass.cbClsExtra = 0;
 	wndclass.cbWndExtra = 0;
@@ -1412,11 +1439,13 @@ gui_mch_set_shellsize(int width, int hei
     int		win_xpos, win_ypos;
     WINDOWPLACEMENT wndpl;
 
-    /* try to keep window completely on screen */
-    /* get size of the screen work area (excludes taskbar, appbars) */
+    /* Try to keep window completely on screen. */
+    /* Get position of the screen work area.  This is the part that is not
+     * used by the taskbar or appbars. */
     get_work_area(&workarea_rect);
 
-    /* get current posision of our window */
+    /* Get current posision of our window.  Note that the .left and .top are
+     * relative to the work area.  */
     wndpl.length = sizeof(WINDOWPLACEMENT);
     GetWindowPlacement(s_hwnd, &wndpl);
 
@@ -1442,28 +1471,21 @@ gui_mch_set_shellsize(int width, int hei
 #endif
 			;
 
-    /* if the window is going off the screen, move it on to the screen */
-    if ((direction & RESIZE_HOR) && win_xpos + win_width > workarea_rect.right)
-	win_xpos = workarea_rect.right - win_width;
-
-    if ((direction & RESIZE_HOR) && win_xpos < workarea_rect.left)
-	win_xpos = workarea_rect.left;
+    /* If the window is going off the screen, move it on to the screen.
+     * win_xpos and win_ypos are relative to the workarea. */
+    if ((direction & RESIZE_HOR)
+	   && workarea_rect.left + win_xpos + win_width > workarea_rect.right)
+	win_xpos = workarea_rect.right - win_width - workarea_rect.left;
+
+    if ((direction & RESIZE_HOR) && win_xpos < 0)
+	win_xpos = 0;
 
     if ((direction & RESIZE_VERT)
-			      && win_ypos + win_height > workarea_rect.bottom)
-	win_ypos = workarea_rect.bottom - win_height;
-
-    if ((direction & RESIZE_VERT) && win_ypos < workarea_rect.top)
-	win_ypos = workarea_rect.top;
-
-    /* When the taskbar is placed on the left or top of the screen,
-     * SetWindowPlacement() adds its width or height automatically, compensate
-     * for that.  When the offset is over 400 it's probably something else,
-     * skip it then (just in case). */
-    if (workarea_rect.left > 0 && workarea_rect.left < 400)
-	win_xpos -= workarea_rect.left;
-    if (workarea_rect.top > 0 && workarea_rect.top < 400)
-	win_ypos -= workarea_rect.top;
+	  && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
+	win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
+
+    if ((direction & RESIZE_VERT) && win_ypos < 0)
+	win_ypos = 0;
 
     wndpl.rcNormalPosition.left = win_xpos;
     wndpl.rcNormalPosition.right = win_xpos + win_width;
@@ -2290,13 +2312,13 @@ gui_mch_get_screen_dimensions(int *scree
 
     get_work_area(&workarea_rect);
 
-    *screen_w = workarea_rect.right
+    *screen_w = workarea_rect.right - workarea_rect.left
 	        - GetSystemMetrics(SM_CXFRAME) * 2;
 
     /* FIXME: dirty trick: Because the gui_get_base_height() doesn't include
      * the menubar for MSwin, we subtract it from the screen height, so that
      * the window size can be made to fit on the screen. */
-    *screen_h = workarea_rect.bottom
+    *screen_h = workarea_rect.bottom - workarea_rect.top
 	        - GetSystemMetrics(SM_CYFRAME) * 2
 		- GetSystemMetrics(SM_CYCAPTION)
 #ifdef FEAT_MENU
@@ -3956,11 +3978,24 @@ get_toolbar_bitmap(vimmenu_T *menu)
     static void
 initialise_tabline(void)
 {
+# ifdef USE_SYSMENU_FONT
+    LOGFONT    lfSysmenu;
+# endif
+
     InitCommonControls();
 
-    s_tabhwnd = CreateWindow(WC_TABCONTROL, "", WS_CHILD|TCS_FOCUSNEVER,
+    s_tabhwnd = CreateWindow(WC_TABCONTROL, "Vim tabline",
+	    WS_CHILD|TCS_FOCUSNEVER,
 	    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
 	    CW_USEDEFAULT, s_hwnd, NULL, s_hinst, NULL);
+
+# ifdef USE_SYSMENU_FONT
+    if (gui_w32_get_menu_font(&lfSysmenu) == OK)
+    {
+	HFONT font = CreateFontIndirect(&lfSysmenu);
+	SendMessage(s_tabhwnd, WM_SETFONT, (WPARAM) font, TRUE);
+    }
+# endif
 }
 #endif
 
--- a/src/gui_xmebw.c
+++ b/src/gui_xmebw.c
@@ -28,7 +28,7 @@
 #include <Xm/XmP.h>
 #include <Xm/DrawP.h>
 #if defined(HAVE_XM_TRAITP_H) && defined(HAVE_XM_MANAGER_H) \
-    && defined(HAVE_XM_UNHIGHLIGHT_H) && defined(HAVE_XM_XPMP_H)
+	&& defined(HAVE_XM_UNHIGHLIGHTT_H) && defined(HAVE_XM_XPMP_H)
 # include <Xm/TraitP.h>
 # include <Xm/Manager.h>
 # include <Xm/UnhighlightT.h>
@@ -274,7 +274,9 @@ static char * blank_xpm[] =
     static void
 set_pixmap(XmEnhancedButtonWidget eb)
 {
-    XpmAttributes   attr;
+    /* Configure defines XPMATTRIBUTES_TYPE as XpmAttributes or as
+     * XpmAttributes_21, depending on what is in Xm/XpmP.h. */
+    XPMATTRIBUTES_TYPE   attr;
     Pixmap	    sen_pix;
     Window	    root;
     static XpmColorSymbol color[8] = {
--- a/src/hardcopy.c
+++ b/src/hardcopy.c
@@ -2473,6 +2473,7 @@ mch_print_init(psettings, jobname, force
     double      top;
     double      bottom;
 #ifdef FEAT_MBYTE
+    int         props;
     int         cmap;
     char_u	*p_encoding;
     struct prt_ps_encoding_S *p_mbenc;
@@ -2510,22 +2511,26 @@ mch_print_init(psettings, jobname, force
      * This is to cope with the fact that various unicode encodings are
      * supported in more than one of CJK. */
     p_mbenc = NULL;
-    p_mbenc_first = NULL;
-    p_mbchar = NULL;
-    for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++)
-        if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
+    props = enc_canon_props(p_encoding);
+    if (!(props & ENC_8BIT) && (*p_penc != NUL || *p_pmcs != NUL))
+    {
+        p_mbenc_first = NULL;
+        p_mbchar = NULL;
+        for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++)
+            if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
 								    &p_mbenc))
-        {
-            if (p_mbenc_first == NULL)
-                p_mbenc_first = p_mbenc;
-            if (prt_match_charset((char *)p_pmcs, &prt_ps_mbfonts[cmap],
+            {
+                if (p_mbenc_first == NULL)
+                    p_mbenc_first = p_mbenc;
+                if (prt_match_charset((char *)p_pmcs, &prt_ps_mbfonts[cmap],
 								   &p_mbchar))
-                break;
-        }
-
-    /* Use first encoding matched if no charset matched */
-    if (p_mbchar == NULL && p_mbenc_first != NULL)
-        p_mbenc = p_mbenc_first;
+                    break;
+            }
+
+        /* Use first encoding matched if no charset matched */
+        if (p_mbchar == NULL && p_mbenc_first != NULL)
+            p_mbenc = p_mbenc_first;
+    }
 
     prt_out_mbyte = (p_mbenc != NULL);
     if (prt_out_mbyte)
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -1111,14 +1111,23 @@ GetRegProp(dpy, regPropp, numItemsp, dom
     int		result, actualFormat;
     long_u	bytesAfter;
     Atom	actualType;
+    XErrorHandler old_handler;
 
     *regPropp = NULL;
+    old_handler = XSetErrorHandler(x_error_check);
+    got_x_error = FALSE;
+
     result = XGetWindowProperty(dpy, RootWindow(dpy, 0), registryProperty, 0L,
 				(long)MAX_PROP_WORDS, False,
 				XA_STRING, &actualType,
 				&actualFormat, numItemsp, &bytesAfter,
 				regPropp);
 
+    XSync(dpy, FALSE);
+    (void)XSetErrorHandler(old_handler);
+    if (got_x_error)
+	return FAIL;
+
     if (actualType == None)
     {
 	/* No prop yet. Logically equal to the empty list */
--- a/src/infplist.xml
+++ b/src/infplist.xml
@@ -4,6 +4,8 @@
 <plist version="0.9">
 	<dict>
 
+		<key>CFBundleIdentifier</key>
+		<string>org.vim.Vim-APP_VER</string>
 		<key>CFBundleInfoDictionaryVersion</key>
 		<string>6.0</string>
 
@@ -25,19 +27,40 @@
 		<key>CSResourcesFileMapped</key>
 		<true/>
 		<key>CFBundleIconFile</key>
-		<string>ICON_APP</string>
+		<string>app.icns</string>
 
 		<key>CFBundleDocumentTypes</key>
 		<array>
 			<dict>
 				<key>CFBundleTypeExtensions</key>
 				<array>
-					<string>*</string>
+					<string>txt</string>
+					<string>text</string>
+				</array>
+				<key>CFBundleTypeMIMETypes</key>
+				<array>
+					<string>text/plain</string>
 				</array>
 				<key>CFBundleTypeIconFile</key>
 				<string>doc-txt.icns</string>
 				<key>CFBundleTypeName</key>
-				<string>NSStringPboardType</string>
+				<string>Text File</string>
+				<key>CFBundleTypeRole</key>
+				<string>Editor</string>
+			</dict>
+			<dict>
+				<key>CFBundleTypeExtensions</key>
+				<array>
+					<string>*</string>
+				</array>
+				<key>CFBundleTypeMIMETypes</key>
+				<array>
+					<string>text/*</string>
+				</array>
+				<key>CFBundleTypeIconFile</key>
+				<string>doc.icns</string>
+				<key>CFBundleTypeName</key>
+				<string>File</string>
 				<key>CFBundleTypeOSTypes</key>
 				<array>
 					<string>****</string>
--- a/src/installman.sh
+++ b/src/installman.sh
@@ -25,8 +25,11 @@ vimrcloc=$6
 helpsource=$7
 manmod=$8
 exename=$9
-vimdiffname=${10}
-evimname=${11}
+# older shells don't support ${10}
+shift
+vimdiffname=$9
+shift
+evimname=$9
 
 helpsubloc=$scriptloc/doc
 synsubloc=$scriptloc/syntax
--- a/src/installml.sh
+++ b/src/installml.sh
@@ -30,40 +30,48 @@ evimname=$6
 exname=$7
 viewname=$8
 rvimname=$9
-rviewname=${10}
-gvimname=${11}
-gviewname=${12}
-rgvimname=${13}
-rgviewname=${14}
-gvimdiffname=${15}
-eviewname=${16}
+# old shells don't understand ${10}
+shift
+rviewname=$9
+shift
+gvimname=$9
+shift
+gviewname=$9
+shift
+rgvimname=$9
+shift
+rgviewname=$9
+shift
+gvimdiffname=$9
+shift
+eviewname=$9
 
-if test $what = "install" -a \( -e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1 \); then
+if test $what = "install" -a \( -f $destdir/$vimname.1 -o -f $destdir/$vimdiffname.1 -o -f $destdir/$eviewname.1 \); then
    if test ! -d $destdir; then
       echo creating $destdir
       ./mkinstalldirs $destdir
    fi
 
    # ex
-   if test ! -e $destdir/$exname.1 -a -e $destdir/$vimname.1; then
+   if test ! -f $destdir/$exname.1 -a -f $destdir/$vimname.1; then
       echo creating link $destdir/$exname.1
       cd $destdir; ln -s $vimname.1 $exname.1
    fi
 
    # view
-   if test ! -e $destdir/$viewname.1 -a -e $destdir/$vimname.1; then
+   if test ! -f $destdir/$viewname.1 -a -f $destdir/$vimname.1; then
       echo creating link $destdir/$viewname.1
       cd $destdir; ln -s $vimname.1 $viewname.1
    fi
 
    # rvim
-   if test ! -e $destdir/$rvimname.1 -a -e $destdir/$vimname.1; then
+   if test ! -f $destdir/$rvimname.1 -a -f $destdir/$vimname.1; then
       echo creating link $destdir/$rvimname.1
       cd $destdir; ln -s $vimname.1 $rvimname.1
    fi
 
    # rview
-   if test ! -e $destdir/$rviewname.1 -a -e $destdir/$vimname.1; then
+   if test ! -f $destdir/$rviewname.1 -a -f $destdir/$vimname.1; then
       echo creating link $destdir/$rviewname.1
       cd $destdir; ln -s $vimname.1 $rviewname.1
    fi
@@ -71,37 +79,37 @@ if test $what = "install" -a \( -e $dest
    # GUI targets are optional
    if test "$gui" = "yes"; then
       # gvim
-      if test ! -e $destdir/$gvimname.1 -a -e $destdir/$vimname.1; then
+      if test ! -f $destdir/$gvimname.1 -a -f $destdir/$vimname.1; then
 	 echo creating link $destdir/$gvimname.1
 	 cd $destdir; ln -s $vimname.1 $gvimname.1
       fi
 
       # gview
-      if test ! -e $destdir/$gviewname.1 -a -e $destdir/$vimname.1; then
+      if test ! -f $destdir/$gviewname.1 -a -f $destdir/$vimname.1; then
 	 echo creating link $destdir/$gviewname.1
 	 cd $destdir; ln -s $vimname.1 $gviewname.1
       fi
 
       # rgvim
-      if test ! -e $destdir/$rgvimname.1 -a -e $destdir/$vimname.1; then
+      if test ! -f $destdir/$rgvimname.1 -a -f $destdir/$vimname.1; then
 	 echo creating link $destdir/$rgvimname.1
 	 cd $destdir; ln -s $vimname.1 $rgvimname.1
       fi
 
       # rgview
-      if test ! -e $destdir/$rgviewname.1 -a -e $destdir/$vimname.1; then
+      if test ! -f $destdir/$rgviewname.1 -a -f $destdir/$vimname.1; then
 	 echo creating link $destdir/$rgviewname.1
 	 cd $destdir; ln -s $vimname.1 $rgviewname.1
       fi
 
       # gvimdiff
-      if test ! -e $destdir/$gvimdiffname.1 -a -e $destdir/$vimdiffname.1; then
+      if test ! -f $destdir/$gvimdiffname.1 -a -f $destdir/$vimdiffname.1; then
 	 echo creating link $destdir/$gvimdiffname.1
 	 cd $destdir; ln -s $vimdiffname.1 $gvimdiffname.1
       fi
 
       # eview
-      if test ! -e $destdir/$eviewname.1 -a -e $destdir/$evimname.1; then
+      if test ! -f $destdir/$eviewname.1 -a -f $destdir/$evimname.1; then
 	 echo creating link $destdir/$eviewname.1
 	 cd $destdir; ln -s $evimname.1 $eviewname.1
       fi
--- a/src/main.aap
+++ b/src/main.aap
@@ -724,6 +724,7 @@ installrtbase {virtual}{force}: $HELPSOU
                 $DEST_RT $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND
                 $DEST_FTP $DEST_AUTO $DEST_PLUG $DEST_TUTOR $DEST_COMP
                 $DEST_SPELL $DEST_PRINT
+        :chmod 755 installman.sh
         :sys ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
 
         :cd $HELPSOURCE
@@ -855,6 +856,7 @@ installtools {virtual}{force}: $TOOLS $D
         :copy xxd/xxd$EXESUF $DEST_BIN
         :do strip $DEST_BIN/xxd$EXESUF
         :chmod $BINMOD $DEST_BIN/xxd$EXESUF
+        :chmod 755 installman.sh
         :sys ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS)
 #
 # install the runtime tools
@@ -891,6 +893,7 @@ installtools {virtual}{force}: $TOOLS $D
 
 # install the language specific files for tools, if they were unpacked
 install-tool-languages:
+        :chmod 755 installman.sh
         :sys ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
@@ -904,6 +907,7 @@ install-tool-languages:
 
 # install the language specific files, if they were unpacked
 install-languages {virtual}{force}: languages $DEST_LANG $DEST_KMAP
+        :chmod 755 installman.sh
         :sys ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
@@ -914,6 +918,7 @@ install-languages {virtual}{force}: lang
 	:sys ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
+        :chmod 755 installml.sh
 	:sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_FR) $(INSTALLMLARGS)
         :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
@@ -1034,6 +1039,7 @@ INSTALLMLARGS = $(VIMNAME) $(VIMDIFFNAME
 		$(GVIMDIFFNAME) $(EVIEWNAME)
 
 installmanlinks {virtual}:
+    :chmod 755 installml.sh
     :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN) $(INSTALLMLARGS)
 
@@ -1054,6 +1060,7 @@ uninstall {virtual}{force}: uninstall_ru
 # Note: "deldir" will fail if any files were added after "make install", that
 # is intentionally: Keep files the user added.
 uninstall_runtime {virtual}{force}:
+    :chmod 755 installman.sh
     :sys ./installman.sh uninstall $(DEST_MAN) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_FR) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_FR_I) "" $(INSTALLMANARGS)
@@ -1065,6 +1072,7 @@ uninstall_runtime {virtual}{force}:
     :sys ./installman.sh uninstall $(DEST_MAN_PL_U) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_RU) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_RU_U) "" $(INSTALLMANARGS)
+    :chmod 755 installml.sh
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
             $(DEST_MAN) $(INSTALLMLARGS)
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
--- a/src/main.c
+++ b/src/main.c
@@ -2168,11 +2168,10 @@ scripterror:
 
 #if defined(FEAT_MBYTE) && defined(WIN32)
 	    {
-		extern void used_file_arg(char *, int, int);
-
 		/* Remember this argument has been added to the argument list.
 		 * Needed when 'encoding' is changed. */
-		used_file_arg(argv[0], parmp->literal, parmp->full_path);
+		used_file_arg(argv[0], parmp->literal, parmp->full_path,
+							    parmp->diff_mode);
 	    }
 #endif
 	}
@@ -2567,7 +2566,7 @@ source_startup_scripts(parmp)
      */
     if (parmp->evim_mode)
     {
-	(void)do_source((char_u *)EVIM_FILE, FALSE, FALSE);
+	(void)do_source((char_u *)EVIM_FILE, FALSE, DOSO_NONE);
 	TIME_MSG("source evim file");
     }
 
@@ -2589,7 +2588,7 @@ source_startup_scripts(parmp)
 	}
 	else
 	{
-	    if (do_source(parmp->use_vimrc, FALSE, FALSE) != OK)
+	    if (do_source(parmp->use_vimrc, FALSE, DOSO_NONE) != OK)
 		EMSG2(_("E282: Cannot read from \"%s\""), parmp->use_vimrc);
 	}
     }
@@ -2607,10 +2606,10 @@ source_startup_scripts(parmp)
 	 * Get system wide defaults, if the file name is defined.
 	 */
 #ifdef SYS_VIMRC_FILE
-	(void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, FALSE);
+	(void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE);
 #endif
 #ifdef MACOS_X
-	(void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE, FALSE);
+	(void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE, DOSO_NONE);
 #endif
 
 	/*
@@ -2625,18 +2624,20 @@ source_startup_scripts(parmp)
 	 */
 	if (process_env((char_u *)"VIMINIT", TRUE) != OK)
 	{
-	    if (do_source((char_u *)USR_VIMRC_FILE, TRUE, TRUE) == FAIL
+	    if (do_source((char_u *)USR_VIMRC_FILE, TRUE, DOSO_VIMRC) == FAIL
 #ifdef USR_VIMRC_FILE2
-		&& do_source((char_u *)USR_VIMRC_FILE2, TRUE, TRUE) == FAIL
+		&& do_source((char_u *)USR_VIMRC_FILE2, TRUE,
+							   DOSO_VIMRC) == FAIL
 #endif
 #ifdef USR_VIMRC_FILE3
-		&& do_source((char_u *)USR_VIMRC_FILE3, TRUE, TRUE) == FAIL
+		&& do_source((char_u *)USR_VIMRC_FILE3, TRUE,
+							   DOSO_VIMRC) == FAIL
 #endif
 		&& process_env((char_u *)"EXINIT", FALSE) == FAIL
-		&& do_source((char_u *)USR_EXRC_FILE, FALSE, FALSE) == FAIL)
+		&& do_source((char_u *)USR_EXRC_FILE, FALSE, DOSO_NONE) == FAIL)
 	    {
 #ifdef USR_EXRC_FILE2
-		(void)do_source((char_u *)USR_EXRC_FILE2, FALSE, FALSE);
+		(void)do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE);
 #endif
 	    }
 	}
@@ -2674,7 +2675,7 @@ source_startup_scripts(parmp)
 				      (char_u *)VIMRC_FILE, FALSE) != FPC_SAME
 #endif
 				)
-		i = do_source((char_u *)VIMRC_FILE, TRUE, TRUE);
+		i = do_source((char_u *)VIMRC_FILE, TRUE, DOSO_VIMRC);
 
 	    if (i == FAIL)
 	    {
@@ -2692,7 +2693,7 @@ source_startup_scripts(parmp)
 				      (char_u *)EXRC_FILE, FALSE) != FPC_SAME
 #endif
 				)
-		    (void)do_source((char_u *)EXRC_FILE, FALSE, FALSE);
+		    (void)do_source((char_u *)EXRC_FILE, FALSE, DOSO_NONE);
 	    }
 	}
 	if (secure == 2)
@@ -2739,7 +2740,7 @@ process_env(env, is_viminit)
     if ((initstr = mch_getenv(env)) != NULL && *initstr != NUL)
     {
 	if (is_viminit)
-	    vimrc_found();
+	    vimrc_found(NULL, NULL);
 	save_sourcing_name = sourcing_name;
 	save_sourcing_lnum = sourcing_lnum;
 	sourcing_name = env;
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -2437,7 +2437,10 @@ changed()
     {
 	int	save_msg_scroll = msg_scroll;
 
+	/* Give a warning about changing a read-only file.  This may also
+	 * check-out the file, thus change "curbuf"! */
 	change_warning(0);
+
 	/* Create a swap file if that is wanted.
 	 * Don't do this for "nofile" and "nowrite" buffer types. */
 	if (curbuf->b_may_swap
@@ -2913,7 +2916,9 @@ change_warning(col)
 	    && curbuf->b_p_ro)
     {
 #ifdef FEAT_AUTOCMD
+	++curbuf_lock;
 	apply_autocmds(EVENT_FILECHANGEDRO, NULL, NULL, FALSE, curbuf);
+	--curbuf_lock;
 	if (!curbuf->b_p_ro)
 	    return;
 #endif
@@ -4448,6 +4453,53 @@ vim_ispathlistsep(c)
 }
 #endif
 
+#if defined(FEAT_GUI_TABLINE) || defined(FEAT_WINDOWS) \
+	|| defined(FEAT_EVAL) || defined(PROTO)
+/*
+ * Shorten the path of a file from "~/foo/../.bar/fname" to "~/f/../.b/fname"
+ * It's done in-place.
+ */
+    void
+shorten_dir(str)
+    char_u *str;
+{
+    char_u	*tail, *s, *d;
+    int		skip = FALSE;
+
+    tail = gettail(str);
+    d = str;
+    for (s = str; ; ++s)
+    {
+	if (s >= tail)		    /* copy the whole tail */
+	{
+	    *d++ = *s;
+	    if (*s == NUL)
+		break;
+	}
+	else if (vim_ispathsep(*s))	    /* copy '/' and next char */
+	{
+	    *d++ = *s;
+	    skip = FALSE;
+	}
+	else if (!skip)
+	{
+	    *d++ = *s;		    /* copy next char */
+	    if (*s != '~' && *s != '.') /* and leading "~" and "." */
+		skip = TRUE;
+# ifdef FEAT_MBYTE
+	    if (has_mbyte)
+	    {
+		int l = mb_ptr2len(s);
+
+		while (--l > 0)
+		    *d++ = *s++;
+	    }
+# endif
+	}
+    }
+}
+#endif
+
 /*
  * Return TRUE if the directory of "fname" exists, FALSE otherwise.
  * Also returns TRUE if there is no directory name.
--- a/src/normal.c
+++ b/src/normal.c
@@ -382,7 +382,7 @@ static const struct nv_cmd
     {K_X2DRAG, nv_mouse,	0,			0},
     {K_X2RELEASE, nv_mouse,	0,			0},
 #endif
-    {K_IGNORE,	nv_ignore,	0,			0},
+    {K_IGNORE,	nv_ignore,	NV_KEEPREG,		0},
     {K_NOP,	nv_nop,		0,			0},
     {K_INS,	nv_edit,	0,			0},
     {K_KINS,	nv_edit,	0,			0},
@@ -440,7 +440,7 @@ static const struct nv_cmd
     {K_DROP,	nv_drop,	NV_STS,			0},
 #endif
 #ifdef FEAT_AUTOCMD
-    {K_CURSORHOLD, nv_cursorhold, 0,			0},
+    {K_CURSORHOLD, nv_cursorhold, NV_KEEPREG,		0},
 #endif
 };
 
@@ -572,8 +572,8 @@ normal_cmd(oap, toplevel)
 #ifdef FEAT_VISUAL
     pos_T	old_pos;		/* cursor position before command */
     int		mapped_len;
-#endif
     static int	old_mapped_len = 0;
+#endif
     int		idx;
 
     vim_memset(&ca, 0, sizeof(ca));	/* also resets ca.retval */
@@ -624,6 +624,7 @@ normal_cmd(oap, toplevel)
     LANGMAP_ADJUST(c, TRUE);
 #endif
 
+#ifdef FEAT_VISUAL
     /*
      * If a mapping was started in Visual or Select mode, remember the length
      * of the mapping.  This is used below to not return to Insert mode for as
@@ -632,11 +633,9 @@ normal_cmd(oap, toplevel)
     if (restart_edit == 0)
 	old_mapped_len = 0;
     else if (old_mapped_len
-#ifdef FEAT_VISUAL
-	    || (VIsual_active && mapped_len == 0 && typebuf_maplen() > 0)
-#endif
-	    )
+		|| (VIsual_active && mapped_len == 0 && typebuf_maplen() > 0))
 	old_mapped_len = typebuf_maplen();
+#endif
 
     if (c == NUL)
 	c = K_ZERO;
@@ -805,6 +804,10 @@ getcount:
 	text_locked_msg();
 	goto normal_end;
     }
+#ifdef FEAT_AUTOCMD
+    if ((nv_cmds[idx].cmd_flags & NV_NCW) && curbuf_locked())
+	goto normal_end;
+#endif
 
 #ifdef FEAT_VISUAL
     /*
@@ -1151,10 +1154,12 @@ getcount:
 #endif
     }
 
+#ifdef FEAT_VISUAL
     /* Get the length of mapped chars again after typing a count, second
      * character or "z333<cr>". */
     if (old_mapped_len > 0)
 	old_mapped_len = typebuf_maplen();
+#endif
 
     /*
      * If an operation is pending, handle it...
@@ -1288,6 +1293,8 @@ normal_end:
 #ifdef FEAT_VISUAL
 	    && ((restart_edit != 0 && !VIsual_active && old_mapped_len == 0)
 		|| restart_VIsual_select == 1)
+#else
+	    && restart_edit != 0
 #endif
 	    && !(ca.retval & CA_COMMAND_BUSY)
 	    && stuff_empty()
@@ -1303,9 +1310,9 @@ normal_end:
 #endif
 	if (restart_edit != 0
 #ifdef FEAT_VISUAL
-		&& !VIsual_active
-#endif
-		&& old_mapped_len == 0)
+		&& !VIsual_active && old_mapped_len == 0
+#endif
+		)
 	    (void)edit(restart_edit, FALSE, 1L);
     }
 
@@ -4065,7 +4072,20 @@ nv_page(cap)
     cmdarg_T	*cap;
 {
     if (!checkclearop(cap->oap))
+    {
+#ifdef FEAT_WINDOWS
+	if (mod_mask & MOD_MASK_CTRL)
+	{
+	    /* <C-PageUp>: tab page back; <C-PageDown>: tab page forward */
+	    if (cap->arg == BACKWARD)
+		goto_tabpage(-(int)cap->count1);
+	    else
+		goto_tabpage((int)cap->count0);
+	}
+	else
+#endif
 	(void)onepage(cap->arg, cap->count1);
+    }
 }
 
 /*
@@ -5914,6 +5934,13 @@ nv_gotofile(cap)
 	text_locked_msg();
 	return;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+    {
+	clearop(cap->oap);
+	return;
+    }
+#endif
 
     ptr = grab_file_name(cap->count1, &lnum);
 
@@ -6424,6 +6451,10 @@ nv_brackets(cap)
 		clearopbeep(cap->oap);
 		break;
 	    }
+# ifdef FEAT_FOLDING
+	if (cap->oap->op_type == OP_NOP && (fdo_flags & FDO_SEARCH) && KeyTyped)
+	    foldOpenCursor();
+# endif
     }
 #endif
 
--- a/src/option.c
+++ b/src/option.c
@@ -430,9 +430,8 @@ struct vimoption
 
 #define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
 
-/* 'isprint' for latin1 is also used for MS-Windows, where 0x80 is used for
- * the currency sign.  This isn't really latin1 but Windows-1252, but we can't
- * detect that. */
+/* 'isprint' for latin1 is also used for MS-Windows cp1252, where 0x80 is used
+ * for the currency sign. */
 #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
 # define ISP_LATIN1 (char_u *)"@,~-255"
 #else
@@ -6727,6 +6726,8 @@ set_chars_option(varp)
 		    s = p + len + 1;
 #ifdef FEAT_MBYTE
 		    c1 = mb_ptr2char_adv(&s);
+		    if (mb_char2cells(c1) > 1)
+			continue;
 #else
 		    c1 = *s++;
 #endif
@@ -6736,6 +6737,8 @@ set_chars_option(varp)
 			    continue;
 #ifdef FEAT_MBYTE
 			c2 = mb_ptr2char_adv(&s);
+			if (mb_char2cells(c2) > 1)
+			    continue;
 #else
 			c2 = *s++;
 #endif
@@ -10241,11 +10244,16 @@ paste_option_changed()
  * Reset 'compatible' and set the values for options that didn't get set yet
  * to the Vim defaults.
  * Don't do this if the 'compatible' option has been set or reset before.
+ * When "fname" is not NULL, use it to set $"envname" when it wasn't set yet.
  */
     void
-vimrc_found()
-{
-    int	    opt_idx;
+vimrc_found(fname, envname)
+    char_u	*fname;
+    char_u	*envname;
+{
+    int		opt_idx;
+    int		dofree;
+    char_u	*p;
 
     if (!option_was_set((char_u *)"cp"))
     {
@@ -10255,6 +10263,23 @@ vimrc_found()
 		set_option_default(opt_idx, OPT_FREE, FALSE);
 	didset_options();
     }
+
+    if (fname != NULL)
+    {
+	p = vim_getenv(envname, &dofree);
+	if (p == NULL)
+	{
+	    /* Set $MYVIMRC to the first vimrc file found. */
+	    p = FullName_save(fname, FALSE);
+	    if (p != NULL)
+	    {
+		vim_setenv(envname, p);
+		vim_free(p);
+	    }
+	}
+	else if (dofree)
+	    vim_free(p);
+    }
 }
 
 /*
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..14426113f428df324cd526c65cf281038631135f
GIT binary patch
literal 47086
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..124a7303a1ed9693327921610e30718a02040ee0
GIT binary patch
literal 40095
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
UK#?^#cRURr^wB>k-AA(h4;)|;IRF3v
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..984d11d0473483bec2d9f13d06296b21e82e8714
GIT binary patch
literal 42287
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
--- a/src/os_unix.h
+++ b/src/os_unix.h
@@ -203,29 +203,33 @@
 #endif
 
 #ifdef VMS
-#include <unixio.h>
-#include <unixlib.h>
-#include <signal.h>
-#include <file.h>
-#include <ssdef.h>
-#include <descrip.h>
-#include <libclidef.h>
-#include <lnmdef.h>
-#include <psldef.h>
-#include <prvdef.h>
-#include <dvidef.h>
-#include <dcdef.h>
-#include <stsdef.h>
-#include <iodef.h>
-#include <ttdef.h>
-#include <tt2def.h>
-#include <jpidef.h>
-#include <rms.h>
-#include <trmdef.h>
-#include <string.h>
-#include <starlet.h>
-#include <socket.h>
-#include <lib$routines.h>
+# include <unixio.h>
+# include <unixlib.h>
+# include <signal.h>
+# include <file.h>
+# include <ssdef.h>
+# include <descrip.h>
+# include <libclidef.h>
+# include <lnmdef.h>
+# include <psldef.h>
+# include <prvdef.h>
+# include <dvidef.h>
+# include <dcdef.h>
+# include <stsdef.h>
+# include <iodef.h>
+# include <ttdef.h>
+# include <tt2def.h>
+# include <jpidef.h>
+# include <rms.h>
+# include <trmdef.h>
+# include <string.h>
+# include <starlet.h>
+# include <socket.h>
+# include <lib$routines.h>
+
+# ifdef FEAT_GUI_GTK
+#  include "gui_gtk_vms.h"
+# endif
 
 typedef struct dsc$descriptor   DESC;
 #endif
--- a/src/os_vms_conf.h
+++ b/src/os_vms_conf.h
@@ -179,7 +179,7 @@
 #endif
 
 /* GUI support defines */
-#ifdef FEAT_GUI_MOTIF
+#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK)
 #define HAVE_X11
 #define USE_FONTSET
 #undef  X_LOCALE
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -213,6 +213,7 @@ static int suppress_winsize = 1;	/* don'
 get_exe_name(void)
 {
     char	temp[256];
+    static int	did_set_PATH = FALSE;
 
     if (exe_name == NULL)
     {
@@ -221,6 +222,29 @@ get_exe_name(void)
 	if (*temp != NUL)
 	    exe_name = FullName_save((char_u *)temp, FALSE);
     }
+
+    if (!did_set_PATH && exe_name != NULL)
+    {
+	char_u	    *p;
+	char_u	    *newpath;
+
+	/* Append our starting directory to $PATH, so that when doing "!xxd"
+	 * it's found in our starting directory.  Needed because SearchPath()
+	 * also looks there. */
+	p = mch_getenv("PATH");
+	newpath = alloc((unsigned)(STRLEN(p) + STRLEN(exe_name) + 2));
+	if (newpath != NULL)
+	{
+	    STRCPY(newpath, p);
+	    STRCAT(newpath, ";");
+	    vim_strncpy(newpath + STRLEN(newpath), exe_name,
+					    gettail_sep(exe_name) - exe_name);
+	    vim_setenv((char_u *)"PATH", newpath);
+	    vim_free(newpath);
+	}
+
+	did_set_PATH = TRUE;
+    }
 }
 
 #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
@@ -4933,6 +4957,7 @@ static int	*used_file_indexes = NULL; /*
 static int	used_file_count = 0;	/* nr of entries in used_file_indexes */
 static int	used_file_literal = FALSE;  /* take file names literally */
 static int	used_file_full_path = FALSE;  /* file name was full path */
+static int	used_file_diff_mode = FALSE;  /* file name was with diff mode */
 static int	used_alist_count = 0;
 
 
@@ -5001,7 +5026,7 @@ free_cmd_argsW(void)
  * is called.
  */
     void
-used_file_arg(char *name, int literal, int full_path)
+used_file_arg(char *name, int literal, int full_path, int diff_mode)
 {
     int		i;
 
@@ -5016,6 +5041,7 @@ used_file_arg(char *name, int literal, i
 	}
     used_file_literal = literal;
     used_file_full_path = full_path;
+    used_file_diff_mode = diff_mode;
 }
 
 /*
@@ -5072,6 +5098,22 @@ fix_arg_enc(void)
 	str = ucs2_to_enc(ArglistW[idx], NULL);
 	if (str != NULL)
 	{
+#ifdef FEAT_DIFF
+	    /* When using diff mode may need to concatenate file name to
+	     * directory name.  Just like it's done in main(). */
+	    if (used_file_diff_mode && mch_isdir(str) && GARGCOUNT > 0
+				      && !mch_isdir(alist_name(&GARGLIST[0])))
+	    {
+		char_u	    *r;
+
+		r = concat_fnames(str, gettail(alist_name(&GARGLIST[0])), TRUE);
+		if (r != NULL)
+		{
+		    vim_free(str);
+		    str = r;
+		}
+	    }
+#endif
 	    /* Re-use the old buffer by renaming it.  When not using literal
 	     * names it's done by alist_expand() below. */
 	    if (used_file_literal)
--- a/src/po/Makefile
+++ b/src/po/Makefile
@@ -56,6 +56,7 @@ CONVERTED = \
 		cs.cp1250.mo \
 		ja.sjis.mo \
 		pl.cp1250.mo \
+		pl.UTF-8.mo \
 		ru.cp1251.mo \
 		sk.cp1250.mo \
 		uk.cp1251.mo \
@@ -87,6 +88,7 @@ CHECKFILES = \
 		cs.cp1250.ck \
 		ja.sjis.ck \
 		pl.cp1250.ck \
+		pl.UTF-8.ck \
 		ru.cp1251.ck \
 		sk.cp1250.ck \
 		uk.cp1251.ck \
@@ -169,6 +171,12 @@ pl.cp1250.po: pl.po
 	iconv -f iso-8859-2 -t cp1250 pl.po | \
 		sed -e 's/charset=ISO-8859-2/charset=cp1250/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.cp1250.po
 
+# Convert pl.po to create pl.UTF-8.po.
+pl.UTF-8.po: pl.po
+	rm -f pl.UTF-8.po
+	iconv -f iso-8859-2 -t utf-8 pl.po | \
+		sed -e 's/charset=ISO-8859-2/charset=utf-8/' -e 's/# Original translations/# Generated from pl.po, DO NOT EDIT/' > pl.UTF-8.po
+
 # Convert sk.po to create sk.cp1250.po.
 sk.cp1250.po: sk.po
 	rm -f sk.cp1250.po
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -3,29 +3,26 @@
 # Do ":help uganda"  in Vim to read copying and usage conditions.
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
-# Previous-Translator(s): Johannes Zellner <johannes@zellner.org>
-#
-# thoughts (Gedanken)
-#
-# - mark    : Markierung oder Marke?
-# - ambigous: Mehrdeutig
-#
+# Previous-Translator(s): 
+# Johannes Zellner <johannes@zellner.org>
+# Gerfried Fuchs <alfie@ist.org>
+
 msgid ""
 msgstr ""
 "Project-Id-Version: Vim(deutsch)\n"
-"POT-Creation-Date: 2004-05-14 18:11+0200\n"
-"PO-Revision-Date: 2004-10-13 17:26+0200\n"
-"Last-Translator: Gerfried Fuchs <alfie@ist.org>\n"
+"POT-Creation-Date: 2006-04-02 11:30+0200\n"
+"PO-Revision-Date: 2006-04-02 17:26+0200\n"
+"Last-Translator: Georg Dahn <gorgyd@yahoo.co.uk>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO_8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
 msgid "E82: Cannot allocate any buffer, exiting..."
-msgstr "E82: Kein Puffer kann alloziert werden; beenden..."
+msgstr "E82: Kann keinen Puffer allozieren; beenden..."
 
 msgid "E83: Cannot allocate buffer, using other one..."
-msgstr "E83: Puffer kann nicht alloziert werden; benutze einen anderen..."
+msgstr "E83: Kann den Puffer nicht allozieren; benutze einen anderen..."
 
 msgid "E515: No buffers were unloaded"
 msgstr "E515: Keine Puffer wurden ausgeladen"
@@ -37,32 +34,32 @@ msgid "E517: No buffers were wiped out"
 msgstr "E517: Keine Puffer wurden gelscht"
 
 msgid "1 buffer unloaded"
-msgstr "1 Puffer ausgeladen"
+msgstr "ein Puffer ausgeladen"
 
 #, c-format
 msgid "%d buffers unloaded"
 msgstr "%d Puffer ausgeladen"
 
 msgid "1 buffer deleted"
-msgstr "1 Puffer gelscht"
+msgstr "ein Puffer gelscht"
 
 #, c-format
 msgid "%d buffers deleted"
 msgstr "%d Puffer gelscht"
 
 msgid "1 buffer wiped out"
-msgstr "1 Puffer gelscht"
+msgstr "ein Puffer gelscht"
 
 #, c-format
 msgid "%d buffers wiped out"
 msgstr "%d Puffer gelscht"
 
 msgid "E84: No modified buffer found"
-msgstr "E84: Es wurde keine vernderten Puffer gefunden"
+msgstr "E84: Es wurde kein vernderter Puffer gefunden"
 
 #. back where we started, didn't find anything.
 msgid "E85: There is no listed buffer"
-msgstr "E85: Es gibt keine angezeigte Puffer"
+msgstr "E85: Es gibt keine angezeigten Puffer"
 
 #, c-format
 msgid "E86: Buffer %ld does not exist"
@@ -76,18 +73,17 @@ msgstr "E88: Kann nicht vor den ersten P
 
 #, c-format
 msgid "E89: No write since last change for buffer %ld (add ! to override)"
-msgstr ""
-"E89: Puffer %ld seit der letzten nderung nicht geschrieben (erzwinge mit !)"
+msgstr "E89: Puffer %ld nicht gesichert seit der letzten nderung (erzwinge mit !)"
 
 msgid "E90: Cannot unload last buffer"
-msgstr "E90: letzter Puffer kann nicht heraus-geladen werden"
+msgstr "E90: Kann letzten Puffer nicht ausladen"
 
 msgid "W14: Warning: List of file names overflow"
 msgstr "W14: Achtung: berlauf der Liste der Dateinamen"
 
 #, c-format
 msgid "E92: Buffer %ld not found"
-msgstr "E92: kein Puffer %ld gefunden"
+msgstr "E92: Kein Puffer %ld gefunden"
 
 #, c-format
 msgid "E93: More than one match for %s"
@@ -117,7 +113,7 @@ msgid "[Read errors]"
 msgstr "[Lese-Fehler]"
 
 msgid "[readonly]"
-msgstr "[nur Lesen]"
+msgstr "[Nur Lesen]"
 
 #, c-format
 msgid "1 line --%d%%--"
@@ -131,14 +127,14 @@ msgstr "%ld Zeilen --%d%%--"
 msgid "line %ld of %ld --%d%%-- col "
 msgstr "Zeile %ld von %ld --%d%%-- Spalte "
 
-msgid "[No file]"
-msgstr "[Keine Datei]"
+msgid "[No Name]"
+msgstr "[Unbenannt]"
 
 #. must be a help buffer
 msgid "help"
-msgstr "[Hilfe]"
-
-msgid "[help]"
+msgstr "Hilfe"
+
+msgid "[Help]"
 msgstr "[Hilfe]"
 
 msgid "[Preview]"
@@ -147,14 +143,13 @@ msgstr "[Voransicht]"
 msgid "All"
 msgstr "Alles"
 
-# Ende sounds better than "Unten"
 msgid "Bot"
 msgstr "Ende"
 
-# Anfang sounds better than "Oben"
 msgid "Top"
 msgstr "Anfang"
 
+#, c-format
 msgid ""
 "\n"
 "# Buffer list:\n"
@@ -162,22 +157,22 @@ msgstr ""
 "\n"
 "# Liste der Puffer:\n"
 
-msgid "[Error List]"
-msgstr "[Fehlerliste]"
-
-msgid "[No File]"
-msgstr "[Keine Datei]"
+msgid "[Location List]"
+msgstr "[Positionsliste]"
+
+msgid "[Quickfix List]"
+msgstr "[Quickfix Liste]"
 
 msgid ""
 "\n"
 "--- Signs ---"
 msgstr ""
 "\n"
-"--- Optionen ---"
+"--- Zeichen ---"
 
 #, c-format
 msgid "Signs for %s:"
-msgstr "Vorzeichen fr %s:"
+msgstr "Zeichen fr %s:"
 
 #, c-format
 msgid "    line=%ld  id=%d  name=%s"
@@ -185,39 +180,39 @@ msgstr "    Zeile=%ld  id=%d  Name=%s"
 
 #, c-format
 msgid "E96: Can not diff more than %ld buffers"
-msgstr "E96: \"diff\" ist fr mehr als %ld Puffer nicht mglich"
+msgstr "E96: Keine Differenz fr mehr als %ld Puffer"
 
 msgid "E97: Cannot create diffs"
-msgstr "E97: Kann keine \"diffs\" erstellen"
+msgstr "E97: Kann keine Differenz erstellen"
 
 msgid "Patch file"
 msgstr "Patch-Datei"
 
 msgid "E98: Cannot read diff output"
-msgstr "E98: \"diff\"-Ausgabe kann nicht gelesen werden"
+msgstr "E98: Differenz-Ausgabe kann nicht gelesen werden"
 
 msgid "E99: Current buffer is not in diff mode"
-msgstr "E99: Aktueller Puffer ist nicht im \"diff\"-Modus"
+msgstr "E99: Aktueller Puffer ist nicht im Differenz-Modus"
 
 msgid "E100: No other buffer in diff mode"
-msgstr "E100: Kein weiterer Puffer ist im \"diff\"-Modus"
+msgstr "E100: Kein weiterer Puffer ist im Differenz-Modus"
 
 msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr "E101: mehrdeutig: Mehr als zwei Puffer im \"diff\"-Modus"
+msgstr "E101: Mehrdeutigkeit: Mehr als zwei Puffer im Differenz-Modus"
 
 #, c-format
 msgid "E102: Can't find buffer \"%s\""
-msgstr "E102: Puffer \"%s\" kann nicht gefunden werden"
+msgstr "E102: Kann Puffer \"%s\" nicht finden"
 
 #, c-format
 msgid "E103: Buffer \"%s\" is not in diff mode"
-msgstr "E103: Puffer \"%s\" ist nicht im \"diff\"-Modus"
+msgstr "E103: Puffer \"%s\" ist nicht im Differenz-Modus"
 
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: 'Escape' ist in einem Digraphen nicht erlaubt"
 
 msgid "E544: Keymap file not found"
-msgstr "E544: \"Keymap\"-Datei nicht gefunden"
+msgstr "E544: Datei fr die Tastatur-Belegung nicht gefunden"
 
 msgid "E105: Using :loadkeymap not in a sourced file"
 msgstr "E105: :loadkeymap auerhalb einer eingelesenen Datei"
@@ -226,22 +221,17 @@ msgid " Keyword completion (^N^P)"
 msgstr " Stichwort-Ergnzung (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^E^Y^L^]^F^I^K^D^V^N^P)"
-msgstr " ^X-Modus (^E^Y^L^]^F^I^K^D^V^N^P)"
-
-#. Scroll has it's own msgs, in it's place there is the msg for local
-#. * ctrl_x_mode = 0 (eg continue_status & CONT_LOCAL)  -- Acevedo
-msgid " Keyword Local completion (^N^P)"
-msgstr " lokale Stichwort-Ergnzung (^N^P)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X Modus (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Zeilen-Ergnzung (^L^N^P)"
 
 msgid " File name completion (^F^N^P)"
-msgstr " Dateinamens-Ergnzung (^F^N^P)"
+msgstr " Dateinamen-Ergnzung (^F^N^P)"
 
 msgid " Tag completion (^]^N^P)"
-msgstr " Tag-Ergnzung (^]^N^P)"
+msgstr " Tag-Ergnzung  (^]^N^P)"
 
 msgid " Path pattern completion (^N^P)"
 msgstr " Pfadmuster-Ergnzung (^N^P)"
@@ -256,17 +246,29 @@ msgid " Thesaurus completion (^T^N^P)"
 msgstr " Thesaurus-Ergnzung (^T^N^P)"
 
 msgid " Command-line completion (^V^N^P)"
-msgstr " Kommando-Zeilen-Ergnzung (^V^N^P)"
+msgstr " Kommandozeilen-Ergnzung (^V^N^P)"
+
+msgid " User defined completion (^U^N^P)"
+msgstr " Benutzerdefinierte Ergnzung (^U^N^P)"
+
+msgid " Omni completion (^O^N^P)"
+msgstr " Omni-Ergnzung (^O^N^P)"
+
+msgid " Spelling suggestion (s^N^P)"
+msgstr " Rechtschreibprfung-Vorschlag (s^N^P)"
+
+msgid " Keyword Local completion (^N^P)"
+msgstr " Schlsselwort-Lokale Ergnzung(^N^P)"
 
 msgid "Hit end of paragraph"
-msgstr "Stie an das Ende eines Absatzes"
+msgstr "Absatzende erreicht"
+
+msgid "'dictionary' option is empty"
+msgstr "Die Option 'dictionary' ist leer"
 
 msgid "'thesaurus' option is empty"
 msgstr "Die Option 'thesaurus' ist leer"
 
-msgid "'dictionary' option is empty"
-msgstr "Die Option 'dictionary' ist leer"
-
 #, c-format
 msgid "Scanning dictionary: %s"
 msgstr "Durchsuchen des Wrterbuchs: %s"
@@ -281,11 +283,12 @@ msgstr " (Ersetzen) Scrollen (^E/^Y)"
 msgid "Scanning: %s"
 msgstr "Durchsuche: %s"
 
+#, c-format
 msgid "Scanning tags."
 msgstr "Durchsuchen von Tags."
 
 msgid " Adding"
-msgstr " Hinzufgung der"
+msgstr " Fge hinzu"
 
 #. showmode might reset the internal line pointers, so it must
 #. * be called before line = ml_get(), or when this address is no
@@ -311,11 +314,100 @@ msgstr "Treffer %d von %d"
 msgid "match %d"
 msgstr "Treffer %d"
 
-#. Skip further arguments but do continue to
-#. * search for a trailing command.
-#, c-format
-msgid "E106: Unknown variable: \"%s\""
-msgstr "E106: Unbekannte Variable: \"%s\""
+msgid "E18: Unexpected characters in :let"
+msgstr "E18: Unerwartete Zeichen in :let"
+
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: List-Index auerhalb des zulssigen Bereichs: %ld"
+
+#, c-format
+msgid "E121: Undefined variable: %s"
+msgstr "E121: Undefinierte Variable: %s"
+
+msgid "E111: Missing ']'"
+msgstr "E111: Fehlende ']'"
+
+#, c-format
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: Argument von %s muss eine Liste sein"
+
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: Argument von %s muss eine Liste oder ein Wrterbuch"
+
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: Der Schlssel fr Wrterbuch darf nicht leer sein"
+
+msgid "E714: List required"
+msgstr "E714: Liste bentigt"
+
+msgid "E715: Dictionary required"
+msgstr "E715: Wrterbuch bentigt"
+
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: Zu viele Argumente fr Funktion: %s"
+
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: Schlssel nicht vorhanden im Wrterbuch: %s"
+
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: Funktion %s existiert bereits; ! zum Ersetzen hinzufgen"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: Wrterbuch-Eintrag existiert bereits"
+
+msgid "E718: Funcref required"
+msgstr "E718: Funcref bentigt"
+
+msgid "E719: Cannot use [:] with a Dictionary"
+msgstr "E719: Kann [:] nicht mit einem Wrterbuch verwenden"
+
+#, c-format
+msgid "E734: Wrong variable type for %s="
+msgstr "E734: Falscher Typ der Variable fr %s="
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Unbekannte Funktion: %s"
+
+#, c-format
+msgid "E461: Illegal variable name: %s"
+msgstr "E461: Unzulssiger Name der Variable: %s"
+
+msgid "E687: Less targets than List items"
+msgstr "E687: Weniger Ziele als Listeneintrge"
+
+msgid "E688: More targets than List items"
+msgstr "E688: Mehr Ziele als Listeneintrge"
+
+msgid "Double ; in list of variables"
+msgstr "Doppeltes ; in der Liste von Variablen"
+
+#, c-format
+msgid "E738: Can't list variables for %s"
+msgstr "E738: Kann Variablen nicht auflisten: %s"
+
+msgid "E689: Can only index a List or Dictionary"
+msgstr "E689: Kann nur Listen und Wrterbcher indizieren"
+
+msgid "E708: [:] must come last"
+msgstr "E708: [:] muss am Schluss kommen"
+
+msgid "E709: [:] requires a List value"
+msgstr "E709: [:] bentigt eine Liste als Wert"
+
+msgid "E710: List value has more items than target"
+msgstr "E710: Listenwert hat mehr Eintrge als das Ziel"
+
+msgid "E711: List value has not enough items"
+msgstr "E711: Listenwert hat nicht gengend Eintrge"
+
+msgid "E690: Missing \"in\" after :for"
+msgstr "E690: Fehlendes \"in\" nach :for"
 
 #, c-format
 msgid "E107: Missing braces: %s"
@@ -325,14 +417,35 @@ msgstr "E107: Fehlende Klammern: %s"
 msgid "E108: No such variable: \"%s\""
 msgstr "E108: Keine solche Variable: \"%s\""
 
+msgid "E743: variable nested too deep for (un)lock"
+msgstr "E743: Variable ist zu tief verschachtelt fr (un)lock"
+
 msgid "E109: Missing ':' after '?'"
-msgstr "E109: fehlender ':' nach '?'"
+msgstr "E109: Fehlender ':' nach '?'"
+
+msgid "E691: Can only compare List with List"
+msgstr "E691: Kann nur eine Liste mit einer Liste vergleichen"
+
+msgid "E692: Invalid operation for Lists"
+msgstr "E692: Unzulssige Operation fr Listen"
+
+msgid "E735: Can only compare Dictionary with Dictionary"
+msgstr "E735: Kann nur ein Wrterbuch mit einem Wrterbuch vergleichen"
+
+msgid "E736: Invalid operation for Dictionary"
+msgstr "E736: Unzulssige Operation fr ein Wrterbuch"
+
+msgid "E693: Can only compare Funcref with Funcref"
+msgstr "E693: Kann nur eine Funcref mit einer Funcref vergleichen"
+
+msgid "E694: Invalid operation for Funcrefs"
+msgstr "E694: Unzulssige Operation fr Funcrefs"
 
 msgid "E110: Missing ')'"
-msgstr "E110: fehlende ')'"
-
-msgid "E111: Missing ']'"
-msgstr "E111: fehlende ']'"
+msgstr "E110: Fehlende ')'"
+
+msgid "E695: Cannot index a Funcref"
+msgstr "E695: Kann keine Funcref indizieren"
 
 #, c-format
 msgid "E112: Option name missing: %s"
@@ -351,24 +464,37 @@ msgid "E115: Missing quote: %s"
 msgstr "E115: Fehlendes Anfhrungszeichen: %s"
 
 #, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: Unzulssige Argumente fr Funktion %s"
-
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Unbekannte Funktion: %s"
-
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: Zu viele Argumente fr Funktion: %s"
-
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Nicht genug Argumente fr Funktion: %s"
-
-#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: <SID> wurde nicht in einer Skript-Umgebung benutzt: %s"
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Fehlendes Komma in der Liste: %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: Fehlendes Ende der Liste ']': %s"
+
+#, c-format
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Fehlender Doppelpunkt im Wrterbuch: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Doppelter Schlssel im Wrterbuch: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Fehlendes Komma im Wrterbuch: %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: Fehlendes Ende des Wrterbuchs '}': %s"
+
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: Variable ist zu tief verschachtelt fr die Anzeige"
+
+msgid "E699: Too many arguments"
+msgstr "E699: Zu viele Argumente"
+
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() kann nur im Insert Modus verwendet werden"
 
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
@@ -379,9 +505,17 @@ msgid "&Ok"
 msgstr "&Ok"
 
 #, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: Schlssel existiert bereits: %s"
+
+#, c-format
 msgid "+-%s%3ld lines: "
 msgstr "+-%s%3ld Zeilen: "
 
+#, c-format
+msgid "E700: Unknown function: %s"
+msgstr "E700: Unbekannte Funktion: %s"
+
 msgid ""
 "&OK\n"
 "&Cancel"
@@ -392,66 +526,111 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() wurde fter als inputsave() aufgerufen"
 
-msgid "E655: Too many symbolic links (cycle?)"
-msgstr "E655: Zu viele symbolische Links (durchgehen?)"
+msgid "E745: Range not allowed"
+msgstr "E745: Bereich nicht erlaubt"
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: Unzulssiger Typ fr len()"
+
+msgid "E726: Stride is zero"
+msgstr "E726: Stride ist Null"
+
+msgid "E727: Start past end"
+msgstr "E727: Start hinter dem Ende"
+
+msgid "<empty>"
+msgstr "<leer>"
 
 msgid "E240: No connection to Vim server"
 msgstr "E240: Keine Verbindung zum Vim-Server"
 
-msgid "E277: Unable to read a server reply"
-msgstr "E277: Server-Antwort kann nicht gelesen werden"
-
-msgid "E258: Unable to send to client"
-msgstr "E258: Kann nicht zum Client senden"
-
 #, c-format
 msgid "E241: Unable to send to %s"
 msgstr "E241: Kann nicht zu %s senden"
 
+msgid "E277: Unable to read a server reply"
+msgstr "E277: Server-Antwort kann nicht gelesen werden"
+
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: Zu viele symbolische Links (zirkulr?)"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: Kann nicht zum Client senden"
+
+msgid "E702: Sort compare function failed"
+msgstr "E702: Die Vergleichsfunktion der Sortierung ist fehlgeschlagen"
+
 msgid "(Invalid)"
-msgstr "(ungltig)"
-
-#, c-format
-msgid "E121: Undefined variable: %s"
-msgstr "E121: Variable nicht definiert: %s"
-
-#, c-format
-msgid "E461: Illegal variable name: %s"
-msgstr "E461: Unzulssiger Variable-Name: %s"
-
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: Funktion %s existiert bereits; ! zum Ersetzen hinzufgen"
-
-#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: Funktion nicht definiert: %s"
+msgstr "(Ungltig)"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: Fehler beim Schreiben einer temporren Datei"
+
+msgid "E703: Using a Funcref as a number"
+msgstr "E703: Funcref als Zahl verwendet"
+
+msgid "E745: Using a List as a number"
+msgstr "E745: Liste als Zahl verwendet"
+
+msgid "E728: Using a Dictionary as a number"
+msgstr "E728: Wrterbuch als Zahl verwendet"
+
+msgid "E729: using Funcref as a String"
+msgstr "E729: Funcref als String verwendet"
+
+msgid "E730: using List as a String"
+msgstr "E730: Liste als String verwendet"
+
+msgid "E731: using Dictionary as a String"
+msgstr "E731: Wrterbuch als String verwendet"
+
+#, c-format
+msgid "E704: Funcref variable name must start with a capital: %s"
+msgstr "E704: Funcref Variable muss mit einem Grobuchstaben beginnen: %s"
+
+#, c-format
+msgid "E705: Variable name conflicts with existing function: %s"
+msgstr "E705: Konflikt eines Variablennamens mit bestehender Funktion: %s"
+
+#, c-format
+msgid "E706: Variable type mismatch for: %s"
+msgstr "E706: Typ der Variable falsch zugeordnet: %s"
+
+#, c-format
+msgid "E741: Value is locked: %s"
+msgstr "E741: Wert ist gesperrt: %s"
+
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#, c-format
+msgid "E742: Cannot change value of %s"
+msgstr "E742: Kann Wert nicht ndern: %s"
+
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: Variable ist zu tief verschachtelt fr eine Kopie"
 
 #, c-format
 msgid "E124: Missing '(': %s"
-msgstr "E124: fehlendes '(': %s"
+msgstr "E124: Fehlendes '(': %s"
 
 #, c-format
 msgid "E125: Illegal argument: %s"
 msgstr "E125: Unzulssiges Argument: %s"
 
 msgid "E126: Missing :endfunction"
-msgstr "E126: fehlendes :endfunction"
-
-#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr "E127: Funktion %s kann nicht umdefiniert werden: sie ist in Verwendung"
+msgstr "E126: Fehlendes :endfunction"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: Funktionsname stimmt nicht mit dem Namen der Skript-Datei berein: %s"
 
 msgid "E129: Function name required"
-msgstr "E129: Funktions-Name wird verlangt"
-
-#, c-format
-msgid "E128: Function name must start with a capital: %s"
-msgstr "E128: Funktions-Name muss mit Grobuchstaben beginnen: %s"
-
-#, c-format
-msgid "E130: Undefined function: %s"
-msgstr "E130: Funktion nicht definiert: %s"
+msgstr "E129: Funktionsname wird verlangt"
+
+#, c-format
+msgid "E128: Function name must start with a capital or contain a colon: %s"
+msgstr "E128: Funktionsname muss mit einem Grobuchstaben beginnen oder einen Doppelpunkt enthalten: %s"
 
 #, c-format
 msgid "E131: Cannot delete function %s: It is in use"
@@ -460,7 +639,6 @@ msgstr "E131: Funktion %s kann nicht gelscht werden: sie ist in Verwendung"
 msgid "E132: Function call depth is higher than 'maxfuncdepth'"
 msgstr "E132: Funktionsaufruf-Tiefe berschreitet 'maxfuncdepth'"
 
-#. always scroll up, don't overwrite
 #, c-format
 msgid "calling %s"
 msgstr "rufe %s auf"
@@ -474,10 +652,9 @@ msgid "%s returning #%ld"
 msgstr "%s lieferte #%ld zurck"
 
 #, c-format
-msgid "%s returning \"%s\""
+msgid "%s returning %s"
 msgstr "%s lieferte \"%s\" zurck"
 
-#. always scroll up, don't overwrite
 #, c-format
 msgid "continuing in %s"
 msgstr "weiter in %s"
@@ -485,6 +662,7 @@ msgstr "weiter in %s"
 msgid "E133: :return not inside a function"
 msgstr "E133: :return auerhalb einer Funktion"
 
+#, c-format
 msgid ""
 "\n"
 "# global variables:\n"
@@ -492,6 +670,13 @@ msgstr ""
 "\n"
 "# globale Variablen:\n"
 
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tZuletzt gesetzt von "
+
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  Hex %02x,  Oktal %03o"
@@ -539,10 +724,10 @@ msgid " info"
 msgstr " Information"
 
 msgid " marks"
-msgstr "Markierungen"
+msgstr " Markierungen"
 
 msgid " FAILED"
-msgstr " DURCHGEFALLEN"
+msgstr " FEHLGESCHLAGEN"
 
 #, c-format
 msgid "E137: Viminfo file is not writable: %s"
@@ -550,7 +735,7 @@ msgstr "E137: Viminfo-Datei ist nicht sc
 
 #, c-format
 msgid "E138: Can't write viminfo file %s!"
-msgstr "E138: Schreiben in die viminfo-Datei %s ist nicht mglich!"
+msgstr "E138: Schreiben der viminfo-Datei %s ist nicht mglich!"
 
 #, c-format
 msgid "Writing viminfo file \"%s\""
@@ -561,6 +746,7 @@ msgstr "Schreiben der viminfo-Datei \"%s
 msgid "# This viminfo file was generated by Vim %s.\n"
 msgstr "# Diese viminfo-Datei wurde von Vim %s generiert.\n"
 
+#, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -568,6 +754,7 @@ msgstr ""
 "# Sie knnen sie verndern, wenn Sie vorsichtig vorgehen!\n"
 "\n"
 
+#, c-format
 msgid "# Value of 'encoding' when this file was written\n"
 msgstr "# Wert von 'encoding', als diese Datei geschrieben wurde\n"
 
@@ -575,39 +762,39 @@ msgid "Illegal starting char"
 msgstr "Unzulssiges Zeichen am Anfang"
 
 msgid "Save As"
-msgstr "Schreibe Als"
-
-#. Overwriting a file that is loaded in another buffer is not a
-#. * good idea.
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: Datei ist in einem anderen Puffer geladen"
+msgstr "Schreibe als"
 
 msgid "Write partial file?"
 msgstr "Partielle Datei schreiben?"
 
 msgid "E140: Use ! to write partial buffer"
-msgstr "E140: Verwenden Sie ! zum Schreiben von partiellen Puffern"
-
-#, c-format
-msgid "Overwrite existing file \"%.*s\"?"
-msgstr "berschreibe existierende Datei \"%.*s\"?"
-
-# Cursor: Schreibmarke Positionsmarke
+msgstr "E140: Zum Schreiben von partiellen Puffern ! verwenden"
+
+#, c-format
+msgid "Overwrite existing file \"%s\"?"
+msgstr "berschreibe existierende Datei \"%s\"?"
+
+#, c-format
+msgid "Swap file \"%s\" exists, overwrite anyway?"
+msgstr "Auslagerungsdatei \"%s\" existiert bereits. berschreiben?"
+
+#, c-format
+msgid "E768: Swap file exists: %s (:silent! overrides)"
+msgstr "E768: Auslagerungsdatei existiert bereits: %s (mit :silent! erzwingen)"
+
 #, c-format
 msgid "E141: No file name for buffer %ld"
 msgstr "E141: Kein Dateiname fr Puffer %ld"
 
 msgid "E142: File not written: Writing is disabled by 'write' option"
-msgstr ""
-"E142: Datei wurde nicht geschrieben: Schreiben ist durch die 'write'-Option "
-"ausgeschaltet"
+msgstr "E142: Datei wurde nicht geschrieben: Schreiben ist durch die 'write'-Option ausgeschaltet"
 
 #, c-format
 msgid ""
-"'readonly' option is set for \"%.*s\".\n"
+"'readonly' option is set for \"%s\".\n"
 "Do you wish to write anyway?"
 msgstr ""
-"'readonly'-Option ist fr \"%.*s\" gesetzt.\n"
+"'readonly'-Option ist fr \"%s\" gesetzt.\n"
 "Mchten Sie trotzdem schreiben?"
 
 msgid "Edit File"
@@ -618,7 +805,7 @@ msgid "E143: Autocommands unexpectedly d
 msgstr "E143: Auto-Kommandos lschten unerwartet neuen Puffer %s"
 
 msgid "E144: non-numeric argument to :z"
-msgstr "E144: nicht numerisches Argument fr :z"
+msgstr "E144: Nicht-numerisches Argument fr :z"
 
 msgid "E145: Shell commands not allowed in rvim"
 msgstr "E145: Shell Befehle sind in rvim nicht erlaubt"
@@ -633,10 +820,17 @@ msgstr "ersetze durch %s (y/n/a/q/l/^E/^
 msgid "(Interrupted) "
 msgstr "(Unterbrochen) "
 
+msgid "1 match"
+msgstr "ein Treffer"
+
 msgid "1 substitution"
 msgstr "eine Ersetzung"
 
 #, c-format
+msgid "%ld matches"
+msgstr "%ld Treffer"
+
+#, c-format
 msgid "%ld substitutions"
 msgstr "%ld Ersetzungen"
 
@@ -657,6 +851,7 @@ msgstr "E148: Regulrer Ausdruck fehlt in global"
 msgid "Pattern found in every line: %s"
 msgstr "Muster in jeder Zeile gefunden: %s"
 
+#, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -683,7 +878,7 @@ msgstr "Hilfe-Datei \"%s\" nicht gefunde
 
 #, c-format
 msgid "E150: Not a directory: %s"
-msgstr "E150: kein Verzeichnis: %s"
+msgstr "E150: Kein Verzeichnis: %s"
 
 #, c-format
 msgid "E152: Cannot open %s for writing"
@@ -728,7 +923,7 @@ msgstr "E158: ungltige Puffer-Nummer: %s"
 
 #, c-format
 msgid "E157: Invalid sign ID: %ld"
-msgstr "E157: ungltige Zeichen-ID: %ld"
+msgstr "E157: Ungltige Zeichen-ID: %ld"
 
 msgid " (NOT FOUND)"
 msgstr " (NICHT GEFUNDEN)"
@@ -737,7 +932,7 @@ msgid " (not supported)"
 msgstr " (nicht untersttzt)"
 
 msgid "[Deleted]"
-msgstr "[gelscht]"
+msgstr "[Gelscht]"
 
 msgid "Entering Debug mode.  Type \"cont\" to continue."
 msgstr "Debug-Modus. Geben Sie \"cont\" zum Fortsetzen ein."
@@ -765,9 +960,12 @@ msgstr "Keine Haltepunkte definiert"
 msgid "%3d  %s %s  line %ld"
 msgstr "%3d  %s %s  Zeile %ld"
 
-#, c-format
-msgid "Save changes to \"%.*s\"?"
-msgstr "nderungen in \"%.*s\" speichern?"
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: Erste Verwendung von :profile startet <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "nderungen in \"%s\" speichern?"
 
 msgid "Untitled"
 msgstr "Unbenannt"
@@ -777,9 +975,7 @@ msgid "E162: No write since last change 
 msgstr "E162: Puffer \"%s\" wurde seit der letzten nderung nicht geschrieben"
 
 msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr ""
-"Achtung: Unerwarteter Eintritt in einen andren Puffer (berprfen Siedie "
-"Autocommands)"
+msgstr "Achtung: Unerwarteter Eintritt in einen andren Puffer (berprfen Sie die Autocommandos)"
 
 msgid "E163: There is only one file to edit"
 msgstr "E163: Es gibt nur eine Datei zum Editieren"
@@ -833,6 +1029,21 @@ msgstr "Zeile %ld: lese \"%s\""
 msgid "finished sourcing %s"
 msgstr "Lesen von %s beendet"
 
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd Argument"
+
+msgid "-c argument"
+msgstr "-c Argument"
+
+msgid "environment variable"
+msgstr "Umgebungsvariable"
+
+msgid "error handler"
+msgstr "Error-Handler"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: Achtung: Falscher Zeilentrenner, vielleicht fehlt ein ^M"
 
@@ -843,78 +1054,6 @@ msgid "E168: :finish used outside of a s
 msgstr "E168: :finish auerhalb einer eingelesenen Datei"
 
 #, c-format
-msgid "Page %d"
-msgstr "Seite %d"
-
-msgid "No text to be printed"
-msgstr "Kein Text zum Drucken"
-
-#, c-format
-msgid "Printing page %d (%d%%)"
-msgstr "Drucke Seite %d (%d%%)"
-
-#, c-format
-msgid " Copy %d of %d"
-msgstr " Kopie %d von %d"
-
-#, c-format
-msgid "Printed: %s"
-msgstr "Gedruckt: %s"
-
-msgid "Printing aborted"
-msgstr "Drucken abgebrochen"
-
-msgid "E455: Error writing to PostScript output file"
-msgstr "E455: Fehler beim Schreiben der PostScript Ausgabe-Datei"
-
-#, c-format
-msgid "E624: Can't open file \"%s\""
-msgstr "E624: Datei \"%s\" kann nicht geffnet werden"
-
-#, c-format
-msgid "E457: Can't read PostScript resource file \"%s\""
-msgstr "E457: PostScript Ressource-Datei \"%s\" kann nicht gelesen werden"
-
-#, c-format
-msgid "E618: file \"%s\" is not a PostScript resource file"
-msgstr "E618: Datei \"%s\" ist keine PostScript Ressource-Datei"
-
-#, c-format
-msgid "E619: file \"%s\" is not a supported PostScript resource file"
-msgstr "E619: Datei \"%s\" ist keine untersttzte PostScript Ressource-Datei"
-
-#, c-format
-msgid "E621: \"%s\" resource file has wrong version"
-msgstr "E621: \"%s\" Ressource-Datei hat die falsche Version"
-
-msgid "E324: Can't open PostScript output file"
-msgstr "E324: PostScript Ausgabe-Datei kann nicht geffnet werden"
-
-#, c-format
-msgid "E456: Can't open file \"%s\""
-msgstr "E456: Datei \"%s\" kann nicht geffnet werden"
-
-msgid "E456: Can't find PostScript resource file \"prolog.ps\""
-msgstr "E456: PostScript Ressource-Datei \"prolog.ps\" nicht gefunden"
-
-#, c-format
-msgid "E456: Can't find PostScript resource file \"%s.ps\""
-msgstr "E456: PostScript Ressource-Datei \"%s\" nicht gefunden"
-
-#, c-format
-#~ msgid "E620: Unable to convert from multi-byte to \"%s\" encoding"
-#~ msgstr ""
-
-msgid "Sending to printer..."
-msgstr "Schicke zum Drucker..."
-
-msgid "E365: Failed to print PostScript file"
-msgstr "E365: Druck der PostScript-Datei schlug fehl"
-
-msgid "Print job sent."
-msgstr "Druckauftrag abgeschickt"
-
-#, c-format
 msgid "Current %slanguage: \"%s\""
 msgstr "Momentane %sSprache: \"%s\""
 
@@ -923,8 +1062,7 @@ msgid "E197: Cannot set language to \"%s
 msgstr "E197: Sprache kann nicht auf \"%s\" gesetzt werden"
 
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
-msgstr ""
-"Ex-Modus.  Geben Sie \"visual\" ein, um zum Normal-Modus zurckzukehren."
+msgstr "Ex-Modus. Geben Sie \"visual\" ein, um zum Normal-Modus zurckzukehren."
 
 #. must be at EOF
 msgid "E501: At end-of-file"
@@ -965,14 +1103,14 @@ msgid "E172: Only one file name allowed"
 msgstr "E172: Nur ein Dateiname erlaubt"
 
 msgid "1 more file to edit.  Quit anyway?"
-msgstr "1 weitere Datei zum Editieren. Trotzdem beenden?"
+msgstr "Eine weitere Datei zum Editieren. Trotzdem beenden?"
 
 #, c-format
 msgid "%d more files to edit.  Quit anyway?"
-msgstr "%d weitere Dateien zum Editieren.  Trotzdem beenden?"
+msgstr "%d weitere Dateien zum Editieren. Trotzdem beenden?"
 
 msgid "E173: 1 more file to edit"
-msgstr "E173: 1 weitere Datei zum Editieren"
+msgstr "E173: Eine weitere Datei zum Editieren"
 
 #, c-format
 msgid "E173: %ld more files to edit"
@@ -1007,16 +1145,6 @@ msgid "E179: argument required for compl
 msgstr "E179: Argument wird zur Vervollstndigung bentigt"
 
 #, c-format
-msgid "E180: Invalid complete value: %s"
-msgstr "E180: Ungltiger Vervollstndigungs-Wert: %s"
-
-#~ msgid "E468: Completion argument only allowed for custom completion"
-#~ msgstr ""
-
-#~ msgid "E467: Custom completion requires a function argument"
-#~ msgstr ""
-
-#, c-format
 msgid "E181: Invalid attribute: %s"
 msgstr "E181: Ungltiges Attribut: %s"
 
@@ -1031,21 +1159,40 @@ msgid "E184: No such user-defined comman
 msgstr "E184: Unbekannter benutzerdefinierter Befehl: %s"
 
 #, c-format
+msgid "E180: Invalid complete value: %s"
+msgstr "E180: Ungltiger Vervollstndigungs-Wert: %s"
+
+msgid "E468: Completion argument only allowed for custom completion"
+msgstr "E468: Argument fr Vervollstndigung nur fr eigene Vervollstndigung erlaubt"
+
+msgid "E467: Custom completion requires a function argument"
+msgstr "E467: Eigene Vervollstndigung bentigt ein Funktionsargument"
+
+#, c-format
 msgid "E185: Cannot find color scheme %s"
 msgstr "E185: Zeile %s kann nicht gefunden werden"
 
 msgid "Greetings, Vim user!"
 msgstr "Herzliche Gre, Vim Benutzer!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: Kann letztes Tab nicht schlieen"
+
+msgid "Already only one tab page"
+msgstr "Es existiert bereits nur ein Tab"
+
 msgid "Edit File in new window"
 msgstr "Editiere Datei in einem neuen Fenster"
 
 msgid "No swap file"
-msgstr "Keine Auslagerungs-Datei"
+msgstr "Keine Auslagerungsdatei"
 
 msgid "Append File"
 msgstr "Fge Datei an"
 
+msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
+msgstr "E747: Kann das Verzeichnis nicht wechseln, da der Puffer verndert wurde (erzwinge mit !)"
+
 msgid "E186: No previous directory"
 msgstr "E186: Kein vorheriges Verzeichnis"
 
@@ -1060,8 +1207,7 @@ msgid "Window position: X %d, Y %d"
 msgstr "Fenster-Position: X %d, Y %d"
 
 msgid "E188: Obtaining window position not implemented for this platform"
-msgstr ""
-"E188: die Fenster-Position kann fr dieses Terminal nicht bestimmt werden"
+msgstr "E188: Die Fenster-Position kann fr dieses Terminal nicht bestimmt werden"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos bentigt zwei numerische Argumente"
@@ -1079,6 +1225,10 @@ msgid "Save Setup"
 msgstr "Einstellungen Speichern"
 
 #, c-format
+msgid "E739: Cannot create directory: %s"
+msgstr "E739: Kann Verzeichnis nicht erstellen: %s"
+
+#, c-format
 msgid "E189: \"%s\" exists (add ! to override)"
 msgstr "E189: \"%s\" existiert (erzwinge mit !)"
 
@@ -1088,9 +1238,7 @@ msgstr "E190: \"%s\" kann nicht zum Schreiben geffnet werden"
 
 #. set mark
 msgid "E191: Argument must be a letter or forward/backward quote"
-msgstr ""
-"E191: Argument muss ein Buchstabe oder vorwrts/rckwrts-Anfhrungszeichen "
-"sein"
+msgstr "E191: Argument muss ein Buchstabe oder vorwrts/rckwrts-Anfhrungszeichen sein"
 
 msgid "E192: Recursive use of :normal too deep"
 msgstr "E192: Rekursive Verwendung von :normal zu tief"
@@ -1105,8 +1253,7 @@ msgid "E496: no autocommand buffer numbe
 msgstr "E496: Keine Auto-Kommando-Puffernummer zur Ersetzung mit \"<abuf>\""
 
 msgid "E497: no autocommand match name to substitute for \"<amatch>\""
-msgstr ""
-"E497: Kein passender Name eines Auto-Kommandos zur Ersetzung mit \"<amatch>\""
+msgstr "E497: Kein passender Name eines Auto-Kommandos zur Ersetzung mit \"<amatch>\""
 
 msgid "E498: no :source file name to substitute for \"<sfile>\""
 msgstr "E498: kein :source Dateiname zur Ersetzung mit \"<sfile>\""
@@ -1122,10 +1269,10 @@ msgid "E195: Cannot open viminfo file fo
 msgstr "E195: viminfo kann nicht zum Lesen geffnet werden"
 
 msgid "E196: No digraphs in this version"
-msgstr "ed9) Keine Digraphen in dieser Version"
-
-#~ msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
-#~ msgstr ""
+msgstr "E196 Keine Digraphen in dieser Version"
+
+msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
+msgstr "E608: Kann nicht :throw Exceptions mit 'Vim' Prfix"
 
 #. always scroll up, don't overwrite
 #, c-format
@@ -1150,8 +1297,8 @@ msgid "Exception caught: %s"
 msgstr "Ausnahme gefangen: %s"
 
 #, c-format
-#~ msgid "%s made pending"
-#~ msgstr ""
+msgid "%s made pending"
+msgstr "%s schwebend gemacht"
 
 #, c-format
 msgid "%s resumed"
@@ -1164,9 +1311,8 @@ msgstr "%s verworfen"
 msgid "Exception"
 msgstr "Ausnahme"
 
-#, fuzzy
-#~ msgid "Error and interrupt"
-#~ msgstr "Tastatur-Unterbrechung"
+msgid "Error and interrupt"
+msgstr "Fehler und Unterbrechung"
 
 msgid "Error"
 msgstr "Fehler"
@@ -1188,7 +1334,7 @@ msgid "E582: :elseif without :if"
 msgstr "E582: :elseif ohne :if"
 
 msgid "E583: multiple :else"
-msgstr "E583: mehrere :else"
+msgstr "E583: Mehrere :else"
 
 msgid "E584: :elseif after :else"
 msgstr "E584: :elseif nach :else"
@@ -1202,6 +1348,12 @@ msgstr "E586: :continue ohne :while"
 msgid "E587: :break without :while"
 msgstr "E587: :break ohne :while"
 
+msgid "E732: Using :endfor with :while"
+msgstr "E732: Bentzung von :endfor mit :while"
+
+msgid "E733: Using :endwhile with :for"
+msgstr "E733: Bentzung von :endwhile mit :for"
+
 msgid "E601: :try nesting too deep"
 msgstr "E601: :try Schachtelung zu tief"
 
@@ -1218,7 +1370,7 @@ msgstr "E606: :finally ohne :try"
 
 #. Give up for a multiple ":finally" and ignore it.
 msgid "E607: multiple :finally"
-msgstr "E607: mehrere :finally"
+msgstr "E607: Mehrere :finally"
 
 msgid "E602: :endtry without :try"
 msgstr "E602: :endtry ohne :try"
@@ -1259,10 +1411,10 @@ msgid "E198: cmd_pchar beyond the comman
 msgstr "E198: cmd_pchar ber die Lnge des Befehls hinaus"
 
 msgid "E199: Active window or buffer deleted"
-msgstr "E199: aktives Fenster oder Puffer gelscht"
+msgstr "E199: Aktives Fenster oder Puffer gelscht"
 
 msgid "Illegal file name"
-msgstr "unzulssiger Dateiname"
+msgstr "Unzulssiger Dateiname"
 
 msgid "is a directory"
 msgstr "ist ein Verzeichnis"
@@ -1273,6 +1425,12 @@ msgstr "ist keine Datei"
 msgid "[New File]"
 msgstr "[Neue Datei]"
 
+msgid "[New DIRECTORY]"
+msgstr "[Neues VERZEICHNIS]"
+
+msgid "[File too big]"
+msgstr "[Datei zu gro]"
+
 msgid "[Permission Denied]"
 msgstr "[Keine Erlaubnis]"
 
@@ -1280,8 +1438,7 @@ msgid "E200: *ReadPre autocommands made 
 msgstr "E200: *ReadPre Auto-Kommandos haben die Datei unlesbar gemacht"
 
 msgid "E201: *ReadPre autocommands must not change current buffer"
-msgstr ""
-"E201: *ReadPre Auto-Kommandos drfen nicht den aktuellen Puffer wechseln"
+msgstr "E201: *ReadPre Auto-Kommandos drfen nicht den aktuellen Puffer wechseln"
 
 msgid "Vim: Reading from stdin...\n"
 msgstr "Vim: Lese von stdin...\n"
@@ -1323,8 +1480,9 @@ msgstr "[konvertiert]"
 msgid "[crypted]"
 msgstr "[verschlsselt]"
 
-msgid "[CONVERSION ERROR]"
-msgstr "[UMWANDLUNGS-FEHLER]"
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "UMWANDLUNGSFEHLER in Zeile %ld]"
 
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
@@ -1342,22 +1500,20 @@ msgstr "Fehler bei der Umwandlung mit 'c
 msgid "can't read output of 'charconvert'"
 msgstr "Ausgabe von 'charconvert' kann nicht gelesen werden"
 
+msgid "E676: No matching autocommands for acwrite buffer"
+msgstr "E676: Keine bereinstimmenden Autokommandos fr acwrite Puffer"
+
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr ""
-"E203: Auto-Kommandos haben den zu schreibenden Puffer gelscht oder heraus "
-"geladen"
+msgstr "E203: Auto-Kommandos haben den zu schreibenden Puffer gelscht oder heraus geladen"
 
 msgid "E204: Autocommand changed number of lines in unexpected way"
-msgstr ""
-"E204: Auto-Kommandos haben die Anzahl der Zeilen in unerwarteter Weise "
-"verndert"
-
-#~ msgid "NetBeans dissallows writes of unmodified buffers"
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "Keine Syntax-Elemente definiert fr diesen Puffer"
+msgstr "E204: Auto-Kommandos haben die Anzahl der Zeilen in unerwarteter Weise verndert"
+
+msgid "NetBeans dissallows writes of unmodified buffers"
+msgstr "NetBeans verweigert das Schreiben von unvernderten Puffern"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Partielles Schreiben fr NetBeans Puffer verweigert"
 
 msgid "is not a file or writable device"
 msgstr "ist keine Datei oder beschreibbares Device"
@@ -1384,7 +1540,7 @@ msgid "E460: The resource fork would be 
 msgstr "E460: Der Ressourcefork geht verloren (erzwinge mit !)"
 
 msgid "E214: Can't find temp file for writing"
-msgstr "E214: temporre Datei kann nicht zum Schreiben geffnet werden"
+msgstr "E214: Temporre Datei kann nicht zum Schreiben geffnet werden"
 
 msgid "E213: Cannot convert (add ! to write without conversion)"
 msgstr "E213: Fehler bei der Umwandlung (schreibe ohne Umwandlung mit !)"
@@ -1408,7 +1564,7 @@ msgid "E514: write error (file system fu
 msgstr "E514: Schreibfehler (Dateisystem voll?)"
 
 msgid " CONVERSION ERROR"
-msgstr "KONVERTIERUNGS-FEHLER"
+msgstr "KONVERTIERUNGSFEHLER"
 
 msgid "[Device]"
 msgstr "[Ausgabegert]"
@@ -1466,14 +1622,14 @@ msgid "[unix format]"
 msgstr "[unix Format]"
 
 msgid "1 line, "
-msgstr "1 Zeile, "
+msgstr "eine Zeile, "
 
 #, c-format
 msgid "%ld lines, "
 msgstr "%ld Zeilen, "
 
 msgid "1 character"
-msgstr "1 Zeichen"
+msgstr "ein Zeichen"
 
 #, c-format
 msgid "%ld characters"
@@ -1523,24 +1679,18 @@ msgstr ""
 
 #, c-format
 msgid "W11: Warning: File \"%s\" has changed since editing started"
-msgstr ""
-"W11: Achtung: Datei \"%s\" wurde verndert, seit mit dem Editieren "
-"angefangen wurde"
+msgstr "W11: Achtung: Datei \"%s\" wurde verndert, seit mit dem Editieren angefangen wurde"
 
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
-msgstr ""
-"W11: Achtung: Mode der Datei \"%s\" wurde verndert seit mit dem Editieren "
-"angefangen wurde"
+msgstr "W16: Achtung: Mode der Datei \"%s\" wurde verndert seit mit dem Editieren angefangen wurde"
 
 #, c-format
 msgid "W13: Warning: File \"%s\" has been created after editing started"
-msgstr ""
-"W13: Achtug: Datei \"%s\" wurde erstellt, nachdem mit dem Editieren begonnen "
-"wurde"
-
-#~ msgid "See \":help W11\" for more info."
-#~ msgstr ""
+msgstr "W13: Achtug: Datei \"%s\" wurde erstellt, nachdem mit dem Editieren begonnen wurde"
+
+msgid "See \":help W16\" for more info."
+msgstr "Siehe \":help W16\" fr mehr Information"
 
 msgid "Warning"
 msgstr "Warnung"
@@ -1552,9 +1702,9 @@ msgstr ""
 "&OK\n"
 "&Lese Datei"
 
-#, fuzzy, c-format
-#~ msgid "E462: Could not prepare for reloading \"%s\""
-#~ msgstr "E321: \"%s\" konnte nicht neu geladen werden"
+#, c-format
+msgid "E462: Could not prepare for reloading \"%s\""
+msgstr "E462: Konnte das Neuladen von \"%s\" nicht vorbereiten"
 
 #, c-format
 msgid "E321: Could not reload \"%s\""
@@ -1588,6 +1738,10 @@ msgstr ""
 "\n"
 "--- Auto-Kommandos ---"
 
+#, c-format
+msgid "E680: <buffer=%d>: invalid buffer number "
+msgstr "E680: <buffer=%d>: Ungltige Puffer Nummer "
+
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: Auto-Kommandos knnen nicht fr ALL Ereignisse ausgefhrt werden"
 
@@ -1620,14 +1774,14 @@ msgid "E490: No fold found"
 msgstr "E490: Keine Faltung gefunden"
 
 msgid "E350: Cannot create fold with current 'foldmethod'"
-msgstr ""
-"E350: Faltung kann mit der eingestellten Methode 'foldmethod' nicht erzeugt "
-"werden"
+msgstr "E350: Faltung kann mit der aktuellen Faltungsmethode nicht erzeugt werden"
 
 msgid "E351: Cannot delete fold with current 'foldmethod'"
-msgstr ""
-"E351: Faltung kann mit der eingestellten Methode 'foldmethod' nicht entfernt "
-"werden"
+msgstr "E351: Faltung kann mit der aktuellen Faltungsmethode nicht gelscht werden"
+
+#, c-format
+msgid "+--%3ld lines folded "
+msgstr "+--%3ld Zeilen gefaltet "
 
 msgid "E222: Add to read buffer"
 msgstr "E222: Zum Lese-Puffer Hinzufgen"
@@ -1709,9 +1863,7 @@ msgid "Vim dialog"
 msgstr "VIM - Dialog..."
 
 msgid "E232: Cannot create BalloonEval with both message and callback"
-msgstr ""
-"E232: BalloonEval kann nicht mit sowohl \"message\" und \"callback\" erzeugt "
-"werden"
+msgstr "E232: BalloonEval kann nicht mit sowohl \"message\" und \"callback\" erzeugt werden"
 
 msgid "Vim dialog..."
 msgstr "VIM - Dialog..."
@@ -1725,8 +1877,8 @@ msgstr ""
 "&Nein\n"
 "&Abbrechen"
 
-#~ msgid "Input _Methods"
-#~ msgstr ""
+msgid "Input _Methods"
+msgstr "Eingabe _Methoden"
 
 msgid "VIM - Search and Replace..."
 msgstr "VIM - Suchen und Ersetzen..."
@@ -1741,14 +1893,12 @@ msgid "Replace with:"
 msgstr "Ersetzen mit:"
 
 #. whole word only button
-#, fuzzy
-#~ msgid "Match whole word only"
-#~ msgstr "Passend fr einzelne Wrter"
+msgid "Match whole word only"
+msgstr "bereinstimmung nur mit ganzen Wrtern"
 
 #. match case button
-#, fuzzy
-#~ msgid "Match case"
-#~ msgstr "Patch-Datei"
+msgid "Match case"
+msgstr "Klein-/Groschreibung beachten"
 
 msgid "Direction"
 msgstr "Richtung"
@@ -1769,11 +1919,20 @@ msgstr "Ersetzen"
 msgid "Replace All"
 msgstr "Alle Ersetzen"
 
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr ""
-
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr ""
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: \"die\"-Request von Session-Manager erhalten\n"
+
+msgid "Close"
+msgstr "Schliee"
+
+msgid "New tab"
+msgstr "Neues Tab"
+
+msgid "Open Tab..."
+msgstr "ffne in Tab..."
+
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Hauptfenster unerwartet gelscht\n"
 
 msgid "Font Selection"
 msgstr "Auswahl der Schriftart"
@@ -1781,31 +1940,49 @@ msgstr "Auswahl der Schriftart"
 msgid "Used CUT_BUFFER0 instead of empty selection"
 msgstr "CUT_BUFFER0 anstatt der leeren Auswahl benutzt"
 
-msgid "Filter"
-msgstr "Filter"
+msgid "&Filter"
+msgstr "&Filter"
+
+msgid "&Cancel"
+msgstr "&Abbrechen"
 
 msgid "Directories"
 msgstr "Verzeichnisse"
 
-msgid "Help"
-msgstr "Hilfe"
+msgid "Filter"
+msgstr "Filter"
+
+msgid "&Help"
+msgstr "&Hilfe"
 
 msgid "Files"
 msgstr "Dateien"
 
+msgid "&OK"
+msgstr "&Ok"
+
 msgid "Selection"
 msgstr "Auswahl"
 
-msgid "Undo"
-msgstr "Rckgngig"
-
-#, fuzzy, c-format
-#~ msgid "E610: Can't load Zap font '%s'"
-#~ msgstr "E235: Zap-Schriftart '%s' kann nicht geladen werden"
-
-#, fuzzy, c-format
-#~ msgid "E611: Can't use font %s"
-#~ msgstr "E235: Schriftart %s kann nicht verwendet werden"
+msgid "Find &Next"
+msgstr "&Nchste"
+
+msgid "&Replace"
+msgstr "&Ersetze"
+
+msgid "Replace &All"
+msgstr "Ersetze &Alles"
+
+msgid "&Undo"
+msgstr "&Rckgngig"
+
+#, c-format
+msgid "E610: Can't load Zap font '%s'"
+msgstr "E610: Zap-Schriftart '%s' kann nicht geladen werden"
+
+#, c-format
+msgid "E611: Can't use font %s"
+msgstr "E611: Schriftart %s kann nicht verwendet werden"
 
 msgid ""
 "\n"
@@ -1815,9 +1992,21 @@ msgstr ""
 "Sende Nachricht zum Beenden des Kind-Prozesses.\n"
 
 #, c-format
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: Kann Fenstertitel \"%s\" nicht finden"
+
+#, c-format
 msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-msgstr ""
-"E243: Argument wird nicht untersttzt: \"-%s\"; verwende die OLE Version."
+msgstr "E243: Argument wird nicht untersttzt: \"-%s\"; verwende die OLE Version."
+
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: Kann Fenster nicht innerhalb einer MDI Anwendung ffnen"
+
+msgid "Close tab"
+msgstr "Tab schlieen"
+
+msgid "Open tab..."
+msgstr "ffne in Tab..."
 
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Suche Zeichenkette (bentze '\\\\' um ein '\\' zu finden)"
@@ -1825,15 +2014,20 @@ msgstr "Suche Zeichenkette (bentze '\\\\' um ein '\\' zu finden)"
 msgid "Find & Replace (use '\\\\' to find  a '\\')"
 msgstr "Suche & Ersetze (use '\\\\' um ein '\\' zu finden)"
 
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Nicht verwendet"
+
+msgid "Directory\t*.nothing\n"
+msgstr "Verzeichnis\t*.nichts\n"
+
 msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-msgstr ""
-"Vim E458: \"Colormap\"-Eintrag kann nicht alloziert werden, einige Farben "
-"knnen falsch sein"
+msgstr "Vim E458: \"Colormap\"-Eintrag kann nicht alloziert werden, einige Farben knnen falsch sein"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr ""
-"E250: Schriftarten fr die folgenden Zeichenstze fehlen im \"fontset\" %s:"
+msgstr "E250: Schriftarten fr die folgenden Zeichenstze fehlen im \"fontset\" %s:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -1855,9 +2049,9 @@ msgstr "Schriftart 0: %s\n"
 msgid "Font1: %s\n"
 msgstr "Schriftart 1: %s\n"
 
-#, fuzzy, c-format
-#~ msgid "Font%ld width is not twice that of font0\n"
-#~ msgstr "Schriftart%d ist nicht doppelt so breit wie Schriftart0\n"
+#, c-format
+msgid "Font%ld width is not twice that of font0\n"
+msgstr "Die Breite der Schriftart %ld ist nicht doppelt so gro wie die der Schriftart 0\n"
 
 #, c-format
 msgid "Font0 width: %ld\n"
@@ -1871,11 +2065,135 @@ msgstr ""
 "Schriftart1 Breite: %ld\n"
 "\n"
 
+msgid "Invalid font specification"
+msgstr "Ungltige Spezifikation der Schriftart"
+
+msgid "&Dismiss"
+msgstr "&Aufheben"
+
+msgid "no specific match"
+msgstr "keine spezifische bereinstimmung"
+
+msgid "Vim - Font Selector"
+msgstr "Vim - Auswahl der Schriftart"
+
+msgid "Name:"
+msgstr "Name: "
+
+#. create toggle button
+msgid "Show size in Points"
+msgstr "Zeige Gre in Punkten"
+
+msgid "Encoding:"
+msgstr "Zeichensatz:"
+
+msgid "Font:"
+msgstr "Schriftart"
+
+msgid "Style:"
+msgstr "Stil:"
+
+msgid "Size:"
+msgstr "Gre:"
+
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul-Automat Fehler"
 
+msgid "E550: Missing colon"
+msgstr "E550: Fehlender Doppelpunkt"
+
+msgid "E551: Illegal component"
+msgstr "E551: Unzulssige Komponente"
+
+msgid "E552: digit expected"
+msgstr "E552: Ziffer erwartet"
+
+#, c-format
+msgid "Page %d"
+msgstr "Sete %d"
+
+msgid "No text to be printed"
+msgstr "Kein Text zum Drucken"
+
+#, c-format
+msgid "Printing page %d (%d%%)"
+msgstr "Drucke Seite %d (%d%%)"
+
+#, c-format
+msgid " Copy %d of %d"
+msgstr " Kopiere %d von %d"
+
+#, c-format
+msgid "Printed: %s"
+msgstr "Gedruckt: %s"
+
+msgid "Printing aborted"
+msgstr "Ausdruck abgebrochen"
+
+msgid "E455: Error writing to PostScript output file"
+msgstr "E455: Fehler beim Schreiben der PostScript-Ausgabedatei"
+
+#, c-format
+msgid "E624: Can't open file \"%s\""
+msgstr "E624: Datei \"%s\" kann nicht geffnet werden"
+
+#, c-format
+msgid "E457: Can't read PostScript resource file \"%s\""
+msgstr "E457: PostScript Ressource-Datei \"%s\" kann nicht gelesen werden"
+
+#, c-format
+msgid "E618: file \"%s\" is not a PostScript resource file"
+msgstr "E618: Datei \"%s\" ist keine PostScript Ressource-Datei"
+
+#, c-format
+msgid "E619: file \"%s\" is not a supported PostScript resource file"
+msgstr "E619: Datei \"%s\" ist keine untersttzte PostScript Ressource-Datei"
+
+#, c-format
+msgid "E621: \"%s\" resource file has wrong version"
+msgstr "E621: \"%s\" Ressource-Datei hat die falsche Version"
+
+msgid "E673: Incompatible multi-byte encoding and character set."
+msgstr "E673: Unzulssiger Multi-Byte Zeichensatz"
+
+msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
+msgstr "E674: printmbcharset darf nicht leer sein mit Multi-Byte Zeichensatz."
+
+msgid "E675: No default font specified for multi-byte printing."
+msgstr "E675: Keine Standardschriftart angegeben fr Multi-Byte Ausdruck."
+
+msgid "E324: Can't open PostScript output file"
+msgstr "E324: PostScript Ausgabe-Datei kann nicht geffnet werden"
+
+#, c-format
+msgid "E456: Can't open file \"%s\""
+msgstr "E456: Datei \"%s\" kann nicht geffnet werden"
+
+msgid "E456: Can't find PostScript resource file \"prolog.ps\""
+msgstr "E456: PostScript Ressource-Datei \"prolog.ps\" nicht gefunden"
+
+msgid "E456: Can't find PostScript resource file \"cidfont.ps\""
+msgstr "E456: PostScript Ressource-Datei \"cidfont.ps\" nicht gefunden"
+
+#, c-format
+msgid "E456: Can't find PostScript resource file \"%s.ps\""
+msgstr "E456: PostScript Ressource-Datei \"%s\" nicht gefunden"
+
+#, c-format
+msgid "E620: Unable to convert to print encoding \"%s\""
+msgstr "E620: Konvertierung nach dem Zeichensatz fr den Ausdruck \"%s\" fehlgeschlagen"
+
+msgid "Sending to printer..."
+msgstr "Schicke zum Drucker..."
+
+msgid "E365: Failed to print PostScript file"
+msgstr "E365: Druck der PostScript-Datei schlug fehl"
+
+msgid "Print job sent."
+msgstr "Druckauftrag abgeschickt"
+
 msgid "Add a new database"
-msgstr "Datenbank hinzufgen"
+msgstr "Eine neue Datenbank hinzufgen"
 
 msgid "Query for a pattern"
 msgstr "Muster suchen"
@@ -1892,57 +2210,52 @@ msgstr "Verbindungen reinitialisieren"
 msgid "Show connections"
 msgstr "Verbindungen anzeigen"
 
-#, fuzzy, c-format
-#~ msgid "E560: Usage: cs[cope] %s"
-#~ msgstr "Verwendung: cs[cope] %s"
+#, c-format
+msgid "E560: Usage: cs[cope] %s"
+msgstr "E560: Verwendung: cs[cope] %s"
 
 msgid "This cscope command does not support splitting the window.\n"
 msgstr "Dieser cscope-Befehl untersttzt nicht Teilen des Fensters.\n"
 
-#, fuzzy
-#~ msgid "E562: Usage: cstag <ident>"
-#~ msgstr "Verwendung: cstag <ident>"
+msgid "E562: Usage: cstag <ident>"
+msgstr "E562: Verwendung: cstag <ident>"
 
 msgid "E257: cstag: tag not found"
 msgstr "E257: cstag: Tag nicht gefunden"
 
-#, fuzzy, c-format
-#~ msgid "E563: stat(%s) error: %d"
-#~ msgstr "stat(%s) Fehler: %d"
-
-#~ msgid "E563: stat error"
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E564: %s is not a directory or a valid cscope database"
-#~ msgstr "%s ist kein Verzeichnis oder zulssige cscope Datenbank"
+#, c-format
+msgid "E563: stat(%s) error: %d"
+msgstr "E563: stat(%s) Fehler: %d"
+
+msgid "E563: stat error"
+msgstr "E563: 'stat' Fehler"
+
+#, c-format
+msgid "E564: %s is not a directory or a valid cscope database"
+msgstr "E564: %s ist kein Verzeichnis oder eine gltige cscope Datenbank"
 
 #, c-format
 msgid "Added cscope database %s"
 msgstr "csope Datenbank %s hinzugefgt"
 
-#, fuzzy, c-format
-#~ msgid "E262: error reading cscope connection %ld"
-#~ msgstr "E262: Fehler beim Lesen aus der cscope Verbindung %d"
-
-#, fuzzy
-#~ msgid "E561: unknown cscope search type"
-#~ msgstr "unbekannter cscope Suchtyp"
-
-#, fuzzy
-#~ msgid "E566: Could not create cscope pipes"
-#~ msgstr "cscope Pipes konnten nicht angelegt werden"
-
-#, fuzzy
-#~ msgid "E622: Could not fork for cscope"
-#~ msgstr "E321: \"%s\" konnte nicht neu geladen werden"
+#, c-format
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: Fehler beim Lesen aus der cscope Verbindung %ld"
+
+msgid "E561: unknown cscope search type"
+msgstr "E561: Unbekannter cscope Suchtyp"
+
+msgid "E566: Could not create cscope pipes"
+msgstr "E566: cscope Pipes konnten nicht angelegt werden"
+
+msgid "E622: Could not fork for cscope"
+msgstr "E622: Konnte nicht fr cscope verzweigen"
 
 msgid "cs_create_connection exec failed"
 msgstr "cs_create_connection exec misslang"
 
-#, fuzzy
-#~ msgid "E623: Could not spawn cscope process"
-#~ msgstr "cscope Pipes konnten nicht angelegt werden"
+msgid "E623: Could not spawn cscope process"
+msgstr "E623: Konnte cscope Prozess nicht hervorbringen"
 
 msgid "cs_create_connection: fdopen for to_fp failed"
 msgstr "cs_create_connection: fdopen von to_fp misslang"
@@ -1950,70 +2263,66 @@ msgstr "cs_create_connection: fdopen von
 msgid "cs_create_connection: fdopen for fr_fp failed"
 msgstr "cs_create_connection: fdopen von fr_fp misslang"
 
-#, fuzzy
-#~ msgid "E567: no cscope connections"
-#~ msgstr "keine Verbindungen zu cscope"
+msgid "E567: no cscope connections"
+msgstr "E567: Keine cscope Verbindungen"
 
 #, c-format
 msgid "E259: no matches found for cscope query %s of %s"
 msgstr "E259: keine Treffer gefunden fr cscope Anfragen %s aus %s"
 
 #, c-format
-#~ msgid "E469: invalid cscopequickfix flag %c for %c"
-#~ msgstr ""
+msgid "E469: invalid cscopequickfix flag %c for %c"
+msgstr "E469: Unzulssiges cscopequickfix Flag %c fr %c"
 
 msgid "cscope commands:\n"
 msgstr "cscope Befehle:\n"
 
-#, fuzzy, c-format
-#~ msgid "%-5s: %-30s (Usage: %s)"
-#~ msgstr "%-5s: %-30s (Verwendung: %s)\n"
-
-#, fuzzy, c-format
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "csope Datenbank %s hinzugefgt"
-
-#, fuzzy
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "Revertierungs-Information kann nicht gespeichert werden"
-
-#, fuzzy
-#~ msgid "E568: duplicate cscope database not added"
-#~ msgstr "cscope Datenbank nicht doppelt hinzugefgt"
-
-#, fuzzy
-#~ msgid "E569: maximum number of cscope connections reached"
-#~ msgstr "maximale Anzahl von cscope Verbindungen erreicht"
+#, c-format
+msgid "%-5s: %-30s (Usage: %s)"
+msgstr "%-5s: %-30s (Verwendung: %s)"
+
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: Kann cscope Datenbank nicht ffnen: %s"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: Kann cscope Datenbank-Informationen nicht bekommen"
+
+msgid "E568: duplicate cscope database not added"
+msgstr "E568: cscope Datenbank nicht doppelt hinzugefgt"
+
+msgid "E569: maximum number of cscope connections reached"
+msgstr "E569: Maximale Anzahl von cscope Verbindungen erreicht"
 
 #, c-format
 msgid "E261: cscope connection %s not found"
 msgstr "E261: cscope Verbindung %s nicht gefunden"
 
-#, fuzzy, c-format
-#~ msgid "cscope connection %s closed"
-#~ msgstr "cscope Verbindung %s geschlossen\n"
+#, c-format
+msgid "cscope connection %s closed"
+msgstr "cscope Verbindung %s geschlossen"
 
 #. should not reach here
-#, fuzzy
-#~ msgid "E570: fatal error in cs_manage_matches"
-#~ msgstr "fataler Fehler in cs_manage_matches"
-
-#, fuzzy, c-format
-#~ msgid "Cscope tag: %s"
-#~ msgstr "Cscope Tag: %s\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "   #   line"
-#~ msgstr "   #  Zeile"
+msgid "E570: fatal error in cs_manage_matches"
+msgstr "E570: Fataler Fehler in cs_manage_matches"
+
+#, c-format
+msgid "Cscope tag: %s"
+msgstr "Cscope Tag: %s"
+
+msgid ""
+"\n"
+"   #   line"
+msgstr ""
+"\n"
+"   #   Zeile"
 
 msgid "filename / context / line\n"
 msgstr "Dateiname / Kontext / Zeile\n"
 
-#, fuzzy, c-format
-#~ msgid "E609: Cscope error: %s"
-#~ msgstr "E40: Fehler-Datei %s kann nicht geffnet werden"
+#, c-format
+msgid "E609: Cscope error: %s"
+msgstr "E609: Cscope Fehler: %s"
 
 msgid "All cscope databases reset"
 msgstr "alle cscope Datenbanken zurckgesetzt"
@@ -2025,15 +2334,71 @@ msgid " # pid    database name          
 msgstr " # pid   Datenbank Name\t                    fhrender Pfad\n"
 
 msgid ""
+"???: Sorry, this command is disabled, the MzScheme library could not be "
+"loaded."
+msgstr "???: Dieser Befehl ist nicht verfgbar, die MzScheme Bibliothek konnte nicht "
+"geladen werden"
+
+msgid "invalid expression"
+msgstr "ungltiger Ausdruck"
+
+msgid "expressions disabled at compile time"
+msgstr "Ausdrcke wurden zur Zeit des bersetzens nicht zugelassen"
+
+msgid "hidden option"
+msgstr "versteckte Option"
+
+msgid "unknown option"
+msgstr "unbekannte Option"
+
+msgid "window index is out of range"
+msgstr "Fensterindex auerhalb des zulssigen Bereichs"
+
+msgid "couldn't open buffer"
+msgstr "konnte Puffer nicht ffnen"
+
+msgid "cannot save undo information"
+msgstr "kann Revertierungs-Information nicht speichern"
+
+msgid "cannot delete line"
+msgstr "Zeile kann nicht gelscht werden"
+
+msgid "cannot replace line"
+msgstr "Zeile kann nicht ersetzt werden"
+
+msgid "cannot insert line"
+msgstr "Zeile kann nicht eingefgt werden"
+
+msgid "string cannot contain newlines"
+msgstr "Zeichenfolge kann keine Zeilen-wechsel enthalten"
+
+msgid "Vim error: ~a"
+msgstr "Vim Fehler: ~a"
+
+msgid "Vim error"
+msgstr "Vim Fehler"
+
+msgid "buffer is invalid"
+msgstr "ungltiger Puffer"
+
+msgid "window is invalid"
+msgstr "ungltiges Fenster"
+
+msgid "linenr out of range"
+msgstr "'linenr' auerhalb des zulssigen Bereichs"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "in der Vim-Sandbox nicht erlaubt"
+
+msgid ""
 "E263: Sorry, this command is disabled, the Python library could not be "
 "loaded."
 msgstr ""
 "E263: Dieser Befehl ist nicht verfgbar, die Python Bibliothek konnte nicht "
 "geladen werden"
 
-#, fuzzy
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E147: Kann :global nicht rekursiv ausfhren"
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Kann Python nicht rekursiv ausfhren"
 
 msgid "can't delete OutputObject attributes"
 msgstr "OutputObject-Attribute knnen nicht gelscht werden"
@@ -2050,12 +2415,6 @@ msgstr "writelines() verlangt eine Liste
 msgid "E264: Python: Error initialising I/O objects"
 msgstr "E264: Python: Fehler bei der Initialisierung von I/O Objekten"
 
-msgid "invalid expression"
-msgstr "ungltiger Ausdruck"
-
-msgid "expressions disabled at compile time"
-msgstr "Ausdrcke wurden zur Zeit des bersetzens nicht zugelassen"
-
 msgid "attempt to refer to deleted buffer"
 msgstr "Versuch, Bezug auf einen gelschten Puffer zu nehmen"
 
@@ -2096,21 +2455,6 @@ msgstr "<Fenster %d>"
 msgid "no such window"
 msgstr "ungltiges Fenster"
 
-msgid "cannot save undo information"
-msgstr "Revertierungs-Information kann nicht gespeichert werden"
-
-msgid "cannot delete line"
-msgstr "Zeile kann nicht gelscht werden"
-
-msgid "cannot replace line"
-msgstr "Zeile kann nicht ersetzt werden"
-
-msgid "cannot insert line"
-msgstr "Zeile kann nicht eingefgt werden"
-
-msgid "string cannot contain newlines"
-msgstr "Zeichenfolge kann keine Zeilen-wechsel enthalten"
-
 msgid ""
 "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
@@ -2216,9 +2560,6 @@ msgstr "ungltige Puffer-Nummer"
 msgid "not implemented yet"
 msgstr "nicht implementiert"
 
-msgid "unknown option"
-msgstr "unbekannte Option"
-
 #. ???
 msgid "cannot set line(s)"
 msgstr "kann keine Zeile/Zeilen setzen"
@@ -2246,8 +2587,7 @@ msgid "vim error"
 msgstr "vim Fehler"
 
 msgid "cannot create buffer/window command: object is being deleted"
-msgstr ""
-"Puffer/Fenster-Befehl kann nicht ausgefhrt werden: das Objekt wird gelscht"
+msgstr "Puffer/Fenster-Befehl kann nicht ausgefhrt werden: das Objekt wird gelscht"
 
 msgid ""
 "cannot register callback command: buffer/window is already being deleted"
@@ -2259,26 +2599,23 @@ msgid ""
 "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
 "org"
 msgstr ""
-"E280: TCL FATALER FEHLER: reflist kaputt!? Bitte benachrichtigen Sie vim-"
-"dev@vim.org"
+"E280: TCL FATALER FEHLER: reflist kaputt!? Bitte vim-dev@vim.org benachrichtigen."
 
 msgid "cannot register callback command: buffer/window reference not found"
-msgstr ""
-"kann keinen Callback-Befehl registrieren: Puffer/Fenster-Referenz nicht "
-"gefunden"
-
-#, fuzzy
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-#~ msgstr ""
-#~ "Dieser Befehl ist nicht verfgbar, da die Tcl Bibliothek nicht geladen "
-#~ "werden konnte"
+msgstr "kann keinen Callback-Befehl registrieren: Puffer/Fenster-Referenz nicht gefunden"
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr "E571: Dieser Befehl ist nicht verfgbar: die Tcl Bibliothek konnte nicht geladen werden"
 
 msgid ""
 "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
-"E281: TCL FEHLER: Exit-Code ist nicht int!? Bitte benachrichtigen Sie vim-"
-"dev@vim.org"
+"E281: TCL FEHLER: Exit-Code ist nicht int!? Bitte vim-dev@vim.org benachrichtigen."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: Ekit-Code %d"
 
 msgid "cannot get line"
 msgstr "kann Zeile nicht erhalten"
@@ -2289,15 +2626,15 @@ msgstr "Befehls-Server Name kann nicht r
 msgid "E248: Failed to send command to the destination program"
 msgstr "E248: Schicken des Befehls zum Ziel-Programm schlug fehl"
 
-#, fuzzy, c-format
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "Ungltige Server-ID verwendet: %s"
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Ungltige Server ID verwendet: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
 msgstr "E251: Registry-Eigenschaft der VIM Instanz ist fehlerhaft.  Gelscht!"
 
-msgid "Unknown option"
-msgstr "Unbekannte Option"
+msgid "Unknown option argument"
+msgstr "Unbekanntes Optionsargument"
 
 msgid "Too many edit arguments"
 msgstr "Zu viele Editor Argumente"
@@ -2305,12 +2642,11 @@ msgstr "Zu viele Editor Argumente"
 msgid "Argument missing after"
 msgstr "Argument fehlt nach"
 
-msgid "Garbage after option"
-msgstr "Schrott nach der Option"
-
-#, fuzzy
-#~ msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-#~ msgstr "Zu viele \"+command\" oder \"-c command\" Argumente"
+msgid "Garbage after option argument"
+msgstr "Schrott nach dem Optionsargument"
+
+msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
+msgstr "Zu viele \"+command\", \"-c command\" oder \"--cmd command\" Argumente"
 
 msgid "Invalid argument for"
 msgstr "Ungltiges Argument fr"
@@ -2327,9 +2663,8 @@ msgstr "kann nicht zum Lesen geffnet werden: \""
 msgid "Cannot open for script output: \""
 msgstr "kann nicht zur Skript-Ausgabe geffnet werden: \""
 
-#, c-format
-msgid "%d files to edit\n"
-msgstr "%d Dateien zur Bearbeitung\n"
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: Fehler: Konnte gvim nicht von NetBeans aus starten\n"
 
 msgid "Vim: Warning: Output is not to a terminal\n"
 msgstr "Vim: Warnung: Die Ausgabe erfolgt nicht auf einem Terminal\n"
@@ -2407,9 +2742,8 @@ msgstr "-unregister\t\tDeregistriere gvi
 msgid "-g\t\t\tRun using GUI (like \"gvim\")"
 msgstr "-g\t\t\tStart als GUI (wie \"gvim\")"
 
-#, fuzzy
-#~ msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr "-f\t\t\tFordergrund: Kein \"fork\" beim Start des GUI"
+msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f\t\t\tVordergrund: Kein \"fork\" beim Start der GUI"
 
 msgid "-v\t\t\tVi mode (like \"vi\")"
 msgstr "-v\t\t\tVi Modus (wie \"vi\")"
@@ -2474,17 +2808,14 @@ msgstr "-f\t\t\tVerwende nicht newcli zum ffnen eines neuen Fensters"
 msgid "-dev <device>\t\tUse <device> for I/O"
 msgstr "-dev <device>\t\tVerwende <device> for I/O"
 
-#, fuzzy
-#~ msgid "-A\t\t\tstart in Arabic mode"
-#~ msgstr "-F\t\t\tStart im Farsi Modus"
-
-#, fuzzy
-#~ msgid "-H\t\t\tStart in Hebrew mode"
-#~ msgstr "-H\t\t\tStart im Hebrischen Modus"
-
-#, fuzzy
-#~ msgid "-F\t\t\tStart in Farsi mode"
-#~ msgstr "-F\t\t\tStart im Farsi Modus"
+msgid "-A\t\t\tstart in Arabic mode"
+msgstr "-A\t\t\tStart im Arabischen Modus"
+
+msgid "-H\t\t\tStart in Hebrew mode"
+msgstr "-H\t\t\tStart im Hebrischen Modus"
+
+msgid "-F\t\t\tStart in Farsi mode"
+msgstr "-F\t\t\tStart im Farsi Modus"
 
 msgid "-T <terminal>\tSet terminal type to <terminal>"
 msgstr "-T <terminal>\tSetze Terminal-Typ auf <terminal>"
@@ -2501,9 +2832,8 @@ msgstr "--noplugin\t\tlade keine \"plugi
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tffne N Fenster (Vorgabe: einzeln fr jede Datei)"
 
-#, fuzzy
-#~ msgid "-O[N]\t\tLike -o but split vertically"
-#~ msgstr "-O[N]\t\twie -o, aber teile vertikal"
+msgid "-O[N]\t\tLike -o but split vertically"
+msgstr "-O[N]\t\twie -o, aber teile vertikal"
 
 msgid "+\t\t\tStart at end of file"
 msgstr "+\t\t\tStarte am Ende der Datei"
@@ -2521,8 +2851,7 @@ msgid "-S <session>\t\tSource file <sess
 msgstr "-S <session>\t\tLese Datei <session> nach dem Laden der ersten Datei"
 
 msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
-msgstr ""
-"-s <scriptin>\tLese Normal-Modus Befehle aus der Skript-Datei <scriptin>"
+msgstr "-s <scriptin>\tLese Normal-Modus Befehle aus der Skript-Datei <scriptin>"
 
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
 msgstr "-w <scriptout>\tBefehle am Ende der Skript-Datei <scriptout> anfgen"
@@ -2539,30 +2868,27 @@ msgstr "-display <display>\tStarte vim <
 msgid "-X\t\t\tDo not connect to X server"
 msgstr "-X\t\t\tstelle keine Verbindung zum X-server her"
 
-#, fuzzy
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr "--remote <Dateien>\tEditiere <Dateien> in einem Vim Server und beende"
-
-#~ msgid "--remote-silent <files>  Same, don't complain if there is no server"
-#~ msgstr ""
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <Dateien>\tEditiere <Dateien> in einem Vim Server falls mglich"
+
+msgid "--remote-silent <files>  Same, don't complain if there is no server"
+msgstr "--remote-silent <Dateien>  Dasselbe ohne Warnung, wenn kein Server vorhanden ist"
 
 msgid ""
 "--remote-wait <files>  As --remote but wait for files to have been edited"
 msgstr ""
-"--remote-wait <Dateien>  Wie --remote, aber warte, bis die <Dateien> "
-"editiert wurden"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files>  Same, don't complain if there is no server"
-#~ msgstr ""
+"--remote-wait <Dateien>  Wie --remote, aber warte, bis die <Dateien> editiert wurden"
+
+msgid ""
+"--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <files>  Dasselbe ohne Warnung, wenn kein Server vorhanden ist"
 
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <keys>\tSchicke <keys> zu einem Vim Server und beende"
 
 msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-msgstr ""
-"--remote-expr <Ausdruck>\tFhre <Ausdruck> in einem Vim Server aus und "
-"drucke das Ergebnis"
+msgstr "--remote-expr <Ausdruck>\tFhre <Ausdruck> in einem Vim Server aus und drucke das Ergebnis"
 
 msgid "--serverlist\t\tList available Vim server names and exit"
 msgstr "--serverlist\t\tDrucke verfgbare Vim Server Namen und beende"
@@ -2573,13 +2899,11 @@ msgstr "--servername <Name>\tBenutze den
 msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
 msgstr "-i <viminfo>\t\tBenutze <viminfo> statt .viminfo"
 
-#, fuzzy
-#~ msgid "-h  or  --help\tPrint Help (this message) and exit"
-#~ msgstr "-h\t\t\tdrucke nur Hilfe (diese Nachricht)"
-
-#, fuzzy
-#~ msgid "--version\t\tPrint version information and exit"
-#~ msgstr "--version\t\tDrucke nur Versions-Informationen"
+msgid "-h  or  --help\tPrint Help (this message) and exit"
+msgstr "-h  or  --help\tAnzeigen der Hilfe (diesen Text) und beenden"
+
+msgid "--version\t\tPrint version information and exit"
+msgstr "--version\t\tVersionsinformation anzeigen und beenden"
 
 msgid ""
 "\n"
@@ -2588,13 +2912,12 @@ msgstr ""
 "\n"
 "Argumente fr die gvim Motif Version:\n"
 
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumente fr die gvim Athena Version:\n"
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Argumente fr die gvim neXtaw Version:\n"
 
 msgid ""
 "\n"
@@ -2616,16 +2939,13 @@ msgid "\t\t\t  (Unimplemented)\n"
 msgstr "\t\t\t  (Nicht implementiert)\n"
 
 msgid "-background <color>\tUse <color> for the background (also: -bg)"
-msgstr ""
-"-background <Farbe>\tBenutze <Farbe> fr den Hintergrund (auch mit: -bg)"
+msgstr "-background <Farbe>\tBenutze <Farbe> fr den Hintergrund (auch mit: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr ""
-"-foreground <Farbe>\tBenutze <Farbe> fr den Text Vordergrund (auch mit: -fg)"
+msgstr "-foreground <Farbe>\tBenutze <Farbe> fr den Text Vordergrund (auch mit: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-msgstr ""
-"-font <Schriftart>\tBenutze <Schriftart> fr normalen Text (auch mit: -fn)"
+msgstr "-font <Schriftart>\tBenutze <Schriftart> fr normalen Text (auch mit: -fn)"
 
 msgid "-boldfont <font>\tUse <font> for bold text"
 msgstr "-boldfont <Schriftart>\tBenutze <Schriftart> fr Fettschrift"
@@ -2634,23 +2954,16 @@ msgid "-italicfont <font>\tUse <font> fo
 msgstr "-italicfont <Schriftart>\tBenutze <Schriftart> fr geneigten Text"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr ""
-"-geometry <geom>\tbenutze <geom> fr die Anfangs Abmessungen (auch mit: -"
-"geom)"
+msgstr "-geometry <geom>\tbenutze <geom> fr die Anfangs Abmessungen (auch mit: -geom)"
 
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-msgstr ""
-"-borderwidth <Breite>\tBenutze einen Rahmen der Breite <Breite> (auch mit: -"
-"bw)"
+msgstr "-borderwidth <Breite>\tBenutze einen Rahmen der Breite <Breite> (auch mit: -bw)"
 
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
-msgstr ""
-"-scrollbarwidth <Breite>  Benutze eine Scrollbar der Breite <Breite> (auch "
-"mit: -sw)"
+msgstr "-scrollbarwidth <Breite>  Benutze eine Scrollbar der Breite <Breite> (auch mit: -sw)"
 
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr ""
-"-menuheight <Hhe>\tBenutze einen Men-Balken der Hhe <Hhe> (auch mit: -mh)"
+msgstr "-menuheight <Hhe>\tBenutze einen Men-Balken der Hhe <Hhe> (auch mit: -mh)"
 
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tBenutze invertierte Farben (auch mit: -rv)"
@@ -2684,43 +2997,35 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\tStarte vim auf <display> (auch mit: --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tSetze eine eindeutige Rolle, um das Hauptfenster zu identifizieren"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tffne Vim in einem anderen GTK widget"
 
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr ""
-
-#~ msgid "No display"
-#~ msgstr ""
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <parent title>\tffne Vim innerhalb der Vater-Applikation"
+
+msgid "No display"
+msgstr "Keine Anzeige"
 
 #. Failed to send, abort.
-#, fuzzy
-#~ msgid ": Send failed.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Schicken des Ausdrucks schlug fehl.\n"
+msgid ": Send failed.\n"
+msgstr ": Versendung fehlgeschlagen.\n"
 
 #. Let vim start normally.
-#, fuzzy
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Schicken schlug fehl. Versuche lokal auszufhren\n"
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Versendung fehlgeschlagen. Versuche lokale Ausfhrung\n"
 
 #, c-format
 msgid "%d of %d edited"
 msgstr "%d von %d editiert"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "Schicken des Ausdrucks schlug fehl.\n"
-
-#, fuzzy
-#~ msgid ": Send expression failed.\n"
-#~ msgstr "Schicken des Ausdrucks schlug fehl.\n"
+msgid "No display: Send expression failed.\n"
+msgstr "Keine Anzeige: Versenden des Ausdrucks fehlgeschlagen.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": Versenden des Ausdrucks fehlgeschlagen.\n"
 
 msgid "No marks set"
 msgstr "Keine Markierungen gesetzt"
@@ -2746,13 +3051,12 @@ msgstr ""
 " Sprung Zeile Sp Datei/Text"
 
 #. Highlight title
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "change line  col text"
-#~ msgstr ""
-#~ "\n"
-#~ "Mark Zeile Sp  Datei/Text"
+msgid ""
+"\n"
+"change line  col text"
+msgstr ""
+"\n"
+"nder. Zeile Sp  Text"
 
 msgid ""
 "\n"
@@ -2767,21 +3071,20 @@ msgid ""
 "# Jumplist (newest first):\n"
 msgstr ""
 "\n"
-"# Geschichte (neueste bis lteste):\n"
+"# Geschichte (neueste zuerst):\n"
 
 msgid ""
 "\n"
 "# History of marks within files (newest to oldest):\n"
 msgstr ""
 "\n"
-"# Geschichte der Markierungen innerhalb von Dateien (neueste bis lteste):\n"
+"# Geschichte der Markierungen innerhalb von Dateien (neueste zuerst):\n"
 
 msgid "Missing '>'"
 msgstr "'>' fehlt"
 
-#, fuzzy
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "Ist nicht eine zulssige Code-Seite"
+msgid "E543: Not a valid codepage"
+msgstr "E543: Keine zulssige Codepage"
 
 msgid "E284: Cannot set IC values"
 msgstr "E284: Kann die IC Werte nicht setzen"
@@ -2805,8 +3108,7 @@ msgid "E290: over-the-spot style require
 msgstr "E290: der ber-dem-Punkt Stil bentigt fontset"
 
 msgid "E291: Your GTK+ is older than 1.2.3. Status area disabled"
-msgstr ""
-"E291: Ihr GTK+ ist lter als 1.2.3. Der Status-Bereich wird abgeschaltet"
+msgstr "E291: Ihr GTK+ ist lter als 1.2.3. Der Status-Bereich wird abgeschaltet"
 
 msgid "E292: Input Method Server is not running"
 msgstr "E292: Server der Eingabe-Methode luft nicht"
@@ -2847,9 +3149,7 @@ msgstr "E302: Auslagerungs-Datei konnte 
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr ""
-"E303: Auslagerungs-Datei fr \"%s\" konnte nicht geffnet werden, "
-"Wiederherstellung unmglich"
+msgstr "E303: Auslagerungs-Datei fr \"%s\" konnte nicht geffnet werden, Wiederherstellung unmglich"
 
 msgid "E304: ml_timestamp: Didn't get block 0??"
 msgstr "E304: ml_timestamp: Block Nr. 0 nicht erhalten?"
@@ -2859,9 +3159,7 @@ msgid "E305: No swap file found for %s"
 msgstr "E305: Keine Auslagerungs-Datei fr %s gefunden"
 
 msgid "Enter number of swap file to use (0 to quit): "
-msgstr ""
-"Geben Sie die Nummer der Auslagerungs-Datei ein die verwendet werden soll (0 "
-"um abzubrechen): "
+msgstr "Geben Sie die Nummer der Auslagerungs-Datei ein die verwendet werden soll (0 um abzubrechen): "
 
 #, c-format
 msgid "E306: Cannot open %s"
@@ -2875,8 +3173,7 @@ msgid ""
 "Maybe no changes were made or Vim did not update the swap file."
 msgstr ""
 "\n"
-"Vielleicht wurden keine nderungen vorgenommen oder Vim hatte die "
-"Auslagerungs-Datei nicht aktualisiert."
+"Vielleicht wurden keine nderungen vorgenommen oder Vim hatte die Auslagerungs-Datei nicht aktualisiert."
 
 msgid " cannot be used with this version of Vim.\n"
 msgstr " kann nicht zusammen mit dieser Vim Version verwendet werden.\n"
@@ -2950,8 +3247,7 @@ msgstr "E311: Wiederherstellung unterbro
 msgid ""
 "E312: Errors detected while recovering; look for lines starting with ???"
 msgstr ""
-"E312: Fehler wurden festgestellt whrend der Wiederherstellung: suche nach "
-"Zeilen die mit ??? beginnen"
+"E312: Fehler wurden festgestellt whrend der Wiederherstellung: suche nach Zeilen die mit ??? beginnen"
 
 msgid "See \":help E312\" for more information."
 msgstr "Lesen Sie \":help E312\" fr weitere Informationen."
@@ -3166,8 +3462,7 @@ msgstr ""
 "(2) Eine Editier-Sitzung fr diese Datei ist abgestrzt.\n"
 
 msgid "    If this is the case, use \":recover\" or \"vim -r "
-msgstr ""
-"    Wenn dies der Fall ist, so verwenden Sie \":recover\" oder \"vim -r "
+msgstr "    Wenn dies der Fall ist, so verwenden Sie \":recover\" oder \"vim -r "
 
 msgid ""
 "\"\n"
@@ -3199,33 +3494,33 @@ msgstr "VIM - ACHTUNG"
 msgid "Swap file already exists!"
 msgstr "Auslagerungs-Datei ist bereits vorhanden!"
 
-#, fuzzy
-#~ msgid ""
-#~ "&Open Read-Only\n"
-#~ "&Edit anyway\n"
-#~ "&Recover\n"
-#~ "&Quit\n"
-#~ "&Abort"
-#~ msgstr ""
-#~ "ffnen nur zum &Lesen\n"
-#~ "Trotzdem &editieren\n"
-#~ "&Wiederherstellen\n"
-#~ "&Abbrechen"
-
-#, fuzzy
-#~ msgid ""
-#~ "&Open Read-Only\n"
-#~ "&Edit anyway\n"
-#~ "&Recover\n"
-#~ "&Quit\n"
-#~ "&Abort\n"
-#~ "&Delete it"
-#~ msgstr ""
-#~ "ffnen nur zum &Lesen\n"
-#~ "Trotzdem &editieren\n"
-#~ "&Wiederherstellen\n"
-#~ "&Abbrechen\n"
-#~ "Ent&fernen"
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Quit\n"
+"&Abort"
+msgstr ""
+"ffnen nur zum &Lesen\n"
+"Trotzdem &editieren\n"
+"&Wiederherstellen\n"
+"&Beenden\n"
+"&Abbrechen"
+
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Delete it\n"
+"&Quit\n"
+"&Abort"
+msgstr ""
+"ffnen nur zum &Lesen\n"
+"Trotzdem &editieren\n"
+"&Wiederherstellen\n"
+"&Lschen\n"
+"&Beenden\n"
+"&Abbrechen"
 
 msgid "E326: Too many swap files found"
 msgstr "E326: Zu viele Auslagerungs-Dateien gefunden"
@@ -3236,15 +3531,15 @@ msgstr "E327: Teil des Menpunkt-Pfades muss zum Untermen fhren"
 msgid "E328: Menu only exists in another mode"
 msgstr "E328: Men existiert nur in anderen Modus"
 
-msgid "E329: No menu of that name"
-msgstr "E329: Kein Men mit diesem Namen"
+#, c-format
+msgid "E329: No menu \"%s\""
+msgstr "E329: Kein Men \"%s\""
 
 msgid "E330: Menu path must not lead to a sub-menu"
 msgstr "E330: Men-Pfad darf nicht zum Untermen fhren"
 
 msgid "E331: Must not add menu items directly to menu bar"
-msgstr ""
-"E331: Men-Punkt knnen nicht direkt zum Men-Balken hinzugefgt werden"
+msgstr "E331: Men-Punkt knnen nicht direkt zum Men-Balken hinzugefgt werden"
 
 msgid "E332: Separator cannot be part of a menu path"
 msgstr "E332: Trenner kann nicht Teil des Men-Pfades sein"
@@ -3286,29 +3581,28 @@ msgstr "Fehler beim Ausfhren von \"%s\":"
 msgid "line %4ld:"
 msgstr "Zeile %4ld:"
 
-msgid "[string too long]"
-msgstr "[Zeichenkette zu lang]"
+#, c-format
+msgid "E354: Invalid register name: '%s'"
+msgstr "E354: Ungltiger Register Name: '%s'"
 
 msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
-msgstr "bersetzt von Johannes Zellner <johannes@zellner.org>"
+msgstr "bersetzt von Johannes Zellner <johannes@zellner.org> und Georg Dahn <gorgyd@yahoo.co.uk>"
 
 msgid "Interrupt: "
 msgstr "Unterbrechung: "
 
-msgid "Hit ENTER to continue"
-msgstr "weiter mit der EINGABETASTE"
-
 msgid "Hit ENTER or type command to continue"
 msgstr "Drcken Sie die EINGABETASTE oder geben Sie einen Befehl ein"
 
+#, c-format
+msgid "%s line %ld"
+msgstr "%s Zeile %ld"
+
 msgid "-- More --"
 msgstr "-- Mehr --"
 
-msgid " (RET/BS: line, SPACE/b: page, d/u: half page, q: quit)"
-msgstr " (RET/BS: Zeile, LEERZEICHEN/b: Seite, d/u: Halbe Seite, q: Ende)"
-
-msgid " (RET: line, SPACE: page, d: half page, q: quit)"
-msgstr " (RET: Zeile, LEERZEICHEN: Seite, d: Halbe Seite, q: Ende)"
+msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit "
+msgstr " LEERZEICHEN/d/j: Seite/halbe Seite/Zeile vorwrts, b/u/k: rckwrts, q: Ende"
 
 msgid "Question"
 msgstr "Frage"
@@ -3341,11 +3635,23 @@ msgstr "Datei ffnen Dialog"
 
 #. TODO: non-GUI file selector here
 msgid "E338: Sorry, no file browser in console mode"
-msgstr "E338: kein Datei-Dialog im Konsole-Modus"
+msgstr "E338: Kein Datei-Dialog im Konsole-Modus"
+
+msgid "E766: Insufficient arguments for printf()"
+msgstr "E766: Zu wenige Argumente fr printf()"
+
+msgid "E767: Too many arguments to printf()"
+msgstr "E767: Zu viele Argumente fr printf()"
 
 msgid "W10: Warning: Changing a readonly file"
 msgstr "W10: Warnung: ndern einer schreibgeschtzten Datei"
 
+msgid "Type number or click with mouse (<Enter> cancels): "
+msgstr "Bitte Nummer eingeben oder mit der Maus auswhlen (abbrechen mit <Enter>)"
+
+msgid "Choice number (<Enter> cancels): "
+msgstr "Gewnschte Nummer (abbrechen mit <Enter>)"
+
 msgid "1 more line"
 msgstr "eine Zeile mehr"
 
@@ -3363,6 +3669,9 @@ msgstr "%ld Zeilen weniger"
 msgid " (Interrupted)"
 msgstr " (Unterbrochen)"
 
+msgid "Beep!"
+msgstr "Beep!"
+
 msgid "Vim: preserving files...\n"
 msgstr "Vim: Sichern der Dateien...\n"
 
@@ -3379,8 +3688,7 @@ msgid ""
 "[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
 msgstr ""
 "\n"
-"[Bytes] gesamt alloziert-frei %lu-%lu, in Verwendung %lu, maximale "
-"Verwendung %lu\n"
+"[Bytes] gesamt alloziert-frei %lu-%lu, in Verwendung %lu, maximale Verwendung %lu\n"
 
 #, c-format
 msgid ""
@@ -3405,25 +3713,20 @@ msgstr "E342: Kein Speicherplatz mehr vo
 msgid "Calling shell to execute: \"%s\""
 msgstr "Rufe Shell auf, um \"%s\" auszufhren"
 
-#, fuzzy
-#~ msgid "E545: Missing colon"
-#~ msgstr "fehlendes Komma"
-
-#, fuzzy
-#~ msgid "E546: Illegal mode"
-#~ msgstr "Unzulssiger Modus"
-
-#, fuzzy
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "Unzulssige Maus-Form"
-
-#, fuzzy
-#~ msgid "E548: digit expected"
-#~ msgstr "Ziffer erwartet"
-
-#, fuzzy
-#~ msgid "E549: Illegal percentage"
-#~ msgstr "Unzulssige Prozentangabe"
+msgid "E545: Missing colon"
+msgstr "E545: Fehlender Doppelpunkt"
+
+msgid "E546: Illegal mode"
+msgstr "E546: Unzulssiger Modus"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Unzulssige Mauszeiger"
+
+msgid "E548: digit expected"
+msgstr "E548: Ziffer erwartet"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: Unzulssige Prozentangabe"
 
 msgid "Enter encryption key: "
 msgstr "Geben Sie bitte den Schlssel ein: "
@@ -3439,8 +3742,8 @@ msgid ""
 "E343: Invalid path: '**[number]' must be at the end of the path or be "
 "followed by '%s'."
 msgstr ""
-"E343: Ungltiger Pfad: '**[Nummer]' muss am Ende des Pfads sein, oder von '%"
-"s' gefolgt werden. Siehe :help path."
+"E343: Ungltiger Pfad: '**[Nummer]' muss am Ende des Pfads sein, oder von "
+"'%s' gefolgt werden. Siehe \":help path\"."
 
 #, c-format
 msgid "E344: Can't find directory \"%s\" in cdpath"
@@ -3458,35 +3761,32 @@ msgstr "E346: Kein weiteres Verzeichnis 
 msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: Keine weitere Datei \"%s\" im Pfad gefunden"
 
-#, fuzzy
-#~ msgid "E550: Missing colon"
-#~ msgstr "fehlendes Komma"
-
-#, fuzzy
-#~ msgid "E551: Illegal component"
-#~ msgstr "Unzulssige Komponente"
-
-#, fuzzy
-#~ msgid "E552: digit expected"
-#~ msgstr "Ziffer erwartet"
-
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
-
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
-
-#, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E658: NetBeans connection lost for buffer %ld"
-#~ msgstr "E86: Kann nicht zum Puffer %ld wechseln"
+msgid "Cannot connect to Netbeans #2"
+msgstr "Keine Verbindung zu NetBeans #2"
+
+msgid "Cannot connect to Netbeans"
+msgstr "Keine Verbindung zu NetBeans"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: Falscher Zugriffsmodus auf die NetBeans Zugriff-Informationsdatei: \"%s\""
+
+msgid "read from Netbeans socket"
+msgstr "gelesen vom NetBeans Socket"
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Verbindung zu NetBeans fr Puffer %ld verloren"
+
+msgid "E505: "
+msgstr "E505: "
+
+msgid "E774: 'operatorfunc' is empty"
+msgstr "E775: 'operatorfunc' is empty"
+
+msgid "E775: Eval feature not available"
+msgstr "E775: Evaluierungsfunktion nicht verfgbar"
 
 msgid "Warning: terminal cannot highlight"
 msgstr "Achtung: Terminal untersttzt keine Hervorhebung"
@@ -3499,23 +3799,19 @@ msgid "E349: No identifier under cursor"
 msgstr "E349: Kein Merkmal unter dem Cursor"
 
 msgid "E352: Cannot erase folds with current 'foldmethod'"
-msgstr ""
-"E352: Faltung kann mit der eingestellten Methode 'foldmethod' nicht gelscht "
-"werden"
-
-#, fuzzy
-#~ msgid "E664: changelist is empty"
-#~ msgstr "E91: Die Option 'shell' ist leer"
-
-#~ msgid "E662: At start of changelist"
-#~ msgstr ""
-
-#~ msgid "E663: At end of changelist"
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "Type  :quit<Enter>  to exit Vim"
-#~ msgstr "tippe  :q<Enter>                zum Beenden               "
+msgstr "E352: Faltung kann mit der eingestellten Faltungsmethode nicht gelscht werden"
+
+msgid "E664: changelist is empty"
+msgstr "E664: Liste der nderungen ist leer"
+
+msgid "E662: At start of changelist"
+msgstr "E662: Am Anfang der Liste der nderungen"
+
+msgid "E663: At end of changelist"
+msgstr "E663: Am Ende der Liste der nderungen"
+
+msgid "Type  :quit<Enter>  to exit Vim"
+msgstr "Bitte  :quit<Enter>  eingeben um Vim zu verlassen"
 
 #, c-format
 msgid "1 line %sed 1 time"
@@ -3523,7 +3819,7 @@ msgstr "eine Zeile ein Mal %s"
 
 #, c-format
 msgid "1 line %sed %d times"
-msgstr "1 Zeile %s %d Mal"
+msgstr "eine Zeile %s %d Mal"
 
 #, c-format
 msgid "%ld lines %sed 1 time"
@@ -3538,18 +3834,21 @@ msgid "%ld lines to indent... "
 msgstr "%ld Zeilen zum Einrcken... "
 
 msgid "1 line indented "
-msgstr "1 Zeile eingerckt... "
+msgstr "eine Zeile eingerckt... "
 
 #, c-format
 msgid "%ld lines indented "
 msgstr "%ld Zeilen eingerckt... "
 
+msgid "E748: No previously used register"
+msgstr "E748: Kein bereits verwendetes Register"
+
 #. must display the prompt
 msgid "cannot yank; delete anyway"
 msgstr "kann nicht kopieren; lsche trotzdem"
 
 msgid "1 line changed"
-msgstr "1 Zeile ~"
+msgstr "eine Zeile gendert"
 
 #, c-format
 msgid "%ld lines changed"
@@ -3559,8 +3858,15 @@ msgstr "%ld Zeilen gendert"
 msgid "freeing %ld lines"
 msgstr "gebe %ld Zeilen frei"
 
+msgid "block of 1 line yanked"
+msgstr "Block von einer Zeile kopiert"
+
 msgid "1 line yanked"
-msgstr "Eine Zeile kopiert"
+msgstr "eine Zeile kopiert"
+
+#, c-format
+msgid "block of %ld lines yanked"
+msgstr "Block von %ld Zeilen kopiert"
 
 #, c-format
 msgid "%ld lines yanked"
@@ -3589,12 +3895,8 @@ msgstr ""
 "# Register:\n"
 
 #, fuzzy, c-format
-#~ msgid "E574: Unknown register type %d"
-#~ msgstr "Unbekannter Register Typ %d"
-
-#, c-format
-msgid "E354: Invalid register name: '%s'"
-msgstr "E354: Unzulssiger Register Name: '%s'"
+msgid "E574: Unknown register type %d"
+msgstr "E574: Unbekannter Register Typ %d"
 
 #, c-format
 msgid "%ld Cols; "
@@ -3602,161 +3904,142 @@ msgstr "%ld Spalten; "
 
 #, c-format
 msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-msgstr "%s%ld von %ld Zeilen; %ld von %ld Worten; %ld von %ld Bytes"
+msgstr "%s%ld von %ld Zeilen; %ld von %ld Wrtern; %ld von %ld Bytes"
+
+#, c-format
+msgid ""
+"Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
+"Bytes"
+msgstr ""
+"%s%ld von %ld Zeilen; %ld von %ld Wrtern; %ld von %ld Zeichen; %ld von %ld "
+"Bytes"
 
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-msgstr "Spal %s von %s; Zeile %ld von %ld; Wort %ld von %ld; Byte %ld von %ld"
+msgstr "Sp %s von %s; Zeile %ld von %ld; Wort %ld von %ld; Byte %ld von %ld"
+
+#, c-format
+msgid ""
+"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
+"%ld"
+msgstr ""
+"Sp %s von %s; Zeile %ld von %ld; Wort %ld von %ld; Zeichen %ld von %ld; Byte %ld von "
+"%ld"
 
 #, c-format
 msgid "(+%ld for BOM)"
 msgstr "(+%ld fr BOM)"
 
-#~ msgid "%<%f%h%m%=Page %N"
-#~ msgstr ""
+msgid "%<%f%h%m%=Page %N"
+msgstr "%<%f%h%m%=Seite %N"
 
 msgid "Thanks for flying Vim"
 msgstr "Danke fr die Benutzung von Vim"
 
-#, fuzzy
-#~ msgid "E518: Unknown option"
-#~ msgstr "Unbekannte Option"
-
-#, fuzzy
-#~ msgid "E519: Option not supported"
-#~ msgstr "Option nicht untersttzt"
-
-#, fuzzy
-#~ msgid "E520: Not allowed in a modeline"
-#~ msgstr "Nicht erlaubt in einer 'modeline'"
-
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tZuletzt gesetzt von "
-
-#, fuzzy
-#~ msgid "E521: Number required after ="
-#~ msgstr "Brauche Zahl nach ="
-
-#, fuzzy
-#~ msgid "E522: Not found in termcap"
-#~ msgstr "Nicht gefunden in termcap"
-
-#, fuzzy, c-format
-#~ msgid "E539: Illegal character <%s>"
-#~ msgstr "Unzulssiges Zeichen <%s>"
-
-#, fuzzy
-#~ msgid "E529: Cannot set 'term' to empty string"
-#~ msgstr "'term' kann keine leere Zeichenkette sein"
-
-#, fuzzy
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "'term' kann im GUI nicht verndert werden"
-
-#, fuzzy
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "Verwende \":gui\", um die GUI-Version zu starten"
-
-#, fuzzy
-#~ msgid "E589: 'backupext' and 'patchmode' are equal"
-#~ msgstr "'backupext' und 'patchmode' sind gleich"
-
-#, fuzzy
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "'term' kann im GUI nicht verndert werden"
-
-#, fuzzy
-#~ msgid "E524: Missing colon"
-#~ msgstr "fehlendes Komma"
-
-#, fuzzy
-#~ msgid "E525: Zero length string"
-#~ msgstr "Zeichenkette der Lnge Null"
-
-#, fuzzy, c-format
-#~ msgid "E526: Missing number after <%s>"
-#~ msgstr "fehlende Zahl nach <%s>"
-
-#, fuzzy
-#~ msgid "E527: Missing comma"
-#~ msgstr "Komma fehlt"
-
-#, fuzzy
-#~ msgid "E528: Must specify a ' value"
-#~ msgstr "ein '-Wert muss angegeben werden"
-
-#, fuzzy
-#~ msgid "E595: contains unprintable or wide character"
-#~ msgstr "enthlt nicht-druckbare Zeichen"
-
-#, fuzzy
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "Ungltiger Schriftsatz"
-
-# what's the difference ?
-#, fuzzy
-#~ msgid "E597: can't select fontset"
-#~ msgstr "\"fontset\" kann nicht eingestellt werden"
-
-#, fuzzy
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "Ungltiger Fontset"
-
-#, fuzzy
-#~ msgid "E533: can't select wide font"
-#~ msgstr "Weiter Schriftart kann nicht engestellt werden"
-
-#, fuzzy
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "Ungltiger weiter Schriftsatz"
-
-#, fuzzy, c-format
-#~ msgid "E535: Illegal character after <%c>"
-#~ msgstr "Unzulssiges Zeichen nach <%c>"
-
-#, fuzzy
-#~ msgid "E536: comma required"
-#~ msgstr "Komma bentigt"
-
-#, fuzzy, c-format
-#~ msgid "E537: 'commentstring' must be empty or contain %s"
-#~ msgstr "'commentstring' mu leer sein, oder %s enthalten"
-
-#, fuzzy
-#~ msgid "E538: No mouse support"
-#~ msgstr "Keine Maus-Untersttzung"
-
-# XXX
-#, fuzzy
-#~ msgid "E540: Unclosed expression sequence"
-#~ msgstr "Nicht geschlossene Ausdrucks Folge"
-
-#, fuzzy
-#~ msgid "E541: too many items"
-#~ msgstr "zu viele Punkte"
-
-#, fuzzy
-#~ msgid "E542: unbalanced groups"
-#~ msgstr "nicht ausgewogene Gruppen"
-
-#, fuzzy
-#~ msgid "E590: A preview window already exists"
-#~ msgstr "Ein Fenster zur Voransicht existiert bereits"
-
-#~ msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E593: Need at least %d lines"
-#~ msgstr "mindestens %d Zeilen werden bentigt"
-
-#, fuzzy, c-format
-#~ msgid "E594: Need at least %d columns"
-#~ msgstr "mindestens %d Spalten werden bentigt"
+msgid "E518: Unknown option"
+msgstr "E518: Unbekannte Option"
+
+msgid "E519: Option not supported"
+msgstr "E519: Option nicht untersttzt"
+
+msgid "E520: Not allowed in a modeline"
+msgstr "E520: Nicht erlaubt in einer Modeline"
+
+msgid "E521: Number required after ="
+msgstr "E521: Zahl bentigt nach ="
+
+msgid "E522: Not found in termcap"
+msgstr "E522: Nicht gefunden in 'termcap'"
+
+#, c-format
+msgid "E539: Illegal character <%s>"
+msgstr "E539: Unzulssiges Zeichen <%s>"
+
+msgid "E529: Cannot set 'term' to empty string"
+msgstr "E529: 'term' darf keine leere Zeichenkette sein"
+
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: Kann Terminal in der GUI nicht verndern"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Verwende \":gui\", um die GUI-Version zu starten"
+
+msgid "E589: 'backupext' and 'patchmode' are equal"
+msgstr "E589: 'backupext' und 'patchmode' sind gleich"
+
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Kann in der GTK+ 2 GUI nicht verndert werden"
+
+msgid "E524: Missing colon"
+msgstr "E524: Fehlender Doppelpunkt"
+
+msgid "E525: Zero length string"
+msgstr "E525: Zeichenkette der Lnge Null"
+
+#, c-format
+msgid "E526: Missing number after <%s>"
+msgstr "E526: Fehlende Zahl nach <%s>"
+
+msgid "E527: Missing comma"
+msgstr "E527: Fehlendes Komma"
+
+msgid "E528: Must specify a ' value"
+msgstr "E528: Ein ' Wert muss angegeben werden"
+
+msgid "E595: contains unprintable or wide character"
+msgstr "E595: Enthlt nicht-druckbare oder Multi-Byte Zeichen"
+
+msgid "E596: Invalid font(s)"
+msgstr "E596: Ungltige Schriftart(en)"
+
+msgid "E597: can't select fontset"
+msgstr "E597: Kann \"Fontset\" nicht auswhlen"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: Ungltiges \"Fontset\""
+
+msgid "E533: can't select wide font"
+msgstr "E533: Kann Breitschrift nicht auswhlen"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: Ungltige Breitschrift"
+
+#, c-format
+msgid "E535: Illegal character after <%c>"
+msgstr "E535: Ungltiges Zeichen nach <%c>"
+
+msgid "E536: comma required"
+msgstr "E536: Komma bentigt"
+
+#, c-format
+msgid "E537: 'commentstring' must be empty or contain %s"
+msgstr "E537: 'commentstring' muss leer sein oder %s enthalten"
+
+msgid "E538: No mouse support"
+msgstr "E538: Keine Maus-Untersttzung"
+
+msgid "E540: Unclosed expression sequence"
+msgstr "E540: Nicht-geschlossene Ausdrucksfolge"
+
+msgid "E541: too many items"
+msgstr "E541: Zu viele Elemente"
+
+msgid "E542: unbalanced groups"
+msgstr "E542: Unausgewogene Gruppen"
+
+msgid "E590: A preview window already exists"
+msgstr "E590: Ein Voransichtsfenster existiert bereits"
+
+msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
+msgstr "W17: Arabisch bentigt UTF-8, bitte ':set encoding=utf-8' ausfhren"
+
+#, c-format
+msgid "E593: Need at least %d lines"
+msgstr "E593: Mindestens %d Zeilen werden bentigt"
+
+#, c-format
+msgid "E594: Need at least %d columns"
+msgstr "E594: Mindestens %d Spalten werden bentigt"
 
 #, c-format
 msgid "E355: Unknown option: %s"
@@ -3825,14 +4108,14 @@ msgid "Vim exiting with %d\n"
 msgstr "Vim steigt aus mit %d\n"
 
 msgid "cannot change console mode ?!\n"
-msgstr "kann Konsolen Modus nicht wechseln ?!\n"
+msgstr "kann Konsolenmodus nicht wechseln ?!\n"
 
 msgid "mch_get_shellsize: not a console??\n"
-msgstr "mch_get_winsize: ist keine Konsole??\n"
+msgstr "mch_get_winsize: keine Konsole??\n"
 
 #. if Vim opened a window: Executing a shell may cause crashes
 msgid "E360: Cannot execute shell with -f option"
-msgstr "E360: Kann Shell nicht mit der -f Option aus fhren"
+msgstr "E360: Kann Shell nicht mit der -f Option ausfhren"
 
 msgid "Cannot execute "
 msgstr "Kann nicht ausfhren "
@@ -3852,6 +4135,9 @@ msgstr "I/O FEHLER"
 msgid "...(truncated)"
 msgstr "...(abgeschnitten)"
 
+msgid "Message"
+msgstr "Nachricht"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' betrgt nicht 80, kann externe Befehle nicht ausfhren"
 
@@ -3862,17 +4148,14 @@ msgstr "E237: Drucker-Auswahl fehlgeschl
 msgid "to %s on %s"
 msgstr "nach %s auf %s"
 
-#, fuzzy, c-format
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E113: Unbekannte Option: %s"
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Unbekannte Druckerschriftart: %s"
 
 #, c-format
 msgid "E238: Print error: %s"
 msgstr "E238: Fehler beim Drucken: %s"
 
-msgid "Unknown"
-msgstr "Unbekannt"
-
 #, c-format
 msgid "Printing '%s'"
 msgstr "Drucke '%s'"
@@ -3957,39 +4240,38 @@ msgstr ""
 "\n"
 "Befehl beendet\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "Verbindungen anzeigen"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP verlor ICE Verbindung"
+
+#, c-format
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
 msgstr "ffnen des X-Displays schlug fehl"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "keine Verbindungen zu cscope"
-
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
-
-#, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr ""
+
+msgid "XSMP opening connection"
+msgstr "XSMP ffnet Verbindung"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Verbindungsberwachung fehlgeschlagen"
+
+#, c-format
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection fehlgeschlagen: %s"
 
 msgid "At line"
 msgstr "In Zeile"
 
-#~ msgid "Could not allocate memory for command line."
-#~ msgstr ""
+msgid "Could not load vim32.dll!"
+msgstr "Konnte vim32.dll nicht laden!"
 
 msgid "VIM Error"
 msgstr "VIM Fehler"
 
-msgid "Could not load vim32.dll!"
-msgstr "Konnte vim32.dll nicht laden!"
-
 msgid "Could not fix up function pointers to the DLL!"
 msgstr "Konnte Funktions-Zeiger in der DLL nicht korrigieren!"
 
@@ -4005,7 +4287,7 @@ msgid "close"
 msgstr "schliee"
 
 msgid "logoff"
-msgstr "aus-loggen"
+msgstr "ausloggen"
 
 msgid "shutdown"
 msgstr "beenden"
@@ -4034,7 +4316,7 @@ msgid "E373: Unexpected %%%c in format s
 msgstr "E373: Unerwartetes %%%c im Format"
 
 msgid "E374: Missing ] in format string"
-msgstr "E374: fehlendes ] im Format"
+msgstr "E374: Fehlende ] im Format"
 
 #, c-format
 msgid "E375: Unsupported %%%c in format string"
@@ -4054,9 +4336,8 @@ msgstr "E378: 'errorformat' enthlt kein Muster"
 msgid "E379: Missing or empty directory name"
 msgstr "E379: Fehlender oder leerer Verzeichnisname"
 
-#, fuzzy
-#~ msgid "E553: No more items"
-#~ msgstr "Keine weiteren Punkte"
+msgid "E553: No more items"
+msgstr "E553: Keine weiteren Eintrge"
 
 #, c-format
 msgid "(%d of %d)%s%s: "
@@ -4078,55 +4359,55 @@ msgstr "Fehlerliste %d aus %d; %d Fehler
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: Kann nicht schreiben, 'buftype'-Option ist gesetzt"
 
-#, fuzzy, c-format
-#~ msgid "E369: invalid item in %s%%[]"
-#~ msgstr "E239: Ungltiger Text fr ein Zeichen: %s"
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: Dateiname fehlt oder ungltiges Muster"
+
+#, c-format
+msgid "Cannot open file \"%s\""
+msgstr "Kann Datei \"%s\" nicht ffnen"
+
+msgid "E681: Buffer is not loaded"
+msgstr "E681: Buffer ist nicht geladen"
+
+msgid "E777: String or List expected"
+msgstr "E777: Zeichenkette oder Liste erwartet"
+
+#, c-format
+msgid "E369: invalid item in %s%%[]"
+msgstr "E369: Ungltiges Element in %s%%[]"
 
 msgid "E339: Pattern too long"
 msgstr "E339: Muster zu lang"
 
-#, fuzzy
-#~ msgid "E50: Too many \\z("
-#~ msgstr "E76: zu viele ["
-
-#, fuzzy, c-format
-#~ msgid "E51: Too many %s("
-#~ msgstr "E76: zu viele ["
-
-#~ msgid "E52: Unmatched \\z("
-#~ msgstr ""
-
-#, c-format
-#~ msgid "E53: Unmatched %s%%("
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E54: Unmatched %s("
-#~ msgstr "Kein Treffer fr: %s"
-
-#, fuzzy, c-format
-#~ msgid "E55: Unmatched %s)"
-#~ msgstr "Kein Treffer fr: %s"
-
-#, c-format
-#~ msgid "E56: %s* operand could be empty"
-#~ msgstr ""
-
-#, c-format
-#~ msgid "E57: %s+ operand could be empty"
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E59: invalid character after %s@"
-#~ msgstr "E215: Unzulssiges Zeichen nach *: %s"
-
-#, c-format
-#~ msgid "E58: %s{ operand could be empty"
-#~ msgstr ""
-
-#, c-format
-#~ msgid "E60: Too many complex %s{...}s"
-#~ msgstr ""
+msgid "E50: Too many \\z("
+msgstr "E50: Zu viele \\z("
+
+#, c-format
+msgid "E51: Too many %s("
+msgstr "E51: Zu viele %s("
+
+msgid "E52: Unmatched \\z("
+msgstr "E52: \\z( ohne bereinstimmung"
+
+#, c-format
+msgid "E53: Unmatched %s%%("
+msgstr "E53: %s%%( ohne bereinstimmung"
+
+#, c-format
+msgid "E54: Unmatched %s("
+msgstr "E54: %s( ohne bereinstimmung"
+
+#, c-format
+msgid "E55: Unmatched %s)"
+msgstr "E55: %s) ohne bereinstimmung"
+
+#, c-format
+msgid "E59: invalid character after %s@"
+msgstr "E59: Ungltiges Zeichen nach %s@"
+
+#, c-format
+msgid "E60: Too many complex %s{...}s"
+msgstr "E60: Zu viele komplexe %s{...}s"
 
 #, c-format
 msgid "E61: Nested %s*"
@@ -4136,58 +4417,51 @@ msgstr "E61: Verschachteltes %s*"
 msgid "E62: Nested %s%c"
 msgstr "E62: Verschachteltes %s%c"
 
-#, fuzzy
-#~ msgid "E63: invalid use of \\_"
-#~ msgstr "E176: Falsche Anzahl von Argumenten"
+msgid "E63: invalid use of \\_"
+msgstr "E63: Ungltige Verwendung von \\_"
 
 #, c-format
 msgid "E64: %s%c follows nothing"
 msgstr "E64: %s%c nach Nichts"
 
-#, fuzzy
-#~ msgid "E65: Illegal back reference"
-#~ msgstr "E125: Unzulssiges Argument: %s"
-
-#, fuzzy
-#~ msgid "E66: \\z( not allowed here"
-#~ msgstr "E407: %s ist hier nicht erlaubt"
-
-#, fuzzy
-#~ msgid "E67: \\z1 et al. not allowed here"
-#~ msgstr "E407: %s ist hier nicht erlaubt"
-
-#, fuzzy
-#~ msgid "E68: Invalid character after \\z"
-#~ msgstr "E215: Unzulssiges Zeichen nach *: %s"
-
-#, fuzzy, c-format
-#~ msgid "E69: Missing ] after %s%%["
-#~ msgstr "E109: fehlender ':' nach '?'"
-
-#, c-format
-#~ msgid "E70: Empty %s%%[]"
-#~ msgstr ""
-
-#, fuzzy, c-format
-#~ msgid "E71: Invalid character after %s%%"
-#~ msgstr "E215: Unzulssiges Zeichen nach *: %s"
-
-#, fuzzy, c-format
-#~ msgid "E554: Syntax error in %s{...}"
-#~ msgstr "Syntax Fehler in %s{...}"
-
-msgid "E361: Crash intercepted; regexp too complex?"
-msgstr "E361: Absturz verhindert; Ist der regulre Ausdruck zu kompliziert?"
-
-msgid "E363: pattern caused out-of-stack error"
-msgstr "E363: Muster erzeugte einen Stapel-berlauf-Fehler"
+msgid "E65: Illegal back reference"
+msgstr "E65: Ungltige Rckreferenz"
+
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z( ist hier nicht erlaubt"
+
+msgid "E67: \\z1 et al. not allowed here"
+msgstr "E67: \\z1 usw. ist hier nicht erlaubt"
+
+msgid "E68: Invalid character after \\z"
+msgstr "E68: Ungltiges Zeichen nach \\z"
+
+#, c-format
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: Fehlende ] nach %s%%["
+
+#, c-format
+msgid "E70: Empty %s%%[]"
+msgstr "E70: %s%%[] ist leer"
+
+#, c-format
+msgid "E678: Invalid character after %s%%[dxouU]"
+msgstr "E678: Ungltiges Zeichen nach %s%%[dxouU]"
+
+#, c-format
+msgid "E71: Invalid character after %s%%"
+msgstr "E71: Ungltiges Zeichen nach %s%%"
+
+#, c-format
+msgid "E769: Missing ] after %s["
+msgstr "E769: Fehlende ] nach %s["
+
+#, c-format
+msgid "E554: Syntax error in %s{...}"
+msgstr "E554: Syntaxfehler in %s{...}"
 
 msgid "External submatches:\n"
-msgstr "externe 'submatches':\n"
-
-#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld Zeilen gefaltet "
+msgstr "Externe 'submatches':\n"
 
 msgid " VREPLACE"
 msgstr " V-ERSETZEN"
@@ -4213,48 +4487,36 @@ msgstr " (v-ersetzen)"
 msgid " Hebrew"
 msgstr " Hebrisch"
 
-#~ msgid " Arabic"
-#~ msgstr ""
+msgid " Arabic"
+msgstr " Arabisch"
 
 msgid " (lang)"
 msgstr " (Sprache)"
 
-# einkleben ist echt Scheie, aber einfgen
-# gibts schon ...
 msgid " (paste)"
-msgstr " (einkleben)"
+msgstr " (paste)"
 
 msgid " VISUAL"
 msgstr " VISUELL"
 
-#, fuzzy
-#~ msgid " VISUAL LINE"
-#~ msgstr " VISUELL"
-
-#, fuzzy
-#~ msgid " VISUAL BLOCK"
-#~ msgstr " VISUELL"
+msgid " VISUAL LINE"
+msgstr " VISUELL ZEILE"
+
+msgid " VISUAL BLOCK"
+msgstr " VISUELL BLOCK"
 
 msgid " SELECT"
 msgstr " AUSWAHL"
 
-#, fuzzy
-#~ msgid " SELECT LINE"
-#~ msgstr " AUSWAHL"
-
-#, fuzzy
-#~ msgid " SELECT BLOCK"
-#~ msgstr " AUSWAHL"
+msgid " SELECT LINE"
+msgstr " AUSWAHL ZEILE"
+
+msgid " SELECT BLOCK"
+msgstr " AUSWAHL BLOCK"
 
 msgid "recording"
 msgstr "aufzeichnen"
 
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "Suche erreichte den ANFANG und wurde am ENDE fortgesetzt"
-
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "Suche erreichte das ENDE und wurde am ANFANG fortgesetzt"
-
 #, c-format
 msgid "E383: Invalid search string: %s"
 msgstr "E383: Unzulssiges Suchmuster: %s"
@@ -4293,6 +4555,10 @@ msgstr "  NICHT GEFUNDEN"
 msgid "Scanning included file: %s"
 msgstr "Scanne eingefgte Datei: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "Suche eingefgte Datei %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: Treffer ist auf der momentanen Zeile"
 
@@ -4308,16 +4574,363 @@ msgstr "E388: Definition konnte nicht ge
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Muster konnte nicht gefunden werden"
 
+msgid "E759: Format error in spell file"
+msgstr "E759: Format-Fehler im Rechtschreibwrterbuch"
+
+msgid "E758: Truncated spell file"
+msgstr "E758 Abgeschnittenes Rechtschreibwrterbuch"
+
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "Angehngter Text in %s Zeile %d: %s"
+
+#, c-format
+msgid "Affix name too long in %s line %d: %s"
+msgstr "Affix Name zu lang in %s Zeile %d: %s"
+
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: Format-Fehler in Affix-Datei FOL, LOW oder UPP"
+
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: Zeichen in FOL, LOW oder UPP auerhalb des zulssigen Bereichs"
+
+msgid "Compressing word tree..."
+msgstr "Komprimiere Wrter-Baum..."
+
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: Rechtschreibprfung ist nicht aktiviert"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "Achtung: Kann Wrter-Liste \"%s.%s.spl\" oder \"%s.ascii.spl\" nicht finden"
+
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "Lese Rechtschreibwrterbuch \"%s\" ein"
+
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Das sieht nicht nach einem Wrterbuch fr die Rechtschreibprfung aus"
+
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: Altes Wrterbuch fr die Rechtschreibprfung, bentigt Aktualisierung"
+
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Wrterbuch fr die Rechtschreibprfung ist fr eine neuere Version von Vim"
+
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: Nicht untersttzter Abschnit im Wrterbuch fr die Rechtschreibprfung"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Achtung: Region %s nicht untersttzt"
+
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "Lese Affix-Datei %s ..."
+
+#, c-format
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "Konversionsfehler beim Wort in %s Zeile %d: %s"
+
+#, c-format
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "Konversion in %s nicht untersttzt: von %s nach %s"
+
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "Konversion in %s nicht untersttzt"
+
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "Ungltiger Wert von FLAG in %s Zeile %d: %s"
+
+#, c-format
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "FLAG nach dem Gebrauch von Flags in %s Zeile %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "Falscher COMPOUNDWORDMAX Wert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "Falscher COMPOUNDMIN Wert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "Falscher COMPOUNDSYLMAX Wert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "Falscher CHECKCOMPOUNDPATTERN Wert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "Unterschiedliches verknpfendes Flag im fortgesetzten Affix Block in %s Zeile %d: %s"
+
+#, c-format
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "Doppeltes Affix in %s Zeile %d: %s"
+
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"Affix wird auch fr BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST verwendet in %s "
+"Zeile %d: %s"
+
+#, c-format
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "Y oder N erwartet in %s Zeile %d: %s"
+
+#, c-format
+msgid "Broken condition in %s line %d: %s"
+msgstr "Bedingung verletzt in %s Zeile %d: %s"
+
+#, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "Affix Flags ignoriert, wenn PFXPOSTPONE verwendet wird in %s Zeile %d: %s"
+
+#, c-format
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "Erwartetes REP(SAL) gezhlt in %s Zeile %d"
+
+#, c-format
+msgid "Expected MAP count in %s line %d"
+msgstr "Erwartetes MAP gezhlt in %s Zeile %d"
+
+#, c-format
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "Doppeltes Zeichen in MAP in %s Zeile %d"
+
+#, c-format
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "Nicht erkanntes oder doppeltes Element in %s Zeile %d: %s"
+
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "Fehlende FOL/LOW/UPP Zeile in %s"
+
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "COMPOUNDSYLMAX ohne SYLLABLE verwendet"
+
+msgid "Too many postponed prefixes"
+msgstr "Zu viele zurck gestellte Prfixe"
+
+msgid "Too many compound flags"
+msgstr "Zu viele zusammengesetzte Flags"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Zu viele zurck gestellte Prfixe und/oder zusammengesetzte Flags"
+
+#, c-format
+msgid "Missing SOFO%s line in %s"
+msgstr "Fehlende SOFO%s Zeile in %s"
+
+#, c-format
+msgid "Both SAL and SOFO lines in %s"
+msgstr "Sowohl SAL als auch SOFO Zeilen in %s"
+
+#, c-format
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "Flag ist keine Zahl in %s Zeile %d: %s"
+
+#, c-format
+msgid "Illegal flag in %s line %d: %s"
+msgstr "Unerlaubtes Flag in %s Zeile %d: %s"
+
+#, c-format
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s Wert unterscheidet sich von dem, was in einer anderen .aff Datei verwendet wird"
+
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "Lese Wrterbuch-Datei %s ..."
+
+#, c-format
+msgid "E760: No word count in %s"
+msgstr "E760: Keine Wrter gezhlt in %s"
+
+#, c-format
+msgid "line %6d, word %6d - %s"
+msgstr "Zeile %6d, Wort %6d - %s"
+
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "Doppeltes Wort in %s Zeile %d: %s"
+
+#, c-format
+msgid "First duplicate word in %s line %d: %s"
+msgstr "Erstes doppeltes Wort in %s Zeile %d: %s"
+
+#, c-format
+msgid "%d duplicate word(s) in %s"
+msgstr "%d doppelte(s) Wort(e) in %s"
+
+#, c-format
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "%d Wort(e) mit nicht-ASCII Zeichen ignoriert in %s"
+
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "Lese Wort-Datei %s ..."
+
+#, c-format
+msgid "Duplicate /encoding= line ignored in %s line %d: %s"
+msgstr "Doppelte /encoding= Zeile ignoriert in %s Zeile %d: %s"
+
+#, c-format
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "/encoding= Zeile nach Wort ignoriert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "Doppelte /regions= Zeile ignoriert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Too many regions in %s line %d: %s"
+msgstr "Zu viele Regionen in %s Zeile %d: %s"
+
+#, c-format
+msgid "/ line ignored in %s line %d: %s"
+msgstr "/ Zeile ignoriert in %s Zeile %d: %s"
+
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "Ungltige Regionsnummer in %s Zeile %d: %s"
+
+#, c-format
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "Nicht erkanntes Flag in %s Zeile %d: %s"
+
+#, c-format
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "%d Wrter mit nicht-ASCII Zeichen ignoriert"
+
+#, c-format
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "%d von %d Knoten komprimiert; %d (%d%%) brig"
+
+msgid "Reading back spell file..."
+msgstr "Lese Rechtschreibwrterbuch zurck..."
+
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
+msgid "Performing soundfolding..."
+msgstr "Fhre 'Soundfolding' durch..."
+
+#, c-format
+msgid "Number of words after soundfolding: %ld"
+msgstr "Anzahl der Wrter nach 'Soundfolding': %ld"
+
+#, c-format
+msgid "Total number of words: %d"
+msgstr "Gesamte Anzahl von Wrtern: %d"
+
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "Schreibe Datei %s fr Vorschlge ..."
+
+#, c-format
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "Geschtzter Speicher zur Laufzeit: %d Bytes"
+
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Ausgabedatei darf keinen Regionsnamen haben"
+
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: Maximal 8 Regionen untersttzt"
+
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: Ungltige Region in %s"
+
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "Achtung: Sowohl zusammengesetzte Wrter als auch NOBREAK angegeben"
+
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "Schreibe Rechtschreibwrterbuch %s ..."
+
+msgid "Done!"
+msgstr "Fertig!"
+
+#, c-format
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' hat nicht %ld Eintrge"
+
+#, c-format
+msgid "Word removed from %s"
+msgstr "Wort entfernt von %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Wort zu %s hinzugefgt"
+
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: 'Word Characters' unterscheiden sich zwischen Rechtschreibwrterbchern"
+
+msgid "Sorry, no suggestions"
+msgstr "Leider keine Vorschlge"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "Leider nur %ld Vorschlge"
+
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "ndere \"%.*s\" nach:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: Keine vorhergehende Ersetzung"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Nicht gefunden: %s"
+
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Das sieht nicht nach einer .sug Datei aus: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Veraltete .sug Datei; Aktualisierung erforderlich: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: .sug Datei ist fr eine neuere Version von Vim: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: .sug Datei passt nicht zur .spl Datei: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: Fehler beim Lesen der .sug Datei: %s"
+
+#. This should have been checked when generating the .spl
+#. * file.
+msgid "E783: duplicate char in MAP entry"
+msgstr "E783: Doppeltes Zeichen im MAP Eintrag"
+
 #, c-format
 msgid "E390: Illegal argument: %s"
-msgstr "E390: Unzulssiges Argument: %s"
+msgstr "E390: Unerlaubtes Argument: %s"
 
 #, c-format
 msgid "E391: No such syntax cluster: %s"
-msgstr "E391: Kein solches Syntax-Cluster: %s"
+msgstr "E391: Kein solcher Syntax Cluster: %s"
 
 msgid "No Syntax items defined for this buffer"
-msgstr "Keine Syntax-Elemente definiert fr diesen Puffer"
+msgstr "Keine Syntax-Elemente fr diesen Puffer definiert"
 
 msgid "syncing on C-style comments"
 msgstr "Synchronisation an C-Stil Kommentaren"
@@ -4350,7 +4963,7 @@ msgid ""
 "--- Syntax items ---"
 msgstr ""
 "\n"
-"--- Satzbau Elemente ---"
+"--- Syntax-Elemente ---"
 
 #, c-format
 msgid "E392: No such syntax cluster: %s"
@@ -4366,7 +4979,7 @@ msgid "; match "
 msgstr "; Treffer "
 
 msgid " line breaks"
-msgstr " Zeilen-Umbrche"
+msgstr " Zeilenumbrche"
 
 msgid "E393: group[t]here not accepted here"
 msgstr "E393: \"group[t]here\" ist an dieser Stelle ungltig"
@@ -4385,6 +4998,10 @@ msgid "E397: Filename required"
 msgstr "E397: Dateiname wird bentigt"
 
 #, c-format
+msgid "E747: Missing ']': %s"
+msgstr "E747: Fehlende ']': %s"
+
+#, c-format
 msgid "E398: Missing '=': %s"
 msgstr "E398: Fehlendes '=': %s"
 
@@ -4397,14 +5014,14 @@ msgstr "E400: Kein Cluster angegeben"
 
 #, c-format
 msgid "E401: Pattern delimiter not found: %s"
-msgstr "E401: Muster Abgrenzer nicht gefunden: %s"
+msgstr "E401: Muster-Abgrenzer nicht gefunden: %s"
 
 #, c-format
 msgid "E402: Garbage after pattern: %s"
 msgstr "E402: Schrott nach Muster: %s"
 
 msgid "E403: syntax sync: line continuations pattern specified twice"
-msgstr "E403: syntax sync: Zeilen Fortsetzungs Muster zweifach angegeben"
+msgstr "E403: Syntax sync: Zeilen Fortsetzungs Muster zweifach angegeben"
 
 #, c-format
 msgid "E404: Illegal arguments: %s"
@@ -4424,8 +5041,7 @@ msgstr "E407: %s ist hier nicht erlaubt"
 
 #, c-format
 msgid "E408: %s must be first in contains list"
-msgstr ""
-"E408: %s muss als Erstes in der Liste der enthaltenen Elemente auftreten"
+msgstr "E408: %s muss als Erstes in der Liste der enthaltenen Elemente auftreten"
 
 #, c-format
 msgid "E409: Unknown group name: %s"
@@ -4435,6 +5051,9 @@ msgstr "E409: Unbekannter Gruppen-Name: 
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: Ungltiger :syntax Befehl: %s"
 
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: Rekursive Schleife beim Laden von syncolor.vim"
+
 #, c-format
 msgid "E411: highlight group not found: %s"
 msgstr "E411: Hervorhebungs-Gruppe nicht gefunden: %s"
@@ -4452,7 +5071,7 @@ msgstr "E414: Gruppe hat Einstellungen, 
 
 #, c-format
 msgid "E415: unexpected equal sign: %s"
-msgstr "E415: unerwartetes Gleichheitszeichen: %s"
+msgstr "E415: Unerwartetes Gleichheitszeichen: %s"
 
 #, c-format
 msgid "E416: missing equal sign: %s"
@@ -4460,7 +5079,7 @@ msgstr "E416: fehlendes Gleichheitszeich
 
 #, c-format
 msgid "E417: missing argument: %s"
-msgstr "E417: fehlendes Argument: %s"
+msgstr "E417: Fehlendes Argument: %s"
 
 #, c-format
 msgid "E418: Illegal value: %s"
@@ -4487,22 +5106,17 @@ msgstr "E423: Unzulssiges Argument: %s"
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: Zu viele verschieden Hervorhebungs-Attribute in Gebrauch"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
-
-#. This is an error, but since there previously was no check only
-#. * give a warning.
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: Ungltiger Befehls-Name"
-
-#, fuzzy
-#~ msgid "E555: at bottom of tag stack"
-#~ msgstr "am Anfang der Tag-Liste"
-
-#, fuzzy
-#~ msgid "E556: at top of tag stack"
-#~ msgstr "am Ende der Tag-Liste"
+msgid "E669: Unprintable character in group name"
+msgstr "E669: Nicht druckbare Zeichen im Namen der Gruppe"
+
+msgid "W18: Invalid character in group name"
+msgstr "W18: Ungltiges Zeichen im Namen der Gruppe"
+
+msgid "E555: at bottom of tag stack"
+msgstr "E555: Am Ende des Tag-Stacks"
+
+msgid "E556: at top of tag stack"
+msgstr "E556: Am Anfang des Tag-Stacks"
 
 msgid "E425: Cannot go before first matching tag"
 msgstr "E425: Kann nicht vor den ersten passenden Tag hinausgehen"
@@ -4517,13 +5131,6 @@ msgstr "   # pri verw. tag"
 msgid "file\n"
 msgstr "Datei\n"
 
-#.
-#. * Ask to select a tag from the list.
-#. * When using ":silent" assume that <CR> was entered.
-#.
-msgid "Enter nr of choice (<CR> to abort): "
-msgstr "Gewnschte Nummer (abbrechen mit <CR>): "
-
 msgid "E427: There is only one matching tag"
 msgstr "E427: Es gibt nur einen passenden Tag"
 
@@ -4571,7 +5178,7 @@ msgstr "E431: Format Fehler in Tag-Datei
 
 #, c-format
 msgid "Before byte %ld"
-msgstr "vor byte %ld"
+msgstr "Vor byte %ld"
 
 #, c-format
 msgid "E432: Tags file not sorted: %s"
@@ -4588,23 +5195,19 @@ msgid "E435: Couldn't find tag, just gue
 msgstr "E435: Tag konnte nicht gefunden werden, das ist nur eine Vermutung!"
 
 msgid "' not known. Available builtin terminals are:"
-msgstr ""
-"' nicht bekannt. Zur Verfgung stehen die folgenden eingebauten Terminals:"
+msgstr "' nicht bekannt. Zur Verfgung stehen die folgenden eingebauten Terminals:"
 
 msgid "defaulting to '"
 msgstr "Voreinstellung '"
 
-#, fuzzy
-#~ msgid "E557: Cannot open termcap file"
-#~ msgstr "termpcap-Datei kann nicht geffnet werden"
-
-#, fuzzy
-#~ msgid "E558: Terminal entry not found in terminfo"
-#~ msgstr "Terminal-Eintrag konnte in der terminfo-Datei nicht gefunden werden"
-
-#, fuzzy
-#~ msgid "E559: Terminal entry not found in termcap"
-#~ msgstr "Terminal-Eintrag konnte in der termcap-Datei nicht gefunden werden"
+msgid "E557: Cannot open termcap file"
+msgstr "E557: Termcap-Datei kann nicht geffnet werden"
+
+msgid "E558: Terminal entry not found in terminfo"
+msgstr "E558: Terminal-Eintrag konte in der Terminfo-Datenbank nicht gefunden werden"
+
+msgid "E559: Terminal entry not found in termcap"
+msgstr "E559: Terminal-Eintrag konnte in der Termcap-Datei nicht gefunden werden"
 
 #, c-format
 msgid "E436: No \"%s\" entry in termcap"
@@ -4627,26 +5230,61 @@ msgstr "neue Shell gestartet\n"
 msgid "Vim: Error reading input, exiting...\n"
 msgstr "Vim: Fehler beim Lesen der Eingabe, Abbruch...\n"
 
-# TODO: need more work!
-#. must display the prompt
 msgid "No undo possible; continue anyway"
 msgstr "Rckgngigmachung nicht mglich; setze trotz dem fort"
 
+msgid "Already at oldest change"
+msgstr "Bereits bei der ltesten nderung"
+
+msgid "Already at newest change"
+msgstr "Bereits bei der jngsten nderung"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Nummer %ld zur Rckgngigmachung nicht gefunden"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: Zeilennummer falsch"
 
-msgid "1 change"
-msgstr "1 nderung"
-
-#, c-format
-msgid "%ld changes"
-msgstr "%ld nderungen"
+msgid "more line"
+msgstr "Zeile mehr"
+
+msgid "more lines"
+msgstr "Zeilen mehr"
+
+msgid "line less"
+msgstr "Zeile weniger"
+
+msgid "fewer lines"
+msgstr "Zeilen weniger"
+
+msgid "change"
+msgstr "nderung"
+
+msgid "changes"
+msgstr "nderungen"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "vor"
+
+msgid "after"
+msgstr "nach"
+
+msgid "Nothing to undo"
+msgstr "Nichts zum tun"
+
+msgid "number changes  time"
+msgstr "Nummer nd.     Zeit"
 
 msgid "E439: undo list corrupt"
-msgstr "E439: Rckgangbarkeitsliste kaputt"
+msgstr "E439: Liste der Rckgngigmachungen fehlerhaft"
 
 msgid "E440: undo line missing"
-msgstr "E440: Rckgangbarkeitsliste fehlt"
+msgstr "E440: Rckgngigmachungszeile fehlt"
 
 #. Only MS VC 4.1 and earlier can do Win32s
 msgid ""
@@ -4750,7 +5388,7 @@ msgid ""
 "Huge version "
 msgstr ""
 "\n"
-"Monster Version "
+"Riesige Version "
 
 msgid ""
 "\n"
@@ -4783,16 +5421,14 @@ msgstr ""
 msgid "without GUI."
 msgstr "ohne GUI."
 
-#, fuzzy
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "mit GTK-GNOME GUI."
+msgid "with GTK2-GNOME GUI."
+msgstr "mit GTK2-GNOME GUI."
 
 msgid "with GTK-GNOME GUI."
 msgstr "mit GTK-GNOME GUI."
 
-#, fuzzy
-#~ msgid "with GTK2 GUI."
-#~ msgstr "mit GTK GUI."
+msgid "with GTK2 GUI."
+msgstr "mit GTK2 GUI."
 
 msgid "with GTK GUI."
 msgstr "mit GTK GUI."
@@ -4800,9 +5436,8 @@ msgstr "mit GTK GUI."
 msgid "with X11-Motif GUI."
 msgstr "mit X11-Motif GUI."
 
-#, fuzzy
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "mit X11-Athena GUI."
+msgid "with X11-neXtaw GUI."
+msgstr "mit X11-neXtaw GUI."
 
 msgid "with X11-Athena GUI."
 msgstr "mit X11-Athena GUI."
@@ -4814,7 +5449,7 @@ msgid "with Photon GUI."
 msgstr "mit Photon GUI."
 
 msgid "with GUI."
-msgstr "mit GTK."
+msgstr "mit GUI."
 
 msgid "with Carbon GUI."
 msgstr "mit Carbon GUI."
@@ -4844,7 +5479,7 @@ msgid "      user exrc file: \""
 msgstr "         Benutzer-exrc-Datei: \""
 
 msgid "  2nd user exrc file: \""
-msgstr " zweite Benutzer-vimrc-Datei: \""
+msgstr " zweite Benutzer-exrc-Datei: \""
 
 msgid "  system gvimrc file: \""
 msgstr "         System-gvimrc-Datei: \""
@@ -4895,69 +5530,64 @@ msgid "Help poor children in Uganda!"
 msgstr "Helfen Sie armen Kindern in Uganda!"
 
 msgid "type  :help iccf<Enter>       for information "
-msgstr "tippe  :help iccf<Enter>        fr Informationen darber "
+msgstr "Tippe  :help iccf<Enter>        fr Informationen darber "
 
 msgid "type  :q<Enter>               to exit         "
-msgstr "tippe  :q<Enter>                zum Beenden               "
+msgstr "Tippe  :q<Enter>                zum Beenden               "
 
 msgid "type  :help<Enter>  or  <F1>  for on-line help"
-msgstr "tippe  :help<Enter>  oder <F1>  fr Online Hilfe          "
-
-msgid "type  :help version6<Enter>   for version info"
-msgstr "tippe  :help version6<Enter>    fr Versions-Informationen"
+msgstr "Tippe  :help<Enter>  oder <F1>  fr Online Hilfe          "
+
+msgid "type  :help version7<Enter>   for version info"
+msgstr "Tippe  :help version7<Enter>    fr Versions-Informationen"
 
 msgid "Running in Vi compatible mode"
 msgstr "Vi kompatible Einstellung"
 
 msgid "type  :set nocp<Enter>        for Vim defaults"
-msgstr "tippe  :set nocp<Enter>         fr Vim-Voreinstellungen  "
+msgstr "Tippe  :set nocp<Enter>         fr Vim-Voreinstellungen  "
 
 msgid "type  :help cp-default<Enter> for info on this"
-msgstr "tippe  :help cp-default<Enter>  fr Informationen darber "
+msgstr "Tippe  :help cp-default<Enter>  fr Informationen darber "
 
 msgid "menu  Help->Orphans           for information    "
-msgstr "Men  Hilfe->Waisen           fr Informationen darber    "
+msgstr "Men   Hilfe->Waisen            fr Informationen darber "
 
 msgid "Running modeless, typed text is inserted"
 msgstr "Mode-freier Betrieb, getippter Text wird eingefgt"
 
 msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
-msgstr ""
-"Men  Editieren->Globale Einstellung->Einfge-Modus ein- und ausschalten  "
+msgstr "Men  Editieren->Globale Einstellung->Einfge-Modus ein- und ausschalten  "
 
 msgid "                              for two modes      "
 msgstr "                              fr zwei Modi       "
 
 msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
-msgstr ""
-"Men  Editieren->Globale Einstellung->Vi-Kompatibilitt ein- und ausschalten"
+msgstr "Men  Editieren->Globale Einstellung->Vi-Kompatibilitt ein- und ausschalten"
 
 msgid "                              for Vim defaults   "
 msgstr "                              fr Vim Voreinstellungen   "
 
-#~ msgid "Sponsor Vim development!"
-#~ msgstr ""
-
-#~ msgid "Become a registered Vim user!"
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "type  :help sponsor<Enter>    for information "
-#~ msgstr "tippe  :help iccf<Enter>        fr Informationen darber "
-
-#, fuzzy
-#~ msgid "type  :help register<Enter>   for information "
-#~ msgstr "tippe  :help iccf<Enter>        fr Informationen darber "
-
-#, fuzzy
-#~ msgid "menu  Help->Sponsor/Register  for information    "
-#~ msgstr "Men  Hilfe->Waisen           fr Informationen darber    "
+msgid "Sponsor Vim development!"
+msgstr "Untersttzen Sie die Entwicklung von Vim"
+
+msgid "Become a registered Vim user!"
+msgstr "Werden Sie ein registrierter Benutzer von Vim!"
+
+msgid "type  :help sponsor<Enter>    for information "
+msgstr "Tippe  :help sponsor<Enter>     fr mehr Informationen    "
+
+msgid "type  :help register<Enter>   for information "
+msgstr "Tippe  :help register<Enter>    fr mehr Informationen    "
+
+msgid "menu  Help->Sponsor/Register  for information    "
+msgstr "Men   Hilfe->Sponsor/Register  fr mehr Informationen    "
 
 msgid "WARNING: Windows 95/98/ME detected"
 msgstr "ACHTUNG: Windows 95/98/ME wurde erkannt"
 
 msgid "type  :help windows95<Enter>  for info on this"
-msgstr "tippe  :help windows95<Enter>   fr Informationen darber "
+msgstr "Tippe  :help windows95<Enter>   fr Informationen darber "
 
 msgid "E441: There is no preview window"
 msgstr "E441: Es gibt kein Fenster zur Voransicht"
@@ -4990,43 +5620,11 @@ msgstr "E447: Datei \"%s\" kann im Pfad 
 msgid "E370: Could not load library %s"
 msgstr "E370: Bibliothek %s konnte nicht geladen werden"
 
-#, fuzzy
-#~ msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "Dieser Befehl ist nicht verfgbar, da die Tcl Bibliothek nicht geladen "
-#~ "werden konnte"
-
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-
-msgid "Edit with &multiple Vims"
-msgstr "Editiere mit &mehreren Vims"
-
-msgid "Edit with single &Vim"
-msgstr "Editiere mit einem &Vim"
-
-#, fuzzy
-#~ msgid "&Diff with Vim"
-#~ msgstr "Editiere mit &Vim"
-
-msgid "Edit with &Vim"
-msgstr "Editiere mit &Vim"
-
-#. Now concatenate
-msgid "Edit with existing Vim - &"
-msgstr "Editiere mit existierendem Vim - &"
-
-msgid "Edits the selected file(s) with Vim"
-msgstr "Editiere die ausgewhlten Datei(en) mit Vim"
-
-msgid "Error creating process: Check if gvim is in your path!"
-msgstr "Fehler beim Starten des Prozesses: Ist gvim im Pfad?"
-
-msgid "gvimext.dll error"
-msgstr "gvimext.dll Fehler"
-
-msgid "Path length too long!"
-msgstr "Pfad-Lnge zu lang!"
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr "Dieser Befehl ist nicht verfgbar, da die Perl-Bibliothek nicht geladen werden konnte"
+
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr "E299: Perl-Evaluierung in der Sandbox ohne dem 'Safe' Modul"
 
 msgid "--No lines in buffer--"
 msgstr "--Keine Zeilen im Puffer--"
@@ -5035,46 +5633,45 @@ msgstr "--Keine Zeilen im Puffer--"
 #. * The error messages that can be shared are included here.
 #. * Excluded are errors that are only used once and debugging messages.
 #.
-#, fuzzy
-#~ msgid "E470: Command aborted"
-#~ msgstr "Befehl abgebrochen"
-
-#, fuzzy
-#~ msgid "E471: Argument required"
-#~ msgstr "Argument wird bentigt"
+msgid "E470: Command aborted"
+msgstr "E470: Befehl abgebrochen"
+
+msgid "E471: Argument required"
+msgstr "E471: Argument bentigt"
 
 msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: \\ sollte von /, ? or & gefolgt werden"
 
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr ""
-"E11: Ungltig im Kommando-Zeilen Fenster; <CR> fhrt aus, CTRL-C beendet"
+msgstr "E11: Ungltig im Kommando-Zeilen Fenster; <CR> fhrt aus, CTRL-C beendet"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
-msgstr ""
-"E12: Befehl nicht zulssig vom exrc/vimrc in der momentanen Verzeichnis- "
-"oder Tag-Suche"
+msgstr "E12: Befehl nicht zulssig vom exrc/vimrc in der momentanen Verzeichnis- oder Tag-Suche"
 
 msgid "E171: Missing :endif"
-msgstr "E171: fehlendes :endif"
-
-#, fuzzy
-#~ msgid "E600: Missing :endtry"
-#~ msgstr "E171: fehlendes :endif"
+msgstr "E171: Fehlendes :endif"
+
+msgid "E600: Missing :endtry"
+msgstr "E600: Fehlendes :endtry"
 
 msgid "E170: Missing :endwhile"
 msgstr "E170: fehlendes :endwhile"
 
-#, fuzzy
-#~ msgid "E588: :endwhile without :while"
-#~ msgstr ":endwhile ohne :while"
+msgid "E170: Missing :endfor"
+msgstr "E170: Fehlendes :endfor"
+
+msgid "E588: :endwhile without :while"
+msgstr "E588: :endwhile ohne :while"
+
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor ohne :for"
 
 msgid "E13: File exists (add ! to override)"
 msgstr "E13: Datei existiert bereits (erzwinge mit !)"
 
-#, fuzzy
-#~ msgid "E472: Command failed"
-#~ msgstr "Befehl schlug fehl"
+
+msgid "E472: Command failed"
+msgstr "E472: Befehl fehlgeschlagen"
 
 #, c-format
 msgid "E234: Unknown fontset: %s"
@@ -5088,9 +5685,8 @@ msgstr "E235: Unbekannte Schriftart: %s"
 msgid "E236: Font \"%s\" is not fixed-width"
 msgstr "E236: Schriftart \"%s\" hat keine feste Breite"
 
-#, fuzzy
-#~ msgid "E473: Internal error"
-#~ msgstr "Interner Fehler"
+msgid "E473: Internal error"
+msgstr "E473: Interner Fehler"
 
 msgid "Interrupted"
 msgstr "Unterbrochen"
@@ -5098,13 +5694,12 @@ msgstr "Unterbrochen"
 msgid "E14: Invalid address"
 msgstr "E14: Ungltige Adresse"
 
-#, fuzzy
-#~ msgid "E474: Invalid argument"
-#~ msgstr "Ungltiges Argument"
-
-#, fuzzy, c-format
-#~ msgid "E475: Invalid argument: %s"
-#~ msgstr "Ungltiges Argument: %s"
+msgid "E474: Invalid argument"
+msgstr "E474: Ungltiges Argument"
+
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Ungltiges Argument: %s"
 
 #, c-format
 msgid "E15: Invalid expression: %s"
@@ -5113,17 +5708,13 @@ msgstr "E15: ungltiger Ausdruck: %s"
 msgid "E16: Invalid range"
 msgstr "E16: Ungltiger Bereich"
 
-#, fuzzy
-#~ msgid "E476: Invalid command"
-#~ msgstr "Ungltiger Befehls-Name"
+msgid "E476: Invalid command"
+msgstr "E476: Ungltiger Befehl"
 
 #, c-format
 msgid "E17: \"%s\" is a directory"
 msgstr "E17: \"%s\" ist ein Verzeichnis"
 
-msgid "E18: Unexpected characters before '='"
-msgstr "E18: Unerwartetes Zeichen vor '='"
-
 #, c-format
 msgid "E364: Library call failed for \"%s()\""
 msgstr "E364: Bibliotheks-Aufruf fr \"%s()\" schlug fehl"
@@ -5150,30 +5741,20 @@ msgstr "E23: Keine alternative Datei"
 msgid "E24: No such abbreviation"
 msgstr "E24: Keine Abkrzung gefunden"
 
-#, fuzzy
-#~ msgid "E477: No ! allowed"
-#~ msgstr "! nicht erlaubt"
+msgid "E477: No ! allowed"
+msgstr "E477: Kein ! erlaubt"
 
 msgid "E25: GUI cannot be used: Not enabled at compile time"
-msgstr ""
-"E25: GUI kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens "
-"nicht eingeschaltet."
+msgstr "E25: GUI kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens nicht eingeschaltet."
 
 msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-msgstr ""
-"E26: Hebrisch kann nicht benutzt werden: wurde zum Zeitpunkt des "
-"bersetzens nicht eingeschaltet.\n"
+msgstr "E26: Hebrisch kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens nicht eingeschaltet.\n"
 
 msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-msgstr ""
-"E27: Farsi kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens "
-"nicht eingeschaltet.\n"
-
-#, fuzzy
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E27: Farsi kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens "
-#~ "nicht eingeschaltet.\n"
+msgstr "E27: Farsi kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens nicht eingeschaltet.\n"
+
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: Arabisch kann nicht benutzt werden: wurde zum Zeitpunkt des bersetzens nicht eingeschaltet.\n"
 
 #, c-format
 msgid "E28: No such highlight group name: %s"
@@ -5188,13 +5769,12 @@ msgstr "E30: Keine vorherige Befehlszeil
 msgid "E31: No such mapping"
 msgstr "E31: Keine Zuordnung gefunden"
 
-#, fuzzy
-#~ msgid "E479: No match"
-#~ msgstr "Kein Treffer"
-
-#, fuzzy, c-format
-#~ msgid "E480: No match: %s"
-#~ msgstr "Kein Treffer fr: %s"
+msgid "E479: No match"
+msgstr "E479: Kein Treffer"
+
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Kein Treffer: %s"
 
 msgid "E32: No file name"
 msgstr "E32: Kein Dateiname"
@@ -5208,37 +5788,33 @@ msgstr "E34: Kein vorheriger Befehl"
 msgid "E35: No previous regular expression"
 msgstr "E35: Keine vorheriger regulrer Ausdruck"
 
-#, fuzzy
-#~ msgid "E481: No range allowed"
-#~ msgstr "Bereich unzulssig"
+msgid "E481: No range allowed"
+msgstr "E481: Kein Bereich erlaubt"
 
 msgid "E36: Not enough room"
-msgstr "E36: zu wenig Platz"
+msgstr "E36: Zu wenig Platz"
 
 #, c-format
 msgid "E247: no registered server named \"%s\""
 msgstr "E247: Kein registrierter Server-Name \"%s\""
 
-#, fuzzy, c-format
-#~ msgid "E482: Can't create file %s"
-#~ msgstr "Datei kann nicht erzeugt werden: %s"
-
-#, fuzzy
-#~ msgid "E483: Can't get temp file name"
-#~ msgstr "temp-Datei kann nicht erzeugt werden"
-
-#, fuzzy, c-format
-#~ msgid "E484: Can't open file %s"
-#~ msgstr "E456: Datei \"%s\" kann nicht geffnet werden"
-
-#, fuzzy, c-format
-#~ msgid "E485: Can't read file %s"
-#~ msgstr "Datei %s kann nicht gelesen werden"
-
-#, fuzzy
-#~ msgid "E37: No write since last change (add ! to override)"
-#~ msgstr ""
-#~ "E37: seit der letzten nderung wurde nicht geschrieben (erzwinge mit !)"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Kann Datei %s nicht erzeugen"
+
+msgid "E483: Can't get temp file name"
+msgstr "E483: Kann den Namen der temporren Datei nicht ermitteln"
+
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Kann die Datei %s nicht ffnen"
+
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Kann Datei %s nicht lesen"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Kein Schreibvorgang seit der letzten nderung (erzwinge mit !)"
 
 msgid "E38: Null argument"
 msgstr "E38: Null-Argument"
@@ -5259,31 +5835,30 @@ msgstr "E41: Speicher erschpft!"
 msgid "Pattern not found"
 msgstr "Muster nicht gefunden"
 
-#, fuzzy, c-format
-#~ msgid "E486: Pattern not found: %s"
-#~ msgstr "Muster nicht gefunden: %s"
-
-#, fuzzy
-#~ msgid "E487: Argument must be positive"
-#~ msgstr "Argument muss positiv sein"
-
-#, fuzzy
-#~ msgid "E459: Cannot go back to previous directory"
-#~ msgstr "E186: Kein vorheriges Verzeichnis"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Muster nicht gefunden: %s"
+
+msgid "E487: Argument must be positive"
+msgstr "E487: Argument muss positiv sein"
+
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Kann nicht ins vorhergehende Verzeichnis wechseln"
 
 msgid "E42: No Errors"
 msgstr "E42: Kein Fehler"
 
+msgid "E776: No location list"
+msgstr "E776: Keine Positionsliste"
+
 msgid "E43: Damaged match string"
 msgstr "E43: Beschdigter Suchausdruck"
 
 msgid "E44: Corrupted regexp program"
 msgstr "E44: schadhaftes regexp Programm"
 
-#, fuzzy
-#~ msgid "E45: 'readonly' option is set (add ! to override)"
-#~ msgstr ""
-#~ "E45: Die Schreibschutz-Option 'readonly' ist gesetzt (erzwinge mit !)"
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: Die Option 'readonly' ist gesetzt (erzwinge mit !)"
 
 #, c-format
 msgid "E46: Cannot set read-only variable \"%s\""
@@ -5295,9 +5870,8 @@ msgstr "E47: Fehler whrend des Lesens der Fehler-Datei"
 msgid "E48: Not allowed in sandbox"
 msgstr "E48: In einer Sandbox nicht erlaubt"
 
-#, fuzzy
-#~ msgid "E523: Not allowed here"
-#~ msgstr "hier nicht erlaubt"
+msgid "E523: Not allowed here"
+msgstr "E523: Hier nicht erlaubt"
 
 msgid "E359: Screen mode setting not supported"
 msgstr "E359: Bildschirm Modus wird nicht untersttzt"
@@ -5324,28 +5898,25 @@ msgid "E75: Name too long"
 msgstr "E75: Name zu lang"
 
 msgid "E76: Too many ["
-msgstr "E76: zu viele ["
+msgstr "E76: Zu viele ["
 
 msgid "E77: Too many file names"
-msgstr "E77: zu viele Dateinamen"
-
-#, fuzzy
-#~ msgid "E488: Trailing characters"
-#~ msgstr "berschssige Zeichen"
+msgstr "E77: Zu viele Dateinamen"
+
+msgid "E488: Trailing characters"
+msgstr "E488: berschssige Zeichen"
 
 msgid "E78: Unknown mark"
 msgstr "E78: Unbekannte Mark"
 
 msgid "E79: Cannot expand wildcards"
-msgstr "E79: Kann \"wildcards\" nicht erweitern"
-
-#, fuzzy
-#~ msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-#~ msgstr "'winheight' kann nicht kleiner sein als 'winminheight'"
-
-#, fuzzy
-#~ msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-#~ msgstr "'winwidth' kann nicht kleiner sein als 'winminwidth'"
+msgstr "E79: Kann die Platzhalter nicht erweitern"
+
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' darf nicht kleiner sein als 'winminheight'"
+
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth darf nicht kleiner sein als 'winminwidth'"
 
 msgid "E80: Error while writing"
 msgstr "E80: Fehler whrend des Schreibens"
@@ -5357,53 +5928,66 @@ msgid "E81: Using <SID> not in a script 
 msgstr "E81: <SID> wurde nicht in einer Skript-Umgebung benutzt"
 
 msgid "E449: Invalid expression received"
-msgstr "E449: ungltiger Ausdruck"
-
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr ""
-
-#~ msgid "function "
-#~ msgstr "Funktion "
-
-#~ msgid "error reading cscope connection %d"
-#~ msgstr "Fehler beim Lesen aus der cscope Verbindung %d"
-
-#~ msgid "E260: cscope connection not found"
-#~ msgstr "E260: keine cscope Verbindung gefunden"
-
-#~ msgid "cscope connection closed"
-#~ msgstr "cscope Verbindung geschlossen"
-
-#~ msgid "couldn't malloc\n"
-#~ msgstr "Fehler beim allozieren\n"
-
-#~ msgid "%2d %-5ld  %-34s  <none>\n"
-#~ msgstr "%2d %-5ld  %-34s  <keine>\n"
-
-#~ msgid "E249: couldn't read VIM instance registry property"
-#~ msgstr ""
-#~ "E249: Registry-Eigenschaft der VIM Instanz konnte nicht gelesen werden"
-
-#~ msgid "\"\n"
-#~ msgstr "\"\n"
-
-#~ msgid "--help\t\tShow Gnome arguments"
-#~ msgstr "--help\t\tZeige Gnome-Argumente"
-
-#~ msgid "E448: Unknown font: %s"
-#~ msgstr "E448: Unbekannte Schriftart: %s"
-
-#~ msgid " BLOCK"
-#~ msgstr "ER BLOCK"
-
-#~ msgid " LINE"
-#~ msgstr "E ZEILE"
-
-#~ msgid "Linear tag search"
-#~ msgstr "Lineare Tag-Suche"
-
-#~ msgid "Binary tag search"
-#~ msgstr "Binre Tag-Suche"
-
-#~ msgid "Can't open file %s"
-#~ msgstr "Datei %s kann nicht geffnet werden"
+msgstr "E449: Ungltiger Ausdruck"
+
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Region ist geschtzt; keine nderung mglich"
+
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans erlaubt keine nderungen in schreibgeschtzten Dateien"
+
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Interner Fehler: %s"
+
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: Muster bentigt mehr Speicher als 'maxmempattern'"
+
+msgid "E749: empty buffer"
+msgstr "E749: Leerer Puffer"
+
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Ungltiges Suchmuster oder Trennzeichen"
+
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Datei ist in einem anderen Puffer geladen"
+
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: Option '%s' ist nicht gesetzt"
+
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "Suche erreichte den ANFANG und wurde am ENDE fortgesetzt"
+
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "Suche erreichte das ENDE und wurde am ANFANG fortgesetzt"
+
+msgid "Edit with &multiple Vims"
+msgstr "Editiere mit &mehreren Vims"
+
+msgid "Edit with single &Vim"
+msgstr "Editiere mit einem &Vim"
+
+msgid "Diff with Vim"
+msgstr "Differenz mit Vim"
+
+msgid "Edit with &Vim"
+msgstr "Editiere mit &Vim"
+
+msgid "Edit with existing Vim - "
+msgstr "Editiere mit vorhandenem Vim - "
+
+msgid "Press ENTER or type command to continue"
+msgstr "Bettigen Sie die EINGABETASTE oder geben Sie einen Befehl ein"
+
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Fehler beim Erzeugen des Prozesses: berprfen Sie, ob gvim in Ihrem Pfad ist!"
+
+msgid "gvimext.dll error"
+msgstr "gvimext.dll Fehler"
+
+msgid "Path length too long!"
+msgstr "Die Lnge des Pfads ist zu gro!"
+
+msgid "Edits the selected file(s) with Vim"
+msgstr "Editiert die ausgewhlte(n) Datei(en) mit Vim"
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -1,6 +1,6 @@
 # Italian Translation for Vim
 #
-# FIRST AUTHOR Antonio Colombo <azc10@yahoo.com>, 2000
+# FIRST AUTHOR Antonio Colombo <azc100@gmail.com>, 2000
 #
 # Ogni commento  benvenuto...
 # Every remark is very welcome...
@@ -12,12 +12,12 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vim 7.0\n"
-"POT-Creation-Date: 2006-03-03 07:40+0100\n"
-"PO-Revision-Date:  2006-03-03 07:40+0100\n"
-"Last-Translator:   Vlad Sandrini   <marco@sandrini.biz>\n"
+"POT-Creation-Date: 2006-03-31 07:25+0200\n"
+"PO-Revision-Date:  2006-04-03 10:05+0200\n"
+"Last-Translator:   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "Language-Team:     Italian"
-"                   Antonio Colombo <azc10@yahoo.com>"
-"                   Vlad Sandrini   <marco@sandrini.biz>\n"
+"                   Antonio Colombo <azc100@gmail.com>"
+"                   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO_8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
@@ -137,8 +137,8 @@ msgstr "[Senza nome]"
 msgid "help"
 msgstr "aiuto"
 
-msgid "[help]"
-msgstr "[aiuto]"
+msgid "[Help]"
+msgstr "[Aiuto]"
 
 msgid "[Preview]"
 msgstr "[Anteprima]"
@@ -162,8 +162,8 @@ msgstr ""
 msgid "[Location List]"
 msgstr "[Lista Locazioni]"
 
-msgid "[Error List]"
-msgstr "[Lista Errori]"
+msgid "[Quickfix List]"
+msgstr "[Lista Quickfix]"
 
 msgid ""
 "\n"
@@ -223,8 +223,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " Completamento Keyword (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " modalit ^X (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " modalit ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Completamento Linea Intera (^L^N^P)"
@@ -256,8 +256,8 @@ msgstr " Completamento definito dall'ute
 msgid " Omni completion (^O^N^P)"
 msgstr " Completamento globale (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " Suggerimento ortografico (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " Suggerimento ortografico (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " Completamento Keyword Locale (^N^P)"
@@ -494,6 +494,9 @@ msgstr "E724: variabile troppo nidificat
 msgid "E699: Too many arguments"
 msgstr "E699: Troppi argomenti"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() pu essere usata solo in modalit inserimento"
+
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
 #. * this way has the compelling advantage that translations need not to
@@ -2040,6 +2043,12 @@ msgstr "E243: Argomento non supportato: 
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: Non posso aprire la finestra in un'applicazione MDI"
 
+msgid "Close tab"
+msgstr "Chiudi linguetta"
+
+msgid "Open tab..."
+msgstr "Apri linguetta..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Stringa di ricerca (usa '\\\\' per cercare  un '\\')"
 
@@ -2951,6 +2960,9 @@ msgid ""
 msgstr ""
 "--remote-wait-silent <files>  Stessa cosa, ignora se non esiste un server"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <file>  Come --remote ma apre una linguetta per ogni file"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <tasti>\tInvia <tasti> a un server Vim ed esci"
 
@@ -3498,7 +3510,7 @@ msgstr "E317: ID blocco puntatori errato
 
 #, c-format
 msgid "E773: Symlink loop for \"%s\""
-msgstr "E773: Collegamento ricorsivo per \"%s\""
+msgstr "E773: Collegamento simbolico ricorsivo per \"%s\""
 
 msgid "E325: ATTENTION"
 msgstr "E325: ATTENZIONE"
@@ -3884,7 +3896,7 @@ msgid "E352: Cannot erase folds with cur
 msgstr "E352: Non posso togliere piegature con il 'foldmethod' in uso"
 
 msgid "E664: changelist is empty"
-msgstr "E664: lista modifiche non impostata"
+msgstr "E664: lista modifiche assente"
 
 msgid "E662: At start of changelist"
 msgstr "E662: All'inizio della lista modifiche"
@@ -4217,6 +4229,9 @@ msgstr "ERRORE I/O"
 msgid "...(truncated)"
 msgstr "...(troncato)"
 
+msgid "Message"
+msgstr "Messaggio"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' non vale 80, non riesco ad eseguire comandi esterni"
 
@@ -4446,10 +4461,6 @@ msgstr "E681: Buffer non caricato"
 msgid "E777: String or List expected"
 msgstr "E777: aspettavo Stringa o Lista"
 
-#, c-format
-msgid "E369: invalid item in %s%%[]"
-msgstr "E369: elemento non valido in %s%%[]"
-
 msgid "E339: Pattern too long"
 msgstr "E339: Espressione troppo lunga"
 
@@ -4624,6 +4635,10 @@ msgstr "  NON TROVATO"
 msgid "Scanning included file: %s"
 msgstr "Scandisco file incluso: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "Cerco nel file incluso: %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: Corrispondenza nella linea corrente"
 
@@ -4714,8 +4729,8 @@ msgid "FLAG after using flags in %s line
 msgstr "FLAG dopo l'uso di flags in %s linea %d: %s"
 
 #, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "Valore errato per COMPOUNDMAX in %s linea %d: %s"
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "Valore errato per COMPOUNDWORDMAX in %s linea %d: %s"
 
 #, c-format
 msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
@@ -4726,6 +4741,10 @@ msgid "Wrong COMPOUNDSYLMAX value in %s 
 msgstr "Valore errato per COMPOUNDSYLMAX in %s linea %d: %s"
 
 #, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "Valore errato per CHECKCOMPOUNDPATTERN in %s linea %d: %s"
+
+#, c-format
 msgid "Different combining flag in continued affix block in %s line %d: %s"
 msgstr ""
 "Flag combinazione diverso in blocco affissi continuo in %s linea %d: %s"
@@ -4751,6 +4770,10 @@ msgid "Broken condition in %s line %d: %
 msgstr "Condizione non rispettata in %s linea %d: %s"
 
 #, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "Flags di affissi ignorati con PFXPOSTPONE in %s linea %d: %s"
+
+#, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Contatore REP(SAL) necessario in %s linea %d"
 
@@ -4919,6 +4942,14 @@ msgstr "Fatto!"
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile' non ha %ld elementi"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "Parola rimossa da %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Parola aggiunta a %s"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: Caratteri di parola differenti nei file ortografici"
 
@@ -5284,15 +5315,52 @@ msgstr "Vim: Errore leggendo l'input, es
 msgid "No undo possible; continue anyway"
 msgstr "'undo' non pi possibile; continuo comunque"
 
+msgid "Already at oldest change"
+msgstr "Questa  gi la prima modifica"
+
+msgid "Already at newest change"
+msgstr "Questa  gi l'ultima modifica"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Undo numero %ld non trovato"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: numeri linee errati"
 
-msgid "1 change"
-msgstr "1 modifica"
-
-#, c-format
-msgid "%ld changes"
-msgstr "%ld modifiche"
+msgid "more line"
+msgstr "linea in pi"
+
+msgid "more lines"
+msgstr "linee in pi"
+
+msgid "line less"
+msgstr "linea in meno"
+
+msgid "fewer lines"
+msgstr "linee in meno"
+
+msgid "change"
+msgstr "modifica"
+
+msgid "changes"
+msgstr "modifiche"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "prima"
+
+msgid "after"
+msgstr "dopo"
+
+msgid "Nothing to undo"
+msgstr "Nessuna modifica, Undo impossibile"
+
+msgid "number changes  time"
+msgstr "numero modif.   ora"
 
 msgid "E439: undo list corrupt"
 msgstr "E439: lista 'undo' non valida"
@@ -5922,7 +5990,7 @@ msgid "E72: Close error on swap file"
 msgstr "E72: Errore durante chiusura swap file"
 
 msgid "E73: tag stack empty"
-msgstr "E73: tag stack non impostata"
+msgstr "E73: tag stack ancora vuoto"
 
 msgid "E74: Command too complex"
 msgstr "E74: Comando troppo complesso"
new file mode 100644
--- /dev/null
+++ b/src/po/pl.UTF-8.po
@@ -0,0 +1,6043 @@
+# translation of pl.po to Polish
+# Polish Translation for Vim
+#
+# updated 2005 for vim-7.0
+#
+# FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
+# Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: pl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-01 18:24+0200\n"
+"PO-Revision-Date: 2006-04-01 18:39+0200\n"
+"Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
+"Language-Team: Polish <mikmach@wp.pl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
+
+msgid "E82: Cannot allocate any buffer, exiting..."
+msgstr "E82: Nie mogę zarezerwować bufora; zakończenie..."
+
+msgid "E83: Cannot allocate buffer, using other one..."
+msgstr "E83: Nie mogę zarezerwować bufora; używam innego..."
+
+msgid "E515: No buffers were unloaded"
+msgstr "E515: Nie wyładowano żadnego bufora"
+
+msgid "E516: No buffers were deleted"
+msgstr "E516: Nie skasowano żadnego bufora"
+
+msgid "E517: No buffers were wiped out"
+msgstr "E517: Nie wyrzucono żadnego bufora"
+
+msgid "1 buffer unloaded"
+msgstr "1 bufor wyładowany"
+
+#, c-format
+msgid "%d buffers unloaded"
+msgstr "wyładowano %d buforów"
+
+msgid "1 buffer deleted"
+msgstr "1 bufor skasowany"
+
+#, c-format
+msgid "%d buffers deleted"
+msgstr "%d buforów skasowano"
+
+msgid "1 buffer wiped out"
+msgstr "wyrzucono 1 bufor "
+
+#, c-format
+msgid "%d buffers wiped out"
+msgstr "wyrzucono %d buforów"
+
+msgid "E84: No modified buffer found"
+msgstr "E84: Nie znaleziono zmienionych buforów"
+
+#. back where we started, didn't find anything.
+msgid "E85: There is no listed buffer"
+msgstr "E85: Nie ma wylistowanych buforów"
+
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Bufor \"%ld\" nie istnieje"
+
+msgid "E87: Cannot go beyond last buffer"
+msgstr "E87: Nie mogę przejść poza ostatni bufor"
+
+msgid "E88: Cannot go before first buffer"
+msgstr "E88: Nie mogę przejść przed pierwszy bufor"
+
+#, c-format
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
+msgstr "E89 Nie zapisano zmian w buforze %ld (wymuś przez !)"
+
+msgid "E90: Cannot unload last buffer"
+msgstr "E90: Nie mogę wyładować ostatniego bufora"
+
+msgid "W14: Warning: List of file names overflow"
+msgstr "W14: OSTRZEŻENIE: Przepełnienie listy nazw plików"
+
+#, c-format
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Nie znaleziono bufora %ld"
+
+#, c-format
+msgid "E93: More than one match for %s"
+msgstr "E93: Wielokrotne dopasowania dla %s"
+
+#, c-format
+msgid "E94: No matching buffer for %s"
+msgstr "E94: Żaden bufor nie pasuje do %s"
+
+#, c-format
+msgid "line %ld"
+msgstr "wiersz %ld"
+
+msgid "E95: Buffer with this name already exists"
+msgstr "E95: Bufor o tej nazwie już istnieje"
+
+msgid " [Modified]"
+msgstr " [Zmieniony]"
+
+msgid "[Not edited]"
+msgstr "[Nie edytowany]"
+
+msgid "[New file]"
+msgstr "[Nowy Plik]"
+
+msgid "[Read errors]"
+msgstr "[Błąd odczytu]"
+
+msgid "[readonly]"
+msgstr "[tylko odczyt]"
+
+#, c-format
+msgid "1 line --%d%%--"
+msgstr "1 wiersz --%d%%--"
+
+#, c-format
+msgid "%ld lines --%d%%--"
+msgstr "%ld wiersze --%d%%--"
+
+#, c-format
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "wiersz %ld z %ld --%d%%-- kol "
+
+msgid "[No Name]"
+msgstr "[Bez nazwy]"
+
+#. must be a help buffer
+msgid "help"
+msgstr "pomoc"
+
+msgid "[Help]"
+msgstr "[Pomoc]"
+
+msgid "[Preview]"
+msgstr "[Podgląd]"
+
+msgid "All"
+msgstr "Wszystko"
+
+msgid "Bot"
+msgstr "Dół"
+
+msgid "Top"
+msgstr "Góra"
+
+#, c-format
+msgid ""
+"\n"
+"# Buffer list:\n"
+msgstr ""
+"\n"
+"# Lista buforów:\n"
+
+msgid "[Location List]"
+msgstr "[Lista lokacji]"
+
+msgid "[Quickfix List]"
+msgstr "[Lista quickfix]"
+
+msgid ""
+"\n"
+"--- Signs ---"
+msgstr ""
+"\n"
+"--- Znaki ---"
+
+#, c-format
+msgid "Signs for %s:"
+msgstr "Znaki dla %s:"
+
+#, c-format
+msgid "    line=%ld  id=%d  name=%s"
+msgstr "    wiersz=%ld  id=%d  nazwa=%s"
+
+#, c-format
+msgid "E96: Can not diff more than %ld buffers"
+msgstr "E96: Nie mogę zróżnicować więcej niż %ld buforów"
+
+msgid "E97: Cannot create diffs"
+msgstr "E97: Nie mogę stworzyć różnic"
+
+msgid "Patch file"
+msgstr "Plik łata"
+
+msgid "E98: Cannot read diff output"
+msgstr "E98: Nie mogę wczytać wyjścia różnicy"
+
+msgid "E99: Current buffer is not in diff mode"
+msgstr "E99: Bieżący bufor nie jest w trybie różnic"
+
+msgid "E100: No other buffer in diff mode"
+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ć"
+
+#, c-format
+msgid "E102: Can't find buffer \"%s\""
+msgstr "E102: Nie mogę znaleźć bufora \"%s\""
+
+#, c-format
+msgid "E103: Buffer \"%s\" is not in diff mode"
+msgstr "E103: Bufor \"%s\" nie jest w trybie różnicowania"
+
+msgid "E104: Escape not allowed in digraph"
+msgstr "E104: Escape jest niedozwolone w dwugrafie"
+
+msgid "E544: Keymap file not found"
+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 " Keyword completion (^N^P)"
+msgstr " Dopełnianie słów kluczowych (^N^P)"
+
+#. ctrl_x_mode == 0, ^P/^N compl.
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+
+msgid " Whole line completion (^L^N^P)"
+msgstr " Dopełnianie pełnych wierszy (^L^N^P)"
+
+msgid " File name completion (^F^N^P)"
+msgstr " Dopełnianie nazw plików (^F^N^P)"
+
+msgid " Tag completion (^]^N^P)"
+msgstr " Dopełnianie znaczników (^]^N^P)"
+
+msgid " Path pattern completion (^N^P)"
+msgstr " Dopełnianie wzorców tropów (^N^P)"
+
+msgid " Definition completion (^D^N^P)"
+msgstr " Dopełnianie definicji (^D^N^P)"
+
+msgid " Dictionary completion (^K^N^P)"
+msgstr " Dopełnianie ze słowników (^K^N^P)"
+
+msgid " Thesaurus completion (^T^N^P)"
+msgstr " Dopełnianie z tezaurusa (^T^N^P)"
+
+msgid " Command-line completion (^V^N^P)"
+msgstr " Dopełnianie wiersza poleceń (^V^N^P)"
+
+msgid " User defined completion (^U^N^P)"
+msgstr "Dopełnianie zdefiniowane przez użytkownika (^U^N^P)"
+
+msgid " Omni completion (^O^N^P)"
+msgstr " Omni uzupełnianie (^O^N^P)"
+
+msgid " Spelling suggestion (^S^N^P)"
+msgstr "Propozycja ortografii (^L^N^P)"
+
+msgid " Keyword Local completion (^N^P)"
+msgstr " Lokalne dopełnianie słów kluczowych (^N^P)"
+
+msgid "Hit end of paragraph"
+msgstr "Dobiłem do końca akapitu"
+
+msgid "'dictionary' option is empty"
+msgstr "opcja 'dictionary' jest pusta"
+
+msgid "'thesaurus' option is empty"
+msgstr "opcja 'thesaurus' jest pusta"
+
+#, c-format
+msgid "Scanning dictionary: %s"
+msgstr "Przeglądam słownik: %s"
+
+msgid " (insert) Scroll (^E/^Y)"
+msgstr " (wprowadzanie) Przewijanie (^E/^Y)"
+
+msgid " (replace) Scroll (^E/^Y)"
+msgstr " (zamiana) Przewijanie (^E/^Y)"
+
+#, c-format
+msgid "Scanning: %s"
+msgstr "Przeglądam: %s"
+
+#, c-format
+msgid "Scanning tags."
+msgstr "Przeglądam znaczniki."
+
+msgid " Adding"
+msgstr " Dodaję"
+
+#. showmode might reset the internal line pointers, so it must
+#. * be called before line = ml_get(), or when this address is no
+#. * longer needed.  -- Acevedo.
+#.
+msgid "-- Searching..."
+msgstr "-- Szukam..."
+
+msgid "Back at original"
+msgstr "Z powrotem na pierwotnym"
+
+msgid "Word from other line"
+msgstr "Wyraz z innego wiersza"
+
+msgid "The only match"
+msgstr "Jedyne dopasowanie"
+
+#, c-format
+msgid "match %d of %d"
+msgstr "pasuje %d z %d"
+
+#, c-format
+msgid "match %d"
+msgstr "pasuje %d"
+
+msgid "E18: Unexpected characters in :let"
+msgstr "E18: Nieoczekiwane znaki w :let"
+
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: Indeks listy poza zakresem: %ld"
+
+#, c-format
+msgid "E121: Undefined variable: %s"
+msgstr "E121: Nieokreślona zmienna: %s"
+
+msgid "E111: Missing ']'"
+msgstr "E111: Brak ']'"
+
+#, c-format
+msgid "E686: Argument of %s must be a List"
+msgstr "E487: Argument %s musi być Listą"
+
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: Argument %s musi być Listą lub Słownikiem"
+
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: Nie można użyć pustego klucza dla Słownika"
+
+msgid "E714: List required"
+msgstr "E714: wymagana Lista"
+
+msgid "E715: Dictionary required"
+msgstr "E715: wymagany Słownik"
+
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: Zbyt wiele argumentów dla funkcji: %s"
+
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: Klucz nie istnieje w Słowniku: %s"
+
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: Funkcja %s już istnieje; aby ją zamienić użyj !"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: istnieje już taki element Słownika"
+
+msgid "E718: Funcref required"
+msgstr "E718: wymagana Funcref"
+
+msgid "E719: Cannot use [:] with a Dictionary"
+msgstr "E719: Nie można użyć [:] przy Słowniku"
+
+#, c-format
+msgid "E734: Wrong variable type for %s="
+msgstr "E734: Zły typ zmiennej dla %s="
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Nieznana funkcja: %s"
+
+#, c-format
+msgid "E461: Illegal variable name: %s"
+msgstr "E418: Niedozwolona nazwa zmiennej: %s"
+
+msgid "E687: Less targets than List items"
+msgstr "E687: Mniej celów niż elementów Listy"
+
+msgid "E688: More targets than List items"
+msgstr "E688: Więcej celów niż elementów Listy"
+
+msgid "Double ; in list of variables"
+msgstr "Podwójny ; w liście zmiennych"
+
+#, c-format
+msgid "E738: Can't list variables for %s"
+msgstr "E738: Nie mogę wypisać zmiennych dla %s"
+
+msgid "E689: Can only index a List or Dictionary"
+msgstr "E689: Indeks może istnieć tylko dla Listy lub Słownika"
+
+msgid "E708: [:] must come last"
+msgstr "E708: [:] musi być ostatnie"
+
+msgid "E709: [:] requires a List value"
+msgstr "E709: [:] wymaga wartości listy"
+
+msgid "E710: List value has more items than target"
+msgstr "E710: Lista ma więcej elementów niż cel"
+
+msgid "E711: List value has not enough items"
+msgstr "E711: Lista nie ma wystarczającej ilości elementów"
+
+msgid "E690: Missing \"in\" after :for"
+msgstr "E690: Brak \"in\" po :for"
+
+#, c-format
+msgid "E107: Missing braces: %s"
+msgstr "E107: Brak nawiasów: %s"
+
+#, c-format
+msgid "E108: No such variable: \"%s\""
+msgstr "E108: Nie istnieje zmienna: \"%s\""
+
+msgid "E743: variable nested too deep for (un)lock"
+msgstr "E743: zmienna zagnieżdżona zbyt głęboko dla (un)lock"
+
+msgid "E109: Missing ':' after '?'"
+msgstr "E109: Brak ':' po '?'"
+
+msgid "E691: Can only compare List with List"
+msgstr "E691: Listę mogę porównać tylko z Listą"
+
+msgid "E692: Invalid operation for Lists"
+msgstr "E692: Nieprawidłowa operacja dla Listy"
+
+msgid "E735: Can only compare Dictionary with Dictionary"
+msgstr "E735: Słownik mogę porównać tylko ze Słownikiem"
+
+msgid "E736: Invalid operation for Dictionary"
+msgstr "E736: Nieprawidłowa operacja dla Słownika"
+
+msgid "E693: Can only compare Funcref with Funcref"
+msgstr "E693: Funcref mogę porównać tylko z Funcref"
+
+msgid "E694: Invalid operation for Funcrefs"
+msgstr "E694: Nieprawidłowa operacja dla Funcref"
+
+msgid "E110: Missing ')'"
+msgstr "E110: Brak ')'"
+
+msgid "E695: Cannot index a Funcref"
+msgstr "E695: Nie można zindeksować Funcref"
+
+#, c-format
+msgid "E112: Option name missing: %s"
+msgstr "E112: Brak nazwy opcji: %s"
+
+#, c-format
+msgid "E113: Unknown option: %s"
+msgstr "E113: Nieznana opcja: %s"
+
+#, c-format
+msgid "E114: Missing quote: %s"
+msgstr "E114: Brak cudzysłowu: %s"
+
+#, c-format
+msgid "E115: Missing quote: %s"
+msgstr "E115: Brak cudzysłowu: %s"
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Brakujący przecinek w Liście: '%s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: Brak zakończenia Listy ']': %s"
+
+#, c-format
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Brak dwukropka w Słowniku: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Powtórzony klucz w Słowniku: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Brakujący przecinek w Słowniku: %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+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ć"
+
+msgid "E699: Too many arguments"
+msgstr "E699: Za dużo argumentów"
+
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() może być użyte tylko w trybie Wprowadzania"
+
+#.
+#. * Yes this is ugly, I don't particularly like it either.  But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all.  See below what 'ok' and 'ync' are used for.
+#.
+msgid "&Ok"
+msgstr "&Ok"
+
+#, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: Klucz już istnieje: %s"
+
+#, c-format
+msgid "+-%s%3ld lines: "
+msgstr "+-%s%3ld wierszy: "
+
+#, c-format
+msgid "E700: Unknown function: %s"
+msgstr "E700: Nieznana funkcja: %s"
+
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"&OK\n"
+"&Zakończ"
+
+msgid "called inputrestore() more often than inputsave()"
+msgstr "wywołano inputrestore() więcej razy niż inputsave()"
+
+msgid "E745: Range not allowed"
+msgstr "E745: Zakres niedozwolony"
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: Nieprawidłowy typ dla len()"
+
+msgid "E726: Stride is zero"
+msgstr "E726: Skok to zero"
+
+msgid "E727: Start past end"
+msgstr "E727: Początek po końcu"
+
+msgid "<empty>"
+msgstr "<pusty>"
+
+msgid "E240: No connection to Vim server"
+msgstr "E240: Brak połączenia z serwerem Vim"
+
+#, c-format
+msgid "E241: Unable to send to %s"
+msgstr "E241: Nie mogę wysłać do %s"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: Nie mogę czytać odpowiedzi serwera"
+
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: Za dużo dowiązań symbolicznych (pętla?)"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: Nie mogę wysłać do klienta"
+
+msgid "E702: Sort compare function failed"
+msgstr "E702: Funkcja porównywania w sort nie powiodła się"
+
+msgid "(Invalid)"
+msgstr "(Niewłaściwe)"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: Błąd zapisywania pliku tymczasowego"
+
+msgid "E703: Using a Funcref as a number"
+msgstr "E703: Użycie Funcref jako liczby"
+
+msgid "E745: Using a List as a number"
+msgstr "E745: Użycie Listy jako liczby"
+
+msgid "E728: Using a Dictionary as a number"
+msgstr "E728: Użycie Słownika jako liczby"
+
+msgid "E729: using Funcref as a String"
+msgstr "E729: Użycie Funcref jako łańcucha"
+
+msgid "E730: using List as a String"
+msgstr "E730: Użycie Listy jako łańcucha"
+
+msgid "E731: using Dictionary as a String"
+msgstr "E731: Użycie Słownika jako łańcucha"
+
+#, c-format
+msgid "E704: Funcref variable name must start with a capital: %s"
+msgstr "E704: Nazwa Funcref musi się zaczynać wielką literą: %s"
+
+#, c-format
+msgid "E705: Variable name conflicts with existing function: %s"
+msgstr "E705: Nazwa zmiennej jest w konflikcie z istniejącą funkcją: %s"
+
+#, c-format
+msgid "E706: Variable type mismatch for: %s"
+msgstr "E706: Nieprawidłowy typ zmiennej dla: %s"
+
+#, c-format
+msgid "E741: Value is locked: %s"
+msgstr "E741: Wartość jest zablokowana: %s"
+
+msgid "Unknown"
+msgstr "Nieznane"
+
+#, c-format
+msgid "E742: Cannot change value of %s"
+msgstr "E742: Nie mogę zmienić wartości %s"
+
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: Zmienna zagnieżdżona zbyt głęboko by zrobić kopię"
+
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: Brak '(': %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: Niedozwolony argument: %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: Brak :endfunction"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: Nazwa funkcji nie pasuje do nazwy skryptu: %s"
+
+msgid "E129: Function name required"
+msgstr "E129: Wymagana jest nazwa funkcji"
+
+#, c-format
+msgid "E128: Function name must start with a capital or contain a colon: %s"
+msgstr ""
+"E128: Nazwa funkcji musi rozpoczynać się wielką literą lub zawierać "
+"dwukropek: %s"
+
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: Nie mogę skasować funkcji %s: jest w użyciu"
+
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: Zagnieżdżenie wywołań funkcji ponad 'maxfuncdepth'"
+
+#, c-format
+msgid "calling %s"
+msgstr "wywołuję %s"
+
+#, c-format
+msgid "%s aborted"
+msgstr "porzucono %s"
+
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s zwraca #%ld"
+
+#, c-format
+msgid "%s returning %s"
+msgstr "%s zwraca %s"
+
+#, c-format
+msgid "continuing in %s"
+msgstr "kontynuacja w %s"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: :return poza funkcją"
+
+#, c-format
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# zmienne globalne:\n"
+
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tOstatnie ustawienie przez "
+
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "Wchodzę w tryb odpluskwiania. Wprowadź \"cont\" aby kontynuować."
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "wiersz %ld: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "cmd: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Punkt kontrolny w \"%s%s\" wiersz %ld"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: Nie znaleziono punktu kontrolnego: %s"
+
+msgid "No breakpoints defined"
+msgstr "Nie określono żadnych punktów kontrolnych"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  wiersz %ld"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: Pierwsze użycie :profile start <fname>"
+
+msgid "Save As"
+msgstr "Zapisz jako"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "Zachować zmiany w \"%s\"?"
+
+msgid "Untitled"
+msgstr "Bez Tytułu"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: Nie zapisano zmian w buforze \"%s\""
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "OSTRZEŻENIE: Nieoczekiwane wejście w inny bufor (sprawdź autokomendy)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Tylko jeden plik w edycji"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: Nie można przejść przed pierwszy plik"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: Nie można przejść za ostatni plik"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: nie wspierany kompilator: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "Szukanie \"%s\" w \"%s\""
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "Szukanie \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "nie znaleziono w 'runtimepath': \"%s\""
+
+msgid "Source Vim script"
+msgstr "Wczytaj skrypt Vima"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "Nie można wczytać katalogu: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "nie mogłem wczytać \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "wiersz: %ld nie mogłem wczytać \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "wczytywanie \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "wiersz %ld: wczytywanie \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "skończono wczytywanie %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd argument"
+
+msgid "-c argument"
+msgstr "-c argument"
+
+msgid "environment variable"
+msgstr "zmienna środowiskowa"
+
+msgid "error handler"
+msgstr "obsługa błędu"
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: OSTRZEŻENIE: Niewłaściwy separator wierszy, pewnie brak ^M"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: użyto :scriptencoding poza wczytywanym plikiem"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: użyto :finish poza wczytywanym plikiem"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "Bieżący %sjęzyk: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: Nie mogę ustawić języka na \"%s\""
+
+#, c-format
+msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
+msgstr "<%s>%s%s  %d,  Hex %02x,  Oktal %03o"
+
+#, c-format
+msgid "> %d, Hex %04x, Octal %o"
+msgstr "> %d, Hex %04x,  Oktal %o"
+
+#, c-format
+msgid "> %d, Hex %08x, Octal %o"
+msgstr "> %d, Hex %08x, Oktal %o"
+
+msgid "E134: Move lines into themselves"
+msgstr "E134: Przeniesienie wierszy na siebie samych"
+
+msgid "1 line moved"
+msgstr "1 wiersz przeniesiony"
+
+#, c-format
+msgid "%ld lines moved"
+msgstr "%ld wiersze przeniesione"
+
+#, c-format
+msgid "%ld lines filtered"
+msgstr "%ld wierszy przefiltrowanych"
+
+msgid "E135: *Filter* Autocommands must not change current buffer"
+msgstr "E135: Autokomendy *Filter* nie mogą zmieniać bieżącego bufora"
+
+msgid "[No write since last change]\n"
+msgstr "[Brak zapisu od czasu ostatniej zmiany]\n"
+
+#, c-format
+msgid "%sviminfo: %s in line: "
+msgstr "%sviminfo: %s w wierszu: "
+
+msgid "E136: viminfo: Too many errors, skipping rest of file"
+msgstr "E136: viminfo: Zbyt wiele błędów; pomijam resztę pliku"
+
+#, c-format
+msgid "Reading viminfo file \"%s\"%s%s%s"
+msgstr "Wczytuję plik viminfo \"%s\"%s%s%s"
+
+msgid " info"
+msgstr " informacja"
+
+msgid " marks"
+msgstr " zakładki"
+
+msgid " FAILED"
+msgstr " NIE POWIODŁO SIĘ"
+
+#, c-format
+msgid "E137: Viminfo file is not writable: %s"
+msgstr "E137: Plik viminfo jest niezapisywalny: %s"
+
+#, c-format
+msgid "E138: Can't write viminfo file %s!"
+msgstr "E138: Nie mogę zapisać pliku viminfo %s!"
+
+#, c-format
+msgid "Writing viminfo file \"%s\""
+msgstr "Zapisuję plik viminfo \"%s\""
+
+#. Write the info:
+#, c-format
+msgid "# This viminfo file was generated by Vim %s.\n"
+msgstr "# Ten plik viminfo został wygenerowany przez Vima %s.\n"
+
+#, c-format
+msgid ""
+"# You may edit it if you're careful!\n"
+"\n"
+msgstr ""
+"# Możesz go ostrożnie edytować!\n"
+"\n"
+
+#, c-format
+msgid "# Value of 'encoding' when this file was written\n"
+msgstr "# Wartość 'encoding' w czasie zapsu tego pliku\n"
+
+msgid "Illegal starting char"
+msgstr "Niedopuszczalny początkowy znak"
+
+msgid "Write partial file?"
+msgstr "Zapisać częściowo plik?"
+
+msgid "E140: Use ! to write partial buffer"
+msgstr "E140: Stosuj ! do zapisania częściowo bufora"
+
+#, c-format
+msgid "Overwrite existing file \"%s\"?"
+msgstr "Nadpisać istniejący plik \"%s\"?"
+
+#, c-format
+msgid "Swap file \"%s\" exists, overwrite anyway?"
+msgstr "Plik wymiany \"%s\" istnieje, czy go nadpisać?"
+
+#, c-format
+msgid "E768: Swap file exists: %s (:silent! overrides)"
+msgstr "E768: Plik wymiany istnieje: %s (wymuś poprzez :silent!)"
+
+#, c-format
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Brak nazwy pliku dla bufora %ld"
+
+msgid "E142: File not written: Writing is disabled by 'write' option"
+msgstr "E142: Plik niezapisany: Zapis jest wyłączony opcją 'write'"
+
+#, c-format
+msgid ""
+"'readonly' option is set for \"%s\".\n"
+"Do you wish to write anyway?"
+msgstr ""
+"opcja 'readonly' nastawiona dla \"%s\".\n"
+"Czy chcesz go pomimo tego zapisać?"
+
+msgid "Edit File"
+msgstr "Edytuj Plik"
+
+#, c-format
+msgid "E143: Autocommands unexpectedly deleted new buffer %s"
+msgstr "E143: Autokomendy nieoczekiwanie skasowały nowy bufor %s"
+
+msgid "E144: non-numeric argument to :z"
+msgstr "E144: nienumeryczny argument dla :z"
+
+msgid "E145: Shell commands not allowed in rvim"
+msgstr "E145: Komendy powłoki są niedozwolone w rvim"
+
+msgid "E146: Regular expressions can't be delimited by letters"
+msgstr "E146: Wzorce regularne nie mogą być rozgraniczane literami"
+
+#, c-format
+msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
+msgstr "zamień na %s (y/n/a/q/l/^E/^Y)?"
+
+msgid "(Interrupted) "
+msgstr "(Przerwane) "
+
+msgid "1 match"
+msgstr "1 pasuje"
+
+msgid "1 substitution"
+msgstr "1 podstawienie "
+
+#, c-format
+msgid "%ld matches"
+msgstr "%ld dopasowań"
+
+#, c-format
+msgid "%ld substitutions"
+msgstr "%ld podstawień"
+
+msgid " on 1 line"
+msgstr " w 1 wierszu"
+
+#, c-format
+msgid " on %ld lines"
+msgstr " w %ld wierszach"
+
+msgid "E147: Cannot do :global recursive"
+msgstr "E147: Nie mogę wykonać :global rekursywnie"
+
+msgid "E148: Regular expression missing from global"
+msgstr "E148: Brak wzorca regularnego w :global"
+
+# c-format
+#, c-format
+msgid "Pattern found in every line: %s"
+msgstr "Wzorzec znaleziono w każdym wierszu: %s"
+
+#, c-format
+msgid ""
+"\n"
+"# Last Substitute String:\n"
+"$"
+msgstr ""
+"\n"
+"# Ostatni podstawiany ciąg:\n"
+"$"
+
+msgid "E478: Don't panic!"
+msgstr "E478: Nie panikuj!"
+
+#, c-format
+msgid "E661: Sorry, no '%s' help for %s"
+msgstr "E661: Przykro mi, brak '%s' pomocy dla %s"
+
+#, c-format
+msgid "E149: Sorry, no help for %s"
+msgstr "E149: Przykro mi, ale brak pomocy o %s"
+
+#, c-format
+msgid "Sorry, help file \"%s\" not found"
+msgstr "Przykro mi, nie ma pliku pomocy \"%s\""
+
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: Nie jest katalogiem: %s"
+
+#, c-format
+msgid "E152: Cannot open %s for writing"
+msgstr "E152: Nie mogę otworzyć %s do zapisu"
+
+#, c-format
+msgid "E153: Unable to open %s for reading"
+msgstr "E153: Nie mogę otworzyć %s do odczytu"
+
+#, c-format
+msgid "E670: Mix of help file encodings within a language: %s"
+msgstr "E670: Mieszanka kodowań w pliku pomocy w ramach języka: %s"
+
+#, c-format
+msgid "E154: Duplicate tag \"%s\" in file %s/%s"
+msgstr "E154: Powtórzony znacznik \"%s\" w pliku %s/%s"
+
+#, c-format
+msgid "E160: Unknown sign command: %s"
+msgstr "E160: Nieznana komenda znaku: %s"
+
+msgid "E156: Missing sign name"
+msgstr "E156: Brak nazwy znaku"
+
+msgid "E612: Too many signs defined"
+msgstr "E255: Zbyt wiele nazw znaków"
+
+#, c-format
+msgid "E239: Invalid sign text: %s"
+msgstr "E239: Niewłaściwy tekst znaku: %s"
+
+#, c-format
+msgid "E155: Unknown sign: %s"
+msgstr "E155: Nieznany znak: %s"
+
+msgid "E159: Missing sign number"
+msgstr "E159: Brak numeru znaku"
+
+#, c-format
+msgid "E158: Invalid buffer name: %s"
+msgstr "E158: Niewłaściwa nazwa bufora: %s"
+
+#, c-format
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: Niewłaściwe ID znaku: %ld"
+
+msgid " (NOT FOUND)"
+msgstr " (NIE ZNALEZIONO)"
+
+msgid " (not supported)"
+msgstr "(nie wspomagane)"
+
+msgid "[Deleted]"
+msgstr "[Skasowano]"
+
+msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
+msgstr "Wchodzę w tryb Ex. Wprowadź \"visual\" aby przejść do trybu Normal."
+
+msgid "E501: At end-of-file"
+msgstr "E501: Na końcu pliku"
+
+msgid "E169: Command too recursive"
+msgstr "E169: Komenda zbyt rekursywna"
+
+#, c-format
+msgid "E605: Exception not caught: %s"
+msgstr "E605: Nie znaleziono wyjątku: %s"
+
+msgid "End of sourced file"
+msgstr "Koniec wczytywanego pliku"
+
+msgid "End of function"
+msgstr "Koniec funkcji"
+
+msgid "E464: Ambiguous use of user-defined command"
+msgstr "E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownika"
+
+msgid "E492: Not an editor command"
+msgstr "E492: Nie jest komendą edytora"
+
+msgid "E493: Backwards range given"
+msgstr "E493: Dano wsteczny zakres"
+
+msgid "Backwards range given, OK to swap"
+msgstr "Dano wsteczny zakres; zamiana jest możliwa"
+
+msgid "E494: Use w or w>>"
+msgstr "E494: Stosuj w lub w>>"
+
+msgid "E319: Sorry, the command is not available in this version"
+msgstr "E319: Przykro mi, ale ta komenda nie jest dostępna w tej wersji"
+
+msgid "E172: Only one file name allowed"
+msgstr "E172: Tylko pojedyncza nazwa pliku dozwolona"
+
+msgid "1 more file to edit.  Quit anyway?"
+msgstr "1 więcej plik do edycji.  Mimo to wyjść?"
+
+#, c-format
+msgid "%d more files to edit.  Quit anyway?"
+msgstr "jeszcze %d plików do edycji.  Mimo to wyjść?"
+
+msgid "E173: 1 more file to edit"
+msgstr "E173: 1 więcej plik do edycji"
+
+#, c-format
+msgid "E173: %ld more files to edit"
+msgstr "E173: jeszcze %ld plików do edycji"
+
+msgid "E174: Command already exists: add ! to replace it"
+msgstr "E174: Komenda już istnieje; aby ją przedefiniować stosuj !"
+
+msgid ""
+"\n"
+"    Name        Args Range Complete  Definition"
+msgstr ""
+"\n"
+"    Nazwa       Arg. Zak.  Gotowość  Definicja"
+
+msgid "No user-defined commands found"
+msgstr "Nie znaleziono komend zdefiniowanych przez użytkownika"
+
+msgid "E175: No attribute specified"
+msgstr "E175: Nie określono atrybutu"
+
+msgid "E176: Invalid number of arguments"
+msgstr "E176: Niewłaściwa ilość argumentów"
+
+msgid "E177: Count cannot be specified twice"
+msgstr "E177: Mnożnik nie może być podany dwukrotnie"
+
+msgid "E178: Invalid default value for count"
+msgstr "E178: Niewłaściwa domyślna wartość mnożnika"
+
+msgid "E179: argument required for -complete"
+msgstr "E179: -complete wymaga argumentu"
+
+#, c-format
+msgid "E181: Invalid attribute: %s"
+msgstr "E181: Niewłaściwy atrybut: %s"
+
+msgid "E182: Invalid command name"
+msgstr "E182: Niewłaściwa nazwa komendy"
+
+msgid "E183: User defined commands must start with an uppercase letter"
+msgstr ""
+"E183: Komendy zdefiniowane przez użytkownika muszą rozpoczynać się dużą "
+"literą"
+
+#, c-format
+msgid "E184: No such user-defined command: %s"
+msgstr "E184: Nie ma takiej komendy użytkownika: %s"
+
+#, c-format
+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"
+
+msgid "E467: Custom completion requires a function argument"
+msgstr "E467: Dopełnianie użytkownika wymaga funkcji jako argumentu"
+
+#, c-format
+msgid "E185: Cannot find color scheme %s"
+msgstr "E185: Nie mogę znaleźć zestawu kolorów %s"
+
+msgid "Greetings, Vim user!"
+msgstr "Witaj użytkowniku Vima!"
+
+msgid "E784: Cannot close last tab page"
+msgstr "E784: Nie mogę zamknąć ostatniej karty"
+
+msgid "Already only one tab page"
+msgstr "Jest już tylko jedna karta"
+
+msgid "Edit File in new window"
+msgstr "Edytuj plik w nowym oknie"
+
+#, c-format
+msgid "Tab page %d"
+msgstr "Karta %d"
+
+msgid "No swap file"
+msgstr "Brak pliku wymiany"
+
+msgid "Append File"
+msgstr "Dołącz plik"
+
+msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
+msgstr ""
+"E747: Nie mogę zmienić katalogu, bufor został zmodyfikowany (dodaj ! aby "
+"wymusić)"
+
+msgid "E186: No previous directory"
+msgstr "E186: Nie ma poprzedniego katalogu"
+
+msgid "E187: Unknown"
+msgstr "E187: Nieznany"
+
+msgid "E465: :winsize requires two number arguments"
+msgstr "E465: :winsize wymaga dwóch argumentów numerycznych"
+
+#, c-format
+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"
+
+msgid "E466: :winpos requires two number arguments"
+msgstr "E466: :winpos wymaga dwóch argumentów numerycznych"
+
+msgid "Save Redirection"
+msgstr "Zapisz przekierowanie"
+
+msgid "Save View"
+msgstr "Zapisz widok"
+
+msgid "Save Session"
+msgstr "Zapisz sesję"
+
+msgid "Save Setup"
+msgstr "Zapisz ustawienia"
+
+#, c-format
+msgid "E739: Cannot create directory: %s"
+msgstr "E739: Nie mogę utworzyć katalogu: %s"
+
+#, c-format
+msgid "E189: \"%s\" exists (add ! to override)"
+msgstr "E189: \"%s\" istnieje (wymuś poprzez !)"
+
+#, c-format
+msgid "E190: Cannot open \"%s\" for writing"
+msgstr "E190: Nie mogę otworzyć \"%s\" do zapisu"
+
+#. set mark
+msgid "E191: Argument must be a letter or forward/backward quote"
+msgstr "E191: Argument musi być literą albo cudzysłowem w przód/tył"
+
+msgid "E192: Recursive use of :normal too deep"
+msgstr "E192: Rekursywne zastosowanie :normal za głębokie"
+
+msgid "E194: No alternate file name to substitute for '#'"
+msgstr "E194: Brak nazwy zamiennego pliku do podstawienia pod '#'"
+
+msgid "E495: no autocommand file name to substitute for \"<afile>\""
+msgstr "E495: brak nazwy pliku autokomend do podstawienia pod \"<afile>\""
+
+msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
+msgstr "E496: brak numeru bufora autokomend do podstawienia pod  \"<abuf>\""
+
+msgid "E497: no autocommand match name to substitute for \"<amatch>\""
+msgstr "E497: brak nazwy dopasowania autokomend pod \"<amatch>\""
+
+msgid "E498: no :source file name to substitute for \"<sfile>\""
+msgstr "E498: brak nazwy pliku :source do postawienia pod \"<sfile>\""
+
+#, no-c-format
+msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
+msgstr "E499: Pusta nazwa pliku dla '%' lub '#', działa tylko z \":p:h\""
+
+msgid "E500: Evaluates to an empty string"
+msgstr "E500: Wynikiem jest pusty ciąg"
+
+msgid "E195: Cannot open viminfo file for reading"
+msgstr "E195: Nie mogę otworzyć pliku viminfo do odczytu"
+
+msgid "E196: No digraphs in this version"
+msgstr "E196: Brak dwugrafów w tej wersji"
+
+msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
+msgstr "E608: Nie można ':throw' wyjątków z prefiksem 'Vim'"
+
+#. always scroll up, don't overwrite
+#, c-format
+msgid "Exception thrown: %s"
+msgstr "Wyjątek: %s"
+
+#, c-format
+msgid "Exception finished: %s"
+msgstr "Wyjątek zakończony: %s"
+
+#, c-format
+msgid "Exception discarded: %s"
+msgstr "Wyjątek odrzucony: %s"
+
+#, c-format
+msgid "%s, line %ld"
+msgstr "%s, wiersz %ld"
+
+#. always scroll up, don't overwrite
+#, c-format
+msgid "Exception caught: %s"
+msgstr "Wyjątek przechwycony: %s"
+
+#, c-format
+msgid "%s made pending"
+msgstr "%s został zawieszony"
+
+#, c-format
+msgid "%s resumed"
+msgstr "%s przywrócony"
+
+#, c-format
+msgid "%s discarded"
+msgstr "%s odrzucony"
+
+msgid "Exception"
+msgstr "Wyjątek"
+
+msgid "Error and interrupt"
+msgstr "Błąd i przerwanie"
+
+msgid "Error"
+msgstr "Błąd"
+
+#. if (pending & CSTP_INTERRUPT)
+msgid "Interrupt"
+msgstr "Przerwanie"
+
+msgid "E579: :if nesting too deep"
+msgstr "E579: zbyt głębokie zagnieżdżenie :if"
+
+msgid "E580: :endif without :if"
+msgstr "E580: :endif bez :if"
+
+msgid "E581: :else without :if"
+msgstr "E581: :else bez :if"
+
+msgid "E582: :elseif without :if"
+msgstr "E582: :elseif bez :if"
+
+msgid "E583: multiple :else"
+msgstr "E583: wielokrotne :else"
+
+msgid "E584: :elseif after :else"
+msgstr "E584: :elseif po :else"
+
+msgid "E585: :while/:for nesting too deep"
+msgstr "E585: zbyt głębokie zagnieżdżenie :while/:for"
+
+msgid "E586: :continue without :while or :for"
+msgstr "E586: :continue bez :while lub :for"
+
+msgid "E587: :break without :while or :for"
+msgstr "E587: :break bez :while lub :for"
+
+msgid "E732: Using :endfor with :while"
+msgstr "E732: Użycie :endfor z :while"
+
+msgid "E733: Using :endwhile with :for"
+msgstr "E733: Użycie :endwhile z :for"
+
+msgid "E601: :try nesting too deep"
+msgstr "E601: zbyt głębokie zagnieżdżenie :try"
+
+msgid "E603: :catch without :try"
+msgstr "E603: :catch bez :try"
+
+#. Give up for a ":catch" after ":finally" and ignore it.
+#. * Just parse.
+msgid "E604: :catch after :finally"
+msgstr "E604: :catch za :finally"
+
+msgid "E606: :finally without :try"
+msgstr "E606: :finally bez :try"
+
+#. Give up for a multiple ":finally" and ignore it.
+msgid "E607: multiple :finally"
+msgstr "E607: wielokrotne :finally"
+
+msgid "E602: :endtry without :try"
+msgstr "E602: :endtry bez :try"
+
+msgid "E193: :endfunction not inside a function"
+msgstr "E193: :endfunction poza funkcją"
+
+msgid "tagname"
+msgstr "nazwa znacznika"
+
+msgid " kind file\n"
+msgstr " pokrewny plik\n"
+
+msgid "'history' option is zero"
+msgstr "opcja 'history' jest zerowa"
+
+#, c-format
+msgid ""
+"\n"
+"# %s History (newest to oldest):\n"
+msgstr ""
+"\n"
+"# %s Historia (od najnowszych po najstarsze):\n"
+
+msgid "Command Line"
+msgstr "Wiersz poleceń"
+
+msgid "Search String"
+msgstr "Szukany ciąg"
+
+msgid "Expression"
+msgstr "Wyrażenie"
+
+msgid "Input Line"
+msgstr "Wiersz wprowadzeń"
+
+msgid "E198: cmd_pchar beyond the command length"
+msgstr "E198: cmd_pchar przekracza długość polecenia"
+
+msgid "E199: Active window or buffer deleted"
+msgstr "E199: Aktywny widok lub bufor skasowany"
+
+msgid "Illegal file name"
+msgstr "Niedopuszczalna nazwa pliku"
+
+msgid "is a directory"
+msgstr "jest katalogiem"
+
+msgid "is not a file"
+msgstr "nie jest plikiem"
+
+msgid "[New File]"
+msgstr "[Nowy Plik]"
+
+msgid "[New DIRECTORY]"
+msgstr "[Nowy KATALOG]"
+
+msgid "[File too big]"
+msgstr "[Za duży plik]"
+
+msgid "[Permission Denied]"
+msgstr "[Nie dozwolono]"
+
+msgid "E200: *ReadPre autocommands made the file unreadable"
+msgstr "E200: Autokomendy *ReadPre zrobiły plik nieodczytywalnym"
+
+msgid "E201: *ReadPre autocommands must not change current buffer"
+msgstr "E201: Autokomendy *ReadPre nie mogą zmieniać bieżącego bufora"
+
+msgid "Vim: Reading from stdin...\n"
+msgstr "Vim: Wczytywanie ze stdin...\n"
+
+msgid "Reading from stdin..."
+msgstr "Wczytywanie ze stdin..."
+
+#. Re-opening the original file failed!
+msgid "E202: Conversion made file unreadable!"
+msgstr "E202: Plik stworzony poprzez przemianę jest nieodczytywalny!"
+
+msgid "[fifo/socket]"
+msgstr "[fifo/socket]"
+
+msgid "[fifo]"
+msgstr "[fifo]"
+
+msgid "[socket]"
+msgstr "[socket]"
+
+msgid "[RO]"
+msgstr "[RO]"
+
+msgid "[CR missing]"
+msgstr "[brak CR]'"
+
+msgid "[NL found]"
+msgstr "[znaleziono NL]"
+
+msgid "[long lines split]"
+msgstr "[długie wiersze rozdzielane]"
+
+msgid "[NOT converted]"
+msgstr "[NIE przemienione]"
+
+msgid "[converted]"
+msgstr "[przemienione]"
+
+msgid "[crypted]"
+msgstr "[zakodowane]"
+
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[BŁĄD W PRZEMIANIE w linii %ld]"
+
+#, c-format
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[NIEDOZWOLONY BAJT w wierszu %ld]"
+
+msgid "[READ ERRORS]"
+msgstr "[BŁĘDY W ODCZYCIE]"
+
+msgid "Can't find temp file for conversion"
+msgstr "Nie mogę znaleźć pliku tymczasowego w celu przemiany"
+
+msgid "Conversion with 'charconvert' failed"
+msgstr "Nieudana przemiana z 'charconvert'"
+
+msgid "can't read output of 'charconvert'"
+msgstr "nie mogę odczytać wyjścia z 'charconvert'"
+
+msgid "E676: No matching autocommands for acwrite buffer"
+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"
+
+msgid "E204: Autocommand changed number of lines in unexpected way"
+msgstr "E204: Autokomenda zmieniła liczbę wierszy w nieoczekiwany sposób"
+
+msgid "NetBeans dissallows writes of unmodified buffers"
+msgstr "NetBeans nie pozwala na zapis niezmodyfikowanych buforów"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Częściowy zapis niemożliwy dla buforów NetBeans"
+
+msgid "is not a file or writable device"
+msgstr "nie jest plikiem lub zapisywalnym przyrządem"
+
+msgid "is read-only (add ! to override)"
+msgstr "jest tylko do odczytu (wymuś poprzez !)"
+
+msgid "E506: Can't write to backup file (add ! to override)"
+msgstr "E506: Nie mogę zapisać do pliku zabezpieczenia (wymuś przez !)"
+
+msgid "E507: Close error for backup file (add ! to override)"
+msgstr "E507: Błąd podczas zamykania pliku zabezpieczenia (wymuś przez !)"
+
+msgid "E508: Can't read file for backup (add ! to override)"
+msgstr "E508: Nie mogę odczytać pliku w celu zabezpieczenia (wymuś przez !)"
+
+msgid "E509: Cannot create backup file (add ! to override)"
+msgstr "E509: Nie mogę stworzyć pliku zabezpieczenia (wymuś przez !)"
+
+msgid "E510: Can't make backup file (add ! to override)"
+msgstr "E510: Nie mogę zrobić pliku zabezpieczenia (wymuś przez !)"
+
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Rozdział zasobów zostanie utracony (wymuś przez !)"
+
+msgid "E214: Can't find temp file for writing"
+msgstr "E214: Nie mogę znaleźć pliku tymczasowego do zapisania"
+
+msgid "E213: Cannot convert (add ! to write without conversion)"
+msgstr "E213: Nie mogę przemienić (użyj ! by zapisać bez przemiany)"
+
+msgid "E166: Can't open linked file for writing"
+msgstr "E166: Nie mogę otworzyć podłączonego pliku do zapisu"
+
+msgid "E212: Can't open file for writing"
+msgstr "E212: Nie mogę otworzyć pliku do zapisu"
+
+msgid "E667: Fsync failed"
+msgstr "E667: Fsync nie powiódł się"
+
+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ć)"
+
+msgid "E514: write error (file system full?)"
+msgstr "E514: błąd w zapisie (może system plików jest przepełniony?)"
+
+msgid " CONVERSION ERROR"
+msgstr " BŁĄD W PRZEMIANIE"
+
+msgid "[Device]"
+msgstr "[Urządzenie]"
+
+msgid "[New]"
+msgstr "[Nowy]"
+
+msgid " [a]"
+msgstr " [a]"
+
+msgid " appended"
+msgstr " dołączono"
+
+msgid " [w]"
+msgstr " [w]"
+
+msgid " written"
+msgstr " zapisano"
+
+msgid "E205: Patchmode: can't save original file"
+msgstr "E205: Patchmode: nie mogę zapisać oryginalnego pliku"
+
+msgid "E206: patchmode: can't touch empty original file"
+msgstr "E206: patchmode: nie mogę stworzyć pustego oryginalnego pliku"
+
+msgid "E207: Can't delete backup file"
+msgstr "E207: Nie mogę skasować pliku zabezpieczenia"
+
+msgid ""
+"\n"
+"WARNING: Original file may be lost or damaged\n"
+msgstr ""
+"\n"
+"OSTRZEŻENIE: Oryginalny plik może zostać utracony lub uszkodzony\n"
+
+msgid "don't quit the editor until the file is successfully written!"
+msgstr "nie wychodź edytora, dopóki plik nie został poprawnie zapisany!"
+
+msgid "[dos]"
+msgstr "[dos]"
+
+msgid "[dos format]"
+msgstr "[format dos-a]"
+
+msgid "[mac]"
+msgstr "[mac]"
+
+msgid "[mac format]"
+msgstr "[format mac-a]"
+
+msgid "[unix]"
+msgstr "[unix]"
+
+msgid "[unix format]"
+msgstr "[format unix-a]"
+
+msgid "1 line, "
+msgstr "1 wiersz, "
+
+#, c-format
+msgid "%ld lines, "
+msgstr "%ld wierszy, "
+
+msgid "1 character"
+msgstr "1 znak"
+
+#, c-format
+msgid "%ld characters"
+msgstr "%ld znaków"
+
+msgid "[noeol]"
+msgstr "[noeol]"
+
+msgid "[Incomplete last line]"
+msgstr "[Niekompletny ostatni wiersz]"
+
+#. don't overwrite messages here
+#. must give this prompt
+#. don't use emsg() here, don't want to flush the buffers
+msgid "WARNING: The file has been changed since reading it!!!"
+msgstr "OSTRZEŻENIE: Plik zmienił się od czasu ostatniego odczytu!!!"
+
+msgid "Do you really want to write to it"
+msgstr "Czy naprawdę chcesz go zapisać"
+
+#, c-format
+msgid "E208: Error writing to \"%s\""
+msgstr "E208: Błąd zapisywania do \"%s\""
+
+#, c-format
+msgid "E209: Error closing \"%s\""
+msgstr "E209: Błąd w trakcie zamykania \"%s\""
+
+#, c-format
+msgid "E210: Error reading \"%s\""
+msgstr "E210: Błąd odczytu \"%s\""
+
+msgid "E246: FileChangedShell autocommand deleted buffer"
+msgstr "E246: Autokomenda FileChangedShell skasowała bufor"
+
+#, c-format
+msgid "E211: File \"%s\" no longer available"
+msgstr "E211: Plik \"%s\" nie jest dłużej dostępny"
+
+#, c-format
+msgid ""
+"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
+"well"
+msgstr ""
+"W12: OSTRZEŻENIE: Plik \"%s\" zmienił się od czasu rozpoczęcia edycji, bufor "
+"w Vimie również został zmieniony"
+
+msgid "See \":help W12\" for more info."
+msgstr "Zobacz \":help W12\"  dla dalszych informacji."
+
+#, c-format
+msgid "W11: Warning: File \"%s\" has changed since editing started"
+msgstr "W11: OSTRZEŻENIE: Plik \"%s\" zmienił się od czasu rozpoczęcia edycji"
+
+msgid "See \":help W11\" for more info."
+msgstr "Zobacz \":help W11\"  dla dalszych informacji."
+
+#, 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"
+
+msgid "See \":help W16\" for more info."
+msgstr "Zobacz \":help W16\"  dla dalszych informacji."
+
+#, c-format
+msgid "W13: Warning: File \"%s\" has been created after editing started"
+msgstr "W13: OSTRZEŻENIE: Plik \"%s\" został stworzony po rozpoczęciu edycji"
+
+msgid "Warning"
+msgstr "OSTRZEŻENIE"
+
+msgid ""
+"&OK\n"
+"&Load File"
+msgstr ""
+"&OK\n"
+"&Załaduj Plik"
+
+#, c-format
+msgid "E462: Could not prepare for reloading \"%s\""
+msgstr "E462: Nie można przygotować przeładowania \"%s\""
+
+#, c-format
+msgid "E321: Could not reload \"%s\""
+msgstr "E321: Nie można przeładować \"%s\""
+
+msgid "--Deleted--"
+msgstr "--Skasowano--"
+
+#, c-format
+msgid "auto-removing autocommand: %s <buffer=%d>"
+msgstr "auto-usuwanie autokomendy: %s <buffer=%d>"
+
+#. the group doesn't exist
+#, c-format
+msgid "E367: No such group: \"%s\""
+msgstr "E367: Nie ma takiej grupy: \"%s\""
+
+#, c-format
+msgid "E215: Illegal character after *: %s"
+msgstr "E215: Niedopuszczalny znak po *: %s"
+
+#, c-format
+msgid "E216: No such event: %s"
+msgstr "E216: Nie ma takiego wydarzenia: %s"
+
+#, c-format
+msgid "E216: No such group or event: %s"
+msgstr "E216: Nie ma takiej grupy lub wydarzenia: %s"
+
+#. Highlight title
+msgid ""
+"\n"
+"--- Auto-Commands ---"
+msgstr ""
+"\n"
+"--- Autokomendy ---"
+
+#, c-format
+msgid "E680: <buffer=%d>: invalid buffer number "
+msgstr "E680: <buffer=%d>: niewłaściwy numer bufora"
+
+msgid "E217: Can't execute autocommands for ALL events"
+msgstr "E217: Nie można wykonywać autokomend dla wydarzeń ALL"
+
+msgid "No matching autocommands"
+msgstr "Brak pasujących autokomend"
+
+msgid "E218: autocommand nesting too deep"
+msgstr "E218: zbyt głębokie zagnieżdżenie autokomend"
+
+#, c-format
+msgid "%s Auto commands for \"%s\""
+msgstr "%s Autokomend dla \"%s\""
+
+#, c-format
+msgid "Executing %s"
+msgstr "Wykonuję %s"
+
+#, c-format
+msgid "autocommand %s"
+msgstr "autokomenda %s"
+
+msgid "E219: Missing {."
+msgstr "E219: Brak {."
+
+msgid "E220: Missing }."
+msgstr "E220: Brak }."
+
+msgid "E490: No fold found"
+msgstr "E490: Nie znaleziono zwinięcia"
+
+msgid "E350: Cannot create fold with current 'foldmethod'"
+msgstr "E350: Nie można utworzyć zwinięcia przy bieżącej 'foldmethod'"
+
+msgid "E351: Cannot delete fold with current 'foldmethod'"
+msgstr "E351: Nie można skasować zwinięcia przy bieżącej 'foldmethod'"
+
+#, c-format
+msgid "+--%3ld lines folded "
+msgstr "+--%3ld wierszy zwinięto "
+
+msgid "E222: Add to read buffer"
+msgstr "E222: Dodaj do bufora odczytu"
+
+msgid "E223: recursive mapping"
+msgstr "E223: rekursywne przyporządkowanie"
+
+#, c-format
+msgid "E224: global abbreviation already exists for %s"
+msgstr "E224: istnieje już globalny skrót dla %s"
+
+#, c-format
+msgid "E225: global mapping already exists for %s"
+msgstr "E225: istnieje już globalne przyporządkowanie dla %s"
+
+#, c-format
+msgid "E226: abbreviation already exists for %s"
+msgstr "E226: istnieje już skrót dla %s"
+
+#, c-format
+msgid "E227: mapping already exists for %s"
+msgstr "E227: istnieje już przyporządkowanie dla %s"
+
+msgid "No abbreviation found"
+msgstr "Nie znaleziono skrótu"
+
+msgid "No mapping found"
+msgstr "Nie znaleziono przyporządkowania"
+
+msgid "E228: makemap: Illegal mode"
+msgstr "E228: makemap: Niedopuszczalny tryb"
+
+msgid "<cannot open> "
+msgstr "<nie mogę otworzyć> "
+
+#, c-format
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: nie mogę otrzymać czcionki %s"
+
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: nie mogę powrócić do bieżącego katalogu"
+
+msgid "Pathname:"
+msgstr "Trop:"
+
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: nie mogę otrzymać bieżącego katalogu"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Cancel"
+msgstr "Zakończ"
+
+msgid "Vim dialog"
+msgstr "VIM - Dialog"
+
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "Scrollbar Widget: Nie mogłem otrzymać rozmiarów rysunku na przycisku."
+
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: Nie mogę stworzyć BalloonEval z powiadomieniem i wywołaniem"
+
+msgid "E229: Cannot start the GUI"
+msgstr "E229: Nie mogę odpalić GUI"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: Nie mogę czytać z \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: Nie można uruchomić GUI, brak prawidłowej czcionki"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: Niewłaściwe 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: Nieprawidłowa wartość 'imactivatekey'"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: Nie mogę zarezerwować koloru %s"
+
+msgid "No match at cursor, finding next"
+msgstr "Brak dopasowania przy kursorze, szukam dalej"
+
+msgid "Vim dialog..."
+msgstr "Dialog Vima..."
+
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
+msgstr ""
+"&Tak\n"
+"&Nie\n"
+"&Zakończ"
+
+msgid "Input _Methods"
+msgstr "Input _Methods"
+
+msgid "VIM - Search and Replace..."
+msgstr "VIM - Szukaj i Zamieniaj..."
+
+msgid "VIM - Search..."
+msgstr "VIM - Szukaj..."
+
+msgid "Find what:"
+msgstr "Znajdź:"
+
+msgid "Replace with:"
+msgstr "Zamień na:"
+
+#. whole word only button
+msgid "Match whole word only"
+msgstr "Dopasuj tylko całe wyrazy"
+
+#. match case button
+msgid "Match case"
+msgstr "Dopasuj wielkość liter"
+
+msgid "Direction"
+msgstr "Kierunek"
+
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr "W górę"
+
+msgid "Down"
+msgstr "W dół"
+
+msgid "Find Next"
+msgstr "Znajdź następne"
+
+msgid "Replace"
+msgstr "Zamień"
+
+msgid "Replace All"
+msgstr "Zamień wszystkie"
+
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: otrzymano żądanie \"die\" od manadżera sesji\n"
+
+msgid "Close"
+msgstr "Zamknij"
+
+msgid "New tab"
+msgstr "Nowa karta"
+
+msgid "Open Tab..."
+msgstr "Otwórz kartę..."
+
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Główne okno nieoczekiwanie zniszczone\n"
+
+msgid "Font Selection"
+msgstr "Wybór czcionki"
+
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "Używam CUT_BUFFER0 zamiast pustego wyboru"
+
+msgid "&Filter"
+msgstr "&Filtr"
+
+msgid "&Cancel"
+msgstr "&Anuluj"
+
+msgid "Directories"
+msgstr "Katalogi"
+
+msgid "Filter"
+msgstr "Filtr"
+
+msgid "&Help"
+msgstr "&Pomoc"
+
+msgid "Files"
+msgstr "Pliki"
+
+msgid "&OK"
+msgstr "&OK"
+
+msgid "Selection"
+msgstr "Wybór"
+
+msgid "Find &Next"
+msgstr "Znajdź &następne"
+
+msgid "&Replace"
+msgstr "&Zamień"
+
+msgid "Replace &All"
+msgstr "Zamień &wszystko"
+
+msgid "&Undo"
+msgstr "&Cofnij"
+
+#, c-format
+msgid "E610: Can't load Zap font '%s'"
+msgstr "E610: Nie mogę załadować czcionki Zap '%s'"
+
+#, c-format
+msgid "E611: Can't use font %s"
+msgstr "E611: Nie mogę użyć czcionki %s"
+
+msgid ""
+"\n"
+"Sending message to terminate child process.\n"
+msgstr ""
+"\n"
+"Wysyłam zawiadomienie kończące proces pochodny.\n"
+
+#, c-format
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: Nie mogę znaleźć tytułu okna \"%s\""
+
+#, c-format
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: Argument nie jest wspomagany: \"-%s\"; Używaj wersji OLE."
+
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: Nie można otworzyć okna wewnątrz aplikacji MDI"
+
+msgid "Close tab"
+msgstr "Zamknij kartę"
+
+msgid "Open tab..."
+msgstr "Otwórz kartę..."
+
+msgid "Find string (use '\\\\' to find  a '\\')"
+msgstr "Znajdź ciąg (użyj '\\\\' do szukania '\\')"
+
+msgid "Find & Replace (use '\\\\' to find  a '\\')"
+msgstr "Szukanie i Zamiana (użyj '\\\\' do szukania '\\')"
+
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Nie używany"
+
+msgid "Directory\t*.nothing\n"
+msgstr "Katalog\t*.nic\n"
+
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr ""
+"Vim E458: Nie mogę zarezerwować mapy kolorów, pewne kolory mogą być "
+"nieprawidłowe"
+
+#, 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:"
+
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: Nazwa zestawu czcionek: %s"
+
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "Czcionka '%s' nie posiada znaków jednolitej szerokości"
+
+#, c-format
+msgid "E253: Fontset name: %s\n"
+msgstr "E253: Nazwa zestawu czcionek: %s\n"
+
+#, c-format
+msgid "Font0: %s\n"
+msgstr "Font0: %s\n"
+
+#, c-format
+msgid "Font1: %s\n"
+msgstr "Font1: %s\n"
+
+#, c-format
+msgid "Font%ld width is not twice that of font0\n"
+msgstr "Szerokość font%ld nie jest podwójną szerokością font0\n"
+
+#, c-format
+msgid "Font0 width: %ld\n"
+msgstr "Szerokość font0: %ld\n"
+
+#, c-format
+msgid ""
+"Font1 width: %ld\n"
+"\n"
+msgstr ""
+"Szerokość font1: %ld\n"
+"\n"
+
+msgid "Invalid font specification"
+msgstr "Nieprawidłowy opis czcionki"
+
+msgid "&Dismiss"
+msgstr "&Anuluj"
+
+msgid "no specific match"
+msgstr "brak określonego dopasowania"
+
+msgid "Vim - Font Selector"
+msgstr "Vim - wybór czcionki"
+
+msgid "Name:"
+msgstr "Nazwa:"
+
+#. create toggle button
+msgid "Show size in Points"
+msgstr "Pokaż wielkość w punktach"
+
+msgid "Encoding:"
+msgstr "Kodowanie:"
+
+msgid "Font:"
+msgstr "Czcionka:"
+
+msgid "Style:"
+msgstr "Styl:"
+
+msgid "Size:"
+msgstr "Wielkość:"
+
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: BŁĄD w automacie Hangul"
+
+msgid "E550: Missing colon"
+msgstr "E550: Brak dwukropka"
+
+msgid "E551: Illegal component"
+msgstr "E551: Niedozwolona część"
+
+msgid "E552: digit expected"
+msgstr "E552: oczekiwano cyfry"
+
+#, c-format
+msgid "Page %d"
+msgstr "Strona %d"
+
+msgid "No text to be printed"
+msgstr "Brak tekstu do drukowania"
+
+#, c-format
+msgid "Printing page %d (%d%%)"
+msgstr "Drukuję stronę %d (%d%%)"
+
+#, c-format
+msgid " Copy %d of %d"
+msgstr " Kopia %d z %d"
+
+#, c-format
+msgid "Printed: %s"
+msgstr "Wydrukowano: %s"
+
+msgid "Printing aborted"
+msgstr "Drukowanie odwołane"
+
+msgid "E455: Error writing to PostScript output file"
+msgstr "E455: Nie można zapisać do wyjściowego pliku PostScriptu"
+
+#, c-format
+msgid "E624: Can't open file \"%s\""
+msgstr "E624: Nie mogę otworzyć pliku \"%s\""
+
+#, c-format
+msgid "E457: Can't read PostScript resource file \"%s\""
+msgstr "E457: Nie można odczytać pliku zasobów PostScriptu \"%s\""
+
+#, c-format
+msgid "E618: file \"%s\" is not a PostScript resource file"
+msgstr "E618: plik \"%s\" nie jest plikiem zasobów PostScriptu"
+
+#, c-format
+msgid "E619: file \"%s\" is not a supported PostScript resource file"
+msgstr "E619: plik \"%s\" nie jest wspieranym plikiem zasobów PostScriptu"
+
+#, c-format
+msgid "E621: \"%s\" resource file has wrong version"
+msgstr "E621: \"%s\" nieprawidłowa wersja pliku zasobów"
+
+msgid "E673: Incompatible multi-byte encoding and character set."
+msgstr "E673: Niekompatybilne kodowanie wielobajtowe i zestaw znaków."
+
+msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
+msgstr "E674: printmbcharset nie może być pusty przy kodowaniu wielobajtowym."
+
+msgid "E675: No default font specified for multi-byte printing."
+msgstr "E675: Nie określono domyślnej czcionki dla drukowania wielobajtowego."
+
+msgid "E324: Can't open PostScript output file"
+msgstr "E324: Nie można otworzyć pliku PostScript do wyjścia"
+
+#, c-format
+msgid "E456: Can't open file \"%s\""
+msgstr "E456: Nie mogę otworzyć pliku \"%s\""
+
+msgid "E456: Can't find PostScript resource file \"prolog.ps\""
+msgstr "E456: Nie można znaleźć pliku zasobów PostScriptu \"prolog.ps\""
+
+msgid "E456: Can't find PostScript resource file \"cidfont.ps\""
+msgstr "E456: Nie można znaleźć pliku zasobów PostScriptu \"cidfont.ps\""
+
+#, c-format
+msgid "E456: Can't find PostScript resource file \"%s.ps\""
+msgstr "E456: Nie można znaleźć pliku zasobów PostScriptu \"%s.ps\""
+
+#, c-format
+msgid "E620: Unable to convert to print encoding \"%s\""
+msgstr "E620: Nie można przekonwertować by drukować kodowanie \"%s\""
+
+msgid "Sending to printer..."
+msgstr "Przesyłam do drukarki..."
+
+msgid "E365: Failed to print PostScript file"
+msgstr "E365: Drukowanie pliku PostScript nie powiodło się"
+
+msgid "Print job sent."
+msgstr "Zadanie drukowanie przesłane."
+
+msgid "Add a new database"
+msgstr "Dodaj nową bazę danych"
+
+msgid "Query for a pattern"
+msgstr "Zapytane o wzorzec"
+
+msgid "Show this message"
+msgstr "Pokaż ten komunikat"
+
+msgid "Kill a connection"
+msgstr "Zabij połączenie"
+
+msgid "Reinit all connections"
+msgstr "Ponów wszelkie połączenia"
+
+msgid "Show connections"
+msgstr "Pokaż połączenia"
+
+#, c-format
+msgid "E560: Usage: cs[cope] %s"
+msgstr "E560: Zastosowanie: cs[cope] %s"
+
+msgid "This cscope command does not support splitting the window.\n"
+msgstr "Ta komenda cscope nie wspomaga podzielenia okna.\n"
+
+msgid "E562: Usage: cstag <ident>"
+msgstr "E562: Zastosowanie: cstag <ident>"
+
+msgid "E257: cstag: tag not found"
+msgstr "E257: cstag: nie znaleziono znacznika"
+
+#, c-format
+msgid "E563: stat(%s) error: %d"
+msgstr "E563: stat(%s) błąd: %d"
+
+msgid "E563: stat error"
+msgstr "E563: błąd stat"
+
+#, c-format
+msgid "E564: %s is not a directory or a valid cscope database"
+msgstr "E564: %s nie jest katalogiem lub poprawną bazą danych cscope"
+
+#, c-format
+msgid "Added cscope database %s"
+msgstr "Dodano bazę danych cscope %s"
+
+#, c-format
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: błąd odczytu połączenia z cscope %ld"
+
+msgid "E561: unknown cscope search type"
+msgstr "E561: nieznany typ szukania cscope"
+
+msgid "E566: Could not create cscope pipes"
+msgstr "E566: Nie mogłem stworzyć potoku do cscope"
+
+msgid "E622: Could not fork for cscope"
+msgstr "E622: Nie mogłem utworzyć rozwidlenia dla cscope"
+
+msgid "cs_create_connection exec failed"
+msgstr "wykonanie cs_create_connection nie powiodło się"
+
+msgid "E623: Could not spawn cscope process"
+msgstr "E623: Nie mogłem stworzyć procesu cscope"
+
+msgid "cs_create_connection: fdopen for to_fp failed"
+msgstr "cs_create_connection: fdopen dla to_fp nie powiodło się"
+
+msgid "cs_create_connection: fdopen for fr_fp failed"
+msgstr "cs_create_connection: fdopen dla fr_fp nie powiodło się"
+
+msgid "E567: no cscope connections"
+msgstr "E567: brak połączenia z cscope"
+
+#, c-format
+msgid "E259: no matches found for cscope query %s of %s"
+msgstr "E259: brak dopasowań dla zapytania cscope %s o %s"
+
+#, c-format
+msgid "E469: invalid cscopequickfix flag %c for %c"
+msgstr "E469: nieprawidłowa flaga cscopequickfix %c dla %c"
+
+msgid "cscope commands:\n"
+msgstr "komendy cscope:\n"
+
+#, c-format
+msgid "%-5s: %-30s (Usage: %s)"
+msgstr "%-5s: %-30s (Użycie: %s)"
+
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: nie mogę otworzyć bazy danych cscope: %s"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: nie mogę uzyskać informacji z bazy danych cscope"
+
+msgid "E568: duplicate cscope database not added"
+msgstr "E568: nie dodano duplikatu bazy danych cscope"
+
+msgid "E569: maximum number of cscope connections reached"
+msgstr "E569: wyczerpano maksymalną liczbę połączeń cscope"
+
+#, c-format
+msgid "E261: cscope connection %s not found"
+msgstr "E261: nie ma połączenia %s z cscope"
+
+#, c-format
+msgid "cscope connection %s closed"
+msgstr "połączenie %s z cscope zostało zamknięte"
+
+#. should not reach here
+msgid "E570: fatal error in cs_manage_matches"
+msgstr "E570: błąd krytyczny w cs_manage_matches"
+
+#, c-format
+msgid "Cscope tag: %s"
+msgstr "Znacznik cscope: %s"
+
+msgid ""
+"\n"
+"   #   line"
+msgstr ""
+"\n"
+"   #   wiersz"
+
+msgid "filename / context / line\n"
+msgstr "nazwa pliku  / kontekst / wiersz\n"
+
+#, c-format
+msgid "E609: Cscope error: %s"
+msgstr "E609: Błąd cscope: %s"
+
+msgid "All cscope databases reset"
+msgstr "Wszystkie bazy danych cscope przeładowano"
+
+msgid "no cscope connections\n"
+msgstr "brak połączeń z cscope\n"
+
+msgid " # pid    database name                       prepend path\n"
+msgstr " # pid   nazwa bazy danych               przedsionek tropu\n"
+
+msgid ""
+"???: Sorry, this command is disabled, the MzScheme library could not be "
+"loaded."
+msgstr ""
+"???: Przykro mi, ta komenda jest wyłączona, biblioteka MzScheme nie może być "
+"załadowana."
+
+msgid "invalid expression"
+msgstr "niepoprawne wyrażenie"
+
+msgid "expressions disabled at compile time"
+msgstr "wyrażenia wyłączone podczas kompilacji"
+
+msgid "hidden option"
+msgstr "ukryta opcja"
+
+msgid "unknown option"
+msgstr "nieznana opcja"
+
+msgid "window index is out of range"
+msgstr "indeks okna poza zakresem"
+
+msgid "couldn't open buffer"
+msgstr "nie mogę otworzyć bufora"
+
+msgid "cannot save undo information"
+msgstr "nie mogę zachować informacji cofania"
+
+msgid "cannot delete line"
+msgstr "nie mogę skasować wiersza"
+
+msgid "cannot replace line"
+msgstr "nie mogę zamienić wiersza"
+
+msgid "cannot insert line"
+msgstr "nie mogę wprowadzić wiersza"
+
+msgid "string cannot contain newlines"
+msgstr "ciąg nie może zawierać znaków nowego wiersza"
+
+msgid "Vim error: ~a"
+msgstr "Błąd vima: ~a"
+
+msgid "Vim error"
+msgstr "Błąd Vima"
+
+msgid "buffer is invalid"
+msgstr "bufor jest nieważny"
+
+msgid "window is invalid"
+msgstr "okno jest nieważne"
+
+msgid "linenr out of range"
+msgstr "numer wiersza poza zakresem"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "Niedozwolone w piaskownicy Vima"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: Przykro mi, ta komenda jest wyłączona, bo nie można załadować "
+"biblioteki Pythona"
+
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Nie można wywołać Pythona rekursywnie"
+
+msgid "can't delete OutputObject attributes"
+msgstr "nie mogę skasować atrybutów OutputObject"
+
+msgid "softspace must be an integer"
+msgstr "softspace musi być liczbą całkowitą"
+
+msgid "invalid attribute"
+msgstr "niepoprawny atrybut"
+
+msgid "writelines() requires list of strings"
+msgstr "writelines() wymaga listy ciągów"
+
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python: Błąd w inicjalizacji obiektów I/O"
+
+msgid "attempt to refer to deleted buffer"
+msgstr "próba odniesienia do skasowanego bufora"
+
+msgid "line number out of range"
+msgstr "numer wiersza poza zakresem"
+
+#, c-format
+msgid "<buffer object (deleted) at %8lX>"
+msgstr "<obiekt bufora (skasowany) w %8lX>"
+
+msgid "invalid mark name"
+msgstr "niepoprawna nazwa zakładki"
+
+msgid "no such buffer"
+msgstr "nie ma takiego bufora"
+
+msgid "attempt to refer to deleted window"
+msgstr "próba odniesienia do skasowanego okna"
+
+msgid "readonly attribute"
+msgstr "atrybut tylko do odczytu"
+
+msgid "cursor position outside buffer"
+msgstr "pozycja kursora poza buforem"
+
+#, c-format
+msgid "<window object (deleted) at %.8lX>"
+msgstr "<obiekt okna (skasowany) w %.8lX>"
+
+#, c-format
+msgid "<window object (unknown) at %.8lX>"
+msgstr "<obiekt okna (nieznany) w %.8lX>"
+
+#, c-format
+msgid "<window %d>"
+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."
+msgstr ""
+"E263: Przykro mi, ta komenda jest wyłączona, bo nie można załadować "
+"biblioteki Ruby."
+
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: Nieznany status longjmp %d"
+
+msgid "Toggle implementation/definition"
+msgstr "Przełącz między implementacją/określeniem"
+
+msgid "Show base class of"
+msgstr "Pokaż bazę klasy"
+
+msgid "Show overridden member function"
+msgstr "Pokaż przepisaną funkcję członkową"
+
+msgid "Retrieve from file"
+msgstr "Pobieraj z pliku"
+
+msgid "Retrieve from project"
+msgstr "Pobieraj z projektu"
+
+msgid "Retrieve from all projects"
+msgstr "Pobieraj z wszystkich projektów"
+
+msgid "Retrieve"
+msgstr "Pobierz"
+
+msgid "Show source of"
+msgstr "Pokaż źródło dla"
+
+msgid "Find symbol"
+msgstr "Znajdź symbol"
+
+msgid "Browse class"
+msgstr "Przejrzyj klasę"
+
+msgid "Show class in hierarchy"
+msgstr "Pokaż klasę w hierarchii"
+
+msgid "Show class in restricted hierarchy"
+msgstr "Pokaż klasę w ograniczonej hierarchii"
+
+msgid "Xref refers to"
+msgstr "Xref odnosi się do"
+
+msgid "Xref referred by"
+msgstr "Xref ma odniesienia od"
+
+msgid "Xref has a"
+msgstr "Xref ma"
+
+msgid "Xref used by"
+msgstr "Xref użyte przez"
+
+msgid "Show docu of"
+msgstr "Pokaż dokumentację dla"
+
+msgid "Generate docu for"
+msgstr "Wygeneruj dokumentację dla"
+
+msgid ""
+"Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
+"$PATH).\n"
+msgstr ""
+"Nie mogę podłączyć do SNiFF+. Sprawdź środowisko (sniffemacs musi być "
+"odnaleziony w $PATH).\n"
+
+msgid "E274: Sniff: Error during read. Disconnected"
+msgstr "E274: Sniff: Błąd podczas czytania. Rozłączenie"
+
+msgid "SNiFF+ is currently "
+msgstr "SNiFF+ jest obecnie "
+
+msgid "not "
+msgstr "nie "
+
+msgid "connected"
+msgstr "podłączony"
+
+#, c-format
+msgid "E275: Unknown SNiFF+ request: %s"
+msgstr "E275: Nieznane zapytanie SNiFF+: %s"
+
+msgid "E276: Error connecting to SNiFF+"
+msgstr "E276: Błąd w trakcie podłączania do SNiFF+"
+
+msgid "E278: SNiFF+ not connected"
+msgstr "E278: SNiFF+ niepodłączony"
+
+msgid "E279: Not a SNiFF+ buffer"
+msgstr "E279: Nie jest buforem SNiFF+"
+
+msgid "Sniff: Error during write. Disconnected"
+msgstr "Sniff: Błąd w trakcie zapisu. Rozłączony"
+
+msgid "invalid buffer number"
+msgstr "niewłaściwy numer bufora"
+
+msgid "not implemented yet"
+msgstr "obecnie nie zaimplementowano"
+
+#. ???
+msgid "cannot set line(s)"
+msgstr "nie mogę ustawić wiersza(y)"
+
+msgid "mark not set"
+msgstr "zakładka nie ustawiona"
+
+#, c-format
+msgid "row %d column %d"
+msgstr "wiersz %d kolumna %d"
+
+msgid "cannot insert/append line"
+msgstr "nie mogę wprowadzić/dołączyć wiersza"
+
+msgid "unknown flag: "
+msgstr "nieznana flaga: "
+
+msgid "unknown vimOption"
+msgstr "nieznane vimOption"
+
+msgid "keyboard interrupt"
+msgstr "przerwanie klawiatury"
+
+msgid "vim error"
+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"
+msgstr ""
+"nie mogę zarejestrować wstecznego wywołania komendy: bufor/okno już została "
+"skasowana"
+
+#. This should never happen.  Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: TCL FATALNY BŁĄD: reflist zepsuta!? Proszę złożyć raport o tym na vim-"
+"dev@vim.org"
+
+msgid "cannot register callback command: buffer/window reference not found"
+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"
+msgstr ""
+"E281: BŁĄD TCL: kod zakończeniowy nie jest całkowity!? Proszę złożyć raport "
+"o tym na vim-dev@vim.org"
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: kod wyjścia %d"
+
+msgid "cannot get line"
+msgstr "nie mogę dostać wiersza"
+
+msgid "Unable to register a command server name"
+msgstr "Nie mogę zarejestrować nazwy serwera komend"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: Wysłanie komendy do programu docelowego nie powiodło się"
+
+#, c-format
+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!"
+
+msgid "Unknown option argument"
+msgstr "Nieznany argument opcji"
+
+msgid "Too many edit arguments"
+msgstr "Zbyt wiele argumentów"
+
+msgid "Argument missing after"
+msgstr "Brak argumentu po"
+
+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\""
+
+msgid "Invalid argument for"
+msgstr "Niewłaściwy argument dla"
+
+#, c-format
+msgid "%d files to edit\n"
+msgstr "%d plików do edycji\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Ta wersja Vima nie była skompilowanego z opcją różnic (diff)."
+
+msgid "Attempt to open script file again: \""
+msgstr "Próba ponownego otworzenia pliku skryptu: \""
+
+msgid "Cannot open for reading: \""
+msgstr "Nie mogę otworzyć do odczytu: \""
+
+msgid "Cannot open for script output: \""
+msgstr "Nie mogę otworzyć dla wyjścia skryptu: \""
+
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: Błąd: Nie można uruchomić gvim z NetBeans\n"
+
+msgid "Vim: Warning: Output is not to a terminal\n"
+msgstr "Vim: OSTRZEŻENIE: Wyjście nie jest terminalem\n"
+
+msgid "Vim: Warning: Input is not from a terminal\n"
+msgstr "Vim: OSTRZEŻENIE: Wejście nie pochodzi z terminala\n"
+
+#. just in case..
+msgid "pre-vimrc command line"
+msgstr "linia poleceń pre-vimrc"
+
+#, c-format
+msgid "E282: Cannot read from \"%s\""
+msgstr "E282: Nie mogę czytać z \"%s\""
+
+msgid ""
+"\n"
+"More info with: \"vim -h\"\n"
+msgstr ""
+"\n"
+"Dalsze informacje poprzez: \"vim -h\"\n"
+
+msgid "[file ..]       edit specified file(s)"
+msgstr "[plik ..]       edytuj zadane pliki"
+
+msgid "-               read text from stdin"
+msgstr "-               czytaj tekst ze stdin"
+
+msgid "-t tag          edit file where tag is defined"
+msgstr "-t znacznik   edytuj plik, w którym dany znacznik jest zdefiniowany"
+
+msgid "-q [errorfile]  edit file with first error"
+msgstr "-q [errorfile]  edytuj plik, zawierający pierwszy błąd"
+
+msgid ""
+"\n"
+"\n"
+"usage:"
+msgstr ""
+"\n"
+"\n"
+"użycie:"
+
+msgid " vim [arguments] "
+msgstr " vim [argumenty]"
+
+msgid ""
+"\n"
+"   or:"
+msgstr ""
+"\n"
+"   lub:"
+
+msgid "where case is ignored prepend / to make flag upper case"
+msgstr ""
+"gdzie wielkość znaków jest ignorowana dodaj na początku / by flaga była "
+"wielką literą"
+
+msgid ""
+"\n"
+"\n"
+"Arguments:\n"
+msgstr ""
+"\n"
+"\n"
+"Argumenty:\n"
+
+msgid "--\t\t\tOnly file names after this"
+msgstr "--\t\t\tTylko nazwy plików po tym"
+
+msgid "--literal\t\tDon't expand wildcards"
+msgstr "--literal\t\tNie rozwijaj znaków specjalnych"
+
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tZarejestruj tego gvima w OLE"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tWyrejestruj gvima z OLE"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tStartuj w GUI (tak jak \"gvim\")"
+
+msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f  lub --nofork\tPierwszy plan: Nie wydzielaj przy odpalaniu GUI"
+
+msgid "-v\t\t\tVi mode (like \"vi\")"
+msgstr "-v\t\t\tTryb vi (jak \"vi\")"
+
+msgid "-e\t\t\tEx mode (like \"ex\")"
+msgstr "-e\t\t\tTryb ex (jak \"ex\")"
+
+msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
+msgstr "-s\t\t\tCichy tryb (tła) (tylko dla \"ex\")"
+
+msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
+msgstr "-d\t\t\tTryb różnic (jak \"vimdiff\")"
+
+msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
+msgstr "-y\t\t\tTryb łatwy (jak \"evim\", bez trybów)"
+
+msgid "-R\t\t\tReadonly mode (like \"view\")"
+msgstr "-R\t\t\tTryb wyłącznie do odczytu (jak \"view\")"
+
+msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
+msgstr "-Z\t\t\tTryb ograniczenia (jak \"rvim\")"
+
+msgid "-m\t\t\tModifications (writing files) not allowed"
+msgstr "-m\t\t\tModyfikacje (zapisywanie plików) niedozwolone"
+
+msgid "-M\t\t\tModifications in text not allowed"
+msgstr "-M\t\t\tZakaz modyfikacji tekstu"
+
+msgid "-b\t\t\tBinary mode"
+msgstr "-b\t\t\tTryb binarny"
+
+msgid "-l\t\t\tLisp mode"
+msgstr "-l\t\t\tTryb lisp"
+
+msgid "-C\t\t\tCompatible with Vi: 'compatible'"
+msgstr "-C\t\t\tBądź zgodny z Vi: 'compatible'"
+
+msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
+msgstr "-N\t\t\tBądź niezupełnie zgodny z Vi: 'nocompatible'"
+
+msgid "-V[N]\t\tVerbose level"
+msgstr "-V[N]\t\tStopień gadatliwości"
+
+msgid "-D\t\t\tDebugging mode"
+msgstr "-D\t\t\tTryb odpluskwiania"
+
+msgid "-n\t\t\tNo swap file, use memory only"
+msgstr "-n\t\t\tZamiast pliku wymiany, używaj tylko pamięci"
+
+msgid "-r\t\t\tList swap files and exit"
+msgstr "-r\t\t\tWylicz pliki wymiany i zakończ"
+
+msgid "-r (with file name)\tRecover crashed session"
+msgstr "-r (z nazwą pliku)\tOdtwórz załamaną sesję"
+
+msgid "-L\t\t\tSame as -r"
+msgstr "-L\t\t\tTożsame z -r"
+
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tNie stosuj newcli do otwierania okien"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <device>\t\tUżywaj <device> do I/O"
+
+msgid "-A\t\t\tstart in Arabic mode"
+msgstr "-A\t\t\trozpocznij w trybie arabskim"
+
+msgid "-H\t\t\tStart in Hebrew mode"
+msgstr "-H\t\t\trozpocznij w trybie hebrajskim"
+
+msgid "-F\t\t\tStart in Farsi mode"
+msgstr "-F\t\t\trozpocznij w trybie farsi"
+
+msgid "-T <terminal>\tSet terminal type to <terminal>"
+msgstr "-T <terminal>\tUstaw typ terminala na <terminal>"
+
+msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
+msgstr "-u <vimrc>\t\tUżyj <vimrc> zamiast jakiegokolwiek .vimrc"
+
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\tUżyj <gvimrc> zamiast jakiegokolwiek .gvimrc"
+
+msgid "--noplugin\t\tDon't load plugin scripts"
+msgstr "--noplugin\t\tNie ładuj skryptów wtyczek"
+
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tOtwórz N kart (domyślnie: po jednej dla każdego pliku)"
+
+msgid "-o[N]\t\tOpen N windows (default: one for each file)"
+msgstr "-o[N]\t\tOtwórz N okien (domyślnie: po jednym dla każdego pliku)"
+
+msgid "-O[N]\t\tLike -o but split vertically"
+msgstr "-O[N]\t\ttak samo jak -o tylko dziel okno pionowo"
+
+msgid "+\t\t\tStart at end of file"
+msgstr "+\t\t\tZacznij na końcu pliku"
+
+msgid "+<lnum>\t\tStart at line <lnum>"
+msgstr "+<lnum>\t\tZacznij w wierszu <lnum>"
+
+msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
+msgstr ""
+"-cmd <command>\t\tWykonaj komendę <command> przed załadowaniem "
+"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"
+
+msgid "-S <session>\t\tSource file <session> after loading the first file"
+msgstr "-S <sesja>\t\tWczytaj plik <sesja> po załadowaniu pierwszego pliku"
+
+msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
+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>"
+
+msgid "-W <scriptout>\tWrite all typed commands to file <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"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <display>\tPodłącz vima to danego X-serwera"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tNie łącz z serwerem X"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+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-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <pliki>\tTak jak --remote ale otwórz jedną kartę dla każdego pliku"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <klawisze>\tWyślij <klawisze> do serwera Vima i zakończ"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr "--remote-expr <wyr>\tWykonaj <wyrażenie> w serwerze i wypisz wynik"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tWymień nazwy dostępnych serwerów Vima i zakończ"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <nazwa>\t\tOdsyłaj do/stań się serwerem Vim <nazwa>"
+
+msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
+msgstr "-i <viminfo>\t\tUżywaj <viminfo> zamiast .viminfo"
+
+msgid "-h  or  --help\tPrint Help (this message) and exit"
+msgstr "-h  lub  --help\twyświetl Pomoc (czyli tę wiadomość) i zakończ"
+
+msgid "--version\t\tPrint version information and exit"
+msgstr "--version\t\twyświetl informację o wersji i zakończ"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"Argumenty rozpoznawane przez gvim (wersja Motif):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Argumenty rozpoznawane przez gvim (wersja neXtaw):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"Argumenty rozpoznawane przez gvim (wersja Athena):\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <display>\tZaładuj vim na <display>"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tZacznij Vim jako ikonę"
+
+msgid "-name <name>\t\tUse resource as if vim was <name>"
+msgstr "-name <nazwa>\t\tUżywaj zasobów tak jak by Vim był <nazwa>"
+
+msgid "\t\t\t  (Unimplemented)\n"
+msgstr "\t\t\t  (Niezaimplementowane)\n"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+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)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <font>\t\tUżywaj <font> dla normalnego tekstu (również: -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <font>\tUżywaj <font> dla wytłuszczonego tekstu"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+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)"
+
+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)"
+
+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)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tStosuj negatyw kolorów (również: -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tNie stosuj negatywu kolorów (również: +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <resource>\tUstaw określony zasób"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (RISC OS version):\n"
+msgstr ""
+"\n"
+"Argumenty rozpoznawane przez gvim (wersja RISC OS):\n"
+
+msgid "--columns <number>\tInitial width of window in columns"
+msgstr "--columns <number>\tPoczątkowa szerokość okna w kolumnach"
+
+msgid "--rows <number>\tInitial height of window in rows"
+msgstr "--rows <number>\tPoczątkowa wysokość okna w wierszach"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"Argumenty rozpoznawane przez gvim (wersja GTK+):\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr "-display <display>\tZastartuj vim na <display> (również: --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tUstaw unikatową rolę do identyfikacji głównego okna"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tOtwórz Vim wewnątrz innego widgetu GTK"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <tytuł rodzica>\tOtwórz Vima wewnątrz rodzicielskiej aplikacji"
+
+msgid "No display"
+msgstr "Brak display"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr ": Wysłanie nie powiodło się.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Wysłanie nie powiodło się. Próbuję wykonać na miejscu\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "otworzono %d z %d"
+
+msgid "No display: Send expression failed.\n"
+msgstr "Brak terminala: Wysłanie wyrażenia nie powiodło się.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": Wysłanie wyrażenia nie powiodło się.\n"
+
+msgid "No marks set"
+msgstr "Brak zakładek"
+
+#, c-format
+msgid "E283: No marks matching \"%s\""
+msgstr "E283: Żadna zakładka nie pasuje do \"%s\""
+
+#. Highlight title
+msgid ""
+"\n"
+"mark line  col file/text"
+msgstr ""
+"\n"
+"zakł. wiersz kol plik/tekst"
+
+#. Highlight title
+msgid ""
+"\n"
+" jump line  col file/text"
+msgstr ""
+"\n"
+" skok wiersz kol plik/tekst"
+
+#. Highlight title
+msgid ""
+"\n"
+"change line  col text"
+msgstr ""
+"\n"
+"zmień wrsz. kol tekst"
+
+#, c-format
+msgid ""
+"\n"
+"# File marks:\n"
+msgstr ""
+"\n"
+"# Zakładki w plikach:\n"
+
+#. Write the jumplist with -'
+#, c-format
+msgid ""
+"\n"
+"# Jumplist (newest first):\n"
+msgstr ""
+"\n"
+"# Lista odniesień (począwszy od najnowszych):\n"
+
+#, c-format
+msgid ""
+"\n"
+"# History of marks within files (newest to oldest):\n"
+msgstr ""
+"\n"
+"# Historia zakładek w plikach (od najnowszych po najstarsze):\n"
+
+msgid "Missing '>'"
+msgstr "Brak '>'"
+
+msgid "E543: Not a valid codepage"
+msgstr "E543: To nie jest ważna strona kodowa"
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: Nie mogę nastawić wartości IC"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: Nie mogłem stworzyć kontekstu wprowadzeń"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: Nie mogłem otworzyć sposobu wprowadzeń"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr "E287: OSTRZEŻENIE: Nie mogłem zlikwidować wywołania dla IM"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: metoda wprowadzeń nie wspomaga żadnego stylu"
+
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: metoda wprowadzeń nie wspomaga mojego typu preedit"
+
+msgid "E290: over-the-spot style requires fontset"
+msgstr "E290: styl nadpunktowy wymaga +fontset"
+
+msgid "E291: Your GTK+ is older than 1.2.3. Status area disabled"
+msgstr "E291: Twój GTK+ jest starszy niż 1.2.3. Pole statusu wyłączono"
+
+msgid "E292: Input Method Server is not running"
+msgstr "E292: Serwer metod wprowadzeń nie jest uruchomiony"
+
+msgid "E293: block was not locked"
+msgstr "E293: blok nie był zablokowany"
+
+msgid "E294: Seek error in swap file read"
+msgstr "E294: Błąd w trakcie czytania pliku wymiany"
+
+msgid "E295: Read error in swap file"
+msgstr "E295: Błąd odczytu pliku wymiany"
+
+msgid "E296: Seek error in swap file write"
+msgstr "E296: Błąd szukania w pliku wymiany"
+
+msgid "E297: Write error in swap file"
+msgstr "E297: Błąd zapisu w pliku wymiany"
+
+msgid "E300: Swap file already exists (symlink attack?)"
+msgstr "E300: Plik wymiany już istnieje (atak symlink?)"
+
+msgid "E298: Didn't get block nr 0?"
+msgstr "E298: Nie otrzymałem bloku nr 0?"
+
+msgid "E298: Didn't get block nr 1?"
+msgstr "E298: Nie otrzymałem bloku nr 1?"
+
+msgid "E298: Didn't get block nr 2?"
+msgstr "E298: Nie otrzymałem bloku nr 2?"
+
+#. could not (re)open the swap file, what can we do????
+msgid "E301: Oops, lost the swap file!!!"
+msgstr "E301: Ojej, zgubiłem plik wymiany!!!"
+
+msgid "E302: Could not rename swap file"
+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"
+
+msgid "E304: ml_upd_block0(): Didn't get block 0??"
+msgstr "E304: ml_upd_block(): Nie otrzymałem bloku 0??"
+
+#, c-format
+msgid "E305: No swap file found for %s"
+msgstr "E305: Nie znaleziono pliku wymiany dla %s"
+
+msgid "Enter number of swap file to use (0 to quit): "
+msgstr "Wprowadź numer pliku wymiany, którego użyć (0 by wyjść): "
+
+#, c-format
+msgid "E306: Cannot open %s"
+msgstr "E306: Nie mogę otworzyć %s"
+
+msgid "Unable to read block 0 from "
+msgstr "Nie mogę odczytać bloku 0 z "
+
+msgid ""
+"\n"
+"Maybe no changes were made or Vim did not update the swap file."
+msgstr ""
+"\n"
+"Może nie wykonano zmian albo Vim nie zaktualizował pliku wymiany."
+
+msgid " cannot be used with this version of Vim.\n"
+msgstr " nie może być stosowany z tą wersją Vima.\n"
+
+msgid "Use Vim version 3.0.\n"
+msgstr "Użyj Vima w wersji 3.0.\n"
+
+#, c-format
+msgid "E307: %s does not look like a Vim swap file"
+msgstr "E307: %s nie wygląda na plik wymiany Vima"
+
+msgid " cannot be used on this computer.\n"
+msgstr " nie może być stosowany na tym komputerze.\n"
+
+msgid "The file was created on "
+msgstr "Ten plik został stworzony na "
+
+msgid ""
+",\n"
+"or the file has been damaged."
+msgstr ""
+",\n"
+"lub plik został uszkodzony."
+
+#, c-format
+msgid "Using swap file \"%s\""
+msgstr "Używam pliku wymiany \"%s\""
+
+#, c-format
+msgid "Original file \"%s\""
+msgstr "Oryginalny plik \"%s\""
+
+msgid "E308: Warning: Original file may have been changed"
+msgstr "E308: OSTRZEŻENIE: Oryginalny plik mógł być zmieniony"
+
+#, c-format
+msgid "E309: Unable to read block 1 from %s"
+msgstr "E309: Nie mogę odczytać bloku 1 z %s"
+
+msgid "???MANY LINES MISSING"
+msgstr "???BRAKUJE WIELU WIERSZY"
+
+msgid "???LINE COUNT WRONG"
+msgstr "???LICZNIK WIERSZY NIEZGODNY"
+
+msgid "???EMPTY BLOCK"
+msgstr "???PUSTY BLOK"
+
+msgid "???LINES MISSING"
+msgstr "???BRAKUJE WIERSZY"
+
+#, c-format
+msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
+msgstr "E310: Niewłaściwe ID bloku 1 (może %s nie jest plikiem .swp?)"
+
+msgid "???BLOCK MISSING"
+msgstr "???BRAK BLOKU"
+
+msgid "??? from here until ???END lines may be messed up"
+msgstr "??? od tego miejsca po ???KONIEC wiersze mogą być pomieszane"
+
+msgid "??? from here until ???END lines may have been inserted/deleted"
+msgstr "??? od tego miejsca po ???KONIEC wiersze mogą być włożone/skasowane"
+
+msgid "???END"
+msgstr "???KONIEC"
+
+msgid "E311: Recovery Interrupted"
+msgstr "E311: Przerwanie odtwarzania"
+
+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."
+
+msgid ""
+"\n"
+"(You might want to write out this file under another name\n"
+msgstr ""
+"\n"
+"(Możesz chcieć zapisać ten plik pod inną nazwą\n"
+
+msgid "and run diff with the original file to check for changes)\n"
+msgstr "i wykonać diff z oryginalnym plikiem aby sprawdzić zmiany)\n"
+
+msgid ""
+"Delete the .swp file afterwards.\n"
+"\n"
+msgstr ""
+"Skasuj potem plik .swp.\n"
+"\n"
+
+#. use msg() to start the scrolling properly
+msgid "Swap files found:"
+msgstr "Znalezione pliki wymiany:"
+
+msgid "   In current directory:\n"
+msgstr "   W bieżącym katalogu:\n"
+
+msgid "   Using specified name:\n"
+msgstr "   Używam podanej nazwy:\n"
+
+msgid "   In directory "
+msgstr "   W katalogu "
+
+msgid "      -- none --\n"
+msgstr "     -- żaden --\n"
+
+msgid "          owned by: "
+msgstr "   posiadany przez: "
+
+msgid "   dated: "
+msgstr "   data: "
+
+msgid "             dated: "
+msgstr "              data: "
+
+msgid "         [from Vim version 3.0]"
+msgstr "         [po Vimie wersja 3.0]"
+
+msgid "         [does not look like a Vim swap file]"
+msgstr "         [nie wygląda na plik wymiany Vima]"
+
+msgid "         file name: "
+msgstr "       nazwa pliku: "
+
+msgid ""
+"\n"
+"          modified: "
+msgstr ""
+"\n"
+"         zmieniono: "
+
+msgid "YES"
+msgstr "TAK"
+
+msgid "no"
+msgstr "nie"
+
+msgid ""
+"\n"
+"         user name: "
+msgstr ""
+"\n"
+"        użytkownik: "
+
+msgid "   host name: "
+msgstr "   nazwa hosta: "
+
+msgid ""
+"\n"
+"         host name: "
+msgstr ""
+"\n"
+"      nazwa hosta: "
+
+msgid ""
+"\n"
+"        process ID: "
+msgstr ""
+"\n"
+"        ID procesu: "
+
+msgid " (still running)"
+msgstr " (dalej działa)"
+
+msgid ""
+"\n"
+"         [not usable with this version of Vim]"
+msgstr ""
+"\n"
+"         [nie nadaje się dla tej wersji Vima]"
+
+msgid ""
+"\n"
+"         [not usable on this computer]"
+msgstr ""
+"\n"
+"     [nie do użytku na tym komputerze]"
+
+msgid "         [cannot be read]"
+msgstr "        [nieodczytywalny]"
+
+msgid "         [cannot be opened]"
+msgstr "            [nieotwieralny]"
+
+msgid "E313: Cannot preserve, there is no swap file"
+msgstr "E313: Nie mogę zabezpieczyć, bo brak pliku wymiany"
+
+msgid "File preserved"
+msgstr "Plik zabezpieczono"
+
+msgid "E314: Preserve failed"
+msgstr "E314: Nieudane zabezpieczenie"
+
+#, c-format
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: niewłaściwy lnum: %ld"
+
+#, c-format
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: nie znaleziono wiersza %ld"
+
+msgid "E317: pointer block id wrong 3"
+msgstr "E317: niepoprawne id wskaźnika bloku 3"
+
+msgid "stack_idx should be 0"
+msgstr "stack_idx powinien być 0"
+
+msgid "E318: Updated too many blocks?"
+msgstr "E318: Zaktualizowano zbyt wiele bloków?"
+
+msgid "E317: pointer block id wrong 4"
+msgstr "E317: niepoprawne id wskaźnika bloku 4"
+
+msgid "deleted block 1?"
+msgstr "blok nr 1 skasowany?"
+
+#, c-format
+msgid "E320: Cannot find line %ld"
+msgstr "E320: Nie mogę znaleźć wiersza %ld"
+
+msgid "E317: pointer block id wrong"
+msgstr "E317: niepoprawne id bloku odniesienia"
+
+msgid "pe_line_count is zero"
+msgstr "pe_line_count wynosi zero"
+
+#, c-format
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: numer wiersza poza zakresem: %ld jest poza końcem"
+
+#, c-format
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: liczba wierszy niepoprawna w bloku %ld"
+
+msgid "Stack size increases"
+msgstr "Wielkość stosu wzrasta"
+
+msgid "E317: pointer block id wrong 2"
+msgstr "E317: niepoprawne id bloku odniesienia 2"
+
+#, c-format
+msgid "E773: Symlink loop for \"%s\""
+msgstr "E773: Pętla dowiązań dla \"%s\""
+
+msgid "E325: ATTENTION"
+msgstr "E325: UWAGA"
+
+msgid ""
+"\n"
+"Found a swap file by the name \""
+msgstr ""
+"\n"
+"Znalazłem plik wymiany o nazwie \""
+
+msgid "While opening file \""
+msgstr "Podczas otwierania pliku \""
+
+msgid "      NEWER than swap file!\n"
+msgstr "      NOWSZE od pliku wymiany!\n"
+
+#. Some of these messages are long to allow translation to
+#. * other languages.
+msgid ""
+"\n"
+"(1) Another program may be editing the same file.\n"
+"    If this is the case, be careful not to end up with two\n"
+"    different instances of the same file when making changes.\n"
+msgstr ""
+"\n"
+"(1) Pewnie inny program obrabia ten sam plik.\n"
+"    Jeśli tak, bądź ostrożny, aby nie skończyć z dwoma\n"
+"    różnymi wersjami jednego tego samego pliku po zmianach.\n"
+
+msgid "    Quit, or continue with caution.\n"
+msgstr "    Zakończ lub ostrożnie kontynuuj.\n"
+
+msgid ""
+"\n"
+"(2) An edit session for this file crashed.\n"
+msgstr ""
+"\n"
+"(2) Sesja edycji dla pliku załamała się.\n"
+
+msgid "    If this is the case, use \":recover\" or \"vim -r "
+msgstr "    Jeśli tak, to użyj \":recover\" lub \"vim -r "
+
+msgid ""
+"\"\n"
+"    to recover the changes (see \":help recovery\").\n"
+msgstr ""
+"\"\n"
+"    aby odzyskać zmiany (zobacz \":help recovery)\").\n"
+
+msgid "    If you did this already, delete the swap file \""
+msgstr "    Jeśli już to zrobiłeś, usuń plik wymiany \""
+
+msgid ""
+"\"\n"
+"    to avoid this message.\n"
+msgstr ""
+"\"\n"
+"    aby uniknąć tej wiadomości.\n"
+
+msgid "Swap file \""
+msgstr "Plik wymiany \""
+
+msgid "\" already exists!"
+msgstr "\" już istnieje!"
+
+msgid "VIM - ATTENTION"
+msgstr "VIM - UWAGA"
+
+msgid "Swap file already exists!"
+msgstr "Plik wymiany już istnieje!"
+
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Quit\n"
+"&Abort"
+msgstr ""
+"&Otwórz Read-Only\n"
+"&Edytuj pomimo\n"
+"O&dtwórz\n"
+"&Zakończ\n"
+"&Porzuć"
+
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Delete it\n"
+"&Quit\n"
+"&Abort"
+msgstr ""
+"&Otwórz Read-Only\n"
+"&Edytuj pomimo\n"
+"O&dtwórz\n"
+"&Usuń\n"
+"&Zakończ\n"
+"&Porzuć"
+
+msgid "E326: Too many swap files found"
+msgstr "E326: Znaleziono zbyt wiele plików wymiany"
+
+msgid "E327: Part of menu-item path is not sub-menu"
+msgstr "E327: Część tropu punktu menu nie określa podmenu"
+
+msgid "E328: Menu only exists in another mode"
+msgstr "E328: Menu istnieje tylko w innym trybie"
+
+#, c-format
+msgid "E329: No menu \"%s\""
+msgstr "E329: Nie ma menu \"%s\""
+
+msgid "E330: Menu path must not lead to a sub-menu"
+msgstr "E330: Trop menu nie może prowadzić do podmenu"
+
+msgid "E331: Must not add menu items directly to menu bar"
+msgstr "E331: Nie wolno dodawać punktów menu wprost do paska menu"
+
+msgid "E332: Separator cannot be part of a menu path"
+msgstr "E332: Separator nie może być częścią tropu menu"
+
+#. Now we have found the matching menu, and we list the mappings
+#. Highlight title
+msgid ""
+"\n"
+"--- Menus ---"
+msgstr ""
+"\n"
+"--- Menu ---"
+
+msgid "Tear off this menu"
+msgstr "Oderwij to menu"
+
+msgid "E333: Menu path must lead to a menu item"
+msgstr "E333: Trop menu musi prowadzić do punktu menu"
+
+#, c-format
+msgid "E334: Menu not found: %s"
+msgstr "E334: Nie znaleziono menu: %s"
+
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Menu nie jest zdefiniowane dla trybu %s"
+
+msgid "E336: Menu path must lead to a sub-menu"
+msgstr "E336: Trop menu musi prowadzić do podmenu"
+
+msgid "E337: Menu not found - check menu names"
+msgstr "E337: Nie znaleziono menu - sprawdź nazwy menu"
+
+#, c-format
+msgid "Error detected while processing %s:"
+msgstr "Wykryto błąd podczas przetwarzania %s:"
+
+#, c-format
+msgid "line %4ld:"
+msgstr "wiersz %4ld:"
+
+#, c-format
+msgid "E354: Invalid register name: '%s'"
+msgstr "E354: Niewłaściwa nazwa rejestru: '%s'"
+
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr "Opiekun komunikatów: Mikołaj Machowski <mikmach@wp.pl>"
+
+msgid "Interrupt: "
+msgstr "Przerwanie: "
+
+msgid "Press ENTER or type command to continue"
+msgstr "Naciśnij ENTER lub wprowadź komendę aby kontynuować"
+
+#, c-format
+msgid "%s line %ld"
+msgstr "%s wiersz %ld"
+
+msgid "-- More --"
+msgstr "-- Więcej --"
+
+msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit "
+msgstr " SPACE/d/j: ekran/strona/wiersz w dół, b/u/k: do góry, q: zakończ"
+
+msgid "Question"
+msgstr "Pytanie"
+
+msgid ""
+"&Yes\n"
+"&No"
+msgstr ""
+"&Tak\n"
+"&Nie"
+
+msgid ""
+"&Yes\n"
+"&No\n"
+"Save &All\n"
+"&Discard All\n"
+"&Cancel"
+msgstr ""
+"&Tak\n"
+"&Nie\n"
+"Zapisz &wszystkie\n"
+"&Odrzuć wszystkie\n"
+"&Zakończ"
+
+msgid "Select Directory dialog"
+msgstr "Dialog wyboru katalogu"
+
+msgid "Save File dialog"
+msgstr "Dialog zapisywania pliku"
+
+msgid "Open File dialog"
+msgstr "Dialog otwierania pliku"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: Przykro mi, nie ma przeglądarki plików w trybie konsoli"
+
+msgid "E766: Insufficient arguments for printf()"
+msgstr "E766: Za mało argumentów dla printf()"
+
+msgid "E767: Too many arguments to printf()"
+msgstr "E767: Za dużo argumentów dla printf()"
+
+msgid "W10: Warning: Changing a readonly file"
+msgstr "W10: OSTRZEŻENIE: Zmiany w pliku tylko do odczytu"
+
+msgid "Type number or click with mouse (<Enter> cancels): "
+msgstr "Wpisz numer lub wybierz myszą (<Enter> anuluje): "
+
+msgid "Choice number (<Enter> cancels): "
+msgstr "Wybierz numer (<Enter> anuluje): "
+
+msgid "1 more line"
+msgstr "1 wiersz więcej"
+
+msgid "1 line less"
+msgstr "1 wiersz mniej"
+
+#, c-format
+msgid "%ld more lines"
+msgstr "dodano %ld wierszy"
+
+#, c-format
+msgid "%ld fewer lines"
+msgstr "usunięto %ld wierszy"
+
+msgid " (Interrupted)"
+msgstr " (Przerwane)"
+
+msgid "Beep!"
+msgstr "Biiip!"
+
+msgid "Vim: preserving files...\n"
+msgstr "Vim: zachowuję plik...\n"
+
+#. close all memfiles, without deleting
+msgid "Vim: Finished.\n"
+msgstr "Vim: Zakończono.\n"
+
+#, c-format
+msgid "ERROR: "
+msgstr "BŁĄD: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[bajtów] totalne alokacje-zwolnienia %lu-%lu, w użytku %lu, maksymalne "
+"użycie %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[wywołania] wszystkich re/malloc()-ów %lu, wszystkich free()-ów %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: Wiersz staje się zbyt długi"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: Wewnętrzny błąd: lalloc(%ld, )"
+
+#, c-format
+msgid "E342: Out of memory!  (allocating %lu bytes)"
+msgstr "E342: Brak pamięci!  (rezerwacja %lu bajtów)"
+
+#, c-format
+msgid "Calling shell to execute: \"%s\""
+msgstr "Wywołuję powłokę do wykonania: \"%s\""
+
+msgid "E545: Missing colon"
+msgstr "E545: Brak dwukropka"
+
+msgid "E546: Illegal mode"
+msgstr "E546: Niedozwolony tryb"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Niedozwolony obrys myszki"
+
+msgid "E548: digit expected"
+msgstr "E548: oczekiwano cyfry"
+
+msgid "E549: Illegal percentage"
+msgstr "E459: Niedozwolony procent"
+
+msgid "Enter encryption key: "
+msgstr "Wprowadź klucz do odkodowania: "
+
+msgid "Enter same key again: "
+msgstr "Wprowadź ponownie ten sam klucz: "
+
+msgid "Keys don't match!"
+msgstr "Klucze nie pasują do siebie!"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: Niewłaściwy trop: '**[numer]' musi być na końcu tropu lub po nim musi "
+"być '%s'."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: Nie mogę znaleźć katalogu \"%s\" w cdpath"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: Nie mogę znaleźć pliku \"%s\" w tropie"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: Katalogu \"%s\" nie ma więcej w cdpath"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: Pliku \"%s\" nie ma więcej w tropie"
+
+#. Get here when the server can't be found.
+msgid "Cannot connect to Netbeans #2"
+msgstr "Nie można połączyć z Netbeans #2"
+
+msgid "Cannot connect to Netbeans"
+msgstr "Nie można połączyć z Netbeans"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: Błędny tryb dostępu pliku info połączenia NetBeans: \"%s\""
+
+msgid "read from Netbeans socket"
+msgstr "odczyt z gniazda Netbeans"
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Bufor %ld utracił połączenie z NetBeans"
+
+msgid "E505: "
+msgstr "E505: "
+
+msgid "E774: 'operatorfunc' is empty"
+msgstr "E774: 'operatorfunc' jest pusta"
+
+msgid "E775: Eval feature not available"
+msgstr "E775: Funkcjonalność eval nie jest dostępna"
+
+msgid "Warning: terminal cannot highlight"
+msgstr "OSTRZEŻENIE: terminal nie wykonuje podświetlania"
+
+msgid "E348: No string under cursor"
+msgstr "E348: Brak ciągu pod kursorem"
+
+msgid "E349: No identifier under cursor"
+msgstr "E349: Brak identyfikatora pod kursorem"
+
+msgid "E352: Cannot erase folds with current 'foldmethod'"
+msgstr "E352: Nie mogę skasować zwinięcia z bieżącą 'foldmethod'"
+
+msgid "E664: changelist is empty"
+msgstr "E664: lista zmian (changelist) jest pusta"
+
+msgid "E662: At start of changelist"
+msgstr "E662: Na początku listy zmian"
+
+msgid "E663: At end of changelist"
+msgstr "E663: Na końcu listy zmian"
+
+msgid "Type  :quit<Enter>  to exit Vim"
+msgstr "wprowadź  :quit<Enter>    zakończenie programu"
+
+#, c-format
+msgid "1 line %sed 1 time"
+msgstr "1 wiersz %sed 1 raz"
+
+#, c-format
+msgid "1 line %sed %d times"
+msgstr "1 wiersz %sed %d razy"
+
+#, c-format
+msgid "%ld lines %sed 1 time"
+msgstr "%ld wierszy %sed 1 raz"
+
+#, c-format
+msgid "%ld lines %sed %d times"
+msgstr "%ld wierszy %sed %d razy"
+
+#, c-format
+msgid "%ld lines to indent... "
+msgstr "%ld wierszy do wcięcia... "
+
+msgid "1 line indented "
+msgstr "1 wiersz wcięty "
+
+#, c-format
+msgid "%ld lines indented "
+msgstr "%ld wierszy wciętych "
+
+msgid "E748: No previously used register"
+msgstr "E748: Brak poprzednio użytego rejestru"
+
+#. must display the prompt
+msgid "cannot yank; delete anyway"
+msgstr "nie mogę skopiować, mimo to kasuję"
+
+msgid "1 line changed"
+msgstr "1 wiersz zmieniono"
+
+#, c-format
+msgid "%ld lines changed"
+msgstr "%ld wierszy zmieniono"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "zwalniam %ld wierszy"
+
+msgid "block of 1 line yanked"
+msgstr "skopiowano blok 1 wiersza"
+
+msgid "1 line yanked"
+msgstr "1 wiersz skopiowano"
+
+#, c-format
+msgid "block of %ld lines yanked"
+msgstr "%ld wierszy skopiowanych"
+
+#, c-format
+msgid "%ld lines yanked"
+msgstr "%ld wierszy skopiowanych"
+
+#, c-format
+msgid "E353: Nothing in register %s"
+msgstr "E353: Pusty rejestr %s"
+
+#. Highlight title
+msgid ""
+"\n"
+"--- Registers ---"
+msgstr ""
+"\n"
+"--- Rejestry ---"
+
+msgid "Illegal register name"
+msgstr "Niedozwolona nazwa rejestru"
+
+#, c-format
+msgid ""
+"\n"
+"# Registers:\n"
+msgstr ""
+"\n"
+"# Rejestry:\n"
+
+#, c-format
+msgid "E574: Unknown register type %d"
+msgstr "E574: Nieznany typ rejestru %d"
+
+#, c-format
+msgid "%ld Cols; "
+msgstr "%ld Kolumn; "
+
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Wybrano %s%ld z %ld Wierszy; %ld z %ld Słów; %ld z %ld Bajtów"
+
+#, c-format
+msgid ""
+"Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
+"Bytes"
+msgstr ""
+"Wybrano %s%ld z %ld Wierszy; %ld z %ld Słów; %ld z %ld Znaków; %ld z %ld "
+"Bajtów"
+
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "Kol %s z %s; Wiersz %ld z %ld; Słowo %ld z %ld; Bajt %ld z %ld"
+
+#, c-format
+msgid ""
+"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
+"%ld"
+msgstr ""
+"Kol %s z %s; Wiersz %ld z %ld; Słowo %ld z %ld; Znak %ld z %ld; Bajt %ld z %"
+"ld"
+
+#, c-format
+msgid "(+%ld for BOM)"
+msgstr "(+%ld dla BOM)"
+
+msgid "%<%f%h%m%=Page %N"
+msgstr "%<%f%h%m%=Strona %N"
+
+msgid "Thanks for flying Vim"
+msgstr "Dzięki za lot Vimem"
+
+msgid "E518: Unknown option"
+msgstr "E518: Nieznana opcja"
+
+msgid "E519: Option not supported"
+msgstr "E519: Opcja nie jest wspomagana"
+
+msgid "E520: Not allowed in a modeline"
+msgstr "E520: Niedozwolone w modeline"
+
+msgid "E521: Number required after ="
+msgstr "E521: Po = wymagany jest numer"
+
+msgid "E522: Not found in termcap"
+msgstr "E522: Nie znaleziono w termcap"
+
+#, c-format
+msgid "E539: Illegal character <%s>"
+msgstr "E539: Niedozwolony znak <%s>"
+
+msgid "E529: Cannot set 'term' to empty string"
+msgstr "E529: Nie mogę ustawić 'term' na pusty ciąg"
+
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: Nie mogę zmienić term w GUI"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Użyj \":gui\" do odpalenia GUI"
+
+msgid "E589: 'backupext' and 'patchmode' are equal"
+msgstr "E589: 'backupext' i 'patchmode' są tożsame"
+
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Nie mogę zmienić w GTK+2 GUI"
+
+msgid "E524: Missing colon"
+msgstr "E524: Brak dwukropka"
+
+msgid "E525: Zero length string"
+msgstr "E525: Ciąg o zerowej długości"
+
+#, c-format
+msgid "E526: Missing number after <%s>"
+msgstr "E526: Brak numeru po <%s>"
+
+msgid "E527: Missing comma"
+msgstr "E527: Brak przecinka"
+
+msgid "E528: Must specify a ' value"
+msgstr "E528: Musi określać wartość '"
+
+msgid "E595: contains unprintable or wide character"
+msgstr "E595: zawiera niewyświetlalny lub szeroki znak"
+
+msgid "E596: Invalid font(s)"
+msgstr "E596: Niedozwolona czcionka/ki"
+
+msgid "E597: can't select fontset"
+msgstr "E597: nie mogę wybrać zestawu czcionek"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: Niedozwolony zestaw czcionek"
+
+msgid "E533: can't select wide font"
+msgstr "E533: nie mogę wybrać szerokiej czcionki"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: Niedozwolona szeroka czcionka"
+
+#, c-format
+msgid "E535: Illegal character after <%c>"
+msgstr "E535: Niedozwolony znak po <%c>"
+
+msgid "E536: comma required"
+msgstr "E536: wymagany przecinek"
+
+#, c-format
+msgid "E537: 'commentstring' must be empty or contain %s"
+msgstr "E537: 'commentstring' musi być pusty lub zawierać %s"
+
+msgid "E538: No mouse support"
+msgstr "E538: Brak wspomagania myszki"
+
+msgid "E540: Unclosed expression sequence"
+msgstr "E540: Niedomknięty ciąg wyrażeń"
+
+msgid "E541: too many items"
+msgstr "E541: zbyt wiele elementów"
+
+msgid "E542: unbalanced groups"
+msgstr "E542: niezbalansowane grupy"
+
+msgid "E590: A preview window already exists"
+msgstr "E590: okno podglądu już istnieje"
+
+msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
+msgstr "W17: Arabski wymaga UTF-8, zrób ':set encoding=utf-8'"
+
+#, c-format
+msgid "E593: Need at least %d lines"
+msgstr "E593: Potrzebuję przynajmniej %d wierszy"
+
+#, c-format
+msgid "E594: Need at least %d columns"
+msgstr "E594: Potrzebuję przynajmniej %d kolumn"
+
+#, c-format
+msgid "E355: Unknown option: %s"
+msgstr "E355: Nieznana opcja: %s"
+
+msgid ""
+"\n"
+"--- Terminal codes ---"
+msgstr ""
+"\n"
+"--- Kody terminala ---"
+
+msgid ""
+"\n"
+"--- Global option values ---"
+msgstr ""
+"\n"
+"--- Globalne wartości opcji ---"
+
+msgid ""
+"\n"
+"--- Local option values ---"
+msgstr ""
+"\n"
+"--- Lokalne wartości opcji ---"
+
+msgid ""
+"\n"
+"--- Options ---"
+msgstr ""
+"\n"
+"--- Opcje ---"
+
+msgid "E356: get_varp ERROR"
+msgstr "E356: BŁĄD get_varp"
+
+#, c-format
+msgid "E357: 'langmap': Matching character missing for %s"
+msgstr "E357: 'langmap': Brak pasującego znaku dla %s"
+
+#, c-format
+msgid "E358: 'langmap': Extra characters after semicolon: %s"
+msgstr "E358: 'langmap': Dodatkowe znaki po średniku: %s"
+
+msgid "cannot open "
+msgstr "nie mogę otworzyć "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: Nie mogę otworzyć okna!\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "Potrzebuję Amigados w wersji 2.04 lub późniejszą\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "Potrzebuję %s w wersji %ld\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "Nie mogę otworzyć NIL:\n"
+
+msgid "Cannot create "
+msgstr "Nie mogę stworzyć "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vim kończy pracę z %d\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "nie mogę zmienić trybu konsoli ?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: nie jest konsolą??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: Nie mogę wykonać powłoki z opcją -f"
+
+msgid "Cannot execute "
+msgstr "Nie mogę wykonać "
+
+msgid "shell "
+msgstr "powłoka "
+
+msgid " returned\n"
+msgstr " zwrócił\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE zbyt niskie."
+
+msgid "I/O ERROR"
+msgstr "BŁĄD I/O"
+
+msgid "...(truncated)"
+msgstr "...(obcięty)"
+
+msgid "Message"
+msgstr "Wiadomość"
+
+msgid "'columns' is not 80, cannot execute external commands"
+msgstr "'columns' nie wynosi 80, nie mogę wykonać zewnętrznych komend"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: Wybór drukarki nie powiódł się"
+
+#, c-format
+msgid "to %s on %s"
+msgstr "do %s z %s"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Nieznana czcionka drukarki: %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: Błąd drukarki: %s"
+
+#, c-format
+msgid "Printing '%s'"
+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\""
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: Niedozwolony znak '%c' w nazwie czcionki \"%s\""
+
+msgid "E366: Invalid 'osfiletype' option - using Text"
+msgstr "E366: Niewłaściwa opcja 'osfiletype' - używam Text"
+
+msgid "Vim: Double signal, exiting\n"
+msgstr "Vim: Podwójny sygnał, wychodzę\n"
+
+#, c-format
+msgid "Vim: Caught deadly signal %s\n"
+msgstr "Vim: Załapał śmiertelny sygnał %s\n"
+
+#, c-format
+msgid "Vim: Caught deadly signal\n"
+msgstr "Vim: Załapał śmiertelny sygnał\n"
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "Otwieranie ekranu X trwało %ld msec"
+
+msgid ""
+"\n"
+"Vim: Got X error\n"
+msgstr ""
+"\n"
+"Vim: Dostał błąd X\n"
+
+msgid "Testing the X display failed"
+msgstr "Test ekranu X nie powiódł się"
+
+msgid "Opening the X display timed out"
+msgstr "Próba otwarcia ekranu X trwała zbyt długo"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"Nie mogę wykonać powłoki "
+
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"Nie mogę wykonać powłoki sh\n"
+
+msgid ""
+"\n"
+"shell returned "
+msgstr ""
+"\n"
+"powłoka zwróciła "
+
+msgid ""
+"\n"
+"Cannot create pipes\n"
+msgstr ""
+"\n"
+"Nie mogę stworzyć potoków\n"
+
+msgid ""
+"\n"
+"Cannot fork\n"
+msgstr ""
+"\n"
+"Nie mogę rozdzielić się\n"
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"Komenda zakończona\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "XSMP stracił połączenie ICE"
+
+#, c-format
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
+
+msgid "Opening the X display failed"
+msgstr "Otwarcie ekranu X nie powiodło się"
+
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP obsługuje żądanie samozapisu"
+
+msgid "XSMP opening connection"
+msgstr "XSMP otwiera połączenie"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "Obserwacja połączenia XSMP ICE nie powiodła się"
+
+#, c-format
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection nie powiodło się: %s"
+
+msgid "At line"
+msgstr "W wierszu"
+
+msgid "Could not load vim32.dll!"
+msgstr "Nie mogę załadować vim32.dll!"
+
+msgid "VIM Error"
+msgstr "Błąd VIM"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "Nie zdołałem poprawić wskaźników funkcji w DLL!"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "powłoka zwróciła %d"
+
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: Załapał wydarzenie %s\n"
+
+msgid "close"
+msgstr "zamknij"
+
+msgid "logoff"
+msgstr "wyloguj"
+
+msgid "shutdown"
+msgstr "zakończ"
+
+msgid "E371: Command not found"
+msgstr "E371: Nie znaleziono komendy"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See  :help win32-vimrun  for more information."
+msgstr ""
+"VIMRUN.EXE nie znaleziono w twoim $PATH.\n"
+"Zewnętrzne komendy nie będą wstrzymane po wykonaniu.\n"
+"Zobacz  :help wim32-vimrun  aby otrzymać więcej informacji."
+
+msgid "Vim Warning"
+msgstr "Vim Ostrzeżenie"
+
+#, c-format
+msgid "E372: Too many %%%c in format string"
+msgstr "E372: Zbyt wiele %%%c w ciągu formatującym"
+
+#, c-format
+msgid "E373: Unexpected %%%c in format string"
+msgstr "E373: Nieoczekiwane %%%c w ciągu formatującym"
+
+msgid "E374: Missing ] in format string"
+msgstr "E374: Brak ] w ciągu formatującym"
+
+#, c-format
+msgid "E375: Unsupported %%%c in format string"
+msgstr "E375: Niewspomagane %%%c w ciągu formatującym"
+
+#, c-format
+msgid "E376: Invalid %%%c in format string prefix"
+msgstr "E376: Niepoprawne %%%c w prefiksie ciągu formatującego"
+
+#, c-format
+msgid "E377: Invalid %%%c in format string"
+msgstr "E377: Niepoprawne %%%c w ciągu formatującym"
+
+msgid "E378: 'errorformat' contains no pattern"
+msgstr "E378: 'errorformat' nie zawiera wzorca"
+
+msgid "E379: Missing or empty directory name"
+msgstr "E379: Pusta nazwa katalogu lub jej brak"
+
+msgid "E553: No more items"
+msgstr "E553: Nie ma więcej elementów"
+
+#, c-format
+msgid "(%d of %d)%s%s: "
+msgstr "(%d z %d)%s%s: "
+
+msgid " (line deleted)"
+msgstr " (wiersz skasowany)"
+
+msgid "E380: At bottom of quickfix stack"
+msgstr "E380: Na dole stosu quickfix"
+
+msgid "E381: At top of quickfix stack"
+msgstr "E381: Na górze stosu quickfix"
+
+#, c-format
+msgid "error list %d of %d; %d errors"
+msgstr "lista błędów %d z %d; %d błędów"
+
+msgid "E382: Cannot write, 'buftype' option is set"
+msgstr "E382: Nie mogę zapisać, opcja 'buftype' jest ustawiona"
+
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: Brak nazwy pliku lub niewłaściwa ścieżka"
+
+#, c-format
+msgid "Cannot open file \"%s\""
+msgstr "Nie mogę otworzyć pliku \"%s\""
+
+msgid "E681: Buffer is not loaded"
+msgstr "E681: Bufor nie jest załadowany"
+
+msgid "E777: String or List expected"
+msgstr "E777: Oczekiwano łańcucha lub listy"
+
+#, c-format
+msgid "E369: invalid item in %s%%[]"
+msgstr "E369: Niewłaściwy element w %s%%[]"
+
+msgid "E339: Pattern too long"
+msgstr "E339: Zbyt długi wzorzec"
+
+msgid "E50: Too many \\z("
+msgstr "E50: Zbyt wiele \\z("
+
+#, c-format
+msgid "E51: Too many %s("
+msgstr "E51: Zbyt wiele %s("
+
+msgid "E52: Unmatched \\z("
+msgstr "E52: Niesparowany \\z("
+
+#, c-format
+msgid "E53: Unmatched %s%%("
+msgstr "E53: Niesparowany %s%%("
+
+#, c-format
+msgid "E54: Unmatched %s("
+msgstr "E54: Niesparowany %s("
+
+#, c-format
+msgid "E55: Unmatched %s)"
+msgstr "E55: Niesparowany %s)"
+
+#, c-format
+msgid "E59: invalid character after %s@"
+msgstr "E59: niedozwolony znak po %s@"
+
+#, c-format
+msgid "E60: Too many complex %s{...}s"
+msgstr "E60: Zbyt wiele złożonych %s{...}"
+
+#, c-format
+msgid "E61: Nested %s*"
+msgstr "E61: Zagnieżdżone %s*"
+
+#, c-format
+msgid "E62: Nested %s%c"
+msgstr "E62: Zagnieżdżone %s%c"
+
+msgid "E63: invalid use of \\_"
+msgstr "E63: Niedozwolone użycie \\_"
+
+#, c-format
+msgid "E64: %s%c follows nothing"
+msgstr "E64: %s%c po niczym"
+
+msgid "E65: Illegal back reference"
+msgstr "E65: Niewłaściwe odwołanie wsteczne"
+
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z( jest niedozwolone w tym miejscu"
+
+msgid "E67: \\z1 et al. not allowed here"
+msgstr "E67: \\z1 i podobne są niedozwolone w tym miejscu"
+
+msgid "E68: Invalid character after \\z"
+msgstr "E68: niedopuszczalny znak po \\z"
+
+#, c-format
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: Brak ] po %s%%["
+
+#, c-format
+msgid "E70: Empty %s%%[]"
+msgstr "E70: Pusty %s%%[]"
+
+#, c-format
+msgid "E678: Invalid character after %s%%[dxouU]"
+msgstr "E678: Niedozwolony znak po %s%%[dxouU]"
+
+#, c-format
+msgid "E71: Invalid character after %s%%"
+msgstr "E71: Niedozwolony znak po %s%%"
+
+#, c-format
+msgid "E769: Missing ] after %s["
+msgstr "E769: Brak ] po %s["
+
+#, c-format
+msgid "E554: Syntax error in %s{...}"
+msgstr "E554: Błąd składni w %s{...}"
+
+msgid "External submatches:\n"
+msgstr "Zewnętrzne poddopasowania:\n"
+
+msgid " VREPLACE"
+msgstr " V-ZAMIANA"
+
+msgid " REPLACE"
+msgstr " ZAMIANA"
+
+msgid " REVERSE"
+msgstr " NEGATYW"
+
+msgid " INSERT"
+msgstr " WPROWADZANIE"
+
+msgid " (insert)"
+msgstr " (wprowadzanie)"
+
+msgid " (replace)"
+msgstr " (zamiana)"
+
+msgid " (vreplace)"
+msgstr " (v-zamiana)"
+
+msgid " Hebrew"
+msgstr " Hebrajski"
+
+msgid " Arabic"
+msgstr " Arabski"
+
+msgid " (lang)"
+msgstr " (język)"
+
+msgid " (paste)"
+msgstr " (wklejanie)"
+
+msgid " VISUAL"
+msgstr " WIZUALNY"
+
+msgid " VISUAL LINE"
+msgstr " WIZUALNY LINIOWY"
+
+msgid " VISUAL BLOCK"
+msgstr " WIZUALNY BLOKOWY"
+
+msgid " SELECT"
+msgstr " ZAZNACZANIE"
+
+msgid " SELECT LINE"
+msgstr " ZAZNACZANIE LINIOWE"
+
+msgid " SELECT BLOCK"
+msgstr " ZAZNACZANIE BLOKOWE"
+
+msgid "recording"
+msgstr "zapis"
+
+#, c-format
+msgid "E383: Invalid search string: %s"
+msgstr "E383: Niewłaściwy ciąg do szukania: %s"
+
+#, c-format
+msgid "E384: search hit TOP without match for: %s"
+msgstr "E384: szukanie dobiło GÓRY bez znalezienia: %s"
+
+#, c-format
+msgid "E385: search hit BOTTOM without match for: %s"
+msgstr "E385: szukanie dobiło KOŃCA bez znalezienia : %s"
+
+msgid "E386: Expected '?' or '/'  after ';'"
+msgstr "E386: Oczekuję '?' lub '/' po ';'"
+
+msgid " (includes previously listed match)"
+msgstr " (zawiera poprzednio wymienione dopasowanie)"
+
+#. cursor at status line
+msgid "--- Included files "
+msgstr "--- Zawarte pliki "
+
+msgid "not found "
+msgstr "nie znaleziono"
+
+msgid "in path ---\n"
+msgstr "w tropie ---\n"
+
+msgid "  (Already listed)"
+msgstr "  (Już wymienione)"
+
+msgid "  NOT FOUND"
+msgstr "  NIE ZNALEZIONO"
+
+#, c-format
+msgid "Scanning included file: %s"
+msgstr "Przegląd włączonego pliku: %s"
+
+#, c-format
+msgid "Searching included file %s"
+msgstr "Przeszukiwanie włączonego pliku %s"
+
+msgid "E387: Match is on current line"
+msgstr "E387: Wzorzec pasuje w bieżącym wierszu"
+
+msgid "All included files were found"
+msgstr "Wszelkie włączane pliki odnaleziono"
+
+msgid "No included files"
+msgstr "Brak włączanych plików"
+
+msgid "E388: Couldn't find definition"
+msgstr "E388: Nie znalazłem definicji"
+
+msgid "E389: Couldn't find pattern"
+msgstr "E389: Nie znalazłem wzorca"
+
+msgid "E759: Format error in spell file"
+msgstr "E759: Nieprawidłowy format pliku sprawdzania pisowni"
+
+msgid "E758: Truncated spell file"
+msgstr "E758: Obcięty plik sprawdzania pisowni"
+
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "Zbędny tekst w %s wiersz %d: %s"
+
+#, c-format
+msgid "Affix name too long in %s line %d: %s"
+msgstr "Za długa nazwa afiksu w %s wiersz %d: %s"
+
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: Błąd formatu w pliku afiksów FOL, LOW lub UPP"
+
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: Znak w FOL, LOW lub UPP jest poza zasięgiem"
+
+msgid "Compressing word tree..."
+msgstr "Kompresja drzewa słów..."
+
+msgid "E756: Spell checking is not enabled"
+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\""
+
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "Odczytuję plik sprawdzania pisowni \"%s\""
+
+msgid "E757: This does not look like a spell file"
+msgstr "E757: To nie wygląda na plik sprawdzania pisowni"
+
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: Stary plik sprawdzania pisowni, wymagane uaktualnienie"
+
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Plik sprawdzania pisowni dla nowszej wersji Vima"
+
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: Niewspierana sekcja w pliku sprawdzania pisowni"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Ostrzeżenie: region %s nie jest wspierany"
+
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "Czytam plik afiksów %s ..."
+
+#, c-format
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "Konwersja nie powiodła się dla wyrazu w %s wierszu %d: %s"
+
+#, c-format
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "Konwersja w %s nie jest wspierana: od %s do %s"
+
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "Konwersja w %s nie jest wspierana"
+
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "Nieprawidłowa wartość FLAG w %s wierz %d: %s"
+
+#, c-format
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "FLAG po użyciu flag w %s wiersz %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "Zła wartość COMPOUNDWORDMAX w %s wiersz %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "Zła wartość COMPOUNDMIM w %s wiersz %d: %s"
+
+#, c-format
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "Zła wartość COMPOUNDSYLMAX w %s wiersz %d: %s"
+
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "Zła wartość CHECKCOMPOUNDPATTERN w %s wiersz %d: %s"
+
+#, c-format
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "Różne flagi złożeń w kontynuowanym bloku afiksu w %s wiersz %d: %s"
+
+#, c-format
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "Powtórzony afiks w %s wiersz %d: %s"
+
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr "Afiks użyty także dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
+
+#, c-format
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "Oczekiwano Y lub N w %s wierszu %d: %s"
+
+#, c-format
+msgid "Broken condition in %s line %d: %s"
+msgstr "Błędny warunek w %s wiersz %d: %s"
+
+#, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "Flagi afiksów zignorowane kiedy użyto PFXPOSTPONE w %s wierz %d: %s"
+
+#, c-format
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "Oczekiwano ilości REP(SAL) w %s wierszu %d"
+
+#, c-format
+msgid "Expected MAP count in %s line %d"
+msgstr "Oczekiwano ilości MAP w %s wierszu %d"
+
+#, c-format
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "Powtórzony znak w MAP w %s wierszu %d"
+
+#, c-format
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "Nieznany lub powtórzony element w %s wierszu %d: %s"
+
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "Brak wiersza FOL/LOW/UPP w %s"
+
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "COMPOUNDSYLMAX użyty bez SYLLABLE"
+
+msgid "Too many postponed prefixes"
+msgstr "Zbyt wiele opóźnionych prefiksów"
+
+msgid "Too many compound flags"
+msgstr "Zbyt wiele flag złożeń"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Zbyt wiele opóźnionych prefiksów i/lub flag złożeń"
+
+#, c-format
+msgid "Missing SOFO%s line in %s"
+msgstr "Brak wiersza SOFO%s wiersz w %s"
+
+#, c-format
+msgid "Both SAL and SOFO lines in %s"
+msgstr "Wiersze SAL i SOFO w %s"
+
+#, c-format
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "Flaga nie jest liczbą w %s wiersz %d: %s"
+
+#, c-format
+msgid "Illegal flag in %s line %d: %s"
+msgstr "Nieprawidłowa flaga w %s wiersz %d: %s"
+
+#, c-format
+msgid "%s value differs from what is used in another .aff file"
+msgstr "Wartość %s różni się od tej użytej w innym pliku .aff"
+
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "Czytam plik słownika %s ..."
+
+#, c-format
+msgid "E760: No word count in %s"
+msgstr "E760: Brak ilości słów w %s"
+
+#, c-format
+msgid "line %6d, word %6d - %s"
+msgstr "wiersz %6d, słowo %6d - %s"
+
+# c-format
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "Powtórzony wyraz w %s wierszu %d: %s"
+
+# c-format
+#, c-format
+msgid "First duplicate word in %s line %d: %s"
+msgstr "Pierwszy powtórzony wyraz w %s wiersz %d: %s"
+
+# c-format
+#, c-format
+msgid "%d duplicate word(s) in %s"
+msgstr "%d powtórzony(ch) wyraz(ów) w %s"
+
+#, c-format
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "Zignorowałem %d słów ze znakami nie ASCII w %s"
+
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "Odczytuję plik wyrazów %s ..."
+
+#, c-format
+msgid "Duplicate /encoding= line ignored in %s line %d: %s"
+msgstr "Zignorowano powtórzony wiersz /encoding= w %s wierszu %d: %s"
+
+#, c-format
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "Zignorowano wiersz /encoding= po wyrazie w %s wierszu %d: %s"
+
+#, c-format
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "Powtórzony wiersz /regions= zignorowano w %s wierszu %d: %s"
+
+#, c-format
+msgid "Too many regions in %s line %d: %s"
+msgstr "Za dużo regionów w %s wiersz %d: %s"
+
+#, c-format
+msgid "/ line ignored in %s line %d: %s"
+msgstr "wiersz / zignorowano w %s wierszu %d: %s"
+
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "Nieprawidłowy numer regionu w %s wierszu %d: %s"
+
+#, c-format
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "Nieznane flagi w %s wiersz %d: %s"
+
+#, c-format
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "Zignorowałem %d słów ze znakami nie ASCII"
+
+#, c-format
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "Skompresowano %d z %d węzłów; pozostaje %d (%d%%)"
+
+msgid "Reading back spell file..."
+msgstr "Odczytuję plik sprawdzania pisowni..."
+
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
+msgid "Performing soundfolding..."
+msgstr "Wykonuję kompresję dźwiękową..."
+
+#, c-format
+msgid "Number of words after soundfolding: %ld"
+msgstr "Liczba słów po kompresji dźwiękowej: %ld"
+
+#, c-format
+msgid "Total number of words: %d"
+msgstr "Całkowita liczba słów: %d"
+
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "Zapisuję plik sugestii %s ..."
+
+#, c-format
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "Oczekiwane zużycie pamięci: %d bajtów"
+
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Nazwa pliku wynikowego nie może być nazwą regionu"
+
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: Wspieram tylko 8 regionów"
+
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: Nieprawidłowy region w %s"
+
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "Ostrzeżenie: określono zarówno złożenia jak i NOBREAK"
+
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "Zapisuję plik sprawdzania pisowni %s ..."
+
+msgid "Done!"
+msgstr "Zrobione!"
+
+#, c-format
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' nie posiada wpisów %ld"
+
+#, c-format
+msgid "Word removed from %s"
+msgstr "Usunięto słowo z %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Dodano słowo do %s"
+
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: Znaki wyrazów różnią się między plikami sprawdzania pisowni"
+
+msgid "Sorry, no suggestions"
+msgstr "Przykro mi, brak podpowiedzi"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "Przykro mi, tylko %ld podpowiedzi"
+
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "Zmień \"%.*s\" na:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: Brak poprzednich podmian sprawdzania pisowni"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Nie znaleziono: %s"
+
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Ten plik nie wygląda na plik .sug: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Stary plik .sug, konieczne jest uaktualnienie: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Plik .sug dla nowszej wersji Vima: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Plik .sug nie pasuje do pliku .spl: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: Błąd w czasie odczytu pliku .sug: %s"
+
+#. This should have been checked when generating the .spl
+#. * file.
+msgid "E783: duplicate char in MAP entry"
+msgstr "E783: Podwojony znak we wpisie MAP"
+
+#, c-format
+msgid "E390: Illegal argument: %s"
+msgstr "E390: Niedozwolony argument: %s"
+
+#, c-format
+msgid "E391: No such syntax cluster: %s"
+msgstr "E391: Nie ma takiego klastra składni: %s"
+
+msgid "No Syntax items defined for this buffer"
+msgstr "Brak elementów składni określonych dla tego bufora"
+
+msgid "syncing on C-style comments"
+msgstr "synchronizacja komentarzy w stylu C"
+
+msgid "no syncing"
+msgstr "brak synchronizacji"
+
+msgid "syncing starts "
+msgstr "początek synchronizacji"
+
+msgid " lines before top line"
+msgstr " wierszy przed górną linią"
+
+msgid ""
+"\n"
+"--- Syntax sync items ---"
+msgstr ""
+"\n"
+"--- Elementy synchronizacji składni ---"
+
+msgid ""
+"\n"
+"syncing on items"
+msgstr ""
+"\n"
+"synchronizuję na elementach"
+
+msgid ""
+"\n"
+"--- Syntax items ---"
+msgstr ""
+"\n"
+"--- Elementy składni ---"
+
+#, c-format
+msgid "E392: No such syntax cluster: %s"
+msgstr "E392: Nie ma takiego klastra składni: %s"
+
+msgid "minimal "
+msgstr "minimalnie "
+
+msgid "maximal "
+msgstr "maksymalnie "
+
+msgid "; match "
+msgstr "; pasuje "
+
+msgid " line breaks"
+msgstr "znaków nowego wiersza"
+
+msgid "E395: contains argument not accepted here"
+msgstr "E395: argument contains niedozwolony w tym miejscu"
+
+msgid "E396: containedin argument not accepted here"
+msgstr "E396: argument containedin niedozwolony w tym miejscu"
+
+msgid "E393: group[t]here not accepted here"
+msgstr "E393: group[t]here niedozwolone w tym miejscu"
+
+#, c-format
+msgid "E394: Didn't find region item for %s"
+msgstr "E394: Nie znalazłem elementów regionu dla %s"
+
+msgid "E397: Filename required"
+msgstr "E397: Wymagana nazwa pliku"
+
+#, c-format
+msgid "E747: Missing ']': %s"
+msgstr "E747: Brak ']': %s"
+
+#, c-format
+msgid "E398: Missing '=': %s"
+msgstr "E398: Brak '=': %s"
+
+#, c-format
+msgid "E399: Not enough arguments: syntax region %s"
+msgstr "E399: Za mało argumentów: syntax region %s"
+
+msgid "E400: No cluster specified"
+msgstr "E400: Brak specyfikacji klastra"
+
+#, c-format
+msgid "E401: Pattern delimiter not found: %s"
+msgstr "E401: Brak ogranicznika wzorca: %s"
+
+#, c-format
+msgid "E402: Garbage after pattern: %s"
+msgstr "E402: Śmieci po wzorcu: %s"
+
+msgid "E403: syntax sync: line continuations pattern specified twice"
+msgstr "E403: syntax sync: wielokrotnie podane wzorce kontynuacji wiersza"
+
+#, c-format
+msgid "E404: Illegal arguments: %s"
+msgstr "E404: Niedozwolone argumenty: %s"
+
+#, c-format
+msgid "E405: Missing equal sign: %s"
+msgstr "E405: Brak znaku równości: %s"
+
+#, c-format
+msgid "E406: Empty argument: %s"
+msgstr "E406: Pusty argument: %s"
+
+#, c-format
+msgid "E407: %s not allowed here"
+msgstr "E407: %s jest niedozwolone w tym miejscu"
+
+#, c-format
+msgid "E408: %s must be first in contains list"
+msgstr "E408: %s musi być pierwsze w liście contains"
+
+#, c-format
+msgid "E409: Unknown group name: %s"
+msgstr "E409: Nieznana nazwa grupy: %s"
+
+#, c-format
+msgid "E410: Invalid :syntax subcommand: %s"
+msgstr "E410: Niewłaściwa podkomenda :syntax : %s"
+
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: rekursywna pętla wczytująca syncolor.vim"
+
+#, c-format
+msgid "E411: highlight group not found: %s"
+msgstr "E411: nie znaleziono grupy podświetlania: %s"
+
+#, c-format
+msgid "E412: Not enough arguments: \":highlight link %s\""
+msgstr "E412: Zbyt mało argumentów: \":highlight link %s\""
+
+#, c-format
+msgid "E413: Too many arguments: \":highlight link %s\""
+msgstr "E413: Zbyt wiele argumentów: \":highlight link %s\""
+
+msgid "E414: group has settings, highlight link ignored"
+msgstr "E414: grupa ma ustawienia; zignorowane podłączenie podświetlania"
+
+#, c-format
+msgid "E415: unexpected equal sign: %s"
+msgstr "E415: nieoczekiwany znak równości: %s"
+
+#, c-format
+msgid "E416: missing equal sign: %s"
+msgstr "E416: brak znaku równości: %s"
+
+#, c-format
+msgid "E417: missing argument: %s"
+msgstr "E417: brak argumentu: %s"
+
+#, c-format
+msgid "E418: Illegal value: %s"
+msgstr "E418: Niedozwolona wartość: %s"
+
+msgid "E419: FG color unknown"
+msgstr "E419: Kolor FG nieznany"
+
+msgid "E420: BG color unknown"
+msgstr "E420: Kolor BG nieznany"
+
+#, c-format
+msgid "E421: Color name or number not recognized: %s"
+msgstr "E421: Nazwa lub liczba koloru nierozpoznana: %s"
+
+#, c-format
+msgid "E422: terminal code too long: %s"
+msgstr "E422: za długi kod terminala: %s"
+
+#, c-format
+msgid "E423: Illegal argument: %s"
+msgstr "E423: Niedozwolony argument: %s"
+
+msgid "E424: Too many different highlighting attributes in use"
+msgstr "E424: Zbyt wiele różnych atrybutów podkreślania w użyciu"
+
+msgid "E669: Unprintable character in group name"
+msgstr "E669: Niedrukowalny znak w nazwie grupy"
+
+msgid "W18: Invalid character in group name"
+msgstr "W18: nieprawidłowy znak w nazwie grupy"
+
+msgid "E555: at bottom of tag stack"
+msgstr "E555: na dole stosu znaczników"
+
+msgid "E556: at top of tag stack"
+msgstr "E556: na górze stosu znaczników"
+
+msgid "E425: Cannot go before first matching tag"
+msgstr "E425: Nie można przejść przed pierwszy pasujący znacznik"
+
+#, c-format
+msgid "E426: tag not found: %s"
+msgstr "E426: nie znaleziono znacznika: %s"
+
+msgid "  # pri kind tag"
+msgstr "  # pri rodzaj znacznik"
+
+msgid "file\n"
+msgstr "plik\n"
+
+msgid "E427: There is only one matching tag"
+msgstr "E427: Pasuje tylko jeden znacznik"
+
+msgid "E428: Cannot go beyond last matching tag"
+msgstr "E428: Nie można przejść za ostatni pasujący znacznik"
+
+#, c-format
+msgid "File \"%s\" does not exist"
+msgstr "Plik \"%s\" nie istnieje"
+
+#. Give an indication of the number of matching tags
+#, c-format
+msgid "tag %d of %d%s"
+msgstr "znacznik %d z %d%s"
+
+msgid " or more"
+msgstr " lub więcej"
+
+msgid "  Using tag with different case!"
+msgstr "  Używam znacznika o odmiennej wielkości liter!"
+
+#, c-format
+msgid "E429: File \"%s\" does not exist"
+msgstr "E429: Plik \"%s\" nie istnieje"
+
+#. Highlight title
+msgid ""
+"\n"
+"  # TO tag         FROM line  in file/text"
+msgstr ""
+"\n"
+"  # DO znacznik  OD wiersza      w pliku/tekście"
+
+#, c-format
+msgid "Searching tags file %s"
+msgstr "Szukam w pliku znaczników %s"
+
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: Trop szukania pliku znaczników obcięty dla %s\n"
+
+#, c-format
+msgid "E431: Format error in tags file \"%s\""
+msgstr "E431: Błąd formatu w pliku znaczników \"%s\""
+
+#, c-format
+msgid "Before byte %ld"
+msgstr "Przed bajtem %ld"
+
+#, c-format
+msgid "E432: Tags file not sorted: %s"
+msgstr "E432: Plik znaczników nieuporządkowany: %s"
+
+#. never opened any tags file
+msgid "E433: No tags file"
+msgstr "E433: Brak pliku znaczników"
+
+msgid "E434: Can't find tag pattern"
+msgstr "E434: Nie mogę znaleźć wzorca znacznika"
+
+msgid "E435: Couldn't find tag, just guessing!"
+msgstr "E435: Nie znalazłem znacznika - tylko zgaduję!"
+
+msgid "' not known. Available builtin terminals are:"
+msgstr "' nieznany. Możliwe typy wbudowanych terminali:"
+
+msgid "defaulting to '"
+msgstr "domyślnie jest '"
+
+msgid "E557: Cannot open termcap file"
+msgstr "E557: Nie mogę otworzyć pliku termcap"
+
+msgid "E558: Terminal entry not found in terminfo"
+msgstr "E558: Nie ma opisu takiego terminala w terminfo"
+
+msgid "E559: Terminal entry not found in termcap"
+msgstr "E559: Nie ma opisu takiego terminala w termcap"
+
+#, c-format
+msgid "E436: No \"%s\" entry in termcap"
+msgstr "E436: Brak opisu \"%s\" w termcap"
+
+msgid "E437: terminal capability \"cm\" required"
+msgstr "E437: wymagana zdolność \"cm\" terminala"
+
+#. Highlight title
+msgid ""
+"\n"
+"--- Terminal keys ---"
+msgstr ""
+"\n"
+"--- Klawisze terminala ---"
+
+msgid "new shell started\n"
+msgstr "uruchomiono nową powłokę\n"
+
+msgid "Vim: Error reading input, exiting...\n"
+msgstr "Vim: Błąd podczas wczytywania wejścia, kończę...\n"
+
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "Cofnięcie niemożliwe; mimo to kontynuuję"
+
+msgid "Already at oldest change"
+msgstr "Już w miejscu ostatniej zmiany"
+
+msgid "Already at newest change"
+msgstr "Już w miejscu najnowszej zmiany"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Nie znaleziono numeru cofnięcia %ld"
+
+msgid "E438: u_undo: line numbers wrong"
+msgstr "E438: u_undo: niewłaściwe numery wierszy"
+
+msgid "more line"
+msgstr "1 wiersz więcej"
+
+msgid "more lines"
+msgstr "więcej wierszy"
+
+msgid "line less"
+msgstr "1 wiersz mniej"
+
+msgid "fewer lines"
+msgstr "mniej wierszy"
+
+msgid "change"
+msgstr "1 zmiana"
+
+msgid "changes"
+msgstr "zmiany"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "przed"
+
+msgid "after"
+msgstr "za"
+
+msgid "Nothing to undo"
+msgstr "Nie ma zmian do cofnięcia"
+
+msgid "number changes  time"
+msgstr "liczba zmiany czas"
+
+msgid "E439: undo list corrupt"
+msgstr "E439: uszkodzona lista cofania"
+
+msgid "E440: undo line missing"
+msgstr "E440: brak wiersza cofania"
+
+#. Only MS VC 4.1 and earlier can do Win32s
+msgid ""
+"\n"
+"MS-Windows 16/32 bit GUI version"
+msgstr ""
+"\n"
+"16/32 bitowa wersja GUI dla MS-Windows"
+
+msgid ""
+"\n"
+"MS-Windows 32 bit GUI version"
+msgstr ""
+"\n"
+"32 bitowa wersja GUI dla MS-Windows"
+
+msgid " in Win32s mode"
+msgstr " w trybie Win32s"
+
+msgid " with OLE support"
+msgstr " ze wspomaganiem OLE"
+
+msgid ""
+"\n"
+"MS-Windows 32 bit console version"
+msgstr ""
+"\n"
+"32 bitowa wersja na konsolę dla MS-Windows"
+
+msgid ""
+"\n"
+"MS-Windows 16 bit version"
+msgstr ""
+"\n"
+"16 bitowa wersja dla MS-Windows"
+
+msgid ""
+"\n"
+"32 bit MS-DOS version"
+msgstr ""
+"\n"
+"32 bitowa wersja dla MS-DOS"
+
+msgid ""
+"\n"
+"16 bit MS-DOS version"
+msgstr ""
+"\n"
+"16 bitowa wersja dla MS-DOS"
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"wersja dla MacOS X (unix)"
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"wersja dla MacOS X"
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"wersja dla MacOS"
+
+msgid ""
+"\n"
+"RISC OS version"
+msgstr ""
+"\n"
+"wersja dla RISC OS"
+
+msgid ""
+"\n"
+"Included patches: "
+msgstr ""
+"\n"
+"Zadane łaty: "
+
+msgid "Modified by "
+msgstr "Zmieniony przez "
+
+msgid ""
+"\n"
+"Compiled "
+msgstr ""
+"\n"
+"Skompilowany "
+
+msgid "by "
+msgstr "przez "
+
+msgid ""
+"\n"
+"Huge version "
+msgstr ""
+"\n"
+"Olbrzymia wersja "
+
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Duża wersja "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"Normalna wersja "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Mała wersja "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Malutka wersja "
+
+msgid "without GUI."
+msgstr "bez GUI."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "z GTK2-GNOME GUI."
+
+msgid "with GTK-GNOME GUI."
+msgstr "z GTK-GNOME GUI."
+
+msgid "with GTK2 GUI."
+msgstr "z GTK2 GUI."
+
+msgid "with GTK GUI."
+msgstr "z GTK GUI."
+
+msgid "with X11-Motif GUI."
+msgstr "z X11-Motif GUI."
+
+msgid "with X11-neXtaw GUI."
+msgstr "z X11-neXtaw GUI."
+
+msgid "with X11-Athena GUI."
+msgstr "z X11-Athena GUI."
+
+msgid "with Photon GUI."
+msgstr "z Photon GUI."
+
+msgid "with GUI."
+msgstr "z GUI."
+
+msgid "with Carbon GUI."
+msgstr "z Carbon GUI."
+
+msgid "with Cocoa GUI."
+msgstr "z Cocoa GUI."
+
+msgid "with (classic) GUI."
+msgstr "z (klasycznym) GUI."
+
+msgid "  Features included (+) or not (-):\n"
+msgstr "  Opcje włączone (+) lub nie (-):\n"
+
+msgid "   system vimrc file: \""
+msgstr "       vimrc systemu: \""
+
+msgid "     user vimrc file: \""
+msgstr "   vimrc użytkownika: \""
+
+msgid " 2nd user vimrc file: \""
+msgstr " 2-gi plik vimrc użytkownika: \""
+
+msgid " 3rd user vimrc file: \""
+msgstr " 3-ci plik vimrc użytkownika: \""
+
+msgid "      user exrc file: \""
+msgstr "    exrc użytkownika: \""
+
+msgid "  2nd user exrc file: \""
+msgstr "  2-gi plik exrc użytkownika: \""
+
+msgid "  system gvimrc file: \""
+msgstr "     gvimrc systemu: \""
+
+msgid "    user gvimrc file: \""
+msgstr "  gvimrc użytkownika: \""
+
+msgid "2nd user gvimrc file: \""
+msgstr "2-gi plik gvimrc użytkownika: \""
+
+msgid "3rd user gvimrc file: \""
+msgstr "3-ci plik gvimrc użytkownika: \""
+
+msgid "    system menu file: \""
+msgstr " systemowy plik menu: \""
+
+msgid "  fall-back for $VIM: \""
+msgstr "   odwet dla $VIM-a: \""
+
+msgid " f-b for $VIMRUNTIME: \""
+msgstr "f-b dla $VIMRUNTIME: \""
+
+msgid "Compilation: "
+msgstr "Kompilacja: "
+
+msgid "Compiler: "
+msgstr "Kompilator: "
+
+msgid "Linking: "
+msgstr "Konsolidacja: "
+
+msgid "  DEBUG BUILD"
+msgstr "  KOMPILACJA DEBUG"
+
+msgid "VIM - Vi IMproved"
+msgstr "VIM - Vi rozbudowany"
+
+msgid "version "
+msgstr "wersja "
+
+msgid "by Bram Moolenaar et al."
+msgstr "Autor: Bram Moolenaar i Inni."
+
+msgid "Vim is open source and freely distributable"
+msgstr "Vim jest open source i rozprowadzany darmowo"
+
+msgid "Help poor children in Uganda!"
+msgstr "Pomóż biednym dzieciom w Ugandzie!"
+
+msgid "type  :help iccf<Enter>       for information "
+msgstr "wprowadź :help iccf<Enter>        dla informacji o tym  "
+
+msgid "type  :q<Enter>               to exit         "
+msgstr "wprowadź :q<Enter>                zakończenie programu   "
+
+msgid "type  :help<Enter>  or  <F1>  for on-line help"
+msgstr "wprowadź :help<Enter>  lub  <F1>  pomoc na bieżąco       "
+
+msgid "type  :help version7<Enter>   for version info"
+msgstr "wprowadź :help version7<Enter>    dla informacji o wersji"
+
+msgid "Running in Vi compatible mode"
+msgstr "Działam w trybie zgodności z Vi"
+
+msgid "type  :set nocp<Enter>        for Vim defaults"
+msgstr "wprowadź :set nocp<Enter>         wartości domyślne Vim-a"
+
+msgid "type  :help cp-default<Enter> for info on this"
+msgstr "wprowadź :help cp-default<Enter>  dla informacji to tym  "
+
+msgid "menu  Help->Orphans           for information    "
+msgstr "wprowadź :help iccf<Enter>        dla informacji to tym  "
+
+msgid "Running modeless, typed text is inserted"
+msgstr "Uruchomiony bez trybów, wpisany tekst jest wprowadzany"
+
+msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
+msgstr "menu  Edytuj->Ustawienia globalne->Tryb wstawiania"
+
+msgid "                              for two modes      "
+msgstr "                  dla dwóch trybów           "
+
+msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
+msgstr "menu Edytuj->Ustawienia globalne->Kompatybilność z Vi"
+
+msgid "                              for Vim defaults   "
+msgstr "     dla domyślnych ustawień Vima   "
+
+msgid "Sponsor Vim development!"
+msgstr "Sponsoruj rozwój Vima!"
+
+msgid "Become a registered Vim user!"
+msgstr "Zostań zarejestrowanym użytkownikiem Vima!"
+
+msgid "type  :help sponsor<Enter>    for information "
+msgstr "wprowadź :help sponsor<Enter>        dla informacji"
+
+msgid "type  :help register<Enter>   for information "
+msgstr "wprowadź :help register<Enter>        dla informacji"
+
+msgid "menu  Help->Sponsor/Register  for information    "
+msgstr "menu Pomoc->Sponsoruj/Zarejestruj się dla informacji"
+
+msgid "WARNING: Windows 95/98/ME detected"
+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 "E441: There is no preview window"
+msgstr "E441: Nie ma okna podglądu"
+
+msgid "E442: Can't split topleft and botright at the same time"
+msgstr "E442: Nie mogę rozdzielić lewo-górnego i prawo-dolnego jednocześnie"
+
+msgid "E443: Cannot rotate when another window is split"
+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"
+
+msgid "E446: No file name under cursor"
+msgstr "E446: Brak nazwy pliku pod kursorem"
+
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: Nie mogę znaleźć pliku \"%s\" w tropie"
+
+#, c-format
+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."
+
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr "E299: wyliczenie Perla zabronione w piaskownicy bez modułu Safe"
+
+msgid "Edit with &multiple Vims"
+msgstr "Edytuj w &wielu Vimach"
+
+msgid "Edit with single &Vim"
+msgstr "Edytuj w pojedynczym &Vimie"
+
+msgid "Diff with Vim"
+msgstr "Diff z Vimem"
+
+msgid "Edit with &Vim"
+msgstr "Edytuj w &Vimie"
+
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "Edytuj z istniejącym Vimem - "
+
+msgid "Edits the selected file(s) with Vim"
+msgstr "Edytuj wybrane pliki w Vimie"
+
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Błąd tworzenia procesu: Sprawdź czy gvim jest w twojej ścieżce!"
+
+msgid "gvimext.dll error"
+msgstr "błąd gvimext.dll"
+
+msgid "Path length too long!"
+msgstr "Za długa ścieżka!"
+
+msgid "--No lines in buffer--"
+msgstr "--Brak wierszy w buforze--"
+
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: Przerwanie komendy"
+
+msgid "E471: Argument required"
+msgstr "E471: wymagany argument"
+
+msgid "E10: \\ should be followed by /, ? or &"
+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"
+
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: Komenda niedozwolona z exrc/vimrc w bieżącym szukaniu katalogu lub "
+"znacznika"
+
+msgid "E171: Missing :endif"
+msgstr "E171: Brak :endif"
+
+msgid "E600: Missing :endtry"
+msgstr "E600: Brak :endtry"
+
+msgid "E170: Missing :endwhile"
+msgstr "E170: Brak :endwhile"
+
+msgid "E170: Missing :endfor"
+msgstr "E170: Brak :endfor"
+
+msgid "E588: :endwhile without :while"
+msgstr "E588: :endwhile bez :while"
+
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor bez :for"
+
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: Plik istnieje (wymuś poprzez !)"
+
+msgid "E472: Command failed"
+msgstr "E472: Komenda nie powiodła się"
+
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: Nieznany zestaw czcionek: %s"
+
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: Nieznana czcionka: %s"
+
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: Czcionka \"%s\" nie ma stałej szerokości znaków"
+
+msgid "E473: Internal error"
+msgstr "E473: Błąd wewnętrzny"
+
+msgid "Interrupted"
+msgstr "Przerwane"
+
+msgid "E14: Invalid address"
+msgstr "E14: Niewłaściwy adres"
+
+msgid "E474: Invalid argument"
+msgstr "E474: Niewłaściwy argument"
+
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Niewłaściwy argument: %s"
+
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: Niewłaściwe wyrażenie: %s"
+
+msgid "E16: Invalid range"
+msgstr "E16: Niewłaściwy zakres"
+
+msgid "E476: Invalid command"
+msgstr "E476: Niewłaściwa komenda"
+
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" jest katalogiem"
+
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: Wywołanie z biblioteki nie powiodło się dla \"%s()\""
+
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: Nie można załadować funkcji biblioteki %s"
+
+msgid "E19: Mark has invalid line number"
+msgstr "E19: Zakładka ma niewłaściwy numer wiersza"
+
+msgid "E20: Mark not set"
+msgstr "E20: Zakładka nienastawiona"
+
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: Nie mogę wykonać zmian, 'modifiable' jest wyłączone"
+
+msgid "E22: Scripts nested too deep"
+msgstr "E22: Zbyt głębokie zagnieżdżenie skryptów"
+
+msgid "E23: No alternate file"
+msgstr "E23: Brak pliku zamiany"
+
+msgid "E24: No such abbreviation"
+msgstr "E24: Nie ma takiego skrótu"
+
+msgid "E477: No ! allowed"
+msgstr "E477: Niedozwolone !"
+
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: GUI nie może być użyte: Nie włączono podczas kompilacji"
+
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: Hebrajski nie może być użyty: Nie włączono podczas kompilacji\n"
+
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: Farsi nie może być użyty: Nie włączono podczas kompilacji\n"
+
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: Arabski nie może być użyty: Nie włączono podczas kompilacji\n"
+
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Brak takiej nazwy grupy podświetlania: %s"
+
+msgid "E29: No inserted text yet"
+msgstr "E29: Nie wprowadzono jeszcze żadnego tekstu"
+
+msgid "E30: No previous command line"
+msgstr "E30: Nie ma poprzedniego wiersza poleceń"
+
+msgid "E31: No such mapping"
+msgstr "E31: Nie ma takiego przyporządkowania"
+
+msgid "E479: No match"
+msgstr "E479: Brak dopasowań"
+
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Brak dopasowań: %s"
+
+msgid "E32: No file name"
+msgstr "E32: Brak nazwy pliku"
+
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Brak poprzedniego podstawieniowego wyrażenia regularnego"
+
+msgid "E34: No previous command"
+msgstr "E34: Brak poprzedniej komendy"
+
+msgid "E35: No previous regular expression"
+msgstr "E35: Brak poprzedniego wyrażenia regularnego"
+
+msgid "E481: No range allowed"
+msgstr "E481: Zakres niedozwolony"
+
+msgid "E36: Not enough room"
+msgstr "E36: Brak miejsca"
+
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: brak zarejestrowanego serwera o nazwie \"%s\""
+
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Nie mogę stworzyć pliku %s"
+
+msgid "E483: Can't get temp file name"
+msgstr "E483: Nie mogę pobrać nazwy pliku tymczasowego"
+
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Nie mogę otworzyć pliku %s"
+
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Nie mogę odczytać pliku %s"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Nie zapisano od ostatniej zmiany (wymuś przez !)"
+
+msgid "E38: Null argument"
+msgstr "E38: Zerowy argument"
+
+msgid "E39: Number expected"
+msgstr "E39: Oczekuję liczby"
+
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: Nie mogę otworzyć pliku błędów %s"
+
+msgid "E233: cannot open display"
+msgstr "E233: nie mogę otworzyć ekranu"
+
+msgid "E41: Out of memory!"
+msgstr "E41: Pamięć wyczerpana!"
+
+msgid "Pattern not found"
+msgstr "Nie znaleziono wzorca"
+
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Nie znaleziono wzorca: %s"
+
+msgid "E487: Argument must be positive"
+msgstr "E487: Argument musi być dodatni"
+
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Nie można przejść do poprzedniego katalogu"
+
+msgid "E42: No Errors"
+msgstr "E42: Brak Błędów"
+
+msgid "E776: No location list"
+msgstr "E776: Brak listy lokacji"
+
+msgid "E43: Damaged match string"
+msgstr "E43: Popsuty ciąg wzorca"
+
+msgid "E44: Corrupted regexp program"
+msgstr "E44: Zepsuty program wyrażeń regularnych"
+
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: opcja 'readonly' jest ustawiona (wymuś poprzez !)"
+
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: Nie mogę zmienić zmiennej tylko do odczytu \"%s\""
+
+#, c-format
+msgid "E46: Cannot set variable in the sandbox: \"%s\""
+msgstr "E46: Nie mogę ustawić zmiennej w piaskownicy: \"%s\""
+
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Błąd w trakcie czytania pliku błędów"
+
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: Niedozwolone w piaskownicy"
+
+msgid "E523: Not allowed here"
+msgstr "E523: Niedozwolone w tym miejscu"
+
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: Ustawianie trybu ekranu niewspomagane"
+
+msgid "E49: Invalid scroll size"
+msgstr "E49: Niewłaściwa wielkość przewinięcia"
+
+msgid "E91: 'shell' option is empty"
+msgstr "E91: opcja 'shell' jest pusta"
+
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: Nie mogłem wczytać danych znaku!"
+
+msgid "E72: Close error on swap file"
+msgstr "E72: Błąd podczas zamykania pliku wymiany"
+
+msgid "E73: tag stack empty"
+msgstr "E73: stos znaczników jest pusty"
+
+msgid "E74: Command too complex"
+msgstr "E74: Komenda jest zbyt skomplikowana"
+
+msgid "E75: Name too long"
+msgstr "E75: Zbyt długa nazwa"
+
+msgid "E76: Too many ["
+msgstr "E76: Zbyt wiele ["
+
+msgid "E77: Too many file names"
+msgstr "E77: Zbyt wiele nazw plików"
+
+msgid "E488: Trailing characters"
+msgstr "E488: Nadstępne znaczki"
+
+msgid "E78: Unknown mark"
+msgstr "E78: Nieznana zakładka"
+
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: Nie mogą rozwinąć znaków wieloznacznych"
+
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' nie może być mniejsze niż 'winminheight'"
+
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth' nie może być mniejsze niż 'winminwidth'"
+
+msgid "E80: Error while writing"
+msgstr "E80: Błąd w trakcie zapisu"
+
+msgid "Zero count"
+msgstr "Zerowy licznik"
+
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: Użycie <SID> poza kontekstem skryptu"
+
+msgid "E449: Invalid expression received"
+msgstr "E449: Odebrałem niewłaściwe wyrażenie"
+
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Region jest chroniony, nie mogę zmienić"
+
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans nie zezwala na zmiany w plikach tylko do odczytu"
+
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Błąd wewnętrzny: %s"
+
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: Wzorzec używa więcej pamięci niż 'maxmempattern'"
+
+msgid "E749: empty buffer"
+msgstr "E749: pusty bufor"
+
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Niewłaściwy wzorzec wyszukiwania lub delimiter"
+
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Plik jest załadowany w innym buforze"
+
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: Nie ustawiono opcji '%s'"
+
+msgid "search hit TOP, continuing at BOTTOM"
+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/po/pl.cp1250.po
+++ b/src/po/pl.cp1250.po
@@ -4,19 +4,19 @@
 # updated 2005 for vim-7.0
 #
 # FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
-# Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005.
+# Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
 msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-14 01:26+0200\n"
-"PO-Revision-Date: 2005-10-14 12:24+0200\n"
+"POT-Creation-Date: 2006-04-01 18:24+0200\n"
+"PO-Revision-Date: 2006-04-01 18:39+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
 "Language-Team: Polish <mikmach@wp.pl>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=cp1250\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11\n"
+"X-Generator: KBabel 1.11.2\n"
 
 msgid "E82: Cannot allocate any buffer, exiting..."
 msgstr "E82: Nie mog zarezerwowa bufora; zakoczenie..."
@@ -134,8 +134,8 @@ msgstr "[Bez nazwy]"
 msgid "help"
 msgstr "pomoc"
 
-msgid "[help]"
-msgstr "[pomoc]"
+msgid "[Help]"
+msgstr "[Pomoc]"
 
 msgid "[Preview]"
 msgstr "[Podgld]"
@@ -157,8 +157,11 @@ msgstr ""
 "\n"
 "# Lista buforw:\n"
 
-msgid "[Error List]"
-msgstr "[Lista Bdw]"
+msgid "[Location List]"
+msgstr "[Lista lokacji]"
+
+msgid "[Quickfix List]"
+msgstr "[Lista quickfix]"
 
 msgid ""
 "\n"
@@ -490,6 +493,9 @@ msgstr "E724: Zmienna zagniedona zbyt gboko by pokaza"
 msgid "E699: Too many arguments"
 msgstr "E699: Za duo argumentw"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() moe by uyte tylko w trybie Wprowadzania"
+
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
 #. * this way has the compelling advantage that translations need not to
@@ -771,6 +777,21 @@ msgstr "wiersz %ld: wczytywanie \"%s\""
 msgid "finished sourcing %s"
 msgstr "skoczono wczytywanie %s"
 
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd argument"
+
+msgid "-c argument"
+msgstr "-c argument"
+
+msgid "environment variable"
+msgstr "zmienna rodowiskowa"
+
+msgid "error handler"
+msgstr "obsuga bdu"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: OSTRZEENIE: Niewaciwy separator wierszy, pewnie brak ^M"
 
@@ -1158,9 +1179,19 @@ msgstr "E185: Nie mog znale zestawu kolorw %s"
 msgid "Greetings, Vim user!"
 msgstr "Witaj uytkowniku Vima!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: Nie mog zamkn ostatniej karty"
+
+msgid "Already only one tab page"
+msgstr "Jest ju tylko jedna karta"
+
 msgid "Edit File in new window"
 msgstr "Edytuj plik w nowym oknie"
 
+#, c-format
+msgid "Tab page %d"
+msgstr "Karta %d"
+
 msgid "No swap file"
 msgstr "Brak pliku wymiany"
 
@@ -1404,6 +1435,9 @@ msgstr "nie jest plikiem"
 msgid "[New File]"
 msgstr "[Nowy Plik]"
 
+msgid "[New DIRECTORY]"
+msgstr "[Nowy KATALOG]"
+
 msgid "[File too big]"
 msgstr "[Za duy plik]"
 
@@ -1456,8 +1490,9 @@ msgstr "[przemienione]"
 msgid "[crypted]"
 msgstr "[zakodowane]"
 
-msgid "[CONVERSION ERROR]"
-msgstr "[BD W PRZEMIANIE]"
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[BD W PRZEMIANIE w linii %ld]"
 
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
@@ -1909,6 +1944,15 @@ msgstr "Zamie wszystkie"
 msgid "Vim: Received \"die\" request from session manager\n"
 msgstr "Vim: otrzymano danie \"die\" od manadera sesji\n"
 
+msgid "Close"
+msgstr "Zamknij"
+
+msgid "New tab"
+msgstr "Nowa karta"
+
+msgid "Open Tab..."
+msgstr "Otwrz kart..."
+
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: Gwne okno nieoczekiwanie zniszczone\n"
 
@@ -1980,6 +2024,12 @@ msgstr "E243: Argument nie jest wspomagany: \"-%s\"; Uywaj wersji OLE."
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: Nie mona otworzy okna wewntrz aplikacji MDI"
 
+msgid "Close tab"
+msgstr "Zamknij kart"
+
+msgid "Open tab..."
+msgstr "Otwrz kart..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Znajd cig (uyj '\\\\' do szukania '\\')"
 
@@ -2699,7 +2749,9 @@ msgstr ""
 "   lub:"
 
 msgid "where case is ignored prepend / to make flag upper case"
-msgstr "gdzie wielko znakw jest ignorowana dodaj na pocztku / by flaga bya wielk liter"
+msgstr ""
+"gdzie wielko znakw jest ignorowana dodaj na pocztku / by flaga bya "
+"wielk liter"
 
 msgid ""
 "\n"
@@ -2812,6 +2864,9 @@ msgstr "-U <gvimrc>\t\tUyj <gvimrc> zamiast jakiegokolwiek .gvimrc"
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tNie aduj skryptw wtyczek"
 
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tOtwrz N kart (domylnie: po jednej dla kadego pliku)"
+
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tOtwrz N okien (domylnie: po jednym dla kadego pliku)"
 
@@ -2865,6 +2920,9 @@ 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 jeli nie ma serwera"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <pliki>\tTak jak --remote ale otwrz jedn kart dla kadego pliku"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <klawisze>\tWylij <klawisze> do serwera Vima i zakocz"
 
@@ -2984,25 +3042,6 @@ msgstr "--role <role>\tUstaw unikatow rol do identyfikacji gwnego okna"
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tOtwrz Vim wewntrz innego widgetu GTK"
 
-msgid ""
-"\n"
-"Arguments recognised by kvim (KDE version):\n"
-msgstr ""
-"\n"
-"Argumenty rozpoznawane przez kvim (wersja KDE):\n"
-
-msgid "-black\t\tUse reverse video"
-msgstr "-black\t\tStosuj negatyw kolorw"
-
-msgid "-tip\t\t\tDisplay the tip dialog on startup"
-msgstr "-tip\t\t\tPoka okno wskazwek na pocztku"
-
-msgid "-notip\t\tDisable the tip dialog"
-msgstr "-notip\t\tWycz okno wskazwek"
-
-msgid "--display <display>\tRun vim on <display>"
-msgstr "--display <display>\tUruchom vim na <display>"
-
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <tytu rodzica>\tOtwrz Vima wewntrz rodzicielskiej aplikacji"
 
@@ -3423,6 +3462,10 @@ msgstr "Wielko stosu wzrasta"
 msgid "E317: pointer block id wrong 2"
 msgstr "E317: niepoprawne id bloku odniesienia 2"
 
+#, c-format
+msgid "E773: Symlink loop for \"%s\""
+msgstr "E773: Ptla dowiza dla \"%s\""
+
 msgid "E325: ATTENTION"
 msgstr "E325: UWAGA"
 
@@ -3511,16 +3554,16 @@ msgid ""
 "&Open Read-Only\n"
 "&Edit anyway\n"
 "&Recover\n"
+"&Delete it\n"
 "&Quit\n"
-"&Abort\n"
-"&Delete it"
+"&Abort"
 msgstr ""
 "&Otwrz Read-Only\n"
 "&Edytuj pomimo\n"
 "O&dtwrz\n"
+"&Usu\n"
 "&Zakocz\n"
-"&Porzu\n"
-"&Skasuj go"
+"&Porzu"
 
 msgid "E326: Too many swap files found"
 msgstr "E326: Znaleziono zbyt wiele plikw wymiany"
@@ -3787,6 +3830,12 @@ msgstr "E658: Bufor %ld utraci poczenie z NetBeans"
 msgid "E505: "
 msgstr "E505: "
 
+msgid "E774: 'operatorfunc' is empty"
+msgstr "E774: 'operatorfunc' jest pusta"
+
+msgid "E775: Eval feature not available"
+msgstr "E775: Funkcjonalno eval nie jest dostpna"
+
 msgid "Warning: terminal cannot highlight"
 msgstr "OSTRZEENIE: terminal nie wykonuje podwietlania"
 
@@ -4134,6 +4183,9 @@ msgstr "BD I/O"
 msgid "...(truncated)"
 msgstr "...(obcity)"
 
+msgid "Message"
+msgstr "Wiadomo"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' nie wynosi 80, nie mog wykona zewntrznych komend"
 
@@ -4182,14 +4234,6 @@ msgstr "Vim: Zaapa miertelny sygna\n"
 msgid "Opening the X display took %ld msec"
 msgstr "Otwieranie ekranu X trwao %ld msec"
 
-#. KDE sometimes produces X error that we want to ignore
-msgid ""
-"\n"
-"Vim: Got X error but we continue...\n"
-msgstr ""
-"\n"
-"Vim: Dostaem bd X ale kontynuuj...\n"
-
 msgid ""
 "\n"
 "Vim: Got X error\n"
@@ -4374,6 +4418,9 @@ msgstr "Nie mog otworzy pliku \"%s\""
 msgid "E681: Buffer is not loaded"
 msgstr "E681: Bufor nie jest zaadowany"
 
+msgid "E777: String or List expected"
+msgstr "E777: Oczekiwano acucha lub listy"
+
 #, c-format
 msgid "E369: invalid item in %s%%[]"
 msgstr "E369: Niewaciwy element w %s%%[]"
@@ -4557,6 +4604,10 @@ msgstr "  NIE ZNALEZIONO"
 msgid "Scanning included file: %s"
 msgstr "Przegld wczonego pliku: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "Przeszukiwanie wczonego pliku %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: Wzorzec pasuje w biecym wierszu"
 
@@ -4647,12 +4698,8 @@ msgid "FLAG after using flags in %s line
 msgstr "FLAG po uyciu flag w %s wiersz %d: %s"
 
 #, c-format
-msgid "Character used for SLASH must be ASCII; in %s line %d: %s"
-msgstr "Znak uyty jako SLASH musi by znakiem ASCII; w %s wiersz %d: %s"
-
-#, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "Za warto COMPOUNDMAX w %s wiersz %d: %s"
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "Za warto COMPOUNDWORDMAX w %s wiersz %d: %s"
 
 #, c-format
 msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
@@ -4663,6 +4710,10 @@ msgid "Wrong COMPOUNDSYLMAX value in %s 
 msgstr "Za warto COMPOUNDSYLMAX w %s wiersz %d: %s"
 
 #, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "Za warto CHECKCOMPOUNDPATTERN w %s wiersz %d: %s"
+
+#, c-format
 msgid "Different combining flag in continued affix block in %s line %d: %s"
 msgstr "Rne flagi zoe w kontynuowanym bloku afiksu w %s wiersz %d: %s"
 
@@ -4671,8 +4722,10 @@ msgid "Duplicate affix in %s line %d: %s
 msgstr "Powtrzony afiks w %s wiersz %d: %s"
 
 #, c-format
-msgid "Affix also used for BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %s"
-msgstr "Afiks uyty take dla BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND w %s wiersz %d: %s"
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr "Afiks uyty take dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4683,8 +4736,12 @@ msgid "Broken condition in %s line %d: %
 msgstr "Bdny warunek w %s wiersz %d: %s"
 
 #, c-format
-msgid "Expected REP count in %s line %d"
-msgstr "Oczekiwano iloci REP w %s wierszu %d"
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "Flagi afiksw zignorowane kiedy uyto PFXPOSTPONE w %s wierz %d: %s"
+
+#, c-format
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "Oczekiwano iloci REP(SAL) w %s wierszu %d"
 
 #, c-format
 msgid "Expected MAP count in %s line %d"
@@ -4802,8 +4859,34 @@ msgid "Ignored %d words with non-ASCII c
 msgstr "Zignorowaem %d sw ze znakami nie ASCII"
 
 #, c-format
-msgid "Compressed %d of %d nodes; %d%% remaining"
-msgstr "Skompresowano %d z %d wzw; pozostaje %d%%"
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "Skompresowano %d z %d wzw; pozostaje %d (%d%%)"
+
+msgid "Reading back spell file..."
+msgstr "Odczytuj plik sprawdzania pisowni..."
+
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
+msgid "Performing soundfolding..."
+msgstr "Wykonuj kompresj dwikow..."
+
+#, c-format
+msgid "Number of words after soundfolding: %ld"
+msgstr "Liczba sw po kompresji dwikowej: %ld"
+
+#, c-format
+msgid "Total number of words: %d"
+msgstr "Cakowita liczba sw: %d"
+
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "Zapisuj plik sugestii %s ..."
+
+#, c-format
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "Oczekiwane zuycie pamici: %d bajtw"
 
 msgid "E751: Output file name must not have region name"
 msgstr "E751: Nazwa pliku wynikowego nie moe by nazw regionu"
@@ -4826,13 +4909,17 @@ msgid "Done!"
 msgstr "Zrobione!"
 
 #, c-format
-msgid "Estimated runtime memory use: %d bytes"
-msgstr "Oczekiwane zuycie pamici: %d bajtw"
-
-#, c-format
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile' nie posiada wpisw %ld"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "Usunito sowo z %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Dodano sowo do %s"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: Znaki wyrazw rni si midzy plikami sprawdzania pisowni"
 
@@ -4859,10 +4946,30 @@ msgstr "E752: Brak poprzednich podmian s
 msgid "E753: Not found: %s"
 msgstr "E753: Nie znaleziono: %s"
 
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Ten plik nie wyglda na plik .sug: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Stary plik .sug, konieczne jest uaktualnienie: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Plik .sug dla nowszej wersji Vima: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Plik .sug nie pasuje do pliku .spl: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: Bd w czasie odczytu pliku .sug: %s"
+
 #. This should have been checked when generating the .spl
 #. * file.
-msgid "E999: duplicate char in MAP entry"
-msgstr "E999: powtrzony znak we wpisie MAP"
+msgid "E783: duplicate char in MAP entry"
+msgstr "E783: Podwojony znak we wpisie MAP"
 
 #, c-format
 msgid "E390: Illegal argument: %s"
@@ -5177,15 +5284,52 @@ msgstr "Vim: Bd podczas wczytywania wejcia, kocz...\n"
 msgid "No undo possible; continue anyway"
 msgstr "Cofnicie niemoliwe; mimo to kontynuuj"
 
+msgid "Already at oldest change"
+msgstr "Ju w miejscu ostatniej zmiany"
+
+msgid "Already at newest change"
+msgstr "Ju w miejscu najnowszej zmiany"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Nie znaleziono numeru cofnicia %ld"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: niewaciwe numery wierszy"
 
-msgid "1 change"
+msgid "more line"
+msgstr "1 wiersz wicej"
+
+msgid "more lines"
+msgstr "wicej wierszy"
+
+msgid "line less"
+msgstr "1 wiersz mniej"
+
+msgid "fewer lines"
+msgstr "mniej wierszy"
+
+msgid "change"
 msgstr "1 zmiana"
 
-#, c-format
-msgid "%ld changes"
-msgstr "%ld zmian"
+msgid "changes"
+msgstr "zmiany"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "przed"
+
+msgid "after"
+msgstr "za"
+
+msgid "Nothing to undo"
+msgstr "Nie ma zmian do cofnicia"
+
+msgid "number changes  time"
+msgstr "liczba zmiany czas"
 
 msgid "E439: undo list corrupt"
 msgstr "E439: uszkodzona lista cofania"
@@ -5364,9 +5508,6 @@ msgstr "z Cocoa GUI."
 msgid "with (classic) GUI."
 msgstr "z (klasycznym) GUI."
 
-msgid "with KDE GUI."
-msgstr "z GUI KDE."
-
 msgid "  Features included (+) or not (-):\n"
 msgstr "  Opcje wczone (+) lub nie (-):\n"
 
@@ -5782,6 +5923,9 @@ msgstr "E459: Nie mona przej do poprzedniego katalogu"
 msgid "E42: No Errors"
 msgstr "E42: Brak Bdw"
 
+msgid "E776: No location list"
+msgstr "E776: Brak listy lokacji"
+
 msgid "E43: Damaged match string"
 msgstr "E43: Popsuty cig wzorca"
 
--- a/src/po/pl.po
+++ b/src/po/pl.po
@@ -4,19 +4,19 @@
 # updated 2005 for vim-7.0
 #
 # FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
-# Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005.
+# Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
 msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-14 01:26+0200\n"
-"PO-Revision-Date: 2005-10-14 12:24+0200\n"
+"POT-Creation-Date: 2006-04-01 18:24+0200\n"
+"PO-Revision-Date: 2006-04-01 18:39+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
 "Language-Team: Polish <mikmach@wp.pl>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11\n"
+"X-Generator: KBabel 1.11.2\n"
 
 msgid "E82: Cannot allocate any buffer, exiting..."
 msgstr "E82: Nie mog zarezerwowa bufora; zakoczenie..."
@@ -134,8 +134,8 @@ msgstr "[Bez nazwy]"
 msgid "help"
 msgstr "pomoc"
 
-msgid "[help]"
-msgstr "[pomoc]"
+msgid "[Help]"
+msgstr "[Pomoc]"
 
 msgid "[Preview]"
 msgstr "[Podgld]"
@@ -157,8 +157,11 @@ msgstr ""
 "\n"
 "# Lista buforw:\n"
 
-msgid "[Error List]"
-msgstr "[Lista Bdw]"
+msgid "[Location List]"
+msgstr "[Lista lokacji]"
+
+msgid "[Quickfix List]"
+msgstr "[Lista quickfix]"
 
 msgid ""
 "\n"
@@ -490,6 +493,9 @@ msgstr "E724: Zmienna zagniedona zbyt gboko by pokaza"
 msgid "E699: Too many arguments"
 msgstr "E699: Za duo argumentw"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() moe by uyte tylko w trybie Wprowadzania"
+
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
 #. * this way has the compelling advantage that translations need not to
@@ -771,6 +777,21 @@ msgstr "wiersz %ld: wczytywanie \"%s\""
 msgid "finished sourcing %s"
 msgstr "skoczono wczytywanie %s"
 
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd argument"
+
+msgid "-c argument"
+msgstr "-c argument"
+
+msgid "environment variable"
+msgstr "zmienna rodowiskowa"
+
+msgid "error handler"
+msgstr "obsuga bdu"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: OSTRZEENIE: Niewaciwy separator wierszy, pewnie brak ^M"
 
@@ -1158,9 +1179,19 @@ msgstr "E185: Nie mog znale zestawu kolorw %s"
 msgid "Greetings, Vim user!"
 msgstr "Witaj uytkowniku Vima!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: Nie mog zamkn ostatniej karty"
+
+msgid "Already only one tab page"
+msgstr "Jest ju tylko jedna karta"
+
 msgid "Edit File in new window"
 msgstr "Edytuj plik w nowym oknie"
 
+#, c-format
+msgid "Tab page %d"
+msgstr "Karta %d"
+
 msgid "No swap file"
 msgstr "Brak pliku wymiany"
 
@@ -1404,6 +1435,9 @@ msgstr "nie jest plikiem"
 msgid "[New File]"
 msgstr "[Nowy Plik]"
 
+msgid "[New DIRECTORY]"
+msgstr "[Nowy KATALOG]"
+
 msgid "[File too big]"
 msgstr "[Za duy plik]"
 
@@ -1456,8 +1490,9 @@ msgstr "[przemienione]"
 msgid "[crypted]"
 msgstr "[zakodowane]"
 
-msgid "[CONVERSION ERROR]"
-msgstr "[BD W PRZEMIANIE]"
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[BD W PRZEMIANIE w linii %ld]"
 
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
@@ -1909,6 +1944,15 @@ msgstr "Zamie wszystkie"
 msgid "Vim: Received \"die\" request from session manager\n"
 msgstr "Vim: otrzymano danie \"die\" od manadera sesji\n"
 
+msgid "Close"
+msgstr "Zamknij"
+
+msgid "New tab"
+msgstr "Nowa karta"
+
+msgid "Open Tab..."
+msgstr "Otwrz kart..."
+
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: Gwne okno nieoczekiwanie zniszczone\n"
 
@@ -1980,6 +2024,12 @@ msgstr "E243: Argument nie jest wspomagany: \"-%s\"; Uywaj wersji OLE."
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: Nie mona otworzy okna wewntrz aplikacji MDI"
 
+msgid "Close tab"
+msgstr "Zamknij kart"
+
+msgid "Open tab..."
+msgstr "Otwrz kart..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Znajd cig (uyj '\\\\' do szukania '\\')"
 
@@ -2699,7 +2749,9 @@ msgstr ""
 "   lub:"
 
 msgid "where case is ignored prepend / to make flag upper case"
-msgstr "gdzie wielko znakw jest ignorowana dodaj na pocztku / by flaga bya wielk liter"
+msgstr ""
+"gdzie wielko znakw jest ignorowana dodaj na pocztku / by flaga bya "
+"wielk liter"
 
 msgid ""
 "\n"
@@ -2812,6 +2864,9 @@ msgstr "-U <gvimrc>\t\tUyj <gvimrc> zamiast jakiegokolwiek .gvimrc"
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tNie aduj skryptw wtyczek"
 
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tOtwrz N kart (domylnie: po jednej dla kadego pliku)"
+
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tOtwrz N okien (domylnie: po jednym dla kadego pliku)"
 
@@ -2865,6 +2920,9 @@ 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 jeli nie ma serwera"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <pliki>\tTak jak --remote ale otwrz jedn kart dla kadego pliku"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <klawisze>\tWylij <klawisze> do serwera Vima i zakocz"
 
@@ -2984,25 +3042,6 @@ msgstr "--role <role>\tUstaw unikatow rol do identyfikacji gwnego okna"
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tOtwrz Vim wewntrz innego widgetu GTK"
 
-msgid ""
-"\n"
-"Arguments recognised by kvim (KDE version):\n"
-msgstr ""
-"\n"
-"Argumenty rozpoznawane przez kvim (wersja KDE):\n"
-
-msgid "-black\t\tUse reverse video"
-msgstr "-black\t\tStosuj negatyw kolorw"
-
-msgid "-tip\t\t\tDisplay the tip dialog on startup"
-msgstr "-tip\t\t\tPoka okno wskazwek na pocztku"
-
-msgid "-notip\t\tDisable the tip dialog"
-msgstr "-notip\t\tWycz okno wskazwek"
-
-msgid "--display <display>\tRun vim on <display>"
-msgstr "--display <display>\tUruchom vim na <display>"
-
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <tytu rodzica>\tOtwrz Vima wewntrz rodzicielskiej aplikacji"
 
@@ -3423,6 +3462,10 @@ msgstr "Wielko stosu wzrasta"
 msgid "E317: pointer block id wrong 2"
 msgstr "E317: niepoprawne id bloku odniesienia 2"
 
+#, c-format
+msgid "E773: Symlink loop for \"%s\""
+msgstr "E773: Ptla dowiza dla \"%s\""
+
 msgid "E325: ATTENTION"
 msgstr "E325: UWAGA"
 
@@ -3511,16 +3554,16 @@ msgid ""
 "&Open Read-Only\n"
 "&Edit anyway\n"
 "&Recover\n"
+"&Delete it\n"
 "&Quit\n"
-"&Abort\n"
-"&Delete it"
+"&Abort"
 msgstr ""
 "&Otwrz Read-Only\n"
 "&Edytuj pomimo\n"
 "O&dtwrz\n"
+"&Usu\n"
 "&Zakocz\n"
-"&Porzu\n"
-"&Skasuj go"
+"&Porzu"
 
 msgid "E326: Too many swap files found"
 msgstr "E326: Znaleziono zbyt wiele plikw wymiany"
@@ -3787,6 +3830,12 @@ msgstr "E658: Bufor %ld utraci poczenie z NetBeans"
 msgid "E505: "
 msgstr "E505: "
 
+msgid "E774: 'operatorfunc' is empty"
+msgstr "E774: 'operatorfunc' jest pusta"
+
+msgid "E775: Eval feature not available"
+msgstr "E775: Funkcjonalno eval nie jest dostpna"
+
 msgid "Warning: terminal cannot highlight"
 msgstr "OSTRZEENIE: terminal nie wykonuje podwietlania"
 
@@ -4134,6 +4183,9 @@ msgstr "BD I/O"
 msgid "...(truncated)"
 msgstr "...(obcity)"
 
+msgid "Message"
+msgstr "Wiadomo"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' nie wynosi 80, nie mog wykona zewntrznych komend"
 
@@ -4182,14 +4234,6 @@ msgstr "Vim: Zaapa miertelny sygna\n"
 msgid "Opening the X display took %ld msec"
 msgstr "Otwieranie ekranu X trwao %ld msec"
 
-#. KDE sometimes produces X error that we want to ignore
-msgid ""
-"\n"
-"Vim: Got X error but we continue...\n"
-msgstr ""
-"\n"
-"Vim: Dostaem bd X ale kontynuuj...\n"
-
 msgid ""
 "\n"
 "Vim: Got X error\n"
@@ -4374,6 +4418,9 @@ msgstr "Nie mog otworzy pliku \"%s\""
 msgid "E681: Buffer is not loaded"
 msgstr "E681: Bufor nie jest zaadowany"
 
+msgid "E777: String or List expected"
+msgstr "E777: Oczekiwano acucha lub listy"
+
 #, c-format
 msgid "E369: invalid item in %s%%[]"
 msgstr "E369: Niewaciwy element w %s%%[]"
@@ -4557,6 +4604,10 @@ msgstr "  NIE ZNALEZIONO"
 msgid "Scanning included file: %s"
 msgstr "Przegld wczonego pliku: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "Przeszukiwanie wczonego pliku %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: Wzorzec pasuje w biecym wierszu"
 
@@ -4647,12 +4698,8 @@ msgid "FLAG after using flags in %s line
 msgstr "FLAG po uyciu flag w %s wiersz %d: %s"
 
 #, c-format
-msgid "Character used for SLASH must be ASCII; in %s line %d: %s"
-msgstr "Znak uyty jako SLASH musi by znakiem ASCII; w %s wiersz %d: %s"
-
-#, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "Za warto COMPOUNDMAX w %s wiersz %d: %s"
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "Za warto COMPOUNDWORDMAX w %s wiersz %d: %s"
 
 #, c-format
 msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
@@ -4663,6 +4710,10 @@ msgid "Wrong COMPOUNDSYLMAX value in %s 
 msgstr "Za warto COMPOUNDSYLMAX w %s wiersz %d: %s"
 
 #, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "Za warto CHECKCOMPOUNDPATTERN w %s wiersz %d: %s"
+
+#, c-format
 msgid "Different combining flag in continued affix block in %s line %d: %s"
 msgstr "Rne flagi zoe w kontynuowanym bloku afiksu w %s wiersz %d: %s"
 
@@ -4671,8 +4722,10 @@ msgid "Duplicate affix in %s line %d: %s
 msgstr "Powtrzony afiks w %s wiersz %d: %s"
 
 #, c-format
-msgid "Affix also used for BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %s"
-msgstr "Afiks uyty take dla BAD/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND w %s wiersz %d: %s"
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr "Afiks uyty take dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4683,8 +4736,12 @@ msgid "Broken condition in %s line %d: %
 msgstr "Bdny warunek w %s wiersz %d: %s"
 
 #, c-format
-msgid "Expected REP count in %s line %d"
-msgstr "Oczekiwano iloci REP w %s wierszu %d"
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "Flagi afiksw zignorowane kiedy uyto PFXPOSTPONE w %s wierz %d: %s"
+
+#, c-format
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "Oczekiwano iloci REP(SAL) w %s wierszu %d"
 
 #, c-format
 msgid "Expected MAP count in %s line %d"
@@ -4802,8 +4859,34 @@ msgid "Ignored %d words with non-ASCII c
 msgstr "Zignorowaem %d sw ze znakami nie ASCII"
 
 #, c-format
-msgid "Compressed %d of %d nodes; %d%% remaining"
-msgstr "Skompresowano %d z %d wzw; pozostaje %d%%"
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "Skompresowano %d z %d wzw; pozostaje %d (%d%%)"
+
+msgid "Reading back spell file..."
+msgstr "Odczytuj plik sprawdzania pisowni..."
+
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
+msgid "Performing soundfolding..."
+msgstr "Wykonuj kompresj dwikow..."
+
+#, c-format
+msgid "Number of words after soundfolding: %ld"
+msgstr "Liczba sw po kompresji dwikowej: %ld"
+
+#, c-format
+msgid "Total number of words: %d"
+msgstr "Cakowita liczba sw: %d"
+
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "Zapisuj plik sugestii %s ..."
+
+#, c-format
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "Oczekiwane zuycie pamici: %d bajtw"
 
 msgid "E751: Output file name must not have region name"
 msgstr "E751: Nazwa pliku wynikowego nie moe by nazw regionu"
@@ -4826,13 +4909,17 @@ msgid "Done!"
 msgstr "Zrobione!"
 
 #, c-format
-msgid "Estimated runtime memory use: %d bytes"
-msgstr "Oczekiwane zuycie pamici: %d bajtw"
-
-#, c-format
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile' nie posiada wpisw %ld"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "Usunito sowo z %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Dodano sowo do %s"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: Znaki wyrazw rni si midzy plikami sprawdzania pisowni"
 
@@ -4859,10 +4946,30 @@ msgstr "E752: Brak poprzednich podmian s
 msgid "E753: Not found: %s"
 msgstr "E753: Nie znaleziono: %s"
 
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Ten plik nie wyglda na plik .sug: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Stary plik .sug, konieczne jest uaktualnienie: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Plik .sug dla nowszej wersji Vima: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Plik .sug nie pasuje do pliku .spl: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: Bd w czasie odczytu pliku .sug: %s"
+
 #. This should have been checked when generating the .spl
 #. * file.
-msgid "E999: duplicate char in MAP entry"
-msgstr "E999: powtrzony znak we wpisie MAP"
+msgid "E783: duplicate char in MAP entry"
+msgstr "E783: Podwojony znak we wpisie MAP"
 
 #, c-format
 msgid "E390: Illegal argument: %s"
@@ -5177,15 +5284,52 @@ msgstr "Vim: Bd podczas wczytywania wejcia, kocz...\n"
 msgid "No undo possible; continue anyway"
 msgstr "Cofnicie niemoliwe; mimo to kontynuuj"
 
+msgid "Already at oldest change"
+msgstr "Ju w miejscu ostatniej zmiany"
+
+msgid "Already at newest change"
+msgstr "Ju w miejscu najnowszej zmiany"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Nie znaleziono numeru cofnicia %ld"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: niewaciwe numery wierszy"
 
-msgid "1 change"
+msgid "more line"
+msgstr "1 wiersz wicej"
+
+msgid "more lines"
+msgstr "wicej wierszy"
+
+msgid "line less"
+msgstr "1 wiersz mniej"
+
+msgid "fewer lines"
+msgstr "mniej wierszy"
+
+msgid "change"
 msgstr "1 zmiana"
 
-#, c-format
-msgid "%ld changes"
-msgstr "%ld zmian"
+msgid "changes"
+msgstr "zmiany"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "przed"
+
+msgid "after"
+msgstr "za"
+
+msgid "Nothing to undo"
+msgstr "Nie ma zmian do cofnicia"
+
+msgid "number changes  time"
+msgstr "liczba zmiany czas"
 
 msgid "E439: undo list corrupt"
 msgstr "E439: uszkodzona lista cofania"
@@ -5364,9 +5508,6 @@ msgstr "z Cocoa GUI."
 msgid "with (classic) GUI."
 msgstr "z (klasycznym) GUI."
 
-msgid "with KDE GUI."
-msgstr "z GUI KDE."
-
 msgid "  Features included (+) or not (-):\n"
 msgstr "  Opcje wczone (+) lub nie (-):\n"
 
@@ -5782,6 +5923,9 @@ msgstr "E459: Nie mona przej do poprzedniego katalogu"
 msgid "E42: No Errors"
 msgstr "E42: Brak Bdw"
 
+msgid "E776: No location list"
+msgstr "E776: Brak listy lokacji"
+
 msgid "E43: Damaged match string"
 msgstr "E43: Popsuty cig wzorca"
 
--- a/src/proto/ex_getln.pro
+++ b/src/proto/ex_getln.pro
@@ -1,53 +1,54 @@
 /* ex_getln.c */
-extern char_u *getcmdline __ARGS((int firstc, long count, int indent));
-extern char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
-extern int text_locked __ARGS((void));
-extern void text_locked_msg __ARGS((void));
-extern char_u *getexline __ARGS((int c, void *dummy, int indent));
-extern char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
-extern int cmdline_overstrike __ARGS((void));
-extern int cmdline_at_end __ARGS((void));
-extern colnr_T cmdline_getvcol_cursor __ARGS((void));
-extern void free_cmdline_buf __ARGS((void));
-extern void putcmdline __ARGS((int c, int shift));
-extern void unputcmdline __ARGS((void));
-extern int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
-extern void cmdline_paste_str __ARGS((char_u *s, int literally));
-extern void redrawcmdline __ARGS((void));
-extern void redrawcmd __ARGS((void));
-extern void compute_cmdrow __ARGS((void));
-extern void gotocmdline __ARGS((int clr));
-extern char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
-extern void ExpandInit __ARGS((expand_T *xp));
-extern void ExpandCleanup __ARGS((expand_T *xp));
-extern void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
-extern void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
-extern char_u *sm_gettail __ARGS((char_u *s));
-extern char_u *addstar __ARGS((char_u *fname, int len, int context));
-extern void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
-extern int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
-extern int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
-extern char_u *globpath __ARGS((char_u *path, char_u *file));
-extern void init_history __ARGS((void));
-extern int get_histtype __ARGS((char_u *name));
-extern void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
-extern int get_history_idx __ARGS((int histype));
-extern char_u *get_cmdline_str __ARGS((void));
-extern int get_cmdline_pos __ARGS((void));
-extern int set_cmdline_pos __ARGS((int pos));
-extern int get_cmdline_type __ARGS((void));
-extern char_u *get_history_entry __ARGS((int histype, int idx));
-extern int clr_history __ARGS((int histype));
-extern int del_history_entry __ARGS((int histype, char_u *str));
-extern int del_history_idx __ARGS((int histype, int idx));
-extern void remove_key_from_history __ARGS((void));
-extern int get_list_range __ARGS((char_u **str, int *num1, int *num2));
-extern void ex_history __ARGS((exarg_T *eap));
-extern void prepare_viminfo_history __ARGS((int asklen));
-extern int read_viminfo_history __ARGS((vir_T *virp));
-extern void finish_viminfo_history __ARGS((void));
-extern void write_viminfo_history __ARGS((FILE *fp));
-extern void cmd_pchar __ARGS((int c, int offset));
-extern int cmd_gchar __ARGS((int offset));
-extern char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
+char_u *getcmdline __ARGS((int firstc, long count, int indent));
+char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
+int text_locked __ARGS((void));
+void text_locked_msg __ARGS((void));
+int curbuf_locked __ARGS((void));
+char_u *getexline __ARGS((int c, void *dummy, int indent));
+char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
+int cmdline_overstrike __ARGS((void));
+int cmdline_at_end __ARGS((void));
+colnr_T cmdline_getvcol_cursor __ARGS((void));
+void free_cmdline_buf __ARGS((void));
+void putcmdline __ARGS((int c, int shift));
+void unputcmdline __ARGS((void));
+int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
+void cmdline_paste_str __ARGS((char_u *s, int literally));
+void redrawcmdline __ARGS((void));
+void redrawcmd __ARGS((void));
+void compute_cmdrow __ARGS((void));
+void gotocmdline __ARGS((int clr));
+char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
+void ExpandInit __ARGS((expand_T *xp));
+void ExpandCleanup __ARGS((expand_T *xp));
+void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
+void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
+char_u *sm_gettail __ARGS((char_u *s));
+char_u *addstar __ARGS((char_u *fname, int len, int context));
+void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
+char_u *globpath __ARGS((char_u *path, char_u *file));
+void init_history __ARGS((void));
+int get_histtype __ARGS((char_u *name));
+void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
+int get_history_idx __ARGS((int histype));
+char_u *get_cmdline_str __ARGS((void));
+int get_cmdline_pos __ARGS((void));
+int set_cmdline_pos __ARGS((int pos));
+int get_cmdline_type __ARGS((void));
+char_u *get_history_entry __ARGS((int histype, int idx));
+int clr_history __ARGS((int histype));
+int del_history_entry __ARGS((int histype, char_u *str));
+int del_history_idx __ARGS((int histype, int idx));
+void remove_key_from_history __ARGS((void));
+int get_list_range __ARGS((char_u **str, int *num1, int *num2));
+void ex_history __ARGS((exarg_T *eap));
+void prepare_viminfo_history __ARGS((int asklen));
+int read_viminfo_history __ARGS((vir_T *virp));
+void finish_viminfo_history __ARGS((void));
+void write_viminfo_history __ARGS((FILE *fp));
+void cmd_pchar __ARGS((int c, int offset));
+int cmd_gchar __ARGS((int offset));
+char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
 /* vim: set ft=c : */
--- a/src/proto/gui_motif.pro
+++ b/src/proto/gui_motif.pro
@@ -1,42 +1,46 @@
 /* gui_motif.c */
-extern void gui_x11_create_widgets __ARGS((void));
-extern void gui_x11_destroy_widgets __ARGS((void));
-extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-extern void gui_x11_set_back_color __ARGS((void));
-extern void manage_centered __ARGS((Widget dialog_child));
-extern XmFontList gui_motif_create_fontlist __ARGS((XFontStruct *font));
-extern XmFontList gui_motif_fontset2fontlist __ARGS((XFontSet *fontset));
-extern void gui_mch_enable_menu __ARGS((int flag));
-extern void gui_motif_set_mnemonics __ARGS((int enable));
-extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
-extern void gui_mch_toggle_tearoffs __ARGS((int enable));
-extern int gui_mch_text_area_extra_height __ARGS((void));
-extern void gui_mch_compute_menu_height __ARGS((Widget id));
-extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-extern void gui_motif_update_mousemodel __ARGS((vimmenu_T *menu));
-extern void gui_mch_new_menu_colors __ARGS((void));
-extern void gui_mch_new_menu_font __ARGS((void));
-extern void gui_mch_new_tooltip_font __ARGS((void));
-extern void gui_mch_new_tooltip_colors __ARGS((void));
-extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-extern void gui_mch_def_colors __ARGS((void));
-extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-extern void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
-extern Window gui_x11_get_wid __ARGS((void));
-extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
-extern void gui_mch_enable_footer __ARGS((int showit));
-extern void gui_mch_set_footer __ARGS((char_u *s));
-extern void gui_mch_show_toolbar __ARGS((int showit));
-extern int gui_mch_compute_toolbar_height __ARGS((void));
-extern void motif_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
-extern void gui_motif_menu_fontlist __ARGS((Widget id));
-extern void gui_mch_find_dialog __ARGS((exarg_T *eap));
-extern void gui_mch_replace_dialog __ARGS((exarg_T *eap));
-extern void gui_motif_synch_fonts __ARGS((void));
+void gui_x11_create_widgets __ARGS((void));
+void gui_x11_destroy_widgets __ARGS((void));
+void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+void gui_x11_set_back_color __ARGS((void));
+void manage_centered __ARGS((Widget dialog_child));
+XmFontList gui_motif_create_fontlist __ARGS((XFontStruct *font));
+XmFontList gui_motif_fontset2fontlist __ARGS((XFontSet *fontset));
+void gui_mch_enable_menu __ARGS((int flag));
+void gui_motif_set_mnemonics __ARGS((int enable));
+void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
+void gui_mch_toggle_tearoffs __ARGS((int enable));
+int gui_mch_text_area_extra_height __ARGS((void));
+void gui_mch_compute_menu_height __ARGS((Widget id));
+void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+void gui_motif_update_mousemodel __ARGS((vimmenu_T *menu));
+void gui_mch_new_menu_colors __ARGS((void));
+void gui_mch_new_menu_font __ARGS((void));
+void gui_mch_new_tooltip_font __ARGS((void));
+void gui_mch_new_tooltip_colors __ARGS((void));
+void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+void gui_mch_def_colors __ARGS((void));
+void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+Window gui_x11_get_wid __ARGS((void));
+char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
+void gui_mch_enable_footer __ARGS((int showit));
+void gui_mch_set_footer __ARGS((char_u *s));
+void gui_mch_show_toolbar __ARGS((int showit));
+int gui_mch_compute_toolbar_height __ARGS((void));
+void motif_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
+void gui_mch_show_tabline __ARGS((int showit));
+int gui_mch_showing_tabline __ARGS((void));
+void gui_mch_update_tabline __ARGS((void));
+void gui_mch_set_curtab __ARGS((int nr));
+void gui_motif_menu_fontlist __ARGS((Widget id));
+void gui_mch_find_dialog __ARGS((exarg_T *eap));
+void gui_mch_replace_dialog __ARGS((exarg_T *eap));
+void gui_motif_synch_fonts __ARGS((void));
 /* vim: set ft=c : */
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -1,94 +1,95 @@
 /* misc1.c */
-extern int get_indent __ARGS((void));
-extern int get_indent_lnum __ARGS((linenr_T lnum));
-extern int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
-extern int get_indent_str __ARGS((char_u *ptr, int ts));
-extern int set_indent __ARGS((int size, int flags));
-extern int get_number_indent __ARGS((linenr_T lnum));
-extern int open_line __ARGS((int dir, int flags, int old_indent));
-extern int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
-extern int plines __ARGS((linenr_T lnum));
-extern int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
-extern int plines_nofill __ARGS((linenr_T lnum));
-extern int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
-extern int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
-extern int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
-extern int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
-extern void ins_bytes __ARGS((char_u *p));
-extern void ins_bytes_len __ARGS((char_u *p, int len));
-extern void ins_char __ARGS((int c));
-extern void ins_char_bytes __ARGS((char_u *buf, int charlen));
-extern void ins_str __ARGS((char_u *s));
-extern int del_char __ARGS((int fixpos));
-extern int del_chars __ARGS((long count, int fixpos));
-extern int del_bytes __ARGS((long count, int fixpos_arg, int use_delcombine));
-extern int truncate_line __ARGS((int fixpos));
-extern void del_lines __ARGS((long nlines, int undo));
-extern int gchar_pos __ARGS((pos_T *pos));
-extern int gchar_cursor __ARGS((void));
-extern void pchar_cursor __ARGS((int c));
-extern int inindent __ARGS((int extra));
-extern char_u *skip_to_option_part __ARGS((char_u *p));
-extern void changed __ARGS((void));
-extern void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
-extern void appended_lines __ARGS((linenr_T lnum, long count));
-extern void appended_lines_mark __ARGS((linenr_T lnum, long count));
-extern void deleted_lines __ARGS((linenr_T lnum, long count));
-extern void deleted_lines_mark __ARGS((linenr_T lnum, long count));
-extern void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
-extern void unchanged __ARGS((buf_T *buf, int ff));
-extern void check_status __ARGS((buf_T *buf));
-extern void change_warning __ARGS((int col));
-extern int ask_yesno __ARGS((char_u *str, int direct));
-extern int get_keystroke __ARGS((void));
-extern int get_number __ARGS((int colon, int *mouse_used));
-extern int prompt_for_number __ARGS((int *mouse_used));
-extern void msgmore __ARGS((long n));
-extern void beep_flush __ARGS((void));
-extern void vim_beep __ARGS((void));
-extern void init_homedir __ARGS((void));
-extern void free_homedir __ARGS((void));
-extern void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
-extern void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
-extern char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
-extern char_u *expand_env_save __ARGS((char_u *src));
-extern void vim_setenv __ARGS((char_u *name, char_u *val));
-extern char_u *get_env_name __ARGS((expand_T *xp, int idx));
-extern void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
-extern char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
-extern int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
-extern char_u *gettail __ARGS((char_u *fname));
-extern char_u *gettail_sep __ARGS((char_u *fname));
-extern char_u *getnextcomp __ARGS((char_u *fname));
-extern char_u *get_past_head __ARGS((char_u *path));
-extern int vim_ispathsep __ARGS((int c));
-extern int vim_ispathlistsep __ARGS((int c));
-extern int dir_of_file_exists __ARGS((char_u *fname));
-extern int vim_fnamecmp __ARGS((char_u *x, char_u *y));
-extern int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
-extern char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
-extern char_u *concat_str __ARGS((char_u *str1, char_u *str2));
-extern void add_pathsep __ARGS((char_u *p));
-extern char_u *FullName_save __ARGS((char_u *fname, int force));
-extern pos_T *find_start_comment __ARGS((int ind_maxcomment));
-extern void do_c_expr_indent __ARGS((void));
-extern int cin_islabel __ARGS((int ind_maxcomment));
-extern int cin_iscase __ARGS((char_u *s));
-extern int cin_isscopedecl __ARGS((char_u *s));
-extern int get_c_indent __ARGS((void));
-extern int get_expr_indent __ARGS((void));
-extern int get_lisp_indent __ARGS((void));
-extern void prepare_to_exit __ARGS((void));
-extern void preserve_exit __ARGS((void));
-extern int vim_fexists __ARGS((char_u *fname));
-extern void line_breakcheck __ARGS((void));
-extern void fast_breakcheck __ARGS((void));
-extern int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-extern int match_suffix __ARGS((char_u *fname));
-extern int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
-extern int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-extern void addfile __ARGS((garray_T *gap, char_u *f, int flags));
-extern char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
-extern void FreeWild __ARGS((int count, char_u **files));
-extern int goto_im __ARGS((void));
+int get_indent __ARGS((void));
+int get_indent_lnum __ARGS((linenr_T lnum));
+int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
+int get_indent_str __ARGS((char_u *ptr, int ts));
+int set_indent __ARGS((int size, int flags));
+int get_number_indent __ARGS((linenr_T lnum));
+int open_line __ARGS((int dir, int flags, int old_indent));
+int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
+int plines __ARGS((linenr_T lnum));
+int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+int plines_nofill __ARGS((linenr_T lnum));
+int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
+int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
+int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
+int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
+void ins_bytes __ARGS((char_u *p));
+void ins_bytes_len __ARGS((char_u *p, int len));
+void ins_char __ARGS((int c));
+void ins_char_bytes __ARGS((char_u *buf, int charlen));
+void ins_str __ARGS((char_u *s));
+int del_char __ARGS((int fixpos));
+int del_chars __ARGS((long count, int fixpos));
+int del_bytes __ARGS((long count, int fixpos_arg, int use_delcombine));
+int truncate_line __ARGS((int fixpos));
+void del_lines __ARGS((long nlines, int undo));
+int gchar_pos __ARGS((pos_T *pos));
+int gchar_cursor __ARGS((void));
+void pchar_cursor __ARGS((int c));
+int inindent __ARGS((int extra));
+char_u *skip_to_option_part __ARGS((char_u *p));
+void changed __ARGS((void));
+void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
+void appended_lines __ARGS((linenr_T lnum, long count));
+void appended_lines_mark __ARGS((linenr_T lnum, long count));
+void deleted_lines __ARGS((linenr_T lnum, long count));
+void deleted_lines_mark __ARGS((linenr_T lnum, long count));
+void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
+void unchanged __ARGS((buf_T *buf, int ff));
+void check_status __ARGS((buf_T *buf));
+void change_warning __ARGS((int col));
+int ask_yesno __ARGS((char_u *str, int direct));
+int get_keystroke __ARGS((void));
+int get_number __ARGS((int colon, int *mouse_used));
+int prompt_for_number __ARGS((int *mouse_used));
+void msgmore __ARGS((long n));
+void beep_flush __ARGS((void));
+void vim_beep __ARGS((void));
+void init_homedir __ARGS((void));
+void free_homedir __ARGS((void));
+void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
+void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
+char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
+char_u *expand_env_save __ARGS((char_u *src));
+void vim_setenv __ARGS((char_u *name, char_u *val));
+char_u *get_env_name __ARGS((expand_T *xp, int idx));
+void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
+char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
+int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
+char_u *gettail __ARGS((char_u *fname));
+char_u *gettail_sep __ARGS((char_u *fname));
+char_u *getnextcomp __ARGS((char_u *fname));
+char_u *get_past_head __ARGS((char_u *path));
+int vim_ispathsep __ARGS((int c));
+int vim_ispathlistsep __ARGS((int c));
+void shorten_dir __ARGS((char_u *str));
+int dir_of_file_exists __ARGS((char_u *fname));
+int vim_fnamecmp __ARGS((char_u *x, char_u *y));
+int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
+char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
+char_u *concat_str __ARGS((char_u *str1, char_u *str2));
+void add_pathsep __ARGS((char_u *p));
+char_u *FullName_save __ARGS((char_u *fname, int force));
+pos_T *find_start_comment __ARGS((int ind_maxcomment));
+void do_c_expr_indent __ARGS((void));
+int cin_islabel __ARGS((int ind_maxcomment));
+int cin_iscase __ARGS((char_u *s));
+int cin_isscopedecl __ARGS((char_u *s));
+int get_c_indent __ARGS((void));
+int get_expr_indent __ARGS((void));
+int get_lisp_indent __ARGS((void));
+void prepare_to_exit __ARGS((void));
+void preserve_exit __ARGS((void));
+int vim_fexists __ARGS((char_u *fname));
+void line_breakcheck __ARGS((void));
+void fast_breakcheck __ARGS((void));
+int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+int match_suffix __ARGS((char_u *fname));
+int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
+int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+void addfile __ARGS((garray_T *gap, char_u *f, int flags));
+char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
+void FreeWild __ARGS((int count, char_u **files));
+int goto_im __ARGS((void));
 /* vim: set ft=c : */
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -1,56 +1,56 @@
 /* option.c */
-extern void set_init_1 __ARGS((void));
-extern void set_string_default __ARGS((char *name, char_u *val));
-extern void set_number_default __ARGS((char *name, long val));
-extern void free_all_options __ARGS((void));
-extern void set_init_2 __ARGS((void));
-extern void set_init_3 __ARGS((void));
-extern void set_helplang_default __ARGS((char_u *lang));
-extern void init_gui_options __ARGS((void));
-extern void set_title_defaults __ARGS((void));
-extern int do_set __ARGS((char_u *arg, int opt_flags));
-extern void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
-extern int get_viminfo_parameter __ARGS((int type));
-extern char_u *find_viminfo_parameter __ARGS((int type));
-extern void check_options __ARGS((void));
-extern void check_buf_options __ARGS((buf_T *buf));
-extern void free_string_option __ARGS((char_u *p));
-extern void clear_string_option __ARGS((char_u **pp));
-extern void set_term_option_alloced __ARGS((char_u **p));
-extern int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
-extern void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
-extern char_u *check_stl_option __ARGS((char_u *s));
-extern int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
-extern void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
-extern char_u *get_term_code __ARGS((char_u *tname));
-extern char_u *get_highlight_default __ARGS((void));
-extern char_u *get_encoding_default __ARGS((void));
-extern int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
-extern int makefoldset __ARGS((FILE *fd));
-extern void clear_termoptions __ARGS((void));
-extern void free_termoptions __ARGS((void));
-extern void set_term_defaults __ARGS((void));
-extern void comp_col __ARGS((void));
-extern char_u *get_equalprg __ARGS((void));
-extern void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
-extern void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
-extern void check_win_options __ARGS((win_T *win));
-extern void check_winopt __ARGS((winopt_T *wop));
-extern void clear_winopt __ARGS((winopt_T *wop));
-extern void buf_copy_options __ARGS((buf_T *buf, int flags));
-extern void reset_modifiable __ARGS((void));
-extern void set_iminsert_global __ARGS((void));
-extern void set_imsearch_global __ARGS((void));
-extern void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
-extern int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
-extern int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
-extern int has_format_option __ARGS((int x));
-extern int shortmess __ARGS((int x));
-extern void vimrc_found __ARGS((void));
-extern void change_compatible __ARGS((int on));
-extern int option_was_set __ARGS((char_u *name));
-extern int can_bs __ARGS((int what));
-extern void save_file_ff __ARGS((buf_T *buf));
-extern int file_ff_differs __ARGS((buf_T *buf));
-extern int check_ff_value __ARGS((char_u *p));
+void set_init_1 __ARGS((void));
+void set_string_default __ARGS((char *name, char_u *val));
+void set_number_default __ARGS((char *name, long val));
+void free_all_options __ARGS((void));
+void set_init_2 __ARGS((void));
+void set_init_3 __ARGS((void));
+void set_helplang_default __ARGS((char_u *lang));
+void init_gui_options __ARGS((void));
+void set_title_defaults __ARGS((void));
+int do_set __ARGS((char_u *arg, int opt_flags));
+void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
+int get_viminfo_parameter __ARGS((int type));
+char_u *find_viminfo_parameter __ARGS((int type));
+void check_options __ARGS((void));
+void check_buf_options __ARGS((buf_T *buf));
+void free_string_option __ARGS((char_u *p));
+void clear_string_option __ARGS((char_u **pp));
+void set_term_option_alloced __ARGS((char_u **p));
+int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
+void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
+char_u *check_stl_option __ARGS((char_u *s));
+int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
+void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
+char_u *get_term_code __ARGS((char_u *tname));
+char_u *get_highlight_default __ARGS((void));
+char_u *get_encoding_default __ARGS((void));
+int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
+int makefoldset __ARGS((FILE *fd));
+void clear_termoptions __ARGS((void));
+void free_termoptions __ARGS((void));
+void set_term_defaults __ARGS((void));
+void comp_col __ARGS((void));
+char_u *get_equalprg __ARGS((void));
+void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
+void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
+void check_win_options __ARGS((win_T *win));
+void check_winopt __ARGS((winopt_T *wop));
+void clear_winopt __ARGS((winopt_T *wop));
+void buf_copy_options __ARGS((buf_T *buf, int flags));
+void reset_modifiable __ARGS((void));
+void set_iminsert_global __ARGS((void));
+void set_imsearch_global __ARGS((void));
+void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
+int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
+int has_format_option __ARGS((int x));
+int shortmess __ARGS((int x));
+void vimrc_found __ARGS((char_u *fname, char_u *envname));
+void change_compatible __ARGS((int on));
+int option_was_set __ARGS((char_u *name));
+int can_bs __ARGS((int what));
+void save_file_ff __ARGS((buf_T *buf));
+int file_ff_differs __ARGS((buf_T *buf));
+int check_ff_value __ARGS((char_u *p));
 /* vim: set ft=c : */
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -48,7 +48,7 @@ extern int mch_copy_file_attribute __ARG
 extern int myresetstkoflw __ARGS((void));
 extern int get_cmd_argsW __ARGS((char ***argvp));
 extern void free_cmd_argsW __ARGS((void));
-extern void used_file_arg __ARGS((char *name, int literal, int full_path));
+extern void used_file_arg __ARGS((char *name, int literal, int full_path, int diff_mode));
 extern void set_alist_count __ARGS((void));
 extern void fix_arg_enc __ARGS((void));
 /* vim: set ft=c : */
--- a/src/proto/syntax.pro
+++ b/src/proto/syntax.pro
@@ -1,46 +1,47 @@
 /* syntax.c */
-extern void syntax_start __ARGS((win_T *wp, linenr_T lnum));
-extern void syn_stack_free_all __ARGS((buf_T *buf));
-extern void syn_stack_apply_changes __ARGS((buf_T *buf));
-extern void syntax_end_parsing __ARGS((linenr_T lnum));
-extern int syntax_check_changed __ARGS((linenr_T lnum));
-extern int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
-extern void syntax_clear __ARGS((buf_T *buf));
-extern void ex_syntax __ARGS((exarg_T *eap));
-extern int syntax_present __ARGS((buf_T *buf));
-extern void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
-extern char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
-extern int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
-extern int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
-extern void init_highlight __ARGS((int both, int reset));
-extern int load_colors __ARGS((char_u *name));
-extern void do_highlight __ARGS((char_u *line, int forceit, int init));
-extern void free_highlight __ARGS((void));
-extern void restore_cterm_colors __ARGS((void));
-extern void set_normal_colors __ARGS((void));
-extern char_u *hl_get_font_name __ARGS((void));
-extern void hl_set_font_name __ARGS((char_u *font_name));
-extern void hl_set_bg_color_name __ARGS((char_u *name));
-extern void hl_set_fg_color_name __ARGS((char_u *name));
-extern void clear_hl_tables __ARGS((void));
-extern int hl_combine_attr __ARGS((int char_attr, int prim_attr));
-extern attrentry_T *syn_gui_attr2entry __ARGS((int attr));
-extern int syn_attr2attr __ARGS((int attr));
-extern attrentry_T *syn_term_attr2entry __ARGS((int attr));
-extern attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
-extern char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
-extern char_u *highlight_color __ARGS((int id, char_u *what, int modec));
-extern long_u highlight_gui_color_rgb __ARGS((int id, int fg));
-extern int syn_name2id __ARGS((char_u *name));
-extern int highlight_exists __ARGS((char_u *name));
-extern int syn_namen2id __ARGS((char_u *linep, int len));
-extern int syn_check_group __ARGS((char_u *pp, int len));
-extern int syn_id2attr __ARGS((int hl_id));
-extern int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
-extern int syn_get_final_id __ARGS((int hl_id));
-extern void highlight_gui_started __ARGS((void));
-extern int highlight_changed __ARGS((void));
-extern void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
-extern char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
-extern void free_highlight_fonts __ARGS((void));
+void syntax_start __ARGS((win_T *wp, linenr_T lnum));
+void syn_stack_free_all __ARGS((buf_T *buf));
+void syn_stack_apply_changes __ARGS((buf_T *buf));
+void syntax_end_parsing __ARGS((linenr_T lnum));
+int syntax_check_changed __ARGS((linenr_T lnum));
+int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
+void syntax_clear __ARGS((buf_T *buf));
+void ex_syntax __ARGS((exarg_T *eap));
+int syntax_present __ARGS((buf_T *buf));
+void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
+char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
+int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
+int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
+void init_highlight __ARGS((int both, int reset));
+int load_colors __ARGS((char_u *name));
+void do_highlight __ARGS((char_u *line, int forceit, int init));
+void free_highlight __ARGS((void));
+void restore_cterm_colors __ARGS((void));
+void set_normal_colors __ARGS((void));
+char_u *hl_get_font_name __ARGS((void));
+void hl_set_font_name __ARGS((char_u *font_name));
+void hl_set_bg_color_name __ARGS((char_u *name));
+void hl_set_fg_color_name __ARGS((char_u *name));
+void clear_hl_tables __ARGS((void));
+int hl_combine_attr __ARGS((int char_attr, int prim_attr));
+attrentry_T *syn_gui_attr2entry __ARGS((int attr));
+int syn_attr2attr __ARGS((int attr));
+attrentry_T *syn_term_attr2entry __ARGS((int attr));
+attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
+char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
+char_u *highlight_color __ARGS((int id, char_u *what, int modec));
+long_u highlight_gui_color_rgb __ARGS((int id, int fg));
+int syn_name2id __ARGS((char_u *name));
+int highlight_exists __ARGS((char_u *name));
+char_u *syn_id2name __ARGS((int id));
+int syn_namen2id __ARGS((char_u *linep, int len));
+int syn_check_group __ARGS((char_u *pp, int len));
+int syn_id2attr __ARGS((int hl_id));
+int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
+int syn_get_final_id __ARGS((int hl_id));
+void highlight_gui_started __ARGS((void));
+int highlight_changed __ARGS((void));
+void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
+char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
+void free_highlight_fonts __ARGS((void));
 /* vim: set ft=c : */
--- a/src/screen.c
+++ b/src/screen.c
@@ -3324,7 +3324,8 @@ win_line(wp, lnum, startrow, endrow, noc
 	}
 
 	/* When still displaying '$' of change command, stop at cursor */
-	if (dollar_vcol != 0 && wp == curwin && vcol >= (long)wp->w_virtcol
+	if (dollar_vcol != 0 && wp == curwin
+		   && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
 #ifdef FEAT_DIFF
 				   && filler_todo <= 0
 #endif
@@ -3332,8 +3333,14 @@ win_line(wp, lnum, startrow, endrow, noc
 	{
 	    SCREEN_LINE(screen_row, W_WINCOL(wp), col, -(int)W_WIDTH(wp),
 								  wp->w_p_rl);
-	    /* Pretend we have finished updating the window. */
-	    row = wp->w_height;
+	    /* Pretend we have finished updating the window.  Except when
+	     * 'cursorcolumn' is set. */
+#ifdef FEAT_SYN_HL
+	    if (wp->w_p_cuc)
+		row = wp->w_cline_row + wp->w_cline_height;
+	    else
+#endif
+		row = wp->w_height;
 	    break;
 	}
 
@@ -3485,6 +3492,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		{
 		    mb_utf8 = TRUE;
 		    u8cc[0] = 0;
+		    c = 0xc0;
 		}
 		else
 		    mb_utf8 = FALSE;
@@ -3509,6 +3517,7 @@ win_line(wp, lnum, startrow, endrow, noc
 			{
 			    mb_c = utfc_ptr2char(p_extra, u8cc);
 			    mb_utf8 = TRUE;
+			    c = 0xc0;
 			}
 		    }
 		    else
@@ -3744,7 +3753,11 @@ win_line(wp, lnum, startrow, endrow, noc
 	    ++ptr;
 
 	    /* 'list' : change char 160 to lcs_nbsp. */
-	    if (wp->w_p_list && c == 160 && lcs_nbsp)
+	    if (wp->w_p_list && (c == 160
+#ifdef FEAT_MBYTE
+			|| (mb_utf8 && mb_c == 160)
+#endif
+			) && lcs_nbsp)
 	    {
 		c = lcs_nbsp;
 		if (area_attr == 0 && search_attr == 0)
@@ -3759,6 +3772,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		{
 		    mb_utf8 = TRUE;
 		    u8cc[0] = 0;
+		    c = 0xc0;
 		}
 		else
 		    mb_utf8 = FALSE;
@@ -3906,7 +3920,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		 * Found last space before word: check for line break.
 		 */
 		if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)
-						      && !wp->w_p_list)
+							     && !wp->w_p_list)
 		{
 		    n_extra = win_lbr_chartabsize(wp, ptr - (
 # ifdef FEAT_MBYTE
@@ -3934,6 +3948,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		    {
 			mb_utf8 = TRUE;
 			u8cc[0] = 0;
+			c = 0xc0;
 		    }
 		    else
 			mb_utf8 = FALSE;
@@ -3944,7 +3959,7 @@ win_line(wp, lnum, startrow, endrow, noc
 	    /*
 	     * Handling of non-printable characters.
 	     */
-	    if (!(chartab[c] & CT_PRINT_CHAR))
+	    if (!(chartab[c & 0xff] & CT_PRINT_CHAR))
 	    {
 		/*
 		 * when getting a character from the file, we may have to
@@ -3972,6 +3987,7 @@ win_line(wp, lnum, startrow, endrow, noc
 			{
 			    mb_utf8 = TRUE;
 			    u8cc[0] = 0;
+			    c = 0xc0;
 			}
 #endif
 		    }
@@ -4046,6 +4062,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		    {
 			mb_utf8 = TRUE;
 			u8cc[0] = 0;
+			c = 0xc0;
 		    }
 		    else
 			mb_utf8 = FALSE;	/* don't draw as UTF-8 */
@@ -4185,6 +4202,7 @@ win_line(wp, lnum, startrow, endrow, noc
 	    {
 		mb_utf8 = TRUE;
 		u8cc[0] = 0;
+		c = 0xc0;
 	    }
 	    else
 		mb_utf8 = FALSE;	/* don't draw as UTF-8 */
@@ -4278,11 +4296,12 @@ win_line(wp, lnum, startrow, endrow, noc
 		v = wp->w_skipcol;
 	    else
 		v = wp->w_leftcol;
-	    if (vcol < v)	/* line ends before left margin */
-		vcol = v;
+	    if (vcol < v + col)	/* line ends before left margin */
+		vcol = v + col;
 	    if (wp->w_p_cuc
 		    && (int)wp->w_virtcol >= vcol
-		    && (int)wp->w_virtcol < W_WIDTH(wp) + v
+		    && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
+									   + v
 		    && lnum != wp->w_cursor.lnum
 # ifdef FEAT_RIGHTLEFT
 		    && !wp->w_p_rl
@@ -4352,6 +4371,7 @@ win_line(wp, lnum, startrow, endrow, noc
 	    {
 		mb_utf8 = TRUE;
 		u8cc[0] = 0;
+		c = 0xc0;
 	    }
 	    else
 		mb_utf8 = FALSE;
@@ -4399,6 +4419,8 @@ win_line(wp, lnum, startrow, endrow, noc
 		if (mb_utf8)
 		{
 		    ScreenLinesUC[off] = mb_c;
+		    if ((c & 0xff) == 0)
+			ScreenLines[off] = 0x80;   /* avoid storing zero */
 		    for (i = 0; i < Screen_mco; ++i)
 		    {
 			ScreenLinesC[i][off] = u8cc[i];
@@ -4939,12 +4961,13 @@ screen_line(row, coloff, endcol, clear_w
 #endif
 	    ScreenAttrs[off_to] = ScreenAttrs[off_from];
 #ifdef FEAT_MBYTE
+	    /* For simplicity set the attributes of second half of a
+	     * double-wide character equal to the first half. */
+	    if (char_cells == 2)
+		ScreenAttrs[off_to + 1] = ScreenAttrs[off_from];
+
 	    if (enc_dbcs != 0 && char_cells == 2)
-	    {
-		/* just a hack: It makes two bytes of DBCS have same attr */
-		ScreenAttrs[off_to + 1] = ScreenAttrs[off_from];
 		screen_char_2(off_to, row, col + coloff);
-	    }
 	    else
 #endif
 		screen_char(off_to, row, col + coloff);
@@ -8893,6 +8916,7 @@ draw_tabline()
 	    {
 		/* Get buffer name in NameBuff[] */
 		get_trans_bufname(cwp->w_buffer);
+		shorten_dir(NameBuff);
 		len = vim_strsize(NameBuff);
 		p = NameBuff;
 #ifdef FEAT_MBYTE
--- a/src/search.c
+++ b/src/search.c
@@ -809,6 +809,13 @@ searchit(win, buf, pos, dir, pat, count,
 		    {
 			pos->lnum = lnum + endpos.lnum;
 			pos->col = endpos.col - 1;
+#ifdef FEAT_MBYTE
+			if (has_mbyte)
+			{
+			    ptr = ml_get_buf(buf, pos->lnum, FALSE);
+			    pos->col -= (*mb_head_off)(ptr, ptr + pos->col);
+			}
+#endif
 		    }
 		    else
 		    {
--- a/src/spell.c
+++ b/src/spell.c
@@ -256,6 +256,8 @@
  *			    WF_NEEDCOMP >> 8  word only valid in compound
  *			    WF_NOSUGGEST >> 8  word not used for suggestions
  *			    WF_COMPROOT >> 8  word already a compound
+ *			    WF_NOCOMPBEF >> 8 no compounding before this word
+ *			    WF_NOCOMPAFT >> 8 no compounding after this word
  *
  * <pflags>	1 byte	    bitmask of:
  *			    WFP_RARE	rare prefix
@@ -345,6 +347,8 @@ typedef long idx_T;
 #define WF_NEEDCOMP 0x0200	/* word only valid in compound */
 #define WF_NOSUGGEST 0x0400	/* word not to be suggested */
 #define WF_COMPROOT 0x0800	/* already compounded word, COMPOUNDROOT */
+#define WF_NOCOMPBEF 0x1000	/* no compounding before this word */
+#define WF_NOCOMPAFT 0x2000	/* no compounding after this word */
 
 /* only used for su_badflags */
 #define WF_MIXCAP   0x20	/* mix of upper and lower case: macaRONI */
@@ -1500,6 +1504,13 @@ find_word(mip, mode)
 					   && slang->sl_compsylmax == MAXWLEN)
 		    continue;
 
+		/* Don't allow compounding on a side where an affix was added,
+		 * unless COMPOUNDPERMITFLAG was used. */
+		if (mip->mi_complen > 0 && (flags & WF_NOCOMPBEF))
+		    continue;
+		if (!word_ends && (flags & WF_NOCOMPAFT))
+		    continue;
+
 		/* Quickly check if compounding is possible with this flag. */
 		if (!byte_in_str(mip->mi_complen == 0
 					? slang->sl_compstartflags
@@ -1634,12 +1645,16 @@ find_word(mip, mode)
 			mip->mi_compoff = wlen;
 			find_word(mip, FIND_KEEPCOMPOUND);
 
+#if 0	    /* Disabled, a prefix must not appear halfway a compound word,
+	       unless the COMPOUNDPERMITFLAG is used and then it can't be a
+	       postponed prefix. */
 			if (!slang->sl_nobreak || mip->mi_result == SP_BAD)
 			{
 			    /* Check for following word with prefix. */
 			    mip->mi_compoff = c;
 			    find_prefix(mip, FIND_COMPOUND);
 			}
+#endif
 		    }
 
 		    if (!slang->sl_nobreak)
@@ -6702,7 +6717,7 @@ store_aff_word(spin, word, afflist, affi
 			else
 			    use_flags = flags;
 
-			/* Obey a "COMPOUNDFORBID" flag of the affix: don't
+			/* Obey a "COMPOUNDFORBIDFLAG" of the affix: don't
 			 * use the compound flags. */
 			use_pfxlist = pfxlist;
 			if (pfxlist != NULL
@@ -6730,13 +6745,29 @@ store_aff_word(spin, word, afflist, affi
 				use_pfxlist += pfxlen;
 			}
 
+			/* When compounding is supported and there is no
+			 * "COMPOUNDPERMITFLAG" then forbid compounding on the
+			 * side where the affix is applied. */
+			if (spin->si_compflags != NULL
+				&& (affile->af_comppermit == 0
+				    || ae->ae_flags == NULL
+				    || !flag_in_afflist(
+					    affile->af_flagtype, ae->ae_flags,
+						      affile->af_comppermit)))
+			{
+			    if (xht != NULL)
+				use_flags |= WF_NOCOMPAFT;
+			    else
+				use_flags |= WF_NOCOMPBEF;
+			}
+
 			/* Store the modified word. */
 			if (store_word(spin, newword, use_flags,
 				 spin->si_region, use_pfxlist, FALSE) == FAIL)
 			    retval = FAIL;
 
 			/* When added a suffix and combining is allowed also
-			 * try adding prefixes additionally. */
+			 * try adding prefixes additionally.  RECURSIVE! */
 			if (xht != NULL && ah->ah_combine)
 			    if (store_aff_word(spin, newword, afflist, affile,
 					  xht, NULL, TRUE,
@@ -9210,9 +9241,15 @@ init_spellfile()
 		    vim_strncpy(buf, curbuf->b_p_spl, lend - curbuf->b_p_spl);
 		else
 		{
+		    /* Create the "spell" directory if it doesn't exist yet. */
+		    l = STRLEN(buf);
+		    vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
+		    if (!filewritable(buf) != 2)
+			vim_mkdir(buf, 0755);
+
 		    l = STRLEN(buf);
 		    vim_snprintf((char *)buf + l, MAXPATHL - l,
-				 "/spell/%.*s", (int)(lend - lstart), lstart);
+				 "/%.*s", (int)(lend - lstart), lstart);
 		}
 		l = STRLEN(buf);
 		fname = LANGP_ENTRY(curbuf->b_langp, 0)->lp_slang->sl_fname;
@@ -9947,7 +9984,6 @@ spell_suggest(count)
 	    STRCAT(p, sug.su_badptr + stp->st_orglen);
 	    ml_replace(curwin->w_cursor.lnum, p, FALSE);
 	    curwin->w_cursor.col = c;
-	    changed_bytes(curwin->w_cursor.lnum, c);
 
 	    /* For redo we use a change-word command. */
 	    ResetRedobuff();
@@ -9955,6 +9991,9 @@ spell_suggest(count)
 	    AppendToRedobuffLit(p + c,
 			    stp->st_wordlen + sug.su_badlen - stp->st_orglen);
 	    AppendCharToRedobuff(ESC);
+
+	    /* After this "p" may be invalid. */
+	    changed_bytes(curwin->w_cursor.lnum, c);
 	}
     }
     else
--- a/src/structs.h
+++ b/src/structs.h
@@ -1635,6 +1635,10 @@ struct tabpage_S
     int		    tp_diff_invalid;	/* list of diffs is outdated */
 #endif
     frame_T	    *tp_snapshot;    /* window layout snapshot */
+#ifdef FEAT_EVAL
+    dictitem_T	    tp_winvar;	    /* variable for "t:" Dictionary */
+    dict_T	    tp_vars;	    /* internal variables, local to tab page */
+#endif
 };
 
 /*
@@ -1928,8 +1932,9 @@ struct window_S
 #endif
 
 #ifdef FEAT_SEARCH_EXTRA
-    regmmatch_T	w_match[3];	/* regexp programs for ":match" */
-    int		w_match_id[3];	/* highlight IDs for ":match" */
+    regmmatch_T	w_match[3];	    /* regexp programs for ":match" */
+    char_u	*(w_match_pat[3]);  /* patterns for ":match" */
+    int		w_match_id[3];	    /* highlight IDs for ":match" */
 #endif
 
     /*
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -551,7 +551,10 @@ syntax_start(wp, lnum)
      * Advance from the sync point or saved state until the current line.
      * Save some entries for syncing with later on.
      */
-    dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
+    if (syn_buf->b_sst_len <= Rows)
+	dist = 999999;
+    else
+	dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
     prev = syn_stack_find_entry(current_lnum);
     while (current_lnum < lnum)
     {
@@ -1240,7 +1243,10 @@ syn_stack_cleanup()
 	return retval;
 
     /* Compute normal distance between non-displayed entries. */
-    dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
+    if (syn_buf->b_sst_len <= Rows)
+	dist = 999999;
+    else
+	dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1;
 
     /*
      * Go throught the list to find the "tick" for the oldest entry that can
@@ -4436,7 +4442,7 @@ syn_cmd_include(eap, syncing)
     prev_toplvl_grp = curbuf->b_syn_topgrp;
     curbuf->b_syn_topgrp = sgl_id;
     if (source ? do_source(eap->arg, FALSE, FALSE) == FAIL
-				     : source_runtime(eap->arg, TRUE) == FAIL)
+				: source_runtime(eap->arg, DOSO_NONE) == FAIL)
 	EMSG2(_(e_notopen), eap->arg);
     curbuf->b_syn_topgrp = prev_toplvl_grp;
     current_syn_inc_tag = prev_syn_inc_tag;
@@ -7270,7 +7276,7 @@ do_highlight(line, forceit, init)
 #ifdef FEAT_EVAL
 	HL_TABLE()[idx].sg_scriptID = current_SID;
 #endif
-	redraw_all_later(SOME_VALID);
+	redraw_all_later(NOT_VALID);
     }
     vim_free(key);
     vim_free(arg);
@@ -8426,6 +8432,21 @@ highlight_exists(name)
 {
     return (syn_name2id(name) > 0);
 }
+
+# if defined(FEAT_SEARCH_EXTRA) || defined(PROTO)
+/*
+ * Return the name of highlight group "id".
+ * When not a valid ID return an empty string.
+ */
+    char_u *
+syn_id2name(id)
+    int		id;
+{
+    if (id <= 0 || id >= highlight_ga.ga_len)
+	return (char_u *)"";
+    return HL_TABLE()[id - 1].sg_name;
+}
+# endif
 #endif
 
 /*
--- a/src/testdir/test58.in
+++ b/src/testdir/test58.in
@@ -452,11 +452,14 @@ SFX a 0 ize/t .
 
 PFX p N 1
 PFX p 0 pre .
+
+PFX P N 1
+PFX P 0 nou .
 4affend
 
 4dicstart
 1234
-word/m
+word/mP
 util/am
 pro/xq
 tomato/m
@@ -468,11 +471,14 @@ 4dicend
 4good: word util bork prebork start end wordutil wordutils pro-ok
 	bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
 	tomato tomatotomato startend startword startwordword startwordend
-	startwordwordend startwordwordwordend prebork preborkprebork
-	preborkborkprebork preborkpreborkbork
+	startwordwordend startwordwordwordend prebork preborkbork
+	preborkborkbork
+	nouword
 bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
 	endstart endend startstart wordend wordstart
+	preborkprebork  preborkpreborkbork
  	startwordwordwordwordend borkpreborkpreborkbork
+	utilsbork  startnouword
 badend
 
 Test affix flags with two characters
@@ -487,6 +493,7 @@ NEEDAFFIX !!
 COMPOUNDRULE ssmm*ee
 
 NEEDCOMPOUND xx
+COMPOUNDPERMITFLAG pp
 
 SFX 13 Y 1
 SFX 13 0 bork .
@@ -498,7 +505,10 @@ SFX a Y 1
 SFX a 0 a .
 
 PFX zz Y 1
-PFX zz 0 pre .
+PFX zz 0 pre/pp .
+
+PFX yy Y 1
+PFX yy 0 nou .
 5affend
 
 5dicstart
@@ -506,14 +516,14 @@ 1234
 foo/a1a!!
 bar/zz13ee
 start/ss
-end/ee
+end/eeyy
 middle/mmxx
 5dicend
 
 5good: fooa1 fooa bar prebar barbork prebarbork  startprebar
-      start end startend  startmiddleend
+      start end startend  startmiddleend nouend
 bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
-	startprobar
+	startprobar startnouend
 badend
 
 6affstart
@@ -527,6 +537,8 @@ COMPOUNDRULE sMm*Ee
 
 NEEDCOMPOUND Xx
 
+COMPOUNDPERMITFLAG p
+
 SFX N3 Y 1
 SFX N3 0 bork .
 
@@ -537,7 +549,7 @@ SFX A Y 1
 SFX A 0 a .
 
 PFX Zz Y 1
-PFX Zz 0 pre .
+PFX Zz 0 pre/p .
 6affend
 
 6dicstart
@@ -565,6 +577,7 @@ NEEDAFFIX 9999
 COMPOUNDRULE 2,77*123
 
 NEEDCOMPOUND 1
+COMPOUNDPERMITFLAG 432
 
 SFX 61003 Y 1
 SFX 61003 0 meat .
@@ -576,7 +589,7 @@ SFX 111 Y 1
 SFX 111 0 a .
 
 PFX 17 Y 1
-PFX 17 0 pre .
+PFX 17 0 pre/432 .
 7affend
 
 7dicstart
--- a/src/testdir/test58.ok
+++ b/src/testdir/test58.ok
@@ -135,6 +135,7 @@ util
 utilize
 utils
 word
+nouword
 -------
 bad
 ['end', 'bork', 'word']
@@ -156,10 +157,18 @@ wordend
 ['word end', 'word', 'wordword']
 wordstart
 ['word start', 'bork start']
+preborkprebork
+['prebork prebork', 'preborkbork', 'preborkborkbork']
+preborkpreborkbork
+['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork']
 startwordwordwordwordend
 ['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end']
 borkpreborkpreborkbork
-['bork preborkpreborkbork', 'borkprebork preborkbork', 'borkpreborkprebork bork']
+['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork']
+utilsbork
+['utilbork', 'utils bork', 'util bork']
+startnouword
+['start nouword', 'startword', 'startborkword']
 
 test 5-5
 # file: Xtest.latin1.spl
@@ -168,6 +177,7 @@ barbork
 end
 fooa1
 fooa
+nouend
 prebar
 prebarbork
 start
@@ -192,6 +202,8 @@ endstart
 ['end start', 'start']
 startprobar
 ['startprebar', 'start prebar', 'startbar']
+startnouend
+['start nouend', 'startend']
 
 test 6-6
 # file: Xtest.latin1.spl
--- a/src/testdir/test59.in
+++ b/src/testdir/test59.in
@@ -456,11 +456,14 @@ SFX a 0 ize/t .
 
 PFX p N 1
 PFX p 0 pre .
+
+PFX P N 1
+PFX P 0 nou .
 4affend
 
 4dicstart
 1234
-word/m
+word/mP
 util/am
 pro/xq
 tomato/m
@@ -472,11 +475,14 @@ 4dicend
 4good: word util bork prebork start end wordutil wordutils pro-ok
 	bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
 	tomato tomatotomato startend startword startwordword startwordend
-	startwordwordend startwordwordwordend prebork preborkprebork
-	preborkborkprebork preborkpreborkbork
+	startwordwordend startwordwordwordend prebork preborkbork
+	preborkborkbork
+	nouword
 bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
 	endstart endend startstart wordend wordstart
+	preborkprebork  preborkpreborkbork
  	startwordwordwordwordend borkpreborkpreborkbork
+	utilsbork  startnouword
 badend
 
 test2:
@@ -494,6 +500,7 @@ NEEDAFFIX !!
 COMPOUNDRULE ssmm*ee
 
 NEEDCOMPOUND xx
+COMPOUNDPERMITFLAG pp
 
 SFX 13 Y 1
 SFX 13 0 bork .
@@ -505,7 +512,10 @@ SFX a Y 1
 SFX a 0 a .
 
 PFX zz Y 1
-PFX zz 0 pre .
+PFX zz 0 pre/pp .
+
+PFX yy Y 1
+PFX yy 0 nou .
 5affend
 
 5dicstart
@@ -513,14 +523,14 @@ 1234
 foo/a1a!!
 bar/zz13ee
 start/ss
-end/ee
+end/eeyy
 middle/mmxx
 5dicend
 
 5good: fooa1 fooaé bar prebar barbork prebarbork  startprebar
-      start end startend  startmiddleend
+      start end startend  startmiddleend nouend
 bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
-	startprobar
+	startprobar startnouend
 badend
 
 6affstart
@@ -534,6 +544,8 @@ COMPOUNDRULE sMm*Ee
 
 NEEDCOMPOUND Xx
 
+COMPOUNDPERMITFLAG p
+
 SFX N3 Y 1
 SFX N3 0 bork .
 
@@ -544,7 +556,7 @@ SFX A Y 1
 SFX A 0 a .
 
 PFX Zz Y 1
-PFX Zz 0 pre .
+PFX Zz 0 pre/p .
 6affend
 
 6dicstart
@@ -576,6 +588,7 @@ NEEDAFFIX 9999
 COMPOUNDRULE 2,77*123
 
 NEEDCOMPOUND 1
+COMPOUNDPERMITFLAG 432
 
 SFX 61003 Y 1
 SFX 61003 0 meat .
@@ -587,7 +600,7 @@ SFX 111 Y 1
 SFX 111 0 a .
 
 PFX 17 Y 1
-PFX 17 0 pre .
+PFX 17 0 pre/432 .
 7affend
 
 7dicstart
--- a/src/testdir/test59.ok
+++ b/src/testdir/test59.ok
@@ -135,6 +135,7 @@ util
 utilize
 utils
 word
+nouword
 -------
 bad
 ['end', 'bork', 'word']
@@ -156,10 +157,18 @@ wordend
 ['word end', 'word', 'wordword']
 wordstart
 ['word start', 'bork start']
+preborkprebork
+['prebork prebork', 'preborkbork', 'preborkborkbork']
+preborkpreborkbork
+['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork']
 startwordwordwordwordend
 ['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end']
 borkpreborkpreborkbork
-['bork preborkpreborkbork', 'borkprebork preborkbork', 'borkpreborkprebork bork']
+['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork']
+utilsbork
+['utilbork', 'utils bork', 'util bork']
+startnouword
+['start nouword', 'startword', 'startborkword']
 
 test 5-5
 # file: Xtest.utf-8.spl
@@ -168,6 +177,7 @@ barbork
 end
 fooa1
 fooaé
+nouend
 prebar
 prebarbork
 start
@@ -192,6 +202,8 @@ endstart
 ['end start', 'start']
 startprobar
 ['startprebar', 'start prebar', 'startbar']
+startnouend
+['start nouend', 'startend']
 
 test 6-6
 # file: Xtest.utf-8.spl
--- a/src/version.h
+++ b/src/version.h
@@ -19,9 +19,9 @@
 #define VIM_VERSION_MINOR_STR		"0"
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 258
-#define VIM_VERSION_BUILD_BCD		0x102
-#define VIM_VERSION_BUILD_STR		"258"
+#define VIM_VERSION_BUILD		 259
+#define VIM_VERSION_BUILD_BCD		0x103
+#define VIM_VERSION_BUILD_STR		"259"
 #define VIM_VERSION_PATCHLEVEL		 0
 #define VIM_VERSION_PATCHLEVEL_STR	"0"
 /* Used by MacOS port should be one of: development, alpha, beta, final */
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70c"
 #define VIM_VERSION_SHORT	"7.0c"
-#define VIM_VERSION_MEDIUM	"7.0c03 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c03 BETA (2006 Mar 29)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c03 BETA (2006 Mar 29, compiled "
+#define VIM_VERSION_MEDIUM	"7.0c10 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c10 BETA (2006 Apr 5)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c10 BETA (2006 Apr 5, compiled "
--- a/src/vim.h
+++ b/src/vim.h
@@ -1987,5 +1987,9 @@ typedef int proftime_T;	    /* dummy for
 #define BAD_KEEP	-1	/* leave it */
 #define BAD_DROP	-2	/* erase it */
 
+/* last argument for do_source() */
+#define DOSO_NONE	0
+#define DOSO_VIMRC	1	/* loading vimrc file */
+#define DOSO_GVIMRC	2	/* loading gvimrc file */
 
 #endif /* VIM__H */
--- a/src/window.c
+++ b/src/window.c
@@ -1944,7 +1944,7 @@ last_window()
 }
 
 /*
- * Close window "win".
+ * Close window "win".  Only works for the current tab page.
  * If "free_buf" is TRUE related buffer may be unloaded.
  *
  * called by :quit, :close, :xit, :wq and findtag()
@@ -2202,6 +2202,11 @@ win_free_mem(win, dirp, tp)
     vim_free(frp);
     win_free(win, tp);
 
+    /* When deleting the current window of another tab page select a new
+     * current window. */
+    if (tp != NULL && win == tp->tp_curwin)
+	tp->tp_curwin = wp;
+
     return wp;
 }
 
@@ -3122,6 +3127,10 @@ alloc_tabpage()
 # ifdef FEAT_DIFF
 	tp->tp_diff_invalid = TRUE;
 # endif
+#ifdef FEAT_EVAL
+	/* init t: variables */
+	init_var_dict(&tp->tp_vars, &tp->tp_winvar);
+#endif
     }
     return tp;
 }
@@ -3134,6 +3143,9 @@ free_tabpage(tp)
     diff_clear(tp);
 # endif
     clear_snapshot(tp);
+#ifdef FEAT_EVAL
+    vars_clear(&tp->tp_vars.dv_hashtab);	/* free all t: variables */
+#endif
     vim_free(tp);
 }
 
@@ -3189,6 +3201,7 @@ win_new_tabpage(after)
 	}
 	win_init_size();
 	firstwin->w_winrow = tabline_height();
+	win_comp_scroll(curwin);
 
 	newtp->tp_topframe = topframe;
 	last_status(FALSE);
@@ -3330,6 +3343,9 @@ leave_tabpage(new_curbuf)
 {
     tabpage_T	*tp = curtab;
 
+#ifdef FEAT_VISUAL
+    reset_VIsual_and_resel();	/* stop Visual mode */
+#endif
 #ifdef FEAT_AUTOCMD
     if (new_curbuf != curbuf)
     {
@@ -3568,6 +3584,10 @@ win_goto(wp)
 	text_locked_msg();
 	return;
     }
+#ifdef FEAT_AUTOCMD
+    if (curbuf_locked())
+	return;
+#endif
 
 #ifdef FEAT_VISUAL
     if (wp->w_buffer != curbuf)
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -275,8 +275,11 @@ long base_off;
       if (c == '\r')	/* Doze style input file? */
 	continue;
 
+#if 0	/* this doesn't work when there is normal text after the hex codes in
+	   the last line that looks like hex */
       if (c == ' ' || c == '\n' || c == '\t')  /* allow multiple spaces */
         continue;
+#endif
 
       n3 = n2;
       n2 = n1;