summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMaverick Woo <maverick.woo@gmail.com>2016-09-24 15:39:13 -0400
committerMaverick Woo <maverick.woo@gmail.com>2016-09-24 15:39:13 -0400
commit2c8479a7c57e0e2662fc8b3f1e0a21d5da6b95b1 (patch)
tree8f8c8a3f0930cd4d95bbe6720b7597a19d919bb1 /shell
parent8c8b5b313e85cc3c13a1ebe33a6d718577d15a2f (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')
-rw-r--r--shell/completion.bash8
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"