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