changeset 809:4f1b94b51e99 v7.0b02

updated for version 7.0b02
author vimboss
date Sun, 26 Mar 2006 21:06:50 +0000
parents 111e109dad13
children 9f345c48220b
files Filelist runtime/colors/koehler.vim runtime/doc/eval.txt runtime/doc/evim-pl.1 runtime/doc/evim-pl.UTF-8.1 runtime/doc/if_ruby.txt runtime/doc/options.txt runtime/doc/spell.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version7.txt runtime/doc/vim-pl.1 runtime/doc/vim-pl.UTF-8.1 runtime/doc/vimdiff-pl.1 runtime/doc/vimdiff-pl.UTF-8.1 runtime/doc/vimtutor-pl.1 runtime/doc/vimtutor-pl.UTF-8.1 runtime/doc/xxd-pl.1 runtime/doc/xxd-pl.UTF-8.1 runtime/filetype.vim runtime/indent/config.vim runtime/indent/python.vim runtime/makemenu.vim runtime/scripts.vim runtime/spell/hu/hu_HU.diff runtime/spell/hu/main.aap runtime/synmenu.vim runtime/syntax/fetchmail.vim runtime/syntax/mailaliases.vim runtime/syntax/rst.vim src/Makefile src/auto/configure src/buffer.c src/configure.in src/eval.c src/main.aap src/screen.c src/spell.c src/syntax.c src/testdir/test58.in src/testdir/test59.in src/version.h src/xxd/xxd.c
diffstat 43 files changed, 3136 insertions(+), 467 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -658,6 +658,8 @@ LANG_GEN = \
 		runtime/doc/*-fr.UTF-8.1 \
 		runtime/doc/*-it.1 \
 		runtime/doc/*-it.UTF-8.1 \
+		runtime/doc/*-pl.1 \
+		runtime/doc/*-pl.UTF-8.1 \
 		runtime/doc/*-ru.1 \
 		runtime/doc/*-ru.UTF-8.1 \
 		runtime/lang/README.txt \
--- a/runtime/colors/koehler.vim
+++ b/runtime/colors/koehler.vim
@@ -2,7 +2,7 @@
 " vim: tw=0 ts=4 sw=4
 " Vim color file
 " Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2003 May 02
+" Last Change:	2006 Mar 26
 
 hi clear
 set background=dark
@@ -37,6 +37,12 @@ hi PreProc		  term=underline  ctermfg=da
 hi Type			  term=underline  cterm=bold ctermfg=lightgreen  gui=bold  guifg=#60ff60
 hi Error		  term=reverse	ctermfg=darkcyan  ctermbg=black  guifg=Red	guibg=Black
 hi Todo			  term=standout  ctermfg=black	ctermbg=darkcyan  guifg=Blue  guibg=Yellow
+hi CursorLine	  term=underline  guibg=#555555
+hi CursorColumn	  term=underline  guibg=#555555
+hi MatchParen	  term=reverse  guibg=Blue
+hi TabLine		  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
+hi TabLineFill	  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
+hi TabLineSel	  term=reverse	ctermfg=white ctermbg=lightblue guifg=white guibg=blue
 hi link IncSearch		Visual
 hi link String			Constant
 hi link Character		Constant
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0b.  Last change: 2006 Mar 25
+*eval.txt*      For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2471,6 +2471,7 @@ finddir({name}[, {path}[, {count}]])				
 		If {path} is omitted or empty then 'path' is used.
 		If the optional {count} is given, find {count}'s occurrence of
 		{name} in {path} instead of the first one.
+		When {count} is negative return all the matches in a |List|.
 		This is quite similar to the ex-command |:find|.
 		{only available when compiled with the +file_in_path feature}
 
new file mode 100644
--- /dev/null
+++ b/runtime/doc/evim-pl.1
@@ -0,0 +1,53 @@
+.TH EVIM 1 "2002 Lut 16"
+.SH NAZWA
+evim \- łatwy Vim, edytuj plik w Vimie z ustawieniami dla edycji bez
+trybów
+.SH SYNOPSIS
+.br
+.B evim
+[opcje] [plik ...]
+.br
+.B eview
+.SH OPIS
+.B eVim
+uruchamia
+.B Vima
+i ustawia opcje tak by zachowywał się jak edytor bez trybów.
+To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
+Zachowanie w stlu Notepada dla MS-Windows.
+.B eVim
+będzie zawsze uruchomiony w GUI by wł±czyć menu i pasek narzędzi.
+.PP
+Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafi± pracować
+z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
+.PP
+.B eview
+działa tak samo, ale zaczyna w trybie tylko do odczytu. Działa tak
+samo jak evim \-R.
+.PP
+Zobacz vim(1) by poznać więcej szczegółów o Vimie, opcjach, itd.
+.PP
+Opcja 'insertmode' jest ustawiona by można było od razu wpisywać
+tekst.
+.br
+Mapowania s± ustawione tak by Kopiowanie i Wklejanie działało
+z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
+a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
+CTRL-V.
+.SH OPCJE
+Zobacz vim(1).
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/evim.vim
+Skrypt uruchamiania dla eVima.
+.SH ZNANY JAKO
+Znany jako "Vim dla frajerów".
+Je¶li używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
+zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
+.SH ZOBACZ TAKŻE
+vim(1)
+.SH AUTOR
+Większo¶ć 
+.B Vima
+została napisana przez Brama Moolenaara z duż± pomoc± innych osób.
+Zobacz menu Help/Credits.
new file mode 100644
--- /dev/null
+++ b/runtime/doc/evim-pl.UTF-8.1
@@ -0,0 +1,53 @@
+.TH EVIM 1 "2002 Lut 16"
+.SH NAZWA
+evim \- Ĺ‚atwy Vim, edytuj plik w Vimie z ustawieniami dla edycji bez
+trybĂłw
+.SH SYNOPSIS
+.br
+.B evim
+[opcje] [plik ...]
+.br
+.B eview
+.SH OPIS
+.B eVim
+uruchamia
+.B Vima
+i ustawia opcje tak by zachowywał się jak edytor bez trybów.
+To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
+Zachowanie w stlu Notepada dla MS-Windows.
+.B eVim
+będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
+.PP
+Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować
+z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
+.PP
+.B eview
+działa tak samo, ale zaczyna w trybie tylko do odczytu. Działa tak
+samo jak evim \-R.
+.PP
+Zobacz vim(1) by poznać więcej szczegółów o Vimie, opcjach, itd.
+.PP
+Opcja 'insertmode' jest ustawiona by można było od razu wpisywać
+tekst.
+.br
+Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
+z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
+a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
+CTRL-V.
+.SH OPCJE
+Zobacz vim(1).
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/evim.vim
+Skrypt uruchamiania dla eVima.
+.SH ZNANY JAKO
+Znany jako "Vim dla frajerĂłw".
+Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
+zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
+.SH ZOBACZ TAKŻE
+vim(1)
+.SH AUTOR
+Większość 
+.B Vima
+została napisana przez Brama Moolenaara z dużą pomocą innych osób.
+Zobacz menu Help/Credits.
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 7.0b.  Last change: 2006 Mar 06
+*if_ruby.txt*   For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
@@ -78,23 +78,26 @@ 2. The VIM module					*ruby-vim*
 Ruby code gets all of its access to vim via the "VIM" module.
 
 Overview >
-	print "Hello"			# displays a message
-	VIM.command(cmd)		# execute an ex command
-	num = VIM::Window.count		# gets the number of windows
-	w = VIM::Window[n]		# gets window "n"
-	cw = VIM::Window.current	# gets the current window
-	num = VIM::Buffer.count		# gets the number of buffers
-	b = VIM::Buffer[n]		# gets buffer "n"
-	cb = VIM::Buffer.current	# gets the current buffer
-	w.height = lines		# sets the window height
-	w.cursor = [row, col]		# sets the window cursor position
-	pos = w.cursor			# gets an array [row, col]
-	name = b.name			# gets the buffer file name
-	line = b[n]			# gets a line from the buffer
-	num = b.count			# gets the number of lines
-	b[n] = str			# sets a line in the buffer
-	b.delete(n)			# deletes a line
-	b.append(n, str)		# appends a line after n
+	print "Hello"			      # displays a message
+	VIM.command(cmd)		      # execute an ex command
+	num = VIM::Window.count		      # gets the number of windows
+	w = VIM::Window[n]		      # gets window "n"
+	cw = VIM::Window.current	      # gets the current window
+	num = VIM::Buffer.count		      # gets the number of buffers
+	b = VIM::Buffer[n]		      # gets buffer "n"
+	cb = VIM::Buffer.current	      # gets the current buffer
+	w.height = lines		      # sets the window height
+	w.cursor = [row, col]		      # sets the window cursor position
+	pos = w.cursor			      # gets an array [row, col]
+	name = b.name			      # gets the buffer file name
+	line = b[n]			      # gets a line from the buffer
+	num = b.count			      # gets the number of lines
+	b[n] = str			      # sets a line in the buffer
+	b.delete(n)			      # deletes a line
+	b.append(n, str)		      # appends a line after n
+	line = VIM::Buffer.current.line       # gets the current line
+	num = VIM::Buffer.current.line_number # gets the current line number
+	VIM::Buffer.current.line = "test"     # sets the current line number
 <
 
 Module Functions:
@@ -144,6 +147,11 @@ self[{n}] = {str}
 delete({n})	Deletes a line from the buffer. {n} is the line number.
 append({n}, {str})
 		Appends a line after the line {n}.
+line            Returns the current line of the buffer if the buffer is
+		active.
+line = {str}    Sets the current line of the buffer if the buffer is active.
+line_number     Returns the number of the current line if the buffer is
+		active.
 
 ==============================================================================
 4. VIM::Window objects					*ruby-window*
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0b.  Last change: 2006 Mar 25
+*options.txt*	For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -78,7 +78,7 @@ 1. Setting options					*set-option* *E76
 			If the option is a list of flags, superfluous flags
 			are removed.  When adding a flag that was already
 			present the option value doesn't change.
-<			Also see |:set-args| above.
+			Also see |:set-args| above.
 			{not in Vi}
 
 :se[t] {option}^={value}				*:set^=*
@@ -269,7 +269,13 @@ You will not get back the 'list' value a
 			shown (but that might change in the future).
 			{not in Vi}
 
-:setl[ocal] {option}<	Set the local value of {option} to its global value.
+:setl[ocal] {option}<	Set the local value of {option} to its global value by
+			copying the value.
+			{not in Vi}
+
+:se[t] {option}<	Set the local value of {option} to its global value by
+			making it empty.  Only makes sense for |global-local|
+			options.
 			{not in Vi}
 
 							*:setg* *:setglobal*
@@ -316,7 +322,11 @@ This only works for a string option.  Fo
 	:setlocal autoread<
 Note that for non-boolean options using "<" copies the global value to the
 local value, it doesn't switch back to using the global value (that matters
-when changing the global value later).
+when the global value changes later).  You can also use: >
+	:set path<
+This will make the local value of 'path' empty, so that the global value is
+used.  Thus it does the same as: >
+	:setlocal path=
 Note: In the future more global options can be made global-local.  Using
 ":setlocal" on a global option might work differently then.
 
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0b.  Last change: 2006 Mar 10
+*spell.txt*	For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -975,7 +975,7 @@ The first line is a header and has four 
 For PFX the fields are exactly the same.
 
 The basic format for the following lines is:
-	SFX {flag} {strip} {add} {condition}
+	SFX {flag} {strip} {add} {condition} {extra}
 
 {flag}		Must be the same as the {flag} used in the first line.
 
@@ -987,6 +987,8 @@ The basic format for the following lines
 		When {strip} is 0 (zero) then nothing is stripped.
 
 {add}		Characters added to the basic word, after removing {strip}.
+		Optionally there is a '/' followed by flags.  The flags apply
+		to the word plus affix.  See |spell-affix-flags|
 
 {condition}	A simplistic pattern.  Only when this matches with a basic
 		word will the suffix be used for that word.  This is normally
@@ -1002,6 +1004,13 @@ The basic format for the following lines
 		  complement of the specified characters. [^abc] matches any
 		  character but a, b and c.
 
+{extra}		Optional extra text:
+		    rare		word + affix is rare
+		    nocomp		no compounding for word + affix
+		    # comment		Comment is ignored
+		    -			Hunspell uses this, ignored
+		"rare" and "nocomp" are deprecated.
+
 For PFX the fields are the same, but the {strip}, {add} and {condition} apply
 to the start of the word.
 
@@ -1228,7 +1237,7 @@ A specific example: Allow a compound to 
 	In the .aff file:
 	    COMPOUNDRULE sde ~
 	    NEEDAFFIX x ~
-	    COMPOUNDMAX 3 ~
+	    COMPOUNDWORDMAX 3 ~
 	    COMPOUNDMIN 1 ~
 	In the .dic file:
 	    start/s ~
@@ -1252,10 +1261,10 @@ When omitted there is no minimal length.
 the compound flag from short words instead, this feature is present for
 compatibility with Myspell.
 
-							*spell-COMPOUNDMAX*
+							*spell-COMPOUNDWORDMAX*
 The maximum number of words that can be concatenated into a compound word is
-specified with COMPOUNDMAX.  Example:
-	COMPOUNDMAX 3 ~
+specified with COMPOUNDWORDMAX.  Example:
+	COMPOUNDWORDMAX 3 ~
 
 When omitted there is no maximum.  It applies to all compound words.
 
@@ -1270,14 +1279,13 @@ with COMPOUNDSYLMAX.  Example:
 This has no effect if there is no SYLLABLE item.  Without COMPOUNDSYLMAX there
 is no limit on the number of syllables.
 
-If both COMPOUNDMAX and COMPOUNDSYLMAX are defined, a compound word is
+If both COMPOUNDWORDMAX and COMPOUNDSYLMAX are defined, a compound word is
 accepted if it fits one of the criteria, thus is either made from up to
-COMPOUNDMAX words or contains up to COMPOUNDSYLMAX syllables.
+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.
-NOT IMPLEMENTED YET.
 
 						    *spell-COMPOUNDPERMITFLAG*
 The COMPOUNDPERMITFLAG specifies a flag that can be used on an affix.  It
@@ -1285,6 +1293,13 @@ means that the word plus affix can also 
 where the affix ends up halfway the word.
 NOT IMPLEMENTED YET.
 
+						    *spell-COMPOUNDROOT*
+The COMPOUNDROOT flag is used for words in the dictionary that are already a
+compound.  This means it counts for two words when checking the compounding
+rules.  Can also be used for an affix to count the affix as a compounding
+word.
+NOT IMPLEMENTED YET.
+
 							*spell-SYLLABLE*
 The SYLLABLE item defines characters or character sequences that are used to
 count the number of syllables in a word.  Example:
@@ -1487,6 +1502,9 @@ COMPOUND	(Hunspell)				*spell-COMPOUND*
                 Remove the first line with the count and rename the other
                 items to COMPOUNDRULE |spell-COMPOUNDRULE|
 
+COMPOUNDFIRST	(Hunspell)				*spell-COMPOUNDFIRST*
+		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|
+
 COMPOUNDBEGIN	(Hunspell)				*spell-COMPOUNDBEGIN*
 		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|
 
@@ -1496,17 +1514,10 @@ COMPOUNDEND	(Hunspell)				*spell-COMPOUN
 COMPOUNDMIDDLE	(Hunspell)				*spell-COMPOUNDMIDDLE*
 		Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|
 
-COMPOUNDROOT	(Hunspell)				*spell-COMPOUNDROOT*
-		Flag for words in the dictionary that are already a compound.
-		Vim doesn't use it.
-
 COMPOUNDSYLLABLE  (Hunspell)			*spell-COMPOUNDSYLLABLE*
 		Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE|
 		|spell-COMPOUNDSYLMAX|
 
-COMPOUNDWORDMAX	(Hunspell)				*spell-COMPOUNDWORDMAX*
-		Use COMPOUNDMAX instead. |spell-COMPOUNDMAX|
-
 FORBIDDENWORD	(Hunspell)				*spell-FORBIDDENWORD*
 		Use BAD instead. |spell-BAD|
 
@@ -1517,7 +1528,7 @@ LANG		(Hunspell)				*spell-LANG*
 		must be specified separately.
 
 LEMMA_PRESENT	(Hunspell)				*spell-LEMMA_PRESENT*
-		Only needed for mprphological analysis.
+		Only needed for morphological analysis.
 
 MAXNGRAMSUGS	(Hunspell)				*spell-MAXNGRAMSUGS*
 		Not supported.
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6813,9 +6813,9 @@ spell-COMPLEXPREFIXES	spell.txt	/*spell-
 spell-COMPOUND	spell.txt	/*spell-COMPOUND*
 spell-COMPOUNDBEGIN	spell.txt	/*spell-COMPOUNDBEGIN*
 spell-COMPOUNDEND	spell.txt	/*spell-COMPOUNDEND*
+spell-COMPOUNDFIRST	spell.txt	/*spell-COMPOUNDFIRST*
 spell-COMPOUNDFLAG	spell.txt	/*spell-COMPOUNDFLAG*
 spell-COMPOUNDFORBIDFLAG	spell.txt	/*spell-COMPOUNDFORBIDFLAG*
-spell-COMPOUNDMAX	spell.txt	/*spell-COMPOUNDMAX*
 spell-COMPOUNDMIDDLE	spell.txt	/*spell-COMPOUNDMIDDLE*
 spell-COMPOUNDMIN	spell.txt	/*spell-COMPOUNDMIN*
 spell-COMPOUNDPERMITFLAG	spell.txt	/*spell-COMPOUNDPERMITFLAG*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0b.  Last change: 2006 Mar 25
+*todo.txt*      For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,6 +30,18 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+In completion using  Enter to accept the current match causes trouble.
+Leave it out?  Typing a space already works
+
+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[].
+
+Mac: When started from finder path isn't set and curdir is /.
+Benji Fisher suggests using system() (2006 Mar 26)
+
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
 Win32: Describe how to do debugging. (George Reilly)
@@ -1121,9 +1133,8 @@ Spell checking:
     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 <= COMPOUNDMAX OR nr of
+-   Compound word is accepted if nr of words is <= COMPOUNDWORDMAX OR nr of
     syllables <= COMPOUNDSYLMAX.  Specify using AND in the affix file?
--   COMPOUNDMAX -> COMPOUNDWORDMAX?
 -   NEEDCOMPOUND also used for affix?  Or is this called ONLYINCOMPOUND now?
     Or is ONLYINCOMPOUND only for inside a compound, not at start or end?
 -   Do we need a flag for the rule that when compounding is done the following
@@ -1133,7 +1144,7 @@ Spell checking:
     - Lots of code depends on LANG, that isn't right.  Enable each mechanism
       in the affix file separately.
     - Example with compounding dash is bad, gets in the way of setting
-      COMPOUNDMIN and COMPOUNDMAX to a reasonable value.
+      COMPOUNDMIN and COMPOUNDWORDMAX to a reasonable value.
     - PSEUDOROOT == NEEDAFFIX
     - COMPOUNDROOT -> COMPOUNDED?  For a word that already is a compound word
 	    Or use COMPOUNDED2, COMPOUNDED3, etc.
@@ -1148,7 +1159,7 @@ 8   Alternate Dutch word list at www.ned
     We might not need this at all, you can use the NEEDAFFIX flag and the
     affix which is required.
 -   When a suffix has more than one syllable, it may count as a word for
-    COMPOUNDMAX.
+    COMPOUNDWORDMAX.
 -   Add flags to count extra syllables in a word.  SYLLABLEADD1 SYLLABLEADD2,
     etc.?  Or make it possible to specify the syllable count of a word
     directly, e.g., after another slash: /abc/3
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0b.  Last change: 2006 Mar 25
+*version7.txt*  For Vim version 7.0b.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -356,6 +356,7 @@ several other languages.
 French  - translated by David Blanchet
 Italian - translated by Antonio Colombo
 Russian - translated by Vassily Ragosin
+Polish  - translated by Mikolaj Machowski
 
 The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
 .../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/.  There appears to be no
@@ -899,6 +900,7 @@ limits syntax and ftplugin file. (Nikola
 Lisp indent file. (Sergey Khorev)
 loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
 m4 ftplugin file. (Nikolai Weibull)
+mailaliases syntax file. (Nikolai Weibull)
 mailcap ftplugin file. (Nikolai Weibull)
 manconf syntax and ftplugin file. (Nikolai Weibull)
 matlab ftplugin file. (Jake Wasserman)
@@ -2187,4 +2189,19 @@ install directory.
 To make the 16 bit DOS version compile exclude not used highlight
 initializations and build a tiny instead of small version.
 
+finddir() and findfile() accept a negative cound and return a List then.
+
+The Python indent file contained a few debugging statements, removed.
+
+Expanding {} for a function name, resulting in a name starting with "s:" was
+not handled correctly.
+
+Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX.  Added several items to be
+able to handle the new Hungarian dictionary.
+
+Mac: Default to building for the current platform only, that is much faster
+than building a universal binary.  Also, using Perl/Python/etc. only works for
+the current platform.
+
+
  vim:tw=78:ts=8:ft=help:norl:
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vim-pl.1
@@ -0,0 +1,555 @@
+.TH VIM 1 "2002 Lut 22"
+.SH NAME
+vim \- Vi rozbudowany, edytor tekstu dla programisty
+.SH SYNOPSIS
+.br
+.B vim
+[opcje] [plik ..]
+.br
+.B vim
+[opcje] \-
+.br
+.B vim
+[opcje] \-t znacznik
+.br
+.B vim
+[opcje] \-q [plik błędu]
+.PP
+.br
+.B ex
+.br
+.B view
+.br
+.B gvim
+.B gview
+.B evim
+.B eview
+.br
+.B rvim
+.B rview
+.B rgvim
+.B rgview
+.SH OPIS
+.B Vim
+jest edytorem tekstu kompatybilnym z Vi. Może być
+używany do edycji wszelkiego rodzaju plików tekstowych.
+Użyteczny zwłaszcza przy edycji programów.
+.PP
+Posiada wiele usprawnień w porównaniu z Vi: wielo poziomowe cofanie zmian,
+wiele okien i buforów, pod¶wietlanie składni, edycja linii poleceń,
+uzupełnianie nazw plików, pomoc on-line, wizualna selekcja, itd.
+Zobacz ":help vi_diff.txt" dla podsumowania różnić pomiędzy
+.B Vimem
+i Vi.
+.PP
+W czasie korzystania z
+.B Vima
+można uzyskać obszern± pomoc z systemu pomocy on-line dzięki poleceniu ":help".
+Zobacz rozdział POMOC ON-LINE poniżej.
+.PP
+Najczę¶ciej
+.B Vim
+jest uruchamiany do edycji pojedynczego pliku poleceniem
+.PP
+	vim plik
+.PP
+Bardziej ogólnie
+.B Vim
+jest uruchamiany poprzez:
+.PP
+	vim [opcje] [lista plików]
+.PP
+Je¶li brak listy plików edytor rozpocznie z pustym buforem. W innym
+wypadku istnieje dokładnie jedna z czterech możliwo¶ci by wybrać jeden
+lub więcej plików do edycji.
+.TP 12
+plik ..
+Lista nazw plików.
+Pierwsza nazwa będzie nazw± bież±cego pliku, który zostanie wczytany
+do bufora. Kursor zostanie umieszczony w pierwszym wierszu. Do
+kolejnych plików można przej¶ć dzięki poleceniu ":next". By otworzyć
+plik, którego nazwa zaczyna się od my¶lnika należy listę plików
+poprzedzić "\-\-".
+.TP
+\-
+Plik do edycji jest wczytany ze standardowego wej¶cia. Polecenia s±
+odczytywane ze standardowego wyj¶cia błędów, którym powinien być
+terminal (tty).
+.TP
+\-t {znacznik}
+Plik do edycji i pocz±tkowa pozycja kursora zależy od "znacznika",
+rodzaju etykiety goto.
+{znacznika} szuka się w pliku tags, zwi±zany z nim plik staje się
+plikiem bież±cym i wykonuje się powi±zane polecenie.
+Zazwyczaj używa się tego sposobu dla programów w C, w których wypadku
+{znacznik} powinien być nazw± funkcji.
+W efekcie plik zawieraj±cy okre¶lon± funkcję staje się plikiem
+bież±cym a kursor jest umieszczony na pocz±tku funkcji.
+Zobacz ":help tag-commands".
+.TP
+\-q [plik_błędów]
+Zacznij w trybie quickFix.
+Plik [plik_błędów] zostaje zinterpretowany i pokaże się pierwszy bł±d.
+Je¶li brak opcji [plik_błędów] nazwa pliku zostanie pobrana z opcji
+'errorfile' (domy¶lnie "AztecC.Err" dla Amigi, "errros.err" dla innych
+systemów.
+Do kolejnych błędów można przeskoczyć dzięki poleceniu ":cn".
+Zobacz ":help quickfix".
+.PP
+W zależno¶ci od wywołania
+.B Vim
+zachowuje się inaczej (program może być cały czas tym samym
+plikiem).
+.TP 10
+vim
+"Normalny" sposób, wszystko jest domy¶lne.
+.TP
+ex
+Zacznij w trybie Ex.
+PrzejdĽ do trybu Normalnego poleceniem ":vi".
+Można także uruchomić poprzez argument "\-e".
+.TP
+view
+Zacznij w trybie tylko do odczytu. W ten sposób będziesz chroniony
+przed zapisywaniem pliku. Można także uruchomić poprzez argument
+"\-R".
+.TP
+gvim gview
+Wersja GUI.
+Uruchamia nowe okno.
+Można także uruchomić poprzez argument "\-g".
+.TP
+evim eview
+Wersja GUI w łatwym trybie.
+Uruchamia nowe okno.
+Można także uruchomić poprzez argument "\-y".
+.TP
+rvim rview rgvim rgview
+Podobnie jak powyżej, ale z ograniczeniami. Nie będzie można uruchomić
+poleceń powłoki lub zawiesić
+.B Vima.
+Można także uruchomić poprzez argument "\-Z".
+.SH OPCJE
+Opcje można podać w dowolnej kolejno¶ci, przed lub po nazwach plików.
+Opcje bez argumentów można ł±czyć po pojedynczym my¶lniku.
+.TP 12
++[num]
+W pierwszym pliku kursor zostanie umieszczony w wierszu "num".
+Je¶li brak "num" kursor zostanie umieszczony w ostatnim wierszu.
+.TP
++/{wzór}
+W pierwszym pliku kursor zostanie umieszczony na pierwszym wyst±pieniu
+{wzór}.
+Zobacz ":help search-pattern" by dowiedzieć się jakie s± możliwo¶ci
+wzorów wyszukiwania.
+.TP
++{polecenie}
+.TP
+\-c {polecenie}
+{polecenie} zostanie wykonane po tym jak wczyta się pierwszy plik.
+{polecenie} jest interpretowane jako polecenie Ex.
+Je¶li {poleceni} zawiera białe znaki musi być umieszczone w podwójnych
+cudzysłowach (zależy to od używanej powłoki).
+Przykład: Vim "+set si" main.c
+.br
+Uwaga: Można użyć do 10 poleceń "+" lub "\-c".
+.TP
+\-S {plik}
+{plik} zostanie zinterpretowany po wczytaniu pierwszego pliku.
+Jest równoważne \-c "source {plik}".
+{plik} nie może zaczynać się '\-'.
+Je¶li nie podano {plik} zostanie użyty "Session.vim" (działa tylko
+wtedy je¶li \-S jest ostatnim argumentem).
+.TP
+\-\-cmd {polecenie}
+Podobne do "\-c", ale polecenie jest wykonywane tuż przed
+interpretacj± jakiegokolwiek pliku vimrc.
+Można użyć do 10 takich poleceń, niezależni od poleceń od "\-c"
+.TP
+\-A
+Je¶li
+.B Vim
+został skompilowany ze wsparciem dla języków arabskich (edycja od
+prawej do lewej i arabska mapa klawiatury) ta opcja uruchamia
+.B Vima
+w trybie arabskim, np. ustawia się opcja 'arabic'. W innym wypadku
+pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-b
+Tryb binarny.
+Ustawi się kilka opcji, które umożliwi± edycję plików binarnych lub
+wykonywalnych.
+.TP
+\-C
+Kompatybilny. Ustawia opcję 'compatible'.
+W ten sposób 
+.B Vim
+będzie zachowywał się jak Vi, nawet je¶li istnieje plik .vimrc.
+.TP
+\-d
+Uruchom w trybie diff.
+Powinno być dwa lub trzy nazwy plików jako argumenty.
+.B Vim
+otworzy wszystkie te pliki i pokaże różnice między nimi.
+Działa jak vimdiff(1).
+.TP
+\-d {urz±dzenie}
+Otwórz {urz±dzenie} by używać jako terminal.
+Tylko na Amidze.
+Przykład:
+"\-d con:20/30/600/150".
+.TP
+\-D
+Debugowanie. PrzejdĽ do trybu debugowanie wykonuj±c pierwsze polecenie
+ze skryptu.
+.TP
+\-e
+Uruchom
+.B Vima
+w trybie Ex, działa tak samo jakby wywołano program jako "ex".
+.TP
+\-E
+Uruchom
+.B Vima
+w ulepszonym trybie Ex, działa tak samo jakby wywołano program jako
+"exim".
+.TP
+\-f
+Pierszy plan. Dla wersji GUI.
+.B Vim
+nie nie oddzieli się od powłoki w jakiej został uruchomiony. Na Amidze
+.B Vim
+nie jest uruchomiony ponownie by otworzyć nowe okno.
+Opcja powinna być użyta kiedy
+.B Vim
+jest wywoływany przez program, który ma zaczekać na koniec sesji (np.
+mail).
+Na Amidze polecenia ":sh" i ":!" nie będ± działać.
+.TP
+\-\-nofork
+Pierwszy plan. Dla wersji GUI.
+.B Vim
+nie oddzieli się od powłoki w jakiej został uruchomiony.
+.TP
+\-F
+Je¶li Vim został skompilowany ze wsparciem FKMAP dla edycji tekstów od
+prawej do lewej i mapowania klawiatury Farsi, ta opcja uruchomi
+.B Vima
+w trybie Farsi, np. zostawi± ustawione opcje 'fkmap' i 'rightleft'.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-g
+Je¶li
+.B Vim
+został skompilowany ze wsparciem dla GUI ta opcja uruchomi GUI.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-h
+Wy¶wietli krótk± pomoc o argumentach linii poleceń i opcjach. Potem
+.B Vim
+zakończy działanie.
+.TP
+\-H
+Je¶li
+.B Vim
+został skompilowany ze wsparciem RIGHTLEFT dla edycji od prawej do
+lewej oraz ma mapowanie klawiatury dla hebrajskiego, ta opcja uruchomi
+.B Vima
+w trybie hebrajskim, np. ustawi opcje 'hkmap' i 'rightleft'.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-i {viminfo}
+Kiedy
+.B Vim
+używa pliku viminfo ta opcja wskaże jakiego pliku użyć zamiast
+domy¶lnego "~/.viminfo".
+Można też omin±ć użycie pliku .viminfo przez podanie nazwy "NONE".
+.TP
+\-L
+To samo co \-r.
+.TP
+\-l
+Tryb Lisp.
+Ustawia opcje 'lisp' i 'showmatch'.
+.TP
+\-m
+Zmiana pliku jest niemożliwa.
+Przestawia opcję 'write'.
+Można cały czas zmienić zawarto¶ć bufora, ale zapisanie pliku nie jest
+możliwa.
+.TP
+\-M
+Opcje 'modifiable' i 'write' zostan± wył±czone, tak więc zmiany
+w pliku oraz ich zapisanie nie s± możliwe. Można warto¶ć tych opcji
+zmienić.
+.TP
+\-N
+Tryb niekompatibylny. Przestawia opcję 'compatible'. Dzięki temu
+.B Vim
+będzie zachowywał się odrobinę lepiej, ale mniej zgodznie z Vi nawet
+je¶li nie istnieje plik .vimrc.
+.TP
+\-n
+Nie powstanie plik wymiany. Odzyskanie pliku po wypadku nie będzie
+możliwe.
+Wygodne je¶li instnieje potrzeba edycji na bardzo wolnym medium (np.
+dyskietce). Ten cel można osi±gn±ć także przez ":set uc=0". Można
+odwrócić przez ":set uc=200".
+.TP
+\-nb
+Uruchom jako serwer edytora dla NetBeans. Zobacz dokumentację by
+dowiedzieć się więcej.
+.TP
+\-o[N]
+Otwórz N okien w stosie.
+Kiedy brak N, otwórz jedno okno dla każdego pliku.
+.TP
+\-O[N]
+Otwórz N okien obok siebie.
+Kiedy brak N, otwórz jedno okno dla każdego pliku.
+.TP
+\-p[N]
+Otwórz N kart.
+Kiedy brak N, otwórz jedn± kartę dla każdego pliku.
+.TP
+\-R
+Tryb tylko do odczytu.
+Zostanie ustawiona opcja 'readonly'.
+Cały czas można zmieniać bufor, ale będzie istniała blokada przed przypadkowym
+zapisaniem pliku.
+Je¶li chcesz zapisać plik dodaj wykrzyknik do polecenia Ex, np. ":w!".
+Opcja \-R implikuje opcję \-n (zobacz poniżej).
+Opcja 'readonly' może zostać przestawiona poprzez ":set noro".
+Zobacz ":help 'readonly'".
+.TP
+\-r
+Wypisz listę plików wymiany razem z informacjami o nich.
+.TP
+\-r {plik}
+Tryb odzyskiwania danych.
+Plik wymiany zostanie wykorzystany do odzyskania gwałtownie przerwanej sesji.
+Plik wymiany to plik z tak± sam± nazw± co plik oryginalny z dodanym ".swp".
+Zobacz ":help recovery".
+.TP
+\-s
+Tryb cichy. Rozpoczęty tylko kiedy uruchomiony jako "Ex" lub opcja
+"\-e" została podana przed opcj± "\-s".
+.TP
+\-s {skrypt}
+Zostanie wczytany plik {skrypt}.
+Znaki w pliku zostan± zinterpretowane jakby były wpisywane.
+To samo można osi±gn±ć poprzez polecenie ":source! {skrypt}".
+Je¶li osi±gnięto koniec pliku zanim edytor zakończył działanie, dalsze
+znaki odczytywane s± z klawiatury.
+.TP
+\-T {terminal}
+Przekazuje
+.B Vimowi
+nazwę terminalu jakiego używasz.
+Wymagane tylko wtedy je¶li nie działa automatycznie.
+Powinien być to terminal znany
+.B Vimowi
+(builtin) lub zdefiniowany w plikach termcap lub terminfo.
+.TP
+\-u {vimrc}
+Użyj poleceń z pliku {vimrc} w czasie uruchamiania.
+Wszystkie inne możliwe pliki uruchamiania zostan± pominięte.
+Używaj do edytowania plików specjalnych.
+Można pomin±ć także wszystkie możliwe pliki uruchamiania poprzez
+podanie nazwy "NONE".
+Zobacz ":help initialization" by poznać więcej szczegółów.
+.TP
+\-U {gvimrc}
+Użyj poleceń z pliku {gvimrc} w czasie uruchamiania GUI.
+Wszystkie inne możliwe pliki uruchamiania GUI zostan± pominięte.
+Można pomin±ć także wszystkie możliwe pliki uruchamiania GUI poprzez
+podanie nazwy "NONE".
+Zobacz ":help gui-init" by poznać więcej szczegółów.
+.TP
+\-V[N]
+Tryb gadatliwy. Wypisz wiadomo¶ci o tym jaki pliki s± wczytywane
+i o informacjach pobieranych i dodawanych do pliku viminfo. Opcjonalny
+argument N jest warto¶ci± 'verbose'. Domy¶lnie 10.
+.TP
+\-v
+Uruchom
+.B Vima
+w trybie Vi, tak jakby program był nazwany "vi". Ma znaczenie
+tylko wtedy je¶li program nazwany jest "ex".
+.TP
+\-w {plik}
+Wszystkie wci¶nięcia klawiszy, aż do zakończenia działania programu,
+s± zapisywane w {plik} .
+Użyteczne je¶li chce się stworzyć skrypt do użycia z "vim \-s" lub
+":source!".
+Je¶li {plik} istnieje, znaki s± dopisywane.
+.TP
+\-W {plik}
+Podobnie do \-w, ale istniej±cy plik jest nadpisywany.
+.TP
+\-x
+Użyj szyfrowania podczas zapisywania plików. Zostaniesz poproszony
+o podanie klucza.
+.TP
+\-X
+Nie ł±cz z serwerem X. Skraca czas uruchamiania w terminalu, ale tytuł
+okna i schowek nie będ± wykorzystywane.
+.TP
+\-y
+Uruchom
+.B Vima
+w łatwym trybie, tak jakby program został wywołany "evim" lub "eview".
+.B Vim
+będzie zachowywał się bardziej jak edytor kliknij-i-wpisz.
+.TP
+\-Z
+Tryb ograniczony. Zachowuje się jakby nazwa programu zaczynała się od
+"r".
+.TP
+\-\-
+Oznacza koniec opcji.
+Argumenty po tej opcji będ± traktowane jak nazwy plików. Używa się do
+otwierania plików, których nazwy zaczynaj± się od '\-'.
+.TP
+\-\-echo\-wid
+Wył±cznie GTK GUI: wypisz ID okna na standardowe wyj¶cie.
+.TP
+\-\-help
+Wy¶wietl informację o pomocy i zakończy, to samo co"\-h".
+.TP
+\-\-literal
+Potraktuj nazwy plików dosłownie i nie rozwi±zuj kwantyfikatorów. Nie
+ma znaczenia na Uniksach gdzie powłoka rozwi±zuje kwantyfikatorów
+.TP
+\-\-noplugin
+Pomiń ładowanie wtyczek. Implikowane przy \-u NONE.
+.TP
+\-\-remote
+Poł±cz się z serwerem Vima i edytuj w nim resztę argumentów. Je¶li nie
+znaleziono serwera zostanie zgłoszony bł±d a pliki będ± otwarte
+w bież±cym Vimie.
+.TP
+\-\-remote\-expr {wyrażenie}
+Poł±cz z serwerem Vima, rozwi±ż w nim {wyrażenie} i wypisz rozwi±zanie
+na standardowe wyj¶cie.
+.TP
+\-\-remote\-send {klawisze}
+Poł±cz z serwerem Vima i wy¶lij do niego {klawisze}.
+.TP
+\-\-remote\-silent
+Tak samo jak \-remote, ale bez ostrzeżenia kiedy nie znaleziono
+serwera.
+.TP
+\-\-remote\-wait
+Tak samo jak \-remote, ale Vim nie zakończy dopóki pliki nie zostan±
+otwarte.
+.TP
+\-\-remote\-wait\-silent
+Tak samo jak \-\-remote\-wait, ale bez ostrzeżenie kiedy nie
+znaleziono serwera.
+.TP
+\-\-serverlist
+Wypisz nazwy wszystkich serwerów Vima jakie można znaleĽć.
+.TP
+\-\-servername {nazwa}
+Użyj {nazwa} jako nazwy serwera. Wykorzystane dla bież±cego Vima o ile
+nie poł±czone z argumentem \-\-remote, wtedy jest to nazwa serwera do
+poł±czenia.
+.TP
+\-\-socketid {id}
+Wył±cznie GTK GUI: Użyj mechanizmu GtkPlug by uruchomić gvima w innym
+oknie.
+.TP
+\-\-version
+Wypisz informację o wersji i zakończ.
+.SH POMOC ON-LINE
+By rozpocz±ć wpisz ":help" w
+.B Vimie
+Wpisz ":help temat" by uzyskać pomoc na okre¶lony temat.
+Przykład: ":help ZZ" by uzyskać pomoc na temat polecenia "ZZ".
+Użyj <Tab> i CTRL\-D aby uzupełnić tematy (":help
+cmdline\-completion"). W plikach pomocy istniej± znaczniki by ułatwić
+skakanie z jednego miejsca do innego (rodzaj linków hipertekstowych,
+zobacz ":help").
+Można w ten sposób zobaczyć cał± dokumentację, np. ":help syntax.txt".
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/doc/*.txt
+Dokumentacja
+.B Vima
+Użyj ":help doc\-file\-list" aby uzyskać pełn± listę.
+.TP
+/usr/local/lib/vim/syntax/syntax.vim
+Globalne uruchamianie pod¶wietlania składni.
+.TP
+/usr/local/lib/vim/syntax/*.vim
+Pliki składni dla różnych języków.
+.TP
+/usr/local/lib/vim/vimrc
+Globalny plik uruchamiania
+.B Vima
+.TP
+~/.vimrc
+Osobiste parametry uruchamiania
+.B Vima
+.TP
+/usr/local/lib/vim/gvimrc
+Globalne uruchamianie gvima.
+.TP
+~/.gvimrc
+Osobiste parametry uruchamiania gvima.
+.TP
+/usr/local/lib/vim/optwin.vim
+Skrypt używany w poleceniu ":options", dobry sposób do przegl±dania
+i ustawiania opcji.
+.TP
+/usr/local/lib/vim/menu.vim
+Globalne uruchamianie menu gvima.
+.TP
+/usr/local/lib/vim/bugreport.vim
+Skrypt służ±cy do tworzenia raportów o błędach. Zobacz ":help bugs".
+.TP
+/usr/local/lib/vim/filetype.vim
+Skrypt do wykrywania typu pliku według jego nazwy. Zobacz ":help 'filetype'".
+.TP
+/usr/local/lib/vim/scripts.vim
+Skrypt do wykrywania typu pliku według jego zawarto¶ci. Zobacz ":help 'filetype'".
+.TP
+/usr/local/lib/vim/*.ps
+Pliku używane do drukowania PostScriptu.
+.PP
+Naj¶wieższe wiadomo¶ci na stronie
+.B Vima:
+.br
+<URL:http://www.vim.org/>
+.SH ZOBACZ TAKŻE
+vimtutor(1)
+.SH AUTOR
+.B Vim
+został napisany przez Brama Moolenaara z duż± pomoc± innych osób.
+Zobacz ":help credits" w
+.B Vimie.
+.br
+.B Vim
+bazuje na Steviem, nad którym pracowali: Tim Thompson, Tony Andrews
+i G.R. (Fred) Walter.
+Mało już zostało z oryginalnego kodu.
+.SH BŁĘDY
+Prawdopodobne.
+Zobacz ":help todo" by poznać listę znanych problemów.
+.PP
+Pamiętaj że pewna ilo¶ć problemów, które mog± być uznawane przez
+niektórych ludzi za błędy s± w rzeczywisto¶ci spowodowane wierno¶ci±
+w odtwarzaniu zachowania Vi.
+Je¶li s±dzisz, że inne rzeczy s± błędami "ponieważ Vi robi to
+inaczej", powiniene¶ przyjrzeć się bliżej plikowi vi_diff.txt (lub
+wpisać ":help vi_diff.txt" w Vimie).
+SprawdĽ także opis opcji 'compatible' i 'cpoptions'.
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vim-pl.UTF-8.1
@@ -0,0 +1,555 @@
+.TH VIM 1 "2002 Lut 22"
+.SH NAME
+vim \- Vi rozbudowany, edytor tekstu dla programisty
+.SH SYNOPSIS
+.br
+.B vim
+[opcje] [plik ..]
+.br
+.B vim
+[opcje] \-
+.br
+.B vim
+[opcje] \-t znacznik
+.br
+.B vim
+[opcje] \-q [plik błędu]
+.PP
+.br
+.B ex
+.br
+.B view
+.br
+.B gvim
+.B gview
+.B evim
+.B eview
+.br
+.B rvim
+.B rview
+.B rgvim
+.B rgview
+.SH OPIS
+.B Vim
+jest edytorem tekstu kompatybilnym z Vi. Może być
+uĹĽywany do edycji wszelkiego rodzaju plikĂłw tekstowych.
+Użyteczny zwłaszcza przy edycji programów.
+.PP
+Posiada wiele usprawnień w porównaniu z Vi: wielo poziomowe cofanie zmian,
+wiele okien i buforów, podświetlanie składni, edycja linii poleceń,
+uzupełnianie nazw plików, pomoc on-line, wizualna selekcja, itd.
+Zobacz ":help vi_diff.txt" dla podsumowania różnić pomiędzy
+.B Vimem
+i Vi.
+.PP
+W czasie korzystania z
+.B Vima
+można uzyskać obszerną pomoc z systemu pomocy on-line dzięki poleceniu ":help".
+Zobacz rozdział POMOC ON-LINE poniżej.
+.PP
+Najczęściej
+.B Vim
+jest uruchamiany do edycji pojedynczego pliku poleceniem
+.PP
+	vim plik
+.PP
+Bardziej ogĂłlnie
+.B Vim
+jest uruchamiany poprzez:
+.PP
+	vim [opcje] [lista plikĂłw]
+.PP
+Jeśli brak listy plików edytor rozpocznie z pustym buforem. W innym
+wypadku istnieje dokładnie jedna z czterech możliwości by wybrać jeden
+lub więcej plików do edycji.
+.TP 12
+plik ..
+Lista nazw plikĂłw.
+Pierwsza nazwa będzie nazwą bieżącego pliku, który zostanie wczytany
+do bufora. Kursor zostanie umieszczony w pierwszym wierszu. Do
+kolejnych plików można przejść dzięki poleceniu ":next". By otworzyć
+plik, którego nazwa zaczyna się od myślnika należy listę plików
+poprzedzić "\-\-".
+.TP
+\-
+Plik do edycji jest wczytany ze standardowego wejścia. Polecenia są
+odczytywane ze standardowego wyjścia błędów, którym powinien być
+terminal (tty).
+.TP
+\-t {znacznik}
+Plik do edycji i poczÄ…tkowa pozycja kursora zaleĹĽy od "znacznika",
+rodzaju etykiety goto.
+{znacznika} szuka siÄ™ w pliku tags, zwiÄ…zany z nim plik staje siÄ™
+plikiem bieĹĽÄ…cym i wykonuje siÄ™ powiÄ…zane polecenie.
+Zazwyczaj uĹĽywa siÄ™ tego sposobu dla programĂłw w C, w ktĂłrych wypadku
+{znacznik} powinien być nazwą funkcji.
+W efekcie plik zawierający określoną funkcję staje się plikiem
+bieĹĽÄ…cym a kursor jest umieszczony na poczÄ…tku funkcji.
+Zobacz ":help tag-commands".
+.TP
+\-q [plik_błędów]
+Zacznij w trybie quickFix.
+Plik [plik_błędów] zostaje zinterpretowany i pokaże się pierwszy błąd.
+Jeśli brak opcji [plik_błędów] nazwa pliku zostanie pobrana z opcji
+'errorfile' (domyślnie "AztecC.Err" dla Amigi, "errros.err" dla innych
+systemĂłw.
+Do kolejnych błędów można przeskoczyć dzięki poleceniu ":cn".
+Zobacz ":help quickfix".
+.PP
+W zależności od wywołania
+.B Vim
+zachowuje się inaczej (program może być cały czas tym samym
+plikiem).
+.TP 10
+vim
+"Normalny" sposób, wszystko jest domyślne.
+.TP
+ex
+Zacznij w trybie Ex.
+PrzejdĹş do trybu Normalnego poleceniem ":vi".
+Można także uruchomić poprzez argument "\-e".
+.TP
+view
+Zacznij w trybie tylko do odczytu. W ten sposób będziesz chroniony
+przed zapisywaniem pliku. Można także uruchomić poprzez argument
+"\-R".
+.TP
+gvim gview
+Wersja GUI.
+Uruchamia nowe okno.
+Można także uruchomić poprzez argument "\-g".
+.TP
+evim eview
+Wersja GUI w Ĺ‚atwym trybie.
+Uruchamia nowe okno.
+Można także uruchomić poprzez argument "\-y".
+.TP
+rvim rview rgvim rgview
+Podobnie jak powyżej, ale z ograniczeniami. Nie będzie można uruchomić
+poleceń powłoki lub zawiesić
+.B Vima.
+Można także uruchomić poprzez argument "\-Z".
+.SH OPCJE
+Opcje można podać w dowolnej kolejności, przed lub po nazwach plików.
+Opcje bez argumentów można łączyć po pojedynczym myślniku.
+.TP 12
++[num]
+W pierwszym pliku kursor zostanie umieszczony w wierszu "num".
+Jeśli brak "num" kursor zostanie umieszczony w ostatnim wierszu.
+.TP
++/{wzĂłr}
+W pierwszym pliku kursor zostanie umieszczony na pierwszym wystÄ…pieniu
+{wzĂłr}.
+Zobacz ":help search-pattern" by dowiedzieć się jakie są możliwości
+wzorĂłw wyszukiwania.
+.TP
++{polecenie}
+.TP
+\-c {polecenie}
+{polecenie} zostanie wykonane po tym jak wczyta siÄ™ pierwszy plik.
+{polecenie} jest interpretowane jako polecenie Ex.
+Jeśli {poleceni} zawiera białe znaki musi być umieszczone w podwójnych
+cudzysłowach (zależy to od używanej powłoki).
+Przykład: Vim "+set si" main.c
+.br
+Uwaga: Można użyć do 10 poleceń "+" lub "\-c".
+.TP
+\-S {plik}
+{plik} zostanie zinterpretowany po wczytaniu pierwszego pliku.
+Jest rĂłwnowaĹĽne \-c "source {plik}".
+{plik} nie może zaczynać się '\-'.
+Jeśli nie podano {plik} zostanie użyty "Session.vim" (działa tylko
+wtedy jeśli \-S jest ostatnim argumentem).
+.TP
+\-\-cmd {polecenie}
+Podobne do "\-c", ale polecenie jest wykonywane tuĹĽ przed
+interpretacjÄ… jakiegokolwiek pliku vimrc.
+Można użyć do 10 takich poleceń, niezależni od poleceń od "\-c"
+.TP
+\-A
+Jeśli
+.B Vim
+został skompilowany ze wsparciem dla języków arabskich (edycja od
+prawej do lewej i arabska mapa klawiatury) ta opcja uruchamia
+.B Vima
+w trybie arabskim, np. ustawia siÄ™ opcja 'arabic'. W innym wypadku
+pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-b
+Tryb binarny.
+Ustawi siÄ™ kilka opcji, ktĂłre umoĹĽliwiÄ… edycjÄ™ plikĂłw binarnych lub
+wykonywalnych.
+.TP
+\-C
+Kompatybilny. Ustawia opcjÄ™ 'compatible'.
+W ten sposĂłb 
+.B Vim
+będzie zachowywał się jak Vi, nawet jeśli istnieje plik .vimrc.
+.TP
+\-d
+Uruchom w trybie diff.
+Powinno być dwa lub trzy nazwy plików jako argumenty.
+.B Vim
+otworzy wszystkie te pliki i pokaże różnice między nimi.
+Działa jak vimdiff(1).
+.TP
+\-d {urzÄ…dzenie}
+Otwórz {urządzenie} by używać jako terminal.
+Tylko na Amidze.
+Przykład:
+"\-d con:20/30/600/150".
+.TP
+\-D
+Debugowanie. PrzejdĹş do trybu debugowanie wykonujÄ…c pierwsze polecenie
+ze skryptu.
+.TP
+\-e
+Uruchom
+.B Vima
+w trybie Ex, działa tak samo jakby wywołano program jako "ex".
+.TP
+\-E
+Uruchom
+.B Vima
+w ulepszonym trybie Ex, działa tak samo jakby wywołano program jako
+"exim".
+.TP
+\-f
+Pierszy plan. Dla wersji GUI.
+.B Vim
+nie nie oddzieli się od powłoki w jakiej został uruchomiony. Na Amidze
+.B Vim
+nie jest uruchomiony ponownie by otworzyć nowe okno.
+Opcja powinna być użyta kiedy
+.B Vim
+jest wywoływany przez program, który ma zaczekać na koniec sesji (np.
+mail).
+Na Amidze polecenia ":sh" i ":!" nie będą działać.
+.TP
+\-\-nofork
+Pierwszy plan. Dla wersji GUI.
+.B Vim
+nie oddzieli się od powłoki w jakiej został uruchomiony.
+.TP
+\-F
+Jeśli Vim został skompilowany ze wsparciem FKMAP dla edycji tekstów od
+prawej do lewej i mapowania klawiatury Farsi, ta opcja uruchomi
+.B Vima
+w trybie Farsi, np. zostawiÄ… ustawione opcje 'fkmap' i 'rightleft'.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-g
+Jeśli
+.B Vim
+został skompilowany ze wsparciem dla GUI ta opcja uruchomi GUI.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-h
+Wyświetli krótką pomoc o argumentach linii poleceń i opcjach. Potem
+.B Vim
+zakończy działanie.
+.TP
+\-H
+Jeśli
+.B Vim
+został skompilowany ze wsparciem RIGHTLEFT dla edycji od prawej do
+lewej oraz ma mapowanie klawiatury dla hebrajskiego, ta opcja uruchomi
+.B Vima
+w trybie hebrajskim, np. ustawi opcje 'hkmap' i 'rightleft'.
+W innym wypadku pojawi się komunikat błędu i
+.B Vim
+zakończy działanie.
+.TP
+\-i {viminfo}
+Kiedy
+.B Vim
+używa pliku viminfo ta opcja wskaże jakiego pliku użyć zamiast
+domyślnego "~/.viminfo".
+Można też ominąć użycie pliku .viminfo przez podanie nazwy "NONE".
+.TP
+\-L
+To samo co \-r.
+.TP
+\-l
+Tryb Lisp.
+Ustawia opcje 'lisp' i 'showmatch'.
+.TP
+\-m
+Zmiana pliku jest niemoĹĽliwa.
+Przestawia opcjÄ™ 'write'.
+Można cały czas zmienić zawartość bufora, ale zapisanie pliku nie jest
+moĹĽliwa.
+.TP
+\-M
+Opcje 'modifiable' i 'write' zostaną wyłączone, tak więc zmiany
+w pliku oraz ich zapisanie nie są możliwe. Można wartość tych opcji
+zmienić.
+.TP
+\-N
+Tryb niekompatibylny. Przestawia opcję 'compatible'. Dzięki temu
+.B Vim
+będzie zachowywał się odrobinę lepiej, ale mniej zgodznie z Vi nawet
+jeśli nie istnieje plik .vimrc.
+.TP
+\-n
+Nie powstanie plik wymiany. Odzyskanie pliku po wypadku nie będzie
+moĹĽliwe.
+Wygodne jeśli instnieje potrzeba edycji na bardzo wolnym medium (np.
+dyskietce). Ten cel można osiągnąć także przez ":set uc=0". Można
+odwrócić przez ":set uc=200".
+.TP
+\-nb
+Uruchom jako serwer edytora dla NetBeans. Zobacz dokumentacjÄ™ by
+dowiedzieć się więcej.
+.TP
+\-o[N]
+OtwĂłrz N okien w stosie.
+Kiedy brak N, otwĂłrz jedno okno dla kaĹĽdego pliku.
+.TP
+\-O[N]
+OtwĂłrz N okien obok siebie.
+Kiedy brak N, otwĂłrz jedno okno dla kaĹĽdego pliku.
+.TP
+\-p[N]
+OtwĂłrz N kart.
+Kiedy brak N, otwĂłrz jednÄ… kartÄ™ dla kaĹĽdego pliku.
+.TP
+\-R
+Tryb tylko do odczytu.
+Zostanie ustawiona opcja 'readonly'.
+Cały czas można zmieniać bufor, ale będzie istniała blokada przed przypadkowym
+zapisaniem pliku.
+Jeśli chcesz zapisać plik dodaj wykrzyknik do polecenia Ex, np. ":w!".
+Opcja \-R implikuje opcjÄ™ \-n (zobacz poniĹĽej).
+Opcja 'readonly' może zostać przestawiona poprzez ":set noro".
+Zobacz ":help 'readonly'".
+.TP
+\-r
+Wypisz listÄ™ plikĂłw wymiany razem z informacjami o nich.
+.TP
+\-r {plik}
+Tryb odzyskiwania danych.
+Plik wymiany zostanie wykorzystany do odzyskania gwałtownie przerwanej sesji.
+Plik wymiany to plik z takÄ… samÄ… nazwÄ… co plik oryginalny z dodanym ".swp".
+Zobacz ":help recovery".
+.TP
+\-s
+Tryb cichy. Rozpoczęty tylko kiedy uruchomiony jako "Ex" lub opcja
+"\-e" została podana przed opcją "\-s".
+.TP
+\-s {skrypt}
+Zostanie wczytany plik {skrypt}.
+Znaki w pliku zostaną zinterpretowane jakby były wpisywane.
+To samo można osiągnąć poprzez polecenie ":source! {skrypt}".
+Jeśli osiągnięto koniec pliku zanim edytor zakończył działanie, dalsze
+znaki odczytywane sÄ… z klawiatury.
+.TP
+\-T {terminal}
+Przekazuje
+.B Vimowi
+nazwÄ™ terminalu jakiego uĹĽywasz.
+Wymagane tylko wtedy jeśli nie działa automatycznie.
+Powinien być to terminal znany
+.B Vimowi
+(builtin) lub zdefiniowany w plikach termcap lub terminfo.
+.TP
+\-u {vimrc}
+Użyj poleceń z pliku {vimrc} w czasie uruchamiania.
+Wszystkie inne możliwe pliki uruchamiania zostaną pominięte.
+UĹĽywaj do edytowania plikĂłw specjalnych.
+Można pominąć także wszystkie możliwe pliki uruchamiania poprzez
+podanie nazwy "NONE".
+Zobacz ":help initialization" by poznać więcej szczegółów.
+.TP
+\-U {gvimrc}
+Użyj poleceń z pliku {gvimrc} w czasie uruchamiania GUI.
+Wszystkie inne możliwe pliki uruchamiania GUI zostaną pominięte.
+Można pominąć także wszystkie możliwe pliki uruchamiania GUI poprzez
+podanie nazwy "NONE".
+Zobacz ":help gui-init" by poznać więcej szczegółów.
+.TP
+\-V[N]
+Tryb gadatliwy. Wypisz wiadomości o tym jaki pliki są wczytywane
+i o informacjach pobieranych i dodawanych do pliku viminfo. Opcjonalny
+argument N jest wartością 'verbose'. Domyślnie 10.
+.TP
+\-v
+Uruchom
+.B Vima
+w trybie Vi, tak jakby program był nazwany "vi". Ma znaczenie
+tylko wtedy jeśli program nazwany jest "ex".
+.TP
+\-w {plik}
+Wszystkie wciśnięcia klawiszy, aż do zakończenia działania programu,
+sÄ… zapisywane w {plik} .
+Użyteczne jeśli chce się stworzyć skrypt do użycia z "vim \-s" lub
+":source!".
+Jeśli {plik} istnieje, znaki są dopisywane.
+.TP
+\-W {plik}
+Podobnie do \-w, ale istniejÄ…cy plik jest nadpisywany.
+.TP
+\-x
+UĹĽyj szyfrowania podczas zapisywania plikĂłw. Zostaniesz poproszony
+o podanie klucza.
+.TP
+\-X
+Nie łącz z serwerem X. Skraca czas uruchamiania w terminalu, ale tytuł
+okna i schowek nie będą wykorzystywane.
+.TP
+\-y
+Uruchom
+.B Vima
+w łatwym trybie, tak jakby program został wywołany "evim" lub "eview".
+.B Vim
+będzie zachowywał się bardziej jak edytor kliknij-i-wpisz.
+.TP
+\-Z
+Tryb ograniczony. Zachowuje się jakby nazwa programu zaczynała się od
+"r".
+.TP
+\-\-
+Oznacza koniec opcji.
+Argumenty po tej opcji będą traktowane jak nazwy plików. Używa się do
+otwierania plikĂłw, ktĂłrych nazwy zaczynajÄ… siÄ™ od '\-'.
+.TP
+\-\-echo\-wid
+Wyłącznie GTK GUI: wypisz ID okna na standardowe wyjście.
+.TP
+\-\-help
+Wyświetl informację o pomocy i zakończy, to samo co"\-h".
+.TP
+\-\-literal
+Potraktuj nazwy plików dosłownie i nie rozwiązuj kwantyfikatorów. Nie
+ma znaczenia na Uniksach gdzie powłoka rozwiązuje kwantyfikatorów
+.TP
+\-\-noplugin
+Pomiń ładowanie wtyczek. Implikowane przy \-u NONE.
+.TP
+\-\-remote
+Połącz się z serwerem Vima i edytuj w nim resztę argumentów. Jeśli nie
+znaleziono serwera zostanie zgłoszony błąd a pliki będą otwarte
+w bieĹĽÄ…cym Vimie.
+.TP
+\-\-remote\-expr {wyraĹĽenie}
+Połącz z serwerem Vima, rozwiąż w nim {wyrażenie} i wypisz rozwiązanie
+na standardowe wyjście.
+.TP
+\-\-remote\-send {klawisze}
+Połącz z serwerem Vima i wyślij do niego {klawisze}.
+.TP
+\-\-remote\-silent
+Tak samo jak \-remote, ale bez ostrzeĹĽenia kiedy nie znaleziono
+serwera.
+.TP
+\-\-remote\-wait
+Tak samo jak \-remote, ale Vim nie zakończy dopóki pliki nie zostaną
+otwarte.
+.TP
+\-\-remote\-wait\-silent
+Tak samo jak \-\-remote\-wait, ale bez ostrzeĹĽenie kiedy nie
+znaleziono serwera.
+.TP
+\-\-serverlist
+Wypisz nazwy wszystkich serwerów Vima jakie można znaleźć.
+.TP
+\-\-servername {nazwa}
+UĹĽyj {nazwa} jako nazwy serwera. Wykorzystane dla bieĹĽÄ…cego Vima o ile
+nie połączone z argumentem \-\-remote, wtedy jest to nazwa serwera do
+połączenia.
+.TP
+\-\-socketid {id}
+Wyłącznie GTK GUI: Użyj mechanizmu GtkPlug by uruchomić gvima w innym
+oknie.
+.TP
+\-\-version
+Wypisz informację o wersji i zakończ.
+.SH POMOC ON-LINE
+By rozpocząć wpisz ":help" w
+.B Vimie
+Wpisz ":help temat" by uzyskać pomoc na określony temat.
+Przykład: ":help ZZ" by uzyskać pomoc na temat polecenia "ZZ".
+Użyj <Tab> i CTRL\-D aby uzupełnić tematy (":help
+cmdline\-completion"). W plikach pomocy istnieją znaczniki by ułatwić
+skakanie z jednego miejsca do innego (rodzaj linkĂłw hipertekstowych,
+zobacz ":help").
+Można w ten sposób zobaczyć całą dokumentację, np. ":help syntax.txt".
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/doc/*.txt
+Dokumentacja
+.B Vima
+Użyj ":help doc\-file\-list" aby uzyskać pełną listę.
+.TP
+/usr/local/lib/vim/syntax/syntax.vim
+Globalne uruchamianie podświetlania składni.
+.TP
+/usr/local/lib/vim/syntax/*.vim
+Pliki składni dla różnych języków.
+.TP
+/usr/local/lib/vim/vimrc
+Globalny plik uruchamiania
+.B Vima
+.TP
+~/.vimrc
+Osobiste parametry uruchamiania
+.B Vima
+.TP
+/usr/local/lib/vim/gvimrc
+Globalne uruchamianie gvima.
+.TP
+~/.gvimrc
+Osobiste parametry uruchamiania gvima.
+.TP
+/usr/local/lib/vim/optwin.vim
+Skrypt uĹĽywany w poleceniu ":options", dobry sposĂłb do przeglÄ…dania
+i ustawiania opcji.
+.TP
+/usr/local/lib/vim/menu.vim
+Globalne uruchamianie menu gvima.
+.TP
+/usr/local/lib/vim/bugreport.vim
+Skrypt służący do tworzenia raportów o błędach. Zobacz ":help bugs".
+.TP
+/usr/local/lib/vim/filetype.vim
+Skrypt do wykrywania typu pliku według jego nazwy. Zobacz ":help 'filetype'".
+.TP
+/usr/local/lib/vim/scripts.vim
+Skrypt do wykrywania typu pliku według jego zawartości. Zobacz ":help 'filetype'".
+.TP
+/usr/local/lib/vim/*.ps
+Pliku uĹĽywane do drukowania PostScriptu.
+.PP
+Najświeższe wiadomości na stronie
+.B Vima:
+.br
+<URL:http://www.vim.org/>
+.SH ZOBACZ TAKŻE
+vimtutor(1)
+.SH AUTOR
+.B Vim
+został napisany przez Brama Moolenaara z dużą pomocą innych osób.
+Zobacz ":help credits" w
+.B Vimie.
+.br
+.B Vim
+bazuje na Steviem, nad ktĂłrym pracowali: Tim Thompson, Tony Andrews
+i G.R. (Fred) Walter.
+Mało już zostało z oryginalnego kodu.
+.SH BĹÄDY
+Prawdopodobne.
+Zobacz ":help todo" by poznać listę znanych problemów.
+.PP
+Pamiętaj że pewna ilość problemów, które mogą być uznawane przez
+niektórych ludzi za błędy są w rzeczywistości spowodowane wiernością
+w odtwarzaniu zachowania Vi.
+Jeśli sądzisz, że inne rzeczy są błędami "ponieważ Vi robi to
+inaczej", powinieneś przyjrzeć się bliżej plikowi vi_diff.txt (lub
+wpisać ":help vi_diff.txt" w Vimie).
+SprawdĹş takĹĽe opis opcji 'compatible' i 'cpoptions'.
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vimdiff-pl.1
@@ -0,0 +1,46 @@
+.TH VIMDIFF 1 "2001 Mar 30"
+.SH NAZWA
+vimdiff \- edytuj dwie lub trzy wersje pliku w Vimie i zobacz różnice
+.SH SYNOPSIS
+.br
+.B vimdiff
+[opcje] plik1 plik2 [plik3]
+.PP
+.B gvimdiff
+.SH OPIS
+.B Vimdiff
+uruchomi
+.B Vima
+z dwoma (lub trzema plikami), każdy z nich we własnym oknie.
+Różnice między plikami zostan± pod¶wietlone.
+Jest to dobry sposób by przeanalizować różnice i przenie¶ć zmiany z jednej
+wersji pliku do innej.
+.PP
+Zobacz vim(1) by poznać więcej szczegółów o samym Vimie.
+.PP
+Kiedy uruchomiony jako
+.B gvimdiff
+zostanie uruchomione GUI (je¶li dostępne).
+.PP
+W każdym oknie zostanie ustawiona opcja 'diff', która spowoduje
+pod¶wietlenie różnic.
+.br
+Opcje 'wrap' i 'scrollbind' zostan± ustawione by tekst dobrze się
+przegl±dało.
+.br
+Opcja 'foldmethod' zostanie ustawiona na "diff", dzięki temu
+niezmienione linie zostan± zwinięte. 'foldcolumn' będzie równe 2 aby
+łatwo wyszukiwać, otwierać i zamykać zwinięcia.
+.SH OPCJE
+Pionowy podział jest użyty do wyrównania linii, tak jakby użyto
+opcji "\-O". Aby uzyskać poziomy podział użyj opcji "\-o".
+.PP
+Aby poznać inne opcje zobacz vim(1).
+.SH ZOBACZ TAKŻE
+vim(1)
+.SH AUTOR
+Większo¶ć
+.B Vima
+została napisana przez Brama Moolenaara przy pomocy wielu innych osób.
+Zobacz ":help credits w
+.B Vimie.
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vimdiff-pl.UTF-8.1
@@ -0,0 +1,46 @@
+.TH VIMDIFF 1 "2001 Mar 30"
+.SH NAZWA
+vimdiff \- edytuj dwie lub trzy wersje pliku w Vimie i zobacz różnice
+.SH SYNOPSIS
+.br
+.B vimdiff
+[opcje] plik1 plik2 [plik3]
+.PP
+.B gvimdiff
+.SH OPIS
+.B Vimdiff
+uruchomi
+.B Vima
+z dwoma (lub trzema plikami), każdy z nich we własnym oknie.
+Różnice między plikami zostaną podświetlone.
+Jest to dobry sposób by przeanalizować różnice i przenieść zmiany z jednej
+wersji pliku do innej.
+.PP
+Zobacz vim(1) by poznać więcej szczegółów o samym Vimie.
+.PP
+Kiedy uruchomiony jako
+.B gvimdiff
+zostanie uruchomione GUI (jeśli dostępne).
+.PP
+W kaĹĽdym oknie zostanie ustawiona opcja 'diff', ktĂłra spowoduje
+podświetlenie różnic.
+.br
+Opcje 'wrap' i 'scrollbind' zostanÄ… ustawione by tekst dobrze siÄ™
+przeglądało.
+.br
+Opcja 'foldmethod' zostanie ustawiona na "diff", dzięki temu
+niezmienione linie zostaną zwinięte. 'foldcolumn' będzie równe 2 aby
+łatwo wyszukiwać, otwierać i zamykać zwinięcia.
+.SH OPCJE
+Pionowy podział jest użyty do wyrównania linii, tak jakby użyto
+opcji "\-O". Aby uzyskać poziomy podział użyj opcji "\-o".
+.PP
+Aby poznać inne opcje zobacz vim(1).
+.SH ZOBACZ TAKŻE
+vim(1)
+.SH AUTOR
+Większość
+.B Vima
+została napisana przez Brama Moolenaara przy pomocy wielu innych osób.
+Zobacz ":help credits w
+.B Vimie.
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vimtutor-pl.1
@@ -0,0 +1,48 @@
+.TH VIMTUTOR 1 "2001 Kwi 2"
+.SH NAZWA
+vimtutor \- nauczyciel Vima
+.SH SYNOPSIS
+.br
+.B vimtutor [język]
+.SH OPIS
+.B Vimtutor
+uruchamia nauczycie
+.B Vima.
+Najpierw kopiuje wła¶ciwy plik, dzięki temu można go zmieniać bez obaw
+utraty tre¶ci.
+.PP
+.B Vimtutor
+przyda się ludziom, którzy chc± się nauczyć pierwszych poleceń
+.B Vima
+.PP
+Opcjonalny argument [język] jest dwu literowym kodem języka, tak jak
+"it" lub "es".
+Je¶li brak argumentu [język] zostanie użyty język bież±cej
+lokalizacji.
+Je¶li nauczyciel w tym języku jest dostępny, zostanie użyty \- w innym
+wypadku zostanie wykorzystana wersja angielska.
+.PP
+.B Vim
+jest uruchamiany zawsze w trybie kompatybilno¶ci z Vi
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/tutor/tutor[.languague]
+Tekstowe pliki
+.B Vimtutora.
+.TP 15
+/usr/local/lib/vim/tutor/tutor.vim
+Skrypt Vima używany do kopiowania pliku
+.B Vimtutora.
+.SH AUTOR
+.B Vimtutor
+został pocz±tkowo napisany dla Vim przez Michaela C. Pierce'a
+i Roberta K. Ware'a z Colorado School of Mines zainspirowani przez
+Charlesa Smitha z Colorado State University.
+E-mail: bware@mines.colorado.edu
+.br
+Zmodyfikowany na potrzeby
+.B Vima
+przez Brama Moolenaara.
+Nazwiska tłumaczy w plikach.
+.SH ZOBACZ TAKŻE
+vim(1)
new file mode 100644
--- /dev/null
+++ b/runtime/doc/vimtutor-pl.UTF-8.1
@@ -0,0 +1,48 @@
+.TH VIMTUTOR 1 "2001 Kwi 2"
+.SH NAZWA
+vimtutor \- nauczyciel Vima
+.SH SYNOPSIS
+.br
+.B vimtutor [język]
+.SH OPIS
+.B Vimtutor
+uruchamia nauczycie
+.B Vima.
+Najpierw kopiuje właściwy plik, dzięki temu można go zmieniać bez obaw
+utraty treści.
+.PP
+.B Vimtutor
+przyda się ludziom, którzy chcą się nauczyć pierwszych poleceń
+.B Vima
+.PP
+Opcjonalny argument [język] jest dwu literowym kodem języka, tak jak
+"it" lub "es".
+Jeśli brak argumentu [język] zostanie użyty język bieżącej
+lokalizacji.
+Jeśli nauczyciel w tym języku jest dostępny, zostanie użyty \- w innym
+wypadku zostanie wykorzystana wersja angielska.
+.PP
+.B Vim
+jest uruchamiany zawsze w trybie kompatybilności z Vi
+.SH PLIKI
+.TP 15
+/usr/local/lib/vim/tutor/tutor[.languague]
+Tekstowe pliki
+.B Vimtutora.
+.TP 15
+/usr/local/lib/vim/tutor/tutor.vim
+Skrypt Vima uĹĽywany do kopiowania pliku
+.B Vimtutora.
+.SH AUTOR
+.B Vimtutor
+został początkowo napisany dla Vim przez Michaela C. Pierce'a
+i Roberta K. Ware'a z Colorado School of Mines zainspirowani przez
+Charlesa Smitha z Colorado State University.
+E-mail: bware@mines.colorado.edu
+.br
+Zmodyfikowany na potrzeby
+.B Vima
+przez Brama Moolenaara.
+Nazwiska tłumaczy w plikach.
+.SH ZOBACZ TAKŻE
+vim(1)
new file mode 100644
--- /dev/null
+++ b/runtime/doc/xxd-pl.1
@@ -0,0 +1,389 @@
+.TH XXD 1 "Sierpień 1996" "Strona podręcznika dla xxd"
+.\"
+.\" 21st May 1996
+.\" Man page author:
+.\"    Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
+.\"    Changes by Bram Moolenaar <Bram@vim.org>
+.SH NAZWA
+.I xxd
+\- zrzut pliku do hex lub odwrotnie
+.SH SYNOPSIS
+.B xxd
+\-h[elp]
+.br
+.B xxd
+[opcje] [plik_we [plik_wy]]
+.br
+.B xxd
+\-r[evert] [opcje] [plik_we [plik_wy]]
+.SH OPIS
+.I xxd
+tworzy zrzut heksowy podanego pliku na standardowe wyj¶cie.
+Może także przetworzyć zrzut heksowy z powrotem do oryginalnej,
+binarnej formy.
+Podobnie jak
+.BR uuencode (1)
+i
+.BR uudecode (1)
+pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
+ASCII, ale ma zalety dekodowania na standardowe wyj¶cie.
+Ponadto można go użyć do przeprowadzenia łatania plików binarnych.
+.SH OPCJE
+Je¶li nie podano
+.I plik_we
+xxd czyta ze standardowego wej¶cie.
+Je¶li okre¶lono
+.I plik_wy
+jako znak
+.RB \` \- '
+wtedy dane wej¶ciowe czytane s± ze standardowego wej¶cia.
+Je¶li nie podano
+.I plik_wy
+(lub podano jako
+.RB \` \- '
+), wyniki s± wysyłane na standardowe wyj¶cie.
+.PP
+Pamiętaj, że użyty został "leniwy" parser, który nie sprawdza więcej
+niż pierwszej litery opcji (o ile ta nie została obdarzona
+parametrem). Spacje między jedno literowymi opcjami i ich parametrami
+s± opcjonalne. Parametry opcji mog± być okre¶lone w notacji dziesiętnej,
+heksadecymalej lub oktalnej.
+St±d
+.BR \-c8 ,
+.BR "\-c 8" ,
+.B \-c 010
+i
+.B \-cols 8
+s± sobie równoważne.
+.PP
+.TP
+.IR \-a " | " \-autoskip
+przeł±cza autoskip: pojedyncza '*' zastępuje linie nul. Domy¶lnie
+wył±czone.
+.TP
+.IR \-b " | " \-bits
+Przeł±cza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
+Opcja ta zapisuje oktety ajko osiem cyfr 1 lub 0 zamias normalnego
+zrzutu heksowego. Każda linia jest poprzedzona przez
+heksadecymalny numer linii a za nim jego reprezentacja w ascii (lub
+ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działaj± w tym
+trybie.
+.TP
+.IR "\-c cols " | " \-cols cols"
+formatuje liczbę
+.RI < cols >
+oktetów na wiersz. Domy¶lnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks.
+256.
+.TP
+.IR \-E " | "\-EBCDIC
+zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC.
+Nie zmienia prezentacji heksadecymalej. Opcja nie działa w poł±czeniu
+z \-r, \-p lub \-i.
+.TP
+.IR "\-g bajtów " | " \-groupsize bajtów"
+oddziela wyj¶cie każdych
+.RI < bajtów >
+bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biały
+znak.
+Okre¶l
+.I \-g 0
+by wył±czyć grupowanie.
+.RI < Bajtów "> domy¶lnie jest " 2
+w trybie normalnym i \fI1\fP w trybie bitów.
+Grupowanie nie działa w trybie postscriptu lub wł±czania.
+.TP
+.IR \-h " | " \-help
+wypisuje podsumowanie dostępnych poleceń i kończy działanie. Nie
+zostaje przeprowadzony żaden zrzut.
+.TP
+.IR \-i " | " \-include
+wyj¶cie w stylu wł±czania pliku w C. Zostaje zapisana kompletna
+statyczna tablica definicji (nazwana według pliku wej¶cia), o ile xxd
+nie czyta ze standardowego wej¶cia.
+.TP
+.IR "\-l len " | "\-len len"
+zakończ po wypisaniu
+.RI < len>
+oktetów.
+.TP
+.IR \-p " | " \-ps " | " \-postscript " | " \-plain
+wyj¶cie w postcriptowym ci±głym stylu zrzutu heksowego. Znany także
+jako zwykły zrzut heksowy.
+.TP
+.IR \-r " | " \-revert
+odwróć operację: przekonwertuj (lub załataj) zrzut heksowy w binarkę.
+Je¶li nie zapisuje na standardowe wyj¶cie, xxd zapisze plik wyj¶ciowy
+bez obcinania go. Użyj kombinacji
+.I \-r \-p
+by odczytać zwykły zrzut heksadecymalny bez numerów linii
+i okre¶lonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy
+s± dozwolone wszędzie.
+.TP
+.I \-seek offset
+Kiedy użyty po
+.IR \-r :
+odwraca z
+.RI < offset >
+dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
+.TP
+.I \-s [+][\-]seek
+zaczyna na
+.RI < seek >
+bajtów abs. (lub wzg.) offsecie pliku wej¶ciowego.
+\fI+ fRwskazuje, że seek jest względne do bież±cej pozycji pliku (bez
+znaczenia je¶li nie wczytuje ze standardowego wej¶cia). \fI\- \fRwskazuje
+że seek powinno być o tyle znaków od końca wej¶cia (lub je¶li
+poł±czone z \fI+\fR: przezhd bież±c± pozycj± pliku na standardowym
+wej¶ciu).
+Bez opcji \-s xxd zaczyna od bież±cej pozycji w pliku.
+.TP
+.I \-u
+użyj wielkich liter w znakach heksowych. Domy¶lnie s± małe znaki.
+.TP
+.IR \-v " | " \-version
+pokazuje wersję programu.
+.SH OSTRZEŻENIA
+.PP
+.I xxd \-r
+potrafi okre¶lić numery linii. Je¶li plik wyj¶cia jest możliwy do
+przeszukania wtedy numery linii na pocz±tku wiersza zrzutu heksowego
+mog± być nie po kolei, może brakować wierszy lub nakładać się na
+siebie. W takich wypadkach xxd użyje lseek(2) by znaleĽć następn±
+pozycję. Je¶li plik wyj¶ciowy nie jest możliwy do przeszukania możliwe
+s± tylko przerwy, które zostan± wypełnione bajtami null.
+.PP
+.I xxd \-r
+nigdy nie podaje błędów analizy. ¦mieci s± ignorowane.
+.PP
+W czasie edycji zrzutów heksowych, proszę zauważyć że
+.I xxd \-r
+pomija wszystko w linii wej¶cia po odczytaniu wystarczaj±cej ilo¶ci
+kolumn danych heksadecymalnych (zobacz opcję \-c). Oznacza to także,
+że zmiany w drukowanych kolumnach ascii (lub ebcdic) s± zawsze
+ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu
+poprzez xxd \-r \-p nie zależy od kolejno¶ci kolumn. Tutaj cokolwiej
+co wygl±da jak para cyfr heks jest interpretowane.
+.PP
+Zauważ różnicę między
+.br
+\fI% xxd \-i plik\fR
+.br
+i
+.br
+\fI% xxd \-i < plik\fR
+.PP
+.I xxd \-s \+seek
+może być różne od
+.IR "xxd \-s seek" ,
+ponieważ lseek(2) jest użyty do "przewinięcie" wej¶cia. '+' robi
+różnicę je¶li Ľródłem wej¶cia jest standardowe wej¶cie i je¶li pozycja
+w pliku ze standardowego wej¶cia nie jest pocz±tkiem pliku w chwili
+uruchomienia xxd. Następuj±ce przykłady mog± wyja¶nić (lub bardziej
+zmylić!)...
+.PP
+Przewiń standardowe wej¶cie przed przeczytaniem; potrzebne ponieważ
+`cat' już odczytał do końca standardowego wej¶cia.
+.br
+\fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik
+.PP
+Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód.
+Znak `+' oznacza "względny wobec bież±cej pozycji", st±d `128' dodaje
+do 1k gdzie zakończył dd.
+.br
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
+.PP
+Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
+.br
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
+.PP
+Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko
+potrzebne.
+Autor woli monitorować działanie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest użyte.
+.SH PRZYKŁADY
+.PP
+.br
+Wypisz wszystko z wyj±tkiem pierwszych trzech linii (heksowe 0x30 bajtów)
+.B pliku
+\.
+.br
+\fI% xxd \-s 0x30 plik
+.PP
+.br
+Wypisz trzy linie (heksowe 0x30 bajtów) z końca
+.B pliku
+\.
+.br
+\fI% xxd \-s \-0x30 plik
+.PP
+.br
+Wypisz 120 bajtów jako ci±gły zrzut heksowy z 40 oktetami na linię.
+.br
+\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
+.br
+2e54482058584420312022417567757374203139
+.br
+39362220224d616e75616c207061676520666f72
+.br
+20787864220a2e5c220a2e5c222032317374204d
+.br
+617920313939360a2e5c22204d616e2070616765
+.br
+20617574686f723a0a2e5c2220202020546f6e79
+.br
+204e7567656e74203c746f6e79407363746e7567
+.br
+
+.br
+Zrzut heksowy z pierwszymi 120 bajtami tej strony podręcznika z 12
+oktetami na linię.
+.br
+\fI% xxd \-l 120 \-c 12 xxd.1\fR
+.br
+0000000: 2e54 4820 5858 4420 3120 2241  .TH XXD 1 "A
+.br
+000000c: 7567 7573 7420 3139 3936 2220  ugust 1996" 
+.br
+0000018: 224d 616e 7561 6c20 7061 6765  "Manual page
+.br
+0000024: 2066 6f72 2078 7864 220a 2e5c   for xxd"..\\
+.br
+0000030: 220a 2e5c 2220 3231 7374 204d  "..\\" 21st M
+.br
+000003c: 6179 2031 3939 360a 2e5c 2220  ay 1996..\\" 
+.br
+0000048: 4d61 6e20 7061 6765 2061 7574  Man page aut
+.br
+0000054: 686f 723a 0a2e 5c22 2020 2020  hor:..\\"    
+.br
+0000060: 546f 6e79 204e 7567 656e 7420  Tony Nugent 
+.br
+000006c: 3c74 6f6e 7940 7363 746e 7567  <tony@sctnug
+.PP
+.br
+Pokaż tylko datę z pliku xxd.1
+.br
+\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
+.br
+0000036: 3231 7374 204d 6179 2031 3939 36  21st May 1996
+.PP
+.br
+Kopiuj
+.B plik_we
+do
+.B plik_wy
+i poprzedĽ 100 bajtami o warto¶ci 0x00.
+.br
+\fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR
+.br
+
+.br
+Podmień datę w pliku xxd.1
+.br
+\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
+.br
+\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
+.br
+0000036: 3235 7468 204d 6179 2031 3939 36  25th May 1996
+.PP
+.br
+Utwórz plik o 65537 bajtach, wszystkich równych 0x00,
+z wyj±tkiem ostatniego, który ma być 'A' (hex 0x41).
+.br
+\fI% echo '010000: 41' | xxd \-r \> plik\fR
+.PP
+.br
+Zrzut heksowy tego pliku z autoskipem.
+.br
+\fI% xxd \-a \-c 12 plik\fR
+.br
+0000000: 0000 0000 0000 0000 0000 0000  ............
+.br
+*
+.br
+000fffc: 0000 0000 40                   ....A
+.PP
+Utwórz jedno bajtowy plik zawieraj±cy pojedncz± literę 'A'.
+Liczba po '\-r \-s' dodaje numery linii znalezione w pliku;
+w efekcie poprzedzaj±ce bajty s± ukryte.
+.br
+\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR
+.PP
+Użyj xxd jako filtra wewn±trz edytora takiego jak
+.B vim(1)
+aby uzyskać zrzut heksowy zakresu między markerami `a' i `z'.
+.br
+\fI:'a,'z!xxd\fR
+.PP
+Użyj xxd jako filtra wewn±trz edytora takiego jak
+.B vim(1)
+by odzyskać binarny zrzut heksowy zakresu pomiędzy markerami `a'
+i `z'.
+.br
+\fI:'a,'z!xxd \-r\fR
+.PP
+Użyj xxd jako filtra wewn±trz edytora takiego jak
+.B vim(1)
+by odzyskać jedn± linię zrzutu heksowego. PrzejdĽ z kursorem na linię
+i wpisz:
+.br
+\fI!!xxd \-r\fR
+.PP
+Odczytaj pojednycze znaki z portu szeregowego
+.br
+\fI% xxd \-c1 < /dev/term/b &\fR
+.br
+\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
+.br
+\fI% echo \-n foo > /dev/term/b\fR
+.PP
+.SH "ZWRACANE WARTO¦CI"
+Zwracane s± następuj±ce warto¶ci błędów:
+.TP
+0
+nie znaleziono błędów.
+.TP
+\-1
+operacja nie jest wspierana (
+.I xxd \-r \-i
+cały czas niemożliwa).
+.TP
+1
+bł±d w czasie analizowania opcji.
+.TP
+2
+problemy z plikiem wej¶ciowym.
+.TP
+3
+problemy z plikiem wyj¶ciowym.
+.TP
+4,5
+ż±dana pozycja jest nieosi±galna.
+.SH "ZOBACZ TAKŻE"
+uuencode(1), uudecode(1), patch(1)
+.br
+.SH OSTRZEŻENIA
+Dziwaczno¶ć narzędzi dorównuje dziwaczno¶ci mózgu twórcy.
+Używaj wył±cznie na własn± odpowiedzialno¶ć. Kopiuj pliki. Analizuj
+je. Stań się czarodziejem.
+.br
+.SH WERSJA
+Strona podręcznika opisuje xxd w wersji 1.7
+.SH AUTOR
+.br
+(c) 1990-1997 by Juergen Weigert
+.br
+<jnweiger@informatik.uni-erlangen.de>
+.LP
+Kopiuj do woli i podaj moje dane,
+.br
+zarabiaj pieni±dze i dziel się ze mn±,
+.br
+trać pieni±dze i nie miej do mnie pretensji.
+.PP
+Strona podręcznika zapocz±tkowana przez Tony'ego Nugenta
+.br
+<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
+.br
+Małe zmiany: Bram Moolenaar.
+Redakcja: Juergen Weigert.
+.PP
new file mode 100644
--- /dev/null
+++ b/runtime/doc/xxd-pl.UTF-8.1
@@ -0,0 +1,389 @@
+.TH XXD 1 "Sierpień 1996" "Strona podręcznika dla xxd"
+.\"
+.\" 21st May 1996
+.\" Man page author:
+.\"    Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
+.\"    Changes by Bram Moolenaar <Bram@vim.org>
+.SH NAZWA
+.I xxd
+\- zrzut pliku do hex lub odwrotnie
+.SH SYNOPSIS
+.B xxd
+\-h[elp]
+.br
+.B xxd
+[opcje] [plik_we [plik_wy]]
+.br
+.B xxd
+\-r[evert] [opcje] [plik_we [plik_wy]]
+.SH OPIS
+.I xxd
+tworzy zrzut heksowy podanego pliku na standardowe wyjście.
+Może także przetworzyć zrzut heksowy z powrotem do oryginalnej,
+binarnej formy.
+Podobnie jak
+.BR uuencode (1)
+i
+.BR uudecode (1)
+pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
+ASCII, ale ma zalety dekodowania na standardowe wyjście.
+Ponadto można go użyć do przeprowadzenia łatania plików binarnych.
+.SH OPCJE
+Jeśli nie podano
+.I plik_we
+xxd czyta ze standardowego wejście.
+Jeśli określono
+.I plik_wy
+jako znak
+.RB \` \- '
+wtedy dane wejściowe czytane są ze standardowego wejścia.
+Jeśli nie podano
+.I plik_wy
+(lub podano jako
+.RB \` \- '
+), wyniki są wysyłane na standardowe wyjście.
+.PP
+Pamiętaj, że użyty został "leniwy" parser, który nie sprawdza więcej
+niż pierwszej litery opcji (o ile ta nie została obdarzona
+parametrem). Spacje między jedno literowymi opcjami i ich parametrami
+są opcjonalne. Parametry opcji mogą być określone w notacji dziesiętnej,
+heksadecymalej lub oktalnej.
+StÄ…d
+.BR \-c8 ,
+.BR "\-c 8" ,
+.B \-c 010
+i
+.B \-cols 8
+sÄ… sobie rĂłwnowaĹĽne.
+.PP
+.TP
+.IR \-a " | " \-autoskip
+przełącza autoskip: pojedyncza '*' zastępuje linie nul. Domyślnie
+wyłączone.
+.TP
+.IR \-b " | " \-bits
+Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
+Opcja ta zapisuje oktety ajko osiem cyfr 1 lub 0 zamias normalnego
+zrzutu heksowego. KaĹĽda linia jest poprzedzona przez
+heksadecymalny numer linii a za nim jego reprezentacja w ascii (lub
+ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
+trybie.
+.TP
+.IR "\-c cols " | " \-cols cols"
+formatuje liczbÄ™
+.RI < cols >
+oktetów na wiersz. Domyślnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks.
+256.
+.TP
+.IR \-E " | "\-EBCDIC
+zmienia kodowanie znakĂłw w prawej kolumnie z ASCII na EBCDIC.
+Nie zmienia prezentacji heksadecymalej. Opcja nie działa w połączeniu
+z \-r, \-p lub \-i.
+.TP
+.IR "\-g bajtĂłw " | " \-groupsize bajtĂłw"
+oddziela wyjście każdych
+.RI < bajtĂłw >
+bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biały
+znak.
+Określ
+.I \-g 0
+by wyłączyć grupowanie.
+.RI < Bajtów "> domyślnie jest " 2
+w trybie normalnym i \fI1\fP w trybie bitĂłw.
+Grupowanie nie działa w trybie postscriptu lub włączania.
+.TP
+.IR \-h " | " \-help
+wypisuje podsumowanie dostępnych poleceń i kończy działanie. Nie
+zostaje przeprowadzony ĹĽaden zrzut.
+.TP
+.IR \-i " | " \-include
+wyjście w stylu włączania pliku w C. Zostaje zapisana kompletna
+statyczna tablica definicji (nazwana według pliku wejścia), o ile xxd
+nie czyta ze standardowego wejścia.
+.TP
+.IR "\-l len " | "\-len len"
+zakończ po wypisaniu
+.RI < len>
+oktetĂłw.
+.TP
+.IR \-p " | " \-ps " | " \-postscript " | " \-plain
+wyjście w postcriptowym ciągłym stylu zrzutu heksowego. Znany także
+jako zwykły zrzut heksowy.
+.TP
+.IR \-r " | " \-revert
+odwróć operację: przekonwertuj (lub załataj) zrzut heksowy w binarkę.
+Jeśli nie zapisuje na standardowe wyjście, xxd zapisze plik wyjściowy
+bez obcinania go. UĹĽyj kombinacji
+.I \-r \-p
+by odczytać zwykły zrzut heksadecymalny bez numerów linii
+i określonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy
+są dozwolone wszędzie.
+.TP
+.I \-seek offset
+Kiedy uĹĽyty po
+.IR \-r :
+odwraca z
+.RI < offset >
+dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
+.TP
+.I \-s [+][\-]seek
+zaczyna na
+.RI < seek >
+bajtów abs. (lub wzg.) offsecie pliku wejściowego.
+\fI+ fRwskazuje, że seek jest względne do bieżącej pozycji pliku (bez
+znaczenia jeśli nie wczytuje ze standardowego wejścia). \fI\- \fRwskazuje
+że seek powinno być o tyle znaków od końca wejścia (lub jeśli
+połączone z \fI+\fR: przezhd bieżącą pozycją pliku na standardowym
+wejściu).
+Bez opcji \-s xxd zaczyna od bieĹĽÄ…cej pozycji w pliku.
+.TP
+.I \-u
+użyj wielkich liter w znakach heksowych. Domyślnie są małe znaki.
+.TP
+.IR \-v " | " \-version
+pokazuje wersjÄ™ programu.
+.SH OSTRZEŻENIA
+.PP
+.I xxd \-r
+potrafi określić numery linii. Jeśli plik wyjścia jest możliwy do
+przeszukania wtedy numery linii na poczÄ…tku wiersza zrzutu heksowego
+mogą być nie po kolei, może brakować wierszy lub nakładać się na
+siebie. W takich wypadkach xxd użyje lseek(2) by znaleźć następną
+pozycję. Jeśli plik wyjściowy nie jest możliwy do przeszukania możliwe
+są tylko przerwy, które zostaną wypełnione bajtami null.
+.PP
+.I xxd \-r
+nigdy nie podaje błędów analizy. Śmieci są ignorowane.
+.PP
+W czasie edycji zrzutów heksowych, proszę zauważyć że
+.I xxd \-r
+pomija wszystko w linii wejścia po odczytaniu wystarczającej ilości
+kolumn danych heksadecymalnych (zobacz opcjÄ™ \-c). Oznacza to takĹĽe,
+ĹĽe zmiany w drukowanych kolumnach ascii (lub ebcdic) sÄ… zawsze
+ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu
+poprzez xxd \-r \-p nie zależy od kolejności kolumn. Tutaj cokolwiej
+co wyglÄ…da jak para cyfr heks jest interpretowane.
+.PP
+Zauważ różnicę między
+.br
+\fI% xxd \-i plik\fR
+.br
+i
+.br
+\fI% xxd \-i < plik\fR
+.PP
+.I xxd \-s \+seek
+może być różne od
+.IR "xxd \-s seek" ,
+ponieważ lseek(2) jest użyty do "przewinięcie" wejścia. '+' robi
+różnicę jeśli źródłem wejścia jest standardowe wejście i jeśli pozycja
+w pliku ze standardowego wejścia nie jest początkiem pliku w chwili
+uruchomienia xxd. Następujące przykłady mogą wyjaśnić (lub bardziej
+zmylić!)...
+.PP
+Przewiń standardowe wejście przed przeczytaniem; potrzebne ponieważ
+`cat' już odczytał do końca standardowego wejścia.
+.br
+\fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik
+.PP
+Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przĂłd.
+Znak `+' oznacza "względny wobec bieżącej pozycji", stąd `128' dodaje
+do 1k gdzie zakończył dd.
+.br
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
+.PP
+Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
+.br
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
+.PP
+Jakkolwiek, jest to rzadka sytuacja i uĹĽycie `+' jest rzadko
+potrzebne.
+Autor woli monitorować działanie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest użyte.
+.SH PRZYKĹADY
+.PP
+.br
+Wypisz wszystko z wyjÄ…tkiem pierwszych trzech linii (heksowe 0x30 bajtĂłw)
+.B pliku
+\.
+.br
+\fI% xxd \-s 0x30 plik
+.PP
+.br
+Wypisz trzy linie (heksowe 0x30 bajtów) z końca
+.B pliku
+\.
+.br
+\fI% xxd \-s \-0x30 plik
+.PP
+.br
+Wypisz 120 bajtów jako ciągły zrzut heksowy z 40 oktetami na linię.
+.br
+\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
+.br
+2e54482058584420312022417567757374203139
+.br
+39362220224d616e75616c207061676520666f72
+.br
+20787864220a2e5c220a2e5c222032317374204d
+.br
+617920313939360a2e5c22204d616e2070616765
+.br
+20617574686f723a0a2e5c2220202020546f6e79
+.br
+204e7567656e74203c746f6e79407363746e7567
+.br
+
+.br
+Zrzut heksowy z pierwszymi 120 bajtami tej strony podręcznika z 12
+oktetami na liniÄ™.
+.br
+\fI% xxd \-l 120 \-c 12 xxd.1\fR
+.br
+0000000: 2e54 4820 5858 4420 3120 2241  .TH XXD 1 "A
+.br
+000000c: 7567 7573 7420 3139 3936 2220  ugust 1996" 
+.br
+0000018: 224d 616e 7561 6c20 7061 6765  "Manual page
+.br
+0000024: 2066 6f72 2078 7864 220a 2e5c   for xxd"..\\
+.br
+0000030: 220a 2e5c 2220 3231 7374 204d  "..\\" 21st M
+.br
+000003c: 6179 2031 3939 360a 2e5c 2220  ay 1996..\\" 
+.br
+0000048: 4d61 6e20 7061 6765 2061 7574  Man page aut
+.br
+0000054: 686f 723a 0a2e 5c22 2020 2020  hor:..\\"    
+.br
+0000060: 546f 6e79 204e 7567 656e 7420  Tony Nugent 
+.br
+000006c: 3c74 6f6e 7940 7363 746e 7567  <tony@sctnug
+.PP
+.br
+PokaĹĽ tylko datÄ™ z pliku xxd.1
+.br
+\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
+.br
+0000036: 3231 7374 204d 6179 2031 3939 36  21st May 1996
+.PP
+.br
+Kopiuj
+.B plik_we
+do
+.B plik_wy
+i poprzedź 100 bajtami o wartości 0x00.
+.br
+\fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR
+.br
+
+.br
+Podmień datę w pliku xxd.1
+.br
+\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
+.br
+\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
+.br
+0000036: 3235 7468 204d 6179 2031 3939 36  25th May 1996
+.PP
+.br
+UtwĂłrz plik o 65537 bajtach, wszystkich rĂłwnych 0x00,
+z wyjątkiem ostatniego, który ma być 'A' (hex 0x41).
+.br
+\fI% echo '010000: 41' | xxd \-r \> plik\fR
+.PP
+.br
+Zrzut heksowy tego pliku z autoskipem.
+.br
+\fI% xxd \-a \-c 12 plik\fR
+.br
+0000000: 0000 0000 0000 0000 0000 0000  ............
+.br
+*
+.br
+000fffc: 0000 0000 40                   ....A
+.PP
+UtwĂłrz jedno bajtowy plik zawierajÄ…cy pojednczÄ… literÄ™ 'A'.
+Liczba po '\-r \-s' dodaje numery linii znalezione w pliku;
+w efekcie poprzedzajÄ…ce bajty sÄ… ukryte.
+.br
+\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR
+.PP
+UĹĽyj xxd jako filtra wewnÄ…trz edytora takiego jak
+.B vim(1)
+aby uzyskać zrzut heksowy zakresu między markerami `a' i `z'.
+.br
+\fI:'a,'z!xxd\fR
+.PP
+UĹĽyj xxd jako filtra wewnÄ…trz edytora takiego jak
+.B vim(1)
+by odzyskać binarny zrzut heksowy zakresu pomiędzy markerami `a'
+i `z'.
+.br
+\fI:'a,'z!xxd \-r\fR
+.PP
+UĹĽyj xxd jako filtra wewnÄ…trz edytora takiego jak
+.B vim(1)
+by odzyskać jedną linię zrzutu heksowego. Przejdź z kursorem na linię
+i wpisz:
+.br
+\fI!!xxd \-r\fR
+.PP
+Odczytaj pojednycze znaki z portu szeregowego
+.br
+\fI% xxd \-c1 < /dev/term/b &\fR
+.br
+\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
+.br
+\fI% echo \-n foo > /dev/term/b\fR
+.PP
+.SH "ZWRACANE WARTOĹšCI"
+Zwracane są następujące wartości błędów:
+.TP
+0
+nie znaleziono błędów.
+.TP
+\-1
+operacja nie jest wspierana (
+.I xxd \-r \-i
+cały czas niemożliwa).
+.TP
+1
+błąd w czasie analizowania opcji.
+.TP
+2
+problemy z plikiem wejściowym.
+.TP
+3
+problemy z plikiem wyjściowym.
+.TP
+4,5
+ĹĽÄ…dana pozycja jest nieosiÄ…galna.
+.SH "ZOBACZ TAKŻE"
+uuencode(1), uudecode(1), patch(1)
+.br
+.SH OSTRZEŻENIA
+Dziwaczność narzędzi dorównuje dziwaczności mózgu twórcy.
+Używaj wyłącznie na własną odpowiedzialność. Kopiuj pliki. Analizuj
+je. Stań się czarodziejem.
+.br
+.SH WERSJA
+Strona podręcznika opisuje xxd w wersji 1.7
+.SH AUTOR
+.br
+(c) 1990-1997 by Juergen Weigert
+.br
+<jnweiger@informatik.uni-erlangen.de>
+.LP
+Kopiuj do woli i podaj moje dane,
+.br
+zarabiaj pieniÄ…dze i dziel siÄ™ ze mnÄ…,
+.br
+trać pieniądze i nie miej do mnie pretensji.
+.PP
+Strona podręcznika zapoczątkowana przez Tony'ego Nugenta
+.br
+<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
+.br
+Małe zmiany: Bram Moolenaar.
+Redakcja: Juergen Weigert.
+.PP
--- 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 25
+" Last Change:	2006 Mar 26
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -195,7 +195,7 @@ au BufNewFile,BufRead *.mar			setf vmasm
 au BufNewFile,BufRead *.atl,*.as		setf atlas
 
 " Automake
-au BufNewFile,BufRead [mM]akefile.am		setf automake
+au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am	setf automake
 
 " Autotest .at files are actually m4
 au BufNewFile,BufRead *.at			setf m4
@@ -340,9 +340,20 @@ au BufNewFile,BufRead *.css			setf css
 au BufNewFile,BufRead *.con			setf cterm
 
 " Changelog
-au BufNewFile,BufRead changelog.Debian,changelog.dch setf debchangelog
-au BufNewFile,BufRead [cC]hange[lL]og		if getline(1) =~ '; urgency='
-	\| setf debchangelog | else | setf changelog | endif
+au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch
+					\	setf debchangelog
+
+au BufNewFile,BufRead [cC]hange[lL]og
+	\  if getline(1) =~ '; urgency='
+	\|   setf debchangelog
+	\| else
+	\|   setf changelog
+	\| endif
+
+au BufNewFile,BufRead NEWS
+	\  if getline(1) =~ '; urgency='
+	\|   setf debchangelog
+	\| endif
 
 " CHILL
 au BufNewFile,BufRead *..ch			setf chill
@@ -417,7 +428,14 @@ au BufNewFile,BufRead *.prg
 	\ endif
 
 " Cobol
-au BufNewFile,BufRead *.cbl,*.cob,*.cpy,*.lib	setf cobol
+au BufNewFile,BufRead *.cbl,*.cob,*.lib	setf cobol
+"   cobol or zope form controller python script? (heuristic)
+au BufNewFile,BufRead *.cpy
+	\ if getline(1) =~ '^##' |
+	\   setf python |
+	\ else |
+	\   setf cobol |
+	\ endif
 
 " Cold Fusion
 au BufNewFile,BufRead *.cfm,*.cfi,*.cfc		setf cf
@@ -843,6 +861,9 @@ au BufNewFile,BufRead *.mgp			setf mgp
 " Mail (for Elm, trn, mutt, rn, slrn)
 au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt\w\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
 
+" Mail aliases
+au BufNewFile,BufRead /etc/mail/aliases,/etc/aliases	setf mailaliases
+
 " Mailcap configuration file
 au BufNewFile,BufRead .mailcap,mailcap		setf mailcap
 
@@ -1384,7 +1405,7 @@ au BufNewFile,BufRead *.sas			setf sas
 au BufNewFile,BufRead *.sa			setf sather
 
 " Scilab
-au BufNewFile,BufRead *.sci			setf scilab
+au BufNewFile,BufRead *.sci,*.sce		setf scilab
 
 " SDL
 au BufNewFile,BufRead *.sdl,*.pr		setf sdl
@@ -1930,6 +1951,13 @@ endfun
 " Yaml
 au BufNewFile,BufRead *.yaml,*.yml		setf yaml
 
+" Zope
+"   dtml (zope dynamic template markup language), pt (zope page template),
+"   cpt (zope form controller page template)
+au BufNewFile,BufRead *.dtml,*.pt,*.cpt		call <SID>FTCheck_html()
+"   zsql (zope sql method)
+au BufNewFile,BufRead *.zsql			call s:SQL()
+
 " Z80 assembler asz80
 au BufNewFile,BufRead *.z8a			setf z8a
 
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Autoconf configure.{ac,in} file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Latest Revision:  2006-02-11
 " TODO:             how about nested [()]'s in one line
 "                   what's wrong with '\\\@!'?
 
@@ -63,7 +63,7 @@ function GetConfigIndent()
 
   " if previous line had an unmatched closing parantheses,
   " indent to the matching opening parantheses
-  if line =~ '[^(]*\\\@<!)$'
+  if line =~ '[^(]\+\\\@<!)$'
     call search(')', 'bW')
     let lnum = searchpair('\\\@<!(', '', ')', 'bWn')
     let ind = indent(lnum)
@@ -71,7 +71,7 @@ function GetConfigIndent()
 
   " if previous line had an unmatched closing bracket,
   " indent to the matching opening bracket
-  if line =~ '[^[]*]$'
+  if line =~ '[^[]\+]$'
     call search(']', 'bW')
     let lnum = searchpair('\[', '', ']', 'bWn')
     let ind = indent(lnum)
@@ -79,5 +79,3 @@ function GetConfigIndent()
 
   return ind
 endfunction
-
-" vim: set sts=2 sw=2:
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,7 +2,7 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2005 Feb 24
+" Last Change:		2006 Mar 26
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -117,10 +117,7 @@ function GetPythonIndent(lnum)
 	  let min = col + 1
 	endif
       endwhile
-      echomsg min
       let pline = strpart(pline, 0, min - 1)
-      echomsg pline  
-      sleep 1
     endif
   else
     let col = 0
@@ -153,10 +150,8 @@ function GetPythonIndent(lnum)
   if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
     let lnum = a:lnum - 1
     while lnum >= 1
-      echomsg 'got here'
       if getline(lnum) =~ '^\s*\(try\|except\)\>'
 	let ind = indent(lnum)
-	echomsg 'got here, indent is ' . ind
 	if ind >= indent(a:lnum)
 	  return -1	" indent is already less than this
 	endif
@@ -164,7 +159,6 @@ function GetPythonIndent(lnum)
       endif
       let lnum = lnum - 1
     endwhile
-    echomsg 'got to the end'
     return -1		" no matching "try"!
   endif
 
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,6 +1,6 @@
 " Script to define the syntax menu in synmenu.vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 25
+" Last Change:	2006 Mar 26
 
 " This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
@@ -267,6 +267,7 @@ SynMenu L-Ma.Lynx\ config:lynx
 SynMenu L-Ma.M4:m4
 SynMenu L-Ma.MaGic\ Point:mgp
 SynMenu L-Ma.Mail:mail
+SynMenu L-Ma.Mail\ aliases:mailaliases
 SynMenu L-Ma.Mailcap:mailcap
 SynMenu L-Ma.Makefile:make
 SynMenu L-Ma.MakeIndex:ist
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -184,10 +184,12 @@ else
     " - "*** " in first line and "--- " in second line (context diff).
     " - "# It was generated by makepatch " in the second line (makepatch diff).
     " - "Index: <filename>" in the first line (CVS file)
+    " - "=== ", line of "=", "---", "+++ " (SVK diff)
   elseif s:line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\)'
 	\ || (s:line1 =~ '^--- ' && s:line2 =~ '^+++ ')
 	\ || (s:line1 =~ '^\* looking for ' && s:line2 =~ '^\* comparing to ')
 	\ || (s:line1 =~ '^\*\*\* ' && s:line2 =~ '^--- ')
+	\ || (s:line1 =~ '^=== ' && s:line2 =~ '^=\{66\}' && s:line3 =~ '^--- ' && s:line4 =~ '^+++')
     set ft=diff
 
     " PostScript Files (must have %!PS as the first line, like a2ps output)
--- a/runtime/spell/hu/hu_HU.diff
+++ b/runtime/spell/hu/hu_HU.diff
@@ -1,94 +1,135 @@
-*** hu_HU.orig.aff	Tue Aug 16 18:21:10 2005
---- hu_HU.aff	Fri Aug 19 21:28:45 2005
+*** hu_HU.orig.aff	Sun Mar 26 15:05:13 2006
+--- hu_HU.aff	Sun Mar 26 21:17:08 2006
 ***************
-*** 57,62 ****
-  
-! NAME Magyar Ispell helyesírási szótár
+*** 57,59 ****
+  NAME Magyar Ispell helyesírási szótár
 ! LANG hu_HU
-! HOME http://magyarispell.sourceforge.net
-! VERSION Magyar 0.99.4.2
-  SET ISO8859-2
---- 57,62 ----
-  
-! #NAME Magyar Ispell helyesírási szótár
+  HOME http://magyarispell.sourceforge.net
+--- 57,59 ----
+  NAME Magyar Ispell helyesírási szótár
 ! #LANG hu_HU
-! #HOME http://magyarispell.sourceforge.net
-! #VERSION Magyar 0.99.4.2
-  SET ISO8859-2
+  HOME http://magyarispell.sourceforge.net
 ***************
-*** 64,77 ****
-  COMPOUNDMIN 2
-! COMPOUNDFLAG Y
-! COMPOUNDWORD 2 y
+*** 62,63 ****
+--- 62,68 ----
+  TRY íóúÍÓÚtaeslzánorhgkiédmyőpvöbucfjüűxwqTAESLZÁNORHGKIÉDMYŐPVÖBUCFJÜŰXWQ-.
++ 
++ # There are soooo many affixes.  Postpone the prefixes to keep the time needed
++ # for generating the .spl within reasonable limits.
++ PFXPOSTPONE
++ 
+  COMPOUNDMIN 1
+***************
+*** 66,69 ****
+  COMPOUNDPERMITFLAG @
 ! COMPOUNDSYLLABLE 6 aáeéiíoóöőuúüű
 ! SYLLABLENUM klmc
-! COMPOUNDFIRST v
-! COMPOUNDLAST x
-! FORBIDDENWORD w
-! ONLYROOT u
-! ACCENT áéíóöőúüű aeiooouuu
-! CHECKNUM
-! WORDCHARS -.§%°0123456789
-! HU_KOTOHANGZO Z
   
---- 64,116 ----
-  COMPOUNDMIN 2
-! #COMPOUNDWORD 2 y
-! COMPOUNDMAX 2
-! # I don't understand what the "y" is for; if it's to disable compounding simply
-! # remove the compound flag from the word.
-! 
+--- 71,81 ----
+  COMPOUNDPERMITFLAG @
+! #
+! # Strange that every vowel is counted as a syllable, that's how the hunspell
+! # code works.
 ! #COMPOUNDSYLLABLE 6 aáeéiíoóöőuúüű
 ! COMPOUNDSYLMAX 6
 ! SYLLABLE a/á/e/é/i/í/o/ó/ö/ő/u/ú/ü/ű
-! # Strange that every vowel is counted as a syllable, that's how the hunspell
-! # code works.
 ! 
+! # the effect of SYLLABLENUM is not documented
 ! #SYLLABLENUM klmc
-! # Don't understand what this is for
-! 
-! #COMPOUNDFLAG Y
+  
+***************
+*** 74,88 ****
+  
+! # obsoloted
+! COMPOUNDFIRST v
+! COMPOUNDLAST x
+! ONLYROOT u
+  #COMPOUNDWORD 2 y
+! HU_KOTOHANGZO ?
+  
+  # new (> Hunspell-1.0-RC2)
+! COMPOUNDBEGIN v
+! COMPOUNDEND x
+! PSEUDOROOT u
+  # 2. parameter only for back compatibility:
+! COMPOUNDWORDMAX 2 y
+  COMPOUNDROOT y
+--- 86,110 ----
+  
+! # obsolete
 ! #COMPOUNDFIRST v
 ! #COMPOUNDLAST x
-! COMPOUNDFLAGS Y+
-! COMPOUNDFLAGS vY*x
-! COMPOUNDFLAGS Y+x
-! COMPOUNDFLAGS vY+
+! #ONLYROOT u
+! 
+  #COMPOUNDWORD 2 y
 ! 
-! #FORBIDDENWORD w
-! #  I don't understand what FORBIDDENWORD is needed for, using NEEDAFFIX
-! #  (ONLYROOT) should be sufficient.
+! # Undocumented and ? is already used for KEEPCASE
+! #HU_KOTOHANGZO ?
+  
+  # new (> Hunspell-1.0-RC2)
+! #COMPOUNDBEGIN v
+! #COMPOUNDEND x
+! COMPOUNDRULE vx
 ! 
-! #ONLYROOT u
+! # PSEUDOROOT was renamed to NEEDAFFIX
+! #PSEUDOROOT u
 ! NEEDAFFIX u
 ! 
-! #ACCENT áéíóöőúüű aeiooouuu
+  # 2. parameter only for back compatibility:
+! # What is the extra "y" for?
+! #COMPOUNDWORDMAX 2 y
+! COMPOUNDWORDMAX 2
+  COMPOUNDROOT y
+***************
+*** 93,94 ****
+--- 115,117 ----
+  CHECKCOMPOUNDCASE
++ 
+  CHECKCOMPOUNDPATTERN 7
+***************
+*** 102,111 ****
+  
+! FORBIDDENWORD w
+! WORDCHARS -.§%°0123456789–
+! 
+  
+! NOT_GENERATE &
+! GENERATE (
+  
+! LEMMA_PRESENT )
+  
+--- 125,151 ----
+  
+! #FORBIDDENWORD w
+! BAD w
+  
+! #WORDCHARS -.§%°0123456789–
+  
+! # List the word characters for ISO-8859-2.
+! FOL ±˘łµ¶¨ąş»Ľľż±˛ł´µ¶·¸ąş»Ľ˝ľżŕáâăäĺćçčéęëěíîďđńňóôőöřůúűüýţß˙-§%°
+! LOW ±˘łµ¶¨ąş»Ľľż±˛ł´µ¶·¸ąş»Ľ˝ľżŕáâăäĺćçčéęëěíîďđńňóôőöřůúűüýţß˙-§%°
+! UPP ˇ˘ŁĄ¦¨©Ş«¬®Ż±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖŘŮÚŰÜÝŢß˙-§%°
+! MIDWORD .
+! 
+! # These are not documented and not in the source code either
+! #NOT_GENERATE &
+! #GENERATE (
+! 
+! # Only for morphological analysis
+! #LEMMA_PRESENT )
+! 
+! # This works better than REP items
 ! MAP 5
 ! MAP aáä
 ! MAP eé
 ! MAP ií
 ! MAP oóöő
 ! MAP uúüű
-! 
-! #CHECKNUM
-! # Vim always handles numbers in the same way.
-! 
-! #WORDCHARS -.§%°0123456789
-! FOL ±˘łµ¶¨ąş»Ľľż±˛ł´µ¶·¸ąş»Ľ˝ľżŕáâăäĺćçčéęëěíîďđńňóôőöřůúűüýţß˙-§%°
-! LOW ±˘łµ¶¨ąş»Ľľż±˛ł´µ¶·¸ąş»Ľ˝ľżŕáâăäĺćçčéęëěíîďđńňóôőöřůúűüýţß˙-§%°
-! UPP ˇ˘ŁĄ¦¨©Ş«¬®Ż±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖŘŮÚŰÜÝŢß˙-§%°
-! MIDWORD .
-! 
-! #HU_KOTOHANGZO Z
-! 
-! # There are soooo many affixes.  Postpone the prefixes to keep the time needed
-! # for generating the .spl within reasonable limits.
-! PFXPOSTPONE
   
 ***************
-*** 81,96 ****
+*** 115,130 ****
   
-! REP 89
+! REP 92
 ! REP í i
 ! REP i í
 ! REP ó o
@@ -103,88 +144,168 @@
   REP ly j
 - REP a ä # Handel->Händel
   REP S © # Skoda->©koda
---- 120,124 ----
+--- 155,159 ----
   
-! REP 78
+! REP 81
   REP j ly
   REP ly j
   REP S © # Skoda->©koda
 ***************
-*** 173,241 ****
+*** 214,251 ****
+  
+! CHR HTML 35
+! CHR HTML &curren; ¤
+! CHR HTML &deg; °
+! CHR HTML &acute; ´
+! CHR HTML &cedil; ¸
+! CHR HTML &Aacute; Á
+! CHR HTML &Acirc; Â
+! CHR HTML &Auml; Ä
+! CHR HTML &Ccedil; Ç
+! CHR HTML &Eacute; É
+! CHR HTML &Euml; Ë
+! CHR HTML &Iacute; Í
+! CHR HTML &Icirc; Î
+! CHR HTML &Oacute; Ó
+! CHR HTML &Ocirc; Ô
+! CHR HTML &Ouml; Ö
+! CHR HTML &times; ×
+! CHR HTML &Uacute; Ú
+! CHR HTML &Uuml; Ü
+! CHR HTML &Yacute; Ý
+! CHR HTML &szlig; ß
+! CHR HTML &aacute; á
+! CHR HTML &acirc; â
+! CHR HTML &auml; ä
+! CHR HTML &ccedil; ç
+! CHR HTML &eacute; é
+! CHR HTML &euml; ë
+! CHR HTML &iacute; í
+! CHR HTML &icirc; î
+! CHR HTML &oacute; ó
+! CHR HTML &ocirc; ô
+! CHR HTML &ouml; ö
+! CHR HTML &divide; ÷
+! CHR HTML &uacute; ú
+! CHR HTML &uuml; ü
+! CHR HTML &yacute; ý
+  
+--- 243,280 ----
+  
+! #CHR HTML 35
+! #CHR HTML &curren; ¤
+! #CHR HTML &deg; °
+! #CHR HTML &acute; ´
+! #CHR HTML &cedil; ¸
+! #CHR HTML &Aacute; Á
+! #CHR HTML &Acirc; Â
+! #CHR HTML &Auml; Ä
+! #CHR HTML &Ccedil; Ç
+! #CHR HTML &Eacute; É
+! #CHR HTML &Euml; Ë
+! #CHR HTML &Iacute; Í
+! #CHR HTML &Icirc; Î
+! #CHR HTML &Oacute; Ó
+! #CHR HTML &Ocirc; Ô
+! #CHR HTML &Ouml; Ö
+! #CHR HTML &times; ×
+! #CHR HTML &Uacute; Ú
+! #CHR HTML &Uuml; Ü
+! #CHR HTML &Yacute; Ý
+! #CHR HTML &szlig; ß
+! #CHR HTML &aacute; á
+! #CHR HTML &acirc; â
+! #CHR HTML &auml; ä
+! #CHR HTML &ccedil; ç
+! #CHR HTML &eacute; é
+! #CHR HTML &euml; ë
+! #CHR HTML &iacute; í
+! #CHR HTML &icirc; î
+! #CHR HTML &oacute; ó
+! #CHR HTML &ocirc; ô
+! #CHR HTML &ouml; ö
+! #CHR HTML &divide; ÷
+! #CHR HTML &uacute; ú
+! #CHR HTML &uuml; ü
+! #CHR HTML &yacute; ý
   
-- # character conversion table
-- # (HTML latin-1 entities -> latin-2)
-- # not implemented yet
+***************
+*** 255,277 ****
+  
+! CHR 123 20
+! CHR 123 a1 á
+! CHR 123 e1 é
+! CHR 123 e2 ë
+! CHR 123 i1 í
+! CHR 123 o1 ó
+! CHR 123 o2 ö
+! CHR 123 o3 ő
+! CHR 123 u1 ú
+! CHR 123 u2 ü
+! CHR 123 u3 ű
+! CHR 123 A1 Á
+! CHR 123 E1 É
+! CHR 123 E2 Ë
+! CHR 123 I1 Í
+! CHR 123 O1 Ó
+! CHR 123 O2 Ö
+! CHR 123 O3 Ő
+! CHR 123 U1 Ú
+! CHR 123 U2 Ü
+! CHR 123 U3 Ű
+  
+--- 284,306 ----
+  
+! #CHR 123 20
+! #CHR 123 a1 á
+! #CHR 123 e1 é
+! #CHR 123 e2 ë
+! #CHR 123 i1 í
+! #CHR 123 o1 ó
+! #CHR 123 o2 ö
+! #CHR 123 o3 ő
+! #CHR 123 u1 ú
+! #CHR 123 u2 ü
+! #CHR 123 u3 ű
+! #CHR 123 A1 Á
+! #CHR 123 E1 É
+! #CHR 123 E2 Ë
+! #CHR 123 I1 Í
+! #CHR 123 O1 Ó
+! #CHR 123 O2 Ö
+! #CHR 123 O3 Ő
+! #CHR 123 U1 Ú
+! #CHR 123 U2 Ü
+! #CHR 123 U3 Ű
+  
+*** hu_HU.orig.dic	Sun Mar 26 15:05:13 2006
+--- hu_HU.dic	Sun Mar 26 20:12:13 2006
+***************
+*** 94597,94600 ****
+  0
+- ...
+- .
+  -öt
+--- 94597,94598 ----
+***************
+*** 94616,94622 ****
+  -/ABCUVWKLMQR
+- ,
+- +
+- )
+- (
+- '
+  &aring;ngström/WĚŻjŘMÝÔíčłĹĺTtYc¸˝l
+--- 94614,94615 ----
+***************
+*** 94634,94642 ****
+  %-/KUŇÖmQSsi)
+- %
+- $
+- "
+- !!!
+- !!
+- !
+- /
 - 
-- CHR HTML 35
-- CHR HTML &curren; ¤
-- CHR HTML &deg; °
-- CHR HTML &acute; ´
-- CHR HTML &cedil; ¸
-- CHR HTML &Aacute; Á
-- CHR HTML &Acirc; Â
-- CHR HTML &Auml; Ä
-- CHR HTML &Ccedil; Ç
-- CHR HTML &Eacute; É
-- CHR HTML &Euml; Ë
-- CHR HTML &Iacute; Í
-- CHR HTML &Icirc; Î
-- CHR HTML &Oacute; Ó
-- CHR HTML &Ocirc; Ô
-- CHR HTML &Ouml; Ö
-- CHR HTML &times; ×
-- CHR HTML &Uacute; Ú
-- CHR HTML &Uuml; Ü
-- CHR HTML &Yacute; Ý
-- CHR HTML &szlig; ß
-- CHR HTML &aacute; á
-- CHR HTML &acirc; â
-- CHR HTML &auml; ä
-- CHR HTML &ccedil; ç
-- CHR HTML &eacute; é
-- CHR HTML &euml; ë
-- CHR HTML &iacute; í
-- CHR HTML &icirc; î
-- CHR HTML &oacute; ó
-- CHR HTML &ocirc; ô
-- CHR HTML &ouml; ö
-- CHR HTML &divide; ÷
-- CHR HTML &uacute; ú
-- CHR HTML &uuml; ü
-- CHR HTML &yacute; ý
-- 
-- # character conversion table
-- # (Prószéky-code -> latin-2)
-- # not implemented yet
-- 
-- CHR 123 20
-- CHR 123 a1 á
-- CHR 123 e1 é
-- CHR 123 e2 ë
-- CHR 123 i1 í
-- CHR 123 o1 ó
-- CHR 123 o2 ö
-- CHR 123 o3 ő
-- CHR 123 u1 ú
-- CHR 123 u2 ü
-- CHR 123 u3 ű
-- CHR 123 A1 Á
-- CHR 123 E1 É
-- CHR 123 E2 Ë
-- CHR 123 I1 Í
-- CHR 123 O1 Ó
-- CHR 123 O2 Ö
-- CHR 123 O3 Ő
-- CHR 123 U1 Ú
-- CHR 123 U2 Ü
-- CHR 123 U3 Ű
-- 
-  SFX z Y 6
---- 201,202 ----
-***************
-*** 17678,17681 ****
-  PFX D   0    leg          .
-- 
--    1
-- 
---- 17639 ----
+--- 94627 ----
--- a/runtime/spell/hu/main.aap
+++ b/runtime/spell/hu/main.aap
@@ -21,23 +21,30 @@ all: $SPELLDIR/hu.iso-8859-2.spl $SPELLD
 $SPELLDIR/hu.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/hu hu_HU" -c q
 
-../README_hu.txt: README_hu_HU.txt
-        :copy $source $target
+../README_hu.txt: $FILES
+        :sys $VIM -u NONE -e hu_HU.aff -c "1,/# ---/w! $target" -c q
 
 #
-# Fetching the files from OpenOffice.org.
+# Fetch the zip file from SourceForge.  Version specific name...
 #
-OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
-:attr {fetch = $OODIR/%file%} hu_HU.zip
+OODIR = http://hunspell.sourceforge.net
+zipname = hu_HU2.zip
+:attr {fetch = $OODIR/%file%} $zipname
 
 # The files don't depend on the .zip file so that we can delete it.
 # Only download the zip file if the targets don't exist.
 # This is a bit tricky, since the file name includes the date.
 hu_HU.aff hu_HU.dic: {buildcheck=}
         :assertpkg unzip patch
-        :fetch hu_HU.zip
-        :sys $UNZIP hu_HU.zip
-        :delete hu_HU.zip
+        :fetch $zipname
+        :sys $UNZIP $zipname
+        :delete $zipname
+
+        # Unfortunately the version number is in the file name...
+        :move hu_HU2.dic hu_HU.dic
+        :move hu_HU2.aff hu_HU.aff
+        :delete hu_HU2.history
+
         @if not os.path.exists('hu_HU.orig.aff'):
             :copy hu_HU.aff hu_HU.orig.aff
         @if not os.path.exists('hu_HU.orig.dic'):
@@ -55,27 +62,5 @@ diff:
         :sys {force} diff -a -C 1 hu_HU.orig.dic hu_HU.dic >>hu_HU.diff
 
 
-# Check for updated OpenOffice spell files.  When there are changes the
-# ".new.aff" and ".new.dic" files are left behind for manual inspection.
-
-check:
-        :assertpkg unzip diff
-        :fetch hu_HU.zip
-        :mkdir tmp
-        :cd tmp
-        @try:
-            @import stat
-            :sys $UNZIP ../hu_HU.zip
-            :sys {force} diff ../hu_HU.orig.aff hu_HU.aff >d
-            @if os.stat('d')[stat.ST_SIZE] > 0:
-                :copy hu_HU.aff ../hu_HU.new.aff
-            :sys {force} diff ../hu_HU.orig.dic hu_HU.dic >d
-            @if os.stat('d')[stat.ST_SIZE] > 0:
-                :copy hu_HU.dic ../hu_HU.new.dic
-        @finally:
-            :cd ..
-            :delete {r}{f}{q} tmp
-            :delete hu_HU.zip
-
 
 # vim: set sts=4 sw=4 :
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -242,15 +242,16 @@ an 50.60.330 &Syntax.L-Ma.Lynx\ config :
 an 50.60.350 &Syntax.L-Ma.M4 :cal SetSyn("m4")<CR>
 an 50.60.360 &Syntax.L-Ma.MaGic\ Point :cal SetSyn("mgp")<CR>
 an 50.60.370 &Syntax.L-Ma.Mail :cal SetSyn("mail")<CR>
-an 50.60.380 &Syntax.L-Ma.Mailcap :cal SetSyn("mailcap")<CR>
-an 50.60.390 &Syntax.L-Ma.Makefile :cal SetSyn("make")<CR>
-an 50.60.400 &Syntax.L-Ma.MakeIndex :cal SetSyn("ist")<CR>
-an 50.60.410 &Syntax.L-Ma.Man\ page :cal SetSyn("man")<CR>
-an 50.60.420 &Syntax.L-Ma.Man\.conf :cal SetSyn("manconf")<CR>
-an 50.60.430 &Syntax.L-Ma.Maple\ V :cal SetSyn("maple")<CR>
-an 50.60.440 &Syntax.L-Ma.Mason :cal SetSyn("mason")<CR>
-an 50.60.450 &Syntax.L-Ma.Mathematica :cal SetSyn("mma")<CR>
-an 50.60.460 &Syntax.L-Ma.Matlab :cal SetSyn("matlab")<CR>
+an 50.60.380 &Syntax.L-Ma.Mail\ aliases :cal SetSyn("mailaliases")<CR>
+an 50.60.390 &Syntax.L-Ma.Mailcap :cal SetSyn("mailcap")<CR>
+an 50.60.400 &Syntax.L-Ma.Makefile :cal SetSyn("make")<CR>
+an 50.60.410 &Syntax.L-Ma.MakeIndex :cal SetSyn("ist")<CR>
+an 50.60.420 &Syntax.L-Ma.Man\ page :cal SetSyn("man")<CR>
+an 50.60.430 &Syntax.L-Ma.Man\.conf :cal SetSyn("manconf")<CR>
+an 50.60.440 &Syntax.L-Ma.Maple\ V :cal SetSyn("maple")<CR>
+an 50.60.450 &Syntax.L-Ma.Mason :cal SetSyn("mason")<CR>
+an 50.60.460 &Syntax.L-Ma.Mathematica :cal SetSyn("mma")<CR>
+an 50.60.470 &Syntax.L-Ma.Matlab :cal SetSyn("matlab")<CR>
 an 50.70.100 &Syntax.Me-NO.MEL\ (for\ Maya) :cal SetSyn("mel")<CR>
 an 50.70.110 &Syntax.Me-NO.Metafont :cal SetSyn("mf")<CR>
 an 50.70.120 &Syntax.Me-NO.MetaPost :cal SetSyn("mp")<CR>
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         fetchmail(1) RC File
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2006-01-25
 
 if exists("b:current_syntax")
   finish
@@ -33,6 +33,7 @@ syn keyword fetchmailServerOpts containe
                                 \ interface monitor plugin plugout dns
                                 \ checkalias uidl interval netsec principal
                                 \ esmtpname esmtppassword
+                                \ sslcertck sslcertpath sslfingerprint
 syn match   fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'
 
 syn keyword fetchmailUserOpts   contained user[name] is to pass[word] ssl
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/mailaliases.vim
@@ -0,0 +1,71 @@
+" Vim syntax file
+" Language:         aliases(5) local alias database file
+" Maintainer:       Nikolai Weibull <nikolai@bitwi.se>
+" Latest Revision:  2006-01-14
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword mailaliasesTodo         contained TODO FIXME XXX NOTE
+
+syn region  mailaliasesComment      display oneline start='^\s*#' end='$'
+                                    \ contains=mailaliasesTodo,@Spell
+
+syn match   mailaliasesBegin        display '^'
+                                    \ nextgroup=mailaliasesName,
+                                    \ mailaliasesComment
+
+syn match   mailaliasesName         contained '[0-9A-Za-z_-]\+'
+                                    \ nextgroup=mailaliasesColon
+
+syn region  mailaliasesName         contained oneline start=+"+
+                                    \ skip=+\\\\\|\\"+ end=+"+
+                                    \ nextgroup=mailaliasesColon
+
+syn match   mailaliasesColon        contained ':'
+                                    \ nextgroup=@mailaliasesValue
+                                    \ skipwhite skipnl
+
+syn cluster mailaliasesValue        contains=mailaliasesValueAddress,
+                                    \ mailaliasesValueFile,
+                                    \ mailaliasesValueCommand,
+                                    \ mailaliasesValueInclude
+
+syn match   mailaliasesValueAddress contained '[^ \t/|,]\+'
+                                    \ nextgroup=mailaliasesValueSep
+                                    \ skipwhite skipnl
+
+syn match   mailaliasesValueFile    contained '/[^,]*'
+                                    \ nextgroup=mailaliasesValueSep
+                                    \ skipwhite skipnl
+
+syn match   mailaliasesValueCommand contained '|[^,]*'
+                                    \ nextgroup=mailaliasesValueSep
+                                    \ skipwhite skipnl
+
+syn match   mailaliasesValueInclude contained ':include:[^,]*'
+                                    \ nextgroup=mailaliasesValueSep
+                                    \ skipwhite skipnl
+
+syn match   mailaliasesValueSep     contained ','
+                                    \ nextgroup=@mailaliasesValue
+                                    \ skipwhite skipnl
+
+hi def link mailaliasesTodo         Todo
+hi def link mailaliasesComment      Comment
+hi def link mailaliasesName         Identifier
+hi def link mailaliasesColon        Delimiter
+hi def link mailaliasesValueAddress String
+hi def link mailaliasesValueFile    String
+hi def link mailaliasesValueCommand String
+hi def link mailaliasesValueInclude PreProc
+hi def link mailaliasesValueSep     Delimiter
+
+let b:current_syntax = "mailaliases"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Latest Revision:  2006-03-26
 
 if exists("b:current_syntax")
   finish
@@ -32,11 +32,11 @@ syn region      rstTable            tran
                                     \ contains=rstTableLines,@rstCruft
 syn match       rstTableLines       contained '^\s*[|+=-]\+$'
 syn region      rstSimpleTable      transparent
-                                    \ start='^\n\s*\%(=\+\s\+\)\%(=\+\s*\)\+$'
+                                    \ start='^\n\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
                                     \ end='^$'
                                     \ contains=rstSimpleTableLines,@rstCruft
 syn match       rstSimpleTableLines contained display
-                                    \ '^\s*\%(=\+\s\+\)\%(=\+\s*\)\+$'
+                                    \ '^\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
 
 syn region      rstFootnote         matchgroup=rstDirective
                                     \ start='^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s'
@@ -69,7 +69,7 @@ syn match       rstHyperlinksLabel  '\w\
 
 syn match       rstInternalTarget   '_`\S\%([^`]*\S\)\=`'
 
-syn match       rstListItem         '^:\%(\w\+\s*\)\+:'
+syn match       rstListItem         '^:\w\+\%(\s\+\w\+\)*:'
 syn match       rstListItem         '^\s*[-*+]\s\+'
 
 syn sync minlines=50
--- a/src/Makefile
+++ b/src/Makefile
@@ -354,10 +354,14 @@ CClink = $(CC)
 # DARWIN - detecting Mac OS X
 # Uncomment this line when you want to compile a Unix version of Vim on
 # Darwin.  None of the Mac specific options or files will be used.
-# You can also change the architecture supported, default is to test for both.
 #CONF_OPT_DARWIN = --disable-darwin
+
+# Select the architecture supported.  Default is to build for the current
+# platform.  Use "both" for a universal binary.  That probably doesn't work
+# when including Perl, Python, etc.
 #CONF_OPT_DARWIN = --with-mac-arch=i386
 #CONF_OPT_DARWIN = --with-mac-arch=ppc
+#CONF_OPT_DARWIN = --with-mac-arch=both
 
 # PERL
 # Uncomment this when you want to include the Perl interface.
@@ -1318,6 +1322,8 @@ DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8
 DEST_MAN_IT = $(DEST_MAN_TOP)/it$(MAN1DIR)
 DEST_MAN_IT_I = $(DEST_MAN_TOP)/it.ISO8859-1$(MAN1DIR)
 DEST_MAN_IT_U = $(DEST_MAN_TOP)/it.UTF-8$(MAN1DIR)
+DEST_MAN_PL = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR)
+DEST_MAN_PL_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)
 
@@ -1897,6 +1903,8 @@ install-tool-languages:
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
 	-$(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_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)
 
@@ -1908,6 +1916,8 @@ install-languages: languages $(DEST_LANG
 	-$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
 	-$(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_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)
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
@@ -1923,6 +1933,10 @@ install-languages: languages $(DEST_LANG
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(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_U) $(INSTALLMLARGS)
+	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU_U) $(INSTALLMLARGS)
@@ -2061,6 +2075,8 @@ uninstall_runtime:
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT) "" $(INSTALLMANARGS)
 	-$(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_U) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_RU) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installman.sh uninstall $(DEST_MAN_RU_U) "" $(INSTALLMANARGS)
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
@@ -2078,12 +2094,17 @@ uninstall_runtime:
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(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_U) $(INSTALLMLARGS)
+	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU) $(INSTALLMLARGS)
 	-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU_U) $(INSTALLMLARGS)
 	-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_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-??
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -876,7 +876,7 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-mac-arch=ARCH    intel, ppc or both
+  --with-mac-arch=ARCH    current, intel, ppc or both
   --with-vim-name=NAME    what to call the Vim executable
   --with-ex-name=NAME     what to call the Ex executable
   --with-view-name=NAME   what to call the View executable
@@ -2874,7 +2874,7 @@ if test "${with_mac_arch+set}" = set; th
   MACARCH="$withval"; echo "$as_me:$LINENO: result: $MACARCH" >&5
 echo "${ECHO_T}$MACARCH" >&6
 else
-  MACARCH="both"; echo "$as_me:$LINENO: result: defaulting to $MACARCH" >&5
+  MACARCH="current"; echo "$as_me:$LINENO: result: defaulting to $MACARCH" >&5
 echo "${ECHO_T}defaulting to $MACARCH" >&6
 fi;
 
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3707,7 +3707,7 @@ build_stl_str_hl(wp, out, outlen, fmt, u
 	    itemisflag = TRUE;
 	    if (wp->w_buffer->b_help)
 		str = (char_u *)((opt == STL_HELPFLAG_ALT) ? ",HLP"
-							       : _("[help]"));
+							       : _("[Help]"));
 	    break;
 
 #ifdef FEAT_AUTOCMD
@@ -4975,7 +4975,7 @@ buf_spname(buf)
 	if (win != NULL && win->w_llist_ref != NULL)
 	    return _("[Location List]");
 	else
-	    return _("[Error List]");
+	    return _("[Quickfix List]");
     }
 #endif
 #ifdef FEAT_QUICKFIX
--- a/src/configure.in
+++ b/src/configure.in
@@ -103,9 +103,9 @@ if test "`(uname) 2>/dev/null`" = Darwin
   fi
 
   AC_MSG_CHECKING(--with-mac-arch argument)
-  AC_ARG_WITH(mac-arch, [  --with-mac-arch=ARCH    intel, ppc or both],
+  AC_ARG_WITH(mac-arch, [  --with-mac-arch=ARCH    current, intel, ppc or both],
 	MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
-	MACARCH="both"; AC_MSG_RESULT(defaulting to $MACARCH))
+	MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
 
   if test "x$MACARCH" = "xboth"; then
     AC_MSG_CHECKING(for 10.4 universal SDK)
--- a/src/eval.c
+++ b/src/eval.c
@@ -8964,42 +8964,54 @@ findfilendir(argvars, rettv, dir)
     char_u	pathbuf[NUMBUFLEN];
     int		count = 1;
     int		first = TRUE;
-
+    int		error = FALSE;
+#endif
+
+    rettv->vval.v_string = NULL;
+    rettv->v_type = VAR_STRING;
+
+#ifdef FEAT_SEARCHPATH
     fname = get_tv_string(&argvars[0]);
 
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
 	p = get_tv_string_buf_chk(&argvars[1], pathbuf);
 	if (p == NULL)
-	    count = -1;	    /* error */
+	    error = TRUE;
 	else
 	{
 	    if (*p != NUL)
 		path = p;
 
 	    if (argvars[2].v_type != VAR_UNKNOWN)
-		count = get_tv_number_chk(&argvars[2], NULL); /* -1: error */
-	}
-    }
-
-    if (*fname != NUL && count >= 0)
+		count = get_tv_number_chk(&argvars[2], &error);
+	}
+    }
+
+    if (count < 0 && rettv_list_alloc(rettv) == FAIL)
+	error = TRUE;
+
+    if (*fname != NUL && !error)
     {
 	do
 	{
-	    vim_free(fresult);
+	    if (rettv->v_type == VAR_STRING)
+		vim_free(fresult);
 	    fresult = find_file_in_path_option(first ? fname : NULL,
 					       first ? (int)STRLEN(fname) : 0,
 					0, first, path, dir, NULL,
 					dir ? (char_u *)"" : curbuf->b_p_sua);
 	    first = FALSE;
-	} while (--count > 0 && fresult != NULL);
-    }
-
-    rettv->vval.v_string = fresult;
-#else
-    rettv->vval.v_string = NULL;
-#endif
-    rettv->v_type = VAR_STRING;
+
+	    if (fresult != NULL && rettv->v_type == VAR_LIST)
+		list_append_string(rettv->vval.v_list, fresult, -1);
+
+	} while ((rettv->v_type == VAR_LIST || --count > 0) && fresult != NULL);
+    }
+
+    if (rettv->v_type == VAR_STRING)
+	rettv->vval.v_string = fresult;
+#endif
 }
 
 static void filter_map __ARGS((typval_T *argvars, typval_T *rettv, int map));
