Github messages for mblaze
 help / color / mirror / Atom feed
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:37:45 +0200	[thread overview]
Message-ID: <20230725143745.LdVppP9C7CQ-E1IC-5a-5N6n8-tP2xdsTgn1rx1WdWM@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: 4109 bytes --]

From 66a74a5fe341648b390de333ade9f031f37f3ed1 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..a3cec16f 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 NULL;
+
+	if (!(maildir = blaze822_hdr(config, "maildir")))
+		return NULL;
+
+	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");

  parent reply	other threads:[~2023-07-25 14:37 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 ` meudwy [this message]
2023-07-25 14:39 ` meudwy
2023-07-25 14:50 ` leahneukirchen
2023-07-25 14:54 ` [PR PATCH] [Updated] " meudwy
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=20230725143745.LdVppP9C7CQ-E1IC-5a-5N6n8-tP2xdsTgn1rx1WdWM@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).