67main (
int argc, 
char *argv[])
 
   75   int pagecount[256] = {256 * 0};
 
   84   if (argc > 1 && argv[1][0] == 
'-') {  
 
   86      for (i = 1; i < argc; i++) {
 
   89               sscanf (&argv[1][2], 
"%x", &pageno);
 
   90               if (pageno >= 0 && pageno <= 255) onepage = 1;
 
  100               plane = atoi(&argv[1][2]);
 
  108   if (!onepage && plane==0) {
 
  109      pagecount[0xfd] = 32;  
 
  123   while (fgets (inbuf, 
MAXBUF-1, stdin) != NULL) {
 
  124      sscanf (inbuf, 
"%X", &unichar);
 
  127         if (page == pageno) { 
 
  128            pagecount[unichar & 0xff]++; 
 
  134            if (unichar < 0xfdd0 || (unichar > 0xfdef && unichar < 0xfffe))
 
  138            if ((page >> 8) == plane) { 
 
  139               pagecount[page & 0xFF]++;
 
  148      if (plane > 0) fprintf (stdout, 
"  ");
 
  150         "     0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F\n");
 
  151      for (i=0; i<0x10; i++) {
 
  152         fprintf (stdout,
"%02X%X ", plane, i); 
 
  153         for (j=0; j<0x10; j++) {
 
  155               if (pagecount[i*16+j])
 
  156                  fprintf (stdout,
" *  ");
 
  158                  fprintf (stdout,
" .  ");
 
  161               fprintf (stdout, 
"%3X ", pagecount[i*16+j]);
 
  164         fprintf (stdout,
"\n");
 
  185mkftable (
unsigned plane, 
int pagecount[256], 
int links)
 
  193   printf (
"<table border=\"3\" align=\"center\">\n");
 
  194   printf (
"  <tr><th colspan=\"16\" bgcolor=\"#ffcc80\">");
 
  195   printf (
"GNU Unifont Glyphs<br>with Page Coverage for Plane %d<br>(Green=100%%, Red=0%%)</th></tr>\n", plane);
 
  196   for (i = 0x0; i <= 0xF; i++) {
 
  198      for (j = 0x0; j <= 0xF; j++) {
 
  199         count = pagecount[ (i << 4) | j ];
 
  202         if (plane != 0 || (i < 0xd || (i == 0xd && j < 0x8) || (i == 0xf && j > 0x8))) {
 
  204            if (count == 0x100) bgcolor = 0xccffcc;
 
  206            else bgcolor = 0xff0000 | (count << 8) | (count >> 1);
 
  207            printf (
"    <td bgcolor=\"#%06X\">", bgcolor);
 
  209               printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%X%X</a>", plane, plane, i, j, i, j);
 
  211               printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%02X%X%X</a>", plane, plane, i, j, plane, i, j);
 
  216               printf (
"    <td align=\"center\" colspan=\"8\" bgcolor=\"#cccccc\">");
 
  217               printf (
"<b>Surrogate Pairs</b>");
 
  223               printf (
"    <td align=\"center\" colspan=\"16\" bgcolor=\"#cccccc\">");
 
  224               printf (
"<b>Private Use Area</b>");
 
  230               printf (
"    <td align=\"center\" colspan=\"9\" bgcolor=\"#cccccc\">");
 
  231               printf (
"<b>Private Use Area</b>");
 
  238   printf (
"</table>\n");
 
  239   printf (
"</body>\n");
 
  240   printf (
"</html>\n");
 
int main(int argc, char *argv[])
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.