home *** CD-ROM | disk | FTP | other *** search
- #include "mkfont1.c"
-
- /*
- this program takes 102 width values
- (one per line) in the order provided bu Graphic
- Systems and prepares a C-compileable width table.
- */
- char ibuf[512];
- int id;
- int width[102];
- int ascii[102];
- int zero;
- int emw, hyw;
- int xxx;
-
- main(argc,argv)
- int argc;
- char **argv;
- {
- register i, j;
- register char *p;
-
- while((--argc > 0) && ((++argv)[0][0]=='-')){
- switch(argv[0][1]){
- default:
- continue;
- }
- }
- if(argc){
- if((id=open(argv[0],0)) < 0){
- printf("Cannot open: %s.\n",argv[0]);
- exit(1);
- }
- }
- j = read(id,ibuf,512);
- p = ibuf;
- for(i=0; i<102; i++){
- width[i] = atoi(p);
- while(*p++ != '\n');
- }
- for(i=0; i<102; i++){
- if(font[i].name < 0177){
- ascii[i] = font[i].name;
- }else{
- for(j=0; chtab[j] != 0; j =+ 2){
- if(font[i].name == chtab[j])break;
- }
- ascii[i] = chtab[j+1] & 0377;
- if(chtab[j] == 'hy')hyw = width[i];
- if(chtab[j] == 'em')emw = width[i];
- }
- }
- printf("char XXw[256-32] {\t/*XX*/\n");
- for(i=040; i<256; i++){
- if(i == 0377){
- printf("0};\n");
- break;
- }
- if(i == 0177){
- printf("6,\t %s\n",nametab[i-040]);
- continue;
- }
- if(i == 0226){
- printf("3,\t %s\n",nametab[i-040]);
- continue;
- }
- if(i == ' '){
- printf("12,\t %s\n",nametab[i-040]);
- continue;
- }
- if(i == '-'){
- printf("%d,\t %s\n",hyw,nametab[i-040]);
- continue;
- }
- for(j=0; j<102; j++){
- if(ascii[j] == i)break;
- }
- if(j == 102){
- printf("0,");
- zero++;
- if(nametab[i-040]){
- printf("\t %s\n",nametab[i-040]);
- zero = 0;
- }else if(i < 0177){
- printf("\t /*%c*/\n",i);
- zero = 0;
- }
- if(zero && !((i+1)%8)){
- printf("\n");
- zero = 0;
- }
- }else{
- if(zero){
- zero = 0;
- printf("\n");
- }
- printf("%d",width[j]);
- if(font[j].ctval)printf("+0%d00, ",font[j].ctval);
- else printf(",\t ");
- printf("%s\n",nametab[i-040]);
- }
- }
- }
-