summaryrefslogtreecommitdiff
path: root/build/tools/makeglyphs
diff options
context:
space:
mode:
Diffstat (limited to 'build/tools/makeglyphs')
-rwxr-xr-xbuild/tools/makeglyphs29
1 files changed, 29 insertions, 0 deletions
diff --git a/build/tools/makeglyphs b/build/tools/makeglyphs
new file mode 100755
index 0000000..6acb350
--- /dev/null
+++ b/build/tools/makeglyphs
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -W
+
+%name = ();
+
+print "#include <stdlib.h>\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";