@@ -18673,8 +18685,9 @@ trans_function_name(pp, skip, flags, fdp
     else if (lead > 0)
     {
 	lead = 3;
-	if (eval_fname_sid(*pp))	/* If it's "<SID>" */
-	{
+	if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp))
+	{
+	    /* It's "s:" or "<SID>" */
 	    if (current_SID <= 0)
 	    {
 		EMSG(_(e_usingsid));
--- a/src/main.aap
+++ b/src/main.aap
@@ -658,6 +658,8 @@ DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8
 DEST_MAN_IT = $(DEST_MAN_TOP)/it$(MAN1DIR)
 DEST_MAN_IT_I = $(DEST_MAN_TOP)/it.ISO8859-1$(MAN1DIR)
 DEST_MAN_IT_U = $(DEST_MAN_TOP)/it.UTF-8$(MAN1DIR)
+DEST_MAN_PL = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR)
+DEST_MAN_PL_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)
 
@@ -667,7 +669,9 @@ DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8
                 $DEST_COMP $DEST_KMAP $DEST_MACRO $DEST_TOOLS $DEST_TUTOR
                 $DEST_SCRIPT $DEST_PRINT $DEST_MAN $DEST_SPELL
                 $DEST_MAN_FR $DEST_MAN_FR_I $DEST_MAN_FR_U $DEST_MAN_IT
-                $DEST_MAN_IT_I $DEST_MAN_IT_U $DEST_MAN_RU $DEST_MAN_RU_U
+                $DEST_MAN_IT_I $DEST_MAN_IT_U
+                $DEST_MAN_PL $DEST_MAN_PL_U
+                $DEST_MAN_RU $DEST_MAN_RU_U
 
 #
 # I N S T A L L
@@ -893,6 +897,8 @@ install-tool-languages:
 	:sys ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
 	:sys ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
 
@@ -904,6 +910,8 @@ install-languages {virtual}{force}: lang
 	:sys ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
 	:sys ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS)
