commit - 82224691dcb4f7411d9fb2868b46b9e03af9a5b2
commit + 6440ea89c254d02ffd3b020f81b061be397290be
blob - dbbf37eee4e373bfcecd6356568e75ae3a5e59ac
blob + 95389304453e989ea05e94f88592135419482bd4
--- mailread.pl
+++ mailread.pl
use IPC::Run3;
my $content = do { local $/; <> };
-my ($headers, $body) = split(/\n\n/, $content, 2);
+my ($headers, $body) = $content =~ /^(.*?\n)\n(.*)$/s ? ($1, $2) : ('', $content);
my $ishtml = qr/< *(html|head|body|div|table|p|span|br) *\/?>/i;
run3(['lynx', '-dump', '-force_html', '-stdin'], \$body, \$body, undef) if ($body =~ $ishtml);
-open(my $fh, '>', "$ENV{HOME}/.maillinks");
-my $i = 0;
-$body =~ s{(https?://[^\s<>"]+)}{
- if (length($1) > 80)
+
+print "$headers\n";
+{
+ open my $body_fh, '<', \$body or die $!;
+ open my $links_fh, '>', "$ENV{HOME}/.maillinks" or die $!;
+ my $i = 0;
+ while (<$body_fh>)
{
- print $fh "$1\n";
- "[Link #" . ++$i . "]";
+ $_ =~ s{(https?://[^\s<>"]+)}{print $links_fh "$1\n"; "[Link #" . ++$i . "]";}ge;
+ $_ =~ s/(.{1,80})(?:\s+|$)/$1\n/g;
+ print;
}
- else
- {
- $1;
- }
-}gex;
-close $fh;
+}
-print "$headers\n\n$body";
-