about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--imap.c5
-rw-r--r--imap.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/imap.c b/imap.c
index b47a520..e3349a7 100644
--- a/imap.c
+++ b/imap.c
@@ -173,6 +173,11 @@ struct Resp imapResp(FILE *imap) {
 	data = parseData(imap);
 	if (data.type != Atom) errx(EX_PROTOCOL, "expected tag atom");
 	resp.tag = data.atom;
+	if (resp.tag == AtomContinue) {
+		if (*ptr == ' ') ptr++;
+		resp.text = ptr;
+		return resp;
+	}
 
 	data = parseData(imap);
 	if (data.type == Number) {
diff --git a/imap.h b/imap.h
index 0aa5636..1bb57f5 100644
--- a/imap.h
+++ b/imap.h
@@ -60,7 +60,8 @@
 	X(AtomHeader, "HEADER") \
 	X(AtomText, "TEXT") \
 	X(AtomDot, ".") \
-	X(AtomUntagged, "*")
+	X(AtomUntagged, "*") \
+	X(AtomContinue, "+")
 
 enum Atom {
 #define X(id, str) id,