#include <proto/dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char ver[] = "$VER: E!-LfV 1.0 (1995-02-06)";
const char tline[] = "\\q1-----------------------------------------------------------------------------\n";

void ReadLog(char fname[])
{
	FILE *log;
	char line[255];
	char name[255];
	char name2[255];
	char dat[255];
	char in[255];
	APTR id;
	int cnt;
	int lin[300];
	int num;
	
	
	log=fopen(fname,"r");
	if(log=NULL) printf("Logfile not found!"); 
	else
	{
	fclose(log);
	do	{
	cnt = 0;
	log = fopen(fname,"r");
	printf("[0H[J\n[31m[1m   ------- E!-LogFile Viewer 1.0 (C)opyright 2/95 by [36mACP-Development[0m[1m -------[0m\n");
	printf("\n[33m[1m      Amiga Crackpoint --- * --- +43 2252 46519 --- * --- USR V.34 & ISDN[0m\n");
        printf("[34m[1m          FaaastLane BBS -- * -- +43 1 8761678 -- * -- v32.bis  14400[0m\n");
        printf("\n[36m   #    Handle                          Date\n");
	printf("[37m---------------------------------------------------------------------------\n");
	fgets(line,255,log);
	do	{
		while ((!feof(log))&&(strcmp(line,tline)!=0))
			{
			fgets(line,255,log);
			};
		if (!feof(log)&&(strcmp(line,tline)==0)) 
			{
			lin[cnt] = ftell(log);
			fgets(line,255,log);
			strcpy(dat,"<");
			strcpy(dat,strchr(line,'<'));
			dat[strlen(dat)-1]=0;
			do	{
				fgets(line,255,log);
				strncpy(name,line,6);
				name[6]=0;
				} while (((stricmp(name,"User: ")!=0))&&(!feof(log))&&(strcmp(line,tline)!=0));
			if (!feof(log)&&(strlen(line)<81))
				{
				cnt++;
				strcpy(name,&line[6]);
				if (strchr(name,'('))
					{ 
					strcpy(name2,strchr(name,'('));
					name[strlen(name)-strlen(name2)] = 0;
					id=strchr(name2,'#')-3;
					setmem(id,1,0);
					} else
					{
					name[strlen(name)-1]=0;
					id=strchr(name,'#')-4;
					setmem(id,1,0);
					strcpy (name2,"(");
					strcat (name2,name);
					strcat (name2,")");
					}
				printf("[37m %3d.) [36m %s [%dC [33m%s\n",cnt,name,30-strlen(name),dat);
				}
			}
		} while (!feof(log));		
		fclose(log);
	num = 1;
	printf("\n[36mPlease enter # to View (Q to quit): [37m[ p");
	fgets(name,255,stdin);
	strcpy(in,name);
	if (strcmp(name,"\n")!=0) 
		{
		num = atoi(name);
		if ((num<=cnt)&&(num!=0))
			{
			log = fopen(fname,"r");
			printf("\n");
			fseek(log,lin[num-1],SEEK_SET);
			do	{
				fgets(line,255,log);
				strncpy(name,&line[4],8);
				if (stricmp(name,"--------")!=0) printf("%s",line);
				name[8]=0;
				} while ((stricmp(name,"--------")!=0)&&(!feof(log)));
			fclose(log);
			printf("\nPress Return to continue ... \n");
			fgets(name,255,stdin);
			}
		}
	} while (stricmp(in,"q\n")!=0);
	}
	
}

main(int argc,char *argv[])
{
	ReadLog(argv[1]);
}
