/* Extra SPCheck error code */

#define WANTPD         0x80    /* Internally handled; never returned to appl. */

/* Character type flags */

#define TWSPACE        0x01        /* White space           */
#define TLETTER        0x02        /* Letter                */
#define TDIGIT         0x04        /* Digit                 */
#define THYPHEN        0x08        /* Hyphen                */
#define TSLASH         0x10        /* Slash                 */
#define TNONALNUM      0x20        /* Non-alphanumeric      */
#define TBPUNC         0x40        /* Beginning punctuation */
#define TEPUNC         0x80        /* Ending punctuation    */

/* Word flags as determined by GetWord */
/* Low byte contains or'ed character type flags (above), except TBPUNC,
   TEPUNC */

#define HASPOSS        0x0100          /* Ends in 's (not put in wbuf)  */
#define HASBEGINPUNC   0x0200          /* Has beginning punctuation     */
#define HASENDPUNC     0x0400          /* Has ending punctuation        */
#define AFTERSLASH     0x0800          /* Preceded by slash             */
#define BEFORESLASH    0x1000          /* Followed by slash             */
#define AFTERHYPH      0x2000          /* Preceded by hyphen            */
#define BEFOREHYPH     0x4000          /* Followed by hyphen            */
#define OVERFLOW       0x8000          /* Word does not fit into buffer */

/* Useful macros */

#define SPErr(e, x, r)     { _SPErrNum[0] = (e); _SPXVal = (x); return(r); }

/* This is for void functions */
#define SPErr2(e, x)       { _SPErrNum[0] = (e); _SPXVal = (x); return; }

/* External vars */

extern char      chartype[];
extern char     _SPdeftab[];
extern unsigned _SPID;
extern unsigned _SPErrNum[];
extern unsigned _SPXVal;
extern unsigned _SPActive[];
extern char     *_SPdir;

extern int *toolErr[];

extern unsigned _SPTHID[];
