/*********************************************************************
 * stringlib.h
 *
 * defines for use with string.library
 *
 *********************************************************************/

#include	<exec/types.h>
#include	<exec/libraries.h>
#include	<exec/execbase.h>
#include	<libraries/dosextens.h>

#define STRINGLIBNAME "string.library"

struct StringLibrary {
	struct Library		stl_StringLib;
	struct ExecBase		*stl_SysLib;
	struct DosLibrary	*stl_DosLib;
	struct InuitionBase	*stl_IntLib;
	APTR			stl_SegList;
	UBYTE			stl_Flags;
	UBYTE			stl_pad;
};

/*  StrRequester struct is input to StrReq() function.  */
struct StrRequester {
	SHORT	sr_LeftEdge;
	SHORT	sr_TopEdge;
	long	sr_MaxOutWidth;
	char	*sr_Prompt;
	char	*sr_OutBuff;
	struct Screen *sr_Screen;
};

/* Function Definitions */

/* prototypes */
void           LtoX(long, char *);
ULONG          XtoL(char *);
long           StrReq(struct StrRequester *);
void           Center(char *, char *, int, char);
ULONG          LengthOf(char *);
void           CopyStr(char *, char *);
unsigned char  CtoP(int);
long           BtoCStr(BPTR, char *, int);
long           MidStr(char *, char *, int, int);
long           LeftStr(char *, char *, int);
long           RightStr(char *, char *, int);
long           InsertStr(char *, char *, char *, int);
long           DelStr(char *, char *, int, int);

/* pragmas */
#pragma libcall StringBase LtoX 1e 8002
#pragma libcall StringBase XtoL 24 801
#pragma libcall StringBase StrReq 2a 801
#pragma libcall StringBase Center 30 109804
#pragma libcall StringBase LengthOf 36 801
#pragma libcall StringBase CopyStr 3c 9802
#pragma libcall StringBase CtoP 42 1
#pragma libcall StringBase BtoCStr 48 9803
#pragma libcall StringBase MidStr 4e 109804
#pragma libcall StringBase LeftStr 54 9803
#pragma libcall StringBase RightStr 5a 9803
#pragma libcall StringBase InsertStr 60 109804
#pragma libcall StringBase DelStr 66 109804
