Re: [PATCH v4] gitweb: redacted e-mail addresses feature.
flat view
From: Junio C Hamano <hidden>
Date: 2021-03-28 01:42:53
"Georgios Kontaxis" [off-list ref] writes:
quoted
I'll defer to others who are more familiar with gitweb and Perl ecosystem if this is warranted, but I have a feeling that importing and using Mail::Address->parse() only because we want to see if a given "<string>" is an address is a bit overkill and it might be sufficient to do something as crude as m/^<[^@>]+@[a-z0-9-.]+>$/i ...quoted
+ while ($line =~ m/(<[^>]+>)/g) { + my $match = $1; + if (!is_mailaddr($match)) { + next; + } + my $offset = pos $line; + my $head = substr $line, 0, $offset - length($match); + my $redaction = "<redacted>"; + my $tail = substr $line, $offset; + $line = $head . $redaction . $tail; + pos $line = length($head) + length($redaction);Hmmmm, Perl suggestions from others? It looks quite strange to see that s/// operator is not used and replacement is done manually with byte position in a Perl script.If there's a more elegant way to do the above we can certain do that instead.
For example, if we do not insist on using overkill Mail::Address->parse(), we could do something silly like this: $line =~ s/<[^@>]+@[a-z0-9-.]+>/<redacted@address>/ig; no?