commit: c701892114d5b3eea773ff13f013f4d3a71fa571
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 29 16:31:50 2019 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Mar 29 16:31:50 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=c7018921
qlop: support standard date output format in parse_date
This allows to cut 'n' paste dates to limit output.
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
man/include/qlop.optdesc.yaml | 3 +++
man/qlop.1 | 5 ++++-
qlop.c | 14 +++++++++-----
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/man/include/qlop.optdesc.yaml b/man/include/qlop.optdesc.yaml
index a8fae61..25143b2 100644
--- a/man/include/qlop.optdesc.yaml
+++ b/man/include/qlop.optdesc.yaml
@@ -13,6 +13,9 @@ date: |
.IP YYYY-MM-DD
Big-endian date, with components separated by hyphens, starting with
year, followed by month and day of month.
+ .IP YYYY-MM-DDThh:mm:ss
+ As before, but hours, minutes and seconds added. This is the same
+ format qlop prints for timestamps.
.IP SSSSSSSSS
Seconds since 1970-01-01 00:00:00 +0000 (UTC), the UNIX epoch.
.IP FORMAT|DATE
diff --git a/man/qlop.1 b/man/qlop.1
index 407c9ea..f0ef69a 100644
--- a/man/qlop.1
+++ b/man/qlop.1
@@ -1,5 +1,5 @@
.\" generated by mkman.py, please do NOT edit!
-.TH qlop "1" "Feb 2019" "Gentoo Foundation" "qlop"
+.TH qlop "1" "Mar 2019" "Gentoo Foundation" "qlop"
.SH NAME
qlop \- emerge log analyzer
.SH SYNOPSIS
@@ -89,6 +89,9 @@ Alias for \fI1 day ago\fR.
.IP YYYY-MM-DD
Big-endian date, with components separated by hyphens, starting with
year, followed by month and day of month.
+.IP YYYY-MM-DDThh:mm:ss
+As before, but hours, minutes and seconds added. This is the same
+format qlop prints for timestamps.
.IP SSSSSSSSS
Seconds since 1970-01-01 00:00:00 +0000 (UTC), the UNIX epoch.
.IP FORMAT|DATE
diff --git a/qlop.c b/qlop.c
index b6970d0..a87cc5c 100644
--- a/qlop.c
+++ b/qlop.c
@@ -103,17 +103,21 @@ parse_date(const char *sdate, time_t *t)
return false;
} else {
/* Handle automatic formats:
- * - "12315128" -> %s
- * - "2015-12-24" -> %Y-%m-%d
+ * - "12315128" -> %s
+ * - "2015-12-24" -> %Y-%m-%d
+ * - "2019-03-28T13:52:31" -> %Y-%m-%dT%H:%M:%s"
* - human readable format (see below)
*/
- size_t len = strspn(sdate, "0123456789-");
+ size_t len = strspn(sdate, "0123456789-:T");
if (sdate[len] == '\0') {
const char *fmt;
- if (strchr(sdate, '-') == NULL)
+ if (strchr(sdate, '-') == NULL) {
fmt = "%s";
- else
+ } else if ((s = strchr(sdate, 'T')) == NULL) {
fmt = "%Y-%m-%d";
+ } else {
+ fmt = "%Y-%m-%dT%H:%M:%S";
+ }
s = strptime(sdate, fmt, &tm);
if (s == NULL || s[0] != '\0')