2025-10-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/heif.c (ReadHEIFImage): Check the
	heif_image_handle_get_preferred_decoding_colorspace() return code
	for errors. Should fix oss-fuzz 456486373
	"graphicsmagick:enhance_fuzzer: Use-of-uninitialized-value in
	ReadHEIFImage". Luckily, the impact from this issue seems benign.

2025-10-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

2025-10-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* doc/options.imdoc: Document the HEIF security limits settings,
	as much as they already are by the libheif code.

	* coders/heif.c (apply_security_limits): Support all of the
	heif_security_limits options.

	* coders/jpeg.c (WriteJPEGImage): Enforce that JPEG is written as
	RGB unless a different colorspace was specified.

	* coders/heif.c (apply_security_limits): Support setting some
	security limits using 'heif' attributes 'max-number-of-tiles',
	'max-bayer-pattern-pixels', 'max-items', 'max-components',
	'max-iloc-extents-per-item', 'max-size-entity-group', and
	'max-children-per-box'.  Patterned after what was already done in
	ImageMagick, except using 'heif' rather than 'heic'.
	(ReadHEIFImage): Use heif:preserve-colorspace=true or
	heif:preserve-colorspace=1 to return the image in the original
	colorspace. This allows an image to be returned in the original
	YCbCr colorspace rather than RGB.

	* magick/utility.c (MagickAtoULLChk): New private function to
	decode string to an 'unsigned long long'.

2025-10-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/heif.c (ReadHEIFImage): Re-write the HEIF reader (AVIF,
	HEIC, etc.) to be based on heif_image_get_plane_readonly2().
	There is still more to do, such as to provide more user control
	over the decoding.

2025-10-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/heif.c (apply_security_limits): Start using the
	heif_context_get_security_limits() interface to update
	limits. Still limited to a pixels limit for the moment.

	* magick/resize.c (ThumbnailImage): Prevent a divide by zero crash
	similar to ImageMagick's security advisory GHSA-fh55-q5pj-pxgw
	"Divide-by-zero in ThumbnailImage via montage -geometry ":" leads
	to crash".

	* www/INSTALL-windows.rst: Document use of newer (v0.2.13+) libwmf
	version. Jumping forward 24 years!

	* VisualMagick/wmf: Support compilation of libwmf v0.2.13+ with
	Visual Studio 2022.

	* wmf: Import https://github.com/caolanm/libwmf files (v0.2.13+)
	up to commit ec63c9b as of 1/14/25

2025-10-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* README.txt, fuzzing/README.txt, www/INSTALL-windows.rst:
	Documentation updates.

2025-10-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/command.c (MagickCommand): Avoid a crash if
	command_vector is null. Resolves SourceForge issue #758 "gm
	benchmark: NULL pointer dereference when "batch" subcommand is
	passed".

2025-10-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Magick++/drawing-primitives.txt: Update some of the drawing
	primitives summary.

	* magick/render.c (DrawImage): Add support for "decorate none".

2025-10-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/paint.c (ColorFloodfillImage): Address oss-fuzz 450182424
	"graphicsmagick:coder_WMF_fuzzer: Timeout in coder_WMF_fuzzer".
	The problem is that the floodfill algorithm may not converge if a
	clip-mask is present.
	(MatteFloodfillImage): Use resource limited memory for segment
	stack. Throw an error if a clip-mask is present.

2025-10-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/paint.c (ColorFloodfillImage): Disentangle loops and add
	OpenMP to tile fill color or pattern onto floodplane.

	* coders/wmf.c (lite_font_map): Fix memory leaks when type.mgk is
	not found. Addresses oss-fuzz 450082723
	"graphicsmagick:coder_WMF_fuzzer: Direct-leak in AcquireString".

2025-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Magick++/lib/Image.cpp: Translate text with TranslateText()
	prior to setting an attribute with SetImageAttribute for the
	"comment" and "label" attributes given that SetImageAttribute() no
	longer implicitly does that.

	* PerlMagick/Magick.xs: Translate text with TranslateText() prior
	to setting an attribute with SetImageAttribute for the "comment"
	and "label" attributes given that SetImageAttribute() no longer
	implicitly does that.

	* fuzzing/oss-fuzz-build.sh (enable_libwmf): Enable building
	libwmf in the oss-fuzz build.

