clipboard: Reduce unnecessary special-casing on stdin

Ideally the parameter would just be removed-users could always
just do "clipcopy < some-file". but removing the parameter would break
backwards compatibility.

In any case, this simplifies the logic considerably.
This commit is contained in:
Robert Estelle 2019-07-12 17:01:10 -04:00
parent 29fb617e6b
commit d855547661

View file

@ -17,32 +17,17 @@
#
function clipcopy() {
emulate -L zsh
local file=$1
local file="${1:-/dev/stdin}"
if [[ $OSTYPE == darwin* ]]; then
if [[ -z $file ]]; then
pbcopy
else
cat $file | pbcopy
fi
pbcopy < "${file}"
elif [[ $OSTYPE == cygwin* ]]; then
if [[ -z $file ]]; then
cat > /dev/clipboard
else
cat $file > /dev/clipboard
fi
cat "${file}" > /dev/clipboard
else
if (( $+commands[xclip] )); then
if [[ -z $file ]]; then
xclip -in -selection clipboard
else
xclip -in -selection clipboard $file
fi
xclip -in -selection clipboard < "${file}"
elif (( $+commands[xsel] )); then
if [[ -z $file ]]; then
xsel --clipboard --input
else
cat "$file" | xsel --clipboard --input
fi
xsel --clipboard --input < "${file}"
else
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
return 1