summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile2
-rwxr-xr-xtools/makeglyphs29
2 files changed, 30 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile
index 73974aa..7592083 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -11,6 +11,6 @@ SOURCES := $(SOURCES) $(BUILDDIR)/rufl_glyph_map.c
$(BUILDDIR)/rufl_glyph_map.c: src/Glyphs
$(VQ)$(ECHO) "MKGLYPHS: $<"
- $(Q)$(PERL) build/tools/makeglyphs < $< > $@
+ $(Q)$(PERL) tools/makeglyphs < $< > $@
include $(NSBUILD)/Makefile.subdir
diff --git a/tools/makeglyphs b/tools/makeglyphs
new file mode 100755
index 0000000..6acb350
--- /dev/null
+++ b/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";