about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2018-01-29 13:04:09 +0000
committerEric Wong <e@80x24.org>2018-01-29 13:09:05 +0000
commit7ee391533b51f37e949e31a26c2ad93b935c3d03 (patch)
tree35455a8f6f7c7c9cd8e8b857d1bfd5c4894bcb70 /lib
parenta5302bf56fc9ea87e35803f193f58f2d157ac75f (diff)
downloadpublic-inbox-7ee391533b51f37e949e31a26c2ad93b935c3d03.tar.gz
Namely, we do not want to obfuscate the mail address of the
site itself.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Hval.pm5
-rw-r--r--lib/PublicInbox/Reply.pm10
2 files changed, 9 insertions, 6 deletions
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index 0e199025..d65ab321 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -91,8 +91,9 @@ sub prurl {
 # &#8228; &#183; and &#890; were also candidates:
 #   https://public-inbox.org/meta/20170615015250.GA6484@starla/
 # However, &#8226; was chosen to make copy+paste errors more obvious
-sub obfuscate_addrs ($$) {
+sub obfuscate_addrs ($$;$) {
         my $ibx = $_[0];
+        my $repl = $_[2] || '&#8226;';
         my $re = $ibx->{-no_obfuscate_re}; # regex of domains
         my $addrs = $ibx->{-no_obfuscate}; # { adddress => 1 }
         $_[1] =~ s/(([\w\.\+=\-]+)\@([\w\-]+\.[\w\.\-]+))/
@@ -100,7 +101,7 @@ sub obfuscate_addrs ($$) {
                 if ($addrs->{$addr} || ((defined $re && $domain =~ $re))) {
                         $addr;
                 } else {
-                        $domain =~ s!([^\.]+)\.!$1&#8226;!;
+                        $domain =~ s!([^\.]+)\.!$1$repl!;
                         $user . '@' . $domain
                 }
                 /sge;
diff --git a/lib/PublicInbox/Reply.pm b/lib/PublicInbox/Reply.pm
index 07288aab..eee41173 100644
--- a/lib/PublicInbox/Reply.pm
+++ b/lib/PublicInbox/Reply.pm
@@ -4,7 +4,7 @@ package PublicInbox::Reply;
 use strict;
 use warnings;
 use URI::Escape qw/uri_escape_utf8/;
-use PublicInbox::Hval qw/ascii_html/;
+use PublicInbox::Hval qw/ascii_html obfuscate_addrs/;
 use PublicInbox::Address;
 use PublicInbox::MID qw/mid_clean mid_escape/;
 
@@ -70,8 +70,9 @@ sub mailto_arg_link {
         delete $cc->{$to};
         if ($obfs) {
                 my $arg_to = $to;
-                $arg_to =~ s/\./\$(echo .)/;
+                obfuscate_addrs($ibx, $arg_to, '$(echo .)');
                 push @arg, "--to=$arg_to";
+                # no $subj for $href below
         } else {
                 push @arg, "--to=$to";
                 $to = uri_escape_utf8($to);
@@ -82,8 +83,9 @@ sub mailto_arg_link {
         if (@cc) {
                 if ($obfs) {
                         push(@arg, map {
-                                s/\./\$(echo .)/;
-                                "--cc=$_";
+                                my $addr = $_;
+                                obfuscate_addrs($ibx, $addr, '$(echo .)');
+                                "--cc=$addr";
                         } @cc);
                 } else {
                         $cc = '&Cc=' . uri_escape_utf8(join(',', @cc));