1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3 *
4 * This code is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 2 only, as
6 * published by the Free Software Foundation. Oracle designates this
7 * particular file as subject to the "Classpath" exception as provided
8 * by Oracle in the LICENSE file that accompanied this code.
9 *
10 * This code is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 */
24
25 /* pngdebug.h - Debugging macros for libpng, also used in pngtest.c
26 *
27 * This file is available under and governed by the GNU General Public
28 * License version 2 only, as published by the Free Software Foundation.
29 * However, the following notice accompanied the original version of this
30 * file and, per its terms, should not be removed:
31 *
32 * Last changed in libpng 1.6.8 [December 19, 2013]
33 * Copyright (c) 1998-2013 Glenn Randers-Pehrson
34 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
35 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
36 *
37 * This code is released under the libpng license.
38 * For conditions of distribution and use, see the disclaimer
39 * and license in png.h
40 */
41
42 /* Define PNG_DEBUG at compile time for debugging information. Higher
43 * numbers for PNG_DEBUG mean more debugging information. This has
44 * only been added since version 0.95 so it is not implemented throughout
45 * libpng yet, but more support will be added as needed.
46 *
47 * png_debug[1-2]?(level, message ,arg{0-2})
48 * Expands to a statement (either a simple expression or a compound
49 * do..while(0) statement) that outputs a message with parameter
50 * substitution if PNG_DEBUG is defined to 2 or more. If PNG_DEBUG
51 * is undefined, 0 or 1 every png_debug expands to a simple expression
52 * (actually ((void)0)).
53 *
54 * level: level of detail of message, starting at 0. A level 'n'
55 * message is preceded by 'n' 3-space indentations (not implemented
56 * on Microsoft compilers unless PNG_DEBUG_FILE is also
57 * defined, to allow debug DLL compilation with no standard IO).
58 * message: a printf(3) style text string. A trailing '\n' is added
59 * to the message.
60 * arg: 0 to 2 arguments for printf(3) style substitution in message.
61 */
62 #ifndef PNGDEBUG_H
63 #define PNGDEBUG_H
64 /* These settings control the formatting of messages in png.c and pngerror.c */
65 /* Moved to pngdebug.h at 1.5.0 */
66 # ifndef PNG_LITERAL_SHARP
67 # define PNG_LITERAL_SHARP 0x23
68 # endif
69 # ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET
70 # define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b
71 # endif
72 # ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET
73 # define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d
74 # endif
75 # ifndef PNG_STRING_NEWLINE
76 # define PNG_STRING_NEWLINE "\n"
77 # endif
78
79 #ifdef PNG_DEBUG
80 # if (PNG_DEBUG > 0)
81 # if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
82 # include <crtdbg.h>
83 # if (PNG_DEBUG > 1)
84 # ifndef _DEBUG
85 # define _DEBUG
86 # endif
87 # ifndef png_debug
88 # define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
89 # endif
90 # ifndef png_debug1
91 # define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
92 # endif
93 # ifndef png_debug2
94 # define png_debug2(l,m,p1,p2) \
95 _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
96 # endif
97 # endif
98 # else /* PNG_DEBUG_FILE || !_MSC_VER */
99 # ifndef PNG_STDIO_SUPPORTED
100 # include <stdio.h> /* not included yet */
101 # endif
102 # ifndef PNG_DEBUG_FILE
103 # define PNG_DEBUG_FILE stderr
104 # endif /* PNG_DEBUG_FILE */
105
106 # if (PNG_DEBUG > 1)
107 # ifdef __STDC__
108 # ifndef png_debug
109 # define png_debug(l,m) \
110 do { \
111 int num_tabs=l; \
112 fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \
113 (num_tabs==2 ? " " : (num_tabs>2 ? " " : "")))); \
114 } while (0)
115 # endif
116 # ifndef png_debug1
117 # define png_debug1(l,m,p1) \
118 do { \
119 int num_tabs=l; \
120 fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \
121 (num_tabs==2 ? " " : (num_tabs>2 ? " " : ""))),p1); \
122 } while (0)
123 # endif
124 # ifndef png_debug2
125 # define png_debug2(l,m,p1,p2) \
126 do { \
127 int num_tabs=l; \
128 fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \
129 (num_tabs==2 ? " " : (num_tabs>2 ? " " : ""))),p1,p2);\
130 } while (0)
131 # endif
132 # else /* __STDC __ */
133 # ifndef png_debug
134 # define png_debug(l,m) \
135 do { \
136 int num_tabs=l; \
137 char format[256]; \
138 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
139 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
140 m,PNG_STRING_NEWLINE); \
141 fprintf(PNG_DEBUG_FILE,format); \
142 } while (0)
143 # endif
144 # ifndef png_debug1
145 # define png_debug1(l,m,p1) \
146 do { \
147 int num_tabs=l; \
148 char format[256]; \
149 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
150 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
151 m,PNG_STRING_NEWLINE); \
152 fprintf(PNG_DEBUG_FILE,format,p1); \
153 } while (0)
154 # endif
155 # ifndef png_debug2
156 # define png_debug2(l,m,p1,p2) \
157 do { \
158 int num_tabs=l; \
159 char format[256]; \
160 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
161 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
162 m,PNG_STRING_NEWLINE); \
163 fprintf(PNG_DEBUG_FILE,format,p1,p2); \
164 } while (0)
165 # endif
166 # endif /* __STDC __ */
167 # endif /* (PNG_DEBUG > 1) */
168
169 # endif /* _MSC_VER */
170 # endif /* (PNG_DEBUG > 0) */
171 #endif /* PNG_DEBUG */
172 #ifndef png_debug
173 # define png_debug(l, m) ((void)0)
174 #endif
175 #ifndef png_debug1
176 # define png_debug1(l, m, p1) ((void)0)
177 #endif
178 #ifndef png_debug2
179 # define png_debug2(l, m, p1, p2) ((void)0)
180 #endif
181 #endif /* PNGDEBUG_H */
--- EOF ---