summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-08-16 23:01:50 +0000
committerBram Moolenaar <Bram@vim.org>2005-08-16 23:01:50 +0000
commit5b8d8fdb526bd21dbac64a3ea815a1e628b93b41 (patch)
treeb5374790a1bada07bc6aa142919591fc4898e0bb
parentae5bce1c127136a650ee25c4c78d3d334cc07859 (diff)
downloadvim-git-5b8d8fdb526bd21dbac64a3ea815a1e628b93b41.tar.gz
updated for version 7.0131v7.0131
-rw-r--r--runtime/autoload/netrw.vim (renamed from runtime/plugin/netrw.vim)219
-rw-r--r--runtime/doc/eval.txt16
-rw-r--r--runtime/doc/map.txt19
-rw-r--r--runtime/doc/pi_netrw.txt379
-rw-r--r--runtime/doc/spell.txt25
-rw-r--r--runtime/doc/tags11
-rw-r--r--runtime/doc/todo.txt10
-rw-r--r--runtime/doc/version7.txt11
-rw-r--r--runtime/filetype.vim4
-rw-r--r--runtime/menu.vim11
-rw-r--r--runtime/plugin/NetrwFileHandlers.vim30
-rw-r--r--runtime/plugin/NetrwPlugin.vim156
-rw-r--r--runtime/plugin/NetrwSettings.vim157
-rw-r--r--runtime/spell/af/main.aap4
-rw-r--r--runtime/spell/bg/main.aap7
-rw-r--r--runtime/spell/ca/main.aap4
-rw-r--r--runtime/spell/cs/main.aap6
-rw-r--r--runtime/spell/da/da_DK.diff16
-rw-r--r--runtime/spell/da/main.aap6
-rw-r--r--runtime/spell/de/main.aap4
-rw-r--r--runtime/spell/el/main.aap78
-rw-r--r--runtime/spell/en.ascii.splbin566601 -> 566603 bytes
-rw-r--r--runtime/spell/en.latin1.splbin568696 -> 568698 bytes
-rw-r--r--runtime/spell/en.utf-8.splbin569127 -> 569129 bytes
-rw-r--r--runtime/spell/en/en_AU.diff11
-rw-r--r--runtime/spell/en/en_CA.diff18
-rw-r--r--runtime/spell/en/en_GB.diff4
-rw-r--r--runtime/spell/en/en_NZ.diff29
-rw-r--r--runtime/spell/en/en_US.diff22
-rw-r--r--runtime/spell/en/main.aap6
-rw-r--r--runtime/spell/eo/eo_l3.diff0
-rw-r--r--runtime/spell/eo/main.aap80
-rw-r--r--runtime/spell/fo/fo_FO.diff14
-rw-r--r--runtime/spell/fo/main.aap78
-rw-r--r--runtime/spell/fr/main.aap4
-rw-r--r--runtime/spell/gl/gl_ES.diff15
-rw-r--r--runtime/spell/gl/main.aap78
-rw-r--r--runtime/spell/he/main.aap4
-rw-r--r--runtime/spell/hr/main.aap8
-rw-r--r--runtime/spell/hu/hu_HU.diff128
-rw-r--r--runtime/spell/hu/main.aap81
-rw-r--r--runtime/spell/it/main.aap6
-rw-r--r--runtime/spell/main.aap18
-rw-r--r--runtime/spell/nl/main.aap4
-rw-r--r--runtime/spell/ny/main.aap8
-rw-r--r--runtime/spell/pl/main.aap6
-rw-r--r--runtime/spell/sk/main.aap8
-rw-r--r--runtime/spell/yi/!yi.diff11
-rw-r--r--runtime/spell/yi/!yi_tr.diff8
-rw-r--r--runtime/spell/yi/README.txt3
-rw-r--r--runtime/spell/yi/main.aap44
-rw-r--r--runtime/spell/yi/yi.diff13
-rw-r--r--runtime/spell/yi/yi_tr.diff18
-rw-r--r--runtime/syntax/sh.vim30
-rw-r--r--runtime/syntax/tex.vim60
-rw-r--r--runtime/syntax/vim.vim26
-rw-r--r--src/eval.c14
-rw-r--r--src/ex_docmd.c4
-rw-r--r--src/gui.c5
-rw-r--r--src/message.c24
-rw-r--r--src/regexp.c2
-rw-r--r--src/screen.c9
-rw-r--r--src/spell.c295
-rw-r--r--src/structs.h1
-rw-r--r--src/syntax.c1
-rw-r--r--src/version.h4
66 files changed, 1775 insertions, 600 deletions
diff --git a/runtime/plugin/netrw.vim b/runtime/autoload/netrw.vim
index 85d7df743..e077e25e7 100644
--- a/runtime/plugin/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -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
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index f98bd9372..61a22df73 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -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
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index de29f0fbc..a135a481a 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -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 >
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 4cc59c3e9..00718833f 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -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.
@@ -11,6 +11,13 @@
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|
@@ -53,8 +60,10 @@
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
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 05252916a..929c1060a 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -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*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 18f60888b..118e324f3 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -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()*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 1f82ecc1a..24349231d 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -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
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index a1c537fd6..dce51bd8d 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -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:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 560c479d2..96c06e4d8 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 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
diff --git a/runtime/menu.vim b/runtime/menu.vim
index 52607235c..f4ed1b528 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -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>
diff --git a/runtime/plugin/NetrwFileHandlers.vim b/runtime/plugin/NetrwFileHandlers.vim
index 9b9cd2060..2aa1d9b83 100644
--- a/runtime/plugin/NetrwFileHandlers.vim
+++ b/runtime/plugin/NetrwFileHandlers.vim
@@ -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
@@ -174,21 +177,6 @@ fun! NetrwFileHandler_pdf(pdf)
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)
" " call Dfunc("NetrwFileHandler_doc(doc<".a:doc.">)")
diff --git a/runtime/plugin/NetrwPlugin.vim b/runtime/plugin/NetrwPlugin.vim
new file mode 100644
index 000000000..b1f5abd78
--- /dev/null
+++ b/runtime/plugin/NetrwPlugin.vim
@@ -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
index 000000000..eecdcd234
--- /dev/null
+++ b/runtime/plugin/NetrwSettings.vim
@@ -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
diff --git a/runtime/spell/af/main.aap b/runtime/spell/af/main.aap
index d393c5fe6..ec5382509 100644
--- a/runtime/spell/af/main.aap
+++ b/runtime/spell/af/main.aap
@@ -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
diff --git a/runtime/spell/bg/main.aap b/runtime/spell/bg/main.aap
index 7849526ed..5d984be51 100644
--- a/runtime/spell/bg/main.aap
+++ b/runtime/spell/bg/main.aap
@@ -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.
diff --git a/runtime/spell/ca/main.aap b/runtime/spell/ca/main.aap
index b2f7350b6..2182f2916 100644
--- a/runtime/spell/ca/main.aap
+++ b/runtime/spell/ca/main.aap
@@ -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
diff --git a/runtime/spell/cs/main.aap b/runtime/spell/cs/main.aap
index 5ead6d0a3..53ae46fea 100644
--- a/runtime/spell/cs/main.aap
+++ b/runtime/spell/cs/main.aap
@@ -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
index 000000000..afcb8d3bc
--- /dev/null
+++ b/runtime/spell/da/da_DK.diff
@@ -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-
diff --git a/runtime/spell/da/main.aap b/runtime/spell/da/main.aap
index 53e371648..b84a80f93 100644
--- a/runtime/spell/da/main.aap
+++ b/runtime/spell/da/main.aap
@@ -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
diff --git a/runtime/spell/de/main.aap b/runtime/spell/de/main.aap
index df608e1b7..718e78c6f 100644
--- a/runtime/spell/de/main.aap
+++ b/runtime/spell/de/main.aap
@@ -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
index 000000000..51fa0d36e
--- /dev/null
+++ b/runtime/spell/el/main.aap
@@ -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 :
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index c77ef9af7..9d2b068c4 100644
--- a/runtime/spell/en.ascii.spl
+++ b/runtime/spell/en.ascii.spl
Binary files differ
diff --git a/runtime/spell/en.latin1.spl b/runtime/spell/en.latin1.spl
index 851f7141f..95b536394 100644
--- a/runtime/spell/en.latin1.spl
+++ b/runtime/spell/en.latin1.spl
Binary files differ
diff --git a/runtime/spell/en.utf-8.spl b/runtime/spell/en.utf-8.spl
index d6b783644..8b2edc692 100644
--- a/runtime/spell/en.utf-8.spl
+++ b/runtime/spell/en.utf-8.spl
Binary files differ
diff --git a/runtime/spell/en/en_AU.diff b/runtime/spell/en/en_AU.diff
index c0ee62d6b..2d6e42c56 100644
--- a/runtime/spell/en/en_AU.diff
+++ b/runtime/spell/en/en_AU.diff
@@ -2352,7 +2352,7 @@
! 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
@@ -2603,25 +2603,26 @@
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/!
diff --git a/runtime/spell/en/en_CA.diff b/runtime/spell/en/en_CA.diff
index 904e0c620..c6319ce86 100644
--- a/runtime/spell/en/en_CA.diff
+++ b/runtime/spell/en/en_CA.diff
@@ -165,7 +165,7 @@
! 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
@@ -405,6 +405,15 @@
+ Moolenaar/M
Bresenham/M
***************
+*** 40455,40457 ****
+ proneness/MS
+! transl
+ Conchita/M
+--- 40454,40456 ----
+ proneness/MS
+! transl.
+ Conchita/M
+***************
*** 50272,50273 ****
--- 50271,50273 ----
Dutch/M
@@ -415,19 +424,20 @@
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/!
diff --git a/runtime/spell/en/en_GB.diff b/runtime/spell/en/en_GB.diff
index 6032c2558..714077d4b 100644
--- a/runtime/spell/en/en_GB.diff
+++ b/runtime/spell/en/en_GB.diff
@@ -2356,7 +2356,7 @@
! 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
@@ -2482,7 +2482,7 @@
vindaloo/S
--- 30760,30763 ----
villein/SM
-! vim/M?
+! vim/?
! Vim/M
vindaloo/S
***************
diff --git a/runtime/spell/en/en_NZ.diff b/runtime/spell/en/en_NZ.diff
index 4e28fff4e..3eee71851 100644
--- a/runtime/spell/en/en_NZ.diff
+++ b/runtime/spell/en/en_NZ.diff
@@ -2353,7 +2353,7 @@
! 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
@@ -2591,82 +2591,83 @@
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
diff --git a/runtime/spell/en/en_US.diff b/runtime/spell/en/en_US.diff
index 99ddf0a18..17051dcf8 100644
--- a/runtime/spell/en/en_US.diff
+++ b/runtime/spell/en/en_US.diff
@@ -172,7 +172,7 @@
+ 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
@@ -467,6 +467,15 @@
! sings
sybarite/MS
***************
+*** 56906,56908 ****
+ transit/SGVMD
+! transl
+ translatability/M
+--- 56905,56907 ----
+ transit/SGVMD
+! transl.
+ translatability/M
+***************
*** 57728,57730 ****
TX
! t/XTJBG
@@ -501,16 +510,17 @@
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
@@ -520,19 +530,19 @@
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/!
diff --git a/runtime/spell/en/main.aap b/runtime/spell/en/main.aap
index 37a9ed10e..9e4b98ea7 100644
--- a/runtime/spell/en/main.aap
+++ b/runtime/spell/en/main.aap
@@ -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
index 000000000..e69de29bb
--- /dev/null
+++ b/runtime/spell/eo/eo_l3.diff
diff --git a/runtime/spell/eo/main.aap b/runtime/spell/eo/main.aap
new file mode 100644
index 000000000..19b7555ab
--- /dev/null
+++ b/runtime/spell/eo/main.aap
@@ -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
index 000000000..212befe8d
--- /dev/null
+++ b/runtime/spell/fo/fo_FO.diff
@@ -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
index 000000000..948d4a472
--- /dev/null
+++ b/runtime/spell/fo/main.aap
@@ -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 :
diff --git a/runtime/spell/fr/main.aap b/runtime/spell/fr/main.aap
index 9e51039a4..e7424326d 100644
--- a/runtime/spell/fr/main.aap
+++ b/runtime/spell/fr/main.aap
@@ -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
index 000000000..1ddcf7852
--- /dev/null
+++ b/runtime/spell/gl/gl_ES.diff
@@ -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
index 000000000..2fc012aa3
--- /dev/null
+++ b/runtime/spell/gl/main.aap
@@ -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 :
diff --git a/runtime/spell/he/main.aap b/runtime/spell/he/main.aap
index 4db930b9f..715851745 100644
--- a/runtime/spell/he/main.aap
+++ b/runtime/spell/he/main.aap
@@ -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
diff --git a/runtime/spell/hr/main.aap b/runtime/spell/hr/main.aap
index f272b873e..699d61fe7 100644
--- a/runtime/spell/hr/main.aap
+++ b/runtime/spell/hr/main.aap
@@ -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
index 000000000..de22c794f
--- /dev/null
+++ b/runtime/spell/hu/hu_HU.diff
@@ -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
index 000000000..3890b1eaf
--- /dev/null
+++ b/runtime/spell/hu/main.aap
@@ -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 :
diff --git a/runtime/spell/it/main.aap b/runtime/spell/it/main.aap
index ef541c45b..eaced6802 100644
--- a/runtime/spell/it/main.aap
+++ b/runtime/spell/it/main.aap
@@ -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
diff --git a/runtime/spell/main.aap b/runtime/spell/main.aap
index 68864b89e..1e37c1cc3 100644
--- a/runtime/spell/main.aap
+++ b/runtime/spell/main.aap
@@ -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
diff --git a/runtime/spell/nl/main.aap b/runtime/spell/nl/main.aap
index 02ae49d57..e23111337 100644
--- a/runtime/spell/nl/main.aap
+++ b/runtime/spell/nl/main.aap
@@ -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
diff --git a/runtime/spell/ny/main.aap b/runtime/spell/ny/main.aap
index e7fcbf7b7..b73b50c6b 100644
--- a/runtime/spell/ny/main.aap
+++ b/runtime/spell/ny/main.aap
@@ -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
diff --git a/runtime/spell/pl/main.aap b/runtime/spell/pl/main.aap
index e33acf802..eb21c5e48 100644
--- a/runtime/spell/pl/main.aap
+++ b/runtime/spell/pl/main.aap
@@ -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
diff --git a/runtime/spell/sk/main.aap b/runtime/spell/sk/main.aap
index b18d195c1..db973553b 100644
--- a/runtime/spell/sk/main.aap
+++ b/runtime/spell/sk/main.aap
@@ -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
diff --git a/runtime/spell/yi/!yi.diff b/runtime/spell/yi/!yi.diff
index 00ec10474..484dc69f7 100644
--- a/runtime/spell/yi/!yi.diff
+++ b/runtime/spell/yi/!yi.diff
@@ -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
index 000000000..5d8183f7d
--- /dev/null
+++ b/runtime/spell/yi/!yi_tr.diff
@@ -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
diff --git a/runtime/spell/yi/README.txt b/runtime/spell/yi/README.txt
index db432935c..09af739c5 100644
--- a/runtime/spell/yi/README.txt
+++ b/runtime/spell/yi/README.txt
@@ -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.
diff --git a/runtime/spell/yi/main.aap b/runtime/spell/yi/main.aap
index 31d057e01..8a98ce050 100644
--- a/runtime/spell/yi/main.aap
+++ b/runtime/spell/yi/main.aap
@@ -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 :
diff --git a/runtime/spell/yi/yi.diff b/runtime/spell/yi/yi.diff
index 020f2dc49..45a2d90b0 100644
--- a/runtime/spell/yi/yi.diff
+++ b/runtime/spell/yi/yi.diff
@@ -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
index 000000000..5f26a7b8a
--- /dev/null
+++ b/runtime/spell/yi/yi_tr.diff
@@ -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 ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 1b6dee4aa..a49df3f25 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -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
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index fb7a7e41d..b18d908fd 100644
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -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\>"
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index f895df705..9e79aabf4 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -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
diff --git a/src/eval.c b/src/eval.c
index cd706b49c..2dbbb222c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -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
}
/*
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 0f5360f71..6e6e2971f 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -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)
diff --git a/src/gui.c b/src/gui.c
index f0d65eeb6..c7f872eaa 100644
--- 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 */
diff --git a/src/message.c b/src/message.c
index 2b3adcf7d..cca8a5242 100644
--- a/src/message.c
+++ b/src/message.c
@@ -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
diff --git a/src/regexp.c b/src/regexp.c
index 1ff5a069b..f8b86168d 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -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);
diff --git a/src/screen.c b/src/screen.c
index 6562d655c..b3dbe0141 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -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;
diff --git a/src/spell.c b/src/spell.c
index 114e3f2aa..a3fc24f72 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -51,16 +51,21 @@
*/
/* 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;
}
@@ -1231,6 +1239,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".
* The WF_RAREPFX flag is included in the return value for a rare prefix.
@@ -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]);
+ l = 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;
diff --git a/src/structs.h b/src/structs.h
index af859bf99..5473510e2 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -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 */
diff --git a/src/syntax.c b/src/syntax.c
index 4c4cbadba..aa393d7d6 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -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;
diff --git a/src/version.h b/src/version.h
index 4b697355b..94726c6d0 100644
--- a/src/version.h
+++ b/src/version.h
@@ -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 "