#include <string.h>
#include <exec/types.h>
#include <proto/exec.h>
#include "nl.h"

/*------------------------------------------------------------------------*/
// A "real" application should look it up in some config!

#define NODELISTDIR	"Nodelist:"
/// Accomodate max's taste for directories

/*-------------------------------------------------------------------------*/
extern void printf(char *,...);
extern void puts(char *);
extern void exit(int);

void main(int argc, char *argv[]);

/*------------------------------------------------------------------------*/
struct Library *NodelistBase;

/*-------------------------------------------------------------------------*/
BOOL call_me(Addr *addr, Extra xtra)
	{
	void *acct;

	if(acct = ExtraFind(xtra, addr, ID_ACCT, NULL))
		{
		ExtraDel(xtra, acct);
		}

	return TRUE;
	}

/*-------------------------------------------------------------------------*/
void main(int argc, char *argv[])
	{
	Extra xtra;
	Addr addr;
	ULONG retval=10;

	if(!(NodelistBase = OpenLibrary(TRAPLIST_NAME, TRAPLIST_VER)))
		{
		printf("Can't open library\n");
		exit(10);
		}

	if(argc<=1)
		{
		printf("Usage: %s FQFA|All\n", argv[0]);
		retval=5;
		}
	else
		{
/// now even outputs usage information

		/* First, open the Extra database */

		if((xtra = ExtraOpen(NODELISTDIR)))
			{
			if(stricmp(argv[1],"all"))
				{
/// fixed E-3006; now allows specification of nodenumber to clear
				NLParseAddr(&addr, argv[1], NULL);
				call_me(&addr, xtra);
				}
			else
				{
				ExtraEnumNode(xtra, call_me, xtra);
				}
			retval=0;
			ExtraClose(xtra);
			}
		else
			{
			puts("Extra won't open");
			retval=10;
			}
		}
/// now correctly closes traplist.library when "Usage:" is output.
/// return values are now 0 okay, 5 usage, 10 failure.

	CloseLibrary(NodelistBase);

	exit(retval);
	}

/*-------------------------------------------------------------------------*/
/* ID: 52.1@1970  Last Changed: 14 Aug 1991 20:39:32 by max */
