From d2cec5b043361ee798a0522244135f4ea87838f6 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Tue, 28 Mar 2006 21:08:56 +0000
Subject: [PATCH] updated for version 7.0c02

---
 Filelist                                 |   1 +
 runtime/doc/insert.txt                   |  17 +-
 runtime/doc/syntax.txt                   |  15 +-
 runtime/doc/tags                         |   4 +
 runtime/doc/todo.txt                     |  31 +-
 runtime/doc/version7.txt                 |  19 +-
 runtime/filetype.vim                     |   8 +-
 runtime/ftplugin/man.vim                 |   8 +-
 runtime/lang/menu_ja_jp.euc-jp.vim       |   7 +-
 runtime/lang/menu_ja_jp.utf-8.vim        |   7 +-
 runtime/lang/menu_japanese_japan.932.vim |   7 +-
 runtime/mswin.vim                        |   5 +-
 runtime/scripts.vim                      |   7 +-
 runtime/synmenu.vim                      |  69 +++--
 runtime/syntax/coretex.vim               | 377 +++++++++++++++++++++++
 runtime/syntax/debsources.vim            |  40 +++
 runtime/syntax/plaintex.vim              | 166 ++++++++++
 src/Makefile                             |   5 +-
 src/auto/configure                       |   2 +
 src/configure.in                         |   3 +
 src/doc-txt.icns                         | Bin 0 -> 35095 bytes
 src/edit.c                               |  20 +-
 src/ex_cmds.c                            |   6 +-
 src/gui_mac.c                            |   5 +
 src/gui_w48.c                            |   3 +-
 src/main.c                               |  17 +
 src/po/ja.po                             | 180 +++++++++--
 src/po/ja.sjis.po                        | 180 +++++++++--
 src/popupmnu.c                           |  11 +-
 src/proto/ex_cmds.pro                    | 114 +++----
 src/proto/gui_mac.pro                    |   2 +-
 src/search.c                             |   2 +-
 src/tag.c                                |   2 +-
 src/version.h                            |   6 +-
 34 files changed, 1139 insertions(+), 207 deletions(-)
 create mode 100644 runtime/syntax/coretex.vim
 create mode 100644 runtime/syntax/debsources.vim
 create mode 100644 runtime/syntax/plaintex.vim
 create mode 100644 src/doc-txt.icns

