xref: /plan9/sys/src/cmd/abaco/charsets.awk (revision 7ab27030036b6c877a6f81728daeda263d1ca3cf)
1*7ab27030SDavid du Colombier#!/bin/awk -f
2*7ab27030SDavid du Colombier# makes a table of character sets from http://www.iana.org/assignments/character-sets
3*7ab27030SDavid du Colombier# and tcs.txt
4*7ab27030SDavid du Colombier
5*7ab27030SDavid du ColombierBEGIN{
6*7ab27030SDavid du Colombier	if(ARGC != 3){
7*7ab27030SDavid du Colombier		print "Usage:  " ARGV[0] " charsets.txt  tcs.txt"
8*7ab27030SDavid du Colombier		exit 1
9*7ab27030SDavid du Colombier	}
10*7ab27030SDavid du Colombier	while(getline<ARGV[1]){
11*7ab27030SDavid du Colombier		if(/^Name:/){
12*7ab27030SDavid du Colombier			i = 0
13*7ab27030SDavid du Colombier			name=tolower($2)
14*7ab27030SDavid du Colombier			names[name] = name
15*7ab27030SDavid du Colombier			alias[name i] = name
16*7ab27030SDavid du Colombier			nalias[name] = ++i
17*7ab27030SDavid du Colombier
18*7ab27030SDavid du Colombier		}
19*7ab27030SDavid du Colombier		if(/^Alias:/){
20*7ab27030SDavid du Colombier			a = tolower($2)
21*7ab27030SDavid du Colombier			if(a != "none"){
22*7ab27030SDavid du Colombier				names[a] = name
23*7ab27030SDavid du Colombier				alias[name i ] = a
24*7ab27030SDavid du Colombier				nalias[name] = ++i
25*7ab27030SDavid du Colombier			}
26*7ab27030SDavid du Colombier		}
27*7ab27030SDavid du Colombier	}
28*7ab27030SDavid du Colombier}
29*7ab27030SDavid du Colombier{
30*7ab27030SDavid du Colombier	tcs = $1
31*7ab27030SDavid du Colombier	if(tcs in names){
32*7ab27030SDavid du Colombier		name = names[tcs]
33*7ab27030SDavid du Colombier		for(i=0; i<nalias[name]; i++)
34*7ab27030SDavid du Colombier			print "\"" alias[name i] "\", \"" $2 "\","
35*7ab27030SDavid du Colombier	}
36*7ab27030SDavid du Colombier}
37