diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-01 02:13:45 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-01 02:13:45 +0800 |
commit | 8ad89adf8ca7d1208473a8028036d270b6ad0b30 (patch) | |
tree | 3d7718059c99a55bac407e49852bb38c9b26eb5a /camel/providers/imap/camel-imap-folder.c | |
parent | 155fcd81538ef9aa63e6e6d4b585d5dd528b4e47 (diff) | |
download | gsoc2013-evolution-8ad89adf8ca7d1208473a8028036d270b6ad0b30.tar.gz gsoc2013-evolution-8ad89adf8ca7d1208473a8028036d270b6ad0b30.tar.zst gsoc2013-evolution-8ad89adf8ca7d1208473a8028036d270b6ad0b30.zip |
New-and-improved version of get_uid_set() from camel-imap-folder.c. Looks
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set):
New-and-improved version of get_uid_set() from
camel-imap-folder.c. Looks at the summary as it goes so that if
you ask for messages 5, 6, 8, and 9, and there is no message 7,
then you get "5:9" instead of "5:6,8:9"
* providers/imap/camel-imap-folder.c (imap_copy_messages_to): Use
imap_uid_array_to_set() rather than get_uid_set().
(get_uid_set): Gone
svn path=/trunk/; revision=9632
Diffstat (limited to 'camel/providers/imap/camel-imap-folder.c')
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 39 |
1 files changed, 1 insertions, 38 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index 9f325aae56..89ac95fea5 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -698,43 +698,6 @@ imap_append_message (CamelFolder *folder, CamelMimeMessage *message, camel_imap_response_free (response); } -static char * -get_uid_set (GPtrArray *uids) -{ - /* Note: the only thing that might be good to do here is to - not use atoi() and use strtoul() or something */ - int i, last_uid, this_uid; - gboolean range = FALSE; - GString *gset; - char *set; - - gset = g_string_new (uids->pdata[0]); - last_uid = atoi (uids->pdata[0]); - for (i = 1; i < uids->len; i++) { - this_uid = atoi (uids->pdata[i]); - if (this_uid != last_uid + 1) { - if (range) { - g_string_sprintfa (gset, ":%d", last_uid); - range = FALSE; - } - - g_string_sprintfa (gset, ",%d", this_uid); - } else { - range = TRUE; - } - - last_uid = this_uid; - } - - if (range) - g_string_sprintfa (gset, ":%d", this_uid); - - set = gset->str; - g_string_free (gset, FALSE); - - return set; -} - static void imap_copy_messages_to (CamelFolder *source, GPtrArray *uids, CamelFolder *destination, CamelException *ex) @@ -753,7 +716,7 @@ imap_copy_messages_to (CamelFolder *source, GPtrArray *uids, /* Now copy the messages */ CAMEL_IMAP_STORE_LOCK(store, command_lock); - set = get_uid_set (uids); + set = imap_uid_array_to_set (source->summary, uids); response = camel_imap_command (store, source, ex, "UID COPY %s %S", set, destination->full_name); |