summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-12-22 17:50:43 -0500
committerJune McEnroe <june@causal.agency>2019-12-22 17:50:43 -0500
commite508617acee08836f3617e48470f591a36264fed (patch)
tree8861f699da0d87b8637b455cb000a92699c12a1e
parentUse EXAMINE rather than SELECT (diff)
downloadimbox-e508617acee08836f3617e48470f591a36264fed.tar.gz
imbox-e508617acee08836f3617e48470f591a36264fed.zip
Use sequence numbers rather than UIDs
We aren't doing any expunging or anything across different sessions, so
it's safe to just use sequence numbers.
-rw-r--r--imbox.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/imbox.c b/imbox.c
index 850e9b8..bdc8a16 100644
--- a/imbox.c
+++ b/imbox.c
@@ -283,7 +283,7 @@ int main(int argc, char *argv[]) {
 	setlinebuf(imap);
 
 	bool login = false;
-	char *uids = NULL;
+	char *nums = NULL;
 
 	char *line = NULL;
 	size_t cap = 0;
@@ -315,7 +315,7 @@ int main(int argc, char *argv[]) {
 				fprintf(imap, "%s EXAMINE %s\r\n", Atoms[Examine], mailbox);
 			}
 			break; case Examine: {
-				fprintf(imap, "%s UID SEARCH CHARSET UTF-8", Atoms[Search]);
+				fprintf(imap, "%s SEARCH CHARSET UTF-8", Atoms[Search]);
 				if (subject) fprintf(imap, " SUBJECT \"%s\"", subject);
 				if (from) fprintf(imap, " FROM \"%s\"", from);
 				if (to) fprintf(imap, " TO \"%s\"", to);
@@ -323,20 +323,20 @@ int main(int argc, char *argv[]) {
 				fprintf(imap, "\r\n");
 			}
 			break; case Search: {
-				if (!uids) errx(EX_PROTOCOL, "no search response");
-				for (char *ch = uids; *ch; ++ch) {
+				if (!nums) errx(EX_PROTOCOL, "no search response");
+				for (char *ch = nums; *ch; ++ch) {
 					if (*ch == ' ') *ch = ',';
 				}
 				fprintf(
 					imap,
-					"%s UID FETCH %s (BODY[HEADER.FIELDS ("
+					"%s FETCH %s (BODY[HEADER.FIELDS ("
 					"Date From To Cc Subject Message-Id In-Reply-To "
 					"Content-Transfer-Encoding"
 					")] BODY[TEXT])\r\n",
-					Atoms[Fetch], uids
+					Atoms[Fetch], nums
 				);
-				free(uids);
-				uids = NULL;
+				free(nums);
+				nums = NULL;
 			}
 			break; case Fetch: {
 				fprintf(imap, "ayy LOGOUT\r\n");
@@ -349,8 +349,8 @@ int main(int argc, char *argv[]) {
 		switch (resp) {
 			break; case Search: {
 				if (!rest) errx(EX_TEMPFAIL, "no matching messages");
-				uids = strdup(rest);
-				if (!uids) err(EX_OSERR, "strdup");
+				nums = strdup(rest);
+				if (!nums) err(EX_OSERR, "strdup");
 			}
 			break; case Fetch: {
 				char *headers = readLiteral(imap, rest);