+	: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)
 	:sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
@@ -919,6 +927,10 @@ install-languages {virtual}{force}: lang
         :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_IT_U) $(INSTALLMLARGS)
         :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_PL) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_PL_U) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU) $(INSTALLMLARGS)
         :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
 		$(DEST_MAN_RU_U) $(INSTALLMLARGS)
@@ -1049,6 +1061,8 @@ uninstall_runtime {virtual}{force}:
     :sys ./installman.sh uninstall $(DEST_MAN_IT) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_IT_I) "" $(INSTALLMANARGS)
     :sys ./installman.sh uninstall $(DEST_MAN_IT_U) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_PL) "" $(INSTALLMANARGS)
+    :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)
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
@@ -1066,12 +1080,17 @@ uninstall_runtime {virtual}{force}:
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
             $(DEST_MAN_IT_U) $(INSTALLMLARGS)
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_PL) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_PL_U) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
             $(DEST_MAN_RU) $(INSTALLMLARGS)
     :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
             $(DEST_MAN_RU_U) $(INSTALLMLARGS)
     :del {force} $DEST_MAN/xxd.1
     :del {force} $(DEST_MAN_FR)/xxd.1 $(DEST_MAN_FR_I)/xxd.1 $(DEST_MAN_FR_U)/xxd.1
     :del {force} $(DEST_MAN_IT)/xxd.1 $(DEST_MAN_IT_I)/xxd.1 $(DEST_MAN_IT_U)/xxd.1