diff --git a/Filelist b/Filelist
index 21af96178b..69e7702ba9 100644
--- 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 \
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index a38af97f10..6138af6d68 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 @@ 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
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 0d5263b3d7..0d037d6dc7 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 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
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 03dd1cd308..3f8b2e1d8e 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4720,6 +4720,8 @@ compl-whole-line	insert.txt	/*compl-whole-line*
 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*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 82eed61451..98e3b82a9b 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 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*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 @@ Awaiting updated patches:
 -   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 607b90a0a7..2a3cd9572a 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 @@ was being edited by another Vim.  Vim now gives an error message |E768|.
 
 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. (Nikolai Weibull)
 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.  Post a fake mouse-up event after the odoc
 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:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 23b1690a07..cad2cc1406 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 @@ au BufNewFile,BufRead *.si			setf cuplsim
 " 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')
 
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 869ae9ab77..04964a5496 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 &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"
diff --git a/runtime/lang/menu_ja_jp.euc-jp.vim b/runtime/lang/menu_ja_jp.euc-jp.vim
index 38a65bfb18..4dcfd6e1f1 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 @@ let g:menutrans_help_dialog = "
 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		貼
 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		
 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 2aafe80321..8c2f2a68e1 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 @@ let g:menutrans_help_dialog = "��������罎�膣≪�������潟���潟��������
 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"\ ��┃絎�����
diff --git a/runtime/lang/menu_japanese_japan.932.vim b/runtime/lang/menu_japanese_japan.932.vim
index 7041f29b61..90273abcf8 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 @@ let g:menutrans_help_dialog = "
 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 &Paste<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		�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\ On		
 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 ebc27f00ef..fb29237e9f 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 @@ 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&
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 9388481db8..e709d95444 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 @@ 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)
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index 7386426e93..3e51652353 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -116,40 +116,41 @@ an 50.20.390 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
 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 0000000000..adb77bbc18
--- /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 0000000000..c952ed82c6
--- /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 0000000000..a930712a72
--- /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 15d954d547..ea1462a291 100644
--- 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=$(VIMNAME) -DAPP_NAME=$(VIMNAME) \
 		-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 f1178f88e2..2eea4afd3d 100755
--- 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
diff --git a/src/configure.in b/src/configure.in
index 2568fc37f1..2a71f42f5c 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -165,6 +165,9 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
 	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 0000000000000000000000000000000000000000..bcd11d67c7ce67e8abb4232e3d425620ea893cb2
GIT binary patch
literal 35095
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
F@?WeSgo6M8

literal 0
HcmV?d00001

diff --git a/src/edit.c b/src/edit.c
index c22bb39ef5..5159a34fce 100644
--- 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;
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e0c82c3fcc..9e8939233e 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3240,6 +3240,7 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
 		    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
 	{
 	    /*
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 0acc3dbce4..420f16cdbe 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -1066,6 +1066,11 @@ HandleODocAE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 	    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 c4ce0bc984..8b4684a405 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -1121,8 +1121,7 @@ gui_mch_set_text_area_pos(int x, int y, int w, int h)
 	    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 aff8b3fb3f..32f91156d1 100644
--- 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
 
     /*
diff --git a/src/po/ja.po b/src/po/ja.po
index e46f58540e..db6bedd4bc 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 @@ 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 "
 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: 
 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: 
 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 "
 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
 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
 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 %d: %s"
 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"
@@ -4665,6 +4709,10 @@ msgstr "%s 
 msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %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 ""
@@ -4676,10 +4724,10 @@ msgstr "%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
@@ -4690,6 +4738,10 @@ msgstr "%s 
 msgid "Broken condition in %s line %d: %s"
 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 
 
 #, 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: 
 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 @@ 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 "--バッファに行がありません--"
 
diff --git a/src/po/ja.sjis.po b/src/po/ja.sjis.po
index 411fc3f9ba..f663ea29ff 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 @@ msgstr "[
 msgid "help"
 msgstr "�w���v"
 
-msgid "[help]"
+msgid "[Help]"
 msgstr "[�w���v]"
 
 msgid "[Preview]"
@@ -155,8 +155,8 @@ msgstr ""
 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 @@ msgstr "E724: 
 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 @@ msgstr "
 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 @@ msgstr "E185: 
 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 @@ msgstr "
 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 @@ msgstr "E243: 
 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 @@ msgstr "
 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 @@ msgstr "
 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 @@ msgstr "-U <gvimrc>\t\t.gvimrc
 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 @@ msgid ""
 "--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 @@ msgstr "--socketid <xid>\t
 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 @@ msgstr "
 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 @@ msgstr " 
 msgid " SELECT BLOCK"
 msgstr " ��`�I��"
 
-# msgid " BLOCK"
-# msgstr " �u���b�N"
-# msgid " LINE"
-# msgstr " �s"
 msgid "recording"
 msgstr "�L�^��"
 
@@ -4562,6 +4602,10 @@ msgstr "  
 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 @@ msgid "FLAG after using flags in %s line %d: %s"
 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"
@@ -4665,6 +4709,10 @@ msgstr "%s 
 msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %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 ""
@@ -4676,10 +4724,10 @@ msgstr "%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 "
 "��g�p�������: %s"
 
 #, c-format
@@ -4690,6 +4738,10 @@ msgstr "%s 
 msgid "Broken condition in %s line %d: %s"
 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 @@ msgstr "%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 "
 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����������"
+
 msgid "E763: Word characters differ between spell files"
 msgstr "E763: �P�������X�y���t�@�C���������"
 
@@ -5223,15 +5283,52 @@ msgstr "Vim: 
 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 �������"
+
+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 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 @@ msgstr "E446: 
 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 861e74cee2..9f1fae4fb0 100644
--- 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
diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro
index 84741c434a..4382e6530a 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 c640351b83..c943b083f7 100644
--- 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));
diff --git a/src/search.c b/src/search.c
index 145f6c85fc..41f38a3d11 100644
--- 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)
diff --git a/src/tag.c b/src/tag.c
index 6c8888cee0..a9ac537c57 100644
--- 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);
 	}
     }
 
diff --git a/src/version.h b/src/version.h
index 3b06de99af..ce5c971717 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 "
-- 
GitLab