diff options
author | Maverick Woo <maverick.woo@gmail.com> | 2016-09-24 15:39:13 -0400 |
---|---|---|
committer | Maverick Woo <maverick.woo@gmail.com> | 2016-09-24 15:39:13 -0400 |
commit | 2c8479a7c57e0e2662fc8b3f1e0a21d5da6b95b1 (patch) | |
tree | 8f8c8a3f0930cd4d95bbe6720b7597a19d919bb1 /shell/completion.bash | |
parent | 8c8b5b313e85cc3c13a1ebe33a6d718577d15a2f (diff) |
Fix #668
Handle uppercase letters in program names. This also deals with `-` and
`.`, both of which are quite common in program names, e.g., `xdg-open`
and `foo.sh`.
Diffstat (limited to 'shell/completion.bash')
-rw-r--r-- | shell/completion.bash | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/shell/completion.bash b/shell/completion.bash index 9436e271..31ebc60b 100644 --- a/shell/completion.bash +++ b/shell/completion.bash @@ -32,7 +32,7 @@ fi _fzf_orig_completion_filter() { sed 's/^\(.*-F\) *\([^ ]*\).* \([^ ]*\)$/export _fzf_orig_completion_\3="\1 %s \3 #\2";/' | - awk -F= '{gsub(/[^a-z0-9_= ;]/, "_", $1); print $1"="$2}' + awk -F= '{gsub(/[^A-Za-z0-9_= ;]/, "_", $1); print $1"="$2}' } _fzf_opts_completion() { @@ -117,7 +117,7 @@ _fzf_handle_dynamic_completion() { __fzf_generic_path_completion() { local cur base dir leftover matches trigger cmd fzf [ "${FZF_TMUX:-1}" != 0 ] && fzf="fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%}" || fzf="fzf" - cmd=$(echo "${COMP_WORDS[0]}" | sed 's/[^a-z0-9_=]/_/g') + cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}" COMPREPLY=() trigger=${FZF_COMPLETION_TRIGGER-'**'} cur="${COMP_WORDS[COMP_CWORD]}" @@ -162,7 +162,7 @@ _fzf_complete() { type -t "$post" > /dev/null 2>&1 || post=cat [ "${FZF_TMUX:-1}" != 0 ] && fzf="fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%}" || fzf="fzf" - cmd=$(echo "${COMP_WORDS[0]}" | sed 's/[^a-z0-9_=]/_/g') + cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}" trigger=${FZF_COMPLETION_TRIGGER-'**'} cur="${COMP_WORDS[COMP_CWORD]}" if [[ "$cur" == *"$trigger" ]]; then @@ -277,7 +277,7 @@ _fzf_defc() { cmd="$1" func="$2" opts="$3" - orig_var="_fzf_orig_completion_$cmd" + orig_var="_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}" orig="${!orig_var}" if [ -n "$orig" ]; then printf -v def "$orig" "$func" |