+    :del {force} $(DEST_MAN_PL)/xxd.1 $(DEST_MAN_PL_U)/xxd.1
     :del {force} $(DEST_MAN_RU)/xxd.1 $(DEST_MAN_RU_U)/xxd.1
 
     :del {force} $DEST_HELP/*.txt $DEST_HELP/tags $DEST_HELP/*.pl
--- a/src/screen.c
+++ b/src/screen.c
@@ -5528,7 +5528,7 @@ win_redr_status(wp)
 	    *(p + len++) = ' ';
 	if (wp->w_buffer->b_help)
 	{
-	    STRCPY(p + len, _("[help]"));
+	    STRCPY(p + len, _("[Help]"));
 	    len += (int)STRLEN(p + len);
 	}
 #ifdef FEAT_QUICKFIX
--- a/src/spell.c
+++ b/src/spell.c
@@ -185,14 +185,21 @@
  * <mapstr>	 N bytes    String with sequences of similar characters,
  *			    separated by slashes.
  *
- * sectionID == SN_COMPOUND: <compmax> <compminlen> <compsylmax> <compflags>
+ * sectionID == SN_COMPOUND: <compmax> <compminlen> <compsylmax> <compoptions>
+ *				<comppatcount> <comppattern> ... <compflags>
  * <compmax>     1 byte	    Maximum nr of words in compound word.
  * <compminlen>  1 byte	    Minimal word length for compounding.
  * <compsylmax>  1 byte	    Maximum nr of syllables in compound word.
+ * <compoptions> 2 bytes    COMP_ flags.
+ * <comppatcount> 2 bytes   number of <comppattern> following
  * <compflags>   N bytes    Flags from COMPOUNDRULE items, separated by
  *			    slashes.
  *
- * sectionID == SN_NOBREAK: (empty, its presence is enough)
+ * <comppattern>: <comppatlen> <comppattext>
+ * <comppatlen>	 1 byte	    length of <comppattext>
+ * <comppattext> N bytes    end or begin chars from CHECKCOMPOUNDPATTERN
+ *
+ * sectionID == SN_NOBREAK: (empty, its presence is what matters)
  *
  * sectionID == SN_SYLLABLE: <syllable>
  * <syllable>    N bytes    String from SYLLABLE item.
@@ -248,6 +255,7 @@
  *			    WF_HAS_AFF >> 8   word includes affix
  *			    WF_NEEDCOMP >> 8  word only valid in compound
  *			    WF_NOSUGGEST >> 8  word not used for suggestions
+ *			    WF_COMPROOT >> 8  word already a compound
  *
  * <pflags>	1 byte	    bitmask of:
  *			    WFP_RARE	rare prefix
@@ -336,6 +344,7 @@ typedef long idx_T;
 #define WF_HAS_AFF  0x0100	/* word includes affix */
 #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 */
 
 /* only used for su_badflags */
 #define WF_MIXCAP   0x20	/* mix of upper and lower case: macaRONI */
