Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:14272 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 26557 invoked by uid 1010); 4 Jan 2005 08:07:11 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 26504 invoked from network); 4 Jan 2005 08:07:10 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 Jan 2005 08:07:10 -0000 X-Host-Fingerprint: 66.111.4.26 out2.smtp.messagingengine.com Received: from ([66.111.4.26:36699] helo=out2.smtp.messagingengine.com) by pb1.pair.com (ecelerity HEAD (r3992M)) with SMTP id 62/91-27561-CAE4AD14 for ; Tue, 04 Jan 2005 03:07:08 -0500 Received: from web2.messagingengine.com (web2.internal [10.202.2.211]) by frontend1.messagingengine.com (Postfix) with ESMTP id AB006C498F6; Tue, 4 Jan 2005 03:07:05 -0500 (EST) Received: by web2.messagingengine.com (Postfix, from userid 99) id 325A7700; Tue, 4 Jan 2005 03:07:04 -0500 (EST) Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 X-Mailer: MIME::Lite 1.5 (F2.73; T1.001; A1.64; B3.05; Q3.03) Cc: internals@lists.php.net To: derick@php.net Date: Tue, 04 Jan 2005 00:07:04 -0800 X-Sasl-Enc: /cJzywNGmY/N3lwGKPlQdg 1104826024 Message-ID: <1104826024.21222.211948578@webmail.messagingengine.com> Subject: vsprintf returns int not char* From: kameshj@fastmail.fm ("Kamesh Jayachandran") Hi Derick, in php-src/main/php_sprintf.c PHPAPI int php_sprintf (char*s, const char* format, ...) { va_list args; char *ret; //ret should be of type integer as vsprintf returns int rather than char* va_start (args, format); s[0] = '\0'; ret = vsprintf (s, format, args); va_end (args); if (!ret) //This check should be if(ret < 0) as ret will have the number of characters printed to s //If an output error is encountered, a negative value is returned. return -1; return strlen (s); } ret should be of type integer as vsprintf returns int rather than char*. if (!ret) should be if(ret < 0) With regards Kamesh Jayachandran