2025-10-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* fuzzing/oss-fuzz-build.sh: Add build rules for libwmf. Leave
	disabled until the oss-fuzz project picks up changes to the
	Dockerfile.

	* www/INSTALL-windows.rst: Document a new upstream source for
	libwmf.

2025-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* www/: Update URLs in documentation to use https where possible,
	update to re-directed locations, or remove URLs where no viable
	substitute can be found.

2025-09-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/jp2.c (ReadJP2Image): Assume 3 samples per pixel.

	* fuzzing/utils.cc (MagickState): Also set the PixelsResource
	limit.

	* coders/jp2.c (ReadJP2Image): Include width and height resource
	limits, as well as image pixel memory requirements when estimating
	the Jasper max_samples limit value.
	(ReadJP2Image): Use PixelsResource rather than MemoryResource when
	estimating the Jasper max_samples limit value.

2025-09-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* www/benchmarks.rst: Provide an example of how to use Hyperfine
	to benchmark two commands under Linux.

	* www/index.rst: Add/update Coverity and Clang 15 scan-build
	metrics.

	* coders/braille.c (WriteBRAILLEImage): Eliminate a Clang
	scan-build gripe regarding access off the end of an array. In
	practice, this would never happen given that the inputs are
	already sanitized.

	* coders/xpm.c (ParseColor): Eliminate a Clang scan-build gripe
	about use of a "garbage value". It is not clear to me that the
	implementation could actually provoke this issue given the huge
	amount of successful fuzzer tests.

2025-09-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/attribute.c (GenerateEXIFAttribute): Provide a way to
	accept somewhat incorrect field tags.  For the moment, accept
	incorrect field tags, but provide a way to trace the "fishy" field
	tags.

	* fuzzing/oss-fuzz-build.sh (enable_de265): Remove libde265 from
	the oss-fuzz build given that it obviously has never been fuzz
	tested, does not appear to be maintained, and it is producing the
	majority of the reports.

2025-09-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* www/INSTALL-windows.rst: Provide a summary description of the
	3rd party libraries included in the VisualMagick source tree.
	Include when the source code was last updated by the original
	authors, or last updated in the Mercurial repository if the code
	is still being developed.

2025-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* VisualMagick/installer/inc/files-dlls.isx: For modern Visual
	Studio 2019 and later (which is all we support now), default to
	not bundling any run-time at all.  Just assume that the computer
	already has it!  Visual Studio 2015, 2017, 2019, and 2022 all use
	the same runtime package, and it is a system component.

	* VisualMagick/CMakeLists.txt: Increase WINVER to 0x501 so that
	configure may be compiled using Visual Studio 2022.
	* VisualMagick/configure/welcome_page.cpp: Update welcome page
	text so that it fits the screen, and it says that Visual Studio
	2019 (or later) is required.
	* VisualMagick/configure/configure.exe: Update pre-compiled
	configure binary, which is compiled using Visual Studio 2022.

2025-09-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/attribute.c (ValidateIfdTagFmt): Extract tag validation
	code into a reusable function.  Improve tracing.

	* coders/tiff.c (AddIFDExifFields): Trace the field type name.

2025-09-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

2025-09-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* www/authors.rst: Moved Jaroslav Fojtik and Tobias Mark to former
	contributor status. Added missing contributions by Jaroslav
	Fojtik.

	* coders/topol.c (CheckFName): Mask a needless type conversion
	warning. Whitespace-cleanup and indent according to project
	conventions.

	* magick/blob.c (BlobToFile): Mask a needless type conversion warning.

	* magick/magic.c (ListMagicInfo): Avoid needless type conversion warnings.

2025-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/attribute.c (tag_table): Use bit-fields and OR logic to
	handle the case where mutiple TIFF tag types are accepted.
	(GenerateEXIFAttribute): Improve correctness of EXIF tables based
	on specifications and testing with real-world files.  Filter out
	GPS and EXIF tags which fail tests.  Enable use of bsearch().

2025-09-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* fuzzing/oss-fuzz-build.sh: Pass -fno-sanitize=undefined when
	building Jasper and libde265 because they are not prepared to pass
	such testing.

