Gnu [ evaluates both sides of a -o condition regardless

It doesn't short circuit like we expect, causing trouble when $dir is
empty

Use shell builtin instead
This commit is contained in:
Niraj Thapaliya 2016-10-12 11:18:03 -06:00
parent 053af9a1c8
commit 93e0a6a9de

View File

@ -44,7 +44,7 @@ __fzf_generic_path_completion() {
setopt localoptions nonomatch setopt localoptions nonomatch
dir="$base" dir="$base"
while [ 1 ]; do while [ 1 ]; do
if [ -z "$dir" -o -d ${~dir} ]; then if [[ -z "$dir" || -d ${~dir} ]]; then
leftover=${base/#"$dir"} leftover=${base/#"$dir"}
leftover=${leftover/#\/} leftover=${leftover/#\/}
[ -z "$dir" ] && dir='.' [ -z "$dir" ] && dir='.'