1 #ifndef __ZZIP_INTERNAL_DEBUG_H
2 #define __ZZIP_INTERNAL_DEBUG_H
3 
4 #include <zzip/conf.h>
5 #include <zzip/__hints.h>
6 
7 /* perhaps want to show on syslog(3) ?? */
8 
9 #ifdef DEBUG
10 #include <stdio.h>
11 #define MSG1(X1) ZZIP_FOR1 { \
12         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
13 	    ); } ZZIP_END1
14 #define MSG2(X1,X2) ZZIP_FOR1 { \
15         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
16 		,X2);} ZZIP_END1
17 #define MSG3(X1,X2,X3) ZZIP_FOR1 { \
18         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
19 		 ,X2,X3); } ZZIP_END1
20 #define MSG4(X1,X2,X3,X4)   ZZIP_FOR1 { \
21         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
22 		 ,X2,X3,X4); } ZZIP_END1
23 #define MSG5(X1,X2,X3,X4,X5)   ZZIP_FOR1 { \
24         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
25 		 ,X2,X3,X4,X5); } ZZIP_END1
26 #define MSG6(X1,X2,X3,X4,X5,X6)   ZZIP_FOR1 { \
27         fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
28 		 ,X2,X3,X4,X5,X6); } ZZIP_END1
29 
30 #else
31 #define MSG1(X1) {}
32 #define MSG2(X1,X2) {}
33 #define MSG3(X1,X2,X3) {}
34 #define MSG4(X1,X2,X3,X4) {}
35 #define MSG5(X1,X2,X3,X4,X5) {}
36 #define MSG6(X1,X2,X3,X4,X5,X6) {}
37 #endif
38 
39 #define DBG1(X1)                     MSG1("DEBUG: " X1)
40 #define DBG2(X1,X2)                  MSG2("DEBUG: " X1,X2)
41 #define DBG3(X1,X2,X3)               MSG3("DEBUG: " X1,X2,X3)
42 #define DBG4(X1,X2,X3,X4)            MSG4("DEBUG: " X1,X2,X3,X4)
43 #define DBG5(X1,X2,X3,X4,X5)         MSG5("DEBUG: " X1,X2,X3,X4,X5)
44 #define DBG6(X1,X2,X3,X4,X5,X6)      MSG6("DEBUG: " X1,X2,X3,X4,X5,X6)
45 
46 #define HINT1(X1)                     MSG1("HINT: " X1)
47 #define HINT2(X1,X2)                  MSG2("HINT: " X1,X2)
48 #define HINT3(X1,X2,X3)               MSG3("HINT: " X1,X2,X3)
49 #define HINT4(X1,X2,X3,X4)            MSG4("HINT: " X1,X2,X3,X4)
50 #define HINT5(X1,X2,X3,X4,X5)         MSG5("HINT: " X1,X2,X3,X4,X5)
51 #define HINT6(X1,X2,X3,X4,X5,X6)      MSG6("HINT: " X1,X2,X3,X4,X5,X6)
52 
53 #define NOTE1(X1)                     MSG1("NOTE: " X1)
54 #define NOTE2(X1,X2)                  MSG2("NOTE: " X1,X2)
55 #define NOTE3(X1,X2,X3)               MSG3("NOTE: " X1,X2,X3)
56 #define NOTE4(X1,X2,X3,X4)            MSG4("NOTE: " X1,X2,X3,X4)
57 #define NOTE5(X1,X2,X3,X4,X5)         MSG5("NOTE: " X1,X2,X3,X4,X5)
58 #define NOTE6(X1,X2,X3,X4,X5,X6)      MSG6("NOTE: " X1,X2,X3,X4,X5,X6)
59 
60 #define WARN1(X1)                     MSG1("WARN: " X1)
61 #define WARN2(X1,X2)                  MSG2("WARN: " X1,X2)
62 #define WARN3(X1,X2,X3)               MSG3("WARN: " X1,X2,X3)
63 #define WARN4(X1,X2,X3,X4)            MSG4("WARN: " X1,X2,X3,X4)
64 #define WARN5(X1,X2,X3,X4,X5)         MSG5("WARN: " X1,X2,X3,X4,X5)
65 #define WARN6(X1,X2,X3,X4,X5,X6)      MSG6("WARN: " X1,X2,X3,X4,X5,X6)
66 
67 #define FAIL1(X1)                     MSG1("FAIL: " X1)
68 #define FAIL2(X1,X2)                  MSG2("FAIL: " X1,X2)
69 #define FAIL3(X1,X2,X3)               MSG3("FAIL: " X1,X2,X3)
70 #define FAIL4(X1,X2,X3,X4)            MSG4("FAIL: " X1,X2,X3,X4)
71 #define FAIL5(X1,X2,X3,X4,X5)         MSG5("FAIL: " X1,X2,X3,X4,X5)
72 #define FAIL6(X1,X2,X3,X4,X5,X6)      MSG6("FAIL: " X1,X2,X3,X4,X5,X6)
73 
74 
75 
76 #ifdef DEBUG
zzip_debug_xbuf(unsigned char * p,int l)77 _zzip_inline static void zzip_debug_xbuf (unsigned char* p, int l)
78     /* ZZIP_GNUC_UNUSED */
79 {
80 #   define q(a) ((a&0x7F)<32?32:(a&0x7F))
81     while (l > 0)
82     {
83         fprintf (stderr,
84 		 "%02x %02x %02x %02x  "
85 		 "%02x %02x %02x %02x  "
86 		 "%c%c%c%c %c%c%c%c\n",
87 		 p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7],
88 		 q(p[0]), q(p[1]), q(p[2]), q(p[3]),
89 		 q(p[4]), q(p[5]), q(p[6]), q(p[7]));
90         p += 8; l -= 8;
91     }
92 #   undef q
93 }
94 #endif
95 
96 #endif
97