2025-08-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Capture per-library dependency information from
	pkg-config data and provide a per-library library dependency list
	in the final configuration summary.  If pkg-config is executed
	with the --static option, then much more information is revealed
	by the configuration summary.

2025-08-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Remove quoting of PNG_LIBS which prevented
	white-space splitting it into arguments.

2025-08-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Require Autoconf 2.71 (or later) since this
	version is well supported by modern OS build environments.
	Extract the library name (e.g. -lpng16) from PNG_LIBS.

2025-08-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: When libpng information is provided by pkgconf
	(pkg-config), use only the library name that pkgconf
	provides. Addresses SourceForge Patch #85 "Fix detection of png
	debug".

2025-08-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/utility.c (MagickCreateDirectoryPath): Microsoft Windows
	mkdir() does not accept a directory mode argument.  Fix unused
	variable warning related to that.

2025-08-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/bmp.c, coders/dib.c, magick/draw.c, wand/drawing_wand.c:
	Quiet warnings noticed under Microsoft Windows with GCC 15.

2025-08-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/png.c (WriteOnePNGImage): Fix sign-compare warnings.

	* coders/svg.c (ReadSVGImage): Defend against what appears to be a
	failure of xmlStopParser() to cause a stop in development libxml2.
	Should address oss-fuzz 436118547
	"graphicsmagick:coder_SVGZ_fuzzer: Timeout in coder_SVGZ_fuzzer".

	* magick/render.c (DrawImage): Do not dereference null memory
	memory allocation for 'token' fails. Do not ignore
	DrawPatternPath() failure. Addresses oss-fuzz 436131990
	"graphicsmagick:coder_MVG_fuzzer: Null-dereference WRITE in
	DrawImage".

2025-08-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/png.c (WriteOnePNGImage): Pass colormap index for Palette
	image when writing bKGD chunk.
	(WriteOnePNGImage): For Palette image, need to use colormap index
	rather than a computed grayscale value.  This addresses oss-fuzz
	435651831 "graphicsmagick:coder_PNG8_fuzzer: Heap-buffer-overflow
	in WriteOnePNGImage", which became evident after the recent PNG8
	work.
	(WriteOnePNGImage): Replace semi-transparent colors which are very
	close to the transparent background color, with the transparent
	background color.

2025-07-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tests/rwfile.tap: Add tests for PNG24, PNG32, PNG48, and PNG8
	PNG subformats.

	* coders/png.c (WriteOnePNGImage): More work on writing PNG8
	format. It is decided that PNG8 does indeed mean "Indexed-color
	with 8-bit sample depth. Binary transparency is supported, but not
	full-alpha tRNS-type.". As a value add for the user, if the image
	background color is fully transparent, then its color index is
	selected to be the transparent color, and transparency is removed
	from any other non-opaque colors.  If no effective means is found
	to reduce to just one transparent color, opacity is stripped from
	the output.

2025-07-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

2025-07-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/render.c (DrawImage): Primitive and token buffers are
	based on resource-managed memory.

	* coders/tiff.c (AddIFDExifFields): TIFFTAG_COLORMAP depends on
	image specific tags, so do not transfer as an EXIF tag.  Addresses
	oss-fuzz 433440617 "graphicsmagick:coder_TIFF_any_fuzzer:
	Null-dereference READ in _TIFFmemcpy".

2025-07-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/command.c (MogrifyImage): Apply text translations for
	-comment and -label before calling SetImageAttribute().

	* magick/attribute.c (SetImageAttribute): No longer translate
	format requests for special format characters (e.g. "%m:%f %wx%h")
	in attribute text.  These translations were applied for the keys
	"comment" and "label".  This is a change to existing API behavior
	so code depending on this should use TranslateText() to perform
	the translations prior to calling SetImageAttribute().  It is not
	entirely known what impact this may have, but including this
	functionality in SetImageAttribute() was evil given that it is
	also used for text attributes read from file metadata.

	* magick/analyze.c (GetImageBoundingBox): If image rows or columns
	is zero, then return default bounds.  Addresses oss-fuzz 431500052
	"graphicsmagick:coder_SVG_fuzzer: Integer-overflow in
	GetImageBoundingBox".

