]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
write: make timestamp to be obviously just a clock time
authorSami Kerola <kerolasa@iki.fi>
Sat, 7 May 2016 20:07:44 +0000 (21:07 +0100)
committerSami Kerola <kerolasa@iki.fi>
Fri, 1 Jul 2016 21:07:02 +0000 (22:07 +0100)
By looking the code one will had hard time knowing that a slice of ctime()
from characters 11 to 16 is HH:MM time format.  Use of strftime("%H:%M")
makes this a lot less mysterious.

In same go make \007 hex printouts to be \a that is the same thing: alarm.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
term-utils/write.c

index 8288e9d324ce174f74763c174744c8fba1738ee8..696a7a7953daa2a1a8a1b5d9685fba7c168aa008 100644 (file)
@@ -239,9 +239,10 @@ static void write_line(char *s)
  */
 static void do_write(const struct write_control *ctl)
 {
-       char *login, *pwuid, *time_stamp;
+       char *login, *pwuid, timestamp[6];
        struct passwd *pwd;
        time_t now;
+       struct tm *tm;
        char path[PATH_MAX], *host, line[512];
        struct sigaction sigact;
 
@@ -265,21 +266,21 @@ static void do_write(const struct write_control *ctl)
        sigaction(SIGINT, &sigact, NULL);
        sigaction(SIGHUP, &sigact, NULL);
 
-       /* print greeting */
        host = xgethostname();
        if (!host)
                host = xstrdup("???");
 
-       now = time((time_t *) NULL);
-       time_stamp = ctime(&now);
-       time_stamp[16] = '\0';
-       printf("\r\n\007\007\007");
+       now = time((time_t *)NULL);
+       tm = localtime(&now);
+       strftime(timestamp, sizeof(timestamp), "%H:%M", tm);
+       /* print greeting */
+       printf("\r\n\a\a\a");
        if (strcmp(login, pwuid))
                printf(_("Message from %s@%s (as %s) on %s at %s ..."),
-                      login, host, pwuid, ctl->src_tty, time_stamp + 11);
+                      login, host, pwuid, ctl->src_tty, timestamp);
        else
                printf(_("Message from %s@%s on %s at %s ..."),
-                      login, host, ctl->src_tty, time_stamp + 11);
+                      login, host, ctl->src_tty, timestamp);
        free(host);
        printf("\r\n");