70main (
int argc, 
char *argv[])
 
   78   int pagecount[256] = {256 * 0};
 
   85   void mkftable (
unsigned plane, 
int pagecount[256], 
int links);
 
   89   if (argc > 1 && argv[1][0] == 
'-') {  
 
   91      for (i = 1; i < argc; i++) {
 
   94               sscanf (&argv[1][2], 
"%x", &pageno);
 
   95               if (pageno >= 0 && pageno <= 255) onepage = 1;
 
  105               plane = atoi(&argv[1][2]);
 
  113   if (!onepage && plane==0) {
 
  114      pagecount[0xfd] = 32;  
 
  128   while (fgets (inbuf, 
MAXBUF-1, stdin) != NULL) {
 
  129      sscanf (inbuf, 
"%X", &unichar);
 
  132         if (page == pageno) { 
 
  133            pagecount[unichar & 0xff]++; 
 
  139            if (unichar < 0xfdd0 || (unichar > 0xfdef && unichar < 0xfffe))
 
  143            if ((page >> 8) == plane) { 
 
  144               pagecount[page & 0xFF]++;
 
  153      if (plane > 0) fprintf (stdout, 
"  ");
 
  155         "     0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F\n");
 
  156      for (i=0; i<0x10; i++) {
 
  157         fprintf (stdout,
"%02X%X ", plane, i); 
 
  158         for (j=0; j<0x10; j++) {
 
  160               if (pagecount[i*16+j])
 
  161                  fprintf (stdout,
" *  ");
 
  163                  fprintf (stdout,
" .  ");
 
  166               fprintf (stdout, 
"%3X ", pagecount[i*16+j]);
 
  169         fprintf (stdout,
"\n");
 
  190mkftable (
unsigned plane, 
int pagecount[256], 
int links)
 
  198   printf (
"<table border=\"3\" align=\"center\">\n");
 
  199   printf (
"  <tr><th colspan=\"16\" bgcolor=\"#ffcc80\">");
 
  200   printf (
"GNU Unifont Glyphs<br>with Page Coverage for Plane %d<br>(Green=100%%, Red=0%%)</th></tr>\n", plane);
 
  201   for (i = 0x0; i <= 0xF; i++) {
 
  203      for (j = 0x0; j <= 0xF; j++) {
 
  204         count = pagecount[ (i << 4) | j ];
 
  207         if (plane != 0 || (i < 0xd || (i == 0xd && j < 0x8) || (i == 0xf && j > 0x8))) {
 
  209            if (count == 0x100) bgcolor = 0xccffcc;
 
  211            else bgcolor = 0xff0000 | (count << 8) | (count >> 1);
 
  212            printf (
"    <td bgcolor=\"#%06X\">", bgcolor);
 
  214               printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%X%X</a>", plane, plane, i, j, i, j);
 
  216               printf (
"<a href=\"png/plane%02X/uni%02X%X%X.png\">%02X%X%X</a>", plane, plane, i, j, plane, i, j);
 
  221               printf (
"    <td align=\"center\" colspan=\"8\" bgcolor=\"#cccccc\">");
 
  222               printf (
"<b>Surrogate Pairs</b>");
 
  228               printf (
"    <td align=\"center\" colspan=\"16\" bgcolor=\"#cccccc\">");
 
  229               printf (
"<b>Private Use Area</b>");
 
  235               printf (
"    <td align=\"center\" colspan=\"9\" bgcolor=\"#cccccc\">");
 
  236               printf (
"<b>Private Use Area</b>");
 
  243   printf (
"</table>\n");
 
  244   printf (
"</body>\n");
 
  245   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.