~ubuntu-branches/ubuntu/gutsy/freeimage/gutsy

« back to all changes in this revision

Viewing changes to FreeImage/Source/LibPNG/CHANGES

  • Committer: Bazaar Package Importer
  • Author(s): Federico Di Gregorio
  • Date: 2007-05-07 15:35:21 UTC
  • Revision ID: james.westby@ubuntu.com-20070507153521-m4lx765bzxxug9qf
Tags: upstream-3.9.3
ImportĀ upstreamĀ versionĀ 3.9.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
CHANGES - changes for libpng
 
3
 
 
4
version 0.2
 
5
  added reader into png.h
 
6
  fixed small problems in stub file
 
7
 
 
8
version 0.3
 
9
  added pull reader
 
10
  split up pngwrite.c to several files
 
11
  added pnglib.txt
 
12
  added example.c
 
13
  cleaned up writer, adding a few new transformations
 
14
  fixed some bugs in writer
 
15
  interfaced with zlib 0.5
 
16
  added K&R support
 
17
  added check for 64 KB blocks for 16 bit machines
 
18
 
 
19
version 0.4
 
20
  cleaned up code and commented code
 
21
  simplified time handling into png_time
 
22
  created png_color_16 and png_color_8 to handle color needs
 
23
  cleaned up color type defines
 
24
  fixed various bugs
 
25
  made various names more consistent
 
26
  interfaced with zlib 0.71
 
27
  cleaned up zTXt reader and writer (using zlib's Reset functions)
 
28
  split transformations into pngrtran.c and pngwtran.c
 
29
 
 
30
version 0.5
 
31
  interfaced with zlib 0.8
 
32
  fixed many reading and writing bugs
 
33
  saved using 3 spaces instead of tabs
 
34
 
 
35
version 0.6
 
36
  added png_large_malloc() and png_large_free()
 
37
  added png_size_t
 
38
  cleaned up some compiler warnings
 
39
  added png_start_read_image()
 
40
 
 
41
version 0.7
 
42
  cleaned up lots of bugs
 
43
  finished dithering and other stuff
 
44
  added test program
 
45
  changed name from pnglib to libpng
 
46
 
 
47
version 0.71 [June, 1995]
 
48
  changed pngtest.png for zlib 0.93
 
49
  fixed error in libpng.txt and example.c
 
50
 
 
51
version 0.8
 
52
  cleaned up some bugs
 
53
  added png_set_filler()
 
54
  split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
 
55
  added #define's to remove unwanted code
 
56
  moved png_info_init() to png.c
 
57
  added old_size into png_realloc()
 
58
  added functions to manually set filtering and compression info
 
59
  changed compression parameters based on image type
 
60
  optimized filter selection code
 
61
  added version info
 
62
  changed external functions passing floats to doubles (k&r problems?)
 
63
  put all the configurable stuff in pngconf.h
 
64
  enabled png_set_shift to work with paletted images on read
 
65
  added png_read_update_info() - updates info structure with
 
66
     transformations
 
67
 
 
68
version 0.81 [August, 1995]
 
69
  incorporated Tim Wegner's medium model code (thanks, Tim)
 
70
 
 
71
version 0.82 [September, 1995]
 
72
  [unspecified changes]
 
73
 
 
74
version 0.85 [December, 1995]
 
75
  added more medium model code (almost everything's a far)
 
76
  added i/o, error, and memory callback functions
 
77
  fixed some bugs (16 bit, 4 bit interlaced, etc.)
 
78
  added first run progressive reader (barely tested)
 
79
 
 
80
version 0.86 [January, 1996]
 
81
  fixed bugs
 
82
  improved documentation
 
83
 
 
84
version 0.87 [January, 1996]
 
85
  fixed medium model bugs
 
86
  fixed other bugs introduced in 0.85 and 0.86
 
87
  added some minor documentation
 
88
 
 
89
version 0.88 [January, 1996]
 
90
  fixed progressive bugs
 
91
  replaced tabs with spaces
 
92
  cleaned up documentation
 
93
  added callbacks for read/write and warning/error functions
 
94
 
 
95
version 0.89 [July, 1996]
 
96
  added new initialization API to make libpng work better with shared libs
 
97
     we now have png_create_read_struct(), png_create_write_struct(),
 
98
     png_create_info_struct(), png_destroy_read_struct(), and
 
99
     png_destroy_write_struct() instead of the separate calls to
 
100
     malloc and png_read_init(), png_info_init(), and png_write_init()
 
101
  changed warning/error callback functions to fix bug - this means you
 
102
     should use the new initialization API if you were using the old
 
103
     png_set_message_fn() calls, and that the old API no longer exists
 
104
     so that people are aware that they need to change their code
 
105
  changed filter selection API to allow selection of multiple filters
 
106
     since it didn't work in previous versions of libpng anyways
 
107
  optimized filter selection code
 
108
  fixed png_set_background() to allow using an arbitrary RGB color for
 
109
     paletted images
 
110
  fixed gamma and background correction for paletted images, so
 
111
     png_correct_palette is not needed unless you are correcting an
 
112
     external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
 
113
     in pngconf.h) - if nobody uses this, it may disappear in the future.
 
114
  fixed bug with Borland 64K memory allocation (Alexander Lehmann)
 
115
  fixed bug in interlace handling (Smarasderagd, I think)
 
116
  added more error checking for writing and image to reduce invalid files
 
117
  separated read and write functions so that they won't both be linked
 
118
     into a binary when only reading or writing functionality is used
 
119
  new pngtest image also has interlacing and zTXt
 
120
  updated documentation to reflect new API
 
121
 
 
122
version 0.90 [January, 1997]
 
123
  made CRC errors/warnings on critical and ancillary chunks configurable
 
124
  libpng will use the zlib CRC routines by (compile-time) default
 
125
  changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
 
126
  added external C++ wrapper statements to png.h (Gilles Dauphin)
 
127
  allow PNG file to be read when some or all of file signature has already
 
128
     been read from the beginning of the stream.  ****This affects the size
 
129
     of info_struct and invalidates all programs that use a shared libpng****
 
130
  fixed png_filler() declarations
 
131
  fixed? background color conversions
 
132
  fixed order of error function pointers to match documentation
 
133
  current chunk name is now available in png_struct to reduce the number
 
134
     of nearly identical error messages (will simplify multi-lingual
 
135
     support when available)
 
136
  try to get ready for unknown-chunk callback functions:
 
137
     - previously read critical chunks are flagged, so the chunk handling
 
138
       routines can determine if the chunk is in the right place
 
139
     - all chunk handling routines have the same prototypes, so we will
 
140
       be able to handle all chunks via a callback mechanism
 
141
  try to fix Linux "setjmp" buffer size problems
 
142
  removed png_large_malloc, png_large_free, and png_realloc functions.
 
143
 
 
144
version 0.95 [March, 1997]
 
145
  fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
 
146
  fixed bug in PNG file signature compares when start != 0
 
147
  changed parameter type of png_set_filler(...filler...) from png_byte
 
148
     to png_uint_32
 
149
  added test for MACOS to ensure that both math.h and fp.h are not #included
 
150
  added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
 
151
  added "packswap" transformation, which changes the endianness of
 
152
     packed-pixel bytes (Kevin Bracey)
 
153
  added "strip_alpha" transformation, which removes the alpha channel of
 
154
     input images without using it (not necessarily a good idea)
 
155
  added "swap_alpha" transformation, which puts the alpha channel in front
 
156
     of the color bytes instead of after
 
157
  removed all implicit variable tests which assume NULL == 0 (I think)
 
158
  changed several variables to "png_size_t" to show 16/32-bit limitations
 
159
  added new pCAL chunk read/write support
 
160
  added experimental filter selection weighting (Greg Roelofs)
 
161
  removed old png_set_rgbx() and png_set_xrgb() functions that have been
 
162
     obsolete for about 2 years now (use png_set_filler() instead)
 
163
  added macros to read 16- and 32-bit ints directly from buffer, to be
 
164
     used only on those systems that support it (namely PowerPC and 680x0)
 
165
     With some testing, this may become the default for MACOS/PPC systems.
 
166
  only calculate CRC on data if we are going to use it
 
167
  added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
 
168
  added macros for simple libpng debugging output selectable at compile time
 
169
  removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
 
170
  more description of info_struct in libpng.txt and png.h
 
171
  more instructions in example.c
 
172
  more chunk types tested in pngtest.c
 
173
  renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
 
174
     png_set_<chunk>.  We now have corresponding png_get_<chunk>
 
175
     functions in pngget.c to get information in info_ptr.  This isolates
 
176
     the application from the internal organization of png_info_struct
 
177
     (good for shared library implementations).
 
178
 
 
179
version 0.96 [May, 1997]
 
180
  fixed serious bug with < 8bpp images introduced in 0.95
 
181
  fixed 256-color transparency bug (Greg Roelofs)
 
182
  fixed up documentation (Greg Roelofs, Laszlo Nyul)
 
183
  fixed "error" in pngconf.h for Linux setjmp() behaviour
 
184
  fixed DOS medium model support (Tim Wegner)
 
185
  fixed png_check_keyword() for case with error in static string text
 
186
  added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
 
187
  added typecasts to quiet compiler errors
 
188
  added more debugging info
 
189
 
 
190
version 0.97 [January, 1998]
 
191
  removed PNG_USE_OWN_CRC capability
 
192
  relocated png_set_crc_action from pngrutil.c to pngrtran.c
 
193
  fixed typecasts of "new_key", etc. (Andreas Dilger)
 
194
  added RFC 1152 [sic] date support
 
195
  fixed bug in gamma handling of 4-bit grayscale
 
196
  added 2-bit grayscale gamma handling (Glenn R-P)
 
197
  added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
 
198
  minor corrections in libpng.txt
 
199
  added simple sRGB support (Glenn R-P)
 
200
  easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
 
201
     all configurable options can be selected from command-line instead
 
202
     of having to edit pngconf.h (Glenn R-P)
 
203
  fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
 
204
  added more conditions for png_do_background, to avoid changing
 
205
     black pixels to background when a background is supplied and
 
206
     no pixels are transparent
 
207
  repaired PNG_NO_STDIO behaviour
 
208
  tested NODIV support and made it default behaviour (Greg Roelofs)
 
209
  added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
 
210
  regularized version numbering scheme and bumped shared-library major
 
211
     version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
 
212
 
 
213
version 0.98 [January, 1998]
 
214
  cleaned up some typos in libpng.txt and in code documentation
 
215
  fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
 
216
  cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
 
217
  changed recommendation about file_gamma for PC images to .51 from .45,
 
218
     in example.c and libpng.txt, added comments to distinguish between
 
219
     screen_gamma, viewing_gamma, and display_gamma.
 
220
  changed all references to RFC1152 to read RFC1123 and changed the
 
221
     PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
 
222
  added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
 
223
  changed srgb_intent from png_byte to int to avoid compiler bugs
 
224
 
 
225
version 0.99 [January 30, 1998]
 
226
  free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
 
227
  fixed a longstanding "packswap" bug in pngtrans.c
 
228
  fixed some inconsistencies in pngconf.h that prevented compiling with
 
229
     PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
 
230
  fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
 
231
  changed recommendation about file_gamma for PC images to .50 from .51 in
 
232
     example.c and libpng.txt, and changed file_gamma for sRGB images to .45
 
233
  added a number of functions to access information from the png structure
 
234
     png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
 
235
  added TARGET_MACOS similar to zlib-1.0.8
 
236
  define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
 
237
  added type casting to all png_malloc() function calls
 
238
version 0.99a [January 31, 1998]
 
239
  Added type casts and parentheses to all returns that return a value.(Tim W.)
 
240
version 0.99b [February 4, 1998]
 
241
  Added type cast png_uint_32 on malloc function calls where needed.
 
242
  Changed type of num_hist from png_uint_32 to int (same as num_palette).
 
243
  Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
 
244
  Renamed makefile.elf to makefile.lnx.
 
245
version 0.99c [February 7, 1998]
 
246
  More type casting.  Removed erroneous overflow test in pngmem.c.
 
247
  Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes.
 
248
  Added UNIX manual pages libpng.3 (incorporating libpng.txt) and  png.5.
 
249
version 0.99d [February 11, 1998]
 
250
  Renamed "far_to_near()" "png_far_to_near()"
 
251
  Revised libpng.3
 
252
  Version 99c "buffered" operations didn't work as intended.  Replaced them
 
253
    with png_memcpy_check() and png_memset_check().
 
254
  Added many "if (png_ptr == NULL) return" to quell compiler warnings about
 
255
    unused png_ptr, mostly in pngget.c and pngset.c.
 
256
  Check for overlength tRNS chunk present when indexed-color PLTE is read.
 
257
  Cleaned up spelling errors in libpng.3/libpng.txt
 
258
  Corrected a problem with png_get_tRNS() which returned undefined trans array
 
259
version 0.99e [February 28, 1998]
 
260
  Corrected png_get_tRNS() again.
 
261
  Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
 
262
  Touched up example.c to make more of it compileable, although the entire
 
263
    file still can't be compiled (Willem van Schaik)
 
264
  Fixed a bug in png_do_shift() (Bryan Tsai)
 
265
  Added a space in png.h prototype for png_write_chunk_start()
 
266
  Replaced pngtest.png with one created with zlib 1.1.1
 
267
  Changed pngtest to report PASS even when file size is different (Jean-loup G.)
 
268
  Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
 
269
version 0.99f [March 5, 1998]
 
270
  Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
 
271
  Moved makefiles into a "scripts" directory, and added INSTALL instruction file
 
272
  Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
 
273
  Added pointers to "note on libpng versions" in makefile.lnx and README
 
274
  Added row callback feature when reading and writing nonprogressive rows
 
275
     and added a test of this feature in pngtest.c
 
276
  Added user transform callbacks, with test of the feature in pngtest.c
 
277
version 0.99g [March 6, 1998, morning]
 
278
  Minor changes to pngtest.c to suppress compiler warnings.
 
279
  Removed "beta" language from documentation.
 
280
version 0.99h [March 6, 1998, evening]
 
281
  Minor changes to previous minor changes to pngtest.c
 
282
  Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
 
283
  and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
 
284
  Added user transform capability
 
285
 
 
286
version 1.00 [March 7, 1998]
 
287
  Changed several typedefs in pngrutil.c
 
288
  Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
 
289
  replaced "while(1)" with "for(;;)"
 
290
  added PNGARG() to prototypes in pngtest.c and removed some prototypes
 
291
  updated some of the makefiles (Tom Lane)
 
292
  changed some typedefs (s_start, etc.) in pngrutil.c
 
293
  fixed dimensions of "short_months" array in pngwrite.c
 
294
  Replaced ansi2knr.c with the one from jpeg-v6
 
295
 
 
296
version 1.0.0 [March 8, 1998]
 
297
  Changed name from 1.00 to 1.0.0 (Adam Costello)
 
298
  Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
 
299
version 1.0.0a [March 9, 1998]
 
300
  Fixed three bugs in pngrtran.c to make gamma+background handling consistent
 
301
  (Greg Roelofs)
 
302
  Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
 
303
  for major, minor, and bugfix releases.  This is 10001. (Adam Costello,
 
304
  Tom Lane)
 
305
  Make months range from 1-12 in png_convert_to_rfc1123
 
306
version 1.0.0b [March 13, 1998]
 
307
  Quieted compiler complaints about two empty "for" loops in pngrutil.c
 
308
  Minor changes to makefile.s2x
 
309
  Removed #ifdef/#endif around a png_free() in pngread.c
 
310
 
 
311
version 1.0.1 [March 14, 1998]
 
312
  Changed makefile.s2x to reduce security risk of using a relative pathname
 
313
  Fixed some typos in the documentation (Greg).
 
314
  Fixed a problem with value of "channels" returned by png_read_update_info()
 
315
version 1.0.1a [April 21, 1998]
 
316
  Optimized Paeth calculations by replacing abs() function calls with intrinsics
 
317
  plus other loop optimizations. Improves avg decoding speed by about 20%.
 
318
  Commented out i386istic "align" compiler flags in makefile.lnx.
 
319
  Reduced the default warning level in some makefiles, to make them consistent.
 
320
  Removed references to IJG and JPEG in the ansi2knr.c copyright statement.
 
321
  Fixed a bug in png_do_strip_filler with XXRRGGBB => RRGGBB transformation.
 
322
  Added grayscale and 16-bit capability to png_do_read_filler().
 
323
  Fixed a bug in pngset.c, introduced in version 0.99c, that sets rowbytes
 
324
    too large when writing an image with bit_depth < 8 (Bob Dellaca).
 
325
  Corrected some bugs in the experimental weighted filtering heuristics.
 
326
  Moved a misplaced pngrutil code block that truncates tRNS if it has more
 
327
    than num_palette entries -- test was done before num_palette was defined.
 
328
  Fixed a png_convert_to_rfc1123() bug that converts day 31 to 0 (Steve Eddins).
 
329
  Changed compiler flags in makefile.wat for better optimization (Pawel Mrochen).
 
330
version 1.0.1b [May 2, 1998]
 
331
  Relocated png_do_gray_to_rgb() within png_do_read_transformations() (Greg).
 
332
  Relocated the png_composite macros from pngrtran.c to png.h (Greg).
 
333
  Added makefile.sco (contributed by Mike Hopkirk).
 
334
  Fixed two bugs (missing definitions of "istop") introduced in libpng-1.0.1a.
 
335
  Fixed a bug in pngrtran.c that would set channels=5 under some circumstances.
 
336
  More work on the Paeth-filtering, achieving imperceptible speedup (A Kleinert).
 
337
  More work on loop optimization which may help when compiled with C++ compilers.
 
338
  Added warnings when people try to use transforms they've defined out.
 
339
  Collapsed 4 "i" and "c" loops into single "i" loops in pngrtran and pngwtran.
 
340
  Revised paragraph about png_set_expand() in libpng.txt and libpng.3 (Greg)
 
341
version 1.0.1c [May 11, 1998]
 
342
  Fixed a bug in pngrtran.c (introduced in libpng-1.0.1a) where the masks for
 
343
    filler bytes should have been 0xff instead of 0xf.
 
344
  Added max_pixel_depth=32 in pngrutil.c when using FILLER with palette images.
 
345
  Moved PNG_WRITE_WEIGHTED_FILTER_SUPPORTED and PNG_WRITE_FLUSH_SUPPORTED
 
346
    out of the PNG_WRITE_TRANSFORMS_NOT_SUPPORTED block of pngconf.h
 
347
  Added "PNG_NO_WRITE_TRANSFORMS" etc., as alternatives for *_NOT_SUPPORTED,
 
348
    for consistency, in pngconf.h
 
349
  Added individual "ifndef PNG_NO_[CAPABILITY]" in pngconf.h to make it easier
 
350
    to remove unwanted capabilities via the compile line
 
351
  Made some corrections to grammar (which, it's) in documentation (Greg).
 
352
  Corrected example.c, use of row_pointers in png_write_image().
 
353
version 1.0.1d [May 24, 1998]
 
354
  Corrected several statements that used side effects illegally in pngrutil.c
 
355
    and pngtrans.c, that were introduced in version 1.0.1b
 
356
  Revised png_read_rows() to avoid repeated if-testing for NULL (A Kleinert)
 
357
  More corrections to example.c, use of row_pointers in png_write_image()
 
358
    and png_read_rows().
 
359
  Added pngdll.mak and pngdef.pas to scripts directory, contributed by
 
360
    Bob Dellaca, to make a png32bd.dll with Borland C++ 4.5
 
361
  Fixed error in example.c with png_set_text: num_text is 3, not 2 (Guido V.)
 
362
  Changed several loops from count-down to count-up, for consistency.
 
363
version 1.0.1e [June 6, 1998]
 
364
  Revised libpng.txt and libpng.3 description of png_set_read|write_fn(), and
 
365
    added warnings when people try to set png_read_fn and png_write_fn in
 
366
    the same structure.
 
367
  Added a test such that png_do_gamma will be done when num_trans==0
 
368
    for truecolor images that have defined a background.  This corrects an
 
369
    error that was introduced in libpng-0.90 that can cause gamma processing
 
370
    to be skipped.
 
371
  Added tests in png.h to include "trans" and "trans_values" in structures
 
372
    when PNG_READ_BACKGROUND_SUPPORTED or PNG_READ_EXPAND_SUPPORTED is defined.
 
373
  Add png_free(png_ptr->time_buffer) in png_destroy_read_struct()
 
374
  Moved png_convert_to_rfc_1123() from pngwrite.c to png.c
 
375
  Added capability for user-provided malloc_fn() and free_fn() functions,
 
376
    and revised pngtest.c to demonstrate their use, replacing the
 
377
    PNGTEST_DEBUG_MEM feature.
 
378
  Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
 
379
 
 
380
version 1.0.2 [June 14, 1998]
 
381
  Fixed two bugs in makefile.bor .
 
382
version 1.0.2a [December 30, 1998]
 
383
  Replaced and extended code that was removed from png_set_filler() in 1.0.1a.
 
384
  Fixed a bug in png_do_filler() that made it fail to write filler bytes in
 
385
    the left-most pixel of each row (Kevin Bracey).
 
386
  Changed "static pngcharp tIME_string" to "static char tIME_string[30]"
 
387
    in pngtest.c (Duncan Simpson).
 
388
  Fixed a bug in pngtest.c that caused pngtest to try to write a tIME chunk
 
389
    even when no tIME chunk was present in the source file.
 
390
  Fixed a problem in pngrutil.c: gray_to_rgb didn't always work with 16-bit.
 
391
  Fixed a problem in png_read_push_finish_row(), which would not skip some
 
392
    passes that it should skip, for images that are less than 3 pixels high.
 
393
  Interchanged the order of calls to png_do_swap() and png_do_shift()
 
394
    in pngwtran.c (John Cromer).
 
395
  Added #ifdef PNG_DEBUG/#endif surrounding use of PNG_DEBUG in png.h .
 
396
  Changed "bad adaptive filter type" from error to warning in pngrutil.c .
 
397
  Fixed a documentation error about default filtering with 8-bit indexed-color.
 
398
  Separated the PNG_NO_STDIO macro into PNG_NO_STDIO and PNG_NO_CONSOLE_IO
 
399
    (L. Peter Deutsch).
 
400
  Added png_set_rgb_to_gray() and png_get_rgb_to_gray_status() functions.
 
401
  Added png_get_copyright() and png_get_header_version() functions.
 
402
  Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c
 
403
  Added information about debugging in libpng.txt and libpng.3 .
 
404
  Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and makefile.sco.
 
405
  Removed lines after Dynamic Dependencies" in makefile.aco .
 
406
  Revised makefile.dec to make a shared library (Jeremie Petit).
 
407
  Removed trailing blanks from all files.
 
408
version 1.0.2a [January 6, 1999]
 
409
  Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h
 
410
  Added "if" tests to silence complaints about unused png_ptr in png.h and png.c
 
411
  Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
 
412
  Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
 
413
    which is obsolete.
 
414
 
 
415
version 1.0.3 [January 14, 1999]
 
416
  Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
 
417
  Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
 
418
version 1.0.3a [August 12, 1999]
 
419
  Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
 
420
     if an attempt is made to read an interlaced image when it's not supported.
 
421
  Added check if png_ptr->trans is defined before freeing it in pngread.c
 
422
  Modified the Y2K statement to include versions back to version 0.71
 
423
  Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c
 
424
  Modified makefile.wat (added -zp8 flag, ".symbolic", changed some comments)
 
425
  Replaced leading blanks with tab characters in makefile.hux
 
426
  Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents.
 
427
  Changed (float)red and (float)green to (double)red, (double)green
 
428
     in png_set_rgb_to_gray() to avoid "promotion" problems in AIX.
 
429
  Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey).
 
430
  Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt).
 
