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>
This commit is contained in:
25
src/utils.c
25
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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user