[Evolution-hackers] error in generated vcalendar + error reading
changed tasks/events
Armin Bauer
armin.bauer@desscon.com
Wed, 09 Mar 2005 00:09:30 +0100
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigB358AEF1E1BF439ED748E5F8
Content-Type: multipart/mixed;
boundary="------------080505080801060907030404"
This is a multi-part message in MIME format.
--------------080505080801060907030404
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
JP Rosevear wrote:
> On Tue, 2005-03-08 at 21:35 +0100, Armin Bauer wrote:
>
>>JP Rosevear wrote:
>>
>>>On Tue, 2005-03-08 at 07:10 +0100, Armin Bauer wrote:
>>>
>>>
>>>>Hi,
>>>>
>>>>i discovered two bugs:
>>>>
>>>>The first one is in the way evo2 generates vcalendars:
>>>>
>>>>Categories get generated as:
>>>>CATEGORIES:Birthday\,Business
>>>>
>>>>but it should be (taken from http://www.ietf.org/rfc/rfc2445.txt):
>>>>CATEGORIES:MEETING,PROJECT
>>>
>>>
>>>It appears the rfc is contradicting itself in the examples, see 4.3.11.
>>>That shows the "text" grammar type to need escaping of commas and
>>>CATEGORIES is of this type, as well:
>>>
>>> The "TEXT" property values may also contain special characters that
>>> are used to signify delimiters, such as a COMMA character for lists
>>> of values or a SEMICOLON character for structured values. In order to
>>> support the inclusion of these special characters in "TEXT" property
>>> values, they MUST be escaped with a BACKSLASH character. A BACKSLASH
>>> character (US-ASCII decimal 92) in a "TEXT" property value MUST be
>>> escaped with another BACKSLASH character. A COMMA character in a
>>> "TEXT" property value MUST be escaped with a BACKSLASH character
>>> (US-ASCII decimal 92). A SEMICOLON character in a "TEXT" property
>>> value MUST be escaped with a BACKSLASH character (US-ASCII decimal
>>> 92). However, a COLON character in a "TEXT" property value SHALL NOT
>>> be escaped with a BACKSLASH character.Example: A multiple line value
>>> of:
>>>
>>
>>actually its not:
>>
>> Type name: CATEGORIES
>>
>> Type purpose: To specify application category information about the
>> vCard.
>
>
>> Type encoding: 8bit
>>
>> Type value: One or more text values separated by a COMMA character
>> (ASCII decimal 44).
>
>
> Hmm, the above block is indeed a little confusing. Let me state what
> i'm seeing:
>
> It says that "TEXT" property values may include a COMMA for a delimiter
> but that in order to include a COMMA in a "TEXT" property they must be
> escaped. What they really want to say I guess is that they want to
> delimit blocks of "text", as defined in the abnf notation: text
> = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR))
>
> with a comma, ie :text,text,text to make up a TEXT property value as a
> whole.
>
> Anyhow, I think whats really happening is that Evolution wants to use
> the CATEGORIES as a whole single string and breaks it up in the UI
> itself. The \, means we are treating the categories as a single block
> rather a delimited list, that is valid icalendar, if a bit unusual.
>
So, judging from your answer, that you are not going to change this?
>
>> Type example:
>>
>> CATEGORIES:TRAVEL AGENT
>>
>> CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY
>>
>>so this would be valid: sometext\,,somemoretext
>>
>>i know that the standard is just plain stupid at this point since the
>>categories is the only occasion they are using a comma
>>
>>and besides... even the evolution2 vcard parser is expecting the
>>categories with an unescaped comma :)
>>
>>
>>>
>>>>The second one is that when i add several tasks/events, request them via
>>>>e_cal_get_changes, delete all of them and request again using
>>>>e_cal_get_changes the returned GList will contain more items than delete
>>>>d and the additional items look like random memory locations. I attached
>>>>the code that produces this result. I took a look at the bug database
>>>>and there are quite some bugs which reporting crashing etc when deleting
>>>>tasks/events, so maybe this is related.
>>>
>>>
>>>Probably unrelated, but it might help against some pilot bugs. What is
>>>the exactly version you are coding against?
>>
>>ii evolution 2.0.4-0.1 The groupware suite
>>ii evolution-data 1.0.4-0.1 evolution database backend server
>>
>>entry 20050308T203113Z-6966-1000-6736-0@azrael
>>entry 20050308T203113Z-6966-1000-6736-1@azrael
>>entry 20050308T203002Z-6781-1000-1-1@azrael
>>entry 20050308T203113Z-6966-1000-6736-2@azrael
>>entry 20050308T203002Z-6781-1000-1-2@azrael
>>entry 20050307T183359Z-32171-1000-1-42@azrael
>>
>>Note that i deleted 3 tasks (the ones with *1000-1*)
>
>
> Have you looked at the .xml file on disk to see if thats being updated
> properly?
Yes. i attached the ics and .db files after the first sync (after i
added 3 tasks) and after the second one (with the deletion). Nothing
suspicious...
But there seems to be another bug: take a look at before.ics. there are
errors in there which i guess is not correct. (but these errors are not
the root of the problem, i checked this)
>
> -JP
--------------080505080801060907030404
Content-Type: text/calendar;
name="after.ics"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="after.ics"
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Ximian//NONSGML Evolution Calendar//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/softwarestudio.org/Olson_20011030_5/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
--------------080505080801060907030404
Content-Type: text/xml;
name="after.ics-evo-kde.db"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="after.ics-evo-kde.db"
<?xml version="1.0" encoding="UTF-8"?>
<xmlhash/>
--------------080505080801060907030404
Content-Type: text/calendar;
name="before.ics"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="before.ics"
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Ximian//NONSGML Evolution Calendar//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:/softwarestudio.org/Olson_20011030_5/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-6@azrael
DTSTAMP:20050308T225333Z
SUMMARY:1
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-7@azrael
DTSTAMP:20050308T225333Z
SUMMARY:2
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-8@azrael
DTSTAMP:20050308T225333Z
SUMMARY:3
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
END:VCALENDAR
--------------080505080801060907030404
Content-Type: text/xml;
name="before.ics-evo-kde.db"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="before.ics-evo-kde.db"
<?xml version="1.0" encoding="UTF-8"?>
<xmlhash><object uid="20050308T225333Z-7732-1000-1-8@azrael">BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-8@azrael
DTSTAMP:20050308T225333Z
SUMMARY:3
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
</object><object uid="20050308T225333Z-7732-1000-1-6@azrael">BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-6@azrael
DTSTAMP:20050308T225333Z
SUMMARY:1
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
</object><object uid="20050308T225333Z-7732-1000-1-7@azrael">BEGIN:VTODO
UID:20050308T225333Z-7732-1000-1-7@azrael
DTSTAMP:20050308T225333Z
SUMMARY:2
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for STATUS
property. Removing entire property:
PRIORITY:0
CREATED:20050308T225333
LAST-MODIFIED:20050308T225333
END:VTODO
</object></xmlhash>
--------------080505080801060907030404--
--------------enigB358AEF1E1BF439ED748E5F8
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQFCLjCqq9z7v9k9UakRAitpAKCdvbs4N0Mc1rxQee/Wh8mQtfwgwACgnQra
6nxWRubzJfazgU5lI6amXS8=
=Vnq5
-----END PGP SIGNATURE-----
--------------enigB358AEF1E1BF439ED748E5F8--