1BEGIN {
2 print "static parserutils_charset_aliases_canon canonical_charset_names[] = {"
3 n = 0
4}
5
6/^(#|$)/ {next}
7
8function addalias(s) {
9 s = tolower(s)
10 gsub("[^a-z0-9]", "", s)
11 if (!(s in aliases))
12 ++num_aliases
13 aliases[s] = n
14}
15
16
17{
18 print "\t{ "$2", "length($1)", \""$1"\" },"
19 addalias($1)
20 for (i = 3; i <= NF; ++i)
21 addalias($i)
22 if ($1 ~ /^ISO-10646-UCS-[24]$/ || $1 ~ /^UTF-(8$|16|32)/)
23 isunicode = (isunicode ? (isunicode" || ") : "") "((x) == "$2")"
24 ++n
25}
26END {
27 print "};"
28
29 print "static const uint16_t charset_aliases_canon_count = "n";"
30
31 print "typedef struct {"
32 print "\tuint16_t name_len;"
33 print "\tconst char *name;"
34 print "\tparserutils_charset_aliases_canon *canon;"
35 print "} parserutils_charset_aliases_alias;"
36
37 print "static parserutils_charset_aliases_alias charset_aliases[] = {"
38 for (alias in aliases) {
39 i = aliases[alias]
40 print "\t{ "length(alias)", \""alias"\", &canonical_charset_names["i"] }," | "sort -t '\"' -k 2"
41 }
42 close("sort -t '\"' -k 2")
43 print "};"
44 print "static const uint16_t charset_aliases_count = "num_aliases";"
45 print "#define MIBENUM_IS_UNICODE(x) ("isunicode")"
46}