Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:12713 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 36929 invoked by uid 1010); 10 Sep 2004 11:22:24 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 33205 invoked from network); 10 Sep 2004 11:20:31 -0000 Received: from unknown (HELO jdi.jdimedia.nl) (212.204.192.51) by pb1.pair.com with SMTP; 10 Sep 2004 11:20:31 -0000 Received: from localhost (localhost [127.0.0.1]) by jdi.jdimedia.nl (8.12.11/8.12.11) with ESMTP id i8ABKTKx012389 for ; Fri, 10 Sep 2004 13:20:29 +0200 Received: from localhost (localhost [127.0.0.1]) by jdi.jdimedia.nl (8.12.11/8.12.11) with ESMTP id i8ABKS9h012383; Fri, 10 Sep 2004 13:20:28 +0200 Date: Fri, 10 Sep 2004 13:20:28 +0200 (CEST) X-X-Sender: derick@localhost To: PHP Developers Mailing List cc: =?ISO-8859-15?Q?B=E5rd_Farsted?= Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1070556044-1094815228=:14704" X-Virus-Scanned: by amavisd-new at jdimedia.nl Subject: Locale Based Array sorting From: derick@php.net (Derick Rethans) --8323328-1070556044-1094815228=:14704 Content-Type: TEXT/PLAIN; charset=ISO-8859-15 Content-Transfer-Encoding: QUOTED-PRINTABLE Hello, the attached patch adds a flag (SORT_LOCALE_STRING) to our sort functions that allows the sorting to be done based on the locale settings. This is important for languages like Norwegian which adds =E6, = =F8 and =E5 to the end of the alphabet, while their iso-8859-1 (the "C" locale) order is =E5 =E6 =F8. The working is demonstrated as follows: Output: array(3) { [0]=3D> string(4) "=E5tte" [1]=3D> string(4) "=E6tte" [2]=3D> string(4) "=F8tte" } array(3) { [0]=3D> string(4) "=E6tte" [1]=3D> string(4) "=F8tte" [2]=3D> string(4) "=E5tte" } array(5) { [0]=3D> string(6) "=C3=A6tte3" [1]=3D> string(6) "=C3=A6tte4" [2]=3D> string(6) "=C3=B8tte1" [3]=3D> string(6) "=C3=B8tte2" [4]=3D> string(5) "=C3=A5tte" } (The funny chars are UTf8, but it is correct sorting) I will be committing this patch later, if there are no objections. Derick --=20 Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org --8323328-1070556044-1094815228=:14704 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="strcollate-patch.diff" Content-Transfer-Encoding: BASE64 Content-Description: Content-Disposition: attachment; filename="strcollate-patch.diff" PyBaZW5kDQpJbmRleDogZXh0L3N0YW5kYXJkL2FycmF5LmMNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9waHAtc3Jj L2V4dC9zdGFuZGFyZC9hcnJheS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g MS4yNjYuMi4yDQpkaWZmIC11IC1wIC1yMS4yNjYuMi4yIGFycmF5LmMNCi0t LSBleHQvc3RhbmRhcmQvYXJyYXkuYwkxMCBBdWcgMjAwNCAwNjowMToyMCAt MDAwMAkxLjI2Ni4yLjINCisrKyBleHQvc3RhbmRhcmQvYXJyYXkuYwkxMCBT ZXAgMjAwNCAxMDo0NjoyNyAtMDAwMA0KQEAgLTY1LDYgKzY1LDcgQEAgcGhw X2FycmF5X2dsb2JhbHMgYXJyYXlfZ2xvYmFsczsNCiAjZGVmaW5lIFNPUlRf UkVHVUxBUgkJCTANCiAjZGVmaW5lIFNPUlRfTlVNRVJJQwkJCTENCiAjZGVm aW5lCVNPUlRfU1RSSU5HCQkJCTINCisjZGVmaW5lCVNPUlRfTE9DQUxFX1NU UklORyAgICAgIDUNCiANCiAjZGVmaW5lIFNPUlRfREVTQwkJCQkzDQogI2Rl ZmluZSBTT1JUX0FTQwkJCQk0DQpAQCAtMTEyLDYgKzExMyw4IEBAIFBIUF9N SU5JVF9GVU5DVElPTihhcnJheSkNCiAJUkVHSVNURVJfTE9OR19DT05TVEFO VCgiU09SVF9SRUdVTEFSIiwgU09SVF9SRUdVTEFSLCBDT05TVF9DUyB8IENP TlNUX1BFUlNJU1RFTlQpOw0KIAlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJT T1JUX05VTUVSSUMiLCBTT1JUX05VTUVSSUMsIENPTlNUX0NTIHwgQ09OU1Rf UEVSU0lTVEVOVCk7DQogCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIlNPUlRf U1RSSU5HIiwgU09SVF9TVFJJTkcsIENPTlNUX0NTIHwgQ09OU1RfUEVSU0lT VEVOVCk7DQorCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIlNPUlRfTE9DQUxF X1NUUklORyIsIFNPUlRfTE9DQUxFX1NUUklORywgQ09OU1RfQ1MgfCBDT05T VF9QRVJTSVNURU5UKTsNCisNCiAJUkVHSVNURVJfTE9OR19DT05TVEFOVCgi Q0FTRV9MT1dFUiIsIENBU0VfTE9XRVIsIENPTlNUX0NTIHwgQ09OU1RfUEVS U0lTVEVOVCk7DQogCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQoIkNBU0VfVVBQ RVIiLCBDQVNFX1VQUEVSLCBDT05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQp Ow0KIA0KQEAgLTE0MSw2ICsxNDQsMTAgQEAgc3RhdGljIHZvaWQgc2V0X2Nv bXBhcmVfZnVuYyhpbnQgc29ydF90eQ0KIAkJCUFSUkFZRyhjb21wYXJlX2Z1 bmMpID0gc3RyaW5nX2NvbXBhcmVfZnVuY3Rpb247DQogCQkJYnJlYWs7DQog DQorCQljYXNlIFNPUlRfTE9DQUxFX1NUUklORzoNCisJCQlBUlJBWUcoY29t cGFyZV9mdW5jKSA9IHN0cmluZ19sb2NhbGVfY29tcGFyZV9mdW5jdGlvbjsN CisJCQlicmVhazsNCisNCiAJCWNhc2UgU09SVF9SRUdVTEFSOg0KIAkJZGVm YXVsdDoNCiAJCQlBUlJBWUcoY29tcGFyZV9mdW5jKSA9IGNvbXBhcmVfZnVu Y3Rpb247DQpJbmRleDogWmVuZC96ZW5kX29wZXJhdG9ycy5jDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvWmVuZEVu Z2luZTIvemVuZF9vcGVyYXRvcnMuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMTkzDQpkaWZmIC11IC1wIC1yMS4xOTMgemVuZF9vcGVyYXRvcnMuYw0K LS0tIFplbmQvemVuZF9vcGVyYXRvcnMuYwkxMCBNYXkgMjAwNCAxNDo1Njoy MSAtMDAwMAkxLjE5Mw0KKysrIFplbmQvemVuZF9vcGVyYXRvcnMuYwkxMCBT ZXAgMjAwNCAxMDo0OTowOCAtMDAwMA0KQEAgLTEyMjEsNiArMTIyMSwzMyBA QCBaRU5EX0FQSSBpbnQgc3RyaW5nX2NvbXBhcmVfZnVuY3Rpb24oenZhDQog CXJldHVybiBTVUNDRVNTOw0KIH0NCiANCitaRU5EX0FQSSBpbnQgc3RyaW5n X2xvY2FsZV9jb21wYXJlX2Z1bmN0aW9uKHp2YWwgKnJlc3VsdCwgenZhbCAq b3AxLCB6dmFsICpvcDIgVFNSTUxTX0RDKQ0KK3sNCisJenZhbCBvcDFfY29w eSwgb3AyX2NvcHk7DQorCWludCB1c2VfY29weTEsIHVzZV9jb3B5MjsNCisN CisJemVuZF9tYWtlX3ByaW50YWJsZV96dmFsKG9wMSwgJm9wMV9jb3B5LCAm dXNlX2NvcHkxKTsNCisJemVuZF9tYWtlX3ByaW50YWJsZV96dmFsKG9wMiwg Jm9wMl9jb3B5LCAmdXNlX2NvcHkyKTsNCisNCisJaWYgKHVzZV9jb3B5MSkg ew0KKwkJb3AxID0gJm9wMV9jb3B5Ow0KKwl9DQorCWlmICh1c2VfY29weTIp IHsNCisJCW9wMiA9ICZvcDJfY29weTsNCisJfQ0KKw0KKwlyZXN1bHQtPnZh bHVlLmx2YWwgPSBzdHJjb2xsKG9wMS0+dmFsdWUuc3RyLnZhbCwgb3AyLT52 YWx1ZS5zdHIudmFsKTsNCisJcmVzdWx0LT50eXBlID0gSVNfTE9ORzsNCisN CisJaWYgKHVzZV9jb3B5MSkgew0KKwkJenZhbF9kdG9yKG9wMSk7DQorCX0N CisJaWYgKHVzZV9jb3B5Mikgew0KKwkJenZhbF9kdG9yKG9wMik7DQorCX0N CisJcmV0dXJuIFNVQ0NFU1M7DQorfQ0KKw0KIFpFTkRfQVBJIGludCBudW1l cmljX2NvbXBhcmVfZnVuY3Rpb24oenZhbCAqcmVzdWx0LCB6dmFsICpvcDEs IHp2YWwgKm9wMiBUU1JNTFNfREMpDQogew0KIAl6dmFsIG9wMV9jb3B5LCBv cDJfY29weTsNCkluZGV4OiBaZW5kL3plbmRfb3BlcmF0b3JzLmgNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5k RW5naW5lMi96ZW5kX29wZXJhdG9ycy5oLHYNCnJldHJpZXZpbmcgcmV2aXNp b24gMS44OC4yLjENCmRpZmYgLXUgLXAgLXIxLjg4LjIuMSB6ZW5kX29wZXJh dG9ycy5oDQotLS0gWmVuZC96ZW5kX29wZXJhdG9ycy5oCTE2IEp1bCAyMDA0 IDAyOjAyOjA5IC0wMDAwCTEuODguMi4xDQorKysgWmVuZC96ZW5kX29wZXJh dG9ycy5oCTEwIFNlcCAyMDA0IDEwOjQ5OjA4IC0wMDAwDQpAQCAtMTc5LDYg KzE3OSw3IEBAIFpFTkRfQVBJIGludCB6dmFsX2lzX3RydWUoenZhbCAqb3Ap Ow0KIFpFTkRfQVBJIGludCBjb21wYXJlX2Z1bmN0aW9uKHp2YWwgKnJlc3Vs dCwgenZhbCAqb3AxLCB6dmFsICpvcDIgVFNSTUxTX0RDKTsNCiBaRU5EX0FQ SSBpbnQgbnVtZXJpY19jb21wYXJlX2Z1bmN0aW9uKHp2YWwgKnJlc3VsdCwg enZhbCAqb3AxLCB6dmFsICpvcDIgVFNSTUxTX0RDKTsNCiBaRU5EX0FQSSBp bnQgc3RyaW5nX2NvbXBhcmVfZnVuY3Rpb24oenZhbCAqcmVzdWx0LCB6dmFs ICpvcDEsIHp2YWwgKm9wMiBUU1JNTFNfREMpOw0KK1pFTkRfQVBJIGludCBz dHJpbmdfbG9jYWxlX2NvbXBhcmVfZnVuY3Rpb24oenZhbCAqcmVzdWx0LCB6 dmFsICpvcDEsIHp2YWwgKm9wMiBUU1JNTFNfREMpOw0KIA0KIFpFTkRfQVBJ IHZvaWQgemVuZF9zdHJfdG9sb3dlcihjaGFyICpzdHIsIHVuc2lnbmVkIGlu dCBsZW5ndGgpOw0KIFpFTkRfQVBJIGNoYXIgKnplbmRfc3RyX3RvbG93ZXJf Y29weShjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzb3VyY2UsIHVuc2lnbmVk IGludCBsZW5ndGgpOw0K --8323328-1070556044-1094815228=:14704--