2025-07-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* coders/tiff.c (AddIFDExifFields): TIFFTAG_TRANSFERFUNCTION
	depends on image specific tags TIFFTAG_BITSPERSAMPLE and
	TIFFTAG_SAMPLESPERPIXEL, which are already banned.  So also ban
	TIFFTAG_TRANSFERFUNCTION. Addresses oss-fuzz 402570327
	"graphicsmagick:coder_TIFF_any_fuzzer: Null-dereference READ in
	_TIFFmemcpy".
	(EXPERIMENTAL_EXIF_TAGS): Enable transfer of EXIF tags by default
	again.

2025-06-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* fuzzing/README.txt: Document how to build de265 using cmake.

	* fuzzing/oss-fuzz-build.sh: Use cmake to build libde265.

2025-06-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/tiff.c (AddExifFields): Only handle EXIF and GPS IFDs
	once.  Avoid infinite recursion.  Addresses oss-fuzz 405456339
	"graphicsmagick:coder_TIFF_any_fuzzer: Stack-overflow in
	AddIFDExifFields".

2025-06-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/png.c (ReadMNGImage): Validate that MNG width or height
	is non-zero. Addresses oss-fuzz 426843901
	"graphicsmagick:coder_MNG_fuzzer: Use-of-uninitialized-value in
	SetImageEx".

2025-06-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* fuzzing/oss-fuzz-build.sh (enable_de265): Re-enable compilation
	of libde265 since I am informed that the build issue is fixed now.

	* magick/attribute.c: Update EXIF tag definitions for Exif Version
	3.0. Add more information about the tags. Explore use of bsearch()
	for tag look-up.

2025-06-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/attribute.c (tag_table): Capture more EXIF tags, and try
	to add tag type information for each tag.

	* coders/png.c (WriteOnePNGImage): Cache the output filename
	before invoking setjmp() and use it when setjmp() returns
	failure. Hopefully will eliminate oss-fuzz 423668251
	"graphicsmagick:coder_PNG24_fuzzer: Null-dereference in
	WriteOnePNGImage", which I have been unable to reproduce, and for
	which the stack trace does not resemble recent code.

2025-06-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* m4/acx_pthread.m4: Update to modern syntax.

	* configure.ac: Check and report the ANSI C compiler language
	standard version and add specific checks for inttypes.h and
	stdint.h.

	* www/INSTALL-unix.rst: Add notes about a C'99 compiler now being
	required.

	* www/INSTALL-windows.rst: Add a note that a Microsoft Visual C++
	Redistributable package is required.

2025-06-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* magick/magick_types.h.in, VisualMagick/magick/magick_types.h.in:
	Reduce to pure C'99 definitions from standard header files.  Note
	that for Visual Studio, Visual Studio 2015 or later is needed in
	order to support C'99.

	* magick/common.h: Use function attribute __gnu_printf__ rather
	than __printf__ in function attribute declarations in order to
	allow C'99 formatters with MINGW64 GCC.  New macro
	MAGICK_FUNC_PRINTF_FORMAT is used for all printf format
	declarations.

	* configure.ac, magick/magick_types.h.in, etc.: First pass at
	depending on a C'99 compliant build environment. Not yet tested
	for Microsoft Windows builds.

2025-06-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/colorspace.c (TransformRGBImage): Validate that CineonLog
	parameters are in legal ranges.  Addresses Coverity 470177
	"Division or modulo by float zero".

	* coders/logo.c (EmbeddedImageList): Provide space for
	"VERTICALRIGHTSHINGLE" string termination.

