format-patch: refactor output selection
commit4c6f781f9c7ee7029c3f2fd20ddd76ce8b476bca
authorJeff King <peff@peff.net>
Wed, 4 Nov 2020 19:28:31 +0000 (4 14:28 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Nov 2020 22:05:28 +0000 (4 14:05 -0800)
treebb2b99abdf85a596bc7cbc7695e3fbf9e8984f38
parent898f80736c75878acc02dc55672317fcc0e0a5a6
format-patch: refactor output selection

The --stdout and --output-directory options are mutually exclusive, but
it's hard to tell from reading the code. We have three separate
conditionals that check for use_stdout, and it's only after we've set up
the output_directory fully that we check whether the user also specified
--stdout.

Instead, let's check the exclusion explicitly first, then have a single
conditional that handles stdout versus an output directory. This is
slightly easier to follow now, and also will keep things sane when we
add another output mode in a future patch.

We'll add a few tests as well, covering the mutual exclusion and the
fact that we are not confused by a configured output directory.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/log.c
t/t4014-format-patch.sh