&a_href: Support also {"size"} to point to alternative file to measure.
[MyWeb.git] / Web.pm
diff --git a/Web.pm b/Web.pm
index 143f3a7..19b9e93 100644 (file)
--- a/Web.pm
+++ b/Web.pm
@@ -831,8 +831,12 @@ my($in,$contents,%args)=@_;
        $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.='&nbsp;('.size_display((stat($path_abs_disk))[7]).')';
                }