home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume10 / parseargs / stest.c < prev    next >
C/C++ Source or Header  |  1990-02-16  |  2KB  |  74 lines

  1. #include <useful.h>
  2. #include <parseargs.h>
  3.  
  4. VERSIONID("$Header: stest.c,v 2.0 89/12/24 00:56:29 eric Exp $");
  5.  
  6. /*
  7. **  STEST -- a simple test program for the argument parser
  8. **
  9. **    Author:
  10. **        Eric Allman
  11. **        University of California, Berkeley
  12. */
  13.  
  14. int    RepCount;
  15. char    *Name;
  16. char    *DirName =    ".";
  17. BOOL    XFlag =        FALSE;
  18. BOOL    YFlag =        FALSE;
  19. BOOL    ZFlag =        FALSE;
  20. char    TabChar =    ':';
  21. struct namelist *Argv =    NULL;
  22. struct namelist *Groups = NULL;
  23.  
  24. ARGDESC    Args[] =
  25. {
  26.     ' ',    ARGREQ,        argStr,        __ &Name,    "Name",
  27.     'n',    ARGOPT,        argList,    __ &Groups,    "newsGROUP",
  28.     'c',    ARGOPT,        argInt,        __ &RepCount,    "REPcount",
  29.     'd',    ARGOPT,        argStr,        __ &DirName,    "DIRname",
  30.     'x',    ARGOPT,        argBool,    __ &XFlag,    "Xflag",
  31.     'y',    ARGOPT,        argBool,    __ &YFlag,    "Yflag",
  32.     'z',    ARGOPT,        argBool,    __ &ZFlag,    "Zflag",
  33.     't',    ARGOPT,        argChar,    __ &TabChar,    "TABchar",
  34.     ' ',    ARGOPT,        argList,    __ &Argv,    "File",
  35.     ENDOFARGS
  36. };
  37.  
  38. main(argc, argv)
  39.     int argc;
  40.     char **argv;
  41. {
  42.     parseargs(argv, Args);
  43.  
  44.     printf("Name = \"%s\", DirName = \"%s\", RepCount = %d,\n",
  45.         Name, DirName, RepCount);
  46.     printf("XFlag = %d, YFlag = %d, ZFlag = %d, TabChar=%03o;\n",
  47.         XFlag, YFlag, ZFlag, TabChar);
  48.  
  49.     if(Groups) {
  50.         printf("Newsgroups: ");
  51.         while(Groups) {
  52.             printf("%s", Groups->nl_name);
  53.             Groups = Groups->nl_next;
  54.             if(Groups)
  55.                 putchar(' ');
  56.             else
  57.                 putchar('\n');
  58.         }
  59.     }
  60.  
  61.     if(Argv) {
  62.         printf("Remaining args: ");
  63.         while(Argv) {
  64.             printf("%s", Argv->nl_name);
  65.             Argv = Argv->nl_next;
  66.             if(Argv)
  67.                 putchar(' ');
  68.             else
  69.                 putchar('\n');
  70.         }
  71.     }
  72.     exit(0);
  73. }
  74.