summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Schweikhardt <schweikh@schweikhardt.net>2025-08-26 07:58:10 +0200
committerJens Schweikhardt <schweikh@schweikhardt.net>2025-08-26 07:58:10 +0200
commitae295750d1fd924bf9962d3e0c431a75e11a21f5 (patch)
treed342b7dd82b5ae70e4ca7d47031b0fe1458f2c00
parenta4ec12a6076b3bd8eae65f01ae2103b8b8fa54cf (diff)
Replaced by hextobdf.c.
-rwxr-xr-xhex2bdf.pl136
1 files changed, 0 insertions, 136 deletions
diff --git a/hex2bdf.pl b/hex2bdf.pl
deleted file mode 100755
index bc941dc..0000000
--- a/hex2bdf.pl
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env perl
-
-use warnings;
-use Getopt::Long;
-use diagnostics;
-use strict;
-
-&initialization_and_options;
-# +-------------------+
-# | Main Program |
-# +-------------------+
-
-my @bdf = ();
-my $glyphs = 0;
-
-my $fontfile = $ARGV[0];
-open (my $fh, '<', $fontfile) or die "$::MYNAME: could not open $fontfile: $!";
-while (my $line = <$fh>) {
- next if ($line =~ /^\s*#/);
- if ($line =~ /^([[:xdigit:]]+):([[:xdigit:]]+)$/) {
- if ($::opt_display) {
- &display_glyph($1, $2);
- }
- else {
- &convert_glyph($1, $2);
- }
- }
- else {
- print STDERR "$::MYNAME: ignoring unrecognized line: $line\n";
- }
-}
-close $fh;
-
-unless ($::opt_display) {
- &write_preamble();
- print @bdf;
- print "ENDFONT\n";
-}
-&cleanup ();
-
-# +-------------------+
-# | Subroutines |
-# +-------------------+
-sub display_glyph () {
- my ($glyphno, $bitmap) = @_;
- foreach my $p (unpack "(A4)*", $bitmap) {
- my $n = hex $p;
- foreach my $bit (map { 1 << $_ } reverse 4..15) {
- print $n & $bit ? "██" : " ";
- }
- print "\n";
- }
-}
-
-sub convert_glyph () {
- my ($glyphno, $bitmap) = @_;
- push @bdf, "STARTCHAR U+$glyphno\n";
- push @bdf, sprintf("ENCODING %d\n", hex($glyphno));
- if (length($bitmap) == 88) {
- push @bdf, "SWIDTH 500 0\n";
- push @bdf, "DWIDTH 12 0\n";
- push @bdf, "BBX 12 22 0 -5\n";
- push @bdf, "BITMAP\n";
- foreach my $p (unpack "(A4)*", $bitmap) {
- push @bdf, "$p\n";
- }
- }
- elsif (length($bitmap) == 132) {
- push @bdf, "SWIDTH 1000 0\n";
- push @bdf, "DWIDTH 24 0\n";
- push @bdf, "BBX 24 22 0 -5\n";
- push @bdf, "BITMAP\n";
- foreach my $p (unpack "(A6)*", $bitmap) {
- push @bdf, "$p\n";
- }
- }
- else {
- printf STDERR "Unexpected bitmap length (not 88 or 132) in glyph U+%04x\n", $glyphno;
- exit 1;
- }
- push @bdf, "ENDCHAR\n";
- ++$glyphs;
-}
-
-sub write_preamble () {
- print "STARTFONT 2.1\n";
- print "FONT -sun-gallant-medium-r-normal--22-220-75-75-c-80-iso10646-1\n";
- print "SIZE 22 75 75\n";
- print "FONTBOUNDINGBOX 22 12 0 -5\n";
- print "STARTPROPERTIES 2\n";
- print "FONT_ASCENT 17\n";
- print "FONT_DESCENT 5\n";
- print "ENDPROPERTIES\n";
- print "CHARS $glyphs\n";
-}
-
-sub usage {
- print STDERR <<"EOF";
-usage: $::MYNAME font.hex
-
- Convert a VT hex font file to X11 bdf font file.
-
- Options:
- --help show this help text
- --verbose verbose mode
-
- Examples:
-
- $::MYNAME /usr/src/share/vt/fonts/gallant.hex > gallant.bdf
-
-EOF
- print STDERR '$Id: pl.tpl,v 1.5 2013/02/13 21:59:32 schweikh Exp schweikh $',
- "\n";
- exit 1;
-}
-
-sub initialization_and_options {
- $SIG{'INT'} = 'cleanup';
- $SIG{'TERM'} = 'cleanup';
- $SIG{'HUP'} = 'cleanup';
- $::MYNAME = $0; # Set program name for diagnostic messages.
- $::MYNAME =~ s,.*/,,; # Strip directory part.
- $::TMP1 = "/tmp/$::MYNAME.$$";
- $::opt_help = $::opt_verbose = 0; # to have them used at least twice
- $::opt_display = 0;
- &usage unless &GetOptions ('display', 'help', 'verbose');
- &usage if $::opt_help or $#ARGV != 0; # exactly one arg is needed
- print "$::MYNAME\n" if $::opt_verbose;
-}
-
-sub cleanup {
- unlink $::TMP1 if -f $::TMP1;
- exit;
-}
-
-# vim: syntax=perl tabstop=2 shiftwidth=2 expandtab fileformat=unix