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

  1. #ifndef NO_IDENT
  2. static char *Id = "$Id: rmsinit.c,v 1.4 1995/06/06 13:08:10 tom Exp $";
  3. #endif
  4.  
  5. /*
  6.  * Title:    rmsinit.c
  7.  * Author:    Thomas E. Dickey
  8.  * Created:    05 Sep 1984 (from 'mv', 17 May 1984)
  9.  * Last update:
  10.  *        03 Jun 1994, prototyped
  11.  *
  12.  * Function:    These procedures do the most common type of RMS initialization,
  13.  *        that of FAB- and NAM-block initialization for filename parsing
  14.  *        and directory lookup.
  15.  */
  16.  
  17. #include    <string.h>
  18.  
  19. #include    "rmsinit.h"
  20.  
  21. /*
  22.  * Initialize a FAB block:
  23.  *
  24.  *    fab_    => FAB block to initialize
  25.  *    nam_    => NAM block to use in parse
  26.  *    dna_    => string to use (if nonnull) in parse-default
  27.  *    fna_    => string to use (if nonnull) for input filename
  28.  */
  29. void
  30. rmsinit_fab(struct FAB *fab_, struct NAM *nam_, char *dna_, char *fna_)
  31. {
  32.     *fab_ = cc$rms_fab;
  33.  
  34.     fab_->fab$l_fop = FAB$M_NAM;
  35.     fab_->fab$l_nam = nam_;            /* FAB => NAM block    */
  36.     if (dna_)
  37.     {
  38.         fab_->fab$l_dna = dna_;        /* Default-selection    */
  39.         fab_->fab$b_dns = strlen(dna_);
  40.     }
  41.     if (fna_)
  42.     {
  43.         fab_->fab$l_fna = fna_;
  44.         fab_->fab$b_fns = strlen(fna_);
  45.     }
  46. }
  47.  
  48. /*
  49.  * Initialize a NAM-block:
  50.  *
  51.  *    nam_    => NAM-block to initialize
  52.  *    rsa_    => "resultant string" address (loaded by SYS$SEARCH)
  53.  *    esa_    => "expanded string" address (loaded by SYS$PARSE)
  54.  */
  55. void
  56. rmsinit_nam (struct NAM *nam_, char *rsa_, char *esa_)
  57. {
  58.     *nam_ = cc$rms_nam;
  59.  
  60.     if (esa_)
  61.     {
  62.         nam_->nam$b_ess = NAM$C_MAXRSS;
  63.         nam_->nam$l_esa = esa_;
  64.     }
  65.     if (rsa_)
  66.     {
  67.         nam_->nam$b_rss = NAM$C_MAXRSS;
  68.         nam_->nam$l_rsa = rsa_;
  69.     }
  70. }
  71.