changeset 816:4a79d6d376f0 v7.0c02

updated for version 7.0c02
author vimboss
date Tue, 28 Mar 2006 21:08:56 +0000
parents c68b7b2b9e07
children 6897668c467f
files Filelist runtime/doc/insert.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version7.txt runtime/filetype.vim runtime/ftplugin/man.vim runtime/lang/menu_ja_jp.euc-jp.vim runtime/lang/menu_ja_jp.utf-8.vim runtime/lang/menu_japanese_japan.932.vim runtime/mswin.vim runtime/scripts.vim runtime/synmenu.vim runtime/syntax/coretex.vim runtime/syntax/debsources.vim runtime/syntax/plaintex.vim src/Makefile src/auto/configure src/configure.in src/doc-txt.icns src/edit.c src/ex_cmds.c src/gui_mac.c src/gui_w48.c src/main.c src/po/ja.po src/po/ja.sjis.po src/popupmnu.c src/proto/ex_cmds.pro src/proto/gui_mac.pro src/search.c src/tag.c src/version.h
diffstat 34 files changed, 1143 insertions(+), 211 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -362,6 +362,7 @@ SRC_MAC =	\
 		src/dehqx.py \
 		src/gui_mac.c \
 		src/gui_mac.icns \
+		src/doc-txt.icns \
 		src/os_mac.h \
 		src/os_mac.rsr.hqx \
 		src/os_mac_conv.c \
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0c.  Last change: 2006 Mar 21
+*insert.txt*    For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -304,9 +304,11 @@ insert mode:
 
 						*i_CTRL-X_CTRL-E*
 CTRL-X CTRL-E		scroll window one line up.
+			When doing completion look here: |complete_CTRL-E|
 
 						*i_CTRL-X_CTRL-Y*
 CTRL-X CTRL-Y		scroll window one line down.
+			When doing completion look here: |complete_CTRL-Y|
 
 After CTRL-X is pressed, each CTRL-E (CTRL-Y) scrolls the window up (down) by
 one line unless that would cause the cursor to move from its current position
@@ -590,6 +592,16 @@ and CTRL-P (previous).
 
 Also see the 'infercase' option if you want to adjust the case of the match.
 
+							*complete_CTRL-E*
+When completion is active you can use CTRL-E to stop it and go back to the
+orignally typed text.  The CTRL-E will not be inserted.
+
+							*complete_CTRL-Y*
+When the popup menu is displayed you can use CTRL-Y to stop completion and
+accept the currently selected entry.  The CTRL-Y is not inserted.  Typing a
+space, Enter, or some other unprintable character will leave completion mode
+and insert that typed character.
+
 Note: The keys that are valid in CTRL-X mode are not mapped.  This allows for
 ":map ^F ^X^F" to work (where ^F is CTRL-F and ^X is CTRL-X).  The key that
 ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
@@ -1121,7 +1133,8 @@ any printable, non-white character:
 		  Add this character and reduce the number of matches.
 
 In both states these can be used:
-<CR> and <Enter>  Accept the currently selected match and stop completion.
+CTRL-Y		  Yes: Accept the currently selected match and stop completion.
+CTRL-E		  End completion, go back to what was typed.
 <PageUp>	  Select a match several entries back, but don't insert it.
 <PageDown>	  Select a match several entries further, but don't insert it.
 <Up>		  Select the previous match, as if CTRL-P was used, but don't
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Mar 12
+*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1945,6 +1945,19 @@ x > 0 to sync at least x lines backwards
 x = 0 to sync from start.
 
 
+PLAINTEX				*plaintex.vim* *ft-plaintex-syntax*
+
+TeX is a typesetting language, and plaintex is the file type for the "plain"
+variant of TeX.  If you never want your *.tex files recognized as plain TeX,
+see |ft-tex-plugin|.  
+
+This syntax file has the option >
+
+	let g:plaintex_delimiters = 1
+
+if you want to highlight brackets "[]" and braces "{}".
+
+
 PPWIZARD					*ppwiz.vim* *ft-ppwiz-syntax*
 
 PPWizard is a preprocessor for HTML and OS/2 INF files
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4720,6 +4720,8 @@ compl-whole-line	insert.txt	/*compl-whol
 complete()	eval.txt	/*complete()*
 complete-functions	insert.txt	/*complete-functions*
 complete-items	insert.txt	/*complete-items*
+complete_CTRL-E	insert.txt	/*complete_CTRL-E*
+complete_CTRL-Y	insert.txt	/*complete_CTRL-Y*
 complete_add()	eval.txt	/*complete_add()*
 complete_check()	eval.txt	/*complete_check()*
 complex-change	change.txt	/*complex-change*
@@ -5285,6 +5287,7 @@ ft-php-omni	insert.txt	/*ft-php-omni*
 ft-php-syntax	syntax.txt	/*ft-php-syntax*
 ft-php3-syntax	syntax.txt	/*ft-php3-syntax*
 ft-phtml-syntax	syntax.txt	/*ft-phtml-syntax*
+ft-plaintex-syntax	syntax.txt	/*ft-plaintex-syntax*
 ft-postscr-syntax	syntax.txt	/*ft-postscr-syntax*
 ft-ppwiz-syntax	syntax.txt	/*ft-ppwiz-syntax*
 ft-printcap-syntax	syntax.txt	/*ft-printcap-syntax*
@@ -6465,6 +6468,7 @@ pi_gzip.txt	pi_gzip.txt	/*pi_gzip.txt*
 pi_netrw.txt	pi_netrw.txt	/*pi_netrw.txt*
 pi_paren.txt	pi_paren.txt	/*pi_paren.txt*
 pi_spec.txt	pi_spec.txt	/*pi_spec.txt*
+plaintex.vim	syntax.txt	/*plaintex.vim*
 plsql	sql.txt	/*plsql*
 plugin	usr_05.txt	/*plugin*
 plugin-details	filetype.txt	/*plugin-details*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 27
+*todo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,12 +30,11 @@ 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
-
 The 16 bit DOS version compiles now, but it's still too low on memory, writing
 a file fails when 'writebackup' is set.
 
+Have argv() return the arguments in a List.
+
 New Hungarian dictionary. (Laci Nemeth)
     test COMPOUNDFORBIDFLAG
     implement use of COMPOUNDPERMITFLAG
@@ -43,10 +42,16 @@ New Hungarian dictionary. (Laci Nemeth)
     implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
     explain the use of affix flags, replace |spell-affix-rare|
 
-Mac: When started from finder path isn't set and curdir is /.
-Benji Fisher suggests using system() (2006 Mar 26)
-
-Mac: reported default for $VIM is /Applications/share/vim
+-   Set user variables to the names of the actually used user vimrc file,
+    the first directory looked for user plugins/syntax files.
+    $MYVIMRC for .vimrc, $MYGVIMRC for .gvimrc, $MYRUNTIME/plugin for
+    runtime files?
+    Also: when the environment variable exists, use it.  If it doesn't
+    exist, set it.  Requires good names: $VIM_USER_VIMRC  $VIM_USER_DIR
+    Add a menu item "Preferences" that does "sp $MYVIMRC".
+-   The Replace dialog takes "\r" literal, unless "replace all" is used.
+    Need to escape backslashes.
+    Win32: the text to replace with isn't remembered.
 
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
@@ -132,16 +137,6 @@ 7   Add ":justify" command.  Patch from 
 -   findmatch() should be adjusted for Lisp.  See remark at
     get_lisp_indent().  Esp. \( and \) should be skipped. (Dorai Sitaram,
     incomplete patch Mar 18)
--   Set user variables to the names of the actually used user vimrc file,
-    the first directory looked for user plugins/syntax files.
-    $MYVIMRC for .vimrc, $MYGVIMRC for .gvimrc, $MYRUNTIME/plugin for
-    runtime files?
-    Also: when the environment variable exists, use it.  If it doesn't
-    exist, set it.  Requires good names: $VIM_USER_VIMRC  $VIM_USER_DIR
-    Add a menu item "Preferences" that does "sp $MYVIMRC".
--   The Replace dialog takes "\r" literal, unless "replace all" is used.
-    Need to escape backslashes.
-    Win32: the text to replace with isn't remembered.
 -   For GUI Find/Replace dialog support using a regexp.  Patch for Motif
     and GTK by degreneir (nov 10 and nov 18).
 -   Patch for "paranoid mode" by Kevin Collins, March 7.  Needs much more work.
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0c.  Last change: 2006 Mar 27
+*version7.txt*  For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -77,6 +77,9 @@ was being edited by another Vim.  Vim no
 
 The support for Mac OS 9 has been removed.
 
+Files ending in .tex now have 'filetype' set to "context", "plaintex", or
+"tex".  |ft-tex-plugin|
+
 
 Minor incompatibilities:
 
@@ -876,6 +879,7 @@ context syntax and ftplugin file. (Nikol
 CRM114 ftplugin file. (Nikolai Weibull)
 cvs RC ftplugin file. (Nikolai Weibull)
 D indent file. (Jason Mills)
+Debian Sources.list syntax file. (Matthijs Mohlmann)
 dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
 diff ftplugin file. (Bram Moolenaar)
 dircolors ftplugin file. (Nikolai Weibull)
@@ -917,7 +921,7 @@ Pascal indent file. (Neil Carter)
 passwd syntax and ftplugin file. (Nikolai Weibull)
 PHP compiler plugin. (Doug Kearns)
 pinfo ftplugin file. (Nikolai Weibull)
-plaintex ftplugin file. (Benji Fisher)
+plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
 procmail ftplugin file. (Nikolai Weibull)
 prolog ftplugin file. (Nikolai Weibull)
 protocols syntax and ftplugin file. (Nikolai Weibull)
@@ -997,6 +1001,9 @@ Mac: better integration with Xcode.  Pos
 event and the drag receive handler to work around a stall after Vim loads a
 file.  Fixed an off-by-one line number error. (Da Woon Jung)
 
+Mac: When started from Finder change directory to the file being edited or the
+user home directory.
+
 Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
 GUI font selector for Motif. (Marcin Dalecki)
 
@@ -2223,5 +2230,13 @@ change.
 
 Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
 
+Mac: Added document icons. (Benji Fisher)
+
+Insert mode completion: Using Enter to accept the current match causes
+confusion.  Use CTRL-Y instead.  Also, use CTRL-E to go back to the typed
+text.
+
+GUI: When there are left and righ scrollbars, ":tabedit" kept them instead of
+using the one that isn't needed.
 
  vim:tw=78:ts=8:ft=help:norl:
--- 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 26
+" Last Change:	2006 Mar 28
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -475,6 +475,9 @@ au BufNewFile,BufRead *.si			setf cuplsi
 " Debian Control
 au BufNewFile,BufRead */debian/control		setf debcontrol
 
+" Debian Sources.list
+au BufNewFile,BufRead /etc/apt/sources.list	setf debsources
+
 " ROCKLinux package description
 au BufNewFile,BufRead *.desc			setf desc
 
@@ -2005,6 +2008,9 @@ au BufNewFile,BufRead [cC]hange[lL]og*
 " Crontab
 au BufNewFile,BufRead crontab,crontab.*		call s:StarSetf('crontab')
 
