Using plus (+) in list name

Eric Wong
Sun Aug 21 20:53:38 GMT 2022

Mark Wielaard <> wrote:
> Hi,
> We are setting up a public-inbox instance for cygwin/gcc/sourceware
> lists at and it seems to work pretty
> nicely. Thanks. Except for lists which have a + in their name like
> libstdc++.
> I assume this needs some escaping somewhere, but I cannot figure out
> where. The .public-inbox/config snippet looks like:

I seem to remember '+' is OK as-is in the path component of HTTP URLs,
but is escaping for ' ' (SP) in query strings.

At least it's OK for a git-config section name:

> [publicinbox "libstdc++"]
>         address =
>         url =
>         inboxdir = /home/inbox/lists/libstdc++
>         indexlevel = full
>         newsgroup = inbox.gcc.libstdc++
>         listid =
> This seems to work fine for nntp and imap, but not https.

Interesting that NNTP and IMAP work (I wasn't expecting it :x).

I can't remember off the top of my head, but is '+' allowed by
the relevant NNTP and List-Id RFCs?

Anyways, good to see public-inbox getting more adoption :>

> It does work when replacing the ++ with pp in the list name and
> url. But that looks somewhat odd imho. And the name with ++ can be
> used with e.g. mailman:
> Is there some way to configure public-inbox-http to be able to use ++
> in list names and urls?
> We are using the EPEL public-inbox package public-inbox-1.7.0-2.el8.noarch

Totally untested, but perhaps changing $INBOX_RE in
PublicInbox/ will work:

diff --git a/lib/PublicInbox/ b/lib/PublicInbox/
index b9b68382..77f463d3 100644
--- a/lib/PublicInbox/
+++ b/lib/PublicInbox/
@@ -23,7 +23,7 @@ use PublicInbox::WwwStatic qw(r path_info_raw);
 use PublicInbox::Eml;
 # TODO: consider a routing tree now that we have more endpoints:
-our $INBOX_RE = qr!\A/([\w\-][\w\.\-]*)!;
+our $INBOX_RE = qr!\A/([\w\-][\w\.\-\+]*)!;
 our $MID_RE = qr!([^/]+)!;
 our $END_RE = qr!(T/|t/|t\.mbox(?:\.gz)?|t\.atom|raw|)!;
 our $ATTACH_RE = qr!([0-9][0-9\.]*)-($PublicInbox::Hval::FN)!;

More information about the Overseers mailing list