@@ -356,6 +365,12 @@ typedef long idx_T;
 #define WF_PFX_UP   (WFP_UP << 24)	/* in sl_pidxs: flag for to-upper
 					 * postponed prefix */
 
+/* flags for <compoptions> */
+#define COMP_CHECKDUP		1	/* CHECKCOMPOUNDDUP */
+#define COMP_CHECKREP		2	/* CHECKCOMPOUNDREP */
+#define COMP_CHECKCASE		4	/* CHECKCOMPOUNDCASE */
+#define COMP_CHECKTRIPLE	8	/* CHECKCOMPOUNDTRIPLE */
+
 /* Special byte values for <byte>.  Some are only used in the tree for
  * postponed prefixes, some only in the other trees.  This is a bit messy... */
 #define BY_NOFLAGS	0	/* end of word without flags or region; for
@@ -443,9 +458,11 @@ struct slang_S
 
     hashtab_T	sl_wordcount;	/* hashtable with word count, wordcount_T */
 
-    int		sl_compmax;	/* COMPOUNDMAX (default: MAXWLEN) */
+    int		sl_compmax;	/* COMPOUNDWORDMAX (default: MAXWLEN) */
     int		sl_compminlen;	/* COMPOUNDMIN (default: 0) */
     int		sl_compsylmax;	/* COMPOUNDSYLMAX (default: MAXWLEN) */