431
  Updated documentation to refer to the PNG-1.2 specification.
 
432
  Removed ansi2knr.c and left pointers to the latest source for ansi2knr.c
 
433
    in makefile.knr, INSTALL, and README (L. Peter Deutsch)
 
434
  Fixed bugs in calculation of the length of rowbytes when adding alpha
 
435
    channels to 16-bit images, in pngrtran.c (Chris Nokleberg)
 
436
  Added function png_set_user_transform_info() to store user_transform_ptr,
 
437
    user_depth, and user_channels into the png_struct, and a function
 
438
    png_get_user_transform_ptr() to retrieve the pointer (Chris Nokleberg)
 
439
  Added function png_set_empty_plte_permitted() to make libpng useable
 
440
    in MNG applications.
 
441
  Corrected the typedef for png_free_ptr in png.h (Jesse Jones).
 
442
  Correct gamma with srgb is 45455 instead of 45000 in pngrutil.c, to be
 
443
    consistent with PNG-1.2, and allow variance of 500 before complaining.
 
444
  Added assembler code contributed by Intel in file pngvcrd.c and modified
 
445
    makefile.w32 to use it (Nirav Chhatrapati, INTEL Corporation, Gilles Vollant)
 
446
  Changed "ln -s -f" to "ln -f -s" in the makefiles to make Solaris happy.
 
447
  Added some aliases for png_set_expand() in pngrtran.c, namely
 
448
    png_set_expand_PLTE(), png_set_expand_depth(), and png_set_expand_tRNS()
 
449
    (Greg Roelofs, in "PNG: The Definitive Guide").
 
450
  Added makefile.beo for BEOS on X86, contributed by Sander Stok.
 
451
version 1.0.3b [August 26, 1999]
 
452
  Replaced 2147483647L several places with PNG_MAX_UINT macro, defined in png.h
 
453
  Changed leading blanks to tabs in all makefiles.
 
454
  Define PNG_USE_PNGVCRD in makefile.w32, to get MMX assembler code.
 
455
  Made alternate versions of  png_set_expand() in pngrtran.c, namely
 
456
    png_set_gray_1_2_4_to_8, png_set_palette_to_rgb, and png_set_tRNS_to_alpha
 
457
    (Greg Roelofs, in "PNG: The Definitive Guide").  Deleted the 1.0.3a aliases.
 
458
  Relocated start of 'extern "C"' block in png.h so it doesn't include pngconf.h
 
459
  Revised calculation of num_blocks in pngmem.c to avoid a potentially
 
460
    negative shift distance, whose results are undefined in the C language.
 
461
  Added a check in pngset.c to prevent writing multiple tIME chunks.
 
462
  Added a check in pngwrite.c to detect invalid small window_bits sizes.
 
463
version 1.0.3d [September 4, 1999]
 
464
  Fixed type casting of igamma in pngrutil.c
 
465
  Added new png_expand functions to scripts/pngdef.pas and pngos2.def
 
466
  Added a demo read_user_transform_fn that examines the row filters in pngtest.c
 
467
 
 
468
version 1.0.4 [September 24, 1999]
 
469
  Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
 
470
  Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
 
471
  Made several minor corrections to pngtest.c
 
472
  Renamed the makefiles with longer but more user friendly extensions.
 
