Blob Blame History Raw
#!/bin/sh
# (c) Ricardas Cepas <rch@pub.osf.lt>. Copying policy: GNU GPL V2.
set -o errexit
#set -x
if [ $# != 1 ]
then	echo '  Usage: psfsplit <psf_bitmap_font_filename> '
	exit
fi
if [ `hexdump -e '/2 "%X" ' -n2 $1 ` != "436" ]
then	echo $1 -- non .psf file
	exit
fi
size=`hexdump -e '/1 "%i" ' -n1 -s2 $1 `
size=$[ ($size % 2 + 1) * 256 ]
height=`hexdump -e '/1 "%i" ' -n1 -s3 $1 `
echo $size chars, height=$height
mkdir $1_
dd bs=4 count=1 if=$1 of=$1_/#psf_header &>/dev/null
i=0
while let $[ i < $size ]
do
	dd bs=1 count=$height skip=$[ $i * $height + 4 ] if=$1 \
		of=$1_/`printf "%.3x" $i` &>/dev/null
	let i+=1
done
dd bs=1 skip=$[ $i * $height + 4 ] if=$1 of=$1_/map_tables &>/dev/null