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