From 1d90561675b43906cc109ef35e2616d1e95e859a Mon Sep 17 00:00:00 2001 From: Kornel Benko Date: Sun, 31 Mar 2019 18:06:40 +0200 Subject: [PATCH] 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 0c6677691c..99c1f6d293 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 8beb94cc0f..2eae022693 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 -- 2.39.5