
/*
 * DEFS.H
 *
 *	(C)Copyright 1987 by Matthew Dillon, All Rights Reserved
 *
 *	ARexx support added 03/19/88  -  Kim DeVaughn
 *
 */

#undef PATCH_RXVARS

#include "all.h"
#include "null.h"

/* added for keys */
#ifndef NOT_DEF
#   include "keyhashes.h"
#else
#   define currenthash()
#   define init_kb()
#   define exit_kb()
#endif

/* added for menus */
#ifndef NOT_DEF
#   include "menubase.h"
#else
#   define currentmenu()
#   define do_itemadd do_menuadd
#   define do_delitem do_menudel
#endif

/* #ifndef VARSBASES_C */
#   ifndef VBASE
#	define VBASE void*
#   endif
#   ifndef VARS
#	define VARS    void
#   endif
/* #endif */

#ifndef MACRO
#   define MACRO void
#endif

/* do this after all types have been defined */
#include "prog-protos.h"

BOOL WildCmp (const char *, const char *);

/* Macros are faster than Functions */
#define alloclptr(lines)    AllocMem (lines*sizeof(LINE), 0)
#define allocb(bytes)       AllocMem (bytes, 0)
#define allocl(lwords)      AllocMem (lwords<<2, 0)
#define bmovl(s,d,n)        movmem (s, d, n << 2)

#define GETLINE(ed,nr)      ((ed)->list[(nr)])
#define SETLINE(ed,nr,ptr)  (ed)->list[(nr)] = (ptr)
#define LENGTH(line)        (strlen((char *)(line)))
#define CONTENTS(line)      ((char *)(line))
#define GETTEXT(ed,nr)      (CONTENTS(GETLINE((ed),(nr))))


#define assert(exp)         if (!(exp)) printf ("%s %d\n", __FILE__, __LINE__), exiterr ("assert failed")

#define  PATHSIZE	256	/* HD added for Requesters */

#define SCROLL_LEFT	0
#define SCROLL_RIGHT	1
