Re: [PATCH v4 6/6] for-each-ref: avoid color leakage
- From
Ramkumar Ramachandra <artagnon@gmail.com>
- Date
- Nov 19, 2013, 04:37 UTC
- Message-ID
- <CALkWK0mnYXBVW-agV_v6=mPxA=MoJAfHQaPKarwKU=x2SE+tnQ@mail.gmail.com>
- In-Reply-To
- <xmqqwqk59xyz.fsf@gitster.dls.corp.google.com>
Junio C Hamano wrote:
Show 12 quoted lines
>> diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
>> index 2ff4e54..04e35ba 100644
>> --- a/builtin/for-each-ref.c
>> +++ b/builtin/for-each-ref.c
>> @@ -23,6 +23,7 @@ typedef enum { FIELD_STR, FIELD_ULONG, FIELD_TIME } cmp_type;
>> struct atom_value {
>> const char *s;
>> unsigned long ul; /* used for sorting when not FIELD_STR */
>> + int color : 2; /* 1 indicates color, 2 indicates color-reset */
>> };
>
> Hmph. It looks wasteful to have this information in atom_value.I wanted to avoid an ugly global. On the other end of the spectrum, modifying the various functions to take an extra reset_color_leakage parameter seems much too intrusive. Do you have any suggestions?
> Isn't a new single bit in "struct refinfo" all you need to keep > track of, to see the last %(color:something) you ever saw is for a > color that is not reset?
No; because I can only look at one atom and set v->color, at a time.