diff options
author | Lars Henriksen <LarsHenriksen@get2net.dk> | 2020-05-25 20:52:22 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2020-06-13 10:56:15 -0400 |
commit | d8c1c48e78bd6cdfbee922c6bda4022c7d7cb9dd (patch) | |
tree | c4a27777909eb68a4e293e1579090262c04361e2 /src/utils.c | |
parent | 32783496e6a002f6408ad21d1436e61442173536 (diff) | |
download | calcurse-d8c1c48e78bd6cdfbee922c6bda4022c7d7cb9dd.tar.gz calcurse-d8c1c48e78bd6cdfbee922c6bda4022c7d7cb9dd.zip |
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>
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 23 |
1 files changed, 13 insertions, 10 deletions
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"); } |