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

  1. /* rd_adr.c: read a text address struct */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/io/RCS/rd_adr.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_adr.c,v 6.0 1991/12/18 20:22:26 jpo Rel $
  9.  *
  10.  * $Log: rd_adr.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    "adr.h"
  20. #include    "sys.file.h"
  21. #include    <sys/time.h>
  22.  
  23.  
  24. extern int    ad_count;
  25. CHAN        *ch_nm2struct();
  26.  
  27.  
  28.  
  29.  
  30. /* ---------------------  Begin     Routines  -------------------------------- */
  31.  
  32.  
  33.  
  34. int rd_adr (fp, justone, base)  /* get an addr seq from a file */
  35. FILE    *fp;
  36. int    justone;
  37. ADDR    **base;
  38. {
  39.     long    fp_startln;
  40.     char    *argv[100],
  41.         buf[10 * BUFSIZ];
  42.     int    argc,
  43.         gotone=FALSE,
  44.         retval;
  45.  
  46.     PP_DBG (("Lib/io/rd_adr (fp, %d, base)", justone));
  47.  
  48.     for (;;) {
  49.  
  50.         fp_startln = ftell(fp);
  51.  
  52.         if (rp_isbad (retval = txt2buf (buf, sizeof buf, fp))) {
  53.             PP_DBG (("Lib/io/rd_adr txt2buf retval (%d - %s)",
  54.                     retval, rp_valstr (retval)));
  55.             if (retval == RP_EOF && !justone && gotone)
  56.                 return (RP_DONE);
  57.             return (retval);
  58.         }
  59.  
  60.         if (retval == RP_DONE)
  61.             return (RP_DONE);
  62.  
  63.         if ((argc = str2arg (buf, 100, argv)) == 0)
  64.             return (RP_PARM);
  65.  
  66.         retval = txt2adr (base, fp_startln, argv, argc);
  67.  
  68.         PP_DBG (("Lib/io/rd_adr retval (%d)", retval));
  69.  
  70.         if (retval == NOTOK)
  71.             return (RP_PARM);
  72.  
  73.         if (gotone == FALSE)
  74.             gotone = TRUE;
  75.  
  76.         ad_count ++;
  77.  
  78.         if (justone)
  79.             return (RP_OK);
  80.     }
  81. }
  82.