2025-06-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/utility.c (GetMagickGeometry): Skip resize computions
	given an area ('@') value of zero. Coverity 470174 "Division or
	modulo by float zero ".

	* magick/colorspace.c (RGBTransformImage): Validate that CineonLog
	parameters are in legal ranges.  Addresses Coverity 470177,
	470183, and 470184 "Division or modulo by float zero".

	* magick/describe.c (DescribeImage): Fix Coverity 470181 "Division
	or modulo by float zero".  This is not likely to happen, but
	Coverity has no way to know that.

	* magick/render.c (DrawPolygonPrimitive): Coverity 470185
	"Logically dead code". There is no actual issue of any
	consequence.

	* magick/pixel_cache.c (CheckImagePixelLimits): Change limit range
	check to avoid useless warning about "dead code". Coverity issue
	470175 "Logically dead code" and 376900 "Operands don't affect
	result".

	* coders/rle.c (ReadRLEImage): Verify that integer returned by
	ReadBlobByte() is not EOF, and is in range of unsigned char before
	assigning value. Coverity issue 10235 "Negative loop bound".

	* coders/ps3.c (ZLIBEncode2Image): Assure that z_stream is ended in
	error case.  Coverity issue 470178 "Resource leak".

	* coders/pdf.c (ZLIBEncodeImage): Assure that z_stream is ended in
	error case.  Coverity issue 470180 "Resource leak".

	* coders/caption.c (ReadCAPTIONImage): NULL pointers which are no
	longer needed. Coverity issue 470182 about a memory leak via 'q'
	appears to be bogus.

	* magick/montage.c (CloneMontageInfo): Assure that memory
	allocated by GetMontageInfo() is freed, before overwriting the
	pointer to it with a new allocation.  Coverity issues 470173,
	470176, and 40179.

	* Makefile.am (coverity-build): Add a 'coverity-build' target,
	which only does the Coverity build, without submitting it for
	Coverity analysis.

	* coders/meta.c (ReadMETAImage): WriteBlob() does not perform
	partial writes so remove that apparent assumption.

2025-06-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/meta.c (formatIPTC): Return immediately upon blob I/O
	error.
	(parse8BIM): Return immediately upon blob I/O error.
	(parse8BIMW): Return immediately upon blob I/O error.

2025-06-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* doc/options.imdoc (characters): Document that adding '!' to the
	geometry specification does change the image aspect ratio if
	necessary.  Addresses GraphicsMagick feature request #48
	"-geometry !".

2025-06-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/png.c (WriteOnePNGImage): In error handler, check if
	image is null prior to attempting to dereference it.  This issue
	is recently introduced.  Should resolve oss-fuzz 423668251
	"graphicsmagick:coder_PNG24_fuzzer: Null-dereference in
	WriteOnePNGImage".
	(WriteOnePNGImage): Fix recently-introduced typo which causes heap
	buffer overflow. Should resolve oss-fuzz 423417425
	"graphicsmagick:coder_PNG8_fuzzer: Heap-buffer-overflow in
	WriteOnePNGImage".

	* NEWS.txt: Update the news.

	* magick/transform.c (TransformImage): If crop_geometry contains
	'%', that should not block a full list of image tiles from being
	generated.  Resolves SourceForge issue #717 "-crop does not
	generate tiles when used with a percentage".

2025-06-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* coders/png.c (WriteOnePNGImage): Fix broken tRNS table when
	writing via "PNG8". Warn if pixel transparencies are independent
	of color palette, since this results in a loss of image
	quality. Remove output file if an error occurs.  Addresses
	SourceForge issue #755 "Converting to indexed PNG produces invalid
	file".

2025-06-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/wpg.c (ReadWPGImage): Fix improper usage of
	MagickReallocateResourceLimitedMemory().  Addresses oss-fuzz
	422512441 "graphicsmagick:coder_WPG_fuzzer: Direct-leak in
	_MagickReallocateResourceLimitedMemory ()".

	* magick/resource.c (DestroyMagickResources): If
	DEBUG_MAGICK_RESOURCES is enabled, do not assert unless
	DEBUG_MAGICK_RESOURCES_ASSERT is also enabled. An assertion
	prevents valgrind from showing us where the leaks are.

	* magick/memory.c: Document that
	_MagickReallocateResourceLimitedMemory() returns a discrete
	pointer, similar to realloc().  This means it does not work the
	same as MagickReallocateMemory().

	* magick/tsd.c (MagickTsdKeyCreate2): Fix GCC
	-Wcalloc-transposed-args related warning.

