Git fork

parse-options: introduce die_for_incompatible_opt2()

The functions die_for_incompatible_opt3() and
die_for_incompatible_opt4() already exist to die whenever a user
specifies three or four options respectively that are not compatible.

Introduce die_for_incompatible_opt2() which dies when two options that
are incompatible are set.

Signed-off-by: Toon Claes <toon@iotcl.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Toon Claes and committed by
Junio C Hamano
9144b936 7a52a8c7

+13 -3
+4 -3
builtin/replay.c
··· 163 163 get_ref_information(cmd_info, &rinfo); 164 164 if (!rinfo.positive_refexprs) 165 165 die(_("need some commits to replay")); 166 - if (onto_name && *advance_name) 167 - die(_("--onto and --advance are incompatible")); 168 - else if (onto_name) { 166 + 167 + die_for_incompatible_opt2(!!onto_name, "--onto", 168 + !!*advance_name, "--advance"); 169 + if (onto_name) { 169 170 *onto = peel_committish(onto_name); 170 171 if (rinfo.positive_refexprs < 171 172 strset_get_size(&rinfo.positive_refs))
+9
parse-options.h
··· 436 436 0, ""); 437 437 } 438 438 439 + static inline void die_for_incompatible_opt2(int opt1, const char *opt1_name, 440 + int opt2, const char *opt2_name) 441 + { 442 + die_for_incompatible_opt4(opt1, opt1_name, 443 + opt2, opt2_name, 444 + 0, "", 445 + 0, ""); 446 + } 447 + 439 448 /* 440 449 * Use these assertions for callbacks that expect to be called with NONEG and 441 450 * NOARG respectively, and do not otherwise handle the "unset" and "arg"