Skip to content

Commit 9f32069

Browse files
chrisbrak-takata
andcommitted
runtime(netrw): fix regression with x mapping on Cygwin
related: #13687 Co-authored-by: K.Takata <kentkt@csc.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent aa2ce6f commit 9f32069

1 file changed

Lines changed: 2 additions & 40 deletions

File tree

runtime/autoload/netrw.vim

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
" 2024 Oct 21 by Vim Project: remove netrwFileHandlers (#15895)
3030
" 2024 Oct 27 by Vim Project: clean up gx mapping (#15721)
3131
" 2024 Oct 30 by Vim Project: fix filetype detection for remote files (#15961)
32+
" 2024 Oct 30 by Vim Project: fix x mapping on cygwin (#13687)
3233
" }}}
3334
" Former Maintainer: Charles E Campbell
3435
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
@@ -5270,27 +5271,13 @@ endfun
52705271
" given filename; typically this means given their extension.
52715272
" 0=local, 1=remote
52725273
fun! netrw#BrowseX(fname,remote)
5273-
let use_ctrlo= 1
5274-
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.") implements x and gx maps")
5275-
52765274
if a:remote == 0 && isdirectory(a:fname)
52775275
" if its really just a local directory, then do a "gf" instead
5278-
" call Decho("remote≡0 and a:fname<".a:fname."> ".(isdirectory(a:fname)? "is a directory" : "is not a directory"),'~'.expand("<slnum>"))
5279-
" call Decho("..appears to be a local directory; using e ".a:fname." instead",'~'.expand("<slnum>"))
52805276
exe "e ".a:fname
5281-
" call Dret("netrw#BrowseX")
5282-
return
52835277
elseif a:remote == 1 && a:fname !~ '^https\=:' && a:fname =~ '/$'
52845278
" remote directory, not a webpage access, looks like an attempt to do a directory listing
5285-
" call Decho("remote≡1 and a:fname<".a:fname.">",'~'.expand("<slnum>"))
5286-
" call Decho("..and fname ".((a:fname =~ '^https\=:')? 'matches' : 'does not match').'^https\=:','~'.expand("<slnum>"))
5287-
" call Decho("..and fname ".((a:fname =~ '/$')? 'matches' : 'does not match').' /$','~'.expand("<slnum>"))
5288-
" call Decho("..appears to be a remote directory listing request; using gf instead",'~'.expand("<slnum>"))
52895279
norm! gf
5290-
" call Dret("netrw#BrowseX")
5291-
return
52925280
endif
5293-
" call Decho("not a local file nor a webpage request",'~'.expand("<slnum>"))
52945281

52955282
if exists("g:netrw_browsex_viewer") && exists("g:netrw_browsex_support_remote") && !g:netrw_browsex_support_remote
52965283
let remote = a:remote
@@ -5300,7 +5287,6 @@ fun! netrw#BrowseX(fname,remote)
53005287

53015288
let ykeep = @@
53025289
let screenposn = winsaveview()
5303-
" call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
53045290

53055291
" need to save and restore aw setting as gx can invoke this function from non-netrw buffers
53065292
let awkeep = &aw
@@ -5311,22 +5297,18 @@ fun! netrw#BrowseX(fname,remote)
53115297
if exists("g:Netrw_corehandler")
53125298
if type(g:Netrw_corehandler) == 2
53135299
" g:Netrw_corehandler is a function reference (see :help Funcref)
5314-
" call Decho("g:Netrw_corehandler is a funcref",'~'.expand("<slnum>"))
53155300
call g:Netrw_corehandler(s:NetrwFile(a:fname))
53165301
elseif type(g:Netrw_corehandler) == 3
53175302
" g:Netrw_corehandler is a List of function references (see :help Funcref)
5318-
" call Decho("g:Netrw_corehandler is a List",'~'.expand("<slnum>"))
53195303
for Fncref in g:Netrw_corehandler
53205304
if type(Fncref) == 2
53215305
call Fncref(a:fname)
53225306
endif
53235307
endfor
53245308
endif
5325-
" call Decho("restoring posn: screenposn<".string(screenposn).">,'~'.expand("<slnum>"))"
53265309
call winrestview(screenposn)
53275310
let @@= ykeep
53285311
let &aw= awkeep
5329-
" call Dret("netrw#BrowseX : coredump handler invoked")
53305312
return
53315313
endif
53325314
endif
@@ -5340,46 +5322,35 @@ fun! netrw#BrowseX(fname,remote)
53405322
if exten =~ "[\\/]"
53415323
let exten= ""
53425324
endif
5343-
" call Decho("exten<".exten.">",'~'.expand("<slnum>"))
53445325

