master hovercats/oakiss / pkg / netsurf / libparserutils / aliases.awk
 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}