aboutsummaryrefslogtreecommitdiffstats
path: root/imap.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap.c')
-rw-r--r--imap.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/imap.c b/imap.c
index 404f8937..c09dc39a 100644
--- a/imap.c
+++ b/imap.c
@@ -47,7 +47,19 @@ int imap_ok (int sock, char *argbuf)
if (strstr(buf, "RECENT"))
recent = atoi(buf+2);
if (strstr(buf, "UNSEEN"))
- unseen = atoi(buf+2);
+ {
+ char *cp;
+
+ /*
+ * Handle both "* 42 UNSEEN" and "* OK [UNSEEN 42] 42".
+ */
+ unseen = 0;
+ for (cp = buf; *cp && !isdigit(*cp); cp++)
+ {
+ unseen = atoi(cp);
+ break;
+ }
+ }
if (strstr(buf, "FLAGS"))
seen = (strstr(buf, "Seen") != (char *)NULL);
} while