diff options
author | Kyle Meyer <kyle@kyleam.com> | 2023-06-03 00:11:00 -0400 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2023-06-05 21:39:15 -0400 |
commit | adb5b4a858c0f72fc807a4a94417361d0ba14f92 (patch) | |
tree | 3eae764ea0b777e1dbcdf5affaeef1afa3915924 /piem.el | |
parent | 880413af62393d932ca8838d3023399064d72013 (diff) | |
download | piem-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.el | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -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 |