#include "string.h"
#include "exec/types.h"
#include "exec/nodes.h"
#include "exec/lists.h"
#include "exec/libraries.h"
#include "exec/ports.h"
#include "exec/interrupts.h"
#include "exec/io.h"
#include "exec/memory.h"
#include "libraries/dos.h"
#include "libraries/dosextens.h"

#define ONESHOT_SIZE 1
#define BUFF_SIZE 256

extern struct FileHandle *Open();

main(argc,argv)

int argc;
char *argv[];
{
	struct FileHandle *fp, *finfile;
	char *oneshot, *buffer;
	int lenoneshot, lenfilebuffer;

	static char extension[] = ".oneshot";
	static char filename[40];

	strcpy(filename, argv[1]);

	strcat(filename,extension);

	if((fp=Open(argv[1],MODE_OLDFILE))==0)
		Exit();

	if((finfile=Open(filename,MODE_NEWFILE))==0)
		Exit();

	buffer=(char *)AllocMem(BUFF_SIZE,MEMF_CLEAR);

	printf("Writing %s...",filename);

	do
	{
		lenfilebuffer=Read(fp,buffer,BUFF_SIZE);
		Write(finfile,buffer,lenfilebuffer);
	} while(lenfilebuffer != 0);

	oneshot=(char *)AllocMem(ONESHOT_SIZE,MEMF_CLEAR);

	lenoneshot=ONESHOT_SIZE;
	
	Seek(finfile,31,OFFSET_BEGINNING);

	Write(finfile,oneshot,lenoneshot);
	
	FreeMem(oneshot,ONESHOT_SIZE);

	Close(fp);
	Close(finfile);
	printf("\n");
}
