diff --git a/Filelist b/Filelist
index 69e7702ba9941247df5732b8dfa78844e7d59549..acc534cd6f7980dd098b4fa4fddf8def35008038 100644
--- 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 \
diff --git a/runtime/KVim.desktop b/runtime/KVim.desktop
deleted file mode 100644
index 25ef20a56f594cbdbeb2cfed0f44b8c140c56748..0000000000000000000000000000000000000000
--- 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
-
diff --git a/runtime/autoload/gzip.vim b/runtime/autoload/gzip.vim
index a6467b8f6d804584b314764e645c818934433e36..f6f7bc41d4f6e853ef277c67449dd46b53dfb2e9 100644
--- 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
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 399f671e0df5d39a34aa7ca50615f2238250faa7..00a3f3e8730c832e1dfdad9a0e82e0e4d8b7d02c 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across 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
 
diff --git a/runtime/autoload/phpcomplete.vim b/runtime/autoload/phpcomplete.vim
index 4d448dc2bc8ce8c2ff435d5b580d55498e1c62b8..8cb4db0366f41ee5f1a3ed695a90b9d139521f07 100644
--- 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(findstart, base)
 			" 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
 
-		if !exists('g:php_builtin_functions')
-			call phpcomplete#LoadData()
-		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
 
-		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()
+	endif
 
-		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
+	let scontext = substitute(context, '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '')
+
+	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
 
-			" 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
+		call extend(int_classes, ext_classes)
+
+		for m in sort(keys(int_classes))
+			if m =~ '^'.a:base
+				call add(res, m)
 			endif
+		endfor
 
-			call extend(int_classes, ext_classes)
+		let int_list = res
 
-			for m in sort(keys(int_classes))
-				if m =~ '^'.a:base
-					call add(res, m)
-				endif
-			endfor
+		let final_menu = []
+		for i in int_list
+			let final_menu += [{'word':i, 'kind':'c'}]
+		endfor
 
-			let int_list = res
+		return final_menu
 
-			let final_menu = []
-			for i in int_list
-				let final_menu += [{'word':i, 'kind':'c'}]
-			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)
 
-			return final_menu
+		if scontext =~ '->$' && scontext !~ '\$this->$'
 
-		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 = '$'
+			" 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 adddollar = ''
+				let classlocation = ''
 			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')
+
+			if filereadable(classlocation)
+				let classfile = readfile(classlocation)
+				let classcontent = ''
+				let classcontent .= "\n".phpcomplete#GetClassContents(classfile, classname)
+				let sccontent = split(classcontent, "\n")
+
+				" 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
-			endif
 
-			" Now we have all variables in int_vars dictionary
-			call extend(int_vars, ext_vars)
+				let all_values = {}
+				call extend(all_values, c_functions)
+				call extend(all_values, c_variables)
+				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*(\zs.\{-}\ze)\_s*{')
-				let int_functions[f_name.'('] = f_args
-			endfor
+				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
 
-			" 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
+				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
 
-			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)
+		endif
 
-			for m in sort(keys(all_values))
-				if m =~ '\(^\|::\)'.a:base
-					call add(res, m)
+		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')
 				endif
+				let ext_vars[adddollar.item] = classname
 			endfor
+		endif
 
-			let start_list = res
+		" Now we have all variables in int_vars dictionary
+		call extend(int_vars, ext_vars)
 
-			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
+		" 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
 
-			return final_list
+		" 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
 
-		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':''
-									\ }
-			" }}}
+		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 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
+		for m in sort(keys(all_values))
+			if m =~ '\(^\|::\)'.a:base
+				call add(res, m)
+			endif
+		endfor
 
-			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
+		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
 
-			call extend(int_vars, ext_vars)
-			let g:a0 = keys(int_vars)
+	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]*')
+			endif
+			if val != ''
+				let int_vars[val] = ''
+			endif
+		endfor
 
-			for m in sort(keys(int_vars))
-				if m =~ '^\'.a:base
-					call add(res, m)
+		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
+		endif
 
-			let int_list = res
+		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_dict = []
-			for i in int_list
+		let int_list = res
+
+		let int_dict = []
+		for i in int_list
+			if int_vars[i] != ''
+				let class = ' '
 				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'}]
+					let class = i.' class '
 				endif
-			endfor
+				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
+		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
+	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.')'
+		" 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
 
-			" 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)
 
-			" 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
 
-			" 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
+		" 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
 
-			" 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
+		" 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
 
-			" All constants
-			call extend(int_constants, ext_constants)
-			" Treat keywords as constants
+		let int_list = res
 
-			let all_values = {}
+		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
 
-			" One big dictionary of functions
-			call extend(all_values, int_functions)
+		return final_list
 
-			" Add constants
-			call extend(all_values, int_constants)
-			" Add keywords
-			call extend(all_values, b:php_keywords)
+	endif
 
-			for m in sort(keys(all_values))
-				if m =~ '^'.a:base
-					call add(res, m)
-				endif
-			endfor
+endfunction
 
-			let int_list = res
+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 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
+	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
 
-			return final_list
+	" 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':'',
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index 123f0049fc28998387fadf3afffa68352201ca5a..b0415bc152a57405ba4a5164f347bf7354d63957 100644
--- 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_sql')
 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, base)
         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, base)
         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, base)
         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, base)
         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, base)
         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"
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 41a006e9f6d23fcc2ff4a5ec1c121a43d82b6040..2fc7ef62742388381ce6ec81fd0cf3303e7a31a0 100644
--- 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
+  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
-  silent %g@/$@d
 
   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")
diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim
index 6fa9a0da403ba6923b786fa7be36feabe3b31358..86f0e886d18b3e7f8fffc7c89565d60a9f8fd96f 100644
--- a/runtime/autoload/vimball.vim
+++ b/runtime/autoload/vimball.vim
@@ -1,7 +1,7 @@
 " vimball : construct a file containing both paths and files
 " Author: Charles E. Campbell, Jr.
-" Date:   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
diff --git a/runtime/autoload/xmlcomplete.vim b/runtime/autoload/xmlcomplete.vim
index 2551cae30db12bf67b67e9ed99a3be42c090f785..582dc106680c5bcd7b82f5e6926fdb6c14d9c670 100644
--- 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(findstart, base)
 			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(findstart, base)
 	    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
 
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 99bdd7960eff0707857160db981f3c85a26968a6..6790f4ff4ef5341ea2400f8e0402fe0650a44fdb 100644
--- 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()
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 6932e818dcf11c272abd53c48f807e5c7a15bb0b..317518ded240052389503189ef3ce6b137a14b48 100644
--- 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 change to a read-only
 				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.
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 3df513eeecf04df96e81cc3e9aa2a672ddcef6eb..21b2f3aaca7d30e444a1e4ad01e2f808d7fe7b9f 100644
--- 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:
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 7a67a6978e77b54480a3910e9ef80c8bfea1729d..eecdd86153bb257fe8af742b28258cc7fbd6991a 100644
--- 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 and you want to try again later with
 			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*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 81463b4e6286737126c7d82e09e51fbe4628e645..b830ca04bf589be9b6cf17cb25678562efe77641 100644
--- 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 function it refers to.  Example: >
 	: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 changes to the current buffer.  It is
 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
-		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.
+		Note that the GTK 2 GUI accepts any font name, thus checking
+		for a valid name does not work.
 
 getfperm({fname})					*getfperm()*
 		The result is a String, which is the read, write, and execute
@@ -3137,9 +3148,9 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]])		*inputdialog()*
 		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}]])			*match()*
 		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 {expr}.  For possible values of {expr}
 			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 @@ This would call the function "my_func_whizz(parameter)".
 			  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 @@ This would call the function "my_func_whizz(parameter)".
 
 			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
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index d838680f897df9c6493b5bd57ab8bf729e7d41ea..cd25c1956ba8c36c6acdecd6e6741f399f4c4bf6 100644
--- 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 GUI and in non-GUI mode.  See
 |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 are carried out, in this order:
   - 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
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 7e0ec1e6c725696ec057882df65b48b8ca593822..18fdf6055a807eff5265045004a3d89849418db0 100644
--- 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 priority.
 
 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: >
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index d99f21f2c5c23368e3d538817778110be3e5a1bb..229220f14d73e4ac85b1bb7ec6b974852a54acb5 100644
--- 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 hélp cömmånd nôw
+|typecorr.txt|	Plugin for correcting typing mistakes
+|helpp.txt|	Dummy line to avoid an error message
 
 ------------------------------------------------------------------------------
 *bars*		Bars example
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index f8f7543865afd989745d2f5332f26a35a58acbd7..f6b81a8a75789b79697f4005df25fc1243ae20cf 100644
--- 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* *how-to*
 |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
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 4eb4bcf37bbb3713133bf72fcb7e5477cd45d4b0..417a4b325c5e8190f800ef072408617a17e2213a 100644
--- 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, procedures, views and column lists
 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 properly in between ":if" and
 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 becomes the alternate file.  This can 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				~
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 74b2f8e8c32640a7ce6096368417afb0cfaa2a50..3b6934b9b0242f940ae6d6ff05e08bea49fb4c31 100644
--- 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				*CursorIM*
     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
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index f176566d357fb1d0d2c4b2ce5479a69b197a3792..b04bb5562b42e892475964a0da814194142cf454 100644
--- 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 short description can be found at |Q_op|.
 	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 short description can be found at |Q_op|.
 	|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 short description can be found at |Q_op|.
 	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 short description can be found at |Q_op|.
 <	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 short description can be found at |Q_op|.
 		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 short description can be found at |Q_op|.
 		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 short description can be found at |Q_op|.
 	  '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 short description can be found at |Q_op|.
 	  '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 short description can be found at |Q_op|.
 				     "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 short description can be found at |Q_op|.
 	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 short description can be found at |Q_op|.
 
 	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 short description can be found at |Q_op|.
 			   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 short description can be found at |Q_op|.
 	|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'.
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 02cb03221746d3df02cf5572ea9071da189b575a..7e7711ce527b554c967164e7a8b08056e720096b 100644
--- 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-like 'shell'.
 ==============================================================================
 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
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index c894f0a8e44242e7648c3e66b629fcdf83feb669..08611277e31ef2ee4bb1df2bdd328e071bdd5250 100644
--- 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 Win32 version of Vim understands is
 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*
 
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index f4155747a14a36fa444412528d64d7042a79e101..3bd8c40f8e6db7627a753bb49a5fe98f5ffbaf15 100644
--- 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 @@ Finally, these constructs are unique to Perl:
 		'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 @@ Finally, these constructs are unique to Perl:
 		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
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index b3fcb7db6d34aecc214fe554fb6639ec40540887..a34f354cacb07aff50050da01548c71bc0829265 100644
--- 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 matches inside string and comment
 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:
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index a986ee9cc6930827c6b379072068232a8a785e64..77eb19e10a66accde0ffebc231096a403bcae97b 100644
--- 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) applies to	*tar-copyright*
 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 @@ Copyright: The GPL (gnu public license) applies to	*tar-copyright*
    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
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index 8e70bbf3cb02f57e5156bfaece490e453ac5ab4b..eeb5d767068e8a65e8589289f2b1570a6eda5c45 100644
--- 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*
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index db0210fc7dc30352430ae73668f01507b22c93a9..f76ab51e82c66d10ea102e6432598424e3b4bbe5 100644
--- 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 used for:
 - 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, but are hardly ever used and could be
 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 be made of two words and a dash:
 
 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 COMPOUNDSYLMAX syllables.
 
 						    *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 syllables, counted by "i", "ee" and "e".
 
 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*
diff --git a/runtime/doc/sql.txt b/runtime/doc/sql.txt
index 5d07a5c40e0a9adad160791e56e306f79040eab1..29a0bce1a666e331dd81d2a3a561177ff6ea3009 100644
--- 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 @@ features for navigation, indentation and syntax highlighting.
         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 @@ procedures names and more.
 ---------------
 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 enabled you must have the dbext.vim
 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 lists that are displayed in
 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 a list of tables is shown, you know
 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 CTRL and the right arrow held down
 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 Windows and *nix platforms.  On the windows
 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:
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index c0f2a033059f05d12359df5814eb6473629567e9..4ca2139a81277219293f8f67459f90ccd3298ceb 100644
--- 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 "-/R" readonly.
 		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 "-/R" readonly.
 <		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 "-/R" readonly.
 		{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 @@ accordingly.  Vim proceeds in this order:
 
 			  *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').  But only the options that have
 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
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 0d037d6dc7216412bf21e8353e81191fae6f1e3d..a0a5b8d5d6f88361df1d30dac4cb3006ae6d86e5 100644
--- 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 'fileformats' option is not empty.
 
 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 variable has been set, and assumes
 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* *highlight-term* *E418*
 	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*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 87b42c0bbcbfba5c82e7ccf55b7e837a2e11f51f..db51d843e80cf921b03ad18e31ecb386e2cafa43 100644
--- 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 displayed you can click in a tab page
 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 see the diffs between several files
 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
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 32e2f0b59f899ce64576d7efb3da3c1183cbded7..3e2de485afd14355155b37c6b0ee871b632dbc7b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1042,6 +1042,7 @@ $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
 ++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 @@ $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
 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 @@ $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
 :.	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 @@ $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
 <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_mapping*
 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-affix-chars*
 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-intro*
 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-truetype*
 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*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index e5e934b2455c222aa78d067d4444eb4840900f2c..75c0522839e9212602f1474d803e843000923443 100644
--- 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 Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-When "search" is in 'foldopen' have [s and ]s open folds.
-
 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|
-
--   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".
+-   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?
+
+-   implement use of CHECKCOMPOUND* flags, <compoptions> in .spl file
+
+-   Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
+    How is it supposed to work?
+
+-   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 @@ Macintosh:
     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 @@ User Friendlier:
 
 
 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 @@ Tab pages:
 
 
 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 @@ Syntax highlighting:
     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 @@ Insert mode:
 
 
 '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 ":".
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index e2c6207a4ddd2d9f4b713db5d8da432bbe1f5237..0906dc7e322c05242c575923e866ee5c0c5cf521 100644
--- 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.
+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.
 
-If you have trouble finding your vimrc file, use this command: >
+If you already have a vimrc file (e.g., when your sysadmin has one setup for
+you), you can edit it this way: >
 
-	:scriptnames
+	:edit $MYVIMRC
 
-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
+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
diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt
index 385bc7e468da15893a4865ecb81bfd4d22ffcee9..8521d5963fd526f631572a78f2e7d39af657655e 100644
--- 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 CTRL-X CTRL-F again:
 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
 
diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt
index a5fc02ecc499ab162dd4d96ed95a99b2595666df..86de40d6c51a18746f92f511b1ef0060a09a5fba 100644
--- 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, since it's size is fixed (except for
 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: >
 
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index b21b7c30f3c2d92b580db266ea453d32ab095ab1..1ce27b2aeb7ff2d398bf0579688a490a0712ed7a 100644
--- 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:
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 46356b0ec06b9b3957411af48f0701db6a0ec819..8e55aacda89033319280a45324eae60b8c16c066 100644
--- 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 |:command| the special items could be
 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 and composites of them.  Then |eval()|
 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. (Phan Vinh Thinh)
 
 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 the word that was already typed.
 
 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 %H:%M:%S instead.
 
 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:
diff --git a/runtime/doc/vimball.txt b/runtime/doc/vimball.txt
index 305af969df4dab9d53a70ce79322801ffbf35ace..1fc1e36c5f11aad33fe48e86eca4926c79768369 100644
--- 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 @@ Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.	*Vimball-copyright*
 ==============================================================================
 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.
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 954373ebc202ae47d0138d224794ed81c0a9dfa1..b6db5404f83d635abdcfdd6cafb8aa8df212415b 100644
--- 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 list commands, like ":bnext".
 		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}
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index cad2cc1406dc22754dfe5b9ac7076299754c4a8f..8d1f155eb3f86235f524da8426f6a37ad0f21164 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	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		setf master
 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 ist
 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 simula
 " 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
 
diff --git a/runtime/ftplugin/fortran.vim b/runtime/ftplugin/fortran.vim
index d189bf46566877d3355d4b03c439e0b1affa13be..c817b3b78732f1c255e5689099971089da47cccd 100644
--- 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
 
