Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:50418 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 5686 invoked from network); 23 Nov 2010 01:52:13 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 23 Nov 2010 01:52:13 -0000 Authentication-Results: pb1.pair.com header.from=greno@verizon.net; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=greno@verizon.net; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain verizon.net designates 206.46.173.3 as permitted sender) X-PHP-List-Original-Sender: greno@verizon.net X-Host-Fingerprint: 206.46.173.3 vms173003pub.verizon.net Solaris 10 1203 Received: from [206.46.173.3] ([206.46.173.3:53012] helo=vms173003pub.verizon.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3C/D7-59959-74E1BEC4 for ; Mon, 22 Nov 2010 20:52:08 -0500 MIME-version: 1.0 Content-transfer-encoding: 8BIT Content-type: text/plain; charset=UTF-8; format=flowed Received: from [192.168.1.46] ([unknown] [72.91.189.24]) by vms173003.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0LCB004JVEIIDHH4@vms173003.mailsrvcs.net> for internals@lists.php.net; Mon, 22 Nov 2010 19:51:55 -0600 (CST) Message-ID: <4CEB1F59.8030103@verizon.net> Date: Mon, 22 Nov 2010 20:56:41 -0500 User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100423 Thunderbird/3.0.4 To: internals@lists.php.net References: <4CD463AB.2090702@verizon.net> <4CD68A13.90904@au-fil-du.net> <4CD6B055.6080503@verizon.net> <4CD6BE6B.6050608@verizon.net> <4CE59982.7020202@au-fil-du.net> <4CE5A352.4080208@verizon.net> In-reply-to: <4CE5A352.4080208@verizon.net> Subject: Re: [PHP-DEV] php gettext bindtextdomain behavior From: greno@verizon.net (Gerry Reno) bindtextdomain is badly broken in PHP. It is not implemented the same as the standard GNU implementation or any of the other language implementations such as python for example. And it has crippled the ability to do nested access to different gettext translation stores because you cannot query for the current setting. As far as backward compatibility, I would not worry about it, because I doubt anyone would be relying on retrieving the current setting especially once they found out it was absolutely incorrect. The patch needs updated to correctly fix the problem as I've explained in the bug. I have not seen any activity on this bug recently and this needs to get into 5.2.15 and 5.3.3 as soon as possible so that PHP has a correct implementation of bindtextdomain. -Gerry On 11/18/2010 05:06 PM, Gerry Reno wrote: > I put my comments and some clarifications about the patch into the bug. > > -Gerry > > > On 11/18/2010 04:24 PM, "Jean-Sébastien H." wrote: >> Hi, >> >> Any feedback on this patch ? >> >> http://bugs.php.net/bug.php?id=53251 >> >> Regards, >> >> Le 07/11/2010 15:57, Gerry Reno a écrit : >>> On 11/07/2010 08:57 AM, Gerry Reno wrote: >>>> On 11/07/2010 06:14 AM, "Jean-Sébastien H." wrote: >>>>> Le 05/11/2010 21:06, Gerry Reno a écrit : >>>>>> In PHP 5.2.4 (my version) the gettext bindtextdomain function is not >>>>>> returning the existing directory settings when the directory >>>>>> argument >>>>>> is NULL. >>>>>> That is the expected behavior for bindtextdomain with GNU and it >>>>>> works >>>>>> this way elsewhere such as in python. >>>>>> >>>>>> [...] >>>>>> >>>>>> Can PHP gettext bindtextdomain be fixed to correctly return the >>>>>> existing setting when called with a NULL directory argument? >>>>>> >>>>>> I was not sure if this was a bug so I thought I would present the >>>>>> issue on the internal list first. >>>>> I filled a bug-report with a patch. >>>>> >>>>> But my patch introduce a BC (see my non regression test : >>>>> ext/gettext/tests/gettext_bindtextdomain-nulldir.phpt) >>>>> >>>>> http://bugs.php.net/bug.php?id=53251 >>>>> >>>> Thanks for filing the bug. I reviewed the patch and it does not seem >>>> to do what is necessary. What it needs to do is to go get the >>>> current setting from the previous bindtextdomain call. This means >>>> that 'bindtextdomain' needs to store the current setting so that it >>>> can be retrieved later by a call with a NULL directory argument. >>>> >>>> >>>> >>> I added some comments and clarifications on the bindtextdomain problem >>> into the bug http://bugs.php.net/bug.php?id=53251 >>> > >