our $donefile="$package.done";
our $logfile="$package.log";
our $fontprefix="trad--";
+our $bdfnorm="bdfnorm";
our @rulespath;
our $mode;
our %foundrymap;
# for some other reason then sending it a KILL now won't
# affect its exit status.) We kill the output filters (before
# we close the output pipe) so we don't produce messages from
- # our output filters about corrupted data.
+ # our output filters about corrupted data. And we tolerate
+ # SIGPIPE in all the input filters.
flush $uswrite or die $!;
+ my $filterkind = 'input';
foreach my $ch (@children) {
if ($ch->{Stage} ne 'self') {
kill 9, $ch->{Pid} or die "$ch->{Pid} $ch->{Exe} $!";
$ch->{SigOK}{9} = 1;
+ } else {
+ $filterkind = 'output';
+ next;
+ }
+ if ($filterkind eq 'input') {
+ $ch->{SigOK}{13} = 1;
}
}
- $ch{'pcf2bdf'}{SigOK}{13} = 1;
# ... we might not have read all the output from pcf2bdf, which is OK
}
my $r;
process_filter(\$r, $input, $output, $inpcfgz, $logfh,
[
- ['gunzip'], ['pcf2bdf'],
+ ['gunzip'], ['pcf2bdf'], [$bdfnorm],
[],
['bdftopcf'],['',qw(gzip -1 -n)]
],
GetOptions(@options) or exit 127;
push @rulespath, "$sharedir/rules";
+$bdfnorm = "$sharedir/$bdfnorm";
die "need a mode\n" unless $mode;