On 2021-05-05 13:12:12+0900, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt > > index d343f040f5..c776b27515 100644 > > --- a/Documentation/git-mailinfo.txt > > +++ b/Documentation/git-mailinfo.txt > > @@ -9,7 +9,7 @@ git-mailinfo - Extracts patch and authorship from a single e-mail message > > SYNOPSIS > > -------- > > [verse] > > -'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] <msg> <patch> > > +'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] [--quoted-cr=<action>] <msg> <patch> > > This line is getting really crowded. Perhaps it is time to do > > 'git mailinfo' [<options>] <msg> <patch> > > like other Git subcommands with too many options? Certainly it can > be done after the dust settles from this entire series as a follow up > clean-up patch. Yes, I think it's time to do that clean-up. > > static const char mailinfo_usage[] = > > - "git mailinfo [-k | -b] [-m | --message-id] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] <msg> <patch> < mail >info"; > > + "git mailinfo [-k | -b] [-m | --message-id] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] [--quoted-cr=<action>] <msg> <patch> < mail >info"; > > It is surprising that we haven't switched this to parse_options(). > It of course is outside the scope of this series, but from a cursory > look of its option parsing loop, it looks like a trivial improvement > to make. And given that we also need 1/5 (otherwise, we need a new declaration for "const char *str"), I think it would be better to turn 1/5 to the conversion to parse_option. > > @@ -43,7 +43,11 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix) > > mi.use_scissors = 0; > > else if (!strcmp(argv[1], "--no-inbody-headers")) > > mi.use_inbody_headers = 0; > > - else > > + else if (skip_prefix(argv[1], "--quoted-cr=", &str)) { > > + mi.quoted_cr = mailinfo_parse_quoted_cr_action(str); > > + if (mi.quoted_cr == quoted_cr_invalid_action) > > + usage(mailinfo_usage); > > This is not all that helpful, given that mailinfo_usage[] only says > <action> without saying what the supported values are, and the > message does not make it clear it was issued while looking at the > --quoted-cr option. > > At least, something like > > if (mi.quoted_cr == quoted_cr_invalid_action) > die("--quoted-cr=%s: invalid action", str); > > would be more palatable, but I wonder if mailinfo_parse_quoted_cr_action() > should have an option to die with the list of actions it knows about > in a message. I tempted to remove the _invalid_action with the re-roll and always die when it doesn't understand the actions instead. Let's see how far I can get with that approach. -- Danh