This is xtndfont.c in view mode; [Download] [Up]
#include <stdio.h> #include <string.h> #if defined(vax) || defined(vax3200) #define SCHAR char #else #define SCHAR signed char #endif extern short int *hersh[]; extern short int *findex[]; extern short int *buffer[]; main() { short j, k, ib, nindx, nchars, nleng, htab, zero; short *hrshlst; SCHAR ix, iy; long fpos; FILE *fontfile; char *malloc(); hrshlst = (short *)malloc(4*176*sizeof(short)); ib = 0; for(j=0; j<4; j++) for(k=0; k<176; k++) hrshlst[ib++] = *(hersh[j]+k); fontfile = fopen("plxtnd.font","w+"); if(!fontfile) { printf("Error opening extended font file.\n"); exit(1); } htab = 4*256+176; /* # of fonts in upper byte # of chars in lower */ fwrite((char *)&htab,sizeof(short),1,fontfile); fwrite((char *)hrshlst,sizeof(short),4*176,fontfile); nleng = 1; zero = 0; nindx = 0; fpos = ftell(fontfile); fwrite((char *)&nindx,sizeof(short),1,fontfile); for(j=0; j<30; j++) { for(k=0; k<100; k++) { ib = *(findex[j]+k); if(ib == 0) { fwrite((char *)&zero,sizeof(short),1,fontfile); nindx++; } else { fwrite((char *)&nleng,sizeof(short),1,fontfile); nindx++; for(;;) { ix = *(buffer[ib/100]+ib%100)/128 - 64; iy = *(buffer[ib/100]+ib%100)%128 - 64; ib++; if(ix == -64) ix = 64; if(iy == -64) iy = 64; nleng++; if(ix == 64 && iy == 64) break; } } } } fseek(fontfile,fpos,0); fwrite((char *)&nindx,sizeof(short),1,fontfile); fseek(fontfile,0,2); fpos = ftell(fontfile); nleng = 1; nchars = 0; fwrite((char *)&nleng,sizeof(short),1,fontfile); for(j=0; j<30; j++) { for(k=0; k<100; k++) { ib = *(findex[j]+k); if(ib != 0) { for(;;) { ix = *(buffer[ib/100]+ib%100)/128 - 64; iy = *(buffer[ib/100]+ib%100)%128 - 64; ib++; if(ix == -64) ix = 64; if(iy == -64) iy = 64; fputc(ix,fontfile); fputc(iy,fontfile); nleng++; if(ix == 64 && iy == 64) break; } nchars++; } } } nleng--; fseek(fontfile,fpos,0); fwrite((char *)&nleng,sizeof(short),1,fontfile); fclose(fontfile); printf("There are %d characters in font set.\n",nchars-1); exit(0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.