[evolution-data-server/gnome-3-24] Bug 781549 - [IMAPx] Treat UID as unsigned integer



commit 64bb10d857ed7be1fa64faedca130aa135bb0d6f
Author: Milan Crha <mcrha redhat com>
Date:   Fri Apr 21 09:15:02 2017 +0200

    Bug 781549 - [IMAPx] Treat UID as unsigned integer

 src/camel/camel-folder.c                        |    2 +-
 src/camel/providers/imapx/camel-imapx-server.c  |   16 ++++++++--------
 src/camel/providers/imapx/camel-imapx-summary.c |    6 +++---
 3 files changed, 12 insertions(+), 12 deletions(-)
---
diff --git a/src/camel/camel-folder.c b/src/camel/camel-folder.c
index 67fc4de..b6efd2e 100644
--- a/src/camel/camel-folder.c
+++ b/src/camel/camel-folder.c
@@ -864,7 +864,7 @@ folder_cmp_uids (CamelFolder *folder,
        g_return_val_if_fail (uid1 != NULL, 0);
        g_return_val_if_fail (uid2 != NULL, 0);
 
-       return strtoul (uid1, NULL, 10) - strtoul (uid2, NULL, 10);
+       return g_ascii_strtoull (uid1, NULL, 10) - g_ascii_strtoull (uid2, NULL, 10);
 }
 
 static void
diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
index 1940c6e..a980f03 100644
--- a/src/camel/providers/imapx/camel-imapx-server.c
+++ b/src/camel/providers/imapx/camel-imapx-server.c
@@ -495,9 +495,9 @@ imapx_uidset_done (struct _uidset_state *ss,
                if (ss->entries > 0)
                        camel_imapx_command_add (ic, ",");
                if (ss->last == ss->start)
-                       camel_imapx_command_add (ic, "%d", ss->last);
+                       camel_imapx_command_add (ic, "%u", ss->last);
                else
-                       camel_imapx_command_add (ic, "%d:%d", ss->start, ss->last);
+                       camel_imapx_command_add (ic, "%u:%u", ss->start, ss->last);
        }
 
        ret = ss->last != 0;
@@ -538,13 +538,13 @@ imapx_uidset_add (struct _uidset_state *ss,
                                        e (ic->is->priv->tagprefix, " ,next\n");
                                        if (ss->entries > 0)
                                                camel_imapx_command_add (ic, ",");
-                                       camel_imapx_command_add (ic, "%d", ss->start);
+                                       camel_imapx_command_add (ic, "%u", ss->start);
                                        ss->entries++;
                                } else {
                                        e (ic->is->priv->tagprefix, " :range\n");
                                        if (ss->entries > 0)
                                                camel_imapx_command_add (ic, ",");
-                                       camel_imapx_command_add (ic, "%d:%d", ss->start, ss->last);
+                                       camel_imapx_command_add (ic, "%u:%u", ss->start, ss->last);
                                        ss->entries += 2;
                                }
                                ss->start = uidn;
@@ -4392,14 +4392,14 @@ camel_imapx_server_copy_message_sync (CamelIMAPXServer *is,
                                                gchar *uid;
                                                gboolean is_new = FALSE;
 
-                                               uid = g_strdup_printf ("%d", g_array_index 
(copyuid_status->u.copyuid.uids, guint32, ii));
+                                               uid = g_strdup_printf ("%u", g_array_index 
(copyuid_status->u.copyuid.uids, guint32, ii));
                                                source_info = g_hash_table_lookup (source_infos, uid);
                                                g_free (uid);
 
                                                if (!source_info)
                                                        continue;
 
-                                               uid = g_strdup_printf ("%d", g_array_index 
(copyuid_status->u.copyuid.copied_uids, guint32, ii));
+                                               uid = g_strdup_printf ("%u", g_array_index 
(copyuid_status->u.copyuid.copied_uids, guint32, ii));
                                                destination_info = camel_folder_summary_get 
(camel_folder_get_folder_summary (folder), uid);
 
                                                if (!destination_info) {
@@ -4684,11 +4684,11 @@ camel_imapx_server_append_message_sync (CamelIMAPXServer *is,
                old_uid = g_strdup (camel_message_info_get_uid (info));
 
                if (ic->status && ic->status->condition == IMAPX_APPENDUID) {
-                       c (is->priv->tagprefix, "Got appenduid %d %d\n", (gint) 
ic->status->u.appenduid.uidvalidity, (gint) ic->status->u.appenduid.uid);
+                       c (is->priv->tagprefix, "Got appenduid %u %u\n", (guint32) 
ic->status->u.appenduid.uidvalidity, ic->status->u.appenduid.uid);
                        if (ic->status->u.appenduid.uidvalidity == uidvalidity) {
                                gchar *uid;
 
-                               uid = g_strdup_printf ("%u", (guint) ic->status->u.appenduid.uid);
+                               uid = g_strdup_printf ("%u", ic->status->u.appenduid.uid);
                                camel_message_info_set_uid (mi, uid);
 
                                cur = camel_data_cache_get_filename  (imapx_folder->cache, "cur", uid);
diff --git a/src/camel/providers/imapx/camel-imapx-summary.c b/src/camel/providers/imapx/camel-imapx-summary.c
index b1af6bf..a59d884 100644
--- a/src/camel/providers/imapx/camel-imapx-summary.c
+++ b/src/camel/providers/imapx/camel-imapx-summary.c
@@ -132,7 +132,7 @@ sort_uid_cmp (gpointer enc,
 {
        static gchar *sa1 = NULL, *sa2 = NULL;
        static gint l1 = 0, l2 = 0;
-       gint a1, a2;
+       guint64 a1, a2;
 
        if (l1 < len1 + 1) {
                sa1 = g_realloc (sa1, len1 + 1);
@@ -145,8 +145,8 @@ sort_uid_cmp (gpointer enc,
        strncpy (sa1, data1, len1); sa1[len1] = 0;
        strncpy (sa2, data2, len2); sa2[len2] = 0;
 
-       a1 = strtoul (sa1, NULL, 10);
-       a2 = strtoul (sa2, NULL, 10);
+       a1 = g_ascii_strtoull (sa1, NULL, 10);
+       a2 = g_ascii_strtoull (sa2, NULL, 10);
 
        return (a1 < a2) ? -1 : (a1 > a2) ? 1 : 0;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]