diff --git a/src/dowall.c b/src/dowall.c index 85645c0..1bf4cb9 100644 --- a/src/dowall.c +++ b/src/dowall.c @@ -156,7 +156,7 @@ void wall(const char *text, int remote) struct utmp *utmp; time_t t; char term[UT_LINESIZE+ strlen(_PATH_DEV) + 1]; - char line[81]; + char message[401], line[411]; char hostname[HOST_NAME_MAX+1]; char *date, *p; char *user, *tty; @@ -189,15 +189,17 @@ void wall(const char *text, int remote) *p = 0; if (remote) { - snprintf(line, sizeof(line), - "\007\r\nRemote broadcast message (%s):\r\n\r\n", + snprintf(message, sizeof(message), + "Remote broadcast message (%s):", date); } else { - snprintf(line, sizeof(line), - "\007\r\nBroadcast message from %s@%s %s(%s):\r\n\r\n", + snprintf(message, sizeof(message), + "Broadcast message from %s@%s %s(%s):", user, hostname, tty, date); } + snprintf(line, sizeof(line), "\007\r\n%s\r\n\r\n", message); + /* * Fork to avoid us hanging in a write() */