]> git.lyx.org Git - features.git/commitdiff
Cmake export tests: Set \origin also for unavailable
authorKornel Benko <kornel@lyx.org>
Sun, 31 Mar 2019 16:06:40 +0000 (18:06 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:23 +0000 (15:48 +0200)
This is important for lyx-files not under the lyxsystemdir.
Since the exports are done from a copied lyx-file, some referenced data
may be available only relative to the source of the original.

development/autotests/lyxStatus.pm
development/autotests/useSystemFonts.pl

index 0c6677691c1c9cd98ce85d1f2184c01dbb292a04..99c1f6d29326293e2f895b07a2673a38eca43485 100644 (file)
@@ -26,12 +26,12 @@ sub getFileType($);
 sub getFileIdx($);
 sub getExt($);
 sub getResult($);
-sub checkForHeader($);
+sub checkForHeader($$);
 sub checkForPreamble($);
 sub checkForLayoutStart($);
 sub checkForInsetStart($);
 sub checkForLatexCommand($);
-sub checkLyxLine($);
+sub checkLyxLine($$);
 
 my @stack = ();                        # list of HASH-Arrays
 my $rFont = {};
@@ -201,9 +201,9 @@ sub getResult($)
   return($m->{"result"});
 }
 
-sub checkForHeader($)
+sub checkForHeader($$)
 {
-  my ($l) = @_;
+  my ($l, $sourcedir) = @_;
 
   if ($l =~ /^\\begin_header\s*$/) {
     my %selem = ();
@@ -247,6 +247,10 @@ sub checkForHeader($)
                           "filetype" => "replace_only",
                           "result" => ["\\origin $sysdir", "2"]);
     push(@rElems, $origin);
+    my $originu = newMatch("search" => qr/^\\origin\s+unavailable/,
+                          "filetype" => "replace_only",
+                          "result" => ["\\origin $sourcedir"]);
+    push(@rElems, $originu);
     setMatching(\@rElems);
     return(1);
   }
@@ -369,11 +373,11 @@ sub checkForLatexCommand($)
 #    separator: to be used while concatenating the filenames
 #    filetype: prefix_only,replace_only,copy_only,interpret
 #              same as before, but without 'prefix_for_list'
-sub checkLyxLine($)
+sub checkLyxLine($$)
 {
-  my ($l) = @_;
+  my ($l, $sourcedir) = @_;
 
-  return({"found" => 0}) if (checkForHeader($l));
+  return({"found" => 0}) if (checkForHeader($l, $sourcedir));
   return({"found" => 0}) if (checkForPreamble($l));
   return({"found" => 0}) if (checkForEndBlock($l));
   return({"found" => 0}) if (checkForLayoutStart($l));
index 8beb94cc0f18715fec02b5be0b440e158ed20c58..2eae022693c2f2d1ae41997630e23af6073a6686 100644 (file)
@@ -182,7 +182,7 @@ sub interpretedCopy($$$$)
     $fi_line_no += 1;
     $l =~ s/[\n\r]+$//;
     #chomp($l);
-    my $rStatus = checkLyxLine($l);
+    my $rStatus = checkLyxLine($l, $sourcedir);
     if ($rStatus->{found}) {
       my $rF = $rStatus->{result};
       if ($rStatus->{"filetype"} eq "replace_only") {
@@ -258,7 +258,7 @@ sub interpretedCopy($$$$)
            }
          }
        }
-       if ($foundrelative && $rStatus->{"filetype"} ne "prefix_for_list") {
+       if ($foundrelative && $rStatus->{"filetype"} !~ /^(prefix_for_list|prefix_only)$/) {
           # The result can be relative too
           # but, since prefix_for_list does no copy, we have to use absolute paths
           # to address files inside the source dir