Re: [PATCH 4/8] bash: Add space after unique command name is completed.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Feb 4, 2007, 08:08 UTC
- Message-ID
- <7vr6t6xs3d.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20070204073827.GD17603@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 14 quoted lines
> +__gitcomp ()
> +{
> + local all c s=$'\n' IFS=' '$'\t'$'\n'
> + for c in $1; do
> + case "$c" in
> + --*=*) all="$all$c$s" ;;
> + *) all="$all$c $s" ;;
> + esac
> + done
> + IFS=$s
> + COMPREPLY=($(compgen -W "$all" -- "${COMP_WORDS[COMP_CWORD]}"))
> + return
> +}
> +I do not understand what is going on here. Care to explain?
(1) "for c in $1": because $1 is not dquoted, it is split into
word with IFS -- which IFS applies to this splitting? The
local one you hand-define to the typical " \t\n" value? (2) when this function returns, what IFS value does the caller
would have? Is the "local" used to avoid screwing up the
caller?