BEGIN { max = 31 } { if ($0 !~ /^[ \t]*(\#.*)?$/) { max++ if (max == 127) { for (max = 127; max < 160; max++) { uni[max] = max comment[max] = "" } } uni[max] = $2 if ($3 == "#") comment[max] = "\t/* " substr($0, match($0,$4)) " */" else comment[max] = "" } } END { if (FILENAME == "") { fname = "unknown" } else { if (FILENAME ~ /\./) fname = substr(FILENAME, 1, match(FILENAME, /\./) - 1) } sub(/.*\//, "", fname) sub(/-/, "_", fname) print "const unsigned int unicode_" fname "[256] = {" for (x = 0; x < 32; x++) { printf (" 0x00%02x,\n", x) } for (x = 32; x < max; x++) { if (x == 127) { for (x = 127; x < 160; x++) { printf (" 0x00%02x,\n", x) } } print " " uni[x] "," comment[x] } print " " uni[x] comment[x] "\n};" }