logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

aliases.awk (1132B)


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