From 93e0a6a9deaf76f59b74f0f60d6a628dd21ced3d Mon Sep 17 00:00:00 2001 From: Niraj Thapaliya Date: Wed, 12 Oct 2016 11:18:03 -0600 Subject: [PATCH 1/2] 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 --- shell/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/completion.zsh b/shell/completion.zsh index cef8afa..cc2ac9c 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -44,7 +44,7 @@ __fzf_generic_path_completion() { setopt localoptions nonomatch dir="$base" while [ 1 ]; do - if [ -z "$dir" -o -d ${~dir} ]; then + if [[ -z "$dir" || -d ${~dir} ]]; then leftover=${base/#"$dir"} leftover=${leftover/#\/} [ -z "$dir" ] && dir='.' From d3da310b926f1aa4c297d34d4157d064e4a7e379 Mon Sep 17 00:00:00 2001 From: Niraj Thapaliya Date: Thu, 13 Oct 2016 09:48:05 -0600 Subject: [PATCH 2/2] Use `command` to ignore shell function --- shell/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/completion.zsh b/shell/completion.zsh index cc2ac9c..0be5ad1 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -111,7 +111,7 @@ _fzf_complete_telnet() { _fzf_complete_ssh() { _fzf_complete '+m' "$@" < <( - cat <(cat ~/.ssh/config /etc/ssh/ssh_config 2> /dev/null | command grep -i '^host' | command grep -v '*') \ + command cat <(cat ~/.ssh/config /etc/ssh/ssh_config 2> /dev/null | command grep -i '^host' | command grep -v '*') \ <(command grep -oE '^[^ ]+' ~/.ssh/known_hosts | tr ',' '\n' | awk '{ print $1 " " $1 }') \ <(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') | awk '{if (length($2) > 0) {print $2}}' | sort -u