comparison runtime/autoload/netrw.vim @ 18594:e9a47bcf7b94

Update runtime files Commit: https://github.com/vim/vim/commit/5ef1c6a4838a9629b793f3ae676f72a764171b00 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Nov 10 22:09:11 2019 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sun, 10 Nov 2019 22:15:04 +0100
parents ca8e754bdd53
children 99586852c2db
comparison
equal deleted inserted replaced
18593:89a359d7bcd2 18594:e9a47bcf7b94
1 " netrw.vim: Handles file transfer and remote directory listing across 1 " netrw.vim: Handles file transfer and remote directory listing across
2 " AUTOLOAD SECTION 2 " AUTOLOAD SECTION
3 " Date: Jul 16, 2019 3 " Date: Nov 06, 2019
4 " Version: 165 4 " Version: 166
5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> 5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim 6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
8 " Permission is hereby granted to use and distribute this code, 8 " Permission is hereby granted to use and distribute this code,
9 " with or without modifications, provided that this copyright 9 " with or without modifications, provided that this copyright
37 finish 37 finish
38 endif 38 endif
39 endfor 39 endfor
40 endif 40 endif
41 41
42 let g:loaded_netrw = "v165" 42 let g:loaded_netrw = "v166"
43 if !exists("s:NOTE") 43 if !exists("s:NOTE")
44 let s:NOTE = 0 44 let s:NOTE = 0
45 let s:WARNING = 1 45 let s:WARNING = 1
46 let s:ERROR = 2 46 let s:ERROR = 2
47 endif 47 endif
230 let s:netrw_ftp_cmd= g:netrw_ftp_cmd 230 let s:netrw_ftp_cmd= g:netrw_ftp_cmd
231 if !exists("g:netrw_ftp_options") 231 if !exists("g:netrw_ftp_options")
232 let g:netrw_ftp_options= "-i -n" 232 let g:netrw_ftp_options= "-i -n"
233 endif 233 endif
234 if !exists("g:netrw_http_cmd") 234 if !exists("g:netrw_http_cmd")
235 if executable("curl") 235 if executable("wget")
236 let g:netrw_http_cmd = "wget"
237 call s:NetrwInit("g:netrw_http_xcmd","-q -O")
238 elseif executable("curl")
236 let g:netrw_http_cmd = "curl" 239 let g:netrw_http_cmd = "curl"
237 call s:NetrwInit("g:netrw_http_xcmd","-L -o") 240 call s:NetrwInit("g:netrw_http_xcmd","-L -o")
238 elseif executable("wget")
239 let g:netrw_http_cmd = "wget"
240 call s:NetrwInit("g:netrw_http_xcmd","-q -O")
241 elseif executable("elinks") 241 elseif executable("elinks")
242 let g:netrw_http_cmd = "elinks" 242 let g:netrw_http_cmd = "elinks"
243 call s:NetrwInit("g:netrw_http_xcmd","-source >") 243 call s:NetrwInit("g:netrw_http_xcmd","-source >")
244 elseif executable("fetch") 244 elseif executable("fetch")
245 let g:netrw_http_cmd = "fetch" 245 let g:netrw_http_cmd = "fetch"
687 endif 687 endif
688 endif 688 endif
689 689
690 " save registers 690 " save registers
691 if has("clipboard") 691 if has("clipboard")
692 " call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>"))
692 sil! let keepregstar = @* 693 sil! let keepregstar = @*
693 sil! let keepregplus = @+ 694 sil! let keepregplus = @+
694 endif 695 endif
695 sil! let keepregslash= @/ 696 sil! let keepregslash= @/
696 697
914 " Nexplore 915 " Nexplore
915 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) 916 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
916 if !exists("w:netrw_explore_list") " sanity check 917 if !exists("w:netrw_explore_list") " sanity check
917 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) 918 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
918 if has("clipboard") 919 if has("clipboard")
920 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
919 sil! let @* = keepregstar 921 sil! let @* = keepregstar
920 sil! let @+ = keepregplus 922 sil! let @+ = keepregplus
921 endif 923 endif
922 sil! let @/ = keepregslash 924 sil! let @/ = keepregslash
923 " call Dret("netrw#Explore") 925 " call Dret("netrw#Explore")
939 " Pexplore 941 " Pexplore
940 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) 942 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>"))
941 if !exists("w:netrw_explore_list") " sanity check 943 if !exists("w:netrw_explore_list") " sanity check
942 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) 944 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
943 if has("clipboard") 945 if has("clipboard")
946 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
944 sil! let @* = keepregstar 947 sil! let @* = keepregstar
945 sil! let @+ = keepregplus 948 sil! let @+ = keepregplus
946 endif 949 endif
947 sil! let @/ = keepregslash 950 sil! let @/ = keepregslash
948 " call Dret("netrw#Explore") 951 " call Dret("netrw#Explore")
994 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*" 997 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*"
995 catch /^Vim\%((\a\+)\)\=:E480/ 998 catch /^Vim\%((\a\+)\)\=:E480/
996 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) 999 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
997 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif 1000 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
998 if has("clipboard") 1001 if has("clipboard")
1002 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
999 sil! let @* = keepregstar 1003 sil! let @* = keepregstar
1000 sil! let @+ = keepregplus 1004 sil! let @+ = keepregplus
1001 endif 1005 endif
1002 sil! let @/ = keepregslash 1006 sil! let @/ = keepregslash
1003 " call Dret("netrw#Explore : no files matched pattern") 1007 " call Dret("netrw#Explore : no files matched pattern")
1030 " call Decho("....w:netrw_explore_listlen=".w:netrw_explore_listlen,'~'.expand("<slnum>")) 1034 " call Decho("....w:netrw_explore_listlen=".w:netrw_explore_listlen,'~'.expand("<slnum>"))
1031 1035
1032 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') 1036 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
1033 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) 1037 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
1034 if has("clipboard") 1038 if has("clipboard")
1039 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
1035 sil! let @* = keepregstar 1040 sil! let @* = keepregstar
1036 sil! let @+ = keepregplus 1041 sil! let @+ = keepregplus
1037 endif 1042 endif
1038 sil! let @/ = keepregslash 1043 sil! let @/ = keepregslash
1039 " call Dret("netrw#Explore : no files matched") 1044 " call Dret("netrw#Explore : no files matched")
1078 " call Decho("..your vim does not have +path_extra",'~'.expand("<slnum>")) 1083 " call Decho("..your vim does not have +path_extra",'~'.expand("<slnum>"))
1079 if !exists("g:netrw_quiet") 1084 if !exists("g:netrw_quiet")
1080 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) 1085 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
1081 endif 1086 endif
1082 if has("clipboard") 1087 if has("clipboard")
1088 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
1083 sil! let @* = keepregstar 1089 sil! let @* = keepregstar
1084 sil! let @+ = keepregplus 1090 sil! let @+ = keepregplus
1085 endif 1091 endif
1086 sil! let @/ = keepregslash 1092 sil! let @/ = keepregslash
1087 " call Dret("netrw#Explore : missing +path_extra") 1093 " call Dret("netrw#Explore : missing +path_extra")
1151 " since Explore may be used to initialize netrw's browser, 1157 " since Explore may be used to initialize netrw's browser,
1152 " there's no danger of a late FocusGained event on initialization. 1158 " there's no danger of a late FocusGained event on initialization.
1153 " Consequently, set s:netrw_events to 2. 1159 " Consequently, set s:netrw_events to 2.
1154 let s:netrw_events= 2 1160 let s:netrw_events= 2
1155 if has("clipboard") 1161 if has("clipboard")
1162 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
1156 sil! let @* = keepregstar 1163 sil! let @* = keepregstar
1157 sil! let @+ = keepregplus 1164 sil! let @+ = keepregplus
1158 endif 1165 endif
1159 sil! let @/ = keepregslash 1166 sil! let @/ = keepregslash
1160 " call Dret("netrw#Explore : @/<".@/.">") 1167 " call Dret("netrw#Explore : @/<".@/.">")
1640 let {a:vt}netrw_cinokeep = &l:cino 1647 let {a:vt}netrw_cinokeep = &l:cino
1641 let {a:vt}netrw_comkeep = &l:com 1648 let {a:vt}netrw_comkeep = &l:com
1642 let {a:vt}netrw_cpokeep = &l:cpo 1649 let {a:vt}netrw_cpokeep = &l:cpo
1643 let {a:vt}netrw_diffkeep = &l:diff 1650 let {a:vt}netrw_diffkeep = &l:diff
1644 let {a:vt}netrw_fenkeep = &l:fen 1651 let {a:vt}netrw_fenkeep = &l:fen
1645 " call Decho("saving current settings: got here#1",'~'.expand("<slnum>"))
1646 if !exists("g:netrw_ffkeep") || g:netrw_ffkeep 1652 if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
1647 let {a:vt}netrw_ffkeep = &l:ff 1653 let {a:vt}netrw_ffkeep = &l:ff
1648 endif 1654 endif
1649 let {a:vt}netrw_fokeep = &l:fo " formatoptions 1655 let {a:vt}netrw_fokeep = &l:fo " formatoptions
1650 let {a:vt}netrw_gdkeep = &l:gd " gdefault 1656 let {a:vt}netrw_gdkeep = &l:gd " gdefault
1659 let {a:vt}netrw_rnukeep = &l:rnu 1665 let {a:vt}netrw_rnukeep = &l:rnu
1660 let {a:vt}netrw_repkeep = &l:report 1666 let {a:vt}netrw_repkeep = &l:report
1661 let {a:vt}netrw_rokeep = &l:ro 1667 let {a:vt}netrw_rokeep = &l:ro
1662 let {a:vt}netrw_selkeep = &l:sel 1668 let {a:vt}netrw_selkeep = &l:sel
1663 let {a:vt}netrw_spellkeep = &l:spell 1669 let {a:vt}netrw_spellkeep = &l:spell
1664 " call Decho("saving current settings: got here#2",'~'.expand("<slnum>"))
1665 if !g:netrw_use_noswf 1670 if !g:netrw_use_noswf
1666 let {a:vt}netrw_swfkeep = &l:swf 1671 let {a:vt}netrw_swfkeep = &l:swf
1667 endif 1672 endif
1668 let {a:vt}netrw_tskeep = &l:ts 1673 let {a:vt}netrw_tskeep = &l:ts
1669 let {a:vt}netrw_twkeep = &l:tw " textwidth 1674 let {a:vt}netrw_twkeep = &l:tw " textwidth
1673 1678
1674 " save a few selected netrw-related variables 1679 " save a few selected netrw-related variables
1675 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) 1680 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>"))
1676 if g:netrw_keepdir 1681 if g:netrw_keepdir
1677 let {a:vt}netrw_dirkeep = getcwd() 1682 let {a:vt}netrw_dirkeep = getcwd()
1683 " call Decho("saving to ".a:vt."netrw_dirkeep<".{a:vt}netrw_dirkeep.">",'~'.expand("<slnum>"))
1678 endif 1684 endif
1679 if has("clipboard") 1685 if has("clipboard")
1680 sil! let {a:vt}netrw_starkeep = @* 1686 sil! let {a:vt}netrw_starkeep = @*
1681 sil! let {a:vt}netrw_pluskeep = @+ 1687 sil! let {a:vt}netrw_pluskeep = @+
1682 endif 1688 endif
1743 " s:NetrwOptionsRestore: restore options (based on prior s:NetrwOptionsSave) {{{2 1749 " s:NetrwOptionsRestore: restore options (based on prior s:NetrwOptionsSave) {{{2
1744 fun! s:NetrwOptionsRestore(vt) 1750 fun! s:NetrwOptionsRestore(vt)
1745 " call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) 1751 " call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
1746 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) 1752 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
1747 if !exists("{a:vt}netrw_optionsave") 1753 if !exists("{a:vt}netrw_optionsave")
1754 " call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
1748 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) 1755 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
1749 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) 1756 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
1750 " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist") 1757 " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
1751 return 1758 return
1752 endif 1759 endif
1827 call s:NetrwLcd(dirkeep) 1834 call s:NetrwLcd(dirkeep)
1828 unlet {a:vt}netrw_dirkeep 1835 unlet {a:vt}netrw_dirkeep
1829 endif 1836 endif
1830 endif 1837 endif
1831 if has("clipboard") 1838 if has("clipboard")
1839 " call Decho("has clipboard",'~'.expand("<slnum>"))
1832 call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*") 1840 call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*")
1833 call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+") 1841 call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+")
1834 endif 1842 endif
1835 call s:NetrwRestoreSetting(a:vt."netrw_slashkeep","@/") 1843 call s:NetrwRestoreSetting(a:vt."netrw_slashkeep","@/")
1836 1844
1888 " setting last when it really didn't actually change it. 1896 " setting last when it really didn't actually change it.
1889 " 1897 "
1890 " Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting 1898 " Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
1891 " keepvars are set up by s:NetrwOptionsSave 1899 " keepvars are set up by s:NetrwOptionsSave
1892 fun! s:NetrwRestoreSetting(keepvar,setting) 1900 fun! s:NetrwRestoreSetting(keepvar,setting)
1893 "" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)") 1901 """ call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
1894 1902
1895 " typically called from s:NetrwOptionsRestore 1903 " typically called from s:NetrwOptionsRestore
1896 " call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option') 1904 " call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option')
1897 " ex. call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel") 1905 " ex. call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel")
1898 " Restores option (if different) from a keepvar 1906 " Restores option (if different) from a keepvar
1903 "" call Decho("fyi: a:keepvar<".a:keepvar."> exists") 1911 "" call Decho("fyi: a:keepvar<".a:keepvar."> exists")
1904 "" call Decho("fyi: keepvarval=".keepvarval) 1912 "" call Decho("fyi: keepvarval=".keepvarval)
1905 "" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">") 1913 "" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">")
1906 1914
1907 if setting != keepvarval 1915 if setting != keepvarval
1908 "" call Decho("restore setting<".a:setting."=".setting."> to keepvarval<".keepvarval.">") 1916 "" call Decho("restore setting<".a:setting."> (currently=".setting.") to keepvarval<".keepvarval.">")
1909 if type(a:setting) == 0 1917 if type(a:setting) == 0
1910 exe "let ".a:setting."= ".keepvarval 1918 exe "let ".a:setting."= ".keepvarval
1911 elseif type(a:setting) == 1 1919 elseif type(a:setting) == 1
1912 exe "let ".a:setting."= '".keepvarval."'" 1920 exe "let ".a:setting."= '".keepvarval."'"
1913 else 1921 else
2861 " call Dfunc("NetrwGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)") 2869 " call Dfunc("NetrwGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
2862 2870
2863 " readcmd=='t': simply do nothing 2871 " readcmd=='t': simply do nothing
2864 if a:readcmd == 't' 2872 if a:readcmd == 't'
2865 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) 2873 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
2866 " call Dret("NetrwGetFile : skip read of <".a:tfile.">") 2874 " call Dret("NetrwGetFile : skip read of tfile<".a:tfile.">")
2867 return 2875 return
2868 endif 2876 endif
2869 2877
2870 " get name of remote filename (ie. url and all) 2878 " get name of remote filename (ie. url and all)
2871 let rfile= bufname("%") 2879 let rfile= bufname("%")
5192 endif 5200 endif
5193 " call Dret("s:NetrwBrowseUpDir") 5201 " call Dret("s:NetrwBrowseUpDir")
5194 endfun 5202 endfun
5195 5203
5196 " --------------------------------------------------------------------- 5204 " ---------------------------------------------------------------------
5197 " netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2 5205 " netrw#BrowseX: (implements "x" and "gx") executes a special "viewer" script or program for the {{{2
5198 " given filename; typically this means given their extension. 5206 " given filename; typically this means given their extension.
5199 " 0=local, 1=remote 5207 " 0=local, 1=remote
5200 fun! netrw#BrowseX(fname,remote) 5208 fun! netrw#BrowseX(fname,remote)
5209 let use_ctrlo= 1
5201 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") 5210 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")")
5202 5211
5203 " if its really just a local directory, then do a "gf" instead 5212 " if its really just a local directory, then do a "gf" instead
5204 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:') 5213 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:')
5205 norm! gf 5214 norm! gf
5300 let redir= &srr . "/dev/null" 5309 let redir= &srr . "/dev/null"
5301 endif 5310 endif
5302 endif 5311 endif
5303 " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) 5312 " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))
5304 5313
5305 " extract any viewing options. Assumes that they're set apart by quotes. 5314 " extract any viewing options. Assumes that they're set apart by spaces.
5306 " call Decho("extract any viewing options",'~'.expand("<slnum>"))
5307 if exists("g:netrw_browsex_viewer") 5315 if exists("g:netrw_browsex_viewer")
5308 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) 5316 " call Decho("extract any viewing options from g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
5309 if g:netrw_browsex_viewer =~ '\s' 5317 if g:netrw_browsex_viewer =~ '\s'
5310 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') 5318 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','')
5311 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " 5319 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
5312 let oviewer = '' 5320 let oviewer = ''
5313 let cnt = 1 5321 let cnt = 1
5326 endif 5334 endif
5327 5335
5328 " execute the file handler 5336 " execute the file handler
5329 " call Decho("execute the file handler (if any)",'~'.expand("<slnum>")) 5337 " call Decho("execute the file handler (if any)",'~'.expand("<slnum>"))
5330 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' 5338 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-'
5331 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) 5339 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
5332 let ret= netrwFileHandlers#Invoke(exten,fname) 5340 let ret= netrwFileHandlers#Invoke(exten,fname)
5333 5341
5334 elseif exists("g:netrw_browsex_viewer") && executable(viewer) 5342 elseif exists("g:netrw_browsex_viewer") && executable(viewer)
5335 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) 5343 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
5336 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) 5344 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
5337 let ret= v:shell_error 5345 let ret= v:shell_error
5338 5346
5339 elseif has("win32") || has("win64") 5347 elseif has("win32") || has("win64")
5340 " call Decho("win".(has("win32")? "32" : "64")",'~'.expand("<slnum>")) 5348 " call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>"))
5341 if executable("start") 5349 if executable("start")
5342 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) 5350 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
5343 elseif executable("rundll32") 5351 elseif executable("rundll32")
5344 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) 5352 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
5345 else 5353 else
5346 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) 5354 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
5347 endif 5355 endif
5348 " call inputsave()|call input("Press <cr> to continue")|call inputrestore()
5349 let ret= v:shell_error 5356 let ret= v:shell_error
5350 5357
5351 elseif has("win32unix") 5358 elseif has("win32unix")
5352 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') 5359 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g')
5353 " call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) 5360 " call Decho("(netrw#BrowseX) cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>"))
5354 if executable("start") 5361 if executable("start")
5362 " call Decho("(netrw#BrowseX) win32unix+start",'~'.expand("<slnum>"))
5355 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) 5363 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
5356 elseif executable("rundll32") 5364 elseif executable("rundll32")
5365 " call Decho("(netrw#BrowseX) win32unix+rundll32",'~'.expand("<slnum>"))
5357 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) 5366 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
5358 elseif executable("cygstart") 5367 elseif executable("cygstart")
5368 " call Decho("(netrw#BrowseX) win32unix+cygstart",'~'.expand("<slnum>"))
5359 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) 5369 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1))
5360 else 5370 else
5361 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) 5371 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
5362 endif 5372 endif
5363 " call inputsave()|call input("Press <cr> to continue")|call inputrestore()
5364 let ret= v:shell_error 5373 let ret= v:shell_error
5365 5374
5366 elseif has("unix") && executable("kfmclient") && s:CheckIfKde() 5375 elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
5367 " call Decho("unix and kfmclient",'~'.expand("<slnum>")) 5376 " call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>"))
5368 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) 5377 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
5369 let ret= v:shell_error 5378 let ret= v:shell_error
5370 5379
5371 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") 5380 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
5372 " call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>")) 5381 " call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>"))
5373 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) 5382 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
5374 let ret= v:shell_error 5383 let ret= v:shell_error
5375 5384
5376 elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril") 5385 elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril")
5377 " call Decho("unix and atril",'~'.expand("<slnum>")) 5386 " call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>"))
5378 call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir) 5387 if a:fname =~ '^https\=://'
5388 " atril does not appear to understand how to handle html -- so use gvim to edit the document
5389 let use_ctrlo= 0
5390 " call Decho("(COMBAK) fname<".fname.">")
5391 " call Decho("(COMBAK) a:fname<".a:fname.">")
5392 call s:NetrwExe("sil! !gvim ".fname.' -c "keepj keepalt file '.fnameescape(a:fname).'"')
5393
5394 else
5395 call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir)
5396 endif
5379 let ret= v:shell_error 5397 let ret= v:shell_error
5380 5398
5381 elseif has("unix") && executable("xdg-open") 5399 elseif has("unix") && executable("xdg-open")
5382 " call Decho("unix and xdg-open",'~'.expand("<slnum>")) 5400 " call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>"))
5383 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) 5401 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
5384 let ret= v:shell_error 5402 let ret= v:shell_error
5385 5403
5386 elseif has("macunix") && executable("open") 5404 elseif has("macunix") && executable("open")
5387 " call Decho("macunix and open",'~'.expand("<slnum>")) 5405 " call Decho("(netrw#BrowseX) macunix and open",'~'.expand("<slnum>"))
5388 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) 5406 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir)
5389 let ret= v:shell_error 5407 let ret= v:shell_error
5390 5408
5391 else 5409 else
5392 " netrwFileHandlers#Invoke() always returns 0 5410 " netrwFileHandlers#Invoke() always returns 0
5411 " call Decho("(netrw#BrowseX) use netrwFileHandlers",'~'.expand("<slnum>"))
5393 let ret= netrwFileHandlers#Invoke(exten,fname) 5412 let ret= netrwFileHandlers#Invoke(exten,fname)
5394 endif 5413 endif
5395 5414
5396 " if unsuccessful, attempt netrwFileHandlers#Invoke() 5415 " if unsuccessful, attempt netrwFileHandlers#Invoke()
5397 if ret 5416 if ret
5417 " call Decho("(netrw#BrowseX) ret=".ret," indicates unsuccessful thus far",'~'.expand("<slnum>"))
5398 let ret= netrwFileHandlers#Invoke(exten,fname) 5418 let ret= netrwFileHandlers#Invoke(exten,fname)
5399 endif 5419 endif
5400 5420
5401 " restoring redraw! after external file handlers 5421 " restoring redraw! after external file handlers
5402 redraw! 5422 redraw!
5414 if a:remote == 1 5434 if a:remote == 1
5415 setl bh=delete bt=nofile 5435 setl bh=delete bt=nofile
5416 if g:netrw_use_noswf 5436 if g:netrw_use_noswf
5417 setl noswf 5437 setl noswf
5418 endif 5438 endif
5419 exe "sil! NetrwKeepj norm! \<c-o>" 5439 if use_ctrlo
5420 " redraw! 5440 exe "sil! NetrwKeepj norm! \<c-o>"
5441 endif
5421 endif 5442 endif
5422 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) 5443 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
5423 call winrestview(screenposn) 5444 call winrestview(screenposn)
5424 let @@ = ykeep 5445 let @@ = ykeep
5425 let &aw= awkeep 5446 let &aw= awkeep
6074 " separated patterns given in g:netrw_list_hide 6095 " separated patterns given in g:netrw_list_hide
6075 fun! s:NetrwListHide() 6096 fun! s:NetrwListHide()
6076 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") 6097 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
6077 " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$'))) 6098 " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$')))
6078 let ykeep= @@ 6099 let ykeep= @@
6079 " call DechoBuf(bufnr("%"),"COMBAK#3")
6080 6100
6081 " find a character not in the "hide" string to use as a separator for :g and :v commands 6101 " find a character not in the "hide" string to use as a separator for :g and :v commands
6082 " How-it-works: take the hiding command, convert it into a range. 6102 " How-it-works: take the hiding command, convert it into a range.
6083 " Duplicate characters don't matter. 6103 " Duplicate characters don't matter.
6084 " Remove all such characters from the '/~@#...890' string. 6104 " Remove all such characters from the '/~@#...890' string.
6118 endif 6138 endif
6119 6139
6120 " remove any blank lines that have somehow remained. 6140 " remove any blank lines that have somehow remained.
6121 " This seems to happen under Windows. 6141 " This seems to happen under Windows.
6122 exe 'sil! NetrwKeepj 1,$g@^\s*$@d' 6142 exe 'sil! NetrwKeepj 1,$g@^\s*$@d'
6123 " call DechoBuf(bufnr("%"),"COMBAK#4")
6124 6143
6125 let @@= ykeep 6144 let @@= ykeep
6126 " call Dret("s:NetrwListHide") 6145 " call Dret("s:NetrwListHide")
6127 endfun 6146 endfun
6128 6147
6326 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>")) 6345 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>"))
6327 endif 6346 endif
6328 6347
6329 " generate default <Plug> maps {{{3 6348 " generate default <Plug> maps {{{3
6330 if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif 6349 if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif
6331 if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir |endif 6350 if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir|endif
6332 if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif 6351 if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif
6333 if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif 6352 if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif
6334 if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif 6353 if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif
6335 if !hasmapto('<Plug>NetrwLcd') |nmap <buffer> <silent> <nowait> cd <Plug>NetrwLcd|endif 6354 if !hasmapto('<Plug>NetrwLcd') |nmap <buffer> <silent> <nowait> cd <Plug>NetrwLcd|endif
6336 if !hasmapto('<Plug>NetrwSetChgwin') |nmap <buffer> <silent> <nowait> C <Plug>NetrwSetChgwin|endif 6355 if !hasmapto('<Plug>NetrwSetChgwin') |nmap <buffer> <silent> <nowait> C <Plug>NetrwSetChgwin|endif
6786 if exists("s:netrwmarkfilelist") 6805 if exists("s:netrwmarkfilelist")
6787 let dname= s:ComposePath(b:netrw_curdir,a:fname) 6806 let dname= s:ComposePath(b:netrw_curdir,a:fname)
6788 if index(s:netrwmarkfilelist,dname) == -1 6807 if index(s:netrwmarkfilelist,dname) == -1
6789 " append new filename to global markfilelist 6808 " append new filename to global markfilelist
6790 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) 6809 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
6791 " call Decho("append filename<".a:fname."> to global markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) 6810 " call Decho("append filename<".a:fname."> to global s:markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
6792 else 6811 else
6793 " remove new filename from global markfilelist 6812 " remove new filename from global markfilelist
6794 " call Decho("filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>")) 6813 " call Decho("remove new filename from global s:markfilelist",'~'.expand("<slnum>"))
6814 " call Decho("..filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>"))
6795 call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"') 6815 call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"')
6796 " call Decho("ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) 6816 " call Decho("..ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
6797 if s:netrwmarkfilelist == [] 6817 if s:netrwmarkfilelist == []
6818 " call Decho("s:netrwmarkfilelist is empty; unlet it",'~'.expand("<slnum>"))
6798 unlet s:netrwmarkfilelist 6819 unlet s:netrwmarkfilelist
6799 endif 6820 endif
6800 endif 6821 endif
6801 else 6822 else
6802 " initialize new global-directory markfilelist 6823 " initialize new global-directory markfilelist
6816 " " call Decho("2match none",'~'.expand("<slnum>")) 6837 " " call Decho("2match none",'~'.expand("<slnum>"))
6817 2match none 6838 2match none
6818 endif 6839 endif
6819 endif 6840 endif
6820 let @@= ykeep 6841 let @@= ykeep
6821 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">") 6842 " call Decho("s:netrwmarkfilelist[".(exists("s:netrwmarkfilelist")? string(s:netrwmarkfilelist) : "")."] (avail in all buffers)",'~'.expand("<slnum>"))
6843 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist")."> (buf#".curbufnr."list)")
6822 endfun 6844 endfun
6823 6845
6824 " --------------------------------------------------------------------- 6846 " ---------------------------------------------------------------------
6825 " s:NetrwMarkFileArgList: ma: move the marked file list to the argument list (tomflist=0) {{{2 6847 " s:NetrwMarkFileArgList: ma: move the marked file list to the argument list (tomflist=0) {{{2
6826 " mA: move the argument list to marked file list (tomflist=1) 6848 " mA: move the argument list to marked file list (tomflist=1)
7571 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) 7593 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
7572 let curbufnr = bufnr("%") 7594 let curbufnr = bufnr("%")
7573 let curdir = s:NetrwGetCurdir(a:islocal) 7595 let curdir = s:NetrwGetCurdir(a:islocal)
7574 7596
7575 if exists("s:netrwmarkfilelist") 7597 if exists("s:netrwmarkfilelist")
7576 " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) 7598 " call Decho("using s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
7577 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) 7599 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
7600 " call Decho("keeping copy of s:netrwmarkfilelist in function-local variable,'~'.expand("<slnum>"))"
7578 call s:NetrwUnmarkAll() 7601 call s:NetrwUnmarkAll()
7579 else 7602 else
7580 " call Decho('no marked files, using "*"','~'.expand("<slnum>")) 7603 " call Decho('no marked files, using "*"','~'.expand("<slnum>"))
7581 let netrwmarkfilelist= "*" 7604 let netrwmarkfilelist= "*"
7582 endif 7605 endif
7583 7606
7584 " ask user for pattern 7607 " ask user for pattern
7608 " call Decho("ask user for search pattern",'~'.expand("<slnum>"))
7585 call inputsave() 7609 call inputsave()
7586 let pat= input("Enter pattern: ","") 7610 let pat= input("Enter pattern: ","")
7587 call inputrestore() 7611 call inputrestore()
7588 let patbang = "" 7612 let patbang = ""
7589 if pat =~ '^!' 7613 if pat =~ '^!'
9558 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl 9582 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
9559 let newcolstart = w:netrw_bannercnt + fpc 9583 let newcolstart = w:netrw_bannercnt + fpc
9560 let newcolend = newcolstart + fpc - 1 9584 let newcolend = newcolstart + fpc - 1
9561 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>")) 9585 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
9562 if has("clipboard") 9586 if has("clipboard")
9587 " call Decho("(s:NetrwWideListing) save @* and @+",'~'.expand("<slnum>"))
9563 sil! let keepregstar = @* 9588 sil! let keepregstar = @*
9564 sil! let keepregplus = @+ 9589 sil! let keepregplus = @+
9565 endif 9590 endif
9566 while line("$") >= newcolstart 9591 while line("$") >= newcolstart
9567 if newcolend > line("$") | let newcolend= line("$") | endif 9592 if newcolend > line("$") | let newcolend= line("$") | endif
9574 endif 9599 endif
9575 exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _' 9600 exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
9576 exe 'sil! NetrwKeepj '.w:netrw_bannercnt 9601 exe 'sil! NetrwKeepj '.w:netrw_bannercnt
9577 endwhile 9602 endwhile
9578 if has("clipboard") 9603 if has("clipboard")
9604 " call Decho("(s:NetrwWideListing) restore @* and @+",'~'.expand("<slnum>"))
9579 sil! let @*= keepregstar 9605 sil! let @*= keepregstar
9580 sil! let @+= keepregplus 9606 sil! let @+= keepregplus
9581 endif 9607 endif
9582 exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e' 9608 exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
9583 NetrwKeepj call histdel("/",-1) 9609 NetrwKeepj call histdel("/",-1)
10847 " 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>")) 10873 " 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>"))
10848 10874
10849 for filename in filelist 10875 for filename in filelist
10850 " call Decho(" ",'~'.expand("<slnum>")) 10876 " call Decho(" ",'~'.expand("<slnum>"))
10851 " call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>")) 10877 " call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>"))
10852 " call DechoBuf(bufnr("%"),"COMBAK#1")
10853 10878
10854 if getftype(filename) == "link" 10879 if getftype(filename) == "link"
10855 " indicate a symbolic link 10880 " indicate a symbolic link
10856 " call Decho("indicate <".filename."> is a symbolic link with trailing @",'~'.expand("<slnum>")) 10881 " call Decho("indicate <".filename."> is a symbolic link with trailing @",'~'.expand("<slnum>"))
10857 let pfile= filename."@" 10882 let pfile= filename."@"
10905 " call Decho("filename<".filename.">",'~'.expand("<slnum>")) 10930 " call Decho("filename<".filename.">",'~'.expand("<slnum>"))
10906 " call Decho("pfile <".pfile.">",'~'.expand("<slnum>")) 10931 " call Decho("pfile <".pfile.">",'~'.expand("<slnum>"))
10907 10932
10908 if w:netrw_liststyle == s:LONGLIST 10933 if w:netrw_liststyle == s:LONGLIST
10909 let sz = getfsize(filename) 10934 let sz = getfsize(filename)
10935 let fsz = strpart(" ",1,15-strlen(sz)).sz
10910 if g:netrw_sizestyle =~# "[hH]" 10936 if g:netrw_sizestyle =~# "[hH]"
10911 let sz= s:NetrwHumanReadable(sz) 10937 let sz= s:NetrwHumanReadable(sz)
10912 endif 10938 endif
10913 let fsz = strpart(" ",1,15-strlen(sz)).sz
10914 let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile) 10939 let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
10915 let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename)) 10940 let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename))
10916 " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>")) 10941 " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
10917 endif 10942 endif
10918 10943
10940 else 10965 else
10941 " sort by name 10966 " sort by name
10942 " call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>")) 10967 " call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
10943 sil! NetrwKeepj put=pfile 10968 sil! NetrwKeepj put=pfile
10944 endif 10969 endif
10945 " call DechoBuf(bufnr("%"),"COMBAK#2") 10970 " call DechoBuf(bufnr("%"),"bufnr(%)")
10946 endfor 10971 endfor
10947 10972
10948 " cleanup any windows mess at end-of-line 10973 " cleanup any windows mess at end-of-line
10949 sil! NetrwKeepj g/^$/d 10974 sil! NetrwKeepj g/^$/d
10950 sil! NetrwKeepj %s/\r$//e 10975 sil! NetrwKeepj %s/\r$//e
11257 " for example. 11282 " for example.
11258 fun! netrw#Expose(varname) 11283 fun! netrw#Expose(varname)
11259 " call Dfunc("netrw#Expose(varname<".a:varname.">)") 11284 " call Dfunc("netrw#Expose(varname<".a:varname.">)")
11260 if exists("s:".a:varname) 11285 if exists("s:".a:varname)
11261 exe "let retval= s:".a:varname 11286 exe "let retval= s:".a:varname
11287 " call Decho("retval=".retval,'~'.expand("<slnum>"))
11262 if exists("g:netrw_pchk") 11288 if exists("g:netrw_pchk")
11289 " call Decho("type(g:netrw_pchk=".g:netrw_pchk.")=".type(retval),'~'.expand("<slnum>"))
11263 if type(retval) == 3 11290 if type(retval) == 3
11264 let retval = copy(retval) 11291 let retval = copy(retval)
11265 let i = 0 11292 let i = 0
11266 while i < len(retval) 11293 while i < len(retval)
11267 let retval[i]= substitute(retval[i],expand("$HOME"),'~','') 11294 let retval[i]= substitute(retval[i],expand("$HOME"),'~','')
11268 let i = i + 1 11295 let i = i + 1
11269 endwhile 11296 endwhile
11270 endif 11297 endif
11271 " call Dret("netrw#Expose ".string(retval)) 11298 " call Dret("netrw#Expose ".string(retval)),'~'.expand("<slnum>"))
11272 return string(retval) 11299 return string(retval)
11273 endif 11300 else
11274 else 11301 " call Decho("g:netrw_pchk doesn't exist",'~'.expand("<slnum>"))
11302 endif
11303 else
11304 " call Decho("s:".a:varname." doesn't exist",'~'.expand("<slnum>"))
11275 let retval= "n/a" 11305 let retval= "n/a"
11276 endif 11306 endif
11277 11307
11278 " call Dret("netrw#Expose ".string(retval)) 11308 " call Dret("netrw#Expose ".string(retval))
11279 return retval 11309 return retval