From 9333af2f12cdfe27cfa02fdb5e7634b2d310e967 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Thu, 16 Aug 2001 19:23:41 +0000 Subject: Dequote the same characters that we know how to quote in 2001-08-16 Federico Mena Quintero * src/libical/icalvalue.c (icalmemory_strdup_and_dequote): Dequote the same characters that we know how to quote in icalvalue_text_as_ical_string(). Fixes Ximian bug #7433. svn path=/trunk/; revision=12115 --- libical/ChangeLog | 6 ++++++ libical/src/libical/icalvalue.c | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/libical/ChangeLog b/libical/ChangeLog index 054ed73e74..88e2a0cfd0 100644 --- a/libical/ChangeLog +++ b/libical/ChangeLog @@ -1,3 +1,9 @@ +2001-08-16 Federico Mena Quintero + + * src/libical/icalvalue.c (icalmemory_strdup_and_dequote): Dequote + the same characters that we know how to quote in + icalvalue_text_as_ical_string(). Fixes Ximian bug #7433. + 2001-08-01 Damon Chaplin * src/libical/icaltimezone.c: removed some debugging messages. diff --git a/libical/src/libical/icalvalue.c b/libical/src/libical/icalvalue.c index 8c5c1303ea..459bebe830 100644 --- a/libical/src/libical/icalvalue.c +++ b/libical/src/libical/icalvalue.c @@ -181,18 +181,39 @@ char* icalmemory_strdup_and_dequote(const char* str) } case 'n': + case 'N': { *pout = '\n'; break; } - case 'N': + case 't': + case 'T': { - *pout = '\n'; + *pout = '\t'; + break; + } + case 'r': + case 'R': + { + *pout = '\r'; + break; + } + case 'b': + case 'B': + { + *pout = '\b'; + break; + } + case 'f': + case 'F': + { + *pout = '\f'; break; } - case '\\': - case ',': case ';': + case ',': + case '"': + case '\\': { *pout = *p; break; @@ -665,14 +686,9 @@ char* icalvalue_text_as_ical_string(icalvalue* value) { } case ';': - case ',':{ - icalmemory_append_char(&str,&str_p,&buf_sz,'\\'); - icalmemory_append_char(&str,&str_p,&buf_sz,*p); - line_length+=3; - break; - } - - case '"':{ + case ',': + case '"': + case '\\':{ icalmemory_append_char(&str,&str_p,&buf_sz,'\\'); icalmemory_append_char(&str,&str_p,&buf_sz,*p); line_length+=3; -- cgit