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 <szeder@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html