Gracefully parse iCal parameters with colons
According to RFC 5545, iCalendar content lines can have optional
parameters, which can be quoted strings containing colons (":"). Make
sure that such colons are not interpreted as delimiters marking the
start of the value string.
Also, add a test case that covers this corner case.
Reported-by: Håkan Jerning <jerning@home.se>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
@@ -49,6 +49,7 @@ TESTS = \
|
||||
ical-005.sh \
|
||||
ical-006.sh \
|
||||
ical-007.sh \
|
||||
ical-008.sh \
|
||||
next-001.sh \
|
||||
search-001.sh \
|
||||
bug-002.sh \
|
||||
|
||||
12
test/data/ical-008.ical
Normal file
12
test/data/ical-008.ical
Normal file
@@ -0,0 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien":19800101T000100
|
||||
DURATION:P1DT9H17M0S
|
||||
SUMMARY:Calibrator's
|
||||
END:VEVENT
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
SUMMARY:Nary parabled Louvre's fleetest mered
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
28
test/ical-008.sh
Executable file
28
test/ical-008.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
. "${TEST_INIT:-./test-init.sh}"
|
||||
|
||||
if [ "$1" = 'actual' ]; then
|
||||
mkdir .calcurse || exit 1
|
||||
cp "$DATA_DIR/conf" .calcurse || exit 1
|
||||
"$CALCURSE" -D "$PWD/.calcurse" -i "$DATA_DIR/ical-008.ical"
|
||||
"$CALCURSE" -D "$PWD/.calcurse" -s01/01/1980 -r2
|
||||
"$CALCURSE" -D "$PWD/.calcurse" -t
|
||||
rm -rf .calcurse || exit 1
|
||||
elif [ "$1" = 'expected' ]; then
|
||||
cat <<EOD
|
||||
Import process report: 0017 lines read
|
||||
1 app / 0 events / 1 todo / 0 skipped
|
||||
01/01/80:
|
||||
- 00:01 -> ..:..
|
||||
Calibrator's
|
||||
|
||||
01/02/80:
|
||||
- ..:.. -> 09:18
|
||||
Calibrator's
|
||||
to do:
|
||||
0. Nary parabled Louvre's fleetest mered
|
||||
EOD
|
||||
else
|
||||
./run-test "$0"
|
||||
fi
|
||||
Reference in New Issue
Block a user