Commit Diff
Diff:
fb5aa8f65213e97816fc16c2b794e030e0bd6da6
22cae1b5fc6779a1d74a5ca10ba6c8af45028e98
Commit:
22cae1b5fc6779a1d74a5ca10ba6c8af45028e98
Tree:
3ece631d3c54800806d072fb0b28e101c1d97f9f
Author:
Alexander Barton <alex@barton.de>
Committer:
Alexander Barton <alex@barton.de>
Date:
Tue Dec 31 15:34:23 2019 UTC
Message:
Enhance handling of command line errors, and "--help" & "--version" Return with exit code 0 ("no error") when "--help" or "--version" was used (this resulted in exit code 1, "error" before). And exit with code 2 ("command line error") for all invalid command line options, and show the error message on stderr (message was printed to stdout before, and exit code was 1, "generic error"). This new behaviour is more in line with the GNU "coding standards", see .
blob - 78477e52017c72aa674f49fcc193982134d708ec
blob + 68b34cb6b5d5e2df3a3501fa13165ca14f198d5b
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
@@ -125,7 +125,7 @@ main(int argc, const char *argv[])
if (strcmp(argv[i], "--help") == 0) {
Show_Version();
puts(""); Show_Help( ); puts( "" );
- exit(1);
+ exit(0);
}
if (strcmp(argv[i], "--nodaemon") == 0) {
NGIRCd_NoDaemon = true;
@@ -143,7 +143,7 @@ main(int argc, const char *argv[])
#endif
if (strcmp(argv[i], "--version") == 0) {
Show_Version();
- exit(1);
+ exit(0);
}
}
else if(argv[i][0] == '-' && argv[i][1] != '-') {
@@ -200,21 +200,23 @@ main(int argc, const char *argv[])
}
if (!ok) {
- printf("%s: invalid option \"-%c\"!\n",
- PACKAGE_NAME, argv[i][n]);
- printf("Try \"%s --help\" for more information.\n",
- PACKAGE_NAME);
- exit(1);
+ fprintf(stderr,
+ "%s: invalid option \"-%c\"!\n",
+ PACKAGE_NAME, argv[i][n]);
+ fprintf(stderr,
+ "Try \"%s --help\" for more information.\n",
+ PACKAGE_NAME);
+ exit(2);
}
}
}
if (!ok) {
- printf("%s: invalid option \"%s\"!\n",
- PACKAGE_NAME, argv[i]);
- printf("Try \"%s --help\" for more information.\n",
- PACKAGE_NAME);
- exit(1);
+ fprintf(stderr, "%s: invalid option \"%s\"!\n",
+ PACKAGE_NAME, argv[i]);
+ fprintf(stderr, "Try \"%s --help\" for more information.\n",
+ PACKAGE_NAME);
+ exit(2);
}
}
IRCNow