From 477254da9325b6c12975063023bded77c96dc1c4 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 13 Mar 2013 11:51:15 +0100 Subject: [PATCH] lib/strutils: add strtotimeval_or_err() Signed-off-by: Karel Zak --- include/strutils.h | 3 +++ lib/strutils.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/strutils.h b/include/strutils.h index 695343405a..709fcadc54 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -30,6 +30,9 @@ extern double strtod_or_err(const char *str, const char *errmesg); extern long strtol_or_err(const char *str, const char *errmesg); extern unsigned long strtoul_or_err(const char *str, const char *errmesg); +extern void strtotimeval_or_err(const char *str, struct timeval *tv, + const char *errmesg); + extern int isdigit_string(const char *str); #ifndef HAVE_MEMPCPY diff --git a/lib/strutils.c b/lib/strutils.c index 53b589a41a..c263b86b27 100644 --- a/lib/strutils.c +++ b/lib/strutils.c @@ -333,6 +333,16 @@ uintmax_t strtosize_or_err(const char *str, const char *errmesg) errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); } + +void strtotimeval_or_err(const char *str, struct timeval *tv, const char *errmesg) +{ + double user_input; + + user_input = strtod_or_err(str, errmesg); + tv->tv_sec = (time_t) user_input; + tv->tv_usec = (long)((user_input - tv->tv_sec) * 1000000); +} + /* * Converts stat->st_mode to ls(1)-like mode string. The size of "str" must * be 10 bytes. -- 2.47.3