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:
Lukas Fleischer
2015-02-23 10:43:54 +01:00
parent 4efa3f3fbf
commit 1ea97795be
6 changed files with 78 additions and 8 deletions

View File

@@ -48,6 +48,7 @@ TESTS = \
ical-004.sh \
ical-005.sh \
ical-006.sh \
ical-007.sh \
next-001.sh \
search-001.sh \
bug-002.sh \
@@ -111,4 +112,5 @@ EXTRA_DIST = \
data/ical-004.ical \
data/ical-005.ical \
data/ical-006.ical \
data/ical-007.ical \
data/todo

13
test/data/ical-007.ical Normal file
View File

@@ -0,0 +1,13 @@
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Local time
DTSTART:20150223T110000
DURATION:PT1H
END:VEVENT
BEGIN:VEVENT
SUMMARY:UTC
DTSTART:20150223T110000Z
DURATION:PT1H
END:VEVENT
END:VCALENDAR

24
test/ical-007.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/sh
. "${TEST_INIT:-./test-init.sh}"
if [ "$1" = 'actual' ]; then
mkdir .calcurse || exit 1
cp "$DATA_DIR/conf" .calcurse || exit 1
TZ="America/New_York" "$CALCURSE" -D "$PWD/.calcurse" \
-i "$DATA_DIR/ical-007.ical"
"$CALCURSE" -D "$PWD/.calcurse" -s2015-02-23
rm -rf .calcurse || exit 1
elif [ "$1" = 'expected' ]; then
cat <<EOD
Import process report: 0018 lines read
2 apps / 0 events / 0 todos / 0 skipped
02/23/15:
- 06:00 -> 07:00
UTC
- 11:00 -> 12:00
Local time
EOD
else
./run-test "$0"
fi