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@xxxxxxxxx> --- builtin/replay.c | 3 ++- parse-options.h | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/builtin/replay.c b/builtin/replay.c index 1afc6d1ee0cb738fa7fa3f2b5c8ce0dd7802e7da..03d93afd77290ab556565f05bd424956b66ff01c 100644 --- a/builtin/replay.c +++ b/builtin/replay.c @@ -164,7 +164,8 @@ static void determine_replay_mode(struct rev_cmdline_info *cmd_info, if (!rinfo.positive_refexprs) die(_("need some commits to replay")); if (onto_name && *advance_name) - die(_("--onto and --advance are incompatible")); + die_for_incompatible_opt2(!!onto_name, "--onto", + !!*advance_name, "--advance"); else if (onto_name) { *onto = peel_committish(onto_name); if (rinfo.positive_refexprs < diff --git a/parse-options.h b/parse-options.h index 39f088625494f20dea96b9a9cbe986916773bf60..fca944d9a93d643d984c58de2ead9154c8b16c94 100644 --- a/parse-options.h +++ b/parse-options.h @@ -436,6 +436,15 @@ static inline void die_for_incompatible_opt3(int opt1, const char *opt1_name, 0, ""); } +static inline void die_for_incompatible_opt2(int opt1, const char *opt1_name, + int opt2, const char *opt2_name) +{ + die_for_incompatible_opt4(opt1, opt1_name, + opt2, opt2_name, + 0, "", + 0, ""); +} + /* * Use these assertions for callbacks that expect to be called with NONEG and * NOARG respectively, and do not otherwise handle the "unset" and "arg" -- 2.48.1.447.gc0086e9015