home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / security / Watcher / do_args.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-07-26  |  1.3 KB  |  65 lines

  1. /*
  2.    do_args: parse the comand line arguments and set variables related to
  3.    them.
  4.  
  5.    See main for description of flags.
  6.  
  7.    Kenneth Ingham
  8.  
  9.    Copyright (C) 1987 The University of New Mexico
  10. */
  11.  
  12. #include "defs.h"
  13.  
  14. do_args(argc, argv)
  15. int argc; 
  16. char *argv[];
  17. {
  18.     extern int pflag, cflag, vflag, nflag, lexverbose;
  19.     extern char *controlname, *histfilename, *myname;
  20.  
  21.     register int i;
  22.     char *slash;
  23.  
  24.     /* remember who we are */
  25.     myname = argv[0];
  26.     /* if we have a pathname for a name, keep only the last component */
  27.     if ((slash = rindex(myname, '/')) != NULL)
  28.         myname = slash+1;
  29.  
  30.     /* defaults */
  31.     pflag = False; cflag = False; vflag = False; nflag = False;
  32.     lexverbose = False;
  33.     histfilename = DEF_HISTFILE;
  34.  
  35.     for (i=1; i<argc; i++) {
  36.         if (argv[i][0] == '-') {
  37.             switch(argv[i][1]) {
  38.             case 'v':    /* verbse */
  39.                 vflag = True;
  40.                 break;
  41.             case 'p':    /* pretty-print control file */
  42.                 pflag = True;
  43.                 break;
  44.             case 'h':    /* specify history file */
  45.                 i = getargv(&histfilename, argv, i,
  46.                     "history file name");
  47.                 break;
  48.             case 'f':    /* specify control file */
  49.                 i = getargv(&controlname, argv, i,
  50.                     "controlfile name");
  51.                 cflag = True;
  52.                 break;
  53.             case 'n':    /* no history */
  54.                 nflag = True;
  55.                 break;
  56.             default:
  57.                 fprintf(stderr, "Unknown flag '%s'\n", argv[i]);
  58.                 exit(1);
  59.             }
  60.         }
  61.     }
  62.     if (pflag && vflag)
  63.         lexverbose = True;
  64. }
  65.