From d8c1c48e78bd6cdfbee922c6bda4022c7d7cb9dd Mon Sep 17 00:00:00 2001 From: Lars Henriksen Date: Mon, 25 May 2020 20:52:22 +0200 Subject: 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 Signed-off-by: Lukas Fleischer --- src/utils.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 6f849ea..23b9d89 100644 --- a/src/utils.c +++ b/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"); } -- cgit v1.2.3-54-g00ecf