2025-06-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/svg.c: GetStyleTokens, GetTransformTokens, and
	SVGProcessTransformString should have a 'const SVGInfo *svg_info'
	argument rather than a wrong and misleading 'void *context'
	argument. Fixes a crash which was recently introduced.
	(ReadSVGImage): Fix some leaked memory resources, which were not
	leaked while using SVGEndDocument().

	* coders/msl.c (ReadMSLImage): Use libxml2's SAX handlers for the
	MVG XML-based scripting implementation.  These changes are
	informed by Nick Wellnhofer's changes to ImageMagick's SVG
	renderer as provided in ImageMagick pull request 7784 at
	"https://github.com/ImageMagick/ImageMagick/pull/7784/commits/c0405a520b6e0e445dd8f70c1883125d2015c298".
	This should resolve the MVG portion of SourceForge issue #749 "Use
	libxml2's SAX handlers".
	(MSLInfo): Add signature to MSLInfo.

	* coders/svg.c (SVGInfo): Add signature to SVGInfo.

2025-05-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/svg.c (ReadSVGImage): Use libxml2's SAX handlers for the
	SVG renderer.  These changes are informed by Nick Wellnhofer's
	changes to ImageMagick's SVG renderer as provided in ImageMagick
	pull request 7784 at
	"https://github.com/ImageMagick/ImageMagick/pull/7784/commits/c0405a520b6e0e445dd8f70c1883125d2015c298".
	This should resolve the SVG portion of SourceForge issue #749 "Use
	libxml2's SAX handlers".

2025-05-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* fuzzing/oss-fuzz-build.sh: Now that libpng configure.ac has been
	fixed upstream, restore 'autoreconf -fiv' step when building
	libpng.

2025-05-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/tiff.c: Add support for libtiff 4.5 TIFFWarningExtR() and
	TIFFErrorExtR() in order to provide an error handling context per
	TIFF handle.  This improves concurrency and thread safety when
	multiple libraries are using libtiff within the same process.
	Resolves SourceForge issue #753 "Support TIFFErrorExtR() in TIFF
	coder".

2025-05-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* scripts/format_c_api_doc.py (proto_pretty): Fix regular
	expression encoding.

2025-05-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/xpm.c (ParseColor): Avoid truncation of nul character
	from "g4 ".

	* coders/logo.c (EmbeddedImageList): Avoid truncation of nul
	character from "VERTICALRIGHTSHINGLE".

	* magick/utility.c (GetPageGeometry): Avoid truncation of nul
	character from "LETTERSMALL".

	* magick/attribute.c: Avoid truncation of nul character from
	"ThumbnailPrimaryChromaticities".

	* fuzzing/README.txt: Add notes regarding how to build libjxl for
	testing.

2025-05-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/jxl.c (ReadJXLImage): More effort to free profile memory
	if JxlDecoderSetBoxBuffer() fails. Addresses oss-fuzz issue
	"graphicsmagick:coder_TIFF_any_fuzzer: Direct-leak in
	_MagickReallocateResourceLimitedMemory".  Maybe this will fix it.

2025-05-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/magick_types.h.in: Retreat from use of C'99 printf
	macros.  The approach used was not working out, and especially
	under Microsoft Windows.  This means that most changes made
	yesterday are reverted.

2025-05-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* www/INSTALL-windows.rst: Suggest that GraphicsMagick now
	requires (or will soon require) at least a working C'99 compiler
	and headers in order to compile under Microsoft Visual
	Studio. Visual Studio support will re-start from Visual Studio
	2019 rather than the 2008 edition.

	* magick/magick_types.h.in: Use types and declarations from
	inttypes.h and stddef.h rather than values from the configure
	script.  It seems long enough since 1999 that we can rely on these
	headers now. ;-)

	* configure.ac: Remove code to compute sized types for current CPU
	and compiler options.

2025-05-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/jxl.c (ReadJXLImage): Free profile memory if
	JxlDecoderSetBoxBuffer() fails. Addresses oss-fuzz issue
	"graphicsmagick:coder_TIFF_any_fuzzer: Direct-leak in
	_MagickReallocateResourceLimitedMemory".

	* fuzzing/oss-fuzz-build.sh: Disable 'harfbuzz' in freetype build
	in order to avoid compilation error due to use of RTLD_DEFAULT.

2025-03-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

2025-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/jxl.c (ReadJXLImage): pixel_format.num_channels needs to
	be 2 for grayscale matte.  Addresses oss-fuzz 406320404
	"graphicsmagick:coder_JXL_fuzzer: Heap-buffer-overflow in
	ImportViewPixelArea".

