(fix) encore CR for EAS (fixes #3626)
parent
8d166dd80c
commit
012ac98b31
|
@ -65,7 +65,7 @@ static NSArray *easCommandParameters = nil;
|
|||
|
||||
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
|
||||
{
|
||||
return [self safeStringByEscapingXMLString];
|
||||
return [self safeStringByEscapingXMLString: YES];
|
||||
}
|
||||
|
||||
- (int) activeSyncFolderType
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
/* Unicode safety */
|
||||
- (NSString *) safeString;
|
||||
- (NSString *) safeStringByEscapingXMLString;
|
||||
- (NSString *) safeStringByEscapingXMLString: (BOOL) encodeCR;
|
||||
|
||||
/* JSON */
|
||||
- (NSString *) jsonRepresentation;
|
||||
|
|
|
@ -324,7 +324,10 @@ static int cssEscapingCount;
|
|||
return AUTORELEASE(s);
|
||||
}
|
||||
|
||||
|
||||
- (NSString *) safeStringByEscapingXMLString
|
||||
{
|
||||
return [self safeStringByEscapingXMLString: NO];
|
||||
}
|
||||
//
|
||||
// This is a copy from NSString+XMLEscaping.m from SOPE.
|
||||
// The difference here is that we use wchar_t instead of unichar.
|
||||
|
@ -335,7 +338,8 @@ static int cssEscapingCount;
|
|||
// We avoid naming it like the one in SOPE since if the ActiveSync
|
||||
// bundle is loaded, it'll overwrite the one provided by SOPE.
|
||||
//
|
||||
- (NSString *) safeStringByEscapingXMLString {
|
||||
- (NSString *) safeStringByEscapingXMLString: (BOOL) encoreCR
|
||||
{
|
||||
register unsigned i, len, j;
|
||||
register wchar_t *buf;
|
||||
const wchar_t *chars;
|
||||
|
@ -384,7 +388,13 @@ static int cssEscapingCount;
|
|||
buf[j] = '&'; j++; buf[j] = 'g'; j++; buf[j] = 't'; j++;
|
||||
buf[j] = ';'; j++;
|
||||
break;
|
||||
|
||||
case '\r':
|
||||
if (encoreCR) // falls back to default if we don't encode
|
||||
{
|
||||
buf[j] = '&'; j++; buf[j] = '#'; j++; buf[j] = '1'; j++;
|
||||
buf[j] = '3'; j++; buf[j] = ';'; j++;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
/* escape big chars */
|
||||
if (chars[i] > 127) {
|
||||
|
|
Loading…
Reference in New Issue