diff --git a/runtime/indent/fortran.vim b/runtime/indent/fortran.vim
index b14273aa3212b7eb976ed11be8a59eb70caf7c58..465412b167f8732069910de8c5b8e188d1f8c76f 100644
--- 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)
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index 3b560a8a7e9d462f78983f95031ea44612142a28..f268bf9e5089d1f37930c217c2586f8d81f57d00 100644
--- 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\\)$'")
diff --git a/runtime/lang/menu_de_de.latin1.vim b/runtime/lang/menu_de_de.latin1.vim
index 6254d097e334b6c5b2914dd997426c835713ac00..a08a41c80dddfd4f23936d70a0841730880d6c0b 100644
--- 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					&Rechtschreibprüfung
+    menutrans &Spelling					&Rechtschreibung
     menutrans &Spell\ Check\ On				&Rechtschreibprüfung\ An
     menutrans Spell\ Check\ &Off			Rechtschreibprüfung\ &Aus
     menutrans To\ &Next\ error<Tab>]s			Zum\ &Nächsten\ Fehler<Tab>]s
diff --git a/runtime/lang/menu_it_it.latin1.vim b/runtime/lang/menu_it_it.latin1.vim
index 65228e1a4244db1f750b88b1e7123282053f9345..184951cdc0d5a27a2799059806493e0827e676a1 100644
--- 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:\
 "
 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\ &Controllo\ ortografico
 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"
diff --git a/runtime/menu.vim b/runtime/menu.vim
index a9b1c0ec60e7d5433a2a6b3a08f88cea16216ba2..31e2fb3592150a5c4e294dee5e5b19ef01f41b6f 100644
--- 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.
diff --git a/runtime/mswin.vim b/runtime/mswin.vim
index fb29237e9f1cb0026d01c67b76c7a97cefcc7cd9..1ceef847e931021a07e80accf9b865ebe32631c5 100644
--- 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
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 57505179cc80ee9c80ac5369fb0624a70b104f36..a3475f08441fa55059837c223ecdd426b9187d55 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 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
 
diff --git a/runtime/plugin/vimballPlugin.vim b/runtime/plugin/vimballPlugin.vim
index cb714043a1dd7a09e012ae638bdba2b352906046..35158893ff025a1417bff8823c44bc0942665390 100644
--- 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
diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim
index f826262b7fd42155a4603d54017938f919311e0b..e24dbe3a4aaf92daf027bce8aa03a4a97a069892 100644
--- 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_ansi_constants") || exists("c_gnu")
   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
diff --git a/runtime/syntax/desc.vim b/runtime/syntax/desc.vim
index 0d0dbbda47d81b64b811378bf6634a02b340c615..a454fb055e57a43876a01a56a186d77bc5755d68 100644
--- 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\|DEPENDENCY\)\]/
 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\|DOWNLOAD\)\]/ nextgroup=descSum skipwhite
 " 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
diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim
index ae1fa8b19196cfb9f75748f9377ec1843c178675..4dd014e564f638a0f36c27681ad65ce62500f564 100644
--- 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	"\<subroutine\>"
 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 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 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 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_fortran_syn_inits")
   " 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_fortran_syn_inits")
     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_fortran_syn_inits")
   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
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim
index af8626450702074948e3b0247b20b9a88f49dad3..163399808bd512ed90c0c9f670d2464d35721729 100644
--- 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 Mär 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") "look in the directory of this file
 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=Delimiter start="\\examples{" matchgroup=Delimi
 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
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 3a55925325acb59e623670cf809eb3788483305a..4d0228e8dec965eb4e9c9c9863edd5faa0cecf12 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	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
diff --git a/runtime/tutor/tutor.pl b/runtime/tutor/tutor.pl
index 847827fc7608b5c320d4996189964e459619b07b..4cadb8ccbd70ebfb0e021b2716c60314a2be6db5 100644
--- a/runtime/tutor/tutor.pl
+++ b/runtime/tutor/tutor.pl
@@ -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
 
 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
      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
   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
   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
 
   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
 
 		   ** 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
   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
 
   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
 
   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
   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
 
 ---> 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
      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
 	** 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
   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
 
 	  :!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
   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
 
        ** 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
 
   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
   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
 
 
   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
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   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
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  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
 	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
   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
   Sierpieñ 2001,
   rev. Marzec 2002
   2nd rev. Wrzesieñ 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi proszê kierowaæ na: mikmach@wp.pl
diff --git a/runtime/tutor/tutor.pl.cp1250 b/runtime/tutor/tutor.pl.cp1250
index cc2a6ccc68c75498667926fbe164cbdc6b7c072f..4daed18fe3c3af206f5d0292956cb40ea168022b 100644
--- a/runtime/tutor/tutor.pl.cp1250
+++ b/runtime/tutor/tutor.pl.cp1250
@@ -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
 
 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
      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
   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
   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
 
   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
 
 		   ** 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
   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
 
   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
 
   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
   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
 
 ---> 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
      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
 	** 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
   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
 
 	  :!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
   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
 
        ** 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
 
   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
   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
 
 
   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
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   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
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  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
 	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
   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
   Sierpieñ 2001,
   rev. Marzec 2002
   2nd rev. Wrzesieñ 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi proszê kierowaæ na: mikmach@wp.pl
diff --git a/runtime/tutor/tutor.pl.utf-8 b/runtime/tutor/tutor.pl.utf-8
index 8f6805e23a0357b0c9e3b5fbc71ebfff8e54279a..065184dec7d26949b9a6e0975a314015616eea34 100644
--- 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
 
 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ędzies
      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 <TA
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  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 <TA
 	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 <TA
   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 <TA
   Sierpień 2001,
   rev. Marzec 2002
   2nd rev. Wrzesień 2004
+  3rd rev. Marzec 2006
   Wszelkie uwagi proszę kierować na: mikmach@wp.pl
diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak
index b063ce0e0e91526fc5f337ab5c9f7be4373fc022..e50a43599182cee499eaa38edad66aa89cddd8b3 100644
--- 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,
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index 89b56afe42a5ceed24c836945aedbceefd773fa4..557cb6da46e7c55af7cac4172f62b6c814c86393 100644
--- 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
diff --git a/src/Makefile b/src/Makefile
index ea1462a291ae736a4a8135077866bd0dde22506d..c79f96d24b9ea4ad8092405919925e759731740e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1322,7 +1322,8 @@ DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8$(MAN1DIR)
 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) $(DEST_KMAP)
 	-$(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)
@@ -1935,6 +1938,8 @@ install-languages: languages $(DEST_LANG) $(DEST_KMAP)
 		$(DEST_MAN_IT_U) $(INSTALLMLARGS)
 	-$(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)" \
@@ -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)
@@ -2096,6 +2102,8 @@ uninstall_runtime:
 		$(DEST_MAN_IT_U) $(INSTALLMLARGS)
 	-$(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)" \
@@ -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 @@ $(APPDIR)/Contents:
 	-$(SHELL) ./mkinstalldirs $(APPDIR)/Contents/MacOS
 	-$(SHELL) ./mkinstalldirs $(RESDIR)/English.lproj
 
-$(RESDIR)/%.icns: %.icns
-	cp $< $@
-
 
 ###############################################################################
 ### (automatically generated by 'make depend')
diff --git a/src/auto/configure b/src/auto/configure
index e8b9a5d918509dc0eb472d709f3a898b3ae15ca3..644d4efe82d79814b971cf9382e574086a1df50e 100755
--- 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
 
diff --git a/src/buffer.c b/src/buffer.c
index a26806540bfdd9356e341607a8fe30334067a15c..15abab5143a52cc147d0b1be0cf8540c1dc86214 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1814,6 +1814,10 @@ buflist_getfile(n, lnum, options, forceit)
 	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, use_sandbox, fillchar, maxwidth, hltab, t
 
     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)
diff --git a/src/config.h.in b/src/config.h.in
index 5adbcb970aa90ba5aec28a76aca6b7eebe161688..8e0863a25dcf6ccfcc5c1f9741ccdbe50a7a6757 100644
--- 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
 
diff --git a/src/configure.in b/src/configure.in
index aedd73aac8a3031592cd85ae7b5b403a7aa76313..3b867e5f5b170ed0c8409cdbd83a841100a9be67 100644
--- 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
 
diff --git a/src/diff.c b/src/diff.c
index 3927338340907fc8f669b31f9f6e58ae1934e8d2..f02aa5ef27fdf80c9e2ff12e80e2c8fd75f52daa 100644
--- 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)
diff --git a/src/doc-txt.icns b/src/doc-txt.icns
deleted file mode 100644
index c66b0ceffbdd6af00184a6cc8f7c024333b61f62..0000000000000000000000000000000000000000
Binary files a/src/doc-txt.icns and /dev/null differ
diff --git a/src/edit.c b/src/edit.c
index da15010f5d35354e01ce3fb1bbe88d3690ea26af..e70a23575dcb91104952cb1dca12f1376cc98b5a 100644
--- 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;
 	    }
diff --git a/src/eval.c b/src/eval.c
index 4697e97f2e467ef714b8df37f88bfb408838be8f..1b75201f8108cd10d51941bac9d9fc19a92be9f1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -369,6 +369,9 @@ static void list_hashtable_vars __ARGS((hashtab_T *ht, char_u *prefix, int empty
 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 *argvars, typval_T *rettv));
 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 *argvars, typval_T *rettv));
 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)
@@ -12119,6 +12177,30 @@ f_match(argvars, rettv)
     find_some_match(argvars, rettv, 1);
 }
 
+/*
+ * "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
  */
@@ -12391,6 +12473,29 @@ f_nr2char(argvars, rettv)
     rettv->vval.v_string = vim_strsave(buf);
 }
 
+/*
+ * "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
  */
@@ -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 */
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9e8939233eabe13560b6ddc756577854e2a3ceaf..4e7c1697634f0f65561f020fe24aa147aef40434 100644
--- 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, other)
 	    }
 	    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, other)
 								    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, other)
 		{
 		    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, lnum, forceit)
 
     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);
     }
 
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 93a098ccfe4aa43e31680bb4ebff0fec257bcb32..b6c0e41f55becc1d56215684c2c3cc729ea03316 100644
--- 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[]) */
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index cf6d00f257ecca0cd1e30be48ffa36bda782cf61..ab616bb729fc35124dfbfa254d7d867164b544a2 100644
--- 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. */
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index cba3da56f39b39f0cc18140acf9246f1fa8083bd..0e0bcaec40f36075198d0857459b389de96a5c3e 100644
--- 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);
diff --git a/src/ex_getln.c b/src/ex_getln.c
index ec6ee567a3d3a85134616cad403eed1072568946..e4a1c99b44731467265670fb0550ee1e7c74f043 100644
--- 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;
diff --git a/src/feature.h b/src/feature.h
index b0a8774da7448d9742f11b41f4a7d64b7b7f8761..7d2f668eac4105996197406a30f13fcd9874429d 100644
--- 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
diff --git a/src/fileio.c b/src/fileio.c
index cf14c519b582c0a6e22baadf7b6c63ec70e46356..6d92c071731b69582351c437a38706d3608f5f2a 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -217,6 +217,7 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
 {
     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_skip, lines_to_read, eap, flags)
 #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_skip, lines_to_read, eap, flags)
     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_skip, lines_to_read, eap, flags)
     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, eap, append, forceit,
     }
 #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}".
diff --git a/src/getchar.c b/src/getchar.c
index e941f94b314b0986ac934524848a04ffdfbed8a0..07c595f26a863c0892f40c9d6d44230a281a864c 100644
--- 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},
diff --git a/src/globals.h b/src/globals.h
index 765199b9d6ac41eb25f067cee1b64cae486c25e3..9203f2ad9645018f1bfe0d409651ca1b3605ee71 100644
--- 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);
diff --git a/src/gui.c b/src/gui.c
index 03b38b01a4752ae05642b278e2b8b0fd3483e8a0..4c7c7758460437b3078f0085e907472d788928b3 100644
--- 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)
diff --git a/src/gui.h b/src/gui.h
index cad8115c0a2cb24adaa8770ff4f5aa4cc09c90f1..f221c2981f4b40bf657cef5e3d53bd12dd00b69d 100644
--- 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
diff --git a/src/gui_gtk_f.h b/src/gui_gtk_f.h
index 06c7ecdf7bc596b78fa8e5cd3c61c389de84a601..767f88a5d988a09b98c2ec5c5e63bf1858e6b417 100644
--- 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>
 
diff --git a/src/gui_gtk_vms.h b/src/gui_gtk_vms.h
index e88728f9857174f341ff31c466871af674f015ce..1f965afa2644c329113135e5d77c48370f49f294 100644
--- 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
diff --git a/src/gui_mac.icns b/src/gui_mac.icns
deleted file mode 100644
index 8405dc1273883b7ba3ee3a0f54c9659ed5e101a5..0000000000000000000000000000000000000000
Binary files a/src/gui_mac.icns and /dev/null differ
diff --git a/src/gui_motif.c b/src/gui_motif.c
index ac9468e53bb6c25b5e49ac0f3ef93e5146e5b546..a98c9d1c607a25c4f5576f8f1311792b29619f0c 100644
--- 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, event, cont)
 # 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.
  */
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 7a01d98732bb232f23fc69118cc179c700250c7c..0e6e8570465f41b85a7fb832888d509c1a4887d0 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -727,6 +727,33 @@ _WndProc(
 	    }
 	    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 height,
     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 height,
 #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 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 < workarea_rect.left)
-	win_xpos = 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;
+	  && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
+	win_ypos = workarea_rect.bottom - win_height - 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;
+    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 *screen_w, int *screen_h)
 
     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
 
diff --git a/src/gui_xmebw.c b/src/gui_xmebw.c
index ff7d2e68d1e4476291eee475604be658d30da848..70e7df783cbc209a5c62f0efe3d7dbf99da3d914 100644
--- 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] = {
diff --git a/src/hardcopy.c b/src/hardcopy.c
index e9aa2bd91680ed13d0325747f580f9d98da954c5..e6c89a6168dc8426ae1dcaf84bc740e3fc24df09 100644
--- a/src/hardcopy.c
+++ b/src/hardcopy.c
@@ -2473,6 +2473,7 @@ mch_print_init(psettings, jobname, forceit)
     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, forceit)
      * 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;
-        }
+                    break;
+            }
 
-    /* Use first encoding matched if no charset matched */
-    if (p_mbchar == NULL && p_mbenc_first != NULL)
-        p_mbenc = p_mbenc_first;
+        /* 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)
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c
index d19f50dd89c6d041a7bae263b08139abc22f0452..ef6e2574107a051cdbb6997ee68da3db31bb3214 100644
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -1111,14 +1111,23 @@ GetRegProp(dpy, regPropp, numItemsp, domsg)
     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 */
diff --git a/src/infplist.xml b/src/infplist.xml
index f0ba5fc58e6fe7d41f3d8fdd3fb64ea07d2e8255..c58cf7480224e4eef9a2f9a664495ca3bf2920c3 100644
--- 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>
diff --git a/src/installman.sh b/src/installman.sh
index 3c34ab691a932722a78abf1c6e6f138705132653..9943109fe39637064c432517e280383c9f5bcdef 100755
--- 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
diff --git a/src/installml.sh b/src/installml.sh
index 8cb92645305fd49ba656b79c5882410948b9018d..0de60adf7db0609f1d0bec787d0d58c623f4b65c 100644
--- 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}
-
-if test $what = "install" -a \( -e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1 \); then
+# 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 \( -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 $destdir/$vimname.1 -o -e $destdir/$vimdiffna
    # 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
