repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 22cae1b5fc6779a1d74a5ca10ba6c8af45028e98:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 22cae1b5fc6779a1d74a5ca10ba6c8af45028e98
Author: Alexander Barton 
Date:   Tue Dec 31 16:34:23 2019 +0100

    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 .

diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c
index 78477e52017c72aa674f49fcc193982134d708ec..
index ..68b34cb6b5d5e2df3a3501fa13165ca14f198d5b 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);
 		}
 	}

-----END OF PAGE-----