[master] Revised iTXt support and documentation

This commit is contained in:
Glenn Randers-Pehrson 2009-11-01 08:47:04 -06:00
parent dc38e24fed
commit 3de7bde0e1
5 changed files with 18 additions and 16 deletions

View File

@ -100,6 +100,10 @@ version 1.2.41beta10 [November 1, 2009]
been building previous versions with PNG_iTXt_SUPPORTED as well. been building previous versions with PNG_iTXt_SUPPORTED as well.
version 1.2.41beta11 [November 1, 2009] version 1.2.41beta11 [November 1, 2009]
Revised iTXt support. To ensure binary compatibility with
previous versions, the "lang" and "lang_key" members will be assumed
to be omitted from previous versions whenever there is a library
mismatch.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net

View File

@ -2530,6 +2530,10 @@ version 1.2.41beta10 [November 1, 2009]
been building previous versions with PNG_iTXt_SUPPORTED as well. been building previous versions with PNG_iTXt_SUPPORTED as well.
version 1.2.41beta11 [November 1, 2009] version 1.2.41beta11 [November 1, 2009]
Revised iTXt support. To ensure binary compatibility with
previous versions, the "lang" and "lang_key" members will be assumed
to be omitted from previous versions whenever there is a library
mismatch.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -2951,11 +2951,7 @@ png_create_write_struct_2(), png_set_mem_fn(), png_get_mem_ptr(),
png_malloc_default(), and png_free_default() were added. png_malloc_default(), and png_free_default() were added.
Support for the iTXt chunk has been enabled by default as of Support for the iTXt chunk has been enabled by default as of
version 1.2.41. If you have been defining PNG_iTXt_SUPPORTED version 1.2.41.
already, please continue to do so, as a signal to libpng that your
previous versions also supported iTXt. If you have not been defining
PNG_iTXt_SUPPORTED, please don't start now; it will be enabled for
you by default.
Support for certain MNG features was enabled. Support for certain MNG features was enabled.

View File

@ -3772,11 +3772,7 @@ png_create_write_struct_2(), png_set_mem_fn(), png_get_mem_ptr(),
png_malloc_default(), and png_free_default() were added. png_malloc_default(), and png_free_default() were added.
Support for the iTXt chunk has been enabled by default as of Support for the iTXt chunk has been enabled by default as of
version 1.2.41. If you have been defining PNG_iTXt_SUPPORTED version 1.2.41.
already, please continue to do so, as a signal to libpng that your
previous versions also supported iTXt. If you have not been defining
PNG_iTXt_SUPPORTED, please don't start now; it will be enabled for
you by default.
Support for certain MNG features was enabled. Support for certain MNG features was enabled.

View File

@ -662,18 +662,20 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
if (png_ptr == NULL || info_ptr == NULL || num_text == 0) if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
return(0); return(0);
#ifdef PNG_iTXt_NOT_PREVIOUSLY_SUPPORTED
/* If an earlier version of the library was used to build the /* If an earlier version of the library was used to build the
* application, it might be using a png_textp structure that * application, it might be using a png_textp structure that
* does not contain the lang or lang_key elements. If you build * does not contain the lang or lang_key elements. Even if you build
* this library with PNG_iTXt_SUPPORTED explicitly defined, * this library with PNG_iTXt_SUPPORTED explicitly defined,
* then we assume that your older library was also built with * and your older library was also built with PNG_iTXt_SUPPORTED
* PNG_iTXt_SUPPORTED defined and the complete png_textp structure * defined, the complete png_textp structure probably has not existed
* has existed all along and it's safe to access them. See pngconf.h. * all along and it's not safe to access them, due to a bug in
* pngconf.h from version 1.2.9 to 1.2.40.
*
* To do: accept mismatched libraries when both are version 1.2.41
* or later.
*/ */
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
caller_no_itxt = 1; caller_no_itxt = 1;
#endif
/* Make sure we have enough space in the "text" array in info_struct /* Make sure we have enough space in the "text" array in info_struct
* to hold all of the incoming text_ptr objects. * to hold all of the incoming text_ptr objects.