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:
committed by
Lukas Fleischer
parent
32783496e6
commit
d8c1c48e78
23
src/utils.c
23
src/utils.c
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user