diff options
Diffstat (limited to 'src/libical/icalderivedvalue.c.in')
-rw-r--r-- | src/libical/icalderivedvalue.c.in | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libical/icalderivedvalue.c.in b/src/libical/icalderivedvalue.c.in index 2727e0b4..34c5488a 100644 --- a/src/libical/icalderivedvalue.c.in +++ b/src/libical/icalderivedvalue.c.in @@ -28,6 +28,7 @@ #include "icalvalueimpl.h" #include "icalerror.h" #include "icalmemory.h" +#include "icaltimezone.h" #include <errno.h> #include <stdlib.h> @@ -299,6 +300,11 @@ void icalvalue_set_datetimedate(icalvalue *value, struct icaltimetype v) impl = (struct icalvalue_impl *)value; impl->data.v_time = v; + /* preserve only built-in UTC time zone, otherwise unset any set on the 'v' */ + if(impl->data.v_time.zone != NULL && + impl->data.v_time.zone != icaltimezone_get_utc_timezone()) + impl->data.v_time.zone = NULL; + icalvalue_reset_kind(impl); } |