mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-13 09:07:33 -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:
4
psftp.c
4
psftp.c
@ -2565,7 +2565,6 @@ static void usage(void)
|
||||
printf(" -logoverwrite\n");
|
||||
printf(" -logappend\n");
|
||||
printf(" control what happens when a log file already exists\n");
|
||||
cleanup_exit(1);
|
||||
}
|
||||
|
||||
static void version(void)
|
||||
@ -2819,7 +2818,7 @@ int psftp_main(CmdlineArgList *arglist)
|
||||
|
||||
if (argstr[0] != '-') {
|
||||
if (userhost)
|
||||
usage();
|
||||
cmdline_error("unexpected extra argument \"%s\"", argstr);
|
||||
else
|
||||
userhost = dupstr(argstr);
|
||||
continue;
|
||||
@ -2837,6 +2836,7 @@ int psftp_main(CmdlineArgList *arglist)
|
||||
strcmp(argstr, "-?") == 0 ||
|
||||
strcmp(argstr, "--help") == 0) {
|
||||
usage();
|
||||
cleanup_exit(0);
|
||||
} else if (strcmp(argstr, "-pgpfp") == 0) {
|
||||
pgp_fingerprints();
|
||||
return 1;
|
||||
|
Reference in New Issue
Block a user