updated for version 7.0c02
diff --git a/Filelist b/Filelist
index 21af961..69e7702 100644
--- a/Filelist
+++ b/Filelist
@@ -362,6 +362,7 @@
 		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 \
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index a38af97..6138af6 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0c.  Last change: 2006 Mar 21
+*insert.txt*    For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -304,9 +304,11 @@
 
 						*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 @@
 
 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 @@
 		  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
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 0d5263b..0d037d6 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Mar 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 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
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 03dd1cd..3f8b2e1 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4720,6 +4720,8 @@
 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-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_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*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 82eed61..98e3b82 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 27
+*todo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,12 +30,11 @@
 							*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 @@
     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 @@
 -   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.
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 607b90a..2a3cd95 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0c.  Last change: 2006 Mar 27
+*version7.txt*  For Vim version 7.0c.  Last change: 2006 Mar 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -77,6 +77,9 @@
 
 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 @@
 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 @@
 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 @@
 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 @@
 
 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:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 23b1690..cad2cc1 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 26
+" Last Change:	2006 Mar 28
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -475,6 +475,9 @@
 " 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 @@
 " 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')
 
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 869ae9a..04964a5 100644
--- 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 !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 @@
   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"
diff --git a/runtime/lang/menu_ja_jp.euc-jp.vim b/runtime/lang/menu_ja_jp.euc-jp.vim
index 38a65bf..4dcfd6e 100644
--- 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 @@
 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 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\ &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"\ ¤ËÀßÄꤹ¤ë
diff --git a/runtime/lang/menu_ja_jp.utf-8.vim b/runtime/lang/menu_ja_jp.utf-8.vim
index 2aafe80..8c2f2a6 100644
--- 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 @@
 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 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\ &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"\ に設定する
