mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
clipboard: close stdout when copying via xclip #11617
test_registers.vim can fail even if a clipboard manager is running. If a clipboard manager is not running, this test always fails with xclip. Use xsel as a workaround. https://github.com/astrand/xclip/issues/20 suggests closing stdout when sending input via stdin. Environment - Ubuntu Xenial - Vim 7.4 (any app with broken clipboard code will do) - Neovim nightly Steps to reproduce: 0. Start the clipboard manager. 1. Open a file in Vim on Linux. Vim should have +clipboard enabled. 'set clipboard=' 2. Yank some text to the clipboard register. 3. Quit Vim. 4. Run 'cd /path/to/neovim/repo/' 5. Run 'make oldtest'. Do not run any individual tests. They likely pass with or without this fix. Before fix: test_registers.vim can fail. After fix: test_registers.vim always passes. Close https://github.com/neovim/neovim/issues/7958 https://wiki.ubuntu.com/ClipboardPersistence#The_state_of_things
This commit is contained in:
committed by
Justin M. Keyes
parent
3917064504
commit
67d7906652
@@ -172,6 +172,11 @@ function! s:clipboard.set(lines, regtype, reg) abort
|
||||
if jobid > 0
|
||||
call jobsend(jobid, a:lines)
|
||||
call jobclose(jobid, 'stdin')
|
||||
" xclip does not close stdout,stderr when receiving input via stdin
|
||||
if argv[0] ==# 'xclip'
|
||||
call jobclose(jobid, 'stdout')
|
||||
call jobclose(jobid, 'stderr')
|
||||
endif
|
||||
let selection.owner = jobid
|
||||
let ret = 1
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user