# 2.11BSD#431 - /usr/src/usr.bin/roff/troff_font/mkfont.c

##### Functions

    main              X

##### Variables

    ascii             X
    emw               X
    hyw               X
    ibuf              X
    id                X
    width             X
    xxx               X
    zero              X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)mkfont.c	4.3 2/16/88";
       3: #endif lint
       4:
       5: #include "mkfont1.c"
       6:
       7: /*
       8:   this program takes 102 width values
       9:   (one per line) in the order provided bu Graphic
      10:   Systems and prepares a C-compileable width table.
      11: */
      12: char ibuf[512];
      13: int id;
      14: int width[102];
      15: int ascii[102];
      16: int zero;
      17: int emw, hyw;
      18: int xxx;
      19:
      20: main(argc,argv)
      21: int argc;
      22: char **argv;
      23: {
      24:     register i, j;
      25:     register char *p;
      26:
      27:     while((--argc > 0) && ((++argv)[0][0]=='-')){
      28:         switch(argv[0][1]){
      29:             default:
      30:                 continue;
      31:         }
      32:     }
      33:     if(argc){
      34:         if((id=open(argv[0],0)) < 0){
      35:             printf("Cannot open: %s.\n",argv[0]);
      36:             exit(1);
      37:         }
      38:     }
      39:     j = read(id,ibuf,512);
      40:     p = ibuf;
      41:     for(i=0; i<102; i++){
      42:         width[i] = atoi(p);
      43:         while(*p++ != '\n');
      44:     }
      45:     for(i=0; i<102; i++){
      46:         if(font[i].name < 0177){
      47:             ascii[i] = font[i].name;
      48:         }else{
      49:             for(j=0; chtab[j] != 0; j += 2){
      50:                 if(font[i].name == chtab[j])break;
      51:             }
      52:             ascii[i] = chtab[j+1] & 0377;
      53:             if(chtab[j] == PAIR('h','y')) hyw = width[i];
      54:             if(chtab[j] == PAIR('e','m')) emw = width[i];
      55:         }
      56:     }
      57:     printf("char XXw[256-32] {\t/*XX*/\n");
      58:     for(i=040; i<256; i++){
      59:         if(i == 0377){
      60:             printf("0};\n");
      61:             break;
      62:         }
      63:         if(i == 0177){
      64:             printf("6,\t %s\n",nametab[i-040]);
      65:             continue;
      66:         }
      67:         if(i == 0226){
      68:             printf("3,\t %s\n",nametab[i-040]);
      69:             continue;
      70:         }
      71:         if(i == ' '){
      72:             printf("12,\t %s\n",nametab[i-040]);
      73:             continue;
      74:         }
      75:         if(i == '-'){
      76:             printf("%d,\t %s\n",hyw,nametab[i-040]);
      77:             continue;
      78:         }
      79:         for(j=0; j<102; j++){
      80:             if(ascii[j] == i)break;
      81:         }
      82:         if(j == 102){
      83:             printf("0,");
      84:             zero++;
      85:             if(nametab[i-040]){
      86:                 printf("\t %s\n",nametab[i-040]);
      87:                 zero = 0;
      88:             }else if(i < 0177){
      89:                 printf("\t /*%c*/\n",i);
      90:                 zero = 0;
      91:             }
      92:             if(zero && !((i+1)%8)){
      93:                 printf("\n");
      94:                 zero = 0;
      95:             }
      96:         }else{
      97:             if(zero){
      98:                 zero = 0;
      99:                 printf("\n");
     100:             }
     101:             printf("%d",width[j]);
     102:             if(font[j].ctval)printf("+0%d00, ",font[j].ctval);
     103:             else printf(",\t ");
     104:             printf("%s\n",nametab[i-040]);
     105:         }
     106:     }
     107: }

#### Defined functions

main defined in line 20; never used

#### Defined variables

ascii defined in line 15; used 3 times

- in line 47-52(2), 80

emw defined in line 17; used 1 times

- in line 54

hyw defined in line 17; used 2 times

- in line 53, 76

ibuf defined in line 12; used 2 times

- in line 39-40(2)

id defined in line 13; used 2 times

- in line 34-39(2)

sccsid defined in line 2; never used
width defined in line 14; used 4 times

- in line 42, 53-54(2), 101

xxx defined in line 18; never used
zero defined in line 16; used 7 times

- in line 84-98(7)

Last modified: 1988-02-16 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 1455 |