#!/usr/bin/perl -W %name = (); print "#include \n"; print "#include \"rufl_internal.h\"\n"; print "const struct rufl_glyph_map_entry rufl_glyph_map[] = {\n"; print "\t{\" \", 0}, /* sentinel */\n"; while (<>) { if (/^([0-9A-F]{4});([a-zA-Z0-9]+);/) { $name{"$1:$2"} = 1; } } @glyph = (); while (($un, ) = each %name) { ($u, $n) = split ':', $un; push @glyph, [$n, $u]; } foreach $z (sort {$$a[0] cmp $$b[0] or $$a[1] cmp $$b[1]} @glyph) { print "\t{\"$$z[0]\", 0x$$z[1]},\n"; } print "\t{\"~\", 0} /* sentinel */\n"; print "};\n"; print "const size_t rufl_glyph_map_size = sizeof rufl_glyph_map /\n"; print " sizeof rufl_glyph_map[0];\n";