Needs a little more thought, or some method which would allow for an upstream push without affecting the non-Gentoo users. Index: surfraw-2.1.5/surfraw-bash-completion.IN =================================================================== --- surfraw-2.1.5/surfraw-bash-completion.IN {cset 8f95d483-869f-47ba-aba2-f0a12bb9dd07} +++ surfraw-2.1.5/surfraw-bash-completion.IN {local clone} @@ -1,4 +1,25 @@ # -*- sh -*- bash programmable completion for Surfraw, v2.2 + +# This is for people who wish to use surfraw completion, without +# installing the bash-completion package. +shopt -s extglob + +_srpkgname() +{ + local pd + local dir=$(sed -n -e '/^PORTDIR=/ { s/^[^=]\+="\?\([^"]\+\|\S\+\).*/\1/p ; q }' \ + /etc/make.{conf,globals})/* + local cur="$1" + + COMPREPLY=($(compgen -W "$( + for pd in $dir + do + [ ! -d ${pd} ] && continue + builtin cd ${pd} + echo * + done)" -- ${cur}) + ) +} _surfraw() { COMPREPLY=() local cur=${COMP_WORDS[COMP_CWORD]} @@ -14,7 +35,7 @@ _surfraw() then COMPREPLY=( $( compgen -W "$elvi" -- $cur ) ) # "sr go" for google elif [[ $prev == @(alioth|deb@(bugs|contents|packages|pts|sec)|freshmeat|fsfdir|sourceforge) ]] - then COMPREPLY=( $(apt-cache --generate pkgnames $cur) ) + then _srpkgname ${cur} # "sr debbugs 4" to check 44bsd-rdist bugs... elif [[ -x /usr/bin/look ]] # in bsdmainutils, "important" then COMPREPLY=( $(/usr/bin/look ${cur:-''}) )