From e521cec24eb88b70cb15b5244e86a5d76032de99 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 1 Dec 2018 02:13:23 +1300 Subject: Use simpler method of no case completion check --- bash/bash_completion.d/sd.bash | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'bash/bash_completion.d/sd.bash') diff --git a/bash/bash_completion.d/sd.bash b/bash/bash_completion.d/sd.bash index 578a69fd..9694de1f 100644 --- a/bash/bash_completion.d/sd.bash +++ b/bash/bash_completion.d/sd.bash @@ -17,17 +17,12 @@ _sd() { # Set options to glob correctly shopt -s dotglob nullglob - # Make globbing case-insensitive if appropriate; is there a cleaner way - # to find this value? - while read -r _ option value ; do - case $option in - (completion-ignore-case) - case $value in - (on) - shopt -s nocaseglob - break - ;; - esac + # Make globbing case-insensitive if appropriate + while read -r _ setting ; do + case $setting in + ('completion-ignore-case on') + shopt -s nocaseglob + break ;; esac done < <(bind -v) -- cgit v1.2.3 From 626593c3712531c251c69be2e561a34da98cdcdf Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 1 Dec 2018 02:19:46 +1300 Subject: Remove null-result guard from completion gens I don't believe these are needed anymore, or possibly ever were. --- bash/bash_completion.d/sd.bash | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'bash/bash_completion.d/sd.bash') diff --git a/bash/bash_completion.d/sd.bash b/bash/bash_completion.d/sd.bash index 9694de1f..2d2d8f22 100644 --- a/bash/bash_completion.d/sd.bash +++ b/bash/bash_completion.d/sd.bash @@ -41,14 +41,8 @@ _sd() { sibs[${#sibs[@]}]=$dirname done - # Print quoted sibs, null-delimited, if there was at least one; - # otherwise, just print a null character to stop this hanging in Bash - # 4.4 - if ((${#sibs[@]})) ; then - printf '%q\0' "${sibs[@]}" - else - printf '\0' - fi + # Print quoted sibling directories, null-delimited + printf '%q\0' "${sibs[@]}" ) } complete -F _sd sd -- cgit v1.2.3 From 0681de59778f82c9006de70ed9a9ee6644fd4a18 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 1 Dec 2018 02:29:42 +1300 Subject: Adjust loop short circuits and pattern matches --- bash/bash_completion.d/sd.bash | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'bash/bash_completion.d/sd.bash') diff --git a/bash/bash_completion.d/sd.bash b/bash/bash_completion.d/sd.bash index 2d2d8f22..1194b33a 100644 --- a/bash/bash_completion.d/sd.bash +++ b/bash/bash_completion.d/sd.bash @@ -5,7 +5,9 @@ _sd() { ((COMP_CWORD == 1)) || return 1 # Current directory can't be root directory - [[ $PWD != / ]] || return 1 + case $PWD in + /) return 1 ;; + esac # Build list of matching sibling directories local dirname @@ -37,8 +39,10 @@ _sd() { local -a sibs local dirname for dirname in "${dirnames[@]}" ; do - [[ $dirname != "${PWD##*/}" ]] || continue - sibs[${#sibs[@]}]=$dirname + case $dirname in + "${PWD##*/}") ;; + *) sibs[${#sibs[@]}]=$dirname ;; + esac done # Print quoted sibling directories, null-delimited -- cgit v1.2.3 From c3af0c31efbc23472a103536280a4d839555e198 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 1 Dec 2018 02:32:30 +1300 Subject: Remove redundant error code in short circuits --- bash/bash_completion.d/sd.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bash/bash_completion.d/sd.bash') diff --git a/bash/bash_completion.d/sd.bash b/bash/bash_completion.d/sd.bash index 1194b33a..e7e82f80 100644 --- a/bash/bash_completion.d/sd.bash +++ b/bash/bash_completion.d/sd.bash @@ -2,7 +2,7 @@ _sd() { # Only makes sense for the first argument - ((COMP_CWORD == 1)) || return 1 + ((COMP_CWORD == 1)) || return # Current directory can't be root directory case $PWD in -- cgit v1.2.3