]> granicus.if.org Git - vim/commitdiff
updated for version 7.0131 v7.0131
authorBram Moolenaar <Bram@vim.org>
Tue, 16 Aug 2005 23:01:50 +0000 (23:01 +0000)
committerBram Moolenaar <Bram@vim.org>
Tue, 16 Aug 2005 23:01:50 +0000 (23:01 +0000)
66 files changed:
runtime/autoload/netrw.vim [moved from runtime/plugin/netrw.vim with 95% similarity]
runtime/doc/eval.txt
runtime/doc/map.txt
runtime/doc/pi_netrw.txt
runtime/doc/spell.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/version7.txt
runtime/filetype.vim
runtime/menu.vim
runtime/plugin/NetrwFileHandlers.vim
runtime/plugin/NetrwPlugin.vim [new file with mode: 0644]
runtime/plugin/NetrwSettings.vim [new file with mode: 0644]
runtime/spell/af/main.aap
runtime/spell/bg/main.aap
runtime/spell/ca/main.aap
runtime/spell/cs/main.aap
runtime/spell/da/da_DK.diff [new file with mode: 0644]
runtime/spell/da/main.aap
runtime/spell/de/main.aap
runtime/spell/el/main.aap [new file with mode: 0644]
runtime/spell/en.ascii.spl
runtime/spell/en.latin1.spl
runtime/spell/en.utf-8.spl
runtime/spell/en/en_AU.diff
runtime/spell/en/en_CA.diff
runtime/spell/en/en_GB.diff
runtime/spell/en/en_NZ.diff
runtime/spell/en/en_US.diff
runtime/spell/en/main.aap
runtime/spell/eo/eo_l3.diff [new file with mode: 0644]
runtime/spell/eo/main.aap [new file with mode: 0644]
runtime/spell/fo/fo_FO.diff [new file with mode: 0644]
runtime/spell/fo/main.aap [new file with mode: 0644]
runtime/spell/fr/main.aap
runtime/spell/gl/gl_ES.diff [new file with mode: 0644]
runtime/spell/gl/main.aap [new file with mode: 0644]
runtime/spell/he/main.aap
runtime/spell/hr/main.aap
runtime/spell/hu/hu_HU.diff [new file with mode: 0644]
runtime/spell/hu/main.aap [new file with mode: 0644]
runtime/spell/it/main.aap
runtime/spell/main.aap
runtime/spell/nl/main.aap
runtime/spell/ny/main.aap
runtime/spell/pl/main.aap
runtime/spell/sk/main.aap
runtime/spell/yi/!yi.diff
runtime/spell/yi/!yi_tr.diff [new file with mode: 0644]
runtime/spell/yi/README.txt
runtime/spell/yi/main.aap
runtime/spell/yi/yi.diff
runtime/spell/yi/yi_tr.diff [new file with mode: 0644]
runtime/syntax/sh.vim
runtime/syntax/tex.vim
runtime/syntax/vim.vim
src/eval.c
src/ex_docmd.c
src/gui.c
src/message.c
src/regexp.c
src/screen.c
src/spell.c
src/structs.h
src/syntax.c
src/version.h

similarity index 95%
rename from runtime/plugin/netrw.vim
rename to runtime/autoload/netrw.vim
index 85d7df74393fbf0f6702f8ffedbc5da5d6eac63d..e077e25e743639c3d8d794f0bb1b2e6f0eef9bf4 100644 (file)
@@ -1,33 +1,25 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
-" Last Change: Aug 12, 2005
+"            AUTOLOAD PORTION
+" Last Change: Aug 16, 2005
 " Maintainer:  Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version:     61
-" License:     Vim License  (see vim's :help license)
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr.
+" Version:     63
+" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
 "               Permission is hereby granted to use and distribute this code,
 "               with or without modifications, provided that this copyright
 "               notice is copied with it. Like anything else that's free,
-"               netrw.vim is provided *as is* and comes with no
-"               warranty of any kind, either expressed or implied. In no
-"               event will the copyright holder be liable for any damages
-"               resulting from the use of this software.
+"               netrw.vim is provided *as is* and comes with no warranty
+"               of any kind, either expressed or implied. By using this
+"               plugin, you agree that in no event will the copyright
+"               holder be liable for any damages resulting from the use
+"               of this software.
 "
-"  But be doers of the Word, and not only hearers, deluding your own selves
+"  But be doers of the Word, and not only hearers, deluding your own selves {{{1
 "  (James 1:22 RSV)
 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if exists("g:loaded_netrw") || &cp
-  finish
-endif
-let g:loaded_netrw  = "v61"
-if v:version < 700
- let loaded_explorer = 1
-endif
 let s:keepcpo= &cpo
 set cpo&vim
+" call Decho("doing autoload/netrw.vim")
 
 " ---------------------------------------------------------------------
 " Default values for global netrw variables {{{1
@@ -214,47 +206,9 @@ if has("win32") || has("win95") || has("win64") || has("win16")
  let s:netrw_rcpmode    = ''
 endif
 
