From 57657d85c6c3d812e99b5e5d5161c07c66ac7dc7 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Fri, 21 Apr 2006 22:12:41 +0000
Subject: [PATCH] updated for version 7.0e05

---
 runtime/autoload/netrw.vim               |  124 ++-
 runtime/autoload/paste.vim               |    6 +-
 runtime/colors/darkblue.vim              |    4 +-
 runtime/compiler/bdf.vim                 |    8 +-
 runtime/compiler/gcc.vim                 |    4 +-
 runtime/compiler/rst.vim                 |    6 +-
 runtime/doc/eval.txt                     |    8 +-
 runtime/doc/index.txt                    |    3 +
 runtime/doc/mbyte.txt                    |    4 +-
 runtime/doc/options.txt                  |   30 +-
 runtime/doc/pi_netrw.txt                 |   52 +-
 runtime/doc/print.txt                    |    4 +-
 runtime/doc/quickref.txt                 |    3 +-
 runtime/doc/sponsor.txt                  |    6 +-
 runtime/doc/tabpage.txt                  |   17 +-
 runtime/doc/todo.txt                     |    5 +-
 runtime/doc/undo.txt                     |    7 +-
 runtime/doc/version7.txt                 |   21 +-
 runtime/doc/windows.txt                  |   10 +
 runtime/filetype.vim                     |    5 +-
 runtime/ftplugin/a2ps.vim                |    4 +-
 runtime/ftplugin/ada.vim                 |    5 +-
 runtime/ftplugin/alsaconf.vim            |    4 +-
 runtime/ftplugin/arch.vim                |    4 +-
 runtime/ftplugin/automake.vim            |    4 +-
 runtime/ftplugin/bdf.vim                 |    4 +-
 runtime/ftplugin/calendar.vim            |    4 +-
 runtime/ftplugin/changelog.vim           |  225 ++---
 runtime/ftplugin/conf.vim                |    4 +-
 runtime/ftplugin/context.vim             |    6 +-
 runtime/ftplugin/crm.vim                 |    4 +-
 runtime/ftplugin/css.vim                 |    4 +-
 runtime/ftplugin/cvsrc.vim               |    4 +-
 runtime/ftplugin/dictconf.vim            |    4 +-
 runtime/ftplugin/dictdconf.vim           |    4 +-
 runtime/ftplugin/dircolors.vim           |    4 +-
 runtime/ftplugin/elinks.vim              |    4 +-
 runtime/ftplugin/eterm.vim               |    4 +-
 runtime/ftplugin/fetchmail.vim           |    4 +-
 runtime/ftplugin/gpg.vim                 |    4 +-
 runtime/ftplugin/group.vim               |    4 +-
 runtime/ftplugin/grub.vim                |    4 +-
 runtime/ftplugin/haskell.vim             |    4 +-
 runtime/ftplugin/help.vim                |    4 +-
 runtime/ftplugin/indent.vim              |    4 +-
 runtime/ftplugin/ld.vim                  |    4 +-
 runtime/ftplugin/lftp.vim                |    4 +-
 runtime/ftplugin/libao.vim               |    4 +-
 runtime/ftplugin/limits.vim              |    4 +-
 runtime/ftplugin/loginaccess.vim         |    4 +-
 runtime/ftplugin/logindefs.vim           |    4 +-
 runtime/ftplugin/m4.vim                  |    4 +-
 runtime/ftplugin/mailcap.vim             |    4 +-
 runtime/ftplugin/manconf.vim             |    4 +-
 runtime/ftplugin/mf.vim                  |    4 +-
 runtime/ftplugin/modconf.vim             |    4 +-
 runtime/ftplugin/mp.vim                  |    4 +-
 runtime/ftplugin/mplayerconf.vim         |    4 +-
 runtime/ftplugin/muttrc.vim              |    4 +-
 runtime/ftplugin/nanorc.vim              |    4 +-
 runtime/ftplugin/netrc.vim               |    4 +-
 runtime/ftplugin/pamconf.vim             |    4 +-
 runtime/ftplugin/passwd.vim              |    4 +-
 runtime/ftplugin/pinfo.vim               |    4 +-
 runtime/ftplugin/procmail.vim            |    4 +-
 runtime/ftplugin/prolog.vim              |    4 +-
 runtime/ftplugin/protocols.vim           |    4 +-
 runtime/ftplugin/quake.vim               |    4 +-
 runtime/ftplugin/racc.vim                |    4 +-
 runtime/ftplugin/readline.vim            |    4 +-
 runtime/ftplugin/rnc.vim                 |    4 +-
 runtime/ftplugin/rst.vim                 |    4 +-
 runtime/ftplugin/screen.vim              |    4 +-
 runtime/ftplugin/sensors.vim             |    4 +-
 runtime/ftplugin/services.vim            |    4 +-
 runtime/ftplugin/setserial.vim           |    4 +-
 runtime/ftplugin/sieve.vim               |    4 +-
 runtime/ftplugin/slpconf.vim             |    4 +-
 runtime/ftplugin/slpreg.vim              |    4 +-
 runtime/ftplugin/slpspi.vim              |    4 +-
 runtime/ftplugin/sshconfig.vim           |    4 +-
 runtime/ftplugin/sudoers.vim             |    4 +-
 runtime/ftplugin/sysctl.vim              |    4 +-
 runtime/ftplugin/terminfo.vim            |    4 +-
 runtime/ftplugin/udevconf.vim            |    4 +-
 runtime/ftplugin/udevperm.vim            |    4 +-
 runtime/ftplugin/udevrules.vim           |    4 +-
 runtime/ftplugin/updatedb.vim            |    4 +-
 runtime/ftplugin/xdefaults.vim           |    4 +-
 runtime/ftplugin/xf86conf.vim            |    4 +-
 runtime/ftplugin/xinetd.vim              |    4 +-
 runtime/ftplugin/xmodmap.vim             |    4 +-
 runtime/ftplugin/yaml.vim                |    4 +-
 runtime/ftplugin/zsh.vim                 |    4 +-
 runtime/indent/automake.vim              |    4 +-
 runtime/indent/cmake.vim                 |    6 +-
 runtime/indent/config.vim                |    4 +-
 runtime/indent/css.vim                   |    4 +-
 runtime/indent/dictconf.vim              |    4 +-
 runtime/indent/dictdconf.vim             |    4 +-
 runtime/indent/docbk.vim                 |    4 +-
 runtime/indent/eterm.vim                 |    4 +-
 runtime/indent/ld.vim                    |    4 +-
 runtime/indent/make.vim                  |   47 +-
 runtime/indent/python.vim                |    2 +-
 runtime/indent/readline.vim              |    4 +-
 runtime/indent/rst.vim                   |    4 +-
 runtime/indent/sh.vim                    |    4 +-
 runtime/indent/sml.vim                   |    6 +-
 runtime/indent/tcl.vim                   |    4 +-
 runtime/indent/xf86conf.vim              |    4 +-
 runtime/indent/xinetd.vim                |    4 +-
 runtime/indent/yacc.vim                  |    4 +-
 runtime/indent/zsh.vim                   |    4 +-
 runtime/keymap/persian-iranian_utf-8.vim |    4 +-
 runtime/lang/menu_chinese_gb.936.vim     |    2 +-
 runtime/lang/menu_zh_cn.gb2312.vim       |    2 +-
 runtime/lang/menu_zh_cn.utf-8.vim        |    2 +-
 runtime/makemenu.vim                     |    3 +-
 runtime/optwin.vim                       |    4 +-
 runtime/spell/es/es_ES.diff              |  105 +--
 runtime/spell/es/main.aap                |    2 +-
 runtime/syntax/a2ps.vim                  |    4 +-
 runtime/syntax/alsaconf.vim              |    4 +-
 runtime/syntax/arch.vim                  |    4 +-
 runtime/syntax/bdf.vim                   |    4 +-
 runtime/syntax/calendar.vim              |    4 +-
 runtime/syntax/chordpro.vim              |   67 ++
 runtime/syntax/cmake.vim                 |    2 +-
 runtime/syntax/context.vim               |   81 +-
 runtime/syntax/crm.vim                   |    4 +-
 runtime/syntax/cvsrc.vim                 |    4 +-
 runtime/syntax/dictconf.vim              |    4 +-
 runtime/syntax/dictdconf.vim             |    4 +-
 runtime/syntax/dircolors.vim             |    4 +-
 runtime/syntax/elinks.vim                |    4 +-
 runtime/syntax/esterel.vim               |    2 +-
 runtime/syntax/eterm.vim                 |   36 +-
 runtime/syntax/fetchmail.vim             |    4 +-
 runtime/syntax/gpg.vim                   |    4 +-
 runtime/syntax/group.vim                 |    6 +-
 runtime/syntax/grub.vim                  |    4 +-
 runtime/syntax/indent.vim                |    6 +-
 runtime/syntax/ld.vim                    |    4 +-
 runtime/syntax/lftp.vim                  |    4 +-
 runtime/syntax/libao.vim                 |    4 +-
 runtime/syntax/limits.vim                |    4 +-
 runtime/syntax/loginaccess.vim           |    4 +-
 runtime/syntax/logindefs.vim             |    4 +-
 runtime/syntax/manconf.vim               |    4 +-
 runtime/syntax/modconf.vim               |    4 +-
 runtime/syntax/mplayerconf.vim           |    4 +-
 runtime/syntax/nanorc.vim                |    4 +-
 runtime/syntax/netrc.vim                 |    4 +-
 runtime/syntax/pamconf.vim               |    4 +-
 runtime/syntax/passwd.vim                |   12 +-
 runtime/syntax/pinfo.vim                 |    4 +-
 runtime/syntax/protocols.vim             |    4 +-
 runtime/syntax/quake.vim                 |   56 +-
 runtime/syntax/racc.vim                  |    4 +-
 runtime/syntax/readline.vim              |    4 +-
 runtime/syntax/rnc.vim                   |    4 +-
 runtime/syntax/screen.vim                |    4 +-
 runtime/syntax/sensors.vim               |    4 +-
 runtime/syntax/services.vim              |    4 +-
 runtime/syntax/setserial.vim             |    4 +-
 runtime/syntax/sieve.vim                 |    4 +-
 runtime/syntax/slpconf.vim               |    4 +-
 runtime/syntax/slpreg.vim                |    4 +-
 runtime/syntax/slpspi.vim                |    4 +-
 runtime/syntax/sqlj.vim                  |    2 +
 runtime/syntax/sudoers.vim               |    4 +-
 runtime/syntax/sysctl.vim                |    4 +-
 runtime/syntax/terminfo.vim              |    6 +-
 runtime/syntax/udevconf.vim              |    4 +-
 runtime/syntax/udevperm.vim              |    4 +-
 runtime/syntax/udevrules.vim             |    4 +-
 runtime/syntax/updatedb.vim              |    4 +-
 runtime/syntax/xinetd.vim                |    4 +-
 runtime/syntax/xmodmap.vim               |    4 +-
 runtime/syntax/yaml.vim                  |    4 +-
 src/auto/configure                       |    2 +-
 src/configure.in                         |    2 +-
 src/digraph.c                            |    5 +-
 src/ex_eval.c                            |   34 +-
 src/gui.c                                |   22 +-
 src/gui_gtk_x11.c                        |    2 +-
 src/gui_motif.c                          |    5 +-
 src/gui_w48.c                            |    2 +-
 src/message.c                            |    7 +-
 src/misc2.c                              |    6 +-
 src/option.c                             |   13 +-
 src/option.h                             |    1 +
 src/po/it.po                             |   68 +-
 src/po/zh_CN.UTF-8.po                    | 1048 +++++++++++-----------
 src/po/zh_CN.cp936.po                    | 1048 +++++++++++-----------
 src/po/zh_CN.po                          | 1048 +++++++++++-----------
 src/proto/gui.pro                        |  126 +--
 src/undo.c                               |    9 +-
 src/version.h                            |    6 +-
 src/window.c                             |    2 +
 201 files changed, 2669 insertions(+), 2351 deletions(-)
 create mode 100644 runtime/syntax/chordpro.vim

diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 79abec5947..f0767abeaa 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
 "            AUTOLOAD PORTION
-" Date:		Apr 14, 2006
-" Version:	88
+" Date:		Apr 21, 2006
+" Version:	91
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -23,7 +23,7 @@
 if &cp || exists("g:loaded_netrw")
   finish
 endif
-let g:loaded_netrw = "v88"
+let g:loaded_netrw = "v91"
 if v:version < 700
  echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
  finish
@@ -396,7 +396,7 @@ fun! netrw#NetRead(mode,...)
     let choice = substitute(choice,'\\','/','ge')
 "    call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
 
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
+    exe 'cd ' . fnamemodify(tmpfile,':h')
     let tmpfile = fnamemodify(tmpfile,':t')
    endif
 
@@ -890,7 +890,7 @@ fun! netrw#NetWrite(...) range
    if has("win32") || has("win95") || has("win64") || has("win16")
     let choice= substitute(choice,'\\','/','ge')
     "ER: see NetRead()
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
+    exe 'cd ' . fnamemodify(tmpfile,':h')
     let tmpfile = fnamemodify(tmpfile,':t')
    endif
 
@@ -1233,6 +1233,7 @@ fun! s:NetBrowse(dirname)
 "   call Decho("new path<".path.">")
 
    " remote-read the requested file into current buffer
+   mark '
    keepjumps keepalt enew!
    set ma
 "   call Decho("exe file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape))
@@ -1257,6 +1258,7 @@ fun! s:NetBrowse(dirname)
   let bufname   = method.'://'.user.machine.'/'.path
   let bufnamenr = bufnr(bufname.'$')
 "  call Decho("bufname<".bufname."> bufnamenr=".bufnamenr)
+  mark '
   if bufnamenr != -1
    " buffer already exists, switch to it!
 "   call Decho("buffer already exists, switching to it")
@@ -1324,7 +1326,7 @@ fun! s:NetBrowse(dirname)
   setlocal ma nonu nowrap
 
   " Set up the banner
-"  call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method.">")
+"  call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method."> direction<".g:netrw_sort_direction.">")
   keepjumps put ='\" ==========================================================================='
   keepjumps put ='\" Netrw Remote Directory Listing                                 (netrw '.g:loaded_netrw.')'
   keepjumps put ='\"   '.bufname
@@ -2148,10 +2150,10 @@ fun! s:NetrwWideListing()
    let b:netrw_cpf= 0
    if line("$") >= w:netrw_bannercnt
     exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
-  else
-"   call Dret("NetrwWideListing")
-   return
-  endif
+   else
+"    call Dret("NetrwWideListing")
+    return
+   endif
 "   call Decho("max file strlen+1=".b:netrw_cpf)
    let b:netrw_cpf= b:netrw_cpf + 1
 
@@ -2163,7 +2165,7 @@ fun! s:NetrwWideListing()
 "   call Decho("fpl= ".winwidth(0)."/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
 
    " make wide display
-   exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=printf("%-'.b:netrw_cpf.'s",submatch(0))/'
+   exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=printf("%-'.b:netrw_cpf.'s",escape(submatch(0),"\\"))/'
    let fpc         = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
    let newcolstart = w:netrw_bannercnt + fpc
    let newcolend   = newcolstart + fpc - 1
@@ -2252,11 +2254,15 @@ fun! s:NetMakeDir(usrhost)
     call mkdir(fullnewdir,"p")
    else
     let netrw_origdir= s:NetGetcwd(1)
-    exe 'cd '.b:netrw_curdir
-"    call Decho("netrw_origdir<".netrw_origdir."> b:netrw_curdir<".b:netrw_curdir.">")
+    exe 'keepjumps cd '.b:netrw_curdir
+"    call Decho("netrw_origdir<".netrw_origdir.">: cd b:netrw_curdir<".b:netrw_curdir.">")
 "    call Decho("exe silent! !".g:netrw_local_mkdir.' "'.newdirname.'"')
     exe "silent! !".g:netrw_local_mkdir.' "'.newdirname.'"'
     if !g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
+    if !g:netrw_keepdir
+     exe 'keepjumps cd '.netrw_origdir
+"     call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".netrw_origdir)
+    endif
    endif
 
    if v:shell_error == 0
@@ -2770,6 +2776,11 @@ fun! netrw#DirBrowse(dirname)
   endif
 
   call s:NetOptionSave()
+  if w:acdkeep
+   exe 'cd '.escape(a:dirname,s:netrw_cd_escape)
+"   call Decho("cd ".escape(a:dirname,s:netrw_cd_escape))
+"   call Decho("getcwd<".getcwd().">")
+  endif
 
   if v:version < 603
    if !exists("g:netrw_quiet")
@@ -2807,6 +2818,7 @@ fun! netrw#DirBrowse(dirname)
   endif
 
   " get cleared buffer
+  mark '
   if bufnum < 0 || !bufexists(bufnum)
    keepjumps keepalt enew!
 "   call Decho("enew buffer")
@@ -2815,8 +2827,8 @@ fun! netrw#DirBrowse(dirname)
    if exists("s:last_sort_by") && g:netrw_sort_by == s:last_sort_by
     if getline(2) =~ '^" Netrw Directory Listing '
      if !g:netrw_keepdir
-"      call Decho("change directory: cd ".b:netrw_curdir)
       exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
+"      call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".escape(b:netrw_curdir,s:netrw_cd_escape))
      endif
      call s:NetOptionRestore()
 "     call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
@@ -2847,7 +2859,7 @@ fun! netrw#DirBrowse(dirname)
 
   " make netrw's idea of the current directory vim's if the user wishes
   if !g:netrw_keepdir
-"   call Decho("change directory: cd ".b:netrw_curdir)
+"   call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".escape(b:netrw_curdir,s:netrw_cd_escape))
    try
     exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
    catch /^Vim\%((\a\+)\)\=:E472/
@@ -2916,8 +2928,12 @@ fun! netrw#DirBrowse(dirname)
   nnoremap <buffer> <silent> v		:call <SID>NetSplit(3)<cr>
   nnoremap <buffer> <silent> x		:call netrw#NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<cr>
   nnoremap <buffer> <silent> <2-leftmouse>	:call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
-  nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
-  nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+  if s:didstarstar || !mapcheck("<s-down>","n")
+   nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+  endif
+  if s:didstarstar || !mapcheck("<s-up>","n")
+   nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
+  endif
   exe 'nnoremap <buffer> <silent> <del>	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
   exe 'vnoremap <buffer> <silent> <del>	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
   exe 'nnoremap <buffer> <silent> D	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
@@ -3040,7 +3056,7 @@ endfun
 " ---------------------------------------------------------------------
 "  LocalBrowseList: does the job of "ls" for local directories {{{2
 fun! s:LocalBrowseList()
-"  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir.">")
+"  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir."> sortby<".g:netrw_sort_by.">")
 
   " get the list of files contained in the current directory
   let dirname    = escape(b:netrw_curdir,s:netrw_glob_escape)
@@ -3070,7 +3086,11 @@ fun! s:LocalBrowseList()
 "  call Decho("filelist<".filelist.">")
   endif
   let filelist= substitute(filelist,'\n\{2,}','\n','ge')