+    int		sl_compoptions;	/* COMP_* flags */
+    garray_T	sl_comppat;	/* CHECKCOMPOUNDPATTERN items */
     regprog_T	*sl_compprog;	/* COMPOUNDRULE turned into a regexp progrm
 				 * (NULL when no compounding) */
     char_u	*sl_compstartflags; /* flags for first compound word */
@@ -693,6 +710,7 @@ typedef struct matchinf_S
     int		mi_compoff;		/* start of following word offset */
     char_u	mi_compflags[MAXWLEN];	/* flags for compound words used */
     int		mi_complen;		/* nr of compound words used */
+    int		mi_compextra;		/* nr of COMPOUNDROOT words */
 
     /* others */
     int		mi_result;		/* result so far: SP_BAD, SP_OK, etc. */
@@ -1475,9 +1493,10 @@ find_word(mip, mode)
 			continue;
 #endif
 
-		/* Limit the number of compound words to COMPOUNDMAX if no
+		/* Limit the number of compound words to COMPOUNDWORDMAX if no
 		 * maximum for syllables is specified. */
-		if (!word_ends && mip->mi_complen + 2 > slang->sl_compmax
+		if (!word_ends && mip->mi_complen + mip->mi_compextra + 2
+							   > slang->sl_compmax
 					   && slang->sl_compsylmax == MAXWLEN)
 		    continue;
 
@@ -1589,6 +1608,8 @@ find_word(mip, mode)
 #endif
 		c = mip->mi_compoff;
 		++mip->mi_complen;
+		if (flags & WF_COMPROOT)
+		    ++mip->mi_compextra;
 
 		/* For NOBREAK we need to try all NOBREAK languages, at least
 		 * to find the ".add" file(s). */
@@ -1625,6 +1646,8 @@ find_word(mip, mode)
 			break;
 		}
 		--mip->mi_complen;
