git: 7b45ad3f89cc - main - script -T skip timstamps for same second
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Mar 2022 06:20:00 UTC
The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=7b45ad3f89cc4d65a23f7d034329dd3f8dd3105f commit 7b45ad3f89cc4d65a23f7d034329dd3f8dd3105f Author: Simon J. Gerraty <sjg@FreeBSD.org> AuthorDate: 2022-03-10 06:19:53 +0000 Commit: Simon J. Gerraty <sjg@FreeBSD.org> CommitDate: 2022-03-10 06:19:53 +0000 script -T skip timstamps for same second The result is much more readable if we only output the time-stamp when it is at least 1s since last one. --- usr.bin/script/script.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/usr.bin/script/script.c b/usr.bin/script/script.c index 2e540a935ecd..e469b13fc65b 100644 --- a/usr.bin/script/script.c +++ b/usr.bin/script/script.c @@ -523,12 +523,14 @@ playback(FILE *fp) off_t nread, save_len; size_t l; time_t tclock; + time_t lclock; int reg; if (fstat(fileno(fp), &pst) == -1) err(1, "fstat failed"); reg = S_ISREG(pst.st_mode); + lclock = 0; for (nread = 0; !reg || nread < pst.st_size; nread += save_len) { if (fread(&stamp, sizeof(stamp), 1, fp) != 1) { @@ -574,9 +576,12 @@ playback(FILE *fp) if (tflg) { if (stamp.scr_len == 0) continue; - l = strftime(buf, sizeof buf, tstamp_fmt, - localtime(&tclock)); - (void)write(STDOUT_FILENO, buf, l); + if (tclock - lclock > 0) { + l = strftime(buf, sizeof buf, tstamp_fmt, + localtime(&tclock)); + (void)write(STDOUT_FILENO, buf, l); + } + lclock = tclock; } else { tsi.tv_sec = tso.tv_sec - tsi.tv_sec; tsi.tv_nsec = tso.tv_nsec - tsi.tv_nsec;