Changeset 43 for vendor/libpng/pngtest.c

Show
Ignore:
Timestamp:
02/15/10 11:37:15 (2 years ago)
Author:
Carsten
Message:

Upgraded vendor/libpng from 1.2.40 to 1.2.42.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vendor/libpng/pngtest.c

    r11 r43  
    22/* pngtest.c - a simple test program to test libpng 
    33 * 
    4  * Last changed in libpng 1.2.37 [June 4, 2009] 
     4 * Last changed in libpng 1.2.41 [December 3, 2009] 
    55 * Copyright (c) 1998-2009 Glenn Randers-Pehrson 
    66 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 
     
    3232 */ 
    3333 
     34#define PNG_PEDANTIC_WARNINGS 
    3435#include "png.h" 
    3536 
    36 #if defined(_WIN32_WCE) 
     37#ifdef _WIN32_WCE 
    3738#  if _WIN32_WCE < 211 
    3839     __error__ (f|w)printf functions are not supported on old WindowsCE.; 
     
    5556#endif 
    5657 
    57 #if defined(PNG_NO_STDIO) 
    58 #  if defined(_WIN32_WCE) 
     58#ifndef PNG_STDIO_SUPPORTED 
     59#  ifdef _WIN32_WCE 
    5960     typedef HANDLE                png_FILE_p; 
    6061#  else 
     
    7677*/ 
    7778 
    78 #ifdef PNG_NO_FLOATING_POINT_SUPPORTED 
     79#ifndef PNG_FLOATING_POINT_SUPPORTED 
    7980#undef PNGTEST_TIMING 
    8081#endif 
     
    8586#endif 
    8687 
    87 #if defined(PNG_TIME_RFC1123_SUPPORTED) 
     88#ifdef PNG_TIME_RFC1123_SUPPORTED 
    8889#define PNG_tIME_STRING_LENGTH 29 
    8990static int tIME_chunk_present = 0; 
     
    163164 
    164165 
    165 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     166#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    166167/* Example of using user transform callback (we don't transform anything, 
    167168 * but merely examine the row filters.  We set this to 256 rather than 
     
    185186#endif 
    186187 
    187 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 
     188#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 
    188189/* Example of using user transform callback (we don't transform anything, 
    189190 * but merely count the zero samples) 
     
    298299static int wrote_question = 0; 
    299300 
    300 #if defined(PNG_NO_STDIO) 
     301#ifndef PNG_STDIO_SUPPORTED 
    301302/* START of code to validate stdio-free compilation */ 
    302303/* These copies of the default read/write functions come from pngrio.c and 
     
    312313pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) 
    313314{ 
    314    png_size_t check; 
     315   png_size_t check = 0; 
     316   png_voidp io_ptr; 
    315317 
    316318   /* fread() returns 0 on error, so it is OK to store this in a png_size_t 
    317319    * instead of an int, which is what fread() actually returns. 
    318320    */ 
    319    READFILE((png_FILE_p)png_ptr->io_ptr, data, length, check); 
     321   io_ptr = png_get_io_ptr(png_ptr); 
     322   if (io_ptr != NULL) 
     323   { 
     324      READFILE((png_FILE_p)io_ptr, data, length, check); 
     325   } 
    320326 
    321327   if (check != length) 
     
    372378#endif /* USE_FAR_KEYWORD */ 
    373379 
    374 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 
     380#ifdef PNG_WRITE_FLUSH_SUPPORTED 
    375381static void 
    376382pngtest_flush(png_structp png_ptr) 
     
    457463{ 
    458464   PNG_CONST char *name = "UNKNOWN (ERROR!)"; 
    459    if (png_ptr != NULL && png_ptr->error_ptr != NULL) 
    460       name = png_ptr->error_ptr; 
    461    fprintf(STDERR, "%s: libpng warning: %s\n", name, message); 
     465   char *test; 
     466   test = png_get_error_ptr(png_ptr); 
     467   if (test == NULL) 
     468     fprintf(STDERR, "%s: libpng warning: %s\n", name, message); 
     469   else 
     470     fprintf(STDERR, "%s: libpng warning: %s\n", test, message); 
    462471} 
    463472 
     
    475484    */ 
    476485} 
    477 #endif /* PNG_NO_STDIO */ 
     486#endif /* !PNG_STDIO_SUPPORTED */ 
    478487/* END of code to validate stdio-free compilation */ 
    479488 
     
    608617 
    609618/* Demonstration of user chunk support of the sTER and vpAg chunks */ 
    610 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 
     619#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 
    611620 
    612621/* (sTER is a public chunk not yet known by libpng.  vpAg is a private 
     
    702711#endif 
    703712 
    704 #if defined(_WIN32_WCE) 
     713#ifdef _WIN32_WCE 
    705714   TCHAR path[MAX_PATH]; 
    706715#endif 
     
    709718   row_buf = NULL; 
    710719 
    711 #if defined(_WIN32_WCE) 
     720#ifdef _WIN32_WCE 
    712721   MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH); 
    713722   if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) 
     
    720729   } 
    721730 
    722 #if defined(_WIN32_WCE) 
     731#ifdef _WIN32_WCE 
    723732   MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH); 
    724733   if ((fpout = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL)) == INVALID_HANDLE_VALUE) 
     
    743752      png_error_ptr_NULL, png_error_ptr_NULL); 
    744753#endif 
    745 #if defined(PNG_NO_STDIO) 
     754#ifndef PNG_STDIO_SUPPORTED 
    746755   png_set_error_fn(read_ptr, (png_voidp)inname, pngtest_error, 
    747756       pngtest_warning); 
    748757#endif 
    749758 
    750 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 
     759#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 
    751760   user_chunk_data[0] = 0; 
    752761   user_chunk_data[1] = 0; 
     
    768777      png_error_ptr_NULL, png_error_ptr_NULL); 
    769778#endif 
    770 #if defined(PNG_NO_STDIO) 
     779#ifndef PNG_STDIO_SUPPORTED 
    771780   png_set_error_fn(write_ptr, (png_voidp)inname, pngtest_error, 
    772781       pngtest_warning); 
     
    830839 
    831840   png_debug(0, "Initializing input and output streams"); 
    832 #if !defined(PNG_NO_STDIO) 
     841#ifdef PNG_STDIO_SUPPORTED 
    833842   png_init_io(read_ptr, fpin); 
    834843#  ifdef PNG_WRITE_SUPPORTED 
     
    839848#  ifdef PNG_WRITE_SUPPORTED 
    840849   png_set_write_fn(write_ptr, (png_voidp)fpout,  pngtest_write_data, 
    841 #    if defined(PNG_WRITE_FLUSH_SUPPORTED) 
     850#    ifdef PNG_WRITE_FLUSH_SUPPORTED 
    842851      pngtest_flush); 
    843852#    else 
     
    861870   } 
    862871 
    863 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     872#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    864873   { 
    865874      int i; 
     
    869878   } 
    870879#endif 
    871 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 
     880#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 
    872881   zero_samples = 0; 
    873882   png_set_write_user_transform_fn(write_ptr, count_zero_samples); 
    874883#endif 
    875884 
    876 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) 
     885#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 
    877886#  ifndef PNG_HANDLE_CHUNK_ALWAYS 
    878887#    define PNG_HANDLE_CHUNK_ALWAYS       3 
     
    881890      png_bytep_NULL, 0); 
    882891#endif 
    883 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) 
     892#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 
    884893#  ifndef PNG_HANDLE_CHUNK_IF_SAFE 
    885894#    define PNG_HANDLE_CHUNK_IF_SAFE      2 
     
    900909      { 
    901910         png_set_IHDR(write_ptr, write_info_ptr, width, height, bit_depth, 
    902 #if defined(PNG_WRITE_INTERLACING_SUPPORTED) 
     911#ifdef PNG_WRITE_INTERLACING_SUPPORTED 
    903912            color_type, interlace_type, compression_type, filter_type); 
    904913#else 
     
    907916      } 
    908917   } 
    909 #if defined(PNG_FIXED_POINT_SUPPORTED) 
    910 #if defined(PNG_cHRM_SUPPORTED) 
     918#ifdef PNG_FIXED_POINT_SUPPORTED 
     919#ifdef PNG_cHRM_SUPPORTED 
    911920   { 
    912921      png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x, 
     
    920929   } 
    921930#endif 
    922 #if defined(PNG_gAMA_SUPPORTED) 
     931#ifdef PNG_gAMA_SUPPORTED 
    923932   { 
    924933      png_fixed_point gamma; 
     
    929938#endif 
    930939#else /* Use floating point versions */ 
    931 #if defined(PNG_FLOATING_POINT_SUPPORTED) 
    932 #if defined(PNG_cHRM_SUPPORTED) 
     940#ifdef PNG_FLOATING_POINT_SUPPORTED 
     941#ifdef PNG_cHRM_SUPPORTED 
    933942   { 
    934943      double white_x, white_y, red_x, red_y, green_x, green_y, blue_x, 
     
    942951   } 
    943952#endif 
    944 #if defined(PNG_gAMA_SUPPORTED) 
     953#ifdef PNG_gAMA_SUPPORTED 
    945954   { 
    946955      double gamma; 
     
    952961#endif /* Floating point */ 
    953962#endif /* Fixed point */ 
    954 #if defined(PNG_iCCP_SUPPORTED) 
     963#ifdef PNG_iCCP_SUPPORTED 
    955964   { 
    956965      png_charp name; 
     
    967976   } 
    968977#endif 
    969 #if defined(PNG_sRGB_SUPPORTED) 
     978#ifdef PNG_sRGB_SUPPORTED 
    970979   { 
    971980      int intent; 
     
    982991         png_set_PLTE(write_ptr, write_info_ptr, palette, num_palette); 
    983992   } 
    984 #if defined(PNG_bKGD_SUPPORTED) 
     993#ifdef PNG_bKGD_SUPPORTED 
    985994   { 
    986995      png_color_16p background; 
     
    9921001   } 
    9931002#endif 
    994 #if defined(PNG_hIST_SUPPORTED) 
     1003#ifdef PNG_hIST_SUPPORTED 
    9951004   { 
    9961005      png_uint_16p hist; 
     
    10001009   } 
    10011010#endif 
    1002 #if defined(PNG_oFFs_SUPPORTED) 
     1011#ifdef PNG_oFFs_SUPPORTED 
    10031012   { 
    10041013      png_int_32 offset_x, offset_y; 
     
    10121021   } 
    10131022#endif 
    1014 #if defined(PNG_pCAL_SUPPORTED) 
     1023#ifdef PNG_pCAL_SUPPORTED 
    10151024   { 
    10161025      png_charp purpose, units; 
     
    10271036   } 
    10281037#endif 
    1029 #if defined(PNG_pHYs_SUPPORTED) 
     1038#ifdef PNG_pHYs_SUPPORTED 
    10301039   { 
    10311040      png_uint_32 res_x, res_y; 
     
    10361045   } 
    10371046#endif 
    1038 #if defined(PNG_sBIT_SUPPORTED) 
     1047#ifdef PNG_sBIT_SUPPORTED 
    10391048   { 
    10401049      png_color_8p sig_bit; 
     
    10441053   } 
    10451054#endif 
    1046 #if defined(PNG_sCAL_SUPPORTED) 
     1055#ifdef PNG_sCAL_SUPPORTED 
    10471056#ifdef PNG_FLOATING_POINT_SUPPORTED 
    10481057   { 
     
    10711080#endif 
    10721081#endif 
    1073 #if defined(PNG_TEXT_SUPPORTED) 
     1082#ifdef PNG_TEXT_SUPPORTED 
    10741083   { 
    10751084      png_textp text_ptr; 
     
    10831092   } 
    10841093#endif 
    1085 #if defined(PNG_tIME_SUPPORTED) 
     1094#ifdef PNG_tIME_SUPPORTED 
    10861095   { 
    10871096      png_timep mod_time; 
     
    10901099      { 
    10911100         png_set_tIME(write_ptr, write_info_ptr, mod_time); 
    1092 #if defined(PNG_TIME_RFC1123_SUPPORTED) 
     1101#ifdef PNG_TIME_RFC1123_SUPPORTED 
    10931102         /* We have to use png_memcpy instead of "=" because the string 
    10941103          * pointed to by png_convert_to_rfc1123() gets free'ed before 
     
    11041113   } 
    11051114#endif 
    1106 #if defined(PNG_tRNS_SUPPORTED) 
     1115#ifdef PNG_tRNS_SUPPORTED 
    11071116   { 
    11081117      png_bytep trans; 
     
    11131122         &trans_values)) 
    11141123      { 
    1115          int sample_max = (1 << read_info_ptr->bit_depth); 
     1124         int sample_max = (1 << bit_depth); 
    11161125         /* libpng doesn't reject a tRNS chunk with out-of-range samples */ 
    1117          if (!((read_info_ptr->color_type == PNG_COLOR_TYPE_GRAY && 
     1126         if (!((color_type == PNG_COLOR_TYPE_GRAY && 
    11181127             (int)trans_values->gray > sample_max) || 
    1119              (read_info_ptr->color_type == PNG_COLOR_TYPE_RGB && 
     1128             (color_type == PNG_COLOR_TYPE_RGB && 
    11201129             ((int)trans_values->red > sample_max || 
    11211130             (int)trans_values->green > sample_max || 
     
    11261135   } 
    11271136#endif 
    1128 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) 
     1137#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 
    11291138   { 
    11301139      png_unknown_chunkp unknowns; 
     
    11551164   png_write_info(write_ptr, write_info_ptr); 
    11561165 
    1157 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 
     1166#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 
    11581167   if (user_chunk_data[0] != 0) 
    11591168   { 
     
    12491258   } 
    12501259 
    1251 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) 
     1260#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 
    12521261   png_free_data(read_ptr, read_info_ptr, PNG_FREE_UNKN, -1); 
    12531262#endif 
    1254 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) 
     1263#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 
    12551264   png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1); 
    12561265#endif 
     
    12591268 
    12601269   png_read_end(read_ptr, end_info_ptr); 
    1261 #if defined(PNG_TEXT_SUPPORTED) 
     1270#ifdef PNG_TEXT_SUPPORTED 
    12621271   { 
    12631272      png_textp text_ptr; 
     
    12711280   } 
    12721281#endif 
    1273 #if defined(PNG_tIME_SUPPORTED) 
     1282#ifdef PNG_tIME_SUPPORTED 
    12741283   { 
    12751284      png_timep mod_time; 
     
    12781287      { 
    12791288         png_set_tIME(write_ptr, write_end_info_ptr, mod_time); 
    1280 #if defined(PNG_TIME_RFC1123_SUPPORTED) 
     1289#ifdef PNG_TIME_RFC1123_SUPPORTED 
    12811290         /* We have to use png_memcpy instead of "=" because the string 
    12821291            pointed to by png_convert_to_rfc1123() gets free'ed before 
     
    12911300   } 
    12921301#endif 
    1293 #if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) 
     1302#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 
    12941303   { 
    12951304      png_unknown_chunkp unknowns; 
     
    13471356 
    13481357   png_debug(0, "Opening files for comparison"); 
    1349 #if defined(_WIN32_WCE) 
     1358#ifdef _WIN32_WCE 
    13501359   MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH); 
    13511360   if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) 
     
    13581367   } 
    13591368 
    1360 #if defined(_WIN32_WCE) 
     1369#ifdef _WIN32_WCE 
    13611370   MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH); 
    13621371   if ((fpout = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) 
     
    15281537      for (i=2; i<argc; ++i) 
    15291538      { 
    1530 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     1539#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    15311540         int k; 
    15321541#endif 
     
    15361545         if (kerror == 0) 
    15371546         { 
    1538 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 
     1547#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 
    15391548            fprintf(STDERR, "\n PASS (%lu zero samples)\n", 
    15401549               (unsigned long)zero_samples); 
     
    15421551            fprintf(STDERR, " PASS\n"); 
    15431552#endif 
    1544 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     1553#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    15451554            for (k = 0; k<256; k++) 
    15461555               if (filters_used[k]) 
     
    15481557                     k, (unsigned long)filters_used[k]); 
    15491558#endif 
    1550 #if defined(PNG_TIME_RFC1123_SUPPORTED) 
     1559#ifdef PNG_TIME_RFC1123_SUPPORTED 
    15511560         if (tIME_chunk_present != 0) 
    15521561            fprintf(STDERR, " tIME = %s\n", tIME_string); 
     
    16081617            if (verbose == 1 || i == 2) 
    16091618            { 
    1610 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     1619#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    16111620                int k; 
    16121621#endif 
    1613 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 
     1622#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 
    16141623                fprintf(STDERR, "\n PASS (%lu zero samples)\n", 
    16151624                   (unsigned long)zero_samples); 
     
    16171626                fprintf(STDERR, " PASS\n"); 
    16181627#endif 
    1619 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 
     1628#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 
    16201629                for (k = 0; k<256; k++) 
    16211630                   if (filters_used[k]) 
     
    16241633                         (unsigned long)filters_used[k]); 
    16251634#endif 
    1626 #if defined(PNG_TIME_RFC1123_SUPPORTED) 
     1635#ifdef PNG_TIME_RFC1123_SUPPORTED 
    16271636             if (tIME_chunk_present != 0) 
    16281637                fprintf(STDERR, " tIME = %s\n", tIME_string); 
     
    16901699 
    16911700/* Generate a compiler error if there is an old png.h in the search path. */ 
    1692 typedef version_1_2_40 your_png_h_is_not_version_1_2_40; 
     1701typedef version_1_2_42 your_png_h_is_not_version_1_2_42;