home *** CD-ROM | disk | FTP | other *** search
- /*
- * lemrc.c - get default fonts from local file.
- *
- * copyright (c) by Alan W. Paeth, 1987. All rights reserved.
- */
-
- #include "lem.h"
- #include "lemfont.h"
-
- #define FONTPATH "/usr/local/lib/BFont/"
- #define FONTEXTN ".bf"
-
- char *getenv();
-
- leminit()
- {
- char rcname[100], rcline[RCLINE];
- FILE *f;
- int i, items;
- /*
- * generate local and global names
- */
- sprintf(rcname, "./%s", RCNAME);
- f = fopen(rcname, "r");
- if (!f)
- {
- sprintf(rcname, "%s/%s", getenv("HOME"), RCNAME);
- f = fopen(rcname, "r");
- }
- if (!f)
- {
- /* err("no %s file exists", RCGLOBAL); */
- lemfont[1].psize = DEFPSIZEFT;
- lemfont[1].thick = DEFDENSEFT;
- lemfont[1].dsp = DEFIKRFT;
- lemfont[1].tyr = DEFTYRFT;
- lemfont[1].tyb = DEFTYBFT;
- lemfont[1].tyi = DEFTYIFT;
- lemfont[1].psr = DEFPSRFT;
- lemfont[1].psb = DEFPSBFT;
- lemfont[1].psi = DEFPSIFT;
- rclen = 1;
- }
- else
- {
- while(1)
- {
- char dsp[20], tyr[20], tyb[20], tyi[20];
- char psr[20], psb[20], psi[20];
- fgets(rcline, RCLINE, f);
- if (feof(f)) break;
- if ((rcline[0] >= '0') && (rcline[0] <= '9'))
- {
- rclen++;
- if (rclen >= RCLEN) err(".rc file too long");
- items = sscanf(rcline, "%d %d %s %s %s %s %s %s %s",
- &lemfont[rclen].psize, &lemfont[rclen].thick,
- dsp, tyr, tyb, tyi, psr, psb, psi);
- if (items != RCWIDTH) err("wrong line length in .rc file");
- lemfont[rclen].dsp = salloc(dsp);
- lemfont[rclen].tyr = salloc(tyr);
- lemfont[rclen].tyb = salloc(tyb);
- lemfont[rclen].tyi = salloc(tyi);
- lemfont[rclen].psr = salloc(psr);
- lemfont[rclen].psb = salloc(psb);
- lemfont[rclen].psi = salloc(psi);
- }
- }
- if (rclen == 0) err(".lemrc file was empty");
- }
- rclen++;
- if (f) fclose(f);
- /*
- * now set up default display fonts
- */
- for (i=1; i<rclen; i++)
- {
- char fontname[100];
- sprintf(fontname, "%s%s%d%s",
- FONTPATH, lemfont[i].dsp, lemfont[i].psize, FONTEXTN);
- bfont[i] = fontload(fontname);
- if (!bfont[i]) err("can't load font \"%s\"", fontname);
- }
- }
-