]> Sergey Matveev's repositories - public-inbox.git/commitdiff
reply: allow ":none=$REASON" in "replyto" config
authorEric Wong <e@80x24.org>
Fri, 28 Dec 2018 00:22:12 +0000 (00:22 +0000)
committerEric Wong <e@80x24.org>
Fri, 28 Dec 2018 00:22:12 +0000 (00:22 +0000)
This can be useful for configuring archives of lists which are
no longer active.

lib/PublicInbox/Reply.pm
lib/PublicInbox/View.pm
t/reply.t

index 17b1abb272323b127f832f67d4d8a95a3ec0e5b3..11e17ede716a0f7effc12080f2461e9ac6344748 100644 (file)
@@ -34,8 +34,16 @@ sub mailto_arg_link {
        my $cc = {}; # everyone else
        my $to; # this is the From address by defaultq
        my $reply_to_all = 'reply-to-all'; # the only good default :P
+       my $reply_to_cfg = $ibx->{replyto};
 
-       foreach my $rt (split(/\s*,\s*/, $ibx->{replyto} || ':all')) {
+       $reply_to_cfg ||= ':all';
+       if ($reply_to_cfg =~ /\A:none=(.*)/) {
+               my $msg = $1;
+               $msg = 'replies disabled' if $msg eq '';
+               return \$msg;
+       }
+
+       foreach my $rt (split(/\s*,\s*/, $reply_to_cfg)) {
                if ($rt eq ':all') {
                        foreach my $h (@reply_headers) {
                                my $v = $hdr->header($h);
index eb002aebbb443d919502a6ac9b6e2ac0d0b77593..86acd824cd0d6871d82a164550987288eadedced 100644 (file)
@@ -119,6 +119,9 @@ sub msg_reply {
 
        my ($arg, $link, $reply_to_all) =
                        PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
+       if (ref($arg) eq 'SCALAR') {
+               return '<pre id=R>'.ascii_html($$arg).'</pre>';
+       }
 
        # mailto: link only works if address obfuscation is disabled
        if ($link) {
index de31f8800be717ddb2bee17a7db3063a6253676e..cbcd72291eef61a56364e5d1ac08899629cea71c 100644 (file)
--- a/t/reply.t
+++ b/t/reply.t
@@ -76,4 +76,9 @@ $exp = [
 is_deeply($arg, $exp, 'address obfuscation works');
 is($link, '', 'no mailto: link given');
 
+$ibx->{replyto} = ':none=dead list';
+$ibx->{obfuscate} = 1;
+($arg, $link) = PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
+is($$arg, 'dead list', ':none= works');
+
 done_testing();