[libpng16] Changed chunk handler warnings into benign errors, incrementally

load iCCP
This commit is contained in:
John Bowler
2012-03-21 07:55:46 -05:00
committed by Glenn Randers-Pehrson
parent 51624965e2
commit b11b31aea2
20 changed files with 1914 additions and 1065 deletions

View File

@@ -286,15 +286,15 @@ $1 == "option" && NF >= 2{
# Else fall through to the error handler
}
# chunk NAME [requires OPT] [on|off|disabled]
# chunk NAME [requires OPT] [enables LIST] [on|off|disabled]
# Expands to the 'option' settings appropriate to the reading and
# writing of an ancilliary PNG chunk 'NAME':
#
# option READ_NAME requires READ_ANCILLARY_CHUNKS [READ_OPT]
# option READ_NAME enables NAME
# option READ_NAME enables NAME LIST
# [option READ_NAME off]
# option WRITE_NAME requires WRITE_ANCILLARY_CHUNKS [WRITE_OPT]
# option WRITE_NAME enables NAME
# option WRITE_NAME enables NAME LIST
# [option WRITE_NAME off]
pre != 0 && $1 == "chunk" && NF >= 2{
@@ -303,6 +303,7 @@ pre != 0 && $1 == "chunk" && NF >= 2{
onoff = ""
reqread = ""
reqwrite = ""
enables = ""
i = 3 # indicates format error
if (NF > 2) {
# read the keywords/additional OPTS
@@ -315,21 +316,25 @@ pre != 0 && $1 == "chunk" && NF >= 2{
else
break # on/off conflict
}
req = 0
} else if ($(i) == "requires")
req = 1
else if (req != 1)
break # bad line: handled below
else {
else if ($(i) == "enables")
req = 2
else if (req == 1){
reqread = reqread " READ_" $(i)
reqwrite = reqwrite " WRITE_" $(i)
}
} else if (req == 2)
enables = enables " " $(i)
else
break # bad line: handled below
}
}
if (i > NF) {
# Output new 'option' lines to the intermediate file (out)
print "option READ_" $2, "requires READ_ANCILLARY_CHUNKS" reqread, "enables", $2, onoff >out
print "option WRITE_" $2, "requires WRITE_ANCILLARY_CHUNKS" reqwrite, "enables", $2, onoff >out
print "option READ_" $2, "requires READ_ANCILLARY_CHUNKS" reqread, "enables", $2 enables , onoff >out
print "option WRITE_" $2, "requires WRITE_ANCILLARY_CHUNKS" reqwrite, "enables", $2 enables, onoff >out
next
}
# Else hit the error handler below - bad line format!

View File

@@ -32,8 +32,12 @@ file pnglibconf.h scripts/pnglibconf.dfa PNGLCONF_H
# option <name> [requires ...] [if ...] [enables ...] [disabled]
# #define PNG_<name>_SUPPORTED if the requirements are met and
# enable the other options listed
# chunk <name> [requires ...] [disabled]
# Enable chunk processing for the given ancillary chunk
# chunk <name> [requires ...] [enables ...] [disabled]
# Enable chunk processing for the given ancillary chunk; any
# 'requires something' expands to READ_something for read and
# WRITE_something for write, but the enables list members are
# used as given (e.g. enables GAMMA just expands to that on the
# correspond READ_name and WRITE_name lines.)
#
# Note that the 'on' and 'off' keywords, while valid on both option
# and chunk, should not be used in this file because they force the
@@ -461,9 +465,18 @@ option WRITE_TEXT requires WRITE_ANCILLARY_CHUNKS enables TEXT
# API is implemented, they get recorded in pnglibconf.h, but
# can't be changed by the application.
# Check the correctness of cHRM chunks
# Colorspace support (enabled as required); just the support for colorant
# information. Gamma support, likewise, is just support for the gamma
# information, READ_GAMMA is required for gamma transformations (so it
# is possible to read PNG gamma without enabling all the libpng transform
# code - do this for applications that do their own gamma processing)
#
# As of 1.6.0 COLORSPACE is only useful if the application processes the
# information; this is because the library does not do any colorspace
# processing, it just validates the data in the PNG file.
option CHECK_cHRM requires cHRM
option GAMMA disabled
option COLORSPACE enables GAMMA disabled
#
# Artificially align memory - the code typically aligns to 8 byte
@@ -560,18 +573,18 @@ setting IDAT_READ_SIZE default PNG_ZBUF_SIZE
# Ancillary chunks
chunk bKGD
chunk cHRM
chunk gAMA
chunk cHRM enables COLORSPACE
chunk gAMA enables GAMMA
chunk hIST
chunk iCCP
chunk iCCP enables COLORSPACE GAMMA
chunk iTXt
chunk oFFs
chunk pCAL
chunk sCAL
chunk pHYs
chunk sBIT
chunk sCAL
chunk sPLT
chunk sRGB
chunk sRGB enables COLORSPACE GAMMA
chunk tEXt requires TEXT
chunk tIME
chunk tRNS

View File

@@ -3,7 +3,7 @@
/* pnglibconf.h - library build configuration */
/* Libpng 1.6.0beta20 - March 19, 2012 */
/* Libpng 1.6.0beta20 - March 21, 2012 */
/* Copyright (c) 1998-2012 Glenn Randers-Pehrson */
@@ -44,9 +44,9 @@
/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/
#define PNG_bKGD_SUPPORTED
#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
#define PNG_CHECK_cHRM_SUPPORTED
#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
#define PNG_cHRM_SUPPORTED
#define PNG_COLORSPACE_SUPPORTED
#define PNG_CONSOLE_IO_SUPPORTED
#define PNG_CONVERT_tIME_SUPPORTED
#define PNG_EASY_ACCESS_SUPPORTED
@@ -58,6 +58,7 @@
#define PNG_FORMAT_AFIRST_SUPPORTED
#define PNG_FORMAT_BGR_SUPPORTED
#define PNG_gAMA_SUPPORTED
#define PNG_GAMMA_SUPPORTED
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
#define PNG_hIST_SUPPORTED
#define PNG_iCCP_SUPPORTED