- if (IMAP->num_msgs > 0) {
- for (i = 0; i < IMAP->num_msgs; ++i) {
- if (IMAP->flags[i] & IMAP_SELECTED) {
- CtdlCopyMsgToRoom(
- IMAP->msgids[i],
- roomname
- );
- }
+ for (i = 0; i < IMAP->num_msgs; ++i) {
+ if (IMAP->flags[i] & IMAP_SELECTED) {
+ CtdlCopyMsgToRoom(IMAP->msgids[i], roomname);
+ }
+ }
+
+ /* Set the flags... */
+ i = getroom(&qrbuf, roomname);
+ if (i != 0) return(i);
+
+ for (i = 0; i < IMAP->num_msgs; ++i) {
+ if (IMAP->flags[i] & IMAP_SELECTED) {
+ CtdlSetSeen(IMAP->msgids[i],
+ ((IMAP->flags[i] & IMAP_SEEN) ? 1 : 0),
+ ctdlsetseen_seen,
+ NULL, &qrbuf
+ );
+ CtdlSetSeen(IMAP->msgids[i],
+ ((IMAP->flags[i] & IMAP_ANSWERED) ? 1 : 0),
+ ctdlsetseen_answered,
+ NULL, &qrbuf
+ );