]> git.lyx.org Git - lyx.git/blobdiff - development/checkurls/search_url.pl
Win installer: security issues in ImageMagick require new installer
[lyx.git] / development / checkurls / search_url.pl
index 3f6bf72779d69468fce7524c1cb640e5abdba4bd..8bba11c1fc50ca3a6fdb0a996d0ddc632dca115c 100755 (executable)
@@ -48,6 +48,7 @@ setlocale(LC_MESSAGES, "en_US.UTF-8");
 
 # Prototypes
 sub printNotUsedURLS($\%);
+sub replaceSpecialChar($);
 sub readUrls($\%);
 sub parse_file($ );
 sub handle_url($$$ );
@@ -58,6 +59,7 @@ my %ignoredURLS = ();
 my %revertedURLS = ();
 my %extraURLS = ();
 my %selectedURLS = ();
+my %knownToRegisterURLS = ();
 my $summaryFile = undef;
 
 my $checkSelectedOnly = 0;
@@ -81,11 +83,14 @@ for my $arg (@ARGV) {
     readUrls($val, %revertedURLS);
   }
   elsif ($type eq "extraURLS") {
-    readUrls($val,  %extraURLS);
+    readUrls($val, %extraURLS);
   }
   elsif ($type eq "selectedURLS") {
     $checkSelectedOnly = 1;
-    readUrls($val,  %selectedURLS);
+    readUrls($val, %selectedURLS);
+  }
+  elsif ($type eq "knownToRegisterURLS") {
+    readUrls($val, %knownToRegisterURLS);
   }
   elsif ($type eq "summaryFile") {
     if (open(SFO, '>', "$val")) {
@@ -98,24 +103,35 @@ for my $arg (@ARGV) {
 }
 
 my @urls = sort keys %URLS, keys %extraURLS;
+# Tests
+#my @urls = ("ftp://ftp.edpsciences.org/pub/aa/readme.html", "ftp://ftp.springer.de/pub/tex/latex/compsc/proc/author");
 my $errorcount = 0;
 
 my $URLScount = 0;
 
 for my $u (@urls) {
-  if (defined($selectedURLS{$u})) {
-    ${selectedURLS}{$u}->{count} += 1;
-  }
   if (defined($ignoredURLS{$u})) {
     $ignoredURLS{$u}->{count} += 1;
     next;
   }
+  my $use_curl = 0;
+  if (defined($knownToRegisterURLS{$u})) {
+    if ($knownToRegisterURLS{$u}->{use_curl}) {
+      $use_curl = 1;
+    }
+    else {
+      next;
+    }
+  }
+  if (defined($selectedURLS{$u})) {
+    ${selectedURLS}{$u}->{count} += 1;
+  }
   next if ($checkSelectedOnly && ! defined($selectedURLS{$u}));
   $URLScount++;
   print "Checking '$u': ";
   my ($res, $prnt, $outSum);
   try {
-    $res = check_url($u);
+    $res = check_url($u, $use_curl);
     if ($res) {
       print "Failed\n";
       $prnt = "";
@@ -199,6 +215,13 @@ sub printNotUsedURLS($\%)
   }
 }
 
+sub replaceSpecialChar($)
+{
+  my ($l) = @_;
+  $l =~ s/\\SpecialChar(NoPassThru)?\s*(TeX|LaTeX|LyX)[\s]?/\2/;
+  return($l);
+}
+
 sub readUrls($\%)
 {
   my ($file, $rUrls) = @_;
@@ -209,9 +232,14 @@ sub readUrls($\%)
     $line++;
     $l =~ s/[\r\n]+$//;                # remove eol
     $l =~ s/\s*\#.*$//;                # remove comment
+    $l = &replaceSpecialChar($l);
     next if ($l eq "");
+    my $use_curl = 0;
+    if ($l =~ s/^\s*UseCurl\s*//) {
+      $use_curl = 1;
+    }
     if (! defined($rUrls->{$l} )) {
-      $rUrls->{$l} = {$file => $line, count => 1};
+      $rUrls->{$l} = {$file => $line, count => 1, use_curl => $use_curl};
     }
   }
   close(ULIST);
@@ -272,6 +300,7 @@ sub handle_url($$$)
 {
   my($url, $f, $line) = @_;
 
+  $url = &replaceSpecialChar($url);
   if(!defined($URLS{$url})) {
     $URLS{$url} = {};
   }