#include <proto/exec.h>
#include <exec/memory.h>
#include <proto/dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <utility/tagitem.h>

char ver[] = "$VER: ACP-Strip 1.0 (1995-01-28)";

void lstrip(char *fname,long len)
{
FILE *log;
FILE *log2;
char swap[255];
BPTR lock;
BPTR nil;
struct FileInfoBlock *fib;
BOOL success;
char exstr[255];
long pos;

	fib = AllocDosObject(DOS_FIB,TAG_DONE);
	lock = Lock(fname,ACCESS_READ);
	if (!lock) printf("Cannot open %s\n",fname);
	else
	{
		success = Examine(lock,fib);
		pos = fib->fib_Size;
		FreeDosObject(DOS_FIB,fib);
		UnLock(lock);
		if (pos>len) 
		{
			pos = pos-len;
			printf("%s .... stripping to %d bytes \n",fname,len);
			log = fopen(fname,"r");
			log2 = fopen("t:strip.tmp","w");
			fseek(log,pos,SEEK_SET);
			fgets(swap,255,log);
			while (!feof(log))
				{
				fgets(swap,255,log);
				if (!feof(log)) fputs(swap,log2);
				};
			fclose(log);
			fclose(log2);
			nil = Open("NIL:",MODE_READWRITE);
			sprintf(exstr,"delete %s",fname);
			Execute(exstr,NULL,nil);
			sprintf(exstr,"copy t:strip.tmp to %s",fname);
			Execute(exstr,NULL,nil);
			Execute("delete t:strip.tmp",NULL,nil);
			Close(nil);
		}
	}
}

void PatternMatch(char *pat,LONG len3)
{
struct AnchorPath *ankerpfad;
BPTR fl;

	ankerpfad = AllocMem(sizeof(struct AnchorPath),MEMF_CLEAR);
	ankerpfad->ap_Flags = 0;
	ankerpfad->ap_Strlen = 0;
	if (!MatchFirst(pat,ankerpfad))
		{
		do
			{
			fl = CurrentDir(ankerpfad->ap_Current->an_Lock);
			lstrip (ankerpfad->ap_Info.fib_FileName,len3);
			CurrentDir(fl);
			} while (!MatchNext(ankerpfad));
		} else 
		{
			printf("ERROR: Can't find %s \n\n",pat);
		};
	MatchEnd(ankerpfad);
	FreeMem(ankerpfad,sizeof(struct AnchorPath));
}

main(ULONG argc, char *argv[])
{
long len2;	

	len2 = 0;
	if (argc==3)
		{
		printf("\n[1mACP-Strip V1.0  (C)1/95 by ACP-Development[0m\n\n");
		len2 = strtol(argv[2],&argv[strlen(argv[2]-1)],10);
		PatternMatch(argv[1],len2);
		} else
		{
		printf("\n[1mACP-Strip V1.0  (C)1995 by ACP-Development[0m\n\nUsage: ACP-Strip <filename> <length> \n\n");
		}
}
