* admin/unidata/emoji-zwj.awk: More efficient code generation

Hoist the `eval-when-compile` to encompass the entire list, since
backquote forms aren't automatically evaluated at compile time.
This results in a single constant list in the generated code, and
much less actual code.
This commit is contained in:
Mattias Engdegård 2023-09-07 11:25:46 +02:00
parent a412d3c46c
commit 7c55bf59bb

View file

@ -100,14 +100,14 @@ END {
vec[codepoint] = vec[codepoint] "\n\"\\N{U+" trigger_codepoints[trig] "}\\N{U+FE0F}\""
}
print "(dolist (elt `("
print "(dolist (elt (eval-when-compile `("
for (elt in ch)
{
print "(#x" elt " .\n,(eval-when-compile (regexp-opt\n'(\n" vec[elt]
print "\"\\N{U+" elt "}\\N{U+FE0E}\"\n\"\\N{U+" elt "}\\N{U+FE0F}\"\n))))"
print "(#x" elt " .\n,(regexp-opt\n'(\n" vec[elt]
print "\"\\N{U+" elt "}\\N{U+FE0E}\"\n\"\\N{U+" elt "}\\N{U+FE0F}\"\n)))"
}
print "))"
print ")))"
print " (set-char-table-range composition-function-table"
print " (car elt)"
print " (nconc (char-table-range composition-function-table (car elt))"