home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 321 / bison / vmsgetar.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-20  |  1.5 KB  |  78 lines

  1. /*
  2.  *    VMS version of getargs(): Uses DCL command parsing
  3.  *        (argc and argv are ignored)
  4.  */
  5. getargs(argc,argv)
  6.      int argc;
  7.      char *argv[];
  8.   register char *cp;
  9.   static char Input_File[256];
  10.  
  11.   verboseflag = 0;
  12.   definesflag = 0;
  13.   /*
  14.    *    Check for /VERBOSE qualifier
  15.    */
  16.   if (cli_present("BISON$VERBOSE")) verboseflag = 1;
  17.   /*
  18.    *    Check for /DEFINES qualifier
  19.    */
  20.   if (cli_present("BISON$DEFINES")) definesflag = 1;
  21.   /*
  22.    *    Check for /FIXED_OUTFILES qualifier
  23.    */
  24.   if (cli_present("BISON$FIXED_OUTFILES")) fixed_outfiles = 1;
  25.   /*
  26.    *    Get the filename
  27.    */
  28.   cli_get_value("BISON$INFILE", Input_File, sizeof(Input_File));
  29.   /*
  30.    *    Lowercaseify the input filename
  31.    */
  32.   cp = Input_File;
  33.   while(*cp) {
  34.     if (isupper(*cp)) *cp = tolower(*cp);
  35.     cp++;
  36.   }
  37.   infile = Input_File;
  38. }
  39.  
  40. /************        DCL PARSING ROUTINES        **********/
  41.  
  42. /*
  43.  *    See if "NAME" is present
  44.  */
  45. int
  46. cli_present(Name)
  47.      char *Name;
  48. {
  49.   struct {int Size; char *Ptr;} Descr;
  50.  
  51.   Descr.Ptr = Name;
  52.   Descr.Size = strlen(Name);
  53.   return((cli$present(&Descr) & 1) ? 1 : 0);
  54. }
  55.  
  56. /*
  57.  *    Get value of "NAME"
  58.  */
  59. int
  60. cli_get_value(Name,Buffer,Size)
  61.      char *Name;
  62.      char *Buffer;
  63. {
  64.   struct {int Size; char *Ptr;} Descr1,Descr2;
  65.  
  66.   Descr1.Ptr = Name;
  67.   Descr1.Size = strlen(Name);
  68.   Descr2.Ptr = Buffer;
  69.   Descr2.Size = Size-1;
  70.   if (cli$get_value(&Descr1,&Descr2,&Descr2.Size) & 1) {
  71.     Buffer[Descr2.Size] = 0;
  72.     return(1);
  73.   }
  74.   return(0);
  75. }
  76.  
  77.