#ifndef lint
static char sccsid[] = "@(#)uulog.c	5.4 (Berkeley) 6/23/85";
#endif

#include "uucp.h"

#ifndef	SYSBUF
static char SYSBUF[BUFSIZ];
#endif

main(argc, argv)
char *argv[];
{
	FILE *plogf;
	char *sys, *user;

	char buf[BUFSIZ], u[64], s[64];

	setbuf(stdout, SYSBUF);
	strcpy(Progname, "uulog");
	sys = user = NULL;


	while (argc>1 && argv[1][0] == '-') {
		switch (argv[1][1]) {
		case 's':
			sys = &argv[1][2];
			if (*sys == NULL && argc > 2 && argv[2][0] != '-') {
				sys = &argv[2][0];
				argv++;
				argc--;
			}
			if (strlen(sys) > MAXBASENAME)
				sys[MAXBASENAME] = '\0';
			if (versys(&sys) != SUCCESS){
				fprintf(stderr,"uulog: unknown system %s\n", sys);
				sys = NULL;
			}
			break;
		case 'u':
			user = &argv[1][2];
			if (*user == NULL && argc > 2 && argv[2][0] != '-') {
				user = &argv[2][0];
				argv++;
				argc--;
			}
			break;
		default:
			printf("unknown flag %s\n", argv[1]); break;
		}
		--argc;  argv++;
	}


	if (user == NULL && sys == NULL) {
		fprintf(stderr, "usage: uulog [-u user] [-s sys]\n");
		exit(1);
	}

#ifdef LOGBYSITE
	if (chdir(SPOOL) < 0) {
		perror(SPOOL);
		exit(1);
	}
	/* this program is really obsolete, this is a rude backward compat */
	if (user) {
		sprintf(buf, "exec cat LOG/uu*/* | egrep '^%s '", user);
		system(buf);
	}
	if (sys) {
		sprintf(buf,"exec cat LOG/uu*/%s", sys);
		system(buf);
	}
#else
	plogf = fopen(LOGFILE, "r");
	ASSERT(plogf != NULL, "CAN NOT OPEN", LOGFILE, 0);
	while (fgets(buf, BUFSIZ, plogf) != NULL) {
		sscanf(buf, "%s%s", u, s);
		if (user != NULL && !prefix(user, u))
			continue;
		if (sys != NULL && !prefix(sys, s))
			continue;
		fputs(buf, stdout);
		fflush(stdout);
	}
#endif
	exit(0);
}

cleanup(code)
int code;
{
	exit(code);
}
