diff options
-rw-r--r-- | lib/PublicInbox/Reply.pm | 10 | ||||
-rw-r--r-- | lib/PublicInbox/View.pm | 3 | ||||
-rw-r--r-- | t/reply.t | 5 |
3 files changed, 17 insertions, 1 deletions
diff --git a/lib/PublicInbox/Reply.pm b/lib/PublicInbox/Reply.pm index 17b1abb2..11e17ede 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 eb002aeb..86acd824 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 '<pre id=R>'.ascii_html($$arg).'</pre>'; + } # mailto: link only works if address obfuscation is disabled if ($link) { @@ -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(); |