Eli Schwartz <eschwartz@xxxxxxxxxxxxx> writes: > + struct { > + char *name; > + enum { OPT_STRING } type; > + } option[] = { > + { "exclude", OPT_STRING }, > + { "match", OPT_STRING }, > + }; I floated OPT_<TYPE> in my earlier illustration as "something like this", not "literally use these tokens". We have CPP macros of the same name in parse-options.h API---we may not see troubles from the name clashes today, but let's not leave it to chances. Perhaps call it like DESCRBE_ARG_STRING or something that ensures uniqueness like that? Thanks.