-" ---------------------------------------------------------------------
-" Transparency Support: {{{1
- " File Explorer: {{{2
-if version >= 600
- augroup FileExplorer
-  au!
-  au BufEnter * call <SID>LocalBrowse(expand("<amatch>"))
- augroup END
- " Network Handler: {{{2
- augroup Network
-  au!
-  if has("win32") || has("win95") || has("win64") || has("win16")
-   au BufReadCmd  file://*             exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-  else
-   au BufReadCmd  file:///*            exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-   au BufReadCmd  file://localhost/*   exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-  endif
-  au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*  exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
-  au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*  exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread "   .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
-  au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*           exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
-  au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*           exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
- augroup END
-endif
-
-" ------------------------------------------------------------------------
-" Commands: :Nread, :Nwrite, :NetUserPass {{{1
-com! -nargs=*          Nread           call s:NetSavePosn()<bar>call s:NetRead(<f-args>)<bar>call s:NetRestorePosn()
-com! -range=% -nargs=* Nwrite          call s:NetSavePosn()<bar><line1>,<line2>call s:NetWrite(<f-args>)<bar>call s:NetRestorePosn()
-com! -nargs=*          NetUserPass     call NetUserPass(<f-args>)
-
-" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{1
-com! -nargs=? -bar -bang -count=0      Explore         call s:Explore(<count>,0,0+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0      Sexplore        call s:Explore(<count>,1,0+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0      Hexplore        call s:Explore(<count>,1,2+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0      Vexplore        call s:Explore(<count>,1,4+<bang>0,<q-args>)
-com! -nargs=? -bar -bang               Nexplore        call s:Explore(-1,0,0,<q-args>)
-com! -nargs=? -bar -bang               Pexplore        call s:Explore(-2,0,0,<q-args>)
-
 " ------------------------------------------------------------------------
 " NetSavePosn: saves position of cursor on screen {{{1
-fun! s:NetSavePosn()
+fun! netrw#NetSavePosn()
 "  call Dfunc("NetSavePosn()")
   " Save current line and column
   let w:netrw_winnr= winnr()
@@ -265,13 +219,13 @@ fun! s:NetSavePosn()
   norm! H0
   let w:netrw_hline= line(".")
 
-  call s:NetRestorePosn()
+  call netrw#NetRestorePosn()
 "  call Dret("NetSavePosn : winnr=".w:netrw_winnr." line=".w:netrw_line." col=".w:netrw_col." hline=".w:netrw_hline)
 endfun
 
 " ------------------------------------------------------------------------
 " NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{1
-fun! <SID>NetRestorePosn()
+fun! netrw#NetRestorePosn()
 "  call Dfunc("NetRestorePosn() winnr=".w:netrw_winnr." line=".w:netrw_line." col=".w:netrw_col." hline=".w:netrw_hline)
   let eikeep= &ei
   set ei=all
@@ -299,7 +253,7 @@ endfun
 
 " ------------------------------------------------------------------------
 " NetRead: responsible for reading a file over the net {{{1
-fun! s:NetRead(...)
+fun! netrw#NetRead(...)
 "  call Dfunc("NetRead(a:1<".a:1.">)")
  
   " save options
@@ -321,6 +275,12 @@ fun! s:NetRead(...)
  
   " get name of a temporary file and set up shell-quoting character
   let tmpfile= tempname()
+  if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
+   echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
+   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"   call Dret("NetRead")
+   return
+  endif
  
 "  call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
   while ichoice <= a:0
@@ -581,6 +541,7 @@ fun! s:NetRead(...)
     else
      put ='get '.netrw_fname.' '.tmpfile
     endif
+    put ='quit'
  
     " perform cadaver operation:
     norm! 1Gdd
@@ -760,7 +721,7 @@ endfun
 
 " ------------------------------------------------------------------------
 " NetWrite: responsible for writing a file over the net {{{1
-fun! s:NetWrite(...) range
+fun! netrw#NetWrite(...) range
 "  call Dfunc("NetWrite(a:0=".a:0.")")
  
   " option handling
@@ -769,6 +730,12 @@ fun! s:NetWrite(...) range
  
   " Get Temporary Filename
   let tmpfile= tempname()
+  if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
+   echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
+   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"   call Dret("NetRead")
+   return
+  endif
  
   if a:0 == 0
    let ichoice = 0
@@ -1049,7 +1016,7 @@ endfun
 "  of the contents of a remote directory.  It is assumed that the
 "  g:netrw_list_cmd has a string, HOSTNAME, that needs to be substituted
 "  with the requested remote hostname first.
-fun! <SID>NetBrowse(dirname)
+fun! s:NetBrowse(dirname)
 "  call Dfunc("NetBrowse(dirname<".a:dirname.">) longlist=".g:netrw_longlist)
 
   if exists("s:netrw_skipbrowse")
@@ -1160,7 +1127,7 @@ fun! <SID>NetBrowse(dirname)
 "   call Decho("exe file .method."://".user.machine."/".escape(path,s:netrw_cd_escape))
    exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
    exe "silent doau BufReadPre ".fname
-   silent call s:NetRead(method."://".user.machine."/".path)
+   silent call netrw#NetRead(method."://".user.machine."/".path)
    exe "silent doau BufReadPost ".fname
    keepjumps 1d
 
@@ -1271,7 +1238,7 @@ fun! <SID>NetBrowse(dirname)
   if method == "ftp"
    " use ftp to get remote file listing
 "   call Decho("use ftp to get remote file listing")
-   call NetBrowseFtpCmd(path,listcmd)
+   call s:NetBrowseFtpCmd(path,listcmd)
    keepjumps 1d
 
    if !g:netrw_longlist
@@ -1390,7 +1357,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetBrowseChgDir: {{{2
-fun! <SID>NetBrowseChgDir(dirname,newdir)
+fun! s:NetBrowseChgDir(dirname,newdir)
 "  call Dfunc("NetBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">)")
 
   let dirname= a:dirname
@@ -1433,7 +1400,7 @@ endfun
 
 " ---------------------------------------------------------------------
 "  NetGetWord: it gets the directory named under the cursor
-fun! <SID>NetGetWord()
+fun! s:NetGetWord()
 "  call Dfunc("NetGetWord() line#".line("."))
   call s:UseBufWinVars()
 
@@ -1470,7 +1437,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetBrowseRm: remove/delete a remote file or directory {{{2
-fun! <SID>NetBrowseRm(usrhost,path) range
+fun! s:NetBrowseRm(usrhost,path) range
 "  call Dfunc("NetBrowseRm(usrhost<".a:usrhost."> path<".a:path.">)")
 "  call Decho("firstline=".a:firstline." lastline=".a:lastline)
 
@@ -1503,7 +1470,7 @@ fun! <SID>NetBrowseRm(usrhost,path) range
     if all || ok =~ 'y\%[es]' || ok == ""
      if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
       silent! keepjumps .,$d
-      call NetBrowseFtpCmd(a:path,"delete ".rmfile)
+      call s:NetBrowseFtpCmd(a:path,"delete ".rmfile)
      else
       let netrw_rm_cmd= substitute(g:netrw_rm_cmd,'HOSTNAME',a:usrhost,'').' "'.escape(a:path.rmfile,s:netrw_cd_escape).'"'
 "      call Decho("attempt to remove file: system(".netrw_rm_cmd.")")
@@ -1528,7 +1495,7 @@ fun! <SID>NetBrowseRm(usrhost,path) range
 
     if all || ok =~ 'y\%[es]' || ok == ""
      if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
-      call NetBrowseFtpCmd(a:path,"rmdir ".rmfile)
+      call s:NetBrowseFtpCmd(a:path,"rmdir ".rmfile)
      else
       let rmfile         = a:path.rmfile
       let netrw_rmdir_cmd= substitute(g:netrw_rmdir_cmd,'HOSTNAME',a:usrhost,'').' '."'".'"'.rmfile.'"'."'"
@@ -1568,7 +1535,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetBrowseRename: rename a remote file or directory {{{2
-fun! <SID>NetBrowseRename(usrhost,path) range
+fun! s:NetBrowseRename(usrhost,path) range
 "  call Dfunc("NetBrowseRename(usrhost<".a:usrhost."> path<".a:path.">)")
 
   " preparation for removing multiple files/directories
@@ -1588,7 +1555,7 @@ fun! <SID>NetBrowseRename(usrhost,path) range
    call inputrestore()
 
    if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
-    call NetBrowseFtpCmd(a:path,"rename ".oldname." ".newname)
+    call s:NetBrowseFtpCmd(a:path,"rename ".oldname." ".newname)
    else
     let oldname= a:path.oldname
     let newname= a:path.newname
@@ -1608,7 +1575,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetRefresh: {{{2
-fun! <SID>NetRefresh(dirname)
+fun! s:NetRefresh(dirname)
 "  call Dfunc("NetRefresh(dirname<".a:dirname.">)")
   set ma
   %d
@@ -1641,12 +1608,12 @@ fun! s:NetSplit(mode)
    exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
    call s:CopyWinVars()
    exe "norm! 0"
-   call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
+   call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
   else
    exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"
    call s:CopyWinVars()
    exe "norm! 0"
-   call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
+   call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
   endif
 
 "  call Dret("NetSplit")
@@ -1655,7 +1622,7 @@ endfun
 " ---------------------------------------------------------------------
 " NetBrowseX:  allows users to write custom functions to operate on {{{2
 "              files given their extension.  Passes 0=local, 1=remote
-fun! <SID>NetBrowseX(fname,remote)
+fun! s:NetBrowseX(fname,remote)
 "  call Dfunc("NetBrowseX(".a:fname." remote=".a:remote.")")
 
   " set up the filename
@@ -1730,7 +1697,7 @@ endfun
 "  This function assumes that a long listing will be received.  Size, time,
 "  and reverse sorts will be requested of the server but not otherwise
 "  enforced here.
-fun! NetBrowseFtpCmd(path,cmd)
+fun! s:NetBrowseFtpCmd(path,cmd)
 "  call Dfunc("NetBrowseFtpCmd(path<".a:path."> cmd<".a:cmd.">) netrw_method=".w:netrw_method)
 
   " because WinXX ftp uses unix style input
@@ -1813,7 +1780,7 @@ endfun
 " ---------------------------------------------------------------------
 " NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
 " separated patterns given in g:netrw_list_hide
-fun! <SID>NetrwListHide()
+fun! s:NetrwListHide()
 "  call Dfunc("NetrwListHide() listhide<".g:netrw_list_hide.">")
 
   let listhide= g:netrw_list_hide
@@ -1840,7 +1807,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetHideEdit: allows user to edit the file/directory hiding list
-fun! <SID>NetHideEdit(mode)
+fun! s:NetHideEdit(mode)
 "  call Dfunc("NetHideEdit(mode=".a:mode.")")
 
   call inputsave()
@@ -1860,7 +1827,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetSortSequence: allows user to edit the sorting sequence
-fun! <SID>NetSortSequence(mode)
+fun! s:NetSortSequence(mode)
 "  call Dfunc("NetSortSequence(mode=".a:mode.")")
 
   call inputsave()
@@ -1880,9 +1847,9 @@ endfun
 
 " ---------------------------------------------------------------------
 "  NetLongList: {{{2
-fun! <SID>NetLongList(mode)
+fun! s:NetLongList(mode)
 "  call Dfunc("NetLongList(mode=".a:mode.") netrw_longlist=".g:netrw_longlist)
-  call s:NetSavePosn()
+  call netrw#NetSavePosn()
 
   if g:netrw_longlist != 0
    " turn long listing off
@@ -1905,10 +1872,10 @@ fun! <SID>NetLongList(mode)
   if a:mode == 0
    silent call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),"./"))
   else
-   silent call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
+   silent call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
   endif
 
-  call s:NetRestorePosn()
+  call netrw#NetRestorePosn()
 
 "  call Dret("NetLongList : g:netrw_longlist=".g:netrw_longlist)
 endfun
@@ -1933,7 +1900,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " NetMakeDir: this function makes a directory (both local and remote) {{{2
-fun! <SID>NetMakeDir(usrhost)
+fun! s:NetMakeDir(usrhost)
 "  call Dfunc("NetMakeDir(usrhost<".a:usrhost.">)")
 
   " get name of new directory from user.  A bare <CR> will skip.
@@ -2033,7 +2000,7 @@ endfun
 "    3: (LocalBrowse) record current directory history
 "    4: (user: <u>)   go up   (previous) bookmark
 "    5: (user: <U>)   go down (next)     bookmark
-fun! <SID>NetBookmarkDir(chg,curdir)
+fun! s:NetBookmarkDir(chg,curdir)
 "  call Dfunc("NetBookmarkDir(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count)
   if exists("w:netrw_bannercnt") && line(".") <= w:netrw_bannercnt
    " looks like a "b" was pressed while in the banner region
@@ -2139,23 +2106,26 @@ endfun
 " ==========================================
 
 " ---------------------------------------------------------------------
-" LocalBrowse: supports local file/directory browsing {{{2
-fun! <SID>LocalBrowse(dirname)
-
-"  let dirname= (a:dirname == "")? expand("%:p") : a:dirname
-  if !isdirectory(a:dirname)
-   " not a directory, ignore it
-   return
-  endif
+" LocalBrowse: {{{2
+fun! s:LocalBrowse(dirname)
+  " unfortunate interaction -- debugging calls can't be used here;
+  " the BufEnter event causes triggering when attempts to write to
+  " the DBG buffer are made.
+  if isdirectory(a:dirname)
+   call netrw#DirBrowse(a:dirname)
+  endif
+  " not a directory, ignore it
+endfun
 
-  " unfortunate interaction -- when putting debugging calls
-  " above one can no longer enter the DBG buffer.
-"  call Dfunc("LocalBrowse(dirname<".a:dirname.">) buf#".bufnr("%")." winnr=".winnr()." sortby=".g:netrw_sort_by)
+" ---------------------------------------------------------------------
+" DirBrowse: supports local file/directory browsing {{{2
+fun! netrw#DirBrowse(dirname)
+"  call Dfunc("DirBrowse(dirname<".a:dirname.">) buf#".bufnr("%")." winnr=".winnr()." sortby=".g:netrw_sort_by)
 "  call Dredir("ls!")
 
   if exists("s:netrw_skipbrowse")
    unlet s:netrw_skipbrowse
-"   call Dret("NetBrowse")
+"   call Dret("DirBrowse")
    return
   endif
 
@@ -2164,7 +2134,7 @@ fun! <SID>LocalBrowse(dirname)
     echohl Error | echo "***netrw*** vim version<".v:version."> too old for browsing with netrw" | echohl None
     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
    endif
-"   call Dret("LocalBrowse : vim version<".v:version."> too old")
+"   call Dret("DirBrowse : vim version<".v:version."> too old")
    return
   endif
 
@@ -2178,7 +2148,7 @@ fun! <SID>LocalBrowse(dirname)
   call s:UseBufWinVars()
 
   " find buffer number of buffer named precisely the same as a:dirname
-  let bufnum= bufnr(a:dirname)
+  let bufnum= bufnr(escape(a:dirname,'\'))
 "  call Decho("findbuf: bufnum=".bufnum)
   if bufnum > 0 && bufname(bufnum) != a:dirname
    let ibuf= 1
@@ -2213,9 +2183,9 @@ fun! <SID>LocalBrowse(dirname)
     if getline(2) =~ '^" Directory Listing '
      if !g:netrw_keepdir
 "      call Decho("change directory: cd ".b:netrw_curdir)
-      exe 'cd '.b:netrw_curdir
+      exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
      endif
-"     call Dret("LocalBrowse : reusing buffer#".bufnum."<".a:dirname.">")
+"     call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
      return
     endif
    endif
@@ -2223,7 +2193,11 @@ fun! <SID>LocalBrowse(dirname)
   let s:last_sort_by= g:netrw_sort_by
 
   " get the new directory name
-  let b:netrw_curdir= substitute(a:dirname,'\\','/','ge')
+  if has("win32") || has("win95") || has("win64") || has("win16")
+   let b:netrw_curdir= substitute(a:dirname,'\\','/','ge')
+  else
+   let b:netrw_curdir= a:dirname
+  endif
   if b:netrw_curdir =~ '[/\\]$'
    let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
   endif
@@ -2233,14 +2207,14 @@ fun! <SID>LocalBrowse(dirname)
   if !g:netrw_keepdir
 "   call Decho("change directory: cd ".b:netrw_curdir)
    try
-    exe 'cd '.b:netrw_curdir
+    exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
    catch /^Vim\%((\a\+)\)\=:E472/
     echohl Error | echo "***netrw*** unable to change directory to <".b:netrw_curdir."> (permissions?)" | echohl None
     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
     if exists("w:netrw_prvdir")
      let b:netrw_curdir= w:netrw_prvdir
     else
-"     call Dret("LocalBrowse : reusing buffer#".bufnum."<".a:dirname.">")
+"     call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
      return
     endif
    endtry
@@ -2250,7 +2224,7 @@ fun! <SID>LocalBrowse(dirname)
   exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
 
   " make this buffer modifiable and hidden
-  setlocal ma hidden nonu
+  setlocal ma hidden nonu bt=nofile
   if v:version < 700
    silent! %d
   else
@@ -2278,7 +2252,7 @@ fun! <SID>LocalBrowse(dirname)
   nnoremap <buffer> <silent> o         :call <SID>NetSplit(2)<cr>
   nnoremap <buffer> <silent> p         :exe "norm! 0"<bar>call <SID>LocalPreview(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),1))<cr>
   nnoremap <buffer> <silent> q         :<c-u>call <SID>NetBookmarkDir(2,b:netrw_curdir)<cr>
-  nnoremap <buffer> <silent> r         :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
+  nnoremap <buffer> <silent> r         :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
   nnoremap <buffer> <silent> s         :call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
   nnoremap <buffer> <silent> S         :call <SID>NetSortSequence(1)<cr>
   nnoremap <buffer> <silent> u         :<c-u>call <SID>NetBookmarkDir(4,expand("%"))<cr>
@@ -2342,7 +2316,7 @@ fun! <SID>LocalBrowse(dirname)
 "  call Decho("bannercnt=".w:netrw_bannercnt)
 
   " generate the requested directory listing
-  call LocalBrowseList()
+  call s:LocalBrowseList()
 
   " set up syntax highlighting
   if has("syntax")
@@ -2399,12 +2373,12 @@ fun! <SID>LocalBrowse(dirname)
    let &autochdir= keep_autochdir
   endif
 
-"  call Dret("LocalBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
+"  call Dret("DirBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
 endfun
 
 " ---------------------------------------------------------------------
 "  LocalBrowseList: does the job of "ls" for local directories {{{2
-fun! LocalBrowseList()
+fun! s:LocalBrowseList()
 "  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir.">")
 
   " get the list of files contained in the current directory
@@ -2504,7 +2478,7 @@ endfun
 " ---------------------------------------------------------------------
 "  LocalBrowseChgDir: constructs a new directory based on the current {{{2
 "                     directory and a new directory name
-fun! <SID>LocalBrowseChgDir(dirname,newdir,...)
+fun! s:LocalBrowseChgDir(dirname,newdir,...)
 "  call Dfunc("LocalBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">) a:0=".a:0)
 
   let dirname= substitute(a:dirname,'\\','','ge')
@@ -2549,7 +2523,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " LocalBrowseRm: {{{2
-fun! <SID>LocalBrowseRm(path) range
+fun! s:LocalBrowseRm(path) range
 "  call Dfunc("LocalBrowseRm(path<".a:path.">)")
 "  call Decho("firstline=".a:firstline." lastline=".a:lastline)
 
@@ -2656,7 +2630,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " LocalBrowseRename: rename a remote file or directory {{{2
-fun! <SID>LocalBrowseRename(path) range
+fun! s:LocalBrowseRename(path) range
 "  call Dfunc("LocalBrowseRename(path<".a:path.">)")
 
   " preparation for removing multiple files/directories
@@ -2701,7 +2675,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " LocalPreview: {{{2
-fun! <SID>LocalPreview(path) range
+fun! s:LocalPreview(path) range
 "  call Dfunc("LocalPreview(path<".a:path.">)")
   if has("quickfix")
    if !isdirectory(a:path)
@@ -2719,11 +2693,11 @@ endfun
 
 " ---------------------------------------------------------------------
 " LocalRefresh: {{{2
-fun! <SID>LocalRefresh(dirname)
+fun! s:LocalRefresh(dirname)
 "  call Dfunc("LocalRefresh(dirname<".a:dirname.">)")
   set ma
   %d
-  call <SID>LocalBrowse(a:dirname)
+  call s:LocalBrowse(a:dirname)
   redraw!
 "  call Dret("LocalRefresh")
 endfun
@@ -2734,7 +2708,7 @@ endfun
 "                      been modified
 "          dosplit==1: the window will be split before running the local
 "                      browser
-fun! s:Explore(indx,dosplit,style,...)
+fun! netrw#Explore(indx,dosplit,style,...)
 "  call Dfunc("Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.")")
 
   " if dosplit or file has been modified
@@ -2872,7 +2846,7 @@ endfun
 " NetGetcwd: get the current directory. {{{2
 "   Change backslashes to forward slashes, if any.
 "   If doesc is true, escape certain troublesome characters
-fun! <SID>NetGetcwd(doesc)
+fun! s:NetGetcwd(doesc)
 "  call Dfunc("NetGetcwd(doesc=".a:doesc.")")
   let curdir= substitute(getcwd(),'\\','/','ge')
   if curdir !~ '[\/]$'
@@ -3202,7 +3176,7 @@ endif
 " ---------------------------------------------------------------------
 " NetSort: Piet Delport's BISort2() function, modified to take a range {{{1
 if v:version < 700
- fun! <SID>NetSort() range
+ fun! s:NetSort() range
 " "  call Dfunc("NetSort()")
  
   let i = a:firstline + 1
@@ -3250,7 +3224,7 @@ endif
 "          in the g:netrw_sort_sequence.  It applies a substitute to any
 "          "files" that satisfy each pattern, putting the priority / in
 "          front.  An "*" pattern handles the default priority.
-fun! <SID>SetSort()
+fun! s:SetSort()
 "  call Dfunc("SetSort() bannercnt=".w:netrw_bannercnt)
   if g:netrw_longlist
    let seqlist  = substitute(g:netrw_sort_sequence,'\$','\\%(\t\\|\$\\)','ge')
@@ -3371,8 +3345,11 @@ fun! s:UseBufWinVars()
 "  call Dret("UseBufWinVars")
 endfun
 
+" ------------------------------------------------------------------------
+" Settings Restoration: {{{1
 let &cpo= s:keepcpo
 unlet s:keepcpo
+
 " ------------------------------------------------------------------------
 " Modelines: {{{1
 " vim:ts=8 fdm=marker
index f98bd9372189c49137b1209cfae5f601309044a3..61a22df73120e09f80747c8f8cfe6e9cd6383fb9 100644 (file)
@@ -4683,7 +4683,21 @@ instead of "s:" when the mapping is expanded outside of the script.
                        {name} can also be a Dictionary entry that is a
                        Funcref: >
                                :function dict.init
-<                                                      *E124* *E125*
+<
+                                                       *:function-verbose*
+When 'verbose' is non-zero, listing a function will also display where it was
+last defined. Example: >
+
+    :verbose function SetFileTypeSH
+       function SetFileTypeSH(name)
+           Last set from /usr/share/vim/vim-7.0/filetype.vim
+<
+When the function was defined by hand there is no "Last set" message.  When
+the function was defined while executing a function, user command or
+autocommand, the script in which it was defined is reported.
+{not available when compiled without the +eval feature}
+
+                                                       *E124* *E125*
 :fu[nction][!] {name}([arguments]) [range] [abort] [dict]
                        Define a new function by the name {name}.  The name
                        must be made of alphanumeric characters and '_', and
index de29f0fbc51750ed7260b064ab0fa0f5353ad85f..a135a481ab0c7e7ea4372e16435802b33bd533f2 100644 (file)
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.0aa.  Last change: 2005 Jul 21
+*map.txt*       For Vim version 7.0aa.  Last change: 2005 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -868,6 +868,20 @@ scripts.
 
 :com[mand] {cmd}       List the user-defined commands that start with {cmd}
 
+                                                       *:command-verbose*
+When 'verbose' is non-zero, listing a command will also display where it was
+last defined. Example: >
+
+    :verbose command TOhtml
+       Name        Args Range Complete  Definition
+       TOhtml      0    %               :call Convert2HTML(<line1>, <line2>)
+           Last set from /usr/share/vim/vim-7.0/plugin/tohtml.vim
+<
+When the command was defined by hand there is no "Last set" message.  When the
+command was defined while executing a function, user command or autocommand,
+the script in which it was defined is reported.
+{not available when compiled without the +eval feature}
+
                                                        *E174* *E182*
 :com[mand][!] [{attr}...] {cmd} {rep}
                        Define a user command.  The name of the command is
@@ -1069,8 +1083,7 @@ To allow commands to pass their arguments on to a user-defined function, there
 is a special form <f-args> ("function args").  This splits the command
 arguments at spaces and Tabs, quotes each argument individually, and the
 <f-args> sequence is replaced by the comma-separated list of quoted arguments.
-See the Mycmd example below.  When there is no argument, <f-args> also has no
-argument.
+See the Mycmd example below.  If no arguments are given <f-args> is removed. 
 
 Examples >
 
index 4cc59c3e927805d8c1076c3148307df40b258184..00718833fe73dc491db8346f96e755b1269efaee 100644 (file)
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.0.  Last change: Aug 11, 2005
+*pi_netrw.txt*  For Vim version 7.0.  Last change: Aug 15, 2005
 
 
                VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
 0. Contents                                            *netrw-contents*
 
 1.  Netrw Reference......................................|netrw-ref|
+      CONTROLLING EXTERNAL APPLICTIONS...................|netrw-externapp|
+      READING............................................|netrw-read|
+      WRITING............................................|netrw-write|
+      DIRECTORY LISTING..................................|netrw-dirlist|
+      CHANGING THE USERID AND PASSWORD...................|netrw-chgup|
+      VARIABLES..........................................|netrw-variables|
+      PATHS..............................................|netrw-path|
 2.  Network-Oriented File Transfer.......................|netrw-xfer|
       NETRC..............................................|netrw-netrc|
       PASSWORD...........................................|netrw-passwd|
 10. History..............................................|netrw-history|
 11. Credits..............................................|netrw-credits|
 
-The functionality mentioned here is done via using |standard-plugin|
-techniques.  This plugin is only available if
+The Netrw plugin is generally sourced automatically as it is a
+|standard-plugin|.  That said, to make use of netrw, one must
+have plugins available which can be done with the following
+two lines in your <.vimrc>:
 
        set nocp                    " 'compatible' is not set
        filetype plugin on          " plugins are enabled
@@ -69,62 +78,51 @@ in your <.vimrc> file: >
 ==============================================================================
 1. Netrw Reference                                             *netrw-ref*
 
-    OPTIONS
-       let g:netrw_ftp =0 use ftp (default)                 (uid password)
-                       =1 use alternate ftp method     (user uid password)
-         If you're having trouble with ftp, try changing the value
-         of this variable in your <.vimrc> to change methods
-
-       let g:netrw_ignorenetrc= 1
-         If you have a <.netrc> file but it doesn't work and you
-         want it ignored, then set this variable as shown.  Its mere
-         existence is enough to cause <.netrc> to be ignored.
-
-       Controlling External Applications               *netrw-externapp*
-
-        Protocol  Variable          Default Value
-        --------  ----------------  -------------
-           dav:    *g:netrw_dav_cmd*  = "cadaver"
-         fetch:  *g:netrw_fetch_cmd*  = "fetch -o"
-           ftp:    *g:netrw_ftp_cmd*  = "ftp"
-           http:   *g:netrw_http_cmd*  = "fetch -o"    if fetch is available
-          http:    g:netrw_http_cmd   = "wget -q -O"  If wget  is available
-           rcp:    *g:netrw_rcp_cmd*  = "rcp"
-         rsync:  *g:netrw_rsync_cmd*  = "rsync -a"
-           scp:    *g:netrw_scp_cmd*  = "scp -q"
-          sftp:   *g:netrw_sftp_cmd*  = "sftp"
-
-    READING                                    *netrw-read* *netrw-nread*
+CONTROLLING EXTERNAL APPLICTIONS                       *netrw-externapp*
+
+       Protocol  Variable          Default Value
+       --------  ----------------  -------------
+          dav:    *g:netrw_dav_cmd*  = "cadaver"
+        fetch:  *g:netrw_fetch_cmd*  = "fetch -o"
+          ftp:    *g:netrw_ftp_cmd*  = "ftp"
+          http:   *g:netrw_http_cmd*  = "fetch -o"    if fetch is available
+         http:    g:netrw_http_cmd   = "wget -q -O"  If wget  is available
+          rcp:    *g:netrw_rcp_cmd*  = "rcp"
+        rsync:  *g:netrw_rsync_cmd*  = "rsync -a"
+          scp:    *g:netrw_scp_cmd*  = "scp -q"
+         sftp:   *g:netrw_sftp_cmd*  = "sftp"
+
+READING                                                *netrw-read* *netrw-nread*
        :Nread ?                                        give help
        :Nread "machine:path"                           uses rcp
-       :Nread "machine path"                           uses ftp   with <.netrc>
+       :Nread "machine path"                           uses ftp w/ <.netrc>
        :Nread "machine id password path"               uses ftp
        :Nread "dav://machine[:port]/path"              uses cadaver
        :Nread "fetch://[user@]machine/path"            uses fetch
-       :Nread "ftp://[user@]machine[[:#]port]/path"    uses ftp   autodetects <.netrc>
+       :Nread "ftp://[user@]machine[[:#]port]/path"    uses ftp w/ <.netrc>
        :Nread "http://[user@]machine/path"             uses http  uses wget
        :Nread "rcp://[user@]machine/path"              uses rcp
        :Nread "rsync://[user@]machine[:port]/path"     uses rsync
        :Nread "scp://[user@]machine[[:#]port]/path"    uses scp
        :Nread "sftp://[user@]machine/path"             uses sftp
 
-    WRITING                                    *netrw-write* *netrw-nwrite*
+WRITING                                                *netrw-write* *netrw-nwrite*
        :Nwrite ?                                       give help
        :Nwrite "machine:path"                          uses rcp
-       :Nwrite "machine path"                          uses ftp   with <.netrc>
+       :Nwrite "machine path"                          uses ftp w/ <.netrc>
        :Nwrite "machine id password path"              uses ftp
        :Nwrite "dav://machine[:port]/path"             uses cadaver
-       :Nwrite "ftp://[user@]machine[[:#]port]/path"   uses ftp   autodetects <.netrc>
+       :Nwrite "ftp://[user@]machine[[:#]port]/path"   uses ftp w/ <.netrc>
        :Nwrite "rcp://[user@]machine/path"             uses rcp
        :Nwrite "rsync://[user@]machine[:port]/path"    uses rsync
        :Nwrite "scp://[user@]machine[[:#]port]/path"   uses scp
        :Nwrite "sftp://[user@]machine/path"            uses sftp
        http: not supported!
 
-    DIRECTORY LISTING
+DIRECTORY LISTING                                      *netrw-dirlist*
        :Nread [protocol]://[user]@hostname/path/
 
-    USER AND PASSWORD CHANGING
+ CHANGING USERID AND PASSWORD                          *netrw-chgup*
        Attempts to use ftp will prompt you for a user-id and a password.
        These will be saved in g:netrw_uid and g:netrw_passwd Subsequent uses
        of ftp will re-use those.  If you need to use a different user id
@@ -135,59 +133,61 @@ in your <.vimrc> file: >
        :call NetUserPass("uid")                -- prompts for password
        :call NetUserPass("uid","password")     -- sets global uid and password
 
-    VARIABLES                                          *netrw-variables*
-       *b:netrw_lastfile*
-                         last file Network-read/written retained on
-                         a per-buffer basis            (supports plain :Nw )
-       *s:netrw_line*
-                         during :Nw/NetWrite, holds current line number
-       *s:netrw_col*
-                         during :Nw/NetWrite, holds current column number
-                         s:netrw_line and s:netrw_col are used to
-                         restore the cursor position on writes
-       *g:netrw_ftp*
-                            if it doesn't exist, use default ftp
-                         =0 use default ftp                   (uid password)
-                         =1 use alternate ftp method     (user uid password)
-       *g:netrw_ftpmode*
-                         ="binary"                                 (default)
-                         ="ascii"
-       *g:netrw_uid*
-                            (ftp) user-id,      retained on a per-session basis
-       *g:netrw_passwd*
-                            (ftp) password,     retained on a per-session basis
-       *g:netrw_win95ftp*
-                         =1 if using Win95, will remove four trailing blank
-                            lines that o/s's ftp "provides" on transfers
-                         =0 force normal ftp behavior (no trailing line
-                            removal)
-       *g:netrw_cygwin*
-                         =1 assume scp under windows is from cygwin
-                            Also permits network browsing to use
-                            ls with time and size sorting
-                                                        (default if windows)
-                         =0 assume Windows' scp accepts windows-style paths
-                            Network browsing uses dir instead of ls
-                         This option is ignored if you're using unix
-       *g:netrw_use_nt_rcp*
-                         =0 don't use the rcp of WinNT, Win2000 and WinXP
-                         =1 use WinNT's rcp in binary mode         (default)
-
-    PATHS                                                      *netrw-path*
-
-       Paths to files are generally user-directory relative for most protocols.
-       It is possible that some protocol will make paths relative to some
-       associated directory, however.
-
-               example:  vim scp://user@host/somefile
-               example:  vim scp://user@host/subdir1/subdir2/somefile
-
-       where "somefile" is the "user"'s home directory.  If you wish to get a
-       file using root-relative paths, use the full path:
-
-               example:  vim scp://user@host//somefile
-               example:  vim scp://user@host//subdir1/subdir2/somefile
+VARIABLES                                              *netrw-variables*
+ *b:netrw_lastfile*    last file Network-read/written retained on a per-buffer
+                       basis           (supports plain :Nw )
 
+ *s:netrw_line*                during :Nw/NetWrite, holds current line number
+ *s:netrw_col*         during :Nw/NetWrite, holds current column number
+                       s:netrw_line and s:netrw_col are used to
+                       restore the cursor position on writes
+
+ *g:netrw_ftp*         if it doesn't exist, use default ftp
+                       =0 use default ftp                     (uid password)
+                       =1 use alternate ftp method       (user uid password)
+                       If you're having trouble with ftp, try changing the
+                       value of this variable to see if the alternate ftp
+                       method works for your setup.
+
+ *g:netrw_ftpmode*     ="binary"                                   (default)
+                       ="ascii"
+
+ *g:netrw_ignorenetrc* =0 (default)
+                       =1 If you have a <.netrc> file but it doesn't work and
+                          you want it ignored, then set this variable as shown.
+
+ *g:netrw_uid*         (ftp) user-id,      retained on a per-session basis
+ *g:netrw_passwd*      (ftp) password,     retained on a per-session basis
+
+ *g:netrw_win95ftp*    =1 if using Win95, will remove four trailing blank
+                          lines that o/s's ftp "provides" on transfers
+                       =0 force normal ftp behavior (no trailing line removal)
+
+ *g:netrw_cygwin*      =1 assume scp under windows is from cygwin. Also
+                          permits network browsing to use ls with time and
+                          size sorting (default if windows)
+                       =0 assume Windows' scp accepts windows-style paths
+                          Network browsing uses dir instead of ls
+                       This option is ignored if you're using unix
+
+ *g:netrw_use_nt_rcp*  =0 don't use the rcp of WinNT, Win2000 and WinXP
+                       =1 use WinNT's rcp in binary mode         (default)
+
+PATHS                                                          *netrw-path*
+
+Paths to files are generally user-directory relative for most protocols.
+It is possible that some protocol will make paths relative to some
+associated directory, however.
+>
+       example:  vim scp://user@host/somefile
+       example:  vim scp://user@host/subdir1/subdir2/somefile
+<
+where "somefile" is the "user"'s home directory.  If you wish to get a
+file using root-relative paths, use the full path:
+>
+       example:  vim scp://user@host//somefile
+       example:  vim scp://user@host//subdir1/subdir2/somefile
+<
 
 ==============================================================================
 2. Network-Oriented File Transfer                              *netrw-xfer*
@@ -391,6 +391,9 @@ additional commands available.
                effectively remove the user-id and password by using ""
                strings.
 
+:NetrwSettings  This command is desribed in |netrw-settings| -- used to
+                display netrw settings and change netrw behavior
+
 
 ==============================================================================
 6. Variables and Options                               *netrw-options* *netrw-var*
@@ -596,6 +599,7 @@ MAPS                                                                *netrw-maps*
      :Vexplore[!] [dir] Vertical Split & Explore.................|netrw-explore|
      :Pexplore[!] [dir] Vertical Split & Explore.................|netrw-explore|
      :Nexplore[!] [dir] Vertical Split & Explore.................|netrw-explore|
+     :NetrwSettings.............................................|netrw-settings|
 
 QUICK REFERENCE COMMANDS TABLE                         *netrw-browse-cmds*
 >
@@ -627,107 +631,102 @@ QUICK REFERENCE COMMANDS TABLE                          *netrw-browse-cmds*
 
 NETRW BROWSER VARIABLES                                        *netrw-browse-var*
 >
-       ---                             -----------
-       Var                             Explanation
-       ---                             -----------
-<      *g:netrw_alto*                  change from above splitting to
-                                       below splitting by setting this
-                                       variable (see |netrw-o|)
-                                        default: =0
-
-       *g:netrw_altv*                  change from left splitting to
-                                       right splitting by setting this
-                                       variable (see |netrw-v|)
-                                        default: =0
-
-       *g:netrw_ftp_browse_reject*     ftp can produce a number of errors
-                                       and warnings that can show up as
-                                       "directories" and "files" in the
-                                       listing.  This pattern is used to
-                                       remove such embedded messages.  By
-                                       default its value is:
-                                        '^total\s\+\d\+$\|
-                                        ^Trying\s\+\d\+.*$\|
-                                        ^KERBEROS_V\d rejected\|
-                                        ^Security extensions not\|
-                                        No such file\|
-                                        : connect to address [0-9a-fA-F:]*
-                                        : No route to host$'
-
-       *g:netrw_ssh_browse_reject*     ssh can sometimes produce unwanted
-                                       lines/messages/banners/and whatnot
-                                       that one doesn't want masquerading
-                                       as "directories" and "files".  Use
-                                       this pattern to remove such embedded
-                                       messages.  By default its value is:
+   ---                         -----------
+   Var                         Explanation
+   ---                         -----------
+< *g:netrw_alto*               change from above splitting to below splitting
+                               by setting this variable (see |netrw-o|)
+                                default: =0
+
+  *g:netrw_altv*               change from left splitting to right splitting
+                               by setting this variable (see |netrw-v|)
+                                default: =0
+
+  *g:netrw_ftp_browse_reject*  ftp can produce a number of errors and warnings
+                               that can show up as "directories" and "files"
+                               in the listing.  This pattern is used to
+                               remove such embedded messages.  By default its
+                               value is:
+                                '^total\s\+\d\+$\|
+                                ^Trying\s\+\d\+.*$\|
+                                ^KERBEROS_V\d rejected\|
+                                ^Security extensions not\|
+                                No such file\|
+                                : connect to address [0-9a-fA-F:]*
+                                : No route to host$'
+
+  *g:netrw_ssh_browse_reject*  ssh can sometimes produce unwanted lines,
+                               messages, banners, and whatnot that one doesn't
+                               want masquerading as "directories" and "files".
+                               Use this pattern to remove such embedded
+                               messages.  By default its value is:
                                         '^total\s\+\d\+$'
 
-       *g:netrw_keepdir*               =1 (default) keep current directory
-                                       immune from the browsing directory.
-                                       =0 keep the current directory the
-                                       same as the browsing directory.
-                                       The browsing directory is contained in
-                                       b:netrw_curdir
+  *g:netrw_keepdir*            =1 (default) keep current directory immune from
+                                  the browsing directory.
+                               =0 keep the current directory the same as the
+                                  browsing directory.
+                               The current browsing directory is contained in
+                               b:netrw_curdir
 
-       *g:netrw_list_cmd*              command for listing remote directories
-                                        default: (if ssh is executable)
-                                                 "ssh HOSTNAME ls -FLa"
+  *g:netrw_list_cmd*           command for listing remote directories
+                                default: (if ssh is executable)
+                                         "ssh HOSTNAME ls -FLa"
 
-       *g:netrw_longlist*              if =1, then long listing will be default
+  *g:netrw_longlist*           if =1, then long listing will be default
 
-       *g:netrw_ftp_list_cmd*          options for passing along to ftp for
-                                       directory listing.  Defaults:
-                                        unix or g:netrw_cygwin set: : "ls -lF"
-                                        otherwise                     "dir"
+  *g:netrw_ftp_list_cmd*       options for passing along to ftp for directory
+                               listing.  Defaults:
+                                unix or g:netrw_cygwin set: : "ls -lF"
+                                otherwise                     "dir"
 
-       *g:netrw_list_hide*             comma separated list of patterns for
-                                       hiding files
-                                        default: ""
+  *g:netrw_list_hide*          comma separated pattern list for hiding files
+                                default: ""
 
-       *g:netrw_local_mkdir*           command for making a local directory
-                                        default: "ssh HOSTNAME mkdir"
+  *g:netrw_local_mkdir*                command for making a local directory
+                                default: "ssh HOSTNAME mkdir"
 
-       *g:netrw_local_rmdir*           remove directory command (rmdir)
-                                        default: "rmdir"
+  *g:netrw_local_rmdir*                remove directory command (rmdir)
+                                default: "rmdir"
 
-       *g:netrw_maxfilenamelen*        =32 by default, selected so as to make
-                                       long listings fit on 80 column displays.
-                                       If your screen is wider, and you have
-                                       file/directory names longer than 32 bytes,
-                                       you may set this option to keep listings
-                                       columnar.
+  *g:netrw_maxfilenamelen*     =32 by default, selected so as to make long
+                                   listings fit on 80 column displays.
+                               If your screen is wider, and you have file
+                               or directory names longer than 32 bytes,
+                               you may set this option to keep listings
+                               columnar.
 
-       *g:netrw_mkdir_cmd*             command for making a remote directory
-                                        default: "ssh HOSTNAME mkdir"
+  *g:netrw_mkdir_cmd*          command for making a remote directory
+                                default: "ssh HOSTNAME mkdir"
 
-       *g:netrw_rm_cmd*                command for removing files
-                                        default: "ssh HOSTNAME rm"
+  *g:netrw_rm_cmd*             command for removing files
+                                default: "ssh HOSTNAME rm"
 
-       *g:netrw_rmdir_cmd*             command for removing directories
-                                        default: "ssh HOSTNAME rmdir"
+  *g:netrw_rmdir_cmd*          command for removing directories
+                                default: "ssh HOSTNAME rmdir"
 
-       *g:netrw_rmf_cmd*                command for removing softlinks
-                                        default: "ssh HOSTNAME rm -f"
+  *g:netrw_rmf_cmd*             command for removing softlinks
+                                default: "ssh HOSTNAME rm -f"
 
-       *g:netrw_hide*                  if true, the hiding list is used
-                                        default: =0
+  *g:netrw_hide*                       if true, the hiding list is used
+                                default: =0
 
-       *g:netrw_sort_by*               sort by "name", "time", or "size"
-                                        default: "name"
+  *g:netrw_sort_by*            sort by "name", "time", or "size"
+                                default: "name"
 
-       *g:netrw_sort_direction*        sorting direction: "normal" or "reverse"
-                                        default: "normal"
+  *g:netrw_sort_direction*     sorting direction: "normal" or "reverse"
+                                default: "normal"
 
-       *g:netrw_sort_sequence*         when sorting by name, first sort by the
-                                       comma-separated pattern sequence
-                                        default: '[\/]$,*,\.bak$,\.o$,\.h$,
-                                                  \.info$,\.swp$,\.obj$'
+  *g:netrw_sort_sequence*      when sorting by name, first sort by the
+                               comma-separated pattern sequence
+                                default: '[\/]$,*,\.bak$,\.o$,\.h$,
+                                          \.info$,\.swp$,\.obj$'
 
-       *g:netrw_timefmt*               specify format string to strftime() (%c)
-                                        default: "%c"
+  *g:netrw_timefmt*            specify format string to strftime() (%c)
+                                default: "%c"
 
-       *g:netrw_winsize*               specify initial size of new o/v windows
-                                        default: ""
+  *g:netrw_winsize*            specify initial size of new o/v windows
+                                default: ""
 
 INTRODUCTION TO DIRECTORY BROWSING                     *netrw-browse-intro*
 
@@ -1011,12 +1010,20 @@ in your <.vimrc>.
 CUSTOMIZING BROWSING WITH A USER FUNCTION              *netrw-x* *netrw-handler*
 
 One may "enter" a file with a special handler, thereby firing up a browser or
-other application, for example, on a file by hitting the "x" key.  Presumably
-one could write handlers that would start OpenOffice programs (oowriter), etc,
-based on the file's extension coupled with the user's hitting the "x" key atop
-the file.
+other application, for example, on a file by hitting the "x" key.  The special
+handler varies:
+
+  * for Windows 32 or 64, the url and FileProtocolHandler dlls are used.  
+  * for KDE (with kfmclient): kfmclient is used.
+  * for Gnome (with gnome-open): gnome-open is used.
+  * otherwise the NetrwFileHandler plugin is used.
 
-The Netrw executor applies a user-defined function to a file, based on its
+The file's suffix is used by these various approaches to determine an
+appropriate application to use to "handle" these files.  Such things
+as OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript
+(*.ps, *.eps) can be handled.
+
+The NetrwFileHandler applies a user-defined function to a file, based on its
 extension.  Of course, the handler function must exist for it to be called!
 >
  Ex. mypgm.html   x ->
@@ -1025,6 +1032,11 @@ extension.  Of course, the handler function must exist for it to be called!
 See the <plugin/NetrwFileHandlers.vim> for an example of how to handle an html
 file with mozilla.
 
+One may write custom NetrwFileHandlers; please look at the
+plugin/NetrwFileHandlers.vim script for examples.  If its likely to be
+generally useful, please feel free to forward a copy to me for future
+inclusion in the distribution.
+
 
 MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY    *netrw-c* *netrw-curdir*
 
@@ -1078,6 +1090,16 @@ It gives a tip for setting up password-less use of ssh and scp, and discusses
 the associated security issues.
 
 
+NETRW SETTINGS                                         *netrw-settings*
+
+With the NetrwSettings.vim plugin, >
+       :NetrwSettings
+will bring up a window with the many variables that netrw uses for its
+settings.  You may change any of their values; when you save the file,
+the settings therein will be used.  One may also press "?" on any of
+the lines for help on what each of the variables do.
+
+
 ==============================================================================
 8. Problems and Fixes                                          *netrw-problems*
 
@@ -1195,6 +1217,13 @@ which is loaded automatically at startup (assuming :set nocp).
 ==============================================================================
 10. History                                            *netrw-history*
 
+       v63: * netrw now takes advantage of autoload (and requires 7.0)
+            * Bugfix - using r (to reverse sort) working again
+       v62: * Bugfix - spaces allowed again in directory names with
+              g:netrw_keepdir=0.  In fact, I've tested netrw (again)
+              with most ANSI punctuation marks for directory names.
+            * Bugfix - NetrwSettings gave errors when g:netrw_silent
+              had not be set.
        v61: * document upgrade -- netrw variable-based settings all should
               have tags.  Supports NetrwSettings command.
             * several important variables are window-oriented.  Netrw has
index 05252916a9f26f85e47f79e27a4b8dc57e7ea75a..929c1060a02ccf3749f10839a40e15723f919762 100644 (file)
@@ -1,4 +1,4 @@
-*spell.txt*    For Vim version 7.0aa.  Last change: 2005 Aug 15
+*spell.txt*    For Vim version 7.0aa.  Last change: 2005 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -195,6 +195,7 @@ regions.  You can change that by manually editing the 'spellfile'.  See
 'spellfile' are only used when all entries in "spelllang" specify the same
 region (not counting files specified by their .spl name).
 
+                                                       *spell-german*
 Specific exception: For German these special regions are used:
        de              all German words accepted
        de_de           old and new spelling
@@ -203,6 +204,16 @@ Specific exception: For German these special regions are used:
        de_at           Austria
        de_ch           Switzerland
 
+                                                       *spell-yiddish*
+Yiddish requires using "utf-8" encoding, because of the special characters
+used.  If you are using latin1 Vim will use transliterated (romanized) Yiddish
+instead.  If you want to use transliterated Yiddish with utf-8 use "yi-tr".
+In a table:
+       'encoding'      'spelllang'
+       utf-8           yi              Yiddish
+       latin1          yi              transliterated Yiddish
+       utf-8           yi-tr           transliterated Yiddish
+
 
 SPELL FILES                                            *spell-load*
 
@@ -901,9 +912,11 @@ Sometimes it is necessary to change a word when concatenating it to another,
 by removing a few letters, inserting something or both.  It can also be useful
 to restrict concatenation to words that match a pattern.  For this purpose CMP
 items can be used.  They look like this:
-       CMP {flag} {strip} {add} {cond} {cond2}
+       CMP {flag} {flags} {strip} {add} {cond} {cond2}
 
        {flag}          the flag, as used in COMPOUNDFLAGS for the lead word
+       {flags}         accepted flags for the following word ('.' to accept
+                       all)
        {strip}         text to remove from the end of the lead word (zero
                        for no stripping)
        {add}           text to insert between the words (zero for no
@@ -911,9 +924,9 @@ items can be used.  They look like this:
        {cond}          condition to match at the end of the lead word
        {cond2}         condition to match at the start of the following word
 
-This is exactly the same as what is used for SFX and PFX items, except there
-is an extra condition.  Example:
-       CMP f 0 - . . ~
+This is the same as what is used for SFX and PFX items, with the extra {flags}
+and {cond2} fields.  Example:
+       CMP f mrt 0 - . . ~
 
 When used with the food and dish word list above, this means that a dash is
 inserted after each food item.  Thus you get "onion-soup" and
@@ -924,7 +937,7 @@ when a CMP item matches.
 
 When there are no CMP items for a compound flag, then all words will be
 concatenated, as if there was an item:
-       CMP {flag} 0 0 . .
+       CMP {flag} 0 0 . .
 
 
 REPLACEMENTS                                           *spell-affix-REP*
index 18f60888b30bb4cc0bb0bce2e19a18c5c6896628..118e324f3763e79896a1935e3db061719781ce71 100644 (file)
@@ -1827,6 +1827,7 @@ $VIMRUNTIME       starting.txt    /*$VIMRUNTIME*
 :command       map.txt /*:command*
 :command-completion    map.txt /*:command-completion*
 :command-completion-custom     map.txt /*:command-completion-custom*
+:command-verbose       map.txt /*:command-verbose*
 :comment       eval.txt        /*:comment*
 :comp  quickfix.txt    /*:comp*
 :compiler      quickfix.txt    /*:compiler*
@@ -1982,6 +1983,7 @@ $VIMRUNTIME       starting.txt    /*$VIMRUNTIME*
 :for   eval.txt        /*:for*
 :fu    eval.txt        /*:fu*
 :function      eval.txt        /*:function*
+:function-verbose      eval.txt        /*:function-verbose*
 :g     repeat.txt      /*:g*
 :global        repeat.txt      /*:global*
 :go    motion.txt      /*:go*
@@ -5006,6 +5008,7 @@ g:netrw_ftp_list_cmd      pi_netrw.txt    /*g:netrw_ftp_list_cmd*
 g:netrw_ftpmode        pi_netrw.txt    /*g:netrw_ftpmode*
 g:netrw_hide   pi_netrw.txt    /*g:netrw_hide*
 g:netrw_http_cmd       pi_netrw.txt    /*g:netrw_http_cmd*
+g:netrw_ignorenetrc    pi_netrw.txt    /*g:netrw_ignorenetrc*
 g:netrw_keepdir        pi_netrw.txt    /*g:netrw_keepdir*
 g:netrw_list_cmd       pi_netrw.txt    /*g:netrw_list_cmd*
 g:netrw_list_hide      pi_netrw.txt    /*g:netrw_list_hide*
@@ -5208,6 +5211,7 @@ hebrew    hebrew.txt      /*hebrew*
 hebrew.txt     hebrew.txt      /*hebrew.txt*
 help   various.txt     /*help*
 help-context   help.txt        /*help-context*
+help-tags      tags    1
 help-translated        various.txt     /*help-translated*
 help-xterm-window      various.txt     /*help-xterm-window*
 help.txt       help.txt        /*help.txt*
@@ -5790,6 +5794,7 @@ netrw-browse-intro        pi_netrw.txt    /*netrw-browse-intro*
 netrw-browse-var       pi_netrw.txt    /*netrw-browse-var*
 netrw-c        pi_netrw.txt    /*netrw-c*
 netrw-cadaver  pi_netrw.txt    /*netrw-cadaver*
+netrw-chgup    pi_netrw.txt    /*netrw-chgup*
 netrw-contents pi_netrw.txt    /*netrw-contents*
 netrw-cr       pi_netrw.txt    /*netrw-cr*
 netrw-credits  pi_netrw.txt    /*netrw-credits*
@@ -5799,6 +5804,7 @@ netrw-d   pi_netrw.txt    /*netrw-d*
 netrw-debug    pi_netrw.txt    /*netrw-debug*
 netrw-delete   pi_netrw.txt    /*netrw-delete*
 netrw-dir      pi_netrw.txt    /*netrw-dir*
+netrw-dirlist  pi_netrw.txt    /*netrw-dirlist*
 netrw-downdir  pi_netrw.txt    /*netrw-downdir*
 netrw-edithide pi_netrw.txt    /*netrw-edithide*
 netrw-ex       pi_netrw.txt    /*netrw-ex*
@@ -5846,6 +5852,7 @@ netrw-ref pi_netrw.txt    /*netrw-ref*
 netrw-rename   pi_netrw.txt    /*netrw-rename*
 netrw-reverse  pi_netrw.txt    /*netrw-reverse*
 netrw-s        pi_netrw.txt    /*netrw-s*
+netrw-settings pi_netrw.txt    /*netrw-settings*
 netrw-sexplore pi_netrw.txt    /*netrw-sexplore*
 netrw-sort     pi_netrw.txt    /*netrw-sort*
 netrw-sortsequence     pi_netrw.txt    /*netrw-sortsequence*
@@ -6375,6 +6382,7 @@ spec_chglog_release_info  pi_spec.txt     /*spec_chglog_release_info*
 special-buffers        windows.txt     /*special-buffers*
 speed-up       tips.txt        /*speed-up*
 spell  spell.txt       /*spell*
+spell-CMP      spell.txt       /*spell-CMP*
 spell-COMPOUNDFLAG     spell.txt       /*spell-COMPOUNDFLAG*
 spell-COMPOUNDFLAGS    spell.txt       /*spell-COMPOUNDFLAGS*
 spell-COMPOUNDMIN      spell.txt       /*spell-COMPOUNDMIN*
@@ -6398,7 +6406,9 @@ spell-affix-compound      spell.txt       /*spell-affix-compound*
 spell-affix-mbyte      spell.txt       /*spell-affix-mbyte*
 spell-affix-vim        spell.txt       /*spell-affix-vim*
 spell-dic-format       spell.txt       /*spell-dic-format*
+spell-double-scoring   spell.txt       /*spell-double-scoring*
 spell-file-format      spell.txt       /*spell-file-format*
+spell-german   spell.txt       /*spell-german*
 spell-load     spell.txt       /*spell-load*
 spell-midword  spell.txt       /*spell-midword*
 spell-mkspell  spell.txt       /*spell-mkspell*
@@ -6406,6 +6416,7 @@ spell-quickstart  spell.txt       /*spell-quickstart*
 spell-remarks  spell.txt       /*spell-remarks*
 spell-syntax   spell.txt       /*spell-syntax*
 spell-wordlist-format  spell.txt       /*spell-wordlist-format*
+spell-yiddish  spell.txt       /*spell-yiddish*
 spell.txt      spell.txt       /*spell.txt*
 spellbadword() eval.txt        /*spellbadword()*
 spellsuggest() eval.txt        /*spellsuggest()*
index 1f82ecc1a28a20ca128c8ce2b1a787ebfa942722..24349231d642358276b95205628b7bfe2f82c5cc 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Aug 15
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -31,9 +31,11 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 -------------------- Known bugs and current work -----------------------
 
 Spelling:
-- suggestions for compound words.
-- Implement multiple flags for compound words.  Await comments from other
-  spell checking authors.
+- Prefer SpellBad over SpellCap highlighting.
+- Add limit for number of suggestions to 'spellsuggest'?
+- CTRL-X s in Insert mode: move cursor back to after badly spelled word?
+- Implement multiple flags for compound words and CMP item.
+  Await comments from other spell checking authors.
 
 Mac unicode patch (Da Woon Jung):
 - selecting proportional font breaks display
index a1c537fd69c0ad8ff13a1cbefed5561eb3f3419c..dce51bd8d5c3405d73d0aeaddfc17d0dd83f76f4 100644 (file)
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Aug 15
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -561,8 +561,8 @@ For xterm most combinations of modifiers with function keys are recognized.
 
 When 'verbose' is set the output of ":highlight" will show where a highlight
 item was last set.
-When 'verbose' is set the output of ":map" will show where a key map was
-last defined. (Yegappan Lakshmanan)
+When 'verbose' is set the output of ":map", ":command" and ":function"
+commands will show where it was last defined. (Yegappan Lakshmanan)
 
 ==============================================================================
 IMPROVEMENTS                                           *improvements-7*
@@ -1292,4 +1292,9 @@ Searching for a pattern backwards, starting on the NUL at the end of the line
 and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
 Affected searchpair('/\*', '', '\*/').
 
+For the Find/Replace dialog it was possible that not finding the text resulted
+in an error message while redrawing, which cleared the syntax highlighting
+while it was being used, resulting in a crash.  Now don't clear syntax
+highlighting, disable it with b_syn_error.
+
  vim:tw=78:ts=8:ft=help:norl:
index 560c479d2a520178daee9e6b4e25119aa63f6d4a..96c06e4d8b25e23712246f950715e0c59c962bc6 100644 (file)
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Aug 15
+" Last Change: 2005 Aug 16
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1833,7 +1833,7 @@ au BufNewFile,BufRead *.y                 call s:FTy()
 fun! s:FTy()
   let n = 1
   while n < 10 && n < line("$")
-    if getline(n) =~ '^\s*\(#\|class\>\)'
+    if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
       setf racc
       return
     endif
index 52607235ce0db5693d1c69766df66a33bc7e77bf..f4ed1b5283a14910c3ef08e91db4e5b68584e153 100644 (file)
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Jul 30
+" Last Change: 2005 Aug 16
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -198,10 +198,10 @@ an 20.405  &Edit.-SEP2-                           <Nop>
 if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
   an 20.410     &Edit.&Find\.\.\.                      :promptfind<CR>
   vunmenu       &Edit.&Find\.\.\.
-  vnoremenu     &Edit.&Find\.\.\.                      y:promptfind <C-R>"<CR>
+  vnoremenu <silent>    &Edit.&Find\.\.\.                      y:call <SID>FixFText()<CR>:promptfind <C-R>"<CR>
   an 20.420     &Edit.Find\ and\ Rep&lace\.\.\.        :promptrepl<CR>
   vunmenu       &Edit.Find\ and\ Rep&lace\.\.\.
-  vnoremenu     &Edit.Find\ and\ Rep&lace\.\.\.        y:promptrepl <C-R>"<CR>
+  vnoremenu <silent>    &Edit.Find\ and\ Rep&lace\.\.\.        y:call <SID>FixFText()<CR>:promptrepl <C-R>"<CR>
 else
   an 20.410     &Edit.&Find<Tab>/                      /
   an 20.420     &Edit.Find\ and\ Rep&lace<Tab>:%s      :%s/
@@ -212,6 +212,11 @@ endif
 an 20.425       &Edit.-SEP3-                           <Nop>
 an 20.430       &Edit.Settings\ &Window                :options<CR>
 
+fun! s:FixFText()
+  " Fix text in nameless register to be used with :promptfind.
+  let @" = substitute(@", "[\r\n]", '\\n', 'g')
+endfun
+
 " Edit/Global Settings
 an 20.440.100 &Edit.&Global\ Settings.Toggle\ Pattern\ &Highlight<Tab>:set\ hls!       :set hls! hls?<CR>
 an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignore-case<Tab>:set\ ic!       :set ic! ic?<CR>
index 9b9cd2060a65db59388a870ae4fb3b33407218ef..2aa1d9b83a91715481f70763b42e38dd9a6c2afd 100644 (file)
@@ -1,25 +1,28 @@
 " NetrwFileHandlers: contains various extension-based file handlers for
 "                    netrw's browsers' x command ("eXecute launcher")
 " Author:      Charles E. Campbell, Jr.
-" Date:                Aug 08, 2005
-" Version:     5a      NOT RELEASED
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr.
+" Date:                Aug 15, 2005
+" Version:     6
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
 "               Permission is hereby granted to use and distribute this code,
 "               with or without modifications, provided that this copyright
 "               notice is copied with it. Like anything else that's free,
-"               netrw.vim is provided *as is* and comes with no
+"               NetrwFileHandlers.vim is provided *as is* and comes with no
 "               warranty of any kind, either expressed or implied. In no
 "               event will the copyright holder be liable for any damages
 "               resulting from the use of this software.
+"
+" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
+"                is eternal life in Christ Jesus our Lord.
 
 " ---------------------------------------------------------------------
 " Load Once: {{{1
-if exists("g:loaded_netrwfilehandlers") || &cp
+if exists("g:loaded_NetrwFileHandlers") || &cp
  finish
 endif
 let s:keepcpo= &cpo
 set cpo&vim
-let g:loaded_netrwfilehandlers= "v5a"
+let g:loaded_NetrwFileHandlers= "v6"
 
 " ---------------------------------------------------------------------
 " NetrwFileHandler_html: handles html when the user hits "x" when the {{{1
@@ -173,21 +176,6 @@ fun! NetrwFileHandler_pdf(pdf)
   return 1
 endfun
 
-" ---------------------------------------------------------------------
-" NetrwFileHandler_sxw: visualize sxw files {{{1
-fun! NetrwFileHandler_sxw(sxw)
-"  " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
-  if executable("gs")
-   exe 'silent! !gs "'.a:sxw.'"'
-  else
-"   " call Dret("NetrwFileHandler_sxw 0")
-   return 0
-  endif
-
-"  " call Dret("NetrwFileHandler_sxw 1")
-  return 1
-endfun
-
 " ---------------------------------------------------------------------
 " NetrwFileHandler_doc: visualize doc files {{{1
 fun! NetrwFileHandler_doc(doc)
diff --git a/runtime/plugin/NetrwPlugin.vim b/runtime/plugin/NetrwPlugin.vim
new file mode 100644 (file)
index 0000000..b1f5abd
--- /dev/null
@@ -0,0 +1,156 @@
+" netrw.vim: Handles file transfer and remote directory listing across a network
+"            PLUGIN PORTION
+" Last Change: Aug 16, 2005
+" Maintainer:  Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version:     63
+" License:     Vim License  (see vim's :help license)
+" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+"               Permission is hereby granted to use and distribute this code,
+"               with or without modifications, provided that this copyright
+"               notice is copied with it. Like anything else that's free,
+"               netrw.vim is provided *as is* and comes with no warranty
+"               of any kind, either expressed or implied. By using this
+"               plugin, you agree that in no event will the copyright
+"               holder be liable for any damages resulting from the use
+"               of this software.
+"
+"  But be doers of the Word, and not only hearers, deluding your own selves {{{1
+"  (James 1:22 RSV)
+" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if exists("g:loaded_netrw") || &cp
+  finish
+endif
+if v:version < 600
+ echoerr "***netrw*** doesn't support Vim version ".v:version
+ finish
+endif
+let g:loaded_netrw  = "v63"
+if v:version < 700
+ let loaded_explorer = 1
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+" ---------------------------------------------------------------------
+" Public Interface: {{{1
+
+" Local Browsing: {{{2
+augroup FileExplorer
+ au!
+ au BufEnter * call s:LocalBrowse(expand("<amatch>"))
+augroup END
+
+" Network Browsing Reading Writing: {{{2
+augroup Network
+ au!
+ if has("win32") || has("win95") || has("win64") || has("win16")
+  au BufReadCmd  file://*              exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ else
+  au BufReadCmd  file:///*             exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+  au BufReadCmd  file://localhost/*    exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ endif
+ au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*   exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*   exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread "   .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
+ au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*            exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*            exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
+augroup END
+
+" Commands: :Nread, :Nwrite, :NetUserPass {{{2
+com! -nargs=*          Nread           call netrw#NetSavePosn()<bar>call netrw#NetRead(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -range=% -nargs=* Nwrite          call netrw#NetSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -nargs=*          NetUserPass     call NetUserPass(<f-args>)
+
+" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
+com! -nargs=? -bar -bang -count=0      Explore         call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0      Sexplore        call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0      Hexplore        call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0      Vexplore        call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
+com! -nargs=? -bar -bang               Nexplore        call netrw#Explore(-1,0,0,<q-args>)
+com! -nargs=? -bar -bang               Pexplore        call netrw#Explore(-2,0,0,<q-args>)
+
+" Commands: NetrwSettings {{{2
+com! -nargs=0 NetrwSettings :call NetrwSettings#NetrwSettings()
+
+" ---------------------------------------------------------------------
+" LocalBrowse: {{{2
+fun! s:LocalBrowse(dirname)
+  " unfortunate interaction -- debugging calls can't be used here;
+  " the BufEnter event causes triggering when attempts to write to
+  " the DBG buffer are made.
+  if isdirectory(a:dirname)
+   call netrw#DirBrowse(a:dirname)
+  endif
+  " not a directory, ignore it
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwStatusLine: {{{1
+fun! NetrwStatusLine()
+"  let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr(".")." Xline#".w:netrw_explore_line." line#".line(".")
+  if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr(".") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
+   let &stl= s:netrw_explore_stl
+   if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
+   if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
+   return ""
+  else
+   return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
+  endif
+endfun
+
+" ------------------------------------------------------------------------
+" NetUserPass: set username and password for subsequent ftp transfer {{{1
+"   Usage:  :call NetUserPass()                        -- will prompt for userid and password
+"          :call NetUserPass("uid")            -- will prompt for password
+"          :call NetUserPass("uid","password") -- sets global userid and password
+fun! NetUserPass(...)
+
+ " get/set userid
+ if a:0 == 0
+"  call Dfunc("NetUserPass(a:0<".a:0.">)")
+  if !exists("g:netrw_uid") || g:netrw_uid == ""
+   " via prompt
+   let g:netrw_uid= input('Enter username: ')
+  endif
+ else  " from command line
+"  call Dfunc("NetUserPass(a:1<".a:1.">) {")
+  let g:netrw_uid= a:1
+ endif
+
+ " get password
+ if a:0 <= 1 " via prompt
+"  call Decho("a:0=".a:0." case <=1:")
+  let g:netrw_passwd= inputsecret("Enter Password: ")
+ else " from command line
+"  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
+  let g:netrw_passwd=a:2
+ endif
+"  call Dret("NetUserPass")
+endfun
+
+" ------------------------------------------------------------------------
+" NetReadFixup: this sort of function is typically written by the user {{{1
+"               to handle extra junk that their system's ftp dumps
+"               into the transfer.  This function is provided as an
+"               example and as a fix for a Windows 95 problem: in my
+"               experience, win95's ftp always dumped four blank lines
+"               at the end of the transfer.
+if has("win95") && g:netrw_win95ftp
+ fun! NetReadFixup(method, line1, line2)
+"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
+   if method == 3   " ftp (no <.netrc>)
+    let fourblanklines= line2 - 3
+    silent fourblanklines.",".line2."g/^\s*/d"
+   endif
+"   call Dret("NetReadFixup")
+ endfun
+endif
+
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" ------------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/plugin/NetrwSettings.vim b/runtime/plugin/NetrwSettings.vim
new file mode 100644 (file)
index 0000000..eecdcd2
--- /dev/null
@@ -0,0 +1,157 @@
+" NetrwSettings.vim: makes netrw settings simpler
+" Last Change: Aug 16, 2005
+" Maintainer:  Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version:             3
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+"               Permission is hereby granted to use and distribute this code,
+"               with or without modifications, provided that this copyright
+"               notice is copied with it. Like anything else that's free,
+"               NetrwSettings.vim is provided *as is* and comes with no
+"               warranty of any kind, either expressed or implied. By using
+"               this plugin, you agree that in no event will the copyright
+"               holder be liable for any damages resulting from the use
+"               of this software.
+"
+" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
+"                synagogues, preaching the gospel of the kingdom, and healing
+"                every disease and every sickness among the people.
+" Load Once: {{{1
+if exists("g:loaded_NetrwSettings") || &cp
+  finish
+endif
+let g:loaded_NetrwSettings  = "v3"
+
+" ---------------------------------------------------------------------
+" NetrwSettings: {{{1
+fun! NetrwSettings#NetrwSettings()
+  " this call is here largely just to insure that netrw has been loaded
+  call netrw#NetSavePosn()
+
+  above wincmd s
+  enew
+  setlocal noswapfile bh=wipe
+  set ft=vim
+  file Netrw\ Settings
+
+  " these variables have the following default effects when they don't
+  " exist (ie. have not been set by the user in his/her .vimrc)
+  if !exists("g:netrw_longlist")
+   let g:netrw_longlist= 0
+   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+  endif
+  if !exists("g:netrw_silent")
+   let g:netrw_silent= 0
+  endif
+  if !exists("g:netrw_use_nt_rcp")
+   let g:netrw_use_nt_rcp= 0
+  endif
+  if !exists("g:netrw_ftp")
+   let g:netrw_ftp= 0
+  endif
+  if !exists("g:netrw_ignorenetrc")
+   let g:netrw_ignorenetrc= 0
+  endif
+
+  put ='+ ---------------------------------------------'
+  put ='+ NetrwSettings:  (by Charles E. Campbell, Jr.)'
+  put ='+  Press ? with cursor atop any line for help  '
+  put ='+ ---------------------------------------------'
+  let s:netrw_settings_stop= line(".")
+
+  put =''
+  put ='+ Netrw Protocol Commands'
+  put = 'let g:netrw_dav_cmd           = '.g:netrw_dav_cmd
+  put = 'let g:netrw_fetch_cmd         = '.g:netrw_fetch_cmd
+  put = 'let g:netrw_ftp_cmd           = '.g:netrw_ftp_cmd
+  put = 'let g:netrw_http_cmd          = '.g:netrw_http_cmd
+  put = 'let g:netrw_rcp_cmd           = '.g:netrw_rcp_cmd
+  put = 'let g:netrw_rsync_cmd         = '.g:netrw_rsync_cmd
+  put = 'let g:netrw_scp_cmd           = '.g:netrw_scp_cmd
+  put = 'let g:netrw_sftp_cmd          = '.g:netrw_sftp_cmd
+  let s:netrw_protocol_stop= line(".")
+  put = ''
+
+  put ='+Netrw Transfer Control'
+  put = 'let g:netrw_cygwin            = '.g:netrw_cygwin
+  put = 'let g:netrw_ftp               = '.g:netrw_ftp
+  put = 'let g:netrw_ftpmode           = '.g:netrw_ftpmode
+  put = 'let g:netrw_ignorenetrc       = '.g:netrw_ignorenetrc
+  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
+  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
+  let s:netrw_xfer_stop= line(".")
+
+  put = ''
+  put ='+ Netrw Browser Control'
+  put = 'let g:netrw_alto              = '.g:netrw_alto
+  put = 'let g:netrw_altv              = '.g:netrw_altv
+  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
+  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
+  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
+  put = 'let g:netrw_hide              = '.g:netrw_hide
+  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
+  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
+  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
+  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
+  put = 'let g:netrw_local_mkdir       = '.g:netrw_local_mkdir
+  put = 'let g:netrw_local_rmdir       = '.g:netrw_local_rmdir
+  put = 'let g:netrw_longlist          = '.g:netrw_longlist
+  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
+  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
+  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
+  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
+  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
+  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
+  put = 'let g:netrw_silent            = '.g:netrw_silent
+  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
+  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
+  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
+  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
+  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
+  put = 'let g:netrw_winsize           = '.g:netrw_winsize
+
+  put =''
+  put ='+ For help, place cursor on line and press ?'
+
+  1d
+  silent %s/^+/"/e
+  res 99
+  silent %s/= \([^0-9].*\)$/= '\1'/e
+  silent %s/= $/= ''/e
+  1
+
+  set nomod
+
+  map <buffer> <silent> ? :call NetrwSettingHelp()<cr>
+  let tmpfile= tempname()
+  exe 'au BufWriteCmd  Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwSettingHelp: {{{2
+fun! NetrwSettingHelp()
+"  call Dfunc("NetrwSettingHelp()")
+  let curline = getline(".")
+  if curline =~ '='
+   let varhelp = substitute(curline,'^\s*let ','','e')
+   let varhelp = substitute(varhelp,'\s*=.*$','','e')
+"   call Decho("trying help ".varhelp)
+   try
+    exe "he ".varhelp
+   catch /^Vim\%((\a\+)\)\=:E149/
+       echo "***sorry*** no help available for <".varhelp.">"
+   endtry
+  elseif line(".") < s:netrw_settings_stop
+   he netrw-settings
+  elseif line(".") < s:netrw_protocol_stop
+   he netrw-externapp
+  elseif line(".") < s:netrw_xfer_stop
+   he netrw-variables
+  else
+   he netrw-browse-var
+  endif
+"  call Dret("NetrwSettingHelp")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
index d393c5fe673493ebe4aa700751159c13424c7049..ec5382509f5b2540c845d1ccea3b4042eb5c2fda 100644 (file)
@@ -11,11 +11,11 @@ FILES    = af_ZA.aff af_ZA.dic
 
 all: $SPELLDIR/af.latin1.spl $SPELLDIR/af.utf-8.spl ../README_af.txt
 
-$SPELLDIR/af.latin1.spl : $VIM $FILES
+$SPELLDIR/af.latin1.spl : $FILES
         :sys env LANG=af_ZA.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/af af_ZA" -c q
 
-$SPELLDIR/af.utf-8.spl : $VIM $FILES
+$SPELLDIR/af.utf-8.spl : $FILES
         :sys env LANG=af_ZA.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/af af_ZA" -c q
 
index 7849526ed0065d2e49b4e52b27bda7e27877aefd..5d984be51e2334da4fff930bb25a309d8328867b 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for Czech Vim spell files.
+# Aap recipe for Bulgarian Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -11,14 +11,15 @@ FILES    = bg_BG.aff bg_BG.dic
 
 all: $SPELLDIR/bg.cp1251.spl $SPELLDIR/bg.utf-8.spl ../README_bg.txt
 
-$SPELLDIR/bg.cp1251.spl : $VIM $FILES
+$SPELLDIR/bg.cp1251.spl : $FILES
         :sys env LANG=bg_BG.CP1251 $VIM -u NONE -e -c "mkspell! $SPELLDIR/bg bg_BG" -c q
 
-$SPELLDIR/bg.utf-8.spl : $VIM $FILES
+$SPELLDIR/bg.utf-8.spl : $FILES
         :sys env LANG=bg_BG.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/bg bg_BG" -c q
 
 ../README_bg.txt: README_bg_BG.txt
         :copy $source $target
+        :sys $VIM $target -e -c "set ff=unix" -c wq
 
 #
 # Fetching the files from OpenOffice.org.
index b2f7350b6d54abc4aed241cff65ad2eec57f2881..2182f29164696563ea5d8704e03863bfbd2bd7f3 100644 (file)
@@ -11,11 +11,11 @@ FILES    = ca_ES.aff ca_ES.dic
 
 all: $SPELLDIR/ca.latin1.spl $SPELLDIR/ca.utf-8.spl ../README_ca.txt
 
-$SPELLDIR/ca.latin1.spl : $VIM $FILES
+$SPELLDIR/ca.latin1.spl : $FILES
         :sys env LANG=ca_ES.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/ca ca_ES" -c q
 
-$SPELLDIR/ca.utf-8.spl : $VIM $FILES
+$SPELLDIR/ca.utf-8.spl : $FILES
         :sys env LANG=ca_ES.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/ca ca_ES" -c q
 
index 5ead6d0a332756a7bac5b29e773e720287e68aed..53ae46fea131fd3882606c5ef35d8f4490e22cd6 100644 (file)
@@ -12,13 +12,13 @@ FILES    = cs_CZ.aff cs_CZ.dic
 all: $SPELLDIR/cs.iso-8859-2.spl $SPELLDIR/cs.utf-8.spl \
         $SPELLDIR/cs.cp1250.spl ../README_cs.txt
 
-$SPELLDIR/cs.iso-8859-2.spl : $VIM $FILES
+$SPELLDIR/cs.iso-8859-2.spl : $FILES
         :sys env LANG=cs_CZ.ISO8859-2 $VIM -u NONE -e -c "mkspell! $SPELLDIR/cs cs_CZ" -c q
 
-$SPELLDIR/cs.utf-8.spl : $VIM $FILES
+$SPELLDIR/cs.utf-8.spl : $FILES
         :sys env LANG=cs_CZ.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/cs cs_CZ" -c q
 
-$SPELLDIR/cs.cp1250.spl : $VIM $FILES
+$SPELLDIR/cs.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/cs cs_CZ" -c q
 
 ../README_cs.txt: README_cs_CZ.txt
diff --git a/runtime/spell/da/da_DK.diff b/runtime/spell/da/da_DK.diff
new file mode 100644 (file)
index 0000000..afcb8d3
--- /dev/null
@@ -0,0 +1,16 @@
+*** da_DK.orig.aff     Sun Aug 14 20:04:31 2005
+--- da_DK.aff  Mon Aug 15 14:03:06 2005
+***************
+*** 6,7 ****
+--- 6,16 ----
+  
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD      '-
++ 
+  # Foranstilling af u-
index 53e3716483c655195c57dd847d269b0ce5fba092..b84a80f9324b362916492f7bce88852b6b386082 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for French Vim spell files.
+# Aap recipe for Danish Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -11,11 +11,11 @@ FILES    = da_DK.aff da_DK.dic
 
 all: $SPELLDIR/da.latin1.spl $SPELLDIR/da.utf-8.spl ../README_da.txt
 
-$SPELLDIR/da.latin1.spl : $VIM $FILES
+$SPELLDIR/da.latin1.spl : $FILES
         :sys env LANG=da_DK.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/da da_DK" -c q
 
-$SPELLDIR/da.utf-8.spl : $VIM $FILES
+$SPELLDIR/da.utf-8.spl : $FILES
         :sys env LANG=da_DK.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/da da_DK" -c q
 
index df608e1b7faa7dc70ecbf7281579fa6007948db5..718e78c6ff2344eefa7a216c2b03dce603d370d9 100644 (file)
@@ -32,11 +32,11 @@ READMES    = README_de_$*(REGIONS).txt
 
 all: $SPELLDIR/de.latin1.spl $SPELLDIR/de.utf-8.spl ../README_de.txt
 
-$SPELLDIR/de.latin1.spl : $VIM $FILES
+$SPELLDIR/de.latin1.spl : $FILES
         :sys env LANG=de_DE.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
 
-$SPELLDIR/de.utf-8.spl : $VIM $FILES
+$SPELLDIR/de.utf-8.spl : $FILES
         :sys env LANG=de_DE.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
 
diff --git a/runtime/spell/el/main.aap b/runtime/spell/el/main.aap
new file mode 100644 (file)
index 0000000..51fa0d3
--- /dev/null
@@ -0,0 +1,78 @@
+# Aap recipe for Greek Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = el_GR.aff el_GR.dic
+
+all: $SPELLDIR/el.iso-8859-7.spl $SPELLDIR/el.utf-8.spl ../README_el.txt
+
+$SPELLDIR/el.iso-8859-7.spl : $FILES
+        :sys env LANG=el_GR.ISO8859-7
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/el el_GR" -c q
+
+$SPELLDIR/el.utf-8.spl : $FILES
+        :sys env LANG=el_GR.UTF-8
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/el el_GR" -c q
+
+../README_el.txt : README_el_GR.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} el_GR.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+el_GR.aff el_GR.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch el_GR.zip
+        :sys $UNZIP el_GR.zip
+        :delete el_GR.zip
+        @if not os.path.exists('el_GR.orig.aff'):
+            :copy el_GR.aff el_GR.orig.aff
+        @if not os.path.exists('el_GR.orig.dic'):
+            :copy el_GR.dic el_GR.orig.dic
+        @if os.path.exists('el_GR.diff'):
+            :sys patch <el_GR.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 el_GR.orig.aff el_GR.aff >el_GR.diff
+        :sys {force} diff -a -C 1 el_GR.orig.dic el_GR.dic >>el_GR.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch el_GR.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../el_GR.zip
+            :sys {force} diff ../el_GR.orig.aff el_GR.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy el_GR.aff ../el_GR.new.aff
+            :sys {force} diff ../el_GR.orig.dic el_GR.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy el_GR.dic ../el_GR.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete el_GR.zip
+
+
+# vim: set sts=4 sw=4 :
index c77ef9af7955f9db0e30b989de4217b71b892361..9d2b068c449101918ccc21f4a3280b66b4be6adf 100644 (file)
Binary files a/runtime/spell/en.ascii.spl and b/runtime/spell/en.ascii.spl differ
index 851f7141ffebc48672cdb8f8dcf06d8669c93f56..95b5363947f6810c3766a2ab3ec858dde20cd432 100644 (file)
Binary files a/runtime/spell/en.latin1.spl and b/runtime/spell/en.latin1.spl differ
index d6b783644411b55162c600b6432181bffe8dfee1..8b2edc6923ea8e28a9ad8296b088415820644d66 100644 (file)
Binary files a/runtime/spell/en.utf-8.spl and b/runtime/spell/en.utf-8.spl differ
index c0ee62d6bbfdfdb0b44fb996518545d02ab3d597..2d6e42c5610641295baeb898e90cedde9044ed00 100644 (file)
 ! SFX 3 o ist's o
 ! SFX 3 0 ist's [^eoy]
 *** en_AU.orig.dic     Fri Apr 15 13:20:36 2005
---- en_AU.dic  Sun Jul  3 17:11:07 2005
+--- en_AU.dic  Tue Aug 16 17:03:44 2005
 ***************
 *** 912,914 ****
   Alaska/M
   Vilnius/M
 ! vim/M
   vinaigrette/MS
---- 43742,43744 ----
+--- 43742,43745 ----
   Vilnius/M
 ! Vim/M
+! vim/?
   vinaigrette/MS
 ***************
 *** 45494,45496 ****
   yippee
 - y/K
   YMCA
---- 45487,45488 ----
+--- 45488,45489 ----
 ***************
 *** 45586,45588 ****
   zap/SGRD
 - z/d
   Zealanders
---- 45578,45579 ----
+--- 45579,45580 ----
 ***************
 *** 45655 ****
---- 45646,45653 ----
+--- 45647,45654 ----
   zymurgy/S
 + nd
 + the the/!
index 904e0c62032c83c3403987614cd8f1019f1a0ecd..c6319ce865cac263243d4e2812379c726d286784 100644 (file)
 ! SFX G   0     ing        [^e]
   
 *** en_CA.orig.dic     Sat Apr 16 14:40:06 2005
---- en_CA.dic  Sun Jul  3 17:09:40 2005
+--- en_CA.dic  Tue Aug 16 17:03:55 2005
 ***************
 *** 46,48 ****
   R/G
 + Moolenaar/M
   Bresenham/M
 ***************
+*** 40455,40457 ****
+  proneness/MS
+! transl
+  Conchita/M
+--- 40454,40456 ----
+  proneness/MS
+! transl.
+  Conchita/M
+***************
 *** 50272,50273 ****
 --- 50271,50273 ----
   Dutch/M
   hatchery/MS
 ! vim/SM
   compatriot/MS
---- 52565,52567 ----
+--- 52565,52568 ----
   hatchery/MS
 ! Vim/SM
+! vim/?
   compatriot/MS
 ***************
 *** 53490,53491 ****
---- 53490,53492 ----
+--- 53491,53493 ----
   unsearchable
 + searchable
   felicitous/IY
 ***************
 *** 62341 ****
---- 62342,62349 ----
+--- 62343,62350 ----
   data/M
 + et al.
 + the the/!
index 6032c255882236e7110a7d4ab25d06a6ff021924..714077d4b9191b515c8e9744c93dbaaa41c0902b 100644 (file)
 ! SFX 3 o ist's o
 ! SFX 3 0 ist's [^eoy]
 *** en_GB.orig.dic     Sun Jul  3 18:05:07 2005
---- en_GB.dic  Sun Jul  3 18:19:25 2005
+--- en_GB.dic  Tue Aug 16 17:05:18 2005
 ***************
 *** 630,632 ****
   Byrne/M
   vindaloo/S
 --- 30760,30763 ----
   villein/SM
-! vim/M?
+! vim/?
 ! Vim/M
   vindaloo/S
 ***************
index 4e28fff4ed6d1e8564724d7a5247d20da7248baa..3eee7185156448679a62253033529d3f292479db 100644 (file)
 ! SFX 3 o ist's o
 ! SFX 3 0 ist's [^eoy]
 *** en_NZ.orig.dic     Fri Apr 15 13:20:36 2005
---- en_NZ.dic  Sun Jul  3 17:11:34 2005
+--- en_NZ.dic  Tue Aug 16 17:05:28 2005
 ***************
 *** 4,6 ****
   2ZB
   Vilnius/M
 ! vim/M
   vinaigrette/MS
---- 44313,44315 ----
+--- 44313,44316 ----
   Vilnius/M
 ! Vim/M
+! vim/?
   vinaigrette/MS
 ***************
 *** 45906,45908 ****
   y'all
 - prey/M
   yacht/M5SmGD
---- 45885,45886 ----
+--- 45886,45887 ----
 ***************
 *** 46198,46200 ****
   rata/M
 - kaka/M
   waka/M
---- 46176,46177 ----
+--- 46177,46178 ----
 ***************
 *** 46216,46218 ****
   jandal/MS
 - Swanndri/M
   hoon/MS
---- 46193,46194 ----
+--- 46194,46195 ----
 ***************
 *** 46242,46244 ****
   Invercargill/M
 - Te
   Alexandra/M
---- 46218,46219 ----
+--- 46219,46220 ----
 ***************
 *** 46261,46263 ****
   Kawerau/M
 - Kerikeri/M
   Lyttelton/M
---- 46236,46237 ----
+--- 46237,46238 ----
 ***************
 *** 46491,46493 ****
   Waianakarua
 - Hakatere
   Swin
---- 46465,46466 ----
+--- 46466,46467 ----
 ***************
 *** 46690,46692 ****
   Omarama/M
 - Wairarapa/M
   Kilda/M
---- 46663,46664 ----
+--- 46664,46665 ----
 ***************
 *** 46711,46713 ****
   Wellsford/M
 - Akaroa/M
   Avonhead/M
---- 46683,46684 ----
+--- 46684,46685 ----
 ***************
 *** 46838,46840 ****
   Ballantyne's
 - DB
   Monteith's
---- 46809,46810 ----
+--- 46810,46811 ----
 ***************
 *** 46920,46922 ****
   Egmont/M
 - Waitaki/M
   katipo/M
---- 46890,46891 ----
+--- 46891,46892 ----
 ***************
 *** 46956,46958 ****
   Sunnyside/M
 - Wairau/M
   Waikoropupu
---- 46925,46926 ----
+--- 46926,46927 ----
 ***************
 *** 47141,47142 ****
   Burkina
 ! Faso/M
 \ No newline at end of file
---- 47109,47117 ----
+--- 47110,47118 ----
   Burkina
 ! Faso/M
 ! nd
index 99ddf0a18be0362534343ae97f480d66f370305e..17051dcf8c735bae59d6508a3e502daa15c4ffaa 100644 (file)
 + REP ie y
   REP i ee
 *** en_US.orig.dic     Fri Apr 15 13:20:36 2005
---- en_US.dic  Sun Jul  3 16:59:28 2005
+--- en_US.dic  Tue Aug 16 17:03:31 2005
 ***************
 *** 5944,5946 ****
   bk
 ! sings
   sybarite/MS
 ***************
+*** 56906,56908 ****
+  transit/SGVMD
+! transl
+  translatability/M
+--- 56905,56907 ----
+  transit/SGVMD
+! transl.
+  translatability/M
+***************
 *** 57728,57730 ****
   TX
 ! t/XTJBG
   vi/MDR
 ! vim/MS
   vinaigrette/MS
---- 59537,59539 ----
+--- 59537,59540 ----
   vi/MDR
 ! Vim/MS
+! vim/?
   vinaigrette/MS
 ***************
 *** 61534,61536 ****
   WWW
 ! w/XTJGV
   WY
---- 61533,61536 ----
+--- 61534,61537 ----
   WWW
 ! wens
 ! wings
   yew/SM
 - y/F
   Yggdrasil/M
---- 61750,61751 ----
+--- 61751,61752 ----
 ***************
 *** 62058,62060 ****
   Zsigmondy/M
 ! z/TGJ
   Zubenelgenubi/M
---- 62057,62059 ----
+--- 62058,62060 ----
   Zsigmondy/M
 ! zings
   Zubenelgenubi/M
 ***************
 *** 62077 ****
---- 62076,62083 ----
+--- 62077,62084 ----
   zymurgy/S
 + nd
 + the the/!
index 37a9ed10e1a4e31b4ab747f5f7307e721e2d478e..9e4b98ea75aa4331154dab123565db3214b2d23a 100644 (file)
@@ -16,17 +16,17 @@ FILES    = en_US.aff en_US.dic
 all: $SPELLDIR/en.latin1.spl $SPELLDIR/en.utf-8.spl \
         $SPELLDIR/en.ascii.spl ../README_en.txt
 
-$SPELLDIR/en.latin1.spl : $VIM $FILES
+$SPELLDIR/en.latin1.spl : $FILES
         :sys env LANG=en_US.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/en
                         en_US en_AU en_CA en_GB en_NZ" -c q
 
-$SPELLDIR/en.utf-8.spl : $VIM $FILES
+$SPELLDIR/en.utf-8.spl : $FILES
         :sys env LANG=en_US.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/en
                         en_US en_AU en_CA en_GB en_NZ" -c q
 
-$SPELLDIR/en.ascii.spl : $VIM $FILES
+$SPELLDIR/en.ascii.spl : $FILES
         :sys $VIM -u NONE -e -c "mkspell! -ascii $SPELLDIR/en
                         en_US en_AU en_CA en_GB en_NZ" -c q
  
diff --git a/runtime/spell/eo/eo_l3.diff b/runtime/spell/eo/eo_l3.diff
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/runtime/spell/eo/main.aap b/runtime/spell/eo/main.aap
new file mode 100644 (file)
index 0000000..19b7555
--- /dev/null
@@ -0,0 +1,80 @@
+# Aap recipe for Esperanto Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = eo_l3.aff eo_l3.dic
+
+all: $SPELLDIR/eo.iso-8859-3.spl $SPELLDIR/eo.utf-8.spl ../README_eo.txt
+
+$SPELLDIR/eo.iso-8859-3.spl : $FILES
+        :sys $VIM -u NONE -e -c "set enc=iso-8859-3"
+                -c "mkspell! $SPELLDIR/eo eo_l3" -c q
+
+$SPELLDIR/eo.utf-8.spl : $FILES
+        :sys $VIM -u NONE -e -c "set enc=utf-8"
+                -c "mkspell! $SPELLDIR/eo eo_l3" -c q
+
+../README_eo.txt : README_eo_l3.txt
+        :copy $source $target
+        # fix missing newline
+        :sys $VIM $target -e -c "set ff=unix" -c wq
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} eo.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+eo_l3.aff eo_l3.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch eo.zip
+        :sys $UNZIP eo.zip
+        :delete eo.zip
+        @if not os.path.exists('eo_l3.orig.aff'):
+            :copy eo_l3.aff eo_l3.orig.aff
+        @if not os.path.exists('eo_l3.orig.dic'):
+            :copy eo_l3.dic eo_l3.orig.dic
+        @if os.path.exists('eo_l3.diff'):
+            :sys patch <eo_l3.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 eo_l3.orig.aff eo_l3.aff >eo_l3.diff
+        :sys {force} diff -a -C 1 eo_l3.orig.dic eo_l3.dic >>eo_l3.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch eo.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../eo.zip
+            :sys {force} diff ../eo_l3.orig.aff eo_l3.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy eo_l3.aff ../eo_l3.new.aff
+            :sys {force} diff ../eo_l3.orig.dic eo_l3.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy eo_l3.dic ../eo_l3.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete eo.zip
+
+
+# vim: set sts=4 sw=4 :
diff --git a/runtime/spell/fo/fo_FO.diff b/runtime/spell/fo/fo_FO.diff
new file mode 100644 (file)
index 0000000..212befe
--- /dev/null
@@ -0,0 +1,14 @@
+*** fo_FO.orig.aff     Tue Aug 16 17:39:22 2005
+--- fo_FO.aff  Tue Aug 16 17:41:00 2005
+***************
+*** 6 ****
+--- 6,14 ----
+  
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD      '-
diff --git a/runtime/spell/fo/main.aap b/runtime/spell/fo/main.aap
new file mode 100644 (file)
index 0000000..948d4a4
--- /dev/null
@@ -0,0 +1,78 @@
+# Aap recipe for Faroese Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = fo_FO.aff fo_FO.dic
+
+all: $SPELLDIR/fo.latin1.spl $SPELLDIR/fo.utf-8.spl ../README_fo.txt
+
+$SPELLDIR/fo.latin1.spl : $FILES
+        :sys env LANG=fo_FO.ISO8859-1
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/fo fo_FO" -c q
+
+$SPELLDIR/fo.utf-8.spl : $FILES
+        :sys env LANG=fo_FO.UTF-8
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/fo fo_FO" -c q
+
+../README_fo.txt : README_fo_FO.txt Copyright
+        :cat $source >! $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} fo_FO.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+fo_FO.aff fo_FO.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch fo_FO.zip
+        :sys $UNZIP fo_FO.zip
+        :delete fo_FO.zip
+        @if not os.path.exists('fo_FO.orig.aff'):
+            :copy fo_FO.aff fo_FO.orig.aff
+        @if not os.path.exists('fo_FO.orig.dic'):
+            :copy fo_FO.dic fo_FO.orig.dic
+        @if os.path.exists('fo_FO.diff'):
+            :sys patch <fo_FO.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 fo_FO.orig.aff fo_FO.aff >fo_FO.diff
+        :sys {force} diff -a -C 1 fo_FO.orig.dic fo_FO.dic >>fo_FO.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch fo_FO.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../fo_FO.zip
+            :sys {force} diff ../fo_FO.orig.aff fo_FO.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy fo_FO.aff ../fo_FO.new.aff
+            :sys {force} diff ../fo_FO.orig.dic fo_FO.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy fo_FO.dic ../fo_FO.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete fo_FO.zip
+
+
+# vim: set sts=4 sw=4 :
index 9e51039a43f787290fed30e22d1856739791bbe8..e7424326d5b79a5c96c44de042a062e16bfa3c61 100644 (file)
@@ -11,11 +11,11 @@ FILES    = fr_FR.aff fr_FR.dic
 
 all: $SPELLDIR/fr.latin1.spl $SPELLDIR/fr.utf-8.spl ../README_fr.txt
 
-$SPELLDIR/fr.latin1.spl : $VIM $FILES
+$SPELLDIR/fr.latin1.spl : $FILES
         :sys env LANG=fr_FR.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/fr fr_FR" -c q
 
-$SPELLDIR/fr.utf-8.spl : $VIM $FILES
+$SPELLDIR/fr.utf-8.spl : $FILES
         :sys env LANG=fr_FR.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/fr fr_FR" -c q
 
diff --git a/runtime/spell/gl/gl_ES.diff b/runtime/spell/gl/gl_ES.diff
new file mode 100644 (file)
index 0000000..1ddcf78
--- /dev/null
@@ -0,0 +1,15 @@
+*** gl_ES.orig.aff     Tue Aug 16 17:55:38 2005
+--- gl_ES.aff  Tue Aug 16 17:57:03 2005
+***************
+*** 2,3 ****
+--- 2,11 ----
+  TRY áéíóúesianrtolcdugmphbfvñ
++ 
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
+  # COMPOUNDMIN 3
diff --git a/runtime/spell/gl/main.aap b/runtime/spell/gl/main.aap
new file mode 100644 (file)
index 0000000..2fc012a
--- /dev/null
@@ -0,0 +1,78 @@
+# Aap recipe for Galician (Spain) Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = gl_ES.aff gl_ES.dic
+
+all: $SPELLDIR/gl.latin1.spl $SPELLDIR/gl.utf-8.spl ../README_gl.txt
+
+$SPELLDIR/gl.latin1.spl : $FILES
+        :sys env LANG=gl_ES.ISO8859-1
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/gl gl_ES" -c q
+
+$SPELLDIR/gl.utf-8.spl : $FILES
+        :sys env LANG=gl_ES.UTF-8
+               $VIM -u NONE -e -c "mkspell! $SPELLDIR/gl gl_ES" -c q
+
+../README_gl.txt : README_gl_ES.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} gl_ES.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+gl_ES.aff gl_ES.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch gl_ES.zip
+        :sys $UNZIP gl_ES.zip
+        :delete gl_ES.zip
+        @if not os.path.exists('gl_ES.orig.aff'):
+            :copy gl_ES.aff gl_ES.orig.aff
+        @if not os.path.exists('gl_ES.orig.dic'):
+            :copy gl_ES.dic gl_ES.orig.dic
+        @if os.path.exists('gl_ES.diff'):
+            :sys patch <gl_ES.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 gl_ES.orig.aff gl_ES.aff >gl_ES.diff
+        :sys {force} diff -a -C 1 gl_ES.orig.dic gl_ES.dic >>gl_ES.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch gl_ES.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../gl_ES.zip
+            :sys {force} diff ../gl_ES.orig.aff gl_ES.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy gl_ES.aff ../gl_ES.new.aff
+            :sys {force} diff ../gl_ES.orig.dic gl_ES.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy gl_ES.dic ../gl_ES.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete gl_ES.zip
+
+
+# vim: set sts=4 sw=4 :
index 4db930b9f5ff9d0617ab8957a67354c58fd8da62..71585174519a2f0d49c851e4a6c0a8e084b02bac 100644 (file)
@@ -11,11 +11,11 @@ FILES    = he_IL.aff he_IL.dic
 
 all: $SPELLDIR/he.utf-8.spl $SPELLDIR/he.iso-8859-8.spl ../README_he.txt
 
-$SPELLDIR/he.utf-8.spl : $VIM $FILES
+$SPELLDIR/he.utf-8.spl : $FILES
         :sys env LANG=he_IL.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/he he_IL" -c q
 
-$SPELLDIR/he.iso-8859-8.spl : $VIM $FILES
+$SPELLDIR/he.iso-8859-8.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=iso-8859-8"
                         -c "mkspell! $SPELLDIR/he he_IL" -c q
 
index f272b873e098a5b01572cd36917abeaa98acd824..699d61fe759591660390348665690d2d7c60f809 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for Polish Vim spell files.
+# Aap recipe for Croatian Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -12,13 +12,13 @@ FILES    = hr_HR.aff hr_HR.dic
 all: $SPELLDIR/hr.iso-8859-2.spl $SPELLDIR/pl.utf-8.spl \
         $SPELLDIR/hr.cp1250.spl ../README_pl.txt
 
-$SPELLDIR/hr.iso-8859-2.spl : $VIM $FILES
+$SPELLDIR/hr.iso-8859-2.spl : $FILES
         :sys env LANG=hr_HR.ISO8859-2 $VIM -u NONE -e -c "mkspell! $SPELLDIR/hr hr_HR" -c q
 
-$SPELLDIR/hr.utf-8.spl : $VIM $FILES
+$SPELLDIR/hr.utf-8.spl : $FILES
         :sys env LANG=hr_HR.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/hr hr_HR" -c q
 
-$SPELLDIR/hr.cp1250.spl : $VIM $FILES
+$SPELLDIR/hr.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/hr hr_HR" -c q
 
 ../README_hr.txt: README_hr_HR.txt
diff --git a/runtime/spell/hu/hu_HU.diff b/runtime/spell/hu/hu_HU.diff
new file mode 100644 (file)
index 0000000..de22c79
--- /dev/null
@@ -0,0 +1,128 @@
+*** hu_HU.orig.aff     Tue Aug 16 18:21:10 2005
+--- hu_HU.aff  Tue Aug 16 19:42:34 2005
+***************
+*** 57,62 ****
+  
+! NAME Magyar Ispell helyesírási szótár
+! LANG hu_HU
+! HOME http://magyarispell.sourceforge.net
+! VERSION Magyar 0.99.4.2
+  SET ISO8859-2
+--- 57,62 ----
+  
+! #NAME Magyar Ispell helyesírási szótár
+! #LANG hu_HU
+! #HOME http://magyarispell.sourceforge.net
+! #VERSION Magyar 0.99.4.2
+  SET ISO8859-2
+***************
+*** 65,77 ****
+  COMPOUNDFLAG Y
+! COMPOUNDWORD 2 y
+! COMPOUNDSYLLABLE 6 aáeéiíoóöõuúüû
+! SYLLABLENUM klmc
+! COMPOUNDFIRST v
+! COMPOUNDLAST x
+! FORBIDDENWORD w
+! ONLYROOT u
+! ACCENT áéíóöõúüû aeiooouuu
+! CHECKNUM
+! WORDCHARS -.§%°0123456789
+! HU_KOTOHANGZO Z
+  
+--- 65,80 ----
+  COMPOUNDFLAG Y
+! #COMPOUNDWORD 2 y
+! #COMPOUNDSYLLABLE 6 aáeéiíoóöõuúüû
+! #SYLLABLENUM klmc
+! #COMPOUNDFIRST v
+! #COMPOUNDLAST x
+! #FORBIDDENWORD w
+! BAD w
+! #ONLYROOT u
+! #ACCENT áéíóöõúüû aeiooouuu
+! #CHECKNUM
+! #WORDCHARS -.§%°0123456789
+! #HU_KOTOHANGZO Z
+! 
+! PFXPOSTPONE
+  
+***************
+*** 173,241 ****
+  
+- # character conversion table
+- # (HTML latin-1 entities -> latin-2)
+- # not implemented yet
+- 
+- CHR HTML 35
+- CHR HTML &curren; ¤
+- CHR HTML &deg; °
+- CHR HTML &acute; ´
+- CHR HTML &cedil; ¸
+- CHR HTML &Aacute; Á
+- CHR HTML &Acirc; Â
+- CHR HTML &Auml; Ä
+- CHR HTML &Ccedil; Ç
+- CHR HTML &Eacute; É
+- CHR HTML &Euml; Ë
+- CHR HTML &Iacute; Í
+- CHR HTML &Icirc; Î
+- CHR HTML &Oacute; Ó
+- CHR HTML &Ocirc; Ô
+- CHR HTML &Ouml; Ö
+- CHR HTML &times; ×
+- CHR HTML &Uacute; Ú
+- CHR HTML &Uuml; Ü
+- CHR HTML &Yacute; Ý
+- CHR HTML &szlig; ß
+- CHR HTML &aacute; á
+- CHR HTML &acirc; â
+- CHR HTML &auml; ä
+- CHR HTML &ccedil; ç
+- CHR HTML &eacute; é
+- CHR HTML &euml; ë
+- CHR HTML &iacute; í
+- CHR HTML &icirc; î
+- CHR HTML &oacute; ó
+- CHR HTML &ocirc; ô
+- CHR HTML &ouml; ö
+- CHR HTML &divide; ÷
+- CHR HTML &uacute; ú
+- CHR HTML &uuml; ü
+- CHR HTML &yacute; ý
+- 
+- # character conversion table
+- # (Prószéky-code -> latin-2)
+- # not implemented yet
+- 
+- CHR 123 20
+- CHR 123 a1 á
+- CHR 123 e1 é
+- CHR 123 e2 ë
+- CHR 123 i1 í
+- CHR 123 o1 ó
+- CHR 123 o2 ö
+- CHR 123 o3 õ
+- CHR 123 u1 ú
+- CHR 123 u2 ü
+- CHR 123 u3 û
+- CHR 123 A1 Á
+- CHR 123 E1 É
+- CHR 123 E2 Ë
+- CHR 123 I1 Í
+- CHR 123 O1 Ó
+- CHR 123 O2 Ö
+- CHR 123 O3 Õ
+- CHR 123 U1 Ú
+- CHR 123 U2 Ü
+- CHR 123 U3 Û
+- 
+  SFX z Y 6
+--- 176,177 ----
+***************
+*** 17678,17681 ****
+  PFX D   0    leg          .
+- 
+-    1
+- 
+--- 17614 ----
diff --git a/runtime/spell/hu/main.aap b/runtime/spell/hu/main.aap
new file mode 100644 (file)
index 0000000..3890b1e
--- /dev/null
@@ -0,0 +1,81 @@
+# Aap recipe for Hungarian Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = hu_HU.aff hu_HU.dic
+
+all: $SPELLDIR/hu.iso-8859-2.spl $SPELLDIR/hu.utf-8.spl \
+        $SPELLDIR/hu.cp1250.spl ../README_hu.txt
+
+$SPELLDIR/hu.iso-8859-2.spl : $FILES
+        :sys env LANG=hu_HU.ISO8859-2 $VIM -u NONE -e -c "mkspell! $SPELLDIR/hu hu_HU" -c q
+
+$SPELLDIR/hu.utf-8.spl : $FILES
+        :sys env LANG=hu_HU.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/hu hu_HU" -c q
+
+$SPELLDIR/hu.cp1250.spl : $FILES
+        :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/hu hu_HU" -c q
+
+../README_hu.txt: README_hu_HU.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} hu_HU.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+# This is a bit tricky, since the file name includes the date.
+hu_HU.aff hu_HU.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch hu_HU.zip
+        :sys $UNZIP hu_HU.zip
+        :delete hu_HU.zip
+        @if not os.path.exists('hu_HU.orig.aff'):
+            :copy hu_HU.aff hu_HU.orig.aff
+        @if not os.path.exists('hu_HU.orig.dic'):
+            :copy hu_HU.dic hu_HU.orig.dic
+        @if os.path.exists('hu_HU.diff'):
+            :sys patch <hu_HU.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 hu_HU.orig.aff hu_HU.aff >hu_HU.diff
+        :sys {force} diff -a -C 1 hu_HU.orig.dic hu_HU.dic >>hu_HU.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch hu_HU.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../hu_HU.zip
+            :sys {force} diff ../hu_HU.orig.aff hu_HU.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy hu_HU.aff ../hu_HU.new.aff
+            :sys {force} diff ../hu_HU.orig.dic hu_HU.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy hu_HU.dic ../hu_HU.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete hu_HU.zip
+
+
+# vim: set sts=4 sw=4 :
index ef541c45bf978f70c399101ab0e8931deb949f3e..eaced68027627d2283952ac71b7d6f9de910f02e 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for French Vim spell files.
+# Aap recipe for Italian Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -11,11 +11,11 @@ FILES    = it_IT.aff it_IT.dic
 
 all: $SPELLDIR/it.latin1.spl $SPELLDIR/it.utf-8.spl ../README_it.txt
 
-$SPELLDIR/it.latin1.spl : $VIM $FILES
+$SPELLDIR/it.latin1.spl : $FILES
         :sys env LANG=it_IT.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/it it_IT" -c q
 
-$SPELLDIR/it.utf-8.spl : $VIM $FILES
+$SPELLDIR/it.utf-8.spl : $FILES
         :sys env LANG=it_IT.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/it it_IT" -c q
 
index 68864b89e3f20bb3e2aa7153216e15d84ea10e98..1e37c1cc3d27f8b27758bc7ab2739fede98738d7 100644 (file)
@@ -1,10 +1,22 @@
-# "aap": generate all the .spl files
-# "aap diff" create all the diff files
+# Toplevel Aap recipe for Vim spell files
+#
+# Usage:
+# aap        generate all the .spl files
+# aap diff   create all the diff files
 
-LANG = af bg ca cs da de en fr he hr it nl ny pl sk yi
+LANG = af bg ca cs da de el en eo fr fo gl he hr it nl ny pl sk yi
+
+# TODO:
+# Finnish doesn't work, the dictionary fi_FI.zip file contains hyphenation...
 
 diff: $*LANG/diff
         :print done
 
 @for l in string.split(_no.LANG):
         :child $l/main.aap
+
+# The existing .spl files need to be generated when the spell file format
+# changes.  Depending on the Vim executable does that, but results in doing it
+# much too often.  Generate a dummy .spl file and check if it changed.
+:child check/main.aap
+*.spl: check/check.latin1.spl
index 02ae49d576ffb33f5df6ada03bc86021b86aa0b9..e23111337d6c30bf1bead77f4ac1579566e7db04 100644 (file)
@@ -11,11 +11,11 @@ FILES    = nl_NL.aff nl_NL.dic
 
 all: $SPELLDIR/nl.latin1.spl $SPELLDIR/nl.utf-8.spl ../README_nl.txt
 
-$SPELLDIR/nl.latin1.spl : $VIM $FILES
+$SPELLDIR/nl.latin1.spl : $FILES
         :sys env LANG=nl_NL.ISO8859-1
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/nl nl_NL" -c q
 
-$SPELLDIR/nl.utf-8.spl : $VIM $FILES
+$SPELLDIR/nl.utf-8.spl : $FILES
         :sys env LANG=nl_NL.UTF-8
                $VIM -u NONE -e -c "mkspell! $SPELLDIR/nl nl_NL" -c q
 
index e7fcbf7b751f120ee90ba477ba83f9090a09a639..b73b50c6bd3b2b36795e415ec5c96118c3ff1dc9 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for Dutch Vim spell files.
+# Aap recipe for Chichewa Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -12,15 +12,15 @@ FILES    = ny_MW.aff ny_MW.dic
 all: $SPELLDIR/ny.iso-8859-14.spl $SPELLDIR/ny.utf-8.spl \
         $SPELLDIR/ny.ascii.spl ../README_ny.txt
 
-$SPELLDIR/ny.iso-8859-14.spl : $VIM $FILES
+$SPELLDIR/ny.iso-8859-14.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=iso-8859-14" 
                 -c "mkspell! $SPELLDIR/ny ny_MW" -c q
 
-$SPELLDIR/ny.utf-8.spl : $VIM $FILES
+$SPELLDIR/ny.utf-8.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=utf-8"
                 -c "mkspell! $SPELLDIR/ny ny_MW" -c q
 
-$SPELLDIR/ny.ascii.spl : $VIM $FILES
+$SPELLDIR/ny.ascii.spl : $FILES
         :sys $VIM -u NONE -e -c "mkspell! -ascii $SPELLDIR/ny ny_MW" -c q
  
 ../README_ny.txt : README_ny_MW.txt
index e33acf8028fb61e2476db432a9d2c170c2e5016c..eb21c5e48f285efff4c199ae6601a08d84a4870c 100644 (file)
@@ -12,13 +12,13 @@ FILES    = pl_PL.aff pl_PL.dic
 all: $SPELLDIR/pl.iso-8859-2.spl $SPELLDIR/pl.utf-8.spl \
         $SPELLDIR/pl.cp1250.spl ../README_pl.txt
 
-$SPELLDIR/pl.iso-8859-2.spl : $VIM $FILES
+$SPELLDIR/pl.iso-8859-2.spl : $FILES
         :sys env LANG=pl_PL.ISO8859-2 $VIM -u NONE -e -c "mkspell! $SPELLDIR/pl pl_PL" -c q
 
-$SPELLDIR/pl.utf-8.spl : $VIM $FILES
+$SPELLDIR/pl.utf-8.spl : $FILES
         :sys env LANG=pl_PL.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/pl pl_PL" -c q
 
-$SPELLDIR/pl.cp1250.spl : $VIM $FILES
+$SPELLDIR/pl.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/pl pl_PL" -c q
 
 ../README_pl.txt: README_pl_PL.txt
index b18d195c1601a5000e940a79d48f2ea9bb1cace9..db973553b86a68a3853bc60d268712211c51441c 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for Czech Vim spell files.
+# Aap recipe for Slovak Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -12,13 +12,13 @@ FILES    = sk_SK.aff sk_SK.dic
 all: $SPELLDIR/sk.iso-8859-2.spl $SPELLDIR/sk.utf-8.spl \
         $SPELLDIR/sk.cp1250.spl ../README_sk.txt
 
-$SPELLDIR/sk.iso-8859-2.spl : $VIM $FILES
+$SPELLDIR/sk.iso-8859-2.spl : $FILES
         :sys env LANG=sk_SK.ISO8859-2 $VIM -u NONE -e -c "mkspell! $SPELLDIR/sk sk_SK" -c q
 
-$SPELLDIR/sk.utf-8.spl : $VIM $FILES
+$SPELLDIR/sk.utf-8.spl : $FILES
         :sys env LANG=sk_SK.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/sk sk_SK" -c q
 
-$SPELLDIR/sk.cp1250.spl : $VIM $FILES
+$SPELLDIR/sk.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/sk sk_SK" -c q
 
 ../README_sk.txt: README_sk_SK.txt
index 00ec1047405df25dabc04d305590051c77ed5c3d..484dc69f73e44e8f285d36ca49e9fc1cf4e611b6 100644 (file)
@@ -1,7 +1,8 @@
-*** wordlist.utf8.txt  Thu Aug 11 17:55:15 2005
---- yi.dic     Thu Aug 11 17:56:28 2005
+*** wordlist.utf8.txt  Thu Aug 11 19:49:22 2005
+--- yi.dic     Thu Aug 11 19:49:23 2005
 ***************
-*** 1 ****
---- 1,2 ----
-+ 99999
+*** 1,2 ****
+--- 1,3 ----
++ 999999
   גרונטעלעמענט
+  דזשאָבענדיקס
diff --git a/runtime/spell/yi/!yi_tr.diff b/runtime/spell/yi/!yi_tr.diff
new file mode 100644 (file)
index 0000000..5d8183f
--- /dev/null
@@ -0,0 +1,8 @@
+*** wordlist.txt       Tue Aug 16 10:46:26 2005
+--- yi_tr.dic  Tue Aug 16 10:46:42 2005
+***************
+*** 1,2 ****
+--- 1,3 ----
++ 84608
+  gruntelement
+  dzhobendiks
index db432935c3f9d265652e5954d48b63ea08209a54..09af739c58bd693e12233133bedcc9ce330991b8 100644 (file)
@@ -3,4 +3,7 @@ README file for the Yiddish spell file.
 The word list was provided by Raphael Finkel.  It is the same one that is used
 by uspell.
 
+There also is a romanized (transliterated) word list.  This is used for
+latin1.  To use this list when 'encoding' is utf-8 use ":set spelllang=yi-tr".
+
 Copyright Raphael Finkel.  Included with permission in Vim.
index 31d057e0157ab91a8500b310a39665f13daabc3c..8a98ce050dab85ece7ca8fd5d8abad360d3ef17a 100644 (file)
@@ -1,4 +1,4 @@
-# Aap recipe for Hebrew Vim spell files.
+# Aap recipe for Yiddish Vim spell files.
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -6,16 +6,27 @@
 @else:
     :progsearch VIM vim
 
-SPELLDIR  = ..
-FILES     = yi.dic yi.aff
-WORDFILE  = wordlist.utf8.txt
+SPELLDIR    = ..
+FILES       = yi.dic yi.aff
+WORDFILE    = wordlist.utf8.txt
+FILES_TR    = yi_tr.dic yi_tr.aff
+WORDFILE_TR = wordlist.txt
 
-all: $SPELLDIR/yi.utf-8.spl ../README_yi.txt
+all: $SPELLDIR/yi.utf-8.spl $SPELLDIR/yi-tr.utf-8.spl \
+        $SPELLDIR/yi.latin1.spl ../README_yi.txt
 
-$SPELLDIR/yi.utf-8.spl : $VIM $FILES
+$SPELLDIR/yi.utf-8.spl : $FILES
     :sys $VIM -u NONE -e -c "set enc=utf-8"
             -c "mkspell! $SPELLDIR/yi yi" -c q
 
+$SPELLDIR/yi-tr.utf-8.spl : $FILES_TR
+    :sys $VIM -u NONE -e -c "set enc=utf-8"
+            -c "mkspell! $SPELLDIR/yi-tr yi_tr" -c q
+
+$SPELLDIR/yi.latin1.spl : $FILES_TR
+    :sys $VIM -u NONE -e -c "set enc=latin1"
+            -c "mkspell! $SPELLDIR/yi yi_tr" -c q
+
 ../README_yi.txt : README.txt
     :copy $source $target
 
@@ -23,7 +34,7 @@ $SPELLDIR/yi.utf-8.spl : $VIM $FILES
 # Fetch the word list when needed.
 #
 URLDIR = http://www.cs.uky.edu/~raphael/yiddish
-:attr {fetch = $URLDIR/%file%} $WORDFILE
+:attr {fetch = $URLDIR/%file%} $WORDFILE $WORDFILE_TR
 
 # We use the word list as a .dic file, so that we can use an affix file to
 # define a few extra things.
@@ -35,13 +46,20 @@ $FILES: {buildcheck=}
         @if os.path.exists('yi.diff'):
             :sys patch < yi.diff
 
-diff:
+$FILES_TR: {buildcheck=}
+        :assertpkg patch
+        :fetch $WORDFILE_TR
+        :copy $WORDFILE_TR yi_tr.dic
+        :touch {force} yi_tr.aff
+        @if os.path.exists('yi_tr.diff'):
+            :sys patch < yi_tr.diff
+
+diff {virtual}:
     :assertpkg diff
-    :delete yi.diff
     # Using a context of two lines to work around a bug in FreeBSD patch.
-    :sys {force} diff -a -C 2 $WORDFILE yi.dic >yi.diff
-    :sys {force} diff -a -N -C 1 /dev/null yi.aff >>yi.diff
-
-
+    :sys {force} diff -a -C 2 $WORDFILE yi.dic > yi.diff
+    :sys {force} diff -a -N -C 1 /dev/null yi.aff >> yi.diff
+    :sys {force} diff -a -C 2 $WORDFILE_TR yi_tr.dic > yi_tr.diff
+    :sys {force} diff -a -N -C 1 /dev/null yi_tr.aff >> yi_tr.diff
 
 # vim: set sts=4 sw=4 :
index 020f2dc490b096f3e8477012a4bfac96c557e588..45a2d90b07100c2c1a9ccd42173e0bd002f3c276 100644 (file)
@@ -1,18 +1,19 @@
-*** wordlist.utf8.txt  Thu Aug 11 18:40:11 2005
---- yi.dic     Thu Aug 11 19:48:53 2005
+*** wordlist.utf8.txt  Thu Aug 11 19:49:22 2005
+--- yi.dic     Thu Aug 11 19:49:23 2005
 ***************
 *** 1,2 ****
 --- 1,3 ----
 + 999999
   גרונטעלעמענט
   דזשאָבענדיקס
-*** /dev/null  Thu Aug 11 19:48:23 2005
---- yi.aff     Thu Aug 11 18:50:45 2005
+*** /dev/null  Tue Aug 16 10:44:00 2005
+--- yi.aff     Mon Aug 15 23:06:00 2005
 ***************
 *** 0 ****
---- 1,5 ----
+--- 1,6 ----
 + SET UTF-8
 + 
-+ REP 2
++ REP 3
 + REP וו װ
 + REP יי ײ
++ REP וי ױ
diff --git a/runtime/spell/yi/yi_tr.diff b/runtime/spell/yi/yi_tr.diff
new file mode 100644 (file)
index 0000000..5f26a7b
--- /dev/null
@@ -0,0 +1,18 @@
+*** wordlist.txt       Tue Aug 16 10:46:26 2005
+--- yi_tr.dic  Tue Aug 16 10:46:42 2005
+***************
+*** 1,2 ****
+--- 1,3 ----
++ 84608
+  gruntelement
+  dzhobendiks
+*** /dev/null  Tue Aug 16 10:44:00 2005
+--- yi_tr.aff  Tue Aug 16 10:48:01 2005
+***************
+*** 0 ****
+--- 1,5 ----
++ SET ISO8859-1
++ 
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
index 1b6dee4aafe3612bb3ea68458c1697bc0fd61b21..a49df3f2570d98ac4d75a7cde8ab7aa260ba7fbb 100644 (file)
@@ -2,8 +2,8 @@
 " Language:            shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:          Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:         Jul 01, 2005
-" Version:             75
+" Last Change:         Aug 16, 2005
+" Version:             76
 " URL:         http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax
 "
 " Using the following VIM variables: {{{1
@@ -73,7 +73,7 @@ syn cluster shColonList       contains=@shCaseList
 syn cluster shCommandSubList   contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shSpecial,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest
 syn cluster shCurlyList        contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
 syn cluster shDblQuoteList     contains=shCommandSub,shDeref,shDerefSimple,shSpecial,shPosnParm
-syn cluster shDerefList        contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError
+syn cluster shDerefList        contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS
 syn cluster shDerefVarList     contains=shDerefOp,shDerefVarArray,shDerefOpError
 syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shSpecial
 syn cluster shExprList1        contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shSpecial,shExpr,shDblBrace,shDeref,shDerefSimple
@@ -368,24 +368,25 @@ syn match  shDerefOp      contained       ":\=+"  nextgroup=@shDerefPatternList
 if exists("b:is_bash") || exists("b:is_kornshell")
  syn match  shDerefOp  contained       "#\{1,2}"       nextgroup=@shDerefPatternList
  syn match  shDerefOp  contained       "%\{1,2}"       nextgroup=@shDerefPatternList
- syn match  shDerefPattern     contained       "[^{}]\+"       contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub nextgroup=shDerefPattern
+ syn match  shDerefPattern     contained       "[^{}]\+"       contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
  syn region shDerefPattern     contained       start="{" end="}"       contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern
+ syn match  shDerefEscape      contained       '\%(\\\\\)*\\.'
 endif
 syn region shDerefString       contained       matchgroup=shOperator start=+'+ end=+'+         contains=shStringSpecial
 syn region shDerefString       contained       matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+      contains=@shDblQuoteList,shStringSpecial
 syn match  shDerefString       contained       "\\["']"
 
-"      bash : ${parameter:offset}
-"      bash : ${parameter:offset:length}
-"      bash : ${parameter//pattern/string}
-"      bash : ${parameter//pattern}
 if exists("b:is_bash")
+ " bash : ${parameter:offset}
+ " bash : ${parameter:offset:length}
  syn region shDerefOp  contained       start=":[$[:alnum:]_]"me=e-1 end=":"me=e-1 end="}"me=e-1 contains=@shCommandSubList nextgroup=shDerefPOL
- syn match  shDerefPOL contained       ":[^}]\{1,}"    contains=@shCommandSubList
- syn match  shDerefOp  contained       "/\{1,2}"       nextgroup=shDerefPat
- syn match  shDerefPat contained       "[^/}]\{1,}"    nextgroup=shDerefPatStringOp
- syn match  shDerefPatStringOp contained       "/"     nextgroup=shDerefPatString
- syn match  shDerefPatString   contained       "[^}]\{1,}"
+ syn match  shDerefPOL contained       ":[^}]\+"       contains=@shCommandSubList
+
+ " bash : ${parameter//pattern/string}
+ " bash : ${parameter//pattern}
+ syn match  shDerefPPS contained       '/\{1,2}'       nextgroup=shDerefPPSleft
+ syn region shDerefPPSleft     contained       start='.'       skip=@\%(\\\)\/@ matchgroup=shDerefOp end='/' nextgroup=shDerefPPSright contains=@shCommandSubList
+ syn region shDerefPPSright    contained       start='.'       end='\ze}'      contains=@shCommandSubList
 endif
 
 " Useful sh Keywords: {{{1
@@ -441,9 +442,8 @@ hi def link shCaseStart     shConditional
 hi def link shCmdSubRegion     shShellVariables
 hi def link shColon    shStatement
 hi def link shDerefOp  shOperator
-hi def link shDerefPatStringOp shDerefOp
-hi def link shDerefPatString   shDerefPattern
 hi def link shDerefPOL shDerefOp
+hi def link shDerefPPS shDerefOp
 hi def link shDeref    shShellVariables
 hi def link shDerefSimple      shDeref
 hi def link shDerefSpecial     shDeref
index fb7a7e41d1080c9ff8ce5b7049b7197fda718f49..b18d908fd88e74dc6becc8c678c5b6bf1b9872e4 100644 (file)
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    TeX
 " Maintainer:  Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change: Aug 11, 2005
-" Version:     28
+" Last Change: Aug 15, 2005
+" Version:     29
 " URL:         http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Notes: {{{1
@@ -102,7 +102,7 @@ if !exists("g:tex_no_error")
 endif
 syn cluster texEnvGroup                contains=texMatcher,texMathDelim,texSpecialChar,texStatement
 syn cluster texFoldGroup       contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract
-syn cluster texMatchGroup      contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
+syn cluster texMatchGroup      contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
 syn cluster texRefGroup                contains=texMatcher,texComment,texDelimiter
 if !exists("tex_no_math")
  syn cluster texMathZones      contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
@@ -114,6 +114,16 @@ if !exists("tex_no_math")
   syn cluster texMathMatchGroup        add=texMathError
   syn cluster texMathZoneGroup add=texMathError
  endif
+ syn cluster texMathZoneGroup add=@NoSpell
+ " following used in the \part \chapter \section \subsection \subsubsection
+ " \paragraph \subparagraph \author \title highlighting
+ syn cluster texDocGroup               contains=texPartZone,@texPartGroup
+ syn cluster texPartGroup              contains=texChapterZone,texSectionZone,texParaZone
+ syn cluster texChapterGroup           contains=texSectionZone,texParaZone
+ syn cluster texSectionGroup           contains=texSubSectionZone,texParaZone
+ syn cluster texSubSectionGroup                contains=texSubSubSectionZone,texParaZone
+ syn cluster texSubSubSectionGroup     contains=texParaZone
+ syn cluster texParaGroup              contains=texSubParaZone
 endif
 
 " Try to flag {} and () mismatches: {{{1
@@ -246,29 +256,27 @@ syn match texSpaceCodeChar    "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)"    contained
 
 " Sections, subsections, etc: {{{1
 if g:tex_fold_enabled && has("folding")
- syn cluster texDocGroup               contains=texPartZone,@texPartGroup
- syn cluster texPartGroup              contains=texChapterZone,texSectionZone,texParaZone
- syn cluster texChapterGroup           contains=texSectionZone,texParaZone
- syn cluster texSectionGroup           contains=texSubSectionZone,texParaZone
- syn cluster texSubSectionGroup                contains=texSubSubSectionZone,texParaZone
- syn cluster texSubSubSectionGroup     contains=texParaZone
- syn cluster texParaGroup              contains=texSubParaZone
-
- syn region texDocZone                 matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold keepend contains=@texFoldGroup,@texDocGroup
- syn region texPartZone                        matchgroup=texSection start='\\part\>'          end='\n\ze\s*\\part\>'          fold keepend contains=@texFoldGroup,@texPartGroup
- syn region texChapterZone             matchgroup=texSection start='\\chapter\>'       end='\n\ze\s*\\chapter\>'       fold keepend contains=@texFoldGroup,@texChapterGroup
- syn region texSectionZone             matchgroup=texSection start='\\section\>'       end='\n\ze\s*\\section\>'       fold keepend contains=@texFoldGroup,@texSectionGroup
- syn region texSubSectionZone          matchgroup=texSection start='\\subsection\>'    end='\n\ze\s*\\subsection\>'    fold keepend contains=@texFoldGroup,@texSubSectionGroup
- syn region texSubSubSectionZone       matchgroup=texSection start='\\subsubsection\>' end='\n\ze\s*\\subsubsection\>' fold keepend contains=@texFoldGroup,@texSubSubSectionGroup
- syn region texParaZone                        matchgroup=texSection start='\\paragraph\>'     end='\n\ze\s*\\paragraph\>'     fold keepend contains=@texFoldGroup,@texParaGroup
- syn region texSubParaZone             matchgroup=texSection start='\\subparagraph\>'  end='\n\ze\s*\\subparagraph\>'  fold keepend contains=@texFoldGroup
- syn region texTitle                   matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'                fold contains=@texFoldGroup
- syn region texAbstract                        matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup
+ syn region texDocZone                 matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold keepend contains=@texFoldGroup,@texDocGroup,@Spell
+ syn region texPartZone                        matchgroup=texSection start='\\part\>'                   end='\n\ze\s*\\part\>'         fold keepend contains=@texFoldGroup,@texPartGroup,@Spell
+ syn region texChapterZone             matchgroup=texSection start='\\chapter\>'                end='\n\ze\s*\\chapter\>'      fold keepend contains=@texFoldGroup,@texChapterGroup,@Spell
+ syn region texSectionZone             matchgroup=texSection start='\\section\>'                end='\n\ze\s*\\section\>'      fold keepend contains=@texFoldGroup,@texSectionGroup,@Spell
+ syn region texSubSectionZone          matchgroup=texSection start='\\subsection\>'             end='\n\ze\s*\\subsection\>'   fold keepend contains=@texFoldGroup,@texSubSectionGroup,@Spell
+ syn region texSubSubSectionZone       matchgroup=texSection start='\\subsubsection\>'         end='\n\ze\s*\\subsubsection\>' fold keepend contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
+ syn region texParaZone                        matchgroup=texSection start='\\paragraph\>'              end='\n\ze\s*\\paragraph\>'    fold keepend contains=@texFoldGroup,@texParaGroup,@Spell
+ syn region texSubParaZone             matchgroup=texSection start='\\subparagraph\>'           end='\n\ze\s*\\subparagraph\>' fold keepend contains=@texFoldGroup,@Spell
+ syn region texTitle                   matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'                fold contains=@texFoldGroup,@Spell
+ syn region texAbstract                        matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell
 else
- syn match texSection                  "\\\(sub\)*section\*\=\>"
- syn match texSection                  "\\\(part\|chapter\|paragraph\|subparagraph\)\>"
- syn region texTitle                   matchgroup=texSection start='\\\%(author\|title\)\>\s*\ze{' end='}'             contains=@texFoldGroup
- syn match texSection                  "\\begin\s*{\s*abstract\s*}\|\\end\s*{\s*abstract\s*}"
+ syn region texDocZone                 matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' keepend contains=@texFoldGroup,@texDocGroup,@Spell
+ syn region texPartZone                        matchgroup=texSection start='\\part\>'                   end='\n\ze\s*\\part\>'         keepend contains=@texFoldGroup,@texPartGroup,@Spell
+ syn region texChapterZone             matchgroup=texSection start='\\chapter\>'                end='\n\ze\s*\\chapter\>'      keepend contains=@texFoldGroup,@texChapterGroup,@Spell
+ syn region texSectionZone             matchgroup=texSection start='\\section\>'                end='\n\ze\s*\\section\>'      keepend contains=@texFoldGroup,@texSectionGroup,@Spell
+ syn region texSubSectionZone          matchgroup=texSection start='\\subsection\>'             end='\n\ze\s*\\subsection\>'   keepend contains=@texFoldGroup,@texSubSectionGroup,@Spell
+ syn region texSubSubSectionZone       matchgroup=texSection start='\\subsubsection\>'         end='\n\ze\s*\\subsubsection\>' keepend contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
+ syn region texParaZone                        matchgroup=texSection start='\\paragraph\>'              end='\n\ze\s*\\paragraph\>'    keepend contains=@texFoldGroup,@texParaGroup,@Spell
+ syn region texSubParaZone             matchgroup=texSection start='\\subparagraph\>'           end='\n\ze\s*\\subparagraph\>' keepend contains=@texFoldGroup,@Spell
+ syn region texTitle                   matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'                        contains=@texFoldGroup,@Spell
+ syn region texAbstract                        matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
 endif
 
 " Bad Math (mismatched): {{{1
@@ -370,7 +378,7 @@ endif
 " Separate lines used for verb` and verb# so that the end conditions {{{1
 " will appropriately terminate.  Ideally vim would let me save a
 " character from the start pattern and re-use it in the end-pattern.
-syn region texZone             start="\\begin{verbatim}"               end="\\end{verbatim}\|%stopzone\>"
+syn region texZone             start="\\begin{verbatim}"               end="\\end{verbatim}\|%stopzone\>"      contains=@Spell
 if version < 600
  syn region texZone            start="\\verb\*\=`"                     end="`\|%stopzone\>"
  syn region texZone            start="\\verb\*\=#"                     end="#\|%stopzone\>"
index f895df7051b82e315cca9c08ab931467ffe5e852..9e79aabf40e625064eab111337043854628363cd 100644 (file)
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Vim 7.0 script
 " Maintainer:  Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: August 02, 2005
-" Version:     7.0-11
+" Last Change: Aug 16, 2005
+" Version:     7.0-13
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -16,7 +16,7 @@ syn keyword vimTodo contained COMBAK  NOT     RELEASED        TODO    WIP
 syn cluster vimCommentGroup    contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained       ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cad[dfile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] lockv[ar] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] sor[t] so[urce] spelld[ump] spe[llgood] spellr[epall] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] 
+syn keyword vimCommand contained       ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cad[dfile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] Explore exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] Hexplore hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] lockv[ar] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] Sexplore sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] sor[t] so[urce] spelld[ump] spe[llgood] spellr[epall] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] Vexplore v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] 
 syn match   vimCommand contained       "\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -55,7 +55,7 @@ syn match vimHLGroup contained        "Conceal"
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained      add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call char2nr cindent col confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcwd getfontname getfperm getfsize getftime getftype getline getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchlist matchstr max min mkdir mode nextnonblank nr2char prevnonblank printf range readfile remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchpair server2client serverlist setbufvar setcmdpos setline setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winwidth writefile 
+syn keyword vimFuncName contained      add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call char2nr cindent col complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcwd getfontname getfperm getfsize getftime getftype getline getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchlist matchstr max min mkdir mode nextnonblank nr2char prevnonblank printf range readfile remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchpair server2client serverlist setbufvar setcmdpos setline setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winwidth writefile 
 
 "--- syntax above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
