summaryrefslogtreecommitdiff
path: root/src/shared/time-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-03-25 04:08:16 +0100
committerLennart Poettering <lennart@poettering.net>2014-03-25 04:08:16 +0100
commit5ba6e0949cef1a5b947dd59665bad1ca5066619d (patch)
tree8ebd76a03be18a8c45640e8b66e4e01fdf57d021 /src/shared/time-util.c
parenta2b135e3d8d5dfa103a87e304ed8a91b01fdbb02 (diff)
time: support @ syntax for denoting times since the UNIX epoch 1970-1-1
Diffstat (limited to 'src/shared/time-util.c')
-rw-r--r--src/shared/time-util.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/shared/time-util.c b/src/shared/time-util.c
index faa3418819..eb5c1ae790 100644
--- a/src/shared/time-util.c
+++ b/src/shared/time-util.c
@@ -432,6 +432,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
* tomorrow (time is set to 00:00:00)
* +5min
* -5days
+ * @2147483647 (seconds since epoch)
*
*/
@@ -460,21 +461,23 @@ int parse_timestamp(const char *t, usec_t *usec) {
goto finish;
} else if (t[0] == '+') {
-
r = parse_sec(t+1, &plus);
if (r < 0)
return r;
goto finish;
- } else if (t[0] == '-') {
+ } else if (t[0] == '-') {
r = parse_sec(t+1, &minus);
if (r < 0)
return r;
goto finish;
- } else if (endswith(t, " ago")) {
+ } else if (t[0] == '@')
+ return parse_sec(t + 1, usec);
+
+ else if (endswith(t, " ago")) {
_cleanup_free_ char *z;
z = strndup(t, strlen(t) - 4);