Hi Patrick,
On Aug 11, 2009, at 14:19 , Patrick Ohly wrote:
"autoenddate" is significant only for vCalendar 1.0 rendering,
"rendering" = "parsing"?
"handling" would have been the right word - it affects both parsing
and generating...
as it
will turn on detecting 23:59:59 as an end-of-day marker and convert
it
to 0:00 the next day and when generating vCalendar 1.0, it will
represent all-day-events according to the <autoenddateinclusive>
setting. For iCalendar 2.0, autodate and autoenddate behave the same.
mobical.net uses vCalendar 1.0, whereas all other servers we test with
use iCalendar 2.0. So we could change the setting without affecting
any
of the other servers.
However, I'm still a bit fuzzy about how autoenddate interacts with
the
"detect alldays in vCalendar 1.0 (0:00-0:00 or 23:59 localtime)"
part of
VCALENDAR_INCOMING_SCRIPT. Can someone walk me through the sequence of
conversions that happen when applying autoenddate to the mobical.net
example DTSTART/END and why MAKEALLDAY() then fails?
See the other mail - there was indeed a bug in the autoenddate
handling when parsing.
The idea of the (hardwired) "autoenddate" mechanism is to abstract the
ugly details of vCalendar 23:59:59 DTENDs which really mean 0:00 of
the next day, such that subsequent steps (incomingscript, or the DB
plugin code directly) don't need extra checks for that special case,
i.e. don't need any case handling for vCalendar 1.0.
So what happens is:
- incoming timestamps for "autoenddate" fields will be converted to
item time zone (usually system localtime), and then checked for
23:59:59.
- if check returns true, timestamp will be made 0:00 of the next day
(here was a bug, resulting TZ was wrong when input was not floating).
The next step, in your case <incomingscript>, can now rely on all-day
events spanning entire days, and base further examinations on this.
This is not so important if this is handled in <incomingscript>,
because there you'll probably use ALLDAYCOUNT() to detect alldays, and
this function will (for historical reasons, before "autoenddate" was
available) also recognize the 23:59:59 case.
However it IS important when detecting all-day is done in a DB plugin,
without an <incomingscript> in place (that's how all our WM and PALM
clients work), because we absolutely don't want any vCalendar 1.0
format dependent code in DB adapter implementations.
Best Regards,
Lukas Zeller ([email protected])
-
Synthesis AG, SyncML Solutions & Sustainable Software Concepts
[email protected], http://www.synthesis.ch
_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis