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()
*/