aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@helixcode.com>2000-03-28 16:05:08 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2000-03-28 16:05:08 +0800
commit8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68 (patch)
tree5d1d1b5f14f7f5f28893bf4f2a3cd14541642b58 /calendar/pcs
parent8b355664ab9cabed3c0dd1ec25dba20a8e2827a9 (diff)
downloadgsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar.gz
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar.bz2
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar.lz
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar.xz
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.tar.zst
gsoc2013-evolution-8f6adf987eabf47bbe8266f6a0f29de1e7ce2e68.zip
Use ical_object_to_string().
2000-03-27 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend.c (cal_backend_get_object): Use ical_object_to_string(). * cal-util/calobj.c (ical_object_to_string): Moved over from pcs/cal-backend.c (was string_from_ical_object). (get_calendar_base_vobject): Likewise, moved over from pcs/cal-backend.c. * cal-util/cal-util.c: Removed string_to_ical_object(); the correct function is in calobj.[ch], called ical_object_find_in_string(). Removed ical_object_to_string, since we now implement it in calobj.c. * cal-util/calobj.c: Removed ical_object_new_from_string(); see above. * idl/evolution-calendar.idl (CalObjInstance): Calendar object instances now contain only the UID for the object, not the whole string representation of the object. This allows clients to implement caching of objects if they wish. * pcs/cal.c (Cal_get_events_in_range): Likewise. * pcs/cal-backend.c (build_event_list): Likewise. * cal-client/cal-client.c (cal_client_get_events_in_range): Likewise. * cal-util/cal-util.h (CalObjInstance): Likewise. * cal-util/cal-util.c (cal_obj_instance_list_free): Likewise. (cal_obj_uid_list_free): Assert that the UIDs in the list are not NULL. * pcs/tlacuache.gnorba (repo_id): The calendar factory also supports the Unknown interface. svn path=/trunk/; revision=2211
Diffstat (limited to 'calendar/pcs')
-rw-r--r--calendar/pcs/cal-backend.c74
-rw-r--r--calendar/pcs/cal.c1
-rw-r--r--calendar/pcs/tlacuache.gnorba2
3 files changed, 4 insertions, 73 deletions
diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c
index 4406fac599..2d8807d08a 100644
--- a/calendar/pcs/cal-backend.c
+++ b/calendar/pcs/cal-backend.c
@@ -28,11 +28,6 @@
-/* VCalendar product ID */
-#define PRODID "-//Helix Code//NONSGML Tlacuache//EN"
-
-
-
/* Private part of the CalBackend structure */
typedef struct {
/* URI where the calendar data is stored */
@@ -391,59 +386,6 @@ load_from_vobject (CalBackend *backend, VObject *vobject)
}
}
-/* Creates a VObject with the base information of a calendar */
-static VObject *
-get_calendar_base_vobject (CalBackend *backend)
-{
- VObject *vobj;
- time_t now;
- struct tm tm;
-
- /* We call localtime for the side effect of setting tzname */
-
- now = time (NULL);
- tm = *localtime (&now);
-
- vobj = newVObject (VCCalProp);
-
- addPropValue (vobj, VCProdIdProp, PRODID);
-
-#if defined (HAVE_TM_ZONE)
- addPropValue (vobj, VCTimeZoneProp, tm.tm_zone);
-#elif defined (HAVE_TZNAME)
- addPropValue (vobj, VCTimeZoneProp, tzname[0]);
-#endif
-
- /* Per the vCalendar spec, this must be "1.0" */
- addPropValue (vobj, VCVersionProp, "1.0");
-
- return vobj;
-}
-
-/* Builds the string representation of a complete calendar object wrapping the
- * specified object --- a complete calendar is needed because of the timezone
- * information. The return value must be freed with free(), not g_free(), since
- * the internal implementation calls writeMemVObject() from libversit, which
- * uses realloc() to allocate this string.
- */
-static char *
-string_from_ical_object (CalBackend *backend, iCalObject *ico)
-{
- VObject *vcalobj, *vobj;
- char *buf;
-
- vcalobj = get_calendar_base_vobject (backend);
- vobj = ical_object_to_vobject (ico);
- addVObjectProp (vcalobj, vobj);
-
- buf = writeMemVObject (NULL, NULL, vcalobj);
-
- cleanVObject (vcalobj);
- cleanStrTbl ();
-
- return buf;
-}
-
/**
@@ -775,7 +717,7 @@ cal_backend_get_object (CalBackend *backend, const char *uid)
{
CalBackendPrivate *priv;
iCalObject *ico;
- char *buf, *retval;
+ char *buf;
g_return_val_if_fail (backend != NULL, NULL);
g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL);
@@ -792,17 +734,8 @@ cal_backend_get_object (CalBackend *backend, const char *uid)
if (!ico)
return NULL;
- /* string_from_ical_object() uses writeMemVObject(), which uses
- * realloc(), so we must free its result with free() instead of
- * g_free(). We take a copy of the result so that callers can use the
- * normal glib function to free it.
- */
-
- buf = string_from_ical_object (backend, ico);
- retval = g_strdup (buf);
- free (buf);
-
- return retval;
+ buf = ical_object_to_string (ico);
+ return buf;
}
struct get_uids_closure {
@@ -893,7 +826,6 @@ build_event_list (iCalObject *ico, time_t start, time_t end, void *data)
g_assert (ico->uid != NULL);
icoi->uid = g_strdup (ico->uid);
- icoi->calobj = string_from_ical_object (c->backend, ico);
icoi->start = start;
icoi->end = end;
diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c
index 8263bfe491..0dd3e81649 100644
--- a/calendar/pcs/cal.c
+++ b/calendar/pcs/cal.c
@@ -294,7 +294,6 @@ Cal_get_events_in_range (PortableServer_Servant servant,
corba_icoi = &seq->_buffer[i];
corba_icoi->uid = CORBA_string_dup (icoi->uid);
- corba_icoi->calobj = CORBA_string_dup (icoi->calobj);
corba_icoi->start = icoi->start;
corba_icoi->end = icoi->end;
}
diff --git a/calendar/pcs/tlacuache.gnorba b/calendar/pcs/tlacuache.gnorba
index da0f4ed552..8f600305d7 100644
--- a/calendar/pcs/tlacuache.gnorba
+++ b/calendar/pcs/tlacuache.gnorba
@@ -1,5 +1,5 @@
[evolution:calendar-factory]
type=exe
-repo_id=IDL:Evolution/Calendar/CalFactory:1.0
+repo_id=IDL:Evolution/Calendar/CalFactory:1.0 IDL:Bonobo/Unknown:1.0
description=Calendar factory for the Personal Calendar Server
location_info=tlacuache