Changeset 3511

Show
Ignore:
Timestamp:
03/19/08 15:32:58
Author:
pvanhoof
Message:

Bugfix in case the two dirs are not on the same mountpoint

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-maildir-folder.c

    r3510 r3511  
    118118maildir_transfer_messages_to (CamelFolder *source, GPtrArray *uids, CamelFolder *dest, GPtrArray **transferred_uids, gboolean delete_originals, CamelException *ex) 
    119119{ 
     120        gboolean fallback = FALSE; 
     121 
    120122        if (delete_originals && CAMEL_IS_MAILDIR_FOLDER (source) && CAMEL_IS_MAILDIR_FOLDER (dest)) { 
    121123                gint i; 
     
    149151                        camel_message_info_free (info); 
    150152 
    151                         if (rename (s_filename, d_filename) != 0) 
    152                                 camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM_IO_WRITE, 
     153                        if (g_rename (s_filename, d_filename) != 0) 
     154                                if (errno == EXDEV) { 
     155                                        i = uids->len + 1; 
     156                                        fallback = TRUE; 
     157                                } else 
     158                                        camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM_IO_WRITE, 
    153159                                                     _("Cannot transfer message to destination folder")); 
    154160                        else { 
     
    169175 
    170176        } else 
     177                fallback = TRUE; 
     178 
     179        if (fallback) 
    171180                ((CamelFolderClass *)parent_class)->transfer_messages_to (source, uids, dest, transferred_uids, delete_originals, ex); 
    172181 
  • trunk/tests/c-demo/tny-demoui-summary-view.c

    r3510 r3511  
    16351635                tny_list_prepend (headers, (GObject *) info->header); 
    16361636                tny_folder_transfer_msgs_async (folder, headers, info->to_folder,  
    1637                         TRUE, NULL, NULL, user_data); 
     1637                        FALSE, NULL, NULL, user_data); 
    16381638                g_object_unref (headers); 
    16391639        }