@@ -123,7 +123,7 @@ syn keyword vimPattern   contained  start   skip    end
 
 " Operators: {{{2
 " =========
-syn cluster vimOperGroup       contains=vimOper,vimOperParen,vimNumber,vimString,vimOperOk
+syn cluster vimOperGroup       contains=vimOper,vimOperParen,vimNumber,vimString,vimOperOk,vimRegister
 syn match  vimOper     "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"       skipwhite nextgroup=vimString,vimSpecFile
 syn match  vimOper     "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
 syn region vimOperParen oneline        matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
@@ -193,8 +193,8 @@ syn region vimPatSepZone    oneline   contained   matchgroup=vimPatSepZ start="\\%\
 syn region vimPatRegion        contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
 syn match  vimNotPatSep        contained       "\\\\"
 syn cluster vimStringGroup     contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone
-syn region vimString   oneline keepend start=+[^:a-zA-Z>!\\]"+lc=1 skip=+\\\\\|\\"+ end=+"+    contains=@vimStringGroup
-syn region vimString   oneline keepend start=+[^:a-zA-Z>!\\]'+lc=1 end=+'+     contains=@vimStringGroup
+syn region vimString   oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+   contains=@vimStringGroup
+syn region vimString   oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+    contains=@vimStringGroup
 syn region vimString   oneline start=+=!+lc=1  skip=+\\\\\|\\!+ end=+!+        contains=@vimStringGroup
 syn region vimString   oneline start="=+"lc=1  skip="\\\\\|\\+" end="+"        contains=@vimStringGroup
 syn region vimString   oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"   contains=@vimStringGroup
