aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/importers/icalendar-importer.c
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@ximian.com>2003-04-03 00:58:12 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2003-04-03 00:58:12 +0800
commitf00811036388bcd351175cedc7eeda618a99cbb2 (patch)
treee6fa8fb97dfa943b3dee55631f3bba15389efa91 /calendar/importers/icalendar-importer.c
parent7cbc883d3d714e144be20182eb8c797c0091e7f2 (diff)
downloadgsoc2013-evolution-f00811036388bcd351175cedc7eeda618a99cbb2.tar.gz
gsoc2013-evolution-f00811036388bcd351175cedc7eeda618a99cbb2.tar.zst
gsoc2013-evolution-f00811036388bcd351175cedc7eeda618a99cbb2.zip
Fixes #39262
2003-04-02 Rodrigo Moya <rodrigo@ximian.com> Fixes #39262 * importers/icalendar-importer.c (load_file_fn, vcal_load_file_fn): use folder_type argument to determine what to import. svn path=/trunk/; revision=20647
Diffstat (limited to 'calendar/importers/icalendar-importer.c')
-rw-r--r--calendar/importers/icalendar-importer.c40
1 files changed, 33 insertions, 7 deletions
diff --git a/calendar/importers/icalendar-importer.c b/calendar/importers/icalendar-importer.c
index a6d99379dc..59d529732d 100644
--- a/calendar/importers/icalendar-importer.c
+++ b/calendar/importers/icalendar-importer.c
@@ -279,7 +279,7 @@ load_file_fn (EvolutionImporter *importer,
const char *folder_type,
void *closure)
{
- char *contents;
+ char *contents, *f;
gboolean ret = FALSE;
ICalImporter *ici = (ICalImporter *) closure;
@@ -287,6 +287,18 @@ load_file_fn (EvolutionImporter *importer,
contents = read_file (filename);
+ if (!strcmp (folder_type, "calendar")) {
+ ici->folder_contains_events = TRUE;
+ ici->folder_contains_tasks = FALSE;
+
+ f = g_strdup ("calendar.ics");
+ } else {
+ ici->folder_contains_events = FALSE;
+ ici->folder_contains_tasks = TRUE;
+
+ f = g_strdup ("tasks.ics");
+ }
+
/* parse the file */
if (contents) {
icalcomponent *icalcomp;
@@ -296,9 +308,8 @@ load_file_fn (EvolutionImporter *importer,
char *real_uri;
if (!g_strncasecmp (physical_uri, "file", 4) &&
- g_strcasecmp (physical_uri + (strlen (physical_uri) - strlen ("calendar.ics")),
- "calendar.ics")) {
- real_uri = g_concat_dir_and_file (physical_uri, "calendar.ics");
+ g_strcasecmp (physical_uri + (strlen (physical_uri) - strlen (f)), f)) {
+ real_uri = g_concat_dir_and_file (physical_uri, f);
} else
real_uri = g_strdup (physical_uri);
@@ -313,6 +324,7 @@ load_file_fn (EvolutionImporter *importer,
}
g_free (contents);
+ g_free (f);
return ret;
}
@@ -419,19 +431,31 @@ vcal_load_file_fn (EvolutionImporter *importer,
void *closure)
{
gboolean ret = FALSE;
+ char *f;
ICalImporter *ici = (ICalImporter *) closure;
icalcomponent *icalcomp;
g_return_val_if_fail (ici != NULL, FALSE);
+ if (!strcmp (folder_type, "calendar")) {
+ ici->folder_contains_events = TRUE;
+ ici->folder_contains_tasks = FALSE;
+
+ f = g_strdup ("calendar.ics");
+ } else {
+ ici->folder_contains_events = FALSE;
+ ici->folder_contains_tasks = TRUE;
+
+ f = g_strdup ("tasks.ics");
+ }
+
icalcomp = load_vcalendar_file (filename);
if (icalcomp) {
char *real_uri;
if (!g_strncasecmp (physical_uri, "file", 4) &&
- g_strcasecmp (physical_uri + (strlen (physical_uri) - strlen ("calendar.ics")),
- "calendar.ics")) {
- real_uri = g_concat_dir_and_file (physical_uri, "calendar.ics");
+ g_strcasecmp (physical_uri + (strlen (physical_uri) - strlen (f)), f)) {
+ real_uri = g_concat_dir_and_file (physical_uri, f);
} else
real_uri = g_strdup (physical_uri);
@@ -444,6 +468,8 @@ vcal_load_file_fn (EvolutionImporter *importer,
g_free (real_uri);
}
+ g_free (f);
+
return ret;
}