From: meudwy <meudwy@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] mdirs: add Maildir profile key
Date: Tue, 25 Jul 2023 16:54:48 +0200 [thread overview]
Message-ID: <20230725145448.tPprx1QDUzngn2GSQ6iARogEBFsH_ixORtRkOnSG5G4@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-fa6558a0-26e0-48f6-803f-f5a8af34f6a8-mblaze-245@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 420 bytes --]
There is an updated pull request by meudwy against master on the mblaze repository
https://github.com/meudwy/mblaze mdirs-profile
https://github.com/leahneukirchen/mblaze/pull/245
mdirs: add Maildir profile key
When `mdirs` is executed without any arguments, look for the `Maildir` key in the profile and use that instead (if set).
A patch file from https://github.com/leahneukirchen/mblaze/pull/245.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mdirs-profile-245.patch --]
[-- Type: text/x-diff, Size: 4101 bytes --]
From a00d35acc67bb0f2edee48b3a1e37ebc30a029e2 Mon Sep 17 00:00:00 2001
From: Meudwy <meudwy@meudwy.uk>
Date: Tue, 25 Jul 2023 14:28:09 +0100
Subject: [PATCH] mdirs: add Maildir profile key
When `mdirs` is executed without any arguments, look for the `Maildir`
key in the profile and use that instead (if set).
---
GNUmakefile | 8 ++++----
man/mblaze-profile.5 | 4 ++++
man/mdirs.1 | 22 ++++++++++++++++++++--
mdirs.c | 41 ++++++++++++++++++++++++++++++++++++++---
4 files changed, 66 insertions(+), 9 deletions(-)
diff --git a/GNUmakefile b/GNUmakefile
index 89cb7794..d3c081ed 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -26,10 +26,10 @@ SCRIPT = mcolor mcom mless mmkdir mquote museragent
all: $(ALL) museragent
$(ALL) : % : %.o
-maddr magrep mdeliver mexport mflag mflow mgenmid mhdr mpick mscan msed mshow \
- msort mthread : blaze822.o mymemmem.o mytimegm.o
-maddr magrep mdeliver mexport mflag mgenmid mhdr minc mlist mpick mscan msed \
- mseq mshow msort mthread : seq.o slurp.o mystrverscmp.o
+maddr magrep mdeliver mdirs mexport mflag mflow mgenmid mhdr mpick mscan msed \
+ mshow msort mthread : blaze822.o mymemmem.o mytimegm.o
+maddr magrep mdeliver mdirs mexport mflag mgenmid mhdr minc mlist mpick mscan \
+ msed mseq mshow msort mthread : seq.o slurp.o mystrverscmp.o
maddr magrep mflow mhdr mpick mscan mshow : rfc2047.o
magrep mflow mhdr mshow : rfc2045.o
mshow : filter.o safe_u8putstr.o rfc2231.o pipeto.o
diff --git a/man/mblaze-profile.5 b/man/mblaze-profile.5
index fe583095..d9aaad5c 100644
--- a/man/mblaze-profile.5
+++ b/man/mblaze-profile.5
@@ -49,6 +49,10 @@ The fully qualified domain name used for
.Li Message\&-Id\&:
generation in
.Xr mgenmid 1 .
+.It Li Maildir\&:
+If set,
+.Xr mdirs 1
+will use this maildir when no directories are supplied.
.It Li Outbox\&:
If set,
.Xr mcom 1
diff --git a/man/mdirs.1 b/man/mdirs.1
index 44ffae40..2dd2ea1e 100644
--- a/man/mdirs.1
+++ b/man/mdirs.1
@@ -1,4 +1,4 @@
-.Dd January 22, 2020
+.Dd July 25, 2023
.Dt MDIRS 1
.Os
.Sh NAME
@@ -17,6 +17,14 @@ for maildir
folders and prints them,
separated by newlines.
.Pp
+If
+.Ar dirs
+is not present then use
+.Sq Li Maildir\&:
+from
+.Pa "${MBLAZE:-$HOME/.mblaze}/profile"
+.Pq if set .
+.Pp
To
.Nm ,
a maildir folder is a directory containing
@@ -36,10 +44,20 @@ Print folders separated by a NUL character.
.It Fl a
Traverse into all subfolders, without considering the maildir++ name conventions.
.El
+.Sh ENVIRONMENT
+.Bl -tag -width Ds
+.It Ev MBLAZE
+Directory containing mblaze configuration.
+.Po
+Default:
+.Pa $HOME/.mblaze
+.Pc
+.El
.Sh EXIT STATUS
.Ex -std
.Sh SEE ALSO
-.Xr find 1
+.Xr find 1 ,
+.Xr mblaze-profile 5
.Sh AUTHORS
.An Leah Neukirchen Aq Mt leah@vuxu.org
.Sh LICENSE
diff --git a/mdirs.c b/mdirs.c
index 5f49906f..89ebab53 100644
--- a/mdirs.c
+++ b/mdirs.c
@@ -3,8 +3,10 @@
#include <dirent.h>
#include <limits.h>
+#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include "blaze822.h"
@@ -72,6 +74,33 @@ mdirs(char *fpath)
closedir(dir);
}
+char *
+profile_maildir()
+{
+ char *f = blaze822_home_file("profile");
+ struct message *config = blaze822(f);
+ char *maildir;
+ static char path[PATH_MAX];
+
+ if (!config)
+ return 0;
+
+ if (!(maildir = blaze822_hdr(config, "maildir")))
+ return 0;
+
+ if (strncmp(maildir, "~/", 2) == 0) {
+ const char *home = getenv("HOME");
+ if (!home) {
+ struct passwd *pw = getpwuid(getuid());
+ home = pw ? pw->pw_dir : "/dev/null/homeless";
+ }
+ snprintf(path, sizeof path, "%s/%s", home, maildir+2);
+ maildir = path;
+ }
+
+ return maildir;
+}
+
int
main(int argc, char *argv[])
{
@@ -86,11 +115,17 @@ main(int argc, char *argv[])
exit(1);
}
- if (argc == optind)
- goto usage;
-
xpledge("stdio rpath", "");
+ if (argc == optind) {
+ char *maildir = profile_maildir();
+ if (maildir) {
+ mdirs(maildir);
+ return 0;
+ }
+ goto usage;
+ }
+
char toplevel[PATH_MAX];
if (!getcwd(toplevel, sizeof toplevel)) {
perror("mdirs: getcwd");
next prev parent reply other threads:[~2023-07-25 14:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-25 13:47 [PR PATCH] " meudwy
2023-07-25 13:53 ` meudwy
2023-07-25 14:09 ` leahneukirchen
2023-07-25 14:37 ` [PR PATCH] [Updated] " meudwy
2023-07-25 14:39 ` meudwy
2023-07-25 14:50 ` leahneukirchen
2023-07-25 14:54 ` meudwy [this message]
2023-07-25 14:55 ` meudwy
2023-07-27 12:08 ` [PR PATCH] [Closed]: " leahneukirchen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230725145448.tPprx1QDUzngn2GSQ6iARogEBFsH_ixORtRkOnSG5G4@z \
--to=meudwy@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).