3131" 2024 Oct 30 by Vim Project: fix filetype detection for remote files (#15961)
3232" 2024 Oct 30 by Vim Project: fix x mapping on cygwin (#13687)
3333" 2024 Oct 31 by Vim Project: add netrw#Launch() and netrw#Open() (#15962)
34+ " 2024 Oct 31 by Vim Project: fix E874 when browsing remote dir (#15964)
3435" }}}
3536" Former Maintainer: Charles E Campbell
3637" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
@@ -9576,22 +9577,16 @@ endfun
95769577" Called by s:PerformListing()
95779578fun! s:NetrwTreeListing(dirname)
95789579 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
9579- " call Dfunc("s:NetrwTreeListing() bufname<".expand("%").">")
9580- " call Decho("curdir<".a:dirname.">",'~'.expand("<slnum>"))
9581- " call Decho("win#".winnr().": w:netrw_treetop ".(exists("w:netrw_treetop")? "exists" : "doesn't exist")." w:netrw_treedict ".(exists("w:netrw_treedict")? "exists" : "doesn't exit"),'~'.expand("<slnum>"))
9582- " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
95839580
95849581 " update the treetop
95859582 if !exists("w:netrw_treetop")
9586- " call Decho("update the treetop (w:netrw_treetop doesn't exist yet)",'~'.expand("<slnum>"))
95879583 let w:netrw_treetop= a:dirname
95889584 let s:netrw_treetop= w:netrw_treetop
9589- " call Decho("w:netrw_treetop<".w:netrw_treetop."> (reusing)",'~'.expand("<slnum>"))
9590- elseif (w:netrw_treetop =~ ('^'.a:dirname) && s:Strlen(a:dirname) < s:Strlen(w:netrw_treetop)) || a:dirname !~ ('^'.w:netrw_treetop )
9591- " call Decho("update the treetop (override w:netrw_treetop with a:dirname<".a:dirname.">)",'~'.expand("<slnum>") )
9585+ " use \V in case the directory contains specials chars like '$' or '~'
9586+ elseif (w:netrw_treetop =~ ('^'.'\V'. a:dirname) && s:Strlen(a:dirname) < s:Strlen(w:netrw_treetop))
9587+ \ || a:dirname !~ ('^'.'\V'.w:netrw_treetop )
95929588 let w:netrw_treetop= a:dirname
95939589 let s:netrw_treetop= w:netrw_treetop
9594- " call Decho("w:netrw_treetop<".w:netrw_treetop."> (went up)",'~'.expand("<slnum>"))
95959590 endif
95969591 if exists("w:netrw_treetop")
95979592 let s:netrw_treetop= w:netrw_treetop
@@ -9602,16 +9597,12 @@ fun! s:NetrwTreeListing(dirname)
96029597
96039598 if !exists("w:netrw_treedict")
96049599 " insure that we have a treedict, albeit empty
9605- " call Decho("initializing w:netrw_treedict to empty",'~'.expand("<slnum>"))
96069600 let w:netrw_treedict= {}
96079601 endif
96089602
96099603 " update the dictionary for the current directory
9610- " call Decho("updating: w:netrw_treedict[".a:dirname.'] -> [directory listing]','~'.expand("<slnum>"))
9611- " call Decho("w:netrw_bannercnt=".w:netrw_bannercnt." line($)=".line("$"),'~'.expand("<slnum>"))
96129604 exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$g@^\.\.\=/$@d _'
96139605 let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$"))
9614- " call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname]),'~'.expand("<slnum>"))
96159606 exe "sil! NetrwKeepj ".w:netrw_bannercnt.",$d _"
96169607
96179608 " if past banner, record word
@@ -9620,23 +9611,17 @@ fun! s:NetrwTreeListing(dirname)
96209611 else
96219612 let fname= ""
96229613 endif
9623- " call Decho("fname<".fname.">",'~'.expand("<slnum>"))
9624- " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
96259614
96269615 " display from treetop on down
9627- " call Decho("(s:NetrwTreeListing) w:netrw_treetop<".w:netrw_treetop.">")
96289616 NetrwKeepj call s:NetrwTreeDisplay(w:netrw_treetop,"")
9629- " call Decho("s:NetrwTreeDisplay) setl noma nomod ro",'~'.expand("<slnum>"))
96309617
96319618 " remove any blank line remaining as line#1 (happens in treelisting mode with banner suppressed)
96329619 while getline(1) =~ '^\s*$' && byte2line(1) > 0
9633- " call Decho("deleting blank line",'~'.expand("<slnum>"))
96349620 1d
96359621 endwhile
96369622
96379623 exe "setl ".g:netrw_bufsettings
96389624
9639- " call Dret("s:NetrwTreeListing : bufname<".expand("%").">")
96409625 return
96419626 endif
96429627endfun
0 commit comments