Jacob Keller <jacob.keller@xxxxxxxxx> 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 <what operation uses this string constant?, the string constant>, 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).