bin/177047: [patch] Adding date to wall(1) output message can be useful

Ivan Ivanyuk ivan.ivanyuk at
Sun Mar 17 09:40:01 UTC 2013

>Number:         177047
>Category:       bin
>Synopsis:       [patch] Adding date to wall(1) output message can be useful
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 17 09:40:00 UTC 2013
>Originator:     Ivan Ivanyuk
>Release:        8.3
FreeBSD planetes 8.3-RELEASE FreeBSD 8.3-RELEASE #1: Fri Aug 17 15:18:30 EEST 2012     root at planetes:/usr/obj/usr/src/sys/GW  amd64

Currently wall output includes date in short format: HH:MM TZ

 It can be useful to have date included. Some utils use wall(1) for reporting events and it would be easier to see date of them at one glance.


Sample patch against 8.3 source attached. Very likely it has to be improved by real developer.

Patch attached with submission follows:

--- /usr/src/usr.bin/wall/wall.c        2012-03-03 08:15:13.000000000 +0200
+++ /home/zxadmin/wall/wall.c   2013-03-17 11:00:40.000000000 +0200
@@ -204,7 +204,7 @@
        time_t now;
        FILE *fp;
        int fd;
-       char *p, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64];
+       char *p, hostname[MAXHOSTNAMELEN], lbuf[256], tmpname[64], datestr[20];
        const char *tty;
        const char *whom;
        gid_t egid;
@@ -224,6 +224,7 @@
                (void)gethostname(hostname, sizeof(hostname));
                lt = localtime(&now);
+               (void)strftime(datestr, sizeof datestr, "%b %d %H:%M %Z", lt);

                 * all this stuff is to blank out a square for the message;
@@ -238,8 +239,7 @@
                    whom, hostname);
                (void)fprintf(fp, "%-79.79s\007\007\r\n", lbuf);
                (void)snprintf(lbuf, sizeof(lbuf),
-                   "        (%s) at %d:%02d %s...", tty,
-                   lt->tm_hour, lt->tm_min, lt->tm_zone);
+                   "        (%s) at %s...", tty, datestr);
                (void)fprintf(fp, "%-79.79s\r\n", lbuf);
        (void)fprintf(fp, "%79s\r\n", " ");


More information about the freebsd-bugs mailing list