[CalendarServer-users] VObject patches
Guido Günther
agx at sigxcpu.org
Fri Jan 22 15:11:22 PST 2010
Hi Cyrus,
On Mon, Jan 11, 2010 at 03:58:49PM -0500, Cyrus Daboo wrote:
> Hi,
>
> --On January 11, 2010 9:42:45 AM -0500 Cyrus Daboo <cdaboo at apple.com> wrote:
>
> >>calendarserver currently has two patches for vobject:
> >>
> >>http://trac.calendarserver.org/browser/CalendarServer/trunk/lib-patches/v
> >>object/vobject.base.patch
> >>http://trac.calendarserver.org/browser/CalendarServer/trunk/lib-patches/v
> >>object/vobject.icalendar.patch that aren't upstream. Jeffrey said they
> >>both can be merged upstream. Any chance one of you guys could commit them
> >>so that stock vobject can be used to run calendarserver?
> >
> >I will do this later today.
>
> OK, most of the changes are now in. There were some changes related
Thanks a lot.
> to stricter parsing of calendar data that may not be applicable for
> more general use of vobject, so I have left those as patches on our
> side. What we need to do is come up with a way to programmatically
> set the stricter mode in vobject, then we can explicitly turn that
> on when running calendarserver and get rid of the remaining patch.
So the only missing hunk is:
@@ -1663,9 +1675,10 @@ def stringToTextValues(s, listSeparator=',', charList=None, strict=False):
else:
current.append(char)
else:
- state = "read normal"
+ #state = "read normal"
# leave unrecognized escaped characters for later passes
- current.append('\\' + char)
+ #current.append('\\' + char)
+ raise ParseError("error: illegal escape sequence: '\\%s'" % (char,))
What about toggling a global like:
diff --git a/vobject/icalendar.py b/vobject/icalendar.py
index 4a1da7c..b1dcd94 100644
--- a/vobject/icalendar.py
+++ b/vobject/icalendar.py
@@ -29,6 +29,7 @@ twoHours = datetime.timedelta(hours=2)
#---------------------------- TZID registry ------------------------------------
__tzidMap={}
+leave_chars = True
def toUnicode(s):
"""Take a string or unicode, turn it into unicode, decoding as utf-8"""
@@ -1663,9 +1664,12 @@ def stringToTextValues(s, listSeparator=',', charList=None, strict=False):
else:
current.append(char)
else:
- state = "read normal"
- # leave unrecognized escaped characters for later passes
- current.append('\\' + char)
+ if leave_char:
+ state = "read normal"
+ # leave unrecognized escaped characters for later passes
+ current.append('\\' + char)
+ else:
+ raise ParseError("error: illegal escape sequence: '\\%s'" % (char,))
elif state == "end": #an end state
if len(current) or len(results) == 0:
it's not nice but should do the trick if calendarserver sets
vobject.icalenddar.leave_chars = False
Cheers,
-- Guido
More information about the calendarserver-users
mailing list