Imported from libpng-0.99e.tar
diff --git a/example.c b/example.c
index 702fc96..e4b5c46 100644
--- a/example.c
+++ b/example.c
@@ -12,7 +12,7 @@
  * working PNG reader/writer, see pngtest.c, included in this distribution.
  */
 
-#include <png.h>
+#include "png.h"
 
 /* Check to see if a file is a PNG file using png_check_sig().  Returns
  * non-zero if the image is a PNG, and 0 if it isn't a PNG.
@@ -54,7 +54,7 @@
  * file, and the other where we are given an open file (possibly with
  * some or all of the magic bytes read - see comments above).
  */
-**** prototype 1 ****
+#ifdef open_file /* prototype 1 */
 void read_png(char *file_name)  /* We need to open the file */
 {
    png_structp png_ptr;
@@ -66,14 +66,14 @@
 
    if ((fp = fopen(file_name, "rb")) == NULL)
       return;
-**** prototype 2 ****
+#else no_open_file /* prototype 2 */
 void read_png(FILE *fp, unsigned int sig_read)  /* file is already open */
 {
    png_structp png_ptr;
    png_infop info_ptr;
    png_uint_32 width, height;
    int bit_depth, color_type, interlace_type;
-**** only use one prototype! ****
+#endif no_open_file /* only use one prototype! */
 
    /* Create and initialize the png_struct with the desired error handler
     * functions.  If you want to use the default stderr and longjump method,
@@ -113,17 +113,17 @@
    }
 
    /* One of the following I/O initialization methods is REQUIRED */
-**** PNG file I/O method 1 ****
+#ifdef streams /* PNG file I/O method 1 */
    /* Set up the input control if you are using standard C streams */
    png_init_io(png_ptr, fp);
 
-**** PNG file I/O method 2 ****
+#else no_streams /* PNG file I/O method 2 */
    /* If you are using replacement read functions, instead of calling
     * png_init_io() here you would call:
     */
    png_set_read_fn(png_ptr, (void *)user_io_ptr, user_read_fn);
    /* where user_io_ptr is a structure you want available to the callbacks */
-**** Use only one I/O method! ****
+#endif no_streams /* Use only one I/O method! */
 
    /* If we have already read some of the signature */
    png_set_sig_bytes_read(png_ptr, sig_read);
@@ -180,10 +180,10 @@
     * use it - you should use the (solid) application background if it has one.
     */
 
-   png_color_16 my_background, *image_background);
+   png_color_16 my_background, *image_background;
 
-   if (png_get_bKGD(png_ptr, info_ptr, &image_background);
-      png_set_background(png_ptr, image_background),
+   if (png_get_bKGD(png_ptr, info_ptr, &image_background))
+      png_set_background(png_ptr, image_background,
                          PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
    else
       png_set_background(png_ptr, &my_background,
@@ -191,7 +191,7 @@
 
    /* Some suggestions as to how to get a screen gamma value */
 
-   /* Note that screen gamma is (display_gamma/viewing_gamma)
+   /* Note that screen gamma is (display_gamma/viewing_gamma) */
    if (/* We have a user-defined screen gamma value */)
    {
       screen_gamma = user-defined screen_gamma;
@@ -217,10 +217,10 @@
 
    int intent;
 
-   if (png_get_sRGB(png_ptr, info_ptr, &intent)
+   if (png_get_sRGB(png_ptr, info_ptr, &intent))
       png_set_sRGB(png_ptr, intent, 0);
    else 
-      if (png_get_gAMA(png_ptr, info_ptr, &image_gamma)
+      if (png_get_gAMA(png_ptr, info_ptr, &image_gamma))
          png_set_gamma(png_ptr, screen_gamma, image_gamma);
       else
          png_set_gamma(png_ptr, screen_gamma, 0.50);
@@ -234,7 +234,7 @@
       png_colorp palette;
 
       /* This reduces the image to the application supplied palette */
-      if (we have our own palette)
+      if (/* we have our own palette */)
       {
          /* An array of colors to which the image should be dithered */
          png_color std_color_cube[MAX_SCREEN_COLORS];
@@ -243,7 +243,7 @@
             MAX_SCREEN_COLORS, NULL, 0);
       }
       /* This reduces the image to the palette supplied in the file */
-      else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)))
+      else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette))
       {
          png_color16p histogram;
 
@@ -304,37 +304,37 @@
    }
 
    /* Now it's time to read the image.  One of these methods is REQUIRED */
-**** Read the entire image in one go ****
+#ifdef entire /* Read the entire image in one go */
    png_read_image(png_ptr, row_pointers);
 
-**** Read the image one or more scanlines at a time ****
+#else no_entire /* Read the image one or more scanlines at a time */
    /* The other way to read images - deal with interlacing: */
 
    for (pass = 0; pass < number_passes; pass++)
    {
-[[[[[[[ Read the image a single row at a time ]]]]]]]
+#ifdef single /* Read the image a single row at a time */
       for (y = 0; y < height; y++)
       {
          png_bytep row_pointers = row[y];
          png_read_rows(png_ptr, &row_pointers, NULL, 1);
       }
 
-[[[[[[[ Read the image several rows at a time ]]]]]]]
+#else no_single /* Read the image several rows at a time */
       for (y = 0; y < height; y += number_of_rows)
       {
-<<<<<<<<<< Read the image using the "sparkle" effect. >>>>>>>>>>
+#ifdef sparkle /* Read the image using the "sparkle" effect. */
          png_read_rows(png_ptr, row_pointers, NULL, number_of_rows);
         
-<<<<<<<<<< Read the image using the "rectangle" effect >>>>>>>>>>
+#else no_sparkle /* Read the image using the "rectangle" effect */
          png_read_rows(png_ptr, NULL, row_pointers, number_of_rows);
-<<<<<<<<<< use only one of these two methods >>>>>>>>>>
+#endif no_sparkle /* use only one of these two methods */
       }
      
       /* if you want to display the image after every pass, do
          so here */
-[[[[[[[ use only one of these two methods ]]]]]]]
+#endif no_single /* use only one of these two methods */
    }
-**** use only one of these two methods ****
+#endif no_entire /* use only one of these two methods */
 
    /* read rest of file, and get additional chunks in info_ptr - REQUIRED */
    png_read_end(png_ptr, info_ptr);
@@ -479,7 +479,7 @@
 }
 
 /* write a png file */
