From 31b3d6b48db3e0fd777676ffbec958c9da943e46 Mon Sep 17 00:00:00 2001 From: ellson Date: Tue, 18 Oct 2005 18:55:50 +0000 Subject: [PATCH] replace // with #if 0 --- lib/gd/depcomp | 423 +++++++++++++++++++++++++++++++++++++++++ lib/gd/err.out | 63 ++++++ lib/gd/gd-2.0.33.patch | 390 +++++++++++++++++++++++++++++++++++++ 3 files changed, 876 insertions(+) create mode 100644 lib/gd/depcomp create mode 100644 lib/gd/err.out create mode 100644 lib/gd/gd-2.0.33.patch diff --git a/lib/gd/depcomp b/lib/gd/depcomp new file mode 100644 index 000000000..807b991f4 --- /dev/null +++ b/lib/gd/depcomp @@ -0,0 +1,423 @@ +#! /bin/sh + +# depcomp - compile a program generating dependencies as side-effects +# Copyright 1999, 2000 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi +# `libtool' can also be set to `yes' or `no'. + +if test -z "$depfile"; then + base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` + dir=`echo "$object" | sed 's,/.*$,/,'` + if test "$dir" = "$object"; then + dir= + fi + # FIXME: should be _deps on DOS. + depfile="$dir.deps/$base" +fi + +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. This file always lives in the current directory. + # Also, the AIX compiler puts `$object:' at the start of each line; + # $object doesn't have directory information. + stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + outname="$stripped.o" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + else + tmpdepfile="$tmpdepfile2" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a space and a tab in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. We will use -o /dev/null later, + # however we can't do the remplacement now because + # `-o $object' might simply not be used + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + -*) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 diff --git a/lib/gd/err.out b/lib/gd/err.out new file mode 100644 index 000000000..484ad5452 --- /dev/null +++ b/lib/gd/err.out @@ -0,0 +1,63 @@ +------------- New fontwheel -------------- +times +.....Hello, there! +------------------------------------------ +------------- New fontwheel -------------- +times +.....Hello, there! +------------------------------------------ +------------- New fontwheel -------------- +arial +.....Hello, there! +------------------------------------------ +------------- New fontwheel -------------- +arial +.....Hello, there! +------------------------------------------ +------------- New fontwheel -------------- +times +Hello, there! +------------------------------------------ +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +------------- New fontwheel -------------- +times +Hello, there! +------------------------------------------ +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +Could not find/open font +------------- New fontwheel -------------- +arial +Hello, there! +------------------------------------------ +------------- New fontwheel -------------- +arial +Hello +there! +------------------------------------------ diff --git a/lib/gd/gd-2.0.33.patch b/lib/gd/gd-2.0.33.patch new file mode 100644 index 000000000..c559bb981 --- /dev/null +++ b/lib/gd/gd-2.0.33.patch @@ -0,0 +1,390 @@ +diff -rub gd-2.0.33/entities.h gd-2.0.33jce3/entities.h +--- gd-2.0.33/entities.h 2004-10-27 10:22:46.000000000 -0400 ++++ gd-2.0.33jce3/entities.h 2005-08-15 11:23:47.000000000 -0400 +@@ -11,7 +11,7 @@ + extern "C" { + #endif + +-struct entities_s { ++static struct entities_s { + char *name; + int value; + } entities[] = { +diff -rub gd-2.0.33/entities.tcl gd-2.0.33jce3/entities.tcl +--- gd-2.0.33/entities.tcl 2004-10-27 10:22:48.000000000 -0400 ++++ gd-2.0.33jce3/entities.tcl 2005-08-15 10:19:33.000000000 -0400 +@@ -32,7 +32,7 @@ + puts $f "extern \"C\" {" + puts $f "#endif" + puts $f "" +-puts $f "struct entities_s {" ++puts $f "static struct entities_s {" + puts $f " char *name;" + puts $f " int value;" + puts $f "} entities\[\] = {" +diff -rub gd-2.0.33/gd.c gd-2.0.33jce3/gd.c +--- gd-2.0.33/gd.c 2004-11-01 13:28:56.000000000 -0500 ++++ gd-2.0.33jce3/gd.c 2005-08-15 11:23:47.000000000 -0400 +@@ -72,9 +72,16 @@ + int i; + gdImagePtr im; + im = (gdImage *) gdMalloc (sizeof (gdImage)); ++ if (!im) ++ return NULL; + memset (im, 0, sizeof (gdImage)); + /* Row-major ever since gd 1.3 */ + im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy); ++ if (!im->pixels) ++ { ++ free(im); ++ return NULL; ++ } + im->polyInts = 0; + im->polyAllocated = 0; + im->brush = 0; +@@ -84,6 +91,15 @@ + { + /* Row-major ever since gd 1.3 */ + im->pixels[i] = (unsigned char *) gdCalloc (sx, sizeof (unsigned char)); ++ if (!im->pixels[i]) ++ { ++ for (--i ; i >= 0; i--) ++ { ++ gdFree(im->pixels[i]); ++ } ++ gdFree(im); ++ return NULL; ++ } + } + im->sx = sx; + im->sy = sy; +diff -rub gd-2.0.33/gd_gif_in.c gd-2.0.33jce3/gd_gif_in.c +--- gd-2.0.33/gd_gif_in.c 2004-11-01 13:28:56.000000000 -0500 ++++ gd-2.0.33jce3/gd_gif_in.c 2005-08-15 11:23:47.000000000 -0400 +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include + #include + #include +diff -rub gd-2.0.33/gd_gif_out.c gd-2.0.33jce3/gd_gif_out.c +--- gd-2.0.33/gd_gif_out.c 2004-11-02 08:41:00.000000000 -0500 ++++ gd-2.0.33jce3/gd_gif_out.c 2005-08-15 11:23:47.000000000 -0400 +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include + #include + #include +diff -rub gd-2.0.33/gd_topal.c gd-2.0.33jce3/gd_topal.c +--- gd-2.0.33/gd_topal.c 2004-10-28 14:12:08.000000000 -0400 ++++ gd-2.0.33jce3/gd_topal.c 2005-08-15 11:23:47.000000000 -0400 +@@ -49,6 +49,10 @@ + #define ORIGINAL_LIB_JPEG_REVERSE_ODD_ROWS + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include + #include "gd.h" + #include "gdhelpers.h" +diff -rub gd-2.0.33/gdfontg.c gd-2.0.33jce3/gdfontg.c +--- gd-2.0.33/gdfontg.c 2004-10-27 10:22:04.000000000 -0400 ++++ gd-2.0.33jce3/gdfontg.c 2005-08-15 11:23:47.000000000 -0400 +@@ -10,6 +10,9 @@ + "Libor Skarvada, libor@informatics.muni.cz" + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #include "gdfontg.h" + +diff -rub gd-2.0.33/gdfontl.c gd-2.0.33jce3/gdfontl.c +--- gd-2.0.33/gdfontl.c 2004-10-27 10:22:04.000000000 -0400 ++++ gd-2.0.33jce3/gdfontl.c 2005-08-15 11:23:47.000000000 -0400 +@@ -11,6 +11,9 @@ + "Libor Skarvada, libor@informatics.muni.cz" + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #include "gdfontl.h" + +diff -rub gd-2.0.33/gdfontmb.c gd-2.0.33jce3/gdfontmb.c +--- gd-2.0.33/gdfontmb.c 2004-10-27 10:22:04.000000000 -0400 ++++ gd-2.0.33jce3/gdfontmb.c 2005-08-15 11:23:47.000000000 -0400 +@@ -9,6 +9,9 @@ + No copyright info was found in the original bdf. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #include "gdfontmb.h" + +diff -rub gd-2.0.33/gdfonts.c gd-2.0.33jce3/gdfonts.c +--- gd-2.0.33/gdfonts.c 2004-10-27 10:22:04.000000000 -0400 ++++ gd-2.0.33jce3/gdfonts.c 2005-08-15 11:23:47.000000000 -0400 +@@ -7,6 +7,9 @@ + No copyright info was found in the original bdf. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #include "gdfonts.h" + +diff -rub gd-2.0.33/gdfontt.c gd-2.0.33jce3/gdfontt.c +--- gd-2.0.33/gdfontt.c 2004-10-27 10:22:04.000000000 -0400 ++++ gd-2.0.33jce3/gdfontt.c 2005-08-15 11:23:47.000000000 -0400 +@@ -10,6 +10,9 @@ + "Libor Skarvada, libor@informatics.muni.cz" + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #include "gdfontt.h" + +diff -rub gd-2.0.33/gdft.c gd-2.0.33jce3/gdft.c +--- gd-2.0.33/gdft.c 2004-11-02 16:00:48.000000000 -0500 ++++ gd-2.0.33jce3/gdft.c 2005-08-15 11:23:47.000000000 -0400 +@@ -832,7 +832,7 @@ + FT_Matrix matrix; + FT_Vector penf, oldpenf, delta, total_min = {0,0}, total_max = {0,0}, glyph_min, glyph_max; + FT_Face face; +- FT_CharMap charmap; ++ FT_CharMap charmap = NULL; + FT_Glyph image; + FT_GlyphSlot slot; + FT_Error err; +@@ -966,8 +966,10 @@ + } + } + ++#if 0 + if (fg < 0) + render_mode |= FT_LOAD_MONOCHROME; ++#endif + + /* find requested charmap */ + encodingfound = 0; +@@ -1208,12 +1210,14 @@ + so we don't have to recheck for the terminating number */ + if (! xshow_alloc) { + xshow_alloc = 100; +- strex->xshow = malloc(xshow_alloc); ++ strex->xshow = gdMalloc(xshow_alloc); + xshow_pos = 0; + } + else if (xshow_pos + 20 > xshow_alloc) { + xshow_alloc += 100; + strex->xshow = realloc(strex->xshow, xshow_alloc); ++ if (! strex->xshow) ++ return "Problem allocating memory with realloc"; + } + xshow_pos += sprintf(strex->xshow + xshow_pos, "%g ", + (double)(penf.x - oldpenf.x) * hdpi / (64 * METRIC_RES)); +@@ -1322,10 +1326,8 @@ + + if (brect) + { /* only if need brect */ +- double dpix, dpiy; +- +- dpix = 64 * METRIC_RES / hdpi; +- dpiy = 64 * METRIC_RES / vdpi; ++ double scalex = (double)hdpi / (64 * METRIC_RES); ++ double scaley = (double)vdpi / (64 * METRIC_RES); + + /* increase by 1 pixel to allow for rounding */ + total_min.x -= METRIC_RES; +@@ -1334,14 +1336,14 @@ + total_max.y += METRIC_RES; + + /* rotate bounding rectangle, scale and round to int pixels, and translate */ +- brect[0] = x + (total_min.x * cos_a + total_max.y * sin_a)/dpix; +- brect[1] = y - (total_min.x * sin_a - total_max.y * cos_a)/dpiy; +- brect[2] = x + (total_max.x * cos_a + total_max.y * sin_a)/dpix; +- brect[3] = y - (total_max.x * sin_a - total_max.y * cos_a)/dpiy; +- brect[4] = x + (total_max.x * cos_a + total_min.y * sin_a)/dpix; +- brect[5] = y - (total_max.x * sin_a - total_min.y * cos_a)/dpiy; +- brect[6] = x + (total_min.x * cos_a + total_min.y * sin_a)/dpix; +- brect[7] = y - (total_min.x * sin_a - total_min.y * cos_a)/dpiy; ++ brect[0] = x + (total_min.x * cos_a + total_max.y * sin_a)*scalex; ++ brect[1] = y - (total_min.x * sin_a - total_max.y * cos_a)*scaley; ++ brect[2] = x + (total_max.x * cos_a + total_max.y * sin_a)*scalex; ++ brect[3] = y - (total_max.x * sin_a - total_max.y * cos_a)*scaley; ++ brect[4] = x + (total_max.x * cos_a + total_min.y * sin_a)*scalex; ++ brect[5] = y - (total_max.x * sin_a - total_min.y * cos_a)*scaley; ++ brect[6] = x + (total_min.x * cos_a + total_min.y * sin_a)*scalex; ++ brect[7] = y - (total_min.x * sin_a - total_min.y * cos_a)*scaley; + } + + FT_Done_Size (platform_independent); +@@ -1510,6 +1512,66 @@ + + #endif /* HAVE_LIBFONTCONFIG */ + ++#ifdef WIN32 ++#define FONTSFX "\\FONTS" ++#define GDP "GDFONTPATH=" ++#define F_OK 0 /* Needed in Windows */ ++ ++/* chkWinFontPath: ++ * See if environment variable envv is defined and ++ * if the path $envv/FONTS exists. If so, return the path, ++ * else return NULL. ++ */ ++static char* ++chkWinFontPath (char* envv) ++{ ++ char* root; ++ char* path; ++ root = getenv(envv); ++ if (!root) return NULL; ++ path = (char*)gdMalloc(strlen(root)+strlen(FONTSFX)+1); ++ strcpy (path, root); ++ strcat (path, FONTSFX); ++ if (access (path, F_OK) == 0) { /* success */ ++ return path; ++ } ++ else { ++ gdFree (path); ++ return NULL; ++ } ++} ++ ++/* getWinFontPath: ++ * Find Windows system font directory. Use environment variables to ++ * find system directory with a FONTS subdirectory. ++ * If successful, set GDFONTPATH to this value, for caching, and return it. ++ * Else, return NULL ++ */ ++static char* ++getWinFontPath () ++{ ++ char* path = chkWinFontPath("SystemRoot"); ++ if (!path) { ++ path = chkWinFontPath ("WinDir"); ++ if (!path) ++ return NULL; ++ } ++#ifdef HAVE_SETENV ++ setenv("GDFONTPATH", path, 1); ++#else ++ { ++ char* ebuf = (char*)gdMalloc(strlen(GDP)+strlen(path)+1); ++ int rv; ++ strcpy(ebuf,GDP); ++ strcat(ebuf,path); ++ rv = putenv(ebuf); ++ } ++#endif ++ return path; ++} ++ ++#endif /* WIN32 */ ++ + /* Look up font using font names as file names. */ + static char * font_path(char **fontpath, char *name_list) + { +@@ -1524,6 +1586,10 @@ + */ + *fontpath = NULL; + fontsearchpath = getenv ("GDFONTPATH"); ++#ifdef WIN32 ++ if (!fontsearchpath) ++ fontsearchpath = getWinFontPath (); ++#endif + if (!fontsearchpath) + fontsearchpath = DEFAULT_FONTPATH; + fontlist = strdup (name_list); +diff -rub gd-2.0.33/gdfx.c gd-2.0.33jce3/gdfx.c +--- gd-2.0.33/gdfx.c 2004-10-27 10:22:07.000000000 -0400 ++++ gd-2.0.33jce3/gdfx.c 2005-08-15 11:23:47.000000000 -0400 +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include "gd.h" + #include + +diff -rub gd-2.0.33/gdhelpers.h gd-2.0.33jce3/gdhelpers.h +--- gd-2.0.33/gdhelpers.h 2004-10-28 13:09:12.000000000 -0400 ++++ gd-2.0.33jce3/gdhelpers.h 2005-08-15 11:23:47.000000000 -0400 +@@ -29,30 +29,38 @@ + + /* 2.0.16: portable mutex support for thread safety. */ + +-#ifdef WIN32 +-/* 2.0.18: must include windows.h to get CRITICAL_SECTION. */ +-#include +-#define gdMutexDeclare(x) CRITICAL_SECTION x +-#define gdMutexSetup(x) InitializeCriticalSection(&x) +-#define gdMutexShutdown(x) DeleteCriticalSection(&x) +-#define gdMutexLock(x) EnterCriticalSection(&x) +-#define gdMutexUnlock(x) LeaveCriticalSection(&x) +-#else +-#ifdef HAVE_PTHREAD +-#include +-#define gdMutexDeclare(x) pthread_mutex_t x +-#define gdMutexSetup(x) pthread_mutex_init(&x, 0) +-#define gdMutexShutdown(x) pthread_mutex_destroy(&x) +-#define gdMutexLock(x) pthread_mutex_lock(&x) +-#define gdMutexUnlock(x) pthread_mutex_unlock(&x) ++#ifdef DISABLE_THREADS ++# define gdMutexDeclare(x) ++# define gdMutexSetup(x) ++# define gdMutexShutdown(x) ++# define gdMutexLock(x) ++# define gdMutexUnlock(x) + #else +-#define gdMutexDeclare(x) +-#define gdMutexSetup(x) +-#define gdMutexShutdown(x) +-#define gdMutexLock(x) +-#define gdMutexUnlock(x) +-#endif /* HAVE_PTHREAD */ +-#endif /* WIN32 */ ++# ifdef WIN32 ++/* 2.0.18: must include windows.h to get CRITICAL_SECTION. */ ++# include ++# define gdMutexDeclare(x) CRITICAL_SECTION x ++# define gdMutexSetup(x) InitializeCriticalSection(&x) ++# define gdMutexShutdown(x) DeleteCriticalSection(&x) ++# define gdMutexLock(x) EnterCriticalSection(&x) ++# define gdMutexUnlock(x) LeaveCriticalSection(&x) ++# else ++# ifdef HAVE_PTHREAD ++# include ++# define gdMutexDeclare(x) pthread_mutex_t x ++# define gdMutexSetup(x) pthread_mutex_init(&x, 0) ++# define gdMutexShutdown(x) pthread_mutex_destroy(&x) ++# define gdMutexLock(x) pthread_mutex_lock(&x) ++# define gdMutexUnlock(x) pthread_mutex_unlock(&x) ++# else ++# define gdMutexDeclare(x) ++# define gdMutexSetup(x) ++# define gdMutexShutdown(x) ++# define gdMutexLock(x) ++# define gdMutexUnlock(x) ++# endif /* HAVE_PTHREAD */ ++# endif /* WIN32 */ ++#endif /* DISABLE_THREADS */ + + #endif /* GDHELPERS_H */ + -- 2.40.0