74main (
int argc,
char *argv[])
82 int pagecount[256] = {256 * 0};
89 void mkftable (
unsigned plane,
int pagecount[256],
int links);
91 size_t strlen(
const char *s);
93 if (argc > 1 && argv[1][0] ==
'-') {
95 for (i = 1; i < argc; i++) {
98 sscanf (&argv[1][2],
"%x", &pageno);
99 if (pageno >= 0 && pageno <= 255) onepage = 1;
109 plane = atoi(&argv[1][2]);
117 if (!onepage && plane==0) {
118 pagecount[0xfd] = 32;
132 while (fgets (inbuf,
MAXBUF-1, stdin) != NULL) {
133 sscanf (inbuf,
"%X", &unichar);
136 if (page == pageno) {
137 pagecount[unichar & 0xff]++;
143 if (unichar < 0xfdd0 || (unichar > 0xfdef && unichar < 0xfffe))
147 if ((page >> 8) == plane) {
148 pagecount[page & 0xFF]++;
157 if (plane > 0) fprintf (stdout,
" ");
159 " 0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
160 for (i=0; i<0x10; i++) {
161 fprintf (stdout,
"%02X%X ", plane, i);
162 for (j=0; j<0x10; j++) {
164 if (pagecount[i*16+j])
165 fprintf (stdout,
" * ");
167 fprintf (stdout,
" . ");
170 fprintf (stdout,
"%3X ", pagecount[i*16+j]);
173 fprintf (stdout,
"\n");
194mkftable (
unsigned plane,
int pagecount[256],
int links)
202 printf (
"<table border=\"3\" align=\"center\">\n");
203 printf (
" <tr><th colspan=\"16\" bgcolor=\"#ffcc80\">");
204 printf (
"GNU Unifont Glyphs<br>with Page Coverage for Plane %d<br>(Green=100%%, Red=0%%)</th></tr>\n", plane);
205 for (i = 0x0; i <= 0xF; i++) {
207 for (j = 0x0; j <= 0xF; j++) {
208 count = pagecount[ (i << 4) | j ];
211 if (plane != 0 || (i < 0xd || (i == 0xd && j < 0x8) || (i == 0xf && j > 0x8))) {
213 if (count == 0x100) bgcolor = 0xccffcc;
215 else bgcolor = 0xff0000 | (count << 8) | (count >> 1);
216 printf (
" <td bgcolor=\"#%06X\">", bgcolor);
218 printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%X%X</a>", plane, plane, i, j, i, j);
220 printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%02X%X%X</a>", plane, plane, i, j, plane, i, j);
225 printf (
" <td align=\"center\" colspan=\"8\" bgcolor=\"#cccccc\">");
226 printf (
"<b>Surrogate Pairs</b>");
232 printf (
" <td align=\"center\" colspan=\"16\" bgcolor=\"#cccccc\">");
233 printf (
"<b>Private Use Area</b>");
239 printf (
" <td align=\"center\" colspan=\"9\" bgcolor=\"#cccccc\">");
240 printf (
"<b>Private Use Area</b>");
247 printf (
"</table>\n");
248 printf (
"</body>\n");
249 printf (
"</html>\n");
int main(void)
The main function.
void mkftable(unsigned plane, int pagecount[256], int links)
Create an HTML table linked to PNG images.
#define MAXBUF
Maximum input line size - 1.