commit d8a31f1ee6ce82ee8769957107b54ba9b091e55c
Author: Kornel Benko <kor...@lyx.org>
Date:   Fri Oct 27 13:22:17 2017 +0200

    Cmake export tests: Collect list of all used wrong paths before terminating
    
    Also try to ignore references for files that are part of latex. If they are 
wrong, so
    latex should handle the errors.
---
 development/autotests/useSystemFonts.pl |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/development/autotests/useSystemFonts.pl 
b/development/autotests/useSystemFonts.pl
index eec406e..2cc71a5 100644
--- a/development/autotests/useSystemFonts.pl
+++ b/development/autotests/useSystemFonts.pl
@@ -213,7 +213,10 @@ sub interpretedCopy($$$$)
 
   initLyxStack(\%font, $fontT, $inputEncoding);
 
+  my $fi_line_no = 0;
+  my @path_errors = ();
   while (my $l = <FI>) {
+    $fi_line_no += 1;
     $l =~ s/[\n\r]+$//;
     #chomp($l);
     my $rStatus = checkLyxLine($l);
@@ -255,7 +258,19 @@ sub interpretedCopy($$$$)
          else {
            if (! -e "$f") {
              # Non relative (e.g. with absolute path) file should exist
-             diestack("File \"$f\" not found, while parsing \"$source\"");
+             if ($rStatus->{"filetype"} eq "interpret") {
+               # filetype::interpret should be interpreted by lyx or latex and 
therefore emit error
+               # We prinnt a warning instead
+               print "WARNING: Interpreted file \"$f\" not found, at 
\"$source:$fi_line_no\"\n";
+             }
+             elsif ($rStatus->{"filetype"} eq "prefix_only") {
+               # filetype::prefix_only should be interpreted by latex
+               print "WARNING: Prefixed file \"$f\" not found, at 
\"$source:$fi_line_no\"\n";
+             }
+             else {
+               # Collect the path-error-messages
+               push(@path_errors, "File \"$f(" . $rStatus->{"filetype"} . ")\" 
not found, at \"$source:$fi_line_no\"");
+             }
            }
          }
        }
@@ -269,6 +284,12 @@ sub interpretedCopy($$$$)
   }
   close(FI);
   close(FO);
+  if (@path_errors > 0) {
+    for my $entry (@path_errors) {
+      print "ERROR: $entry\n";
+    }
+    diestack("Aborted because of path errors in \"$source\"");
+  }
 
   closeLyxStack();
   return($res);

Reply via email to