* src/folder.c
use normal message remove function if a folder has no function
to remove all messages
* src/folderview.c
fix memory leak
+2005-01-27 [christoph] 1.0.0cvs20
+
+ * src/folder.c
+ use normal message remove function if a folder has no function
+ to remove all messages
+
+ * src/folderview.c
+ fix memory leak
+
2005-01-27 [colin] 1.0.0cvs19
* src/procmime.c
2005-01-27 [colin] 1.0.0cvs19
* src/procmime.c
( cvs diff -u -r 1.175 -r 1.176 src/procmsg.c; cvs diff -u -r 1.72 -r 1.73 src/procmsg.h; cvs diff -u -r 1.468 -r 1.469 src/compose.c; ) > 1.0.0cvs17.patchset
( cvs diff -u -r 1.469 -r 1.470 src/compose.c; ) > 1.0.0cvs18.patchset
( cvs diff -u -r 1.102 -r 1.103 src/procmime.c; ) > 1.0.0cvs19.patchset
( cvs diff -u -r 1.175 -r 1.176 src/procmsg.c; cvs diff -u -r 1.72 -r 1.73 src/procmsg.h; cvs diff -u -r 1.468 -r 1.469 src/compose.c; ) > 1.0.0cvs17.patchset
( cvs diff -u -r 1.469 -r 1.470 src/compose.c; ) > 1.0.0cvs18.patchset
( cvs diff -u -r 1.102 -r 1.103 src/procmime.c; ) > 1.0.0cvs19.patchset
+( cvs diff -u -r 1.262 -r 1.263 src/folder.c; cvs diff -u -r 1.256 -r 1.257 src/folderview.c; ) > 1.0.0cvs20.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
EXTRA_RELEASE=
if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
EXTRA_RELEASE=
if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
gint folder_item_open(FolderItem *item)
{
gchar *buf;
gint folder_item_open(FolderItem *item)
{
gchar *buf;
- if((item->folder->klass->scan_required != NULL) && (item->folder->klass->scan_required(item->folder, item))) {
+ if((item->folder->klass->scan_required != NULL) &&
+ (item->folder->klass->scan_required(item->folder, item))) {
folder_item_scan_full(item, TRUE);
}
folder_item_syncronize_flags(item);
folder_item_scan_full(item, TRUE);
}
folder_item_syncronize_flags(item);
- g_return_val_if_fail(folder->klass->remove_all_msg != NULL, -1);
+ if (folder->klass->remove_all_msg != NULL) {
+ result = folder->klass->remove_all_msg(folder, item);
- result = folder->klass->remove_all_msg(folder, item);
+ if (result == 0) {
+ folder_item_free_cache(item);
+ item->cache = msgcache_new();
+ }
+ } else {
+ MsgInfoList *msglist;
- if (result == 0) {
- folder_item_free_cache(item);
- item->cache = msgcache_new();
+ msglist = folder_item_get_msg_list(item);
+ result = folder_item_remove_msgs(item, msglist);
+ procmsg_msg_list_free(msglist);
+ }
item->new_msgs = 0;
item->unread_msgs = 0;
item->unreadmarked_msgs = 0;
item->new_msgs = 0;
item->unread_msgs = 0;
item->unreadmarked_msgs = 0;
for (cur = mlist ; cur != NULL ; cur = cur->next) {
MsgInfo * msginfo = (MsgInfo *) cur->data;
partial_mark_for_delete(msginfo);
for (cur = mlist ; cur != NULL ; cur = cur->next) {
MsgInfo * msginfo = (MsgInfo *) cur->data;
partial_mark_for_delete(msginfo);
- procmsg_msginfo_free(msginfo);
+ procmsg_msg_list_free(mlist);
folder_item_remove_all_msg(item);
}
folder_item_remove_all_msg(item);
}