From e37d50a5def1c0ff162392cd3f017059c458650c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 6 Aug 2008 17:06:04 +0000 Subject: updated for version 7.2c-000 --- runtime/autoload/netrw.vim | 236 ++++++++++++++-------------- runtime/autoload/tar.vim | 6 +- runtime/autoload/vimball.vim | 60 +++----- runtime/autoload/zip.vim | 27 ++-- runtime/colors/darkblue.vim | 8 +- runtime/doc/Makefile | 25 ++- runtime/doc/arabic.txt | 2 +- runtime/doc/autocmd.txt | 2 +- runtime/doc/change.txt | 4 +- runtime/doc/cmdline.txt | 19 +-- runtime/doc/debug.txt | 2 +- runtime/doc/debugger.txt | 2 +- runtime/doc/develop.txt | 2 +- runtime/doc/diff.txt | 8 +- runtime/doc/digraph.txt | 6 +- runtime/doc/editing.txt | 2 +- runtime/doc/eval.txt | 24 ++- runtime/doc/farsi.txt | 2 +- runtime/doc/filetype.txt | 25 ++- runtime/doc/fold.txt | 2 +- runtime/doc/ft_ada.txt | 2 +- runtime/doc/ft_sql.txt | 2 +- runtime/doc/gui.txt | 2 +- runtime/doc/gui_w16.txt | 2 +- runtime/doc/gui_w32.txt | 2 +- runtime/doc/gui_x11.txt | 2 +- runtime/doc/hangulin.txt | 2 +- runtime/doc/hebrew.txt | 2 +- runtime/doc/help.txt | 4 +- runtime/doc/howto.txt | 2 +- runtime/doc/if_cscop.txt | 2 +- runtime/doc/if_mzsch.txt | 2 +- runtime/doc/if_ole.txt | 2 +- runtime/doc/if_perl.txt | 2 +- runtime/doc/if_pyth.txt | 2 +- runtime/doc/if_ruby.txt | 2 +- runtime/doc/if_sniff.txt | 2 +- runtime/doc/if_tcl.txt | 2 +- runtime/doc/indent.txt | 6 +- runtime/doc/index.txt | 2 +- runtime/doc/insert.txt | 2 +- runtime/doc/intro.txt | 2 +- runtime/doc/map.txt | 2 +- runtime/doc/mbyte.txt | 2 +- runtime/doc/message.txt | 2 +- runtime/doc/mlang.txt | 2 +- runtime/doc/motion.txt | 18 +-- runtime/doc/netbeans.txt | 2 +- runtime/doc/options.txt | 27 ++-- runtime/doc/os_390.txt | 2 +- runtime/doc/os_amiga.txt | 2 +- runtime/doc/os_beos.txt | 2 +- runtime/doc/os_dos.txt | 2 +- runtime/doc/os_mac.txt | 2 +- runtime/doc/os_mint.txt | 2 +- runtime/doc/os_msdos.txt | 2 +- runtime/doc/os_os2.txt | 2 +- runtime/doc/os_qnx.txt | 2 +- runtime/doc/os_risc.txt | 2 +- runtime/doc/os_unix.txt | 2 +- runtime/doc/os_vms.txt | 2 +- runtime/doc/os_win32.txt | 2 +- runtime/doc/pattern.txt | 4 +- runtime/doc/pi_getscript.txt | 2 +- runtime/doc/pi_gzip.txt | 2 +- runtime/doc/pi_netrw.txt | 84 ++++++++-- runtime/doc/pi_paren.txt | 2 +- runtime/doc/pi_spec.txt | 2 +- runtime/doc/pi_tar.txt | 2 +- runtime/doc/pi_vimball.txt | 2 +- runtime/doc/pi_zip.txt | 2 +- runtime/doc/print.txt | 2 +- runtime/doc/quickfix.txt | 2 +- runtime/doc/quickref.txt | 2 +- runtime/doc/quotes.txt | 2 +- runtime/doc/recover.txt | 2 +- runtime/doc/remote.txt | 2 +- runtime/doc/repeat.txt | 2 +- runtime/doc/rileft.txt | 2 +- runtime/doc/russian.txt | 2 +- runtime/doc/scroll.txt | 2 +- runtime/doc/sign.txt | 2 +- runtime/doc/spell.txt | 2 +- runtime/doc/sponsor.txt | 2 +- runtime/doc/starting.txt | 2 +- runtime/doc/syntax.txt | 6 +- runtime/doc/tabpage.txt | 2 +- runtime/doc/tags | 3 + runtime/doc/tagsrch.txt | 2 +- runtime/doc/term.txt | 2 +- runtime/doc/tips.txt | 2 +- runtime/doc/todo.txt | 93 ++++++++--- runtime/doc/uganda.txt | 2 +- runtime/doc/undo.txt | 2 +- runtime/doc/usr_01.txt | 2 +- runtime/doc/usr_02.txt | 2 +- runtime/doc/usr_03.txt | 2 +- runtime/doc/usr_04.txt | 2 +- runtime/doc/usr_05.txt | 2 +- runtime/doc/usr_06.txt | 2 +- runtime/doc/usr_07.txt | 2 +- runtime/doc/usr_08.txt | 2 +- runtime/doc/usr_09.txt | 2 +- runtime/doc/usr_10.txt | 2 +- runtime/doc/usr_11.txt | 2 +- runtime/doc/usr_12.txt | 2 +- runtime/doc/usr_20.txt | 2 +- runtime/doc/usr_21.txt | 2 +- runtime/doc/usr_22.txt | 2 +- runtime/doc/usr_23.txt | 2 +- runtime/doc/usr_24.txt | 2 +- runtime/doc/usr_25.txt | 2 +- runtime/doc/usr_26.txt | 2 +- runtime/doc/usr_27.txt | 2 +- runtime/doc/usr_28.txt | 2 +- runtime/doc/usr_29.txt | 2 +- runtime/doc/usr_30.txt | 2 +- runtime/doc/usr_31.txt | 2 +- runtime/doc/usr_32.txt | 2 +- runtime/doc/usr_40.txt | 2 +- runtime/doc/usr_41.txt | 2 +- runtime/doc/usr_42.txt | 2 +- runtime/doc/usr_43.txt | 2 +- runtime/doc/usr_44.txt | 2 +- runtime/doc/usr_45.txt | 2 +- runtime/doc/usr_90.txt | 2 +- runtime/doc/usr_toc.txt | 2 +- runtime/doc/various.txt | 9 +- runtime/doc/version4.txt | 2 +- runtime/doc/version5.txt | 2 +- runtime/doc/version6.txt | 4 +- runtime/doc/version7.txt | 181 +++++++++++++++++++++- runtime/doc/vi_diff.txt | 2 +- runtime/doc/vim-fr.1 | 2 +- runtime/doc/vim-fr.UTF-8.1 | 2 +- runtime/doc/vim-it.1 | 2 +- runtime/doc/vim-it.UTF-8.1 | 2 +- runtime/doc/vim-pl.1 | 2 +- runtime/doc/vim-pl.UTF-8.1 | 2 +- runtime/doc/vim-ru.1 | 2 +- runtime/doc/vim-ru.UTF-8.1 | 2 +- runtime/doc/vim.1 | 4 +- runtime/doc/vim.man | 8 +- runtime/doc/vimdiff.1 | 6 +- runtime/doc/vimdiff.man | 14 +- runtime/doc/visual.txt | 2 +- runtime/doc/windows.txt | 2 +- runtime/doc/workshop.txt | 2 +- runtime/filetype.vim | 17 +- runtime/ftplugin/a2ps.vim | 8 +- runtime/ftplugin/alsaconf.vim | 8 +- runtime/ftplugin/arch.vim | 8 +- runtime/ftplugin/automake.vim | 8 +- runtime/ftplugin/bdf.vim | 8 +- runtime/ftplugin/calendar.vim | 8 +- runtime/ftplugin/cdrdaoconf.vim | 6 +- runtime/ftplugin/conf.vim | 8 +- runtime/ftplugin/context.vim | 5 +- runtime/ftplugin/crm.vim | 8 +- runtime/ftplugin/css.vim | 8 +- runtime/ftplugin/cvsrc.vim | 8 +- runtime/ftplugin/denyhosts.vim | 6 +- runtime/ftplugin/dictconf.vim | 8 +- runtime/ftplugin/dictdconf.vim | 8 +- runtime/ftplugin/dircolors.vim | 8 +- runtime/ftplugin/dosini.vim | 8 +- runtime/ftplugin/dtd.vim | 10 +- runtime/ftplugin/elinks.vim | 8 +- runtime/ftplugin/eterm.vim | 8 +- runtime/ftplugin/fetchmail.vim | 8 +- runtime/ftplugin/framescript.vim | 30 ++++ runtime/ftplugin/git.vim | 4 +- runtime/ftplugin/gpg.vim | 8 +- runtime/ftplugin/group.vim | 8 +- runtime/ftplugin/grub.vim | 8 +- runtime/ftplugin/haskell.vim | 8 +- runtime/ftplugin/help.vim | 8 +- runtime/ftplugin/hostconf.vim | 6 +- runtime/ftplugin/hostsaccess.vim | 19 +++ runtime/ftplugin/html.vim | 10 +- runtime/ftplugin/indent.vim | 8 +- runtime/ftplugin/kconfig.vim | 8 +- runtime/ftplugin/ld.vim | 8 +- runtime/ftplugin/lftp.vim | 8 +- runtime/ftplugin/libao.vim | 8 +- runtime/ftplugin/limits.vim | 8 +- runtime/ftplugin/loginaccess.vim | 8 +- runtime/ftplugin/logindefs.vim | 8 +- runtime/ftplugin/m4.vim | 8 +- runtime/ftplugin/mailaliases.vim | 8 +- runtime/ftplugin/mailcap.vim | 8 +- runtime/ftplugin/manconf.vim | 8 +- runtime/ftplugin/mf.vim | 7 +- runtime/ftplugin/modconf.vim | 8 +- runtime/ftplugin/mp.vim | 8 +- runtime/ftplugin/mplayerconf.vim | 8 +- runtime/ftplugin/muttrc.vim | 6 + runtime/ftplugin/nanorc.vim | 8 +- runtime/ftplugin/netrc.vim | 8 +- runtime/ftplugin/nsis.vim | 22 +++ runtime/ftplugin/ocaml.vim | 39 +++-- runtime/ftplugin/pamconf.vim | 8 +- runtime/ftplugin/passwd.vim | 8 +- runtime/ftplugin/perl.vim | 5 +- runtime/ftplugin/pinfo.vim | 8 +- runtime/ftplugin/procmail.vim | 8 +- runtime/ftplugin/prolog.vim | 8 +- runtime/ftplugin/protocols.vim | 8 +- runtime/ftplugin/quake.vim | 8 +- runtime/ftplugin/racc.vim | 8 +- runtime/ftplugin/readline.vim | 8 +- runtime/ftplugin/rnc.vim | 8 +- runtime/ftplugin/rst.vim | 8 +- runtime/ftplugin/screen.vim | 8 +- runtime/ftplugin/sensors.vim | 8 +- runtime/ftplugin/services.vim | 8 +- runtime/ftplugin/setserial.vim | 8 +- runtime/ftplugin/sieve.vim | 8 +- runtime/ftplugin/slpconf.vim | 8 +- runtime/ftplugin/slpreg.vim | 8 +- runtime/ftplugin/slpspi.vim | 8 +- runtime/ftplugin/sshconfig.vim | 8 +- runtime/ftplugin/sudoers.vim | 8 +- runtime/ftplugin/sysctl.vim | 8 +- runtime/ftplugin/terminfo.vim | 8 +- runtime/ftplugin/udevconf.vim | 8 +- runtime/ftplugin/udevperm.vim | 8 +- runtime/ftplugin/udevrules.vim | 8 +- runtime/ftplugin/updatedb.vim | 8 +- runtime/ftplugin/xdefaults.vim | 8 +- runtime/ftplugin/xf86conf.vim | 8 +- runtime/ftplugin/xinetd.vim | 8 +- runtime/ftplugin/xml.vim | 11 +- runtime/ftplugin/xmodmap.vim | 8 +- runtime/ftplugin/yaml.vim | 8 +- runtime/ftplugin/zsh.vim | 8 +- runtime/indent/dtd.vim | 325 +++++++++++++++++++++++++++++++++++++++ runtime/indent/framescript.vim | 41 +++++ runtime/plugin/netrwPlugin.vim | 24 +-- runtime/plugin/tarPlugin.vim | 2 +- runtime/plugin/vimballPlugin.vim | 2 +- runtime/plugin/zipPlugin.vim | 11 +- runtime/scripts.vim | 3 +- runtime/spell/pt/main.aap | 2 +- runtime/spell/pt/pt_BR.diff | 2 +- runtime/spell/pt/pt_PT.diff | 2 +- runtime/syntax/2html.vim | 4 +- runtime/syntax/autohotkey.vim | 11 +- runtime/syntax/bzr.vim | 4 +- runtime/syntax/doxygen.vim | 22 +-- runtime/syntax/forth.vim | 110 ++++++++++--- runtime/syntax/mailaliases.vim | 4 +- runtime/syntax/make.vim | 4 +- runtime/syntax/modconf.vim | 4 +- runtime/syntax/natural.vim | 252 +++++++++++++++--------------- runtime/syntax/racc.vim | 14 +- runtime/syntax/sas.vim | 115 ++++++++++---- runtime/syntax/sh.vim | 9 +- runtime/syntax/sieve.vim | 6 +- runtime/syntax/svn.vim | 5 +- runtime/syntax/updatedb.vim | 4 +- runtime/syntax/vim.vim | 19 ++- runtime/syntax/yaml.vim | 176 ++++++--------------- runtime/syntax/zsh.vim | 43 ++++-- runtime/tools/vimm | 4 +- runtime/tools/vimspell.sh | 3 +- runtime/tutor/tutor.vim | 7 +- 267 files changed, 2239 insertions(+), 933 deletions(-) create mode 100644 runtime/ftplugin/framescript.vim create mode 100644 runtime/ftplugin/hostsaccess.vim create mode 100644 runtime/ftplugin/nsis.vim create mode 100644 runtime/indent/dtd.vim create mode 100644 runtime/indent/framescript.vim (limited to 'runtime') diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 6221294bbd..8bd597aaf9 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -1,7 +1,7 @@ " netrw.vim: Handles file transfer and remote directory listing across " AUTOLOAD SECTION -" Date: Jul 12, 2008 -" Version: 127 +" Date: Aug 01, 2008 +" Version: 131 " Maintainer: Charles E Campbell, Jr " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1 @@ -27,7 +27,7 @@ if !exists("s:NOTE") let s:WARNING = 1 let s:ERROR = 2 endif -let g:loaded_netrw = "v127" +let g:loaded_netrw = "v131" " sanity checks if v:version < 700 @@ -76,7 +76,13 @@ if !exists("g:netrw_ftp_cmd") let g:netrw_ftp_cmd = "ftp" endif if !exists("g:netrw_http_cmd") - if executable("curl") + if executable("elinks") + let g:netrw_http_cmd = "elinks" + let g:netrw_http_xcmd= "-dump >" + elseif executable("links") + let g:netrw_http_cmd = "links" + let g:netrw_http_xcmd= "-dump >" + elseif executable("curl") let g:netrw_http_cmd = "curl -o" elseif executable("wget") let g:netrw_http_cmd = "wget -q -O" @@ -359,6 +365,7 @@ endif if !exists("g:netrw_tmpfile_escape") let g:netrw_tmpfile_escape= ' &;' endif +let s:netrw_map_escape = "<|\n\r\\\\"" " BufEnter event ignored by decho when following variable is true " Has a side effect that doau BufReadPost doesn't work, so @@ -712,15 +719,16 @@ fun! netrw#NetRead(mode,...) " call Decho("read via ftp+.netrc (method #2)") let netrw_fname= b:netrw_fname call s:SaveBufVars()|new|call s:RestoreBufVars() + let filtbuf= bufnr("%") setlocal ff=unix - exe "put ='".g:netrw_ftpmode."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpmode +" call Decho("filter input: ".getline(line("$"))) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpextracmd +" call Decho("filter input: ".getline(line("$"))) endif - exe "put ='".'get \"'.netrw_fname.'\" '.tmpfile."'" -" call Decho("filter input: ".getline('.')) + call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile) +" call Decho("filter input: ".getline(line("$"))) if exists("g:netrw_port") && g:netrw_port != "" " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1)) exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine." ".g:netrw_port,1) @@ -746,6 +754,7 @@ fun! netrw#NetRead(mode,...) " call Decho("read via ftp+mipf (method #3)") let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) call s:SaveBufVars()|new|call s:RestoreBufVars() + let filtbuf= bufnr("%") setlocal ff=unix if exists("g:netrw_port") && g:netrw_port != "" put ='open '.g:netrw_machine.' '.g:netrw_port @@ -770,7 +779,7 @@ fun! netrw#NetRead(mode,...) " call Decho("filter input: ".getline('.')) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif put ='get \"'.netrw_fname.'\" '.tmpfile @@ -820,15 +829,20 @@ fun! netrw#NetRead(mode,...) return endif - if match(b:netrw_fname,"#") == -1 - " using g:netrw_http_cmd (usually wget or curl) + if match(b:netrw_fname,"#") == -1 || exists("g:netrw_http_xcmd") + " using g:netrw_http_cmd (usually elinks, links, curl, wget, or fetch) " call Decho('using '.g:netrw_http_cmd.' (# not in b:netrw_fname<'.b:netrw_fname.">)") -" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.netrw_fname,1)) - exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1) + if exists("g:netrw_http_xcmd") +" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)) + exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1) + else +" call Decho("exe ".s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)) + exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1) + endif let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) else - " wget/curl plus a jump to an in-page marker (ie. http://abc/def.html#aMarker) + " wget/curl/fetch plus a jump to an in-page marker (ie. http://abc/def.html#aMarker) " call Decho(("wget/curl plus jump (# in b:netrw_fname<".b:netrw_fname.">)") let netrw_html= substitute(b:netrw_fname,"#.*$","","") let netrw_tag = substitute(b:netrw_fname,"^.*#","","") @@ -1084,14 +1098,14 @@ fun! netrw#NetWrite(...) range new " call Decho("filter input window#".winnr()) setlocal ff=unix - exe "put ='".g:netrw_ftpmode."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpmode +" call Decho("filter input: ".getline('$')) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" -" call Decho("filter input: ".getline('.')) + put =g:netrw_ftpextracmd +" call Decho("filter input: ".getline("$")) endif - exe "put ='".'put \"'.tmpfile.'\" \"'.netrw_fname.'\"'."'" -" call Decho("filter input: ".getline('.')) + call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"') +" call Decho("filter input: ".getline("$")) if exists("g:netrw_port") && g:netrw_port != "" " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1)) exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1) @@ -1276,10 +1290,11 @@ fun! netrw#NetSource(...) let i= 1 while i <= a:0 call netrw#NetRead(3,a:{i}) -" call Decho("s:netread_tmpfile<".s:netrw_tmpfile.">") +" call Decho("(netrw#NetSource) s:netread_tmpfile<".s:netrw_tmpfile.">") if s:FileReadable(s:netrw_tmpfile) -" call Decho("exe so ".s:netrw_tmpfile) - exe "so ".s:netrw_tmpfile +" call Decho("(netrw#NetSource) exe so ".fnameescape(s:netrw_tmpfile)) + exe "so ".fnameescape(s:netrw_tmpfile) +" call Decho("(netrw#NetSource) delete(".s:netrw_tmpfile.")") call delete(s:netrw_tmpfile) unlet s:netrw_tmpfile else @@ -1654,6 +1669,7 @@ endfun fun! s:BrowserMaps(islocal) " call Dfunc("s:BrowserMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") if a:islocal +" call Decho("make local maps") nnoremap :call netrw#LocalBrowseCheck(NetrwBrowseChgDir(1,NetrwGetWord())) nnoremap - :exe "norm! 0"call netrw#LocalBrowseCheck(NetrwBrowseChgDir(1,'../')) nnoremap a :call NetrwHide(1) @@ -1709,23 +1725,25 @@ fun! s:BrowserMaps(islocal) if s:didstarstar || !mapcheck("","n") nnoremap :Pexplore endif + let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) if g:netrw_mousemaps == 1 nnoremap :call NetrwLeftmouse(1) nnoremap :call NetrwPrevWinOpen(1) nnoremap :call NetrwMarkFile(1,NetrwGetWord()) - exe 'nnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - endif - exe 'nnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'nnoremap D :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'vnoremap D :call NetrwLocalRm("'.b:netrw_curdir.'")' - exe 'nnoremap R :call NetrwLocalRename("'.b:netrw_curdir.'")' - exe 'vnoremap R :call NetrwLocalRename("'.b:netrw_curdir.'")' + exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + endif + exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'nnoremap D :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap D :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'nnoremap R :call NetrwLocalRename("'.mapsafecurdir.'")' + exe 'vnoremap R :call NetrwLocalRename("'.mapsafecurdir.'")' exe 'nnoremap m :call NetrwMakeDir("")' nnoremap :he netrw-quickhelp else " remote +" call Decho("make remote maps") call s:RemotePathAnalysis(b:netrw_curdir) nnoremap :call NetrwBrowse(0,NetrwBrowseChgDir(0,NetrwGetWord())) nnoremap :call NetrwRefresh(0,NetrwBrowseChgDir(0,'./')) @@ -1774,21 +1792,25 @@ fun! s:BrowserMaps(islocal) if !hasmapto('NetrwRefresh') nmap NetrwRefresh endif + + let mapsafepath = escape(s:path, s:netrw_map_escape) + let mapsafeusermach = escape(s:user.s:machine, s:netrw_map_escape) + nnoremap NetrwRefresh :call NetrwRefresh(0,NetrwBrowseChgDir(0,'./')) if g:netrw_mousemaps == 1 nnoremap :call NetrwLeftmouse(0) nnoremap :call NetrwPrevWinOpen(0) nnoremap :call NetrwMarkFile(0,NetrwGetWord()) - exe 'nnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - endif - exe 'nnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'nnoremap d :call NetrwMakeDir("'.s:user.s:machine.'")' - exe 'nnoremap D :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap D :call NetrwRemoteRm("'.s:user.s:machine.'","'.s:path.'")' - exe 'nnoremap R :call NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")' - exe 'vnoremap R :call NetrwRemoteRename("'.s:user.s:machine.'","'.s:path.'")' + exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + endif + exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'nnoremap d :call NetrwMakeDir("'.mapsafeusermach.'")' + exe 'nnoremap D :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap D :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'nnoremap R :call NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap R :call NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")' nnoremap :he netrw-quickhelp endif call s:SetRexDir(a:islocal,b:netrw_curdir) @@ -1842,7 +1864,7 @@ fun! s:NetrwBookmarkDir(chg,curdir) " change to the bookmarked directory " call Decho("(user: ) change to the bookmarked directory") if exists("g:NETRW_BOOKMARKDIR_{v:count}") - exe "e ".g:NETRW_BOOKMARKDIR_{v:count} + exe "e ".fnameescape(g:NETRW_BOOKMARKDIR_{v:count}) else echomsg "Sorry, bookmark#".v:count." doesn't exist!" endif @@ -2340,8 +2362,8 @@ fun! s:NetrwGetBuffer(islocal,dirname) " let v:errmsg= "" " Decho let escdirname= fnameescape(dirname) " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") -" call Decho(' exe silent! keepalt file '.fnameescape(escdirname)) - exe 'silent! keepalt file '.fnameescape(escdirname) +" call Decho(' exe silent! keepalt file '.escdirname) + exe 'silent! keepalt file '.escdirname " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") endif " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">") @@ -3273,7 +3295,7 @@ fun! netrw#Explore(indx,dosplit,style,...) if starpat == 1 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) " call Decho("starpat=".starpat.": build *//pattern list") - exe "vimgrep /".pattern."/gj ".b:netrw_curdir."/*" + exe "vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*" let w:netrw_explore_list = map(getqflist(),'bufname(v:val.bufnr)') if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif @@ -3707,6 +3729,14 @@ endfun " of whatever may happen to be under the cursor at that " moment. When the mouse and gui are available, " shift-leftmouse may also be used to mark files. +" +" Creates two lists +" s:netrwmarkfilelist -- holds complete paths to all marked files +" s:netrwmarkfilelist_# -- holds list of marked files in current-buffer's directory (#==bufnr()) +" +" Creates a marked file match string +" s:netrwmarfilemtch_# -- used with 2match to display marked files +" fun! s:NetrwMarkFile(islocal,fname) " call Dfunc("s:NetrwMarkFile(islocal=".a:islocal." fname<".a:fname.">)") let curbufnr= bufnr("%") @@ -3826,7 +3856,7 @@ fun! s:NetrwMarkFileCompress(islocal) let fname= shellescape(s:ComposePath(curdir,fname)) endif else - let fname= shellescape(b:netrw_curdir.fname) + let fname= shellescape(b:netrw_curdir.fname,1) endif if executable(exe) if a:islocal @@ -3886,7 +3916,7 @@ fun! s:NetrwMarkFileCopy(islocal) if a:islocal && s:netrwmftgt_islocal " Copy marked files, local directory to local directory " call Decho("copy from local to local") - let args= join(map(copy(s:netrwmarkfilelist_{bufnr('%')}),"b:netrw_curdir.\"/\".shellescape(v:val)")) + let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"shellescape(b:netrw_curdir.\"/\".v:val)")) " call Decho("system(".g:netrw_localcopycmd." ".args." ".shellescape(s:netrwmftgt).")") call system(s:WinPath(g:netrw_localcopycmd)." ".args." ".shellescape(s:netrwmftgt)) @@ -3914,7 +3944,7 @@ fun! s:NetrwMarkFileCopy(islocal) if isdirectory(tmpdir) exe "keepjumps lcd ".fnameescape(tmpdir) call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) - let localfiles= map(copy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') + let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') call s:NetrwUpload(localfiles,s:netrwmftgt) if getcwd() == tmpdir for fname in s:netrwmarkfilelist_{bufnr('%')} @@ -3957,24 +3987,21 @@ endfun fun! s:NetrwMarkFileDiff(islocal) " call Dfunc("s:NetrwMarkFileDiff(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") let curbufnr= bufnr("%") - if exists("s:netrwmarkfilelist_{curbufnr}") + if exists("s:netrwmarkfilelist_{curbufnr}") let cnt = 0 let curdir = b:netrw_curdir for fname in s:netrwmarkfilelist let cnt= cnt + 1 - if !a:islocal - let fname= curdir.fname - endif if cnt == 1 -" call Decho("diffthis: ".fname) - exe "e ".fname +" call Decho("diffthis: fname<".fname.">") + exe "e ".fnameescape(fname) diffthis elseif cnt == 2 || cnt == 3 vsplit wincmd l " call Decho("diffthis: ".fname) - exe "e ".fname + exe "e ".fnameescape(fname) diffthis else break @@ -3982,6 +4009,7 @@ fun! s:NetrwMarkFileDiff(islocal) endfor call s:NetrwUnmarkList(curbufnr,curdir) endif + " call Dret("s:NetrwMarkFileDiff") endfun @@ -3995,17 +4023,7 @@ fun! s:NetrwMarkFileEdit(islocal) let curbufnr = bufnr("%") if exists("s:netrwmarkfilelist_{curbufnr}") call s:SetRexDir(a:islocal,curdir) - if a:islocal && g:netrw_keepdir - " use complete paths if its local and keepdir enabled - let flist= "" - for fname in s:netrwmarkfilelist -" let flist= flist." ".s:ComposePath(curdir,fname) - let flist= flist." ".fname - endfor - else -" let flist= substitute(escape(join(s:netrwmarkfilelist_{curbufnr},"\t"),' '),"\t",' ','g') - let flist= substitute(escape(join(s:netrwmarkfilelist,"\t"),' '),"\t",' ','g') - endif + let flist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) " unmark markedfile list " call s:NetrwUnmarkList(curbufnr,curdir) call s:NetrwUnmarkAll() @@ -4138,17 +4156,11 @@ endfun fun! s:NetrwMarkFileGrep(islocal) " call Dfunc("s:NetrwMarkFileGrep(islocal=".a:islocal.")") let svpos = netrw#NetrwSavePosn() - let curdir = b:netrw_curdir let curbufnr = bufnr("%") if exists("s:netrwmarkfilelist") " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">") - let netrwmarkfilelist= "" - for fname in s:netrwmarkfilelist -" call Decho("fname<".fname.">") - let fname = escape(substitute(fname,"[\"']","","g")," ") - let netrwmarkfilelist = netrwmarkfilelist." ".fname - endfor + let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) call s:NetrwUnmarkAll() " ask user for pattern @@ -4295,7 +4307,7 @@ fun! s:NetrwMarkFilePrint(islocal) 1split " the autocmds will handle both local and remote files " call Decho("exe silent e ".escape(fname,' ')) - exe "silent e ".escape(fname,' ') + exe "silent e ".fnameescape(fname) " call Decho("hardcopy") hardcopy q @@ -4419,21 +4431,11 @@ fun! s:NetrwMarkFileTag(islocal) if exists("s:netrwmarkfilelist") " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">") - if a:islocal && g:netrw_keepdir - let netrwmarkfilelist= "" - for fname in s:netrwmarkfilelist -" let netrwmarkfilelist= netrwmarkfilelist." ".s:ComposePath(curdir,fname) - let netrwmarkfilelist= netrwmarkfilelist." ".fname - endfor - else - let netrwmarkfilelist= string(s:netrwmarkfilelist) - let netrwmarkfilelist= substitute(netrwmarkfilelist,'[[\],]','','g') - endif + let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "shellescape(v:val,".!a:islocal.")")) call s:NetrwUnmarkAll() if a:islocal if executable(g:netrw_ctags) - call map(netrwmarkfilelist,"shellescape(v:val)") " call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")") call system(g:netrw_ctags." ".netrwmarkfilelist) else @@ -4447,7 +4449,7 @@ fun! s:NetrwMarkFileTag(islocal) e tags let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','') " call Decho("curdir<".curdir."> path<".path.">") - exe '%s/\t\(\S\+\)\t/\t'.escape(path,'/').'\1\t/e' + exe '%s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e' wq! endif 2match none @@ -4771,7 +4773,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) endfor else " transfer files with one command - let filelist= join(map(copy(fname),"shellescape(v:val)")) + let filelist= join(map(deepcopy(fname),"shellescape(v:val)")) " call Decho("system(".g:netrw_localcopycmd." ".filelist." ".shellescape(topath).")") call system(g:netrw_localcopycmd." ".filelist." ".shellescape(topath)) endif @@ -4801,7 +4803,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) else let path= "" endif - let filelist= join(map(copy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1))')) + let filelist= join(map(deepcopy(fnamelist),'shellescape(g:netrw_machine.":".path.v:val,1)')) " call Decho("exe ".s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1)) exe s:netrw_silentxfer."!".g:netrw_scp_cmd.shellescape(useport,1)." ".filelist." ".shellescape(tgtdir,1) @@ -4812,7 +4814,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) let tmpbufnr= bufnr("%") setlocal ff=unix if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" - exe "put ='".g:netrw_ftpmode."'" + put =g:netrw_ftpmode " call Decho("filter input: ".getline('$')) endif @@ -4822,7 +4824,7 @@ fun! netrw#NetrwObtain(islocal,fname,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif for fname in fnamelist @@ -4880,12 +4882,12 @@ fun! netrw#NetrwObtain(islocal,fname,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif for fname in fnamelist @@ -5053,15 +5055,13 @@ fun! s:NetrwUpload(fname,tgt,...) " handle uploading a single file using NetWrite " call Decho("handle uploading a single file via NetWrite") 1split - let efname= escape(a:fname,g:netrw_fname_escape) -" call Decho("exe e ".efname) - exe "e ".efname +" call Decho("exe e ".fnameescape(a:fname)) + exe "e ".fnameescape(a:fname) " call Decho("now locally editing<".expand("%").">, has ".line("$")." lines") if a:tgt =~ '/$' let wfname= substitute(a:fname,'^.*/','','') - let wfname= escape(a:tgt.wfname,g:netrw_fname_escape) " call Decho("exe w! ".fnameescape(wfname)) - exe "w! ".fnameescape(wfname) + exe "w! ".fnameescape(a:tgt.wfname) else " call Decho("writing local->remote: exe w ".fnameescape(a:tgt)) exe "w ".fnameescape(a:tgt) @@ -5075,8 +5075,8 @@ fun! s:NetrwUpload(fname,tgt,...) let curdir= getcwd() if a:tgt =~ '^scp:' exe "keepjumps silent lcd ".fnameescape(fromdir) - let filelist= copy(s:netrwmarkfilelist_{bufnr('%')}) - let args = join(map(filelist,"shellescape(v:val)")) + let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')}) + let args = join(map(filelist,"shellescape(v:val, 1)")) if exists("g:netrw_port") && g:netrw_port != "" let useport= " ".g:netrw_scpport." ".g:netrw_port else @@ -5097,11 +5097,11 @@ fun! s:NetrwUpload(fname,tgt,...) silent keepjumps new " call Decho("filter input window#".winnr()) - exe "put ='".g:netrw_ftpmode."'" + put =g:netrw_ftpmode " call Decho("filter input: ".getline('$')) if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif @@ -5166,7 +5166,7 @@ fun! s:NetrwUpload(fname,tgt,...) endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('$')) endif @@ -5210,7 +5210,7 @@ fun! s:NetrwPreview(path) range call s:NetrwSafeOptions() if has("quickfix") if !isdirectory(a:path) - exe (g:netrw_preview? "vert " : "")."pedit ".escape(a:path,g:netrw_fname_escape) + exe (g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path) elseif !exists("g:netrw_quiet") call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38) endif @@ -6027,8 +6027,8 @@ fun! s:NetrwRemoteListing() let listcmd= s:MakeSshCmd(g:netrw_list_cmd) " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)") if g:netrw_scp_cmd =~ '^pscp' -" call Decho("1: exe silent r! ".listcmd.s:path) - exe "silent r! ".listcmd.s:path +" call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1)) + exe "silent r! ".listcmd.shellescape(s:path, 1) " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like g/^Listing directory/d g/^d[-rwx][-rwx][-rwx]/s+$+/+e @@ -6286,7 +6286,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) put ='cd \"'.a:path.'\"' endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif call setline(line("$")+1,a:listcmd) @@ -6320,7 +6320,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) put ='cd \"'.a:path.'\"' endif if exists("g:netrw_ftpextracmd") - exe "put ='".g:netrw_ftpextracmd."'" + put =g:netrw_ftpextracmd " call Decho("filter input: ".getline('.')) endif call setline(line("$")+1,a:listcmd) @@ -6669,7 +6669,7 @@ fun! s:LocalBrowseShellCmdRefresh() if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 " wipe out any non-displaying netrw buffer " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">") - exe "silent! bd ".ibuf + exe "silent! bd ".fnameescape(ibuf) call remove(s:netrw_browselist,ibl) " call Decho("browselist=".string(s:netrw_browselist)) continue @@ -6860,7 +6860,7 @@ fun! s:NetrwLocalRename(path) range let newname = substitute(oldname,subfrom,subto,'') endif endif - let ret= rename(oldname,newname) + call rename(oldname,newname) endfor 2match none unlet s:netrwmarkfilelist_{bufnr("%")} @@ -6891,7 +6891,7 @@ fun! s:NetrwLocalRename(path) range let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) call inputrestore() - let ret= rename(oldname,newname) + call rename(oldname,newname) " call Decho("renaming <".oldname."> to <".newname.">") let ctr= ctr + 1 @@ -7570,22 +7570,24 @@ fun! s:SetRexDir(islocal,dirname) " call Dfunc("s:SetRexDir(islocal=".a:islocal." dirname<".a:dirname.">)") " set up Rex and leftmouse-double-click if a:islocal - exe 'com! Rexplore call s:NetrwRexplore(1,"'.a:dirname.'")' + exe 'com! Rexplore call s:NetrwRexplore(1,"'.escape(a:dirname,'"\').'")' if g:netrw_retmap silent! unmap <2-leftmouse> if !hasmapto("NetrwReturn") nmap <2-leftmouse> NetrwReturn endif - exe 'nnoremap NetrwReturn :call NetrwRexplore(1,"'.a:dirname.'")' + let dir = escape(a:dirname, s:netrw_map_escape) + exe 'nnoremap NetrwReturn :call NetrwRexplore(1,"'.dir.'")' endif else - exe 'com! Rexplore call s:NetrwRexplore(0,"'.a:dirname.'")' + exe 'com! Rexplore call s:NetrwRexplore(0,"'.escape(a:dirname,'"\').'")' if g:netrw_retmap silent! unmap <2-leftmouse> if !hasmapto("NetrwReturn") nmap <2-leftmouse> NetrwReturn endif - exe 'nnoremap NetrwReturn :call NetrwRexplore(0,"'.a:dirname.'")' + let dir = escape(a:dirname, s:netrw_map_escape) + exe 'nnoremap NetrwReturn :call NetrwRexplore(0,"'.dir.'")' endif endif " call Dret("s:SetRexDir") diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index b1529d60fa..fc168e8013 100644 --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -1,7 +1,7 @@ " tar.vim: Handles browsing tarfiles " AUTOLOAD PORTION -" Date: Jul 12, 2008 -" Version: 19 + changes by Bram +" Date: Jul 30, 2008 +" Version: 20 " Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " @@ -24,7 +24,7 @@ set cpo&vim if &cp || exists("g:loaded_tar") || v:version < 700 finish endif -let g:loaded_tar= "v19+b" +let g:loaded_tar= "v20" "call Decho("loading autoload/tar.vim") if v:version < 701 || (v:version == 701 && !has("patch299")) echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299" diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim index d69c64532d..4f6292b9c0 100644 --- a/runtime/autoload/vimball.vim +++ b/runtime/autoload/vimball.vim @@ -1,7 +1,7 @@ " vimball.vim : construct a file containing both paths and files " Author: Charles E. Campbell, Jr. -" Date: Jun 05, 2008 -" Version: 27 +" Date: Jul 30, 2008 +" Version: 29 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. " The VIM LICENSE applies to Vimball.vim, and Vimball.txt @@ -15,7 +15,7 @@ if &cp || exists("g:loaded_vimball") || v:version < 700 finish endif let s:keepcpo = &cpo -let g:loaded_vimball = "v27" +let g:loaded_vimball = "v29" set cpo&vim "DechoTabOn @@ -169,9 +169,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range call setline(lastline+1,0) " write the file from the tab - let svfilepath= s:Path(svfile,'') -" call Decho("exe $r ".fnameescape(svfilepath)) - exe "$r ".fnameescape(svfilepath) +" call Decho("exe $r ".fnameescape(svfile)) + exe "$r ".fnameescape(svfile) call setline(lastline+1,line("$") - lastline - 1) " call Decho("lastline=".lastline." line$=".line("$")) @@ -186,13 +185,11 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range call s:ChgDir(curdir) setlocal ff=unix if a:writelevel - let vbnamepath= s:Path(vbname,'') -" call Decho("exe w! ".fnameescape(vbnamepath)) - exe "w! ".fnameescape(vbnamepath) +" call Decho("exe w! ".fnameescape(vbname)) + exe "w! ".fnameescape(vbname) else - let vbnamepath= s:Path(vbname,'') -" call Decho("exe w ".fnameescape(vbnamepath)) - exe "w ".fnameescape(vbnamepath) +" call Decho("exe w ".fnameescape(vbname)) + exe "w ".fnameescape(vbname) endif " call Decho("Vimball<".vbname."> created") echo "Vimball<".vbname."> created" @@ -215,8 +212,8 @@ endfun fun! vimball#Vimball(really,...) " call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0) - if v:version < 701 || (v:version == 701 && !has("patch299")) - echoerr "This version of vimball requires vim 7.1 with patch 299" + if v:version < 701 || (v:version == 701 && !exists('*fnameescape')) + echoerr "your vim is missing the fnameescape() function" " call Dret("vimball#Vimball : needs 7.1 with patch 299") return endif @@ -338,7 +335,7 @@ fun! vimball#Vimball(really,...) " write tab to file if a:really - let fnamepath= s:Path(home."/".fname,'') + let fnamepath= home."/".fname " call Decho("exe w! ".fnameescape(fnamepath)) exe "silent w! ".fnameescape(fnamepath) echo "wrote ".fnamepath @@ -364,9 +361,9 @@ fun! vimball#Vimball(really,...) " set up help " call Decho("about to set up help: didhelp<".didhelp.">") if didhelp != "" - let htpath= s:Path(home."/".didhelp,"") + let htpath= home."/".didhelp " call Decho("exe helptags ".htpath) - exe "helptags ".htpath + exe "helptags ".fnameescape(htpath) echo "did helptags" endif @@ -577,27 +574,6 @@ fun! s:ChgDir(newdir) " call Dret("ChgDir : curdir<".getcwd().">") endfun -" --------------------------------------------------------------------- -" s:Path: prepend and append quotes and do escaping {{{2 -fun! s:Path(cmd,quote) -" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">") - if (has("win32") || has("win95") || has("win64") || has("win16")) -" let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote - let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote -" call Decho("cmdpath<".cmdpath."> (win32 mod)") - else - let cmdpath= a:quote.a:cmd.a:quote -" call Decho("cmdpath<".cmdpath."> (not-win32 mod)") - endif - if a:quote == "" && g:vimball_path_escape !~ ' ' - let cmdpath= escape(cmdpath,' ') -" call Decho("cmdpath<".cmdpath."> (empty quote case)") - endif - let cmdpath= escape(cmdpath,g:vimball_path_escape) -" call Dret("Path <".cmdpath.">") - return cmdpath -endfun - " --------------------------------------------------------------------- " s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2 fun! s:RecordInVar(home,cmd) @@ -719,14 +695,14 @@ fun! vimball#SaveSettings() let s:acdkeep = &acd endif let s:eikeep = &ei - let s:fenkeep = &fen + let s:fenkeep = &l:fen let s:hidkeep = &hidden let s:ickeep = &ic let s:lzkeep = &lz let s:pmkeep = &pm let s:repkeep = &report let s:vekeep = &ve - let s:ffkeep = &ff + let s:ffkeep = &l:ff if exists("&acd") setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix else @@ -745,7 +721,7 @@ fun! vimball#RestoreSettings() if exists("&acd") let &acd = s:acdkeep endif - let &fen = s:fenkeep + let &l:fen = s:fenkeep let &hidden = s:hidkeep let &ic = s:ickeep let &lz = s:lzkeep @@ -753,7 +729,7 @@ fun! vimball#RestoreSettings() let &report = s:repkeep let &ve = s:vekeep let &ei = s:eikeep - let &ff = s:ffkeep + let &l:ff = s:ffkeep if s:makeep[0] != 0 " restore mark a " call Decho("restore mark-a: makeep=".string(makeep)) diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim index b35a411d72..af56944ce3 100644 --- a/runtime/autoload/zip.vim +++ b/runtime/autoload/zip.vim @@ -1,7 +1,7 @@ " zip.vim: Handles browsing zipfiles " AUTOLOAD PORTION -" Date: Jul 12, 2008 -" Version: 21 (modified by Bram) +" Date: Jul 30, 2008 +" Version: 22 " Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1 @@ -22,7 +22,7 @@ if &cp || exists("g:loaded_zip") || v:version < 700 finish endif -let g:loaded_zip = "v21+b" +let g:loaded_zip = "v22" let s:zipfile_escape = ' ?&;\' let s:ERROR = 2 let s:WARNING = 1 @@ -58,6 +58,12 @@ fun! zip#Browse(zipfile) set report=10 " sanity checks + if !exists("*fnameescape") + if &verbose > 1 + echoerr "the zip plugin is not available (your vim doens't support fnameescape())" + endif + return + endif if !executable(g:zip_unzipcmd) redraw! echohl Error | echo "***error*** (zip#Browse) unzip not available on your system" @@ -99,8 +105,8 @@ fun! zip#Browse(zipfile) 0d $ -" call Decho("exe silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1)) - exe "silent r! ".g:zip_unzipcmd." -l ".s:Escape(a:zipfile,1) +" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)) + exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1) if v:shell_error != 0 redraw! echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None @@ -193,8 +199,8 @@ fun! zip#Read(fname,mode) " call Decho("zipfile<".zipfile.">") " call Decho("fname <".fname.">") -" call Decho("exe r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1)) - exe "silent r! ".g:zip_unzipcmd." -p ".s:Escape(zipfile,1)." ".s:Escape(fname,1) +" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)) + exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1) " cleanup 0d @@ -286,8 +292,8 @@ fun! zip#Write(fname) let fname = substitute(fname, '[', '[[]', 'g') endif -" call Decho(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0)) - call system(g:zip_zipcmd." -u ".s:Escape(zipfile,0)." ".s:Escape(fname,0)) +" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0)) + call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0)) if v:shell_error != 0 redraw! echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None @@ -342,9 +348,8 @@ endfun fun! s:ChgDir(newdir,errlvl,errmsg) " call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)") - try - exe "cd ".fnameescape(newdir) + exe "cd ".fnameescape(a:newdir) catch /^Vim\%((\a\+)\)\=:E344/ redraw! if a:errlvl == s:NOTE diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim index c1800eaca8..4117122728 100644 --- a/runtime/colors/darkblue.vim +++ b/runtime/colors/darkblue.vim @@ -1,6 +1,6 @@ " Vim color file " Maintainer: Bohdan Vlasyuk -" Last Change: 2006 Apr 30 +" Last Change: 2008 Jul 18 " darkblue -- for those who prefer dark background " [note: looks bit uglier with come terminal palettes, @@ -58,3 +58,9 @@ hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none hi type ctermfg=green guifg=#60ff60 gui=none cterm=none hi Underlined cterm=underline term=underline hi Ignore guifg=bg ctermfg=bg + +" suggested by tigmoid, 2008 Jul 18 +hi Pmenu guifg=#c0c0c0 guibg=#404080 +hi PmenuSel guifg=#c0c0c0 guibg=#2050d0 +hi PmenuSbar guifg=blue guibg=darkgray +hi PmenuThumb guifg=#c0c0c0 diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index 3a289d7b04..2f697508b0 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -287,6 +287,11 @@ CONVERTED = \ vimdiff-it.UTF-8.1 \ vimtutor-it.UTF-8.1 \ xxd-it.UTF-8.1 \ + vim-pl.UTF-8.1 \ + evim-pl.UTF-8.1 \ + vimdiff-pl.UTF-8.1 \ + vimtutor-pl.UTF-8.1 \ + xxd-pl.UTF-8.1 \ vim-ru.UTF-8.1 \ evim-ru.UTF-8.1 \ vimdiff-ru.UTF-8.1 \ @@ -296,7 +301,7 @@ CONVERTED = \ .SUFFIXES: .SUFFIXES: .c .o .txt .html -all: tags vim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) +all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) # Use Vim to generate the tags file. Can only be used when Vim has been # compiled and installed. Supports multiple languages. @@ -314,6 +319,9 @@ doctags: doctags.c vim.man: vim.1 nroff -man vim.1 | sed -e s/.//g > vim.man +evim.man: evim.1 + nroff -man evim.1 | sed -e s/.//g > evim.man + vimdiff.man: vimdiff.1 nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man @@ -445,6 +453,21 @@ vimtutor-it.UTF-8.1: vimtutor-it.1 xxd-it.UTF-8.1: xxd-it.1 iconv -f latin1 -t utf-8 $< >$@ +vim-pl.UTF-8.1: vim-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +evim-pl.UTF-8.1: evim-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +vimdiff-pl.UTF-8.1: vimdiff-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +vimtutor-pl.UTF-8.1: vimtutor-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + +xxd-pl.UTF-8.1: xxd-pl.1 + iconv -f latin2 -t utf-8 $< >$@ + vim-ru.UTF-8.1: vim-ru.1 iconv -f KOI8-R -t utf-8 $< >$@ diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt index dc8e9b173f..164764c55e 100644 --- a/runtime/doc/arabic.txt +++ b/runtime/doc/arabic.txt @@ -1,4 +1,4 @@ -*arabic.txt* For Vim version 7.2b. Last change: 2005 Mar 29 +*arabic.txt* For Vim version 7.2c. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Nadim Shaikli diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index e892f4c497..271dd5cb83 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 7.2b. Last change: 2008 Jun 27 +*autocmd.txt* For Vim version 7.2c. Last change: 2008 Jun 27 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 65af5fc1c3..e38cc24e5f 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.2b. Last change: 2008 Jul 09 +*change.txt* For Vim version 7.2c. Last change: 2008 Jul 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1561,10 +1561,12 @@ found here: |sort()|. With [n] sorting is done on the first decimal number in the line (after or inside a {pattern} match). + One leading '-' is included in the number. With [x] sorting is done on the first hexadecimal number in the line (after or inside a {pattern} match). A leading "0x" or "0X" is ignored. + One leading '-' is included in the number. With [o] sorting is done on the first octal number in the line (after or inside a {pattern} match). diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 8f577c87ac..66a8de307e 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.2b. Last change: 2008 Jul 11 +*cmdline.txt* For Vim version 7.2c. Last change: 2008 Jul 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -99,19 +99,20 @@ CTRL-E or *c_CTRL-E* *c_* cursor to end of command-line *c_* - cursor to position of mouse click. + Move the cursor to the position of the mouse click. CTRL-H *c_* *c_CTRL-H* - delete the character in front of the cursor (see |:fixdel| if + Delete the character in front of the cursor (see |:fixdel| if your key does not do what you want). *c_* - delete the character under the cursor (at end of line: + Delete the character under the cursor (at end of line: character before the cursor) (see |:fixdel| if your key does not do what you want). *c_CTRL-W* -CTRL-W delete the word before the cursor +CTRL-W Delete the |word| before the cursor. This depends on the + 'iskeyword' option. *c_CTRL-U* -CTRL-U remove all characters between the cursor position and +CTRL-U Remove all characters between the cursor position and the beginning of the line. Previous versions of vim deleted all characters on the line. If that is the preferred behavior, add the following to your .vimrc: > @@ -997,7 +998,7 @@ other than the one that is executed with are lost. If you would like to execute the command under the cursor and then have the command-line window open again, you may find this mapping useful: > - :map q: + :autocmd CmdwinEnter * map q: VARIOUS @@ -1044,9 +1045,9 @@ events are not triggered. You can use the Cmdwin events to do settings specifically for the command-line window. Be careful not to cause side effects! Example: > - :au CmdwinEnter : let b:cpt_save = &cpt | set cpt=v + :au CmdwinEnter : let b:cpt_save = &cpt | set cpt=. :au CmdwinLeave : let &cpt = b:cpt_save -This sets 'complete' to use command-line completion in Insert mode for CTRL-N. +This sets 'complete' to use completion in the current window for |i_CTRL-N|. Another example: > :au CmdwinEnter [/?] startinsert This will make Vim start in Insert mode in the command-line window. diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt index 1eb20afbfb..aac589fb6f 100644 --- a/runtime/doc/debug.txt +++ b/runtime/doc/debug.txt @@ -1,4 +1,4 @@ -*debug.txt* For Vim version 7.2b. Last change: 2006 May 01 +*debug.txt* For Vim version 7.2c. Last change: 2006 May 01 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt index ea9858a7d1..dfb302deb3 100644 --- a/runtime/doc/debugger.txt +++ b/runtime/doc/debugger.txt @@ -1,4 +1,4 @@ -*debugger.txt* For Vim version 7.2b. Last change: 2005 Mar 29 +*debugger.txt* For Vim version 7.2c. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt index 85bf1c577a..d18b9542ab 100644 --- a/runtime/doc/develop.txt +++ b/runtime/doc/develop.txt @@ -1,4 +1,4 @@ -*develop.txt* For Vim version 7.2b. Last change: 2007 May 11 +*develop.txt* For Vim version 7.2c. Last change: 2007 May 11 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt index 379f6a6be4..2177c56985 100644 --- a/runtime/doc/diff.txt +++ b/runtime/doc/diff.txt @@ -1,12 +1,12 @@ -*diff.txt* For Vim version 7.2b. Last change: 2006 Oct 02 +*diff.txt* For Vim version 7.2c. Last change: 2008 Jul 21 VIM REFERENCE MANUAL by Bram Moolenaar *diff* *vimdiff* *gvimdiff* *diff-mode* -This file describes the +diff feature: Showing differences between two or -three versions of the same file. +This file describes the +diff feature: Showing differences between two, +three or four versions of the same file. The basics are explained in section |08.7| of the user manual. @@ -49,7 +49,7 @@ What happens is that Vim opens a window for each of the files. This is like using the |-O| argument. This uses vertical splits. If you prefer horizontal splits add the |-o| argument: > - vimdiff -o file1 file2 [file3] + vimdiff -o file1 file2 [file3 [file4]] If you always prefer horizontal splits include "horizontal" in 'diffopt'. diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt index b15651d794..7cc2558a0e 100644 --- a/runtime/doc/digraph.txt +++ b/runtime/doc/digraph.txt @@ -1,4 +1,4 @@ -*digraph.txt* For Vim version 7.2b. Last change: 2007 Sep 10 +*digraph.txt* For Vim version 7.2c. Last change: 2008 Jul 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -53,7 +53,9 @@ this file. The decimal number normally is the Unicode number of the character. Note that the meaning doesn't change when 'encoding' changes. The character will be converted from Unicode to 'encoding' when needed. This does require the -conversion to be available, it might fail. +conversion to be available, it might fail. For the NUL character you will see +"10". That's because NUL characters are internally represented with a NL +character. When you write the file it will become a NUL character. When Vim was compiled without the +multi_byte feature, you need to specify the character in the encoding given with 'encoding'. You might want to use diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 65a11344c9..05a9e146ec 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1,4 +1,4 @@ -*editing.txt* For Vim version 7.2b. Last change: 2008 Jul 05 +*editing.txt* For Vim version 7.2c. Last change: 2008 Jul 05 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 20fa361da8..ffe5ea9e56 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.2b. Last change: 2008 Jul 09 +*eval.txt* For Vim version 7.2c. Last change: 2008 Jul 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -967,11 +967,16 @@ These are INVALID: 3. empty {M} 1e40 missing .{M} + *float-pi* *float-e* +A few useful values to copy&paste: > + :let pi = 3.14159265359 + :let e = 2.71828182846 + Rationale: Before floating point was introduced, the text "123.456" was interpreted as the two numbers "123" and "456", both converted to a string and concatenated, resulting in the string "123456". Since this was considered pointless, and we -could not find it actually being used in Vim scripts, this backwards +could not find it intentionally being used in Vim scripts, this backwards incompatibility was accepted in favor of being able to use the normal notation for floating point numbers. @@ -4963,9 +4968,16 @@ shellescape({string} [, {special}]) *shellescape()* and replace all "'" with "'\''". When the {special} argument is present and it's a non-zero Number or a non-empty String (|non-zero-arg|), then special - items such as "%", "#" and "" will be preceded by a - backslash. This backslash will be removed again by the |:!| + items such as "!", "%", "#" and "" will be preceded by + a backslash. This backslash will be removed again by the |:!| command. + The "!" character will be escaped (again with a |non-zero-arg| + {special}) when 'shell' contains "csh" in the tail. That is + because for csh and tcsh "!" is used for history replacement + even when inside single quotes. + The character is also escaped. With a |non-zero-arg| + {special} and 'shell' containing "csh" in the tail it's + escaped a second time. Example of use with a |:!| command: > :exe '!dir ' . shellescape(expand(''), 1) < This results in a directory listing for the file under the @@ -5918,7 +5930,7 @@ It's also possible to use curly braces, see |curly-braces-names|. And the A function local to a script must start with "s:". A local script function can only be called from within the script and from functions, user commands and autocommands defined in the script. It is also possible to call the -function from a mappings defined in the script, but then || must be used +function from a mapping defined in the script, but then || must be used instead of "s:" when the mapping is expanded outside of the script. *:fu* *:function* *E128* *E129* *E123* @@ -6028,7 +6040,7 @@ can be 0). "a:000" is set to a |List| that contains these arguments. Note that "a:1" is the same as "a:000[0]". *E742* The a: scope and the variables in it cannot be changed, they are fixed. -However, if a |List| or |Dictionary| is used, you can changes their contents. +However, if a |List| or |Dictionary| is used, you can change their contents. Thus you can pass a |List| to a function and have the function add an item to it. If you want to make sure the function cannot change a |List| or |Dictionary| use |:lockvar|. diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt index 5a42e439f1..f044e0fd36 100644 --- a/runtime/doc/farsi.txt +++ b/runtime/doc/farsi.txt @@ -1,4 +1,4 @@ -*farsi.txt* For Vim version 7.2b. Last change: 2005 Mar 29 +*farsi.txt* For Vim version 7.2c. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 4bff42d5b0..4b5ac9e2c5 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 7.2b. Last change: 2008 Jun 27 +*filetype.txt* For Vim version 7.2c. Last change: 2008 Jul 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -482,6 +482,29 @@ g:changelog_date_end_entry_search The default is '^\s*$' which finds lines that contain only whitespace or are completely empty. +b:changelog_name *b:changelog_name* + Name of the ChangeLog file to look for. + The default is 'ChangeLog'. + +b:changelog_path + Path of the ChangeLog to use for the current buffer. + The default is empty, thus looking for a file named + |b:changelog_name| in the same directory as the + current buffer. If not found, the parent directory of + the current buffer is searched. This continues + recursively until a file is found or there are no more + parent directories to search. + +b:changelog_entry_prefix + Name of a function to call to generate a prefix to a + new entry. This function takes no arguments and + should return a string containing the prefix. + Returning an empty prefix is fine. + The default generates the shortest path between the + ChangeLog's pathname and the current buffers pathname. + In the future, it will also be possible to use other + variable contexts for this variable, for example, g:. + The Changelog entries are inserted where they add the least amount of text. After figuring out the current date and user, the file is searched for an entry beginning with the current date and user and if found adds another item diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt index 8a8d800e67..f4aa799129 100644 --- a/runtime/doc/fold.txt +++