Make diff work with filenames with spaces

This commit is contained in:
Arun Prakash Jana 2019-06-03 18:40:29 +05:30
parent edf587a48f
commit aa6013378f
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -5,10 +5,22 @@
# Shell: Bash # Shell: Bash
# Author: Arun Prakash Jana # Author: Arun Prakash Jana
arr=($(cat ~/.config/nnn/.selection | tr '\0' '\n')) selection=~/.config/nnn/.selection
if [ -d "${arr[0]}" ] && [ -d "${arr[1]}" ]; then if [ -s $selection ]; then
vimdiff <(cd ${arr[0]} && find | sort) <(cd ${arr[1]} && find | sort) arr=$(cat $selection | tr '\0' '\n')
else { read -r f1; read -r f2; } <<< "$arr"
vimdiff "${arr[@]}"
if [ -z "$f2" ]; then
exit
fi
if [ -d "$f1" ] && [ -d "$f2" ]; then
vimdiff <(cd "$f1" && find | sort) <(cd "$f2" && find | sort)
else
cat $selection | xargs -0 -o vimdiff
# For GNU xargs (note: ignoreme takes up $0)
# cat $selection | xargs -0 bash -c '</dev/tty vimdiff "$@"' ignoreme
fi
fi fi