From 0c7cba92b30dd1da104844667623531dc94dd3f2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Fri, 30 Jun 2023 14:58:42 +0200 Subject: [PATCH] lsclocks: add relative time MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Weißschuh --- misc-utils/lsclocks.1.adoc | 3 +++ misc-utils/lsclocks.c | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/misc-utils/lsclocks.1.adoc b/misc-utils/lsclocks.1.adoc index 1eb8b952a7..38d665f727 100644 --- a/misc-utils/lsclocks.1.adoc +++ b/misc-utils/lsclocks.1.adoc @@ -66,6 +66,9 @@ ISO8601 formatted version of *TIME*. RESOLUTION <``number``>:: Clock resolution as returned by *clock_getres()*. +REL_TIME <``string``>:: +*TIME* time formatted as time range. + == AUTHORS diff --git a/misc-utils/lsclocks.c b/misc-utils/lsclocks.c index 304ae8ae3f..4ca07af15a 100644 --- a/misc-utils/lsclocks.c +++ b/misc-utils/lsclocks.c @@ -98,6 +98,7 @@ enum { COL_TIME, COL_ISO_TIME, COL_RESOLUTION, + COL_REL_TIME, }; /* column names */ @@ -117,6 +118,7 @@ static const struct colinfo infos[] = { [COL_TIME] = { "TIME", 1, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER, N_("numeric time") }, [COL_ISO_TIME] = { "ISO_TIME", 1, SCOLS_FL_RIGHT, SCOLS_JSON_STRING, N_("human readable ISO time") }, [COL_RESOLUTION] = { "RESOLUTION", 1, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER, N_("resolution") }, + [COL_REL_TIME] = { "REL_TIME", 1, SCOLS_FL_RIGHT, SCOLS_JSON_STRING, N_("human readable relative time") }, }; static int column_name_to_id(const char *name, size_t namesz) @@ -224,7 +226,7 @@ int main(int argc, char **argv) clockid_t clock = -1; struct timespec resolution, now; - char buf[FORMAT_TIMESTAMP_MAX]; + char buf[BUFSIZ]; enum { OPT_OUTPUT_ALL = CHAR_MAX + 1 @@ -361,6 +363,14 @@ int main(int argc, char **argv) if (!rc) scols_line_format_timespec(ln, j, &resolution); break; + case COL_REL_TIME: + if (now.tv_nsec == -1) + break; + rc = strtimespec_relative(&now, buf, sizeof(buf)); + if (rc) + errx(EXIT_FAILURE, _("failed to format relative time")); + scols_line_set_data(ln, j, buf); + break; } } } -- 2.47.3