#include <useful.h>
#include <parseargs.h>

VERSIONID("$Header: stest.c,v 2.0 89/12/24 00:56:29 eric Exp $");

/*
**  STEST -- a simple test program for the argument parser
**
**	Author:
**		Eric Allman
**		University of California, Berkeley
*/

int	RepCount;
char	*Name;
char	*DirName =	".";
BOOL	XFlag =		FALSE;
BOOL	YFlag =		FALSE;
BOOL	ZFlag =		FALSE;
char	TabChar =	':';
struct arglist *Argv =	NULL;
struct arglist *Groups = NULL;

ARGDESC	Args[] =
{
	' ',	ARGREQ,		argStr,		__ &Name,	"Name",
	'n',	ARGOPT|ARGLIST,	listStr,	__ &Groups,	"newsGROUP",
	'c',	ARGOPT,		argInt,		__ &RepCount,	"REPcount",
	'd',	ARGOPT,		argStr,		__ &DirName,	"DIRname",
	'x',	ARGOPT,		argBool,	__ &XFlag,	"Xflag",
	'y',	ARGOPT,		argBool,	__ &YFlag,	"Yflag",
	'z',	ARGOPT,		argBool,	__ &ZFlag,	"Zflag",
	't',	ARGOPT,		argChar,	__ &TabChar,	"TABchar",
	' ',	ARGOPT|ARGLIST,	listStr,	__ &Argv,	"File",
	ENDOFARGS
};

main(argc, argv)
	int argc;
	char **argv;
{
	parseargs(argv, Args);

	printf("Name = \"%s\", DirName = \"%s\", RepCount = %d,\n",
		Name, DirName, RepCount);
	printf("XFlag = %d, YFlag = %d, ZFlag = %d, TabChar=%03o;\n",
		XFlag, YFlag, ZFlag, TabChar);

	if(Groups) {
		printf("Newsgroups: ");
		while(Groups) {
			printf("%s", L_STRING(Groups));
			Groups = L_NEXT(Groups);
			if(Groups)
				putchar(' ');
			else
				putchar('\n');
		}
	}

	if(Argv) {
		printf("Remaining args: ");
		while(Argv) {
			printf("%s", L_STRING(Argv));
			Argv = L_NEXT(Argv);
			if(Argv)
				putchar(' ');
			else
				putchar('\n');
		}
	}
	exit(0);
}
