X-Git-Url: https://git.distorted.org.uk/~mdw/xfonts-traditional/blobdiff_plain/6dd0b06bb8ff014a315446417c91c7b5ce9e3132..460cb92246fa25d21d7d8723136ced515bfd5749:/update-xfonts-traditional diff --git a/update-xfonts-traditional b/update-xfonts-traditional index 839cc18..65d1d08 100755 --- a/update-xfonts-traditional +++ b/update-xfonts-traditional @@ -21,6 +21,7 @@ our %foundrymap; our $verbose=0; our $reportfh; our $foundryinfo; +our %props; sub reportloaded { return unless $verbose; @@ -55,6 +56,7 @@ sub processbdf ($$$$) { my ($foundry,$font); my ($w,$h,$xo,$yo,$y,$bitmap,$glyph); my $modified=0; + %props = (); while (<$inbdf>) { if ($state eq 'bitmap' && $y==$h) { $glyph = uc $glyph; @@ -97,6 +99,10 @@ sub processbdf ($$$$) { $state='startchar'; $w=undef; } + if (($state eq 'idle' || $state eq 'startchar') && + m/^([A-Z_]+)\s+(.*\S)\s+$/) { + $props{$1}=$2; + } if ($state eq 'startchar') { if (m/^BBX\s+(\+?\d+)\s+(\+?\d+)\s+([-+]?\d+)\s+([-+]?\d+)\s+$/) { ($w,$h,$xo,$yo) = ($1,$2,$3,$4); @@ -106,6 +112,9 @@ sub processbdf ($$$$) { $y=0; $glyph=''; $state='bitmap'; + $props{' 7bit'}= + ($props{'CHARSET_REGISTRY'} =~ m/iso8859|utf|iso10646/i && + $props{'ENCODING'} <= 127); } } print $outbdf $_ or die $!; @@ -156,13 +165,13 @@ sub loadfoundries () { sub processpcfgz ($$$$) { my ($inpcfgz,$outpcfgz,$logfile,$what) = @_; - + print $reportfh "processing $inpcfgz to $outpcfgz\n" if $verbose>=2; my $current = new IO::File $inpcfgz, '<' or die "$inpcfgz $!"; my ($usread,$uswrite); my ($reader,$writer); my @children; foreach my $proc (['gunzip'], ['pcf2bdf'], [], - ['bdftopcf'],['',qw(gzip -1)]) { + ['bdftopcf'],['',qw(gzip -1 -n)]) { my $isfinal = (@$proc && $proc->[0] eq ''); if (!$isfinal) { $reader = new IO::Handle or die $!; @@ -231,8 +240,7 @@ sub processfontdir ($) { my $olddone = do "$fontdir/$donefile"; if (!$olddone) { die "$fontdir $! $@ " unless $!==&ENOENT; - } - if ($olddone && $olddone->{''} ne $foundryinfo) { + } elsif ($olddone->{''} ne $foundryinfo) { our $repro_reported; print $reportfh "reprocessing fonts (rules updated)\n" or die $! unless $repro_reported++;