53455326
if remote == 1
53465327
" create a local copy
5347-
" call Decho("remote: remote=".remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>"))
53485328
setl bh=delete
53495329
call netrw#NetRead(3,a:fname)
53505330
" attempt to rename tempfile
53515331
let basename= substitute(a:fname,'^\(.*\)/\(.*\)\.\([^.]*\)$','\2','')
53525332
let newname = substitute(s:netrw_tmpfile,'^\(.*\)/\(.*\)\.\([^.]*\)$','\1/'.basename.'.\3','')
5353-
" call Decho("basename<".basename.">",'~'.expand("<slnum>"))
5354-
" call Decho("newname <".newname.">",'~'.expand("<slnum>"))
53555333
if s:netrw_tmpfile != newname && newname != ""
53565334
if rename(s:netrw_tmpfile,newname) == 0
53575335
" renaming succeeded
5358-
" call Decho("renaming succeeded (tmpfile<".s:netrw_tmpfile."> to <".newname.">)")
53595336
let fname= newname
53605337
else
53615338
" renaming failed
5362-
" call Decho("renaming failed (tmpfile<".s:netrw_tmpfile."> to <".newname.">)")
53635339
let fname= s:netrw_tmpfile
53645340
endif
53655341
else
53665342
let fname= s:netrw_tmpfile
53675343
endif
53685344
else
5369-
" call Decho("local: remote=".remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>"))
53705345
let fname= a:fname
53715346
" special ~ handler for local
53725347
if fname =~ '^\~' && expand("$HOME") != ""
5373-
" call Decho('invoking special ~ handler','~'.expand("<slnum>"))
53745348
let fname= s:NetrwFile(substitute(fname,'^\~',expand("$HOME"),''))
53755349
endif
53765350
endif
5377-
" call Decho("fname<".fname.">",'~'.expand("<slnum>"))
5378-
" call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten),'~'.expand("<slnum>"))
53795351

53805352
" extract any viewing options. Assumes that they're set apart by spaces.
53815353
if exists("g:netrw_browsex_viewer")
5382-
" call Decho("extract any viewing options from g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
53835354
if g:netrw_browsex_viewer =~ '\s'
53845355
let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','')
53855356
let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
@@ -5390,17 +5361,14 @@ fun! netrw#BrowseX(fname,remote)
53905361
let viewopt = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\3','')." "
53915362
let cnt = cnt + 1
53925363
let oviewer = viewer
5393-
" call Decho("!exe: viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>"))
53945364
endwhile
53955365
else
53965366
let viewer = g:netrw_browsex_viewer
53975367
let viewopt = ""
53985368
endif
5399-
" call Decho("viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>"))
54005369
endif
54015370

54025371
if exists("g:netrw_browsex_viewer") && executable(viewer)
5403-
" call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
54045372
exe 'Launch' viewer viewopt shellescape(fname, 1)
54055373
else
54065374
" though shellescape(..., 1) is used in Open, it's insufficient
@@ -5413,7 +5381,6 @@ fun! netrw#BrowseX(fname,remote)
54135381
" Feb 12, 2008: had to de-activate removal of
54145382
" temporary file because it wasn't getting seen.
54155383
" if remote == 1 && fname != a:fname
5416-
"" call Decho("deleting temporary file<".fname.">",'~'.expand("<slnum>"))
54175384
" call s:NetrwDelete(fname)
54185385
" endif
54195386

@@ -5422,16 +5389,11 @@ fun! netrw#BrowseX(fname,remote)
54225389
if g:netrw_use_noswf
54235390
setl noswf
54245391
endif
5425-
if use_ctrlo
5426-
exe "sil! NetrwKeepj norm! \<c-o>"
5427-
endif
5392+
exe "sil! NetrwKeepj norm! \<c-o>"
54285393
endif
5429-
" call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
54305394
call winrestview(screenposn)
54315395
let @@ = ykeep
54325396
let &aw= awkeep
5433-
5434-
" call Dret("netrw#BrowseX")
54355397
endfun
54365398

54375399
" ---------------------------------------------------------------------

0 commit comments

Comments
 (0)