summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-04-24 18:51:19 +0200
committerBram Moolenaar <Bram@vim.org>2013-04-24 18:51:19 +0200
commitff0341946eabf4dcb616a2bbe7a2e9d69ae46e57 (patch)
tree0444bd0917a2d95ee299383bce98e78caa19380b
parent7afea82f507c0614a22b27d592adf65f5656c2df (diff)
Updated runtime files.
-rw-r--r--runtime/autoload/getscript.vim17
-rw-r--r--runtime/autoload/netrw.vim2771
-rw-r--r--runtime/autoload/netrwFileHandlers.vim4
-rw-r--r--runtime/autoload/netrwSettings.vim6
-rw-r--r--runtime/autoload/tar.vim49
-rw-r--r--runtime/autoload/zip.vim30
-rw-r--r--runtime/doc/pattern.txt4
-rw-r--r--runtime/doc/pi_getscript.txt19
-rw-r--r--runtime/doc/pi_netrw.txt494
-rw-r--r--runtime/doc/pi_tar.txt19
-rw-r--r--runtime/doc/pi_zip.txt11
-rw-r--r--runtime/doc/tags8
-rw-r--r--runtime/doc/todo.txt43
-rw-r--r--runtime/ftplugin/make.vim7
-rw-r--r--runtime/plugin/getscriptPlugin.vim4
-rw-r--r--runtime/plugin/netrwPlugin.vim16
-rw-r--r--runtime/plugin/tarPlugin.vim4
-rw-r--r--runtime/plugin/zipPlugin.vim10
-rw-r--r--runtime/syntax/aptconf.vim25
-rw-r--r--runtime/syntax/groovy.vim6
-rw-r--r--runtime/syntax/netrw.vim14
-rw-r--r--runtime/syntax/ninja.vim14
-rw-r--r--runtime/syntax/redif.vim16
-rw-r--r--runtime/tutor/tutor.eo2
-rw-r--r--src/po/fi.po16
-rw-r--r--src/po/ja.po14
-rw-r--r--src/po/ja.sjis.po14
27 files changed, 2149 insertions, 1488 deletions
diff --git a/runtime/autoload/getscript.vim b/runtime/autoload/getscript.vim
index 34f5970c3e..6b74d37da9 100644
--- a/runtime/autoload/getscript.vim
+++ b/runtime/autoload/getscript.vim
@@ -1,8 +1,8 @@
" ---------------------------------------------------------------------
" getscript.vim
-" Author: Charles E. Campbell, Jr.
-" Date: Jan 17, 2012
-" Version: 34
+" Author: Charles E. Campbell
+" Date: Apr 17, 2013
+" Version: 35
" Installing: :help glvs-install
" Usage: :help glvs
"
@@ -15,7 +15,7 @@
if exists("g:loaded_getscript")
finish
endif
-let g:loaded_getscript= "v34"
+let g:loaded_getscript= "v35"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
@@ -74,6 +74,11 @@ if !exists("g:GetLatestVimScripts_allowautoinstall")
let g:GetLatestVimScripts_allowautoinstall= 1
endif
+" set up default scriptaddr address
+if !exists("g:GetLatestVimScripts_scriptaddr")
+ let g:GetLatestVimScripts_scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='
+endif
+
"" For debugging:
"let g:GetLatestVimScripts_wget = "echo"
"let g:GetLatestVimScripts_options = "options"
@@ -314,7 +319,7 @@ fun! getscript#GetLatestVimScripts()
if &mod
silent! w!
endif
- q
+ q!
" restore events and current directory
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
@@ -415,7 +420,7 @@ fun! s:GetOneScript(...)
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
" grab a copy of the plugin's vim.sourceforge.net webpage
- let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
+ let scriptaddr = g:GetLatestVimScripts_scriptaddr.scriptid
let tmpfile = tempname()
let v:errmsg = ""
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 3e9bd34b19..8422d9dea3 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,10 +1,10 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
-" Date: Oct 25, 2012
-" Version: 146
-" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
+" Date: Apr 16, 2013
+" Version: 148
+" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
-" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1
+" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{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,
@@ -22,10 +22,10 @@
if &cp || exists("g:loaded_netrw")
finish
endif
-let g:loaded_netrw = "v146"
-if v:version < 702
+let g:loaded_netrw = "v148"
+if v:version < 703 || (v:version == 703 && !has("patch465"))
echohl WarningMsg
- echo "***warning*** this version of netrw needs vim 7.2"
+ echo "***warning*** this version of netrw needs vim 7.3.465 or later"
echohl Normal
finish
endif
@@ -35,12 +35,6 @@ if !exists("s:NOTE")
let s:ERROR = 2
endif
-" sanity checks
-if v:version < 700
- call netrw#ErrorMsg(s:WARNING,"you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw",1)
- finish
-endif
-
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
@@ -55,7 +49,7 @@ set cpo&vim
" 0=note = s:NOTE
" 1=warning = s:WARNING
" 2=error = s:ERROR
-" Oct 24, 2012 : max errnum currently is 91
+" Apr 02, 2013 : max errnum currently is 92
fun! netrw#ErrorMsg(level,msg,errnum)
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
@@ -97,7 +91,7 @@ fun! netrw#ErrorMsg(level,msg,errnum)
sil! keepj call s:NetrwSafeOptions()
setl bt=nofile
keepj file NetrwMessage
-" call Decho("setlocal ma noro")
+" call Decho("setl ma noro")
setl ma noro
call setline(line("$"),level.a:msg)
endif
@@ -134,9 +128,12 @@ endfun
" NetrwInit: initializes variables if they haven't been defined {{{2
" Loosely, varname = value.
fun s:NetrwInit(varname,value)
+" call Decho("varname<".a:varname."> value=".a:value)
if !exists(a:varname)
if type(a:value) == 0
exe "let ".a:varname."=".a:value
+ elseif type(a:value) == 1 && a:value =~ '^[{[]'
+ exe "let ".a:varname."=".a:value
elseif type(a:value) == 1
exe "let ".a:varname."="."'".a:value."'"
else
@@ -251,6 +248,7 @@ call s:NetrwInit("g:netrw_cursor" , 2)
let s:netrw_usercul = &cursorline
let s:netrw_usercuc = &cursorcolumn
" Default values - d-g ---------- {{{3
+call s:NetrwInit("s:didstarstar",0)
call s:NetrwInit("g:netrw_dirhist_cnt" , 0)
call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }')
call s:NetrwInit("g:netrw_dirhistmax" , 10)
@@ -297,7 +295,7 @@ endif
call s:NetrwInit("g:netrw_list_hide","")
" Default values - lh-lz ---------- {{{3
if exists("g:netrw_local_copycmd")
- let g:netrw_localcopycmd= g:netrw_local_copycmd"
+ let g:netrw_localcopycmd= g:netrw_local_copycmd
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_copycmd is deprecated in favor of g:netrw_localcopycmd",84)
endif
if !exists("g:netrw_localcmdshell")
@@ -323,7 +321,7 @@ endif
call s:NetrwInit("g:netrw_localmkdir","mkdir")
call s:NetrwInit("g:netrw_remote_mkdir","mkdir")
if exists("g:netrw_local_movecmd")
- let g:netrw_localmovecmd= g:netrw_local_movecmd"
+ let g:netrw_localmovecmd= g:netrw_local_movecmd
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_movecmd is deprecated in favor of g:netrw_localmovecmd",88)
endif
if !exists("g:netrw_localmovecmd")
@@ -341,7 +339,7 @@ if !exists("g:netrw_localmovecmd")
endif
call s:NetrwInit("g:netrw_localrmdir", "rmdir")
if exists("g:netrw_local_rmdir")
- let g:netrw_localrmdir= g:netrw_local_rmdir"
+ let g:netrw_localrmdir= g:netrw_local_rmdir
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86)
endif
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
@@ -357,7 +355,7 @@ call s:NetrwInit("g:netrw_markfileesc" , '*./[\~')
call s:NetrwInit("g:netrw_maxfilenamelen", 32)
call s:NetrwInit("g:netrw_menu" , 1)
call s:NetrwInit("g:netrw_mkdir_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME mkdir")
-call s:NetrwInit("g:netrw_mousemaps" , (exists("&mouse") && &mouse =~ '[anh]'))
+call s:NetrwInit("g:netrw_mousemaps" , (exists("+mouse") && &mouse =~ '[anh]'))
call s:NetrwInit("g:netrw_retmap" , 0)
if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME")
@@ -392,7 +390,17 @@ call s:NetrwInit("g:netrw_ssh_browse_reject", '^total\s\+\d\+$')
call s:NetrwInit("g:netrw_use_noswf" , 0)
" Default values - t-w ---------- {{{3
call s:NetrwInit("g:netrw_timefmt","%c")
-call s:NetrwInit("g:netrw_xstrlen",0)
+if !exists("g:netrw_xstrlen")
+ if exists("g:Align_xstrlen")
+ let g:netrw_xstrlen= g:Align_xstrlen
+ elseif exists("g:drawit_xstrlen")
+ let g:netrw_xstrlen= g:drawit_xstrlen
+ elseif &enc == "latin1" || !has("multi_byte")
+ let g:netrw_xstrlen= 0
+ else
+ let g:netrw_xstrlen= 1
+ endif
+endif
call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.")
call s:NetrwInit("g:netrw_win95ftp",1)
call s:NetrwInit("g:netrw_winsize",50)
@@ -402,11 +410,11 @@ if g:netrw_winsize > 100|let g:netrw_winsize= 100|endif
" Default values for netrw's script variables: {{{2
call s:NetrwInit("g:netrw_fname_escape",' ?&;%')
if has("win32") || has("win95") || has("win64") || has("win16")
- call s:NetrwInit("g:netrw_glob_escape",'[]*?`{$')
+ call s:NetrwInit("g:netrw_glob_escape",'*?`{[]$')
else
- call s:NetrwInit("g:netrw_glob_escape",'[]*?`{~$\')
+ call s:NetrwInit("g:netrw_glob_escape",'*[]?`{~$\')
endif
-call s:NetrwInit("g:netrw_menu_escape",'./&? \')
+call s:NetrwInit("g:netrw_menu_escape",'.&? \')
call s:NetrwInit("g:netrw_tmpfile_escape",' &;')
call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"")
@@ -459,7 +467,7 @@ if v:version >= 700 && has("balloon_eval") && &beval == 1 && has("syntax") && ex
endif
" ------------------------------------------------------------------------
-" s:NetrwOptionSave: save options and set to "standard" form {{{2
+" s:NetrwOptionSave: save options prior to setting to "netrw-buffer-standard" form {{{2
" 06/08/07 : removed call to NetrwSafeOptions(), either placed
" immediately after NetrwOptionSave() calls in NetRead
" and NetWrite, or after the s:NetrwEnew() call in
@@ -475,7 +483,7 @@ fun! s:NetrwOptionSave(vt)
" call Dret("s:NetrwOptionSave : options already saved")
return
endif
-" call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")." diff=".&l:diff)
+" call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." diff=".&l:diff)
" Save current settings and current directory
" call Decho("saving current settings and current directory")
@@ -487,6 +495,7 @@ fun! s:NetrwOptionSave(vt)
let {a:vt}netrw_blkeep = &l:bl
let {a:vt}netrw_btkeep = &l:bt
let {a:vt}netrw_bombkeep = &l:bomb
+ let {a:vt}netrw_cedit = &cedit
let {a:vt}netrw_cikeep = &l:ci
let {a:vt}netrw_cinkeep = &l:cin
let {a:vt}netrw_cinokeep = &l:cino
@@ -552,7 +561,7 @@ fun! s:NetrwOptionRestore(vt)
endif
unlet {a:vt}netrw_optionsave
- if exists("&acd")
+ if exists("+acd")
if exists("{a:vt}netrw_acdkeep")
" call Decho("(NetrwOptionRestore) g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd)
let curdir = getcwd()
@@ -572,10 +581,13 @@ fun! s:NetrwOptionRestore(vt)
endif
if exists("{a:vt}netrw_aikeep") |let &l:ai = {a:vt}netrw_aikeep |unlet {a:vt}netrw_aikeep |endif
if exists("{a:vt}netrw_awkeep") |let &l:aw = {a:vt}netrw_awkeep |unlet {a:vt}netrw_awkeep |endif
- if exists("{a:vt}netrw_bhkeep") |let &l:bh = {a:vt}netrw_bhkeep |unlet {a:vt}netrw_bhkeep |endif
+ if g:netrw_liststyle != s:TREELIST
+ if exists("{a:vt}netrw_bhkeep") |let &l:bh = {a:vt}netrw_bhkeep |unlet {a:vt}netrw_bhkeep |endif
+ endif
if exists("{a:vt}netrw_blkeep") |let &l:bl = {a:vt}netrw_blkeep |unlet {a:vt}netrw_blkeep |endif
if exists("{a:vt}netrw_btkeep") |let &l:bt = {a:vt}netrw_btkeep |unlet {a:vt}netrw_btkeep |endif
if exists("{a:vt}netrw_bombkeep") |let &l:bomb = {a:vt}netrw_bombkeep |unlet {a:vt}netrw_bombkeep |endif
+ if exists("{a:vt}netrw_cedit") |let &cedit = {a:vt}netrw_cedit |unlet {a:vt}netrw_cedit |endif
if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif
if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif
if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif
@@ -612,7 +624,7 @@ fun! s:NetrwOptionRestore(vt)
" to the current directory as returned by getcwd().
let &l:directory = getcwd()
sil! let &l:swf = {a:vt}netrw_swfkeep
- setlocal directory=
+ setl directory=
unlet {a:vt}netrw_swfkeep
elseif &l:swf != {a:vt}netrw_swfkeep
" following line causes a Press ENTER in windows -- can't seem to work around it!!!
@@ -636,55 +648,549 @@ fun! s:NetrwOptionRestore(vt)
endif
" call Decho("(NetrwOptionRestore) g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd)
-" call Decho("(NetrwOptionRestore) fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
+" call Decho("(NetrwOptionRestore) fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist"))
" call Decho("(NetrwOptionRestore) ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)")
" call Decho("(NetrwOptionRestore) diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"))
" call Decho("(NetrwOptionRestore) ts=".&l:ts)
+ " Moved the filetype detect here from NetrwGetFile() because remote files
+ " were having their filetype detect-generated settings overwritten by
+ " NetrwOptionRestore.
+ if &ft != "netrw"
+" call Decho("(NetrwOptionRestore) filetype detect (ft=".&ft.")")
+ filetype detect
+ endif
" call Dret("s:NetrwOptionRestore : tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
endfun
" ---------------------------------------------------------------------
" s:NetrwSafeOptions: sets options to help netrw do its job {{{2
+" Use s:NetrwSaveOptions() to save user settings
+" Use s:NetrwOptionRestore() to restore user settings
fun! s:NetrwSafeOptions()
" call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%"))."> winnr($)=".winnr("$"))
" call Decho("win#".winnr()."'s ft=".&ft)
- if exists("&acd") | setlocal noacd | endif
- setlocal noai
- setlocal noaw
- setlocal nobomb
- setlocal noci
- setlocal nocin
- setlocal cino=
- setlocal com=
- setlocal cpo-=a
- setlocal cpo-=A
- setlocal fo=nroql2
- setlocal nohid
- setlocal noim
- setlocal isk+=@ isk+=* isk+=/
- setlocal magic
- setlocal report=10000
- setlocal sel=inclusive
- setlocal nospell
- setlocal tw=0
- setlocal wig=
+ if exists("+acd") | setl noacd | endif
+ setl noai
+ setl noaw
+ setl nobomb
+ setl noci
+ setl nocin
+ if g:netrw_liststyle == s:TREELIST
+ setl bh=hide
+ endif
+ setl cino=
+ setl com=
+ setl cpo-=a
+ setl cpo-=A
+ setl fo=nroql2
+ setl nohid
+ setl noim
+ setl isk+=@ isk+=* isk+=/
+ setl magic
+ setl report=10000
+ setl sel=inclusive
+ setl nospell
+ setl tw=0
+ setl wig=
+ set cedit&
if g:netrw_use_noswf && has("win32") && !has("win95")
- setlocal noswf
+ setl noswf
endif
call s:NetrwCursor()
" allow the user to override safe options
" call Decho("ft<".&ft."> ei=".&ei)
if &ft == "netrw"
-" call Decho("do any netrw FileType autocmds")
+" call Decho("do any netrw FileType autocmds (doau FileType netrw)")
sil! keepalt keepj doau FileType netrw
endif
-" call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
+" call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." bh=".&l:bh)
" call Dret("s:NetrwSafeOptions")
endfun
" ---------------------------------------------------------------------
+" netrw#Explore: launch the local browser in the directory of the current file {{{2
+" indx: == -1: Nexplore
+" == -2: Pexplore
+" == +: this is overloaded:
+" * If Nexplore/Pexplore is in use, then this refers to the
+" indx'th item in the w:netrw_explore_list[] of items which
+" matched the */pattern **/pattern *//pattern **//pattern
+" * If Hexplore or Vexplore, then this will override
+" g:netrw_winsize to specify the qty of rows or columns the
+" newly split window should have.
+" dosplit==0: the window will be split iff the current file has been modified
+" dosplit==1: the window will be split before running the local browser
+" style == 0: Explore style == 1: Explore!
+" == 2: Hexplore style == 3: Hexplore!
+" == 4: Vexplore style == 5: Vexplore!
+" == 6: Texplore
+fun! netrw#Explore(indx,dosplit,style,...)
+" call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." modifiable=".&modifiable." a:0=".a:0." win#".winnr()." buf#".bufnr("%"))
+ if !exists("b:netrw_curdir")
+ let b:netrw_curdir= getcwd()
+" call Decho("(Explore) set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)")
+ endif
+ let curdir = simplify(b:netrw_curdir)
+ let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
+" call Decho("(Explore) curdir<".curdir."> curfiledir<".curfiledir.">")
+
+ " save registers
+ sil! let keepregstar = @*
+ sil! let keepregplus = @+
+ sil! let keepregslash= @/
+
+ " if dosplit or file has been modified
+ if a:dosplit || &modified || a:style == 6
+" call Decho("(Explore) case dosplit=".a:dosplit." modified=".&modified." a:style=".a:style.": dosplit or file has been modified")
+ call s:SaveWinVars()
+ let winsz= g:netrw_winsize
+ if a:indx > 0
+ let winsz= a:indx
+ endif
+
+ if a:style == 0 " Explore, Sexplore
+" call Decho("(Explore) style=0: Explore or Sexplore")
+ let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
+ exe winsz."wincmd s"
+
+ elseif a:style == 1 "Explore!, Sexplore!
+" call Decho("(Explore) style=1: Explore! or Sexplore!")
+ let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
+ exe "keepalt ".winsz."wincmd v"
+
+ elseif a:style == 2 " Hexplore
+" call Decho("(Explore) style=2: Hexplore")
+ let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
+ exe "keepalt bel ".winsz."wincmd s"
+
+ elseif a:style == 3 " Hexplore!
+" call Decho("(Explore) style=3: Hexplore!")
+ let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz
+ exe "keepalt abo ".winsz."wincmd s"
+
+ elseif a:style == 4 " Vexplore
+" call Decho("(Explore) style=4: Vexplore")
+ let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
+ exe "keepalt lefta ".winsz."wincmd v"
+
+ elseif a:style == 5 " Vexplore!
+" call Decho("(Explore) style=5: Vexplore!")
+ let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz
+ exe "keepalt rightb ".winsz."wincmd v"
+
+ elseif a:style == 6 " Texplore
+ call s:SaveBufVars()
+" call Decho("(Explore) style = 6: Texplore")
+ exe "keepalt tabnew ".fnameescape(curdir)
+ call s:RestoreBufVars()
+ endif
+ call s:RestoreWinVars()
+" else " Decho
+" call Decho("(Explore) case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6")
+ endif
+ keepj norm! 0
+
+ if a:0 > 0
+" call Decho("(Explore) case [a:0=".a:0."] > 0")
+ if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin))
+" call Decho("(Explore) ..case a:1<".a:1.">: starts with ~ and unix or cygwin")
+ let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),''))
+" call Decho("(Explore) ..using dirname<".dirname."> (case: ~ && unix||cygwin)")
+ elseif a:1 == '.'
+" call Decho("(Explore) ..case a:1<".a:1.">: matches .")
+ let dirname= simplify(exists("b:netrw_curdir")? b:netrw_curdir : getcwd())
+ if dirname !~ '/$'
+ let dirname= dirname."/"
+ endif
+" call Decho("(Explore) ..using dirname<".dirname."> (case: ".(exists("b:netrw_curdir")? "b:netrw_curdir" : "getcwd()").")")
+ elseif a:1 =~ '\$'
+" call Decho("(Explore) ..case a:1<".a:1.">: matches ending $")
+ let dirname= simplify(expand(a:1))
+" call Decho("(Explore) ..using user-specified dirname<".dirname."> with $env-var")
+ elseif a:1 !~ '^\*\{1,2}/'
+" call Decho("(Explore) ..case a:1<".a:1.">: other, not pattern or filepattern")
+ let dirname= simplify(a:1)
+" call Decho("(Explore) ..using user-specified dirname<".dirname.">")
+ else
+" call Decho("(Explore) ..case a:1: pattern or filepattern")
+ let dirname= a:1
+ endif
+ else
+ " clear explore
+" call Decho("(Explore) case a:0=".a:0.": clearing Explore list")
+ call s:NetrwClearExplore()
+" call Dret("netrw#Explore : cleared list")
+ return
+ endif
+
+" call Decho("(Explore) dirname<".dirname.">")
+ if dirname =~ '\.\./\=$'
+ let dirname= simplify(fnamemodify(dirname,':p:h'))
+ elseif dirname =~ '\.\.' || dirname == '.'
+ let dirname= simplify(fnamemodify(dirname,':p'))
+ endif
+" call Decho("(Explore) dirname<".dirname."> (after simplify)")
+
+ if dirname =~ '^\*//'
+ " starpat=1: Explore *//pattern (current directory only search for files containing pattern)
+" call Decho("(Explore) case Explore *//pattern")
+ let pattern= substitute(dirname,'^\*//\(.*\)$','\1','')
+ let starpat= 1
+" call Decho("(Explore) ..Explore *//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">")
+ if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
+
+ elseif dirname =~ '^\*\*//'
+ " starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
+" call Decho("(Explore) case Explore **//pattern")
+ let pattern= substitute(dirname,'^\*\*//','','')
+ let starpat= 2
+" call Decho("(Explore) ..Explore **//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">")
+
+ elseif dirname =~ '/\*\*/'
+ " handle .../**/.../filepat
+" call Decho("(Explore) case Explore .../**/.../filepat")
+ let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','')
+ if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && (has("win32") || has("win95") || has("win64") || has("win16")))
+ let b:netrw_curdir = prefixdir
+ else
+ let b:netrw_curdir= getcwd().'/'.prefixdir
+ endif
+ let dirname= substitute(dirname,'^.\{-}\(\*\*/.*\)$','\1','')
+ let starpat= 4
+" call Decho("(Explore) ..pwd<".getcwd()."> dirname<".dirname.">")
+" call Decho("(Explore) ..case Explore ../**/../filepat (starpat=".starpat.")")
+
+ elseif dirname =~ '^\*/'
+ " starpat=3: Explore */filepat (search in current directory for filenames matching filepat)
+ let starpat= 3
+" call Decho("(Explore) case Explore */filepat (starpat=".starpat.")")
+
+ elseif dirname=~ '^\*\*/'
+ " starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat)
+ let starpat= 4
+" call Decho("(Explore) case Explore **/filepat (starpat=".starpat.")")
+
+ else
+ let starpat= 0
+" call Decho("(Explore) default case: starpat=".starpat)
+ endif
+
+ if starpat == 0 && a:indx >= 0
+ " [Explore Hexplore Vexplore Sexplore] [dirname]
+" call Decho("(Explore) case starpat==0 && a:indx=".a:indx.": dirname<".dirname."> Explore Hexplore Vexplore Sexplore")
+ if dirname == ""
+ let dirname= curfiledir
+" call Decho("(Explore) ..empty dirname, using current file's directory<".dirname.">")
+ endif
+ if dirname =~ '^scp:' || dirname =~ '^ftp:'
+" call Decho("(Explore) ..calling NetrwBrowse(0,dirname<".dirname.">)")
+ call s:NetrwBrowse(0,dirname)
+ else
+ if dirname == ""|let dirname= getcwd()|endif
+" call Decho("(Explore) ..calling LocalBrowseCheck(dirname<".dirname.">)")
+ call netrw#LocalBrowseCheck(dirname)
+" call Decho("(Explore) win#".winnr()." buf#".bufnr("%")." modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
+ endif
+ if exists("w:netrw_bannercnt")
+ " done to handle P08-Ingelrest. :Explore will _Always_ go to the line just after the banner.
+ " If one wants to return the same place in the netrw window, use :Rex instead.
+ exe w:netrw_bannercnt
+ endif
+
+" call Decho("(Explore) curdir<".curdir.">")
+ " ---------------------------------------------------------------------
+ " Jan 24, 2013: not sure why the following was present. See P08-Ingelrest
+" if has("win32") || has("win95") || has("win64") || has("win16")
+" keepj call search('\<'.substitute(curdir,'^.*[/\\]','','e').'\>','cW')
+" else
+" keepj call search('\<'.substitute(curdir,'^.*/','','e').'\>','cW')
+" endif
+ " ---------------------------------------------------------------------
+
+ " starpat=1: Explore *//pattern (current directory only search for files containing pattern)
+ " starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
+ " starpat=3: Explore */filepat (search in current directory for filenames matching filepat)
+ " starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat)
+ elseif a:indx <= 0
+ " Nexplore, Pexplore, Explore: handle starpat
+" call Decho("(Explore) case a:indx<=0: Nexplore, Pexplore, <s-down>, <s-up> starpat=".starpat." a:indx=".a:indx)
+ if !mapcheck("<s-up>","n") && !mapcheck("<s-down>","n") && exists("b:netrw_curdir")
+" call Decho("(Explore) ..set up <s-up> and <s-down> maps")
+ let s:didstarstar= 1
+ nnoremap <buffer> <silent> <s-up> :Pexplore<cr>
+ nnoremap <buffer> <silent> <s-down> :Nexplore<cr>
+ endif
+
+ if has("path_extra")
+" call Decho("(Explore) ..starpat=".starpat.": has +path_extra")
+ if !exists("w:netrw_explore_indx")
+ let w:netrw_explore_indx= 0
+ endif
+
+ let indx = a:indx
+" call Decho("(Explore) ..starpat=".starpat.": set indx= [a:indx=".indx."]")
+
+ if indx == -1
+ " Nexplore
+" call Decho("(Explore) ..case Nexplore with starpat=".starpat.": (indx=".indx.")")
+ if !exists("w:netrw_explore_list") " sanity check
+ keepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
+ sil! let @* = keepregstar
+ sil! let @+ = keepregstar
+ sil! let @/ = keepregslash
+" call Dret("netrw#Explore")
+ return
+ endif
+ let indx= w:netrw_explore_indx
+ if indx < 0 | let indx= 0 | endif
+ if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
+ let curfile= w:netrw_explore_list[indx]
+" call Decho("(Explore) ....indx=".indx." curfile<".curfile.">")
+ while indx < w:netrw_explore_listlen && curfile == w:netrw_explore_list[indx]
+ let indx= indx + 1
+" call Decho("(Explore) ....indx=".indx." (Nexplore while loop)")
+ endwhile
+ if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
+" call Decho("(Explore) ....Nexplore: indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
+ elseif indx == -2
+ " Pexplore
+" call Decho("(Explore) case Pexplore with starpat=".starpat.": (indx=".indx.")")
+ if !exists("w:netrw_explore_list") " sanity check
+ keepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
+ sil! let @* = keepregstar
+ sil! let @+ = keepregstar
+ sil! let @/ = keepregslash
+" call Dret("netrw#Explore")
+ return
+ endif
+ let indx= w:netrw_explore_indx
+ if indx < 0 | let indx= 0 | endif
+ if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif
+ let curfile= w:netrw_explore_list[indx]
+" call Decho("(Explore) ....indx=".indx." curfile<".curfile.">")
+ while indx >= 0 && curfile == w:netrw_explore_list[indx]
+ let indx= indx - 1
+" call Decho("(Explore) ....indx=".indx." (Pexplore while loop)")
+ endwhile
+ if indx < 0 | let indx= 0 | endif
+" call Decho("(Explore) ....Pexplore: indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
+ else
+ " Explore -- initialize
+ " build list of files to Explore with Nexplore/Pexplore
+" call Decho("(Explore) ..starpat=".starpat.": case Explore: initialize (indx=".indx.")")
+ keepj keepalt call s:NetrwClearExplore()
+ let w:netrw_explore_indx= 0
+ if !exists("b:netrw_curdir")
+ let b:netrw_curdir= getcwd()
+ endif
+" call Decho("(Explore) ....starpat=".starpat.": b:netrw_curdir<".b:netrw_curdir.">")
+
+ " switch on starpat to build the w:netrw_explore_list of files
+ if starpat == 1
+ " starpat=1: Explore *//pattern (current directory only search for files containing pattern)
+" call Decho("(Explore) ..case starpat=".starpat.": build *//pattern list (curdir-only srch for files containing pattern) &hls=".&hls)
+" call Decho("(Explore) ....pattern<".pattern.">")
+ try
+ exe "keepj noautocmd vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*"
+ catch /^Vim\%((\a\+)\)\=:E480/
+ keepalt call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76)
+" call Dret("netrw#Explore : unable to find pattern<".pattern.">")
+ return
+ endtry
+ let w:netrw_explore_list = s:NetrwExploreListUniq(map(getqflist(),'bufname(v:val.bufnr)'))
+ if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
+
+ elseif starpat == 2
+ " starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
+" call Decho("(Explore) ..case starpat=".starpat.": build **//pattern list (recursive descent files containing pattern)")
+" call Decho("(Explore) ....pattern<".pattern.">")
+ try
+ exe "sil keepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*"
+ catch /^Vim\%((\a\+)\)\=:E480/
+ keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
+ if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
+ sil! let @* = keepregstar
+ sil! let @+ = keepregstar
+ sil! let @/ = keepregslash
+" call Dret("netrw#Explore : no files matched pattern")
+ return
+ endtry
+ let s:netrw_curdir = b:netrw_curdir
+ let w:netrw_explore_list = getqflist()
+ let w:netrw_explore_list = s:NetrwExploreListUniq(map(w:netrw_explore_list,'s:netrw_curdir."/".bufname(v:val.bufnr)'))
+ if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
+
+ elseif starpat == 3
+ " starpat=3: Explore */filepat (search in current directory for filenames matching filepat)
+" call Decho("(Explore) ..case starpat=".starpat.": build */filepat list (curdir-only srch filenames matching filepat) &hls=".&hls)
+ let filepat= substitute(dirname,'^\*/','','')
+ let filepat= substitute(filepat,'^[%#<]','\\&','')
+" call Decho("(Explore) ....b:netrw_curdir<".b:netrw_curdir.">")
+" call Decho("(Explore) ....filepat<".filepat.">")
+ let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".filepat),'\n'))
+ if &hls | let keepregslash= s:ExplorePatHls(filepat) | endif
+
+ elseif starpat == 4
+ " starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat)
+" call Decho("(Explore) ..case starpat=".starpat.": build **/filepat list (recursive descent srch filenames matching filepat) &hls=".&hls)
+ let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".dirname),'\n'))
+ if &hls | let keepregslash= s:ExplorePatHls(dirname) | endif
+ endif " switch on starpat to build w:netrw_explore_list
+
+ let w:netrw_explore_listlen = len(w:netrw_explore_list)
+" call Decho("(Explore) ....w:netrw_explore_list<".string(w:netrw_explore_list).">")
+" call Decho("(Explore) ....w:netrw_explore_listlen=".w:netrw_explore_listlen)
+
+ if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
+ keepalt keepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
+ sil! let @* = keepregstar
+ sil! let @+ = keepregstar
+ sil! let @/ = keepregslash
+" call Dret("netrw#Explore : no files matched")
+ return
+ endif
+ endif " if indx ... endif
+
+ " NetrwStatusLine support - for exploring support
+ let w:netrw_explore_indx= indx
+" call Decho("(Explore) ....w:netrw_explore_list<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
+
+ " wrap the indx around, but issue a note
+ if indx >= w:netrw_explore_listlen || indx < 0
+" call Decho("(Explore) ....wrap indx (indx=".indx." listlen=".w:netrw_explore_listlen.")")
+ let indx = (indx < 0)? ( w:netrw_explore_listlen - 1 ) : 0
+ let w:netrw_explore_indx= indx
+ keepalt keepj call netrw#ErrorMsg(s:NOTE,"no more files match Explore pattern",43)
+ endif
+
+ exe "let dirfile= w:netrw_explore_list[".indx."]"