static gchar * mbox_get_folderitem_name(gchar * name);
MsgInfo *mbox_fetch_msginfo(Folder *folder, FolderItem *item, gint num);
-GSList *mbox_get_num_list(Folder *folder, FolderItem *item);
+gint mbox_get_num_list(Folder *folder, FolderItem *item, GSList **list);
gboolean mbox_check_msgnum_validity(Folder *folder, FolderItem *item);
Folder *mbox_folder_new(const gchar *name, const gchar *path)
folder->create_folder = mbox_create_folder;
folder->rename_folder = mbox_rename_folder;
folder->remove_folder = mbox_remove_folder;
+ folder->destroy = mbox_folder_destroy;
folder->check_msgnum_validity
= mbox_check_msgnum_validity;
}
g_warning(_("can't create %s\n"), lockfile);
unlink(lockfile);
g_free(lockfile);
+ g_free(locklink);
return -1;
}
if (retry == 0)
}
unlink(lockfile);
g_free(lockfile);
-
+ g_free(locklink);
+
return TRUE;
}
mf->count = msgnum;
mailfile_error = MAILFILE_ERROR_NO_ERROR;
-
+
return mf;
}
msg->flags = info->flags;
cache->modification = TRUE;
+
}
fclose(new_fp);
mbox_unlock_file(mbox_fp, mbox);
fclose(mbox_fp);
+ g_free(new);
return -1;
}
mbox_cache_synchronize(mbox, FALSE);
+ g_free(new);
+
return result;
}
fclose(new_fp);
mbox_unlock_file(mbox_fp, mbox);
fclose(mbox_fp);
+ g_free(new);
return -1;
}
debug_print("%i messages written - %s\n", count, mbox);
mbox_cache_synchronize(mbox, FALSE);
-
+ g_free(new);
return result;
}
return 0;
}
-GSList *mbox_get_num_list(Folder *folder, FolderItem *item)
+gint mbox_get_num_list(Folder *folder, FolderItem *item, GSList **mlist)
{
- GSList *mlist;
GList * l;
FILE * fp;
gchar * mbox_path;
-
- mlist = NULL;
+ gint nummsgs = 0;
mbox_path = mbox_folder_get_path(item);
if (mbox_path == NULL)
- return NULL;
+ return -1;
mbox_purge_deleted(mbox_path);
if (fp == NULL) {
g_free(mbox_path);
- return NULL;
+ return -1;
}
mbox_lockread_file(fp, mbox_path);
msg = (struct _message *) l->data;
if (MSG_IS_INVALID(msg->flags) || !MSG_IS_REALLY_DELETED(msg->flags)) {
- mlist = g_slist_append(mlist, GINT_TO_POINTER(msg->msgnum));
+ *mlist = g_slist_append(*mlist, GINT_TO_POINTER(msg->msgnum));
+ nummsgs++;
} else {
MSG_SET_PERM_FLAGS(msg->flags, MSG_REALLY_DELETED);
}
fclose(fp);
- return mlist;
+ return nummsgs;
}
MsgInfo *mbox_fetch_msginfo(Folder *folder, FolderItem *item, gint num)