+2002-05-02 [hiro] 0.7.5claws4
+
+ * src/compose.c
+ compose_queue_sub():
+ check if queue folder exists (closes #550397).
+ removed directory creation since it should be handled
+ transparently.
+ * src/imap.c
+ imap_add_msg(): return UID for appended message
+ (closes #548842).
+
2002-04-30 [paul] 0.7.5claws3
* src/summaryview.c
static gint compose_queue_sub(Compose *compose, gint *msgnum, FolderItem **item, gboolean check_subject)
{
FolderItem *queue;
- gchar *tmp, *tmp2, *queue_path;
+ gchar *tmp, *tmp2;
FILE *fp, *src_fp;
GSList *cur;
gchar buf[BUFFSIZE];
}
queue = account_get_special_folder(compose->account, F_QUEUE);
+ if (!queue) {
+ g_warning(_("can't find queue folder\n"));
+ unlink(tmp);
+ g_free(tmp);
+ return -1;
+ }
folder_item_scan(queue);
- queue_path = folder_item_get_path(queue);
- if (!is_dir_exist(queue_path))
- make_dir_hier(queue_path);
if ((num = folder_item_add_msg(queue, tmp, TRUE)) < 0) {
g_warning(_("can't queue the message\n"));
unlink(tmp);
g_free(tmp);
- g_free(queue_path);
return -1;
}
unlink(tmp);
{
gchar *destdir;
IMAPSession *session;
+ gint messages, recent, unseen;
+ guint32 uid_next, uid_validity;
gint ok;
g_return_val_if_fail(folder != NULL, -1);
session = imap_session_get(folder);
if (!session) return -1;
+ ok = imap_status(session, IMAP_FOLDER(folder), dest->path,
+ &messages, &recent, &uid_next, &uid_validity, &unseen);
+ statusbar_pop_all();
+ if (ok != IMAP_SUCCESS) {
+ g_warning(_("can't append message %s\n"), file);
+ return -1;
+ }
+
destdir = imap_get_real_path(IMAP_FOLDER(folder), dest->path);
ok = imap_cmd_append(SESSION(session)->sock, destdir, file);
g_free(destdir);
FILE_OP_ERROR(file, "unlink");
}
- return 0;
+ return uid_next;
}
static gint imap_do_copy(Folder *folder, FolderItem *dest, MsgInfo *msginfo,