CVS update: php31/ext/gd
| From: | shane | Date: | Sat, 17 Oct 1998 20:45:31 +0000 |
| Subject: | CVS update: php31/ext/gd | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-1874@lists.php.net to get a copy of this message | ||
Date: Saturday October 17, 1998 @ 16:45
Author: shane
Update of /repository/php31/ext/gd
In directory asf:/u2/tmp/cvs-serv29817/ext/gd
Modified Files:
gd.c gd.dsp gdttf.c gdttf.h php3_gd.h
Log Message:
fixes to get 3.1 compiling again under windows.
mysql ported from 3.0 then backported to 3.0
Some project file updates
porting other extensions from 3.0 in process.
fixes to registry functions to support binary
Index: php31/ext/gd/gd.c
diff -c php31/ext/gd/gd.c:2.5 php31/ext/gd/gd.c:2.6
*** php31/ext/gd/gd.c:2.5 Tue Sep 15 09:01:47 1998
--- php31/ext/gd/gd.c Sat Oct 17 16:45:30 1998
***************
*** 29,35 ****
+----------------------------------------------------------------------+
*/
! /* $Id: gd.c,v 2.5 1998/09/15 13:01:47 ssb Exp $ */
/* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
Cold Spring Harbor Labs. */
--- 29,35 ----
+----------------------------------------------------------------------+
*/
! /* $Id: gd.c,v 2.6 1998/10/17 20:45:30 shane Exp $ */
/* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
Cold Spring Harbor Labs. */
***************
*** 64,70 ****
#include <gdfontl.h> /* 4 Large font */
#include <gdfontg.h> /* 5 Giant font */
#if HAVE_LIBTTF
! #include "gdttf.h"
#endif
#ifndef M_PI
--- 64,70 ----
#include <gdfontl.h> /* 4 Large font */
#include <gdfontg.h> /* 5 Giant font */
#if HAVE_LIBTTF
! #include <functions/gdttf.h>
#endif
#ifndef M_PI
***************
*** 104,115 ****
--- 104,117 ----
{"imagecolorallocate", php3_imagecolorallocate, NULL},
{"imagecolorat", php3_imagecolorat, NULL},
{"imagecolorclosest", php3_imagecolorclosest, NULL},
+ {"imagecolordeallocate", php3_imagecolordeallocate, NULL},
{"imagecolorresolve", php3_imagecolorresolve, NULL},
{"imagecolorexact", php3_imagecolorexact, NULL},
{"imagecolorset", php3_imagecolorset, NULL},
{"imagecolortransparent", php3_imagecolortransparent, NULL},
{"imagecolorstotal", php3_imagecolorstotal, NULL},
{"imagecolorsforindex", php3_imagecolorsforindex, NULL},
+ {"imagecopy", php3_imagecopy, NULL},
{"imagecopyresized", php3_imagecopyresized, NULL},
{"imagecreate", php3_imagecreate, NULL},
{"imagecreatefromgif", php3_imagecreatefromgif, NULL},
***************
*** 144,154 ****
};
#if COMPILE_DL
! # if PHP_31
! # include "ext/phpdl.h"
! # else
! # include "dl/phpdl.h"
! # endif
DLEXPORT php3_module_entry *get_module(void) { return &gd_module_entry; }
#if (WIN32|WINNT) && defined(THREAD_SAFE)
--- 146,152 ----
};
#if COMPILE_DL
! #include "dl/phpdl.h"
DLEXPORT php3_module_entry *get_module(void) { return &gd_module_entry; }
#if (WIN32|WINNT) && defined(THREAD_SAFE)
***************
*** 547,552 ****
--- 545,581 ----
RETURN_LONG(col);
}
+ void php3_imagecolordeallocate(INTERNAL_FUNCTION_PARAMETERS) {
+ pval *imgind, *index;
+ int ind, ind_type, col;
+ gdImagePtr im;
+ GD_TLS_VARS;
+
+ if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &imgind, &index) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ convert_to_long(imgind);
+ convert_to_long(index);
+ ind = imgind->value.lval;
+ col = index->value.lval;
+
+ im = php3_list_find(ind, &ind_type);
+ if (!im || ind_type != GD_GLOBAL(le_gd)) {
+ php3_error(E_WARNING, "ImageColorDeallocate: Unable to find image pointer");
+ RETURN_FALSE;
+ }
+
+ if (col >= 0 && col < gdImageColorsTotal(im)) {
+ gdImageColorDeallocate(im, col);
+ RETURN_TRUE;
+ }
+ else {
+ php3_error(E_WARNING, "Color index out of range");
+ RETURN_FALSE;
+ }
+ }
+
void php3_imagecolorresolve(INTERNAL_FUNCTION_PARAMETERS) {
pval *imgind, *red, *green, *blue;
int ind, ind_type;
***************
*** 743,748 ****
--- 772,781 ----
if (output) {
gdImageGif (im, tmp);
fseek(tmp, 0, SEEK_SET);
+ #ifdef CHARSET_EBCDIC
+ /* This is a binary file already: avoid EBCDIC->ASCII conversion */
+ ap_bsetflag(php3_rqst->connection->client, B_EBCDIC2ASCII, 0);
+ #endif
while ((b = fread(buf, 1, sizeof(buf), tmp)) > 0) {
php3_write(buf, b);
}
***************
*** 1064,1121 ****
/* im, col */
void php3_imagecolortransparent(INTERNAL_FUNCTION_PARAMETERS) {
! pval *IM, *COL;
gdImagePtr im;
int col;
int ind_type;
GD_TLS_VARS;
! if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &IM, &COL) == FAILURE)
! {
WRONG_PARAM_COUNT;
}
-
convert_to_long(IM);
- convert_to_long(COL);
- col = COL->value.lval;
-
im = php3_list_find(IM->value.lval, &ind_type);
if (!im || ind_type != GD_GLOBAL(le_gd)) {
php3_error(E_WARNING, "Unable to find image pointer");
RETURN_FALSE;
}
! gdImageColorTransparent(im,col);
! RETURN_TRUE;
}
/* im, interlace */
void php3_imageinterlace(INTERNAL_FUNCTION_PARAMETERS) {
! pval *IM, *INT;
gdImagePtr im;
int interlace;
int ind_type;
GD_TLS_VARS;
! if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &IM, &INT) == FAILURE)
! {
WRONG_PARAM_COUNT;
}
-
convert_to_long(IM);
- convert_to_long(INT);
- interlace = INT->value.lval;
-
im = php3_list_find(IM->value.lval, &ind_type);
if (!im || ind_type != GD_GLOBAL(le_gd)) {
php3_error(E_WARNING, "Unable to find image pointer");
RETURN_FALSE;
}
! gdImageInterlace(im,interlace);
! RETURN_TRUE;
}
/* arg = 0 normal polygon
--- 1097,1176 ----
/* im, col */
void php3_imagecolortransparent(INTERNAL_FUNCTION_PARAMETERS) {
! pval *IM, *COL = NULL;
gdImagePtr im;
int col;
int ind_type;
GD_TLS_VARS;
! switch(ARG_COUNT(ht)) {
! case 1:
! if (getParameters(ht, 1, &IM) == FAILURE) {
! WRONG_PARAM_COUNT;
! }
! break;
! case 2:
! if (getParameters(ht, 2, &IM, &COL) == FAILURE) {
! WRONG_PARAM_COUNT;
! }
! convert_to_long(COL);
! break;
! default:
WRONG_PARAM_COUNT;
}
convert_to_long(IM);
im = php3_list_find(IM->value.lval, &ind_type);
if (!im || ind_type != GD_GLOBAL(le_gd)) {
php3_error(E_WARNING, "Unable to find image pointer");
RETURN_FALSE;
}
! if (COL != NULL) {
! col = COL->value.lval;
! gdImageColorTransparent(im,col);
! }
! col = gdImageGetTransparent(im);
! RETURN_LONG(col);
}
/* im, interlace */
void php3_imageinterlace(INTERNAL_FUNCTION_PARAMETERS) {
! pval *IM, *INT = NULL;
gdImagePtr im;
int interlace;
int ind_type;
GD_TLS_VARS;
! switch(ARG_COUNT(ht)) {
! case 1:
! if (getParameters(ht, 1, &IM) == FAILURE) {
! WRONG_PARAM_COUNT;
! }
! break;
! case 2:
! if (getParameters(ht, 2, &IM, &INT) == FAILURE) {
! WRONG_PARAM_COUNT;
! }
! convert_to_long(INT);
! break;
! default:
WRONG_PARAM_COUNT;
}
convert_to_long(IM);
im = php3_list_find(IM->value.lval, &ind_type);
if (!im || ind_type != GD_GLOBAL(le_gd)) {
php3_error(E_WARNING, "Unable to find image pointer");
RETURN_FALSE;
}
! if (INT != NULL) {
! interlace = INT->value.lval;
! gdImageInterlace(im,interlace);
! }
! interlace = gdImageGetInterlaced(im);
! RETURN_LONG(interlace);
}
/* arg = 0 normal polygon
***************
*** 1406,1411 ****
--- 1461,1512 ----
_php3_imagechar(INTERNAL_FUNCTION_PARAM_PASSTHRU, 3);
}
+ void php3_imagecopy(INTERNAL_FUNCTION_PARAMETERS)
+ {
+ pval *SIM, *DIM, *SX, *SY, *SW, *SH, *DX, *DY;
+ gdImagePtr im_dst;
+ gdImagePtr im_src;
+ int srcH, srcW, srcY, srcX, dstY, dstX;
+ int ind_type;
+ GD_TLS_VARS;
+
+ if (ARG_COUNT(ht) != 8 ||
+ getParameters(ht, 8, &DIM, &SIM, &DX, &DY, &SX, &SY, &SW, &SH)
+ == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ convert_to_long(SIM);
+ convert_to_long(DIM);
+ convert_to_long(SX);
+ convert_to_long(SY);
+ convert_to_long(SW);
+ convert_to_long(SH);
+ convert_to_long(DX);
+ convert_to_long(DY);
+
+ srcX = SX->value.lval;
+ srcY = SY->value.lval;
+ srcH = SH->value.lval;
+ srcW = SW->value.lval;
+ dstX = DX->value.lval;
+ dstY = DY->value.lval;
+
+ im_src = php3_list_find(SIM->value.lval, &ind_type);
+ if (!im_src || ind_type != GD_GLOBAL(le_gd)) {
+ php3_error(E_WARNING, "Unable to find image pointer");
+ RETURN_FALSE;
+ }
+
+ im_dst = php3_list_find(DIM->value.lval, &ind_type);
+ if (!im_dst || ind_type != GD_GLOBAL(le_gd)) {
+ php3_error(E_WARNING, "Unable to find image pointer");
+ RETURN_FALSE;
+ }
+
+ gdImageCopy(im_dst, im_src, dstX, dstY, srcX, srcY, srcW, srcH);
+ RETURN_TRUE;
+ }
void php3_imagecopyresized(INTERNAL_FUNCTION_PARAMETERS)
{
Index: php31/ext/gd/gd.dsp
diff -c php31/ext/gd/gd.dsp:2.2 php31/ext/gd/gd.dsp:2.3
*** php31/ext/gd/gd.dsp:2.2 Wed Sep 30 00:01:25 1998
--- php31/ext/gd/gd.dsp Sat Oct 17 16:45:30 1998
***************
*** 1,5 ****
# Microsoft Developer Studio Project File - Name="gd" - Package Owner=<4>
! # Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
--- 1,5 ----
# Microsoft Developer Studio Project File - Name="gd" - Package Owner=<4>
! # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
***************
*** 22,27 ****
--- 22,28 ----
!MESSAGE
# Begin Project
+ # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
***************
*** 42,50 ****
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../../include" /I "./" /I
"../../" /I "../../main" /D "NDEBUG" /D "HAVE_GDTTF" /D
"COMPILE_DL" /D "MSVC5" /D "WIN32" /D "_WINDOWS" /YX /FD /c
! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
--- 43,51 ----
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../../include" /I "./" /I
"../../" /I "../../main" /D "NDEBUG" /D PHP_31=1 /D HAVE_GD=1 /D
"COMPILE_DL" /D "MSVC5" /D "WIN32" /D "_WINDOWS" /YX /FD /c
! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
***************
*** 52,58 ****
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll
/machine:I386
! # ADD LINK32 freetype.lib php.lib libgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
/nologo /subsystem:windows /dll /machine:I386 /libpath:"../../../../lib"
/libpath:"../../release"
!ELSEIF "$(CFG)" == "gd - Win32 Debug"
--- 53,59 ----
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll
/machine:I386
! # ADD LINK32 freetype.lib phpsapi_core.lib libgd.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"../../../../lib"
/libpath:"../../release"
!ELSEIF "$(CFG)" == "gd - Win32 Debug"
***************
*** 68,76 ****
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../../../include" /I "./" /I
"../../" /I "../../main" /D PHP_31=1 /D HAVE_GD=1 /D "THREAD_SAFE" /D
"DEBUG" /D "_DEBUG" /D "HAVE_GDTTF" /D "COMPILE_DL" /D
"MSVC5" /D "WIN32" /D "_WINDOWS" /YX /FD /c
! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
--- 69,77 ----
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "./" /I
"../../" /I "../../main" /D PHP_31=1 /D HAVE_GD=1 /D "THREAD_SAFE" /D
"DEBUG" /D "_DEBUG" /D "HAVE_GDTTF" /D "COMPILE_DL" /D
"MSVC5" /D "WIN32" /D "_WINDOWS" /YX /FD /c
! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
Index: php31/ext/gd/gdttf.c
diff -c php31/ext/gd/gdttf.c:2.5 php31/ext/gd/gdttf.c:2.6
*** php31/ext/gd/gdttf.c:2.5 Mon Sep 14 12:56:27 1998
--- php31/ext/gd/gdttf.c Sat Oct 17 16:45:30 1998
***************
*** 3,15 ****
/* John Ellson ellson@lucent.com */
#if WIN32|WINNT
! # if PHP_31
! # include "os/nt/config.w32.h"
! # else
! # include "config.w32.h"
! # endif
#else
! # include "config.h"
#endif
#if HAVE_LIBTTF
#include <stdio.h>
--- 3,11 ----
/* John Ellson ellson@lucent.com */
#if WIN32|WINNT
! #include "config.w32.h"
#else
! #include "config.h"
#endif
#if HAVE_LIBTTF
#include <stdio.h>
***************
*** 235,240 ****
--- 231,242 ----
*---------------------------------------------------------------------------
*/
+ #ifndef CHARSET_EBCDIC
+ #define ASC(ch) (ch)
+ #else /*CHARSET_EBCDIC*/
+ #define ASC(ch) os_toascii[(unsigned char) (ch)]
+ #endif /*CHARSET_EBCDIC*/
+
#define Tcl_UniChar int
#define TCL_UTF_MAX 3
static int
***************
*** 270,276 ****
* Unroll 1 to 3 byte UTF-8 sequences, use loop to handle longer ones.
*/
! byte = *((unsigned char *) str);
if (byte < 0xC0) {
/*
* Handles properly formed UTF-8 characters between 0x01 and 0x7F.
--- 272,278 ----
* Unroll 1 to 3 byte UTF-8 sequences, use loop to handle longer ones.
*/
! byte = ASC(*((unsigned char *) str));
if (byte < 0xC0) {
/*
* Handles properly formed UTF-8 characters between 0x01 and 0x7F.
***************
*** 281,292 ****
*chPtr = (Tcl_UniChar) byte;
return 1;
} else if (byte < 0xE0) {
! if ((str[1] & 0xC0) == 0x80) {
/*
* Two-byte-character lead-byte followed by a trail-byte.
*/
! *chPtr = (Tcl_UniChar) (((byte & 0x1F) << 6) | (str[1] & 0x3F));
return 2;
}
/*
--- 283,294 ----
*chPtr = (Tcl_UniChar) byte;
return 1;
} else if (byte < 0xE0) {
! if ((ASC(str[1]) & 0xC0) == 0x80) {
/*
* Two-byte-character lead-byte followed by a trail-byte.
*/
! *chPtr = (Tcl_UniChar) (((byte & 0x1F) << 6) | (ASC(str[1]) & 0x3F));
return 2;
}
/*
***************
*** 297,309 ****
*chPtr = (Tcl_UniChar) byte;
return 1;
} else if (byte < 0xF0) {
! if (((str[1] & 0xC0) == 0x80) && ((str[2] & 0xC0) == 0x80)) {
/*
* Three-byte-character lead byte followed by two trail bytes.
*/
*chPtr = (Tcl_UniChar) (((byte & 0x0F) << 12)
! | ((str[1] & 0x3F) << 6) | (str[2] & 0x3F));
return 3;
}
/*
--- 299,311 ----
*chPtr = (Tcl_UniChar) byte;
return 1;
} else if (byte < 0xF0) {
! if (((ASC(str[1]) & 0xC0) == 0x80) && ((ASC(str[2]) & 0xC0) == 0x80)) {
/*
* Three-byte-character lead byte followed by two trail bytes.
*/
*chPtr = (Tcl_UniChar) (((byte & 0x0F) << 12)
! | ((ASC(str[1]) & 0x3F) << 6) | (ASC(str[2]) & 0x3F));
return 3;
}
/*
***************
*** 324,335 ****
ch = byte & (0x3F >> trail);
do {
str++;
! if ((*str & 0xC0) != 0x80) {
*chPtr = byte;
return 1;
}
ch <<= 6;
! ch |= (*str & 0x3F);
trail--;
} while (trail > 0);
*chPtr = ch;
--- 326,337 ----
ch = byte & (0x3F >> trail);
do {
str++;
! if ((ASC(*str) & 0xC0) != 0x80) {
*chPtr = byte;
return 1;
}
ch <<= 6;
! ch |= (ASC(*str) & 0x3F);
trail--;
} while (trail > 0);
*chPtr = ch;
Index: php31/ext/gd/gdttf.h
diff -c php31/ext/gd/gdttf.h:2.2 php31/ext/gd/gdttf.h:2.3
*** php31/ext/gd/gdttf.h:2.2 Sat Jul 11 20:57:59 1998
--- php31/ext/gd/gdttf.h Sat Oct 17 16:45:30 1998
***************
*** 1,3 ****
--- 1,14 ----
+ #ifdef _OSD_POSIX
+ #ifndef APACHE
+ #error On this EBCDIC platform, PHP3 is only supported as an Apache module.
+ #else /*APACHE*/
+ #ifndef CHARSET_EBCDIC
+ #define CHARSET_EBCDIC /* this machine uses EBCDIC, not ASCII! */
+ #endif
+ #include "ebcdic.h"
+ #endif /*APACHE*/
+ #endif /*_OSD_POSIX*/
+
char * gdttf(gdImage *im, int *brect, int fg, char *fontname,
double ptsize, double angle, int x, int y, char *string);
Index: php31/ext/gd/php3_gd.h
diff -c php31/ext/gd/php3_gd.h:2.3 php31/ext/gd/php3_gd.h:2.4
*** php31/ext/gd/php3_gd.h:2.3 Mon Sep 14 12:56:27 1998
--- php31/ext/gd/php3_gd.h Sat Oct 17 16:45:30 1998
***************
*** 29,35 ****
*/
! /* $Id: php3_gd.h,v 2.3 1998/09/14 16:56:27 shane Exp $ */
#ifndef _PHP3_GD_H
#define _PHP3_GD_H
--- 29,35 ----
*/
! /* $Id: php3_gd.h,v 2.4 1998/10/17 20:45:30 shane Exp $ */
#ifndef _PHP3_GD_H
#define _PHP3_GD_H
***************
*** 57,68 ****
--- 57,70 ----
extern void php3_imagecolorallocate(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorat(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorclosest(INTERNAL_FUNCTION_PARAMETERS);
+ extern void php3_imagecolordeallocate(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorresolve(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorexact(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorset(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorstotal(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolorsforindex(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecolortransparent(INTERNAL_FUNCTION_PARAMETERS);
+ extern void php3_imagecopy(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecopyresized(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecreate(INTERNAL_FUNCTION_PARAMETERS);
extern void php3_imagecreatefromgif (INTERNAL_FUNCTION_PARAMETERS);
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net