@@ -232,21 +232,21 @@ syn match  vimMark        "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumb
 syn match  vimMarkNumber       "[-+]\d\+"              nextgroup=vimSubst contained contains=vimOper
 syn match  vimPlainMark contained      "'[a-zA-Z0-9]"
 
-syn match  vimRegister '[^(,;.]"[a-zA-Z0-9.%#:_\-/][^a-zA-Z_"]'lc=1,me=e-1
-syn match  vimRegister '\<norm\s\+"[a-zA-Z0-9]'lc=5
-syn match  vimRegister '\<normal\s\+"[a-zA-Z0-9]'lc=7
+syn match  vimRegister '[^,;]\zs"[a-zA-Z0-9.%#:_\-/][^a-zA-Z_"]\ze'
+syn match  vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
+syn match  vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]'
 syn match  vimRegister '@"'
 syn match  vimPlainRegister contained  '"[a-zA-Z0-9\-:.%#*+=]'
 
-syn match  vimAddress  ",[.$]"lc=1     skipwhite nextgroup=vimSubst1
-syn match  vimAddress  "%\a"me=e-1     skipwhite nextgroup=vimString,vimSubst1
+syn match  vimAddress  ",\zs[.$]"      skipwhite nextgroup=vimSubst1
+syn match  vimAddress  "%\ze\a"        skipwhite nextgroup=vimString,vimSubst1
 
 syn match  vimFilter contained "^!.\{-}\(|\|$\)"               contains=vimSpecFile
 syn match  vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1        contains=vimSpecFile
 
 " Complex repeats (:h complex-repeat) {{{2
 "syn match  vimCmplxRepeat     '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
