summaryrefslogtreecommitdiff
path: root/ext/gd/gd.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/gd/gd.c')
-rw-r--r--ext/gd/gd.c91
1 files changed, 58 insertions, 33 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 511e349586..bd82f1ce70 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -49,7 +49,7 @@
#include <gdfontmb.h> /* 3 Medium bold font */
#include <gdfontl.h> /* 4 Large font */
#include <gdfontg.h> /* 5 Giant font */
-#if HAVE_LIBTTF
+#ifdef ENABLE_GD_TTF
# include "gdttf.h"
#endif
@@ -57,7 +57,7 @@
#define M_PI 3.14159265358979323846
#endif
-#if HAVE_LIBTTF
+#ifdef ENABLE_GD_TTF
static void php3_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int);
#endif
@@ -118,7 +118,7 @@ function_entry gd_functions[] = {
{"imagesx", php3_imagesxfn, NULL},
{"imagesy", php3_imagesyfn, NULL},
{"imagedashedline", php3_imagedashedline, NULL},
-#if HAVE_LIBTTF
+#ifdef ENABLE_GD_TTF
{"imagettfbbox", php3_imagettfbbox, NULL},
{"imagettftext", php3_imagettftext, NULL},
#endif
@@ -175,7 +175,7 @@ void php3_info_gd(ZEND_MODULE_INFO_FUNC_ARGS)
#else
php3_printf("Version 1.2");
#endif
-#if HAVE_LIBTTF
+#ifdef ENABLE_GD_TTF
php3_printf(" with FreeType support");
#endif
}
@@ -340,7 +340,8 @@ PHP_FUNCTION(imageloadfont) {
/* {{{ proto int imagecreate(int x_size, int y_size)
Create a new image */
-PHP_FUNCTION(imagecreate) {
+PHP_FUNCTION(imagecreate)
+{
pval *x_size, *y_size;
int ind;
gdImagePtr im;
@@ -362,7 +363,8 @@ PHP_FUNCTION(imagecreate) {
/* {{{ proto int imagecreatefromgif(string filename)
Create a new image from file or URL */
-PHP_FUNCTION(imagecreatefromgif ) {
+PHP_FUNCTION(imagecreatefromgif )
+{
pval *file;
int ind;
gdImagePtr im;
@@ -404,7 +406,8 @@ PHP_FUNCTION(imagecreatefromgif ) {
/* {{{ proto int imagedestroy(int im)
Destroy an image */
-PHP_FUNCTION(imagedestroy) {
+PHP_FUNCTION(imagedestroy)
+{
pval *imgind;
if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &imgind) == FAILURE) {
@@ -421,7 +424,8 @@ PHP_FUNCTION(imagedestroy) {
/* {{{ proto int imagecolorallocate(int im, int red, int green, int blue)
Allocate a color for an image */
-PHP_FUNCTION(imagecolorallocate) {
+PHP_FUNCTION(imagecolorallocate)
+{
pval *imgind, *red, *green, *blue;
int ind, ind_type;
int col;
@@ -457,7 +461,8 @@ PHP_FUNCTION(imagecolorallocate) {
/* im, x, y */
/* {{{ proto int imagecolorat(int im, int x, int y)
Get the index of the color of a pixel */
-PHP_FUNCTION(imagecolorat) {
+PHP_FUNCTION(imagecolorat)
+{
pval *imgind, *x, *y;
int ind, ind_type;
gdImagePtr im;
@@ -493,7 +498,8 @@ PHP_FUNCTION(imagecolorat) {
/* {{{ proto int imagecolorclosest(int im, int red, int green, int blue)
Get the index of the closest color to the specified color */
-PHP_FUNCTION(imagecolorclosest) {
+PHP_FUNCTION(imagecolorclosest)
+{
pval *imgind, *red, *green, *blue;
int ind, ind_type;
int col;
@@ -528,7 +534,8 @@ PHP_FUNCTION(imagecolorclosest) {
/* {{{ proto int imagecolordeallocate(int im, int index)
De-allocate a color for an image */
-PHP_FUNCTION(imagecolordeallocate) {
+PHP_FUNCTION(imagecolordeallocate)
+{
pval *imgind, *index;
int ind, ind_type, col;
gdImagePtr im;
@@ -562,7 +569,8 @@ PHP_FUNCTION(imagecolordeallocate) {
/* {{{ proto int imagecolorresolve(int im, int red, int green, int blue)
Get the index of the specified color or its closest possible alternative */
-PHP_FUNCTION(imagecolorresolve) {
+PHP_FUNCTION(imagecolorresolve)
+{
pval *imgind, *red, *green, *blue;
int ind, ind_type;
int col;
@@ -597,7 +605,8 @@ PHP_FUNCTION(imagecolorresolve) {
/* {{{ proto int imagecolorexact(int im, int red, int green, int blue)
Get the index of the specified color */
-PHP_FUNCTION(imagecolorexact) {
+PHP_FUNCTION(imagecolorexact)
+{
pval *imgind, *red, *green, *blue;
int ind, ind_type;
int col;
@@ -632,7 +641,8 @@ PHP_FUNCTION(imagecolorexact) {
/* {{{ proto int imagecolorset(int im, int col, int red, int green, int blue)
Set the color for the specified palette index */
-PHP_FUNCTION(imagecolorset) {
+PHP_FUNCTION(imagecolorset)
+{
pval *imgind, *color, *red, *green, *blue;
int ind, ind_type;
int col;
@@ -674,7 +684,8 @@ PHP_FUNCTION(imagecolorset) {
/* {{{ proto array imagecolorsforindex(int im, int col)
Get the colors for an index */
-PHP_FUNCTION(imagecolorsforindex) {
+PHP_FUNCTION(imagecolorsforindex)
+{
pval *imgind, *index;
int col, ind, ind_type;
gdImagePtr im;
@@ -712,7 +723,8 @@ PHP_FUNCTION(imagecolorsforindex) {
/* {{{ proto int imagegif(int im, string filename)
Output image to browser or file */
-PHP_FUNCTION(imagegif ) {
+PHP_FUNCTION(imagegif )
+{
pval *imgind, *file;
gdImagePtr im;
char *fn=NULL;
@@ -791,7 +803,8 @@ PHP_FUNCTION(imagegif ) {
/* {{{ proto int imagesetpixel(int im, int x, int y, int col)
Set a single pixel */
-PHP_FUNCTION(imagesetpixel) {
+PHP_FUNCTION(imagesetpixel)
+{
pval *imarg, *xarg, *yarg, *colarg;
gdImagePtr im;
int col, y, x;
@@ -828,7 +841,8 @@ PHP_FUNCTION(imagesetpixel) {
/* im, x1, y1, x2, y2, col */
/* {{{ proto int imageline(int im, int x1, int y1, int x2, int y2, int col)
Draw a line */
-PHP_FUNCTION(imageline) {
+PHP_FUNCTION(imageline)
+{
pval *IM, *COL, *X1, *Y1, *X2, *Y2;
gdImagePtr im;
int col, y2, x2, y1, x1;
@@ -867,7 +881,8 @@ PHP_FUNCTION(imageline) {
/* {{{ proto int imagedashedline(int im, int x1, int y1, int x2, int y2, int col)
Draw a dashed line */
-PHP_FUNCTION(imagedashedline) {
+PHP_FUNCTION(imagedashedline)
+{
pval *IM, *COL, *X1, *Y1, *X2, *Y2;
gdImagePtr im;
int col, y2, x2, y1, x1;
@@ -906,7 +921,8 @@ PHP_FUNCTION(imagedashedline) {
/* im, x1, y1, x2, y2, col */
/* {{{ proto int imagerectangle(int im, int x1, int y1, int x2, int y2, int col)
Draw a rectangle */
-PHP_FUNCTION(imagerectangle) {
+PHP_FUNCTION(imagerectangle)
+{
pval *IM, *COL, *X1, *Y1, *X2, *Y2;
gdImagePtr im;
int col, y2, x2, y1, x1;
@@ -946,7 +962,8 @@ PHP_FUNCTION(imagerectangle) {
/* im, x1, y1, x2, y2, col */
/* {{{ proto int imagefilledrectangle(int im, int x1, int y1, int x2, int y2, int col)
Draw a filled rectangle */
-PHP_FUNCTION(imagefilledrectangle) {
+PHP_FUNCTION(imagefilledrectangle)
+{
pval *IM, *COL, *X1, *Y1, *X2, *Y2;
gdImagePtr im;
int col, y2, x2, y1, x1;
@@ -985,7 +1002,8 @@ PHP_FUNCTION(imagefilledrectangle) {
/* {{{ proto int imagearc(int im, int cx, int cy, int w, int h, int s, int e, int col)
Draw a partial ellipse */
-PHP_FUNCTION(imagearc) {
+PHP_FUNCTION(imagearc)
+{
pval *COL, *E, *ST, *H, *W, *CY, *CX, *IM;
gdImagePtr im;
int col, e, st, h, w, cy, cx;
@@ -1036,7 +1054,8 @@ PHP_FUNCTION(imagearc) {
/* im, x, y, border, col */
/* {{{ proto int imagefilltoborder(int im, int x, int y, int border, int col)
Flood fill to specific color */
-PHP_FUNCTION(imagefilltoborder) {
+PHP_FUNCTION(imagefilltoborder)
+{
pval *IM, *X, *Y, *BORDER, *COL;
gdImagePtr im;
int col, border, y, x;
@@ -1074,7 +1093,8 @@ PHP_FUNCTION(imagefilltoborder) {
/* im, x, y, col */
/* {{{ proto int imagefill(int im, int x, int y, int col)
Flood fill */
-PHP_FUNCTION(imagefill) {
+PHP_FUNCTION(imagefill)
+{
pval *IM, *X, *Y, *COL;
gdImagePtr im;
int col, y, x;
@@ -1109,7 +1129,8 @@ PHP_FUNCTION(imagefill) {
/* {{{ proto int imagecolorstotal(int im)
Find out the number of colors in an image's palette */
-PHP_FUNCTION(imagecolorstotal) {
+PHP_FUNCTION(imagecolorstotal)
+{
pval *IM;
gdImagePtr im;
int ind_type;
@@ -1133,7 +1154,8 @@ PHP_FUNCTION(imagecolorstotal) {
/* im, col */
/* {{{ proto int imagecolortransparent(int im [, int col])
Define a color as transparent */
-PHP_FUNCTION(imagecolortransparent) {
+PHP_FUNCTION(imagecolortransparent)
+{
pval *IM, *COL = NULL;
gdImagePtr im;
int col;
@@ -1175,7 +1197,8 @@ PHP_FUNCTION(imagecolortransparent) {
/* im, interlace */
/* {{{ proto int imageinterlace(int im [, int interlace])
Enable or disable interlace */
-PHP_FUNCTION(imageinterlace) {
+PHP_FUNCTION(imageinterlace)
+{
pval *IM, *INT = NULL;
gdImagePtr im;
int interlace;
@@ -1218,7 +1241,7 @@ PHP_FUNCTION(imageinterlace) {
arg = 1 filled polygon */
/* im, points, num_points, col */
static void _php3_imagepolygon(INTERNAL_FUNCTION_PARAMETERS, int filled) {
- pval *IM, *POINTS, *NPOINTS, *COL, *var;
+ pval *IM, *POINTS, *NPOINTS, *COL, **var;
gdImagePtr im;
gdPoint points[PolyMaxPoints];
int npoints, col, nelem, i;
@@ -1279,12 +1302,14 @@ static void _php3_imagepolygon(INTERNAL_FUNCTION_PARAMETERS, int filled) {
for (i = 0; i < npoints; i++) {
if (_php3_hash_index_find(POINTS->value.ht, (i * 2), (void **)&var) == SUCCESS) {
- convert_to_long(var);
- points[i].x = var->value.lval;
+ SEPARATE_ZVAL(var);
+ convert_to_long(*var);
+ points[i].x = (*var)->value.lval;
}
if (_php3_hash_index_find(POINTS->value.ht, (i * 2) + 1, (void **)&var) == SUCCESS) {
- convert_to_long(var);
- points[i].y = var->value.lval;
+ SEPARATE_ZVAL(var);
+ convert_to_long(*var);
+ points[i].y = (*var)->value.lval;
}
}
@@ -1671,7 +1696,7 @@ PHP_FUNCTION(imagesyfn)
}
/* }}} */
-#if HAVE_LIBTTF
+#ifdef ENABLE_GD_TTF
#define TTFTEXT_DRAW 0
#define TTFTEXT_BBOX 1