X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Ftime-util.c;fp=src%2Fshared%2Ftime-util.c;h=eb5c1ae790475da829ce3bd59d719d763b9a707a;hp=faa3418819e81dfe4e526966bac34554425cad68;hb=5ba6e0949cef1a5b947dd59665bad1ca5066619d;hpb=a2b135e3d8d5dfa103a87e304ed8a91b01fdbb02 diff --git a/src/shared/time-util.c b/src/shared/time-util.c index faa341881..eb5c1ae79 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);