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 }