Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:621 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 45444 invoked from network); 3 Apr 2003 02:52:19 -0000 Received: from unknown (HELO walkabout.org) (12.106.145.56) by pb1.pair.com with SMTP; 3 Apr 2003 02:52:19 -0000 Received: from [68.21.47.166] (HELO cooglewin) by walkabout.org (CommuniGate Pro SMTP 4.0.3) with ESMTP id 18791604 for internals@lists.php.net; Wed, 02 Apr 2003 21:25:20 -0500 To: Date: Wed, 2 Apr 2003 21:54:17 -0500 Message-ID: <000501c2f98c$516c87c0$1f01a8c0@cooglewin> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: Patch for GD From: john@coggeshall.org ("John Coggeshall") Here's a patch for the GD lib.. I'd like to commit this if there is no objection. It does a few things: 1) Creates a warning for imagepscopyfont()... It's in the docs and right now its completely commented out in the source... For BC this really should not just completely disappear (even if T1Lib is buggy about it). 2) Cleans up the error reporting done when working with T1LIB by using T1Lib's T1_StrError() function to produce meaniful error messages when something goes wrong. Diff is attached below.. John cvs server: Diffing . Index: gd.c =================================================================== RCS file: /repository/php4/ext/gd/gd.c,v retrieving revision 1.261 diff -u -r1.261 gd.c --- gd.c 31 Mar 2003 08:49:19 -0000 1.261 +++ gd.c 3 Apr 2003 02:46:45 -0000 @@ -282,9 +282,7 @@ #ifdef HAVE_LIBT1 PHP_FE(imagepsloadfont, NULL) - /* PHP_FE(imagepscopyfont, NULL) - */ PHP_FE(imagepsfreefont, NULL) PHP_FE(imagepsencodefont, NULL) PHP_FE(imagepsextendfont, NULL) @@ -3188,21 +3186,7 @@ f_ind = T1_AddFont(Z_STRVAL_PP(file)); if (f_ind < 0) { - switch (f_ind) { - case -1: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't find the font file"); - RETURN_FALSE; - break; - case -2: - case -3: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Memory allocation fault in t1lib"); - RETURN_FALSE; - break; - default: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "An unknown error occurred in t1lib"); - RETURN_FALSE; - break; - } + php_error_docref(NULL TSRMLS_CC, E_WARNING, "T1LIB Error: %s", T1_StrError(f_ind)); } if (T1_LoadFont(f_ind)) { @@ -3218,10 +3202,11 @@ /* {{{ proto int imagepscopyfont(int font_index) Make a copy of a font for purposes like extending or reenconding */ -/* The function in t1lib which this function uses seem to be buggy... +/* The function in t1lib which this function uses seem to be buggy... */ PHP_FUNCTION(imagepscopyfont) { - zval **fnt; + php_error_docref(NULL TSRMLS_CC, E_WARNING, "This function is no longer available"); +/* zval **fnt; int l_ind, type; gd_ps_font *nf_ind, *of_ind; @@ -3267,8 +3252,9 @@ nf_ind->extend = 1; l_ind = zend_list_insert(nf_ind, le_ps_font); RETURN_LONG(l_ind); -} */ +} + /* }}} */ /* {{{ proto bool imagepsfreefont(int font_index) @@ -3339,6 +3325,11 @@ ZEND_FETCH_RESOURCE(f_ind, int *, fnt, -1, "Type 1 font", le_ps_font); T1_DeleteAllSizes(*f_ind); + + if(Z_DVAL_PP(ext) < 0) { + zend_error(E_WARNING, "Invalid value for parameter 2 (must be greater than zero)"); + } + if (T1_ExtendFont(*f_ind, Z_DVAL_PP(ext)) != 0) { RETURN_FALSE; } @@ -3476,7 +3467,7 @@ if (!str_path) { if (T1_errno) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "libt1 returned error %d", T1_errno); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "T1LIB Error: %s", T1_StrError(T1_errno)); } RETURN_FALSE; } @@ -3495,7 +3486,7 @@ str_img = T1_AAFillOutline(str_path, 0); if (T1_errno) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "libt1 returned error %d", T1_errno); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "T1LIB Error: %s", T1_StrError(T1_errno)); RETURN_FALSE; } Index: php_gd.h =================================================================== RCS file: /repository/php4/ext/gd/php_gd.h,v retrieving revision 1.54 diff -u -r1.54 php_gd.h --- php_gd.h 31 Mar 2003 08:49:19 -0000 1.54 +++ php_gd.h 3 Apr 2003 02:46:45 -0000 @@ -157,9 +157,7 @@ PHP_FUNCTION(imagettfbbox); PHP_FUNCTION(imagettftext); PHP_FUNCTION(imagepsloadfont); -/* PHP_FUNCTION(imagepscopyfont); -*/ PHP_FUNCTION(imagepsfreefont); PHP_FUNCTION(imagepsencodefont); PHP_FUNCTION(imagepsextendfont); -~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~- John Coggeshall john at coggeshall dot org http://www.coggeshall.org/ -~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~--~=~-