about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2019-12-31 16:34:23 +0100
committerAlexander Barton <alex@barton.de>2019-12-31 16:34:23 +0100
commit22cae1b5fc6779a1d74a5ca10ba6c8af45028e98 (patch)
tree3ece631d3c54800806d072fb0b28e101c1d97f9f /src
parentfb5aa8f65213e97816fc16c2b794e030e0bd6da6 (diff)
downloadngircd-22cae1b5fc6779a1d74a5ca10ba6c8af45028e98.tar.gz
ngircd-22cae1b5fc6779a1d74a5ca10ba6c8af45028e98.zip
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 <https://www.gnu.org/prep/standards/html_node/_002d_002dhelp.html>.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/ngircd.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c
index 78477e52..68b34cb6 100644
--- a/src/ngircd/ngircd.c
+++ b/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);
 		}
 	}