home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume10 / lemming / part02 / lemrc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-08-05  |  1.9 KB  |  85 lines

  1. /*
  2.  * lemrc.c - get default fonts from local file.
  3.  *
  4.  * copyright (c) by Alan W. Paeth, 1987. All rights reserved.
  5.  */
  6.  
  7. #include "lem.h"
  8. #include "lemfont.h"
  9.  
  10. #define FONTPATH "/usr/local/lib/BFont/"
  11. #define FONTEXTN ".bf"
  12.  
  13. char *getenv();
  14.  
  15. leminit()
  16.     {
  17.     char rcname[100], rcline[RCLINE];
  18.     FILE *f;
  19.     int i, items;
  20. /*
  21.  * generate local and global names
  22.  */
  23.     sprintf(rcname, "./%s", RCNAME);
  24.     f = fopen(rcname, "r");
  25.     if (!f)
  26.     {
  27.         sprintf(rcname, "%s/%s", getenv("HOME"), RCNAME);
  28.     f = fopen(rcname, "r");
  29.     }
  30.     if (!f)
  31.     {
  32. /*    err("no %s file exists", RCGLOBAL); */
  33.     lemfont[1].psize = DEFPSIZEFT;
  34.     lemfont[1].thick = DEFDENSEFT;
  35.     lemfont[1].dsp = DEFIKRFT;
  36.     lemfont[1].tyr = DEFTYRFT;
  37.     lemfont[1].tyb = DEFTYBFT;
  38.     lemfont[1].tyi = DEFTYIFT;
  39.     lemfont[1].psr = DEFPSRFT;
  40.     lemfont[1].psb = DEFPSBFT;
  41.     lemfont[1].psi = DEFPSIFT;
  42.     rclen = 1;
  43.     }
  44.     else
  45.     {
  46.     while(1)
  47.         {
  48.         char dsp[20], tyr[20], tyb[20], tyi[20];
  49.         char psr[20], psb[20], psi[20];
  50.         fgets(rcline, RCLINE, f);
  51.         if (feof(f)) break;
  52.         if ((rcline[0] >= '0') && (rcline[0] <= '9'))
  53.         {
  54.         rclen++;
  55.         if (rclen >= RCLEN) err(".rc file too long");
  56.         items = sscanf(rcline, "%d %d %s %s %s %s %s %s %s",
  57.             &lemfont[rclen].psize, &lemfont[rclen].thick,
  58.             dsp, tyr, tyb, tyi, psr, psb, psi);
  59.         if (items != RCWIDTH) err("wrong line length in .rc file");
  60.         lemfont[rclen].dsp = salloc(dsp);
  61.         lemfont[rclen].tyr = salloc(tyr);
  62.         lemfont[rclen].tyb = salloc(tyb);
  63.         lemfont[rclen].tyi = salloc(tyi);
  64.         lemfont[rclen].psr = salloc(psr);
  65.         lemfont[rclen].psb = salloc(psb);
  66.         lemfont[rclen].psi = salloc(psi);
  67.         }
  68.         }
  69.     if (rclen == 0) err(".lemrc file was empty");
  70.     }
  71.     rclen++;
  72.     if (f) fclose(f);
  73. /*
  74.  * now set up default display fonts
  75.  */
  76.     for (i=1; i<rclen; i++)
  77.     {
  78.     char fontname[100];
  79.     sprintf(fontname, "%s%s%d%s",
  80.         FONTPATH, lemfont[i].dsp, lemfont[i].psize, FONTEXTN);
  81.     bfont[i] = fontload(fontname);
  82.     if (!bfont[i]) err("can't load font \"%s\"", fontname);
  83.     }
  84.     }
  85.