Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / core / src / fxcodec / fx_lpng / lpng_v163 / pngdebug.h
1 \r
2 /* pngdebug.h - Debugging macros for libpng, also used in pngtest.c\r
3  *\r
4  * Copyright (c) 1998-2011 Glenn Randers-Pehrson\r
5  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)\r
6  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)\r
7  *\r
8  * Last changed in libpng 1.5.0 [January 6, 2011]\r
9  *\r
10  * This code is released under the libpng license.\r
11  * For conditions of distribution and use, see the disclaimer\r
12  * and license in png.h\r
13  */\r
14 \r
15 /* Define PNG_DEBUG at compile time for debugging information.  Higher\r
16  * numbers for PNG_DEBUG mean more debugging information.  This has\r
17  * only been added since version 0.95 so it is not implemented throughout\r
18  * libpng yet, but more support will be added as needed.\r
19  *\r
20  * png_debug[1-2]?(level, message ,arg{0-2})\r
21  *   Expands to a statement (either a simple expression or a compound\r
22  *   do..while(0) statement) that outputs a message with parameter\r
23  *   substitution if PNG_DEBUG is defined to 2 or more.  If PNG_DEBUG\r
24  *   is undefined, 0 or 1 every png_debug expands to a simple expression\r
25  *   (actually ((void)0)).\r
26  *\r
27  *   level: level of detail of message, starting at 0.  A level 'n'\r
28  *          message is preceded by 'n' tab characters (not implemented\r
29  *          on Microsoft compilers unless PNG_DEBUG_FILE is also\r
30  *          defined, to allow debug DLL compilation with no standard IO).\r
31  *   message: a printf(3) style text string.  A trailing '\n' is added\r
32  *            to the message.\r
33  *   arg: 0 to 2 arguments for printf(3) style substitution in message.\r
34  */\r
35 #ifndef PNGDEBUG_H\r
36 #define PNGDEBUG_H\r
37 /* These settings control the formatting of messages in png.c and pngerror.c */\r
38 /* Moved to pngdebug.h at 1.5.0 */\r
39 #  ifndef PNG_LITERAL_SHARP\r
40 #    define PNG_LITERAL_SHARP 0x23\r
41 #  endif\r
42 #  ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET\r
43 #    define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b\r
44 #  endif\r
45 #  ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET\r
46 #    define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d\r
47 #  endif\r
48 #  ifndef PNG_STRING_NEWLINE\r
49 #    define PNG_STRING_NEWLINE "\n"\r
50 #  endif\r
51 \r
52 #ifdef PNG_DEBUG\r
53 #  if (PNG_DEBUG > 0)\r
54 #    if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)\r
55 #      include <crtdbg.h>\r
56 #      if (PNG_DEBUG > 1)\r
57 #        ifndef _DEBUG\r
58 #          define _DEBUG\r
59 #        endif\r
60 #        ifndef png_debug\r
61 #          define png_debug(l,m)  _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)\r
62 #        endif\r
63 #        ifndef png_debug1\r
64 #          define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)\r
65 #        endif\r
66 #        ifndef png_debug2\r
67 #          define png_debug2(l,m,p1,p2) \\r
68              _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)\r
69 #        endif\r
70 #      endif\r
71 #    else /* PNG_DEBUG_FILE || !_MSC_VER */\r
72 #      ifndef PNG_STDIO_SUPPORTED\r
73 #        include <stdio.h> /* not included yet */\r
74 #      endif\r
75 #      ifndef PNG_DEBUG_FILE\r
76 #        define PNG_DEBUG_FILE stderr\r
77 #      endif /* PNG_DEBUG_FILE */\r
78 \r
79 #      if (PNG_DEBUG > 1)\r
80 /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on\r
81  * non-ISO compilers\r
82  */\r
83 #        ifdef __STDC__\r
84 #          ifndef png_debug\r
85 #            define png_debug(l,m) \\r
86        do { \\r
87        int num_tabs=l; \\r
88        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \\r
89          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \\r
90        } while (0)\r
91 #          endif\r
92 #          ifndef png_debug1\r
93 #            define png_debug1(l,m,p1) \\r
94        do { \\r
95        int num_tabs=l; \\r
96        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \\r
97          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \\r
98        } while (0)\r
99 #          endif\r
100 #          ifndef png_debug2\r
101 #            define png_debug2(l,m,p1,p2) \\r
102        do { \\r
103        int num_tabs=l; \\r
104        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \\r
105          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \\r
106        } while (0)\r
107 #          endif\r
108 #        else /* __STDC __ */\r
109 #          ifndef png_debug\r
110 #            define png_debug(l,m) \\r
111        do { \\r
112        int num_tabs=l; \\r
113        char format[256]; \\r
114        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \\r
115          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \\r
116          m,PNG_STRING_NEWLINE); \\r
117        fprintf(PNG_DEBUG_FILE,format); \\r
118        } while (0)\r
119 #          endif\r
120 #          ifndef png_debug1\r
121 #            define png_debug1(l,m,p1) \\r
122        do { \\r
123        int num_tabs=l; \\r
124        char format[256]; \\r
125        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \\r
126          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \\r
127          m,PNG_STRING_NEWLINE); \\r
128        fprintf(PNG_DEBUG_FILE,format,p1); \\r
129        } while (0)\r
130 #          endif\r
131 #          ifndef png_debug2\r
132 #            define png_debug2(l,m,p1,p2) \\r
133        do { \\r
134        int num_tabs=l; \\r
135        char format[256]; \\r
136        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \\r
137          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \\r
138          m,PNG_STRING_NEWLINE); \\r
139        fprintf(PNG_DEBUG_FILE,format,p1,p2); \\r
140        } while (0)\r
141 #          endif\r
142 #        endif /* __STDC __ */\r
143 #      endif /* (PNG_DEBUG > 1) */\r
144 \r
145 #    endif /* _MSC_VER */\r
146 #  endif /* (PNG_DEBUG > 0) */\r
147 #endif /* PNG_DEBUG */\r
148 #ifndef png_debug\r
149 #  define png_debug(l, m) ((void)0)\r
150 #endif\r
151 #ifndef png_debug1\r
152 #  define png_debug1(l, m, p1) ((void)0)\r
153 #endif\r
154 #ifndef png_debug2\r
155 #  define png_debug2(l, m, p1, p2) ((void)0)\r
156 #endif\r
157 #endif /* PNGDEBUG_H */\r