+		if (flags & WF_COMPROOT)
+		    --mip->mi_compextra;
 		mip->mi_lp = save_lp;
 
 		if (slang->sl_nobreak)
@@ -1726,7 +1749,7 @@ can_compound(slang, word, flags)
 
     /* Count the number of syllables.  This may be slow, do it last.  If there
      * are too many syllables AND the number of compound words is above
-     * COMPOUNDMAX then compounding is not allowed. */
+     * COMPOUNDWORDMAX then compounding is not allowed. */
     if (slang->sl_compsylmax < MAXWLEN
 		       && count_syllables(slang, word) > slang->sl_compsylmax)
 	return (int)STRLEN(flags) < slang->sl_compmax;
@@ -2465,6 +2488,8 @@ slang_clear(lp)
     lp->sl_syllable = NULL;
     ga_clear(&lp->sl_syl_items);
 
+    ga_clear_strings(&lp->sl_comppat);
+
     hash_clear_all(&lp->sl_wordcount, WC_KEY_OFF);
     hash_init(&lp->sl_wordcount);
 
@@ -3371,7 +3396,7 @@ read_sofo_section(fd, slang)
 
 /*
  * Read the compound section from the .spl file:
- *	<compmax> <compminlen> <compsylmax> <compflags>
+ *	<compmax> <compminlen> <compsylmax> <compoptions> <compflags>
  * Returns SP_*ERROR flags.
  */
     static int
@@ -3387,6 +3412,8 @@ read_compound(fd, slang, len)
     char_u	*pp;
     char_u	*cp;
     char_u	*ap;
+    int		cnt;
+    garray_T	*gap;
 
     if (todo < 2)
 	return SP_FORMERROR;	/* need at least two bytes */
@@ -3409,6 +3436,32 @@ read_compound(fd, slang, len)
 	c = MAXWLEN;
     slang->sl_compsylmax = c;
 
+    c = getc(fd);					/* <compoptions> */
+    if (c != 0)
+	ungetc(c, fd);	    /* be backwards compatible with Vim 7.0b */
+    else
+    {
+	--todo;
+	c = getc(fd);	    /* only use the lower byte for now */
+	--todo;
+	slang->sl_compoptions = c;
+
+	gap = &slang->sl_comppat;
+	c = get2c(fd);					/* <comppatcount> */
+	todo -= 2;
+	ga_init2(gap, sizeof(char_u *), c);
+	if (ga_grow(gap, c) == OK)
+	    while (--c >= 0)
+	    {
+		((char_u **)(gap->ga_data))[gap->ga_len++] =
+						 read_cnt_string(fd, 1, &cnt);
+					    /* <comppatlen> <comppattext> */
+		if (cnt < 0)
+		    return cnt;
+		todo -= cnt + 2;
+	    }
+    }
+
     /* Turn the COMPOUNDRULE items into a regexp pattern:
      * "a[bc]/a*b+" -> "^\(a[bc]\|a*b\+\)$".
      * Inserting backslashes may double the length, "^\(\)$<Nul>" is 7 bytes.
@@ -4588,8 +4641,12 @@ typedef struct afffile_S
     unsigned	af_bad;		/* BAD ID for banned word */
     unsigned	af_needaffix;	/* NEEDAFFIX ID */
     unsigned	af_needcomp;	/* NEEDCOMPOUND ID */
+    unsigned	af_comproot;	/* COMPOUNDROOT ID */
+    unsigned	af_compforbid;	/* COMPOUNDFORBIDFLAG ID */
+    unsigned	af_comppermit;	/* COMPOUNDPERMITFLAG ID */
     unsigned	af_nosuggest;	/* NOSUGGEST ID */
-    int		af_pfxpostpone;	/* postpone prefixes without chop string */
+    int		af_pfxpostpone;	/* postpone prefixes without chop string and
+				   without flags */
     hashtab_T	af_pref;	/* hashtable for prefixes, affheader_T */
     hashtab_T	af_suff;	/* hashtable for suffixes, affheader_T */
     hashtab_T	af_comp;	/* hashtable for compound flags, compitem_T */
@@ -4607,9 +4664,9 @@ struct affentry_S
     affentry_T	*ae_next;	/* next affix with same name/number */
     char_u	*ae_chop;	/* text to chop off basic word (can be NULL) */
     char_u	*ae_add;	/* text to add to basic word (can be NULL) */
+    char_u	*ae_flags;	/* flags on the affix (can be NULL) */
     char_u	*ae_cond;	/* condition (NULL for ".") */
     regprog_T	*ae_prog;	/* regexp program for ae_cond or NULL */
-    char_u	ae_rare;	/* rare affix */
     char_u	ae_nocomp;	/* word with affix not compoundable */
 };
 
@@ -4757,6 +4814,9 @@ typedef struct spellinfo_S
     int		si_compmax;	/* max nr of words for compounding */
     int		si_compminlen;	/* minimal length for compounding */
     int		si_compsylmax;	/* max nr of syllables for compounding */
+    int		si_compoptions;	/* COMP_ flags */
+    garray_T	si_comppat;	/* CHECKCOMPOUNDPATTERN items, each stored as
+				   a string */
     char_u	*si_compflags;	/* flags used for compounding */
     char_u	si_nobreak;	/* NOBREAK */
     char_u	*si_syllable;	/* syllable string */
@@ -4960,7 +5020,8 @@ spell_read_aff(spin, fname)
     int		l;
     int		compminlen = 0;		/* COMPOUNDMIN value */
     int		compsylmax = 0;		/* COMPOUNDSYLMAX value */
-    int		compmax = 0;		/* COMPOUNDMAX value */
+    int		compoptions = 0;	/* COMP_ flags */
+    int		compmax = 0;		/* COMPOUNDWORDMAX value */
     char_u	*compflags = NULL;	/* COMPOUNDFLAG and COMPOUNDRULE
 					   concatenated */
     char_u	*midword = NULL;	/* MIDWORD value */
@@ -5096,6 +5157,7 @@ spell_read_aff(spin, fname)
 			|| aff->af_bad != 0
 			|| aff->af_needaffix != 0
 			|| aff->af_needcomp != 0
+			|| aff->af_comproot != 0
 			|| aff->af_nosuggest != 0
 			|| compflags != NULL
 			|| aff->af_suff.ht_used > 0
@@ -5171,6 +5233,24 @@ spell_read_aff(spin, fname)
 		aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1],
 								 fname, lnum);
 	    }
+	    else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2
+						     && aff->af_comproot == 0)
+	    {
+		aff->af_comproot = affitem2flag(aff->af_flagtype, items[1],
+								 fname, lnum);
+	    }
+	    else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0
+				   && itemcnt == 2 && aff->af_compforbid == 0)
+	    {
+		aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1],
+								 fname, lnum);
+	    }
+	    else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0
+				   && itemcnt == 2 && aff->af_comppermit == 0)
+	    {
+		aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1],
+								 fname, lnum);
+	    }
 	    else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2
 							 && compflags == NULL)
 	    {
@@ -5203,12 +5283,12 @@ spell_read_aff(spin, fname)
 		    compflags = p;
 		}
 	    }
-	    else if (STRCMP(items[0], "COMPOUNDMAX") == 0 && itemcnt == 2
+	    else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2
 							      && compmax == 0)
 	    {
 		compmax = atoi((char *)items[1]);
 		if (compmax == 0)
-		    smsg((char_u *)_("Wrong COMPOUNDMAX value in %s line %d: %s"),
+		    smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"),
 						       fname, lnum, items[1]);
 	    }
 	    else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2
@@ -5227,6 +5307,50 @@ spell_read_aff(spin, fname)
 		    smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"),
 						       fname, lnum, items[1]);
 	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1)
+	    {
+		compoptions |= COMP_CHECKDUP;
+	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1)
+	    {
+		compoptions |= COMP_CHECKREP;
+	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1)
+	    {
+		compoptions |= COMP_CHECKCASE;
+	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0
+							      && itemcnt == 1)
+	    {
+		compoptions |= COMP_CHECKTRIPLE;
+	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0
+							      && itemcnt == 2)
+	    {
+		if (atoi((char *)items[1]) == 0)
+		    smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"),
+						       fname, lnum, items[1]);
+	    }
+	    else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0
+							      && itemcnt == 3)
+	    {
+		garray_T    *gap = &spin->si_comppat;
+		int	    i;
+
+		/* Only add the couple if it isn't already there. */
+		for (i = 0; i < gap->ga_len - 1; i += 2)
+		    if (STRCMP(((char_u **)(gap->ga_data))[i], items[1]) == 0
+			    && STRCMP(((char_u **)(gap->ga_data))[i + 1],
+							       items[2]) == 0)
+			break;
+		if (i >= gap->ga_len && ga_grow(gap, 2) == OK)
+		{
+		    ((char_u **)(gap->ga_data))[gap->ga_len++]
+					       = getroom_save(spin, items[1]);
+		    ((char_u **)(gap->ga_data))[gap->ga_len++]
+					       = getroom_save(spin, items[2]);
+		}
+	    }
 	    else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2
 							  && syllable == NULL)
 	    {
@@ -5293,7 +5417,8 @@ spell_read_aff(spin, fname)
 			    || cur_aff->ah_flag == aff->af_keepcase
 			    || cur_aff->ah_flag == aff->af_needaffix
 			    || cur_aff->ah_flag == aff->af_nosuggest
-			    || cur_aff->ah_flag == aff->af_needcomp)
+			    || cur_aff->ah_flag == aff->af_needcomp
+			    || cur_aff->ah_flag == aff->af_comproot)
 			smsg((char_u *)_("Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %s"),
 						       fname, lnum, items[1]);
 		    STRCPY(cur_aff->ah_key, items[1]);
@@ -5315,8 +5440,7 @@ spell_read_aff(spin, fname)
 		/* Myspell allows extra text after the item, but that might
 		 * mean mistakes go unnoticed.  Require a comment-starter. */
 		if (itemcnt > lasti && *items[lasti] != '#')
-		    smsg((char_u *)_("Trailing text in %s line %d: %s"),
-						       fname, lnum, items[4]);
+		    smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
 
 		if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0)
 		    smsg((char_u *)_("Expected Y or N in %s line %d: %s"),
@@ -5350,31 +5474,16 @@ spell_read_aff(spin, fname)
 		    && itemcnt >= 5)
 	    {
 		affentry_T	*aff_entry;
-		int		rare = FALSE;
 		int		nocomp = FALSE;
 		int		upper = FALSE;
 		int		lasti = 5;
 
-		/* Check for "rare" and "nocomp" after the other info. */
-		while (itemcnt > lasti)
-		{
-		    if (!rare && STRICMP(items[lasti], "rare") == 0)
-		    {
-			rare = TRUE;
-			++lasti;
-		    }
-		    else if (!nocomp && STRICMP(items[lasti], "nocomp") == 0)
-		    {
-			nocomp = TRUE;
-			++lasti;
-		    }
-		    else
-			break;
-		}
-
 		/* Myspell allows extra text after the item, but that might
-		 * mean mistakes go unnoticed.  Require a comment-starter. */
-		if (itemcnt > lasti && *items[lasti] != '#')
+		 * mean mistakes go unnoticed.  Require a comment-starter.
+		 * Hunspell uses a "-" item. */
+		if (itemcnt > lasti && *items[lasti] != '#'
+			&& (STRCMP(items[lasti], "-") != 0
+						     || itemcnt != lasti + 1))
 		    smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
 
 		/* New item for an affix letter. */
@@ -5383,14 +5492,20 @@ spell_read_aff(spin, fname)
 						    sizeof(affentry_T), TRUE);
 		if (aff_entry == NULL)
 		    break;
-		aff_entry->ae_rare = rare;
 		aff_entry->ae_nocomp = nocomp;
 
 		if (STRCMP(items[2], "0") != 0)
 		    aff_entry->ae_chop = getroom_save(spin, items[2]);
 		if (STRCMP(items[3], "0") != 0)
