home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 1 / GoldFishApril1994_CD1.img / d1xx / d102 / dbug / lattice / useful.h < prev   
C/C++ Source or Header  |  1987-09-06  |  2KB  |  80 lines

  1. /*
  2.  * Copyright June 1987, Binayak Banerjee
  3.  * All rights reserved.
  4.  *
  5.  * This program may be freely distributed under the same terms and
  6.  * conditions as Fred Fish's Dbug package.
  7.  *
  8.  * Useful macros which I use a lot.
  9.  *
  10.  * Conditionally include some useful files.
  11.  */
  12.  
  13. # ifndef EOF
  14. #    include <stdio.h>
  15. # endif
  16.  
  17. # if unix
  18. # ifndef EX_OK
  19. #    include <sysexits.h>
  20. # endif
  21. # else
  22. #    define EX_SOFTWARE 1
  23. #    define EX_DATAERR 1
  24. #    define EX_USAGE 1
  25. #    define EX_OSERR 1
  26. #    define EX_IOERR 1
  27. #    define EX_OK 0
  28. # endif
  29.  
  30.  
  31. /*
  32.  * Fred Fish's debugging stuff.  Define DBUG_OFF in order to disable if
  33.  * you don't have these.
  34.  */
  35.  
  36. # ifndef DBUG_OFF
  37. #    include "dbug.h"        /* Use local version */
  38. # else
  39. #    define DBUG_ENTER(a1)
  40. #    define DBUG_RETURN(a1) return(a1)
  41. #    define DBUG_VOID_RETURN return
  42. #    define DBUG_EXECUTE(keyword,a1)
  43. #    define DBUG_2(keyword,format)
  44. #    define DBUG_3(keyword,format,a1)
  45. #    define DBUG_4(keyword,format,a1,a2)
  46. #    define DBUG_5(keyword,format,a1,a2,a3)
  47. #    define DBUG_PUSH(a1)
  48. #    define DBUG_POP()
  49. #    define DBUG_PROCESS(a1)
  50. #    define DBUG_PRINT(x,y)
  51. #    define DBUG_FILE (stderr)
  52. # endif
  53.  
  54. #define __MERF_OO_ "%s: Malloc Failed in %s: %d\n"
  55.  
  56. #define Nil(Typ)    ((Typ *) 0)    /* Make Lint happy */
  57.  
  58. #define MALLOC(Ptr,Num,Typ) do    /* Malloc w/error checking & exit */ \
  59.     if ((Ptr = (Typ *)malloc((Num)*(sizeof(Typ)))) == Nil(Typ)) \
  60.         {fprintf(stderr,__MERF_OO_,my_name,__FILE__,__LINE__);\
  61.         exit(EX_OSERR);} while(0)
  62.  
  63. #define Malloc(Ptr,Num,Typ) do    /* Weaker version of above */\
  64.     if ((Ptr = (Typ *)malloc((Num)*(sizeof(Typ)))) == Nil(Typ)) \
  65.         fprintf(stderr,__MERF_OO_,my_name,__FILE__,__LINE__);\
  66.          while(0)
  67.  
  68. #define FILEOPEN(Fp,Fn,Mod) do    /* File open with error exit */ \
  69.     if((Fp = fopen(Fn,Mod)) == Nil(FILE))\
  70.         {fprintf(stderr,"%s: Couldn't open %s\n",my_name,Fn);\
  71.         exit(EX_IOERR);} while(0)
  72.  
  73. #define Fileopen(Fp,Fn,Mod) do    /* Weaker version of above */ \
  74.     if((Fp = fopen(Fn,Mod)) == Nil(FILE)) \
  75.         fprintf(stderr,"%s: Couldn't open %s\n",my_name,Fn);\
  76.     while(0)
  77.  
  78.  
  79. extern char *my_name;    /* The name that this was called as */
  80.