/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
* |_o_o|\\ Copyright (c) 1987 The Software Distillery.  All Rights Reserved *
* |. o.| ||          Written by Doug Walker                                 *
* | .  | ||          The Software Distillery                                *
* | o  | ||          235 Trillingham Lane                                   *
* |  . |//           Cary, NC 27511                                         *
* ======             BBS:(919)-471-6436                                     *
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef EXTERN
#define EXTERN extern
#endif

#if 0
#define MYDEBUG 1
#endif

#ifndef DEBUGGRP
#define DEBUGGRP 0
#endif

#define BUG(lvl, args) BUGGRP(DEBUGGRP, lvl, args)
#define BUGGETC(lvl)   BUGGGETC(DEBUGGRP, lvl)
#define BUG0(lvl, args) BUGGRP(0, lvl, args)
#define BUGGTC0(lvl)   BUGGGETC(0, lvl)
#define BUG1(lvl, args) BUGGRP(1, lvl, args)
#define BUGGTC1(lvl)   BUGGGETC(1, lvl)
#define BUG2(lvl, args) BUGGRP(2, lvl, args)
#define BUGGTC2(lvl)   BUGGGETC(2, lvl)
#define BUG3(lvl, args) BUGGRP(3, lvl, args)
#define BUGGTC3(lvl)   BUGGGETC(3, lvl)
#define BUG4(lvl, args) BUGGRP(4, lvl, args)
#define BUGGTC4(lvl)   BUGGGETC(4, lvl)
#define BUG5(lvl, args) BUGGRP(5, lvl, args)
#define BUGGTC5(lvl)   BUGGGETC(5, lvl)

#ifdef MYDEBUG

void dump(char *, int);

#define MAXDEBUG 10
EXTERN int debug[MAXDEBUG];

#define BUGTEST(lvl) (lvl<=debug[DEBUGGRP])

#define BUGGRP(grp, lvl, args) {if(lvl<=debug[grp])\
                                   {printf args ; fflush(stdout);}}
#define BUGGGETC(grp, lvl) {if(lvl<=debug[grp])\
                       {printf("Hit return to continue: ");(void)getchar();}}

#else

#define BUGTEST(grp) (0)
#define BUGGRP(grp, lvl, args) {}
#define BUGGGETC(grp, lvl) {}

#endif MYDEBUG
