Revisiting #1122181, I see that its proposed patch fixes the issue which
I reported in #1130447.  But some analysis may help.

The proposed patch in #1122181 moves an assignment to the $version variable.

Just past the moved assignment, the Http.pm script has this chunk:

    $match = '';                                                                
    if (defined $self->shared->{download_version}) {                            
        if ($version eq $self->shared->{download_version}) {                    
            $match = "matched with the download version";                       
        }                                                                       
    }                                                                           
    my $priority = $mangled_version . '-' . get_priority($href);                
    return [$priority, $mangled_version, $href, $match, $version];              

That is, $version becomes $_[4], and $match becomes $_[3]

But xtp.pm has this:

    if (defined $watchSource->shared->{download_version}                        
        and not $watchSource->versionmode eq 'ignore') {                        
                                                                                
        # extract ones which has $match in the above loop defined               
        my @vfiles = grep { $$_[3] } @files;                                    
        if (@vfiles) {                                                          

That $$_[3] was carried over from 2015, when it replaced $$_[2].

The return statement with $version assigned to position 4 last changed
in August 2025, for commit 628a3507a8d278f55e4a5991f9de8b14c687a4f1,
which says

        uscan: match unmangled versions against --download-version

with this chunk

@@ -497,12 +500,12 @@ sub parse_href {
     }
     $match = '';
     if (defined $self->shared->{download_version}) {
-        if ($mangled_version eq $self->shared->{download_version}) { 
+        if ($version eq $self->shared->{download_version}) {
             $match = "matched with the download version";
         }
     }
     my $priority = $mangled_version . '-' . get_priority($href);
-    return [$priority, $mangled_version, $href, $match];
+    return [$priority, $mangled_version, $href, $match, $version];
 }
 
 1;

Looking through the diffs (I may have missed one), the $match variable
has for a long time mapped to that $_[3] used in the grep command.

If that $$_[3] were changed to $$_[4], then the grep would use $version.
That (like my initial suggestion) would make the uscan succeed for my
configuration.

However, the $match variable itself will match @files because of these
chunks in Http.pm:

        $match = '';                                                            
        if (defined $download_version                                           
            and $mangled_version eq $download_version) {                        
            $match = "matched with the download version";                       
        }                                                                       

and

        push @hrefs, [$mangled_version, $href, $match];                         

which show up in a verbose log ($match becomes $$file[3]):

    if (@files) {                                                               
        @files = Devscripts::Versort::versort(@files);                          
        my $msg                                                                 
          = "Found the following matching files on the web page (newest first):>
        foreach my $file (@files) {                                             
            $msg .= "   $$file[2] ($$file[1]) index=$$file[0] $$file[3]\n";     
        }                                                                       
        uscan_verbose $msg;                                                     
    }                                                                           

Given all of that, I'll close #1130447

-- 
Thomas E. Dickey <[email protected]>
https://invisible-island.net

Attachment: signature.asc
Description: PGP signature

Reply via email to