Add support for * VANISHED (EARLIER) [uidset...]
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 30 Jun 2010 08:39:22 +0000 (09:39 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 30 Jun 2010 08:49:39 +0000 (09:49 +0100)
(Actually just throw away anything in the parentheses).

We'll need this for QRESYNC SELECT

camel/providers/imapx/camel-imapx-server.c

index d35d7c9..e609313 100644 (file)
@@ -1230,9 +1230,26 @@ imapx_untagged(CamelIMAPXServer *imap, CamelException *ex)
                break;
        }
        case IMAPX_VANISHED: {
-               GPtrArray *uids = imapx_parse_uids(imap->stream, ex);
+               GPtrArray *uids;
                int i;
+               guint len;
+               guchar *token;
+               gint tok;
+
+               tok = camel_imapx_stream_token (imap->stream, &token, &len, ex);
+               if (camel_exception_is_set(ex))
+                       return -1;
+               if (tok == '(') {
+                       while (tok != ')') {
+                               /* We expect this to be 'EARLIER' */
+                               tok = camel_imapx_stream_token(imap->stream, &token, &len, ex);
+                               if (camel_exception_is_set(ex))
+                                       return -1;
+                       }
+               } else
+                       camel_imapx_stream_ungettoken(imap->stream, tok, token, len);
 
+               uids = imapx_parse_uids(imap->stream, ex);
                if (camel_exception_is_set(ex))
                        return -1;
                for (i = 0; i < uids->len; i++) {