From 99d2563adb5dab48f48a737ada78aec097d7c0be Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sat, 21 Dec 2019 07:16:29 -0500 Subject: Implement -CFST --- imbox.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/imbox.c b/imbox.c index 1712615..788f032 100644 --- a/imbox.c +++ b/imbox.c @@ -171,18 +171,24 @@ static char *readLiteral(FILE *imap, const char *line) { int main(int argc, char *argv[]) { const char *host = "imap.fastmail.com"; - const char *port = "993"; + const char *port = "imaps"; const char *mailbox = "INBOX"; - const char *search = "SUBJECT \"[PATCH\""; + const char *subject = "[PATCH"; + const char *from = NULL; + const char *to = NULL; + const char *cc = NULL; int rppFlags = 0; int opt; - while (0 < (opt = getopt(argc, argv, "h:m:p:s:vw"))) { + while (0 < (opt = getopt(argc, argv, "C:F:S:T:h:m:p:vw"))) { switch (opt) { + break; case 'C': cc = optarg; + break; case 'F': from = optarg; + break; case 'S': subject = optarg; + break; case 'T': to = optarg; break; case 'h': host = optarg; break; case 'm': mailbox = optarg; break; case 'p': port = optarg; - break; case 's': search = optarg; break; case 'v': verbose = true; break; case 'w': rppFlags |= RPP_STDIN; break; default: return EX_USAGE; @@ -214,6 +220,7 @@ int main(int argc, char *argv[]) { FILE *imap = funopen(client, tlsRead, tlsWrite, NULL, tlsClose); if (!imap) err(EX_SOFTWARE, "funopen"); + setlinebuf(imap); bool login = false; char *uids = NULL; @@ -247,10 +254,12 @@ int main(int argc, char *argv[]) { fprintf(imap, "%s SELECT %s\r\n", Atoms[Select], mailbox); } break; case Select: { - fprintf( - imap, "%s UID SEARCH CHARSET UTF-8 %s\r\n", - Atoms[Search], search - ); + fprintf(imap, "%s UID 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); + if (cc) fprintf(imap, " CC \"%s\"", cc); + fprintf(imap, "\r\n"); } break; case Search: { if (!uids) errx(EX_PROTOCOL, "no search response"); -- cgit 1.4.1 bbdc91d9bdbf05b422e45c5550826377ab08&showmsg=1&follow=1'>root/www/git.causal.agency/cgit/Makefile (unfollow)
Commit message (Collapse)Author
2021-02-06Add /usr/X11R6/bin to PATHJune McEnroe
2021-02-05Add I Hope We Choose LoveJune McEnroe
2021-02-04Use owner-filter to add Liberapay donation buttonsJune McEnroe
2021-02-04Use owner-filter for repo page headersJune McEnroe
Previously it was only used if owners were displayed on the index.
2021-02-04Warn twice about stopped jobsJune McEnroe
Not really sure why this previously set job_warning to 2 rather than 1. Anyway I often just press ^D again after the warning without really thinking, so do it twice.
2021-02-04Remove cgit logo using cgitrcJune McEnroe
It's not documented that you can set logo to empty string to remove it, I just noticed by reading print_header.
2021-01-31Add The Rosewater RedemptionJune McEnroe
Remembering how to read 2021.
2021-01-29Use int when checking for EOFJune McEnroe
2021-01-28Move gpl.c and agpl.c templates out of etcJune McEnroe
2021-01-27Set para and sect for mdocJune McEnroe
Copied from the OpenBSD defaults.
2021-01-26Use First state to match keyword at beginning of lineJune McEnroe
Otherwise keywords at the beginnings of lines with preceeding whitespace are not matched.
2021-01-25Install vi on Linux and nvi on macOSJune McEnroe
2021-01-25Use vi and lessJune McEnroe
I haven't used neovim in a couple weeks by now, so I may as well commit this.
2021-01-20Use mtags for sh in source-filterJune McEnroe
2021-01-20Generate tags for sh files in mtagsJune McEnroe
Only matches functions declared at the beginnings of lines, but I'm fine with that.
2021-01-20Add messy sh lexerJune McEnroe
Surprisingly seems to work for everything I looked at in my repos.
2021-01-20Add all target to git.causal.agency MakefileJune McEnroe
2021-01-20Remove Lua supportJune McEnroe
Lua support is unused and the dlsym fwrite/write hacks horrify me. Clean it up.
2021-01-20Fix tests for diff spansJune McEnroe
2021-01-20Avoid matching ':' in make tagsJune McEnroe
Otherwise a :: rule includes one of the ':'s in the tag name.
2021-01-19Prefer tag matches not preceded by [[:alnum:]]June McEnroe
Otherwise the "id" in "void" matches for "void id".
2021-01-19Escape \ and / in mtags search patternsJune McEnroe
2021-01-20Use mtags in source-filterJune McEnroe
2021-01-19Add mtags to generate tags for make and mdocJune McEnroe
2021-01-19Map tags to IDs using only [[:alnum:]-._]June McEnroe
2021-01-19Don't use a pager if reading standard inputJune McEnroe
2021-01-19Support BSD make syntax and match *.amJune McEnroe
These don't really go together, but...
2021-01-19Match tab following escaped newline in make assignmentsJune McEnroe
Otherwise it ends up going into Shell state.
2021-01-18Allow matching lexers using first input lineJune McEnroe