home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / flistfrontend / src / dclinx.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-04  |  1.3 KB  |  55 lines

  1. #ifndef NO_IDENT
  2. static char *Id = "$Id: dclinx.c,v 1.4 1995/06/04 19:12:26 tom Exp $";
  3. #endif
  4.  
  5. /*
  6.  * Title:    dclinx.c
  7.  * Author:    Thomas E. Dickey
  8.  * Created:    30 Jun 1984
  9.  * Last update:
  10.  *        18 Mar 1995, prototypes
  11.  *        05 Feb 1985, added 'dclinx2' entry to get actual DCLARG-pointer
  12.  *        04 Jul 1984
  13.  *
  14.  * Function:    This module performs simple indexing for DCLARG lists.  It
  15.  *        is used to locate the character-string for a particular
  16.  *        filename in the argument list, indexed by parameter number.
  17.  *
  18.  * Parameters:    dcl_    => pointer to DCLARG-list to search.
  19.  *        mfld    =  parameter number, starting from 0.
  20.  *        sfld    =  subfield number, incremented after each "," in a
  21.  *               list.  This also starts from 0.
  22.  *
  23.  * Returns:    A pointer to the required DCLARG-data.  If it does not
  24.  *        exist, NULL is returned.
  25.  */
  26.  
  27. #include    "bool.h"
  28. #include    "dclarg.h"
  29.  
  30. DCLARG    *dclinx2 (DCLARG *dcl_, int mfld, int sfld)
  31. {
  32.     for (; dcl_; dcl_ = dcl_->dcl_next)
  33.     {
  34.         if (mfld < dcl_->dcl_mfld)    /* give up    */
  35.             break;
  36.         else if (mfld == dcl_->dcl_mfld && !isopt(dcl_->dcl_text[0]))
  37.         {
  38.             if (sfld == dcl_->dcl_sfld)
  39.                 return (dcl_);
  40.         }
  41.     }
  42.     return (0);
  43. }
  44.  
  45. /*
  46.  * Return pointer to text-field only:
  47.  */
  48. char    *dclinx (DCLARG *dcl_, int mfld, int sfld)
  49. {
  50.     register
  51.     DCLARG    *d_    = dclinx2 (dcl_, mfld, sfld);
  52.  
  53.     return (d_ ? d_->dcl_text : nullC);
  54. }
  55.