/* Prototypesheader

	Name:		Change.h
	Main:		Change
	Versionstring:	$VER: Change.h 1.11 (07.07.2000)
	Author:		SDI
	Distribution:	PD

 1.4   17.03.97 : added header
 1.5   01.08.97 : translated to English
 1.6   23.12.97 : totally rewritten Change Scan routines and all around
 1.7   03.01.98 : End got FreeStuff, wbmain got DoGUI
 1.8   07.01.98 : totally changed, all GUI stuff moved to ChangeGUI.h
 1.9   14.12.98 : new flags, all parameter, new function
 1.10  07.01.00 : added SFILE and RFILE
 1.11  07.07.00 : added CTRL_C define
*/

#include <exec/types.h>
#include "GetChar.h"

extern const char *		version;
extern struct DosLibrary *	DOSBase;

struct Args {
  STRPTR	from;
  STRPTR	sstring;
  STRPTR	to;
  STRPTR	rstring;
  LONG		found;
  LONG		hex;
  LONG		length;
  LONG		nochange;
  LONG		nosize;
  LONG		overwrite;
  LONG		path;
  LONG		all;
  STRPTR	position;
  STRPTR	sfile;
  STRPTR	rfile;
};

#define CHANGEFLAG_NOCHANGE	(1<<20)
#define CHANGEFLAG_ALL		(1<<21)

#define CTRL_C			(SetSignal(0L,0L) & SIGBREAKF_CTRL_C)

#define PARAM "FROM/A,SSTRING,TO,RSTRING,FOUND/S,HEX/S,LENGTH/S,"	\
"NOCHANGE/S,NOSIZE/S,OVERWRITE/S,PATH/S,ALL/S,POS=POSITION/K,SFILE/K,"	\
"RFILE/K"

struct ChangeData {
  ULONG		l[2];				/* The string length */
  UWORD *	string[2];
  ULONG		flags;
  ULONG		position;
  UWORD		str[2][BACK_MAX];		/* The strings */
};


extern LONG start(void);		/* main function */
extern LONG DoDirectoryScan(STRPTR from, STRPTR to, struct ChangeData *cd);
UWORD * LoadStringFile(STRPTR name, ULONG hex, STRPTR *srcpos);