473
  Copied the PNG copyright and license to a separate LICENSE file.
 
474
  Revised documentation, png.h, and example.c to remove reference to
 
475
    "viewing_gamma" which no longer appears in the PNG specification.
 
476
  Revised pngvcrd.c to use MMX code for interlacing only on the final pass.
 
477
  Updated pngvcrd.c to use the faster C filter algorithms from libpng-1.0.1a
 
478
  Split makefile.win32vc into two versions, makefile.vcawin32 (uses MMX
 
479
    assembler code) and makefile.vcwin32 (doesn't).
 
480
  Added a CPU timing report to pngtest.c (enabled by defining PNGTEST_TIMING)
 
481
  Added a copy of pngnow.png to the distribution.
 
482
version 1.0.4a [September 25, 1999]
 
483
  Increase max_pixel_depth in pngrutil.c if a user transform needs it.
 
484
  Changed several division operations to right-shifts in pngvcrd.c
 
485
version 1.0.4b [September 30, 1999]
 
486
  Added parentheses in line 3732 of pngvcrd.c
 
487
  Added a comment in makefile.linux warning about buggy -O3 in pgcc 2.95.1
 
488
version 1.0.4c [October 1, 1999]
 
489
  Added a "png_check_version" function in png.c and pngtest.c that will generate
 
490
    a helpful compiler error if an old png.h is found in the search path.
 
491
  Changed type of png_user_transform_depth|channels from int to png_byte.
 
492
version 1.0.4d [October 6, 1999]
 
493
  Changed 0.45 to 0.45455 in png_set_sRGB()
 
494
  Removed unused PLTE entries from pngnow.png
 
495
  Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
 
496
version 1.0.4e [October 10, 1999]
 
497
  Fixed sign error in pngvcrd.c (Greg Roelofs)
 
498
  Replaced some instances of memcpy with simple assignments in pngvcrd (GR-P)
 
499
version 1.0.4f [October 15, 1999]
 
500
  Surrounded example.c code with #if 0 .. #endif to prevent people from
 
501
    inadvertently trying to compile it.
 
502
  Changed png_get_header_version() from a function to a macro in png.h
 
503
  Added type casting mostly in pngrtran.c and pngwtran.c
 
504
  Removed some pointless "ptr = NULL" in pngmem.c
 
505
  Added a "contrib" directory containing the source code from Greg's book.
 
506
 
 
507
version 1.0.5 [October 15, 1999]
 
508
  Minor editing of the INSTALL and README files.
 
509
version 1.0.5a [October 23, 1999]
 
510
  Added contrib/pngsuite and contrib/pngminus (Willem van Schaik)
 
511
  Fixed a typo in the png_set_sRGB() function call in example.c (Jan Nijtmans)
 
512
  Further optimization and bugfix of pngvcrd.c
 
513
  Revised pngset.c so that it does not allocate or free memory in the user's
 
514
    text_ptr structure.  Instead, it makes its own copy.
 
515
  Created separate write_end_info_struct in pngtest.c for a more severe test.
 
516
  Added code in pngwrite.c to free info_ptr->text[i].key to stop a memory leak.
 
517
version 1.0.5b [November 23, 1999]
 
518
  Moved PNG_FLAG_HAVE_CHUNK_HEADER, PNG_FLAG_BACKGROUND_IS_GRAY and
 
519
    PNG_FLAG_WROTE_tIME from flags to mode.
 
520
  Added png_write_info_before_PLTE() function.
 
521
  Fixed some typecasting in contrib/gregbook/*.c
 
522
  Updated scripts/makevms.com and added makevms.com to contrib/gregbook
 
523
    and contrib/pngminus (Martin Zinser)
 
524
version 1.0.5c [November 26, 1999]
 
525
  Moved png_get_header_version from png.h to png.c, to accommodate ansi2knr.
 
526
  Removed all global arrays (according to PNG_NO_GLOBAL_ARRAYS macro), to
 
527
    accommodate making DLL's: Moved usr_png_ver from global variable to function
 
528
    png_get_header_ver() in png.c.  Moved png_sig to png_sig_bytes in png.c and
 
529
    eliminated use of png_sig in pngwutil.c.  Moved the various png_CHNK arrays
 
530
    into pngtypes.h.  Eliminated use of global png_pass arrays.  Declared the
 
531
    png_CHNK and png_pass arrays to be "const".  Made the global arrays
 
532
    available to applications (although none are used in libpng itself) when
 
533
    PNG_NO_GLOBAL_ARRAYS is not defined or when PNG_GLOBAL_ARRAYS is defined.
 
534
  Removed some extraneous "-I" from contrib/pngminus/makefile.std
 
535
  Changed the PNG_sRGB_INTENT macros in png.h to be consistent with PNG-1.2.
 
536
  Change PNG_SRGB_INTENT to PNG_sRGB_INTENT in libpng.txt and libpng.3
 
537
version 1.0.5d [November 29, 1999]
 
538
  Add type cast (png_const_charp) two places in png.c
 
539
  Eliminated pngtypes.h; use macros instead to declare PNG_CHNK arrays.
 
540
  Renamed "PNG_GLOBAL_ARRAYS" to "PNG_USE_GLOBAL_ARRAYS" and made available
 
541
    to applications a macro "PNG_USE_LOCAL_ARRAYS".
 
542
  #ifdef out all the new declarations when PNG_USE_GLOBAL_ARRAYS is defined.
 
543
  Added PNG_EXPORT_VAR macro to accommodate making DLL's.
 
544
version 1.0.5e [November 30, 1999]
 
545
  Added iCCP, iTXt, and sPLT support; added "lang" member to the png_text
 
546
    structure; refactored the inflate/deflate support to make adding new chunks
 
547
    with trailing compressed parts easier in the future, and added new functions
 
548
    png_free_iCCP, png_free_pCAL, png_free_sPLT, png_free_text, png_get_iCCP,
 
549
    png_get_spalettes, png_set_iCCP, png_set_spalettes (Eric S. Raymond).
 
550
  NOTE: Applications that write text chunks MUST define png_text->lang
 
551
    before calling png_set_text(). It must be set to NULL if you want to
 
552
    write tEXt or zTXt chunks.  If you want your application to be able to
 
553
    run with older versions of libpng, use
 
554
 
 
555
      #ifdef PNG_iTXt_SUPPORTED
 
556
         png_text[i].lang = NULL;
 
557
      #endif
 
558
 
 
559
  Changed png_get_oFFs() and png_set_oFFs() to use signed rather than unsigned
 
560
    offsets (Eric S. Raymond).
 
561
  Combined PNG_READ_cHNK_SUPPORTED and PNG_WRITE_cHNK_SUPPORTED macros into
 
562
    PNG_cHNK_SUPPORTED and combined the three types of PNG_text_SUPPORTED
 
563
    macros, leaving the separate macros also available.
 
564
  Removed comments on #endifs at the end of many short, non-nested #if-blocks.
 
565
version 1.0.5f [December 6, 1999]
 
566
  Changed makefile.solaris to issue a warning about potential problems when
 
567
    the ucb "ld" is in the path ahead of the ccs "ld".
 
568
  Removed "- [date]" from the "synopsis" line in libpng.3 and libpngpf.3.
 
569
  Added sCAL chunk support (Eric S. Raymond).
 
570
version 1.0.5g [December 7, 1999]
 
571
  Fixed "png_free_spallettes" typo in png.h
 
572
  Added code to handle new chunks in pngpread.c
 
573
  Moved PNG_CHNK string macro definitions outside of PNG_NO_EXTERN block
 
574
  Added "translated_key" to png_text structure and png_write_iTXt().
 
575
  Added code in pngwrite.c to work around a newly discovered zlib bug.
 
576
version 1.0.5h [December 10, 1999]
 
577
  NOTE: regarding the note for version 1.0.5e, the following must also
 
578
    be included in your code:
 
579
        png_text[i].translated_key = NULL;
 
580
  Unknown chunk handling is now supported.
 
581
  Option to eliminate all floating point support was added.  Some new
 
582
    fixed-point functions such as png_set_gAMA_fixed() were added.
 
583
  Expanded tabs and removed trailing blanks in source files.
 
584
version 1.0.5i [December 13, 1999]
 
585
  Added some type casts to silence compiler warnings.
 
586
  Renamed "png_free_spalette" to "png_free_spalettes" for consistency.
 
587
  Removed leading blanks from a #define in pngvcrd.c
 
588
  Added some parameters to the new png_set_keep_unknown_chunks() function.
 
589
  Added a test for up->location != 0 in the first instance of writing
 
590
    unknown chunks in pngwrite.c
 
591
  Changed "num" to "i" in png_free_spalettes() and png_free_unknowns() to
 
592
    prevent recursion.
 
593
  Added png_free_hIST() function.
 
594
  Various patches to fix bugs in the sCAL and integer cHRM processing,
 
595
    and to add some convenience macros for use with sCAL.
 
596
version 1.0.5j [December 21, 1999]
 
597
  Changed "unit" parameter of png_write_sCAL from png_byte to int, to work
 
598
    around buggy compilers.
 
599
  Added new type "png_fixed_point" for integers that hold float*100000 values
 
600
  Restored backward compatibility of tEXt/zTXt chunk processing:
 
601
    Restored the first four members of png_text to the same order as v.1.0.5d.
 
602
    Added members "lang_key" and "itxt_length" to png_text struct.  Set
 
603
    text_length=0 when "text" contains iTXt data.  Use the "compression"
 
604
    member to distinguish among tEXt/zTXt/iTXt types.  Added
 
605
    PNG_ITXT_COMPRESSION_NONE (1) and PNG_ITXT_COMPRESSION_zTXt(2) macros.
 
606
    The "Note" above, about backward incompatibility of libpng-1.0.5e, no
 
607
    longer applies.
 
608
  Fixed png_read|write_iTXt() to read|write parameters in the right order,
 
609
    and to write the iTXt chunk after IDAT if it appears in the end_ptr.
 
610
  Added pnggccrd.c, version of pngvcrd.c Intel assembler for gcc (Greg Roelofs)
 
611
  Reversed the order of trying to write floating-point and fixed-point gAMA.
 
612
version 1.0.5k [December 27, 1999]
 
613
  Added many parentheses, e.g., "if (a && b & c)" becomes "if (a && (b & c))"
 
614
  Added png_handle_as_unknown() function (Glenn)
 
615
  Added png_free_chunk_list() function and chunk_list and num_chunk_list members
 
616
    of png_ptr.
 
617
  Eliminated erroneous warnings about multiple sPLT chunks and sPLT-after-PLTE.
 
618
  Fixed a libpng-1.0.5h bug in pngrutil.c that was issuing erroneous warnings
 
619
    about ignoring incorrect gAMA with sRGB (gAMA was in fact not ignored)
 
620
  Added png_free_tRNS(); png_set_tRNS() now malloc's its own trans array (ESR).
 
621
  Define png_get_int_32 when oFFs chunk is supported as well as when pCAL is.
 
622
  Changed type of proflen from png_int_32 to png_uint_32 in png_get_iCCP().
 
623
version 1.0.5l [January 1, 2000]
 
624
  Added functions png_set_read_user_chunk_fn() and png_get_user_chunk_ptr()
 
625
    for setting a callback function to handle unknown chunks and for
 
626
    retrieving the associated user pointer (Glenn).
 
627
version 1.0.5m [January 7, 2000]
 
628
  Added high-level functions png_read_png(), png_write_png(), png_free_pixels().
 
629
version 1.0.5n [January 9, 2000]
 
630
  Added png_free_PLTE() function, and modified png_set_PLTE() to malloc its
 
631
    own memory for info_ptr->palette.  This makes it safe for the calling
 
632
    application to free its copy of the palette any time after it calls
 
633
    png_set_PLTE().
 
634
version 1.0.5o [January 20, 2000]
 
635
  Cosmetic changes only (removed some trailing blanks and TABs)
 
636
version 1.0.5p [January 31, 2000]
 
637
  Renamed pngdll.mak to makefile.bd32
 
638
  Cosmetic changes in pngtest.c
 
639
version 1.0.5q [February 5, 2000]
 
640
  Relocated the makefile.solaris warning about PATH problems.
 
641
  Fixed pngvcrd.c bug by pushing/popping registers in mmxsupport (Bruce Oberg)
 
642
  Revised makefile.gcmmx
 
643
  Added PNG_SETJMP_SUPPORTED, PNG_SETJMP_NOT_SUPPORTED, and PNG_ABORT() macros
 
644
version 1.0.5r [February 7, 2000]
 
645
  Removed superfluous prototype for png_get_itxt from png.h
 
646
  Fixed a bug in pngrtran.c that improperly expanded the background color.
 
647
  Return *num_text=0 from png_get_text() when appropriate, and fix documentation
 
648
    of png_get_text() in libpng.txt/libpng.3.
 
649
version 1.0.5s [February 18, 2000]
 
650
  Added "png_jmp_env()" macro to pngconf.h, to help people migrate to the
 
651
    new error handler that's planned for the next libpng release, and changed
 
652
    example.c, pngtest.c, and contrib programs to use this macro.
 
653
  Revised some of the DLL-export macros in pngconf.h (Greg Roelofs)
 
654
  Fixed a bug in png_read_png() that caused it to fail to expand some images
 
655
    that it should have expanded.
 
656
  Fixed some mistakes in the unused and undocumented INCH_CONVERSIONS functions
 
657
    in pngget.c
 
658
  Changed the allocation of palette, history, and trans arrays back to
 
659
    the version 1.0.5 method (linking instead of copying) which restores
 
660
    backward compatibility with version 1.0.5.  Added some remarks about
 
661
    that in example.c.  Added "free_me" member to info_ptr and png_ptr
 
662
    and added png_free_data() function.
 
663
  Updated makefile.linux and makefile.gccmmx to make directories conditionally.
 
664
  Made cosmetic changes to pngasmrd.h
 
665
  Added png_set_rows() and png_get_rows(), for use with png_read|write_png().
 
666
  Modified png_read_png() to allocate info_ptr->row_pointers only if it
 
667
    hasn't already been allocated.
 
668
version 1.0.5t [March 4, 2000]
 
669
  Changed png_jmp_env() migration aiding macro to png_jmpbuf().
 
670
  Fixed "interlace" typo (should be "interlaced") in contrib/gregbook/read2-x.c
 
671
  Fixed bug with use of PNG_BEFORE_IHDR bit in png_ptr->mode, introduced when
 
672
    PNG_FLAG_HAVE_CHUNK_HEADER was moved into png_ptr->mode in version 1.0.5b
 
673
  Files in contrib/gregbook were revised to use png_jmpbuf() and to select
 
674
    a 24-bit visual if one is available, and to allow abbreviated options.
 
675
  Files in contrib/pngminus were revised to use the png_jmpbuf() macro.
 
676
  Removed spaces in makefile.linux and makefile.gcmmx, introduced in 1.0.5s
 
677
version 1.0.5u [March 5, 2000]
 
678
  Simplified the code that detects old png.h in png.c and pngtest.c
 
679
  Renamed png_spalette (_p, _pp) to png_sPLT_t (_tp, _tpp)
 
680
  Increased precision of rgb_to_gray calculations from 8 to 15 bits and
 
681
    added png_set_rgb_to_gray_fixed() function.
 
682
  Added makefile.bc32 (32-bit Borland C++, C mode)
 
683
version 1.0.5v [March 11, 2000]
 
684
  Added some parentheses to the png_jmpbuf macro definition.
 
685
  Updated references to the zlib home page, which has moved to freesoftware.com.
 
686
  Corrected bugs in documentation regarding png_read_row() and png_write_row().
 
687
  Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt.
 
688
  Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
 
689
    revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
 
690
 
 
691
version 1.0.6 [March 20, 2000]
 
692
  Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
 
693
  Added makefile.sggcc (SGI IRIX with gcc)
 
694
version 1.0.6d [April 7, 2000]
 
695
  Changed sprintf() to strcpy() in png_write_sCAL_s() to work without STDIO
 
696
  Added data_length parameter to png_decompress_chunk() function
 
697
  Revised documentation to remove reference to abandoned png_free_chnk functions
 
698
  Fixed an error in png_rgb_to_gray_fixed()
 
699
  Revised example.c, usage of png_destroy_write_struct().
 
700
  Renamed makefile.ibmvac3 to makefile.ibmc, added libpng.icc IBM project file
 
701
  Added a check for info_ptr->free_me&PNG_FREE_TEXT when freeing text in png.c
 
702
  Simplify png_sig_bytes() function to remove use of non-ISO-C strdup().
 
703
version 1.0.6e [April 9, 2000]
 
704
  Added png_data_freer() function.
 
705
  In the code that checks for over-length tRNS chunks, added check of
 
706
    info_ptr->num_trans as well as png_ptr->num_trans (Matthias Benckmann)
 
707
  Minor revisions of libpng.txt/libpng.3.
 
708
  Check for existing data and free it if the free_me flag is set, in png_set_*()
 
709
    and png_handle_*().
 
710
  Only define PNG_WEIGHTED_FILTERS_SUPPORTED when PNG_FLOATING_POINT_SUPPORTED
 
711
    is defined.
 
712
  Changed several instances of PNG_NO_CONSOLE_ID to PNG_NO_STDIO in pngrutil.c
 
713
    and mentioned the purposes of the two macros in libpng.txt/libpng.3.
 
714
version 1.0.6f [April 14, 2000]
 
715
  Revised png_set_iCCP() and png_set_rows() to avoid prematurely freeing data.
 
716
  Add checks in png_set_text() for NULL members of the input text structure.
 
717
  Revised libpng.txt/libpng.3.
 
718
  Removed superfluous prototype for png_set_itxt from png.h
 
719
  Removed "else" from pngread.c, after png_error(), and changed "0" to "length".
 
720
  Changed several png_errors about malformed ancillary chunks to png_warnings.
 
721
version 1.0.6g [April 24, 2000]
 
722
  Added png_pass-* arrays to pnggccrd.c when PNG_USE_LOCAL_ARRAYS is defined.
 
723
  Relocated paragraph about png_set_background() in libpng.3/libpng.txt
 
724
    and other revisions (Matthias Benckmann)
 
725
  Relocated info_ptr->free_me, png_ptr->free_me, and other info_ptr and
 
726
    png_ptr members to restore binary compatibility with libpng-1.0.5
 
727
    (breaks compatibility with libpng-1.0.6).
 
728
version 1.0.6h [April 24, 2000]
 
729
  Changed shared library so-number pattern from 2.x.y.z to xy.z (this builds
 
730
    libpng.so.10 & libpng.so.10.6h instead of libpng.so.2 & libpng.so.2.1.0.6h)
 
731
    This is a temporary change for test purposes.
 
732
version 1.0.6i [May 2, 2000]
 
733
  Rearranged some members at the end of png_info and png_struct, to put
 
734
    unknown_chunks_num and free_me within the original size of the png_structs
 
735
    and free_me, png_read_user_fn, and png_free_fn within the original png_info,
 
736
    because some old applications allocate the structs directly instead of
 
737
    using png_create_*().
 
738
  Added documentation of user memory functions in libpng.txt/libpng.3
 
739
  Modified png_read_png so that it will use user_allocated row_pointers
 
740
    if present, unless free_me directs that it be freed, and added description
 
741
    of the use of png_set_rows() and png_get_rows() in libpng.txt/libpng.3.
 
742
  Added PNG_LEGACY_SUPPORTED macro, and #ifdef out all new (since version
 
743
    1.00) members of png_struct and png_info, to regain binary compatibility
 
744
    when you define this macro.  Capabilities lost in this event
 
745
    are user transforms (new in version 1.0.0),the user transform pointer
 
746
    (new in version 1.0.2), rgb_to_gray (new in 1.0.5), iCCP, sCAL, sPLT,
 
747
    the high-level interface, and unknown chunks support (all new in 1.0.6).
 
748
    This was necessary because of old applications that allocate the structs
 
749
    directly as authors were instructed to do in libpng-0.88 and earlier,
 
750
    instead of using png_create_*().
 
751
  Added modes PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT which
 
752
    can be used to detect codes that directly allocate the structs, and
 
753
    code to check these modes in png_read_init() and png_write_init() and
 
754
    generate a libpng error if the modes aren't set and PNG_LEGACY_SUPPORTED
 
755
    was not defined.
 
756
  Added makefile.intel and updated makefile.watcom (Pawel Mrochen)
 
757
version 1.0.6j [May 3, 2000]
 
758
  Overloaded png_read_init() and png_write_init() with macros that convert
 
759
    calls to png_read_init_2() or png_write_init_2() that check the version
 
760
    and structure sizes.
 
761
version 1.0.7beta11 [May 7, 2000]
 
762
  Removed the new PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT modes
 
763
    which are no longer used.
 
764
  Eliminated the three new members of png_text when PNG_LEGACY_SUPPORTED is
 
765
    defined or when neither PNG_READ_iTXt_SUPPORTED nor PNG_WRITE_iTXT_SUPPORTED
 
766
    is defined.
 
767
  Made PNG_NO_READ|WRITE_iTXt the default setting, to avoid memory
 
768
    overrun when old applications fill the info_ptr->text structure directly.
 
769
  Added PNGAPI macro, and added it to the definitions of all exported functions.
 
770
  Relocated version macro definitions ahead of the includes of zlib.h and
 
771
    pngconf.h in png.h.
 
772
version 1.0.7beta12 [May 12, 2000]
 
773
  Revised pngset.c to avoid a problem with expanding the png_debug macro.
 
774
  Deleted some extraneous defines from pngconf.h
 
775
  Made PNG_NO_CONSOLE_IO the default condition when PNG_BUILD_DLL is defined.
 
776
  Use MSC _RPTn debugging instead of fprintf if _MSC_VER is defined.
 
777
  Added png_access_version_number() function.
 
778
  Check for mask&PNG_FREE_CHNK (for TEXT, SCAL, PCAL) in png_free_data().
 
779
  Expanded libpng.3/libpng.txt information about png_data_freer().
 
780
version 1.0.7beta14 [May 17, 2000] (beta13 was not published)
 
781
  Changed pnggccrd.c and pngvcrd.c to handle bad adaptive filter types as
 
782
    warnings instead of errors, as pngrutil.c does.
 
783
  Set the PNG_INFO_IDAT valid flag in png_set_rows() so png_write_png()
 
784
    will actually write IDATs.
 
785
  Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32.
 
786
  Make png_free_data() ignore its final parameter except when freeing data
 
787
    that can have multiple instances (text, sPLT, unknowns).
 
788
  Fixed a new bug in png_set_rows().
 
789
  Removed info_ptr->valid tests from png_free_data(), as in version 1.0.5.
 
790
  Added png_set_invalid() function.
 
791
  Fixed incorrect illustrations of png_destroy_write_struct() in example.c.
 
792
version 1.0.7beta15 [May 30, 2000]
 
793
  Revised the deliberately erroneous Linux setjmp code in pngconf.h to produce
 
794
    fewer error messages.
 
795
  Rearranged checks for Z_OK to check the most likely path first in pngpread.c
 
796
    and pngwutil.c.
 
797
  Added checks in pngtest.c for png_create_*() returning NULL, and mentioned
 
798
    in libpng.txt/libpng.3 the need for applications to check this.
 
799
  Changed names of png_default_*() functions in pngtest to pngtest_*().
 
800
  Changed return type of png_get_x|y_offset_*() from png_uint_32 to png_int_32.
 
801
  Fixed some bugs in the unused PNG_INCH_CONVERSIONS functions in pngget.c
 
802
  Set each pointer to NULL after freeing it in png_free_data().
 
803
  Worked around a problem in pngconf.h; AIX's strings.h defines an "index"
 
804
    macro that conflicts with libpng's png_color_16.index. (Dimitri Papadapoulos)
 
805
  Added "msvc" directory with MSVC++ project files (Simon-Pierre Cadieux).
 
806
version 1.0.7beta16 [June 4, 2000]
 
807
  Revised the workaround of AIX string.h "index" bug.
 
808
  Added a check for overlength PLTE chunk in pngrutil.c.
 
809
  Added PNG_NO_POINTER_INDEXING macro to use array-indexing instead of pointer
 
810
    indexing in pngrutil.c and pngwutil.c to accommodate a buggy compiler.
 
811
  Added a warning in png_decompress_chunk() when it runs out of data, e.g.
 
812
    when it tries to read an erroneous PhotoShop iCCP chunk.
 
813
  Added PNG_USE_DLL macro.
 
814
  Revised the copyright/disclaimer/license notice.
 
815
  Added contrib/msvctest directory
 
816
version 1.0.7rc1 [June 9, 2000]
 
817
  Corrected the definition of PNG_TRANSFORM_INVERT_ALPHA  (0x0400 not 0x0200)
 
818
  Added contrib/visupng directory (Willem van Schaik)
 
819
version 1.0.7beta18 [June 23, 2000]
 
820
  Revised PNGAPI definition, and pngvcrd.c to work with __GCC__
 
821
    and do not redefine PNGAPI if it is passed in via a compiler directive.
 
822
  Revised visupng/PngFile.c to remove returns from within the Try block.
 
823
  Removed leading underscores from "_PNG_H" and "_PNG_SAVE_BSD_SOURCE" macros.
 
824
  Updated contrib/visupng/cexcept.h to version 1.0.0.
 
825
  Fixed bugs in pngwrite.c and pngwutil.c that prevented writing iCCP chunks.
 
826
version 1.0.7rc2 [June 28, 2000]
 
827
  Updated license to include disclaimers required by UCITA.
 
828
  Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
 
829
 
 
830
version 1.0.7 [July 1, 2000]
 
831
  Revised the definition of "trans_values" in libpng.3/libpng.txt
 
832
version 1.0.8beta1 [July 8, 2000]
 
833
  Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
 
834
  Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
 
835
     pngwutil.c.
 
836
  Changed PNG_EXPORT_VAR to use PNG_IMPEXP, in pngconf.h.
 
837
  Removed unused "#include <assert.h>" from png.c
 
838
  Added WindowsCE support.
 
839
  Revised pnggccrd.c to work with gcc-2.95.2 and in the Cygwin environment.
 
840
version 1.0.8beta2 [July 10, 2000]
 
841
  Added project files to the wince directory and made further revisions
 
842
     of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE.
 
843
version 1.0.8beta3 [July 11, 2000]
 
844
  Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
 
845
     for indexed-color input files to avoid potential double-freeing trans array
 
846
     under some unusual conditions; problem was introduced in version 1.0.6f.
 
847
  Further revisions to pngtest.c and files in the wince subdirectory.
 
848
version 1.0.8beta4 [July 14, 2000]
 
849
  Added the files pngbar.png and pngbar.jpg to the distribution.
 
850
  Added makefile.cygwin, and cygwin support in pngconf.h
 
851
  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
 
852
version 1.0.8rc1 [July 16, 2000]
 
853
  Revised png_debug() macros and statements to eliminate compiler warnings.
 
854
 
 
855
version 1.0.8 [July 24, 2000]
 
856
  Added png_flush() in pngwrite.c, after png_write_IEND().
 
857
  Updated makefile.hpux to build a shared library.
 
858
version 1.0.9beta1 [November 10, 2000]
 
859
  Fixed typo in scripts/makefile.hpux
 
860
  Updated makevms.com in scripts and contrib/* and contrib/* (Martin Zinser)
 
861
  Fixed seqence-point bug in contrib/pngminus/png2pnm (Martin Zinser)
 
862
  Changed "cdrom.com" in documentation to "libpng.org"
 
863
  Revised pnggccrd.c to get it all working, and updated makefile.gcmmx (Greg).
 
864
  Changed type of "params" from voidp to png_voidp in png_read|write_png().
 
865
  Make sure PNGAPI and PNG_IMPEXP are defined in pngconf.h.
 
866
  Revised the 3 instances of WRITEFILE in pngtest.c.
 
867
  Relocated "msvc" and "wince" project subdirectories into "dll" subdirectory.
 
868
  Updated png.rc in dll/msvc project
 
869
  Revised makefile.dec to define and use LIBPATH and INCPATH
 
870
  Increased size of global png_libpng_ver[] array from 12 to 18 chars.
 
871
  Made global png_libpng_ver[], png_sig[] and png_pass_*[] arrays const.
 
872
  Removed duplicate png_crc_finish() from png_handle_bKGD() function.
 
873
  Added a warning when application calls png_read_update_info() multiple times.
 
874
  Revised makefile.cygwin
 
875
  Fixed bugs in iCCP support in pngrutil.c and pngwutil.c.
 
876
  Replaced png_set_empty_plte_permitted() with png_permit_mng_features().
 
877
version 1.0.9beta2 [November 19, 2000]
 
878
  Renamed the "dll" subdirectory "projects".
 
879
  Added borland project files to "projects" subdirectory.
 
880
  Set VS_FF_PRERELEASE and VS_FF_PATCHED flags in msvc/png.rc when appropriate.
 
881
  Add error message in png_set_compression_buffer_size() when malloc fails.
 
882
version 1.0.9beta3 [November 23, 2000]
 
883
  Revised PNG_LIBPNG_BUILD_TYPE macro in png.h, used in the msvc project.
 
884
  Removed the png_flush() in pngwrite.c that crashes some applications
 
885
    that don't set png_output_flush_fn.
 
886
  Added makefile.macosx and makefile.aix to scripts directory.
 
887
version 1.0.9beta4 [December 1, 2000]
 
888
  Change png_chunk_warning to png_warning in png_check_keyword().
 
889
  Increased the first part of msg buffer from 16 to 18 in png_chunk_error().
 
890
version 1.0.9beta5 [December 15, 2000]
 
891
  Added support for filter method 64 (for PNG datastreams embedded in MNG).
 
892
version 1.0.9beta6 [December 18, 2000]
 
893
  Revised png_set_filter() to accept filter method 64 when appropriate.
 
894
  Added new PNG_HAVE_PNG_SIGNATURE bit to png_ptr->mode and use it to
 
895
    help prevent applications from using MNG features in PNG datastreams.
 
896
  Added png_permit_mng_features() function.
 
897
  Revised libpng.3/libpng.txt.  Changed "filter type" to "filter method".
 
898
version 1.0.9rc1 [December 23, 2000]
 
899
  Revised test for PNG_HAVE_PNG_SIGNATURE in pngrutil.c
 
900
  Fixed error handling of unknown compression type in png_decompress_chunk().
 
901
  In pngconf.h, define __cdecl when _MSC_VER is defined.
 
902
version 1.0.9beta7 [December 28, 2000]
 
903
  Changed PNG_TEXT_COMPRESSION_zTXt to PNG_COMPRESSION_TYPE_BASE several places.
 
904
  Revised memory management in png_set_hIST and png_handle_hIST in a backward
 
905
    compatible manner.  PLTE and tRNS were revised similarly.
 
906
  Revised the iCCP chunk reader to ignore trailing garbage.
 
907
version 1.0.9beta8 [January 12, 2001]
 
908
  Moved pngasmrd.h into pngconf.h.
 
909
  Improved handling of out-of-spec garbage iCCP chunks generated by PhotoShop.
 
910
version 1.0.9beta9 [January 15, 2001]
 
911
  Added png_set_invalid, png_permit_mng_features, and png_mmx_supported to
 
912
    wince and msvc project module definition files.
 
913
  Minor revision of makefile.cygwin.
 
914
  Fixed bug with progressive reading of narrow interlaced images in pngpread.c
 
915
version 1.0.9beta10 [January 16, 2001]
 
916
  Do not typedef png_FILE_p in pngconf.h when PNG_NO_STDIO is defined.
 
917
  Fixed "png_mmx_supported" typo in project definition files.
 
918
version 1.0.9beta11 [January 19, 2001]
 
919
  Updated makefile.sgi to make shared library.
 
920
  Removed png_mmx_support() function and disabled PNG_MNG_FEATURES_SUPPORTED
 
921
    by default, for the benefit of DLL forward compatibility.  These will
 
922
    be re-enabled in version 1.2.0.
 
923
version 1.0.9rc2 [January 22, 2001]
 
924
  Revised cygwin support.
 
925
 
 
926
version 1.0.9 [January 31, 2001]
 
927
  Added check of cygwin's ALL_STATIC in pngconf.h
 
928
  Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos.
 
929
version 1.0.10beta1 [March 14, 2001]
 
930
  Revised makefile.dec, makefile.sgi, and makefile.sggcc; added makefile.hpgcc.
 
931
  Reformatted libpng.3 to eliminate bad line breaks.
 
932
  Added checks for _mmx_supported in the read_filter_row function of pnggccrd.c
 
933
  Added prototype for png_mmx_support() near the top of pnggccrd.c
 
934
  Moved some error checking from png_handle_IHDR to png_set_IHDR.
 
935
  Added PNG_NO_READ_SUPPORTED and PNG_NO_WRITE_SUPPORTED macros.
 
936
  Revised png_mmx_support() function in pnggccrd.c
 
937
  Restored version 1.0.8 PNG_WRITE_EMPTY_PLTE_SUPPORTED behavior in pngwutil.c
 
938
  Fixed memory leak in contrib/visupng/PngFile.c
 
939
  Fixed bugs in png_combine_row() in pnggccrd.c and pngvcrd.c (C version)
 
940
  Added warnings when retrieving or setting gamma=0.
 
941
  Increased the first part of msg buffer from 16 to 18 in png_chunk_warning().
 
942
version 1.0.10rc1 [March 23, 2001]
 
943
  Changed all instances of memcpy, strcpy, and strlen to png_memcpy, png_strcpy,
 
944
    and png_strlen.
 
945
  Revised png_mmx_supported() function in pnggccrd.c to return proper value.
 
946
  Fixed bug in progressive reading (pngpread.c) with small images (height < 8).
 
947
 
 
948
version 1.0.10 [March 30, 2001]
 
949
  Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin
 
950
  Added beos project files (Chris Herborth)
 
951
version 1.0.11beta1 [April 3, 2001]
 
952
  Added type casts on several png_malloc() calls (Dimitri Papadapoulos).
 
953
  Removed a no-longer needed AIX work-around from pngconf.h
 
954
  Changed several "//" single-line comments to C-style in pnggccrd.c
 
955
version 1.0.11beta2 [April 11, 2001]
 
956
  Removed PNGAPI from several functions whose prototypes did not have PNGAPI.
 
957
  Updated scripts/pngos2.def
 
958
version 1.0.11beta3 [April 14, 2001]
 
959
  Added checking the results of many instances of png_malloc() for NULL
 
960
version 1.0.11beta4 [April 20, 2001]
 
961
  Undid the changes from version 1.0.11beta3.  Added a check for NULL return
 
962
    from user's malloc_fn().
 
963
  Removed some useless type casts of the NULL pointer.
 
964
  Added makefile.netbsd
 
965
 
 
966
version 1.0.11 [April 27, 2001]
 
967
  Revised makefile.netbsd
 
968
version 1.0.12beta1 [May 14, 2001]
 
969
  Test for Windows platform in pngconf.h when including malloc.h (Emmanuel Blot)
 
970
  Updated makefile.cygwin and handling of Cygwin's ALL_STATIC in pngconf.h
 
971
  Added some never-to-be-executed code in pnggccrd.c to quiet compiler warnings.
 
972
  Eliminated the png_error about apps using png_read|write_init().  Instead,
 
973
    libpng will reallocate the png_struct and info_struct if they are too small.
 
974
    This retains future binary compatibility for old applications written for
 
975
    libpng-0.88 and earlier.
 
976
version 1.2.0beta1 [May 6, 2001]
 
977
  Bumped DLLNUM to 2.
 
978
  Re-enabled PNG_MNG_FEATURES_SUPPORTED and enabled PNG_ASSEMBLER_CODE_SUPPORTED
 
979
    by default.
 
980
  Added runtime selection of MMX features.
 
981
  Added png_set_strip_error_numbers function and related macros.
 
982
version 1.2.0beta2 [May 7, 2001]
 
983
  Finished merging 1.2.0beta1 with version 1.0.11
 
984
  Added a check for attempts to read or write PLTE in grayscale PNG datastreams.
 
985
version 1.2.0beta3 [May 17, 2001]
 
986
  Enabled user memory function by default.
 
987
  Modified png_create_struct so it passes user mem_ptr to user memory allocator.
 
988
  Increased png_mng_features flag from png_byte to png_uint_32.
 
989
  Bumped shared-library (so-number) and dll-number to 3.
 
990
version 1.2.0beta4 [June 23, 2001]
 
991
  Check for missing profile length field in iCCP chunk and free chunk_data
 
992
     in case of truncated iCCP chunk.
 
993
  Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
 
994
  Bumped dll-number from 2 to 3 in makefile.cygwin
 
995
  Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly
 
996
     if user attempts to run it on an 8-bit display.
 
997
  Updated contrib/gregbook
 
998
  Use png_malloc instead of png_zalloc to allocate palette in pngset.c
 
999
  Updated makefile.ibmc
 
1000
  Added some typecasts to eliminate gcc 3.0 warnings.  Changed prototypes
 
1001
     of png_write_oFFS width and height from png_uint_32 to png_int_32.
 
1002
  Updated example.c
 
1003
  Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
 
1004
version 1.2.0beta5 [August 8, 2001]
 
1005
  Revised contrib/gregbook
 
1006
  Revised makefile.gcmmx
 
1007
  Revised pnggccrd.c to conditionally compile some thread-unsafe code only
 
1008
     when PNG_THREAD_UNSAFE_OK is defined.
 
1009
  Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
 
1010
     value exceeding 2^bit_depth-1
 
1011
  Revised makefile.sgi and makefile.sggcc
 
1012
  Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
 
1013
  Removed restriction that do_invert_mono only operate on 1-bit opaque files
 
1014
 
 
1015
version 1.2.0 [September 1, 2001]
 
1016
  Changed a png_warning() to png_debug() in pnggccrd.c
 
1017
  Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
 
1018
version 1.2.1beta1 [October 19, 2001]
 
1019
  Revised makefile.std in contrib/pngminus
 
1020
  Include background_1 in png_struct regardless of gamma support.
 
1021
  Revised makefile.netbsd and makefile.macosx, added makefile.darwin.
 
1022
  Revised example.c to provide more details about using row_callback().
 
1023
version 1.2.1beta2 [October 25, 2001]
 
1024
  Added type cast to each NULL appearing in a function call, except for
 
1025
    WINCE functions.
 
1026
  Added makefile.so9.
 
1027
version 1.2.1beta3 [October 27, 2001]
 
1028
  Removed type casts from all NULLs.
 
1029
  Simplified png_create_struct_2().
 
1030
version 1.2.1beta4 [November 7, 2001]
 
1031
  Revised png_create_info_struct() and png_creat_struct_2().
 
1032
  Added error message if png_write_info() was omitted.
 
1033
  Type cast NULLs appearing in function calls when _NO_PROTO or
 
1034
    PNG_TYPECAST_NULL is defined.
 
1035
version 1.2.1rc1 [November 24, 2001]
 
1036
  Type cast NULLs appearing in function calls except when PNG_NO_TYPECAST_NULL
 
1037
    is defined.
 
1038
  Changed typecast of "size" argument to png_size_t in pngmem.c calls to
 
1039
    the user malloc_fn, to agree with the prototype in png.h
 
1040
  Added a pop/push operation to pnggccrd.c, to preserve Eflag (Maxim Sobolev)
 
1041
  Updated makefile.sgi to recognize LIBPATH and INCPATH.
 
1042
  Updated various makefiles so "make clean" does not remove previous major
 
1043
    version of the shared library.
 
1044
version 1.2.1rc2 [December 4, 2001]
 
1045
  Always allocate 256-entry internal palette, hist, and trans arrays, to
 
1046
    avoid out-of-bounds memory reference caused by invalid PNG datastreams.
 
1047
  Added a check for prefix_length > data_length in iCCP chunk handler.
 
1048
 
 
1049
version 1.2.1 [December 7, 2001]
 
1050
  None.
 
1051
version 1.2.2beta1 [February 22, 2002]
 
1052
  Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
 
1053
  Revised makefile.linux, makefile.gcmmx, and makefile.sgi to generate
 
1054
    libpng.a, libpng12.so (not libpng.so.3), and libpng12/png.h
 
1055
  Revised makefile.darwin to remove "-undefined suppress" option.
 
1056
  Added checks for gamma and chromaticity values over 21474.83, which exceed
 
1057
    the limit for PNG unsigned 32-bit integers when encoded.
 
1058
  Revised calls to png_create_read_struct() and png_create_write_struct()
 
1059
    for simpler debugging.
 
1060
  Revised png_zalloc() so zlib handles errors (uses PNG_FLAG_MALLOC_NULL_MEM_OK)
 
1061
version 1.2.2beta2 [February 23, 2002]
 
1062
  Check chunk_length and idat_size for invalid (over PNG_MAX_UINT) lengths.
 
1063
  Check for invalid image dimensions in png_get_IHDR.
 
1064
  Added missing "fi;" in the install target of the SGI makefiles.
 
1065
  Added install-static to all makefiles that make shared libraries.
 
1066
  Always do gamma compensation when image is partially transparent.
 
1067
version 1.2.2beta3 [March 7, 2002]
 
1068
  Compute background.gray and background_1.gray even when color_type is RGB
 
1069
    in case image gets reduced to gray later.
 
1070
  Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
 
1071
  Export (with PNGAPI) png_zalloc, png_zfree, and png_handle_as_unknown
 
1072
  Removed unused png_write_destroy_info prototype from png.h
 
1073
  Eliminated incorrect use of width_mmx from pnggccrd.c in pixel_bytes == 8 case
 
1074
  Added install-shared target to all makefiles that make shared libraries.
 
1075
  Stopped a double free of palette, hist, and trans when not using free_me.
 
1076
  Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
 
1077
version 1.2.2beta4 [March 8, 2002]
 
1078
  Compute background.gray and background_1.gray even when color_type is RGB
 
1079
    in case image gets reduced to gray later (Jason Summers).
 
1080
  Relocated a misplaced /bin/rm in the "install-shared" makefile targets
 
1081
  Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
 
1082
version 1.2.2beta5 [March 26, 2002]
 
1083
  Added missing PNGAPI to several function definitions.
 
1084
  Check for invalid bit_depth or color_type in png_get_IHDR(), and
 
1085
    check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
 
1086
  Revised iTXt support to accept NULL for lang and lang_key.
 
1087
  Compute gamma for color components of background even when color_type is gray.
 
1088
  Changed "()" to "{}" in scripts/libpng.pc.in.
 
1089
  Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
 
1090
  Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
 
1091
version 1.2.2beta6 [March 31, 2002]
 
1092
version 1.0.13beta1 [March 31, 2002]
 
1093
  Prevent png_zalloc() from trying to memset memory that it failed to acquire.
 
1094
  Add typecasts of PNG_MAX_UINT in pngset_cHRM_fixed() (Matt Holgate).
 
1095
  Ensure that the right function (user or default) is used to free the
 
1096
    png_struct after an error in png_create_read_struct_2().
 
1097
version 1.2.2rc1 [April 7, 2002]
 
1098
version 1.0.13rc1 [April 7, 2002]
 
1099
  Save the ebx register in pnggccrd.c (Sami Farin)
 
1100
  Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
 
1101
  Updated makefiles to put headers in include/libpng and remove old include/*.h.
 
1102
 
 
1103
version 1.2.2 [April 15, 2002]
 
1104
version 1.0.13 [April 15, 2002]
 
1105
  Revised description of png_set_filter() in libpng.3/libpng.txt.
 
1106
  Revised makefile.netbsd and added makefile.neNNbsd and makefile.freebsd
 
1107
version 1.0.13patch01 [April 17, 2002]
 
1108
version 1.2.2patch01 [April 17, 2002]
 
1109
  Changed ${PNGMAJ}.${PNGVER} bug to ${PNGVER} in makefile.sgi and makefile.sggcc
 
1110
  Fixed VER -> PNGVER typo in makefile.macosx and added install-static to install
 
1111
  Added install: target to makefile.32sunu and makefile.64sunu
 
1112
version 1.0.13patch03 [April 18, 2002]
 
1113
version 1.2.2patch03 [April 18, 2002]
 
1114
  Revised 15 makefiles to link libpng.a to libpngNN.a and the include libpng
 
1115
  subdirectory to libpngNN subdirectory without the full pathname.
 
1116
  Moved generation of libpng.pc from "install" to "all" in 15 makefiles.
 
1117
version 1.2.3rc1 [April 28, 2002]
 
1118
  Added install-man target to 15 makefiles (Dimitri Papadopolous-Orfanos).
 
1119
  Added $(DESTDIR) feature to 24 makefiles (Tim Mooney)
 
1120
  Fixed bug with $prefix, should be $(prefix) in makefile.hpux.
 
1121
  Updated cygwin-specific portion of pngconf.h and revised makefile.cygwin
 
1122
  Added a link from libpngNN.pc to libpng.pc in 15 makefiles.
 
1123
  Added links from include/libpngNN/*.h to include/*.h in 24 makefiles.
 
1124
  Revised makefile.darwin to make relative links without full pathname.
 
1125
  Added setjmp() at the end of png_create_*_struct_2() in case user forgets
 
1126
    to put one in their application.
 
1127
  Restored png_zalloc() and png_zfree() prototypes to version 1.2.1 and
 
1128
    removed them from module definition files.
 
1129
version 1.2.3rc2 [May 1, 2002]
 
1130
  Fixed bug in reporting number of channels in pngget.c and pngset.c,
 
1131
    that was introduced in version 1.2.2beta5.
 
1132
  Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
 
1133
    png_default_flush(), and png_push_fill_buffer() and included them in
 
1134
    module definition files.
 
1135
  Added "libpng.pc" dependency to the "install-shared" target in 15 makefiles.
 
1136
version 1.2.3rc3 [May 1, 2002]
 
1137
  Revised prototype for png_default_flush()
 
1138
  Remove old libpng.pc and libpngNN.pc before installing new ones.
 
1139
version 1.2.3rc4 [May 2, 2002]
 
1140
  Typos in *.def files (png_default_read|write -> png_default_read|write_data)
 
1141
  In makefiles, changed rm libpng.NN.pc to rm libpngNN.pc
 
1142
  Added libpng-config and libpngNN-config and modified makefiles to install them.
 
1143
  Changed $(MANPATH) to $(DESTDIR)$(MANPATH) in makefiles
 
1144
  Added "Win32 DLL VB" configuration to projects/msvc/libpng.dsp
 
1145
version 1.2.3rc5 [May 11, 2002]
 
1146
  Changed "error" and "message" in prototypes to "error_message" and
 
1147
    "warning_message" to avoid namespace conflict.
 
1148
  Revised 15 makefiles to build libpng-config from libpng-config-*.in
 
1149
  Once more restored png_zalloc and png_zfree to regular nonexported form.
 
1150
  Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
 
1151
    to nonexported form, but with PNGAPI, and removed them from module def files.
 
1152
version 1.2.3rc6 [May 14, 2002]
 
1153
  Removed "PNGAPI" from png_zalloc() and png_zfree() in png.c
 
1154
  Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp.
 
1155
  Removed leftover libpng-config "sed" script from four makefiles.
 
1156
  Revised libpng-config creating script in 16 makefiles.
 
1157
 
 
1158
version 1.2.3 [May 22, 2002]
 
1159
  Revised libpng-config target in makefile.cygwin.
 
1160
  Removed description of png_set_mem_fn() from documentation.
 
1161
  Revised makefile.freebsd.
 
1162
  Minor cosmetic changes to 15 makefiles, e.g., $(DI) = $(DESTDIR)/$(INCDIR).
 
1163
  Revised projects/msvc/README.txt
 
1164
  Changed -lpng to -lpngNN in LDFLAGS in several makefiles.
 
1165
version 1.2.4beta1 [May 24, 2002]
 
1166
  Added libpng.pc and libpng-config to "all:" target in 16 makefiles.
 
1167
  Fixed bug in 16 makefiles: $(DESTDIR)/$(LIBPATH) to $(DESTDIR)$(LIBPATH)
 
1168
  Added missing "\" before closing double quote in makefile.gcmmx.
 
1169
  Plugged various memory leaks; added png_malloc_warn() and png_set_text_2()
 
1170
    functions.
 
1171
version 1.2.4beta2 [June 25, 2002]
 
1172
  Plugged memory leak of png_ptr->current_text (Matt Holgate).
 
1173
  Check for buffer overflow before reading CRC in pngpread.c (Warwick Allison)
 
1174
  Added -soname to the loader flags in makefile.dec, makefile.sgi, and
 
1175
    makefile.sggcc.
 
1176
  Added "test-installed" target to makefile.linux, makefile.gcmmx,
 
1177
    makefile.sgi, and makefile.sggcc.
 
1178
version 1.2.4beta3 [June 28, 2002]
 
1179
  Plugged memory leak of row_buf in pngtest.c when there is a png_error().
 
1180
  Detect buffer overflow in pngpread.c when IDAT is corrupted with extra data.
 
1181
  Added "test-installed" target to makefile.32sunu, makefile.64sunu,
 
1182
    makefile.beos, makefile.darwin, makefile.dec, makefile.macosx, 
 
1183
    makefile.solaris, makefile.hpux, makefile.hpgcc, and makefile.so9.
 
1184
version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
 
1185
  Added "test-installed" target to makefile.cygwin and makefile.sco.
 
1186
  Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
 
1187
 
 
1188
version 1.2.4 and 1.0.14 [July 8, 2002]
 
1189
  Changed png_warning() to png_error() when width is too large to process.
 
1190
version 1.2.4patch01 [July 20, 2002]
 
1191
  Revised makefile.cygwin to use DLL number 12 instead of 13.
 
1192
version 1.2.5beta1 [August 6, 2002]
 
1193
  Added code to contrib/gregbook/readpng2.c to ignore unused chunks.
 
1194
  Replaced toucan.png in contrib/gregbook (it has been corrupt since 1.0.11)
 
1195
  Removed some stray *.o files from contrib/gregbook.
 
1196
  Changed png_error() to png_warning() about "Too much data" in pngpread.c
 
1197
    and about "Extra compressed data" in pngrutil.c.
 
1198
  Prevent png_ptr->pass from exceeding 7 in png_push_finish_row().
 
1199
  Updated makefile.hpgcc
 
1200
  Updated png.c and pnggccrd.c handling of return from png_mmx_support()
 
1201
version 1.2.5beta2 [August 15, 2002]
 
1202
  Only issue png_warning() about "Too much data" in pngpread.c when avail_in
 
1203
    is nonzero.
 
1204
  Updated makefiles to install a separate libpng.so.3 with its own rpath.
 
1205
version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
 
1206
  Revised makefiles to not remove previous minor versions of shared libraries.
 
1207
version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
 
1208
  Revised 13 makefiles to remove "-lz" and "-L$(ZLIBLIB)", etc., from shared
 
1209
    library loader directive.
 
1210
  Added missing "$OBJSDLL" line to makefile.gcmmx.
 
1211
  Added missing "; fi" to makefile.32sunu.
 
1212
version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
 
1213
  Revised libpng-config script.
 
1214
 
 
1215
version 1.2.5 and 1.0.15 [October 3, 2002]
 
1216
  Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux,
 
1217
    and makefile.aix.
 
1218
  Relocated two misplaced PNGAPI lines in pngtest.c
 
1219
version 1.2.6beta1 [October 22, 2002]
 
1220
  Commented out warning about uninitialized mmx_support in pnggccrd.c.
 
1221
  Changed "IBMCPP__" flag to "__IBMCPP__" in pngconf.h.
 
1222
  Relocated two more misplaced PNGAPI lines in pngtest.c
 
1223
  Fixed memory overrun bug in png_do_read_filler() with 16-bit datastreams,
 
1224
    introduced in version 1.0.2.
 
1225
  Revised makefile.macosx, makefile.dec, makefile.aix, and makefile.32sunu.
 
1226
version 1.2.6beta2 [November 1, 2002]
 
1227
  Added libpng-config "--ldopts" output.
 
1228
  Added "AR=ar" and "ARFLAGS=rc" and changed "ar rc" to "$(AR) $(ARFLAGS)"
 
1229
    in makefiles.
 
1230
version 1.2.6beta3 [July 18, 2004]
 
1231
  Reverted makefile changes from version 1.2.6beta2 and some of the changes
 
1232
    from version 1.2.6beta1; these will be postponed until version 1.2.7.
 
1233
    Version 1.2.6 is going to be a simple bugfix release.
 
1234
  Changed the one instance of "ln -sf" to "ln -f -s" in each Sun makefile.
 
1235
  Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
 
1236
  Added "#!/bin/sh" at the top of configure, for recognition of the
 
1237
    'x' flag under Cygwin (Cosmin).
 
1238
  Optimized vacuous tests that silence compiler warnings, in png.c (Cosmin).
 
1239
  Added support for PNG_USER_CONFIG, in pngconf.h (Cosmin).
 
1240
  Fixed the special memory handler for Borland C under DOS, in pngmem.c
 
1241
    (Cosmin).
 
1242
  Removed some spurious assignments in pngrutil.c (Cosmin).
 
1243
  Replaced 65536 with 65536L, and 0xffff with 0xffffL, to silence warnings
 
1244
    on 16-bit platforms (Cosmin).
 
1245
  Enclosed shift op expressions in parentheses, to silence warnings (Cosmin).
 
1246
  Used proper type png_fixed_point, to avoid problems on 16-bit platforms,
 
1247
    in png_handle_sRGB() (Cosmin).
 
1248
  Added compression_type to png_struct, and optimized the window size
 
1249
    inside the deflate stream (Cosmin).
 
1250
  Fixed definition of isnonalpha(), in pngerror.c and pngrutil.c (Cosmin).
 
1251
  Fixed handling of unknown chunks that come after IDAT (Cosmin).
 
1252
  Allowed png_error() and png_warning() to work even if png_ptr == NULL
 
1253
    (Cosmin).
 
1254
  Replaced row_info->rowbytes with row_bytes in png_write_find_filter()
 
1255
    (Cosmin).
 
1256
  Fixed definition of PNG_LIBPNG_VER_DLLNUM (Simon-Pierre).
 
1257
  Used PNG_LIBPNG_VER and PNG_LIBPNG_VER_STRING instead of the hardcoded
 
1258
    values in png.c (Simon-Pierre, Cosmin).
 
1259
  Initialized png_libpng_ver[] with PNG_LIBPNG_VER_STRING (Simon-Pierre).
 
1260
  Replaced PNG_LIBPNG_VER_MAJOR with PNG_LIBPNG_VER_DLLNUM in png.rc
 
1261
    (Simon-Pierre).
 
1262
  Moved the definition of PNG_HEADER_VERSION_STRING near the definitions
 
1263
    of the other PNG_LIBPNG_VER_... symbols in png.h (Cosmin).
 
1264
  Relocated #ifndef PNGAPI guards in pngconf.h (Simon-Pierre, Cosmin).
 
1265
  Updated scripts/makefile.vc(a)win32 (Cosmin).
 
1266
  Updated the MSVC project (Simon-Pierre, Cosmin).
 
1267
  Updated the Borland C++ Builder project (Cosmin).
 
1268
  Avoided access to asm_flags in pngvcrd.c, if PNG_1_0_X is defined (Cosmin).
 
1269
  Commented out warning about uninitialized mmx_support in pngvcrd.c (Cosmin).
 
1270
  Removed scripts/makefile.bd32 and scripts/pngdef.pas (Cosmin).
 
1271
  Added extra guard around inclusion of Turbo C memory headers, in pngconf.h
 
1272
    (Cosmin).
 
1273
  Renamed projects/msvc/ to projects/visualc6/, and projects/borland/ to
 
1274
    projects/cbuilder5/ (Cosmin).
 
1275
  Moved projects/visualc6/png32ms.def to scripts/pngw32.def,
 
1276
    and projects/visualc6/png.rc to scripts/pngw32.rc (Cosmin).
 
1277
  Added projects/visualc6/pngtest.dsp; removed contrib/msvctest/ (Cosmin).
 
1278
  Changed line endings to DOS style in cbuilder5 and visualc6 files, even
 
1279
    in the tar.* distributions (Cosmin).
 
1280
  Updated contrib/visupng/VisualPng.dsp (Cosmin).
 
1281
  Updated contrib/visupng/cexcept.h to version 2.0.0 (Cosmin).
 
1282
  Added a separate distribution with "configure" and supporting files (Junichi).
 
1283
version 1.2.6beta4 [July 28, 2004]
 
1284
  Added user ability to change png_size_t via a PNG_SIZE_T macro.
 
1285
  Added png_sizeof() and png_convert_size() functions.
 
1286
  Added PNG_SIZE_MAX (maximum value of a png_size_t variable.
 
1287
  Added check in png_malloc_default() for (size_t)size != (png_uint_32)size
 
1288
    which would indicate an overflow.
 
1289
  Changed sPLT failure action from png_error to png_warning and abandon chunk.
 
1290
  Changed sCAL and iCCP failures from png_error to png_warning and abandon.
 
1291
  Added png_get_uint_31(png_ptr, buf) function.
 
1292
  Added PNG_UINT_32_MAX macro.
 
1293
  Renamed PNG_MAX_UINT to PNG_UINT_31_MAX.
 
1294
  Made png_zalloc() issue a png_warning and return NULL on potential
 
1295
    overflow.
 
1296
  Turn on PNG_NO_ZALLOC_ZERO by default in version 1.2.x
 
1297
  Revised "clobber list" in pnggccrd.c so it will compile under gcc-3.4.
 
1298
  Revised Borland portion of png_malloc() to return NULL or issue
 
1299
    png_error() according to setting of PNG_FLAG_MALLOC_NULL_MEM_OK.
 
1300
  Added PNG_NO_SEQUENTIAL_READ_SUPPORTED macro to conditionally remove
 
1301
    sequential read support.
 
1302
  Added some "#if PNG_WRITE_SUPPORTED" blocks.
 
1303
  #ifdef'ed out some redundancy in png_malloc_default().
 
1304
  Use png_malloc instead of png_zalloc to allocate the pallete.
 
1305
version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
 
1306
  Fixed buffer overflow vulnerability in png_handle_tRNS()
 
1307
  Fixed integer arithmetic overflow vulnerability in png_read_png().
 
1308
  Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
 
1309
    duplicate chunk types to go undetected.
 
1310
  Fixed some timestamps in the -config version
 
1311
  Rearranged order of processing of color types in png_handle_tRNS().
 
1312
  Added ROWBYTES macro to calculate rowbytes without integer overflow.
 
1313
  Updated makefile.darwin and removed makefile.macosx from scripts directory.
 
1314
  Imposed default one million column, one-million row limits on the image
 
1315
    dimensions, and added png_set_user_limits() function to override them.
 
1316
  Revised use of PNG_SET_USER_LIMITS_SUPPORTED macro.
 
1317
  Fixed wrong cast of returns from png_get_user_width|height_max().
 
1318
  Changed some "keep the compiler happy" from empty statements to returns,
 
1319
  Revised libpng.txt to remove 1.2.x stuff from the 1.0.x distribution
 
1320
version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
 
1321
  Revised makefile.darwin and makefile.solaris.  Removed makefile.macosx.
 
1322
  Revised pngtest's png_debug_malloc() to use png_malloc() instead of
 
1323
    png_malloc_default() which is not supposed to be exported.
 
1324
  Fixed off-by-one error in one of the conversions to PNG_ROWBYTES() in
 
1325
    pngpread.c.  Bug was introduced in 1.2.6rc1.
 
1326
  Fixed bug in RGB to RGBX transformation introduced in 1.2.6rc1.
 
1327
  Fixed old bug in RGB to Gray transformation.
 
1328
  Fixed problem with 64-bit compilers by casting arguments to abs()
 
1329
    to png_int_32.
 
1330
  Changed "ln -sf" to "ln -f -s" in three makefiles (solaris, sco, so9).
 
1331
  Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
 
1332
  Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
 
1333
  Added code to update the row_info->colortype in png_do_read_filler() (MSB).
 
1334
version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
 
1335
  Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
 
1336
    trouble with some 64-bit compilers.  Created PNG_OUT_OF_RANGE() macro.
 
1337
  Revised documentation of png_set_keep_unknown_chunks().
 
1338
  Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
 
1339
  Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
 
1340
  Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
 
1341
version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
 
1342
  Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
 
1343
    "pinfo" was out of place).
 
1344
version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
 
1345
  Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
 
1346
     section of png.h where they were inadvertently placed in version rc3.
 
1347
 
 
1348
version 1.2.6 and 1.0.16 [August 15, 2004]
 
1349
  Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
 
1350
version 1.2.7beta1 [August 26, 2004]
 
1351
  Removed unused pngasmrd.h file.
 
1352
  Removed references to uu.net for archived files.  Added references to
 
1353
    PNG Spec (second edition) and the PNG ISO/IEC Standard.
 
1354
  Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
 
1355
  Fixed bug with "optimized window size" in the IDAT datastream, that
 
1356
    causes libpng to write PNG files with incorrect zlib header bytes.
 
1357
version 1.2.7beta2 [August 28, 2004]
 
1358
  Fixed bug with sCAL chunk and big-endian machines (David Munro).
 
1359
  Undid new code added in 1.2.6rc2 to update the color_type in
 
1360
    png_set_filler().
 
1361
  Added png_set_add_alpha() that updates color type.
 
1362
version 1.0.17rc1 and 1.2.7rc1 [September 4, 2004]
 
1363
  Revised png_set_strip_filler() to not remove alpha if color_type has alpha.
 
1364
 
 
1365
version 1.2.7 and 1.0.17 [September 12, 2004]
 
1366
  Added makefile.hp64
 
1367
  Changed projects/msvc/png32ms.def to scripts/png32ms.def in makefile.cygwin
 
1368
version 1.2.8beta1 [November 1, 2004]
 
1369
  Fixed bug in png_text_compress() that would fail to complete a large block.
 
1370
  Fixed bug, introduced in libpng-1.2.7, that overruns a buffer during
 
1371
    strip alpha operation in png_do_strip_filler().
 
1372
  Added PNG_1_2_X definition in pngconf.h
 
1373
  #ifdef out png_info_init in png.c and png_read_init in pngread.c (as of 1.3.0)
 
1374
version 1.2.8beta2 [November 2, 2004]
 
1375
  Reduce color_type to a nonalpha type after strip alpha operation in
 
1376
    png_do_strip_filler().
 
1377
version 1.2.8beta3 [November 3, 2004]
 
1378
  Revised definitions of PNG_MAX_UINT_32, PNG_MAX_SIZE, and PNG_MAXSUM
 
1379
version 1.2.8beta4 [November 12, 2004]
 
1380
  Fixed (again) definition of PNG_LIBPNG_VER_DLLNUM in png.h (Cosmin).
 
1381
  Added PNG_LIBPNG_BUILD_PRIVATE in png.h (Cosmin).
 
1382
  Set png_ptr->zstream.data_type to Z_BINARY, to avoid unnecessary detection
 
1383
    of data type in deflate (Cosmin).
 
1384
  Deprecated but continue to support SPECIALBUILD and PRIVATEBUILD in favor of
 
1385
    PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
 
1386
version 1.2.8beta5 [November 20, 2004]
 
1387
  Use png_ptr->flags instead of png_ptr->transformations to pass
 
1388
    PNG_STRIP_ALPHA info to png_do_strip_filler(), to preserve ABI
 
1389
    compatibility.
 
1390
  Revised handling of SPECIALBUILD, PRIVATEBUILD, 
 
1391
    PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
 
1392
version 1.2.8rc1 [November 24, 2004]
 
1393
  Moved handling of BUILD macros from pngconf.h to png.h
 
1394
  Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
 
1395
    omitted from beta5.
 
1396
  Revised scripts/pngw32.rc
 
1397
  Despammed mailing addresses by masking "@" with "at".
 
1398
  Inadvertently installed a supposedly faster test version of pngrutil.c
 
1399
version 1.2.8rc2 [November 26, 2004]
 
1400
  Added two missing "\" in png.h
 
1401
  Change tests in pngread.c and pngpread.c to
 
1402
    if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
 
1403
       png_do_read_transformations(png_ptr);
 
1404
version 1.2.8rc3 [November 28, 2004]
 
1405
  Reverted pngrutil.c to version libpng-1.2.8beta5.
 
1406
  Added scripts/makefile.elf with supporting code in pngconf.h for symbol
 
1407
    versioning (John Bowler).
 
1408
version 1.2.8rc4 [November 29, 2004]
 
1409
  Added projects/visualc7 (Simon-pierre).
 
1410
version 1.2.8rc5 [November 29, 2004]
 
1411
  Fixed new typo in scripts/pngw32.rc
 
1412
 
 
1413
version 1.2.8 [December 3, 2004]
 
1414
  Removed projects/visualc7, added projects/visualc71.
 
1415
 
 
1416
version 1.2.9beta1 [February 21, 2006]
 
1417
 
 
1418
  Initialized some structure members in pngwutil.c to avoid gcc-4.0.0 complaints
 
1419
  Revised man page and libpng.txt to make it clear that one should not call
 
1420
    png_read_end or png_write_end after png_read_png or png_write_png.
 
1421
  Updated references to png-mng-implement mailing list.
 
1422
  Fixed an incorrect typecast in pngrutil.c
 
1423
  Added PNG_NO_READ_SUPPORTED conditional for making a write-only library.
 
1424
  Added PNG_NO_WRITE_INTERLACING_SUPPORTED conditional.
 
1425
  Optimized alpha-inversion loops in pngwtran.c
 
1426
  Moved test for nonzero gamma outside of png_build_gamma_table() in pngrtran.c
 
1427
  Make sure num_trans is <= 256 before copying data in png_set_tRNS().
 
1428
  Make sure num_palette is <= 256 before copying data in png_set_PLTE().
 
1429
  Interchanged order of write_swap_alpha and write_invert_alpha transforms.
 
1430
  Added parentheses in the definition of PNG_LIBPNG_BUILD_TYPE (Cosmin).
 
1431
  Optimized zlib window flag (CINFO) in contrib/pngsuite/*.png (Cosmin).
 
1432
  Updated scripts/makefile.bc32 for Borland C++ 5.6 (Cosmin).
 
1433
  Exported png_get_uint_32, png_save_uint_32, png_get_uint_16, png_save_uint_16,
 
1434
    png_get_int_32, png_save_int_32, png_get_uint_31 (Cosmin).
 
1435
  Added type cast (png_byte) in png_write_sCAL() (Cosmin).
 
1436
  Fixed scripts/makefile.cygwin (Christian Biesinger, Cosmin).
 
1437
  Default iTXt support was inadvertently enabled.
 
1438
 
 
1439
version 1.2.9beta2 [February 21, 2006]
 
1440
 
 
1441
  Check for png_rgb_to_gray and png_gray_to_rgb read transformations before
 
1442
    checking for png_read_dither in pngrtran.c
 
1443
  Revised checking of chromaticity limits to accommodate extended RGB
 
1444
    colorspace (John Denker).
 
1445
  Changed line endings in some of the project files to CRLF, even in the
 
1446
    "Unix" tar distributions (Cosmin).
 
1447
  Made png_get_int_32 and png_save_int_32 always available (Cosmin).
 
1448
  Updated scripts/pngos2.def, scripts/pngw32.def and projects/wince/png32ce.def
 
1449
    with the newly exported functions.
 
1450
  Eliminated distributions without the "configure" script.
 
1451
  Updated INSTALL instructions.
 
1452
 
 
1453
version 1.2.9beta3 [February 24, 2006]
 
1454
 
 
1455
  Fixed CRCRLF line endings in contrib/visupng/VisualPng.dsp
 
1456
  Made libpng.pc respect EXEC_PREFIX (D. P. Kreil, J. Bowler)
 
1457
  Removed reference to pngasmrd.h from Makefile.am
 
1458
  Renamed CHANGES to ChangeLog.
 
1459
  Renamed LICENSE to COPYING.
 
1460
  Renamed ANNOUNCE to NEWS.
 
1461
  Created AUTHORS file.
 
1462
 
 
1463
version 1.2.9beta4 [March 3, 2006]
 
1464
 
 
1465
  Changed definition of PKGCONFIG from $prefix/lib to $libdir in configure.ac
 
1466
  Reverted to filenames LICENSE and ANNOUNCE; removed AUTHORS and COPYING.
 
1467
  Removed newline from the end of some error and warning messages.
 
1468
  Removed test for sqrt() from configure.ac and configure.
 
1469
  Made swap tables in pngtrans.c PNG_CONST (Carlo Bramix).
 
1470
  Disabled default iTXt support that was inadvertently enabled in
 
1471
    libpng-1.2.9beta1.
 
1472
  Added "OS2" to list of systems that don't need underscores, in pnggccrd.c
 
1473
  Removed libpng version and date from *.c files.
 
1474
 
 
1475
version 1.2.9beta5 [March 4, 2006]
 
1476
  Removed trailing blanks from source files.
 
1477
  Put version and date of latest change in each source file, and changed
 
1478
    copyright year accordingly.
 
1479
  More cleanup of configure.ac, Makefile.ac, and associated scripts.
 
1480
  Restored scripts/makefile.elf which was inadvertently deleted.
 
1481
 
 
1482
version 1.2.9beta6 [March 6, 2006]
 
1483
  Fixed typo (16) in configuration files.
 
1484
 
 
1485
version 1.2.9beta7 [March 7, 2006]
 
1486
  Removed libpng.vers and libpng.sym from libpng12_la_SOURCES in Makefile.am
 
1487
  Fixed inconsistent #ifdef's around png_sig_bytes() and png_set_sCAL_s()
 
1488
    in png.h.
 
1489
  Updated makefile.elf as suggested by debian.
 
1490
  Made cosmetic changes to some makefiles, adding LN_SF and other macros.
 
1491
  Made some makefiles accept "exec_prefix".
 
1492
 
 
1493
version 1.2.9beta8 [March 9, 2006]
 
1494
  Fixed some "#if defined (..." which should be "#if defined(..."
 
1495
    Bug introduced in libpng-1.2.8.
 
1496
  Fixed inconsistency in definition of png_default_read_data()
 
1497
  Restored blank that was lost from makefile.sggcc "clean" target in beta7.
 
1498
  Revised calculation of "current" and "major" for irix in ltmain.sh
 
1499
  Changed "mkdir" to "MKDIR_P" in some makefiles.
 
1500
  Separated PNG_EXPAND and PNG_EXPAND_tRNS.
 
1501
  Added png_set_expand_gray_1_2_4_to_8() and deprecated
 
1502
    png_set_gray_1_2_4_to_8() which also expands tRNS to alpha.
 
1503
 
 
1504
version 1.2.9beta9 [March 10, 2006]
 
1505
  Include "config.h" in pngconf.h when available.
 
1506
  Added some checks for NULL png_ptr or NULL info_ptr (timeless)
 
1507
 
 
1508
version 1.2.9beta10 [March 20, 2006]
 
1509
  Removed extra CR from contrib/visualpng/VisualPng.dsw (Cosmin)
 
1510
  Made pnggccrd.c PIC-compliant (Christian Aichinger).
 
1511
  Added makefile.mingw (Wolfgang Glas).
 
1512
  Revised pngconf.h MMX checking.
 
1513
 
 
1514
version 1.2.9beta11 [March 22, 2006]
 
1515
  Fixed out-of-order declaration in pngwrite.c that was introduced in beta9
 
1516
  Simplified some makefiles by using LIBSO, LIBSOMAJ, and LIBSOVER macros.
 
1517
 
 
1518
version 1.2.9rc1 [March 31, 2006]
 
1519
  Defined PNG_USER_PRIVATEBUILD when including "pngusr.h" (Cosmin).
 
1520
  Removed nonsensical assertion check from pngtest.c (Cosmin).
 
1521
 
 
1522
version 1.2.9 [April 14, 2006]
 
1523
  Revised makefile.beos and added "none" selector in ltmain.sh
 
1524
 
 
1525
version 1.2.10beta1 [April 15, 2006]
 
1526
  Renamed "config.h" to "png_conf.h" and revised Makefile.am to add
 
1527
    -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h
 
1528
    to include png_conf.h only when PNG_BUILDING_LIBPNG is defined.
 
1529
 
 
1530
version 1.2.10beta2 [April 15, 2006]
 
1531
  Manually updated Makefile.in and configure.  Changed png_conf.h.in
 
1532
    back to config.h.
 
1533
 
 
1534
version 1.2.10beta3 [April 15, 2006]
 
1535
  Change png_conf.h back to config.h in pngconf.h.
 
1536
 
 
1537
version 1.2.10beta4 [April 16, 2006]
 
1538
  Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*.
 
1539
 
 
1540
version 1.2.10beta5 [April 16, 2006]
 
1541
  Added a configure check for compiling assembler code in pnggccrd.c
 
1542
 
 
1543
version 1.2.10beta6 [April 17, 2006]
 
1544
  Revised the configure check for pnggccrd.c
 
1545
  Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@
 
1546
  Added @LIBPNG_DEFINES@ to arguments when building libpng.sym
 
1547
 
 
1548
version 1.2.10beta7 [April 18, 2006]
 
1549
  Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles.
 
1550
 
 
1551
version 1.2.10rc1 [April 19, 2006]
 
1552
  Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD
 
1553
  Fixed "LN_FS" typo in makefile.sco and makefile.solaris.
 
1554
 
 
1555
version 1.2.10rc2 [April 20, 2006]
 
1556
  Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE
 
1557
   in configure.ac and configure
 
1558
  Made the configure warning about versioned symbols less arrogant.
 
1559
 
 
1560
version 1.2.10rc3 [April 21, 2006]
 
1561
  Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
 
1562
    writing an embedded PNG without the 8-byte signature.
 
1563
  Revised makefiles and configure to avoid making links to libpng.so.*
 
1564
 
 
1565
version 1.2.10 [April 23, 2006]
 
1566
  Reverted configure to "rc2" state.
 
1567
 
 
1568
version 1.2.11beta1 [May 31, 2006]
 
1569
  scripts/libpng.pc.in contained "configure" style version info and would
 
1570
    not work with makefiles.
 
1571
  The shared-library makefiles were linking to libpng.so.0 instead of
 
1572
    libpng.so.3 compatibility as the library.
 
1573
 
 
1574
version 1.2.11beta2 [June 2, 2006]
 
1575
  Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
 
1576
    buffer overflow.
 
1577
  Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb)
 
1578
 
 
1579
version 1.2.11beta3 [June 5, 2006]
 
1580
  Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
 
1581
  Removed the accidental leftover Makefile.in~ (Cosmin).
 
1582
  Avoided potential buffer overflow and optimized buffer in
 
1583
    png_write_sCAL(), png_write_sCAL_s() (Cosmin).
 
1584
  Removed the include directories and libraries from CFLAGS and LDFLAGS
 
1585
    in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).
 
1586
 
 
1587
version 1.2.11beta4 [June 6, 2006]
 
1588
  Allow zero-length IDAT chunks after the entire zlib datastream, but not
 
1589
    after another intervening chunk type.
 
1590
 
 
1591
version 1.0.19rc1, 1.2.11rc1 [June 13, 2006]
 
1592
  Deleted extraneous square brackets from [config.h] in configure.ac
 
1593
 
 
1594
version 1.0.19rc2, 1.2.11rc2 [June 14, 2006]
 
1595
  Added prototypes for PNG_INCH_CONVERSIONS functions to png.h
 
1596
  Revised INSTALL and autogen.sh
 
1597
  Fixed typo in several makefiles (-W1 should be -Wl)
 
1598
  Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
 
1599
 
 
1600
version 1.0.19rc3, 1.2.11rc3 [June 15, 2006]
 
1601
  Removed the new typedefs for 64-bit systems (delay until version 1.4.0)
 
1602
  Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
 
1603
    reading out of bounds.
 
1604
 
 
1605
version 1.0.19rc4, 1.2.11rc4 [June 15, 2006]
 
1606
  Really removed the new typedefs for 64-bit systems.
 
1607
 
 
1608
version 1.0.19rc5, 1.2.11rc5 [June 22, 2006]
 
1609
  Removed png_sig_bytes entry from scripts/pngw32.def
 
1610
 
 
1611
version 1.0.19, 1.2.11 [June 26, 2006]
 
1612
  None.
 
1613
 
 
1614
version 1.0.20, 1.2.12 [June 27, 2006]
 
1615
  Really increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
 
1616
    buffer overflow.
 
1617
 
 
1618
version 1.2.13beta1 [October 2, 2006]
 
1619
  Removed AC_FUNC_MALLOC from configure.ac
 
1620
  Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
 
1621
  Change "logical" to "bitwise" throughout documentation.
 
1622
  Detect and fix attempt to write wrong iCCP profile length.
 
1623
 
 
1624
version 1.0.21, 1.2.13 [November 14, 2006]
 
1625
  Fix potential buffer overflow in sPLT chunk handler.
 
1626
  Fix Makefile.am to not try to link to noexistent files.
 
1627
  Check all exported functions for NULL png_ptr.
 
1628
 
 
1629
version 1.2.14beta1 [November 17, 2006]
 
1630
  Relocated three misplaced tests for NULL png_ptr.
 
1631
  Built Makefile.in with automake-1.9.6 instead of 1.9.2.
 
1632
  Build configure with autoconf-2.60 instead of 2.59
 
1633
 
 
1634
version 1.2.14beta2 [November 17, 2006]
 
1635
  Added some typecasts in png_zalloc().
 
1636
 
 
1637
version 1.2.14rc1 [November 20, 2006]
 
1638
  Changed "strtod" to "png_strtod" in pngrutil.c
 
1639
 
 
1640
version 1.0.22, 1.2.14    [November 27, 2006]
 
1641
  Added missing "$(srcdir)" in Makefile.am and Makefile.in
 
1642
 
 
1643
version 1.2.15beta1 [December 3, 2006]
 
1644
  Generated configure with autoconf-2.61 instead of 2.60
 
1645
  Revised configure.ac to update libpng.pc and libpng-config.
 
1646
 
 
1647
version 1.2.15beta2 [December 3, 2006]
 
1648
  Always export MMX asm functions, just stubs if not building pnggccrd.c
 
1649
 
 
1650
version 1.2.15beta3 [December 4, 2006]
 
1651
  Add "png_bytep" typecast to profile while calculating length in pngwutil.c
 
1652
 
 
1653
version 1.2.15beta4 [December 7, 2006]
 
1654
  Added scripts/CMakeLists.txt
 
1655
  Changed PNG_NO_ASSEMBLER_CODE to PNG_NO_MMX_CODE in scripts, like 1.4.0beta
 
1656
 
 
1657
version 1.2.15beta5 [December 7, 2006]
 
1658
  Changed some instances of PNG_ASSEMBLER_* to PNG_MMX_* in pnggccrd.c
 
1659
  Revised scripts/CMakeLists.txt
 
1660
 
 
1661
version 1.2.15beta6 [December 13, 2006]
 
1662
  Revised scripts/CMakeLists.txt and configure.ac
 
1663
 
 
1664
version 1.2.15rc1 [December 18, 2006]
 
1665
  Revised scripts/CMakeLists.txt
 
1666
 
 
1667
version 1.2.15rc2 [December 21, 2006]
 
1668
  Added conditional #undef jmpbuf in pngtest.c to undo #define in AIX headers.
 
1669
  Added scripts/makefile.nommx
 
1670
 
 
1671
version 1.2.15rc3 [December 25, 2006]
 
1672
  Fixed shared library numbering error that was intruduced in 1.2.15beta6.
 
1673
 
 
1674
version 1.2.15rc4 [December 27, 2006]
 
1675
  Fixed handling of rgb_to_gray when png_ptr->color.gray isn't set.
 
1676
 
 
1677
version 1.2.15rc5 [December 31, 2006]
 
1678
  Revised handling of rgb_to_gray.
 
1679
 
 
1680
version 1.2.15 [January 5, 2007]
 
1681
  Added some (unsigned long) typecasts in pngtest.c to avoid printing errors.
 
1682
 
 
1683
version 1.2.16beta1 [January 6, 2007]
 
1684
  Fix bugs in makefile.nommx
 
1685
 
 
1686
version 1.2.16beta2 [January 16, 2007]
 
1687
  Revised scripts/CMakeLists.txt
 
1688
 
 
1689
version 1.2.16 [January 31, 2007]
 
1690
  No changes.
 
1691
 
 
1692
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 
1693
(subscription required; visit
 
1694
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 
1695
to subscribe)
 
1696
or to glennrp at users.sourceforge.net
 
1697
 
 
1698
Glenn R-P