From: Junio C Hamano Date: Thu, 10 Nov 2016 23:26:22 GMT Subject: Re: [PATCH v7 03/17] ref-filter: implement %(if:equals=) and %(if:notequals=) Message-ID: In-Reply-To: Jacob Keller writes: >> @@ -49,6 +51,10 @@ static struct used_atom { >> enum { C_BARE, C_BODY, C_BODY_DEP, C_LINES, C_SIG, C_SUB } option; >> unsigned int nlines; >> } contents; >> + struct { >> + const char *if_equals, >> + *not_equals; > > > Same here, why do we need both strings here stored separately? Could > we instead store which state to check and store the string once? I'm > not sure that really buys us any storage. I am not sure if storage is an issue, but I tend to agree that it would be semantically cleaner if this was done as a pair of , and the former would be enum { COMPARE_EQUAL, COMPARE_UNEQUAL}. You could later enhance the comparison operator more easily with such an arrangement (e.g. if-equals-case-insensitively).