summaryrefslogtreecommitdiff
path: root/src/basic/time-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-11-18 11:31:42 +0100
committerLennart Poettering <lennart@poettering.net>2015-11-18 11:31:42 +0100
commitaa2fb804a18b493ae34f1eda20037ad12f5da2a5 (patch)
tree25d4e7f99f7c0b2943cefa0f1b94fe1601971eef /src/basic/time-util.c
parentedf1e713816cd514ba2d9c3e1a7661a2d27d38c8 (diff)
parentab15dfb7b1bfc1b4f2ad85aa93e66aeb84a5116c (diff)
Merge pull request #1912 from mustrumr/calendarspec-sub-second-v3
Calendarspec sub second v3
Diffstat (limited to 'src/basic/time-util.c')
-rw-r--r--src/basic/time-util.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index 647763a230..b9da6991da 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -27,6 +27,7 @@
#include "fd-util.h"
#include "fileio.h"
#include "fs-util.h"
+#include "parse-util.h"
#include "path-util.h"
#include "string-util.h"
#include "strv.h"
@@ -658,29 +659,18 @@ int parse_timestamp(const char *t, usec_t *usec) {
parse_usec:
{
- char *end;
- unsigned long long val;
- size_t l;
+ unsigned add;
k++;
- if (*k < '0' || *k > '9')
+ r = parse_fractional_part_u(&k, 6, &add);
+ if (r < 0)
return -EINVAL;
- /* base 10 instead of base 0, .09 is not base 8 */
- errno = 0;
- val = strtoull(k, &end, 10);
- if (*end || errno)
+ if (*k)
return -EINVAL;
- l = end-k;
-
- /* val has l digits, make them 6 */
- for (; l < 6; l++)
- val *= 10;
- for (; l > 6; l--)
- val /= 10;
+ x_usec = add;
- x_usec = val;
}
from_tm: