]> code.citadel.org Git - citadel.git/blobdiff - citadel/imap_store.c
* Support IMAP \Answered flag
[citadel.git] / citadel / imap_store.c
index 8ba5ba5e713d348128f65eb167b702ca27be2626..ec8e845f9df27df0ed4994ecb9bf18dea5096a42 100644 (file)
@@ -82,7 +82,15 @@ void imap_do_store_msg(int seq, char *oper, unsigned int bits_to_twiddle) {
 
        if (bits_to_twiddle & IMAP_SEEN) {
                CtdlSetSeen(IMAP->msgids[seq],
-                               ((IMAP->flags[seq] & IMAP_SEEN) ? 1 : 0) );
+                               ((IMAP->flags[seq] & IMAP_SEEN) ? 1 : 0),
+                               ctdlsetseen_seen
+               );
+       }
+       if (bits_to_twiddle & IMAP_ANSWERED) {
+               CtdlSetSeen(IMAP->msgids[seq],
+                               ((IMAP->flags[seq] & IMAP_ANSWERED) ? 1 : 0),
+                               ctdlsetseen_answered
+               );
        }
 
        /* 'silent' is actually the value returned from a strncasecmp() so
@@ -134,6 +142,9 @@ void imap_do_store(int num_items, char **itemlist) {
                        if (!strcasecmp(flag, "\\Seen")) {
                                bits_to_twiddle |= IMAP_SEEN;
                        }
+                       if (!strcasecmp(flag, "\\Answered")) {
+                               bits_to_twiddle |= IMAP_ANSWERED;
+                       }
                }
        }