commit 1d90561675b43906cc109ef35e2616d1e95e859a
Author: Kornel Benko <[email protected]>
Date: Sun Mar 31 18:06:40 2019 +0200
Cmake export tests: Set \origin also for unavailable
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 | 18 +++++++++++-------
development/autotests/useSystemFonts.pl | 4 ++--
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/development/autotests/lyxStatus.pm
b/development/autotests/lyxStatus.pm
index 0c66776..99c1f6d 100644
--- a/development/autotests/lyxStatus.pm
+++ b/development/autotests/lyxStatus.pm
@@ -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));
diff --git a/development/autotests/useSystemFonts.pl
b/development/autotests/useSystemFonts.pl
index 8beb94c..2eae022 100644
--- a/development/autotests/useSystemFonts.pl
+++ b/development/autotests/useSystemFonts.pl
@@ -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