Subject: Re: are blank lines allowed?

From: [email-masked]
Date: Tue, 26 Jun 2001 11:07:07 -0400

Just for the record; the Notes code will ignore blank lines.

John Stracke <[email-masked]>
Sent by: [email-masked]
06/26/2001 10:28 AM

        To:     "[email-masked]" <[email-masked]>
        cc:     (bcc: Robert Ransdell/Iris)
        Subject:        Re: are blank lines allowed?

Damon Chaplin wrote:

> Quick question: are blank lines allowed in iCalendar?

[...]

> But I've been told that this isn't actually correct.

I was the one who pointed it out to Damon, when pulling in his 
Olson-in-iCalendar
work (for which I was very grateful, of course, and which I was able to 
use just
by grepping out the blank lines--no big deal).  Although RFC-2445 doesn't
actually give an overall syntax definition, I don't see any places where 
two
consecutive CRLFs could occur.  Each component is defined in terms of a 
series of
properties, and each property is defined with ABNF that includes a ":", 
ends in
CRLF, and does not contain any interior CRLF.

(Line folding is another issue, but it doesn't permit blank lines either, 
though
it would mean that a line containing a single linear-whitespace character 
would
be ignored.)

While I kind of like the idea of being able to insert blank lines for
readability, I think it's too late; we don't want to start sending 
iCalendar that
existing implementations can't accept.

--
/==============================================================\
|John Stracke    | http://www.ecal.com |My opinions are my own.|
|Chief Scientist |=============================================|
|eCal Corp.      |"HTTP is what happens in the absence of good |
[email-masked]|design." -- Keith Moore                      |
\==============================================================/

---

From: [email-masked]
Date: Tue, 26 Jun 2001 14:28:16 -0400

> Quick question: are blank lines allowed in iCalendar?

Well a strict intepretation of 2445s ABNF:

   The following notation defines the lines of content in an iCalendar
   object:

     contentline        = name *(";" param ) ":" value CRLF
        ; This ABNF is just a general definition for an initial parsing
        ; of the content line into its property name, parameter list,
        ; and value string

or more precisely:

     icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
                  icalbody
                  "END" ":" "VCALENDAR" CRLF)

     icalbody   = calprops component

     component  = 1*(eventc / todoc / journalc / freebusyc /
                / timezonec / iana-comp / x-comp)

     iana-comp  = "BEGIN" ":" iana-token CRLF
                  1*contentline
                  "END" ":" iana-token CRLF

     timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF
                  2*(
[Snip, snip]
                  )
                  "END" ":" "VTIMEZONE" CRLF

would lead me to say that extra CRLF are not allowed if you take a strict 
interpreation.  In any case, I would hope that engines would be somewhat 
lenient in dealing with extra stuff like that.  I know we are.  Im a bit 
overloaded now so perhaps someone else can do a quick test of pasting some 
'pretty' iCalendar into Outlook or their engines and see what comes out.

Bruce
===========================================================================
Bruce Kahn                                INet: [email-masked]
Iris Associates                          Phone: 978.392.5335
Westford, MA, USA 01886                    FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...