+		{
 		    aff_entry->ae_add = getroom_save(spin, items[3]);
 
+		    /* Recognize flags on the affix: abcd/1234 */
+		    aff_entry->ae_flags = vim_strchr(aff_entry->ae_add, '/');
+		    if (aff_entry->ae_flags != NULL)
+			*aff_entry->ae_flags++ = NUL;
+		}
+
 		/* Don't use an affix entry with non-ASCII characters when
 		 * "spin->si_ascii" is TRUE. */
 		if (!spin->si_ascii || !(has_non_ascii(aff_entry->ae_chop)
@@ -5416,8 +5531,10 @@ spell_read_aff(spin, fname)
 		    }
 
 		    /* For postponed prefixes we need an entry in si_prefcond
-		     * for the condition.  Use an existing one if possible. */
-		    if (*items[0] == 'P' && aff->af_pfxpostpone)
+		     * for the condition.  Use an existing one if possible.
+		     * Can't be done for an affix with flags. */
+		    if (*items[0] == 'P' && aff->af_pfxpostpone
+					       && aff_entry->ae_flags == NULL)
 		    {
 			/* When the chop string is one lower-case letter and
 			 * the add string ends in the upper-case letter we set
@@ -5480,7 +5597,8 @@ spell_read_aff(spin, fname)
 			    }
 			}
 
-			if (aff_entry->ae_chop == NULL)
+			if (aff_entry->ae_chop == NULL
+					       && aff_entry->ae_flags == NULL)
 			{
 			    int		idx;
 			    char_u	**pp;
@@ -5507,16 +5625,19 @@ spell_read_aff(spin, fname)
 							  aff_entry->ae_cond);
 			    }
 
+			    if (aff_entry->ae_flags != NULL)
+				smsg((char_u *)_("Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"),
+						       fname, lnum, items[4]);
+
 			    /* Add the prefix to the prefix tree. */
 			    if (aff_entry->ae_add == NULL)
 				p = (char_u *)"";
 			    else
 				p = aff_entry->ae_add;
+
 			    /* PFX_FLAGS is a negative number, so that
 			     * tree_add_word() knows this is the prefix tree. */
 			    n = PFX_FLAGS;
-			    if (rare)
-				n |= WFP_RARE;
 			    if (!cur_aff->ah_combine)
 				n |= WFP_NC;
 			    if (upper)
@@ -5709,7 +5830,7 @@ spell_read_aff(spin, fname)
     /* Use compound specifications of the .aff file for the spell info. */
     if (compmax != 0)
     {
-	aff_check_number(spin->si_compmax, compmax, "COMPOUNDMAX");
+	aff_check_number(spin->si_compmax, compmax, "COMPOUNDWORDMAX");
 	spin->si_compmax = compmax;
     }
 
@@ -5727,6 +5848,12 @@ spell_read_aff(spin, fname)
 	spin->si_compsylmax = compsylmax;
     }
 
+    if (compoptions != 0)
+    {
+	aff_check_number(spin->si_compoptions, compoptions, "COMPOUND options");
+	spin->si_compoptions |= compoptions;
+    }
+
     if (compflags != NULL)
 	process_compflags(spin, aff, compflags);
 
@@ -6327,6 +6454,9 @@ spell_read_dic(spin, fname, affile)
 	    if (affile->af_needcomp != 0 && flag_in_afflist(
 			   affile->af_flagtype, afflist, affile->af_needcomp))
 		flags |= WF_NEEDCOMP;
+	    if (affile->af_comproot != 0 && flag_in_afflist(
+			   affile->af_flagtype, afflist, affile->af_comproot))
+		flags |= WF_COMPROOT;
 	    if (affile->af_nosuggest != 0 && flag_in_afflist(
 			   affile->af_flagtype, afflist, affile->af_nosuggest))
 		flags |= WF_NOSUGGEST;
@@ -6512,11 +6642,12 @@ store_aff_word(spin, word, afflist, affi
 		     * Another requirement from Myspell is that the chop
 		     * string is shorter than the word itself.
 		     * For prefixes, when "PFXPOSTPONE" was used, only do
-		     * prefixes with a chop string. */
+		     * prefixes with a chop string and/or flags. */
 		    regmatch.regprog = ae->ae_prog;
 		    regmatch.rm_ic = FALSE;
 		    if ((xht != NULL || !affile->af_pfxpostpone
-				|| ae->ae_chop != NULL)
+				|| ae->ae_chop != NULL
+				|| ae->ae_flags != NULL)
 			    && (ae->ae_chop == NULL
 				|| STRLEN(ae->ae_chop) < wordlen)
 			    && (ae->ae_prog == NULL
@@ -6565,15 +6696,24 @@ store_aff_word(spin, word, afflist, affi
 			}
 
 			/* Obey the "rare" flag of the affix. */
-			if (ae->ae_rare)
+			if (affile->af_rare != 0
+				&& ae->ae_flags != NULL
+				&& flag_in_afflist(
+				    affile->af_flagtype, ae->ae_flags,
+							     affile->af_rare))
 			    use_flags = flags | WF_RARE;
 			else
 			    use_flags = flags;
 
-			/* Obey the "nocomp" flag of the affix: don't use the
-			 * compound flags. */
+			/* Obey a "COMPOUNDFORBID" flag of the affix: don't
+			 * use the compound flags. */
 			use_pfxlist = pfxlist;
-			if (ae->ae_nocomp && pfxlist != NULL)
+			if (pfxlist != NULL
+				&& affile->af_compforbid != 0
+				&& ae->ae_flags != NULL
+				&& flag_in_afflist(
+				    affile->af_flagtype, ae->ae_flags,
+						       affile->af_compforbid))
 			{
 			    vim_strncpy(pfx_pfxlist, pfxlist, pfxlen);
 			    use_pfxlist = pfx_pfxlist;
@@ -7803,12 +7943,26 @@ write_vim_spell(spin, fname)
 	putc(0, fd);					/* <sectionflags> */
 
 	l = STRLEN(spin->si_compflags);
-	put_bytes(fd, (long_u)(l + 3), 4);		/* <sectionlen> */
+	for (i = 0; i < spin->si_comppat.ga_len; ++i)
+	    l += STRLEN(((char_u **)(spin->si_comppat.ga_data))[i]) + 1;
+	put_bytes(fd, (long_u)(l + 7), 4);		/* <sectionlen> */
+
 	putc(spin->si_compmax, fd);			/* <compmax> */
 	putc(spin->si_compminlen, fd);			/* <compminlen> */
 	putc(spin->si_compsylmax, fd);			/* <compsylmax> */
+	putc(0, fd);		/* for Vim 7.0b compatibility */
+	putc(spin->si_compoptions, fd);			/* <compoptions> */
+	put_bytes(fd, (long_u)spin->si_comppat.ga_len, 2);
+							/* <comppatcount> */
+	for (i = 0; i < spin->si_comppat.ga_len; ++i)
+	{
+	    p = ((char_u **)(spin->si_comppat.ga_data))[i];
+	    putc(STRLEN(p), fd);			/* <comppatlen> */
+	    fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */
+	}
 							/* <compflags> */
-	fwrite(spin->si_compflags, (size_t)l, (size_t)1, fd);
+	fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags),
+							       (size_t)1, fd);
     }
 
     /* SN_NOBREAK: NOBREAK flag */
@@ -8611,6 +8765,7 @@ mkspell(fcount, fnames, ascii, overwrite
     ga_init2(&spin.si_repsal, (int)sizeof(fromto_T), 20);
     ga_init2(&spin.si_sal, (int)sizeof(fromto_T), 20);
     ga_init2(&spin.si_map, (int)sizeof(char_u), 100);
+    ga_init2(&spin.si_comppat, (int)sizeof(char_u *), 20);
     ga_init2(&spin.si_prefcond, (int)sizeof(char_u *), 50);
     hash_init(&spin.si_commonwords);
     spin.si_newcompID = 127;	/* start compound ID at first maximum */
@@ -8804,6 +8959,7 @@ mkspell(fcount, fnames, ascii, overwrite
 	ga_clear(&spin.si_repsal);
 	ga_clear(&spin.si_sal);
 	ga_clear(&spin.si_map);
+	ga_clear(&spin.si_comppat);
 	ga_clear(&spin.si_prefcond);
 	hash_clear_all(&spin.si_commonwords, 0);
 
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6066,203 +6066,208 @@ syn_get_foldlevel(wp, lnum)
  * The #ifdefs are needed to reduce the amount of static data.  Helps to make
  * the 16 bit DOS (museum) version compile.
  */
+#ifdef FEAT_GUI
+# define CENT(a, b) b
+#else
+# define CENT(a, b) a
+#endif
 static char *(highlight_init_both[]) =
     {
-	"ErrorMsg term=standout ctermbg=DarkRed ctermfg=White",
-	"IncSearch term=reverse cterm=reverse",
-	"ModeMsg term=bold cterm=bold",
-	"NonText term=bold ctermfg=Blue",
-	"StatusLine term=reverse,bold cterm=reverse,bold",
-	"StatusLineNC term=reverse cterm=reverse",
+	CENT("ErrorMsg term=standout ctermbg=DarkRed ctermfg=White",
+	     "ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White"),
+	CENT("IncSearch term=reverse cterm=reverse",
+	     "IncSearch term=reverse cterm=reverse gui=reverse"),
+	CENT("ModeMsg term=bold cterm=bold",
+	     "ModeMsg term=bold cterm=bold gui=bold"),
+	CENT("NonText term=bold ctermfg=Blue",
+	     "NonText term=bold ctermfg=Blue gui=bold guifg=Blue"),
+	CENT("StatusLine term=reverse,bold cterm=reverse,bold",
+	     "StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold"),
+	CENT("StatusLineNC term=reverse cterm=reverse",
+	     "StatusLineNC term=reverse cterm=reverse gui=reverse"),
 #ifdef FEAT_VERTSPLIT
-	"VertSplit term=reverse cterm=reverse",
+	CENT("VertSplit term=reverse cterm=reverse",
+	     "VertSplit term=reverse cterm=reverse gui=reverse"),
 #endif
 #ifdef FEAT_CLIPBOARD
-	"VisualNOS term=underline,bold cterm=underline,bold",
+	CENT("VisualNOS term=underline,bold cterm=underline,bold",
+	     "VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold"),
 #endif
 #ifdef FEAT_DIFF
-	"DiffText term=reverse cterm=bold ctermbg=Red",
+	CENT("DiffText term=reverse cterm=bold ctermbg=Red",
+	     "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red"),
 #endif
 #ifdef FEAT_INS_EXPAND
-	"PmenuThumb cterm=reverse",
-	"PmenuSbar ctermbg=Grey",
+	CENT("PmenuThumb cterm=reverse",
+	     "PmenuThumb cterm=reverse gui=reverse"),
+	CENT("PmenuSbar ctermbg=Grey",
+	     "PmenuSbar ctermbg=Grey guibg=Grey"),
 #endif
 #ifdef FEAT_WINDOWS
-	"TabLineSel term=bold cterm=bold",
-	"TabLineFill term=reverse cterm=reverse",
+	CENT("TabLineSel term=bold cterm=bold",
+	     "TabLineSel term=bold cterm=bold gui=bold"),
+	CENT("TabLineFill term=reverse cterm=reverse",
+	     "TabLineFill term=reverse cterm=reverse gui=reverse"),
 #endif
 #ifdef FEAT_AUTOCMD
-	"MatchParen term=reverse ctermbg=Cyan",
+	CENT("MatchParen term=reverse ctermbg=Cyan",
+	     "MatchParen term=reverse ctermbg=Cyan guibg=Cyan"),
 #endif
 #ifdef FEAT_GUI
-	"ErrorMsg guibg=Red guifg=White",
-	"IncSearch gui=reverse",
-	"ModeMsg gui=bold",
-	"NonText gui=bold guifg=Blue",
-	"StatusLine gui=reverse,bold",
-	"StatusLineNC gui=reverse",
-	"VertSplit gui=reverse",
-	"VisualNOS gui=underline,bold",
-	"DiffText gui=bold guibg=Red",
-	"PmenuThumb gui=reverse",
-	"PmenuSbar guibg=Grey",
-	"TabLineSel gui=bold",
-	"TabLineFill gui=reverse",
-	"MatchParen guibg=Cyan",
 	"Cursor guibg=fg guifg=bg",
-	"lCursor guibg=fg guifg=bg",	/* should be different, but what? */
+	"lCursor guibg=fg guifg=bg", /* should be different, but what? */
 #endif
 	NULL
     };
 
 static char *(highlight_init_light[]) =
     {
-	"Directory term=bold ctermfg=DarkBlue",
-	"LineNr term=underline ctermfg=Brown",
-	"MoreMsg term=bold ctermfg=DarkGreen",
-	"Question term=standout ctermfg=DarkGreen",
-	"Search term=reverse ctermbg=Yellow ctermfg=NONE",
+	CENT("Directory term=bold ctermfg=DarkBlue",
+	     "Directory term=bold ctermfg=DarkBlue guifg=Blue"),
+	CENT("LineNr term=underline ctermfg=Brown",
+	     "LineNr term=underline ctermfg=Brown guifg=Brown"),
+	CENT("MoreMsg term=bold ctermfg=DarkGreen",
+	     "MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen"),
+	CENT("Question term=standout ctermfg=DarkGreen",
+	     "Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen"),
+	CENT("Search term=reverse ctermbg=Yellow ctermfg=NONE",
+	     "Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE"),
 #ifdef FEAT_SPELL
-	"SpellBad term=reverse ctermbg=LightRed",
-	"SpellCap term=reverse ctermbg=LightBlue",
-	"SpellRare term=reverse ctermbg=LightMagenta",
-	"SpellLocal term=underline ctermbg=Cyan",
+	CENT("SpellBad term=reverse ctermbg=LightRed",
+	     "SpellBad term=reverse ctermbg=LightRed guisp=Red gui=undercurl"),
+	CENT("SpellCap term=reverse ctermbg=LightBlue",
+	     "SpellCap term=reverse ctermbg=LightBlue guisp=Blue gui=undercurl"),
+	CENT("SpellRare term=reverse ctermbg=LightMagenta",
+	     "SpellRare term=reverse ctermbg=LightMagenta guisp=Magenta gui=undercurl"),
+	CENT("SpellLocal term=underline ctermbg=Cyan",
+	     "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
 #endif
 #ifdef FEAT_INS_EXPAND
-	"Pmenu ctermbg=LightMagenta",
-	"PmenuSel ctermbg=LightGrey",
+	CENT("Pmenu ctermbg=LightMagenta",
+	     "Pmenu ctermbg=LightMagenta guibg=LightMagenta"),
+	CENT("PmenuSel ctermbg=LightGrey",
+	     "PmenuSel ctermbg=LightGrey guibg=Grey"),
 #endif
-	"SpecialKey term=bold ctermfg=DarkBlue",
-	"Title term=bold ctermfg=DarkMagenta",
-	"WarningMsg term=standout ctermfg=DarkRed",
+	CENT("SpecialKey term=bold ctermfg=DarkBlue",
+	     "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
+	CENT("Title term=bold ctermfg=DarkMagenta",
+	     "Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta"),
+	CENT("WarningMsg term=standout ctermfg=DarkRed",
+	     "WarningMsg term=standout ctermfg=DarkRed guifg=Red"),
 #ifdef FEAT_WILDMENU
-	"WildMenu term=standout ctermbg=Yellow ctermfg=Black",
+	CENT("WildMenu term=standout ctermbg=Yellow ctermfg=Black",
+	     "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"),
 #endif
 #ifdef FEAT_FOLDING
-	"Folded term=standout ctermbg=Grey ctermfg=DarkBlue",
-	"FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue",
+	CENT("Folded term=standout ctermbg=Grey ctermfg=DarkBlue",
+	     "Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue"),
+	CENT("FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue",
+	     "FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue"),
 #endif
 #ifdef FEAT_SIGNS
-	"SignColumn term=standout ctermbg=Grey ctermfg=DarkBlue",
+	CENT("SignColumn term=standout ctermbg=Grey ctermfg=DarkBlue",
+	     "SignColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue"),
 #endif
 #ifdef FEAT_VISUAL
-	"Visual term=reverse ctermbg=Magenta",
+	CENT("Visual term=reverse ctermbg=Magenta",
+	     "Visual term=reverse ctermbg=Magenta guibg=LightGrey"),
 #endif
 #ifdef FEAT_DIFF
-	"DiffAdd term=bold ctermbg=LightBlue",
-	"DiffChange term=bold ctermbg=LightMagenta",
-	"DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan",
+	CENT("DiffAdd term=bold ctermbg=LightBlue",
+	     "DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue"),
+	CENT("DiffChange term=bold ctermbg=LightMagenta",
+	     "DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta"),
+	CENT("DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan",
+	     "DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan"),
 #endif
 #ifdef FEAT_WINDOWS
-	"TabLine term=underline cterm=underline ctermfg=black ctermbg=LightGrey",
+	CENT("TabLine term=underline cterm=underline ctermfg=black ctermbg=LightGrey",
+	     "TabLine term=underline cterm=underline ctermfg=black ctermbg=LightGrey gui=underline guibg=LightGrey"),
 #endif
 #ifdef FEAT_SYN_HL
-	"CursorColumn term=reverse ctermbg=LightGrey",
-	"CursorLine term=underline cterm=underline",
+	CENT("CursorColumn term=reverse ctermbg=LightGrey",
+	     "CursorColumn term=reverse ctermbg=LightGrey guibg=LightGrey"),
+	CENT("CursorLine term=underline cterm=underline",
+	     "CursorLine term=underline cterm=underline guibg=LightGrey"),
 #endif
 #ifdef FEAT_GUI
-	"Directory guifg=Blue",
-	"LineNr guifg=Brown",
-	"MoreMsg gui=bold guifg=SeaGreen",
 	"Normal gui=NONE",
-	"Question gui=bold guifg=SeaGreen",
-	"Search guibg=Yellow guifg=NONE",
-	"SpellBad guisp=Red gui=undercurl",
-	"SpellCap guisp=Blue gui=undercurl",
-	"SpellRare guisp=Magenta gui=undercurl",
-	"SpellLocal guisp=DarkCyan gui=undercurl",
-	"Pmenu guibg=LightMagenta",
-	"PmenuSel guibg=Grey",
-	"SpecialKey guifg=Blue",
-	"Title gui=bold guifg=Magenta",
-	"WarningMsg guifg=Red",
-	"WildMenu guibg=Yellow guifg=Black",
-	"Folded guibg=LightGrey guifg=DarkBlue",
-	"FoldColumn guibg=Grey guifg=DarkBlue",
-	"SignColumn guibg=Grey guifg=DarkBlue",
-	"Visual guibg=LightGrey",
-	"DiffAdd guibg=LightBlue",
-	"DiffChange guibg=LightMagenta",
-	"DiffDelete gui=bold guifg=Blue guibg=LightCyan",
-	"TabLine gui=underline guibg=LightGrey",
-	"CursorColumn guibg=LightGrey",
-	"CursorLine guibg=LightGrey",
 #endif
 	NULL
     };
 
 static char *(highlight_init_dark[]) =
     {
-	"Directory term=bold ctermfg=LightCyan",
-	"LineNr term=underline ctermfg=Yellow",
-	"MoreMsg term=bold ctermfg=LightGreen",
-	"Question term=standout ctermfg=LightGreen",
-	"Search term=reverse ctermbg=Yellow ctermfg=Black",
-	"SpecialKey term=bold ctermfg=LightBlue",
+	CENT("Directory term=bold ctermfg=LightCyan",
+	     "Directory term=bold ctermfg=LightCyan guifg=Cyan"),
+	CENT("LineNr term=underline ctermfg=Yellow",
+	     "LineNr term=underline ctermfg=Yellow guifg=Yellow"),
+	CENT("MoreMsg term=bold ctermfg=LightGreen",
+	     "MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen"),
+	CENT("Question term=standout ctermfg=LightGreen",
+	     "Question term=standout ctermfg=LightGreen gui=bold guifg=Green"),
+	CENT("Search term=reverse ctermbg=Yellow ctermfg=Black",
+	     "Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"),
+	CENT("SpecialKey term=bold ctermfg=LightBlue",
+	     "SpecialKey term=bold ctermfg=LightBlue guifg=Cyan"),
 #ifdef FEAT_SPELL
-	"SpellBad term=reverse ctermbg=Red",
-	"SpellCap term=reverse ctermbg=Blue",
-	"SpellRare term=reverse ctermbg=Magenta",
-	"SpellLocal term=underline ctermbg=Cyan",
+	CENT("SpellBad term=reverse ctermbg=Red",
+	     "SpellBad term=reverse ctermbg=Red guisp=Red gui=undercurl"),
+	CENT("SpellCap term=reverse ctermbg=Blue",
+	     "SpellCap term=reverse ctermbg=Blue guisp=Blue gui=undercurl"),
+	CENT("SpellRare term=reverse ctermbg=Magenta",
+	     "SpellRare term=reverse ctermbg=Magenta guisp=Magenta gui=undercurl"),
+	CENT("SpellLocal term=underline ctermbg=Cyan",
+	     "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
 #endif
 #ifdef FEAT_INS_EXPAND
-	"Pmenu ctermbg=Magenta",
-	"PmenuSel ctermbg=DarkGrey",
+	CENT("Pmenu ctermbg=Magenta",
+	     "Pmenu ctermbg=Magenta guibg=Magenta"),
+	CENT("PmenuSel ctermbg=DarkGrey",
+	     "PmenuSel ctermbg=DarkGrey guibg=DarkGrey"),
 #endif
-	"Title term=bold ctermfg=LightMagenta",
-	"WarningMsg term=standout ctermfg=LightRed",
+	CENT("Title term=bold ctermfg=LightMagenta",
+	     "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+	CENT("WarningMsg term=standout ctermfg=LightRed",
+	     "WarningMsg term=standout ctermfg=LightRed guifg=Red"),
 #ifdef FEAT_WILDMENU
-	"WildMenu term=standout ctermbg=Yellow ctermfg=Black",
+	CENT("WildMenu term=standout ctermbg=Yellow ctermfg=Black",
+	     "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"),
 #endif
 #ifdef FEAT_FOLDING
-	"Folded term=standout ctermbg=DarkGrey ctermfg=Cyan",
-	"FoldColumn term=standout ctermbg=DarkGrey ctermfg=Cyan",
+	CENT("Folded term=standout ctermbg=DarkGrey ctermfg=Cyan",
+	     "Folded term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=DarkGrey guifg=Cyan"),
+	CENT("FoldColumn term=standout ctermbg=DarkGrey ctermfg=Cyan",
+	     "FoldColumn term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan"),
 #endif
 #ifdef FEAT_SIGNS
-	"SignColumn term=standout ctermbg=DarkGrey ctermfg=Cyan",
+	CENT("SignColumn term=standout ctermbg=DarkGrey ctermfg=Cyan",
+	     "SignColumn term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan"),
 #endif
 #ifdef FEAT_VISUAL
-	"Visual term=reverse ctermbg=Magenta",
+	CENT("Visual term=reverse ctermbg=Magenta",
+	     "Visual term=reverse ctermbg=Magenta guibg=DarkGrey"),
 #endif
 #ifdef FEAT_DIFF
-	"DiffAdd term=bold ctermbg=DarkBlue",
-	"DiffChange term=bold ctermbg=DarkMagenta",
-	"DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan",
+	CENT("DiffAdd term=bold ctermbg=DarkBlue",
+	     "DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue"),
+	CENT("DiffChange term=bold ctermbg=DarkMagenta",
+	     "DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta"),
+	CENT("DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan",
+	     "DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan"),
 #endif
 #ifdef FEAT_WINDOWS
-	"TabLine term=underline cterm=underline ctermfg=white ctermbg=DarkGrey",
+	CENT("TabLine term=underline cterm=underline ctermfg=white ctermbg=DarkGrey",
+	     "TabLine term=underline cterm=underline ctermfg=white ctermbg=DarkGrey gui=underline guibg=DarkGrey"),
 #endif
 #ifdef FEAT_SYN_HL
-	"CursorColumn term=reverse ctermbg=DarkGrey",
-	"CursorLine term=underline cterm=underline",
+	CENT("CursorColumn term=reverse ctermbg=DarkGrey",
+	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=DarkGrey"),
+	CENT("CursorLine term=underline cterm=underline",
+	     "CursorLine term=underline cterm=underline guibg=DarkGrey"),
 #endif
 #ifdef FEAT_GUI
-	"Directory guifg=Cyan",
-	"LineNr guifg=Yellow",
-	"MoreMsg gui=bold guifg=SeaGreen",
 	"Normal gui=NONE",
-	"Question gui=bold guifg=Green",
-	"Search guibg=Yellow guifg=Black",
-	"SpecialKey guifg=Cyan",
-	"SpellBad guisp=Red gui=undercurl",
-	"SpellCap guisp=Blue gui=undercurl",
-	"SpellRare guisp=Magenta gui=undercurl",
-	"SpellLocal guisp=Cyan gui=undercurl",
-	"Pmenu guibg=Magenta",
-	"PmenuSel guibg=DarkGrey",
-	"Title gui=bold guifg=Magenta",
-	"WarningMsg guifg=Red",
-	"WildMenu guibg=Yellow guifg=Black",
-	"Folded guibg=DarkGrey guifg=Cyan",
-	"FoldColumn guibg=Grey guifg=Cyan",
-	"SignColumn guibg=Grey guifg=Cyan",
-	"Visual guibg=DarkGrey",
-	"DiffAdd guibg=DarkBlue",
-	"DiffChange guibg=DarkMagenta",
-	"DiffDelete gui=bold guifg=Blue guibg=DarkCyan",
-	"TabLine gui=underline guibg=DarkGrey",
-	"CursorColumn guibg=DarkGrey",
-	"CursorLine guibg=DarkGrey",
 #endif
 	NULL
     };
--- a/src/testdir/test58.in
+++ b/src/testdir/test58.in
@@ -420,7 +420,8 @@ COMPOUNDRULE m+
 COMPOUNDRULE sm*e
 COMPOUNDRULE sm+
 COMPOUNDMIN 3
-COMPOUNDMAX 3
+COMPOUNDWORDMAX 3
+COMPOUNDFORBIDFLAG t
 
 COMPOUNDSYLMAX 5
 SYLLABLE aáeéiíoóöőuúüűy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
@@ -447,7 +448,7 @@ SFX q   0    -ok .
 
 SFX a Y 2
 SFX a 0 s .
-SFX a 0 ize . nocomp
+SFX a 0 ize/t .
 
 PFX p N 1
 PFX p 0 pre .
--- a/src/testdir/test59.in
+++ b/src/testdir/test59.in
@@ -424,7 +424,8 @@ COMPOUNDRULE m+
 COMPOUNDRULE sm*e
 COMPOUNDRULE sm+
 COMPOUNDMIN 3
-COMPOUNDMAX 3
+COMPOUNDWORDMAX 3
+COMPOUNDFORBIDFLAG t
 
 COMPOUNDSYLMAX 5
 SYLLABLE aáeéiíoóöőuúüűy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
@@ -451,7 +452,7 @@ SFX q   0    -ok .
 
 SFX a Y 2
 SFX a 0 s .
-SFX a 0 ize . nocomp
+SFX a 0 ize/t .
 
 PFX p N 1
 PFX p 0 pre .
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70b"
 #define VIM_VERSION_SHORT	"7.0b"
 #define VIM_VERSION_MEDIUM	"7.0b BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0b BETA (2006 Mar 25)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0b BETA (2006 Mar 25, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0b BETA (2006 Mar 26)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0b BETA (2006 Mar 26, compiled "
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -275,6 +275,9 @@ long base_off;
       if (c == '\r')	/* Doze style input file? */
 	continue;
 
+      if (c == ' ' || c == '\n' || c == '\t')  /* allow multiple spaces */
+        continue;
+
       n3 = n2;
       n2 = n1;
 
@@ -334,7 +337,7 @@ long base_off;
 	  n1 = -1;
 	  if ((++p >= cols) && !hextype)
 	    {
-	      /* skip rest of line as garbaga */
+	      /* skip rest of line as garbage */
 	      want_off = 0;
 	      while ((c = getc(fpi)) != '\n' && c != EOF)
 		;