[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash 2.05 programmable completion question
From: |
Aaron Crane |
Subject: |
Re: bash 2.05 programmable completion question |
Date: |
13 Apr 2001 23:48:53 +0100 |
User-agent: |
Gnus/5.0803 (Gnus v5.8.3) XEmacs/21.1 (Capitol Reef) |
In article <9av9ef$s6h$1@scotsman.ed.ac.uk>,
mfg@ee.ed.ac.uk (Michael F Gordon) writes:
> function ps_complete {
> COMPREPLY=(`compgen -G "${COMP_WORDS[$COMP_CWORD]}*.@(ps|PS|eps|EPS)"`);
> }
> complete -o filenames -A directory -F ps_complete gs
>
> This works, but I need a separate function for each suffix I want to
> complete on - img_complete for *.@(gif|jpeg|tiff), fig_complete for *.fig
> etc. Is there a way of doing this that doesn't require large numbers
> of functions?
There's a trick I like that does still require large numbers of functions,
but you don't have to write them all. Using the same "complete" command as
you have:
function pattern_completion {
[ $# -ge 2 ] || {
echo "Usage: pattern_completion PATTERN PROGRAM..."
return 1
}
local pat="$1" firstprog="$2"
shift
eval function "${firstprog}_complete" "{" \
"COMPREPLY=(\$(compgen -G \"\${COMP_WORDS[\$COMP_CWORD]}$pat\"))" ";" \
"}"
complete -o filenames -A directory -F "${firstprog}_complete" "$@"
}
pattern_completion "*.@(ps|PS|eps|EPS)" gs gv ghostview
--
Aaron Crane
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: bash 2.05 programmable completion question,
Aaron Crane <=