summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Olexa <darkside@gentoo.org>2010-05-04 16:11:48 +0000
committerJeremy Olexa <darkside@gentoo.org>2010-05-04 16:11:48 +0000
commit88ffc0adfad33d89fb2756dc59cd7ffbf11fa1a2 (patch)
tree9c753d85fad9063566d9210ea741ba66a45e82eb
parentFix filtering of categories and packages. Bug 301582, patches by Jacek Sowiński (diff)
downloadgentoo-bashcomp-88ffc0adfad33d89fb2756dc59cd7ffbf11fa1a2.tar.gz
gentoo-bashcomp-88ffc0adfad33d89fb2756dc59cd7ffbf11fa1a2.tar.bz2
gentoo-bashcomp-88ffc0adfad33d89fb2756dc59cd7ffbf11fa1a2.zip
Fix for new-style virtuals, bug 269498 patch by Jacek Sowiński
svn path=/trunk/; revision=99
-rw-r--r--gentoo15
1 files changed, 3 insertions, 12 deletions
diff --git a/gentoo b/gentoo
index 3c78ee6..2952c79 100644
--- a/gentoo
+++ b/gentoo
@@ -621,26 +621,17 @@ _emerge()
fi
if [[ -n "${cur}" ]] ; then
- if [[ ${cur} == virtual/* ]] ; then
+ if [[ ${cur} == */* ]] ; then
words=$(\
for pd in ${portdir} ; do \
- if [[ -d ${pd}/profiles ]] ; then
- find ${pd}/profiles -name virtuals -exec \
- sed -n -e 's|^\(virtual/[[:alnum:]]\+\).*$|\1|p' {} \; | \
- sort -u
- fi ; \
- done)
- elif [[ ${cur} == */* ]] ; then
- words=$(\
- for pd in ${portdir} ; do \
builtin cd ${pd}; \
compgen -X "*metadata.xml" -G "${cur}*" ; \
done)"${sysactions}"
- else
+ else
local ww=$(\
for pd in ${portdir} ; do \
builtin cd ${pd} ; \
- compgen -S '/' -G "${cur}*"; \
+ compgen -X "!@(*-*|virtual)" -S '/' -G "${cur}*"; \
done)"${sysactions}"
# complete on virtuals
ww="${ww} $(\