+#if 0
+static void imap_uidplus_copy(IMAPSession *session, MsgInfo *msginfo,
+ const gchar *destfolder, const gchar *okmsginfo)
+{
+ unsigned int olduid, newuid;
+ IMAPFlags iflags = 0;
+
+ if (okmsginfo == NULL)
+ return;
+
+ if (sscanf(okmsginfo, "%*u OK [COPYUID %*llu %u %u]", &olduid, &newuid) != 2)
+ return;
+
+ if (olduid != msginfo->msgnum) /* this should NEVER happen */
+ return;
+
+ if (imap_select(session, IMAP_FOLDER(msginfo->folder->folder), destfolder,
+ NULL, NULL, NULL, NULL) != IMAP_SUCCESS)
+ return;
+
+ if (msginfo->flags.perm_flags & MSG_MARKED) iflags |= IMAP_FLAG_FLAGGED;
+ if (msginfo->flags.perm_flags & MSG_REPLIED) iflags |= IMAP_FLAG_ANSWERED;
+ if (iflags)
+ imap_set_message_flags(session, newuid, newuid, iflags, TRUE);
+
+ if (msginfo->flags.perm_flags & MSG_UNREAD)
+ imap_set_message_flags(session, newuid, newuid, IMAP_FLAG_SEEN, FALSE);
+
+ imap_select(session, IMAP_FOLDER(msginfo->folder->folder), msginfo->folder->path,
+ NULL, NULL, NULL, NULL);
+}
+#endif
+
+static gint imap_cmd_copy(IMAPSession *session,
+ gint32 msgnum, const gchar *destfolder, gint32 *new_uid)