From 52e16a43bfc04a5d8a35102e4d65d238caa325f3 Mon Sep 17 00:00:00 2001 From: Alfons Hoogervorst Date: Sun, 27 Jan 2002 14:32:18 +0000 Subject: [PATCH] implement news->remove_msg() --- ChangeLog.claws | 7 +++++++ configure.in | 2 +- src/folder.c | 5 ++++- src/news.c | 23 +++++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index c490a8d08..5012b2cbf 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,10 @@ +2002-01-27 [alfons] 0.7.0claws33 + + * src/folder.c + add extra checks + * src/news.c + implement remove_msg() + 2002-01-27 [alfons] 0.7.0claws32 * src/procmsg.h diff --git a/configure.in b/configure.in index 45412b7e6..5aa77272d 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=7 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws32 +EXTRA_VERSION=claws33 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/folder.c b/src/folder.c index 4ee984c6f..31f702aa6 100644 --- a/src/folder.c +++ b/src/folder.c @@ -680,8 +680,11 @@ gint folder_item_move_msg(FolderItem *dest, MsgInfo *msginfo) src_folder = msginfo->folder->folder; num = folder->copy_msg(folder, dest, msginfo); - + if (num != -1) { + /* CLAWS */ + g_assert(src_folder); + g_assert(src_folder->remove_msg); src_folder->remove_msg(src_folder, msginfo->folder, msginfo->msgnum); diff --git a/src/news.c b/src/news.c index 086b369cb..abb3de512 100644 --- a/src/news.c +++ b/src/news.c @@ -85,6 +85,9 @@ static GSList *news_delete_old_articles (GSList *alist, gint first); static void news_delete_all_articles (FolderItem *item); +static gint news_remove_msg (Folder *folder, + FolderItem *item, + gint num); Folder *news_folder_new(const gchar *name, const gchar *path) { @@ -111,6 +114,7 @@ static void news_folder_init(Folder *folder, const gchar *name, folder->get_msg_list = news_get_article_list; folder->fetch_msg = news_fetch_msg; folder->scan = news_scan_group; + folder->remove_msg = news_remove_msg; } static Session *news_session_new(const gchar *server, gushort port, @@ -503,6 +507,25 @@ static gint news_get_article_cmd(NNTPSession *session, const gchar *cmd, return 0; } +static gint news_remove_msg(Folder *folder, FolderItem *item, gint num) +{ + gchar *file; + + g_return_val_if_fail(item != NULL, -1); + + file = news_fetch_msg(folder, item, num); + g_return_val_if_fail(file != NULL, -1); + + if (unlink(file) < 0) { + FILE_OP_ERROR(file, "unlink"); + g_free(file); + return -1; + } + + g_free(file); + return 0; +} + static gint news_get_article(NNTPSession *session, gint num, gchar *filename) { return news_get_article_cmd(session, "ARTICLE", num, filename); -- 2.25.1