From 9a85b790aab1611a7c9105d08fb6be1500ed82f7 Mon Sep 17 00:00:00 2001 From: Jérôme Pinot Date: Sat, 10 Dec 2011 22:32:35 +0900 Subject: Format "DURATION" field properly on ical export Use days/hours/minutes/seconds instead of seconds in the DURATION field. It fixes interaction with other softwares like phpicalendar. Lukas: Remove use of dur-week. RFC 5545 states that you cannot use this in conjunction with dur-day. Also, fix formatting and use proper constants. Signed-off-by: Jerome Pinot Signed-off-by: Lukas Fleischer --- src/io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/io.c b/src/io.c index b944373..8709341 100644 --- a/src/io.c +++ b/src/io.c @@ -622,7 +622,11 @@ ical_export_apoints (FILE *stream) date_sec2date_fmt (apt->start, ICALDATETIMEFMT, ical_datetime); (void)fprintf (stream, "BEGIN:VEVENT\n"); (void)fprintf (stream, "DTSTART:%s\n", ical_datetime); - (void)fprintf (stream, "DURATION:PT0H0M%ldS\n", apt->dur); + (void)fprintf (stream, "DURATION:P%ldDT%ldH%ldM%ldS\n", + apt->dur / DAYINSEC, + (apt->dur / HOURINSEC) % 24, + (apt->dur / MININSEC) % 60, + apt->dur % MININSEC); (void)fprintf (stream, "SUMMARY:%s\n", apt->mesg); if (apt->state & APOINT_NOTIFY) ical_export_valarm (stream); -- cgit v1.2.3-70-g09d2