-void write_png(char *file_name, ... other image information ...)
+void write_png(char *file_name /* , ... other image information ... */)
 {
    FILE *fp;
    png_structp png_ptr;
@@ -526,16 +526,16 @@
    }
 
    /* One of the following I/O initialization functions is REQUIRED */
-**** I/O initialization method 1 ****
+#ifdef streams /* I/O initialization method 1 */
    /* set up the output control if you are using standard C streams */
    png_init_io(png_ptr, fp);
-**** I/O initialization method 2 ****
+#else no_streams /* I/O initialization method 2 */
    /* If you are using replacement read functions, instead of calling
     * png_init_io() here you would call */
    png_set_write_fn(png_ptr, (void *)user_io_ptr, user_write_fn,
       user_IO_flush_function);
    /* where user_io_ptr is a structure you want available to the callbacks */
-**** only use 1 initialization method ****
+#endif no_streams /* only use one initialization method */
 
    /* Set the image information here.  Width and height are up to 2^31,
     * bit_depth is one of 1, 2, 4, 8, or 16, but valid values also depend on
@@ -550,7 +550,7 @@
 
    /* set the palette if there is one.  REQUIRED for indexed-color images */
    palette = (png_colorp)png_malloc(png_ptr, 256 * sizeof (png_color));
-   ... set palette colors ...
+   /* ... set palette colors ... */
    png_set_PLTE(png_ptr, info_ptr, palette, 256);
 
    /* optional significant bit chunk */
@@ -640,12 +640,12 @@
    png_byte row_pointers[height][width];
 
    /* One of the following output methods is REQUIRED */
-**** write out the entire image data in one call ***
+#ifdef entire /* write out the entire image data in one call */
    png_write_image(png_ptr, row_pointers);
 
    /* the other way to write the image - deal with interlacing */
 
-**** write out the image data by one or more scanlines ****
+#else no_entire /* write out the image data by one or more scanlines */
    /* The number of passes is either 1 for non-interlaced images,
     * or 7 for interlaced images.
     */
@@ -661,7 +661,7 @@
          png_write_rows(png_ptr, &row_pointers, 1);
       }
    }
-**** use only one output method ****
+#endif no_entire /* use only one output method */
 
    /* You can write optional chunks like tEXt, zTXt, and tIME at the end
     * as well.