aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Russell <arussell123@gmail.com>2017-07-16 14:46:38 -0400
committerJustin M. Keyes <justinkz@gmail.com>2017-07-17 17:20:37 +0200
commit26124b480028354d7d81d93c0e45ca516effdaa6 (patch)
treefcc40d60b8336bed7a9bebafe4ef65f372cef11a
parentd0537961c1a7a207d94befa87f37f03bbd634880 (diff)
downloadrneovim-26124b480028354d7d81d93c0e45ca516effdaa6.tar.gz
rneovim-26124b480028354d7d81d93c0e45ca516effdaa6.tar.bz2
rneovim-26124b480028354d7d81d93c0e45ca516effdaa6.zip
provider/clipboard.vim: fix logic issue #7042
Closes #7039
-rw-r--r--runtime/autoload/provider/clipboard.vim19
1 files changed, 9 insertions, 10 deletions
diff --git a/runtime/autoload/provider/clipboard.vim b/runtime/autoload/provider/clipboard.vim
index 47f4271091..86006497d9 100644
--- a/runtime/autoload/provider/clipboard.vim
+++ b/runtime/autoload/provider/clipboard.vim
@@ -16,6 +16,12 @@ function! s:selection.on_exit(jobid, data, event) abort
endif
endfunction
+function! s:selection.on_stderr(jobid, data, event) abort
+ echohl WarningMsg
+ echomsg 'clipboard: error invoking '.get(self.argv, 0, '?').': '.join(a:data)
+ echohl None
+endfunction
+
let s:selections = { '*': s:selection, '+': copy(s:selection)}
function! s:try_cmd(cmd, ...) abort
@@ -135,24 +141,17 @@ function! s:clipboard.set(lines, regtype, reg) abort
end
let selection.data = [a:lines, a:regtype]
let argv = split(s:copy[a:reg], " ")
+ let selection.argv = argv
let selection.detach = s:cache_enabled
let selection.cwd = "/"
- call extend(selection, {
- \ 'on_stdout': function('s:set_errhandler'),
- \ 'on_stderr': function('s:set_errhandler'),
- \ })
let jobid = jobstart(argv, selection)
if jobid > 0
call jobsend(jobid, a:lines)
call jobclose(jobid, 'stdin')
let selection.owner = jobid
- endif
-endfunction
-
-function! s:set_errhandler(job_id, data, event) abort
- if a:job_id <= 0
+ else
echohl WarningMsg
- echo 'clipboard: error when invoking provider: ' . join(a:data)
+ echomsg 'clipboard: failed to execute: '.(s:copy[a:reg])
echohl None
endif
endfunction