From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 29EB2211BB for ; Fri, 28 Dec 2018 00:24:12 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] reply: allow ":none=$REASON" in "replyto" config Date: Fri, 28 Dec 2018 00:24:12 +0000 Message-Id: <20181228002412.29022-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This can be useful for configuring archives of lists which are no longer active. --- lib/PublicInbox/Reply.pm | 10 +++++++++- lib/PublicInbox/View.pm | 3 +++ t/reply.t | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox/Reply.pm b/lib/PublicInbox/Reply.pm index 17b1abb..11e17ed 100644 --- a/lib/PublicInbox/Reply.pm +++ b/lib/PublicInbox/Reply.pm @@ -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); diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index eb002ae..86acd82 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -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 '
'.ascii_html($$arg).'
'; + } # mailto: link only works if address obfuscation is disabled if ($link) { diff --git a/t/reply.t b/t/reply.t index de31f88..cbcd722 100644 --- 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(); -- EW