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