DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T d

⟦ffa3df2e5⟧ TextFile

    Length: 2160 (0x870)
    Types: TextFile
    Names: »doargs.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Hangman1/doargs.c« 

TextFile

/*  doargs.c
 *  handles command line arguments 
 *  written by: ritcv!jxs7451
 */
#include "hangman.h"
#include<stdio.h>
#include<strings.h>
#define OPLEN  7     /* max length of input options string */

doargs(argc, argv, debug, hard, length)
int argc;
char *argv[];
int *debug;
int *hard;
int *length;
{
   char *strcpy();
   char buf[OPLEN];     /* holds argv[1] for decoding */
   int  i;              /* loop counter */

   if ((argc > 2) || (strlen(argv[1]) > (OPLEN - 1)))  /* too many arguments */
      usage();
   if (argc == 2)    /* must be an attempted option */
   {
      strcpy(buf,argv[1]);
      if (buf[0] != '-')
         usage();
      for(i=1;buf[i] != '\0';i++)
         switch(buf[i]) {
            case 'D' :
                  if (!(*debug))
                     if (DBUG == getuid())
                        (*debug)++;
                     else
                     {
                        puts("Debug permission denied.");
                        exit(0);  /* terminate program */
                     }
                  else
                     usage();
                 break;
            case 'h':
                  if (!(*hard))
                     *hard = 1;
                  else if (*hard == 2)
                     twolev();
                  else
                     usage();
                 break;
            case 'e':
                  if (!(*hard))
                     *hard = 2;
                  else if (*hard == 1)
                     twolev();
                  else
                     usage();
                 break;
            case 'l':
                  if (!(*length))
                     *length = 1;
                  else if (*length == 2)
                     twolen();
                  else
                     usage();
                 break;
            case 'L':
                  if (!(*length))
                     *length = 2;
                  else if (*length == 1)
                     twolen();
                  else 
                     usage();
                 break;
            default:
                  usage();
                 break;
         } /* switch */
   }
}