#!/usr/bin/perl if (@ARGV != 3) { print STDERR "Use:\n"; print STDERR " showdf \n"; print STDERR "to create a showg diagram of glyphs differing in two files\n"; exit 1; } $cmd = shift @ARGV; $oldf = shift @ARGV; $newf = shift @ARGV; open(O, "<$oldf") or die "Unable to open '$oldf'\n"; open(N, "<$newf") or die "Unable to open '$newf'\n"; while() { last if(/CharStrings/); } while() { last if(/CharStrings/); } undef @symlist; $sym = ''; $inlist = 0; $nstop = 0; while($so = ) { if($so =~ m|^(/\S+)\s+\{|) { $sym = $1; $inlist = 0; #printf STDERR "found sym $sym\n"; if (!$nstop || $sn !~ m|^$sym\s+\{|) { while($sn = ) { #print STDERR "+$sn"; last if($sn =~ m|^${sym}\s+\{|); } } $nstop = 0; } elsif(!$nstop) { $sn = ; #print STDERR "<$so>$sn\n"; if($so ne $sn) { if(!$inlist) { $inlist = 1; push(@symlist, $sym); } if($sn =~ m|^(/\S+)\s+\{|) { $nstop = 1; #printf STDERR "stop at $1\n"; } } } } unshift(@symlist, $cmd, '-c', $oldf, $newf); #printf("%s\n", join(' ', @symlist)); exec @symlist;