1 /* vi: set sw=4 ts=4: */
3 * issue.c: issue printing code
5 * Copyright (C) 2003 Bastian Blank <waldi@tuxbox.org>
7 * Optimize and correcting OCRNL by Vladimir Oleynik <dzo@simtreas.ru>
9 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
12 #include <sys/param.h> /* MAXHOSTNAMELEN */
17 #include <sys/utsname.h>
20 #define LOGIN " login: "
22 static const char fmtstr_d[] = "%A, %d %B %Y";
23 static const char fmtstr_t[] = "%H:%M:%S";
25 void print_login_issue(const char *issue_file, const char *tty)
37 puts("\r"); /* start a new line */
39 fd = fopen(issue_file, "r");
42 while ((c = fgetc(fd)) != EOF) {
50 if (c == '\\' || c == '%') {
57 outbuf = uts.nodename;
70 c = getdomainname(buf, sizeof(buf) - 1);
71 buf[c >= 0 ? c : 0] = '\0';
74 strftime(buf, sizeof(buf), fmtstr_d, localtime(&t));
77 strftime(buf, sizeof(buf), fmtstr_t, localtime(&t));
80 gethostname(buf, sizeof(buf) - 1);
81 buf[sizeof(buf) - 1] = '\0';
90 fputs(outbuf, stdout);
96 void print_login_prompt(void)
98 char buf[MAXHOSTNAMELEN+1];
100 if (gethostname(buf, MAXHOSTNAMELEN) == 0)
103 fputs(LOGIN, stdout);