diff --git a/src/main.aap b/src/main.aap
index 3fb2a9c0a6e6cf5ebca7832fdc1ff2d4857ac0cc..3ce0890e11e17a8b84effe9347076eee42233590 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -724,6 +724,7 @@ installrtbase {virtual}{force}: $HELPSOURCE/vim.1 $DEST_VIM
                 $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 $DEST_BIN $DEST_MAN \
         :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 $DEST_BIN $DEST_MAN \
 
 # 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}: languages $DEST_LANG $DEST_KMAP
 	: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) $(EVIMNAME) \
 		$(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_runtime
 # 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)" \
diff --git a/src/main.c b/src/main.c
index 32f91156d111a434ddaade6c9a7cdda0e0fcea9b..f8b4fa94e1ce157e1362c5a3a86e2328c4e604e1 100644
--- 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;
diff --git a/src/misc1.c b/src/misc1.c
index 16286428294ec664b2439c1dfb5cc53679ed7061..22dbfc872f8092912f1b9327623bc9bf18711258 100644
--- 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.
diff --git a/src/normal.c b/src/normal.c
index 57591f7ed35b87052879a396b0fe0fc6b2d179f8..e285b80df3fbcffecc7b1087331735880a2684fd 100644
--- 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
+		&& !VIsual_active && old_mapped_len == 0
 #endif
-		&& old_mapped_len == 0)
+		)
 	    (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
 
diff --git a/src/option.c b/src/option.c
index e0cfa137a9e48f924557d7c2653e3f302d151fef..2f7e90ae2a907a96af97330d077a2ab5f06059da 100644
--- 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()
+vimrc_found(fname, envname)
+    char_u	*fname;
+    char_u	*envname;
 {
-    int	    opt_idx;
+    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);
+    }
 }
 
 /*
diff --git a/src/os_mac_rsrc/app.icns b/src/os_mac_rsrc/app.icns
new file mode 100644
index 0000000000000000000000000000000000000000..14426113f428df324cd526c65cf281038631135f
Binary files /dev/null and b/src/os_mac_rsrc/app.icns differ
diff --git a/src/os_mac_rsrc/doc-txt.icns b/src/os_mac_rsrc/doc-txt.icns
new file mode 100644
index 0000000000000000000000000000000000000000..124a7303a1ed9693327921610e30718a02040ee0
Binary files /dev/null and b/src/os_mac_rsrc/doc-txt.icns differ
diff --git a/src/os_mac_rsrc/doc.icns b/src/os_mac_rsrc/doc.icns
new file mode 100644
index 0000000000000000000000000000000000000000..984d11d0473483bec2d9f13d06296b21e82e8714
Binary files /dev/null and b/src/os_mac_rsrc/doc.icns differ
diff --git a/src/os_unix.h b/src/os_unix.h
index c1458d66e6cfe2718a577de9e1509f36022008f3..821462cd5d3bfd681f2dfef2c2ab2a3791dd64f5 100644
--- 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
diff --git a/src/os_vms_conf.h b/src/os_vms_conf.h
index 2ede37d9161dfaa5f36a8f065183cf5e81a8c185..8b0200293d4a9c7afb8d94bcc4f129e94917ca83 100644
--- 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
diff --git a/src/os_win32.c b/src/os_win32.c
index a2b2c5059431d2c966be85702d80ffacb45303f5..397359231496ee9c8a8b3d389ff30231da76a628 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -213,6 +213,7 @@ static int suppress_winsize = 1;	/* don't fiddle with console */
 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; /* indexes in global_argv[] for
 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, int full_path)
 	}
     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)
diff --git a/src/po/Makefile b/src/po/Makefile
index 185bc2a023664bd75c12899163233fd46e190403..d30d72ff4c4ab9c6ad20e70b7e785a3619ee8dd9 100644
--- 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
diff --git a/src/po/de.po b/src/po/de.po
index 769caf2efe362c0157b95f19e3de080c9460c173..b720e914fb61a6802c2b77960e104ad423a776e4 100644
--- 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 gelöscht"
 
 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 gelöscht"
+msgstr "ein Puffer gelöscht"
 
 #, c-format
 msgid "%d buffers deleted"
 msgstr "%d Puffer gelöscht"
 
 msgid "1 buffer wiped out"
-msgstr "1 Puffer gelöscht"
+msgstr "ein Puffer gelöscht"
 
 #, c-format
 msgid "%d buffers wiped out"
 msgstr "%d Puffer gelöscht"
 
 msgid "E84: No modified buffer found"
-msgstr "E84: Es wurde keine veränderten Puffer gefunden"
+msgstr "E84: Es wurde kein veränderter 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 Puffer gehen"
 
 #, 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]"
+msgstr "Hilfe"
 
-msgid "[help]"
+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 "[Location List]"
+msgstr "[Positionsliste]"
 
-msgid "[No File]"
-msgstr "[Keine Datei]"
+msgid "[Quickfix List]"
+msgstr "[Quickfix Liste]"
 
 msgid ""
 "\n"
 "--- Signs ---"
 msgstr ""
 "\n"
-"--- Optionen ---"
+"--- Zeichen ---"
 
 #, c-format
 msgid "Signs for %s:"
-msgstr "Vorzeichen für %s:"
+msgstr "Zeichen für %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 für mehr als %ld Puffer nicht möglich"
+msgstr "E96: Keine Differenz für 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 für die Tastatur-Belegung nicht gefunden"
 
 msgid "E105: Using :loadkeymap not in a sourced file"
 msgstr "E105: :loadkeymap außerhalb einer eingelesenen Datei"
@@ -226,22 +221,17 @@ msgid " Keyword completion (^N^P)"
 msgstr " Stichwort-Ergänzung (^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-Ergänzung (^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-Ergänzung (^L^N^P)"
 
 msgid " File name completion (^F^N^P)"
-msgstr " Dateinamens-Ergänzung (^F^N^P)"
+msgstr " Dateinamen-Ergänzung (^F^N^P)"
 
 msgid " Tag completion (^]^N^P)"
-msgstr " Tag-Ergänzung (^]^N^P)"
+msgstr " Tag-Ergänzung  (^]^N^P)"
 
 msgid " Path pattern completion (^N^P)"
 msgstr " Pfadmuster-Ergänzung (^N^P)"
@@ -256,17 +246,29 @@ msgid " Thesaurus completion (^T^N^P)"
 msgstr " Thesaurus-Ergänzung (^T^N^P)"
 
 msgid " Command-line completion (^V^N^P)"
-msgstr " Kommando-Zeilen-Ergänzung (^V^N^P)"
+msgstr " Kommandozeilen-Ergänzung (^V^N^P)"
 
-msgid "Hit end of paragraph"
-msgstr "Stieß an das Ende eines Absatzes"
+msgid " User defined completion (^U^N^P)"
+msgstr " Benutzerdefinierte Ergänzung (^U^N^P)"
 
-msgid "'thesaurus' option is empty"
-msgstr "Die Option 'thesaurus' ist leer"
+msgid " Omni completion (^O^N^P)"
+msgstr " Omni-Ergänzung (^O^N^P)"
+
+msgid " Spelling suggestion (s^N^P)"
+msgstr " Rechtschreibprüfung-Vorschlag (s^N^P)"
+
+msgid " Keyword Local completion (^N^P)"
+msgstr " Schlüsselwort-Lokale Ergänzung(^N^P)"
+
+msgid "Hit end of paragraph"
+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"
+
 #, c-format
 msgid "Scanning dictionary: %s"
 msgstr "Durchsuchen des Wörterbuchs: %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 " Hinzufügung der"
+msgstr " Füge 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.
+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 außerhalb des zulässigen 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 Wörterbuch"
+
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: Der Schlüssel für Wörterbuch darf nicht leer sein"
+
+msgid "E714: List required"
+msgstr "E714: Liste benötigt"
+
+msgid "E715: Dictionary required"
+msgstr "E715: Wörterbuch benötigt"
+
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: Zu viele Argumente für Funktion: %s"
+
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: Schlüssel nicht vorhanden im Wörterbuch: %s"
+
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: Funktion %s existiert bereits; ! zum Ersetzen hinzufügen"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: Wörterbuch-Eintrag existiert bereits"
+
+msgid "E718: Funcref required"
+msgstr "E718: Funcref benötigt"
+
+msgid "E719: Cannot use [:] with a Dictionary"
+msgstr "E719: Kann [:] nicht mit einem Wörterbuch verwenden"
+
+#, c-format
+msgid "E734: Wrong variable type for %s="
+msgstr "E734: Falscher Typ der Variable für %s="
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Unbekannte Funktion: %s"
+
+#, c-format
+msgid "E461: Illegal variable name: %s"
+msgstr "E461: Unzulässiger Name der Variable: %s"
+
+msgid "E687: Less targets than List items"
+msgstr "E687: Weniger Ziele als Listeneinträge"
+
+msgid "E688: More targets than List items"
+msgstr "E688: Mehr Ziele als Listeneinträge"
+
+msgid "Double ; in list of variables"
+msgstr "Doppeltes ; in der Liste von Variablen"
+
 #, c-format
-msgid "E106: Unknown variable: \"%s\""
-msgstr "E106: Unbekannte Variable: \"%s\""
+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 Wörterbücher indizieren"
+
+msgid "E708: [:] must come last"
+msgstr "E708: [:] muss am Schluss kommen"
+
+msgid "E709: [:] requires a List value"
+msgstr "E709: [:] benötigt eine Liste als Wert"
+
+msgid "E710: List value has more items than target"
+msgstr "E710: Listenwert hat mehr Einträge als das Ziel"
+
+msgid "E711: List value has not enough items"
+msgstr "E711: Listenwert hat nicht genügend Einträge"
+
+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 für (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: Unzulässige Operation für Listen"
+
+msgid "E735: Can only compare Dictionary with Dictionary"
+msgstr "E735: Kann nur ein Wörterbuch mit einem Wörterbuch vergleichen"
+
+msgid "E736: Invalid operation for Dictionary"
+msgstr "E736: Unzulässige Operation für ein Wörterbuch"
+
+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: Unzulässige Operation für Funcrefs"
 
 msgid "E110: Missing ')'"
-msgstr "E110: fehlende ')'"
+msgstr "E110: Fehlende ')'"
 
-msgid "E111: Missing ']'"
-msgstr "E111: 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 Anführungszeichen: %s"
 
 #, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: Unzulässige Argumente für Funktion %s"
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Fehlendes Komma in der Liste: %s"
 
 #, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Unbekannte Funktion: %s"
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: Fehlendes Ende der Liste ']': %s"
 
 #, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: Zu viele Argumente für Funktion: %s"
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Fehlender Doppelpunkt im Wörterbuch: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Doppelter Schlüssel im Wörterbuch: \"%s\""
 
 #, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Nicht genug Argumente für Funktion: %s"
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Fehlendes Komma im Wörterbuch: %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 "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: Fehlendes Ende des Wörterbuchs '}': %s"
+
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: Variable ist zu tief verschachtelt für 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
@@ -378,10 +504,18 @@ msgstr "E120: <SID> wurde nicht in einer Skript-Umgebung benutzt: %s"
 msgid "&Ok"
 msgstr "&Ok"
 
+#, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: Schlüssel 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: Unzulässiger Typ für 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"
 
+#, 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 (zirkulär?)"
+
 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 "E702: Sort compare function failed"
+msgstr "E702: Die Vergleichsfunktion der Sortierung ist fehlgeschlagen"
 
 msgid "(Invalid)"
-msgstr "(ungültig)"
+msgstr "(Ungültig)"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: Fehler beim Schreiben einer temporären 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: Wörterbuch 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: Wörterbuch als String verwendet"
 
 #, c-format
-msgid "E121: Undefined variable: %s"
-msgstr "E121: Variable nicht definiert: %s"
+msgid "E704: Funcref variable name must start with a capital: %s"
+msgstr "E704: Funcref Variable muss mit einem Großbuchstaben beginnen: %s"
 
 #, c-format
-msgid "E461: Illegal variable name: %s"
-msgstr "E461: Unzulässiger Variable-Name: %s"
+msgid "E705: Variable name conflicts with existing function: %s"
+msgstr "E705: Konflikt eines Variablennamens mit bestehender Funktion: %s"
 
 #, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: Funktion %s existiert bereits; ! zum Ersetzen hinzufügen"
+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 "E123: Undefined function: %s"
-msgstr "E123: Funktion nicht definiert: %s"
+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 für 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: Unzulässiges Argument: %s"
 
 msgid "E126: Missing :endfunction"
-msgstr "E126: fehlendes :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"
+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 Großbuchstaben beginnen: %s"
+msgstr "E129: Funktionsname wird verlangt"
 
 #, c-format
-msgid "E130: Undefined function: %s"
-msgstr "E130: Funktion nicht definiert: %s"
+msgid "E128: Function name must start with a capital or contain a colon: %s"
+msgstr "E128: Funktionsname muss mit einem Großbuchstaben 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 gel
 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 zurück"
 
 #, c-format
-msgid "%s returning \"%s\""
+msgid "%s returning %s"
 msgstr "%s lieferte \"%s\" zurück"
 
-#. 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 außerhalb 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 schreibbar: %s"
 
 #, c-format
 msgid "E138: Can't write viminfo file %s!"
-msgstr "E138: Schreiben in die viminfo-Datei %s ist nicht möglich!"
+msgstr "E138: Schreiben der viminfo-Datei %s ist nicht möglich!"
 
 #, 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 können sie verändern, 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 "Unzulässiges 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"
+msgstr "E140: Zum Schreiben von partiellen Puffern ! verwenden"
 
 #, c-format
-msgid "Overwrite existing file \"%.*s\"?"
-msgstr "Überschreibe existierende Datei \"%.*s\"?"
+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)"
 
-# Cursor: Schreibmarke Positionsmarke
 #, c-format
 msgid "E141: No file name for buffer %ld"
 msgstr "E141: Kein Dateiname für 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 für \"%.*s\" gesetzt.\n"
+"'readonly'-Option ist für \"%s\" gesetzt.\n"
 "Möchten Sie trotzdem schreiben?"
 
 msgid "Edit File"
@@ -618,7 +805,7 @@ msgid "E143: Autocommands unexpectedly deleted new buffer %s"
 msgstr "E143: Auto-Kommandos löschten unerwartet neuen Puffer %s"
 
 msgid "E144: non-numeric argument to :z"
-msgstr "E144: nicht numerisches Argument für :z"
+msgstr "E144: Nicht-numerisches Argument für :z"
 
 msgid "E145: Shell commands not allowed in rvim"
 msgstr "E145: Shell Befehle sind in rvim nicht erlaubt"
@@ -633,9 +820,16 @@ msgstr "ersetze durch %s (y/n/a/q/l/^E/^Y)?"
 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: Regul
 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 gefunden"
 
 #, 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: ung
 
 #, c-format
 msgid "E157: Invalid sign ID: %ld"
-msgstr "E157: ungültige Zeichen-ID: %ld"
+msgstr "E157: Ungültige Zeichen-ID: %ld"
 
 msgid " (NOT FOUND)"
 msgstr " (NICHT GEFUNDEN)"
@@ -737,7 +932,7 @@ msgid " (not supported)"
 msgstr " (nicht unterstützt)"
 
 msgid "[Deleted]"
-msgstr "[gelöscht]"
+msgstr "[Gelöscht]"
 
 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"
 
+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 "Save changes to \"%s\"?"
+msgstr "Änderungen in \"%s\" speichern?"
 
 msgid "Untitled"
 msgstr "Unbenannt"
@@ -777,9 +975,7 @@ msgid "E162: No write since last change for buffer \"%s\""
 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 (überprüfen Siedie "
-"Autocommands)"
+msgstr "Achtung: Unerwarteter Eintritt in einen andren Puffer (überprüfen 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"
 
@@ -842,78 +1053,6 @@ msgstr "E167: :scriptencoding au
 msgid "E168: :finish used outside of a sourced file"
 msgstr "E168: :finish außerhalb 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 geöffnet 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 unterstützte 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 geöffnet werden"
-
-#, c-format
-msgid "E456: Can't open file \"%s\""
-msgstr "E456: Datei \"%s\" kann nicht geöffnet 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 zurückzukehren."
+msgstr "Ex-Modus. Geben Sie \"visual\" ein, um zum Normal-Modus zurückzukehren."
 
 #. 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"
@@ -1006,16 +1144,6 @@ msgstr "E178: Ung
 msgid "E179: argument required for complete"
 msgstr "E179: Argument wird zur Vervollständigung benötigt"
 
-#, c-format
-msgid "E180: Invalid complete value: %s"
-msgstr "E180: Ungültiger Vervollständigungs-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: Ungültiges Attribut: %s"
@@ -1030,6 +1158,16 @@ msgstr "E183: Benutzerdefinierte Befehle m
 msgid "E184: No such user-defined command: %s"
 msgstr "E184: Unbekannter benutzerdefinierter Befehl: %s"
 
+#, c-format
+msgid "E180: Invalid complete value: %s"
+msgstr "E180: Ungültiger Vervollständigungs-Wert: %s"
+
+msgid "E468: Completion argument only allowed for custom completion"
+msgstr "E468: Argument für Vervollständigung nur für eigene Vervollständigung erlaubt"
+
+msgid "E467: Custom completion requires a function argument"
+msgstr "E467: Eigene Vervollständigung benötigt ein Funktionsargument"
+
 #, c-format
 msgid "E185: Cannot find color scheme %s"
 msgstr "E185: Zeile %s kann nicht gefunden werden"
@@ -1037,15 +1175,24 @@ msgstr "E185: Zeile %s kann nicht gefunden werden"
 msgid "Greetings, Vim user!"
 msgstr "Herzliche Grüße, Vim Benutzer!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: Kann letztes Tab nicht schließen"
+
+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 "Füge Datei an"
 
+msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
+msgstr "E747: Kann das Verzeichnis nicht wechseln, da der Puffer verändert 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 für dieses Terminal nicht bestimmt werden"
+msgstr "E188: Die Fenster-Position kann für dieses Terminal nicht bestimmt werden"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos benötigt zwei numerische Argumente"
@@ -1078,6 +1224,10 @@ msgstr "Sitzung Speichern"
 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 ge
 
 #. set mark
 msgid "E191: Argument must be a letter or forward/backward quote"
-msgstr ""
-"E191: Argument muss ein Buchstabe oder vorwärts/rückwärts-Anführungszeichen "
-"sein"
+msgstr "E191: Argument muss ein Buchstabe oder vorwärts/rückwärts-Anführungszeichen 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 number to substitute for \"<abuf>\""
 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 for reading"
 msgstr "E195: viminfo kann nicht zum Lesen geöffnet werden"
 
 msgid "E196: No digraphs in this version"
-msgstr "ed9) Keine Digraphen in dieser Version"
+msgstr "E196 Keine Digraphen in dieser Version"
 
-#~ msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
-#~ msgstr ""
+msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
+msgstr "E608: Kann nicht :throw Exceptions mit 'Vim' Präfix"
 
 #. 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: Benützung von :endfor mit :while"
+
+msgid "E733: Using :endwhile with :for"
+msgstr "E733: Benützung 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 command length"
 msgstr "E198: cmd_pchar über die Länge des Befehls hinaus"
 
 msgid "E199: Active window or buffer deleted"
-msgstr "E199: aktives Fenster oder Puffer gelöscht"
+msgstr "E199: Aktives Fenster oder Puffer gelöscht"
 
 msgid "Illegal file name"
-msgstr "unzulässiger Dateiname"
+msgstr "Unzulässiger 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 the file unreadable"
 msgstr "E200: *ReadPre Auto-Kommandos haben die Datei unlesbar gemacht"
 
 msgid "E201: *ReadPre autocommands must not change current buffer"
-msgstr ""
-"E201: *ReadPre Auto-Kommandos dürfen nicht den aktuellen Puffer wechseln"
+msgstr "E201: *ReadPre Auto-Kommandos dürfen 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 "[verschlüsselt]"
 
-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 'charconvert'"
 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 für acwrite Puffer"
+
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr ""
-"E203: Auto-Kommandos haben den zu schreibenden Puffer gelöscht oder heraus "
-"geladen"
+msgstr "E203: Auto-Kommandos haben den zu schreibenden Puffer gelöscht 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 "
-"verändert"
+msgstr "E204: Auto-Kommandos haben die Anzahl der Zeilen in unerwarteter Weise verändert"
 
-#~ msgid "NetBeans dissallows writes of unmodified buffers"
-#~ msgstr ""
+msgid "NetBeans dissallows writes of unmodified buffers"
+msgstr "NetBeans verweigert das Schreiben von unveränderten Puffern"
 
-#, fuzzy
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "Keine Syntax-Elemente definiert für diesen Puffer"
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Partielles Schreiben für 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 lost (add ! to override)"
 msgstr "E460: Der Ressourcefork geht verloren (erzwinge mit !)"
 
 msgid "E214: Can't find temp file for writing"
-msgstr "E214: temporäre Datei kann nicht zum Schreiben geöffnet werden"
+msgstr "E214: Temporäre Datei kann nicht zum Schreiben geöffnet 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 full?)"
 msgstr "E514: Schreibfehler (Dateisystem voll?)"
 
 msgid " CONVERSION ERROR"
-msgstr "KONVERTIERUNGS-FEHLER"
+msgstr "KONVERTIERUNGSFEHLER"
 
 msgid "[Device]"
 msgstr "[Ausgabegerät]"
@@ -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 verändert, seit mit dem Editieren "
-"angefangen wurde"
+msgstr "W11: Achtung: Datei \"%s\" wurde verändert, 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 verändert seit mit dem Editieren "
-"angefangen wurde"
+msgstr "W16: Achtung: Mode der Datei \"%s\" wurde verändert 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"
+msgstr "W13: Achtug: Datei \"%s\" wurde erstellt, nachdem mit dem Editieren begonnen wurde"
 
-#~ msgid "See \":help W11\" for more info."
-#~ msgstr ""
+msgid "See \":help W16\" for more info."
+msgstr "Siehe \":help W16\" für 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>: Ungültige Puffer Nummer "
+
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: Auto-Kommandos können nicht für ALL Ereignisse ausgeführt 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 gelöscht werden"
+
+#, c-format
+msgid "+--%3ld lines folded "
+msgstr "+--%3ld Zeilen gefaltet "
 
 msgid "E222: Add to read buffer"
 msgstr "E222: Zum Lese-Puffer Hinzufügen"
@@ -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 für einzelne Wörter"
+msgid "Match whole word only"
+msgstr "Übereinstimmung nur mit ganzen Wörtern"
 
 #. match case button
-#, fuzzy
-#~ msgid "Match case"
-#~ msgstr "Patch-Datei"
+msgid "Match case"
+msgstr "Klein-/Großschreibung 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: Received \"die\" request from session manager\n"
+msgstr "Vim: \"die\"-Request von Session-Manager erhalten\n"
+
+msgid "Close"
+msgstr "Schließe"
+
+msgid "New tab"
+msgstr "Neues Tab"
+
+msgid "Open Tab..."
+msgstr "Öffne in Tab..."
 
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr ""
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Hauptfenster unerwartet gelöscht\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 "Rückgängig"
+msgid "Find &Next"
+msgstr "&Nächste"
 
-#, fuzzy, c-format
-#~ msgid "E610: Can't load Zap font '%s'"
-#~ msgstr "E235: Zap-Schriftart '%s' kann nicht geladen werden"
+msgid "&Replace"
+msgstr "&Ersetze"
 
-#, fuzzy, c-format
-#~ msgid "E611: Can't use font %s"
-#~ msgstr "E235: Schriftart %s kann nicht verwendet werden"
+msgid "Replace &All"
+msgstr "Ersetze &Alles"
+
+msgid "&Undo"
+msgstr "&Rückgängig"
+
+#, 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"
@@ -1814,10 +1991,22 @@ msgstr ""
 "\n"
 "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 unterstützt: \"-%s\"; verwende die OLE Version."
+msgstr "E243: Argument wird nicht unterstützt: \"-%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 schließen"
+
+msgid "Open tab..."
+msgstr "Öffne in Tab..."
 
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Suche Zeichenkette (benütze '\\\\' um ein '\\' zu finden)"
@@ -1825,15 +2014,20 @@ msgstr "Suche Zeichenkette (ben
 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 "
-"können falsch sein"
+msgstr "Vim E458: \"Colormap\"-Eintrag kann nicht alloziert werden, einige Farben können falsch sein"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr ""
-"E250: Schriftarten für die folgenden Zeichensätze fehlen im \"fontset\" %s:"
+msgstr "E250: Schriftarten für die folgenden Zeichensätze 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 "Ungültige 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 Größe in Punkten"
+
+msgid "Encoding:"
+msgstr "Zeichensatz:"
+
+msgid "Font:"
+msgstr "Schriftart"
+
+msgid "Style:"
+msgstr "Stil:"
+
+msgid "Size:"
+msgstr "Größe:"
+
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul-Automat Fehler"
 
+msgid "E550: Missing colon"
+msgstr "E550: Fehlender Doppelpunkt"
+
+msgid "E551: Illegal component"
+msgstr "E551: Unzulässige 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 geöffnet 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 unterstützte 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: Unzulässiger 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 für Multi-Byte Ausdruck."
+
+msgid "E324: Can't open PostScript output file"
+msgstr "E324: PostScript Ausgabe-Datei kann nicht geöffnet werden"
+
+#, c-format
+msgid "E456: Can't open file \"%s\""
+msgstr "E456: Datei \"%s\" kann nicht geöffnet 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 für 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 hinzufügen"
+msgstr "Eine neue Datenbank hinzufügen"
 
 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 unterstützt 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"
+#, c-format
+msgid "E563: stat(%s) error: %d"
+msgstr "E563: stat(%s) Fehler: %d"
 
-#~ msgid "E563: stat error"
-#~ msgstr ""
+msgid "E563: stat error"
+msgstr "E563: 'stat' Fehler"
 
-#, fuzzy, c-format
-#~ msgid "E564: %s is not a directory or a valid cscope database"
-#~ msgstr "%s ist kein Verzeichnis oder zulässige cscope Datenbank"
+#, c-format
+msgid "E564: %s is not a directory or a valid cscope database"
+msgstr "E564: %s ist kein Verzeichnis oder eine gültige cscope Datenbank"
 
 #, c-format
 msgid "Added cscope database %s"
 msgstr "csope Datenbank %s hinzugefügt"
 
-#, fuzzy, c-format
-#~ msgid "E262: error reading cscope connection %ld"
-#~ msgstr "E262: Fehler beim Lesen aus der cscope Verbindung %d"
+#, c-format
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: Fehler beim Lesen aus der cscope Verbindung %ld"
 
-#, fuzzy
-#~ msgid "E561: unknown cscope search type"
-#~ msgstr "unbekannter cscope Suchtyp"
+msgid "E561: unknown cscope search type"
+msgstr "E561: Unbekannter cscope Suchtyp"
 
-#, fuzzy
-#~ msgid "E566: Could not create cscope pipes"
-#~ msgstr "cscope Pipes konnten nicht angelegt werden"
+msgid "E566: Could not create cscope pipes"
+msgstr "E566: cscope Pipes konnten nicht angelegt werden"
 
-#, fuzzy
-#~ msgid "E622: Could not fork for cscope"
-#~ msgstr "E321: \"%s\" konnte nicht neu geladen werden"
+msgid "E622: Could not fork for cscope"
+msgstr "E622: Konnte nicht für 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 to_fp misslang"
 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 für 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: Unzulässiges cscopequickfix Flag %c für %c"
 
 msgid "cscope commands:\n"
 msgstr "cscope Befehle:\n"
 
-#, fuzzy, c-format
-#~ msgid "%-5s: %-30s (Usage: %s)"
-#~ msgstr "%-5s: %-30s (Verwendung: %s)\n"
+#, c-format
+msgid "%-5s: %-30s (Usage: %s)"
+msgstr "%-5s: %-30s (Verwendung: %s)"
 
-#, fuzzy, c-format
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "csope Datenbank %s hinzugefügt"
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: Kann cscope Datenbank nicht öffnen: %s"
 
-#, fuzzy
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "Revertierungs-Information kann nicht gespeichert werden"
+msgid "E626: cannot get cscope database information"
+msgstr "E626: Kann cscope Datenbank-Informationen nicht bekommen"
 
-#, fuzzy
-#~ msgid "E568: duplicate cscope database not added"
-#~ msgstr "cscope Datenbank nicht doppelt hinzugefügt"
+msgid "E568: duplicate cscope database not added"
+msgstr "E568: cscope Datenbank nicht doppelt hinzugefügt"
 
-#, fuzzy
-#~ msgid "E569: maximum number of cscope connections reached"
-#~ msgstr "maximale Anzahl von cscope Verbindungen erreicht"
+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"
+msgid "E570: fatal error in cs_manage_matches"
+msgstr "E570: Fataler Fehler in cs_manage_matches"
 
-#, fuzzy, c-format
-#~ msgid "Cscope tag: %s"
-#~ msgstr "Cscope Tag: %s\n"
+#, c-format
+msgid "Cscope tag: %s"
+msgstr "Cscope Tag: %s"
 
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "   #   line"
-#~ msgstr "   #  Zeile"
+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 geöffnet werden"
+#, c-format
+msgid "E609: Cscope error: %s"
+msgstr "E609: Cscope Fehler: %s"
 
 msgid "All cscope databases reset"
 msgstr "alle cscope Datenbanken zurückgesetzt"
@@ -2024,6 +2333,63 @@ msgstr "keine cscope-Verbindungen\n"
 msgid " # pid    database name                       prepend path\n"
 msgstr " # pid   Datenbank Name\t                    führender Pfad\n"
 
+msgid ""
+"???: Sorry, this command is disabled, the MzScheme library could not be "
+"loaded."
+msgstr "???: Dieser Befehl ist nicht verfügbar, die MzScheme Bibliothek konnte nicht "
+"geladen werden"
+
+msgid "invalid expression"
+msgstr "ungültiger Ausdruck"
+
+msgid "expressions disabled at compile time"
+msgstr "Ausdrücke 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 außerhalb des zulässigen 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 gelöscht werden"
+
+msgid "cannot replace line"
+msgstr "Zeile kann nicht ersetzt werden"
+
+msgid "cannot insert line"
+msgstr "Zeile kann nicht eingefügt 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 "ungültiger Puffer"
+
+msgid "window is invalid"
+msgstr "ungültiges Fenster"
+
+msgid "linenr out of range"
+msgstr "'linenr' außerhalb des zulässigen 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."
@@ -2031,9 +2397,8 @@ msgstr ""
 "E263: Dieser Befehl ist nicht verfügbar, die Python Bibliothek konnte nicht "
 "geladen werden"
 
-#, fuzzy
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E147: Kann :global nicht rekursiv ausführen"
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Kann Python nicht rekursiv ausführen"
 
 msgid "can't delete OutputObject attributes"
 msgstr "OutputObject-Attribute können nicht gelöscht werden"
@@ -2050,12 +2415,6 @@ msgstr "writelines() verlangt eine Liste von Zeichenfolgen"
 msgid "E264: Python: Error initialising I/O objects"
 msgstr "E264: Python: Fehler bei der Initialisierung von I/O Objekten"
 
-msgid "invalid expression"
-msgstr "ungültiger Ausdruck"
-
-msgid "expressions disabled at compile time"
-msgstr "Ausdrücke wurden zur Zeit des Übersetzens nicht zugelassen"
-
 msgid "attempt to refer to deleted buffer"
 msgstr "Versuch, Bezug auf einen gelöschten Puffer zu nehmen"
 
@@ -2096,21 +2455,6 @@ msgstr "<Fenster %d>"
 msgid "no such window"
 msgstr "ungültiges Fenster"
 
-msgid "cannot save undo information"
-msgstr "Revertierungs-Information kann nicht gespeichert werden"
-
-msgid "cannot delete line"
-msgstr "Zeile kann nicht gelöscht werden"
-
-msgid "cannot replace line"
-msgstr "Zeile kann nicht ersetzt werden"
-
-msgid "cannot insert line"
-msgstr "Zeile kann nicht eingefügt 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 "ung
 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 ausgeführt werden: das Objekt wird gelöscht"
+msgstr "Puffer/Fenster-Befehl kann nicht ausgeführt werden: das Objekt wird gelöscht"
 
 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"
+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 verfügbar, da die Tcl Bibliothek nicht geladen "
-#~ "werden konnte"
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr "E571: Dieser Befehl ist nicht verfügbar: 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 registriert werden"
 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 "Ungültige Server-ID verwendet: %s"
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Ungültige Server ID verwendet: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
 msgstr "E251: Registry-Eigenschaft der VIM Instanz ist fehlerhaft.  Gelöscht!"
 
-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"
+msgid "Garbage after option argument"
+msgstr "Schrott nach dem Optionsargument"
 
-#, fuzzy
-#~ msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-#~ msgstr "Zu viele \"+command\" oder \"-c command\" Argumente"
+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 "Ungültiges Argument für"
@@ -2327,9 +2663,8 @@ msgstr "kann nicht zum Lesen ge
 msgid "Cannot open for script output: \""
 msgstr "kann nicht zur Skript-Ausgabe geöffnet 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 gvim aus OLE"
 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 
 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"
+msgid "-A\t\t\tstart in Arabic mode"
+msgstr "-A\t\t\tStart im Arabischen Modus"
 
-#, fuzzy
-#~ msgid "-H\t\t\tStart in Hebrew mode"
-#~ msgstr "-H\t\t\tStart im Hebräischen Modus"
+msgid "-H\t\t\tStart in Hebrew mode"
+msgstr "-H\t\t\tStart im Hebräischen Modus"
 
-#, fuzzy
-#~ msgid "-F\t\t\tStart in Farsi mode"
-#~ msgstr "-F\t\t\tStart im Farsi 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 \"plugin\"-Skripte"
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tÖffne N Fenster (Vorgabe: einzeln für 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 <session> after loading the first file"
 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> anfügen"
@@ -2539,30 +2868,27 @@ msgstr "-display <display>\tStarte vim <display>"
 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 <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <Dateien>\tEditiere <Dateien> in einem Vim Server falls möglich"
 
-#~ msgid "--remote-silent <files>  Same, don't complain if there is no server"
-#~ msgstr ""
+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"
+"--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 ""
+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>\tFühre <Ausdruck> in einem Vim Server aus und "
-"drucke das Ergebnis"
+msgstr "--remote-expr <Ausdruck>\tFühre <Ausdruck> in einem Vim Server aus und drucke das Ergebnis"
 
 msgid "--serverlist\t\tList available Vim server names and exit"
 msgstr "--serverlist\t\tDrucke verfügbare Vim Server Namen und beende"
@@ -2573,13 +2899,11 @@ msgstr "--servername <Name>\tBenutze den Vim server <Name>"
 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)"
+msgid "-h  or  --help\tPrint Help (this message) and exit"
+msgstr "-h  or  --help\tAnzeigen der Hilfe (diesen Text) und beenden"
 
-#, fuzzy
-#~ msgid "--version\t\tPrint version information and exit"
-#~ msgstr "--version\t\tDrucke nur Versions-Informationen"
+msgid "--version\t\tPrint version information and exit"
+msgstr "--version\t\tVersionsinformation anzeigen und beenden"
 
 msgid ""
 "\n"
@@ -2588,13 +2912,12 @@ msgstr ""
 "\n"
 "Argumente für die gvim Motif Version:\n"
 
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumente für die gvim Athena Version:\n"
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Argumente für 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> für den Hintergrund (auch mit: -bg)"
+msgstr "-background <Farbe>\tBenutze <Farbe> für den Hintergrund (auch mit: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr ""
-"-foreground <Farbe>\tBenutze <Farbe> für den Text Vordergrund (auch mit: -fg)"
+msgstr "-foreground <Farbe>\tBenutze <Farbe> für den Text Vordergrund (auch mit: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-msgstr ""
-"-font <Schriftart>\tBenutze <Schriftart> für normalen Text (auch mit: -fn)"
+msgstr "-font <Schriftart>\tBenutze <Schriftart> für normalen Text (auch mit: -fn)"
 
 msgid "-boldfont <font>\tUse <font> for bold text"
 msgstr "-boldfont <Schriftart>\tBenutze <Schriftart> für Fettschrift"
@@ -2634,23 +2954,16 @@ msgid "-italicfont <font>\tUse <font> for italic text"
 msgstr "-italicfont <Schriftart>\tBenutze <Schriftart> für geneigten Text"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr ""
-"-geometry <geom>\tbenutze <geom> für die Anfangs Abmessungen (auch mit: -"
-"geom)"
+msgstr "-geometry <geom>\tbenutze <geom> für 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 <Höhe>\tBenutze einen Menü-Balken der Höhe <Höhe> (auch mit: -mh)"
+msgstr "-menuheight <Höhe>\tBenutze einen Menü-Balken der Höhe <Höhe> (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>\tÖffne Vim in einem anderen GTK widget"
 
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr ""
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <parent title>\tÖffne Vim innerhalb der Vater-Applikation"
 
-#~ msgid "No display"
-#~ msgstr ""
+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 auszuführen\n"
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Versendung fehlgeschlagen. Versuche lokale Ausführung\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"
+msgid "No display: Send expression failed.\n"
+msgstr "Keine Anzeige: Versenden des Ausdrucks fehlgeschlagen.\n"
 
-#, fuzzy
-#~ msgid ": Send expression failed.\n"
-#~ msgstr "Schicken des Ausdrucks schlug fehl.\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 zulässige Code-Seite"
+msgid "E543: Not a valid codepage"
+msgstr "E543: Keine zulässige 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 requires fontset"
 msgstr "E290: der Über-dem-Punkt Stil benötigt 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 läuft nicht"
@@ -2847,9 +3149,7 @@ msgstr "E302: Auslagerungs-Datei konnte nicht umbenannt werden"
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr ""
-"E303: Auslagerungs-Datei für \"%s\" konnte nicht geöffnet werden, "
-"Wiederherstellung unmöglich"
+msgstr "E303: Auslagerungs-Datei für \"%s\" konnte nicht geöffnet werden, Wiederherstellung unmöglich"
 
 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 für %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 unterbrochen"
 msgid ""
 "E312: Errors detected while recovering; look for lines starting with ???"
 msgstr ""
-"E312: Fehler wurden festgestellt während der Wiederherstellung: suche nach "
-"Zeilen die mit ??? beginnen"
+"E312: Fehler wurden festgestellt während der Wiederherstellung: suche nach Zeilen die mit ??? beginnen"
 
 msgid "See \":help E312\" for more information."
 msgstr "Lesen Sie \":help E312\" für weitere Informationen."
@@ -3166,8 +3462,7 @@ msgstr ""
 "(2) Eine Editier-Sitzung für diese Datei ist abgestürzt.\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"
+"&Löschen\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 Men
 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ü führen"
 
 msgid "E331: Must not add menu items directly to menu bar"
-msgstr ""
-"E331: Menü-Punkt können nicht direkt zum Menü-Balken hinzugefügt werden"
+msgstr "E331: Menü-Punkt können nicht direkt zum Menü-Balken hinzugefügt 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 Ausf
 msgid "line %4ld:"
 msgstr "Zeile %4ld:"
 
-msgid "[string too long]"
-msgstr "[Zeichenkette zu lang]"
+#, c-format
+msgid "E354: Invalid register name: '%s'"
+msgstr "E354: Ungültiger 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 "Drücken 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 vorwärts, b/u/k: rückwärts, q: Ende"
 
 msgid "Question"
 msgstr "Frage"
@@ -3341,11 +3635,23 @@ msgstr "Datei 
 
 #. 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 für printf()"
+
+msgid "E767: Too many arguments to printf()"
+msgstr "E767: Zu viele Argumente für printf()"
 
 msgid "W10: Warning: Changing a readonly file"
 msgstr "W10: Warnung: Ändern einer schreibgeschützten Datei"
 
+msgid "Type number or click with mouse (<Enter> cancels): "
+msgstr "Bitte Nummer eingeben oder mit der Maus auswählen (abbrechen mit <Enter>)"
+
+msgid "Choice number (<Enter> cancels): "
+msgstr "Gewünschte 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 vorhanden (%lu bytes alloziert)"
 msgid "Calling shell to execute: \"%s\""
 msgstr "Rufe Shell auf, um \"%s\" auszuführen"
 
-#, fuzzy
-#~ msgid "E545: Missing colon"
-#~ msgstr "fehlendes Komma"
+msgid "E545: Missing colon"
+msgstr "E545: Fehlender Doppelpunkt"
 
-#, fuzzy
-#~ msgid "E546: Illegal mode"
-#~ msgstr "Unzulässiger Modus"
+msgid "E546: Illegal mode"
+msgstr "E546: Unzulässiger Modus"
 
-#, fuzzy
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "Unzulässige Maus-Form"
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Unzulässige Mauszeiger"
 
-#, fuzzy
-#~ msgid "E548: digit expected"
-#~ msgstr "Ziffer erwartet"
+msgid "E548: digit expected"
+msgstr "E548: Ziffer erwartet"
 
-#, fuzzy
-#~ msgid "E549: Illegal percentage"
-#~ msgstr "Unzulässige Prozentangabe"
+msgid "E549: Illegal percentage"
+msgstr "E549: Unzulässige Prozentangabe"
 
 msgid "Enter encryption key: "
 msgstr "Geben Sie bitte den Schlüssel 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: Ungültiger Pfad: '**[Nummer]' muss am Ende des Pfads sein, oder von '%"
-"s' gefolgt werden. Siehe :help path."
+"E343: Ungültiger 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 \"%s\" im 'cdpath' gefunden"
 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 "Unzulässige Komponente"
+#. Get here when the server can't be found.
+msgid "Cannot connect to Netbeans #2"
+msgstr "Keine Verbindung zu NetBeans #2"
 
-#, fuzzy
-#~ msgid "E552: digit expected"
-#~ msgstr "Ziffer erwartet"
+msgid "Cannot connect to Netbeans"
+msgstr "Keine Verbindung zu NetBeans"
 
-#. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: Falscher Zugriffsmodus auf die NetBeans Zugriff-Informationsdatei: \"%s\""
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "gelesen vom NetBeans Socket"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Verbindung zu NetBeans für Puffer %ld verloren"
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "E505: "
+msgstr "E505: "
 
-#, fuzzy, c-format
-#~ msgid "E658: NetBeans connection lost for buffer %ld"
-#~ msgstr "E86: Kann nicht zum Puffer %ld wechseln"
+msgid "E774: 'operatorfunc' is empty"
+msgstr "E775: 'operatorfunc' is empty"
+
+msgid "E775: Eval feature not available"
+msgstr "E775: Evaluierungsfunktion nicht verfügbar"
 
 msgid "Warning: terminal cannot highlight"
 msgstr "Achtung: Terminal unterstützt 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 gelöscht "
-"werden"
+msgstr "E352: Faltung kann mit der eingestellten Faltungsmethode nicht gelöscht werden"
 
-#, fuzzy
-#~ msgid "E664: changelist is empty"
-#~ msgstr "E91: Die Option 'shell' ist leer"
+msgid "E664: changelist is empty"
+msgstr "E664: Liste der Änderungen ist leer"
 
-#~ msgid "E662: At start of changelist"
-#~ msgstr ""
+msgid "E662: At start of changelist"
+msgstr "E662: Am Anfang der Liste der Änderungen"
 
-#~ msgid "E663: At end of changelist"
-#~ msgstr ""
+msgid "E663: At end of changelist"
+msgstr "E663: Am Ende der Liste der Änderungen"
 
-#, fuzzy
-#~ msgid "Type  :quit<Enter>  to exit Vim"
-#~ msgstr "tippe  :q<Enter>                zum Beenden               "
+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 Einrücken... "
 
 msgid "1 line indented "
-msgstr "1 Zeile eingerückt... "
+msgstr "eine Zeile eingerückt... "
 
 #, c-format
 msgid "%ld lines indented "
 msgstr "%ld Zeilen eingerückt... "
 
+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; lösche trotzdem"
 
 msgid "1 line changed"
-msgstr "1 Zeile ~"
+msgstr "eine Zeile geändert"
 
 #, c-format
 msgid "%ld lines changed"
@@ -3559,8 +3858,15 @@ msgstr "%ld Zeilen ge
 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: Unzulässiger 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 Wörtern; %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 Wörtern; %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 für 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 für die Benutzung von Vim"
 
-#, fuzzy
-#~ msgid "E518: Unknown option"
-#~ msgstr "Unbekannte Option"
+msgid "E518: Unknown option"
+msgstr "E518: Unbekannte Option"
 
-#, fuzzy
-#~ msgid "E519: Option not supported"
-#~ msgstr "Option nicht unterstützt"
+msgid "E519: Option not supported"
+msgstr "E519: Option nicht unterstützt"
 
-#, fuzzy
-#~ msgid "E520: Not allowed in a modeline"
-#~ msgstr "Nicht erlaubt in einer 'modeline'"
-
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tZuletzt gesetzt von "
+msgid "E520: Not allowed in a modeline"
+msgstr "E520: Nicht erlaubt in einer Modeline"
 
-#, fuzzy
-#~ msgid "E521: Number required after ="
-#~ msgstr "Brauche Zahl nach ="
+msgid "E521: Number required after ="
+msgstr "E521: Zahl benötigt nach ="
 
-#, fuzzy
-#~ msgid "E522: Not found in termcap"
-#~ msgstr "Nicht gefunden in termcap"
+msgid "E522: Not found in termcap"
+msgstr "E522: Nicht gefunden in 'termcap'"
 
-#, fuzzy, c-format
-#~ msgid "E539: Illegal character <%s>"
-#~ msgstr "Unzulässiges Zeichen <%s>"
+#, c-format
+msgid "E539: Illegal character <%s>"
+msgstr "E539: Unzulässiges Zeichen <%s>"
 
-#, fuzzy
-#~ msgid "E529: Cannot set 'term' to empty string"
-#~ msgstr "'term' kann keine leere Zeichenkette sein"
+msgid "E529: Cannot set 'term' to empty string"
+msgstr "E529: 'term' darf keine leere Zeichenkette sein"
 
-#, fuzzy
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "'term' kann im GUI nicht verändert werden"
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: Kann Terminal in der GUI nicht verändern"
 
-#, fuzzy
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "Verwende \":gui\", um die GUI-Version zu starten"
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Verwende \":gui\", um die GUI-Version zu starten"
 
-#, fuzzy
-#~ msgid "E589: 'backupext' and 'patchmode' are equal"
-#~ msgstr "'backupext' und 'patchmode' sind gleich"
+msgid "E589: 'backupext' and 'patchmode' are equal"
+msgstr "E589: 'backupext' und 'patchmode' sind gleich"
 
-#, fuzzy
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "'term' kann im GUI nicht verändert werden"
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Kann in der GTK+ 2 GUI nicht verändert werden"
 
-#, fuzzy
-#~ msgid "E524: Missing colon"
-#~ msgstr "fehlendes Komma"
+msgid "E524: Missing colon"
+msgstr "E524: Fehlender Doppelpunkt"
 
-#, fuzzy
-#~ msgid "E525: Zero length string"
-#~ msgstr "Zeichenkette der Länge Null"
+msgid "E525: Zero length string"
+msgstr "E525: Zeichenkette der Länge Null"
 
-#, fuzzy, c-format
-#~ msgid "E526: Missing number after <%s>"
-#~ msgstr "fehlende Zahl nach <%s>"
+#, c-format
+msgid "E526: Missing number after <%s>"
+msgstr "E526: Fehlende Zahl nach <%s>"
 
-#, fuzzy
-#~ msgid "E527: Missing comma"
-#~ msgstr "Komma fehlt"
+msgid "E527: Missing comma"
+msgstr "E527: Fehlendes Komma"
 
-#, fuzzy
-#~ msgid "E528: Must specify a ' value"
-#~ msgstr "ein '-Wert muss angegeben werden"
+msgid "E528: Must specify a ' value"
+msgstr "E528: Ein ' Wert muss angegeben werden"
 
-#, fuzzy
-#~ msgid "E595: contains unprintable or wide character"
-#~ msgstr "enthält nicht-druckbare Zeichen"
+msgid "E595: contains unprintable or wide character"
+msgstr "E595: Enthält nicht-druckbare oder Multi-Byte Zeichen"
 
-#, fuzzy
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "Ungültiger Schriftsatz"
+msgid "E596: Invalid font(s)"
+msgstr "E596: Ungültige Schriftart(en)"
 
-# what's the difference ?
-#, fuzzy
-#~ msgid "E597: can't select fontset"
-#~ msgstr "\"fontset\" kann nicht eingestellt werden"
+msgid "E597: can't select fontset"
+msgstr "E597: Kann \"Fontset\" nicht auswählen"
 
-#, fuzzy
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "Ungültiger Fontset"
+msgid "E598: Invalid fontset"
+msgstr "E598: Ungültiges \"Fontset\""
 
-#, fuzzy
-#~ msgid "E533: can't select wide font"
-#~ msgstr "Weiter Schriftart kann nicht engestellt werden"
+msgid "E533: can't select wide font"
+msgstr "E533: Kann Breitschrift nicht auswählen"
 
-#, fuzzy
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "Ungültiger weiter Schriftsatz"
+msgid "E534: Invalid wide font"
+msgstr "E534: Ungültige Breitschrift"
 
-#, fuzzy, c-format
-#~ msgid "E535: Illegal character after <%c>"
-#~ msgstr "Unzulässiges Zeichen nach <%c>"
+#, c-format
+msgid "E535: Illegal character after <%c>"
+msgstr "E535: Ungültiges Zeichen nach <%c>"
 
-#, fuzzy
-#~ msgid "E536: comma required"
-#~ msgstr "Komma benötigt"
+msgid "E536: comma required"
+msgstr "E536: Komma benötigt"
 
-#, fuzzy, c-format
-#~ msgid "E537: 'commentstring' must be empty or contain %s"
-#~ msgstr "'commentstring' muß leer sein, oder %s enthalten"
+#, c-format
+msgid "E537: 'commentstring' must be empty or contain %s"
+msgstr "E537: 'commentstring' muss leer sein oder %s enthalten"
 
-#, fuzzy
-#~ msgid "E538: No mouse support"
-#~ msgstr "Keine Maus-Unterstützung"
+msgid "E538: No mouse support"
+msgstr "E538: Keine Maus-Unterstützung"
 
-# XXX
-#, fuzzy
-#~ msgid "E540: Unclosed expression sequence"
-#~ msgstr "Nicht geschlossene Ausdrucks Folge"
+msgid "E540: Unclosed expression sequence"
+msgstr "E540: Nicht-geschlossene Ausdrucksfolge"
 
-#, fuzzy
-#~ msgid "E541: too many items"
-#~ msgstr "zu viele Punkte"
+msgid "E541: too many items"
+msgstr "E541: Zu viele Elemente"
 
-#, fuzzy
-#~ msgid "E542: unbalanced groups"
-#~ msgstr "nicht ausgewogene Gruppen"
+msgid "E542: unbalanced groups"
+msgstr "E542: Unausgewogene Gruppen"
 
-#, fuzzy
-#~ msgid "E590: A preview window already exists"
-#~ msgstr "Ein Fenster zur Voransicht existiert bereits"
+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 ""
+msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
+msgstr "W17: Arabisch benötigt UTF-8, bitte ':set encoding=utf-8' ausführen"
 
-#, fuzzy, c-format
-#~ msgid "E593: Need at least %d lines"
-#~ msgstr "mindestens %d Zeilen werden benötigt"
+#, c-format
+msgid "E593: Need at least %d lines"
+msgstr "E593: Mindestens %d Zeilen werden benötigt"
 
-#, fuzzy, c-format
-#~ msgid "E594: Need at least %d columns"
-#~ msgstr "mindestens %d Spalten werden benötigt"
+#, c-format
+msgid "E594: Need at least %d columns"
+msgstr "E594: Mindestens %d Spalten werden benötigt"
 
 #, 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 führen"
+msgstr "E360: Kann Shell nicht mit der -f Option ausführen"
 
 msgid "Cannot execute "
 msgstr "Kann nicht ausführen "
@@ -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' beträgt nicht 80, kann externe Befehle nicht ausführen"
 
@@ -3862,17 +4148,14 @@ msgstr "E237: Drucker-Auswahl fehlgeschlagen"
 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 ""
+msgid "XSMP handling save-yourself request"
+msgstr ""
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "keine Verbindungen zu cscope"
+msgid "XSMP opening connection"
+msgstr "XSMP öffnet Verbindung"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Verbindungsüberwachung fehlgeschlagen"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+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 "schließe"
 
 msgid "logoff"
-msgstr "aus-loggen"
+msgstr "ausloggen"
 
 msgid "shutdown"
 msgstr "beenden"
@@ -4034,7 +4316,7 @@ msgid "E373: Unexpected %%%c in format string"
 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' enth
 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 Einträge"
 
 #, 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: Ungültiger Text für ein Zeichen: %s"
-
-msgid "E339: Pattern too long"
-msgstr "E339: Muster zu lang"
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: Dateiname fehlt oder ungültiges Muster"
 
-#, fuzzy
-#~ msgid "E50: Too many \\z("
-#~ msgstr "E76: zu viele ["
+#, c-format
+msgid "Cannot open file \"%s\""
+msgstr "Kann Datei \"%s\" nicht öffnen"
 
-#, fuzzy, c-format
-#~ msgid "E51: Too many %s("
-#~ msgstr "E76: zu viele ["
+msgid "E681: Buffer is not loaded"
+msgstr "E681: Buffer ist nicht geladen"
 
-#~ msgid "E52: Unmatched \\z("
-#~ msgstr ""
+msgid "E777: String or List expected"
+msgstr "E777: Zeichenkette oder Liste erwartet"
 
 #, c-format
-#~ msgid "E53: Unmatched %s%%("
-#~ msgstr ""
+msgid "E369: invalid item in %s%%[]"
+msgstr "E369: Ungültiges Element in %s%%[]"
 
-#, fuzzy, c-format
-#~ msgid "E54: Unmatched %s("
-#~ msgstr "Kein Treffer für: %s"
+msgid "E339: Pattern too long"
+msgstr "E339: Muster zu lang"
 
-#, fuzzy, c-format
-#~ msgid "E55: Unmatched %s)"
-#~ msgstr "Kein Treffer für: %s"
+msgid "E50: Too many \\z("
+msgstr "E50: Zu viele \\z("
 
 #, c-format
-#~ msgid "E56: %s* operand could be empty"
-#~ msgstr ""
+msgid "E51: Too many %s("
+msgstr "E51: Zu viele %s("
+
+msgid "E52: Unmatched \\z("
+msgstr "E52: \\z( ohne Übereinstimmung"
 
 #, c-format
-#~ msgid "E57: %s+ operand could be empty"
-#~ msgstr ""
+msgid "E53: Unmatched %s%%("
+msgstr "E53: %s%%( ohne Übereinstimmung"
 
-#, fuzzy, c-format
-#~ msgid "E59: invalid character after %s@"
-#~ msgstr "E215: Unzulässiges Zeichen nach *: %s"
+#, 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 "E58: %s{ operand could be empty"
-#~ msgstr ""
+msgid "E59: invalid character after %s@"
+msgstr "E59: Ungültiges Zeichen nach %s@"
 
 #, c-format
-#~ msgid "E60: Too many complex %s{...}s"
-#~ msgstr ""
+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: Ungültige Verwendung von \\_"
 
 #, c-format
 msgid "E64: %s%c follows nothing"
 msgstr "E64: %s%c nach Nichts"
 
-#, fuzzy
-#~ msgid "E65: Illegal back reference"
-#~ msgstr "E125: Unzulässiges Argument: %s"
+msgid "E65: Illegal back reference"
+msgstr "E65: Ungültige Rückreferenz"
 
-#, fuzzy
-#~ msgid "E66: \\z( not allowed here"
-#~ msgstr "E407: %s ist hier nicht erlaubt"
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z( ist hier nicht erlaubt"
 
-#, fuzzy
-#~ msgid "E67: \\z1 et al. not allowed here"
-#~ msgstr "E407: %s ist hier nicht erlaubt"
+msgid "E67: \\z1 et al. not allowed here"
+msgstr "E67: \\z1 usw. ist hier nicht erlaubt"
 
-#, fuzzy
-#~ msgid "E68: Invalid character after \\z"
-#~ msgstr "E215: Unzulässiges Zeichen nach *: %s"
+msgid "E68: Invalid character after \\z"
+msgstr "E68: Ungültiges Zeichen nach \\z"
 
-#, fuzzy, c-format
-#~ msgid "E69: Missing ] after %s%%["
-#~ msgstr "E109: fehlender ':' nach '?'"
+#, c-format
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: Fehlende ] nach %s%%["
 
 #, c-format
-#~ msgid "E70: Empty %s%%[]"
-#~ msgstr ""
+msgid "E70: Empty %s%%[]"
+msgstr "E70: %s%%[] ist leer"
 
-#, fuzzy, c-format
-#~ msgid "E71: Invalid character after %s%%"
-#~ msgstr "E215: Unzulässiges Zeichen nach *: %s"
+#, c-format
+msgid "E678: Invalid character after %s%%[dxouU]"
+msgstr "E678: Ungültiges Zeichen nach %s%%[dxouU]"
 
-#, fuzzy, c-format
-#~ msgid "E554: Syntax error in %s{...}"
-#~ msgstr "Syntax Fehler in %s{...}"
+#, c-format
+msgid "E71: Invalid character after %s%%"
+msgstr "E71: Ungültiges Zeichen nach %s%%"
 
-msgid "E361: Crash intercepted; regexp too complex?"
-msgstr "E361: Absturz verhindert; Ist der reguläre Ausdruck zu kompliziert?"
+#, c-format
+msgid "E769: Missing ] after %s["
+msgstr "E769: Fehlende ] nach %s["
 
-msgid "E363: pattern caused out-of-stack error"
-msgstr "E363: Muster erzeugte einen Stapel-Überlauf-Fehler"
+#, 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 " Hebräisch"
 
-#~ msgid " Arabic"
-#~ msgstr ""
+msgid " Arabic"
+msgstr " Arabisch"
 
 msgid " (lang)"
 msgstr " (Sprache)"
 
-# einkleben ist echt Scheiße, aber einfügen
-# gibts schon ...
 msgid " (paste)"
-msgstr " (einkleben)"
+msgstr " (paste)"
 
 msgid " VISUAL"
 msgstr " VISUELL"
 
-#, fuzzy
-#~ msgid " VISUAL LINE"
-#~ msgstr " VISUELL"
+msgid " VISUAL LINE"
+msgstr " VISUELL ZEILE"
 
-#, fuzzy
-#~ msgid " VISUAL BLOCK"
-#~ msgstr " VISUELL"
+msgid " VISUAL BLOCK"
+msgstr " VISUELL BLOCK"
 
 msgid " SELECT"
 msgstr " AUSWAHL"
 
-#, fuzzy
-#~ msgid " SELECT LINE"
-#~ msgstr " AUSWAHL"
+msgid " SELECT LINE"
+msgstr " AUSWAHL ZEILE"
 
-#, fuzzy
-#~ msgid " SELECT BLOCK"
-#~ msgstr " AUSWAHL"
+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: Unzulässiges Suchmuster: %s"
@@ -4293,6 +4555,10 @@ msgstr "  NICHT GEFUNDEN"
 msgid "Scanning included file: %s"
 msgstr "Scanne eingefügte Datei: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "Suche eingefügte 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 gefunden werden"
 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 Rechtschreibwörterbuch"
+
+msgid "E758: Truncated spell file"
+msgstr "E758 Abgeschnittenes Rechtschreibwörterbuch"
+
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "Angehängter 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 außerhalb des zulässigen Bereichs"
+
+msgid "Compressing word tree..."
+msgstr "Komprimiere Wörter-Baum..."
+
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: Rechtschreibprüfung ist nicht aktiviert"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "Achtung: Kann Wörter-Liste \"%s.%s.spl\" oder \"%s.ascii.spl\" nicht finden"
+
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "Lese Rechtschreibwörterbuch \"%s\" ein"
+
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Das sieht nicht nach einem Wörterbuch für die Rechtschreibprüfung aus"
+
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: Altes Wörterbuch für die Rechtschreibprüfung, benötigt Aktualisierung"
+
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Wörterbuch für die Rechtschreibprüfung ist für eine neuere Version von Vim"
+
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: Nicht unterstützter Abschnit im Wörterbuch für die Rechtschreibprüfung"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Achtung: Region %s nicht unterstützt"
+
+#, 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 unterstützt: von %s nach %s"
+
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "Konversion in %s nicht unterstützt"
+
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "Ungültiger 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 verknüpfendes 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 für 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) gezählt in %s Zeile %d"
+
+#, c-format
+msgid "Expected MAP count in %s line %d"
+msgstr "Erwartetes MAP gezählt 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 zurück gestellte Präfixe"
+
+msgid "Too many compound flags"
+msgstr "Zu viele zusammengesetzte Flags"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Zu viele zurück gestellte Präfixe 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 Wörterbuch-Datei %s ..."
+
+#, c-format
+msgid "E760: No word count in %s"
+msgstr "E760: Keine Wörter gezählt 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 "Ungültige 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 Wörter 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 Rechtschreibwörterbuch zurück..."
+
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
+msgid "Performing soundfolding..."
+msgstr "Führe 'Soundfolding' durch..."
+
+#, c-format
+msgid "Number of words after soundfolding: %ld"
+msgstr "Anzahl der Wörter nach 'Soundfolding': %ld"
+
+#, c-format
+msgid "Total number of words: %d"
+msgstr "Gesamte Anzahl von Wörtern: %d"
+
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "Schreibe Datei %s für Vorschläge ..."
+
+#, c-format
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "Geschätzter 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 unterstützt"
+
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: Ungültige Region in %s"
+
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "Achtung: Sowohl zusammengesetzte Wörter als auch NOBREAK angegeben"
+
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "Schreibe Rechtschreibwörterbuch %s ..."
+
+msgid "Done!"
+msgstr "Fertig!"
+
+#, c-format
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' hat nicht %ld Einträge"
+
+#, c-format
+msgid "Word removed from %s"
+msgstr "Wort entfernt von %s"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "Wort zu %s hinzugefügt"
+
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: 'Word Characters' unterscheiden sich zwischen Rechtschreibwörterbüchern"
+
+msgid "Sorry, no suggestions"
+msgstr "Leider keine Vorschläge"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "Leider nur %ld Vorschläge"
+
+#. 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 für 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: Unzulässiges 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 für diesen Puffer"
+msgstr "Keine Syntax-Elemente für 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-Umbrüche"
+msgstr " Zeilenumbrüche"
 
 msgid "E393: group[t]here not accepted here"
 msgstr "E393: \"group[t]here\" ist an dieser Stelle ungültig"
@@ -4384,6 +4997,10 @@ msgstr "E396: \"containedin\"-Argument ist an dieser Stelle ung
 msgid "E397: Filename required"
 msgstr "E397: Dateiname wird benötigt"
 
+#, 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: %s"
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: Ungültiger :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, Unterstreichungs Link ignoriert"
 
 #, 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 Gleichheitszeichen: %s"
 
 #, 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: Unzul
 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 ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: Nicht druckbare Zeichen im Namen der Gruppe"
 
-#. 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: Ungültiger Befehls-Name"
+msgid "W18: Invalid character in group name"
+msgstr "W18: Ungültiges Zeichen im Namen der Gruppe"
 
-#, fuzzy
-#~ msgid "E555: at bottom of tag stack"
-#~ msgstr "am Anfang der Tag-Liste"
+msgid "E555: at bottom of tag stack"
+msgstr "E555: Am Ende des Tag-Stacks"
 
-#, fuzzy
-#~ msgid "E556: at top of tag stack"
-#~ msgstr "am Ende der Tag-Liste"
+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 "Gewünschte 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 \"%s\""
 
 #, 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 guessing!"
 msgstr "E435: Tag konnte nicht gefunden werden, das ist nur eine Vermutung!"
 
 msgid "' not known. Available builtin terminals are:"
-msgstr ""
-"' nicht bekannt. Zur Verfügung stehen die folgenden eingebauten Terminals:"
+msgstr "' nicht bekannt. Zur Verfügung stehen die folgenden eingebauten Terminals:"
 
 msgid "defaulting to '"
 msgstr "Voreinstellung '"
 
-#, fuzzy
-#~ msgid "E557: Cannot open termcap file"
-#~ msgstr "termpcap-Datei kann nicht geöffnet werden"
+msgid "E557: Cannot open termcap file"
+msgstr "E557: Termcap-Datei kann nicht geöffnet werden"
 
-#, fuzzy
-#~ msgid "E558: Terminal entry not found in terminfo"
-#~ msgstr "Terminal-Eintrag konnte in der terminfo-Datei nicht gefunden werden"
+msgid "E558: Terminal entry not found in terminfo"
+msgstr "E558: Terminal-Eintrag konte in der Terminfo-Datenbank nicht gefunden werden"
 
-#, fuzzy
-#~ msgid "E559: Terminal entry not found in termcap"
-#~ msgstr "Terminal-Eintrag konnte in der termcap-Datei 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 "Rückgängigmachung nicht möglich; setze trotz dem fort"
 
+msgid "Already at oldest change"
+msgstr "Bereits bei der ältesten Änderung"
+
+msgid "Already at newest change"
+msgstr "Bereits bei der jüngsten Änderung"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "Nummer %ld zur Rückgängigmachung nicht gefunden"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: Zeilennummer falsch"
 
-msgid "1 change"
-msgstr "1 Änderung"
+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 changes"
-msgstr "%ld Änderungen"
+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: Rückgangbarkeitsliste kaputt"
+msgstr "E439: Liste der Rückgängigmachungen fehlerhaft"
 
 msgid "E440: undo line missing"
-msgstr "E440: Rückgangbarkeitsliste fehlt"
+msgstr "E440: Rückgängigmachungszeile 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>        für Informationen darüber "
+msgstr "Tippe  :help iccf<Enter>        für Informationen darüber "
 
 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>  für Online Hilfe          "
+msgstr "Tippe  :help<Enter>  oder <F1>  für Online Hilfe          "
 
-msgid "type  :help version6<Enter>   for version info"
-msgstr "tippe  :help version6<Enter>    für Versions-Informationen"
+msgid "type  :help version7<Enter>   for version info"
+msgstr "Tippe  :help version7<Enter>    für 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>         für Vim-Voreinstellungen  "
+msgstr "Tippe  :set nocp<Enter>         für Vim-Voreinstellungen  "
 
 msgid "type  :help cp-default<Enter> for info on this"
-msgstr "tippe  :help cp-default<Enter>  für Informationen darüber "
+msgstr "Tippe  :help cp-default<Enter>  für Informationen darüber "
 
 msgid "menu  Help->Orphans           for information    "
-msgstr "Menü  Hilfe->Waisen           für Informationen darüber    "
+msgstr "Menü   Hilfe->Waisen            für Informationen darüber "
 
 msgid "Running modeless, typed text is inserted"
 msgstr "Mode-freier Betrieb, getippter Text wird eingefügt"
 
 msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
-msgstr ""
-"Menü  Editieren->Globale Einstellung->Einfüge-Modus ein- und ausschalten  "
+msgstr "Menü  Editieren->Globale Einstellung->Einfüge-Modus ein- und ausschalten  "
 
 msgid "                              for two modes      "
 msgstr "                              für zwei Modi       "
 
 msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
-msgstr ""
-"Menü  Editieren->Globale Einstellung->Vi-Kompatibilität ein- und ausschalten"
+msgstr "Menü  Editieren->Globale Einstellung->Vi-Kompatibilität ein- und ausschalten"
 
 msgid "                              for Vim defaults   "
 msgstr "                              für Vim Voreinstellungen   "
 
-#~ msgid "Sponsor Vim development!"
-#~ msgstr ""
+msgid "Sponsor Vim development!"
+msgstr "Unterstützen Sie die Entwicklung von Vim"
 
-#~ msgid "Become a registered Vim user!"
-#~ msgstr ""
+msgid "Become a registered Vim user!"
+msgstr "Werden Sie ein registrierter Benutzer von Vim!"
 
-#, fuzzy
-#~ msgid "type  :help sponsor<Enter>    for information "
-#~ msgstr "tippe  :help iccf<Enter>        für Informationen darüber "
+msgid "type  :help sponsor<Enter>    for information "
+msgstr "Tippe  :help sponsor<Enter>     für mehr Informationen    "
 
-#, fuzzy
-#~ msgid "type  :help register<Enter>   for information "
-#~ msgstr "tippe  :help iccf<Enter>        für Informationen darüber "
+msgid "type  :help register<Enter>   for information "
+msgstr "Tippe  :help register<Enter>    für mehr Informationen    "
 
-#, fuzzy
-#~ msgid "menu  Help->Sponsor/Register  for information    "
-#~ msgstr "Menü  Hilfe->Waisen           für Informationen darüber    "
+msgid "menu  Help->Sponsor/Register  for information    "
+msgstr "Menü   Hilfe->Sponsor/Register  für 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>   für Informationen darüber "
+msgstr "Tippe  :help windows95<Enter>   für Informationen darüber "
 
 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 nicht gefunden werden"
 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 verfügbar, 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"
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr "Dieser Befehl ist nicht verfügbar, da die Perl-Bibliothek nicht geladen werden konnte"
 
-#, 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 ausgewählten 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-Länge zu lang!"
+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"
+msgid "E470: Command aborted"
+msgstr "E470: Befehl abgebrochen"
 
-#, fuzzy
-#~ msgid "E471: Argument required"
-#~ msgstr "Argument wird benötigt"
+msgid "E471: Argument required"
+msgstr "E471: Argument benötigt"
 
 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: Ungültig im Kommando-Zeilen Fenster; <CR> führt aus, CTRL-C beendet"
+msgstr "E11: Ungültig im Kommando-Zeilen Fenster; <CR> führt aus, CTRL-C beendet"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
-msgstr ""
-"E12: Befehl nicht zulässig vom exrc/vimrc in der momentanen Verzeichnis- "
-"oder Tag-Suche"
+msgstr "E12: Befehl nicht zulässig vom exrc/vimrc in der momentanen Verzeichnis- oder Tag-Suche"
 
 msgid "E171: Missing :endif"
-msgstr "E171: fehlendes :endif"
+msgstr "E171: Fehlendes :endif"
 
-#, fuzzy
-#~ msgid "E600: Missing :endtry"
-#~ 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: Ungültige Adresse"
 
-#, fuzzy
-#~ msgid "E474: Invalid argument"
-#~ msgstr "Ungültiges Argument"
+msgid "E474: Invalid argument"
+msgstr "E474: Ungültiges Argument"
 
-#, fuzzy, c-format
-#~ msgid "E475: Invalid argument: %s"
-#~ msgstr "Ungültiges Argument: %s"
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Ungültiges Argument: %s"
 
 #, c-format
 msgid "E15: Invalid expression: %s"
@@ -5113,17 +5708,13 @@ msgstr "E15: ung
 msgid "E16: Invalid range"
 msgstr "E16: Ungültiger Bereich"
 
-#, fuzzy
-#~ msgid "E476: Invalid command"
-#~ msgstr "Ungültiger Befehls-Name"
+msgid "E476: Invalid command"
+msgstr "E476: Ungültiger 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 für \"%s()\" schlug fehl"
@@ -5150,30 +5741,20 @@ msgstr "E23: Keine alternative Datei"
 msgid "E24: No such abbreviation"
 msgstr "E24: Keine Abkürzung 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: Hebräisch kann nicht benutzt werden: wurde zum Zeitpunkt des "
-"Übersetzens nicht eingeschaltet.\n"
+msgstr "E26: Hebräisch 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"
+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"
+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 Befehlszeile"
 msgid "E31: No such mapping"
 msgstr "E31: Keine Zuordnung gefunden"
 
-#, fuzzy
-#~ msgid "E479: No match"
-#~ msgstr "Kein Treffer"
+msgid "E479: No match"
+msgstr "E479: Kein Treffer"
 
-#, fuzzy, c-format
-#~ msgid "E480: No match: %s"
-#~ msgstr "Kein Treffer für: %s"
+#, 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 regulärer Ausdruck"
 
-#, fuzzy
-#~ msgid "E481: No range allowed"
-#~ msgstr "Bereich unzulässig"
+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"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Kann Datei %s nicht erzeugen"
 
-#, fuzzy
-#~ msgid "E483: Can't get temp file name"
-#~ msgstr "temp-Datei kann nicht erzeugt werden"
+msgid "E483: Can't get temp file name"
+msgstr "E483: Kann den Namen der temporären Datei nicht ermitteln"
 
-#, fuzzy, c-format
-#~ msgid "E484: Can't open file %s"
-#~ msgstr "E456: Datei \"%s\" kann nicht geöffnet werden"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Kann die Datei %s nicht öffnen"
 
-#, fuzzy, c-format
-#~ msgid "E485: Can't read file %s"
-#~ msgstr "Datei %s kann nicht gelesen werden"
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Kann Datei %s nicht lesen"
 
-#, fuzzy
-#~ msgid "E37: No write since last change (add ! to override)"
-#~ msgstr ""
-#~ "E37: seit der letzten Änderung wurde nicht geschrieben (erzwinge mit !)"
+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 ersch
 msgid "Pattern not found"
 msgstr "Muster nicht gefunden"
 
-#, fuzzy, c-format
-#~ msgid "E486: Pattern not found: %s"
-#~ msgstr "Muster nicht gefunden: %s"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Muster nicht gefunden: %s"
 
-#, fuzzy
-#~ msgid "E487: Argument must be positive"
-#~ msgstr "Argument muss positiv sein"
+msgid "E487: Argument must be positive"
+msgstr "E487: Argument muss positiv sein"
 
-#, fuzzy
-#~ msgid "E459: Cannot go back to previous directory"
-#~ msgstr "E186: Kein vorheriges Verzeichnis"
+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: Beschädigter 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 w
 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 unterstützt"
@@ -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"
+msgstr "E77: Zu viele Dateinamen"
 
-#, fuzzy
-#~ msgid "E488: Trailing characters"
-#~ msgstr "Überschüssige Zeichen"
+msgid "E488: Trailing characters"
+msgstr "E488: Überschüssige Zeichen"
 
 msgid "E78: Unknown mark"
 msgstr "E78: Unbekannte Mark"
 
 msgid "E79: Cannot expand wildcards"
-msgstr "E79: Kann \"wildcards\" nicht erweitern"
+msgstr "E79: Kann die Platzhalter nicht erweitern"
 
-#, fuzzy
-#~ msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-#~ msgstr "'winheight' kann nicht kleiner sein als 'winminheight'"
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' darf nicht kleiner sein als 'winminheight'"
 
-#, fuzzy
-#~ msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-#~ msgstr "'winwidth' kann nicht kleiner sein als 'winminwidth'"
+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 während des Schreibens"
@@ -5357,53 +5928,66 @@ msgid "E81: Using <SID> not in a script context"
 msgstr "E81: <SID> wurde nicht in einer Skript-Umgebung benutzt"
 
 msgid "E449: Invalid expression received"
-msgstr "E449: ungültiger Ausdruck"
+msgstr "E449: Ungültiger Ausdruck"
 
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr ""
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Region ist geschützt; keine Änderung möglich"
 
-#~ msgid "function "
-#~ msgstr "Funktion "
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans erlaubt keine Änderungen in schreibgeschützten Dateien"
 
-#~ msgid "error reading cscope connection %d"
-#~ msgstr "Fehler beim Lesen aus der cscope Verbindung %d"
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Interner Fehler: %s"
 
-#~ msgid "E260: cscope connection not found"
-#~ msgstr "E260: keine cscope Verbindung gefunden"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: Muster benötigt mehr Speicher als 'maxmempattern'"
 
-#~ msgid "cscope connection closed"
-#~ msgstr "cscope Verbindung geschlossen"
+msgid "E749: empty buffer"
+msgstr "E749: Leerer Puffer"
 
-#~ msgid "couldn't malloc\n"
-#~ msgstr "Fehler beim allozieren\n"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Ungültiges Suchmuster oder Trennzeichen"
 
-#~ msgid "%2d %-5ld  %-34s  <none>\n"
-#~ msgstr "%2d %-5ld  %-34s  <keine>\n"
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Datei ist in einem anderen Puffer geladen"
 
-#~ msgid "E249: couldn't read VIM instance registry property"
-#~ msgstr ""
-#~ "E249: Registry-Eigenschaft der VIM Instanz konnte nicht gelesen werden"
+#, 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 "\"\n"
-#~ msgstr "\"\n"
+msgid "Edit with single &Vim"
+msgstr "Editiere mit einem &Vim"
+
+msgid "Diff with Vim"
+msgstr "Differenz mit Vim"
 
-#~ msgid "--help\t\tShow Gnome arguments"
-#~ msgstr "--help\t\tZeige Gnome-Argumente"
+msgid "Edit with &Vim"
+msgstr "Editiere mit &Vim"
 
-#~ msgid "E448: Unknown font: %s"
-#~ msgstr "E448: Unbekannte Schriftart: %s"
+msgid "Edit with existing Vim - "
+msgstr "Editiere mit vorhandenem Vim - "
 
-#~ msgid " BLOCK"
-#~ msgstr "ER BLOCK"
+msgid "Press ENTER or type command to continue"
+msgstr "Betätigen Sie die EINGABETASTE oder geben Sie einen Befehl ein"
 
-#~ msgid " LINE"
-#~ msgstr "E ZEILE"
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Fehler beim Erzeugen des Prozesses: Überprüfen Sie, ob gvim in Ihrem Pfad ist!"
 
-#~ msgid "Linear tag search"
-#~ msgstr "Lineare Tag-Suche"
+msgid "gvimext.dll error"
+msgstr "gvimext.dll Fehler"
 
-#~ msgid "Binary tag search"
-#~ msgstr "Binäre Tag-Suche"
+msgid "Path length too long!"
+msgstr "Die Länge des Pfads ist zu groß!"
 
-#~ msgid "Can't open file %s"
-#~ msgstr "Datei %s kann nicht geöffnet werden"
+msgid "Edits the selected file(s) with Vim"
+msgstr "Editiert die ausgewählte(n) Datei(en) mit Vim"
diff --git a/src/po/it.po b/src/po/it.po
index baac33036af1637bf4c06232fa3dd4a5d7b70795..2299c3a200d13db0d19a1dd01454d536b5383e6c 100644
--- 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'utente (^U^N^P)"
 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 nidificata per la visualizzazione"
 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: \"-%s\"; Usa la versione OLE."
 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 2"
 
 #, 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 current 'foldmethod'"
 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 %d: %s"
 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"
@@ -4725,6 +4740,10 @@ msgstr "Valore errato per COMPOUNDMIN in %s linea %d: %s"
 msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %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 ""
@@ -4750,6 +4769,10 @@ msgstr "Y o N deve essere presente in %s linea %d: %s"
 msgid "Broken condition in %s line %d: %s"
 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, esco...\n"
 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"
+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 changes"
-msgstr "%ld modifiche"
+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"
diff --git a/src/po/pl.UTF-8.po b/src/po/pl.UTF-8.po
new file mode 100644
index 0000000000000000000000000000000000000000..6b881e495d7f3ce1b5d15b56b31ef0a2a82b063d
--- /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"
+
diff --git a/src/po/pl.cp1250.po b/src/po/pl.cp1250.po
index aa4566248a51d78a79344981148722630a7ab00a..a0e5bf256df405eb7cb72d1adcf601e41771e729 100644
--- 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; zakoñczenie..."
@@ -134,8 +134,8 @@ msgstr "[Bez nazwy]"
 msgid "help"
 msgstr "pomoc"
 
-msgid "[help]"
-msgstr "[pomoc]"
+msgid "[Help]"
+msgstr "[Pomoc]"
 
 msgid "[Preview]"
 msgstr "[Podgl¹d]"
@@ -157,8 +157,11 @@ msgstr ""
 "\n"
 "# Lista buforów:\n"
 
-msgid "[Error List]"
-msgstr "[Lista B³êdów]"
+msgid "[Location List]"
+msgstr "[Lista lokacji]"
+
+msgid "[Quickfix List]"
+msgstr "[Lista quickfix]"
 
 msgid ""
 "\n"
@@ -490,6 +493,9 @@ msgstr "E724: Zmienna zagnie
 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
@@ -771,6 +777,21 @@ msgstr "wiersz %ld: wczytywanie \"%s\""
 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"
 
@@ -1158,9 +1179,19 @@ msgstr "E185: Nie mog
 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"
 
@@ -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 du¿y plik]"
 
@@ -1456,8 +1490,9 @@ msgstr "[przemienione]"
 msgid "[crypted]"
 msgstr "[zakodowane]"
 
-msgid "[CONVERSION ERROR]"
-msgstr "[B£¥D W PRZEMIANIE]"
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[B£¥D W PRZEMIANIE w linii %ld]"
 
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
@@ -1909,6 +1944,15 @@ msgstr "Zamie
 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"
 
@@ -1980,6 +2024,12 @@ msgstr "E243: Argument nie jest wspomagany: \"-%s\"; U
 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 '\\')"
 
@@ -2699,7 +2749,9 @@ msgstr ""
 "   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¹"
+msgstr ""
+"gdzie wielkoœæ znaków jest ignorowana dodaj na pocz¹tku / by flaga by³a "
+"wielk¹ liter¹"
 
 msgid ""
 "\n"
@@ -2812,6 +2864,9 @@ msgstr "-U <gvimrc>\t\tU
 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)"
 
@@ -2865,6 +2920,9 @@ msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edyc
 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"
 
@@ -2984,25 +3042,6 @@ msgstr "--role <role>\tUstaw unikatow
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tOtwórz Vim wewn¹trz 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 kolorów"
-
-msgid "-tip\t\t\tDisplay the tip dialog on startup"
-msgstr "-tip\t\t\tPoka¿ okno wskazówek na pocz¹tku"
-
-msgid "-notip\t\tDisable the tip dialog"
-msgstr "-notip\t\tWy³¹cz okno wskazówek"
-
-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>\tOtwórz Vima wewn¹trz rodzicielskiej aplikacji"
 
@@ -3423,6 +3462,10 @@ msgstr "Wielko
 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"
 
@@ -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 ""
 "&Otwórz Read-Only\n"
 "&Edytuj pomimo\n"
 "O&dtwórz\n"
+"&Usuñ\n"
 "&Zakoñcz\n"
-"&Porzuæ\n"
-"&Skasuj go"
+"&Porzuæ"
 
 msgid "E326: Too many swap files found"
 msgstr "E326: Znaleziono zbyt wiele plików wymiany"
@@ -3787,6 +3830,12 @@ msgstr "E658: Bufor %ld utraci
 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"
 
@@ -4134,6 +4183,9 @@ msgstr "B
 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"
 
@@ -4182,14 +4234,6 @@ msgstr "Vim: Za
 msgid "Opening the X display took %ld msec"
 msgstr "Otwieranie ekranu X trwa³o %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: Dosta³em b³¹d X ale kontynuujê...\n"
-
 msgid ""
 "\n"
 "Vim: Got X error\n"
@@ -4374,6 +4418,9 @@ msgstr "Nie mog
 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%%[]"
@@ -4557,6 +4604,10 @@ msgstr "  NIE ZNALEZIONO"
 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"
 
@@ -4647,12 +4698,8 @@ msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG po u¿yciu flag w %s wiersz %d: %s"
 
 #, c-format
-msgid "Character used for SLASH must be ASCII; in %s line %d: %s"
-msgstr "Znak u¿yty jako SLASH musi byæ znakiem ASCII; w %s wiersz %d: %s"
-
-#, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "Z³a wartoœæ COMPOUNDMAX w %s wiersz %d: %s"
+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"
@@ -4662,6 +4709,10 @@ msgstr "Z
 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"
@@ -4671,8 +4722,10 @@ 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/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %s"
-msgstr "Afiks u¿yty tak¿e 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 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"
@@ -4683,8 +4736,12 @@ msgid "Broken condition in %s line %d: %s"
 msgstr "B³êdny warunek w %s wiersz %d: %s"
 
 #, c-format
-msgid "Expected REP count in %s line %d"
-msgstr "Oczekiwano iloœci REP w %s wierszu %d"
+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"
@@ -4802,8 +4859,34 @@ 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%% remaining"
-msgstr "Skompresowano %d z %d wêz³ów; pozostaje %d%%"
+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"
@@ -4825,14 +4908,18 @@ msgstr "Zapisuj
 msgid "Done!"
 msgstr "Zrobione!"
 
-#, c-format
-msgid "Estimated runtime memory use: %d bytes"
-msgstr "Oczekiwane zu¿ycie pamiêci: %d bajtów"
-
 #, 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"
 
@@ -4859,10 +4946,30 @@ msgstr "E752: Brak poprzednich podmian sprawdzania pisowni"
 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 "E999: duplicate char in MAP entry"
-msgstr "E999: powtórzony 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: B
 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 "1 change"
+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 changes"
-msgstr "%ld zmian"
+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"
@@ -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 w³¹czone (+) lub nie (-):\n"
 
@@ -5782,6 +5923,9 @@ msgstr "E459: Nie mo
 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"
 
diff --git a/src/po/pl.po b/src/po/pl.po
index ddb6c79b82ff377575f1c653b0001efe54a9fd84..13d960b5a646ffe009c8cf4da3ad0d5245797292 100644
--- 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; zakoñczenie..."
@@ -134,8 +134,8 @@ msgstr "[Bez nazwy]"
 msgid "help"
 msgstr "pomoc"
 
-msgid "[help]"
-msgstr "[pomoc]"
+msgid "[Help]"
+msgstr "[Pomoc]"
 
 msgid "[Preview]"
 msgstr "[Podgl±d]"
@@ -157,8 +157,11 @@ msgstr ""
 "\n"
 "# Lista buforów:\n"
 
-msgid "[Error List]"
-msgstr "[Lista B³êdów]"
+msgid "[Location List]"
+msgstr "[Lista lokacji]"
+
+msgid "[Quickfix List]"
+msgstr "[Lista quickfix]"
 
 msgid ""
 "\n"
@@ -490,6 +493,9 @@ msgstr "E724: Zmienna zagnie
 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
@@ -771,6 +777,21 @@ msgstr "wiersz %ld: wczytywanie \"%s\""
 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"
 
@@ -1158,9 +1179,19 @@ msgstr "E185: Nie mog
 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"
 
@@ -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 du¿y plik]"
 
@@ -1456,8 +1490,9 @@ msgstr "[przemienione]"
 msgid "[crypted]"
 msgstr "[zakodowane]"
 
-msgid "[CONVERSION ERROR]"
-msgstr "[B£¡D W PRZEMIANIE]"
+#, c-format
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[B£¡D W PRZEMIANIE w linii %ld]"
 
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
@@ -1909,6 +1944,15 @@ msgstr "Zamie
 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"
 
@@ -1980,6 +2024,12 @@ msgstr "E243: Argument nie jest wspomagany: \"-%s\"; U
 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 '\\')"
 
@@ -2699,7 +2749,9 @@ msgstr ""
 "   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±"
+msgstr ""
+"gdzie wielko¶æ znaków jest ignorowana dodaj na pocz±tku / by flaga by³a "
+"wielk± liter±"
 
 msgid ""
 "\n"
@@ -2812,6 +2864,9 @@ msgstr "-U <gvimrc>\t\tU
 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)"
 
@@ -2865,6 +2920,9 @@ msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edyc
 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"
 
@@ -2984,25 +3042,6 @@ msgstr "--role <role>\tUstaw unikatow
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tOtwórz Vim wewn±trz 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 kolorów"
-
-msgid "-tip\t\t\tDisplay the tip dialog on startup"
-msgstr "-tip\t\t\tPoka¿ okno wskazówek na pocz±tku"
-
-msgid "-notip\t\tDisable the tip dialog"
-msgstr "-notip\t\tWy³±cz okno wskazówek"
-
-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>\tOtwórz Vima wewn±trz rodzicielskiej aplikacji"
 
@@ -3423,6 +3462,10 @@ msgstr "Wielko
 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"
 
@@ -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 ""
 "&Otwórz Read-Only\n"
 "&Edytuj pomimo\n"
 "O&dtwórz\n"
+"&Usuñ\n"
 "&Zakoñcz\n"
-"&Porzuæ\n"
-"&Skasuj go"
+"&Porzuæ"
 
 msgid "E326: Too many swap files found"
 msgstr "E326: Znaleziono zbyt wiele plików wymiany"
@@ -3787,6 +3830,12 @@ msgstr "E658: Bufor %ld utraci
 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"
 
@@ -4134,6 +4183,9 @@ msgstr "B
 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"
 
@@ -4182,14 +4234,6 @@ msgstr "Vim: Za
 msgid "Opening the X display took %ld msec"
 msgstr "Otwieranie ekranu X trwa³o %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: Dosta³em b³±d X ale kontynuujê...\n"
-
 msgid ""
 "\n"
 "Vim: Got X error\n"
@@ -4374,6 +4418,9 @@ msgstr "Nie mog
 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%%[]"
@@ -4557,6 +4604,10 @@ msgstr "  NIE ZNALEZIONO"
 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"
 
@@ -4647,12 +4698,8 @@ msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG po u¿yciu flag w %s wiersz %d: %s"
 
 #, c-format
-msgid "Character used for SLASH must be ASCII; in %s line %d: %s"
-msgstr "Znak u¿yty jako SLASH musi byæ znakiem ASCII; w %s wiersz %d: %s"
-
-#, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "Z³a warto¶æ COMPOUNDMAX w %s wiersz %d: %s"
+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"
@@ -4662,6 +4709,10 @@ msgstr "Z
 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"
@@ -4671,8 +4722,10 @@ 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/RAR/KEP/NEEDAFFIX/NEEDCOMPOUND in %s line %d: %s"
-msgstr "Afiks u¿yty tak¿e 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 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"
@@ -4683,8 +4736,12 @@ msgid "Broken condition in %s line %d: %s"
 msgstr "B³êdny warunek w %s wiersz %d: %s"
 
 #, c-format
-msgid "Expected REP count in %s line %d"
-msgstr "Oczekiwano ilo¶ci REP w %s wierszu %d"
+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"
@@ -4802,8 +4859,34 @@ 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%% remaining"
-msgstr "Skompresowano %d z %d wêz³ów; pozostaje %d%%"
+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"
@@ -4825,14 +4908,18 @@ msgstr "Zapisuj
 msgid "Done!"
 msgstr "Zrobione!"
 
-#, c-format
-msgid "Estimated runtime memory use: %d bytes"
-msgstr "Oczekiwane zu¿ycie pamiêci: %d bajtów"
-
 #, 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"
 
@@ -4859,10 +4946,30 @@ msgstr "E752: Brak poprzednich podmian sprawdzania pisowni"
 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 "E999: duplicate char in MAP entry"
-msgstr "E999: powtórzony 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: B
 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 "1 change"
+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 changes"
-msgstr "%ld zmian"
+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"
@@ -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 w³±czone (+) lub nie (-):\n"
 
@@ -5782,6 +5923,9 @@ msgstr "E459: Nie mo
 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"
 
diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro
index ba18f381a793d99a7258608b8d8f5698d3330a2a..9ccb42fce6af8c7a536043971298f07a82ab9b8d 100644
--- 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 : */
diff --git a/src/proto/gui_motif.pro b/src/proto/gui_motif.pro
index c1b194612eee0f2c6fdcb70d2dafd2e8bf0e2ca2..3e08ec9dbd8bcc0ebf745dd988eb48f0067ecd82 100644
--- 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 : */
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index 49fc4b0006c9650cec2152a5afcffb47d3d46c25..e9bc32c559116368368aaaf2cf88905be8a8cdde 100644
--- 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 : */
diff --git a/src/proto/option.pro b/src/proto/option.pro
index 621d78121d78fe4178a5c62bf7bbcd009d36732e..bb50ef14af9bdff420fc531b7a041a51763097ff 100644
--- 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 : */
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index 22e0380af9b938b5475ec1ba277bb4a61a7c2e13..d2f5d089aff42b067ef35255b966bb9a46e427b9 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -48,7 +48,7 @@ extern int mch_copy_file_attribute __ARGS((char_u *from, char_u *to));
 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 : */
