This is plfont.c in view mode; [Download] [Up]
#include "plplot.h" #include <stdio.h> #ifdef AMIGA #define XFONT "PLFONTS:plxtnd.font" #define SFONT "PLFONTS:plstnd.font" #endif void plfont(ifont) int ifont; { int ifnt,icol; int level; glev(&level); if (level < 1) plexit("Please call plstar before calling plfont."); if (ifont < 1 || ifont > 4) plexit("Invalid font in plfont."); gatt(&ifnt,&icol); satt(ifont,icol); } short int *fntlkup; short int *fntindx; SCHAR *fntbffr; short int numberfonts, numberchars; short int indxleng; static short fontloaded=0; /* Loads either the standard or extended font */ void plfntld(fnt) int fnt; { static short charset; short bffrleng; FILE *fontfile; int level; glev(&level); if (level < 1) plexit("Please call plstar before calling plfontld."); if(fontloaded) { if(charset == fnt) return; free((VOID *)fntindx); free((VOID *)fntbffr); free((VOID *)fntlkup); } charset = fnt; if(fnt) fontfile = fopen(XFONT,"r"); else fontfile = fopen(SFONT,"r"); if(!fontfile) plexit("Error opening font file.\n"); else fontloaded = 1; fread((char *)&bffrleng,sizeof(short),1,fontfile); numberfonts = bffrleng/256; numberchars = bffrleng & 0xff; bffrleng = numberfonts*numberchars; fntlkup = (short int *)malloc(bffrleng*sizeof(short int)); if(!fntlkup) plexit("Out of memory while allocating font buffer.\n"); fread((char *)fntlkup,sizeof(short int),bffrleng,fontfile); fread((char *)&indxleng,sizeof(short),1,fontfile); fntindx = (short int *)malloc(indxleng*sizeof(short int)); if(!fntindx) plexit("Out of memory while allocating font buffer.\n"); fread((char *)fntindx,sizeof(short int),indxleng,fontfile); fread((char *)&bffrleng,sizeof(short),1,fontfile); fntbffr = (SCHAR *)malloc(2*bffrleng*sizeof(SCHAR)); if(!fntbffr) plexit("Out of memory while allocating font buffer.\n"); fread((char *)fntbffr,sizeof(SCHAR),2*bffrleng,fontfile); fclose(fontfile); } void plfontrel() { if(fontloaded) { free((VOID *)fntindx); free((VOID *)fntbffr); free((VOID *)fntlkup); fontloaded=0; } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.