On Sat, Nov 17, 2012 at 12:50:39PM +0100, Felipe Contreras wrote:
> On Sat, Nov 17, 2012 at 12:05 PM, SZEDER Gábor <[email protected]> wrote:
>
> > __gitcomp_nl ()
> > {
> > local IFS=$'\n'
> > - COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}"))
> > + COMPREPLY=($(awk -v pfx="${2-}" -v sfx="${4- }" -v cur="${3-$cur}" '
> > + BEGIN {
> > + FS="\n";
> > + len=length(cur);
> > + }
> > + {
> > + if (cur == substr($1, 1, len))
> > + print pfx$1sfx;
> > + }' <<< "$1" ))
> > }
>
> Does this really perform better than my alternative?
>
> + for x in $1; do
> + if [[ "$x" = "$3"* ]]; then
> + COMPREPLY+=("$2$x$4")
> + fi
> + done
It does:
My version:
$ refs="$(for i in {0..9999} ; do echo branch$i ; done)"
$ time __gitcomp_nl "$refs"
real 0m0.109s
user 0m0.096s
sys 0m0.012s
Yours:
$ time __gitcomp_nl "$refs"
real 0m0.321s
user 0m0.312s
sys 0m0.008s
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html