| /* |
| * strtotimex.c |
| * |
| * Nonstandard function which takes a string and converts it to a |
| * struct timespec/timeval. Returns a pointer to the first non-numeric |
| * character in the string. |
| * |
| */ |
| |
| #include <ctype.h> |
| #include <inttypes.h> |
| #include <stdlib.h> |
| #include <sys/time.h> |
| |
| char *NAME(const char *str, TIMEX * ts) |
| { |
| int n; |
| char *s, *s0; |
| __typeof__(ts->FSEC) fs; /* Fractional seconds */ |
| |
| ts->tv_sec = strntoumax(str, &s, 10, ~(size_t) 0); |
| fs = 0; |
| |
| if (*s == '.') { |
| s0 = s + 1; |
| |
| fs = strntoumax(s0, &s, 10, DECIMALS); |
| n = s - s0; |
| |
| while (isdigit(*s)) |
| s++; |
| |
| for (; n < DECIMALS; n++) |
| fs *= 10; |
| } |
| |
| ts->FSEC = fs; |
| return s; |
| } |