home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / io / rd_prm.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.7 KB  |  83 lines

  1. /* rd_prm.c: read in a prm_vars struct from fp */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/io/RCS/rd_prm.c,v 6.0 1991/12/18 20:22:26 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Lib/io/RCS/rd_prm.c,v 6.0 1991/12/18 20:22:26 jpo Rel $
  9.  *
  10.  * $Log: rd_prm.c,v $
  11.  * Revision 6.0  1991/12/18  20:22:26  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16.  
  17.  
  18. #include "head.h"
  19. #include "prm.h"
  20. #include "tb_prm.h"
  21.  
  22.  
  23. /* ---------------------  Begin  Routines  -------------------------------- */
  24.  
  25.  
  26. static char *save_file;
  27. static int save_level;
  28.  
  29. int rd_prm (pp, fp)
  30. register struct prm_vars        *pp;
  31. FILE                            *fp;
  32. {
  33.     char    buf[BUFSIZ],
  34.         *argv[50];
  35.     int     argc,
  36.         retval;
  37.  
  38.     PP_DBG (("Lib/io/rd_prm()"));
  39.  
  40.     prm_init (pp);
  41.     if (save_file) {
  42.         free (pp_log_norm -> ll_file);
  43.         pp_log_norm -> ll_file = save_file;
  44.         pp_log_norm -> ll_stat = save_level;
  45.         save_file = NULLCP;
  46.     }
  47.  
  48.     for (;;) {
  49.         retval = txt2buf (buf, sizeof buf, fp);
  50.  
  51.         if (rp_isbad (retval)) {
  52.             PP_DBG (("Lib/rd_prm txt2buf retval (%d - %s)",
  53.                   retval, rp_valstr (retval)));
  54.             return (retval);
  55.         }
  56.  
  57.         argc = str2arg (buf, 50, argv);
  58.         if (argc == 0) {
  59.             PP_LOG (LLOG_EXCEPTIONS, ("Lib/rd_prm err (str2arg)"));
  60.             return (RP_PARM);
  61.         }
  62.  
  63.         retval = txt2prm (pp, argv, argc);
  64.         if (retval == NOTOK) {
  65.             PP_LOG (LLOG_EXCEPTIONS, ("Lib/rd_prm err (txt2prm)"));
  66.             return (RP_PARM);
  67.         }
  68.         if (retval == PRM_END)
  69.             break;
  70.     }
  71.  
  72.     if (pp -> prm_logfile || pp -> prm_loglevel) {
  73.         save_file = pp_log_norm -> ll_file;
  74.         save_level = pp_log_norm -> ll_stat;
  75.         if (pp -> prm_logfile)
  76.             pp_log_norm -> ll_file = strdup(pp -> prm_logfile);
  77.         if (pp -> prm_loglevel)
  78.             pp_log_norm -> ll_events = pp -> prm_loglevel;
  79.         (void) ll_close (pp_log_norm);
  80.     }
  81.     return RP_OK;
  82. }
  83.