aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libical/ChangeLog6
-rw-r--r--libical/src/libical/icalvalue.c40
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 <federico@ximian.com>
+
+ * 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 <damon@ximian.com>
* 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;