aboutsummaryrefslogtreecommitdiff
path: root/piem.el
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2023-06-03 00:11:00 -0400
committerKyle Meyer <kyle@kyleam.com>2023-06-05 21:39:15 -0400
commitadb5b4a858c0f72fc807a4a94417361d0ba14f92 (patch)
tree3eae764ea0b777e1dbcdf5affaeef1afa3915924 /piem.el
parent880413af62393d932ca8838d3023399064d72013 (diff)
downloadpiem-adb5b4a858c0f72fc807a4a94417361d0ba14f92.tar.gz
piem-inboxes: Allow :url values without a trailing slash
The piem-inboxes documentation says that the :url value must end in a slash, which is confusing because 1) public-inbox does not require this and has examples in its docs without a slash and 2) some spots in piem already append a slash if needed. Add a piem-inbox-get wrapper that ensures the returned URL ends with a slash, and use it in all spots that retrieve an inbox's URL. Reported-by: Jelle Licht <jlicht@fsfe.org> Link: https://inbox.kyleam.com/piem/87y1l9ualg.fsf@fsfe.org Message-ID: <20230603041100.200632-1-kyle@kyleam.com>
Diffstat (limited to 'piem.el')
-rw-r--r--piem.el16
1 files changed, 11 insertions, 5 deletions
diff --git a/piem.el b/piem.el
index a933a6c..568e91b 100644
--- a/piem.el
+++ b/piem.el
@@ -80,7 +80,7 @@ list that supports the following properties:
repository, with the first value in this list offered as
the default.
:url
- A URL hosting HTTPS archives. This value must end with a slash.
+ A URL hosting HTTPS archives.
:maildir
A Maildir directory to inject messages into.
@@ -522,6 +522,13 @@ returned by `piem-inbox'."
(when-let ((p (or inbox (piem-inbox))))
(plist-get (cdr (assoc p (piem-merged-inboxes))) key)))
+(defun piem-inbox-url (&optional inbox)
+ "Return URL associated with INBOX.
+If INBOX is nil, use the inbox returned by `piem-inbox'."
+ (when-let ((inbox (or inbox (piem-inbox)))
+ (url (piem-inbox-get :url inbox)))
+ (piem--ensure-trailing-slash url)))
+
(defun piem-inbox-coderepo (&optional inbox)
"Return the code repository of current buffer's inbox."
(when-let ((inbox (or inbox (piem-inbox)))
@@ -665,10 +672,9 @@ The URL for INBOX may be defined in `piem-inboxes' or
public-inbox's configuration. If INBOX is nil, use the inbox
returned by `piem-inbox'."
(concat
- (piem--ensure-trailing-slash
- (or (piem-inbox-get :url inbox)
- (user-error "Couldn't find URL for %s"
- (or inbox "current buffer"))))
+ (or (piem-inbox-url inbox)
+ (user-error "Couldn't find URL for %s"
+ (or inbox "current buffer")))
(piem-escape-mid mid)))
;;;###autoload