Subject: Re: [RFC/PATCH 7/9] parse-options.h: add macros for '--contains' option

From: Junio C Hamano <[email-masked]>
Date: Mon, 08 Jun 2015 12:32:23 -0700

Karthik Nayak <[email-masked]> writes:

> +#define OPT_CONTAINS(filter, h) \
> +	{ OPTION_CALLBACK, 0, "contains", (filter), N_("commit"), (h), \
> +	  PARSE_OPT_LASTARG_DEFAULT, \
> +	  parse_opt_with_commit, (intptr_t) "HEAD" \
> +	}
> +#define OPT_WITH(filter, h) \
> +	{ OPTION_CALLBACK, 0, "with", (filter), N_("commit"), (h), \
> +	  PARSE_OPT_LASTARG_DEFAULT, \
> +	  parse_opt_with_commit, (intptr_t) "HEAD" \
> +	}

The redundancy bothers me.  Can't we do a bit better than that,
perhaps like this?

#define _OPT_CONTAINS_OR_WITH(name, variable, help) \
	{ OPTION_CALLBACK, 0, name, (variable), N_("commit"), (help), \
	  PARSE_OPT_LASTARG_DEFAULT, \
	  parse_opt_with_commit, (intptr_t) "HEAD" \
	}
#define OPT_CONTAINS(v, h) _OPT_CONTAINS_OR_WITH("contains", v, h)