/* Converts a F16 font to BDF */ #include #include #include main(int argc, char **argv) { FILE *tf, *ff, *of; char tmp[81]; int i, encoding, bitrow; tf = fopen("template.bdf", "r"); ff = fopen(argv[1], "r"); of = fopen(argv[2], "w"); while (1) { fgets(tmp, 80, tf); if (strncmp(tmp, "STARTCHAR", 9)) fputs(tmp, of); else break; } while (1) { fputs(tmp, of); fgets(tmp, 80, tf); fputs(tmp, of); encoding = atoi(&tmp[9]); fseek(ff, encoding * 16, SEEK_SET); for (i = 0; i < 4; i++) fgets(tmp, 80, tf); fprintf(of, "SWIDTH 560 0\n"); fprintf(of, "DWIDTH 7 0\n"); fprintf(of, "BBX 8 16 0 -3\n"); fprintf(of, "BITMAP\n"); for (i = 0; i < 16; i++) { bitrow = fgetc(ff); fprintf(of, "%02X\n", bitrow); } while (1) { fgets(tmp, 80, tf); if (! strncmp(tmp, "ENDCHAR", 7)) { fputs(tmp, of); fgets(tmp, 80, tf); if (! strncmp(tmp,"ENDFONT", 7)) { fputs(tmp, of); goto rdy; } break; } } } rdy: fclose(tf); fclose(ff); fclose(of); } .