+" Debian Sources.list
+au BufNewFile,BufRead /etc/apt/sources.list.d/*	call s:StarSetf('debsources')
+
 " Dracula
 au BufNewFile,BufRead drac.*			call s:StarSetf('dracula')
 
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
 " Maintainer:	Nam SungHyun <namsh@kldp.org>
-" Last Change:	2003 Dec 24
+" Last Change:	2006 Mar 28
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
@@ -23,7 +23,7 @@ if &filetype == "man"
     if !hasmapto('<Plug>ManBS')
       nmap <buffer> <LocalLeader>h <Plug>ManBS
     endif
-    nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:set nomod<CR>''
+    nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>''
 
     nnoremap <buffer> <c-]> :call <SID>PreGetPage(v:count)<CR>
     nnoremap <buffer> <c-t> :call <SID>PopPage()<CR>
@@ -137,9 +137,9 @@ func <SID>GetPage(...)
   endif
   silent exec "edit $HOME/".page.".".sect."~"
   " Avoid warning for editing the dummy file twice
-  set buftype=nofile noswapfile
+  setl buftype=nofile noswapfile
 
-  set ma
+  setl ma
   silent exec "norm 1GdG"
   let $MANWIDTH = winwidth(0)
   silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b"
--- a/runtime/lang/menu_ja_jp.euc-jp.vim
+++ b/runtime/lang/menu_ja_jp.euc-jp.vim
@@ -2,7 +2,7 @@
 "
 " Menu Translations:	Japanese (EUC-JP)
 " Translated By:	MURAOKA Taro  <koron@tka.att.ne.jp>
-" Last Change:		04-Feb-2006.
+" Last Change:		28-Mar-2006.
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -30,6 +30,7 @@ let g:menutrans_help_dialog = "ヘルプを検索したいコマンドもしくは単語を入力してください:\n\n挿入モードのコマンドには i_ を先頭に付加します. (例: i_CTRL-X)\nコマンドライン編集コマンドには c_ を先頭に付加します. (例: c_<Del>)\nオプションの名前には ' を付加します. (例: 'shiftwidth')"
 menutrans &File				ファイル(&F)
 menutrans &Open\.\.\.<Tab>:e		開く(&O)\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割して開く(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	タブページで開く<Tab>:tabnew
 menutrans &New<Tab>:enew		新規作成(&N)<Tab>:enew
 menutrans &Close<Tab>:close		閉じる(&C)<Tab>:close
 menutrans &Save<Tab>:w			保存(&S)<Tab>:w
@@ -51,7 +52,7 @@ menutrans &Paste<Tab>"+gP		貼り付け(&P)<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		前に貼る(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		後に貼る(&A)<Tab>]p
 menutrans &Delete<Tab>x			消す(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		全て選択(&S)<Tab>ggvG
+menutrans &Select\ All<Tab>ggVG		全て選択(&S)<Tab>ggVG
 menutrans &Find\.\.\.			検索(&F)\.\.\.
 menutrans &Find<Tab>/			検索(&F)<Tab>/
 menutrans Find\ and\ Rep&lace\.\.\.	置換(&L)\.\.\.
@@ -150,7 +151,7 @@ menutrans &Spell\ Check\ On		スペルチェック有効(&S)
 menutrans Spell\ Check\ &Off		スペルチェック有効(&O)
 menutrans To\ &Next\ error<Tab>]s	次のエラー(&N)<Tab>]s
 menutrans To\ &Previous\ error<Tab>[s	前のエラー(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z?	修正候補(&C)<Tab>z?
+menutrans Suggest\ &Corrections<Tab>z=	修正候補(&C)<Tab>z=
 menutrans &Repeat\ correction<Tab>:spellrepall	修正を繰り返す(&R)<Tab>:spellrepall
 menutrans Set\ language\ to\ "en"	言語を\ "en"\ に設定する
 menutrans Set\ language\ to\ "en_au"	言語を\ "en_au"\ に設定する
--- a/runtime/lang/menu_ja_jp.utf-8.vim
+++ b/runtime/lang/menu_ja_jp.utf-8.vim
@@ -2,7 +2,7 @@
 "
 " Menu Translations:	Japanese (UTF-8)
 " Translated By:	MURAOKA Taro  <koron@tka.att.ne.jp>
-" Last Change:		04-Feb-2006.
+" Last Change:		06-Feb-2006.
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -30,6 +30,7 @@ let g:menutrans_help_dialog = "罎膣≪潟潟茯ュ:\n\n水ャ≪若潟潟 i_ 篁障. (箴: i_CTRL-X)\n潟潟ゃ括隈潟潟 c_ 篁障. (箴: c_<Del>)\n激с潟 ' 篁障. (箴: 'shiftwidth')"
 menutrans &File				<ゃ(&F)
 menutrans &Open\.\.\.<Tab>:e		(&O)\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	蚊(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	帥若吾ч<Tab>:tabnew
 menutrans &New<Tab>:enew		域鋎(&N)<Tab>:enew
 menutrans &Close<Tab>:close		(&C)<Tab>:close
 menutrans &Save<Tab>:w			篆絖(&S)<Tab>:w
@@ -51,7 +52,7 @@ menutrans &Paste<Tab>"+gP		莢若篁(&P)<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		莢若(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		緇莢若(&A)<Tab>]p
 menutrans &Delete<Tab>x			羔(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		御(&S)<Tab>ggvG
+menutrans &Select\ All<Tab>ggVG		御(&S)<Tab>ggVG
 menutrans &Find\.\.\.			罎膣(&F)\.\.\.
 menutrans &Find<Tab>/			罎膣(&F)<Tab>/
 menutrans Find\ and\ Rep&lace\.\.\.	臀(&L)\.\.\.
@@ -150,7 +151,7 @@ menutrans &Spell\ Check\ On		鴻с(&S)
 menutrans Spell\ Check\ &Off		鴻с(&O)
 menutrans To\ &Next\ error<Tab>]s	罨<(&N)<Tab>]s
 menutrans To\ &Previous\ error<Tab>[s	(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z?	篆罩e茖(&C)<Tab>z?
+menutrans Suggest\ &Corrections<Tab>z=	篆罩e茖(&C)<Tab>z=
 menutrans &Repeat\ correction<Tab>:spellrepall	篆罩c膵違菴(&R)<Tab>:spellrepall
 menutrans Set\ language\ to\ "en"	荐茯\ "en"\ 荐絎
 menutrans Set\ language\ to\ "en_au"	荐茯\ "en_au"\ 荐絎
--- a/runtime/lang/menu_japanese_japan.932.vim
+++ b/runtime/lang/menu_japanese_japan.932.vim
@@ -2,7 +2,7 @@
 "
 " Menu Translations:	Japanese (CP932)
 " Translated By:	MURAOKA Taro  <koron@tka.att.ne.jp>
-" Last Change:		04-Feb-2006.
+" Last Change:		28-Mar-2006.
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -30,6 +30,7 @@ let g:menutrans_help_dialog = "wvR}hP:\n\n}[hR}h i_ t. (: i_CTRL-X)\nR}hCWR}h c_ t. (: c_<Del>)\nIvVO ' t. (: 'shiftwidth')"
 menutrans &File				t@C(&F)
 menutrans &Open\.\.\.<Tab>:e		J(&O)\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	J(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	^uy[WJ<Tab>:tabnew
 menutrans &New<Tab>:enew		VK(&N)<Tab>:enew
 menutrans &Close<Tab>:close		(&C)<Tab>:close
 menutrans &Save<Tab>:w			(&S)<Tab>:w
@@ -51,7 +52,7 @@ menutrans &Paste<Tab>"+gP		\t(&P)<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		O\(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		\(&A)<Tab>]p
 menutrans &Delete<Tab>x			(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		SI(&S)<Tab>ggvG
+menutrans &Select\ All<Tab>ggVG		SI(&S)<Tab>ggVG
 menutrans &Find\.\.\.			(&F)\.\.\.
 menutrans &Find<Tab>/			(&F)<Tab>/
 menutrans Find\ and\ Rep&lace\.\.\.	u(&L)\.\.\.
@@ -150,7 +151,7 @@ menutrans &Spell\ Check\ On		Xy`FbNL(&S)
 menutrans Spell\ Check\ &Off		Xy`FbNL(&O)
 menutrans To\ &Next\ error<Tab>]s	G[(&N)<Tab>]s
 menutrans To\ &Previous\ error<Tab>[s	OG[(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z?	C(&C)<Tab>z?
+menutrans Suggest\ &Corrections<Tab>z=	C(&C)<Tab>z=
 menutrans &Repeat\ correction<Tab>:spellrepall	CJ(&R)<Tab>:spellrepall
 menutrans Set\ language\ to\ "en"	\ "en"\ 
 menutrans Set\ language\ to\ "en_au"	\ "en_au"\ 
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -1,7 +1,7 @@
 " Set options and add mapping such that Vim behaves a lot like MS-Windows
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2006 Mar 09
+" Last change:	2006 Mar 28
 
 " bail out if this isn't wanted (mrsvim.vim uses this).
 if exists("g:skip_loading_mswin") && g:skip_loading_mswin
@@ -82,16 +82,19 @@ endif
 noremap <C-A> gggH<C-O>G
 inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
 cnoremap <C-A> <C-C>gggH<C-O>G
+onoremap <C-A> <C-C>gggH<C-O>G
 
 " CTRL-Tab is Next window
 noremap <C-Tab> <C-W>w
 inoremap <C-Tab> <C-O><C-W>w
 cnoremap <C-Tab> <C-C><C-W>w
+onoremap <C-Tab> <C-C><C-W>w
 
 " CTRL-F4 is Close window
 noremap <C-F4> <C-W>c
 inoremap <C-F4> <C-O><C-W>c
 cnoremap <C-F4> <C-C><C-W>c
+onoremap <C-F4> <C-C><C-W>c
 
 " restore 'cpoptions'
 set cpo&
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2006 Mar 25
+" Last change:	2006 Mar 28
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
@@ -185,11 +185,14 @@ else
     " - "# It was generated by makepatch " in the second line (makepatch diff).
     " - "Index: <filename>" in the first line (CVS file)
     " - "=== ", line of "=", "---", "+++ " (SVK diff)
+    " - "=== ", "--- ", "+++ " (bzr diff, common case)
+    " - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
   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 =~ '^+++')
+	\ || (s:line1 =~ '^=== ' && ((s:line2 =~ '^=\{66\}' && s:line3 =~ '^--- ' && s:line4 =~ '^+++') || (s:line2 =~ '^--- ' && s:line3 =~ '^+++ ')))
+	\ || (s:line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
     set ft=diff
 
     " PostScript Files (must have %!PS as the first line, like a2ps output)
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -116,40 +116,41 @@ an 50.20.390 &Syntax.C.CVS.cvsrc :cal Se
 an 50.30.100 &Syntax.DE.D :cal SetSyn("d")<CR>
 an 50.30.110 &Syntax.DE.Debian.Debian\ ChangeLog :cal SetSyn("debchangelog")<CR>
 an 50.30.120 &Syntax.DE.Debian.Debian\ Control :cal SetSyn("debcontrol")<CR>
-an 50.30.130 &Syntax.DE.Desktop :cal SetSyn("desktop")<CR>
-an 50.30.140 &Syntax.DE.Dict\ config :cal SetSyn("dictconf")<CR>
-an 50.30.150 &Syntax.DE.Dictd\ config :cal SetSyn("dictdconf")<CR>
-an 50.30.160 &Syntax.DE.Diff :cal SetSyn("diff")<CR>
-an 50.30.170 &Syntax.DE.Digital\ Command\ Lang :cal SetSyn("dcl")<CR>
-an 50.30.180 &Syntax.DE.Dircolors :cal SetSyn("dircolors")<CR>
-an 50.30.190 &Syntax.DE.Django\ template :cal SetSyn("django")<CR>
-an 50.30.200 &Syntax.DE.DNS/BIND\ zone :cal SetSyn("bindzone")<CR>
-an 50.30.210 &Syntax.DE.DocBook.auto-detect :cal SetSyn("docbk")<CR>
-an 50.30.220 &Syntax.DE.DocBook.SGML :cal SetSyn("docbksgml")<CR>
-an 50.30.230 &Syntax.DE.DocBook.XML :cal SetSyn("docbkxml")<CR>
-an 50.30.240 &Syntax.DE.Dot :cal SetSyn("dot")<CR>
-an 50.30.250 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
-an 50.30.260 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
-an 50.30.270 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
-an 50.30.280 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
-an 50.30.290 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
-an 50.30.300 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
-an 50.30.310 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
-an 50.30.330 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
-an 50.30.340 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
-an 50.30.350 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
-an 50.30.360 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
-an 50.30.370 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
-an 50.30.380 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
-an 50.30.390 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
-an 50.30.400 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
-an 50.30.410 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
-an 50.30.420 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
-an 50.30.430 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
-an 50.30.440 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
-an 50.30.450 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
-an 50.30.460 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
-an 50.30.470 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
+an 50.30.130 &Syntax.DE.Debian.Debian\ Sources\.list :cal SetSyn("debsources")<CR>
+an 50.30.140 &Syntax.DE.Desktop :cal SetSyn("desktop")<CR>
+an 50.30.150 &Syntax.DE.Dict\ config :cal SetSyn("dictconf")<CR>
+an 50.30.160 &Syntax.DE.Dictd\ config :cal SetSyn("dictdconf")<CR>
+an 50.30.170 &Syntax.DE.Diff :cal SetSyn("diff")<CR>
+an 50.30.180 &Syntax.DE.Digital\ Command\ Lang :cal SetSyn("dcl")<CR>
+an 50.30.190 &Syntax.DE.Dircolors :cal SetSyn("dircolors")<CR>
+an 50.30.200 &Syntax.DE.Django\ template :cal SetSyn("django")<CR>
+an 50.30.210 &Syntax.DE.DNS/BIND\ zone :cal SetSyn("bindzone")<CR>
+an 50.30.220 &Syntax.DE.DocBook.auto-detect :cal SetSyn("docbk")<CR>
+an 50.30.230 &Syntax.DE.DocBook.SGML :cal SetSyn("docbksgml")<CR>
+an 50.30.240 &Syntax.DE.DocBook.XML :cal SetSyn("docbkxml")<CR>
+an 50.30.250 &Syntax.DE.Dot :cal SetSyn("dot")<CR>
+an 50.30.260 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
+an 50.30.270 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
+an 50.30.280 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
+an 50.30.290 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
+an 50.30.300 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
+an 50.30.310 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
+an 50.30.320 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
+an 50.30.340 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
+an 50.30.350 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
+an 50.30.360 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
+an 50.30.370 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
+an 50.30.380 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
+an 50.30.390 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
+an 50.30.400 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
+an 50.30.410 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
+an 50.30.420 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
+an 50.30.430 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
+an 50.30.440 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
+an 50.30.450 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
+an 50.30.460 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
+an 50.30.470 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
+an 50.30.480 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
 an 50.40.100 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
 an 50.40.110 &Syntax.FG.Focus\ Executable :cal SetSyn("focexec")<CR>
 an 50.40.120 &Syntax.FG.Focus\ Master :cal SetSyn("master")<CR>
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/coretex.vim
@@ -0,0 +1,377 @@
+" Vim syntax file
+" Language:         TeX (core definition)
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-03-26
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" This follows the grouping (sort of) found at
+" http://www.tug.org/utilities/plain/cseq.html#top-fam
+
+syn keyword coretexTodo                         TODO FIXME XXX NOTE
+
+syn match coretexComment                        display contains=coretexTodo
+      \ '\\\@<!\%(\\\\\)*\zs%.*$'
+
+syn match   coretexDimension                    display contains=@NoSpell
+      \ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'
+
+syn cluster coretexBox
+      \ contains=coretexBoxCommand,coretexBoxInternalQuantity,
+      \ coretexBoxParameterDimen,coretexBoxParameterInteger,
+      \ coretexBoxParameterToken
+
+syn cluster coretexCharacter
+      \ contains=coretexCharacterCommand,coretexCharacterInternalQuantity,
+      \ coretexCharacterParameterInteger
+
+syn cluster coretexDebugging
+      \ contains=coretexDebuggingCommand,coretexDebuggingParameterInteger,
+      \ coretexDebuggingParameterToken
+
+syn cluster coretexFileIO
+      \ contains=coretexFileIOCommand,coretexFileIOInternalQuantity,
+      \ coretexFileIOParameterToken
+
+syn cluster coretexFonts
+      \ contains=coretexFontsCommand,coretexFontsInternalQuantity
+
+syn cluster coretexGlue
+      \ contains=coretexGlueCommand,coretexGlueDerivedCommand
+
+syn cluster coretexHyphenation
+      \ contains=coretexHyphenationCommand,coretexHyphenationDerivedCommand,
+      \ coretexHyphenationInternalQuantity,coretexHyphenationParameterInteger
+
+syn cluster coretexInserts
+      \ contains=coretexInsertsCommand,coretexInsertsParameterDimen,
+      \ coretexInsertsParameterGlue,coretexInsertsParameterInteger
+
+syn cluster coretexJob
+      \ contains=coretexJobCommand,coretexJobInternalQuantity,
+      \ coretexJobParameterInteger
+
+syn cluster coretexKern
+      \ contains=coretexKernCommand,coretexKernInternalQuantity
+
+syn cluster coretexLogic
+      \ contains=coretexLogicCommand
+
+syn cluster coretexMacro
+      \ contains=coretexMacroCommand,coretexMacroDerivedCommand,
+      \ coretexMacroParameterInteger
+
+syn cluster coretexMarks
+      \ contains=coretexMarksCommand
+
+syn cluster coretexMath
+      \ contains=coretexMathCommand,coretexMathDerivedCommand,
+      \ coretexMathInternalQuantity,coretexMathParameterDimen,
+      \ coretexMathParameterGlue,coretexMathParameterInteger,
+      \ coretexMathParameterMuglue,coretexMathParameterToken
+
+syn cluster coretexPage
+      \ contains=coretexPageInternalQuantity,coretexPageParameterDimen,
+      \ coretexPageParameterGlue
+
+syn cluster coretexParagraph
+      \ contains=coretexParagraphCommand,coretexParagraphInternalQuantity,
+      \ coretexParagraphParameterDimen,coretexParagraphParameterGlue,
+      \ coretexParagraphParameterInteger,coretexParagraphParameterToken
+
+syn cluster coretexPenalties
+      \ contains=coretexPenaltiesCommand,coretexPenaltiesInternalQuantity,
+      \ coretexPenaltiesParameterInteger
+
+syn cluster coretexRegisters
+      \ contains=coretexRegistersCommand,coretexRegistersInternalQuantity
+
+syn cluster coretexTables
+      \ contains=coretexTablesCommand,coretexTablesParameterGlue,
+      \ coretexTablesParameterToken
+
+syn cluster coretexCommand
+      \ contains=coretexBoxCommand,coretexCharacterCommand,
+      \ coretexDebuggingCommand,coretexFileIOCommand,
+      \ coretexFontsCommand,coretexGlueCommand,
+      \ coretexHyphenationCommand,coretexInsertsCommand,
+      \ coretexJobCommand,coretexKernCommand,coretexLogicCommand,
+      \ coretexMacroCommand,coretexMarksCommand,coretexMathCommand,
+      \ coretexParagraphCommand,coretexPenaltiesCommand,coretexRegistersCommand,
+      \ coretexTablesCommand
+
+syn match   coretexBoxCommand                   display contains=@NoSpell
+      \ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
+syn match   coretexCharacterCommand             display contains=@NoSpell
+      \ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
+syn match   coretexDebuggingCommand             display contains=@NoSpell
+      \ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
+syn match   coretexFileIOCommand                display contains=@NoSpell
+      \ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
+syn match   coretexFontsCommand                 display contains=@NoSpell
+      \ '\\\%(/\|fontname\)\>'
+syn match   coretexGlueCommand                  display contains=@NoSpell
+      \ '\\\%([hv]\|un\)skip\>'
+syn match   coretexHyphenationCommand           display contains=@NoSpell
+      \ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
+syn match   coretexInsertsCommand               display contains=@NoSpell
+      \ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
+syn match   coretexJobCommand                   display contains=@NoSpell
+      \ '\\\%(dump\|end\|jobname\)\>'
+syn match   coretexKernCommand                  display contains=@NoSpell
+      \ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
+syn match   coretexLogicCommand                 display contains=@NoSpell
+      \ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
+"      \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
+syn match   coretexMacroCommand                 display contains=@NoSpell
+      \ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
+syn match   coretexMarksCommand                 display contains=@NoSpell
+      \ '\\\%(bot\|first\|top\)\=mark\>'
+syn match   coretexMathCommand                  display contains=@NoSpell
+      \ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
+syn match   coretexParagraphCommand             display contains=@NoSpell
+      \ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
+syn match   coretexPenaltiesCommand             display contains=@NoSpell
+      \ '\\\%(un\)\=penalty\>'
+syn match   coretexRegistersCommand             display contains=@NoSpell
+      \ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
+syn match   coretexTablesCommand                display contains=@NoSpell
+      \ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'
+
+syn cluster coretexDerivedCommand
+      \ contains=coretexGlueDerivedCommand,coretexHyphenationDerivedCommand,
+      \ coretexMacroDerivedCommand,coretexMathDerivedCommand
+
+syn match   coretexGlueDerivedCommand           display contains=@NoSpell
+      \ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
+syn match   coretexHyphenationDerivedCommand    display contains=@NoSpell
+      \ '\\-'
+syn match   coretexMacroDerivedCommand          display contains=@NoSpell
+      \ '\\[gx]def\>'
+syn match   coretexMathDerivedCommand           display contains=@NoSpell
+      \ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'
+
+syn cluster coretexInternalQuantity
+      \ contains=coretexBoxInternalQuantity,coretexCharacterInternalQuantity,
+      \ coretexFileIOInternalQuantity,coretexFontsInternalQuantity,
+      \ coretexHyphenationInternalQuantity,coretexJobInternalQuantity,
+      \ coretexKernInternalQuantity,coretexMathInternalQuantity,
+      \ coretexPageInternalQuantity,coretexParagraphInternalQuantity,
+      \ coretexPenaltiesInternalQuantity,coretexRegistersInternalQuantity
+
+syn match   coretexBoxInternalQuantity          display contains=@NoSpell
+      \ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
+syn match   coretexCharacterInternalQuantity    display contains=@NoSpell
+      \ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
+syn match   coretexFileIOInternalQuantity       display contains=@NoSpell
+      \ '\\inputlineno\>'
+syn match   coretexFontsInternalQuantity        display contains=@NoSpell
+      \ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
+syn match   coretexHyphenationInternalQuantity  display contains=@NoSpell
+      \ '\\hyphenchar\>'
+syn match   coretexJobInternalQuantity          display contains=@NoSpell
+      \ '\\deadcycles\>'
+syn match   coretexKernInternalQuantity         display contains=@NoSpell
+      \ '\\lastkern\>'
+syn match   coretexMathInternalQuantity         display contains=@NoSpell
+      \ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
+syn match   coretexPageInternalQuantity         display contains=@NoSpell
+      \ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
+syn match   coretexParagraphInternalQuantity    display contains=@NoSpell
+      \ '\\\%(prevgraf\|spacefactor\)\>'
+syn match   coretexPenaltiesInternalQuantity    display contains=@NoSpell
+      \ '\\lastpenalty\>'
+syn match   coretexRegistersInternalQuantity    display contains=@NoSpell
+      \ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'
+
+syn cluster coretexParameterDimen
+      \ contains=coretexBoxParameterDimen,coretexInsertsParameterDimen,
+      \ coretexMathParameterDimen,coretexPageParameterDimen,
+      \ coretexParagraphParameterDimen
+
+syn match   coretexBoxParameterDimen            display contains=@NoSpell
+      \ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
+syn match   coretexInsertsParameterDimen        display contains=@NoSpell
+      \ '\\splitmaxdepth\>'
+syn match   coretexMathParameterDimen           display contains=@NoSpell
+      \ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
+syn match   coretexPageParameterDimen           display contains=@NoSpell
+      \ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
+syn match   coretexParagraphParameterDimen      display contains=@NoSpell
+      \ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'
+
+syn cluster coretexParameterGlue
+      \ contains=coretexInsertsParameterGlue,coretexMathParameterGlue,
+      \ coretexPageParameterGlue,coretexParagraphParameterGlue,
+      \ coretexTablesParameterGlue
+
+syn match   coretexInsertsParameterGlue         display contains=@NoSpell
+      \ '\\splittopskip\>'
+syn match   coretexMathParameterGlue            display contains=@NoSpell
+      \ '\\\%(above\|below\)display\%(short\)\=skip\>'
+syn match   coretexPageParameterGlue            display contains=@NoSpell
+      \ '\\topskip\>'
+syn match   coretexParagraphParameterGlue       display contains=@NoSpell
+      \ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
+syn match   coretexTablesParameterGlue          display contains=@NoSpell
+      \ '\\tabskip\>'
+
+syn cluster coretexParameterInteger
+      \ contains=coretexBoxParameterInteger,coretexCharacterParameterInteger,
+      \ coretexDebuggingParameterInteger,coretexHyphenationParameterInteger,
+      \ coretexInsertsParameterInteger,coretexJobParameterInteger,
+      \ coretexMacroParameterInteger,coretexMathParameterInteger,
+      \ coretexParagraphParameterInteger,coretexPenaltiesParameterInteger,
+
+syn match   coretexBoxParameterInteger          display contains=@NoSpell
+      \ '\\[hv]badness\>'
+syn match   coretexCharacterParameterInteger    display contains=@NoSpell
+      \ '\\\%(\%(endline\|escape\|newline\)char\)\>'
+syn match   coretexDebuggingParameterInteger    display contains=@NoSpell
+      \ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
+syn match   coretexHyphenationParameterInteger  display contains=@NoSpell
+      \ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
+syn match   coretexInsertsParameterInteger      display contains=@NoSpell
+      \ '\\\%(holdinginserts\)\>'
+syn match   coretexJobParameterInteger          display contains=@NoSpell
+      \ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
+syn match   coretexMacroParameterInteger        display contains=@NoSpell
+      \ '\\globaldefs\>'
+syn match   coretexMathParameterInteger         display contains=@NoSpell
+      \ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
+syn match   coretexParagraphParameterInteger    display contains=@NoSpell
+      \ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
+syn match   coretexPenaltiesParameterInteger    display contains=@NoSpell
+      \ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'
+
+syn cluster coretexParameterMuglue
+      \ contains=coretexMathParameterMuglue
+
+syn match   coretexMathParameterMuglue          display contains=@NoSpell
+      \ '\\\%(med\|thick\|thin\)muskip\>'
+
+syn cluster coretexParameterDimen
+      \ contains=coretexBoxParameterToken,coretexDebuggingParameterToken,
+      \ coretexFileIOParameterToken,coretexMathParameterToken,
+      \ coretexParagraphParameterToken,coretexTablesParameterToken
+
+syn match   coretexBoxParameterToken            display contains=@NoSpell
+      \ '\\every[hv]box\>'
+syn match   coretexDebuggingParameterToken      display contains=@NoSpell
+      \ '\\errhelp\>'
+syn match   coretexFileIOParameterToken         display contains=@NoSpell
+      \ '\\output\>'
+syn match   coretexMathParameterToken           display contains=@NoSpell
+      \ '\\every\%(display\|math\)\>'
+syn match   coretexParagraphParameterToken      display contains=@NoSpell
+      \ '\\everypar\>'
+syn match   coretexTablesParameterToken         display contains=@NoSpell
+      \ '\\everycr\>'
+
+
+hi def link coretexCharacter                    Character
+hi def link coretexNumber                       Number
+
+hi def link coretexIdentifier                   Identifier
+
+hi def link coretexStatement                    Statement
+hi def link coretexConditional                  Conditional
+
+hi def link coretexPreProc                      PreProc
+hi def link coretexMacro                        Macro
+
+hi def link coretexType                         Type
+
+hi def link coretexDebug                        Debug
+
+hi def link coretexTodo                         Todo
+hi def link coretexComment                      Comment
+hi def link coretexDimension                    coretexNumber
+
+hi def link coretexCommand                      coretexStatement
+hi def link coretexBoxCommand                   coretexCommand
+hi def link coretexCharacterCommand             coretexCharacter
+hi def link coretexDebuggingCommand             coretexDebug
+hi def link coretexFileIOCommand                coretexCommand
+hi def link coretexFontsCommand                 coretexType
+hi def link coretexGlueCommand                  coretexCommand
+hi def link coretexHyphenationCommand           coretexCommand
+hi def link coretexInsertsCommand               coretexCommand
+hi def link coretexJobCommand                   coretexPreProc
+hi def link coretexKernCommand                  coretexCommand
+hi def link coretexLogicCommand                 coretexConditional
+hi def link coretexMacroCommand                 coretexMacro
+hi def link coretexMarksCommand                 coretexCommand
+hi def link coretexMathCommand                  coretexCommand
+hi def link coretexParagraphCommand             coretexCommand
+hi def link coretexPenaltiesCommand             coretexCommand
+hi def link coretexRegistersCommand             coretexCommand
+hi def link coretexTablesCommand                coretexCommand
+
+hi def link coretexDerivedCommand               coretexStatement
+hi def link coretexGlueDerivedCommand           coretexDerivedCommand
+hi def link coretexHyphenationDerivedCommand    coretexDerivedCommand
+hi def link coretexMacroDerivedCommand          coretexDerivedCommand
+hi def link coretexMathDerivedCommand           coretexDerivedCommand
+
+hi def link coretexInternalQuantity             coretexIdentifier
+hi def link coretexBoxInternalQuantity          coretexInternalQuantity
+hi def link coretexCharacterInternalQuantity    coretexInternalQuantity
+hi def link coretexFileIOInternalQuantity       coretexInternalQuantity
+hi def link coretexFontsInternalQuantity        coretexInternalQuantity
+hi def link coretexHyphenationInternalQuantity  coretexInternalQuantity
+hi def link coretexJobInternalQuantity          coretexInternalQuantity
+hi def link coretexKernInternalQuantity         coretexInternalQuantity
+hi def link coretexMathInternalQuantity         coretexInternalQuantity
+hi def link coretexPageInternalQuantity         coretexInternalQuantity
+hi def link coretexParagraphInternalQuantity    coretexInternalQuantity
+hi def link coretexPenaltiesInternalQuantity    coretexInternalQuantity
+hi def link coretexRegistersInternalQuantity    coretexInternalQuantity
+
+hi def link coretexParameterDimen               coretexNumber
+hi def link coretexBoxParameterDimen            coretexParameterDimen
+hi def link coretexInsertsParameterDimen        coretexParameterDimen
+hi def link coretexMathParameterDimen           coretexParameterDimen
+hi def link coretexPageParameterDimen           coretexParameterDimen
+hi def link coretexParagraphParameterDimen      coretexParameterDimen
+
+hi def link coretexParameterGlue                coretexNumber
+hi def link coretexInsertsParameterGlue         coretexParameterGlue
+hi def link coretexMathParameterGlue            coretexParameterGlue
+hi def link coretexPageParameterGlue            coretexParameterGlue
+hi def link coretexParagraphParameterGlue       coretexParameterGlue
+hi def link coretexTablesParameterGlue          coretexParameterGlue
+
+hi def link coretexParameterInteger             coretexNumber
+hi def link coretexBoxParameterInteger          coretexParameterInteger
+hi def link coretexCharacterParameterInteger    coretexParameterInteger
+hi def link coretexDebuggingParameterInteger    coretexParameterInteger
+hi def link coretexHyphenationParameterInteger  coretexParameterInteger
+hi def link coretexInsertsParameterInteger      coretexParameterInteger
+hi def link coretexJobParameterInteger          coretexParameterInteger
+hi def link coretexMacroParameterInteger        coretexParameterInteger
+hi def link coretexMathParameterInteger         coretexParameterInteger
+hi def link coretexParagraphParameterInteger    coretexParameterInteger
+hi def link coretexPenaltiesParameterInteger    coretexParameterInteger
+
+hi def link coretexParameterMuglue              coretexNumber
+hi def link coretexMathParameterMuglue          coretexParameterMuglue
+
+hi def link coretexParameterToken               coretexIdentifier
+hi def link coretexBoxParameterToken            coretexParameterToken
+hi def link coretexDebuggingParameterToken      coretexParameterToken
+hi def link coretexFileIOParameterToken         coretexParameterToken
+hi def link coretexMathParameterToken           coretexParameterToken
+hi def link coretexParagraphParameterToken      coretexParameterToken
+hi def link coretexTablesParameterToken         coretexParameterToken
+
+let b:current_syntax = "coretex"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/debsources.vim
@@ -0,0 +1,40 @@
+" Vim syntax file
+" Language:	Debian sources.list
+" Maintainer:	Matthijs Mohlmann <matthijs@cacholong.nl>
+" Last Change:	$Date$
+" URL: http://www.cacholong.nl/~matthijs/vim/syntax/debsources.vim
+" $Revision$
+
+" this is a very simple syntax file - I will be improving it
+" add entire DEFINE syntax
+
+" Standard syntax initialization
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" case sensitive
+syn case match
+
+" A bunch of useful keywords
+syn match debsourcesKeyword        /\(deb-src\|deb\|main\|contrib\|non-free\)/
+
+" Match comments
+syn match debsourcesComment        /#.*/
+
+" Match uri's
+syn match debsourcesUri            +\(http://\|ftp://\|file:///\)[^' 	<>"]\++
+syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\(woody\|sarge\|etch\|old-stable\|stable\|testing\|unstable\|sid\|experimental\|warty\|hoary\|breezy\)\([[:alnum:]_./]*\)+
+
+" Associate our matches and regions with pretty colours
+hi def link debsourcesLine            Error
+hi def link debsourcesKeyword         Statement
+hi def link debsourcesDistrKeyword    Type
+hi def link debsourcesComment         Comment
+hi def link debsourcesUri             Constant
+
+let b:current_syntax = "debsources"
+
+" vim: ts=8
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/plaintex.vim
@@ -0,0 +1,166 @@
+" Vim syntax file
+" Language:         TeX (plain.tex format)
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-03-26
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   plaintexControlSequence         display contains=@NoSpell
+      \ '\\[a-zA-Z@]\+'
+
+runtime! syntax/coretex.vim
+
+syn match   plaintexComment                 display
+      \ contains=ALLBUT,coretexComment,plaintexComment
+      \ '^\s*%[CDM].*$'
+
+if exists("g:plaintex_delimiters")
+  syn match   plaintexDelimiter             display '[][{}]'
+endif
+
+syn match   plaintexRepeat                  display contains=@NoSpell
+      \ '\\\%(loop\|repeat\)\>'
+
+syn match   plaintexCommand                 display contains=@NoSpell
+      \ '\\\%(plainoutput\|TeX\)\>'
+syn match   plaintexBoxCommand              display contains=@NoSpell
+      \ '\\\%(null\|strut\)\>'
+syn match   plaintexCharacterCommand        display contains=@NoSpell
+      \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/
+syn match   plaintexDebuggingCommand        display contains=@NoSpell
+      \ '\\\%(showhyphens\|tracingall\|wlog\)\>'
+syn match   plaintexFontsCommand            display contains=@NoSpell
+      \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>'
+syn match   plaintexGlueCommand             display contains=@NoSpell
+      \ '\\\%(\%(big\|en\|med\|\%(no\|off\)interline\|small\)skip\|\%(center\|left\|right\)\=line\|\%(dot\|\%(left\|right\)arrow\)fill\|[hv]glue\|[lr]lap\|q\=quad\|space\|topglue\)\>'
+syn match   plaintexInsertsCommand          display contains=@NoSpell
+      \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
+syn match   plaintexJobCommand              display contains=@NoSpell
+      \ '\\\%(bye\|fmt\%(name\|version\)\)\>'
+syn match   plaintexInsertsCommand          display contains=@NoSpell
+      \ '\\\%(mid\|page\)insert\>'
+syn match   plaintexKernCommand             display contains=@NoSpell
+      \ '\\\%(en\|\%(neg\)\=thin\)space\>'
+syn match   plaintexMacroCommand            display contains=@NoSpell
+      \ '\\\%(active\|[be]group\|empty\)\>'
+syn match   plaintexPageCommand             display contains=@NoSpell
+      \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
+syn match   plaintexParagraphCommand        display contains=@NoSpell
+      \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
+syn match   plaintexPenaltiesCommand        display contains=@NoSpell
+      \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
+syn match   plaintexRegistersCommand        display contains=@NoSpell
+      \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
+syn match   plaintexTablesCommand           display contains=@NoSpell
+      \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
+
+syn region  plaintexMath                    matchgroup=plaintexMath
+      \ contains=@plaintexMath
+      \ start='\$' skip='\\\\\|\\\$' end='\$'
+syn region  plaintexMath                    matchgroup=plaintexMath
+      \ contains=@plaintexMath keepend
+      \ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
+
+syn cluster plaintexMath
+      \ contains=plaintexMathCommand,plaintexMathBoxCommand,
+      \ plaintexMathCharacterCommand,plaintexMathDelimiter,
+      \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
+      \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
+      \ plaintexMathRelation
+
+syn match   plaintexMathCommand             display contains=@NoSpell contained
+      \ '\\\%([!*,;>{}|_^]\|\%([aA]rrowvert\|[bB]ig\%(g[lmr]\=\|r\)\=\|\%(border\|p\)\=matrix\|displaylines\|\%(down\|up\)bracefill\|eqalign\%(no\)\|leqalignno\|[lr]moustache\|mathpalette\|root\|s[bp]\|skew\|sqrt\)\>\)'
+syn match   plaintexMathBoxCommand          display contains=@NoSpell contained
+      \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
+syn match   plaintexMathCharacterCommand    display contains=@NoSpell contained
+      \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
+syn match   plaintexMathDelimiter           display contains=@NoSpell contained
+      \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>'
+syn match   plaintexMathFontsCommand        display contains=@NoSpell contained
+      \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
+syn match   plaintexMathLetter              display contains=@NoSpell contained
+      \ '\\\%(aleph\|alpha\|beta\|chi\|[dD]elta\|ell\|epsilon\|eta\|[gG]amma\|[ij]math\|iota\|kappa\|[lL]ambda\|[mn]u\|[oO]mega\|[pP][hs]\=i\|rho\|[sS]igma\|tau\|[tT]heta\|[uU]psilon\|var\%(epsilon\|ph\=i\|rho\|sigma\|theta\)\|[xX]i\|zeta\)\>'
+syn match   plaintexMathSymbol              display contains=@NoSpell contained
+      \ '\\\%(angle\|backslash\|bot\|clubsuit\|emptyset\|epsilon\|exists\|flat\|forall\|hbar\|heartsuit\|Im\|infty\|int\|lnot\|nabla\|natural\|neg\|pmod\|prime\|Re\|sharp\|smallint\|spadesuit\|surd\|top\|triangle\%(left\|right\)\=\|vdash\|wp\)\>'
+syn match   plaintexMathFunction            display contains=@NoSpell contained
+      \ '\\\%(arc\%(cos\|sin\|tan\)\|arg\|\%(cos\|sin\|tan\)h\=\|coth\=\|csc\|de[gt]\|dim\|exp\|gcd\|hom\|inf\|ker\|lo\=g\|lim\%(inf\|sup\)\=\|ln\|max\|min\|Pr\|sec\|sup\)\>'
+syn match   plaintexMathOperator            display contains=@NoSpell contained
+      \ '\\\%(amalg\|ast\|big\%(c[au]p\|circ\|o\%(dot\|plus\|times\|sqcup\)\|triangle\%(down\|up\)\|uplus\|vee\|wedge\|bmod\|bullet\)\|c[au]p\|cdot[ps]\=\|circ\|coprod\|d\=dagger\|diamond\%(suit\)\=\|div\|land\|lor\|mp\|o\%(dot\|int\|minus\|plus\|slash\|times\)pm\|prod\|setminus\|sqc[au]p\|sqsu[bp]seteq\|star\|su[bp]set\%(eq\)\=\|sum\|times\|uplus\|vee\|wedge\|wr\)\>'
+syn match   plaintexMathPunctuation         display contains=@NoSpell contained
+      \ '\\\%(colon\)\>'
+syn match   plaintexMathRelation            display contains=@NoSpell contained
+      \ '\\\%(approx\|asymp\|bowtie\|buildrel\|cong\|dashv\|doteq\|[dD]ownarrow\|equiv\|frown\|geq\=\|gets\|gg\|hook\%(left\|right\)arrow\|iff\|in\|leq\=\|[lL]eftarrow\|\%(left\|right\)harpoon\%(down\|up\)\|[lL]eftrightarrow\|ll\|[lL]ongleftrightarrow\|longmapsto\|[lL]ongrightarrow\|mapsto\|mid\|models\|[ns][ew]arrow\|neq\=\|ni\|not\%(in\)\=\|owns\|parallel\|perp\|prec\%(eq\)\=\|propto\|[rR]ightarrow\|rightleftharpoons\|sim\%(eq\)\=\|smile\|succ\%(eq\)\=\|to\|[uU]parrow\|[uU]pdownarrow\|[vV]ert\)\>'
+
+syn match   plaintexParameterDimen          display contains=@NoSpell
+      \ '\\maxdimen\>'
+syn match   plaintexMathParameterDimen      display contains=@NoSpell
+      \ '\\jot\>'
+syn match   plaintexParagraphParameterGlue  display contains=@NoSpell
+      \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'
+
+syn match   plaintexFontParameterInteger    display contains=@NoSpell
+      \ '\\magstep\%(half\)\=\>'
+syn match   plaintexJobParameterInteger     display contains=@NoSpell
+      \ '\\magnification\>'
+syn match   plaintexPageParameterInteger    display contains=@NoSpell
+      \ '\\pageno\>'
+
+syn match   plaintexPageParameterToken      display contains=@NoSpell
+      \ '\\\%(foot\|head\)line\>'
+
+hi def link plaintexOperator                Operator
+
+hi def link plaintexDelimiter               Delimiter
+
+hi def link plaintexControlSequence         Identifier
+hi def link plaintexComment                 Comment
+hi def link plaintexInclude                 Include
+hi def link plaintexRepeat                  Repeat
+
+hi def link plaintexCommand                 coretexCommand
+hi def link plaintexBoxCommand              plaintexCommand
+hi def link plaintexCharacterCommand        coretexCharacterCommand
+hi def link plaintexDebuggingCommand        coretexDebuggingCommand
+hi def link plaintexFontsCommand            coretexFontsCommand
+hi def link plaintexGlueCommand             plaintexCommand
+hi def link plaintexInsertsCommand          plaintexCommand
+hi def link plaintexJobCommand              coretexJobCommand
+hi def link plaintexKernCommand             plaintexCommand
+hi def link plaintexMacroCommand            coretexMacroCommand
+hi def link plaintexPageCommand             plaintexCommand
+hi def link plaintexParagraphCommand        plaintexCommand
+hi def link plaintexPenaltiesCommand        plaintexCommand
+hi def link plaintexRegistersCommand        plaintexCommand
+hi def link plaintexTablesCommand           plaintexCommand
+
+hi def link plaintexMath                    String
+hi def link plaintexMathCommand             plaintexCommand
+hi def link plaintexMathBoxCommand          plaintexBoxCommand
+hi def link plaintexMathCharacterCommand    plaintexCharacterCommand
+hi def link plaintexMathDelimiter           plaintexDelimiter
+hi def link plaintexMathFontsCommand        plaintexFontsCommand
+hi def link plaintexMathLetter              plaintexMathCharacterCommand
+hi def link plaintexMathSymbol              plaintexMathLetter
+hi def link plaintexMathFunction            Function
+hi def link plaintexMathOperator            plaintexOperator
+hi def link plaintexMathPunctuation         plaintexCharacterCommand
+hi def link plaintexMathRelation            plaintexOperator
+
+hi def link plaintexParameterDimen          coretexParameterDimen
+hi def link plaintexMathParameterDimen      coretexMathParameterDimen
+hi def link plaintexParagraphParameterGlue  coretexParagraphParameterGlue
+hi def link plaintexFontParameterInteger    coretexFontParameterInteger
+hi def link plaintexJobParameterInteger     coretexJobParameterInteger
+hi def link plaintexPageParameterInteger    coretexPageParameterInteger
+hi def link plaintexPageParameterToken      coretexParameterToken
+
+let b:current_syntax = "plaintex"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
--- a/src/Makefile
+++ b/src/Makefile
@@ -1524,6 +1524,7 @@ PRO_AUTO = \
 	$(TCL_PRO)
 
 ICON_APP = gui_mac.icns
+ICON_DOCTXT = doc-txt.icns
 
 PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
 	os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
@@ -2163,7 +2164,7 @@ shadow:	runtime pixmaps
 	cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
 	if test -f $(ICON_APP); then \
 		cd $(SHADOWDIR); \
-		ln -s ../$(ICON_APP) ../os_mac.rsr.hqx ../dehqx.py .; \
+		ln -s ../$(ICON_APP) ../$(ICON_DOCTXT) ../os_mac.rsr.hqx ../dehqx.py .; \
 	fi
 	mkdir $(SHADOWDIR)/testdir
 	cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
@@ -2528,7 +2529,7 @@ M4FLAGSX = $(M4FLAGS) -DAPP_EXE=$(VIMNAM
 		-DAPP_VER=$(VERSION) -DICON_APP=$(ICON_APP)
 
 ### Icons
-ICONS = $(RESDIR)/$(ICON_APP)
+ICONS = $(RESDIR)/$(ICON_APP) $(RESDIR)/$(ICON_DOCTXT)
 
 # If you uncomment the following lines the *.icns in the src directory will be
 # detected by this Makefile automatically, and used for Vim.
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -3395,6 +3395,8 @@ fi
 		if test x$prefix = xNONE; then
 	  prefix=/Applications
 	fi
+
+		datadir='${prefix}/Vim.app/Contents/Resources'
       fi
     fi
   fi
--- a/src/configure.in
+++ b/src/configure.in
@@ -165,6 +165,9 @@ if test "`(uname) 2>/dev/null`" = Darwin
 	if test x$prefix = xNONE; then
 	  prefix=/Applications
 	fi
+
+	dnl Sorry for the hard coded default
+	datadir='${prefix}/Vim.app/Contents/Resources'
       fi
     fi
   fi
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bcd11d67c7ce67e8abb4232e3d425620ea893cb2
GIT binary patch
literal 35095
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
--- a/src/edit.c
+++ b/src/edit.c
@@ -726,8 +726,8 @@ edit(cmdchar, startln, count)
 		    continue;
 		}
 
-		/* Pressing Enter selects the current match. */
-		if (c == CAR || c == K_KENTER || c == NL)
+		/* Pressing CTRL-Y selects the current match. */
+		if (c == Ctrl_Y)
 		{
 		    ins_compl_delete();
 		    ins_compl_insert();
@@ -3274,11 +3274,23 @@ ins_compl_prep(c)
 
 	    auto_format(FALSE, TRUE);
 
-	    /* if the popup menu is displayed hitting Enter means accepting
+	    /* If the popup menu is displayed pressing CTRL-Y means accepting
 	     * the selection without inserting anything. */
-	    if ((c == CAR || c == K_KENTER || c == NL) && pum_visible())
+	    if (c == Ctrl_Y && pum_visible())
 		retval = TRUE;
 
+	    /* CTRL-E means completion is Ended, go back to the typed text. */
+	    if (c == Ctrl_E)
+	    {
+		ins_compl_delete();
+		if (compl_leader != NULL)
+		    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
+		else if (compl_first_match != NULL)
+		    ins_bytes(compl_first_match->cp_str
+					  + curwin->w_cursor.col - compl_col);
+		retval = TRUE;
+	    }
+
 	    ins_compl_free();
 	    compl_started = FALSE;
 	    compl_matches = 0;
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3240,6 +3240,7 @@ do_ecmd(fnum, ffname, sfname, eap, newln
 		    buf_copy_options(buf, BCO_ENTER);
 
 		/* close the link to the current buffer */
+		u_sync();
 		close_buffer(curwin, curbuf,
 				      (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
 
@@ -5185,7 +5186,8 @@ free_old_sub()
  * Return TRUE when it was created.
  */
     int
-prepare_tagpreview()
+prepare_tagpreview(undo_sync)
+    int		undo_sync;	/* sync undo when leaving the window */
 {
     win_T	*wp;
 
@@ -5202,7 +5204,7 @@ prepare_tagpreview()
 	    if (wp->w_p_pvw)
 		break;
 	if (wp != NULL)
-	    win_enter(wp, TRUE);
+	    win_enter(wp, undo_sync);
 	else
 	{
 	    /*
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -1066,6 +1066,11 @@ HandleODocAE(const AppleEvent *theAEvent
 	    else
 		alist_add(&global_alist, p, 2);
 	}
+
+	/* Change directory to the location of the first file. */
+	if (GARGCOUNT > 0 && vim_chdirfile(alist_name(&GARGLIST[0])) == OK)
+	    shorten_fnames(TRUE);
+
 	goto finished;
     }
 
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -1121,8 +1121,7 @@ gui_mch_set_text_area_pos(int x, int y, 
 	    top = TOOLBAR_BUTTON_HEIGHT + TOOLBAR_BORDER_HEIGHT;
 #endif
 
-	GetWindowRect(s_hwnd, &rect);
-	SetRect(&rect, 0, top, rect.right, TABLINE_HEIGHT);
+	SetRect(&rect, 0, top, w, TABLINE_HEIGHT);
 	TabCtrl_AdjustRect(s_tabhwnd, TRUE, &rect);
 	MoveWindow(s_tabhwnd, 0, top, rect.right, rect.bottom, TRUE);
     }
--- a/src/main.c
+++ b/src/main.c
@@ -449,7 +449,24 @@ main
      * message box.  isatty(2) returns TRUE anyway, thus we need to check the
      * name to know we're not started from a terminal. */
     if (gui.starting && (!isatty(2) || strcmp("/dev/console", ttyname(2)) == 0))
+    {
 	params.want_full_screen = FALSE;
+
+	/* Avoid always using "/" as the current directory.  Note that when
+	 * started from Finder the arglist will be filled later in
+	 * HandleODocAE() and "fname" will be NULL. */
+	if (getcwd((char *)NameBuff, MAXPATHL) != NULL
+						&& STRCMP(NameBuff, "/") == 0)
+	{
+	    if (fname != NULL)
+		(void)vim_chdirfile(fname);
+	    else
+	    {
+		expand_env((char_u *)"$HOME", NameBuff, MAXPATHL);
+		vim_chdir(NameBuff);
+	    }
+	}
+    }
 #endif
 
     /*
--- a/src/po/ja.po
+++ b/src/po/ja.po
@@ -4,13 +4,13 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # MURAOKA Taro <koron@tka.att.ne.jp>, 2001-6.
-# Last Change: 05-Feb-2006.
+# Last Change: 28-Mar-2006.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: Vim 7.0\n"
-"POT-Creation-Date: 2006-02-04 22:44+0900\n"
-"PO-Revision-Date: 2006-02-05 00:10+0900\n"
+"POT-Creation-Date: 2006-03-28 20:12+0900\n"
+"PO-Revision-Date: 2006-03-28 21:10+0900\n"
 "Last-Translator: MURAOKA Taro <koron@tka.att.ne.jp>\n"
 "Language-Team: MURAOKA Taro <koron@tka.att.ne.jp>\n"
 "MIME-Version: 1.0\n"
@@ -130,7 +130,7 @@ msgstr "[無名]"
 msgid "help"
 msgstr "ヘルプ"
 
-msgid "[help]"
+msgid "[Help]"
 msgstr "[ヘルプ]"
 
 msgid "[Preview]"
@@ -155,8 +155,8 @@ msgstr ""
 msgid "[Location List]"
 msgstr "[場所リスト]"
 
-msgid "[Error List]"
-msgstr "[エラーリスト]"
+msgid "[Quickfix List]"
+msgstr "[Quickfixリスト]"
 
 msgid ""
 "\n"
@@ -489,6 +489,9 @@ msgstr "E724: 表示するには変数の入れ子が深過ぎます"
 msgid "E699: Too many arguments"
 msgstr "E699: が多過ぎます"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() は挿入モードでしか利用できません"
+
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
 #. * this way has the compelling advantage that translations need not to
@@ -1021,6 +1024,21 @@ msgstr "行 %ld: %s を取込中"
 msgid "finished sourcing %s"
 msgstr "%s の取込を完了"
 
+msgid "modeline"
+msgstr "モード行"
+
+msgid "--cmd argument"
+msgstr "--cmd 引数"
+
+msgid "-c argument"
+msgstr "-c 引数"
+
+msgid "environment variable"
+msgstr "環境変数"
+
+msgid "error handler"
+msgstr "エラーハンドラ"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: 警告: 行区切が不正です. ^M がないのでしょう"
 
@@ -1151,9 +1169,19 @@ msgstr "E185: カラースキーム %s がみつかりません"
 msgid "Greetings, Vim user!"
 msgstr "Vim 使いさん、やあ!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: 最後のタブページを閉じることはできません"
+
+msgid "Already only one tab page"
+msgstr "既にタブページは1つしかありません"
+
 msgid "Edit File in new window"
 msgstr "新しいウィンドウでファイルを編集します"
 
+#, c-format
+msgid "Tab page %d"
+msgstr "タブページ %d"
+
 msgid "No swap file"
 msgstr "スワップファイルがありません"
 
@@ -1908,6 +1936,15 @@ msgstr "全て置換"
 msgid "Vim: Received \"die\" request from session manager\n"
 msgstr "Vim: セッションマネージャから \"die\" 要求を受け取りました\n"
 
+msgid "Close"
+msgstr "閉じる"
+
+msgid "New tab"
+msgstr "新規タブページ"
+
+msgid "Open Tab..."
+msgstr "タブページを開く..."
+
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: メインウィンドウが不意に破壊されました\n"
 
@@ -1979,6 +2016,12 @@ msgstr "E243: 引数はサポートされません: \"-%s\"; OLE版を使用してください."
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: MDIアプリの中ではウィンドウを開けません"
 
+msgid "Close tab"
+msgstr "タブページを閉じる"
+
+msgid "Open tab..."
+msgstr "タブページを開く"
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "検索文字列 ('\\' を検索するには '\\\\')"
 
@@ -2055,10 +2098,6 @@ msgstr "名前:"
 msgid "Show size in Points"
 msgstr "サイズをポイントで表示する"
 
-# msgid " BLOCK"
-# msgstr " ブロック"
-# msgid " LINE"
-# msgstr " 行"
 msgid "Encoding:"
 msgstr "エンコード:"
 
@@ -2658,8 +2697,6 @@ msgstr "このVimにはdiff機能がありません(コンパイル時設定)."
 msgid "Attempt to open script file again: \""
 msgstr "スクリプトファイルを再び開いてみます: \""
 
-# msgid "\"\n"
-# msgstr "\"\n"
 msgid "Cannot open for reading: \""
 msgstr "読込用として開けません"
 
@@ -2835,6 +2872,9 @@ msgstr "-U <gvimrc>\t\t.gvimrcの代わりに <gvimrc> を使う"
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tプラグインスクリプトをロードしない"
 
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tN 個タブページを開く(省略値: ファイルにつき1個)"
+
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tN 個ウィンドウを開く(省略値: ファイルにつき1個)"
 
@@ -2888,6 +2928,9 @@ msgid ""
 "--remote-wait-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-wait-silent <files>  同上, サーバが無くても警告文を出力しない"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <files>  --remoteでファイル1つにつき1つのタブページを開く"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <keys>\tVimサーバに <keys> を送信して終了する"
 
@@ -3011,8 +3054,6 @@ msgstr "--socketid <xid>\t異なるGTK widgetでVimを開く"
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <親のタイトル>\tVimを親アプリケーションの中で起動する"
 
-# msgid "--help\t\tShow Gnome arguments"
-# msgstr "--help\t\tGNOMEの引数を見せる"
 msgid "No display"
 msgstr "ディスプレイが見つかりません"
 
@@ -4146,6 +4187,9 @@ msgstr "入出力エラー"
 msgid "...(truncated)"
 msgstr "...(省略)"
 
+msgid "Message"
+msgstr "メッセージ"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' が80ではないため, 外部コマンドを実行できません"
 
@@ -4517,10 +4561,6 @@ msgstr " 行指向選択"
 msgid " SELECT BLOCK"
 msgstr " 矩形選択"
 
-# msgid " BLOCK"
-# msgstr " ブロック"
-# msgid " LINE"
-# msgstr " 行"
 msgid "recording"
 msgstr "記録中"
 
@@ -4562,6 +4602,10 @@ msgstr "  みつかりません"
 msgid "Scanning included file: %s"
 msgstr "インクルードされたファイルをスキャン中: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "インクルードされたファイルをスキャン中 %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: 現在行に該当があります"
 
@@ -4654,8 +4698,8 @@ msgid "FLAG after using flags in %s line
 msgstr "%s 内の %d 行目にフラグの二重使用があります: %s"
 
 #, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "%s の %d 行目の COMPOUNDMAX の値に誤りがあります: %s"
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s の %d 行目の COMPOUNDWORDMAX の値に誤りがあります: %s"
 
 #, c-format
 msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
@@ -4666,6 +4710,10 @@ msgid "Wrong COMPOUNDSYLMAX value in %s 
 msgstr "%s の %d 行目の COMPOUNDSYLMAX の値に誤りがあります: %s"
 
 #, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s の %d 行目の CHECKCOMPOUNDPATTERN の値に誤りがあります: %s"
+
+#, c-format
 msgid "Different combining flag in continued affix block in %s line %d: %s"
 msgstr ""
 "%s の %d 行目の 連続 affix ブロックのフラグの組合せに違いがあります: %s"
@@ -4676,10 +4724,10 @@ msgstr "%s の %d 行目に 重複した affix を検出しました: %s"
 
 #, c-format
 msgid ""
-"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND in %s line %d: "
-"%s"
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
 msgstr ""
-"%s の %d 行目の affix は BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND "
+"%s の %d 行目の affix は BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST "
 "に使用してください: %s"
 
 #, c-format
@@ -4691,6 +4739,10 @@ msgid "Broken condition in %s line %d: %
 msgstr "%s の %d 行目の 条件は壊れています: %s"
 
 #, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "PFXPOSTPONEが指定されたので %s の %d 行目の affix フラグを無視しました: %s"
+
+#, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "%s の %d 行目には REP(SAL) の回数が必要です"
 
@@ -4780,7 +4832,7 @@ msgstr "%s の %d 行目の 重複した /encoding= 行を無視しました: %s"
 
 #, c-format
 msgid "/encoding= line after word ignored in %s line %d: %s"
-msgstr "%s %s の %d 行目の 単語の後の /encoding= 行を無視しました: %s"
+msgstr "%s の %d 行目の 単語の後の /encoding= 行を無視しました: %s"
 
 #, c-format
 msgid "Duplicate /regions= line ignored in %s line %d: %s"
@@ -4859,6 +4911,14 @@ msgstr "実行しました!"
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile' には %ld 個のエントリはありません"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "%s から単語が削除されました"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "%s に単語が追加されました"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: 単語の文字がスペルファイルと異なります"
 
@@ -5223,15 +5283,52 @@ msgstr "Vim: 入力を読込み中のエラーにより終了します...\n"
 msgid "No undo possible; continue anyway"
 msgstr "可能なアンドゥはありません: とりあえず続けます"
 
+msgid "Already at oldest change"
+msgstr "既に一番古い変更です"
+
+msgid "Already at newest change"
+msgstr "既に一番新しい変更です"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "アンドゥ番号 %ld がみつかりません"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: 行番号が間違っています"
 
-msgid "1 change"
-msgstr "1 箇所変更しました"
-
-#, c-format
-msgid "%ld changes"
-msgstr "%ld 箇所変更しました"
+msgid "more line"
+msgstr "行 追加しました"
+
+msgid "行あります"
+msgstr "行 追加しました"
+
+msgid "line less"
+msgstr "行 削除しました"
+
+msgid "fewer lines"
+msgstr "行 削除しました"
+
+msgid "change"
+msgstr "箇所変更しました"
+
+msgid "changes"
+msgstr "箇所変更しました"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "前方"
+
+msgid "after"
+msgstr "後方"
+
+msgid "Nothing to undo"
+msgstr "アンドゥ対象がありません"
+
+msgid "number changes  time"
+msgstr "番号   変更     時刻"
 
 msgid "E439: undo list corrupt"
 msgstr "E439: アンドゥリストが壊れています"
@@ -5564,6 +5661,33 @@ msgstr "E446: カーソルの下にファイル名がありません"
 msgid "E447: Can't find file \"%s\" in path"
 msgstr "E447: pathには \"%s\" というファイルがありません"
 
+msgid "Edit with &multiple Vims"
+msgstr "複数のVimで編集する (&M)"
+
+msgid "Edit with single &Vim"
+msgstr "1つのVimで編集する (&V)"
+
+msgid "Diff with Vim"
+msgstr "Vimで差分を見る"
+
+msgid "Edit with &Vim"
+msgstr "Vimで編集する (&V)"
+
+msgid "Edit with existing Vim - "
+msgstr "既存のVimで編集する - "
+
+msgid "Edits the selected file(s) with Vim"
+msgstr "選択されたファイルをVimで編集する"
+
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "起動に失敗しました: gvim へのパスが正しく設定されているか確認してください!"
+
+msgid "gvimext.dll error"
+msgstr "gvimext.dll エラー"
+
+msgid "Path length too long!"
+msgstr "パスが長過ぎます!"
+
 msgid "--No lines in buffer--"
 msgstr "--バッファに行がありません--"
 
--- a/src/po/ja.sjis.po
+++ b/src/po/ja.sjis.po
@@ -4,13 +4,13 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # MURAOKA Taro <koron@tka.att.ne.jp>, 2001-6.
-# Last Change: 05-Feb-2006.
+# Last Change: 28-Mar-2006.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: Vim 7.0\n"
-"POT-Creation-Date: 2006-02-04 22:44+0900\n"
-"PO-Revision-Date: 2006-02-05 00:10+0900\n"
+"POT-Creation-Date: 2006-03-28 20:12+0900\n"
+"PO-Revision-Date: 2006-03-28 21:10+0900\n"
 "Last-Translator: MURAOKA Taro <koron@tka.att.ne.jp>\n"
 "Language-Team: MURAOKA Taro <koron@tka.att.ne.jp>\n"
 "MIME-Version: 1.0\n"
@@ -130,7 +130,7 @@ msgstr "[]"
 msgid "help"
 msgstr "wv"
 
-msgid "[help]"
+msgid "[Help]"
 msgstr "[wv]"
 
 msgid "[Preview]"
@@ -155,8 +155,8 @@ msgstr ""
 msgid "[Location List]"
 msgstr "[Xg]"
 
-msgid "[Error List]"
-msgstr "[G[Xg]"
+msgid "[Quickfix List]"
+msgstr "[QuickfixXg]"
 
 msgid ""
 "\n"
@@ -489,6 +489,9 @@ msgstr "E724: \\ヲq["
 msgid "E699: Too many arguments"
 msgstr "E699: "
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() }[hp"
+
 #.
 #. * Yes this is ugly, I don't particularly like it either.  But doing it
 #. * this way has the compelling advantage that translations need not to
@@ -1021,6 +1024,21 @@ msgstr "s %ld: %s "
 msgid "finished sourcing %s"
 msgstr "%s "
 
+msgid "modeline"
+msgstr "[hs"
+
+msgid "--cmd argument"
+msgstr "--cmd "
+
+msgid "-c argument"
+msgstr "-c "
+
+msgid "environment variable"
+msgstr ""
+
+msgid "error handler"
+msgstr "G[nh"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: x: ss. ^M "
 
@@ -1151,9 +1169,19 @@ msgstr "E185: J[XL[ %s "
 msgid "Greetings, Vim user!"
 msgstr "Vim gA!"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: ^uy[W"
+
+msgid "Already only one tab page"
+msgstr "^uy[W1"
+
 msgid "Edit File in new window"
 msgstr "VEBhEt@CW"
 
+#, c-format
+msgid "Tab page %d"
+msgstr "^uy[W %d"
+
 msgid "No swap file"
 msgstr "Xbvt@C"
 
@@ -1908,6 +1936,15 @@ msgstr "Su"
 msgid "Vim: Received \"die\" request from session manager\n"
 msgstr "Vim: ZbV}l[W \"die\" v\n"
 
+msgid "Close"
+msgstr ""
+
+msgid "New tab"
+msgstr "VK^uy[W"
+
+msgid "Open Tab..."
+msgstr "^uy[WJ..."
+
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: CEBhEsj\n"
 
@@ -1979,6 +2016,12 @@ msgstr "E243: T|[g: \"-%s\"; OLEgp."
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: MDIAvEBhEJ"
 
+msgid "Close tab"
+msgstr "^uy[W"
+
+msgid "Open tab..."
+msgstr "^uy[WJ"
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr " ('\\'  '\\\\')"
 
@@ -2055,10 +2098,6 @@ msgstr "O:"
 msgid "Show size in Points"
 msgstr "TCY|Cg\\ヲ"
 
-# msgid " BLOCK"
-# msgstr " ubN"
-# msgid " LINE"
-# msgstr " s"
 msgid "Encoding:"
 msgstr "GR[h:"
 
@@ -2658,8 +2697,6 @@ msgstr "Vimdiff@\\(RpC)."
 msgid "Attempt to open script file again: \""
 msgstr "XNvgt@CJ: \""
 
-# msgid "\"\n"
-# msgstr "\"\n"
 msgid "Cannot open for reading: \""
 msgstr "pJ"
 
@@ -2835,6 +2872,9 @@ msgstr "-U <gvimrc>\t\t.gvimrc <gvimrc> g"
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tvOCXNvg[h"
 
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tN ^uy[WJ(l: t@C1)"
+
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tN EBhEJ(l: t@C1)"
 
@@ -2888,6 +2928,9 @@ msgid ""
 "--remote-wait-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-wait-silent <files>  , T[oxo"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <files>  --remotet@C11^uy[WJ"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <keys>\tVimT[o <keys> MI"
 
@@ -3011,8 +3054,6 @@ msgstr "--socketid <xid>\tGTK widgetVimJ"
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <e^Cg>\tVimeAvP[VN"
 
-# msgid "--help\t\tShow Gnome arguments"
-# msgstr "--help\t\tGNOME"
 msgid "No display"
 msgstr "fBXvC"
 
@@ -4146,6 +4187,9 @@ msgstr "oG["
 msgid "...(truncated)"
 msgstr "...()"
 
+msgid "Message"
+msgstr "bZ[W"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' 80, OR}hタs"
 
@@ -4517,10 +4561,6 @@ msgstr " swI"
 msgid " SELECT BLOCK"
 msgstr " `I"
 
-# msgid " BLOCK"
-# msgstr " ubN"
-# msgid " LINE"
-# msgstr " s"
 msgid "recording"
 msgstr "L^"
 
@@ -4562,6 +4602,10 @@ msgstr "  "
 msgid "Scanning included file: %s"
 msgstr "CN[ht@CXL: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "CN[ht@CXL %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: sY"
 
@@ -4654,8 +4698,8 @@ msgid "FLAG after using flags in %s line
 msgstr "%s  %d stOdgp: %s"
 
 #, c-format
-msgid "Wrong COMPOUNDMAX value in %s line %d: %s"
-msgstr "%s  %d s COMPOUNDMAX l: %s"
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s  %d s COMPOUNDWORDMAX l: %s"
 
 #, c-format
 msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
@@ -4666,6 +4710,10 @@ msgid "Wrong COMPOUNDSYLMAX value in %s 
 msgstr "%s  %d s COMPOUNDSYLMAX l: %s"
 
 #, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s  %d s CHECKCOMPOUNDPATTERN l: %s"
+
+#, c-format
 msgid "Different combining flag in continued affix block in %s line %d: %s"
 msgstr ""
 "%s  %d s A affix ubNtOg: %s"
@@ -4676,10 +4724,10 @@ msgstr "%s  %d s d affix o: %s"
 
 #, c-format
 msgid ""
-"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND in %s line %d: "
-"%s"
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
 msgstr ""
-"%s  %d s affix  BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND "
+"%s  %d s affix  BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST "
 "gp: %s"
 
 #, c-format
@@ -4691,6 +4739,10 @@ msgid "Broken condition in %s line %d: %
 msgstr "%s  %d s : %s"
 
 #, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "PFXPOSTPONEw %s  %d s affix tO: %s"
+
+#, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "%s  %d s REP(SAL) Kv"
 
@@ -4780,7 +4832,7 @@ msgstr "%s  %d s d /encoding= s: %s"
 
 #, c-format
 msgid "/encoding= line after word ignored in %s line %d: %s"
-msgstr "%s s  %d s P /encoding= s: %s"
+msgstr "%s  %d s P /encoding= s: %s"
 
 #, c-format
 msgid "Duplicate /regions= line ignored in %s line %d: %s"
@@ -4859,6 +4911,14 @@ msgstr "タs!"
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile'  %ld Gg"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "%s P"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "%s P"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: PXyt@C"
 
@@ -5223,15 +5283,52 @@ msgstr "Vim: G[I...\n"
 msgid "No undo possible; continue anyway"
 msgstr "\\AhD: "
 
+msgid "Already at oldest change"
+msgstr "X"
+
+msgid "Already at newest change"
+msgstr "VX"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "AhD %ld "
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: s"
 
-msgid "1 change"
-msgstr "1 X"
-
-#, c-format
-msgid "%ld changes"
-msgstr "%ld X"
+msgid "more line"
+msgstr "s "
+
+msgid "s"
+msgstr "s "
+
+msgid "line less"
+msgstr "s "
+
+msgid "fewer lines"
+msgstr "s "
+
+msgid "change"
+msgstr "X"
+
+msgid "changes"
+msgstr "X"
+
+#, c-format
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "O"
+
+msgid "after"
+msgstr ""
+
+msgid "Nothing to undo"
+msgstr "AhD"
+
+msgid "number changes  time"
+msgstr "   X     "
 
 msgid "E439: undo list corrupt"
 msgstr "E439: AhDXg"
@@ -5564,6 +5661,33 @@ msgstr "E446: J[\\t@C"
 msgid "E447: Can't find file \"%s\" in path"
 msgstr "E447: path \"%s\" t@C"
 
+msgid "Edit with &multiple Vims"
+msgstr "VimW (&M)"
+
+msgid "Edit with single &Vim"
+msgstr "1VimW (&V)"
+
+msgid "Diff with Vim"
+msgstr "Vim"
+
+msgid "Edit with &Vim"
+msgstr "VimW (&V)"
+
+msgid "Edit with existing Vim - "
+msgstr "VimW - "
+
+msgid "Edits the selected file(s) with Vim"
+msgstr "It@CVimW"
+
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Nクs: gvim pXmF!"
+
+msgid "gvimext.dll error"
+msgstr "gvimext.dll G["
+
+msgid "Path length too long!"
+msgstr "pX!"
+
 msgid "--No lines in buffer--"
 msgstr "--obt@s--"
 
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -401,8 +401,11 @@ pum_set_selected(n)
 	}
 
 #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-	/* Show extra info in the preview window if there is something and
-	 * 'completeopt' contains "preview". */
+	/*
+	 * Show extra info in the preview window if there is something and
+	 * 'completeopt' contains "preview".
+	 * NOTE: Be very careful not to sync undo!
+	 */
 	if (pum_array[pum_selected].pum_info != NULL
 					    && vim_strchr(p_cot, 'p') != NULL)
 	{
@@ -411,7 +414,7 @@ pum_set_selected(n)
 
 	    /* Open a preview window.  3 lines by default. */
 	    g_do_tagpreview = 3;
-	    resized = prepare_tagpreview();
+	    resized = prepare_tagpreview(FALSE);
 	    g_do_tagpreview = 0;
 
 	    if (curwin->w_p_pvw)
@@ -496,7 +499,7 @@ pum_set_selected(n)
 			update_screen(0);
 			pum_do_redraw = FALSE;
 
-			if (win_valid(curwin_save))
+			if (!resized && win_valid(curwin_save))
 			    win_enter(curwin_save, TRUE);
 
 			/* May need to update the screen again when there are
--- a/src/proto/ex_cmds.pro
+++ b/src/proto/ex_cmds.pro
@@ -1,59 +1,59 @@
 /* ex_cmds.c */
-extern void do_ascii __ARGS((exarg_T *eap));
-extern void ex_align __ARGS((exarg_T *eap));
-extern void ex_sort __ARGS((exarg_T *eap));
-extern void ex_retab __ARGS((exarg_T *eap));
-extern int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
-extern void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
-extern void free_prev_shellcmd __ARGS((void));
-extern void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out));
-extern void do_shell __ARGS((char_u *cmd, int flags));
-extern char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
-extern void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
-extern int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
-extern int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
-extern void write_viminfo __ARGS((char_u *file, int forceit));
-extern int viminfo_readline __ARGS((vir_T *virp));
-extern char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
-extern void viminfo_writestring __ARGS((FILE *fd, char_u *p));
-extern void do_fixdel __ARGS((exarg_T *eap));
-extern void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
-extern void print_line __ARGS((linenr_T lnum, int use_number, int list));
-extern void ex_file __ARGS((exarg_T *eap));
-extern void ex_update __ARGS((exarg_T *eap));
-extern void ex_write __ARGS((exarg_T *eap));
-extern int do_write __ARGS((exarg_T *eap));
-extern void ex_wnext __ARGS((exarg_T *eap));
-extern void do_wqall __ARGS((exarg_T *eap));
-extern int not_writing __ARGS((void));
-extern int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
-extern int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
-extern void ex_append __ARGS((exarg_T *eap));
-extern void ex_change __ARGS((exarg_T *eap));
-extern void ex_z __ARGS((exarg_T *eap));
-extern int check_restricted __ARGS((void));
-extern int check_secure __ARGS((void));
-extern void do_sub __ARGS((exarg_T *eap));
-extern int do_sub_msg __ARGS((int count_only));
-extern void ex_global __ARGS((exarg_T *eap));
-extern void global_exe __ARGS((char_u *cmd));
-extern int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
-extern void write_viminfo_sub_string __ARGS((FILE *fp));
-extern void free_old_sub __ARGS((void));
-extern int prepare_tagpreview __ARGS((void));
-extern void ex_help __ARGS((exarg_T *eap));
-extern char_u *check_help_lang __ARGS((char_u *arg));
-extern int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
-extern int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang));
-extern void fix_help_buffer __ARGS((void));
-extern void ex_exusage __ARGS((exarg_T *eap));
-extern void ex_viusage __ARGS((exarg_T *eap));
-extern void ex_helptags __ARGS((exarg_T *eap));
-extern void ex_sign __ARGS((exarg_T *eap));
-extern void sign_gui_started __ARGS((void));
-extern int sign_get_attr __ARGS((int typenr, int line));
-extern char_u *sign_get_text __ARGS((int typenr));
-extern void *sign_get_image __ARGS((int typenr));
-extern char_u *sign_typenr2name __ARGS((int typenr));
-extern void ex_drop __ARGS((exarg_T *eap));
+void do_ascii __ARGS((exarg_T *eap));
+void ex_align __ARGS((exarg_T *eap));
+void ex_sort __ARGS((exarg_T *eap));
+void ex_retab __ARGS((exarg_T *eap));
+int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
+void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
+void free_prev_shellcmd __ARGS((void));
+void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out));
+void do_shell __ARGS((char_u *cmd, int flags));
+char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
+void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
+int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
+int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
+void write_viminfo __ARGS((char_u *file, int forceit));
+int viminfo_readline __ARGS((vir_T *virp));
+char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
+void viminfo_writestring __ARGS((FILE *fd, char_u *p));
+void do_fixdel __ARGS((exarg_T *eap));
+void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
+void print_line __ARGS((linenr_T lnum, int use_number, int list));
+void ex_file __ARGS((exarg_T *eap));
+void ex_update __ARGS((exarg_T *eap));
+void ex_write __ARGS((exarg_T *eap));
+int do_write __ARGS((exarg_T *eap));
+void ex_wnext __ARGS((exarg_T *eap));
+void do_wqall __ARGS((exarg_T *eap));
+int not_writing __ARGS((void));
+int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
+int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
+void ex_append __ARGS((exarg_T *eap));
+void ex_change __ARGS((exarg_T *eap));
+void ex_z __ARGS((exarg_T *eap));
+int check_restricted __ARGS((void));
+int check_secure __ARGS((void));
+void do_sub __ARGS((exarg_T *eap));
+int do_sub_msg __ARGS((int count_only));
+void ex_global __ARGS((exarg_T *eap));
+void global_exe __ARGS((char_u *cmd));
+int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
+void write_viminfo_sub_string __ARGS((FILE *fp));
+void free_old_sub __ARGS((void));
+int prepare_tagpreview __ARGS((int undo_sync));
+void ex_help __ARGS((exarg_T *eap));
+char_u *check_help_lang __ARGS((char_u *arg));
+int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
+int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang));
+void fix_help_buffer __ARGS((void));
+void ex_exusage __ARGS((exarg_T *eap));
+void ex_viusage __ARGS((exarg_T *eap));
+void ex_helptags __ARGS((exarg_T *eap));
+void ex_sign __ARGS((exarg_T *eap));
+void sign_gui_started __ARGS((void));
+int sign_get_attr __ARGS((int typenr, int line));
+char_u *sign_get_text __ARGS((int typenr));
+void *sign_get_image __ARGS((int typenr));
+char_u *sign_typenr2name __ARGS((int typenr));
+void ex_drop __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
--- a/src/proto/gui_mac.pro
+++ b/src/proto/gui_mac.pro
@@ -28,7 +28,7 @@ void gui_mch_exit __ARGS((int));
 void gui_mch_set_winsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
 int gui_mch_get_winpos __ARGS((int *x, int *y));
 void gui_mch_set_winpos __ARGS((int x, int y));
-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
 void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
 void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
 void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
--- a/src/search.c
+++ b/src/search.c
@@ -4927,7 +4927,7 @@ search_line:
 		    if (g_do_tagpreview != 0)
 		    {
 			curwin_save = curwin;
-			prepare_tagpreview();
+			prepare_tagpreview(TRUE);
 		    }
 #endif
 		    if (action == ACTION_SPLIT)
--- a/src/tag.c
+++ b/src/tag.c
@@ -3101,7 +3101,7 @@ jumpto_tag(lbuf, forceit, keep_help)
 	     * Make the preview window the current window.
 	     * Open a preview window when needed.
 	     */
-	    prepare_tagpreview();
+	    prepare_tagpreview(TRUE);
 	}
     }
 
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70c"
 #define VIM_VERSION_SHORT	"7.0c"
-#define VIM_VERSION_MEDIUM	"7.0c01 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c01 BETA (2006 Mar 27)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c01 BETA (2006 Mar 27, compiled "
+#define VIM_VERSION_MEDIUM	"7.0c02 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c02 BETA (2006 Mar 28)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c02 BETA (2006 Mar 28, compiled "