-syn match  vimCmplxRepeat      '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
+"syn match  vimCmplxRepeat     '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
 syn region vimSet              matchgroup=vimCommand start="\<setlocal\|set\>" end="|"me=e-1 end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
index cd706b49c103615977e4798d15c92f70333b8309..2dbbb222c33a54379ece6c984b2e39b308db7f4d 100644 (file)
@@ -11959,18 +11959,24 @@ f_printf(argvars, rettv)
        char_u  *s;
        int     saved_did_emsg = did_emsg;
        char    *fmt;
+       va_list ap; /* dummy */
+
+# ifdef LINT
+       /* avoid warning for "ap" used before set; it is unused. */
+       va_start(ap, rettv);
+# endif
 
        /* Get the required length, allocate the buffer and do it for real. */
        did_emsg = FALSE;
        fmt = (char *)get_tv_string_buf(&argvars[0], buf);
-       len = vim_vsnprintf(NULL, 0, fmt, NULL, argvars + 1);
+       len = vim_vsnprintf(NULL, 0, fmt, ap, argvars + 1);
        if (!did_emsg)
        {
            s = alloc(len + 1);
            if (s != NULL)
            {
                rettv->vval.v_string = s;
-               (void)vim_vsnprintf((char *)s, len + 1, fmt, NULL, argvars + 1);
+               (void)vim_vsnprintf((char *)s, len + 1, fmt, ap, argvars + 1);
            }
        }
        did_emsg |= saved_did_emsg;
