b17cb324 |
1 | #!/bin/bash |
2 | |
3 | #if [ ! -f "$1" ]; then |
4 | # echo "Must supply an infile name!" |
5 | # exit 2 |
6 | #fi |
7 | |
8 | #infile="$1" |
9 | |
8dc281af |
10 | FILES=hmp/*.hmp |
11 | |
b17cb324 |
12 | cat <<EOF |
13 | /* Automatically generated Hershey font mappings */ |
14 | |
15 | #include "fontgen.h" |
16 | #include <stdio.h> |
17 | |
18 | EOF |
19 | unmangle(){ |
20 | for n in `cat`; do |
21 | if echo $n | grep -q '-' ; then |
22 | from=`echo $n | sed 's/\([0-9]*\)-\([0-9]*\)/\1/g'` |
23 | to=`echo $n | sed 's/\([0-9]*\)-\([0-9]*\)/\2/g'` |
24 | i=$from |
25 | while [ $i -le $to ]; do |
26 | echo $i |
27 | i=$(($i+1)) |
28 | done |
29 | |
30 | else echo $n |
31 | fi |
32 | done |
33 | } |
34 | |
35 | block(){ |
36 | echo -e "\n/* Font map for $1 */" |
37 | numbers=`cat` |
38 | i=0 |
39 | echo -ne "int $1_map[]=\n {" |
40 | for n in $numbers; do |
41 | echo -n "$n" |
42 | if [ $i != 95 ]; then |
43 | echo -n "," |
44 | if [ $(($i%8)) -eq 7 ]; then |
45 | echo -ne "\n " |
46 | fi |
47 | fi |
48 | i=$(($i+1)) |
49 | done |
50 | echo "};" |
51 | } |
52 | |
8dc281af |
53 | for n in $FILES; do |
b17cb324 |
54 | name=`basename $n .hmp` |
55 | cat $n | unmangle | block $name |
56 | done |
57 | |
58 | cat <<EOF |
59 | |
60 | |
61 | /* And now the ready to use fonts */ |
62 | EOF |
63 | |
8dc281af |
64 | for n in $FILES; do |
b17cb324 |
65 | name=`basename $n .hmp` |
66 | echo "pl_font font_$name;" |
67 | done |
68 | |
69 | cat <<EOF |
70 | |
71 | |
72 | /* Initialisation routine */ |
73 | |
74 | void font_init(){ |
75 | EOF |
76 | |
8dc281af |
77 | for n in $FILES; do |
b17cb324 |
78 | name=`basename $n .hmp` |
79 | mapname=`basename $n .hmp`_map |
80 | |
81 | echo " font_$name=assemble_font(' ',96,$mapname);" |
82 | done |
83 | |
84 | echo -e "}\n/* End. */" |