From: Karel Zak Date: Wed, 12 Dec 2012 09:36:32 +0000 (+0100) Subject: chfn: clean up exit status X-Git-Tag: v2.23-rc1~442 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97da60c64e231bdfba163e23cbbe9e52c1550d06;p=thirdparty%2Futil-linux.git chfn: clean up exit status The old version in some cases (but not always) returns -1 (255) on error. It seems better to cleanup the code and don't return internal return codes by exit(). Signed-off-by: Karel Zak --- diff --git a/login-utils/chfn.1 b/login-utils/chfn.1 index 5329408885..5f87ad713d 100644 --- a/login-utils/chfn.1 +++ b/login-utils/chfn.1 @@ -72,6 +72,8 @@ Print a usage message and exit. .TP .B "-v, \-\-version" Print version information and exit. +.SH "EXIT STATUS" +Returns 0 if operation was successful, 1 if operation failed or command syntax was not valid. .SH "SEE ALSO" .BR finger (1), .BR passwd (5) diff --git a/login-utils/chfn.c b/login-utils/chfn.c index 02014c7cee..a86f380c0b 100644 --- a/login-utils/chfn.c +++ b/login-utils/chfn.c @@ -91,7 +91,6 @@ int main(int argc, char **argv) uid_t uid; struct finfo oldf, newf; int interactive; - int status; sanitize_env(); setlocale(LC_ALL, ""); /* both for messages and for iscntrl() below */ @@ -196,8 +195,8 @@ int main(int argc, char **argv) printf(_("Finger information not changed.\n")); return EXIT_SUCCESS; } - status = save_new_data(&oldf); - return status; + + return save_new_data(&oldf) == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } /* @@ -262,8 +261,8 @@ static int parse_argv(int argc, char *argv[], struct finfo *pinfo) default: usage(stderr); } - if (status < 0) - exit(status); + if (status != 0) + exit(EXIT_FAILURE); } /* done parsing arguments. check for a username. */ if (optind < argc) { @@ -271,7 +270,7 @@ static int parse_argv(int argc, char *argv[], struct finfo *pinfo) usage(stderr); pinfo->username = argv[optind]; } - return (!info_given); + return !info_given; } /*