@@ -17482,6 +17488,10 @@ list_func_head(fp, indent)
        MSG_PUTS("...");
     }
     msg_putchar(')');
+#ifdef FEAT_EVAL
+    if (p_verbose > 0)
+       last_set_msg(fp->uf_script_ID);
+#endif
 }
 
 /*
index 0f5360f714432a78a2d4e991c14b688180f77424..6e6e2971fa03c2c3ff071978dad4b597a6413995 100644 (file)
@@ -5117,6 +5117,10 @@ uc_list(name, name_len)
            msg_outtrans(IObuff);
 
            msg_outtrans_special(cmd->uc_rep, FALSE);
+#ifdef FEAT_EVAL
+           if (p_verbose > 0)
+               last_set_msg(cmd->uc_scriptID);
+#endif
            out_flush();
            ui_breakcheck();
            if (got_int)
index f0d65eeb652b41389490f41530ecfc6b3d1b7c77..c7f872eaa7e7a2007333267824c818c0ac74bea2 100644 (file)
--- a/src/gui.c
+++ b/src/gui.c
@@ -4590,6 +4590,7 @@ gui_do_findrepl(flags, find_text, repl_text, down)
     int                type = (flags & FRD_TYPE_MASK);
     char_u     *p;
     regmatch_T regmatch;
+    int                save_did_emsg = did_emsg;
 
     ga_init2(&ga, 1, 100);
     if (type == FRD_REPLACEALL)
@@ -4666,6 +4667,10 @@ gui_do_findrepl(flags, find_text, repl_text, down)
        msg_scroll = i;     /* don't let an error message set msg_scroll */
     }
 
