12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include <ctype.h>
- /*
- * VMS version of getargs(): Uses DCL command parsing
- * (argc and argv are ignored)
- */
- getargs(argc,argv)
- int argc;
- char *argv[];
- {
- register char *cp;
- static char Input_File[256];
- extern int verboseflag, definesflag, fixed_outfiles;
- extern char *infile;
- verboseflag = 0;
- definesflag = 0;
- /*
- * Check for /VERBOSE qualifier
- */
- if (cli_present("BISON$VERBOSE")) verboseflag = 1;
- /*
- * Check for /DEFINES qualifier
- */
- if (cli_present("BISON$DEFINES")) definesflag = 1;
- /*
- * Check for /FIXED_OUTFILES qualifier
- */
- if (cli_present("BISON$FIXED_OUTFILES")) fixed_outfiles = 1;
- /*
- * Get the filename
- */
- cli_get_value("BISON$INFILE", Input_File, sizeof(Input_File));
- /*
- * Lowercaseify the input filename
- */
- cp = Input_File;
- while(*cp) {
- if (isupper(*cp)) *cp = tolower(*cp);
- cp++;
- }
- infile = Input_File;
- }
- /************ DCL PARSING ROUTINES **********/
- /*
- * See if "NAME" is present
- */
- int
- cli_present(Name)
- char *Name;
- {
- struct {int Size; char *Ptr;} Descr;
- Descr.Ptr = Name;
- Descr.Size = strlen(Name);
- return((cli$present(&Descr) & 1) ? 1 : 0);
- }
- /*
- * Get value of "NAME"
- */
- int
- cli_get_value(Name,Buffer,Size)
- char *Name;
- char *Buffer;
- {
- struct {int Size; char *Ptr;} Descr1,Descr2;
- Descr1.Ptr = Name;
- Descr1.Size = strlen(Name);
- Descr2.Ptr = Buffer;
- Descr2.Size = Size-1;
- if (cli$get_value(&Descr1,&Descr2,&Descr2.Size) & 1) {
- Buffer[Descr2.Size] = 0;
- return(1);
- }
- return(0);
- }
|