diff options
author | Damon Chaplin <damon@ximian.com> | 2002-02-07 07:16:12 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2002-02-07 07:16:12 +0800 |
commit | d64e7cf12f73a73a0c5b99806fd695d428bea72f (patch) | |
tree | e2c8ce675a8ff8c7b8683996f12281ab973071c9 /libical/src/libicalvcal/vcc.y | |
parent | 411fd545df9ba41609b00e67e96369f493fe0610 (diff) | |
download | gsoc2013-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.y | 24 |
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); } |