Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:46384 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 52476 invoked from network); 9 Dec 2009 21:54:56 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Dec 2009 21:54:56 -0000 Authentication-Results: pb1.pair.com header.from=ml@anderiasch.de; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=ml@anderiasch.de; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain anderiasch.de from 81.169.138.148 cause and error) X-PHP-List-Original-Sender: ml@anderiasch.de X-Host-Fingerprint: 81.169.138.148 ares.art-core.org Received: from [81.169.138.148] ([81.169.138.148:41095] helo=mail.anderiasch.de) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 93/55-25115-EAC102B4 for ; Wed, 09 Dec 2009 16:54:55 -0500 Message-ID: <4B201CA6.1060707@anderiasch.de> Date: Wed, 09 Dec 2009 22:54:46 +0100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.8.1.23) Gecko/20090812 Lightning/0.9 Thunderbird/2.0.0.23 Mnenhy/0.7.5.0 MIME-Version: 1.0 To: internals@lists.php.net Content-Type: multipart/mixed; boundary="------------000705020904030103050003" Subject: A patch for bug 44331 From: ml@anderiasch.de (Florian Anderiasch) --------------000705020904030103050003 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi there, I've tried to come up with a solution for Formatting option for json_encode http://bugs.php.net/bug.php?id=44331 Any comments are highly welcome :) the patch is against the PHP_5_3 branch as HEAD changes quite some unicode stuff. Greetings, Florian --------------000705020904030103050003 Content-Type: text/plain; name="bug_44331.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bug_44331.patch" LS0tIGV4dC9qc29uL2pzb24uYy5vcmlnCTIwMDktMTItMDkgMjI6MTU6MzMuMDAwMDAwMDAw ICswMTAwCisrKyBleHQvanNvbi9qc29uLmMJMjAwOS0xMi0wOSAyMjo0ODowNC4wMDAwMDAw MDAgKzAxMDAKQEAgLTQyLDYgKzQyLDcgQEAKICNkZWZpbmUgUEhQX0pTT05fSEVYX0FQT1MJ KDE8PDIpCiAjZGVmaW5lIFBIUF9KU09OX0hFWF9RVU9UCSgxPDwzKQogI2RlZmluZSBQSFBf SlNPTl9GT1JDRV9PQkpFQ1QJKDE8PDQpCisjZGVmaW5lIFBIUF9KU09OX0ZPUk1BVF9PVVRQ VVQJKDE8PDUpCiAKICNkZWZpbmUgUEhQX0pTT05fT1VUUFVUX0FSUkFZIDAKICNkZWZpbmUg UEhQX0pTT05fT1VUUFVUX09CSkVDVCAxCkBAIC04MSw2ICs4Miw3IEBACiAJUkVHSVNURVJf TE9OR19DT05TVEFOVCgiSlNPTl9IRVhfQVBPUyIsIFBIUF9KU09OX0hFWF9BUE9TLCBDT05T VF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOwogCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIkpT T05fSEVYX1FVT1QiLCBQSFBfSlNPTl9IRVhfUVVPVCwgQ09OU1RfQ1MgfCBDT05TVF9QRVJT SVNURU5UKTsKIAlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJKU09OX0ZPUkNFX09CSkVDVCIs IFBIUF9KU09OX0ZPUkNFX09CSkVDVCwgQ09OU1RfQ1MgfCBDT05TVF9QRVJTSVNURU5UKTsK KwlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJKU09OX0ZPUk1BVF9PVVRQVVQiLCBQSFBfSlNP Tl9GT1JNQVRfT1VUUFVULCBDT05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOwogCiAJUkVH SVNURVJfTE9OR19DT05TVEFOVCgiSlNPTl9FUlJPUl9OT05FIiwgUEhQX0pTT05fRVJST1Jf Tk9ORSwgQ09OU1RfQ1MgfCBDT05TVF9QRVJTSVNURU5UKTsKIAlSRUdJU1RFUl9MT05HX0NP TlNUQU5UKCJKU09OX0VSUk9SX0RFUFRIIiwgUEhQX0pTT05fRVJST1JfREVQVEgsIENPTlNU X0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7CkBAIC0xNzIsOSArMTc0LDEwIEBACiB9CiAvKiB9 fX0gKi8KIAotc3RhdGljIHZvaWQganNvbl9lbmNvZGVfYXJyYXkoc21hcnRfc3RyICpidWYs IHp2YWwgKip2YWwsIGludCBvcHRpb25zIFRTUk1MU19EQykgLyoge3t7ICovCitzdGF0aWMg dm9pZCBqc29uX2VuY29kZV9hcnJheShzbWFydF9zdHIgKmJ1ZiwgenZhbCAqKnZhbCwgaW50 IG9wdGlvbnMsIGludCBuZXN0aW5nX2xldmVsIFRTUk1MU19EQykgLyoge3t7ICovCiB7Ci0J aW50IGksIHI7CisJaW50IGksIHIsIGZtdDsKKwlpbnQgaWkgPSAwOwogCUhhc2hUYWJsZSAq bXlodDsKIAogCWlmIChaX1RZUEVfUFAodmFsKSA9PSBJU19BUlJBWSkgewpAQCAtMTg0LDYg KzE4Nyw3IEBACiAJCW15aHQgPSBaX09CSlBST1BfUFAodmFsKTsKIAkJciA9IFBIUF9KU09O X09VVFBVVF9PQkpFQ1Q7CiAJfQorCWZtdCA9ICggb3B0aW9ucyAmIFBIUF9KU09OX0ZPUk1B VF9PVVRQVVQpID8gMSA6IDA7CiAKIAlpZiAobXlodCAmJiBteWh0LT5uQXBwbHlDb3VudCA+ IDEpIHsKIAkJcGhwX2Vycm9yX2RvY3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAi cmVjdXJzaW9uIGRldGVjdGVkIik7CkBAIC0xOTUsNiArMTk5LDkgQEAKIAkJc21hcnRfc3Ry X2FwcGVuZGMoYnVmLCAnWycpOwogCX0gZWxzZSB7CiAJCXNtYXJ0X3N0cl9hcHBlbmRjKGJ1 ZiwgJ3snKTsKKwkJaWYgKGZtdCkgeworCQkJc21hcnRfc3RyX2FwcGVuZGMoYnVmLCAnXG4n KTsKKwkJfQogCX0KIAogCWkgPSBteWh0ID8gemVuZF9oYXNoX251bV9lbGVtZW50cyhteWh0 KSA6IDA7CkBAIC0yMjcsOCArMjM0LDcgQEAKIAkJCQkJfSBlbHNlIHsKIAkJCQkJCW5lZWRf Y29tbWEgPSAxOwogCQkJCQl9Ci0gCi0JCQkJCXBocF9qc29uX2VuY29kZShidWYsICpkYXRh LCBvcHRpb25zIFRTUk1MU19DQyk7CisJCQkJCXBocF9qc29uX2VuY29kZV9leChidWYsICpk YXRhLCBvcHRpb25zLCBuZXN0aW5nX2xldmVsKzEgVFNSTUxTX0NDKTsKIAkJCQl9IGVsc2Ug aWYgKHIgPT0gUEhQX0pTT05fT1VUUFVUX09CSkVDVCkgewogCQkJCQlpZiAoaSA9PSBIQVNI X0tFWV9JU19TVFJJTkcpIHsKIAkJCQkJCWlmIChrZXlbMF0gPT0gJ1wwJyAmJiBaX1RZUEVf UFAodmFsKSA9PSBJU19PQkpFQ1QpIHsKQEAgLTI0MSwyNyArMjQ3LDQzIEBACiAKIAkJCQkJ CWlmIChuZWVkX2NvbW1hKSB7CiAJCQkJCQkJc21hcnRfc3RyX2FwcGVuZGMoYnVmLCAnLCcp OworCQkJCQkJCWlmIChmbXQpIHsKKwkJCQkJCQkJc21hcnRfc3RyX2FwcGVuZGMoYnVmLCAn XG4nKTsKKwkJCQkJCQl9CiAJCQkJCQl9IGVsc2UgewogCQkJCQkJCW5lZWRfY29tbWEgPSAx OwogCQkJCQkJfQogCisJCQkJCQlpZiAoZm10KSB7CisJCQkJCQkJZm9yIChpaT0wO2lpPD1u ZXN0aW5nX2xldmVsO2lpKyspIHsKKwkJCQkJCQkJc21hcnRfc3RyX2FwcGVuZGMoYnVmLCAn XHQnKTsKKwkJCQkJCQl9CisJCQkJCQl9CiAJCQkJCQlqc29uX2VzY2FwZV9zdHJpbmcoYnVm LCBrZXksIGtleV9sZW4gLSAxLCBvcHRpb25zIFRTUk1MU19DQyk7CiAJCQkJCQlzbWFydF9z dHJfYXBwZW5kYyhidWYsICc6Jyk7CiAKLQkJCQkJCXBocF9qc29uX2VuY29kZShidWYsICpk YXRhLCBvcHRpb25zIFRTUk1MU19DQyk7CisJCQkJCQlwaHBfanNvbl9lbmNvZGVfZXgoYnVm LCAqZGF0YSwgb3B0aW9ucywgbmVzdGluZ19sZXZlbCsxIFRTUk1MU19DQyk7CiAJCQkJCX0g ZWxzZSB7CiAJCQkJCQlpZiAobmVlZF9jb21tYSkgewogCQkJCQkJCXNtYXJ0X3N0cl9hcHBl bmRjKGJ1ZiwgJywnKTsKKwkJCQkJCQlpZiAoZm10KSB7CisJCQkJCQkJCXNtYXJ0X3N0cl9h cHBlbmRjKGJ1ZiwgJ1xuJyk7CisJCQkJCQkJfQogCQkJCQkJfSBlbHNlIHsKIAkJCQkJCQlu ZWVkX2NvbW1hID0gMTsKIAkJCQkJCX0KIAorCQkJCQkJaWYgKGZtdCkgeworCQkJCQkJCWZv ciAoaWk9MDtpaTw9bmVzdGluZ19sZXZlbDtpaSsrKSB7CisJCQkJCQkJCXNtYXJ0X3N0cl9h cHBlbmRjKGJ1ZiwgJ1x0Jyk7CisJCQkJCQkJfQorCQkJCQkJfQogCQkJCQkJc21hcnRfc3Ry X2FwcGVuZGMoYnVmLCAnIicpOwogCQkJCQkJc21hcnRfc3RyX2FwcGVuZF9sb25nKGJ1Ziwg KGxvbmcpIGluZGV4KTsKIAkJCQkJCXNtYXJ0X3N0cl9hcHBlbmRjKGJ1ZiwgJyInKTsKIAkJ CQkJCXNtYXJ0X3N0cl9hcHBlbmRjKGJ1ZiwgJzonKTsKIAotCQkJCQkJcGhwX2pzb25fZW5j b2RlKGJ1ZiwgKmRhdGEsIG9wdGlvbnMgVFNSTUxTX0NDKTsKKwkJCQkJCXBocF9qc29uX2Vu Y29kZV9leChidWYsICpkYXRhLCBvcHRpb25zLCBuZXN0aW5nX2xldmVsKzEgVFNSTUxTX0ND KTsKIAkJCQkJfQogCQkJCX0KIApAQCAtMjc1LDYgKzI5NywxMiBAQAogCWlmIChyID09IFBI UF9KU09OX09VVFBVVF9BUlJBWSkgewogCQlzbWFydF9zdHJfYXBwZW5kYyhidWYsICddJyk7 CiAJfSBlbHNlIHsKKwkJaWYgKGZtdCkgeworCQkJc21hcnRfc3RyX2FwcGVuZGMoYnVmLCAn XG4nKTsKKwkJCWZvciAoaWk9MDtpaTxuZXN0aW5nX2xldmVsO2lpKyspIHsKKwkJCQlzbWFy dF9zdHJfYXBwZW5kYyhidWYsICdcdCcpOworCQkJfQorCQl9CiAJCXNtYXJ0X3N0cl9hcHBl bmRjKGJ1ZiwgJ30nKTsKIAl9CiB9CkBAIC00MTQsNiArNDQyLDEyIEBACiAKIFBIUF9KU09O X0FQSSB2b2lkIHBocF9qc29uX2VuY29kZShzbWFydF9zdHIgKmJ1ZiwgenZhbCAqdmFsLCBp bnQgb3B0aW9ucyBUU1JNTFNfREMpIC8qIHt7eyAqLwogeworCXBocF9qc29uX2VuY29kZV9l eChidWYsIHZhbCwgb3B0aW9ucywgMCBUU1JNTFNfREMpOworfQorLyogfX19ICovCisKK1BI UF9KU09OX0FQSSB2b2lkIHBocF9qc29uX2VuY29kZV9leChzbWFydF9zdHIgKmJ1ZiwgenZh bCAqdmFsLCBpbnQgb3B0aW9ucywgaW50IG5lc3RpbmdfbGV2ZWwgVFNSTUxTX0RDKSAvKiB7 e3sgKi8KK3sKIAlKU09OX0coZXJyb3JfY29kZSkgPSBQSFBfSlNPTl9FUlJPUl9OT05FOwog CXN3aXRjaCAoWl9UWVBFX1AodmFsKSkKIAl7CkBAIC00NTYsNyArNDkwLDcgQEAKIAogCQlj YXNlIElTX0FSUkFZOgogCQljYXNlIElTX09CSkVDVDoKLQkJCWpzb25fZW5jb2RlX2FycmF5 KGJ1ZiwgJnZhbCwgb3B0aW9ucyBUU1JNTFNfQ0MpOworCQkJanNvbl9lbmNvZGVfYXJyYXko YnVmLCAmdmFsLCBvcHRpb25zLCBuZXN0aW5nX2xldmVsIFRTUk1MU19DQyk7CiAJCQlicmVh azsKIAogCQlkZWZhdWx0OgpAQCAtNTQ0LDYgKzU3OCw3IEBACiAJenZhbCAqcGFyYW1ldGVy OwogCXNtYXJ0X3N0ciBidWYgPSB7MH07CiAJbG9uZyBvcHRpb25zID0gMDsKKwlpbnQgbmVz dGluZ19sZXZlbCA9IDA7CiAKIAlpZiAoemVuZF9wYXJzZV9wYXJhbWV0ZXJzKFpFTkRfTlVN X0FSR1MoKSBUU1JNTFNfQ0MsICJ6fGwiLCAmcGFyYW1ldGVyLCAmb3B0aW9ucykgPT0gRkFJ TFVSRSkgewogCQlyZXR1cm47 --------------000705020904030103050003--