diff --git a/runtime/lang/menu_japanese_japan.932.vim b/runtime/lang/menu_japanese_japan.932.vim
index 7041f29..90273ab 100644
--- 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 @@
 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	ƒ^ƒuƒy[ƒW‚ÅŠJ‚­<Tab>:tabnew
 menutrans &New<Tab>:enew		V‹Kì¬(&N)<Tab>:enew
 menutrans &Close<Tab>:close		•Â‚¶‚é(&C)<Tab>:close
 menutrans &Save<Tab>:w			•Û‘¶(&S)<Tab>:w
@@ -51,7 +52,7 @@
 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		‘S‚Ä‘I‘ð(&S)<Tab>ggvG
+menutrans &Select\ All<Tab>ggVG		‘S‚Ä‘I‘ð(&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\ &Off		ƒXƒyƒ‹ƒ`ƒFƒbƒN—LŒø(&O)
 menutrans To\ &Next\ error<Tab>]s	ŽŸ‚̃Gƒ‰[(&N)<Tab>]s
 menutrans To\ &Previous\ error<Tab>[s	‘O‚̃Gƒ‰[(&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	C³‚ðŒJ‚è•Ô‚·(&R)<Tab>:spellrepall
 menutrans Set\ language\ to\ "en"	Œ¾Œê‚ð\ "en"\ ‚ɐݒ肷‚é
 menutrans Set\ language\ to\ "en_au"	Œ¾Œê‚ð\ "en_au"\ ‚ɐݒ肷‚é
diff --git a/runtime/mswin.vim b/runtime/mswin.vim
index ebc27f0..fb29237 100644
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -1,7 +1,7 @@
 " Set options and add mapping such that Vim behaves a lot like MS-Windows
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2006 Mar 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 @@
 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&
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 9388481..e709d95 100644
--- 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 @@
     " - "# 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)
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index 7386426..3e51652 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -116,40 +116,41 @@
 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>
diff --git a/runtime/syntax/coretex.vim b/runtime/syntax/coretex.vim
new file mode 100644
index 0000000..adb77bb
--- /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
+
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
new file mode 100644
index 0000000..c952ed8
--- /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
diff --git a/runtime/syntax/plaintex.vim b/runtime/syntax/plaintex.vim
new file mode 100644
index 0000000..a930712
--- /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
+
diff --git a/src/Makefile b/src/Makefile
index 15d954d..ea1462a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1524,6 +1524,7 @@
 	$(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 @@
 	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 @@
 		-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.
diff --git a/src/auto/configure b/src/auto/configure
index f1178f8..2eea4af 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -3395,6 +3395,8 @@
 		if test x$prefix = xNONE; then
 	  prefix=/Applications
 	fi
+
+		datadir='${prefix}/Vim.app/Contents/Resources'
       fi
     fi
   fi
diff --git a/src/configure.in b/src/configure.in
index 2568fc3..2a71f42 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -165,6 +165,9 @@
 	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
diff --git a/src/doc-txt.icns b/src/doc-txt.icns
new file mode 100644
index 0000000..bcd11d6
--- /dev/null
+++ b/src/doc-txt.icns
Binary files differ
diff --git a/src/edit.c b/src/edit.c
index c22bb39..5159a34 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -726,8 +726,8 @@
 		    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 @@
 
 	    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;
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e0c82c3..9e89392 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3240,6 +3240,7 @@
 		    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 @@
  * 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 @@
 	    if (wp->w_p_pvw)
 		break;
 	if (wp != NULL)
-	    win_enter(wp, TRUE);
+	    win_enter(wp, undo_sync);
 	else
 	{
 	    /*
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 0acc3db..420f16c 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -1066,6 +1066,11 @@
 	    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;
     }
 
diff --git a/src/gui_w48.c b/src/gui_w48.c
index c4ce0bc..8b4684a 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -1121,8 +1121,7 @@
 	    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);
     }
diff --git a/src/main.c b/src/main.c
index aff8b3f..32f9115 100644
--- a/src/main.c
+++ b/src/main.c
@@ -449,7 +449,24 @@
      * 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
 
     /*
diff --git a/src/po/ja.po b/src/po/ja.po
index e46f585..db6bedd 100644
--- 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 @@
 msgid "help"
 msgstr "¥Ø¥ë¥×"
 
-msgid "[help]"
+msgid "[Help]"
 msgstr "[¥Ø¥ë¥×]"
 
 msgid "[Preview]"
@@ -155,8 +155,8 @@
 msgid "[Location List]"
 msgstr "[¾ì½ê¥ê¥¹¥È]"
 
-msgid "[Error List]"
-msgstr "[¥¨¥é¡¼¥ê¥¹¥È]"
+msgid "[Quickfix List]"
+msgstr "[Quickfix¥ê¥¹¥È]"
 
 msgid ""
 "\n"
@@ -489,6 +489,9 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 msgid "Show size in Points"
 msgstr "¥µ¥¤¥º¤ò¥Ý¥¤¥ó¥È¤Çɽ¼¨¤¹¤ë"
 
-# msgid " BLOCK"
-# msgstr " ¥Ö¥í¥Ã¥¯"
-# msgid " LINE"
-# msgstr " ¹Ô"
 msgid "Encoding:"
 msgstr "¥¨¥ó¥³¡¼¥É:"
 
@@ -2658,8 +2697,6 @@
 msgid "Attempt to open script file again: \""
 msgstr "¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òºÆ¤Ó³«¤¤¤Æ¤ß¤Þ¤¹: \""
 
-# msgid "\"\n"
-# msgstr "\"\n"
 msgid "Cannot open for reading: \""
 msgstr "ÆɹþÍѤȤ·¤Æ³«¤±¤Þ¤»¤ó"
 
@@ -2835,6 +2872,9 @@
 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 @@
 "--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 @@
 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 @@
 msgid "...(truncated)"
 msgstr "...(¾Êά)"
 
+msgid "Message"
+msgstr "¥á¥Ã¥»¡¼¥¸"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ¤¬80¤Ç¤Ï¤Ê¤¤¤¿¤á, ³°Éô¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó"
 
@@ -4517,10 +4561,6 @@
 msgid " SELECT BLOCK"
 msgstr " ¶ë·ÁÁªÂò"
 
-# msgid " BLOCK"
-# msgstr " ¥Ö¥í¥Ã¥¯"
-# msgid " LINE"
-# msgstr " ¹Ô"
 msgid "recording"
 msgstr "µ­Ï¿Ãæ"
 
@@ -4562,6 +4602,10 @@
 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 @@
 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 @@
 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 @@
 
 #, 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 @@
 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 @@
 
 #, 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 @@
 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 @@
 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 ²Õ½êÊѹ¹¤·¤Þ¤·¤¿"
+msgid "more line"
+msgstr "¹Ô Äɲä·¤Þ¤·¤¿"
+
+msgid "¹Ô¤¢¤ê¤Þ¤¹"
+msgstr "¹Ô Äɲä·¤Þ¤·¤¿"
+
+msgid "line less"
+msgstr "¹Ô ºï½ü¤·¤Þ¤·¤¿"
+
+msgid "fewer lines"
+msgstr "¹Ô ºï½ü¤·¤Þ¤·¤¿"
+
+msgid "change"
+msgstr "²Õ½êÊѹ¹¤·¤Þ¤·¤¿"
+
+msgid "changes"
+msgstr "²Õ½êÊѹ¹¤·¤Þ¤·¤¿"
 
 #, c-format
-msgid "%ld changes"
-msgstr "%ld ²Õ½êÊѹ¹¤·¤Þ¤·¤¿"
+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 @@
 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 "--¥Ð¥Ã¥Õ¥¡¤Ë¹Ô¤¬¤¢¤ê¤Þ¤»¤ó--"
 
diff --git a/src/po/ja.sjis.po b/src/po/ja.sjis.po
index 411fc3f..f663ea2 100644
--- 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 @@
 msgid "help"
 msgstr "ƒwƒ‹ƒv"
 
-msgid "[help]"
+msgid "[Help]"
 msgstr "[ƒwƒ‹ƒv]"
 
 msgid "[Preview]"
@@ -155,8 +155,8 @@
 msgid "[Location List]"
 msgstr "[êŠƒŠƒXƒg]"
 
-msgid "[Error List]"
-msgstr "[ƒGƒ‰[ƒŠƒXƒg]"
+msgid "[Quickfix List]"
+msgstr "[QuickfixƒŠƒXƒg]"
 
 msgid ""
 "\n"
@@ -489,6 +489,9 @@
 msgid "E699: Too many arguments"
 msgstr "E699: ‚ª‘½‰ß‚¬‚Ü‚·"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() ‚Í‘}“üƒ‚[ƒh‚Å‚µ‚©—˜—p‚Å‚«‚Ü‚¹‚ñ"
+
 #.
 #. * 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 @@
 msgid "finished sourcing %s"
 msgstr "%s ‚̎捞‚ðŠ®—¹"
 
+msgid "modeline"
+msgstr "ƒ‚[ƒhs"
+
+msgid "--cmd argument"
+msgstr "--cmd ˆø”"
+
+msgid "-c argument"
+msgstr "-c ˆø”"
+
+msgid "environment variable"
+msgstr "ŠÂ‹«•Ï”"
+
+msgid "error handler"
+msgstr "ƒGƒ‰[ƒnƒ“ƒhƒ‰"
+
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: Œx: s‹æØ‚ª•s³‚Å‚·. ^M ‚ª‚È‚¢‚Ì‚Å‚µ‚傤"
 
@@ -1151,9 +1169,19 @@
 msgid "Greetings, Vim user!"
 msgstr "Vim Žg‚¢‚³‚ñA‚â‚ !"
 
+msgid "E784: Cannot close last tab page"
+msgstr "E784: ÅŒã‚̃^ƒuƒy[ƒW‚ð•Â‚¶‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñ"
+
+msgid "Already only one tab page"
+msgstr "Šù‚Ƀ^ƒuƒy[ƒW‚Í1‚‚µ‚©‚ ‚è‚Ü‚¹‚ñ"
+
 msgid "Edit File in new window"
 msgstr "V‚µ‚¢ƒEƒBƒ“ƒhƒE‚Ńtƒ@ƒCƒ‹‚ð•ÒW‚µ‚Ü‚·"
 
+#, c-format
+msgid "Tab page %d"
+msgstr "ƒ^ƒuƒy[ƒW %d"
+
 msgid "No swap file"
 msgstr "ƒXƒƒbƒvƒtƒ@ƒCƒ‹‚ª‚ ‚è‚Ü‚¹‚ñ"
 
@@ -1908,6 +1936,15 @@
 msgid "Vim: Received \"die\" request from session manager\n"
 msgstr "Vim: ƒZƒbƒVƒ‡ƒ“ƒ}ƒl[ƒWƒƒ‚©‚ç \"die\" —v‹‚ðŽó‚¯Žæ‚è‚Ü‚µ‚½\n"
 
+msgid "Close"
+msgstr "•Â‚¶‚é"
+
+msgid "New tab"
+msgstr "V‹Kƒ^ƒuƒy[ƒW"
+
+msgid "Open Tab..."
+msgstr "ƒ^ƒuƒy[ƒW‚ðŠJ‚­..."
+
 msgid "Vim: Main window unexpectedly destroyed\n"
 msgstr "Vim: ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ª•sˆÓ‚É”j‰ó‚³‚ê‚Ü‚µ‚½\n"
 
@@ -1979,6 +2016,12 @@
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: MDIƒAƒvƒŠ‚Ì’†‚ł̓EƒBƒ“ƒhƒE‚ðŠJ‚¯‚Ü‚¹‚ñ"
 
+msgid "Close tab"
+msgstr "ƒ^ƒuƒy[ƒW‚ð•Â‚¶‚é"
+
+msgid "Open tab..."
+msgstr "ƒ^ƒuƒy[ƒW‚ðŠJ‚­"
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "ŒŸõ•¶Žš—ñ ('\\' ‚ðŒŸõ‚·‚é‚É‚Í '\\\\')"
 
@@ -2055,10 +2098,6 @@
 msgid "Show size in Points"
 msgstr "ƒTƒCƒY‚ðƒ|ƒCƒ“ƒg‚Å•\\Ž¦‚·‚é"
 
-# msgid " BLOCK"
-# msgstr " ƒuƒƒbƒN"
-# msgid " LINE"
-# msgstr " s"
 msgid "Encoding:"
 msgstr "ƒGƒ“ƒR[ƒh:"
 
@@ -2658,8 +2697,6 @@
 msgid "Attempt to open script file again: \""
 msgstr "ƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹‚ðÄ‚ÑŠJ‚¢‚Ä‚Ý‚Ü‚·: \""
 
-# msgid "\"\n"
-# msgstr "\"\n"
 msgid "Cannot open for reading: \""
 msgstr "“Ǎž—p‚Æ‚µ‚ÄŠJ‚¯‚Ü‚¹‚ñ"
 
@@ -2835,6 +2872,9 @@
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tƒvƒ‰ƒOƒCƒ“ƒXƒNƒŠƒvƒg‚ðƒ[ƒh‚µ‚È‚¢"
 
+msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
+msgstr "-p[N]\t\tN ŒÂƒ^ƒuƒy[ƒW‚ðŠJ‚­(È—ª’l: ƒtƒ@ƒCƒ‹‚ɂ‚«1ŒÂ)"
+
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tN ŒÂƒEƒBƒ“ƒhƒE‚ðŠJ‚­(È—ª’l: ƒtƒ@ƒCƒ‹‚ɂ‚«1ŒÂ)"
 
@@ -2888,6 +2928,9 @@
 "--remote-wait-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-wait-silent <files>  “¯ã, ƒT[ƒo‚ª–³‚­‚Ä‚àŒx•¶‚ðo—Í‚µ‚È‚¢"
 
+msgid "--remote-tab <files>  As --remote but open tab page for each file"
+msgstr "--remote-tab <files>  --remote‚Ńtƒ@ƒCƒ‹1‚‚ɂ‚«1‚‚̃^ƒuƒy[ƒW‚ðŠJ‚­"
+
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <keys>\tVimƒT[ƒo‚É <keys> ‚𑗐M‚µ‚ďI—¹‚·‚é"
 
@@ -3011,8 +3054,6 @@
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <e‚̃^ƒCƒgƒ‹>\tVim‚ðeƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì’†‚Å‹N“®‚·‚é"
 
-# msgid "--help\t\tShow Gnome arguments"
-# msgstr "--help\t\tGNOME‚̈ø”‚ðŒ©‚¹‚é"
 msgid "No display"
 msgstr "ƒfƒBƒXƒvƒŒƒC‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ"
 
@@ -4146,6 +4187,9 @@
 msgid "...(truncated)"
 msgstr "...(È—ª)"
 
+msgid "Message"
+msgstr "ƒƒbƒZ[ƒW"
+
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ‚ª80‚Å‚Í‚È‚¢‚½‚ß, ŠO•”ƒRƒ}ƒ“ƒh‚ðŽÀs‚Å‚«‚Ü‚¹‚ñ"
 
@@ -4517,10 +4561,6 @@
 msgid " SELECT BLOCK"
 msgstr " ‹éŒ`‘I‘ð"
 
-# msgid " BLOCK"
-# msgstr " ƒuƒƒbƒN"
-# msgid " LINE"
-# msgstr " s"
 msgid "recording"
 msgstr "‹L˜^’†"
 
@@ -4562,6 +4602,10 @@
 msgid "Scanning included file: %s"
 msgstr "ƒCƒ“ƒNƒ‹[ƒh‚³‚ꂽƒtƒ@ƒCƒ‹‚ðƒXƒLƒƒƒ“’†: %s"
 
+#, c-format
+msgid "Searching included file %s"
+msgstr "ƒCƒ“ƒNƒ‹[ƒh‚³‚ꂽƒtƒ@ƒCƒ‹‚ðƒXƒLƒƒƒ“’† %s"
+
 msgid "E387: Match is on current line"
 msgstr "E387: Œ»Ýs‚ÉŠY“–‚ª‚ ‚è‚Ü‚·"
 
@@ -4654,8 +4698,8 @@
 msgstr "%s “à‚Ì %d s–ڂɃtƒ‰ƒO‚Ì“ñdŽg—p‚ª‚ ‚è‚Ü‚·: %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 @@
 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 ƒuƒƒbƒN‚̃tƒ‰ƒO‚Ì‘g‡‚¹‚ɈႢ‚ª‚ ‚è‚Ü‚·: %s"
@@ -4676,10 +4724,10 @@
 
 #, 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 "
 "‚ÉŽg—p‚µ‚Ä‚­‚¾‚³‚¢: %s"
 
 #, c-format
@@ -4691,6 +4739,10 @@
 msgstr "%s ‚Ì %d s–Ú‚Ì ðŒ‚͉ó‚ê‚Ä‚¢‚Ü‚·: %s"
 
 #, c-format
+msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+msgstr "PFXPOSTPONE‚ªŽw’肳‚ꂽ‚Ì‚Å %s ‚Ì %d s–Ú‚Ì affix ƒtƒ‰ƒO‚𖳎‹‚µ‚Ü‚µ‚½: %s"
+
+#, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "%s ‚Ì %d s–Ú‚É‚Í REP(SAL) ‚̉ñ”‚ª•K—v‚Å‚·"
 
@@ -4780,7 +4832,7 @@
 
 #, 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 @@
 msgid "E765: 'spellfile' does not have %ld entries"
 msgstr "E765: 'spellfile' ‚É‚Í %ld ŒÂ‚̃Gƒ“ƒgƒŠ‚Í‚ ‚è‚Ü‚¹‚ñ"
 
+#, c-format
+msgid "Word removed from %s"
+msgstr "%s ‚©‚ç’PŒê‚ªíœ‚³‚ê‚Ü‚µ‚½"
+
+#, c-format
+msgid "Word added to %s"
+msgstr "%s ‚É’PŒê‚ª’ljÁ‚³‚ê‚Ü‚µ‚½"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: ’PŒê‚Ì•¶Žš‚ªƒXƒyƒ‹ƒtƒ@ƒCƒ‹‚ƈقȂè‚Ü‚·"
 
@@ -5223,15 +5283,52 @@
 msgid "No undo possible; continue anyway"
 msgstr "‰Â”\\‚ȃAƒ“ƒhƒD‚Í‚ ‚è‚Ü‚¹‚ñ: ‚Æ‚è‚ ‚¦‚¸‘±‚¯‚Ü‚·"
 
+msgid "Already at oldest change"
+msgstr "Šù‚Ɉê”Ԍ¢•ÏX‚Å‚·"
+
+msgid "Already at newest change"
+msgstr "Šù‚Ɉê”ԐV‚µ‚¢•ÏX‚Å‚·"
+
+#, c-format
+msgid "Undo number %ld not found"
+msgstr "ƒAƒ“ƒhƒD”ԍ† %ld ‚ª‚݂‚©‚è‚Ü‚¹‚ñ"
+
 msgid "E438: u_undo: line numbers wrong"
 msgstr "E438: u_undo: s”ԍ†‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·"
 
-msgid "1 change"
-msgstr "1 ‰ÓŠ•ÏX‚µ‚Ü‚µ‚½"
+msgid "more line"
+msgstr "s ’ljÁ‚µ‚Ü‚µ‚½"
+
+msgid "s‚ ‚è‚Ü‚·"
+msgstr "s ’ljÁ‚µ‚Ü‚µ‚½"
+
+msgid "line less"
+msgstr "s íœ‚µ‚Ü‚µ‚½"
+
+msgid "fewer lines"
+msgstr "s íœ‚µ‚Ü‚µ‚½"
+
+msgid "change"
+msgstr "‰ÓŠ•ÏX‚µ‚Ü‚µ‚½"
+
+msgid "changes"
+msgstr "‰ÓŠ•ÏX‚µ‚Ü‚µ‚½"
 
 #, c-format
-msgid "%ld changes"
-msgstr "%ld ‰ÓŠ•ÏX‚µ‚Ü‚µ‚½"
+msgid "%ld %s; %s #%ld  %s"
+msgstr "%ld %s; %s #%ld  %s"
+
+msgid "before"
+msgstr "‘O•û"
+
+msgid "after"
+msgstr "Œã•û"
+
+msgid "Nothing to undo"
+msgstr "ƒAƒ“ƒhƒD‘Ώۂª‚ ‚è‚Ü‚¹‚ñ"
+
+msgid "number changes  time"
+msgstr "”ԍ†   •ÏX     Žž"
 
 msgid "E439: undo list corrupt"
 msgstr "E439: ƒAƒ“ƒhƒDƒŠƒXƒg‚ª‰ó‚ê‚Ä‚¢‚Ü‚·"
@@ -5564,6 +5661,33 @@
 msgid "E447: Can't find file \"%s\" in path"
 msgstr "E447: path‚É‚Í \"%s\" ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ª‚ ‚è‚Ü‚¹‚ñ"
 
+msgid "Edit with &multiple Vims"
+msgstr "•¡”‚ÌVim‚ŕҏW‚·‚é (&M)"
+
+msgid "Edit with single &Vim"
+msgstr "1‚‚ÌVim‚ŕҏW‚·‚é (&V)"
+
+msgid "Diff with Vim"
+msgstr "Vim‚ō·•ª‚ðŒ©‚é"
+
+msgid "Edit with &Vim"
+msgstr "Vim‚ŕҏW‚·‚é (&V)"
+
+msgid "Edit with existing Vim - "
+msgstr "Šù‘¶‚ÌVim‚ŕҏW‚·‚é - "
+
+msgid "Edits the selected file(s) with Vim"
+msgstr "‘I‘ð‚³‚ê‚½ƒtƒ@ƒCƒ‹‚ðVim‚ŕҏW‚·‚é"
+
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "‹N“®‚ÉŽ¸”s‚µ‚Ü‚µ‚½: gvim ‚ւ̃pƒX‚ª³‚µ‚­Ý’肳‚ê‚Ä‚¢‚é‚©Šm”F‚µ‚Ä‚­‚¾‚³‚¢!"
+
+msgid "gvimext.dll error"
+msgstr "gvimext.dll ƒGƒ‰["
+
+msgid "Path length too long!"
+msgstr "ƒpƒX‚ª’·‰ß‚¬‚Ü‚·!"
+
 msgid "--No lines in buffer--"
 msgstr "--ƒoƒbƒtƒ@‚ɍs‚ª‚ ‚è‚Ü‚¹‚ñ--"
 
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 861e74c..9f1fae4 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -401,8 +401,11 @@
 	}
 
 #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 @@
 
 	    /* 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 @@
 			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
diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro
index 84741c4..4382e65 100644
--- 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 : */
diff --git a/src/proto/gui_mac.pro b/src/proto/gui_mac.pro
index c640351..c943b08 100644
--- a/src/proto/gui_mac.pro
+++ b/src/proto/gui_mac.pro
@@ -28,7 +28,7 @@
 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));
diff --git a/src/search.c b/src/search.c
index 145f6c8..41f38a3 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4927,7 +4927,7 @@
 		    if (g_do_tagpreview != 0)
 		    {
 			curwin_save = curwin;
-			prepare_tagpreview();
+			prepare_tagpreview(TRUE);
 		    }
 #endif
 		    if (action == ACTION_SPLIT)
diff --git a/src/tag.c b/src/tag.c
index 6c8888c..a9ac537 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -3101,7 +3101,7 @@
 	     * Make the preview window the current window.
 	     * Open a preview window when needed.
 	     */
-	    prepare_tagpreview();
+	    prepare_tagpreview(TRUE);
 	}
     }
 
diff --git a/src/version.h b/src/version.h
index 3b06de9..ce5c971 100644
--- 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 "