2025-03-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/tiff.c (AddIFDExifFields): Check for overflow of computed
	unsigned value. Code is only active if EXPERIMENTAL_EXIF_TAGS is
	true.  Addresses oss-fuzz 403696329
	"graphicsmagick:coder_TIFF_any_fuzzer: Crash in LD_UINT16_HI".

	Reflow code to match the conventions used by the rest of the
	project.

2025-03-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Updated the news.

	* fuzzing/oss-fuzz-build.sh (CPPFLAGS): Continue to enable
	EXPERIMENTAL_EXIF_TAGS in oss-fuzz build in order to continue
	testing writing EXIF in TIFF format.

	* coders/tiff.c (EXPERIMENTAL_EXIF_TAGS): Disable
	EXPERIMENTAL_EXIF_TAGS by default until libtiff API weaknesses are
	resolved.

2025-03-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/jp2.c (ReadJP2Image): Add casts in order to avoid
	compilation warnings with old Jasper.

2025-03-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* README.txt: Refresh README text.

2025-02-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* wand/magick_wand.c: Fix comment indentation issue which was
	causing some functions to not appear in the formatted
	documentation.  Thanks to Robert C. <robgcs@users.sourceforge.net>
	for reporting that documentation for some functions were missing.

2025-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/nt_base.h: Update notes regarding `_MSC_VER` values and
	Visual C++ versions.

	* www/index.rst: Promote the Mercurial repository at
	https://foss.heptapod.net/graphicsmagick/graphicsmagick since it
	seems to work better.

2025-02-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/magic.c: Make the magic-based format descriptions more
	detailed and helpful.

2025-02-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/magic.c (ListMagicInfo): Include a format description in
	the output of 'gm convert -list magic'.

2025-02-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* magick/magic.c: Add a Magic description field in order to help
	identify and document format variants based on header magic.
	(GetMagickFileFormat): Trace the format description at Coder
	level.

2025-01-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/png.c (WriteOnePNGImage): Ignore exessively short ICM
	profiles.  Should address oss-fuzz 392927700
	"graphicsmagick:coder_PNG64_fuzzer: Heap-buffer-overflow in
	png_write_iCCP".

	* magick/magic.c (StaticMagic): Identify some more HEIF
	sub-formats.

	* coders/heif.c (ReadHEIFImage): Request the primary image handle
	from libheif. Do not throw an error if there is more than one
	image in the heif.  Patch by Kevin Clauson and submitted via
	SourceForge patch #84 "Patch: use primary image for heic even when
	have multiple image".

2025-01-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* coders/heif.c (ReadMetadata): Only apply Exif orientation if
	ignore-transformations is true since HEIF native transformations
	will handle orientation otherwise.  Patch by Kevin Clauson via
	GraphicsMagick SourceForge patch #83 "Patch: Fix HEIC Orientation
	Issue".

2025-01-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* wand/magick_wand.c (MagickSetImagePixels): If update image has
	matte, then promote canvas image to have matte.  Support composing
	individual channels 'R', 'G', 'B', 'A', 'O', 'T', 'C', 'M', 'Y',
	'K'. Intended to address SourceForge issue #752
	"MagickResizeImage() discarding alpha values".

2025-01-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tests/rwfile.c: Fix another GCC warning.

2025-01-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* coders/jpeg.c (WriteJPEGImage): Properly invert CMYK components
	when writing.  Addresses SourceForge bug #751 "all CMYK colorspace
	image become black-white inverted".  This bug was introduced in
	GraphicsMagick 1.3.43. Existing files which appear "corrupt" due
	to this issue may be salvaged by using the -negate command like
	"gm convert bad-cmyk.jpg -negate good-cmyk.jpg".

	* www/INSTALL-unix.rst: Document the Docutils version necessary to
	format reStructuredText files to HTML format.

2025-01-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* www/wand/Makefile.am ($(WWWWANDAPIDIR)/%.apirst): Pass an
	absolute path to format_c_api_doc.py --include-rst argument.

	* magick/magick_endian.c (MagickReverseBits): Function has never
	been used for anything.  Mark it as deprecated.
	MagickGetBitRevTable(): Function has never been used for anything.
	Mark it as deprecated.

2025-01-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* NEWS.txt: Update the news.

	* Update copyright year and rotate ChangeLog.
