Re: [PATCH v3 1/5] completion: simplify __gitcomp_1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 15, 2012 at 1:54 AM, Felipe Contreras
<felipe.contreras@xxxxxxxxx> wrote:
> On Sun, Apr 15, 2012 at 1:36 AM, Thomas Rast <trast@xxxxxxxxxxx> wrote:
>> Felipe Contreras <felipe.contreras@xxxxxxxxx> writes:
>>
>>>  # __gitcomp_1 requires 2 arguments
>>>  __gitcomp_1 ()
>>>  {
>>> -     local c IFS=' '$'\t'$'\n'
>>> +     local c s IFS=' '$'\t'$'\n'
>>>       for c in $1; do
>>>               case "$c$2" in
>>> -             --*=*) printf %s$'\n' "$c$2" ;;
>>> -             *.)    printf %s$'\n' "$c$2" ;;
>>> -             *)     printf %s$'\n' "$c$2 " ;;
>>> +             --*=* | *.) s="" ;;
>>> +             *)          s=" " ;;
>>>               esac
>>> +             echo "$c$2$s"
>>>       done
>>>  }
>>
>> Sorry for not noticing earlier, but...
>>
>> I did a double take at the change to 'echo'.  I'm guessing from the
>> patch that $c$2$s is never just '-e' or some other option taken by the
>> bash version[1] of echo.  But can you be sure?  Do you know off hand
>> whether '-nbogus' complains, treats the -n as usual and prints 'bogus',
>> or echoes '-nbogus'[2]?  Are you sure future bash versions won't break
>> this?
>
> That doesn't make any sense to me. If you want that, you should do
> 'eval "echo $foo"', and even if you do 'eval "echo \"$foo\""', that
> would be avoided.

Actually, after a private discussion with Thomas, I realized that's on
zsh, on bash it doesn't work as I expected, plus, in both 'echo "-n"'
does the unexpected thing (to me).

So, it should be, maybe 'print "%s\n" "$c$2$s"', or 'print "%s$s\n" "$c$2"'.

However, I would like to simplify it even more:

__gitcomp_1 ()
{
	local c w s IFS=' '$'\t'$'\n'
	for c in $1; do
		w="$c$2"
		case "$w" in
		--*=*|*.) s="" ;;
		*)        s=" " ;;
		esac
		printf "%s$s\n" "$w"
	done
}

-- 
Felipe Contreras
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]