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