diff --git a/src/configure b/src/configure index e78a2b5..f1e5030 100755 --- a/src/configure +++ b/src/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57 for GD 2.0.12. +# Generated by GNU Autoconf 2.57 for GD 2.0.13. # # Report bugs to . # @@ -427,8 +427,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='GD' PACKAGE_TARNAME='gd' -PACKAGE_VERSION='2.0.12' -PACKAGE_STRING='GD 2.0.12' +PACKAGE_VERSION='2.0.13' +PACKAGE_STRING='GD 2.0.13' PACKAGE_BUGREPORT='gd@boutell.com' ac_unique_file="gd.c" @@ -938,7 +938,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GD 2.0.12 to adapt to many kinds of systems. +\`configure' configures GD 2.0.13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1008,7 +1008,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GD 2.0.12:";; + short | recursive ) echo "Configuration of GD 2.0.13:";; esac cat <<\_ACEOF @@ -1111,7 +1111,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -GD configure 2.0.12 +GD configure 2.0.13 generated by GNU Autoconf 2.57 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 @@ -1126,7 +1126,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GD $as_me 2.0.12, which was +It was created by GD $as_me 2.0.13, which was generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ @@ -1491,7 +1491,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. GDLIB_MAJOR=2 GDLIB_MINOR=0 -GDLIB_REVISION=12 +GDLIB_REVISION=13 GDLIBNAME=gd @@ -1738,7 +1738,7 @@ fi # Define the identity of the package. PACKAGE=gd - VERSION=2.0.12 + VERSION=2.0.13 cat >>confdefs.h <<_ACEOF @@ -11099,7 +11099,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by GD $as_me 2.0.12, which was +This file was extended by GD $as_me 2.0.13, which was generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11162,7 +11162,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GD config.status 2.0.12 +GD config.status 2.0.13 configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/src/configure.ac b/src/configure.ac index 51369ac..4931636 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ(2.54) #HEY! Change BOTH the vesion number and the GDLIB_REVISION setting! -AC_INIT([GD], [2.0.12], [gd@boutell.com]) +AC_INIT([GD], [2.0.13], [gd@boutell.com]) AC_CONFIG_SRCDIR([gd.c]) AC_CONFIG_AUX_DIR(config) GDLIB_MAJOR=2 GDLIB_MINOR=0 -GDLIB_REVISION=12 +GDLIB_REVISION=13 GDLIBNAME=gd AC_SUBST(GDLIB_MAJOR) diff --git a/src/gd.c b/src/gd.c index 56a8152..19a9771 100644 --- a/src/gd.c +++ b/src/gd.c @@ -939,7 +939,12 @@ gdImageAntiAliasedApply (gdImagePtr im, int px, int py) { float p_dist, p_alpha; unsigned char opacity; - + /* 2.0.13: bounds check! AA_opacity is just as capable of + overflowing as the main pixel array. Arne Jorgensen. */ + if (!gdImageBoundsSafeMacro (im, x, y)) + { + return; + } /* * Find the perpendicular distance from point C (px, py) to the line * segment AB that is being drawn. (Adapted from an algorithm from the @@ -2119,12 +2124,8 @@ gdImageCopyMerge (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, tox++; continue; } - /* - * If it's the same image, mapping is NOT trivial since we - * merge with greyscale target, but if pct is 100, the grey - * value is not used, so it becomes trivial. pjw 2.0.12. - */ - if (dst == src && pct == 100) + /* If it's the same image, mapping is trivial */ + if (dst == src) { nc = c; } @@ -2175,8 +2176,12 @@ gdImageCopyMergeGray (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, tox++; continue; } - /* If it's the same image, mapping is trivial */ - if (dst == src) + /* + * If it's the same image, mapping is NOT trivial since we + * merge with greyscale target, but if pct is 100, the grey + * value is not used, so it becomes trivial. pjw 2.0.12. + */ + if (dst == src && pct == 100) { nc = c; } diff --git a/src/gd_gd2.c b/src/gd_gd2.c index cad219c..ab6af3d 100644 --- a/src/gd_gd2.c +++ b/src/gd_gd2.c @@ -649,7 +649,7 @@ gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w, int h) if (!_gd2ReadChunk (chunkIdx[chunkNum].offset, compBuf, chunkIdx[chunkNum].size, - chunkBuf, &chunkLen, in)) + (char*) chunkBuf, &chunkLen, in)) { printf ("Error reading comproessed chunk\n"); goto fail2; @@ -671,7 +671,7 @@ gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w, int h) { if (im->trueColor) { - if (!gdGetInt (&ch, in)) + if (!gdGetInt ( (int*) &ch, in)) { ch = 0; /*printf("EOF while reading file\n"); */ diff --git a/src/gd_png.c b/src/gd_png.c index b662e22..44a1eb8 100644 --- a/src/gd_png.c +++ b/src/gd_png.c @@ -465,7 +465,8 @@ gdImagePngPtrEx (gdImagePtr im, int *size, int level) void gdImagePngCtx (gdImagePtr im, gdIOCtx * outfile) { - return gdImagePngCtxEx (im, outfile, -1); + /* 2.0.13: 'return' here was an error, thanks to Kevin Smith */ + gdImagePngCtxEx (im, outfile, -1); } /* This routine is based in part on code from Dale Lutz (Safe Software Inc.) diff --git a/src/gdft.c b/src/gdft.c index 4893815..9f73d51 100644 --- a/src/gdft.c +++ b/src/gdft.c @@ -809,7 +809,9 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, char *tmpstr = 0; int render = (im && (im->trueColor || (fg <= 255 && fg >= -255))); FT_BitmapGlyph bm; - int render_mode = FT_LOAD_RENDER | FT_LOAD_FORCE_AUTOHINT; + /* 2.0.13: Bob Ostermann: don't force autohint, that's just for testing + freetype and doesn't look as good */ + int render_mode = FT_LOAD_DEFAULT; int m, mfound; /* Now tuneable thanks to Wez Furlong */ double linespace = LINESPACE; @@ -965,6 +967,8 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, /* newlines */ if (ch == '\n') { + /* 2.0.13: reset penf.x. Christopher J. Grayce */ + penf.x = 0; penf.y -= face->size->metrics.height * linespace; penf.y = (penf.y - 32) & -64; /* round to next pixel row */ x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64; diff --git a/src/index.html b/src/index.html index 75fa330..02e2339 100644 --- a/src/index.html +++ b/src/index.html @@ -1,12 +1,12 @@ -gd 2.0.12 +gd 2.0.13 -

This is gd 2.0.12.

+

This is gd 2.0.13.

-

gd 2.0.12

+

gd 2.0.13

A graphics library for fast image creation

Follow this link to the latest version @@ -22,7 +22,7 @@ To ensure that your new installation overwrites the old.

ABOUT GD AND GIF: -gd 2.0.12 creates PNG, JPEG and WBMP images, not GIF images. This is a +gd 2.0.13 creates PNG, JPEG and WBMP images, not GIF images. This is a good thing. PNG is a more compact format, and full compression is available. JPEG works best with photographic images, and is still more compatible with the major Web browsers than even PNG is. WBMP is @@ -35,7 +35,7 @@ solution is to move to legally unencumbered, well-compressed, modern image formats such as PNG and JPEG as soon as possible.

-gd 2.0.12 requires that the following libraries +gd 2.0.13 requires that the following libraries also be installed, in order to produce the related image formats. You may skip libraries associated with formats you do not use:

@@ -66,7 +66,7 @@ information. Thank you!

Table of Contents

+

What's new in version 2.0.13?

+

+

+

What's new in version 2.0.12?