diff options
Diffstat (limited to 'sites/pmikkelsen.com/_files/faces.patch')
-rw-r--r-- | sites/pmikkelsen.com/_files/faces.patch | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/sites/pmikkelsen.com/_files/faces.patch b/sites/pmikkelsen.com/_files/faces.patch deleted file mode 100644 index 3309c1b..0000000 --- a/sites/pmikkelsen.com/_files/faces.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 5595dbb332eae353832dbc2ad11ef92aeb8fcab0 -From: Peter Mikkelsen <peter@pmikkelsen.com> -Date: Mon, 28 Jun 2021 21:45:53 +0000 -Subject: [PATCH] Add -u flag to faces, making it only show unread messages. - ---- -diff 658757abed7be283e06bae3b1722fc2703334d74 5595dbb332eae353832dbc2ad11ef92aeb8fcab0 ---- a/sys/man/1/faces Sun Jun 27 02:13:58 2021 -+++ b/sys/man/1/faces Mon Jun 28 23:45:53 2021 -@@ -4,7 +4,7 @@ - .SH SYNOPSIS - .B faces - [ --.B -ihc -+.B -ihcu - ] [ - .B -m - .I maildir -@@ -99,6 +99,15 @@ - rather than the current state of the mail box. - In particular, faces are not removed from the screen when messages are deleted. - Also, in this mode clicking button 1 in the display will clear the window. -+.PP -+The -+.B -u -+flag causes -+.I faces -+to read in the mailbox like with the -+.B -i -+flag, but it only shows the unread ones. -+When right-clicking on a message icon in this mode, the message is both plumbed and removed from the view. - .PP - .I Seemail - is an ---- a/sys/src/cmd/faces/main.c Sun Jun 27 02:13:58 2021 -+++ b/sys/src/cmd/faces/main.c Mon Jun 28 23:45:53 2021 -@@ -10,6 +10,7 @@ - int history = 0; /* use old interface, showing history of mailbox rather than current state */ - int initload = 0; /* initialize program with contents of mail box */ - int clickrm = 0; /* allows removing mail faces by left clicking */ -+int onlyunread = 0; /* initialize program with unread messages, remove when clicked */ - - enum - { -@@ -358,6 +359,28 @@ - unlockdisplay(display); - } - -+int -+isunread(char *dir, char *num) -+{ -+ char buf[1024], flags[8]; -+ int n, fd, unread; -+ -+ snprint(buf, sizeof(buf), "%s/%s/flags", dir, num); -+ fd = open(buf, OREAD); -+ if(fd < 0) -+ return 0; -+ n = readn(fd, flags, 7); -+ close(fd); -+ if(n != 7) -+ return 0; -+ flags[n] = '\0'; -+ if(strchr(flags, 's') != nil) -+ unread = 0; -+ else -+ unread = 1; -+ return unread; -+} -+ - void - loadmboxfaces(char *maildir) - { -@@ -370,7 +393,8 @@ - chdir(maildir); - while((n = dirread(dirfd, &d)) > 0){ - for(i=0; i<n; i++) -- addface(dirface(maildir, d[i].name)); -+ if(onlyunread && isunread(maildir, d[i].name)) -+ addface(dirface(maildir, d[i].name)); - free(d); - } - close(dirfd); -@@ -616,6 +640,10 @@ - for(i=first; i<last; i++) - if(ptinrect(p, facerect(i-first))){ - showmail(faces[i]); -+ if(onlyunread){ -+ delface(i); -+ flushimage(display, 1); -+ } - break; - } - unlockdisplay(display); -@@ -698,6 +726,10 @@ - break; - case 'c': - clickrm++; -+ break; -+ case 'u': -+ initload++; -+ onlyunread++; - break; - default: - usage(); |