#!/usr/bin/env perl
# $Id; bdfviewer.pl $
#
# Author: Tomi Ollila -- too ät iki piste fi
#
#	Copyright (c) 2007 Tomi Ollila
#	    All rights reserved
#
# Created: Tue Nov 06 21:21:34 EET 2007 too
# Last modified: Tue Nov 06 21:57:22 EET 2007 too

use strict;
use warnings;

while (<>)
{
    next unless /^STARTCHAR\s+(.*)\s*/;
    my $startchar = $1;
    my $encoding;
    while (<>)
    {
	$encoding = $1, next if /^ENCODING\s+(.*)\s*/;
	last if /^BITMAP/;
    }
    my (@bitlines, $maxval); $maxval = 0;
    while (<>)
    {
	last if /^ENDCHAR/;
	chomp;
	my $val = hex $_;
	push @bitlines, $val;
	$maxval = $val if $val > $maxval;
    }
    printf "Char $encoding (0x%x): $startchar\n\n", $encoding;

    my $width = 0;
    $width = (log $maxval) / (log 2) if $maxval > 0;
    print ' '. '-' x ($width + 2), "\n";
    foreach (@bitlines) {
	my $bv = $_;
	print ' |';
	for (reverse 1..$width)
	{
	    if ($bv & 2 ** $_) { print "#"; } else { print ' '; }
	}
	print "|\n";
    }
    print ' ', '-' x ($width + 2), "\n\n";
}

