On Sun, 23.03.14 11:06, Dave Reisner (dreis...@archlinux.org) wrote:

> Also adds a few tests for the absolute cases of parse_timestamp.
> 
> Suggested by: Mantas Mikulėnas <graw...@gmail.com>
> ---
>  src/shared/time-util.c | 10 ++++++++++
>  src/test/test-time.c   | 21 +++++++++++++++++++++
>  2 files changed, 31 insertions(+)
> 
> diff --git a/src/shared/time-util.c b/src/shared/time-util.c
> index faa3418..fe43404 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
> +         *   @1395584178          (seconds from the epoch)
>           *
>           */
>  
> @@ -473,7 +474,16 @@ int parse_timestamp(const char *t, usec_t *usec) {
>                          return r;
>  
>                  goto finish;
> +        } else if (t[0] == '@') {
> +                time_t epoch;
>  
> +                r = safe_atoli(t+1, &epoch);
> +                if (r < 0)
> +                        return r;
> +
> +                assert_se(localtime_r(&epoch, &tm));
> +
> +                goto finish;


Hmm, this is probably something we should return directly without
involving "finish"... After all it's kinda pointless to convert these
epoch times to calendar times first, and then back again... We should
just return them directly. 

also, wouldn't it be more appropriate to use parse_sec() for pasing
this? That would also allow the syntaxes "@30years" referrring 30 years
after the epoch and similar. Not that this would be super-useful, but at
least it would correspond nicely with the "+5min" and "-5min" syntaxes
we already have, which do use parse_sec()...

Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to