-  let filelist= substitute(filelist,'\','/','ge')
+  if (has("win32") || has("win95") || has("win64") || has("win16"))
+   let filelist= substitute(filelist,'\','/','ge')
+  else
+   let filelist= substitute(filelist,'\','\\','ge')
+  endif
 
 "  call Decho("dirname<".dirname.">")
 "  call Decho("dirnamelen<".dirnamelen.">")
@@ -3503,6 +3523,12 @@ fun! netrw#Explore(indx,dosplit,style,...)
   endif
   norm! 0
 
+  if a:1 =~ '\*/'
+   " Explore */pattern
+   let pattern= substitute(a:1,'^\*/\(.*\)$','\1','')
+"   call Decho("Explore */".pattern)
+  endif
+
   if a:1 == "" && a:indx >= 0
    " Explore Hexplore Vexplore Sexplore
 "   call Decho("Explore Hexplore Vexplore Sexplore")
@@ -3516,26 +3542,61 @@ fun! netrw#Explore(indx,dosplit,style,...)
     call s:LocalBrowse(newdir)
    endif
 
-  elseif a:1 =~ '\*\*/' || a:indx < 0
-   " Nexplore Pexplore -or-  Explore **/...
-"   call Decho("Nexplore Pexplore -or-  Explore **/...")
+  elseif a:1 =~ '^\*\*/' || a:indx < 0 || a:1 =~ '^\*/'
+   " Nexplore, Pexplore, Explore **/... , or Explore */pattern
+"   call Decho("Nexplore, Pexplore, <s-down>, <s-up>, Explore ".a:1)
+   let s:didstarstar= 1
+   if exists("b:netrw_curdir")
+    nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
+    nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+   endif
 
    if has("path_extra")
     if !exists("w:netrw_explore_indx")
      let w:netrw_explore_indx= 0
     endif
     let indx = a:indx
+"    call Decho("input indx=".indx)
+"
     if indx == -1
+     if !exists("w:netrw_explore_list") " sanity check
+      echohl WarningMsg | echo "***netrw*** using Nexplore or <s-down> improperly; see help for netrw-starstar" | echohl None
+      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"      call Dret("Explore")
+      return
+     endif
      let indx= w:netrw_explore_indx + 1
+"     call Decho("indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
     elseif indx == -2
+     if !exists("w:netrw_explore_list") " sanity check
+      echohl WarningMsg | echo "***netrw*** using Pexplore or <s-up> improperly; see help for netrw-starstar" | echohl None
+      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"      call Dret("Explore")
+      return
+     endif
      let indx= w:netrw_explore_indx - 1
+"     call Decho("indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
     else
+     " build list of files to Explore with Nexplore/Pexplore
      let w:netrw_explore_indx    = 0
      if !exists("b:netrw_curdir")
       let b:netrw_curdir= getcwd()
      endif
-     let w:netrw_explore_list    = split(expand(b:netrw_curdir."/".a:1),'\n')
+"     call Decho("b:netrw_curdir<".b:netrw_curdir.">")
+     if exists("pattern")
+"      call Decho("building list based on pattern<".pattern."> cwd<".getcwd().">")
+      exe "vimgrep /".pattern."/gj ".b:netrw_curdir."/*"
+      let w:netrw_explore_list = map(getqflist(),'b:netrw_curdir.bufname(v:val.bufnr)')
+     else
+"      call Decho("building list based on ".b:netrw_curdir."/".a:1)
+      let w:netrw_explore_list= split(expand(b:netrw_curdir."/".a:1),'\n')
+     endif
+
      let w:netrw_explore_listlen = len(w:netrw_explore_list)
+"     call Decho("w:netrw_explore_list<".string(w:netrw_explore_list)."> listlen=".w:netrw_explore_listlen)
+
      if w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/'
       echohl WarningMsg | echo "***netrw*** no files matched" | echohl None
       call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@@ -3928,14 +3989,9 @@ fun! s:NetOptionSave()
   endif
 
   " Get Temporary Filename
-  let w:aikeep   = &ai
-"  " netrw and the acd option do not work together properly
-"  if &acd && (has("netbeans_intg") || has("sun_workshop"))
-"   set noacd
-"   echohl Warning | echomsg "***warning*** directory browsing and the acd setting are incompatible" |echohl None
-"  endif
-  let w:fokeep    = &fo
+  let w:acdkeep   = &acd
   let w:aikeep    = &ai
+  let w:fokeep    = &fo
   let w:cikeep    = &ci
   let w:cinkeep   = &cin
   let w:cinokeep  = &cino
@@ -3943,9 +3999,6 @@ fun! s:NetOptionSave()
   let w:cpokeep   = &cpo
   let w:hidkeep   = &hidden
   let w:magickeep = &magic
-  if !g:netrw_keepdir
-   let w:dirkeep  = getcwd()
-  endif
   let w:gdkeep    = &gd
   let w:repkeep   = &report
   let w:spellkeep = &spell
@@ -3953,7 +4006,7 @@ fun! s:NetOptionSave()
   setlocal cino =
   setlocal com  =
   setlocal cpo -=aA
-  setlocal nocin noai noci magic nospell fo=nroql2 nohid
+  setlocal noacd nocin noai noci magic nospell fo=nroql2 nohid
   setlocal tw   =0
   setlocal report=10000
   if has("win32") && !has("win95")
@@ -3975,14 +4028,13 @@ fun! s:NetOptionRestore()
   endif
   unlet w:netoptionsave
 
-  if exists("w:aikeep")| let &ai= w:aikeep|endif
+  if exists("w:acdkeep")  |let &acd    = w:acdkeep     |unlet w:acdkeep  |endif
   if exists("w:aikeep")   |let &ai     = w:aikeep      |unlet w:aikeep   |endif
   if exists("w:cikeep")   |let &ci     = w:cikeep      |unlet w:cikeep   |endif
   if exists("w:cinkeep")  |let &cin    = w:cinkeep     |unlet w:cinkeep  |endif
   if exists("w:cinokeep") |let &cino   = w:cinokeep    |unlet w:cinokeep |endif
   if exists("w:comkeep")  |let &com    = w:comkeep     |unlet w:comkeep  |endif
   if exists("w:cpokeep")  |let &cpo    = w:cpokeep     |unlet w:cpokeep  |endif
-  if exists("w:dirkeep")  |exe "lcd ".w:dirkeep        |unlet w:dirkeep  |endif
   if exists("w:fokeep")   |let &fo     = w:fokeep      |unlet w:fokeep   |endif
   if exists("w:gdkeep")   |let &gd     = w:gdkeep      |unlet w:gdkeep   |endif
   if exists("w:hidkeep")  |let &hidden = w:hidkeep     |unlet w:hidkeep  |endif
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim
index 435c5e6235..a61cec64f8 100644
--- a/runtime/autoload/paste.vim
+++ b/runtime/autoload/paste.vim
@@ -1,6 +1,6 @@
 " Vim support file to help with paste mappings and menus
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 09
+" Last Change:	2006 Apr 21
 
 " Define the string to use for items that are present both in Edit, Popup and
 " Toolbar menu.  Also used in mswin.vim and macmap.vim.
@@ -33,7 +33,3 @@ else
   let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x'
   let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s'
 endif
-
-if has("virtualedit")
-else
-endif
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index 4bf05d0447..9812e98901 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -1,6 +1,6 @@
 " Vim color file
 " Maintainer:	Bohdan Vlasyuk <bohdan@vstu.edu.ua>
-" Last Change:	2005 Mar 28
+" Last Change:	2006 Apr 21
 
 " darkblue -- for those who prefer dark background
 " [note: looks bit uglier with come terminal palettes,
@@ -58,5 +58,3 @@ hi PreProc	ctermfg=magenta guifg=#ff80ff gui=none cterm=none
 hi type		ctermfg=green guifg=#60ff60 gui=none cterm=none
 hi Underlined	cterm=underline term=underline
 hi Ignore	guifg=bg ctermfg=bg
-
-
diff --git a/runtime/compiler/bdf.vim b/runtime/compiler/bdf.vim
index a30a9b6907..ca33776988 100644
--- a/runtime/compiler/bdf.vim
+++ b/runtime/compiler/bdf.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         BDF to PCF Conversion
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
@@ -11,9 +11,9 @@ let current_compiler = "bdf"
 let s:cpo_save = &cpo
 set cpo-=C
 
-CompilerSet makeprg=bdftopcf\ $*
+setlocal makeprg=bdftopcf\ $*
 
-CompilerSet errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
+setlocal errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
       \%-Z%p^,
       \%Cbdftopcf:\ bdf\ input\\,\ %f\\,\ corrupt,
       \%-G%.%#
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
index 11f7714da1..699d14f5f4 100644
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         GNU C Compiler
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
diff --git a/runtime/compiler/rst.vim b/runtime/compiler/rst.vim
index d0ff88b37b..07c7d4139c 100644
--- a/runtime/compiler/rst.vim
+++ b/runtime/compiler/rst.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         reStructuredText Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
@@ -11,7 +11,7 @@ let current_compiler = "rst"
 let s:cpo_save = &cpo
 set cpo-=C
 
-CompilerSet errorformat=
+setlocal errorformat=
       \%f:%l:\ (%tEBUG/0)\ %m,
       \%f:%l:\ (%tNFO/1)\ %m,
       \%f:%l:\ (%tARNING/2)\ %m,
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 80a0c1d543..4fff9d0a91 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0e.  Last change: 2006 Apr 15
+*eval.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1369,9 +1369,9 @@ v:lc_time	The current locale setting for time messages of the runtime
 
 						*v:lnum* *lnum-variable*
 v:lnum		Line number for the 'foldexpr' |fold-expr| and 'indentexpr'
-		expressions, tab page number for 'guitablabel'.  Only valid
-		while one of these expressions is being evaluated.  Read-only
-		when in the |sandbox|.
+		expressions, tab page number for 'guitablabel' and
+		'guitabtooltip'.  Only valid while one of these expressions is
+		being evaluated.  Read-only when in the |sandbox|.
 
 					*v:prevcount* *prevcount-variable*
 v:prevcount	The count given for the last but one Normal mode command.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 8fc3cef9c6..77ebed95f2 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -552,6 +552,9 @@ tag		command		   action in Normal mode	~
 |CTRL-W_g}|	CTRL-W g }	   do a |:ptjump| to the tag under the cursor
 |CTRL-W_gf|	CTRL-W g f	   edit file name under the cursor in a new
 				   tab page
+|CTRL-W_gF|	CTRL-W g F	   edit file name under the cursor in a new
+				   tab page and jump to the line number
+				   following the file name.
 |CTRL-W_h|	CTRL-W h	   go to Nth left window (stop at first window)
 |CTRL-W_i|	CTRL-W i	   split window and jump to declaration of
 				   identifier under the cursor
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index b660d2c779..44cbea9031 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.0e.  Last change: 2006 Apr 02
+*mbyte.txt*     For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -1035,7 +1035,7 @@ use a brightly colored cursor: >
 	:highlight Cursor guifg=NONE guibg=Green
 	:highlight lCursor guifg=NONE guibg=Cyan
 <
-			*keymap-file-format* *:loadk* *:loadkeymap* *E105*
+		*keymap-file-format* *:loadk* *:loadkeymap* *E105* *E791*
 The keymap file looks something like this: >
 
 	" Maintainer:	name <email@address>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index beee11d9e5..7bbd96949e 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0e.  Last change: 2006 Apr 20
+*options.txt*	For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2092,12 +2092,16 @@ A jump table for the options with a short description can be found at |Q_op|.
 'debug'			string	(default "")
 			global
 			{not in Vi}
-	When set to "msg", error messages that would otherwise be omitted will
-	be given anyway.  This is useful when debugging 'foldexpr',
-	'formatexpr' or 'indentexpr'.
-	When set to "beep", a message will be given when otherwise only a beep
-	would be produced.
+	These values can be used:
+	msg	Error messages that would otherwise be omitted will be given
+		anyway.
+	throw	Error messages that would otherwise be omitted will be given
+		anyway and also throw an exception and set |v:errmsg|.
+	beep	A message will be given when otherwise only a beep would be
+		produced.
 	The values can be combined, separated by a comma.
+	"msg" and "throw" are useful for debugging 'foldexpr', 'formatexpr' or
+	'indentexpr'.
 
 						*'define'* *'def'*
 'define' 'def'		string	(default "^\s*#\s*define")
@@ -3407,11 +3411,25 @@ A jump table for the options with a short description can be found at |Q_op|.
 	|setting-guitablabel| for more info.
 
 	The format of this option is like that of 'statusline'.
+	'guitabtooltip' is used for the tooltip, see below.
 
 	Only used when the GUI tab pages line is displayed.  'e' must be
 	present in 'guioptions'.  For the non-GUI tab pages line 'tabline' is
 	used.
 
+						*'guitabtooltip'* *'gtt'*
+'guitabtooltip' 'gtt'	string	(default empty)
+			global
+			{not in Vi}
+			{only available when compiled with GUI enabled and
+			with the +windows feature}
+	When nonempty describes the text to use in a tooltip for the GUI tab
+	pages line.  When empty Vim will use a default tooltip.
+	This option is otherwise just like 'guitablabel' above.
+
+	The tooltip only works for some systems.
+
+
 						*'helpfile'* *'hf'*
 'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
 					 (others) "$VIMRUNTIME/doc/help.txt")
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 8cb8010fd0..ee59953160 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.0e.  Last change: Apr 12, 2006
+*pi_netrw.txt*  For Vim version 7.0e.  Last change: Apr 21, 2006
 
 		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
 
@@ -782,7 +782,7 @@ NETRW BROWSER VARIABLES					*netrw-browse-var*
 				=0 keep the current directory the same as the
 				   browsing directory.
 				The current browsing directory is contained in
-				b:netrw_curdir
+				b:netrw_curdir (also see |netrw-c|)
 
   *g:netrw_list_cmd*		command for listing remote directories
 				 default: (if ssh is executable)
@@ -919,15 +919,16 @@ DIRECTORY EXPLORING COMMANDS	*netrw-nexplore* *netrw-vexplore*
 By default, these commands use the current file's directory.  However, one
 may explicitly provide a directory (path) to use.
 
-(Following needs v7.0 or later)			*netrw-starstar*
-When Explore, Sexplore, Hexplore, or Vexplore are used with a **,
+							*netrw-starstar*
+When Explore, Sexplore, Hexplore, or Vexplore are used with a **/filepat,
 such as:
 >
 	:Explore **/filename_pattern
 <
-netrw will attempt to find a (sub)directory which matches the filename
-pattern.  Internally, it produces a list of files which match the pattern
-and their paths; to that extent it resembles the Unix operation:
+netrw will attempt to find a file in the current directory or any subdirectory
+which matches the filename pattern.  Internally, it produces a list of files
+which match the pattern and their paths; to that extent it resembles the Unix
+operation:
 >
 	find $(pwd) -name "$1" -exec "echo" "{}" ";" 2> /dev/null
 <
@@ -951,6 +952,18 @@ As an example, consider
 The status line will show, on the right hand side of the status line, a
 message like "Match 3 of 20".
 
+							*netrw-starpat*
+When Explore, Sexplore, Hexplore, or Vexplore are used with a */pattern,
+such as:
+>
+	:Explore */pattern
+<
+netrw will use |:vimgrep| to find files which contain the given pattern.
+Like what happens with |netrw-starstar|, a list of files which contain
+matches to the given pattern is generated.  The cursor will then jump
+to the first file with the given pattern; |:Nexplore|, |:Pexplore|, and
+the shifted-down and -up arrows work with the list to move to the next
+or previous files in that list.
 
 REFRESHING THE LISTING					*netrw-ctrl-l*
 
@@ -1261,14 +1274,16 @@ to forward a copy to me for future inclusion in the distribution.
 
 MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY	*netrw-c* *netrw-curdir*
 
-By default, g:netrw_keepdir is 1.  This setting means that the current
+By default, |g:netrw_keepdir| is 1.  This setting means that the current
 directory will not track the browsing directory.  However, setting
-g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to have the
-currently browsed directory be the current directory.
+g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to make the
+currently browsed directory also be the current directory.
 
-With the default setting for g:netrw_keepdir, in order to make the two
-directories the same, use the "c" map (just type c).  That map will set the
-current directory to the current browsing directory.
+However, with the default setting for g:netrw_keepdir of 1 where netrw
+maintains its own separate notion of the current directory, in order to make
+the two directories the same, use the "c" map (just type c).  That map will
+set Vim's notion of the current directory to the netrw's current browsing
+directory.
 
 
 BOOKMARKING A DIRECTORY		*netrw-b* *netrw-bookmark* *netrw-bookmarks*
