sub copyJob($$);
sub isrelativeFix($$$);
sub isrelative($$$);
-sub createTemporaryFileName($$);
+sub createTemporaryFileName($$$);
sub copyJobPending($$);
sub addNewJob($$$$$);
-sub addFileCopyJob($$$$);
+sub addFileCopyJob($$$$$);
sub getNewNameOf($$);
sub getlangs($$);
sub simplifylangs($);
my $inputEncoding = undef;
if ($fontT eq "systemF") {
- # if ($lang =~ /^(ar|ca|cs|da|de|el|es|eu|fa|fr|gl|he|hu|id|it|ko|nb|nl|pl|pt|ro|ru|se|sk|sl|sr|sv|uk)$/) {
- # }
- # else {
- # # default system fonts
- # $font{roman} = "FreeSerif";
- # $font{sans} = "FreeSans";
- # $font{typewriter} = "FreeMono";
- # }
}
elsif ($encodingT ne "default") {
# set input encoding to the requested value
my $destdirOfSubdocuments;
{
my ($name, $pat, $suffix) = fileparse($source, qr/\.[^.]*/);
- my $ext = $format . "_$lang";
- $destdirOfSubdocuments = "$destdir/tmp_$ext" . "_$name"; # Global var, something TODO here
+ my $ext = $format . "-$lang";
+ $name =~ s/[%_]/-/g;
+ $destdirOfSubdocuments = "$destdir/tmp-$ext" . "-$name"; # Global var, something TODO here
}
if(-d $destdirOfSubdocuments) {
$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") {
}
else {
my ($newname, $res1);
+ my @extlist = ();
+ if (ref($rStatus->{ext}) eq "ARRAY") {
+ my @extlist = @{$rStatus->{ext}};
+ my $created = 0;
+ for my $extx (@extlist) {
+ if (-e "$sourcedir/$f$extx") {
+ ($newname, $res1) = addFileCopyJob("$sourcedir/$f$extx",
+ "$destdirOfSubdocuments",
+ $rStatus->{"filetype"},
+ $rFiles, $created);
+ print "Added ($res1) file \"$sourcedir/$f$extx\" to be copied to \"$newname\"\n";
+ if (!$created && $extx ne "") {
+ $newname =~ s/$extx$//;
+ }
+ $created = 1;
+ }
+ }
+ print "WARNING: No prefixed file.(" . join('|', @extlist) . ") seens to exist, at \"$source:$fi_line_no\"\n" if (!$created);
+ }
+ else {
($newname, $res1) = addFileCopyJob("$sourcedir/$f$ext",
"$destdirOfSubdocuments",
$rStatus->{"filetype"},
- $rFiles);
+ $rFiles, 0);
print "Added ($res1) file \"$sourcedir/$f$ext\" to be copied to \"$newname\"\n";
if ($ext ne "") {
$newname =~ s/$ext$//;
}
+ }
$f = $newname;
$res += $res1;
}
}
}
}
- if ($foundrelative) {
- $rF->[$fidx] = join($separator, @{$filelist});
+ 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
+ my @rel_list = ();
+ for my $fr (@{$filelist}) {
+ push(@rel_list, File::Spec->abs2rel($fr, $destdir));
+ }
+ $rF->[$fidx] = join($separator, @rel_list);
$l = join('', @{$rF});
}
}
for my $k (values %type2hash) {
if ($rFiles->{$source}->{$k}) {
if (! $rFiles->{$source}->{$k . "copied"}) {
- $rFiles->{$source}->{$k . "copied"} = 1;
- my $dest = $rFiles->{$source}->{$k};
- push(@dest, $dest);
- if ($k eq "copyonly") {
- diestack("Could not copy \"$source\" to \"$dest\"") if (! cp($source, $dest));
- }
- else {
- interpretedCopy($source, $dest, $destdirOfSubdocuments, $rFiles);
- }
- $res += 1;
+ $rFiles->{$source}->{$k . "copied"} = 1;
+ my $dest = $rFiles->{$source}->{$k};
+ push(@dest, $dest);
+ if ($k eq "copyonly") {
+ diestack("Could not copy \"$source\" to \"$dest\"") if (! cp($source, $dest));
+ }
+ else {
+ interpretedCopy($source, $dest, $destdirOfSubdocuments, $rFiles);
+ }
+ $res += 1;
}
}
}
}
}
-sub createTemporaryFileName($$)
+my $oldfname = "";
+
+sub createTemporaryFileName($$$)
{
- my ($source, $destdir) = @_;
+ my ($source, $destdir, $created) = @_;
# get the basename to be used for the template
my ($name, $path, $suffix) = fileparse($source, qr/\.[^.]*/);
#print "source = $source, name = $name, path = $path, suffix = $suffix\n";
- my $template = "xx_$name" . "_";
- my $fname = File::Temp::tempnam($destdir, $template);
+ my $template = "xx-$name" . "-";
+ my $fname;
+ if (! $created) {
+ $fname = File::Temp::tempnam($destdir, $template);
+ $oldfname = $fname;
+ }
+ else {
+ $fname = $oldfname;
+ }
# Append extension from source
if ($suffix ne "") {
$rFiles->{$source} = $rJob;
}
-sub addFileCopyJob($$$$)
+sub addFileCopyJob($$$$$)
{
- my ($source, $destdirOfSubdocuments, $filetype, $rFiles) = @_;
+ my ($source, $destdirOfSubdocuments, $filetype, $rFiles, $created) = @_;
my ($res, $newname) = (0, undef);
my $rJob = $rFiles->{$source};
}
if (!defined($rJob->{$hashname})) {
addNewJob($source,
- createTemporaryFileName($source, $destdirOfSubdocuments),
+ createTemporaryFileName($source, $destdirOfSubdocuments, $created),
"$hashname", $rJob, $rFiles);
$res = 1;
}