]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/strutils: add strtotimeval_or_err()
authorKarel Zak <kzak@redhat.com>
Wed, 13 Mar 2013 10:51:15 +0000 (11:51 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 13 Mar 2013 10:51:15 +0000 (11:51 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
include/strutils.h
lib/strutils.c

index 695343405af5d6cb714e4c2dfa38660d57edaada..709fcadc5421a6a989427a316ebbc7daea0c62ba 100644 (file)
@@ -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
index 53b589a41acb8ad0ff8b4758e98bf360341560f0..c263b86b27ba9d7ae8a1912a2b4bd0398ce9579d 100644 (file)
@@ -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.