+    /* Don't want to pass did_emsg to other code, it may cause disabling
+     * syntax HL if we were busy redrawing. */
+    did_emsg = save_did_emsg;
+
     if (State & (NORMAL | INSERT))
     {
        gui_update_screen();            /* update the screen */
index 2b3adcf7d88ac2346bcf7ac70583fe2b5da9d486..cca8a5242e31f474e114623e2f80de01df5c92c6 100644 (file)
@@ -3800,7 +3800,7 @@ tv_str(tvs, idxp)
  * When va_list is not supported we only define vim_snprintf().
  *
  * vim_vsnprintf() can be invoked with either "va_list" or a list of
- * "typval_T".  The other must be NULL.
+ * "typval_T".  When the latter is not used it must be NULL.
  */
 
 /* When generating prototypes all of this is skipped, cproto doesn't
@@ -3937,7 +3937,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                    get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                   ap == NULL ? tv_nr(tvs, &arg_idx) :
+                   tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                        va_arg(ap, int);
 #endif
@@ -3974,7 +3974,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                        get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                       ap == NULL ? tv_nr(tvs, &arg_idx) :
+                       tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                            va_arg(ap, int);
 #endif
@@ -4050,7 +4050,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                            get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                           ap == NULL ? tv_nr(tvs, &arg_idx) :
+                           tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                                va_arg(ap, int);
 #endif
@@ -4066,7 +4066,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                                (char *)get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                               ap == NULL ? tv_str(tvs, &arg_idx) :
+                               tvs != NULL ? tv_str(tvs, &arg_idx) :
 # endif
                                    va_arg(ap, char *);
 #endif
@@ -4127,10 +4127,10 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                        length_modifier = '\0';
                        ptr_arg =
 #ifndef HAVE_STDARG_H
-                                   (void *)get_a_arg(arg_idx);
+                                (void *)get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                                   ap == NULL ? (void *)tv_str(tvs, &arg_idx) :
+                                tvs != NULL ? (void *)tv_str(tvs, &arg_idx) :
 # endif
                                        va_arg(ap, void *);
 #endif
@@ -4150,7 +4150,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                                        get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                                       ap == NULL ? tv_nr(tvs, &arg_idx) :
+                                       tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                                            va_arg(ap, int);
 #endif
@@ -4165,7 +4165,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                                        get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                                       ap == NULL ? tv_nr(tvs, &arg_idx) :
+                                       tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                                            va_arg(ap, long int);
 #endif
@@ -4188,7 +4188,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                                            get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                                           ap == NULL ? tv_nr(tvs, &arg_idx) :
+                                           tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                                                va_arg(ap, unsigned int);
 #endif
@@ -4201,7 +4201,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
                                            get_a_arg(arg_idx);
 #else
 # if defined(FEAT_EVAL)
-                                           ap == NULL ? tv_nr(tvs, &arg_idx) :
+                                           tvs != NULL ? tv_nr(tvs, &arg_idx) :
 # endif
                                                va_arg(ap, unsigned long int);
 #endif
@@ -4484,7 +4484,7 @@ vim_snprintf(str, str_m, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
     }
 
 #ifdef HAVE_STDARG_H
-    if (ap == NULL && tvs[arg_idx - 1].v_type != VAR_UNKNOWN)
+    if (tvs != NULL && tvs[arg_idx - 1].v_type != VAR_UNKNOWN)
        EMSG(_("E767: Too many arguments to printf()"));
 #endif
 
index 1ff5a069befb027f6f38ffbd07858bf7c977861c..f8b86168d1a0a6602e9babe1ca9430946c6418c8 100644 (file)
@@ -3177,7 +3177,7 @@ reg_getline(lnum)
      * can't go before line 1 */
     if (reg_firstlnum + lnum < 1)
        return NULL;
-    if (reg_firstlnum + lnum > reg_buf->b_ml.ml_line_count)
+    if (lnum > reg_maxline)
        /* Must have matched the "\n" in the last line. */
        return (char_u *)"";
     return ml_get_buf(reg_buf, reg_firstlnum + lnum, FALSE);
index 6562d655c2db8aad047478638f05fad9545c238c..b3dbe0141c30558bfb71cd1d3946950c3163e473 100644 (file)
@@ -2594,7 +2594,7 @@ win_line(wp, lnum, startrow, endrow)
     extra_check = 0;
 #endif
 #ifdef FEAT_SYN_HL
-    if (syntax_present(wp->w_buffer))
+    if (syntax_present(wp->w_buffer) && !wp->w_buffer->b_syn_error)
     {
        /* Prepare for syntax highlighting in this line.  When there is an
         * error, stop syntax highlighting. */
@@ -2602,7 +2602,7 @@ win_line(wp, lnum, startrow, endrow)
        did_emsg = FALSE;
        syntax_start(wp, lnum);
        if (did_emsg)
-           syntax_clear(wp->w_buffer);
+           wp->w_buffer->b_syn_error = TRUE;
        else
        {
            did_emsg = save_did_emsg;
@@ -3643,7 +3643,10 @@ win_line(wp, lnum, startrow, endrow)
                                               has_spell ? &can_spell : NULL);
 
                    if (did_emsg)
-                       syntax_clear(wp->w_buffer);
+                   {
+                       wp->w_buffer->b_syn_error = TRUE;
+                       has_syntax = FALSE;
+                   }
                    else
                        did_emsg = save_did_emsg;
 
index 114e3f2aa8895b9557b77d9dde1ac76a4b6b7f69..a3fc24f72089c4a402ddde3739eff1f175b90661 100644 (file)
  */
 
 /* Use SPELL_PRINTTREE for debugging: dump the word tree after adding a word.
- * Only use it for small word lists!
- * SPELL_COMPRESS_CNT is in how many words we compress the tree to limit the
- * amount of memory used (esp. for Italian). */
+ * Only use it for small word lists! */
 #if 0
 # define SPELL_PRINTTREE
-# define SPELL_COMPRESS_CNT 1
-#else
-# define SPELL_COMPRESS_CNT 1000000
 #endif
 
+/* SPELL_COMPRESS_CNT is after how many allocated blocks we compress the tree
+ * to limit the amount of memory used (esp. for Italian and Hungarian).  The
+ * amount of memory used for nodes then is SPELL_COMPRESS_CNT times
+ * SBLOCKSIZE.
+ * Then compress again after allocating SPELL_COMPRESS_INC more blocks or
+ * adding SPELL_COMPRESS_ADDED words and running out of memory again.  */
+#define SPELL_COMPRESS_CNT 30000
+#define SPELL_COMPRESS_INC 100
+#define SPELL_COMPRESS_ADDED 500000
+
 /*
  * Use this to adjust the score after finding suggestions, based on the
  * suggested word sounding like the bad word.  This is much faster than doing
@@ -594,8 +599,9 @@ typedef struct trystate_S
     char_u     ts_fidx;        /* index in fword[], case-folded bad word */
     char_u     ts_fidxtry;     /* ts_fidx at which bytes may be changed */
     char_u     ts_twordlen;    /* valid length of tword[] */
-    char_u     ts_prefixdepth; /* stack depth for end of prefix or PREFIXTREE
-                                * or NOPREFIX */
+    char_u     ts_prefixdepth; /* stack depth for end of prefix or
+                                * PFD_PREFIXTREE or PFD_NOPREFIX or
+                                * PFD_COMPOUND */
 #ifdef FEAT_MBYTE
     char_u     ts_tcharlen;    /* number of bytes in tword character */
     char_u     ts_tcharidx;    /* current byte index in tword character */
@@ -613,8 +619,9 @@ typedef struct trystate_S
 #define DIFF_INSERT    2       /* inserting character */
 
 /* special values ts_prefixdepth */
-#define PREFIXTREE     0xfe    /* walking through the prefix tree */
-#define NOPREFIX       0xff    /* not using prefixes */
+#define PFD_COMPOUND   0xfd    /* prefixed is a compound word */
+#define PFD_PREFIXTREE 0xfe    /* walking through the prefix tree */
+#define PFD_NOPREFIX   0xff    /* not using prefixes */
 
 /* mode values for find_word */
 #define FIND_FOLDWORD      0   /* find word case-folded */
@@ -627,6 +634,7 @@ static slang_T *slang_alloc __ARGS((char_u *lang));
 static void slang_free __ARGS((slang_T *lp));
 static void slang_clear __ARGS((slang_T *lp));
 static void find_word __ARGS((matchinf_T *mip, int mode));
+static int can_compound __ARGS((slang_T *slang, int flags));
 static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req));
 static void find_prefix __ARGS((matchinf_T *mip));
 static int fold_more __ARGS((matchinf_T *mip));
@@ -740,6 +748,7 @@ static linenr_T apply_prefixes __ARGS((slang_T *slang, char_u *word, int round,
 
 static char *e_format = N_("E759: Format error in spell file");
 static char *e_spell_trunc = N_("E758: Truncated spell file");
+static char *e_afftrailing = N_("Trailing text in %s line %d: %s");
 static char *msg_compressing = N_("Compressing word tree...");
 
 /*
@@ -1156,8 +1165,7 @@ find_word(mip, mode)
 
                /* The word doesn't end or it comes after another: it must
                 * have a compound flag. */
-               /* TODO: check more flags */
-               if (*slang->sl_compflags != ((unsigned)flags >> 24))
+               if (!can_compound(slang, flags))
                    continue;
            }
 
@@ -1230,6 +1238,19 @@ find_word(mip, mode)
     }
 }
 
+/*
+ * Return TRUE if "flags" has a valid compound flag.
+ * TODO: check flags in a more advanced way.
+ */
+    static int
+can_compound(slang, flags)
+    slang_T    *slang;
+    int                flags;
+{
+    return slang->sl_compflags != NULL
+                          && *slang->sl_compflags == ((unsigned)flags >> 24);
+}
+
 /*
  * Return non-zero if the prefix indicated by "arridx" matches with the prefix
  * ID in "flags" for the word "word".
@@ -3324,17 +3345,19 @@ typedef struct spellinfo_S
 {
     wordnode_T *si_foldroot;   /* tree with case-folded words */
     long       si_foldwcount;  /* nr of words in si_foldroot */
-    int                si_fold_added;  /* nr of words added since compressing */
 
     wordnode_T *si_keeproot;   /* tree with keep-case words */
     long       si_keepwcount;  /* nr of words in si_keeproot */
-    int                si_keep_added;  /* nr of words added since compressing */
 
     wordnode_T *si_prefroot;   /* tree with postponed prefixes */
 
     sblock_T   *si_blocks;     /* memory blocks used */
