1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

calendarspec: make specifications with seconds wildcard reversible

"*:*:*" is now formatted as "*:*:*" instead of "*:*:00/1"
This commit is contained in:
Douglas Christman 2016-11-24 14:34:17 -05:00
parent 9dfa81a00a
commit 3215e35c40
2 changed files with 8 additions and 1 deletions

View File

@ -286,6 +286,7 @@ static void format_chain(FILE *f, int space, const CalendarComponent *c, bool us
}
int calendar_spec_to_string(const CalendarSpec *c, char **p) {
CalendarComponent *cc;
char *buf = NULL;
size_t sz = 0;
FILE *f;
@ -313,7 +314,12 @@ int calendar_spec_to_string(const CalendarSpec *c, char **p) {
fputc(':', f);
format_chain(f, 2, c->minute, false);
fputc(':', f);
format_chain(f, 2, c->microsecond, true);
cc = c->microsecond;
if (cc && !cc->value && cc->repeat == USEC_PER_SEC && !cc->next)
fputc('*', f);
else
format_chain(f, 2, c->microsecond, true);
if (c->utc)
fputs(" UTC", f);

View File

@ -183,6 +183,7 @@ int main(int argc, char* argv[]) {
test_one("Monday", "Mon *-*-* 00:00:00");
test_one("Monday *-*-*", "Mon *-*-* 00:00:00");
test_one("*-*-*", "*-*-* 00:00:00");
test_one("*:*:*", "*-*-* *:*:*");
test_next("2016-03-27 03:17:00", "", 12345, 1459048620000000);
test_next("2016-03-27 03:17:00", "CET", 12345, 1459041420000000);