67 main (
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");
 
  185 mkftable (
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.