Support import of time zones (RFC 5545)

The property parameter time zone identifier (TZID) is recognized in DTSTART,
DTEND and EXDATE and the DATE-TIME value converted to a local time. The time
zone identifier is logged in the note file.

Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
Lars Henriksen
2020-05-25 20:52:22 +02:00
committed by Lukas Fleischer
parent 32783496e6
commit d8c1c48e78
6 changed files with 112 additions and 48 deletions

View File

@@ -423,22 +423,25 @@ struct date sec2date(time_t t)
return d;
}
time_t utcdate2sec(struct date day, unsigned hour, unsigned min)
time_t tzdate2sec(struct date day, unsigned hour, unsigned min, char *tznew)
{
char *tz;
char *tzold;
time_t t;
tz = getenv("TZ");
if (tz)
tz = mem_strdup(tz);
setenv("TZ", "", 1);
tzset();
if (!tznew)
return date2sec(day, hour, min);
tzold = getenv("TZ");
if (tzold)
tzold = mem_strdup(tzold);
setenv("TZ", tznew, 1);
tzset();
t = date2sec(day, hour, min);
if (tz) {
setenv("TZ", tz, 1);
mem_free(tz);
if (tzold) {
setenv("TZ", tzold, 1);
mem_free(tzold);
} else {
unsetenv("TZ");
}