1 /* 2 * debug.h 3 * Copyright (C) 1998-2005 A.J. van Os; Released under GPL 4 * 5 * Description: 6 * Macro's for debuging. 7 */ 8 9 #if !defined(__debug_h) 10 #define __debug_h 1 11 12 #include <stdio.h> 13 #include <ctype.h> 14 15 #if defined(DEBUG) 16 //#define DEBUG_ANTIWORD 17 #endif 18 19 #if defined(DEBUG_ANTIWORD) 20 21 #define DBG_MSG(t) (void)fprintf(stderr,\ 22 "%s[%3d]: %.240s\n",\ 23 __FILE__, __LINE__, (t)) 24 25 #define DBG_STRN(t,m) (void)fprintf(stderr,\ 26 "%s[%3d]: %d '%.*s'\n",\ 27 __FILE__, __LINE__,\ 28 (int)(m), (int)(m), (const char *)(t)) 29 30 #define DBG_CHR(m) (void)fprintf(stderr,\ 31 "%s[%3d]: "#m" = %3d 0x%02x '%c'\n",\ 32 __FILE__, __LINE__,\ 33 (int)(m), (unsigned int)(unsigned char)(m),\ 34 isprint((int)(unsigned char)(m))?(char)(m):' ') 35 36 #define DBG_DEC(m) (void)fprintf(stderr,\ 37 "%s[%3d]: "#m" = %ld\n",\ 38 __FILE__, __LINE__, (long)(m)) 39 40 #define DBG_HEX(m) (void)fprintf(stderr,\ 41 "%s[%3d]: "#m" = 0x%02lx\n",\ 42 __FILE__, __LINE__, (unsigned long)(m)) 43 44 #define DBG_FLT(m) (void)fprintf(stderr,\ 45 "%s[%3d]: "#m" = %.3f\n",\ 46 __FILE__, __LINE__, (double)(m)) 47 48 #define DBG_FIXME() (void)fprintf(stderr,\ 49 "%s[%3d]: FIXME\n",\ 50 __FILE__, __LINE__) 51 52 #define DBG_PRINT_BLOCK(b,m) vPrintBlock(__FILE__, __LINE__,(b),(m)) 53 #define DBG_UNICODE(t) vPrintUnicode(__FILE__, __LINE__,\ 54 (const UCHAR *)(t),unilen(t)) 55 #define DBG_UNICODE_N(t,m) vPrintUnicode(__FILE__, __LINE__,\ 56 (const UCHAR *)(t),(m)) 57 58 #define DBG_MSG_C(c,t) do { if (c) DBG_MSG(t); } while(0) 59 #define DBG_STRN_C(c,t,m) do { if (c) DBG_STRN(t,m); } while(0) 60 #define DBG_CHR_C(c,m) do { if (c) DBG_CHR(m); } while(0) 61 #define DBG_DEC_C(c,m) do { if (c) DBG_DEC(m); } while(0) 62 #define DBG_HEX_C(c,m) do { if (c) DBG_HEX(m); } while(0) 63 #define DBG_FLT_C(c,m) do { if (c) DBG_FLT(m); } while(0) 64 65 #else 66 67 #define DBG_MSG(t) /* EMPTY */ 68 #define DBG_STRN(t,m) /* EMPTY */ 69 #define DBG_CHR(m) /* EMPTY */ 70 #define DBG_DEC(m) /* EMPTY */ 71 #define DBG_HEX(m) /* EMPTY */ 72 #define DBG_FLT(m) /* EMPTY */ 73 74 #define DBG_FIXME() /* EMPTY */ 75 #define DBG_PRINT_BLOCK(b,m) /* EMPTY */ 76 #define DBG_UNICODE(t) /* EMPTY */ 77 #define DBG_UNICODE_N(t,m) /* EMPTY */ 78 79 #define DBG_MSG_C(c,t) /* EMPTY */ 80 #define DBG_STRN_C(c,t,m) /* EMPTY */ 81 #define DBG_CHR_C(c,m) /* EMPTY */ 82 #define DBG_DEC_C(c,m) /* EMPTY */ 83 #define DBG_HEX_C(c,m) /* EMPTY */ 84 #define DBG_FLT_C(c,m) /* EMPTY */ 85 86 #endif /* DEBUG */ 87 88 #define NO_DBG_MSG(t) /* EMPTY */ 89 #define NO_DBG_STRN(t,m) /* EMPTY */ 90 #define NO_DBG_CHR(m) /* EMPTY */ 91 #define NO_DBG_DEC(m) /* EMPTY */ 92 #define NO_DBG_HEX(m) /* EMPTY */ 93 #define NO_DBG_FLT(m) /* EMPTY */ 94 95 #define NO_DBG_PRINT_BLOCK(b,m) /* EMPTY */ 96 #define NO_DBG_UNICODE(t) /* EMPTY */ 97 #define NO_DBG_UNICODE_N(t,m) /* EMPTY */ 98 99 #define NO_DBG_MSG_C(c,t) /* EMPTY */ 100 #define NO_DBG_STRN_C(c,t,m) /* EMPTY */ 101 #define NO_DBG_CHR_C(c,m) /* EMPTY */ 102 #define NO_DBG_DEC_C(c,m) /* EMPTY */ 103 #define NO_DBG_HEX_C(c,m) /* EMPTY */ 104 #define NO_DBG_FLT_C(c,m) /* EMPTY */ 105 106 #if defined(TRACE) 107 108 #define TRACE_MSG(t) do {\ 109 (void)fprintf(stderr,\ 110 "%s[%3d]: TRACE:%.40s\n",\ 111 __FILE__, __LINE__, (t));\ 112 (void)fflush(stderr);\ 113 } while(0) 114 115 #else 116 117 #define TRACE_MSG(t) /* EMPTY */ 118 119 #endif /* TRACE */ 120 121 #endif /* !__debug_h */ 122