diff --git a/src/proto/syntax.pro b/src/proto/syntax.pro
index 3157108546b6c05a510e11b85b9063e7fcd06a8d..c33a890d272d8dc40a6188a50cb86716ec593dba 100644
--- 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 : */
diff --git a/src/screen.c b/src/screen.c
index 01134a4dac6426b9353deafedeffb227ce067e1e..52a6f743aa6e0287ce5bf25f29b4cb3c6fedb568 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3324,7 +3324,8 @@ win_line(wp, lnum, startrow, endrow, nochange)
 	}
 
 	/* 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, nochange)
 	{
 	    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, nochange)
 		{
 		    mb_utf8 = TRUE;
 		    u8cc[0] = 0;
+		    c = 0xc0;
 		}
 		else
 		    mb_utf8 = FALSE;
@@ -3509,6 +3517,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
 			{
 			    mb_c = utfc_ptr2char(p_extra, u8cc);
 			    mb_utf8 = TRUE;
+			    c = 0xc0;
 			}
 		    }
 		    else
@@ -3744,7 +3753,11 @@ win_line(wp, lnum, startrow, endrow, nochange)
 	    ++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, nochange)
 		{
 		    mb_utf8 = TRUE;
 		    u8cc[0] = 0;
+		    c = 0xc0;
 		}
 		else
 		    mb_utf8 = FALSE;
@@ -3906,7 +3920,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
 		 * 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, nochange)
 		    {
 			mb_utf8 = TRUE;
 			u8cc[0] = 0;
+			c = 0xc0;
 		    }
 		    else
 			mb_utf8 = FALSE;
@@ -3944,7 +3959,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
 	    /*
 	     * 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, nochange)
 			{
 			    mb_utf8 = TRUE;
 			    u8cc[0] = 0;
+			    c = 0xc0;
 			}
 #endif
 		    }
@@ -4046,6 +4062,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
 		    {
 			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, nochange)
 	    {
 		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, nochange)
 		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, nochange)
 	    {
 		mb_utf8 = TRUE;
 		u8cc[0] = 0;
+		c = 0xc0;
 	    }
 	    else
 		mb_utf8 = FALSE;
@@ -4399,6 +4419,8 @@ win_line(wp, lnum, startrow, endrow, nochange)
 		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_width
 #endif
 	    ScreenAttrs[off_to] = ScreenAttrs[off_from];
 #ifdef FEAT_MBYTE
-	    if (enc_dbcs != 0 && char_cells == 2)
-	    {
-		/* just a hack: It makes two bytes of DBCS have same attr */
+	    /* 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)
 		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
diff --git a/src/search.c b/src/search.c
index 41f38a3d113750fad56f114923f3bb16f30faeda..a063a26beb56b0559ef3e156c84fa6b5da92d7a8 100644
--- a/src/search.c
+++ b/src/search.c
@@ -809,6 +809,13 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum)
 		    {
 			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
 		    {
diff --git a/src/spell.c b/src/spell.c
index 98507775313c5856e12e0782d2c69375e184b6b2..a11372ab3d67419c3823e6651554a4b47f77f8fb 100644
--- 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, affile, ht, xht, comb, flags,
 			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, affile, ht, xht, comb, flags,
 				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
diff --git a/src/structs.h b/src/structs.h
index 2a9882b156577f30cf0f935d69e519351c3d03d4..ce3bf9b1fea2cea42d8b17cf28bbb19cc6da6e82 100644
--- 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
 
     /*
diff --git a/src/syntax.c b/src/syntax.c
index 8230520cbc2479737344ebc5335ac3f53930852d..268682821a640c9e6ab252cf1f496aa9c53fb6b3 100644
--- 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
 
 /*
diff --git a/src/testdir/test58.in b/src/testdir/test58.in
index 0cd84ee3628cc7373ea1ea0dcc1e332a263cafef..467c7b5573685b558004959ab362979168fadadb 100644
--- 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 @@ end/e
 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
 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 @@ PFX zz 0 pre .
 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
 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
diff --git a/src/testdir/test58.ok b/src/testdir/test58.ok
index 7419cde28f0a6896b91627a7fff9c102ccec40e8..ce05c733220b00796de14e4d5dfbd8309111c55e 100644
--- 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
diff --git a/src/testdir/test59.in b/src/testdir/test59.in
index cf9cb49380077b0af9650bb9e0b3d9171d353a44..bd63796835e1a7e7e23d13fb887cdb8d428cf9dd 100644
--- 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 @@ end/e
 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
 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 @@ PFX zz 0 pre .
 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
 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
diff --git a/src/testdir/test59.ok b/src/testdir/test59.ok
index 29c9696e8df82582b5a656e0169dd7153149f148..931cdd96544bb1958c50d0aef8a3470a02738519 100644
--- 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
diff --git a/src/version.h b/src/version.h
index 5d450bbd1c78ddd7f12f8fb54eeccf4f90a0ce93..7cd5ea497c340f90db40be82ab25d0b0b3977c53 100644
--- 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 "
diff --git a/src/vim.h b/src/vim.h
index 015fa03e63fd117508c1e35bc2d3cdb4b9a0ef81..37762bea090847f84eddf308a8768d7670fba83e 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1987,5 +1987,9 @@ typedef int proftime_T;	    /* dummy for function prototypes */
 #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 */
diff --git a/src/window.c b/src/window.c
index 6a12de19f531220f9ab9014fa735398436e0a8f8..677dcbec097109cdf086f45b9a0c77b3d612c4b4 100644
--- 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)
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index f57d78634d3e5f89668f183ffefa62f25714e941..42bcdaad70c69750bea8821bfe94aae641f10f7a 100644
--- 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;