From: Samanta Navarro Date: Fri, 28 Apr 2023 11:57:23 +0000 (+0000) Subject: login_prompt: Simplify login_prompt API X-Git-Tag: 4.14.0-rc1~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7109b7c066fc0bf0b5e2dd99729fb95eef47ed58;p=thirdparty%2Fshadow.git login_prompt: Simplify login_prompt API The only user of login_prompt is the login tool. This implies that the first argument is always the same. It is much easier to verify printf's format string and its argument if both are next to each other. Signed-off-by: Samanta Navarro --- diff --git a/lib/prototypes.h b/lib/prototypes.h index 012652a9e..83014202e 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -233,7 +233,7 @@ extern void dolastlog ( extern int login_access (const char *user, const char *from); /* loginprompt.c */ -extern void login_prompt (const char *, char *, int); +extern void login_prompt (char *, int); /* mail.c */ extern void mailcheck (void); diff --git a/libmisc/loginprompt.c b/libmisc/loginprompt.c index 2efafd11e..d1af0e398 100644 --- a/libmisc/loginprompt.c +++ b/libmisc/loginprompt.c @@ -32,7 +32,7 @@ static void login_exit (unused int sig) * is set in login.defs, this file is displayed before the prompt. */ -void login_prompt (const char *prompt, char *name, int namesize) +void login_prompt (char *name, int namesize) { char buf[1024]; @@ -41,6 +41,7 @@ void login_prompt (const char *prompt, char *name, int namesize) char *cp; int i; FILE *fp; + const char *fname = getdef_str ("ISSUE_FILE"); sighandler_t sigquit; sighandler_t sigtstp; @@ -59,22 +60,19 @@ void login_prompt (const char *prompt, char *name, int namesize) * be displayed and display it before the prompt. */ - if (NULL != prompt) { - const char *fname = getdef_str ("ISSUE_FILE"); - if (NULL != fname) { - fp = fopen (fname, "r"); - if (NULL != fp) { - while ((i = getc (fp)) != EOF) { - (void) putc (i, stdout); - } - - (void) fclose (fp); + if (NULL != fname) { + fp = fopen (fname, "r"); + if (NULL != fp) { + while ((i = getc (fp)) != EOF) { + (void) putc (i, stdout); } + + (void) fclose (fp); } - (void) gethostname (buf, sizeof buf); - printf (prompt, buf); - (void) fflush (stdout); } + (void) gethostname (buf, sizeof buf); + printf (_("\n%s login: "), buf); + (void) fflush (stdout); /* * Read the user's response. The trailing newline will be diff --git a/src/login.c b/src/login.c index e5c6beff6..01e4f174b 100644 --- a/src/login.c +++ b/src/login.c @@ -910,7 +910,7 @@ int main (int argc, char **argv) preauth_flag = false; username = XMALLOCARRAY (USER_NAME_MAX_LENGTH + 1, char); username[USER_NAME_MAX_LENGTH] = '\0'; - login_prompt (_("\n%s login: "), username, USER_NAME_MAX_LENGTH); + login_prompt (username, USER_NAME_MAX_LENGTH); if ('\0' == username[0]) { /* Prompt for a new login */