aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client/cal-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r--calendar/cal-client/cal-client.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c
index d30e13089e..60063a72b2 100644
--- a/calendar/cal-client/cal-client.c
+++ b/calendar/cal-client/cal-client.c
@@ -796,7 +796,7 @@ static char *
get_default_uri (gboolean tasks)
{
Bonobo_ConfigDatabase db;
- char *uri, *fall_back = NULL;
+ char *uri, *file_uri;
CORBA_Environment ev;
CORBA_exception_init (&ev);
@@ -808,19 +808,24 @@ get_default_uri (gboolean tasks)
return NULL;
}
- CORBA_exception_free (&ev);
-
- fall_back = get_fall_back_uri (tasks);
if (tasks)
- uri = bonobo_config_get_string_with_default (db, "/Calendar/DefaultTasksUri",
- fall_back, NULL);
+ uri = bonobo_config_get_string (db, "/DefaultFolders/tasks_uri", &ev);
else
- uri = bonobo_config_get_string_with_default (db, "/Calendar/DefaultUri",
- fall_back, NULL);
- g_free (fall_back);
-
+ uri = bonobo_config_get_string (db, "/DefaultFolders/calendar_uri", &ev);
bonobo_object_release_unref (db, NULL);
+ if (BONOBO_EX (&ev)) {
+ CORBA_exception_free (&ev);
+ uri = get_fall_back_uri (tasks);
+ } else if (!strncmp (uri, "file:", 5)) {
+ for (file_uri = uri + 5; *file_uri == '/'; file_uri++)
+ ;
+ file_uri = g_strdup_printf ("/%s/%s.ics", file_uri,
+ tasks ? "tasks" : "calendar");
+ g_free (uri);
+ uri = file_uri;
+ }
+
return uri;
}