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.