1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-19 03:51:02 -05:00

Don't print long usage messages on a command-line error.

In the course of debugging the command-line argument refactoring in
previous commits, I found I wasn't quite sure whether PSCP thought I'd
given it too many arguments, or too few, because it didn't print an
error message saying which: it just printed its giant usage message.

Over the last few years I've come to the belief that this is Just
Wrong anyway. Printing the whole of a giant help message should only
be done when the user asked for it: otherwise, print a short and
to-the-point error, and maybe _suggest_ how to get help, but scrolling
everything else off the user's screen is not a good response to a
typo. I wrote this thought up more fully last year:

https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/stop-helping/

So, time to practise what I preach! The PuTTY tools now follow the
'Stop helping!' principle. You can get full help by saying --help.

Also, when we do print the help, we now exit(0) rather than exit(1),
because there's no reason to report failure: we successfully did what
the user asked us for.
This commit is contained in:
Simon Tatham
2024-09-25 16:17:07 +01:00
parent 74150633f1
commit ecfa6b2734
6 changed files with 17 additions and 12 deletions

View File

@ -718,10 +718,11 @@ int main(int argc, char **argv)
/*
* If run with at least one argument _but_ not the required
* ones, print the usage message and return failure.
* ones, fail with an error.
*/
if (!infile && keytype == NOKEYGEN) {
usage(true);
fprintf(stderr, "puttygen: expected an input key file name, "
"or -t for a type of key to generate\n");
RETURN(1);
}