@@ -1447,6 +1462,17 @@ which is loaded automatically at startup (assuming :set nocp).
 ==============================================================================
 11. History						*netrw-history* {{{1
 
+	v91: * :Explore */pattern implemented
+	     * |'acd'| option bypassed
+	v90: * mark ', as suggested by Yegappan Lakshmanan, used to help
+	       guarantee entry into the jump list when appropriate.
+	     * <s-down> and <s-up> are no longer defined until a
+	       :Explore **/pattern  is used (if the user already has a map
+	       for them).  They will be defined for new browser windows
+	       from that point forward.
+	v89: * A <s-down>, <s-up>, :Nexplore, or a :Pexplore without having
+	       first done an :Explore **/pattern (see |netrw-starstar|) caused
+	       a lot of unhelpful error messages to appear
 	v88: * moved DrChip.Netrw menu to Netrw.  Now has priority 80 by
 	       default.  g:NetrwTopLvlMenu == "Netrw" and can be changed
 	       by the user to suit.  The priority is g:NetrwMenuPriority.
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 54412daf1b..b10157d7e2 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 7.0e.  Last change: 2005 Apr 01
+*print.txt*     For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -287,7 +287,7 @@ another font will be used as follows:
 
   if b: is missing, then use r:
   if i: is missing, then use r:
-  if o: is missing, then use i:
+  if o: is missing, then use b:
 
 Some CJK fonts do not contain characters for codes in the ASCII code range.
 Also, some characters in the CJK ASCII code ranges differ in a few code points
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 8cefeafcbe..78721196cf 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.0e.  Last change: 2006 Mar 23
+*quickref.txt*  For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -707,6 +707,7 @@ Short explanation of each option:		*option-list*
 'guioptions'      'go'      GUI: Which components and options are used
 'guipty'                    GUI: try to use a pseudo-tty for ":!" commands
 'guitablabel'     'gtl'     GUI: custom label for a tab page
+'guitabtooltip'   'gtt'     GUI: custom tooltip for a tab page
 'helpfile'        'hf'      full path name of the main help file
 'helpheight'      'hh'      minimum height of a new help window
 'helplang'        'hlg'     preferred help languages
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index fe7ab27f4f..2f9090dcdb 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.0e.  Last change: 2006 Mar 29
+*sponsor.txt*   For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -202,8 +202,8 @@ Are the donations tax deductible?
 
 That depends on your country.  The donations to help the children in |Uganda|
 are tax deductible in Holland, Germany, Canada and in the USA.  See the ICCF
-website http://www.iccf.nl/donate.html.  You must send an e-mail to Bram to
-let him know that the donation is done because of the use of Vim.
+website http://iccf-holland.org/donate.html.  You must send an e-mail to Bram
+to let him know that the donation is done because of the use of Vim.
 
 
 Can you send me a bill?
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 566c802ad2..f8d1223509 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.0e.  Last change: 2006 Apr 13
+*tabpage.txt*   For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -82,6 +82,9 @@ In the GUI tab pages line you can use the right mouse button to open menu.
 CTRL-W gf	Open a new tab page and edit the file name under the cursor.
 		See |CTRL-W_gf|.
 
+CTRL-W gF	Open a new tab page and edit the file name under the cursor
+		and jump to the line number following the file name.
+		See |CTRL-W_gF|.
 
 CLOSING A TAB PAGE:
 
@@ -306,21 +309,25 @@ specify the label to display for each tab page.  Unlike 'tabline', which
 specifies the whole tab pages line at once, 'guitablabel' is used for each
 label separately.
 
+'guitabtooltip' is very similar and is used for the tooltip of the same label.
+This only appears when the mouse pointer hovers over the label, thus it
+usually is longer.  Only supported on some systems though.
+
 See the 'statusline' option for the format of the value.
 
 The "%N" item can be used for the current tab page number.  The |v:lnum|
-variable is also set to this number when 'guitablabel' is evaluated.
+variable is also set to this number when the option is evaluated.
 The items that use a file name refer to the current window of the tab page.
 
-Note that syntax highlighting is not used for 'guitablabel'.  The %T and %X
+Note that syntax highlighting is not used for the option.  The %T and %X
 items are also ignored.
 
 A simple example that puts the tab page number and the buffer name in the
 label: >
 	:set guitablabel=%N\ %f
 
-An example that resembles the default: Show the number of windows in the tab
-page and a '+' if there is a modifed buffer: >
+An example that resembles the default 'guitablabel': Show the number of
+windows in the tab page and a '+' if there is a modifed buffer: >
 
 	function GuiTabLabel()
 	  let label = ''
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 82fc5dd2db..08e85d8bd6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 20
+*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,7 +30,7 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-For a tooltip of at GUI tab label we need a new field.  Also 'guitabtip'?
+Win32: Crash when adding many menu entries. (Karl Waedt)
 
 Crash in "z=" when the change triggers checking out the file, FileChangedRO
 event.  Problem in move_lines()?  FileChangedShell also involved? (Neil Bird)
@@ -39,6 +39,7 @@ Added a few checks for valid buffer, did that help?
 Fix coverity false positives?
 
 Add more tests for all new functionality in Vim 7.  Especially new functions.
+    :undojoin
 
 Win32: Describe how to do debugging. (George Reilly)
 
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 432c855870..5e7b4ed8e9 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 12
+*undo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -87,10 +87,11 @@ undone together.
 If you want to write a function or script that doesn't create a new undoable
 change but joins in with the previous change use this command:
 
-							*:undoj* *:undojoin*
+						*:undoj* *:undojoin* *E790*
 :undoj[oin]		Join further changes with the previous undo block.
 			Warning: Use with care, it may prevent the user from
-			properly undoing changes.
+			properly undoing changes.  Don't use this after undo
+			or redo.
 			{not in Vi}
 
 This is most useful when you need to prompt the user halfway a change.  For
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 6c701e1809..1aa93b6b7f 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 20
+*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -280,9 +280,9 @@ argument.  The maximum number of pages can be set with 'tabpagemax'.
 
 The line with tab labels is either made with plain text an highlighting or
 with a GUI mechanism.  The GUI labels look better but are only available on a
-few systems.  The line can be customized with 'tabline' and 'guitablabel'.
-Whether it is displayed is set with 'showtabline'.  Whether to use the GUI
-labels is set with the "e" flag in 'guioptions'.
+few systems.  The line can be customized with 'tabline', 'guitablabel' and
+'guitabtooltip'.  Whether it is displayed is set with 'showtabline'.  Whether
+to use the GUI labels is set with the "e" flag in 'guioptions'.
 
 The |:tab| command modifier can be used to have most commands that open a new
 window open a new tab instead.
@@ -895,6 +895,7 @@ BibTeX indent file. (Dorai Sitaram)
 BTM ftplugin file. (Bram Moolenaar)
 calendar ftplugin file. (Nikolai Weibull)
 Changelog indent file. (Nikolai Weibull)
+ChordPro syntax file. (Niels Bo Andersen)
 Cmake indent and syntax file. (Andy Cedilnik)
 conf ftplugin file. (Nikolai Weibull)
 context syntax and ftplugin file. (Nikolai Weibull)
@@ -2569,5 +2570,17 @@ It was possible to switch to another tab page when the cmdline window is open.
 
 Completion could hang when 'lines' is 6 and a preview window was opened.
 
+Added CTRL-W gF: open file under cursor in new tab page and jump to the line
+number following the file name.
+Added 'guitabtooltip', but it's not implemented anywhere yet.
+
+Added "throw" to 'debug' option: thow an exception for error messages even
+whey they would otherwise be ignored.
+
+When 'keymap' is set and a line contains an invalid entry could get a "No
+mapping found" warning instead of a proper error message.
+
+Motif: default to using XpmAttributes instead of XpmAttributes_21.
+
 
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index f3e1c4545d..2e5db8b511 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -729,6 +729,8 @@ CTRL-W F						*CTRL-W_F*
 		Split current window in two.  Edit file name under cursor and
 		jump to the line number following the file name. See |gF| for
 		details on how the line number is obtained.
+		{not available when the |+file_in_path| feature was disabled
+		at compile time}
 
 CTRL-W gf						*CTRL-W_gf*
 		Open a new tab page and edit the file name under the cursor.
@@ -737,6 +739,14 @@ CTRL-W gf						*CTRL-W_gf*
 		{not available when the |+file_in_path| feature was disabled
 		at compile time}
 
+CTRL-W gF						*CTRL-W_gF*
+		Open a new tab page and edit the file name under the cursor
+		and jump to the line number following the file name.  Like
+		"tab split" and "gF", but the new tab page isn't created if
+		the file does not exist.
+		{not available when the |+file_in_path| feature was disabled
+		at compile time}
+
 Also see |CTRL-W_CTRL-I|: open window for an included file that includes
 the keyword under the cursor.
 
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index ef59e53644..617cbe6dd9 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 Apr 19
+" Last Change:	2006 Apr 21
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -390,6 +390,9 @@ fun! s:FTchange()
   setf chill
 endfun
 
+" ChordPro
+au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro	setf chordpro
+
 " Clean
 au BufNewFile,BufRead *.dcl,*.icl		setf clean
 
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index e590c98067..a596fc8396 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         a2ps(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/ada.vim b/runtime/ftplugin/ada.vim
index 06c057fc83..13fa8f93f4 100644
--- a/runtime/ftplugin/ada.vim
+++ b/runtime/ftplugin/ada.vim
@@ -1,7 +1,7 @@
 " Vim Ada plugin file
 " Language:	Ada
 " Maintainer:	Neil Bird <neil@fnxweb.com>
-" Last Change:	2003 May 11
+" Last Change:	2006 Apr 21
 " Version:	$Id$
 " Look for the latest version at http://vim.sourceforge.net/
 "
@@ -14,7 +14,6 @@
 " Exports 'AdaWord()' function to return full name of Ada entity under the
 " cursor( or at given line/column), stripping whitespace/newlines as necessary.
 
-
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
   finish
@@ -27,11 +26,9 @@ let b:did_ftplugin = 1
 let s:cpoptions = &cpoptions
 set cpo-=C
 
-
 " Ada comments
 setlocal comments+=O:--
 
-
 " Make local tag mappings for this buffer (if not already set)
 if mapcheck('<C-]>','n') == ''
   nnoremap <unique> <buffer> <C-]>    :call JumpToTag_ada('')<cr>
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index c0e13a7e9a..0ef6991d38 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         alsaconf(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 9433f10093..2da9e40ac1 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         GNU Arch inventory file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index 1ef28d1ec3..c48ea13e15 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Automake
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-22
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index 92ee66bfc4..a010c2c5ae 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         BDF font definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index c786203dbe..ca5651118c 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         calendar(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim
index b229dbe84c..b4206a2009 100644
--- a/runtime/ftplugin/changelog.vim
+++ b/runtime/ftplugin/changelog.vim
@@ -1,11 +1,14 @@
 " Vim filetype plugin file
 " Language:         generic Changelog file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 " Variables:
-"   g:changelog_timeformat -
+"   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
 "       description: the timeformat used in ChangeLog entries.
 "       default: "%Y-%m-%d".
+"   g:changelog_dateformat -
+"       description: the format sent to strftime() to generate a date string.
+"       default: "%Y-%m-%d".
 "   g:changelog_username -
 "       description: the username to use in ChangeLog entries
 "       default: try to deduce it from environment variables and system files.
@@ -25,8 +28,8 @@
 "  Problem is that you might end up with ChangeLog files all over the place.
 
 " If 'filetype' isn't "changelog", we must have been to add ChangeLog opener
-if &filetype == "changelog"
-  if exists("b:did_ftplugin")
+if &filetype == 'changelog'
+  if exists('b:did_ftplugin')
     finish
   endif
   let b:did_ftplugin = 1
@@ -34,20 +37,25 @@ if &filetype == "changelog"
   let s:cpo_save = &cpo
   set cpo&vim
 
-  " The format of the date-time field (should have been called dateformat)
-  if !exists("g:changelog_timeformat")
-    let g:changelog_timeformat = "%Y-%m-%d"
+  " Set up the format used for dates.
+  if !exists('g:changelog_dateformat')
+    if exists('g:changelog_timeformat')
+      let g:changelog_dateformat = g:changelog_timeformat
+    else
+      let g:changelog_dateformat = "%Y-%m-%d"
+    endif
   endif
 
   " Try to figure out a reasonable username of the form:
-  " Full Name <user@host>
-  if !exists("g:changelog_username")
-    if exists("$EMAIL_ADDRESS")
-      let g:changelog_username = $EMAIL_ADDRESS
-    elseif exists("$EMAIL")
+  "   Full Name <user@host>.
+  if !exists('g:changelog_username')
+    if exists('$EMAIL') && $EMAIL != ''
       let g:changelog_username = $EMAIL
+    elseif exists('$EMAIL_ADDRESS') && $EMAIL_ADDRESS != ''
+      " This is some Debian junk if I remember correctly.
+      let g:changelog_username = $EMAIL_ADDRESS
     else
-      " Get the users login name
+      " Get the users login name.
       let login = system('whoami')
       if v:shell_error
         let login = 'unknown'
@@ -58,43 +66,42 @@ if &filetype == "changelog"
         endif
       endif
 
-      " Try to full name from gecos field in /etc/passwd
+      " Try to get the full name from gecos field in /etc/passwd.
       if filereadable('/etc/passwd')
-        let name = substitute(
-              \system('cat /etc/passwd | grep ^`whoami`'),
-              \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '')
+        for line in readfile('/etc/passwd')
+          if line =~ '^' . login
+            let name = substitute(line,'^\%([^:]*:\)\{4}\([^:]*\):.*$','\1','')
+            " Only keep stuff before the first comma.
+            let comma = stridx(name, ',')
+            if comma != -1
+              let name = strpart(name, 0, comma)
+            endif
+            " And substitute & in the real name with the login of our user.
+            let amp = stridx(name, '&')
+            if amp != -1
+              let name = strpart(name, 0, amp) . toupper(login[0]) .
+                       \ strpart(login, 1) . strpart(name, amp + 1)
+            endif
+          endif
+        endfor
       endif
 
-      " If there is no such file, or there was some other problem try
-      " others
-      if !filereadable('/etc/passwd') || v:shell_error
-        " Maybe the environment has something of interest
+      " If we haven't found a name, try to gather it from other places.
+      if !exists('name')
+        " Maybe the environment has something of interest.
         if exists("$NAME")
           let name = $NAME
         else
           " No? well, use the login name and capitalize first
-          " character
+          " character.
           let name = toupper(login[0]) . strpart(login, 1)
         endif
       endif
 
-      " Only keep stuff before the first comma
-      let comma = stridx(name, ',')
-      if comma != -1
-        let name = strpart(name, 0, comma)
-      endif
-
-      " And substitute & in the real name with the login of our user
-      let amp = stridx(name, '&')
-      if amp != -1
-        let name = strpart(name, 0, amp) . toupper(login[0]) .
-              \strpart(login, 1) . strpart(name, amp + 1)
-      endif
-
-      " Get our hostname
-      let hostname = system("hostname")
+      " Get our hostname.
+      let hostname = system('hostname')
       if v:shell_error
-        let hostname = 'unknownhost'
+        let hostname = 'localhost'
       else
         let newline = stridx(hostname, "\n")
         if newline != -1
@@ -102,102 +109,99 @@ if &filetype == "changelog"
         endif
       endif
 
-      " And finally set the username
-      let g:changelog_username = name.'  <'.login.'@'.hostname.'>'
+      " And finally set the username.
+      let g:changelog_username = name . '  <' . login . '@' . hostname . '>'
     endif
   endif
 
-  " Format used for new date-entries
-  if !exists("g:changelog_new_date_format")
+  " Format used for new date entries.
+  if !exists('g:changelog_new_date_format')
     let g:changelog_new_date_format = "%d  %u\n\n\t* %c\n\n"
   endif
 
-  " Format used for new entries to current date-entry
-  if !exists("g:changelog_new_entry_format")
+  " Format used for new entries to current date entry.
+  if !exists('g:changelog_new_entry_format')
     let g:changelog_new_entry_format = "\t* %c"
   endif
 
-  if !exists("g:changelog_date_entry_search")
+  " Regular expression used to find a given date entry.
+  if !exists('g:changelog_date_entry_search')
     let g:changelog_date_entry_search = '^\s*%d\_s*%u'
   endif
 
-  " Substitutes specific items in new date-entry formats and search strings
-  " Can be done with substitute of course, but unclean, and need \@! then
+  " Substitutes specific items in new date-entry formats and search strings.
+  " Can be done with substitute of course, but unclean, and need \@! then.
   function! s:substitute_items(str, date, user)
     let str = a:str
+    let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
     let i = stridx(str, '%')
     while i != -1
-      let char = str[i + 1]
-      if char == '%'
-        let middle = '%'
-      elseif char == 'd'
-        let middle = a:date
-      elseif char == 'u'
-        let middle = a:user
-      elseif char == 'c'
-        let middle = '{cursor}'
-      else
-        let middle = char
+      let inc = 0
+      if has_key(middles, str[i + 1])
+        let mid = middles[str[i + 1]]
+        let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
+        let inc = strlen(mid)
       endif
-      let str = strpart(str, 0, i) . middle . strpart(str, i + 2)
-      let i = stridx(str, '%')
+      let i = stridx(str, '%', i + 1 + inc)
     endwhile
     return str
   endfunction
 
+  " Position the cursor once we've done all the funky substitution.
   function! s:position_cursor()
     if search('{cursor}') > 0
-      let pos = line('.')
-      let line = getline(pos)
+      let lnum = line('.')
+      let line = getline(lnum)
       let cursor = stridx(line, '{cursor}')
-      call setline(pos, substitute(line, '{cursor}', '', ''))
+      call setline(lnum, substitute(line, '{cursor}', '', ''))
     endif
     startinsert!
   endfunction
 
-  " Internal function to create a new entry in the ChangeLog
+  " Internal function to create a new entry in the ChangeLog.
   function! s:new_changelog_entry()
-    " Deal with 'paste' option
+    " Deal with 'paste' option.
     let save_paste = &paste
     let &paste = 1
-    1
-    " Look for an entry for today by our user
-    let date = strftime(g:changelog_timeformat)
+    call cursor(1, 1)
+    " Look for an entry for today by our user.
+    let date = strftime(g:changelog_dateformat)
     let search = s:substitute_items(g:changelog_date_entry_search, date,
-          \g:changelog_username)
+                                  \ g:changelog_username)
     if search(search) > 0
-      " Ok, now we look for the end of the date-entry, and add an entry
-      let pos = nextnonblank(line('.') + 1)
-      let line = getline(pos)
-      while line =~ '^\s\+\S\+'
-        let pos = pos + 1
-        let line = getline(pos)
-      endwhile
-      let insert = s:substitute_items(g:changelog_new_entry_format,
-            \'', '')
-      execute "normal! ".(pos - 1)."Go".insert
-      execute pos
+      " Ok, now we look for the end of the date entry, and add an entry.
+      call cursor(nextnonblank(line('.') + 1), 1)
+      if search('^\s*$', 'W') > 0
+        let p = line('.') - 1
+      else
+        let p = line('.')
+      endif
+      let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
+                   \ '\n')
+      call append(p, ls)
+      call cursor(p + 1, 1)
     else
-      " Flag for removing empty lines at end of new ChangeLogs
+      " Flag for removing empty lines at end of new ChangeLogs.
       let remove_empty = line('$') == 1
 
-      " No entry today, so create a date-user header and insert an entry
+      " No entry today, so create a date-user header and insert an entry.
       let todays_entry = s:substitute_items(g:changelog_new_date_format,
-            \date, g:changelog_username)
-      " Make sure we have a cursor positioning
+                                          \ date, g:changelog_username)
+      " Make sure we have a cursor positioning.
       if stridx(todays_entry, '{cursor}') == -1
-        let todays_entry = todays_entry.'{cursor}'
+        let todays_entry = todays_entry . '{cursor}'
       endif
 
-      " Now do the work
-      execute "normal! i".todays_entry
+      " Now do the work.
+      call append(0, split(todays_entry, '\n'))
+      
+      " Remove empty lines at end of file.
       if remove_empty
-        while getline('$') == ''
-          $delete
-        endwhile
+        $-/^\s*$/-1,$delete
       endif
 
-      1
+      " Reposition cursor once we're done.
+      call cursor(1, 1)
     endif
 
     call s:position_cursor()
@@ -211,16 +215,18 @@ if &filetype == "changelog"
     command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
   endif
 
-  let b:undo_ftplugin = "setl com< tw< fo< et< ai<"
+  let b:undo_ftplugin = "setl com< fo< et< ai<"
 
-  if &textwidth == 0
-    setlocal textwidth=78
-  endif
   setlocal comments=
   setlocal formatoptions+=t
   setlocal noexpandtab
   setlocal autoindent
 
+  if &textwidth == 0
+    setlocal textwidth=78
+    let b:undo_ftplugin .= " tw<"
+  endif
+
   let &cpo = s:cpo_save
   unlet s:cpo_save
 else
@@ -228,23 +234,20 @@ else
   nmap <silent> <Leader>o :call <SID>open_changelog()<CR>
 
   function! s:open_changelog()
-    if filereadable('ChangeLog')
-      if bufloaded('ChangeLog')
-        let buf = bufnr('ChangeLog')
-        execute "normal! \<C-W>t"
-        while winbufnr(winnr()) != buf
-          execute "normal! \<C-W>w"
-        endwhile
-      else
-        split ChangeLog
-      endif
-
-      if exists("g:mapleader")
-        execute "normal " . g:mapleader . "o"
+    if !filereadable('ChangeLog')
+      return
+    endif
+    let buf = bufnr('ChangeLog')
+    if buf != -1
+      if bufwinnr(buf) != -1
+        execute buf . 'wincmd w'
       else
-        execute "normal \\o"
+        execute 'bsplit' buf
       endif
-      startinsert!
+    else
+      split ChangeLog
     endif
+
+    call s:new_changelog_entry()
   endfunction
 endif
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 6087c21928..8e0b7f8d21 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         generic configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index 10be14cb0e..c74be07141 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
@@ -13,7 +13,7 @@ set cpo&vim
 
 let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
 
-setlocal comments=:%,b:%D,b:%C,b:%M commentstring=%\ %s formatoptions+=tcroql
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
 
 let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
         \ .     'def\|\\font\|\\\%(future\)\=let'
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index 71ae83f186..8ec42a90c2 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         CRM114
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index d9d9005536..13a0f9ff46 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         CSS
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index beb222fd7c..2a49f8d60b 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         cvs(1) RC file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index b818ff1d10..6ebd94adf1 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index 68111b12f0..bda87821a0 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index 4bda7ea8e9..bdbecc0196 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dircolors(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index ac1642dcad..c7c11f642f 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         elinks(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index 257a4154c7..df5bf5007d 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         eterm(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index e9f195f41d..174ed448bf 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         fetchmail(1) RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index b684244514..d4bed143b5 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         gpg(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index 443c4eb95b..447ba183c5 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         group(5) user group file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 6230ec3eeb..162fcd3eb8 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         grub(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index 141e90ae91..a16dadb001 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Haskell
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index e2439ba0e6..7e82081a56 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Vim help file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 8266e937c2..2047b1de02 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         indent(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index f8ba5896c3..544fc0d0ed 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index 8b26e55064..e81684c2dc 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         lftp(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 83a00f3fa5..8845b17fc1 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         libao.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index 586372303d..6b18c83731 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         limits(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index 616ff0b6cb..c5cb1b1cb1 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         login.access(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index e51a38318d..431755e52d 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         login.defs(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 1754fd0678..870258409a 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         m4
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index ec1143f9f9..df4e994c04 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Mailcap configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index ac4b1fae25..69cf6f504d 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         man.conf(5) - man configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index d9c9c90bd5..e351a13612 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         MetaFont
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index a33a8f65ef..97102a1ee7 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         modules.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index aad8d9519f..1d709ea754 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         MetaPost
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index 15ff201098..e410667d29 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         mplayer(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index 184d6e53ed..18b06d8139 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         mutt RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index 539ee02436..67a2a48cc0 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         nanorc(5) - GNU nano configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 206dfd08f9..0f9417a831 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         netrc(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index 860c0d029e..cf9707aab6 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         pam(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 3b08ae4fc5..20f2b7f58d 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         passwd(5) password file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index f56467f320..7f1ecdfb59 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         pinfo(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index f3edc369cd..a8db58eb96 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         procmail(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index eebbdab002..cf191a90be 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Prolog
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index 2e04d8591c..b3679bd591 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         protocols(5) - Internet protocols definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index e658eb0b5f..25c6e7e50e 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Quake[1-3] configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 6969080bd3..72c1e14cdc 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Racc input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index bf29a41d01..9656c57572 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         readline(3) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index ca875b8b35..a5d21fb26d 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Relax NG compact syntax
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index 7c297b8f6d..8fc25e9e24 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         reStructuredText documentation format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 03b9b98267..92ce475b8e 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         screen(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index d675cd911a..e1f66fc07e 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sensors.conf(5) - libsensors configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index de7d15e0a8..d670cd90a8 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         services(5) - Internet network services list
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index ea0cb964e0..4b4796bc03 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         setserial(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index 39b5d7673e..d906e19875 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Sieve filtering language input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index dea5dfd239..8c92a55b2c 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index 71e865bf00..07e42c1f26 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location registration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index 181a7ece75..d6a6751744 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location SPI file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index f02bc7a893..3552696a6e 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         OpenSSH client configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index 30c1f5c0a5..a698f04d6a 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sudoers(5) configuration files
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index 90618f97b7..6b1ac6c045 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sysctl.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index 822cac4996..a473bcd06e 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         terminfo(5) definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index b7a7f840f2..c0a09827b5 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index 584a4e78f0..82602b1ea4 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) permissions file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index 29c02b0da2..3cb4c33467 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) rules file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index 20354628d1..db35fee153 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         updatedb.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index e65cfdd264..b441dfe7f7 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         X resources files like ~/.Xdefaults (xrdb)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index 2973dcd7bb..29e9eac66c 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         XFree86 Configuration File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index b789a9da42..b62dec57bf 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index c9bdec4930..a0d913ea45 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         xmodmap(1) definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index 0b77f67c1b..a2893cdad8 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         YAML (YAML Ain't Markup Language)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index cd82fa4f23..c8f82a5617 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Zsh shell script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/indent/automake.vim b/runtime/indent/automake.vim
index 0f8dbadf80..28d77a8144 100644
--- a/runtime/indent/automake.vim
+++ b/runtime/indent/automake.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         automake
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index e36937df5b..a1ad832f24 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -56,7 +56,7 @@ fun! CMakeGetIndent(lnum)
                     \       or . '[^()\\#"]' . or . '\\.' . '\)*'
 
   let cmake_indent_comment_line = '^\s*' . cmake_regex_comment
-  let cmake_indent_blank_regex = '^\s*$')
+  let cmake_indent_blank_regex = '^\s*$'
   let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier .
                     \           '\s*(' . cmake_regex_arguments .
                     \           '\(' . cmake_regex_comment . '\)\?$'
@@ -65,8 +65,8 @@ fun! CMakeGetIndent(lnum)
                     \            ')\s*' .
                     \            '\(' . cmake_regex_comment . '\)\?$'
 
-  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\)\s*('
-  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\)\s*('
+  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|WHILE\)\s*('
+  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ENDWHILE\)\s*('
 
   " Add
   if previous_line =~? cmake_indent_comment_line " Handle comments
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index c6c54b25f7..d763db0dcc 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Autoconf configure.{ac,in} file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-02-11
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 " TODO:             how about nested [()]'s in one line
 "                   what's wrong with '\\\@!'?
 
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index b0560b473d..8c6f114fb6 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    CSS
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index dcaf1e1520..adb096103f 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
index f8f567064a..235cecd34d 100644
--- a/runtime/indent/dictdconf.vim
+++ b/runtime/indent/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/docbk.vim b/runtime/indent/docbk.vim
index 575b91f006..b8af5f2a10 100644
--- a/runtime/indent/docbk.vim
+++ b/runtime/indent/docbk.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         DocBook Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/eterm.vim b/runtime/indent/eterm.vim
index 938b94a72a..730924068b 100644
--- a/runtime/indent/eterm.vim
+++ b/runtime/indent/eterm.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Eterm configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index 440b106f12..e50b703b20 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 9db77f004a..58504929f2 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Makefile
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
@@ -15,18 +15,9 @@ if exists("*GetMakeIndent")
   finish
 endif
 
-function s:GetStringWidth(line, str)
-  let end = matchend(a:line, a:str)
-  let width = 0
-  for c in a:line
-    if c == "\t"
-      let width += &ts - (width % &ts)
-    else
-      let width += 1
-    endif
-  endfor
-  return width
-endfunction
+let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+let s:continuation_rx = '\\$'
+let s:assignment_rx = '^\s*\h\w*\s*+\==\s*\zs.*\\$'
 
 function GetMakeIndent()
   let lnum = v:lnum - 1
@@ -35,11 +26,27 @@ function GetMakeIndent()
   endif
 
   let line = getline(lnum)
-  if line == ''
-    return 0
-  elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
-    return indent(lnum) + &ts
-  elseif line =~ '^\s*\h\w*\s*+\==\s*.\+\\$'
-    return s:GetStringWidth(line, '+\==\s*')
+  let ind = indent(lnum)
+
+  if line =~ s:rule_rx
+    return ind + &ts
+  elseif line =~ s:continuation_rx
+    while lnum > 0 && line =~ s:continuation_rx && line !~ s:assignment_rx
+      let lnum -= 1
+      let line = getline(lnum)
+    endwhile
+    if line =~ s:assignment_rx
+      call cursor(lnum, 1)
+      return search(s:assignment_rx, 'W') != 0 ? virtcol('.') - 1 : 0
+    else
+      return 0
+    endif
+  else
+    let pnum = lnum - 1
+    if pnum == 0
+      return ind
+    endif
+
+    return getline(pnum) =~ s:continuation_rx ? 0 : ind
   endif
 endfunction
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index f268bf9e50..4b8e81bac7 100644
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,7 +2,7 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2006 Mar 26
+" Last Change:		2006 Apr 21
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index 52d2a71314..94e4ea4033 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         readline configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/rst.vim b/runtime/indent/rst.vim
index f98e7556db..ac5e9bb5c7 100644
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         reStructuredText Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index b6ce774595..7919c09605 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index 30d3108a60..fbbb15ed85 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -130,14 +130,16 @@ function! GetSMLIndent()
 	elseif line =~ '^\s*else\>'
 	  	if lline !~ '^\s*\(if\|else\|then\)\>'
 				return s:FindPair('\<if\>', '', '\<then\>')
-	  	else return ind
+	  	else
+		  return ind
 		endif
 
 	" Match 'then' with 'if'
 	elseif line =~ '^\s*then\>'
   	if lline !~ '^\s*\(if\|else\|then\)\>'
 		  return s:FindPair('\<if\>', '', '\<then\>')
-	else return ind
+	else
+	  return ind
 	endif
 
 	" Indent if current line begins with ']'
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index 546b60daf8..1b0cc16d5b 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    Tcl
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xf86conf.vim b/runtime/indent/xf86conf.vim
index f1f1c8ed58..5b2be6d3e0 100644
--- a/runtime/indent/xf86conf.vim
+++ b/runtime/indent/xf86conf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         XFree86 Configuration File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
index 6838163bf8..398e05af98 100644
--- a/runtime/indent/xinetd.vim
+++ b/runtime/indent/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-28
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/yacc.vim b/runtime/indent/yacc.vim
index 9d0798d492..d100ceb38b 100644
--- a/runtime/indent/yacc.vim
+++ b/runtime/indent/yacc.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         YACC input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/zsh.vim b/runtime/indent/zsh.vim
index 72b00b8c73..5bf231521b 100644
--- a/runtime/indent/zsh.vim
+++ b/runtime/indent/zsh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Zsh Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/keymap/persian-iranian_utf-8.vim b/runtime/keymap/persian-iranian_utf-8.vim
index 2cd56995c6..e8dcd76e7d 100644
--- a/runtime/keymap/persian-iranian_utf-8.vim
+++ b/runtime/keymap/persian-iranian_utf-8.vim
@@ -1,7 +1,7 @@
 " Vim Keymap file for Persian Standard Keyboard Layout
 " Maintainers: Behnam 'ZWNJ' Esfahbod <behnam@zwnj.org>,
 "	       Amir Hedayaty <hedayaty@gmail.com>
-" Last Change: 2005 Nov 30
+" Last Change: 2006 Apr 21
 
 scriptencoding utf-8
 
@@ -58,7 +58,7 @@ m	Ù¾
 ,	Ùˆ
 .	.
 /	/
-\	\
+\\	\\
 
 ~	÷
 !	!
diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim
index 55a24422d3..d11a4b2267 100644
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -52,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\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
 menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
diff --git a/runtime/lang/menu_zh_cn.gb2312.vim b/runtime/lang/menu_zh_cn.gb2312.vim
index 78840ec43b..1ec0fbdcd6 100644
--- a/runtime/lang/menu_zh_cn.gb2312.vim
+++ b/runtime/lang/menu_zh_cn.gb2312.vim
@@ -52,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\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
 menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index 0df32429d1..d3edd58e88 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -52,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\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
 menutrans &Find<Tab>/			查找(&F)<Tab>/
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index 845393db03..5aa74fa796 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,6 +1,6 @@
 " Script to define the syntax menu in synmenu.vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 18
+" Last Change:	2006 Apr 21
 
 " This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
@@ -116,6 +116,7 @@ SynMenu C.CH\ script:ch
 SynMenu C.ChangeLog:changelog
 SynMenu C.Cheetah\ template:cheetah
 SynMenu C.CHILL:chill
+SynMenu C.ChordPro:chordpro
 SynMenu C.Clean:clean
 SynMenu C.Clever:cl
 SynMenu C.Clipper:clipper
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 78df1defe1..3595e1598e 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 18
+" Last Change:	2006 Apr 21
 
 " If there already is an option window, jump to that one.
 if bufwinnr("option-window") > 0
@@ -481,6 +481,8 @@ call append("$", "tabline\tcustom tab pages line")
 call <SID>OptionG("tal", &tal)
 call append("$", "guitablabel\tcustom tab page label for the GUI")
 call <SID>OptionG("gtl", &gtl)
+call append("$", "guitabtooltip\tcustom tab page tooltip for the GUI")
+call <SID>OptionG("gtt", &gtt)
 
 
 call <SID>Header("terminal")
diff --git a/runtime/spell/es/es_ES.diff b/runtime/spell/es/es_ES.diff
index 13c6e15a89..cc4f3fb53e 100644
--- a/runtime/spell/es/es_ES.diff
+++ b/runtime/spell/es/es_ES.diff
@@ -1,8 +1,8 @@
-*** es_ES.orig.aff	Thu Aug 25 19:19:44 2005
---- es_ES.aff	Thu Aug 25 19:19:44 2005
+*** es_ES.orig.aff	Fri Apr 21 10:57:12 2006
+--- es_ES.aff	Fri Apr 21 11:10:16 2006
 ***************
-*** 3,4 ****
---- 3,22 ----
+*** 4,5 ****
+--- 4,12 ----
   
 + FOL  ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
 + LOW  ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
@@ -11,77 +11,28 @@
 + SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
 + SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
 + 
-+ MAP 9
-+ MAP aàáâãäå
-+ MAP eèéêë
-+ MAP iìíîï
-+ MAP oòóôõö
-+ MAP uùúûü
-+ MAP nñ
-+ MAP cç
-+ MAP yÿý
-+ MAP sß
-+ 
-  SFX J Y 12
-*** es_ES.orig.dic	Thu Aug 25 19:19:44 2005
---- es_ES.dic	Thu Apr 20 20:30:24 2006
-***************
-*** 485,487 ****
-  acercóse
-- acercóse
-  acería/S
---- 485,486 ----
-***************
-*** 708,710 ****
-  acríticamente
-- acrítico
-  acrítico/PS
---- 707,708 ----
-***************
-*** 948,950 ****
-  adónde
-- adónde
-  adondequiera
---- 946,947 ----
-***************
-*** 1435,1437 ****
-  ah
-- ah
-  ahajar/PSTVWX
---- 1432,1433 ----
-***************
-*** 3887,3889 ****
-  apostolado
-- apostolado
-  apostolados
---- 3883,3884 ----
+  REP 20
 ***************
-*** 12926,12928 ****
-  dame
-- dame
-  dámelo
---- 12921,12922 ----
-***************
-*** 15561,15563 ****
-  dime
-- dime
-  dímelo
---- 15555,15556 ----
-***************
-*** 25133,25135 ****
-  inadaptado/PS
-- inadecuación
-  inadecuación/S
---- 25126,25127 ----
-***************
-*** 28008,28010 ****
-  líbranos
-- líbranos
-  libranza/S
---- 28000,28001 ----
-***************
-*** 48480,48481 ****
---- 48471,48473 ----
-  xilotila/S
-+ y
-  ya
+*** 26,33 ****
+  
+! MAP 5
+! MAP aáAÁ
+! MAP eéEÉ
+! MAP iíIÍ
+! MAP oóOÓ
+! MAP uúüUÚÜ
+  PFX a Y 2
+--- 33,45 ----
+  
+! MAP 9
+! MAP aàáâãäå
+! MAP eèéêë
+! MAP iìíîï
+! MAP oòóôõö
+! MAP uùúûü
+! MAP nñ
+! MAP cç
+! MAP yÿý
+! MAP sß
+! 
+  PFX a Y 2
diff --git a/runtime/spell/es/main.aap b/runtime/spell/es/main.aap
index 9ff082ce5e..3a03bffe0a 100644
--- a/runtime/spell/es/main.aap
+++ b/runtime/spell/es/main.aap
@@ -48,7 +48,7 @@ es_ES.aff es_ES.dic: {buildcheck=}
         :assertpkg unzip patch
         :fetch $ZIPFILE_ES
         :sys $UNZIP $ZIPFILE_ES
-        :delete add-to--dictionary.lst.example
+        :delete Changelog_es_ES.txt
         :delete $ZIPFILE_ES
         @if not os.path.exists('es_ES.orig.aff'):
             :copy es_ES.aff es_ES.orig.aff
diff --git a/runtime/syntax/a2ps.vim b/runtime/syntax/a2ps.vim
index a5594439de..2a87d62f90 100644
--- a/runtime/syntax/a2ps.vim
+++ b/runtime/syntax/a2ps.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         a2ps(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/alsaconf.vim b/runtime/syntax/alsaconf.vim
index f2bda1894b..8fd51f0ac4 100644
--- a/runtime/syntax/alsaconf.vim
+++ b/runtime/syntax/alsaconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         alsaconf(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim
index b9789d2603..1e7856d2c8 100644
--- a/runtime/syntax/arch.vim
+++ b/runtime/syntax/arch.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         GNU Arch inventory file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/bdf.vim b/runtime/syntax/bdf.vim
index e79a6487b7..d0c73eb601 100644
--- a/runtime/syntax/bdf.vim
+++ b/runtime/syntax/bdf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         BDF font definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index c47ef32e00..588b41a4b8 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         calendar(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/chordpro.vim b/runtime/syntax/chordpro.vim
new file mode 100644
index 0000000000..a251a6945f
--- /dev/null
+++ b/runtime/syntax/chordpro.vim
@@ -0,0 +1,67 @@
+" Vim syntax file
+" Language:     ChordPro (v. 3.6.2)
+" Maintainer:   Niels Bo Andersen <niels@niboan.dk>
+" Last Change:	2006 Apr 20 
+" Remark:       Requires VIM version 6.00 or greater
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword+=-
+
+syn case ignore
+
+syn keyword chordproDirective contained
+  \ start_of_chorus soc end_of_chorus eoc new_song ns no_grid ng grid g
+  \ new_page np new_physical_page npp start_of_tab sot end_of_tab eot
+  \ column_break colb
+
+syn keyword chordproDirWithOpt contained
+  \ comment c comment_italic ci comment_box cb title t subtitle st define
+  \ textfont textsize chordfont chordsize columns col
+
+syn keyword chordproDefineKeyword contained base-fret frets
+
+syn match chordproDirMatch /{\w*}/ contains=chordproDirective contained transparent
+syn match chordproDirOptMatch /{\w*:/ contains=chordproDirWithOpt contained transparent
+
+" Workaround for a bug in VIM 6, which causes incorrect coloring of the first {
+if version < 700
+  syn region chordproOptions start=/{\w*:/ end=/}/ contains=chordproDirOptMatch contained transparent
+  syn region chordproOptions start=/{define:/ end=/}/ contains=chordproDirOptMatch, chordproDefineKeyword contained transparent
+else
+  syn region chordproOptions start=/{\w*:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch contained
+  syn region chordproOptions start=/{define:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch, chordproDefineKeyword contained
+endif
+
+syn region chordproTag start=/{/ end=/}/ contains=chordproDirMatch,chordproOptions oneline
+
+syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline
+
+syn region chordproTab start=/{start_of_tab}\|{sot}/hs=e+1 end=/{end_of_tab}\|{eot}/he=s-1 contains=chordproTag,chordproComment keepend
+
+syn region chordproChorus start=/{start_of_chorus}\|{soc}/hs=e+1 end=/{end_of_chorus}\|{eoc}/he=s-1 contains=chordproTag,chordproChord,chordproComment keepend
+
+syn match chordproComment /^#.*/
+
+" Define the default highlighting.
+hi def link chordproDirective Statement
+hi def link chordproDirWithOpt Statement
+hi def link chordproOptions Special
+hi def link chordproChord Type
+hi def link chordproTag Constant
+hi def link chordproTab PreProc
+hi def link chordproComment Comment
+hi def link chordproBracket Constant
+hi def link chordproDefineKeyword Type
+hi def chordproChorus term=bold cterm=bold gui=bold
+
+let b:current_syntax = "chordpro"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 8dfe3d713e..302417e5ff 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -49,7 +49,7 @@ syn region cmakeArguments start=/\s*(/ end=/)/
 syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
            \ nextgroup=cmakeArgument
 syn keyword cmakeStatement
-           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE
+           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
            \ nextgroup=cmakeArgumnts
 
 "syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim
index 1b3d2446fb..93b14b194f 100644
--- a/runtime/syntax/context.vim
+++ b/runtime/syntax/context.vim
@@ -1,30 +1,24 @@
 " Vim syntax file
 " Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
 endif
 
+runtime! syntax/plaintex.vim
+
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword contextTodo       TODO FIXME XXX NOTE
-
-syn region  contextComment    display oneline start='%' end='$'
-                              \ contains=contextTodo
-syn region  contextComment    display oneline start='^\s*%[CDM]' end='$'
-                              \ contains=ALL
-
-syn match   contextStatement  display '\\[a-zA-Z@]\+' contains=@NoSpell
+if !exists('g:context_include')
+  let g:context_include = ['mp', 'javascript', 'xml']
+endif
 
 syn match   contextBlockDelim display '\\\%(start\|stop\)\a\+'
                               \ contains=@NoSpell
 
-syn match   contextDelimiter  '[][{}]'
-
-syn match   contextEscaped    display '\\\_[\{}|&%$ ]'
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\type\z(\A\)' end='\z1'
 syn region  contextEscaped    display matchgroup=contextPreProc
@@ -39,34 +33,52 @@ syn region  contextEscaped    display matchgroup=contextPreProc
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\Typed\h\+{' end='}'
 
-"syn region  contextMath       matchgroup=contextMath start='\$' end='\$'
-"                              \ contains=contextStatement
-
-syn match   contextBuiltin    '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(futurelet\|protect\)\>' contains=@NoSpell
-syn match   contextBuiltin    '\\\%([lr]q\)\>' contains=@NoSpell
+syn match   contextBuiltin    display contains=@NoSpell
+      \ '\\\%(unprotect\|protect\|unexpanded\)' 
 
 syn match   contextPreProc    '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
                               \ contains=@NoSpell
-syn match   contextPreProc    '^\s*\\input\s\+.*$' contains=@NoSpell
+
+if index(g:context_include, 'mp') != -1
+  syn include @mpTop          syntax/mp.vim
+  unlet b:current_syntax
+
+  syn region  contextMPGraphic  transparent matchgroup=contextBlockDelim
+                                \ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*'
+                                \ end='\\stop\z1'
+                                \ contains=@mpTop
+endif
+
+" TODO: also need to implement this for \\typeC or something along those
+" lines.
+function! s:include_syntax(name, group)
+  if index(g:context_include, a:name) != -1
+    execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim'
+    unlet b:current_syntax
+    execute 'syn region context' . a:group . 'Code'
+          \ 'transparent matchgroup=contextBlockDelim'
+          \ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+'
+          \ 'contains=@' . a:name . 'Top'
+  endif
+endfunction
+
+call s:include_syntax('c', 'C')
+call s:include_syntax('ruby', 'Ruby')
+call s:include_syntax('javascript', 'JS')
+call s:include_syntax('xml', 'XML')
 
 syn match   contextSectioning '\\chapter\>' contains=@NoSpell
 syn match   contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
 
 syn match   contextSpecial    '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
                               \ contains=@NoSpell
-syn match   contextSpecial    '\\[`'"]'
+syn match   contextSpecial    /\\[`'"]/
 syn match   contextSpecial    +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
                               \ contains=@NoSpell
 syn match   contextSpecial    '\^\^.'
 syn match   contextSpecial    '`\%(\\.\|\^\^.\|.\)'
 
-syn match   contextStyle      '\\\%(em\|tt\|rm\|ss\|hw\|cg\)\>'
+syn match   contextStyle      '\\\%(em\|ss\|hw\|cg\|mf\)\>'
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
                               \ contains=@NoSpell
@@ -74,29 +86,18 @@ syn match   contextFont       '\\\%(Word\|WORD\|Words\|WORDS\)\>'
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
                               \ contains=@NoSpell
-syn match   contextFont       '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
-                              \ contains=@NoSpell
-syn match   contextFont       '\\\%(b[fsi]\|s[cl]\|it\|os\|mf\)\>'
+syn match   contextFont       '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
                               \ contains=@NoSpell
 
-syn match   contextDimension  '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
-                              \ contains=@NoSpell
-
-hi def link contextTodo       Todo
-hi def link contextComment    Comment
-hi def link contextEscaped    Special
-hi def link contextStatement  Identifier
-hi def link contextMath       String
 hi def link contextBlockDelim Keyword
 hi def link contextBuiltin    Keyword
 hi def link contextDelimiter  Delimiter
 hi def link contextPreProc    PreProc
 hi def link contextSectioning PreProc
 hi def link contextSpecial    Special
+hi def link contextType       Type
 hi def link contextStyle      contextType
 hi def link contextFont       contextType
-hi def link contextType       Type
-hi def link contextDimension  Number
 
 let b:current_syntax = "context"
 
diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim
index 35d9e50c58..17b67d44f0 100644
--- a/runtime/syntax/crm.vim
+++ b/runtime/syntax/crm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         CRM114
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim
index d901ae1fd2..6c2c4eea04 100644
--- a/runtime/syntax/cvsrc.vim
+++ b/runtime/syntax/cvsrc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         cvs(1) RC file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dictconf.vim b/runtime/syntax/dictconf.vim
index 21474fa065..e7fa476975 100644
--- a/runtime/syntax/dictconf.vim
+++ b/runtime/syntax/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dictdconf.vim b/runtime/syntax/dictdconf.vim
index 5651d7c777..44bf6f8bad 100644
--- a/runtime/syntax/dictdconf.vim
+++ b/runtime/syntax/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim
index 8a22b1d0fd..da01907992 100644
--- a/runtime/syntax/dircolors.vim
+++ b/runtime/syntax/dircolors.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dircolors(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim
index dea04babf6..5b3a3f1afd 100644
--- a/runtime/syntax/elinks.vim
+++ b/runtime/syntax/elinks.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         elinks(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/esterel.vim b/runtime/syntax/esterel.vim
index 30383554d2..7498364214 100644
--- a/runtime/syntax/esterel.vim
+++ b/runtime/syntax/esterel.vim
@@ -32,7 +32,7 @@ syn keyword esterelStatement	every do loop abort weak
 syn keyword esterelStatement	emit present await
 syn keyword esterelStatement	if then else
 syn keyword esterelBoolean		and or not xor xnor nor nand
-syn keyword esterelOperator		\[ \] 
+"syn keyword esterelOperator		\[ \] 
 syn keyword esterelPippo		pippo
 " Esterel Types
 syn keyword esterelType integer float bolean
diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim
index 8bc436705f..f6c50a20cb 100644
--- a/runtime/syntax/eterm.vim
+++ b/runtime/syntax/eterm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         eterm(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-21
 
 if exists("b:current_syntax")
   finish
@@ -61,7 +61,7 @@ syn match   etermColorNumber      contained display '\<\%(\d\|1[0-5]\)'
 syn match   etermColorSpec        contained display '\S\+'
 
 syn region  etermColorContext     fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+color'
+                                  \ start='^\s*begin\s\+color\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermColorOptions
 
@@ -99,7 +99,7 @@ syn keyword etermAttrOptions      contained scrollbar_width desktop
                                   \ nextgroup=etermNumber skipwhite
 
 syn region  etermAttrContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+attributes\'
+                                  \ start='^\s*begin\s\+attributes\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermAttrOptions
 
@@ -111,7 +111,7 @@ syn keyword etermIClassOptions    contained anim nextgroup=etermNumber
                                   \ skipwhite
 
 syn region  etermIClassContext    fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+imageclasses'
+                                  \ start='^\s*begin\s\+imageclasses\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermImageContext,
                                   \ etermIClassOptions
@@ -176,7 +176,7 @@ syn region  etermImageOptions     contained display oneline
 
 syn region  etermImageContext     contained fold transparent
                                   \ matchgroup=etermContext
-                                  \ start='^\s*begin\s\+image'
+                                  \ start='^\s*begin\s\+image\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermImageOptions
 
@@ -193,7 +193,7 @@ syn keyword etermMenuItemOptions  contained text rtext nextgroup=etermString
 
 syn region  etermMenuItemContext  contained fold transparent
                                   \ matchgroup=etermContext
-                                  \ start='^\s*begin\s\+menuitem'
+                                  \ start='^\s*begin\s\+menuitem\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMenuItemOptions
 
@@ -206,7 +206,7 @@ syn keyword etermMenuOptions      contained font_name nextgroup=etermFont
 syn match   etermMenuOptions      contained display '\<sep\>\|-'
 
 syn region  etermMenuContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+menu'
+                                  \ start='^\s*begin\s\+menu\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMenuOptions,
                                   \ etermMenuItemContext
@@ -227,7 +227,7 @@ syn keyword etermBindType         contained string echo menu script
 syn match   etermBindParam        contained display '\S\+'
 
 syn region  etermActionsContext   fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+actions'
+                                  \ start='^\s*begin\s\+actions\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermActionsOptions
 
@@ -256,7 +256,7 @@ syn keyword etermButtonAction     contained action nextgroup=etermBindType
                                   \ skipwhite
 
 syn region  etermButtonContext    fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+button_bar'
+                                  \ start='^\s*begin\s\+button_bar\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermButtonOptions
 
@@ -270,8 +270,8 @@ syn keyword etermMultiOptions     contained font nextgroup=etermFontType
                                   \ skipwhite
 
 syn region  etermMultiContext     fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+multichar'
-                                  \ end="^\s*end\>'
+                                  \ start='^\s*begin\s\+multichar\>'
+                                  \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMultiOptions
 
 syn keyword etermXimOptions       contained input_method
@@ -285,8 +285,8 @@ syn keyword etermXimOptions       contained preedit_type
 syn keyword etermPreeditType      contained OverTheSpot OffTheSpot Root
 
 syn region  etermXimContext       fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+xim'
-                                  \ end="^\s*end\>'
+                                  \ start='^\s*begin\s\+xim\>'
+                                  \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermXimOptions
 
 syn keyword etermTogOptions       contained map_alert visual_bell login_shell
@@ -301,7 +301,7 @@ syn keyword etermTogOptions       contained map_alert visual_bell login_shell
                                   \ skipwhite
 
 syn region  etermTogContext       fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+toggles'
+                                  \ start='^\s*begin\s\+toggles\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermTogOptions
 
@@ -318,7 +318,7 @@ syn keyword etermKeyboardOptions  contained greek app_keypad app_cursor
                                   \ nextgroup=etermBoolean skipwhite
 
 syn region  etermKeyboardContext  fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+keyboard'
+                                  \ start='^\s*begin\s\+keyboard\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermKeyboardOptions
 
@@ -330,7 +330,7 @@ syn keyword etermMiscOptions      contained save_lines min_anchor_size
                                   \ border_width line_space
 
 syn region  etermMiscContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+misc'
+                                  \ start='^\s*begin\s\+misc\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMiscOptions
 
@@ -351,7 +351,7 @@ syn keyword etermEScreenOptions   contained bbar_dock nextgroup=etermDockOption
                                   \ skipwhite
 
 syn region  etermEScreenContext   fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+escreen'
+                                  \ start='^\s*begin\s\+escreen\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermEScreenOptions
 
diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim
index 671598cbb4..89de1ff80d 100644
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         fetchmail(1) RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-01-25
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim
index b84c30213b..0fc8f00846 100644
--- a/runtime/syntax/gpg.vim
+++ b/runtime/syntax/gpg.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         gpg(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/group.vim b/runtime/syntax/group.vim
index 9b3e500223..ae5bfd8553 100644
--- a/runtime/syntax/group.vim
+++ b/runtime/syntax/group.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         group(5) user group file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -25,7 +25,7 @@ syn match   groupShadow         contained display '[x*]' nextgroup=groupGIDColon
 
 syn match   groupGIDColon       contained display ':' nextgroup=groupGID
 
-syn match   groupGID            contained display '\d\+'
+syn match   groupGID            contained display '\d*'
                                 \ nextgroup=groupUserListColon
 
 syn match   groupUserListColon  contained display ':' nextgroup=groupUserList
diff --git a/runtime/syntax/grub.vim b/runtime/syntax/grub.vim
index 2e04d87bfa..f63449db0e 100644
--- a/runtime/syntax/grub.vim
+++ b/runtime/syntax/grub.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         grub(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index 9310c4914f..ef4df5f5cc 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         indent(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 "   indent_is_bsd:  If exists, will change somewhat to match BSD implementation
 "
 " TODO: is the deny-all (a la lilo.vim nice or no?)...
@@ -15,7 +15,7 @@ endif
 let s:cpo_save = &cpo
 set cpo&vim
 
-setlocal iskeyword=@,48-57,-,_
+setlocal iskeyword=@,48-57,-,+,_
 
 syn match   indentError   '\S\+'
 
diff --git a/runtime/syntax/ld.vim b/runtime/syntax/ld.vim
index 2b39bea7d5..fc12919c50 100644
--- a/runtime/syntax/ld.vim
+++ b/runtime/syntax/ld.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/lftp.vim b/runtime/syntax/lftp.vim
index 9b346a1394..7de5a560ea 100644
--- a/runtime/syntax/lftp.vim
+++ b/runtime/syntax/lftp.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         lftp(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/libao.vim b/runtime/syntax/libao.vim
index fdf85940b8..25b6e8284e 100644
--- a/runtime/syntax/libao.vim
+++ b/runtime/syntax/libao.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         libao.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/limits.vim b/runtime/syntax/limits.vim
index f6dfd8a73d..a6d245ae11 100644
--- a/runtime/syntax/limits.vim
+++ b/runtime/syntax/limits.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         limits(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/loginaccess.vim b/runtime/syntax/loginaccess.vim
index 84a059d62b..07d60eeca0 100644
--- a/runtime/syntax/loginaccess.vim
+++ b/runtime/syntax/loginaccess.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         login.access(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/logindefs.vim b/runtime/syntax/logindefs.vim
index 2bbc6da969..7c2b122ae6 100644
--- a/runtime/syntax/logindefs.vim
+++ b/runtime/syntax/logindefs.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         login.defs(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/manconf.vim b/runtime/syntax/manconf.vim
index cdf89b9b3e..90ecc8ec17 100644
--- a/runtime/syntax/manconf.vim
+++ b/runtime/syntax/manconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         man.conf(5) - man configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index 82cb980541..e982b8c589 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         modules.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/mplayerconf.vim b/runtime/syntax/mplayerconf.vim
index 90592060e4..55f7e1a583 100644
--- a/runtime/syntax/mplayerconf.vim
+++ b/runtime/syntax/mplayerconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         mplayer(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/nanorc.vim b/runtime/syntax/nanorc.vim
index c13b30b7a4..2ae4961fdb 100644
--- a/runtime/syntax/nanorc.vim
+++ b/runtime/syntax/nanorc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         nanorc(5) - GNU nano configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/netrc.vim b/runtime/syntax/netrc.vim
index 9d5d3ae53a..d8eba30a8a 100644
--- a/runtime/syntax/netrc.vim
+++ b/runtime/syntax/netrc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         netrc(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/pamconf.vim b/runtime/syntax/pamconf.vim
index 58eaf4b7ec..46cd3c3095 100644
--- a/runtime/syntax/pamconf.vim
+++ b/runtime/syntax/pamconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pam(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 
 if exists("b:current_syntax")
diff --git a/runtime/syntax/passwd.vim b/runtime/syntax/passwd.vim
index ffb979f71c..2261d99dcb 100644
--- a/runtime/syntax/passwd.vim
+++ b/runtime/syntax/passwd.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         passwd(5) password file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -12,7 +12,7 @@ set cpo&vim
 
 syn match   passwdBegin         display '^' nextgroup=passwdAccount
 
-syn match   passwdAccount       contained display '[a-z_][a-z0-9_-]*'
+syn match   passwdAccount       contained display '[+-]\=[a-z_][a-z0-9_-]*'
                                 \ nextgroup=passwdPasswordColon
 
 syn match   passwdPasswordColon contained display ':'
@@ -26,12 +26,12 @@ syn match   passwdShadow        contained display '[x*!]'
 
 syn match   passwdUIDColon      contained display ':' nextgroup=passwdUID
 
-syn match   passwdUID           contained display '\d\+'
+syn match   passwdUID           contained display '\d*'
                                 \ nextgroup=passwdGIDColon
 
 syn match   passwdGIDColon      contained display ':' nextgroup=passwdGID
 
-syn match   passwdGID           contained display '\d\+'
+syn match   passwdGID           contained display '\d*'
                                 \ nextgroup=passwdGecosColon
 
 syn match   passwdGecosColon    contained display ':' nextgroup=passwdGecos
@@ -47,7 +47,7 @@ syn match   passwdDir           contained display '/[^:]*'
 syn match   passwdShellColon    contained display ':'
                                 \ nextgroup=passwdShell
 
-syn match   passwdShell         contained display '[/*][^:]*'
+syn match   passwdShell         contained display '.*'
 
 hi def link passwdColon         Normal
 hi def link passwdAccount       Identifier
diff --git a/runtime/syntax/pinfo.vim b/runtime/syntax/pinfo.vim
index 88d490cc24..57d37d4715 100644
--- a/runtime/syntax/pinfo.vim
+++ b/runtime/syntax/pinfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pinfo(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/protocols.vim b/runtime/syntax/protocols.vim
index ab586bcff7..1dc109caf6 100644
--- a/runtime/syntax/protocols.vim
+++ b/runtime/syntax/protocols.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         protocols(5) - Internet protocols definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index b86d52804c..7840f7cc44 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,9 +1,11 @@
 " Vim syntax file
 " Language:         Quake[1-3] configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
+"               quake_is_quake1 - the syntax is to be used for quake1 configs
 "               quake_is_quake2 - the syntax is to be used for quake2 configs
 "               quake_is_quake3 - the syntax is to be used for quake3 configs
+" Credits:          Tomasz Kalkosinski wrote the original quake3Colors stuff
 
 if exists("b:current_syntax")
   finish
@@ -20,20 +22,24 @@ syn region  quakeComment      display oneline start='//' end='$' end=';'
                               \ keepend contains=quakeTodo,@Spell
 
 syn region  quakeString       display oneline start=+"+ skip=+\\\\\|\\"+
-                              \ end=+"\|$+ contains=quakeNumbers,@quakeCommands
+                              \ end=+"\|$+ contains=quakeNumbers,
+                              \ @quakeCommands,@quake3Colors
 
 syn case ignore
 
-syn match quakeNumbers        display transparent '\<\d\|\.\d'
+syn match quakeNumbers        display transparent '\<-\=\d\|\.\d'
                               \ contains=quakeNumber,quakeFloat,
                               \ quakeOctalError,quakeOctal
 syn match quakeNumber         contained display '\d\+\>'
-syn match quakeOctal          contained display '0\o\+\>'
-                              \ contains=quakeOctalZero
-syn match quakeOctalZero      contained display '\<0'
 syn match quakeFloat          contained display '\d\+\.\d*'
 syn match quakeFloat          contained display '\.\d\+\>'
-syn match quakeOctalError     contained display '0\o*[89]\d*'
+
+if exists("quake_is_quake1") || exists("quake_is_quake2")
+  syn match quakeOctal        contained display '0\o\+\>'
+                              \ contains=quakeOctalZero
+  syn match quakeOctalZero    contained display '\<0'
+  syn match quakeOctalError   contained display '0\o*[89]\d*'
+endif
 
 syn cluster quakeCommands     contains=quakeCommand,quake1Command,
                               \ quake12Command,Quake2Command,Quake23Command,
@@ -80,8 +86,6 @@ if exists("quake_is_quake2")
   syn keyword quake2Command   weaplast
 endif
 
-syn case match
-
 if exists("quake_is_quake2") || exists("quake_is_quake3")
   syn keyword quake23Command  imagelist modellist path z_stats
 endif
@@ -112,6 +116,24 @@ if exists("quake_is_quake3")
   syn match   quake3Command   display "\<[+-]button\(\d\|1[0-4]\)\>"
 endif
 
+if exists("quake_is_quake3")
+  syn cluster quake3Colors    contains=quake3Red,quake3Green,quake3Yellow,
+                              \ quake3Blue,quake3Cyan,quake3Purple,quake3White,
+                              \ quake3Orange,quake3Grey,quake3Black,quake3Shadow
+
+  syn region quake3Red        contained start=+\^1+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Green      contained start=+\^2+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Yellow     contained start=+\^3+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Blue       contained start=+\^4+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Cyan       contained start=+\^5+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Purple     contained start=+\^6+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3White      contained start=+\^7+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Orange     contained start=+\^8+hs=e+1 end=+[$^\"\n]+he=e-1
+  syn region quake3Grey       contained start=+\^9+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Black      contained start=+\^0+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Shadow     contained start=+\^[Xx]+hs=e+1 end=+[$^"\n]+he=e-1
+endif
+
 hi def link quakeComment      Comment
 hi def link quakeTodo         Todo
 hi def link quakeString       String
@@ -128,6 +150,20 @@ hi def link quake23Command    quakeCommands
 hi def link quake3Command     quakeCommands
 hi def link quakeCommands     Keyword
 
+if exists("quake_is_quake3")
+  hi quake3Red                ctermfg=Red         guifg=Red
+  hi quake3Green              ctermfg=Green       guifg=Green
+  hi quake3Yellow             ctermfg=Yellow      guifg=Yellow
+  hi quake3Blue               ctermfg=Blue        guifg=Blue
+  hi quake3Cyan               ctermfg=Cyan        guifg=Cyan
+  hi quake3Purple             ctermfg=DarkMagenta guifg=Purple
+  hi quake3White              ctermfg=White       guifg=White
+  hi quake3Black              ctermfg=Black       guifg=Black
+  hi quake3Orange             ctermfg=Brown       guifg=Orange
+  hi quake3Grey               ctermfg=LightGrey   guifg=LightGrey
+  hi quake3Shadow             cterm=underline     gui=underline
+endif
+
 let b:current_syntax = "quake"
 
 let &cpo = s:cpo_save
diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim
index a8a8c055de..c0bfa303de 100644
--- a/runtime/syntax/racc.vim
+++ b/runtime/syntax/racc.vim
@@ -1,7 +1,7 @@
 " Vim default file
 " Language:         Racc input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index cd7b10f4a8..81175fee19 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         readline(3) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 "   readline_has_bash - if defined add support for bash specific
 "                       settings/functions
 
diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim
index 3758ec5b8e..d510f0476c 100644
--- a/runtime/syntax/rnc.vim
+++ b/runtime/syntax/rnc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Relax NG compact syntax
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim
index 1baaa5b161..e1ff4ecea5 100644
--- a/runtime/syntax/screen.vim
+++ b/runtime/syntax/screen.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         screen(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sensors.vim b/runtime/syntax/sensors.vim
index 41c13e8007..63cececc68 100644
--- a/runtime/syntax/sensors.vim
+++ b/runtime/syntax/sensors.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sensors.conf(5) - libsensors configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/services.vim b/runtime/syntax/services.vim
index a2db7b1ac3..661f57a7e8 100644
--- a/runtime/syntax/services.vim
+++ b/runtime/syntax/services.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         services(5) - Internet network services list
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/setserial.vim b/runtime/syntax/setserial.vim
index 6d410f57b3..cdd309d7f2 100644
--- a/runtime/syntax/setserial.vim
+++ b/runtime/syntax/setserial.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         setserial(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index fa369fc737..f651cbd4e1 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Sieve filtering language input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpconf.vim b/runtime/syntax/slpconf.vim
index 4b3c5a17ae..9fe4503780 100644
--- a/runtime/syntax/slpconf.vim
+++ b/runtime/syntax/slpconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpreg.vim b/runtime/syntax/slpreg.vim
index c4e16a9efa..f3c8a7fc8e 100644
--- a/runtime/syntax/slpreg.vim
+++ b/runtime/syntax/slpreg.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location registration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpspi.vim b/runtime/syntax/slpspi.vim
index e6d0c154a0..8507e3de69 100644
--- a/runtime/syntax/slpspi.vim
+++ b/runtime/syntax/slpspi.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location SPI file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sqlj.vim b/runtime/syntax/sqlj.vim
index ba64bdfc07..51398ef9c2 100644
--- a/runtime/syntax/sqlj.vim
+++ b/runtime/syntax/sqlj.vim
@@ -94,6 +94,8 @@ if version >= 508 || !exists("did_sqlj_syn_inits")
   HiLink sqljString	String
   HiLink sqljType	Type
   HiLink sqljPre	PreProc
+
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sqlj"
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index 81d808fef3..2e2d7448d8 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sudoers(5) configuration files
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sysctl.vim b/runtime/syntax/sysctl.vim
index 460d0ac1fa..d16d458a99 100644
--- a/runtime/syntax/sysctl.vim
+++ b/runtime/syntax/sysctl.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sysctl.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim
index 9fd7845169..0ea112ad47 100644
--- a/runtime/syntax/terminfo.vim
+++ b/runtime/syntax/terminfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         terminfo(5) definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -74,7 +74,7 @@ syn keyword terminfoStrings     acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc
 syn match terminfoStrings       display '\<kf\([0-9]\|[0-5][0-9]\|6[0-3]\)\>'
 
 syn match terminfoParameters    '%[%dcspl+*/mAO&|^=<>!~i?te;-]'
-syn match terminfoParameters    '%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)'
+syn match terminfoParameters    "%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)"
 
 hi def link terminfoComment     Comment
 hi def link terminfoTodo        Todo
diff --git a/runtime/syntax/udevconf.vim b/runtime/syntax/udevconf.vim
index 487a8acd8f..a294604906 100644
--- a/runtime/syntax/udevconf.vim
+++ b/runtime/syntax/udevconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/udevperm.vim b/runtime/syntax/udevperm.vim
index c2029a4f27..9d3af09d07 100644
--- a/runtime/syntax/udevperm.vim
+++ b/runtime/syntax/udevperm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) permissions file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/udevrules.vim b/runtime/syntax/udevrules.vim
index 7deac2ab28..2dca8787c3 100644
--- a/runtime/syntax/udevrules.vim
+++ b/runtime/syntax/udevrules.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) rules file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
index e2b7903115..dd8e6f7a5c 100644
--- a/runtime/syntax/updatedb.vim
+++ b/runtime/syntax/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/xinetd.vim b/runtime/syntax/xinetd.vim
index e8e57bebf6..9010a48a1d 100644
--- a/runtime/syntax/xinetd.vim
+++ b/runtime/syntax/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/xmodmap.vim b/runtime/syntax/xmodmap.vim
index 2b097dfe68..69c70c563d 100644
--- a/runtime/syntax/xmodmap.vim
+++ b/runtime/syntax/xmodmap.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xmodmap(1) definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 5a94fb6f4c..9ebab70689 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         YAML (YAML Ain't Markup Language)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/src/auto/configure b/src/auto/configure
index 7a308a7e8d..319fd4e5af 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -9197,7 +9197,7 @@ fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
   else
     cat >>confdefs.h <<\_ACEOF
-#define XPMATTRIBUTES_TYPE XpmAttributes_21
+#define XPMATTRIBUTES_TYPE XpmAttributes
 _ACEOF
 
   fi
diff --git a/src/configure.in b/src/configure.in
index 6a1a56f082..5c6dd516f7 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1911,7 +1911,7 @@ if test -z "$SKIP_MOTIF"; then
 	AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
 	)
   else
-    AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21)
+    AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
   fi
   CPPFLAGS=$cppflags_save
 fi
diff --git a/src/digraph.c b/src/digraph.c
index 892a3ed627..667ff07169 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -2439,8 +2439,11 @@ ex_loadkeymap(eap)
 	    kp->to = vim_strnsave(p, (int)(s - p));
 
 	    if (kp->from == NULL || kp->to == NULL
-		    || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN)
+		    || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN
+		    || *kp->from == NUL || *kp->to == NUL)
 	    {
+		if (kp->to != NULL && *kp->to == NUL)
+		    EMSG(_("E791: Empty keymap entry"));
 		vim_free(kp->from);
 		vim_free(kp->to);
 	    }
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 1da7f1bc13..c89cb2bd0f 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -155,22 +155,22 @@ cause_errthrow(mesg, severe, ignore)
     struct msglist **plist;
 
     /*
-     * Do nothing when displaying the interrupt message or reporting an uncaught
-     * exception (which has already been discarded then) at the top level.  Also
-     * when no exception can be thrown.  The message will be displayed by
-     * emsg().
+     * Do nothing when displaying the interrupt message or reporting an
+     * uncaught exception (which has already been discarded then) at the top
+     * level.  Also when no exception can be thrown.  The message will be
+     * displayed by emsg().
      */
     if (suppress_errthrow)
 	return FALSE;
 
     /*
-     * If emsg() has not been called previously, temporarily reset "force_abort"
-     * until the throw point for error messages has been reached.  This ensures
-     * that aborting() returns the same value for all errors that appear in the
-     * same command.  This means particularly that for parsing errors during
-     * expression evaluation emsg() will be called multiply, even when the
-     * expression is evaluated from a finally clause that was activated due to
-     * an aborting error, interrupt, or exception.
+     * If emsg() has not been called previously, temporarily reset
+     * "force_abort" until the throw point for error messages has been
+     * reached.  This ensures that aborting() returns the same value for all
+     * errors that appear in the same command.  This means particularly that
+     * for parsing errors during expression evaluation emsg() will be called
+     * multiply, even when the expression is evaluated from a finally clause
+     * that was activated due to an aborting error, interrupt, or exception.
      */
     if (!did_emsg)
     {
@@ -181,18 +181,18 @@ cause_errthrow(mesg, severe, ignore)
     /*
      * If no try conditional is active and no exception is being thrown and
      * there has not been an error in a try conditional or a throw so far, do
-     * nothing (for compatibility of non-EH scripts).  The message will then be
-     * displayed by emsg().  When ":silent!" was used and we are not currently
-     * throwing an exception, do nothing.  The message text will then be stored
-     * to v:errmsg by emsg() without displaying it.
+     * nothing (for compatibility of non-EH scripts).  The message will then
+     * be displayed by emsg().  When ":silent!" was used and we are not
+     * currently throwing an exception, do nothing.  The message text will
+     * then be stored to v:errmsg by emsg() without displaying it.
      */
     if (((trylevel == 0 && !cause_abort) || emsg_silent) && !did_throw)
 	return FALSE;
 
     /*
      * Ignore an interrupt message when inside a try conditional or when an
-     * exception is being thrown or when an error in a try conditional or throw
-     * has been detected previously.  This is important in order that an
+     * exception is being thrown or when an error in a try conditional or
+     * throw has been detected previously.  This is important in order that an
      * interrupt exception is catchable by the innermost try conditional and
      * not replaced by an interrupt message error exception.
      */
diff --git a/src/gui.c b/src/gui.c
index 755c20c1f4..0fdcabe5a4 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -3407,31 +3407,36 @@ gui_update_tabline()
 }
 
 /*
- * Get the label for tab page "tp" into NameBuff[].
+ * Get the label or tooltip for tab page "tp" into NameBuff[].
  */
     void
-get_tabline_label(tp)
+get_tabline_label(tp, tooltip)
     tabpage_T	*tp;
+    int		tooltip;	/* TRUE: get tooltip */
 {
     int		modified = FALSE;
     char_u	buf[40];
     int		wincount;
     win_T	*wp;
+    char_u	*opt;
 
-    /* Use 'guitablabel' if it's set. */
-    if (*p_gtl != NUL)
+    /* Use 'guitablabel' or 'guitabtooltip' if it's set. */
+    opt = (tooltip ? p_gtt : p_gtl);
+    if (*opt != NUL)
     {
 	int	use_sandbox = FALSE;
 	int	save_called_emsg = called_emsg;
 	char_u	res[MAXPATHL];
 	tabpage_T *save_curtab;
+	char_u	*opt_name = (char_u *)(tooltip ? "guitabtooltip"
+							     : "guitablabel");
 
 	called_emsg = FALSE;
 
 	printer_page_num = tabpage_index(tp);
 # ifdef FEAT_EVAL
 	set_vim_var_nr(VV_LNUM, printer_page_num);
-	use_sandbox = was_set_insecurely((char_u *)"guitablabel", 0);
+	use_sandbox = was_set_insecurely(opt_name, 0);
 # endif
 	/* It's almost as going to the tabpage, but without autocommands. */
 	curtab->tp_firstwin = firstwin;
@@ -3446,7 +3451,7 @@ get_tabline_label(tp)
 	curbuf = curwin->w_buffer;
 
 	/* Can't use NameBuff directly, build_stl_str_hl() uses it. */
-	build_stl_str_hl(curwin, res, MAXPATHL, p_gtl, use_sandbox,
+	build_stl_str_hl(curwin, res, MAXPATHL, opt, use_sandbox,
 						 0, (int)Columns, NULL, NULL);
 	STRCPY(NameBuff, res);
 
@@ -3459,7 +3464,7 @@ get_tabline_label(tp)
 	curbuf = curwin->w_buffer;
 
 	if (called_emsg)
-	    set_string_option_direct((char_u *)"guitablabel", -1,
+	    set_string_option_direct(opt_name, -1,
 					   (char_u *)"", OPT_FREE, SID_ERROR);
 	called_emsg |= save_called_emsg;
     }
@@ -3467,7 +3472,8 @@ get_tabline_label(tp)
     {
 	/* Get the buffer name into NameBuff[] and shorten it. */
 	get_trans_bufname(tp == curtab ? curbuf : tp->tp_curwin->w_buffer);
-	shorten_dir(NameBuff);
+	if (!tooltip)
+	    shorten_dir(NameBuff);
 
 	wp = (tp == curtab) ? firstwin : tp->tp_firstwin;
 	for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount)
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 23318bb7a3..79557a834b 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3320,7 +3320,7 @@ gui_mch_update_tabline(void)
 		    nr++);
 	}
 
-	get_tabline_label(tp);
+	get_tabline_label(tp, FALSE);
 	labeltext = CONVERT_TO_UTF8(NameBuff);
 	gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(gui.tabline), page,
 						     (const gchar *)labeltext);
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 9e28be2b05..ccc97782da 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -3359,8 +3359,9 @@ gui_mch_update_tabline(void)
 	XtVaGetValues(tab, XmNlabelString, &label_str, NULL);
 	if (XmStringGetLtoR(label_str, XmSTRING_DEFAULT_CHARSET, &label_cstr))
 	{
-	    get_tabline_label(tp);
-	    if (STRCMP(label_cstr, NameBuff) != 0) {
+	    get_tabline_label(tp, FALSE);
+	    if (STRCMP(label_cstr, NameBuff) != 0)
+	    {
 		XtVaSetValues(tab, XtVaTypedArg, XmNlabelString, XmRString,
 			      NameBuff, STRLEN(NameBuff) + 1, NULL);
 		/*
diff --git a/src/gui_w48.c b/src/gui_w48.c
index 6e4ec1ad69..2e43557f24 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -2334,7 +2334,7 @@ gui_mch_update_tabline(void)
 	    TabCtrl_InsertItem(s_tabhwnd, nr, &tie);
 	}
 
-	get_tabline_label(tp);
+	get_tabline_label(tp, FALSE);
 	tie.pszText = NameBuff;
 #ifdef FEAT_MBYTE
 	wstr = NULL;
diff --git a/src/message.c b/src/message.c
index 69b194d4e5..c0146c962a 100644
--- a/src/message.c
+++ b/src/message.c
@@ -561,17 +561,18 @@ emsg(s)
 
     /*
      * If "emsg_off" is set: no error messages at the moment.
-     * If 'debug' is set: do error message anyway, but without side effects.
+     * If "msg" is in 'debug': do error message but without side effects.
      * If "emsg_skip" is set: never do error messages.
      */
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
 	    )
 	return TRUE;
 
-    if (!emsg_off)
+    if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
     {
 #ifdef FEAT_EVAL
 	/*
diff --git a/src/misc2.c b/src/misc2.c
index f8a583bc7c..4667a563dc 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -5816,7 +5816,8 @@ filewritable(fname)
 emsg3(s, a1, a2)
     char_u *s, *a1, *a2;
 {
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
@@ -5835,7 +5836,8 @@ emsgn(s, n)
     char_u	*s;
     long	n;
 {
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
diff --git a/src/option.c b/src/option.c
index cfca188d9b..c1fc7dc3d8 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1265,6 +1265,15 @@ static struct vimoption
 #else
 			    (char_u *)NULL, PV_NONE,
 			    {(char_u *)NULL, (char_u *)0L}
+#endif
+				    },
+    {"guitabtooltip",  "gtl", P_STRING|P_VI_DEF|P_RWIN,
+#if defined(FEAT_GUI_TABLINE)
+			    (char_u *)&p_gtt, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
 #endif
 				    },
     {"hardtabs",    "ht",   P_NUM|P_VI_DEF,
@@ -2812,7 +2821,7 @@ static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
 static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
 #endif
 static char *(p_swb_values[]) = {"useopen", "usetab", "split", NULL};
-static char *(p_debug_values[]) = {"msg", "beep", NULL};
+static char *(p_debug_values[]) = {"msg", "throw", "beep", NULL};
 #ifdef FEAT_VERTSPLIT
 static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
 #endif
@@ -6188,7 +6197,7 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
     /* 'debug' */
     else if (varp == &p_debug)
     {
-	if (check_opt_strings(p_debug, p_debug_values, FALSE) != OK)
+	if (check_opt_strings(p_debug, p_debug_values, TRUE) != OK)
 	    errmsg = e_invarg;
     }
 
diff --git a/src/option.h b/src/option.h
index 39c03e181f..d512a2055f 100644
--- a/src/option.h
+++ b/src/option.h
@@ -508,6 +508,7 @@ EXTERN char_u	*p_go;		/* 'guioptions' */
 #endif
 #if defined(FEAT_GUI_TABLINE)
 EXTERN char_u	*p_gtl;		/* 'guitablabel' */
+EXTERN char_u	*p_gtt;		/* 'guitabtooltip' */
 #endif
 EXTERN char_u	*p_hf;		/* 'helpfile' */
 #ifdef FEAT_WINDOWS
diff --git a/src/po/it.po b/src/po/it.po
index 2673c63a73..22584cdcac 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -12,8 +12,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vim 7.0\n"
-"POT-Creation-Date: 2006-04-08 09:01+0200\n"
-"PO-Revision-Date:  2006-04-08 09:01+0200\n"
+"POT-Creation-Date: 2006-04-21 09:26+0200\n"
+"PO-Revision-Date:  2006-04-21 09:26+0200\n"
 "Last-Translator:   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "Language-Team:     Italian"
 "                   Antonio Colombo <azc100@gmail.com>"
@@ -494,6 +494,22 @@ msgstr "E723: Manca '}' a fine Dizionario: %s"
 msgid "E724: variable nested too deep for displaying"
 msgstr "E724: variabile troppo nidificata per la visualizzazione"
 
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Funzione sconosciuta: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: La funzione: %s richiede più argomenti"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: Uso di <SID> fuori dal contesto di uno script: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Chiamata di funzione dict in assenza di Dizionario: %s"
+
 msgid "E699: Too many arguments"
 msgstr "E699: Troppi argomenti"
 
@@ -2517,12 +2533,33 @@ msgstr "<finestra %d>"
 msgid "no such window"
 msgstr "finestra inesistente"
 
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ deve essere un'istanza di String"
+
 msgid ""
 "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E266: Spiacente, comando non disponibile, non riesco a caricare libreria "
 "programmi Ruby."
 
+msgid "E267: unexpected return"
+msgstr "E267: return imprevisto"
+
+msgid "E268: unexpected next"
+msgstr "E268: next imprevisto"
+
+msgid "E269: unexpected break"
+msgstr "E269: break imprevisto"
+
+msgid "E270: unexpected redo"
+msgstr "E270: redo imprevisto"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: retry fuori da clausola rescue"
+
+msgid "E272: unhandled exception"
+msgstr "E272: eccezione non gestita"
+
 #, c-format
 msgid "E273: unknown longjmp status %d"
 msgstr "E273: tipo sconosciuto di salto nel programma %d"
@@ -4232,9 +4269,6 @@ msgstr "ANCHOR_BUF_SIZE troppo piccolo."
 msgid "I/O ERROR"
 msgstr "ERRORE I/O"
 
-msgid "...(truncated)"
-msgstr "...(troncato)"
-
 msgid "Message"
 msgstr "Messaggio"
 
@@ -4660,6 +4694,16 @@ msgstr "E388: Non sono riuscito a trovare la definizione"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Non sono riuscito a trovare il modello"
 
+#, c-format
+msgid ""
+"\n"
+"# Last %sSearch Pattern:\n"
+"~"
+msgstr ""
+"\n"
+"# Ult. %sEspressione di Ricerca:\n"
+"~"
+
 msgid "E759: Format error in spell file"
 msgstr "E759: Errore di formato nel file ortografico"
 
@@ -4739,7 +4783,7 @@ msgid ""
 "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
 "%d"
 msgstr ""
-"Definire COMPOUNDFORBIDFLAG dop l'elemento PFX potrebbe dare risultati "
+"Definire COMPOUNDFORBIDFLAG dopo l'elemento PFX potrebbe dare risultati "
 "errati in %s linea %d"
 
 #, c-format
@@ -4747,7 +4791,7 @@ msgid ""
 "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
 "%d"
 msgstr ""
-"Definire COMPOUNDPERMITFLAG dop l'elemento PFX potrebbe dare risultati "
+"Definire COMPOUNDPERMITFLAG dopo l'elemento PFX potrebbe dare risultati "
 "errati in %s linea %d"
 
 #, c-format
@@ -5380,6 +5424,10 @@ msgstr "Nessuna modifica, Undo impossibile"
 msgid "number changes  time"
 msgstr "numero modif.   ora"
 
+#, c-format
+msgid "%ld seconds ago"
+msgstr "%ld secondi fa"
+
 msgid "E439: undo list corrupt"
 msgstr "E439: lista 'undo' non valida"
 
@@ -5686,6 +5734,9 @@ msgstr "ATTENZIONE: Trovato Windows 95/98/ME"
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "batti :help windows95<Enter>  per info al riguardo"
 
+msgid "Already only one window"
+msgstr "C'è già una finestra sola"
+
 msgid "E441: There is no preview window"
 msgstr "E441: Non c'è una finestra di pre-visualizzazione"
 
@@ -5698,9 +5749,6 @@ msgstr "E443: Non posso ruotare quando un'altra finestra 
 msgid "E444: Cannot close last window"
 msgstr "E444: Non riesco a chiudere l'ultima finestra"
 
-msgid "Already only one window"
-msgstr "C'è già una finestra sola"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: Altre finestre contengono modifiche"
 
diff --git a/src/po/zh_CN.UTF-8.po b/src/po/zh_CN.UTF-8.po
index de60cda76a..cb516e6098 100644
--- a/src/po/zh_CN.UTF-8.po
+++ b/src/po/zh_CN.UTF-8.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Original translations.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 找不到缓冲区 \"%s\""
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: 缓冲区 \"%s\" 不在 diff 模式"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: 意外地改变了缓冲区"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: 复合字符(digraph)中不能使用 Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " 关键字补全 (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X 模式 (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X 模式 (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " 整行补全 (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 用户自定义补全 (^U^N^P)"
 msgid " Omni completion (^O^N^P)"
 msgstr " 全能补全 (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " 拼写建议 (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " 拼写建议 (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " 关键字局部补全 (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 中缺少逗号: %s"
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary 缺少结束符 '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: 变量嵌套过深"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: 变量嵌套过深无法显示"
 
 msgid "E699: Too many arguments"
 msgstr "E699: 参数过多"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() 的调用次数多于 inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: 不允许的范围"
+msgid "E786: Range not allowed"
+msgstr "E786: 不允许的范围"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() 的类型无效"
@@ -560,9 +566,8 @@ msgstr "E655: 符号连接过多(循环?)"
 msgid "E258: Unable to send to client"
 msgstr "E258: 无法发送到客户端"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort 比较函数失败"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort 比较函数失败"
 
 msgid "(Invalid)"
 msgstr "(无效)"
@@ -611,9 +616,8 @@ msgstr "未知"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: 无法改变 %s 的值"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: 变量嵌套过深"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: 变量嵌套过深无法复制"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t最近修改于 "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "进入调试模式。输入 \"cont\" 继续运行。"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "第 %ld 行: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "命令: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "断点 \"%s%s\" 第 %ld 行"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: 找不到断点: %s"
-
-msgid "No breakpoints defined"
-msgstr "没有定义断点"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  第 %ld 行"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: 请先使用 :profile start <fname>"
-
-msgid "Save As"
-msgstr "另存为"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "将改变保存到 \"%s\" 吗?"
-
-msgid "Untitled"
-msgstr "未命名"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: 缓冲区 \"%s\" 已修改但尚未保存"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "警告: 意外地进入了其它缓冲区 (请检查自动命令)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: 只有一个文件可编辑"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: 无法切换,已是第一个文件"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: 无法切换,已是最后一个文件"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: 不支持编译器: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "正在查找 \"%s\",在 \"%s\" 中"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "正在查找 \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "在 'runtimepath' 中找不到 \"%s\""
-
-msgid "Source Vim script"
-msgstr "执行 Vim 脚本"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "不能执行目录: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "不能执行 \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "第 %ld 行: 不能执行 \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "执行 \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "第 %ld 行: 执行 \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "结束执行 %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-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"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: 在脚本文件外使用了 :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: 在脚本文件外使用了 :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "当前的 %s语言: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: 不能设定语言为 \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  十六进制 %02x,  八进制 %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 自动命令不可以改变当前缓冲区"
 msgid "[No write since last change]\n"
 msgstr "[已修改但尚未保存]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s 位于行: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 无法写入 viminfo 文件 %s!"
 msgid "Writing viminfo file \"%s\""
 msgstr "写入 viminfo 文件 \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# 这个 viminfo 文件是由 vim %s 生成的。\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# 这个 viminfo 文件是由 Vim %s 生成的。\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# 如果要自行修改请特别小心!\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' 在此文件建立时的值\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' 在此文件建立时的值\n"
 
 msgid "Illegal starting char"
 msgstr "无效的启动字符"
 
+msgid "Save As"
+msgstr "另存为"
+
 msgid "Write partial file?"
 msgstr "要写入部分文件吗?"
 
@@ -987,8 +864,8 @@ msgstr "E148: global 缺少正则表达式"
 msgid "Pattern found in every line: %s"
 msgstr "每行都匹配表达式: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (不支持)"
 msgid "[Deleted]"
 msgstr "[已删除]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "进入调试模式。输入 \"cont\" 继续运行。"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "第 %ld 行: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "命令: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "断点 \"%s%s\" 第 %ld 行"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: 找不到断点: %s"
+
+msgid "No breakpoints defined"
+msgstr "没有定义断点"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  第 %ld 行"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: 请先使用 :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "将改变保存到 \"%s\" 吗?"
+
+msgid "Untitled"
+msgstr "未命名"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: 缓冲区 \"%s\" 已修改但尚未保存"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "警告: 意外地进入了其它缓冲区 (请检查自动命令)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: 只有一个文件可编辑"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: 无法切换,已是第一个文件"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: 无法切换,已是最后一个文件"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: 不支持编译器: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "正在查找 \"%s\",在 \"%s\" 中"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "正在查找 \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "在 'runtimepath' 中找不到 \"%s\""
+
+msgid "Source Vim script"
+msgstr "执行 Vim 脚本"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "不能执行目录: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "不能执行 \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "第 %ld 行: 不能执行 \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "执行 \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "第 %ld 行: 执行 \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "结束执行 %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+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"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: 在脚本文件外使用了 :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: 在脚本文件外使用了 :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "当前的 %s语言: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: 不能设定语言为 \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "进入 Ex 模式。输入 \"visual\" 回到正常模式。"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 补全需要一个函数参数"
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: 找不到颜色主题 %s"
+msgstr "E185: 找不到配色方案 %s"
 
 msgid "Greetings, Vim user!"
 msgstr "您好,Vim 用户!"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry 缺少对应的 :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction 不在函数内"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: 目前不允许编辑别的缓冲区"
+
 msgid "tagname"
 msgstr "tag 名"
 
@@ -1400,8 +1407,8 @@ msgstr " 类型 文件\n"
 msgid "'history' option is zero"
 msgstr "选项 'history' 为零"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s 历史记录 (从新到旧):\n"
 
-msgid "Command Line"
-msgstr "命令行"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "命令行"
 
-msgid "Search String"
-msgstr "查找字符串"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "查找字符串"
 
-msgid "Expression"
-msgstr "表达式"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "表达式"
 
-msgid "Input Line"
-msgstr "输入行"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "输入行"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar 超过命令长度"
@@ -1550,9 +1565,8 @@ msgstr "E509: 无法创建备份文件 (请加 ! 强制执行)"
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: 无法生成备份文件 (请加 ! 强制执行)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork 会消失 (请加 ! 强制执行)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork 会丢失 (请加 ! 强制执行)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: 找不到用于写入的临时文件"
@@ -1836,6 +1850,29 @@ msgstr "找不到映射"
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: 无效的模式"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: 无法启动图形界面"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: 无法读取文件 \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: 无法启动图形界面,找不到有效的字体"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 无效的 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' 的值无效"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: 无法分配颜色 %s"
+
+msgid "No match at cursor, finding next"
+msgstr "在光标处没有匹配,查找下一个"
+
 msgid "<cannot open> "
 msgstr "<无法打开>"
 
@@ -1858,38 +1895,15 @@ msgstr "确定"
 msgid "Cancel"
 msgstr "取消"
 
-msgid "Vim dialog"
-msgstr "Vim 对话框"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "滚动条部件: 无法获取滑块图像的几何大小"
 
+msgid "Vim dialog"
+msgstr "Vim 对话框"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: 不能同时使用消息和回调函数来创建 BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: 无法启动图形界面"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: 不能读取文件 \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: 无法启动图形界面,找不到有效的字体"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: 无效的 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' 的值无效"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: 无法分配颜色 %s"
-
-msgid "No match at cursor, finding next"
-msgstr "在光标处没有匹配,查找下一个"
-
 msgid "Vim dialog..."
 msgstr "Vim 对话框..."
 
@@ -2027,6 +2041,12 @@ msgstr "E243: 不支持的参数: \"-%s\";请使用 OLE 版本。"
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: 无法在 MDI 应用程序中打开窗口"
 
+msgid "Close tab"
+msgstr "关闭标签"
+
+msgid "Open tab..."
+msgstr "打开标签..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "查找字符串 (使用 '\\\\' 来查找 '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "字体1的宽度: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "不正确的字体集(Fontset)"
+msgid "Invalid font specification"
+msgstr "指定了无效的字体"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "取消(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "找不到匹配的项"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "字体选择"
+msgid "Vim - Font Selector"
+msgstr "Vim - 字体选择器"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "名称:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "记录中"
+msgid "Encoding:"
+msgstr "编码:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "字体1: %s\n"
+msgid "Font:"
+msgstr "字体:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "风格:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "尺寸:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata 错误"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\t在 <display> 上运行 vim (也可用 --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\t设置用于区分主窗口的窗口角色名"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\t在另一个 GTK 部件中打开 Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t在另一个 GTK 部件中打开 Vim"
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\t在父应用程序中打开 Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "没有 display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 发送失败。尝试本地执行\n"
 msgid "%d of %d edited"
 msgstr "%d 中 %d 已编辑"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "发送表达式失败。\n"
+msgid "No display: Send expression failed.\n"
+msgstr "没有 display: 发送表达式失败。\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": 发送表达式失败。\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 警告: 原始文件可能已被修改"
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: 无法从 %s 读取块 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???缺少了太多行"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???行数错误"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???缺少了太多行"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???空的块"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???行数错误"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???空的块"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???缺少了一些行"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???缺少了一些行"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: 块 1 ID 错误 (%s 不是交换文件?)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???缺少块"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? 从这里到 ???END 的行可能已混乱"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???缺少块"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? 从这里到 ???END 的行可能已被插入/删除过"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? 从这里到 ???END 的行可能已混乱"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? 从这里到 ???END 的行可能已被插入/删除过"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: 恢复已被中断"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: 在路径中找不到更多的文件 \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "无法连接到 Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "无法连接到 Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans 连接信息文件中错误的访问模式: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "从 Netbeans 套接字读取"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: 未知的寄存器类型 %d"
 msgid "%ld Cols; "
 msgstr "%ld 列; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "选择了 %s%ld/%ld 行; %ld/%ld 字(Word); %ld/%ld 字符(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字节"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "选择了 %s%ld/%ld 行; %ld/%ld 字(Word); %ld/%ld 字符(Chars); %ld/%ld"
+msgstr "选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字符; %ld/%ld 个字节"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "列 %s/%s; 行 %ld/%ld; 字(Word) %ld/%ld; 字符(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字节"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"列 %s/%s; 行 %ld/%ld; 字(Word) %ld/%ld; 字符(Char) %ld/%ld; 字符(Byte) %ld/%ld"
+"第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字符; 第 %ld/%ld 个"
+"字节"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE 太小"
 msgid "I/O ERROR"
 msgstr "I/O 错误"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "消息"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' 不是 80, 不能执行外部命令"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: 不能选择此打印机"
+msgstr "E237: 选择打印机失败"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 打印错误: %s"
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "已打印: '%s'"
+msgstr "打印 '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: 不正确的字符 '%c' 出现在字体名称 \"%s\" 内"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: 不正确的 'filetype' 选项 - 使用纯文字模式"
+msgstr "E366: 不正确的 'osfiletype' 选项 - 使用纯文字模式"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: 双重信号, 退出中\n"
+msgstr "Vim: 双重信号,退出中\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: 拦截到信号(signal) %s\n"
+msgstr "Vim: 拦截到致命信号(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: 拦截到致命的信号(deadly signale)\n"
+msgstr "Vim: 拦截到致命信号(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "打开 X Window 用时 %ld 秒"
+msgstr "打开 X display 用时 %ld 秒"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X 错误\n"
 
 msgid "Testing the X display failed"
-msgstr "测试 X Window 失败"
+msgstr "测试 X display 失败"
 
 msgid "Opening the X display timed out"
-msgstr "打开 X Window 超时"
+msgstr "打开 X display 超时"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"不能执行 shell"
+"无法执行 shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"不能执行 shell sh\n"
+"无法执行 shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"不能建立管道\n"
+"无法建立管道\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"不能 fork\n"
+"无法 fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "命令已结束\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "显示连接"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP 丢失了到 ICE 的连接"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "打开 X Window 失败"
+msgstr "打开 X display 失败"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP 处理 save-yourself 请求"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "没有 cscope 连接"
+msgid "XSMP opening connection"
+msgstr "XSMP 打开连接"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE 连接监视失败"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection 调用失败: %s"
 
 msgid "At line"
 msgstr "在行号 "
 
 msgid "Could not load vim32.dll!"
-msgstr "不能加载 vim32.dll!"
+msgstr "无法加载 vim32.dll!"
 
 msgid "VIM Error"
 msgstr "VIM 错误"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "不能修正函数指针到 DLL!"
+msgstr "无法修正到 DLL 的函数指针!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell 返回值 %d"
+msgstr "Shell 返回 %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"在你的 $PATH 中找不到 VIMRUN.EXE.\n"
-"外部命令执行完毕后将不会暂停.\n"
+"在你的 $PATH 中找不到 VIMRUN.EXE。\n"
+"外部命令执行完毕后将不会暂停。\n"
 "进一步说明请见 :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "错误列表 %d / %d;共 %d 个错误"
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: 无法写入,已设定选项 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: 缺少文件名或模式无效"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  找不到"
 msgid "Scanning included file: %s"
 msgstr "查找包含文件: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "查找包含文件: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "查找包含的文件 %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: 当前行匹配"
@@ -4622,339 +4634,339 @@ msgstr "E388: 找不到定义"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: 找不到 pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: 交换文件写入错误"
+msgid "E759: Format error in spell file"
+msgstr "E759: 拼写文件格式错误"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: 不能选择此打印机"
+msgid "E758: Truncated spell file"
+msgstr "E758: 已截断的拼写文件"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" 中断点: 第 %ld 行"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s 第 %d 行,多余的后续字符: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s 第 %d 行,附加项名字太长: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag 文件 \"%s\" 格式错误"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: 附加文件 FOL、LOW 或 UPP 中格式错误"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL、LOW 或 UPP 中字符超出范围"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "压缩单词树……"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: 拼写检查未启用"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "警告: 找不到单词列表 \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "使用交换文件 \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "读取拼写文件 \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s 看起来不像是 Vim 交换文件"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: 这看起来不像是拼写文件"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: 还有 %ld 个文件未编辑"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: 旧版本的拼写文件,需要更新"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: 为更高版本的 Vim 所用的拼写文件"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: 交换文件写入错误"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: 拼写文件中存在不支持的节"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "不支持该选项"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "警告: 区域 %s 不支持"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "查找 tag 文件 \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "读取附加文件 %s ……"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "单词 %s 转换失败,第 %d 行: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "不支持 %s 中的转换: 从 %s 到 %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "不支持该选项"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "不支持 %s 中的转换"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "不正确的服务器 id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s 第 %d 行,FLAG 的值无效: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s 第 %d 行,在使用标志后出现 FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDWORDMAX 值: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDMIN 值: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDSYLMAX 值: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: 标签(tag) \"%s\" 在文件 %s 里重复出现多次"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 CHECKCOMPOUNDPATTERN 值: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s 第 %d 行,在连续的附加块中出现不同的组合标志: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的附加项: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" 中断点: 第 %ld 行"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s 第 %d 行,附加项被 BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST 使"
+"用: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s 第 %d 行,此处需要 Y 或 N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的条件: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s 第 %d 行,此处需要 REP(SAL) 计数"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s 第 %d 行,此处需要 MAP 计数"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s 第 %d 行,MAP 中存在重复的字符"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s 第 %d 行,无法识别或重复的项: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s 中缺少 FOL/LOW/UPP 行"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "太多编辑参数"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "在没有 SYLLABLE 的情况下使用了 COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "太多编辑参数"
+msgid "Too many postponed prefixes"
+msgstr "太多延迟前缀"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "太多组合标志"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "太多延迟前缀和/或组合标志"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s 中缺少 SOFO%s 行"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s 同时出现 SQL 和 SOFO 行"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s 第 %d 行,标志不是数字: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s 第 %d 行,无效的标志: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s 的值与另一个 .aff 文件中使用的值不相同"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "扫描字典: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "读取字典文件 %s ……"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s 中没有单词计数"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "第 %6d 行,第 %6d 个单词 - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "每一行都找不到模式: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的单词: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s 第 %d 行,首次重复的单词: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "存在 %d 个重复的单词,在 %s 中"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "忽略了含有非 ASCII 字符的 %d 个单词,在 %s 中"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "从标准输入读..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "读取单词文件 %s ……"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,单词后的 /encoding= 行已被忽略: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的 /regions= 行已被忽略: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s 第 %d 行,太多区域: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,/ 行已被忽略: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "不正确的服务器 id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s 第 %d 行,无效的区域号: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s 第 %d 行,不可识别的标志: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "忽略了含有非 ASCII 字符的 %d 个单词"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "压缩了 %d/%d 个节点;剩余 %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "读取拼写文件……"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "正在 soundfolding……"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding 后的单词数: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "单词总数: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "写入 viminfo 文件 \"%s\" 中"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "写入建议文件 %s ……"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "估计运行时内存用量: %d 字节"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: 输出文件名不能含有区域名"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: 最多只支持 8 个区域"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: 不正确的表达式: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s 出现无效的范围"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "警告: 同时指定了 compounding 和 NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "写入 viminfo 文件 \"%s\" 中"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "写入拼写文件 %s ……"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "向下"
+msgid "Done!"
+msgstr "完成!"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' 没有 %ld 项"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "从 %s 中删除了单词"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "向 %s 中添加了单词"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: 拼写文件之间的字符不相同"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "抱歉,没有建议"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "抱歉,只有 %ld 条建议"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "将改变保存到 \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "将 \"%.*s\" 改为:"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: 没有前一个查找命令"
+msgid "E752: No previous spell replacement"
+msgstr "E752: 之前没有拼写替换"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [菜单] 找不到 %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: 找不到: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s 看起来不像是 Vim 交换文件"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: 看起来不像是 .sug 文件: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: 需要文件名称"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: 缺少 ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: 缺少 ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 不正确的组名: %s"
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: 不正确的 :syntax 子命令: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: 加载 syncolor.vim 时出现嵌套循环"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 无效的参数: %s"
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: 使用了太多不同的高亮度属性"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: 组名中存在不可显示字符"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: 命令名称不正确"
+msgid "W18: Invalid character in group name"
+msgstr "W18: 组名中含有无效字符"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: 已在 tag 堆栈底部"
@@ -5648,6 +5659,9 @@ msgstr "警告: 检测到 Windows 95/98/ME"
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "输入  :help windows95<Enter>  查看相关说明    "
 
+msgid "Already only one window"
+msgstr "已经只剩一个窗口了"
+
 msgid "E441: There is no preview window"
 msgstr "E441: 没有预览窗口"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 有其它分割窗口时不能旋转"
 msgid "E444: Cannot close last window"
 msgstr "E444: 不能关闭最后一个窗口"
 
-msgid "Already only one window"
-msgstr "已经只剩一个窗口了"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: 其它窗口有改变的内容"
 
@@ -6050,6 +6061,9 @@ msgstr "已查找到文件开头,再从结尾继续查找"
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "已查找到文件结尾,再从开头继续查找"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s 第 %d 行,使用 PFXPOSTPONE 时附加标志被忽略: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[未命名]"
 
diff --git a/src/po/zh_CN.cp936.po b/src/po/zh_CN.cp936.po
index dd4df46e5c..591839f40b 100644
--- a/src/po/zh_CN.cp936.po
+++ b/src/po/zh_CN.cp936.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Generated from zh_CN.po, DO NOT EDIT.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: »º³åÇø \"%s\" ²»ÔÚ diff ģʽ"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: ÒâÍâµØ¸Ä±äÁË»º³åÇø"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: ¸´ºÏ×Ö·û(digraph)Öв»ÄÜʹÓà Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö²¹È« (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " ÕûÐв¹È« (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 
 msgid " Omni completion (^O^N^P)"
 msgstr " È«Äܲ¹È« (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " ƴд½¨Òé (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " ƴд½¨Òé (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö¾Ö²¿²¹È« (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary ȱÉÙ½áÊø·û '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨ÏÔʾ"
 
 msgid "E699: Too many arguments"
 msgstr "E699: ²ÎÊý¹ý¶à"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() µÄµ÷ÓôÎÊý¶àÓÚ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: ²»ÔÊÐíµÄ·¶Î§"
+msgid "E786: Range not allowed"
+msgstr "E786: ²»ÔÊÐíµÄ·¶Î§"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() µÄÀàÐÍÎÞЧ"
@@ -560,9 +566,8 @@ msgstr "E655: 
 msgid "E258: Unable to send to client"
 msgstr "E258: ÎÞ·¨·¢Ë͵½¿Í»§¶Ë"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
 
 msgid "(Invalid)"
 msgstr "(ÎÞЧ)"
@@ -611,9 +616,8 @@ msgstr "δ֪"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: ÎÞ·¨¸Ä±ä %s µÄÖµ"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨¸´ÖÆ"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t×î½üÐÞ¸ÄÓÚ "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "µÚ %ld ÐÐ: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "ÃüÁî: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
-
-msgid "No breakpoints defined"
-msgstr "ûÓж¨Òå¶Ïµã"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  µÚ %ld ÐÐ"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
-
-msgid "Save As"
-msgstr "Áí´æÎª"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
-
-msgid "Untitled"
-msgstr "δÃüÃû"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
-
-msgid "Source Vim script"
-msgstr "Ö´ÐÐ Vim ½Å±¾"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "½áÊøÖ´ÐÐ %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-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"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  Ê®Áù½øÖÆ %02x,  °Ë½øÖÆ %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 
 msgid "[No write since last change]\n"
 msgstr "[ÒÑÐ޸ĵ«ÉÐδ±£´æ]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s λÓÚÐÐ: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 
 msgid "Writing viminfo file \"%s\""
 msgstr "дÈë viminfo Îļþ \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ vim %s Éú³ÉµÄ¡£\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ Vim %s Éú³ÉµÄ¡£\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# Èç¹ûÒª×ÔÐÐÐÞ¸ÄÇëÌØ±ðСÐÄ£¡\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
 
 msgid "Illegal starting char"
 msgstr "ÎÞЧµÄÆô¶¯×Ö·û"
 
+msgid "Save As"
+msgstr "Áí´æÎª"
+
 msgid "Write partial file?"
 msgstr "ҪдÈ벿·ÖÎļþÂð£¿"
 
@@ -987,8 +864,8 @@ msgstr "E148: global ȱ
 msgid "Pattern found in every line: %s"
 msgstr "ÿÐж¼Æ¥Åä±í´ïʽ: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (
 msgid "[Deleted]"
 msgstr "[ÒÑɾ³ý]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "µÚ %ld ÐÐ: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "ÃüÁî: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
+
+msgid "No breakpoints defined"
+msgstr "ûÓж¨Òå¶Ïµã"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  µÚ %ld ÐÐ"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
+
+msgid "Untitled"
+msgstr "δÃüÃû"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
+
+msgid "Source Vim script"
+msgstr "Ö´ÐÐ Vim ½Å±¾"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "½áÊøÖ´ÐÐ %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+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"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "½øÈë Ex ģʽ¡£ÊäÈë \"visual\" »Øµ½Õý³£Ä£Ê½¡£"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: ÕÒ²»µ½ÑÕÉ«Ö÷Ìâ %s"
+msgstr "E185: ÕÒ²»µ½ÅäÉ«·½°¸ %s"
 
 msgid "Greetings, Vim user!"
 msgstr "ÄúºÃ£¬Vim Óû§£¡"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry ȱ
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction ²»ÔÚº¯ÊýÄÚ"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Ŀǰ²»ÔÊÐí±à¼­±ðµÄ»º³åÇø"
+
 msgid "tagname"
 msgstr "tag Ãû"
 
@@ -1400,8 +1407,8 @@ msgstr " 
 msgid "'history' option is zero"
 msgstr "Ñ¡Ïî 'history' ΪÁã"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s ÀúÊ·¼Ç¼ (´Óе½¾É):\n"
 
-msgid "Command Line"
-msgstr "ÃüÁîÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "ÃüÁîÐÐ"
 
-msgid "Search String"
-msgstr "²éÕÒ×Ö·û´®"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "²éÕÒ×Ö·û´®"
 
-msgid "Expression"
-msgstr "±í´ïʽ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "±í´ïʽ"
 
-msgid "Input Line"
-msgstr "ÊäÈëÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "ÊäÈëÐÐ"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar ³¬¹ýÃüÁ¶È"
@@ -1550,9 +1565,8 @@ msgstr "E509: 
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: ÎÞ·¨Éú³É±¸·ÝÎļþ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork »áÏûʧ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork »á¶ªÊ§ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: ÕÒ²»µ½ÓÃÓÚдÈëµÄÁÙʱÎļþ"
@@ -1836,6 +1850,29 @@ msgstr "
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: ÎÞЧµÄģʽ"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: ÎÞ·¨¶ÁÈ¡Îļþ \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: ÎÞЧµÄ 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
+
+msgid "No match at cursor, finding next"
+msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
+
 msgid "<cannot open> "
 msgstr "<ÎÞ·¨´ò¿ª>"
 
@@ -1858,38 +1895,15 @@ msgstr "È·
 msgid "Cancel"
 msgstr "È¡Ïû"
 
-msgid "Vim dialog"
-msgstr "Vim ¶Ô»°¿ò"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "¹ö¶¯Ìõ²¿¼þ: ÎÞ·¨»ñÈ¡»¬¿éͼÏñµÄ¼¸ºÎ´óС"
 
+msgid "Vim dialog"
+msgstr "Vim ¶Ô»°¿ò"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: ²»ÄÜͬʱʹÓÃÏûÏ¢ºÍ»Øµ÷º¯ÊýÀ´´´½¨ BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: ²»ÄܶÁÈ¡Îļþ \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: ÎÞЧµÄ 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
-
-msgid "No match at cursor, finding next"
-msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
-
 msgid "Vim dialog..."
 msgstr "Vim ¶Ô»°¿ò..."
 
@@ -2027,6 +2041,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 "²éÕÒ×Ö·û´® (ʹÓà '\\\\' À´²éÕÒ '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "×ÖÌå1µÄ¿í¶È: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "²»ÕýÈ·µÄ×ÖÌ弯(Fontset)"
+msgid "Invalid font specification"
+msgstr "Ö¸¶¨ÁËÎÞЧµÄ×ÖÌå"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "È¡Ïû(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "ÕÒ²»µ½Æ¥ÅäµÄÏî"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "×ÖÌåÑ¡Ôñ"
+msgid "Vim - Font Selector"
+msgstr "Vim - ×ÖÌåÑ¡ÔñÆ÷"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "Ãû³Æ:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "¼Ç¼ÖÐ"
+msgid "Encoding:"
+msgstr "±àÂë:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "×ÖÌå1: %s\n"
+msgid "Font:"
+msgstr "×ÖÌå:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "·ç¸ñ:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "³ß´ç:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata ´íÎó"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\tÔÚ <display> ÉÏÔËÐÐ vim (Ò²¿ÉÓà --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tÉèÖÃÓÃÓÚÇø·ÖÖ÷´°¿ÚµÄ´°¿Ú½ÇÉ«Ãû"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tÔÚÁíÒ»¸ö GTK ²¿¼þÖдò¿ª Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\tÔÚ¸¸Ó¦ÓóÌÐòÖдò¿ª Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "ûÓÐ display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 
 msgid "%d of %d edited"
 msgstr "%d ÖÐ %d Òѱ༭"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "·¢Ëͱí´ïʽʧ°Ü¡£\n"
+msgid "No display: Send expression failed.\n"
+msgstr "ûÓÐ display: ·¢Ëͱí´ïʽʧ°Ü¡£\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": ·¢Ëͱí´ïʽʧ°Ü¡£\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: ÎÞ·¨´Ó %s ¶ÁÈ¡¿é 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???ÐÐÊý´íÎó"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???¿ÕµÄ¿é"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???ÐÐÊý´íÎó"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???¿ÕµÄ¿é"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???ȱÉÙÁËһЩÐÐ"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???ȱÉÙÁËһЩÐÐ"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: ¿é 1 ID ´íÎó (%s ²»Êǽ»»»Îļþ£¿)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???ȱÉÙ¿é"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???ȱÉÙ¿é"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: »Ö¸´Òѱ»ÖжÏ"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: ÔÚ·¾¶ÖÐÕÒ²»µ½¸ü¶àµÄÎļþ \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans Á¬½ÓÐÅÏ¢ÎļþÖдíÎóµÄ·ÃÎÊģʽ: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "´Ó Netbeans Ì×½Ó×Ö¶ÁÈ¡"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: δ֪
 msgid "%ld Cols; "
 msgstr "%ld ÁÐ; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Chars); %ld/%ld"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö·û; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Char) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+"µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö·û; µÚ %ld/%ld ¸ö"
+"×Ö½Ú"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE ̫С"
 msgid "I/O ERROR"
 msgstr "I/O ´íÎó"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "ÏûÏ¢"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ²»ÊÇ 80, ²»ÄÜÖ´ÐÐÍⲿÃüÁî"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgstr "E237: Ñ¡Ôñ´òÓ¡»úʧ°Ü"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "ÒÑ´òÓ¡: '%s'"
+msgstr "´òÓ¡ '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: ²»ÕýÈ·µÄ×Ö·û '%c' ³öÏÖÔÚ×ÖÌåÃû³Æ \"%s\" ÄÚ"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: ²»ÕýÈ·µÄ 'filetype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
+msgstr "E366: ²»ÕýÈ·µÄ 'osfiletype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: Ë«ÖØÐźÅ, Í˳öÖÐ\n"
+msgstr "Vim: Ë«ÖØÐźţ¬Í˳öÖÐ\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: À¹½Øµ½ÐźÅ(signal) %s\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: À¹½Øµ½ÖÂÃüµÄÐźÅ(deadly signale)\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "´ò¿ª X Window ÓÃʱ %ld Ãë"
+msgstr "´ò¿ª X display ÓÃʱ %ld Ãë"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X ´íÎó\n"
 
 msgid "Testing the X display failed"
-msgstr "²âÊÔ X Window ʧ°Ü"
+msgstr "²âÊÔ X display ʧ°Ü"
 
 msgid "Opening the X display timed out"
-msgstr "´ò¿ª X Window ³¬Ê±"
+msgstr "´ò¿ª X display ³¬Ê±"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell"
+"ÎÞ·¨Ö´ÐÐ shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell sh\n"
+"ÎÞ·¨Ö´ÐÐ shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"²»Äܽ¨Á¢¹ÜµÀ\n"
+"ÎÞ·¨½¨Á¢¹ÜµÀ\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"²»ÄÜ fork\n"
+"ÎÞ·¨ fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "ÃüÁîÒѽáÊø\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "ÏÔʾÁ¬½Ó"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP ¶ªÊ§Á˵½ ICE µÄÁ¬½Ó"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "´ò¿ª X Window ʧ°Ü"
+msgstr "´ò¿ª X display ʧ°Ü"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP ´¦Àí save-yourself ÇëÇó"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "ûÓÐ cscope Á¬½Ó"
+msgid "XSMP opening connection"
+msgstr "XSMP ´ò¿ªÁ¬½Ó"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Á¬½Ó¼àÊÓʧ°Ü"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection µ÷ÓÃʧ°Ü: %s"
 
 msgid "At line"
 msgstr "ÔÚÐкŠ"
 
 msgid "Could not load vim32.dll!"
-msgstr "²»ÄܼÓÔØ vim32.dll£¡"
+msgstr "ÎÞ·¨¼ÓÔØ vim32.dll£¡"
 
 msgid "VIM Error"
 msgstr "VIM ´íÎó"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "²»ÄÜÐÞÕýº¯ÊýÖ¸Õëµ½ DLL!"
+msgstr "ÎÞ·¨ÐÞÕýµ½ DLL µÄº¯ÊýÖ¸Õë!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell ·µ»ØÖµ %d"
+msgstr "Shell ·µ»Ø %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE.\n"
-"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£.\n"
+"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE¡£\n"
+"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£¡£\n"
 "½øÒ»²½ËµÃ÷Çë¼û :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: ÎÞ·¨Ð´È룬ÒÑÉ趨ѡÏî 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: ȱÉÙÎļþÃû»òģʽÎÞЧ"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  
 msgid "Scanning included file: %s"
 msgstr "²éÕÒ°üº¬Îļþ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "²éÕÒ°üº¬Îļþ: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "²éÕÒ°üº¬µÄÎļþ %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: µ±Ç°ÐÐÆ¥Åä"
@@ -4622,339 +4634,339 @@ msgstr "E388: 
 msgid "E389: Couldn't find pattern"
 msgstr "E389: ÕÒ²»µ½ pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E759: Format error in spell file"
+msgstr "E759: ƴдÎļþ¸ñʽ´íÎó"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgid "E758: Truncated spell file"
+msgstr "E758: ÒÑ½Ø¶ÏµÄÆ´Ð´Îļþ"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¶àÓàµÄºóÐø×Ö·û: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¸½¼ÓÏîÃû×ÖÌ«³¤: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag Îļþ \"%s\" ¸ñʽ´íÎó"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: ¸½¼ÓÎļþ FOL¡¢LOW »ò UPP Öиñʽ´íÎó"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL¡¢LOW »ò UPP ÖÐ×Ö·û³¬³ö·¶Î§"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "ѹËõµ¥´ÊÊ÷¡­¡­"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: ƴд¼ì²éδÆôÓÃ"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "¾¯¸æ: ÕÒ²»µ½µ¥´ÊÁбí \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "ʹÓý»»»Îļþ \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "¶ÁȡƴдÎļþ \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Õâ¿´ÆðÀ´²»ÏñÊÇÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: »¹ÓÐ %ld ¸öÎļþδ±à¼­"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: ¾É°æ±¾µÄƴдÎļþ£¬ÐèÒª¸üÐÂ"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Ϊ¸ü¸ß°æ±¾µÄ Vim ËùÓÃµÄÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: ƴдÎļþÖдæÔÚ²»Ö§³ÖµÄ½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "¾¯¸æ: ÇøÓò %s ²»Ö§³Ö"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "²éÕÒ tag Îļþ \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "¶ÁÈ¡¸½¼ÓÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "µ¥´Ê %s ת»»Ê§°Ü£¬µÚ %d ÐÐ: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "²»Ö§³Ö %s ÖеÄת»»: ´Ó %s µ½ %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "²»Ö§³Ö %s ÖеÄת»»"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬FLAG µÄÖµÎÞЧ: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚʹÓñêÖ¾ºó³öÏÖ FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDWORDMAX Öµ: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDMIN Öµ: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDSYLMAX Öµ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: ±êÇ©(tag) \"%s\" ÔÚÎļþ %s ÀïÖØ¸´³öÏÖ¶à´Î"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ CHECKCOMPOUNDPATTERN Öµ: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚÁ¬ÐøµÄ¸½¼Ó¿éÖгöÏÖ²»Í¬µÄ×éºÏ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ¸½¼ÓÏî: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s µÚ %d ÐУ¬¸½¼ÓÏî±» BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ"
+"ÓÃ: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª Y »ò N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄÌõ¼þ: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª REP(SAL) ¼ÆÊý"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª MAP ¼ÆÊý"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s µÚ %d ÐУ¬MAP ÖдæÔÚÖØ¸´µÄ×Ö·û"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞ·¨Ê¶±ð»òÖØ¸´µÄÏî: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s ÖÐȱÉÙ FOL/LOW/UPP ÐÐ"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "ÔÚûÓÐ SYLLABLE µÄÇé¿öÏÂʹÓÃÁË COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "Too many postponed prefixes"
+msgstr "Ì«¶àÑÓ³Ùǰ׺"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "Ì«¶à×éºÏ±êÖ¾"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Ì«¶àÑÓ³Ùǰ׺ºÍ/»ò×éºÏ±êÖ¾"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s ÖÐȱÉÙ SOFO%s ÐÐ"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s ͬʱ³öÏÖ SQL ºÍ SOFO ÐÐ"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬±êÖ¾²»ÊÇÊý×Ö: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s µÄÖµÓëÁíÒ»¸ö .aff ÎļþÖÐʹÓõÄÖµ²»Ïàͬ"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "ɨÃè×Öµä: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "¶ÁÈ¡×ÖµäÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s ÖÐûÓе¥´Ê¼ÆÊý"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "µÚ %6d ÐУ¬µÚ %6d ¸öµ¥´Ê - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "ÿһÐж¼ÕÒ²»µ½Ä£Ê½: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ê×´ÎÖØ¸´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "´æÔÚ %d ¸öÖØ¸´µÄµ¥´Ê£¬ÔÚ %s ÖÐ"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê£¬ÔÚ %s ÖÐ"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "´Ó±ê×¼ÊäÈë¶Á..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "¶ÁÈ¡µ¥´ÊÎļþ %s ¡­¡­"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬µ¥´ÊºóµÄ /encoding= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ /regions= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ì«¶àÇøÓò: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬/ ÐÐÒѱ»ºöÂÔ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄÇøÓòºÅ: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬²»¿Éʶ±ðµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "ѹËõÁË %d/%d ¸ö½Úµã£»Ê£Óà %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "¶ÁȡƴдÎļþ¡­¡­"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "ÕýÔÚ soundfolding¡­¡­"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding ºóµÄµ¥´ÊÊý: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "µ¥´Ê×ÜÊý: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "дÈ뽨ÒéÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "¹À¼ÆÔËÐÐʱÄÚ´æÓÃÁ¿: %d ×Ö½Ú"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Êä³öÎļþÃû²»Äܺ¬ÓÐÇøÓòÃû"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: ×î¶àÖ»Ö§³Ö 8 ¸öÇøÓò"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: ²»ÕýÈ·µÄ±í´ïʽ: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s ³öÏÖÎÞЧµÄ·¶Î§"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "¾¯¸æ: ͬʱָ¶¨ÁË compounding ºÍ NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "дÈëÆ´Ð´Îļþ %s ¡­¡­"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "ÏòÏÂ"
+msgid "Done!"
+msgstr "Íê³É£¡"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ûÓÐ %ld Ïî"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "´Ó %s ÖÐɾ³ýÁ˵¥´Ê"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "Ïò %s ÖÐÌí¼ÓÁ˵¥´Ê"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: ƴдÎļþÖ®¼äµÄ×Ö·û²»Ïàͬ"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "±§Ç¸£¬Ã»Óн¨Òé"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "±§Ç¸£¬Ö»ÓÐ %ld Ìõ½¨Òé"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "½«¸Ä±ä±£´æµ½ \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "½« \"%.*s\" ¸ÄΪ£º"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: ûÓÐǰһ¸ö²éÕÒÃüÁî"
+msgid "E752: No previous spell replacement"
+msgstr "E752: ֮ǰûÓÐÆ´Ð´Ìæ»»"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [²Ëµ¥] ÕÒ²»µ½ %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: ÕÒ²»µ½: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: ¿´ÆðÀ´²»ÏñÊÇ .sug Îļþ: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: ÐèÒªÎļþÃû³Æ"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: ȱÉÙ ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: ȱÉÙ ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: ²»ÕýÈ·µÄ :syntax ×ÓÃüÁî: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: ¼ÓÔØ syncolor.vim ʱ³öÏÖǶÌ×Ñ­»·"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: ʹÓÃÁËÌ«¶à²»Í¬µÄ¸ßÁÁ¶ÈÊôÐÔ"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: ×éÃûÖдæÔÚ²»¿ÉÏÔʾ×Ö·û"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: ÃüÁîÃû³Æ²»ÕýÈ·"
+msgid "W18: Invalid character in group name"
+msgstr "W18: ×éÃûÖк¬ÓÐÎÞЧ×Ö·û"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: ÒÑÔÚ tag ¶ÑÕ»µ×²¿"
@@ -5648,6 +5659,9 @@ msgstr "
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "ÊäÈë  :help windows95<Enter>  ²é¿´Ïà¹ØËµÃ÷    "
 
+msgid "Already only one window"
+msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
+
 msgid "E441: There is no preview window"
 msgstr "E441: ûÓÐÔ¤ÀÀ´°¿Ú"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 
 msgid "E444: Cannot close last window"
 msgstr "E444: ²»ÄܹرÕ×îºóÒ»¸ö´°¿Ú"
 
-msgid "Already only one window"
-msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: ÆäËü´°¿ÚÓиıäµÄÄÚÈÝ"
 
@@ -6050,6 +6061,9 @@ msgstr "
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "ÒѲéÕÒµ½Îļþ½á⣬ÔÙ´Ó¿ªÍ·¼ÌÐø²éÕÒ"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s µÚ %d ÐУ¬Ê¹Óà PFXPOSTPONE ʱ¸½¼Ó±êÖ¾±»ºöÂÔ: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[δÃüÃû]"
 
diff --git a/src/po/zh_CN.po b/src/po/zh_CN.po
index b77b45e2ac..3d3ab62856 100644
--- a/src/po/zh_CN.po
+++ b/src/po/zh_CN.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Original translations.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: »º³åÇø \"%s\" ²»ÔÚ diff ģʽ"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: ÒâÍâµØ¸Ä±äÁË»º³åÇø"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: ¸´ºÏ×Ö·û(digraph)Öв»ÄÜʹÓà Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö²¹È« (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " ÕûÐв¹È« (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 
 msgid " Omni completion (^O^N^P)"
 msgstr " È«Äܲ¹È« (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " ƴд½¨Òé (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " ƴд½¨Òé (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö¾Ö²¿²¹È« (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary ȱÉÙ½áÊø·û '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨ÏÔʾ"
 
 msgid "E699: Too many arguments"
 msgstr "E699: ²ÎÊý¹ý¶à"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() µÄµ÷ÓôÎÊý¶àÓÚ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: ²»ÔÊÐíµÄ·¶Î§"
+msgid "E786: Range not allowed"
+msgstr "E786: ²»ÔÊÐíµÄ·¶Î§"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() µÄÀàÐÍÎÞЧ"
@@ -560,9 +566,8 @@ msgstr "E655: 
 msgid "E258: Unable to send to client"
 msgstr "E258: ÎÞ·¨·¢Ë͵½¿Í»§¶Ë"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
 
 msgid "(Invalid)"
 msgstr "(ÎÞЧ)"
@@ -611,9 +616,8 @@ msgstr "δ֪"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: ÎÞ·¨¸Ä±ä %s µÄÖµ"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨¸´ÖÆ"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t×î½üÐÞ¸ÄÓÚ "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "µÚ %ld ÐÐ: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "ÃüÁî: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
-
-msgid "No breakpoints defined"
-msgstr "ûÓж¨Òå¶Ïµã"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  µÚ %ld ÐÐ"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
-
-msgid "Save As"
-msgstr "Áí´æÎª"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
-
-msgid "Untitled"
-msgstr "δÃüÃû"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
-
-msgid "Source Vim script"
-msgstr "Ö´ÐÐ Vim ½Å±¾"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "½áÊøÖ´ÐÐ %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-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"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  Ê®Áù½øÖÆ %02x,  °Ë½øÖÆ %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 
 msgid "[No write since last change]\n"
 msgstr "[ÒÑÐ޸ĵ«ÉÐδ±£´æ]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s λÓÚÐÐ: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 
 msgid "Writing viminfo file \"%s\""
 msgstr "дÈë viminfo Îļþ \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ vim %s Éú³ÉµÄ¡£\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ Vim %s Éú³ÉµÄ¡£\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# Èç¹ûÒª×ÔÐÐÐÞ¸ÄÇëÌØ±ðСÐÄ£¡\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
 
 msgid "Illegal starting char"
 msgstr "ÎÞЧµÄÆô¶¯×Ö·û"
 
+msgid "Save As"
+msgstr "Áí´æÎª"
+
 msgid "Write partial file?"
 msgstr "ҪдÈ벿·ÖÎļþÂð£¿"
 
@@ -987,8 +864,8 @@ msgstr "E148: global ȱ
 msgid "Pattern found in every line: %s"
 msgstr "ÿÐж¼Æ¥Åä±í´ïʽ: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (
 msgid "[Deleted]"
 msgstr "[ÒÑɾ³ý]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "µÚ %ld ÐÐ: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "ÃüÁî: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
+
+msgid "No breakpoints defined"
+msgstr "ûÓж¨Òå¶Ïµã"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  µÚ %ld ÐÐ"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
+
+msgid "Untitled"
+msgstr "δÃüÃû"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
+
+msgid "Source Vim script"
+msgstr "Ö´ÐÐ Vim ½Å±¾"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "½áÊøÖ´ÐÐ %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+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"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "½øÈë Ex ģʽ¡£ÊäÈë \"visual\" »Øµ½Õý³£Ä£Ê½¡£"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: ÕÒ²»µ½ÑÕÉ«Ö÷Ìâ %s"
+msgstr "E185: ÕÒ²»µ½ÅäÉ«·½°¸ %s"
 
 msgid "Greetings, Vim user!"
 msgstr "ÄúºÃ£¬Vim Óû§£¡"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry ȱ
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction ²»ÔÚº¯ÊýÄÚ"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Ŀǰ²»ÔÊÐí±à¼­±ðµÄ»º³åÇø"
+
 msgid "tagname"
 msgstr "tag Ãû"
 
@@ -1400,8 +1407,8 @@ msgstr " 
 msgid "'history' option is zero"
 msgstr "Ñ¡Ïî 'history' ΪÁã"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s ÀúÊ·¼Ç¼ (´Óе½¾É):\n"
 
-msgid "Command Line"
-msgstr "ÃüÁîÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "ÃüÁîÐÐ"
 
-msgid "Search String"
-msgstr "²éÕÒ×Ö·û´®"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "²éÕÒ×Ö·û´®"
 
-msgid "Expression"
-msgstr "±í´ïʽ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "±í´ïʽ"
 
-msgid "Input Line"
-msgstr "ÊäÈëÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "ÊäÈëÐÐ"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar ³¬¹ýÃüÁ¶È"
@@ -1550,9 +1565,8 @@ msgstr "E509: 
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: ÎÞ·¨Éú³É±¸·ÝÎļþ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork »áÏûʧ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork »á¶ªÊ§ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: ÕÒ²»µ½ÓÃÓÚдÈëµÄÁÙʱÎļþ"
@@ -1836,6 +1850,29 @@ msgstr "
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: ÎÞЧµÄģʽ"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: ÎÞ·¨¶ÁÈ¡Îļþ \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: ÎÞЧµÄ 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
+
+msgid "No match at cursor, finding next"
+msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
+
 msgid "<cannot open> "
 msgstr "<ÎÞ·¨´ò¿ª>"
 
@@ -1858,38 +1895,15 @@ msgstr "È·
 msgid "Cancel"
 msgstr "È¡Ïû"
 
-msgid "Vim dialog"
-msgstr "Vim ¶Ô»°¿ò"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "¹ö¶¯Ìõ²¿¼þ: ÎÞ·¨»ñÈ¡»¬¿éͼÏñµÄ¼¸ºÎ´óС"
 
+msgid "Vim dialog"
+msgstr "Vim ¶Ô»°¿ò"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: ²»ÄÜͬʱʹÓÃÏûÏ¢ºÍ»Øµ÷º¯ÊýÀ´´´½¨ BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: ²»ÄܶÁÈ¡Îļþ \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: ÎÞЧµÄ 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
-
-msgid "No match at cursor, finding next"
-msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
-
 msgid "Vim dialog..."
 msgstr "Vim ¶Ô»°¿ò..."
 
@@ -2027,6 +2041,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 "²éÕÒ×Ö·û´® (ʹÓà '\\\\' À´²éÕÒ '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "×ÖÌå1µÄ¿í¶È: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "²»ÕýÈ·µÄ×ÖÌ弯(Fontset)"
+msgid "Invalid font specification"
+msgstr "Ö¸¶¨ÁËÎÞЧµÄ×ÖÌå"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "È¡Ïû(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "ÕÒ²»µ½Æ¥ÅäµÄÏî"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "×ÖÌåÑ¡Ôñ"
+msgid "Vim - Font Selector"
+msgstr "Vim - ×ÖÌåÑ¡ÔñÆ÷"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "Ãû³Æ:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "¼Ç¼ÖÐ"
+msgid "Encoding:"
+msgstr "±àÂë:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "×ÖÌå1: %s\n"
+msgid "Font:"
+msgstr "×ÖÌå:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "·ç¸ñ:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "³ß´ç:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata ´íÎó"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\tÔÚ <display> ÉÏÔËÐÐ vim (Ò²¿ÉÓà --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tÉèÖÃÓÃÓÚÇø·ÖÖ÷´°¿ÚµÄ´°¿Ú½ÇÉ«Ãû"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tÔÚÁíÒ»¸ö GTK ²¿¼þÖдò¿ª Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\tÔÚ¸¸Ó¦ÓóÌÐòÖдò¿ª Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "ûÓÐ display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 
 msgid "%d of %d edited"
 msgstr "%d ÖÐ %d Òѱ༭"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "·¢Ëͱí´ïʽʧ°Ü¡£\n"
+msgid "No display: Send expression failed.\n"
+msgstr "ûÓÐ display: ·¢Ëͱí´ïʽʧ°Ü¡£\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": ·¢Ëͱí´ïʽʧ°Ü¡£\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: ÎÞ·¨´Ó %s ¶ÁÈ¡¿é 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???ÐÐÊý´íÎó"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???¿ÕµÄ¿é"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???ÐÐÊý´íÎó"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???¿ÕµÄ¿é"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???ȱÉÙÁËһЩÐÐ"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???ȱÉÙÁËһЩÐÐ"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: ¿é 1 ID ´íÎó (%s ²»Êǽ»»»Îļþ£¿)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???ȱÉÙ¿é"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???ȱÉÙ¿é"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: »Ö¸´Òѱ»ÖжÏ"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: ÔÚ·¾¶ÖÐÕÒ²»µ½¸ü¶àµÄÎļþ \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans Á¬½ÓÐÅÏ¢ÎļþÖдíÎóµÄ·ÃÎÊģʽ: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "´Ó Netbeans Ì×½Ó×Ö¶ÁÈ¡"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: δ֪
 msgid "%ld Cols; "
 msgstr "%ld ÁÐ; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Chars); %ld/%ld"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö·û; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Char) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+"µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö·û; µÚ %ld/%ld ¸ö"
+"×Ö½Ú"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE ̫С"
 msgid "I/O ERROR"
 msgstr "I/O ´íÎó"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "ÏûÏ¢"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ²»ÊÇ 80, ²»ÄÜÖ´ÐÐÍⲿÃüÁî"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgstr "E237: Ñ¡Ôñ´òÓ¡»úʧ°Ü"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "ÒÑ´òÓ¡: '%s'"
+msgstr "´òÓ¡ '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: ²»ÕýÈ·µÄ×Ö·û '%c' ³öÏÖÔÚ×ÖÌåÃû³Æ \"%s\" ÄÚ"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: ²»ÕýÈ·µÄ 'filetype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
+msgstr "E366: ²»ÕýÈ·µÄ 'osfiletype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: Ë«ÖØÐźÅ, Í˳öÖÐ\n"
+msgstr "Vim: Ë«ÖØÐźţ¬Í˳öÖÐ\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: À¹½Øµ½ÐźÅ(signal) %s\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: À¹½Øµ½ÖÂÃüµÄÐźÅ(deadly signale)\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "´ò¿ª X Window ÓÃʱ %ld Ãë"
+msgstr "´ò¿ª X display ÓÃʱ %ld Ãë"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X ´íÎó\n"
 
 msgid "Testing the X display failed"
-msgstr "²âÊÔ X Window ʧ°Ü"
+msgstr "²âÊÔ X display ʧ°Ü"
 
 msgid "Opening the X display timed out"
-msgstr "´ò¿ª X Window ³¬Ê±"
+msgstr "´ò¿ª X display ³¬Ê±"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell"
+"ÎÞ·¨Ö´ÐÐ shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell sh\n"
+"ÎÞ·¨Ö´ÐÐ shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"²»Äܽ¨Á¢¹ÜµÀ\n"
+"ÎÞ·¨½¨Á¢¹ÜµÀ\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"²»ÄÜ fork\n"
+"ÎÞ·¨ fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "ÃüÁîÒѽáÊø\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "ÏÔʾÁ¬½Ó"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP ¶ªÊ§Á˵½ ICE µÄÁ¬½Ó"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "´ò¿ª X Window ʧ°Ü"
+msgstr "´ò¿ª X display ʧ°Ü"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP ´¦Àí save-yourself ÇëÇó"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "ûÓÐ cscope Á¬½Ó"
+msgid "XSMP opening connection"
+msgstr "XSMP ´ò¿ªÁ¬½Ó"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Á¬½Ó¼àÊÓʧ°Ü"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection µ÷ÓÃʧ°Ü: %s"
 
 msgid "At line"
 msgstr "ÔÚÐкŠ"
 
 msgid "Could not load vim32.dll!"
-msgstr "²»ÄܼÓÔØ vim32.dll£¡"
+msgstr "ÎÞ·¨¼ÓÔØ vim32.dll£¡"
 
 msgid "VIM Error"
 msgstr "VIM ´íÎó"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "²»ÄÜÐÞÕýº¯ÊýÖ¸Õëµ½ DLL!"
+msgstr "ÎÞ·¨ÐÞÕýµ½ DLL µÄº¯ÊýÖ¸Õë!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell ·µ»ØÖµ %d"
+msgstr "Shell ·µ»Ø %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE.\n"
-"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£.\n"
+"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE¡£\n"
+"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£¡£\n"
 "½øÒ»²½ËµÃ÷Çë¼û :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: ÎÞ·¨Ð´È룬ÒÑÉ趨ѡÏî 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: ȱÉÙÎļþÃû»òģʽÎÞЧ"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  
 msgid "Scanning included file: %s"
 msgstr "²éÕÒ°üº¬Îļþ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "²éÕÒ°üº¬Îļþ: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "²éÕÒ°üº¬µÄÎļþ %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: µ±Ç°ÐÐÆ¥Åä"
@@ -4622,339 +4634,339 @@ msgstr "E388: 
 msgid "E389: Couldn't find pattern"
 msgstr "E389: ÕÒ²»µ½ pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E759: Format error in spell file"
+msgstr "E759: ƴдÎļþ¸ñʽ´íÎó"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgid "E758: Truncated spell file"
+msgstr "E758: ÒÑ½Ø¶ÏµÄÆ´Ð´Îļþ"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¶àÓàµÄºóÐø×Ö·û: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¸½¼ÓÏîÃû×ÖÌ«³¤: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag Îļþ \"%s\" ¸ñʽ´íÎó"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: ¸½¼ÓÎļþ FOL¡¢LOW »ò UPP Öиñʽ´íÎó"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL¡¢LOW »ò UPP ÖÐ×Ö·û³¬³ö·¶Î§"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "ѹËõµ¥´ÊÊ÷¡­¡­"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: ƴд¼ì²éδÆôÓÃ"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "¾¯¸æ: ÕÒ²»µ½µ¥´ÊÁбí \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "ʹÓý»»»Îļþ \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "¶ÁȡƴдÎļþ \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Õâ¿´ÆðÀ´²»ÏñÊÇÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: »¹ÓÐ %ld ¸öÎļþδ±à¼­"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: ¾É°æ±¾µÄƴдÎļþ£¬ÐèÒª¸üÐÂ"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Ϊ¸ü¸ß°æ±¾µÄ Vim ËùÓÃµÄÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: ƴдÎļþÖдæÔÚ²»Ö§³ÖµÄ½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "¾¯¸æ: ÇøÓò %s ²»Ö§³Ö"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "²éÕÒ tag Îļþ \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "¶ÁÈ¡¸½¼ÓÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "µ¥´Ê %s ת»»Ê§°Ü£¬µÚ %d ÐÐ: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "²»Ö§³Ö %s ÖеÄת»»: ´Ó %s µ½ %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "²»Ö§³Ö %s ÖеÄת»»"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬FLAG µÄÖµÎÞЧ: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚʹÓñêÖ¾ºó³öÏÖ FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDWORDMAX Öµ: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDMIN Öµ: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDSYLMAX Öµ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: ±êÇ©(tag) \"%s\" ÔÚÎļþ %s ÀïÖØ¸´³öÏÖ¶à´Î"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ CHECKCOMPOUNDPATTERN Öµ: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚÁ¬ÐøµÄ¸½¼Ó¿éÖгöÏÖ²»Í¬µÄ×éºÏ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ¸½¼ÓÏî: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s µÚ %d ÐУ¬¸½¼ÓÏî±» BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ"
+"ÓÃ: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª Y »ò N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄÌõ¼þ: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª REP(SAL) ¼ÆÊý"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª MAP ¼ÆÊý"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s µÚ %d ÐУ¬MAP ÖдæÔÚÖØ¸´µÄ×Ö·û"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞ·¨Ê¶±ð»òÖØ¸´µÄÏî: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s ÖÐȱÉÙ FOL/LOW/UPP ÐÐ"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "ÔÚûÓÐ SYLLABLE µÄÇé¿öÏÂʹÓÃÁË COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "Too many postponed prefixes"
+msgstr "Ì«¶àÑÓ³Ùǰ׺"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "Ì«¶à×éºÏ±êÖ¾"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Ì«¶àÑÓ³Ùǰ׺ºÍ/»ò×éºÏ±êÖ¾"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s ÖÐȱÉÙ SOFO%s ÐÐ"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s ͬʱ³öÏÖ SQL ºÍ SOFO ÐÐ"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬±êÖ¾²»ÊÇÊý×Ö: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s µÄÖµÓëÁíÒ»¸ö .aff ÎļþÖÐʹÓõÄÖµ²»Ïàͬ"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "ɨÃè×Öµä: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "¶ÁÈ¡×ÖµäÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s ÖÐûÓе¥´Ê¼ÆÊý"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "µÚ %6d ÐУ¬µÚ %6d ¸öµ¥´Ê - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "ÿһÐж¼ÕÒ²»µ½Ä£Ê½: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ê×´ÎÖØ¸´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "´æÔÚ %d ¸öÖØ¸´µÄµ¥´Ê£¬ÔÚ %s ÖÐ"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê£¬ÔÚ %s ÖÐ"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "´Ó±ê×¼ÊäÈë¶Á..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "¶ÁÈ¡µ¥´ÊÎļþ %s ¡­¡­"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬µ¥´ÊºóµÄ /encoding= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ /regions= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ì«¶àÇøÓò: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬/ ÐÐÒѱ»ºöÂÔ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄÇøÓòºÅ: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬²»¿Éʶ±ðµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "ѹËõÁË %d/%d ¸ö½Úµã£»Ê£Óà %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "¶ÁȡƴдÎļþ¡­¡­"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "ÕýÔÚ soundfolding¡­¡­"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding ºóµÄµ¥´ÊÊý: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "µ¥´Ê×ÜÊý: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "дÈ뽨ÒéÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "¹À¼ÆÔËÐÐʱÄÚ´æÓÃÁ¿: %d ×Ö½Ú"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Êä³öÎļþÃû²»Äܺ¬ÓÐÇøÓòÃû"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: ×î¶àÖ»Ö§³Ö 8 ¸öÇøÓò"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: ²»ÕýÈ·µÄ±í´ïʽ: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s ³öÏÖÎÞЧµÄ·¶Î§"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "¾¯¸æ: ͬʱָ¶¨ÁË compounding ºÍ NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "дÈëÆ´Ð´Îļþ %s ¡­¡­"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "ÏòÏÂ"
+msgid "Done!"
+msgstr "Íê³É£¡"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ûÓÐ %ld Ïî"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "´Ó %s ÖÐɾ³ýÁ˵¥´Ê"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "Ïò %s ÖÐÌí¼ÓÁ˵¥´Ê"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: ƴдÎļþÖ®¼äµÄ×Ö·û²»Ïàͬ"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "±§Ç¸£¬Ã»Óн¨Òé"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "±§Ç¸£¬Ö»ÓÐ %ld Ìõ½¨Òé"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "½«¸Ä±ä±£´æµ½ \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "½« \"%.*s\" ¸ÄΪ£º"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: ûÓÐǰһ¸ö²éÕÒÃüÁî"
+msgid "E752: No previous spell replacement"
+msgstr "E752: ֮ǰûÓÐÆ´Ð´Ìæ»»"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [²Ëµ¥] ÕÒ²»µ½ %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: ÕÒ²»µ½: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: ¿´ÆðÀ´²»ÏñÊÇ .sug Îļþ: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: ÐèÒªÎļþÃû³Æ"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: ȱÉÙ ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: ȱÉÙ ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: ²»ÕýÈ·µÄ :syntax ×ÓÃüÁî: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: ¼ÓÔØ syncolor.vim ʱ³öÏÖǶÌ×Ñ­»·"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: ʹÓÃÁËÌ«¶à²»Í¬µÄ¸ßÁÁ¶ÈÊôÐÔ"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: ×éÃûÖдæÔÚ²»¿ÉÏÔʾ×Ö·û"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: ÃüÁîÃû³Æ²»ÕýÈ·"
+msgid "W18: Invalid character in group name"
+msgstr "W18: ×éÃûÖк¬ÓÐÎÞЧ×Ö·û"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: ÒÑÔÚ tag ¶ÑÕ»µ×²¿"
@@ -5648,6 +5659,9 @@ msgstr "
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "ÊäÈë  :help windows95<Enter>  ²é¿´Ïà¹ØËµÃ÷    "
 
+msgid "Already only one window"
+msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
+
 msgid "E441: There is no preview window"
 msgstr "E441: ûÓÐÔ¤ÀÀ´°¿Ú"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 
 msgid "E444: Cannot close last window"
 msgstr "E444: ²»ÄܹرÕ×îºóÒ»¸ö´°¿Ú"
 
-msgid "Already only one window"
-msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: ÆäËü´°¿ÚÓиıäµÄÄÚÈÝ"
 
@@ -6050,6 +6061,9 @@ msgstr "
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "ÒѲéÕÒµ½Îļþ½á⣬ÔÙ´Ó¿ªÍ·¼ÌÐø²éÕÒ"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s µÚ %d ÐУ¬Ê¹Óà PFXPOSTPONE ʱ¸½¼Ó±êÖ¾±»ºöÂÔ: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[δÃüÃû]"
 
diff --git a/src/proto/gui.pro b/src/proto/gui.pro
index 7105a6f834..322dc79557 100644
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -1,65 +1,65 @@
 /* gui.c */
-extern void gui_start __ARGS((void));
-extern void gui_prepare __ARGS((int *argc, char **argv));
-extern int gui_init_check __ARGS((void));
-extern void gui_init __ARGS((void));
-extern void gui_exit __ARGS((int rc));
-extern void gui_shell_closed __ARGS((void));
-extern int gui_init_font __ARGS((char_u *font_list, int fontset));
-extern int gui_get_wide_font __ARGS((void));
-extern void gui_set_cursor __ARGS((int row, int col));
-extern void gui_update_cursor __ARGS((int force, int clear_selection));
-extern void gui_position_menu __ARGS((void));
-extern int gui_get_base_width __ARGS((void));
-extern int gui_get_base_height __ARGS((void));
-extern void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
-extern void gui_may_resize_shell __ARGS((void));
-extern int gui_get_shellsize __ARGS((void));
-extern void gui_set_shellsize __ARGS((int mustset, int fit_to_display, int direction));
-extern void gui_new_shellsize __ARGS((void));
-extern void gui_reset_scroll_region __ARGS((void));
-extern void gui_start_highlight __ARGS((int mask));
-extern void gui_stop_highlight __ARGS((int mask));
-extern void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
-extern void gui_update_cursor_later __ARGS((void));
-extern void gui_write __ARGS((char_u *s, int len));
-extern void gui_dont_update_cursor __ARGS((void));
-extern void gui_can_update_cursor __ARGS((void));
-extern int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
-extern void gui_undraw_cursor __ARGS((void));
-extern void gui_redraw __ARGS((int x, int y, int w, int h));
-extern int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
-extern int gui_wait_for_chars __ARGS((long wtime));
-extern void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
-extern int gui_xy2colrow __ARGS((int x, int y, int *colp));
-extern void gui_menu_cb __ARGS((vimmenu_T *menu));
-extern void gui_init_which_components __ARGS((char_u *oldval));
-extern int gui_use_tabline __ARGS((void));
-extern void gui_update_tabline __ARGS((void));
-extern void get_tabline_label __ARGS((tabpage_T *tp));
-extern int send_tabline_event __ARGS((int nr));
-extern void send_tabline_menu_event __ARGS((int tabidx, int event));
-extern void gui_remove_scrollbars __ARGS((void));
-extern void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
-extern scrollbar_T *gui_find_scrollbar __ARGS((long ident));
-extern void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
-extern void gui_update_scrollbars __ARGS((int force));
-extern int gui_do_scroll __ARGS((void));
-extern int gui_do_horiz_scroll __ARGS((void));
-extern void gui_check_colors __ARGS((void));
-extern guicolor_T gui_get_color __ARGS((char_u *name));
-extern int gui_get_lightness __ARGS((guicolor_T pixel));
-extern void gui_new_scrollbar_colors __ARGS((void));
-extern void gui_focus_change __ARGS((int in_focus));
-extern void gui_mouse_moved __ARGS((int x, int y));
-extern void gui_mouse_correct __ARGS((void));
-extern void ex_gui __ARGS((exarg_T *eap));
-extern int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
-extern void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
-extern void display_errors __ARGS((void));
-extern int no_console_input __ARGS((void));
-extern void gui_update_screen __ARGS((void));
-extern char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
-extern int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
-extern void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
+void gui_start __ARGS((void));
+void gui_prepare __ARGS((int *argc, char **argv));
+int gui_init_check __ARGS((void));
+void gui_init __ARGS((void));
+void gui_exit __ARGS((int rc));
+void gui_shell_closed __ARGS((void));
+int gui_init_font __ARGS((char_u *font_list, int fontset));
+int gui_get_wide_font __ARGS((void));
+void gui_set_cursor __ARGS((int row, int col));
+void gui_update_cursor __ARGS((int force, int clear_selection));
+void gui_position_menu __ARGS((void));
+int gui_get_base_width __ARGS((void));
+int gui_get_base_height __ARGS((void));
+void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
+void gui_may_resize_shell __ARGS((void));
+int gui_get_shellsize __ARGS((void));
+void gui_set_shellsize __ARGS((int mustset, int fit_to_display, int direction));
+void gui_new_shellsize __ARGS((void));
+void gui_reset_scroll_region __ARGS((void));
+void gui_start_highlight __ARGS((int mask));
+void gui_stop_highlight __ARGS((int mask));
+void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
+void gui_update_cursor_later __ARGS((void));
+void gui_write __ARGS((char_u *s, int len));
+void gui_dont_update_cursor __ARGS((void));
+void gui_can_update_cursor __ARGS((void));
+int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
+void gui_undraw_cursor __ARGS((void));
+void gui_redraw __ARGS((int x, int y, int w, int h));
+int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
+int gui_wait_for_chars __ARGS((long wtime));
+void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
+int gui_xy2colrow __ARGS((int x, int y, int *colp));
+void gui_menu_cb __ARGS((vimmenu_T *menu));
+void gui_init_which_components __ARGS((char_u *oldval));
+int gui_use_tabline __ARGS((void));
+void gui_update_tabline __ARGS((void));
+void get_tabline_label __ARGS((tabpage_T *tp, int tooltip));
+int send_tabline_event __ARGS((int nr));
+void send_tabline_menu_event __ARGS((int tabidx, int event));
+void gui_remove_scrollbars __ARGS((void));
+void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
+scrollbar_T *gui_find_scrollbar __ARGS((long ident));
+void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
+void gui_update_scrollbars __ARGS((int force));
+int gui_do_scroll __ARGS((void));
+int gui_do_horiz_scroll __ARGS((void));
+void gui_check_colors __ARGS((void));
+guicolor_T gui_get_color __ARGS((char_u *name));
+int gui_get_lightness __ARGS((guicolor_T pixel));
+void gui_new_scrollbar_colors __ARGS((void));
+void gui_focus_change __ARGS((int in_focus));
+void gui_mouse_moved __ARGS((int x, int y));
+void gui_mouse_correct __ARGS((void));
+void ex_gui __ARGS((exarg_T *eap));
+int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
+void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
+void display_errors __ARGS((void));
+int no_console_input __ARGS((void));
+void gui_update_screen __ARGS((void));
+char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
+int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
+void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
 /* vim: set ft=c : */
diff --git a/src/undo.c b/src/undo.c
index f9e735aaa7..fd1bcc79c4 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1405,10 +1405,15 @@ u_add_time(buf, buflen, tt)
 ex_undojoin(eap)
     exarg_T *eap;
 {
-    if (!curbuf->b_u_synced)
-	return;		    /* already unsynced */
     if (curbuf->b_u_newhead == NULL)
 	return;		    /* nothing changed before */
+    if (curbuf->b_u_curhead != NULL)
+    {
+	EMSG(_("E790: undojoin is not allowed after undo"));
+	return;
+    }
+    if (!curbuf->b_u_synced)
+	return;		    /* already unsynced */
     if (p_ul < 0)
 	return;		    /* no entries, nothing to do */
     else
diff --git a/src/version.h b/src/version.h
index d2a14fe83a..bb77f87e26 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70e"
 #define VIM_VERSION_SHORT	"7.0e"
-#define VIM_VERSION_MEDIUM	"7.0e04 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20, compiled "
+#define VIM_VERSION_MEDIUM	"7.0e05 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0e05 BETA (2006 Apr 21)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0e05 BETA (2006 Apr 21, compiled "
diff --git a/src/window.c b/src/window.c
index dabfe2d5aa..d9d5bca239 100644
--- a/src/window.c
+++ b/src/window.c
@@ -621,7 +621,9 @@ wingotofile:
 
 #ifdef FEAT_SEARCHPATH
 		    case 'f':	    /* CTRL-W gf: "gf" in a new tab page */
+		    case 'F':	    /* CTRL-W gF: "gF" in a new tab page */
 			cmdmod.tab = TRUE;
+			nchar = xchar;
 			goto wingotofile;
 #endif
 		    default:
-- 
GitLab