2005-11-14 [wwp] 1.9.100cvs12
[claws.git] / src / folder.c
index 352f1ba4f95a03fad2a808cbd7645ade61cd1b56..d88beaf188ace4e5fbdc7e19708a4ae346d0aae8 100644 (file)
@@ -2744,8 +2744,20 @@ static gint do_copy_msgs(FolderItem *dest, GSList *msglist, gboolean remove_sour
                        return -1;
                }
        } else {
-               for (l = msglist ; l != NULL ; l = g_slist_next(l)) {
-                       MsgInfo * msginfo = (MsgInfo *) l->data;
+               MsgInfo * msginfo;
+               l = msglist;
+
+               /* immediately stop if src and dest folders are identical */
+               if (l != NULL) {
+                       msginfo = (MsgInfo *) l->data;
+                       if (msginfo != NULL && msginfo->folder == dest) {
+                               g_relation_destroy(relation);
+                               return -1;
+                       }
+               }
+
+               for (; l != NULL ; l = g_slist_next(l)) {
+                       msginfo = (MsgInfo *) l->data;
 
                        num = folder->klass->copy_msg(folder, dest, msginfo);
                        if (num > 0)