Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45626 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 91110 invoked from network); 22 Sep 2009 17:15:59 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Sep 2009 17:15:59 -0000 Authentication-Results: pb1.pair.com header.from=matthewfonda@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=matthewfonda@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.225 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: matthewfonda@gmail.com X-Host-Fingerprint: 209.85.220.225 mail-fx0-f225.google.com Received: from [209.85.220.225] ([209.85.220.225:43334] helo=mail-fx0-f225.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4C/A7-48603-E4609BA4 for ; Tue, 22 Sep 2009 13:15:59 -0400 Received: by fxm25 with SMTP id 25so3073150fxm.24 for ; Tue, 22 Sep 2009 10:15:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=2WFxzr1XP5b3lgjpEEbIWRLWwk0cmYPmho3u8kxEHOw=; b=drQ409TwpB1XXUgXPYWLmMrw74M1hNGlGGb52gI+9hLh5zsrsEyvBcwQxNLi100A/f tGAz1eKTUTP36vgLSzJLg+wjIPSvN6U3qPI7F84rV1NLRaIP9cIrUIa4udWBPDQvhhqb L8K6CKj9psi8ehLnVHOUcrak0HcWUpNF8+2Ww= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=QdosRQIXmqLOMQbi6FepJQIUqliEFfwUzXqsy4Zq5n5wi3S8zWDkByxv13cwBBQv1v zrYHkVu6/kMAu7Yh/ZOUDejXnJGJU3J1eS813wc3RofARhqourbCJDZ6M+psDixlRzKr 36MO3lhAWzmCh6mfzcVeWSI5799xcWzWWCd4A= MIME-Version: 1.0 Received: by 10.204.2.205 with SMTP id 13mr1008559bkk.205.1253639754930; Tue, 22 Sep 2009 10:15:54 -0700 (PDT) Date: Tue, 22 Sep 2009 10:15:54 -0700 Message-ID: <1aac0f2d0909221015t1ee5e3e4n73a29e04bdabee3a@mail.gmail.com> To: PHP internals Content-Type: multipart/mixed; boundary=0015174c1ca844dcb204742dc0d5 Subject: [patch] Allow array_change_key_case to support ucfirst and lcfirst From: matthewfonda@gmail.com (Matthew Fonda) --0015174c1ca844dcb204742dc0d5 Content-Type: multipart/alternative; boundary=0015174c1ca844dca904742dc0d3 --0015174c1ca844dca904742dc0d3 Content-Type: text/plain; charset=ISO-8859-1 Hi All, I came across a situation where I had to make the first character of an arrays keys uppercase, and found the array_change_key_case function, but noticed it only supported CASE_UPPER and CASE_LOWER. Attached is a patch to also add support for CASE_LCFIRST and CASE_UCFIRST. The patch is against PHP_5_3. I wasn't sure which branch I should write it for--let me know if it should be against another branch. This is my first patch submission so any comments are appreciated. Regards, --Matthew --0015174c1ca844dca904742dc0d3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi All,

I came across a situation where I had to make the first char= acter of an arrays keys uppercase, and found the array_change_key_case func= tion, but noticed it only supported CASE_UPPER and CASE_LOWER. Attached is = a patch to also add support for CASE_LCFIRST and CASE_UCFIRST.

The patch is against PHP_5_3. I wasn't sure which branch I should w= rite it for--let me know if it should be against another branch. This is my= first patch submission so any comments are appreciated.

Regards, --Matthew
--0015174c1ca844dca904742dc0d3-- --0015174c1ca844dcb204742dc0d5 Content-Type: text/plain; charset=US-ASCII; name="array_change_key_cass.diff.txt" Content-Disposition: attachment; filename="array_change_key_cass.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzwwows20 SW5kZXg6IGV4dC9zdGFuZGFyZC9hcnJheS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGV4dC9zdGFuZGFyZC9h cnJheS5jCShyZXZpc2lvbiAyODg1NDYpCisrKyBleHQvc3RhbmRhcmQvYXJyYXkuYwkod29ya2lu ZyBjb3B5KQpAQCAtNjMsNiArNjMsOCBAQAogCiAjZGVmaW5lIENBU0VfTE9XRVIJCQkJMAogI2Rl ZmluZSBDQVNFX1VQUEVSCQkJCTEKKyNkZWZpbmUgQ0FTRV9MQ0ZJUlNUCQkJMgorI2RlZmluZSBD QVNFX1VDRklSU1QJCQkzCiAKICNkZWZpbmUgQ09VTlRfTk9STUFMCQkJMAogI2RlZmluZSBDT1VO VF9SRUNVUlNJVkUJCQkxCkBAIC0xMjEsNiArMTIzLDggQEAKIAogCVJFR0lTVEVSX0xPTkdfQ09O U1RBTlQoIkNBU0VfTE9XRVIiLCBDQVNFX0xPV0VSLCBDT05TVF9DUyB8IENPTlNUX1BFUlNJU1RF TlQpOwogCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIkNBU0VfVVBQRVIiLCBDQVNFX1VQUEVSLCBD T05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOworCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIkNB U0VfTENGSVJTVCIsIENBU0VfTENGSVJTVCwgQ09OU1RfQ1MgfCBDT05TVF9QRVJTSVNURU5UKTsK KwlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJDQVNFX1VDRklSU1QiLCBDQVNFX1VDRklSU1QsIENP TlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7CiAKIAlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJD T1VOVF9OT1JNQUwiLCBDT1VOVF9OT1JNQUwsIENPTlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7 CiAJUkVHSVNURVJfTE9OR19DT05TVEFOVCgiQ09VTlRfUkVDVVJTSVZFIiwgQ09VTlRfUkVDVVJT SVZFLCBDT05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOwpAQCAtMjcxMSwxMCArMjcxNSwyMCBA QAogCQkJCWJyZWFrOwogCQkJY2FzZSBIQVNIX0tFWV9JU19TVFJJTkc6CiAJCQkJbmV3X2tleSA9 IGVzdHJuZHVwKHN0cmluZ19rZXksIHN0cl9rZXlfbGVuIC0gMSk7Ci0JCQkJaWYgKGNoYW5nZV90 b191cHBlcikgewotCQkJCQlwaHBfc3RydG91cHBlcihuZXdfa2V5LCBzdHJfa2V5X2xlbiAtIDEp OwotCQkJCX0gZWxzZSB7Ci0JCQkJCXBocF9zdHJ0b2xvd2VyKG5ld19rZXksIHN0cl9rZXlfbGVu IC0gMSk7CisJCQkJc3dpdGNoIChjaGFuZ2VfdG9fdXBwZXIpIHsKKwkJCQkJY2FzZSBDQVNFX1VQ UEVSOgorCQkJCQkJcGhwX3N0cnRvdXBwZXIobmV3X2tleSwgc3RyX2tleV9sZW4gLSAxKTsKKwkJ CQkJCWJyZWFrOworCQkJCQljYXNlIENBU0VfTENGSVJTVDoKKwkJCQkJCXBocF9sY2ZpcnN0KG5l d19rZXkpOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgQ0FTRV9VQ0ZJUlNUOgorCQkJCQkJcGhw X3VjZmlyc3QobmV3X2tleSk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBDQVNFX0xPV0VSOgor CQkJCQlkZWZhdWx0OgorCQkJCQkJcGhwX3N0cnRvbG93ZXIobmV3X2tleSwgc3RyX2tleV9sZW4g LSAxKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAkJCQl6ZW5kX2hhc2hfdXBkYXRlKFpfQVJSVkFM X1AocmV0dXJuX3ZhbHVlKSwgbmV3X2tleSwgc3RyX2tleV9sZW4sIGVudHJ5LCBzaXplb2YoZW50 cnkpLCBOVUxMKTsKIAkJCQllZnJlZShuZXdfa2V5KTsKSW5kZXg6IGV4dC9zdGFuZGFyZC9zdHJp bmcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBleHQvc3RhbmRhcmQvc3RyaW5nLmMJKHJldmlzaW9uIDI4ODU0 NikKKysrIGV4dC9zdGFuZGFyZC9zdHJpbmcuYwkod29ya2luZyBjb3B5KQpAQCAtMjUxMywxMSAr MjUxMywxMiBAQAogCiAvKiB7e3sgcGhwX3VjZmlyc3QKICAgIFVwcGVyY2FzZSB0aGUgZmlyc3Qg Y2hhcmFjdGVyIG9mIHRoZSB3b3JkIGluIGEgbmF0aXZlIHN0cmluZyAqLwotc3RhdGljIHZvaWQg cGhwX3VjZmlyc3QoY2hhciAqc3RyKSAKK1BIUEFQSSBjaGFyICpwaHBfdWNmaXJzdChjaGFyICpz KQogewotCXJlZ2lzdGVyIGNoYXIgKnI7Ci0JciA9IHN0cjsKLQkqciA9IHRvdXBwZXIoKHVuc2ln bmVkIGNoYXIpICpyKTsKKwl1bnNpZ25lZCBjaGFyICpjOworCWMgPSAodW5zaWduZWQgY2hhciAq KXM7CisJKmMgPSB0b3VwcGVyKCpjKTsKKwlyZXR1cm4gczsKIH0KIC8qIH19fSAqLwogCkBAIC0y NTM2LDIyICsyNTM3LDI0IEBACiAJCVJFVFVSTl9FTVBUWV9TVFJJTkcoKTsKIAl9CiAKLQlaVkFM X1NUUklOR0wocmV0dXJuX3ZhbHVlLCBzdHIsIHN0cl9sZW4sIDEpOwotCXBocF91Y2ZpcnN0KFpf U1RSVkFMX1AocmV0dXJuX3ZhbHVlKSk7CisJc3RyID0gZXN0cm5kdXAoc3RyLCBzdHJfbGVuKTsK KwlwaHBfdWNmaXJzdChzdHIpOworCVJFVFVSTl9TVFJJTkdMKHN0ciwgc3RyX2xlbiwgMCk7CiB9 CiAvKiB9fX0gKi8KIAogLyoge3t7CiAgICBMb3dlcmNhc2UgdGhlIGZpcnN0IGNoYXJhY3RlciBv ZiB0aGUgd29yZCBpbiBhIG5hdGl2ZSBzdHJpbmcgKi8KLXN0YXRpYyB2b2lkIHBocF9sY2ZpcnN0 KGNoYXIgKnN0cikKK1BIUEFQSSBjaGFyICpwaHBfbGNmaXJzdChjaGFyICpzKQogewotCXJlZ2lz dGVyIGNoYXIgKnI7Ci0JciA9IHN0cjsKLQkqciA9IHRvbG93ZXIoKHVuc2lnbmVkIGNoYXIpICpy KTsKKwl1bnNpZ25lZCBjaGFyICpjOworCWMgPSAodW5zaWduZWQgY2hhciAqKXM7CisJKmMgPSB0 b2xvd2VyKCpjKTsKKwlyZXR1cm4gczsKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gc3Ry aW5nIHVjZmlyc3Qoc3RyaW5nIHN0cikKKy8qIHt7eyBwcm90byBzdHJpbmcgbGNmaXJzdChzdHJp bmcgc3RyKQogICAgTWFrZSBhIHN0cmluZydzIGZpcnN0IGNoYXJhY3RlciBsb3dlcmNhc2UgKi8K IFBIUF9GVU5DVElPTihsY2ZpcnN0KQogewpAQCAtMjU2Niw4ICsyNTY5LDkgQEAKIAkJUkVUVVJO X0VNUFRZX1NUUklORygpOwogCX0KIAotCVpWQUxfU1RSSU5HTChyZXR1cm5fdmFsdWUsIHN0ciwg c3RyX2xlbiwgMSk7Ci0JcGhwX2xjZmlyc3QoWl9TVFJWQUxfUChyZXR1cm5fdmFsdWUpKTsKKwlz dHIgPSBlc3RybmR1cChzdHIsIHN0cl9sZW4pOworCXBocF9sY2ZpcnN0KHN0cik7CisJUkVUVVJO X1NUUklOR0woc3RyLCBzdHJfbGVuLCAwKTsKIH0KIC8qIH19fSAqLwogCg== --0015174c1ca844dcb204742dc0d5--