From f7027562c816a9e975991020588547dae50efc15 Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 17 Aug 2010 07:09:27 +0000 Subject: modified ldif parser. Fixed OE import on startup. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2672 ee746299-78ed-0310-b773-934348b2243d --- src/setup.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'src/setup.c') diff --git a/src/setup.c b/src/setup.c index f761c77e..e9b19eba 100644 --- a/src/setup.c +++ b/src/setup.c @@ -1114,7 +1114,7 @@ static GSList *get_dbx_source(void) } #endif /* G_OS_WIN32 */ -gint setup_import(void) +gint setup_import_data(void) { #ifdef G_OS_WIN32 AlertValue val; @@ -1123,9 +1123,9 @@ gint setup_import(void) gchar *src; Folder *folder; FolderItem *parent, *dest; - gint ok; + gint ok = 0; - debug_print("setup_import\n"); + debug_print("setup_import_data\n"); src_list = get_dbx_source(); if (!src_list) @@ -1139,19 +1139,22 @@ gint setup_import(void) folder = folder_get_default_folder(); if (!folder) { g_warning("Cannot get default folder"); + ok = -1; goto finish; } parent = FOLDER_ITEM(folder->node->data); if (!parent) { g_warning("Cannot get root folder"); + ok = -1; goto finish; } - dest = folder_find_child_item_by_name(parent, "Imported"); + dest = folder_find_child_item_by_name(parent, _("Imported")); if (!dest) { - dest = folder->klass->create_folder(folder, parent, "Imported"); + dest = folder->klass->create_folder(folder, parent, _("Imported")); } if (!dest) { g_warning("Cannot create a folder"); + ok = -1; goto finish; } parent = dest; @@ -1160,7 +1163,9 @@ gint setup_import(void) for (cur = src_list; cur != NULL; cur = cur->next) { ident = (struct Identity *)cur->data; - dest = folder->klass->create_folder(folder, parent, ident->name); + dest = folder_find_child_item_by_name(parent, ident->name); + if (!dest) + dest = folder->klass->create_folder(folder, parent, ident->name); if (!dest) continue; folderview_append_item(folderview_get(), NULL, dest, TRUE); @@ -1178,7 +1183,12 @@ finish: g_free(ident); } g_slist_free(src_list); -#endif /* G_OS_WIN32 */ + if (ok == -1) + alertpanel_error(_("Failed to import the mail data.")); + + return ok; +#else /* G_OS_WIN32 */ return 0; +#endif /* G_OS_WIN32 */ } -- cgit v1.2.3