From: Karel Zak Date: Wed, 13 Mar 2013 10:51:15 +0000 (+0100) Subject: lib/strutils: add strtotimeval_or_err() X-Git-Tag: v2.23-rc1~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=477254da9325b6c12975063023bded77c96dc1c4;p=thirdparty%2Futil-linux.git lib/strutils: add strtotimeval_or_err() Signed-off-by: Karel Zak --- 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.