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