aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/tlib_vim/autoload/tlib/sys.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/tlib_vim/autoload/tlib/sys.vim')
m---------vim/bundle/tlib_vim0
-rw-r--r--vim/bundle/tlib_vim/autoload/tlib/sys.vim212
2 files changed, 0 insertions, 212 deletions
diff --git a/vim/bundle/tlib_vim b/vim/bundle/tlib_vim
new file mode 160000
+Subproject 5636472e5dba1a4104376ce6bd93cc2546e0248
diff --git a/vim/bundle/tlib_vim/autoload/tlib/sys.vim b/vim/bundle/tlib_vim/autoload/tlib/sys.vim
deleted file mode 100644
index 0ed24f0..0000000
--- a/vim/bundle/tlib_vim/autoload/tlib/sys.vim
+++ /dev/null
@@ -1,212 +0,0 @@
-" @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim])
-" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
-" @Last Change: 2015-12-12.
-" @Revision: 59
-
-
-if !exists('g:tlib#sys#special_protocols')
- " A list of |regexp|s matching protocol names that should be handled
- " by |g:tlib#sys#system_browser|.
- " CAVEAT: Must be a |\V| |regexp|.
- let g:tlib#sys#special_protocols = ['https\?', 'nntp', 'mailto'] "{{{2
-endif
-
-
-if !exists('g:tlib#sys#special_suffixes')
- " A list of |regexp|s matching suffixes that should be handled by
- " |g:tlib#sys#system_browser|.
- " CAVEAT: Must be a |\V| |regexp|.
- let g:tlib#sys#special_suffixes = ['xlsx\?', 'docx\?', 'pptx\?', 'accdb', 'mdb', 'sqlite', 'pdf', 'jpg', 'png', 'gif', 'od\[tspg]'] "{{{2
-endif
-
-
-if !exists('g:tlib#sys#system_rx')
- " Open links matching this |regexp| with |g:tlib#sys#system_browser|.
- " CAVEAT: Must be a |\V| |regexp|.
- let g:tlib#sys#system_rx = printf('\V\%(\^\%(%s\):\|.\%(%s\)\$\)', join(g:tlib#sys#special_protocols, '\|'), join(g:tlib#sys#special_suffixes, '\|')) "{{{2
-endif
-
-
-if !exists("g:tlib#sys#system_browser")
- if exists('g:netrw_browsex_viewer')
- " Open files in the system browser.
- " :read: let g:tlib#sys#system_browser = ... "{{{2
- let g:tlib#sys#system_browser = "exec 'silent !'. g:netrw_browsex_viewer shellescape('%s')"
- elseif has("win32") || has("win16") || has("win64")
- " let g:tlib#sys#system_browser = "exec 'silent ! start \"\"' shellescape('%s')"
- let g:tlib#sys#system_browser = "exec 'silent ! RunDll32.EXE URL.DLL,FileProtocolHandler' shellescape('%s')"
- elseif has("mac")
- let g:tlib#sys#system_browser = "exec 'silent !open' shellescape('%s')"
- elseif exists('$XDG_CURRENT_DESKTOP') && !empty($XDG_CURRENT_DESKTOP)
- let g:tlib#sys#system_browser = "exec 'silent !xdg-open' shellescape('%s') '&'"
- elseif $GNOME_DESKTOP_SESSION_ID != "" || $DESKTOP_SESSION == 'gnome'
- let g:tlib#sys#system_browser = "exec 'silent !gnome-open' shellescape('%s')"
- elseif exists("$KDEDIR") && !empty($KDEDIR)
- let g:tlib#sys#system_browser = "exec 'silent !kfmclient exec' shellescape('%s')"
- else
- let g:tlib#sys#system_browser = ''
- endif
-endif
-
-
-if !exists('g:tlib#sys#windows')
- let g:tlib#sys#windows = &shell !~ 'sh' && (has('win16') || has('win32') || has('win64')) "{{{2
-endif
-
-
-if !exists('g:tlib#sys#null')
- let g:tlib#sys#null = g:tlib#sys#windows ? 'NUL' : (filereadable('/dev/null') ? '/dev/null' : '') "{{{2
-endif
-
-
-let s:cygwin = {}
-
-function! tlib#sys#IsCygwinBin(cmd) "{{{3
- " TLogVAR a:cmd
- if !g:tlib#sys#windows
- return 0
- elseif has_key(s:cygwin, a:cmd)
- let rv = s:cygwin[a:cmd]
- else
- if !tlib#sys#IsExecutable('cygpath', 1) || !tlib#sys#IsExecutable('which', 1)
- let rv = 0
- else
- let which = substitute(system('which '. shellescape(a:cmd)), '\n$', '', '')
- " echom "DBG which:" which
- if which =~ '^/'
- let filename = system('cygpath -ma '. shellescape(which))
- " echom "DBG filename:" filename
- let rv = filename =~ g:tlib#sys#cygwin_path_rx
- else
- let rv = 0
- endif
- endif
- let s:cygwin[a:cmd] = rv
- endif
- " TLogVAR rv
- return rv
-endf
-
-
-let s:executables = {}
-
-function! tlib#sys#IsExecutable(cmd, ...) "{{{3
- " TLogVAR a:cmd
- " echom "DBG has_key(s:executables, a:cmd)" has_key(s:executables, a:cmd)
- if !has_key(s:executables, a:cmd)
- let executable = executable(a:cmd)
- " TLogVAR 1, executable
- let ignore_cyg = a:0 >= 1 ? a:1 : !g:tlib#sys#windows
- if !executable && !ignore_cyg
- let executable = tlib#sys#IsCygwinBin(a:cmd)
- " TLogVAR 2, executable
- endif
- let s:executables[a:cmd] = executable
- endif
- " echom "DBG s:executables[a:cmd]" s:executables[a:cmd]
- return s:executables[a:cmd]
-endf
-
-
-if !exists('g:tlib#sys#check_cygpath')
- " If true, check whether we have to convert a path via cyppath --
- " see |tlib#sys#MaybeUseCygpath|
- let g:tlib#sys#check_cygpath = g:tlib#sys#windows && tlib#sys#IsExecutable('cygpath', 1) "{{{2
-endif
-
-
-if !exists('g:tlib#sys#cygwin_path_rx')
- " If a full windows filename (with slashes instead of backslashes)
- " matches this |regexp|, it is assumed to be a cygwin executable.
- let g:tlib#sys#cygwin_path_rx = '/cygwin/' "{{{2
-endif
-
-
-if !exists('g:tlib#sys#cygwin_expr')
- " For cygwin binaries, convert command calls using this vim
- " expression.
- let g:tlib#sys#cygwin_expr = '"bash -c ''". escape(%s, "''\\") ."''"' "{{{2
-endif
-
-
-function! tlib#sys#GetCmd(cmd) "{{{3
- if !empty(g:tlib#sys#cygwin_expr) && tlib#sys#IsCygwinBin(matchstr(a:cmd, '^\S\+'))
- let cmd = eval(printf(g:tlib#sys#cygwin_expr, string(a:cmd)))
- " TLogVAR cmd
- return cmd
- else
- return a:cmd
- endif
-endf
-
-
-" If cmd seems to be a cygwin executable, use cygpath to convert
-" filenames. This assumes that cygwin's which command returns full
-" filenames for non-cygwin executables.
-function! tlib#sys#MaybeUseCygpath(cmd) "{{{3
- " echom "DBG" a:cmd
- if g:tlib#sys#check_cygpath && tlib#sys#IsCygwinBin(a:cmd)
- return 'cygpath -u "%s"'
- endif
- return ''
-endf
-
-
-function! tlib#sys#ConvertPath(converter, filename) "{{{3
- return tlib#string#Chomp(system(printf(a:converter, shellescape(a:filename))))
-endf
-
-
-let s:native_filenames = {}
-
-function! tlib#sys#FileArgs(cmd, files) "{{{3
- let cygpath = tlib#sys#MaybeUseCygpath(a:cmd)
- " TLogVAR cygpath
- if empty(cygpath)
- return a:files
- else
- let files = map(copy(a:files), 'has_key(s:native_filenames, v:val) ? s:native_filenames[v:val] : tlib#sys#CygPath(v:val)')
- return files
- endif
-endf
-
-
-" Check whether filename matches |g:tlib#sys#system_rx|, i.e. whether it
-" is a special file that should not be opened in vim.
-function! tlib#sys#IsSpecial(filename) abort "{{{3
- return a:filename =~ g:tlib#sys#system_rx
-endf
-
-
-" Open filename with the default OS application (see
-" |g:tlib#sys#system_browser|), if |tlib#sys#IsSpecial()| return 1.
-" Returns 1 if successful or 0 otherwise.
-function! tlib#sys#Open(filename) abort "{{{3
- Tlibtrace 'tlib', a:filename
- if !empty(g:tlib#sys#system_browser) && tlib#sys#IsSpecial(a:filename)
- try
- let cmd = printf(g:tlib#sys#system_browser, a:filename)
- " let cmd = printf(g:tlib#sys#system_browser, escape(a:filename, ' %#!'))
- Tlibtrace 'tlib', cmd
- exec cmd
- return 1
- catch
- echohl ErrorMsg
- echom v:exception
- echohl NONE
- endtry
- endif
- return 0
-endf
-
-
-" :def: function! tlib#sys#SystemInDir(dir, expr, ?input='')
-function! tlib#sys#SystemInDir(dir, ...) abort "{{{3
- call tlib#dir#CD(a:dir)
- try
- return call(function('system'), a:000)
- finally
- silent cd! -
- endtry
-endf
-