calendarspec: allow whole second ranges
Previously a string like "00:00:01..03" would fail to parse due to the ambiguity between a decimal point and the start of a range.
This commit is contained in:
parent
3215e35c40
commit
36ff0c9792
|
@ -486,6 +486,10 @@ static int parse_component_decimal(const char **p, bool usec, unsigned long *res
|
|||
if (*e == '.') {
|
||||
unsigned add;
|
||||
|
||||
/* This is the start of a range, not a fractional part */
|
||||
if (e[1] == '.')
|
||||
goto finish;
|
||||
|
||||
e++;
|
||||
r = parse_fractional_part_u(&e, 6, &add);
|
||||
if (r < 0)
|
||||
|
@ -497,6 +501,7 @@ static int parse_component_decimal(const char **p, bool usec, unsigned long *res
|
|||
}
|
||||
}
|
||||
|
||||
finish:
|
||||
*p = e;
|
||||
*res = value;
|
||||
|
||||
|
|
|
@ -177,6 +177,7 @@ int main(int argc, char* argv[]) {
|
|||
test_one("1..3-1..3 1..3:1..3", "*-01,02,03-01,02,03 01,02,03:01,02,03:00");
|
||||
test_one("00:00:1.125..2.125", "*-*-* 00:00:01.125000,02.125000");
|
||||
test_one("00:00:1.0..3.8", "*-*-* 00:00:01,02,03");
|
||||
test_one("00:00:01..03", "*-*-* 00:00:01,02,03");
|
||||
test_one("*-*~1 Utc", "*-*~01 00:00:00 UTC");
|
||||
test_one("*-*~05,3 ", "*-*~03,05 00:00:00");
|
||||
test_one("*-*~* 00:00:00", "*-*-* 00:00:00");
|
||||
|
|
Loading…
Reference in a new issue