/***********************************************************************\

	Product Number: PROXLIB-01-2.0

	Version: rev2.0

	Product Name: Proximity Subroutine Library

	Filename: proxlib.h


	This document contains private and confidential information and
	its disclosure does not constitute publication.  Some of the
	information herein also may appear in United States and or
	Foreign Patents Pending.  All rights are reserved by Proximity
	Technology Inc., except those specifically granted by license.

\***********************************************************************/

#ifndef _PROXLIB
#define _PROXLIB


/* These #defines configure the proxlib code for the Apple IIGS - see proxlib
        configuration docs. (RAH) */

#define handlong 1

typedef unsigned char   UCHAR;
#define ctoi(c)         ((int)(c))
typedef unsigned  USHORT;      /* Goddamn C compiler doesn't support
                                unsigned short, but says it does. */
#define VOID    void

/* the remaining lines include random definitions of things which do not 
   change from program to program.  As a rule, the only changes that we make 
   to the code past here are additions.  We make these when generally useful 
   definitions are discovered.  */ 

/* boolean mnemonics */

#ifndef TRUE
#define TRUE    1
#define FALSE   0
#endif

/* function return values indicating success or failure */ 

#ifndef ERROR
#define OKAY    0
#define ERROR   (-1)
#endif

/* null pointer */

#ifndef NULL
#define NULL    0L
#endif

#define NULLPTR ((char *)0)     /* for passing a null to a function */

/* These are the proxlib functions whose definitions are not in other 
   include files.  */ 

extern VOID fmdigraph();        /* convert from digraphs to internal code */
extern VOID todigraph();        /* convert from internal code to digraphs */
extern char *unctrl();          /* format control characters for printing */

extern int imatch();            /* check if arg1 is prefix of arg2 */
extern int strdiff();           /* return number of common initial chars */
extern UCHAR *strecpy();        /* strcpy, but return end of copied string */
extern UCHAR *strend();         /* return end of string */
extern UCHAR *struchr();        /* strchr, but do unsigned character compare*/
extern UCHAR *strruchr();       /* strrchr, but do unsigned char compare*/
extern int strucmp();           /* strcmp, but do unsigned character compare*/

extern VOID move();             /* move bytes, allows overlap */
extern VOID proxzero();         /* zero memory */

extern char *zalloc();          /* allocate and zero memory */
extern VOID nzfree();           /* free pointer if not null */

#endif  /* _PROXLIB */
