commit:     5df2ce07583dc623dd6b6caec17d9e73bfb47e1d
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  5 11:21:31 2014 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Jun  5 11:21:31 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/eselect.git;a=commit;h=5df2ce07

eselect.bashcomp: Improve handling of options followed by an equals sign.

* misc/eselect.bashcomp (_eselect): Improve handling of options
that are followed by an equals sign.

---
 ChangeLog             | 3 +++
 misc/eselect.bashcomp | 7 +++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c3f0061..1f01c16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2014-06-05  Ulrich Müller  <u...@gentoo.org>
 
+       * misc/eselect.bashcomp (_eselect): Improve handling of options
+       that are followed by an equals sign.
+
        * bin/eselect.in: Parse global options even if we are invoked
        as something-config or similar. Respect "--" to indicate end
        of options.

diff --git a/misc/eselect.bashcomp b/misc/eselect.bashcomp
index da3e55b..bd5afe3 100644
--- a/misc/eselect.bashcomp
+++ b/misc/eselect.bashcomp
@@ -8,7 +8,7 @@
 
 _eselect() {
     local cur sedcmd2 sedcmd3 possibles
-    local options="--brief --color --colour"
+    local options="--brief --color= --colour="
     COMPREPLY=()
     cur="${COMP_WORDS[COMP_CWORD]}"
     sedcmd2='s/^  \([[:alnum:]-][[:alnum:]_-]*\)[[:space:],].*$/\1/p'
@@ -17,6 +17,7 @@ _eselect() {
     set -- "${COMP_WORDS[@]:1}"
     # skip global options
     while [[ $# -gt 1 && $1 == -* ]]; do
+        [[ $2 == "=" ]] && shift 2
         shift
     done
     # skip any subaction options
@@ -38,8 +39,10 @@ _eselect() {
             ;;
     esac
 
-    [[ -n "${possibles}" ]] && \
+    if [[ -n "${possibles}" ]]; then
         COMPREPLY=( $(compgen -W "${possibles}" -- ${cur}) )
+        [[ ${COMPREPLY[0]} == *= ]] && compopt -o nospace
+    fi
 
     return 0
 }

Reply via email to