From: Sami Kerola Date: Sun, 27 Jul 2014 18:52:25 +0000 (+0100) Subject: wall: wrap message header when it exceeds 79 characters X-Git-Tag: v2.26-rc1~576^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93d7baf250495b2385c369afd48137a7363ae4c2;p=thirdparty%2Futil-linux.git wall: wrap message header when it exceeds 79 characters Header truncation started to happen more often after commit d81c30553f4fb49173d38f69edff4b0b67a18b65 that made the header to be longer. Signed-off-by: Sami Kerola --- diff --git a/term-utils/wall.c b/term-utils/wall.c index 598e9f28c5..acada294a3 100644 --- a/term-utils/wall.c +++ b/term-utils/wall.c @@ -202,6 +202,8 @@ static char *makemsg(char *fname, char **mvec, int mvecsz, char *whom, *where, *date; struct passwd *pw; time_t now; + ssize_t len; + int i; if (!(whom = getlogin()) || !*whom) whom = (pw = getpwuid(getuid())) ? pw->pw_name : "???"; @@ -232,7 +234,10 @@ static char *makemsg(char *fname, char **mvec, int mvecsz, fprintf(fp, "\r%*s\r\n", TERM_WIDTH, " "); sprintf(lbuf, _("Broadcast message from %s@%s (%s) (%s):"), whom, hostname, where, date); - fprintf(fp, "%-*.*s\007\007\r\n", TERM_WIDTH, TERM_WIDTH, lbuf); + len = strlen(lbuf); + for (i = 0; 0 < len; i++) + len -= fprintf(fp, "%-*.*s\007\007\r\n", TERM_WIDTH, TERM_WIDTH, + lbuf + (i * TERM_WIDTH)) + 4; free(hostname); free(date); }