aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libicalvcal/vcc.y
diff options
context:
space:
mode:
authorDamon Chaplin <damon@ximian.com>2002-02-07 07:16:12 +0800
committerDamon Chaplin <damon@src.gnome.org>2002-02-07 07:16:12 +0800
commitd64e7cf12f73a73a0c5b99806fd695d428bea72f (patch)
treee2c8ce675a8ff8c7b8683996f12281ab973071c9 /libical/src/libicalvcal/vcc.y
parent411fd545df9ba41609b00e67e96369f493fe0610 (diff)
downloadgsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar.gz
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar.bz2
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar.lz
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar.xz
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.tar.zst
gsoc2013-evolution-d64e7cf12f73a73a0c5b99806fd695d428bea72f.zip
major changes to support RRULE/EXRULE, VALARMS and several other
2002-02-06 Damon Chaplin <damon@ximian.com> * src/libicalvcal/icalvcal.c: major changes to support RRULE/EXRULE, VALARMS and several other properties. * src/libicalvcal/icalvcal.h (icalvcal_convert_with_defaults): new function to pass defaults for a few values into the importer. These are used when the vCalendar file doesn't provide the property but it is required in iCalendar. * src/libicalvcal/vcc.y: support multi-valued properties, by appending new ones and separating by ';'. This was pinched from our changes to evolution/libversit/vcc.y. * src/libicalvcal/Makefile.am: renamed library to libicalvcal-evolution Don't install the headers. * design-data/parameters.csv: added new error for error's parsing vCalendar properties. svn path=/trunk/; revision=15582
Diffstat (limited to 'libical/src/libicalvcal/vcc.y')
-rw-r--r--libical/src/libicalvcal/vcc.y24
1 files changed, 23 insertions, 1 deletions
diff --git a/libical/src/libicalvcal/vcc.y b/libical/src/libicalvcal/vcc.y
index 70feefab57..4397198b1b 100644
--- a/libical/src/libicalvcal/vcc.y
+++ b/libical/src/libicalvcal/vcc.y
@@ -414,9 +414,31 @@ static void enterValues(const char *value)
}
else {
if (value) {
- setVObjectUStringZValue_(curProp,fakeUnicode(value,0));
+ char *p1, *p2;
+ wchar_t *p3;
+ int i;
+
+ /* If the property already has a string value, we append this one,
+ using ';' to separate the values. */
+ if (vObjectUStringZValue(curProp)) {
+ p1 = fakeCString(vObjectUStringZValue(curProp));
+ p2 = malloc((strlen(p1)+strlen(value)+1));
+ strcpy(p2, p1);
+ deleteStr(p1);
+
+ i = strlen(p2);
+ p2[i] = ';';
+ p2[i+1] = '\0';
+ p2 = strcat(p2, value);
+ p3 = (wchar_t *) vObjectUStringZValue(curProp);
+ free(p3);
+ setVObjectUStringZValue_(curProp,fakeUnicode(p2,0));
+ deleteStr(p2);
+ } else {
+ setVObjectUStringZValue_(curProp,fakeUnicode(value,0));
}
}
+ }
deleteStr(value);
}