Re: [Annoyance] "git log .." thinks ".." is ambiguous
Joshua Juran venit, vidit, dixit 03.05.2011 03:57:
Show 35 quoted lines
> On May 2, 2011, at 12:15 PM, Junio C Hamano wrote:
>
>> diff --git a/revision.c b/revision.c
>> index f4b8b38..26271d1 100644
>> --- a/revision.c
>> +++ b/revision.c
>> @@ -905,14 +905,26 @@ int handle_revision_arg(const char *arg,
>> struct rev_info *revs,
>> const char *this = arg;
>> int symmetric = *next == '.';
>> unsigned int flags_exclude = flags ^ UNINTERESTING;
>> + static const char head_by_default[] = "HEAD";
>>
>> *dotdot = 0;
>> next += symmetric;
>>
>> if (!*next)
>> - next = "HEAD";
>> + next = head_by_default;
>> if (dotdot == arg)
>> - this = "HEAD";
>> + this = head_by_default;
>> + if (this == head_by_default && next == head_by_default &&
>> + !symmetric) {
>
> Is there a reason not to write
>
> const char *head_by_default = "HEAD";
>
> or even
>
> const char *const head_by_default = "HEAD";
>
> instead? Loading a static array and checking an init flag is a
> pessimization versus just pointing into a read-only segment.Because of the comparisons later on: this == "HEAD" is not the same.
Michael