if (!defined $contents) {
$contents=$in;
$contents=File::Basename::basename($contents) if $args{"basename"};
- $contents=~s/^mailto:([-.\w]+@[-.\w]+)$/$1/;
+ $contents=~s/^mailto:([-.\w]+(?:@|\Q(at)\E)[-.\w]+)$/$1/;
$contents=escapeHTML($contents);
}
$contents=~s#<a\b[^>]*>##gi;
$r.='"';
do { $r.=" $_" if $_; } for ($args{"attr"});
$r.='>'.$contents.'</a>';
- if ($args{"size"} && uri_is_local($in) && ($args{"size"}>=2 || $in=~/[.](?:gz|Z|rpm|zip|deb|lha)/)) { # Downloadable?
- my $path_abs_disk=path_abs_disk $in,%args;
+ my $size_in=$in;
+ do { $size_in=$_ if $_ && !/^\d+$/; } for $args{"size"};
+ if ($args{"size"} && uri_is_local($size_in)
+ && (($args{"size"} && $args{"size"}=~/^\d+$/ && $args{"size"}>=2)
+ || $size_in=~/[.](?:gz|Z|rpm|zip|deb|lha)/)) { # Downloadable?
+ my $path_abs_disk=path_abs_disk $size_in,%args;
cluck "File not readable: $path_abs_disk" if !-r $path_abs_disk;
$r.=' ('.size_display((stat($path_abs_disk))[7]).')';
}