static void add_mailbox(GtkAction *action, gpointer callback_data) { MainWindow *mainwin = (MainWindow *) callback_data; gchar *path, *basename; Folder *folder; path = input_dialog(_("Add mailbox"), _("Input the location of mailbox.\n" "If the existing mailbox is specified, it will be\n" "scanned automatically."), "Mail"); if (!path) return; if (folder_find_from_path(path)) { alertpanel_error(_("The mailbox '%s' already exists."), path); g_free(path); return; } basename = g_path_get_basename(path); if (!folder_local_name_ok(basename)) { g_free(path); g_free(basename); return; } folder = folder_new(folder_get_class_from_string("mailmbox"), !strcmp(path, "Mail") ? _("Mailbox") : basename, path); g_free(basename); g_free(path); if (folder->klass->create_tree(folder) < 0) { alertpanel_error(_("Creation of the mailbox failed.\n" "Maybe some files already exist, or you don't have the permission to write there.")); folder_destroy(folder); return; } folder_add(folder); folder_scan_tree(folder, TRUE); folderview_set(mainwin->folderview); return; }
static void _delete_old_roots_func(gpointer data, gpointer user_data) { FolderItem *item = (FolderItem *)data; folder_destroy(item->folder); }