+    long       si_blocks_cnt;  /* memory blocks allocated */
+    long       si_compress_cnt;    /* words to add before lowering
+                                      compression limit */
     wordnode_T *si_first_free; /* List of nodes that have been freed during
                                   compression, linked by "wn_child" field. */
+    long       si_free_count;  /* number of nodes in si_first_free */
 #ifdef SPELL_PRINTTREE
     int                si_wordnode_nr; /* sequence nr for nodes */
 #endif
@@ -3801,8 +3824,7 @@ spell_read_aff(spin, fname)
                /* Myspell allows extra text after the item, but that might
                 * mean mistakes go unnoticed.  Require a comment-starter. */
                if (itemcnt > lasti && *items[lasti] != '#')
-                   smsg((char_u *)_("Trailing text in %s line %d: %s"),
-                                                  fname, lnum, items[lasti]);
+                   smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
 
                /* New item for an affix letter. */
                --aff_todo;
@@ -3983,9 +4005,13 @@ spell_read_aff(spin, fname)
                    smsg((char_u *)_("Expected REP count in %s line %d"),
                                                                 fname, lnum);
            }
-           else if (STRCMP(items[0], "REP") == 0 && itemcnt == 3)
+           else if (STRCMP(items[0], "REP") == 0 && itemcnt >= 3)
            {
                /* REP item */
+               /* Myspell ignores extra arguments, we require it starts with
+                * # to detect mistakes. */
+               if (itemcnt > 3 && items[3][0] != '#')
+                   smsg((char_u *)_(e_afftrailing), fname, lnum, items[3]);
                if (do_rep)
                    add_fromto(spin, &spin->si_rep, items[1], items[2]);
            }
@@ -4119,9 +4145,6 @@ spell_read_aff(spin, fname)
            smsg((char_u *)_("COMPOUNDFLAG(S) value differs from what is used in another .aff file"));
        else
            spin->si_compflags = aff->af_compflags;
-
-       if (aff->af_pfxpostpone)
-           smsg((char_u *)_("Cannot use both PFXPOSTPONE and COMPOUNDFLAG(S)"));
     }
 
     vim_free(pc);
@@ -4412,10 +4435,32 @@ spell_read_dic(spin, fname, affile)
            if (affile->af_pfxpostpone)
                /* Need to store the list of prefix IDs with the word. */
                store_afflist = get_pfxlist(spin, affile, afflist);
-           else if (spin->si_compflags)
-               /* Need to store the list of affix IDs for compounding with
-                * the word. */
-               store_afflist = get_compflags(spin, afflist);
+
+           if (spin->si_compflags)
+           {
+               /* Need to store the list of compound flags with the word. */
+               p = get_compflags(spin, afflist);
+               if (p != NULL)
+               {
+                   if (store_afflist != NULL)
+                   {
+                       char_u *s;
+
+                       /* Concatenate the prefix IDs with the compound flags.
+                        */
+                       s = getroom(spin, STRLEN(store_afflist)
+                                                     + STRLEN(p) + 1, FALSE);
+                       if (s != NULL)
+                       {
+                           STRCPY(s, store_afflist);
+                           STRCAT(s, p);
+                           store_afflist = s;
+                       }
+                   }
+                   else
+                       store_afflist = p;
+               }
+           }
        }
 
        /* Add the word to the word tree(s). */
@@ -4938,6 +4983,7 @@ getroom(spin, len, align)
        bl->sb_next = spin->si_blocks;
        spin->si_blocks = bl;
        bl->sb_used = 0;
+       ++spin->si_blocks_cnt;
     }
 
     p = bl->sb_data + bl->sb_used;
@@ -4996,7 +5042,8 @@ wordtree_alloc(spin)
  * useful when the word can also be used with all caps (no WF_FIXCAP flag) and
  * used to find suggestions.
  * For a keep-case word also store it in the keep-case tree.
- * When "pfxlist" is not NULL store the word for each postponed prefix ID.
+ * When "pfxlist" is not NULL store the word for each postponed prefix ID and
+ * compound flag.
  */
     static int
 store_word(spin, word, flags, region, pfxlist)
@@ -5158,29 +5205,38 @@ tree_add_word(spin, word, root, flags, region, affixID)
     /* count nr of words added since last message */
     ++spin->si_msg_count;
 
-    /*
-     * Every so many words compress the tree, so that we don't use too much
-     * memory.
-     */
-    i = FALSE;
-    if (root == spin->si_foldroot)
+    if (spin->si_compress_cnt > 1)
     {
-       if (++spin->si_fold_added >= SPELL_COMPRESS_CNT)
-       {
-           i = TRUE;
-           spin->si_fold_added = 0;
-       }
+       if (--spin->si_compress_cnt == 1)
+           /* Did enough words to lower the block count limit. */
+           spin->si_blocks_cnt += SPELL_COMPRESS_INC;
     }
-    else if (root == spin->si_keeproot)
-    {
-       if (++spin->si_keep_added >= SPELL_COMPRESS_CNT)
-       {
-           i = TRUE;
-           spin->si_keep_added = 0;
-       }
-    }
-    if (i)
+
+    /*
+     * When we have allocated lots of memory we need to compress the word tree
+     * to free up some room.  But compression is slow, and we might actually
+     * need that room, thus only compress in the following situations:
+     * 1. When not compressed before (si_compress_cnt == 0): when using
+     *    SPELL_COMPRESS_CNT blocks.
+     * 2. When compressed before and used SPELL_COMPRESS_INC blocks before
+     *    adding SPELL_COMPRESS_ADDED words (si_compress_cnt > 1).
+     * 3. When compressed before, added SPELL_COMPRESS_ADDED words
+     *    (si_compress_cnt == 1) and the number of free nodes drops below the
+     *    maximum word length.
+     */
+#ifndef SPELL_PRINTTREE
+    if (spin->si_compress_cnt == 1
+           ? spin->si_free_count < MAXWLEN
+           : spin->si_blocks_cnt >= SPELL_COMPRESS_CNT)
+#endif
     {
+       /* Decrement the block counter.  The effect is that we compress again
+        * when the freed up room has been used and another SPELL_COMPRESS_INC
+        * blocks have been allocated.  Unless SPELL_COMPRESS_ADDED words have
+        * been added, then the limit is put back again. */
+       spin->si_blocks_cnt -= SPELL_COMPRESS_INC;
+       spin->si_compress_cnt = SPELL_COMPRESS_ADDED;
+
        if (spin->si_verbose)
        {
            msg_start();
@@ -5190,7 +5246,12 @@ tree_add_word(spin, word, root, flags, region, affixID)
            msg_col = 0;
            out_flush();
        }
-       wordtree_compress(spin, root);
+
+       /* Compress both trees.  Either they both have many nodes, which makes
+        * compression useful, or one of them is small, which means
+        * compression goes fast. */
+       wordtree_compress(spin, spin->si_foldroot);
+       wordtree_compress(spin, spin->si_keeproot);
     }
 
     return OK;
@@ -5213,6 +5274,7 @@ get_wordnode(spin)
        n = spin->si_first_free;
        spin->si_first_free = n->wn_child;
        vim_memset(n, 0, sizeof(wordnode_T));
+       --spin->si_free_count;
     }
 #ifdef SPELL_PRINTTREE
     n->wn_nr = ++spin->si_wordnode_nr;
@@ -5252,6 +5314,7 @@ free_wordnode(spin, n)
 {
     n->wn_child = spin->si_first_free;
     spin->si_first_free = n;
+    ++spin->si_free_count;
 }
 
 /*
@@ -5282,6 +5345,8 @@ wordtree_compress(spin, root)
                verbose_enter();
            if (tot > 1000000)
                perc = (tot - n) / (tot / 100);
+           else if (tot == 0)
+               perc = 0;
            else
                perc = (tot - n) * 100 / tot;
            smsg((char_u *)_("Compressed %d of %d nodes; %d%% remaining"),
@@ -5323,7 +5388,7 @@ node_compress(spin, node, ht, tot)
      * Note that with "child" we mean not just the node that is pointed to,
      * but the whole list of siblings, of which the node is the first.
      */
-    for (np = node; np != NULL; np = np->wn_sibling)
+    for (np = node; np != NULL && !got_int; np = np->wn_sibling)
     {
        ++len;
        if ((child = np->wn_child) != NULL)
@@ -5398,6 +5463,9 @@ node_compress(spin, node, ht, tot)
     node->wn_u1.hashkey[4] = n == 0 ? 1 : n;
     node->wn_u1.hashkey[5] = NUL;
 
+    /* Check for CTRL-C pressed now and then. */
+    fast_breakcheck();
+
     return compressed;
 }
 
@@ -7604,6 +7672,8 @@ suggest_try_change(su)
     fromto_T   *ftp;
     int                fl = 0, tl;
     int                repextra = 0;       /* extra bytes in fword[] from REP item */
+    slang_T    *slang;
+    int                fword_ends;
 
     /* We make a copy of the case-folded bad word, so that we can modify it
      * to find matches (esp. REP items).  Append some more text, changing
@@ -7616,6 +7686,8 @@ suggest_try_change(su)
     for (lp = LANGP_ENTRY(curwin->w_buffer->b_langp, 0);
                                                   lp->lp_slang != NULL; ++lp)
     {
+       slang = lp->lp_slang;
+
        /*
         * Go through the whole case-fold tree, try changes at each node.
         * "tword[]" contains the word collected from nodes in the tree.
@@ -7639,22 +7711,22 @@ suggest_try_change(su)
         * When there are postponed prefixes we need to use these first.  At
         * the end of the prefix we continue in the case-fold tree.
         */
-       fbyts = lp->lp_slang->sl_fbyts;
-       fidxs = lp->lp_slang->sl_fidxs;
-       pbyts = lp->lp_slang->sl_pbyts;
-       pidxs = lp->lp_slang->sl_pidxs;
+       fbyts = slang->sl_fbyts;
+       fidxs = slang->sl_fidxs;
+       pbyts = slang->sl_pbyts;
+       pidxs = slang->sl_pidxs;
        if (pbyts != NULL)
        {
            byts = pbyts;
            idxs = pidxs;
-           sp->ts_prefixdepth = PREFIXTREE;
+           sp->ts_prefixdepth = PFD_PREFIXTREE;
            sp->ts_state = STATE_NOPREFIX;      /* try without prefix first */
        }
        else
        {
            byts = fbyts;
            idxs = fidxs;
-           sp->ts_prefixdepth = NOPREFIX;
+           sp->ts_prefixdepth = PFD_NOPREFIX;
        }
 
        /*
@@ -7679,7 +7751,7 @@ suggest_try_change(su)
                len = byts[arridx];         /* bytes in this node */
                arridx += sp->ts_curi;      /* index of current byte */
 
-               if (sp->ts_prefixdepth == PREFIXTREE)
+               if (sp->ts_prefixdepth == PFD_PREFIXTREE)
                {
                    /* Skip over the NUL bytes, we use them later. */
                    for (n = 0; n < len && byts[arridx + n] == 0; ++n)
@@ -7743,7 +7815,17 @@ suggest_try_change(su)
 
                flags = (int)idxs[arridx];
 
-               if (sp->ts_prefixdepth < MAXWLEN)
+               if (sp->ts_prefixdepth == PFD_COMPOUND)
+               {
+                   /* There was a compound word before this word.  If this
+                    * word does not support compounding then give up
+                    * (splitting is tried for the word without compound
+                    * flag). */
+                   if (sp->ts_twordlen - splitoff < slang->sl_compminlen
+                                              || !can_compound(slang, flags))
+                       break;
+               }
+               else if (sp->ts_prefixdepth < MAXWLEN)
                {
                    /* There was a prefix before the word.  Check that the
                     * prefix can be used with this word. */
@@ -7756,10 +7838,8 @@ suggest_try_change(su)
                        ;
                    if (c > 0)
                    {
-                       /* The prefix ID is stored three bytes above the
-                        * flags. */
                        c = valid_word_prefix(c, n, flags,
-                                      tword + splitoff, lp->lp_slang, FALSE);
+                                             tword + splitoff, slang, FALSE);
                        if (c == 0)
                            break;
 
@@ -7776,7 +7856,7 @@ suggest_try_change(su)
                tword[sp->ts_twordlen] = NUL;
                if (flags & WF_KEEPCAP)
                    /* Must find the word in the keep-case tree. */
-                   find_keepcap_word(lp->lp_slang, tword + splitoff,
+                   find_keepcap_word(slang, tword + splitoff,
                                                        preword + prewordlen);
                else
                {
@@ -7818,9 +7898,9 @@ suggest_try_change(su)
                                         captype(preword + prewordlen, NULL)))
                    newscore += SCORE_ICASE;
 
-               if ((fword[sp->ts_fidx] == NUL
-                              || !spell_iswordp(fword + sp->ts_fidx, curbuf))
-                       && sp->ts_fidx >= sp->ts_fidxtry)
+               fword_ends = (fword[sp->ts_fidx] == NUL
+                              || !spell_iswordp(fword + sp->ts_fidx, curbuf));
+               if (fword_ends && sp->ts_fidx >= sp->ts_fidxtry)
                {
                    /* The badword also ends: add suggestions.  Give a penalty
                     * when changing non-word char to word char, e.g., "thes,"
@@ -7849,17 +7929,38 @@ suggest_try_change(su)
                            sp->ts_fidx - repextra,
                                           sp->ts_score + newscore, 0, FALSE);
                }
-               else if (sp->ts_fidx >= sp->ts_fidxtry
+               else if ((sp->ts_fidx >= sp->ts_fidxtry || fword_ends)
 #ifdef FEAT_MBYTE
                        /* Don't split halfway a character. */
                        && (!has_mbyte || sp->ts_tcharlen == 0)
 #endif
                        )
                {
-                   /* The word in the tree ends but the badword
-                    * continues: try inserting a space and check that a valid
-                    * words starts at fword[sp->ts_fidx]. */
-                   if (try_deeper(su, stack, depth, newscore + SCORE_SPLIT))
+                   int     try_compound;
+
+                   /* Get here in two situations:
+                    * 1. The word in the tree ends but the badword continues:
+                    *    If the word allows compounding try that.  Otherwise
+                    *    try a split by inserting a space.  For both check
+                    *    that a valid words starts at fword[sp->ts_fidx].
+                    * 2. The badword does end, but it was due to a change
+                    *    (e.g., a swap).  No need to split, but do check that
+                    *    the following word is valid.
+                    */
+                   if (!fword_ends
+                           && spell_iswordp(fword + sp->ts_fidx, curbuf)
+                           && sp->ts_twordlen - splitoff
+                                                     >= slang->sl_compminlen
+                           && can_compound(slang, flags))
+                       try_compound = TRUE;
+                   else
+                   {
+                       try_compound = FALSE;
+                       if (!fword_ends)
+                           newscore += SCORE_SPLIT;
+                   }
+
+                   if (try_deeper(su, stack, depth, newscore))
                    {
                        /* Save things to be restored at STATE_SPLITUNDO. */
                        sp->ts_save_prewordlen = prewordlen;
@@ -7870,28 +7971,49 @@ suggest_try_change(su)
                        ++depth;
                        sp = &stack[depth];
 
-                       /* Append a space to preword. */
-                       STRCAT(preword, " ");
+                       /* Append a space to preword when splitting. */
+                       if (!try_compound && !fword_ends)
+                           STRCAT(preword, " ");
                        prewordlen = STRLEN(preword);
                        splitoff = sp->ts_twordlen;
 
                        /* If the badword has a non-word character at this
                         * position skip it.  That means replacing the
-                        * non-word character with a space. */
-                       if (!spell_iswordp_nmw(fword + sp->ts_fidx))
+                        * non-word character with a space.  Always skip a
+                        * character when the word ends. */
+                       if ((!try_compound
+                                  && !spell_iswordp_nmw(fword + sp->ts_fidx))
+                               || fword_ends)
                        {
-                           sp->ts_score -= SCORE_SPLIT - SCORE_SUBST;
+                           int     l;
+
 #ifdef FEAT_MBYTE
                            if (has_mbyte)
-                               sp->ts_fidx += MB_BYTE2LEN(fword[sp->ts_fidx]);
+                               = MB_BYTE2LEN(fword[sp->ts_fidx]);
                            else
 #endif
-                               ++sp->ts_fidx;
+                               l = 1;
+                           if (fword_ends)
+                           {
+                               /* Copy the skipped character to preword. */
+                               mch_memmove(preword + prewordlen,
+                                                     fword + sp->ts_fidx, l);
+                               prewordlen += l;
+                               preword[prewordlen] = NUL;
+                           }
+                           else
+                               sp->ts_score -= SCORE_SPLIT - SCORE_SUBST;
+                           sp->ts_fidx += l;
                        }
 
+                       /* set flag to check compound flag on following word */
+                       if (try_compound)
+                           sp->ts_prefixdepth = PFD_COMPOUND;
+                       else
+                           sp->ts_prefixdepth = PFD_NOPREFIX;
+
                        /* set su->su_badflags to the caps type at this
                         * position */
-
 #ifdef FEAT_MBYTE
                        if (has_mbyte)
                            n = nofold_len(fword, sp->ts_fidx, su->su_badptr);
@@ -7908,10 +8030,10 @@ suggest_try_change(su)
                break;
 
            case STATE_SPLITUNDO:
-               /* Undo the changes done for word split. */
+               /* Undo the changes done for word split or compound word. */
                su->su_badflags = sp->ts_save_badflags;
                splitoff = sp->ts_save_splitoff;
-               prewordlen =  sp->ts_save_prewordlen;
+               prewordlen = sp->ts_save_prewordlen;
 
                /* Continue looking for NUL bytes. */
                sp->ts_state = STATE_START;
@@ -8018,8 +8140,8 @@ suggest_try_change(su)
 
                                    /* For a similar character adjust score
                                     * from SCORE_SUBST to SCORE_SIMILAR. */
-                                   else if (lp->lp_slang->sl_has_map
-                                           && similar_chars(lp->lp_slang,
+                                   else if (slang->sl_has_map
+                                           && similar_chars(slang,
                                                mb_ptr2char(tword
                                                    + sp->ts_twordlen
                                                           - sp->ts_tcharlen),
@@ -8064,8 +8186,8 @@ suggest_try_change(su)
                             * We do this after calling try_deeper() because
                             * it's slow. */
                            if (newscore != 0
-                                   && lp->lp_slang->sl_has_map
-                                   && similar_chars(lp->lp_slang,
+                                   && slang->sl_has_map
+                                   && similar_chars(slang,
                                                   c, fword[sp->ts_fidx - 1]))
                                sp->ts_score -= SCORE_SUBST - SCORE_SIMILAR;
                        }
@@ -8432,7 +8554,7 @@ suggest_try_change(su)
                /* Check if matching with REP items from the .aff file would
                 * work.  Quickly skip if there are no REP items or the score
                 * is going to be too high anyway. */
-               gap = &lp->lp_slang->sl_rep;
+               gap = &slang->sl_rep;
                if (gap->ga_len == 0
                               || sp->ts_score + SCORE_REP >= su->su_maxscore)
                {
@@ -8442,7 +8564,7 @@ suggest_try_change(su)
 
                /* Use the first byte to quickly find the first entry that
                 * may match.  If the index is -1 there is none. */
-               sp->ts_curi = lp->lp_slang->sl_rep_first[fword[sp->ts_fidx]];
+               sp->ts_curi = slang->sl_rep_first[fword[sp->ts_fidx]];
                if (sp->ts_curi < 0)
                {
                    sp->ts_state = STATE_FINAL;
@@ -8458,7 +8580,7 @@ suggest_try_change(su)
                 * word is valid. */
                p = fword + sp->ts_fidx;
 
-               gap = &lp->lp_slang->sl_rep;
+               gap = &slang->sl_rep;
                while (sp->ts_curi < gap->ga_len)
                {
                    ftp = (fromto_T *)gap->ga_data + sp->ts_curi++;
@@ -8500,8 +8622,7 @@ suggest_try_change(su)
 
            case STATE_REP_UNDO:
                /* Undo a REP replacement and continue with the next one. */
-               ftp = (fromto_T *)lp->lp_slang->sl_rep.ga_data
-                                                           + sp->ts_curi - 1;
+               ftp = (fromto_T *)slang->sl_rep.ga_data + sp->ts_curi - 1;
                fl = STRLEN(ftp->ft_from);
                tl = STRLEN(ftp->ft_to);
                p = fword + sp->ts_fidx;
@@ -8518,7 +8639,7 @@ suggest_try_change(su)
                /* Did all possible states at this level, go up one level. */
                --depth;
 
-               if (depth >= 0 && stack[depth].ts_prefixdepth == PREFIXTREE)
+               if (depth >= 0 && stack[depth].ts_prefixdepth == PFD_PREFIXTREE)
                {
                    /* Continue in or go back to the prefix tree. */
                    byts = pbyts;
index af859bf99376d6724f5d39b9ac005164c9355e35..5473510e2db02434cb3672ad527ef62ca9d4be8d 100644 (file)
@@ -1432,6 +1432,7 @@ struct file_buffer
 #ifdef FEAT_SYN_HL
     hashtab_T  b_keywtab;              /* syntax keywords hash table */
     hashtab_T  b_keywtab_ic;           /* idem, ignore case */
+    int                b_syn_error;            /* TRUE when error occured in HL */
     int                b_syn_ic;               /* ignore case for :syn cmds */
     int                b_syn_spell;            /* SYNSPL_ values */
     garray_T   b_syn_patterns;         /* table for syntax patterns */
index 4c4cbadba5785b8dd4bf3374147f7f0bb5915130..aa393d7d6335dfc87f5eb043c875972ac1119d22 100644 (file)
@@ -3182,6 +3182,7 @@ syntax_clear(buf)
 {
     int i;
 
+    buf->b_syn_error = FALSE;      /* clear previous error */
     buf->b_syn_ic = FALSE;         /* Use case, by default */
     buf->b_syn_spell = SYNSPL_DEFAULT; /* default spell checking */
     buf->b_syn_containedin = FALSE;
index 4b697355b0f0aad8b0366df005af4ced211c5cca..94726c6d0cb15f126d6204510c4a9f2d5e7dab57 100644 (file)
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT      "vim70aa"
 #define VIM_VERSION_SHORT      "7.0aa"
 #define VIM_VERSION_MEDIUM     "7.0aa ALPHA"
-#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 15)"
-#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 15, compiled "
+#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 16)"
+#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 16, compiled "