summaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2015-02-23 10:43:54 +0100
committerLukas Fleischer <calcurse@cryptocrack.de>2015-02-23 10:46:16 +0100
commit1ea97795be8f9b8d63c5266ac7ea4889c3224a4d (patch)
tree7fdaaf4eaeb4b564b1479b375fef87a561c95bed /src/utils.c
parent4efa3f3fbf5525e37d7bae4bd8ed5ce747a0b32f (diff)
downloadcalcurse-1ea97795be8f9b8d63c5266ac7ea4889c3224a4d.zip
Add support for UTC times in iCal imports
According to the iCal standard (4.3.12 Time): UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC designator, appended to the time value. Parse such time values properly when importing iCal files. Fixes GitHub issue #3. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index b52de74..c7dc61c 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -386,6 +386,31 @@ long date2sec(struct date day, unsigned hour, unsigned min)
return t;
}
+time_t
+utcdate2sec(struct date day, unsigned hour, unsigned min)
+{
+ char *tz;
+ time_t t;
+
+ tz = getenv("TZ");
+ if (tz)
+ tz = mem_strdup(tz);
+ setenv("TZ", "", 1);
+ tzset();
+
+ t = date2sec(day, hour, min);
+
+ if (tz) {
+ setenv("TZ", tz, 1);
+ mem_free(tz);
+ } else {
+ unsetenv("TZ");
+ }
+ tzset();
+
+ return t;
+}
+
/* Return a string containing the date, given a date in seconds. */
char *date_sec2date_str(long sec, const char *datefmt)
{