X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org MIME-Version: 1.0 Date: Thu, 20 Aug 2009 21:43:01 +0100 Message-ID: <416096c60908201343g6134c93ao3f4646f6e3fc0dfe@mail.gmail.com> Subject: KOI8 From: Andy Koppe To: cygwin AT cygwin DOT com Content-Type: multipart/mixed; boundary=001485394218349a2f047198cc10 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --001485394218349a2f047198cc10 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit One fairly important character encoding not yet supported by Cygwin 1.7 is KOI8. Well, two actually, because there are slightly different versions for Russian and Ukrainian: KOI8-R and KOI8-U, aka Windows codepages 20866 and 21866. Apparently they're de-facto standards for Unix machines and the in the former Soviet Union. (Windows uses CP1251, whereas ISO-8859-5 (Cyrillic) never caught on.) Cygwin's Midnight Commander actually uses KOI8 if the locale is set to "ru" or "uk", even if a charset is specified explicitly, e.g. "ru.CP1251". Hence you get gibberish where a helpful hint in the user's language should be. (Of course that's primarily a shortcoming in mc.) Anyway, to help support them, the attached patch adds the KOI8 charsets to newlib's Unicode conversion and ctype tables. I took the conversion tables from iconv and adapted the ctype tables from the CP1251 version. Since KOI8 has printable characters in the C1 range from 0x80 to 0x9F, it seems easiest to treat them as Windows codepages. To complete support, "KOI8-R" and "KOI8-U" would need to be recognised in _setlocale_r and mapped to codepages 20866 and 21866. Andy --001485394218349a2f047198cc10 Content-Type: application/octet-stream; name="koi8.patch" Content-Disposition: attachment; filename="koi8.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fylyc2k70 PyBrb2k4LnBhdGNoCkluZGV4OiBjdHlwZS9jdHlwZV9jcC5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9uZXdsaWIv bGliYy9jdHlwZS9jdHlwZV9jcC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjMKZGlmZiAtdSAtcjEuMyBjdHlwZV9jcC5oCi0tLSBjdHlwZS9jdHlwZV9j cC5oCTIxIEFwciAyMDA5IDIwOjA5OjAxIC0wMDAwCTEuMworKysgY3R5cGUv Y3R5cGVfY3AuaAkyMCBBdWcgMjAwOSAxOTo0OToxMiAtMDAwMApAQCAtMzk3 LDYgKzM5Nyw0MyBAQAogCV9MLAlfTCwJX1AsCV9MLAlfTCwJX0wsCV9MLAlf UCwgXAogCV9MLAlfTCwJX0wsCV9MLAlfTCwJX0wsCV9QCiAjZGVmaW5lIF9D VFlQRV9DUDEyNThfMjU1IF9MCisjZGVmaW5lIF9DVFlQRV9DUDIwODY2XzEy OF8yNTQgXAorICAgCV9QLAlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwg XAorCV9QLAlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwgXAorCV9QLAlf UCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwgXAorCV9QLAlfUCwJX1N8X0Is CV9QLAlfUCwJX1AsCV9QLAlfUCwgXAorCV9QLAlfUCwJX1AsCV9MLAlfUCwJ X1AsCV9QLAlfUCwgXAorCV9QLAlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlf UCwgXAorCV9QLAlfUCwJX1AsCV9VLAlfUCwJX1AsCV9QLAlfUCwgXAorCV9Q LAlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwgXAorCV9MLAlfTCwJX0ws CV9MLAlfTCwJX0wsCV9MLAlfTCwgXAorCV9MLAlfTCwJX0wsCV9MLAlfTCwJ X0wsCV9MLAlfTCwgXAorCV9MLAlfTCwJX0wsCV9MLAlfTCwJX0wsCV9MLAlf TCwgXAorCV9MLAlfTCwJX0wsCV9MLAlfTCwJX0wsCV9MLAlfTCwgXAorCV9V LAlfVSwJX1UsCV9VLAlfVSwJX1UsCV9VLAlfVSwgXAorCV9VLAlfVSwJX1Us CV9VLAlfVSwJX1UsCV9VLAlfVSwgXAorCV9VLAlfVSwJX1UsCV9VLAlfVSwJ X1UsCV9VLAlfVSwgXAorCV9VLAlfVSwJX1UsCV9VLAlfVSwJX1UsCV9VCisj ZGVmaW5lIF9DVFlQRV9DUDIwODY2XzI1NSBfVQorI2RlZmluZSBfQ1RZUEVf Q1AyMTg2Nl8xMjhfMjU0IFwKKyAgIAlfUCwJX1AsCV9QLAlfUCwJX1AsCV9Q LAlfUCwJX1AsIFwKKwlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwJX1As IFwKKwlfUCwJX1AsCV9QLAlfUCwJX1AsCV9QLAlfUCwJX1AsIFwKKwlfUCwJ X1AsCV9TfF9CLAlfUCwJX1AsCV9QLAlfUCwJX1AsIFwKKwlfUCwJX1AsCV9Q LAlfTCwJX0wsCV9QLAlfTCwJX0wsIFwKKwlfUCwJX1AsCV9QLAlfUCwJX1As CV9MLAlfUCwJX1AsIFwKKwlfUCwJX1AsCV9QLAlfVSwJX1UsCV9QLAlfVSwJ X1UsIFwKKwlfUCwJX1AsCV9QLAlfUCwJX1AsCV9VLAlfUCwJX1AsIFwKKwlf TCwJX0wsCV9MLAlfTCwJX0wsCV9MLAlfTCwJX0wsIFwKKwlfTCwJX0wsCV9M LAlfTCwJX0wsCV9MLAlfTCwJX0wsIFwKKwlfTCwJX0wsCV9MLAlfTCwJX0ws CV9MLAlfTCwJX0wsIFwKKwlfTCwJX0wsCV9MLAlfTCwJX0wsCV9MLAlfTCwJ X0wsIFwKKwlfVSwJX1UsCV9VLAlfVSwJX1UsCV9VLAlfVSwJX1UsIFwKKwlf VSwJX1UsCV9VLAlfVSwJX1UsCV9VLAlfVSwJX1UsIFwKKwlfVSwJX1UsCV9V LAlfVSwJX1UsCV9VLAlfVSwJX1UsIFwKKwlfVSwJX1UsCV9VLAlfVSwJX1Us CV9VLAlfVQorI2RlZmluZSBfQ1RZUEVfQ1AyMTg2Nl8yNTUgX1UKKwogCiBl eHRlcm4gaW50IF9fY3BfaW5kZXggKGNvbnN0IGNoYXIgKmNoYXJzZXRfZXh0 KTsKIApAQCAtNDA1LDcgKzQ0Miw3IEBACiAjaWZuZGVmIF9fQ1lHV0lOX18K IHN0YXRpYyBfQ09OU1QKICNlbmRpZgotY2hhciBfX2N0eXBlX2NwWzIyXVsx MjggKyAyNTZdID0geworY2hhciBfX2N0eXBlX2NwWzI0XVsxMjggKyAyNTZd ID0gewogICB7IF9DVFlQRV9DUDQzN18xMjhfMjU0LAogICAgIDAsCiAgICAg X0NUWVBFX0RBVEFfMF8xMjcsCkBAIC01MzgsNiArNTc1LDE4IEBACiAgICAg X0NUWVBFX0NQMTI1OF8xMjhfMjU0LAogICAgIF9DVFlQRV9DUDEyNThfMjU1 CiAgIH0sCisgIHsgX0NUWVBFX0NQMjA4NjZfMTI4XzI1NCwKKyAgICAwLAor ICAgIF9DVFlQRV9EQVRBXzBfMTI3LAorICAgIF9DVFlQRV9DUDIwODY2XzEy OF8yNTQsCisgICAgX0NUWVBFX0NQMjA4NjZfMjU1CisgIH0sCisgIHsgX0NU WVBFX0NQMjE4NjZfMTI4XzI1NCwKKyAgICAwLAorICAgIF9DVFlQRV9EQVRB XzBfMTI3LAorICAgIF9DVFlQRV9DUDIxODY2XzEyOF8yNTQsCisgICAgX0NU WVBFX0NQMjE4NjZfMjU1CisgIH0sCiB9OwogCiAjZWxzZSAvKiAhZGVmaW5l ZChBTExPV19ORUdBVElWRV9DVFlQRV9JTkRFWCkgKi8KQEAgLTY1Myw2ICs3 MDIsMTYgQEAKICAgICBfQ1RZUEVfQ1AxMjU4XzEyOF8yNTQsCiAgICAgX0NU WVBFX0NQMTI1OF8yNTUKICAgfSwKKyAgeyAwLAorICAgIF9DVFlQRV9EQVRB XzBfMTI3LAorICAgIF9DVFlQRV9DUDIwODY2XzEyOF8yNTQsCisgICAgX0NU WVBFX0NQMjA4NjZfMjU1CisgIH0sCisgIHsgMCwKKyAgICBfQ1RZUEVfREFU QV8wXzEyNywKKyAgICBfQ1RZUEVfQ1AyMTg2Nl8xMjhfMjU0LAorICAgIF9D VFlQRV9DUDIxODY2XzI1NQorICB9LAogfTsKIAogI2VuZGlmIC8qIEFMTE9X X05FR0FUSVZFX0NUWVBFX0lOREVYICovCkluZGV4OiBzdGRsaWIvc2JfY2hh cnNldHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvbmV3bGliL2xpYmMvc3RkbGliL3NiX2NoYXJzZXRzLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1yMS4xIHNiX2NoYXJz ZXRzLmMKLS0tIHN0ZGxpYi9zYl9jaGFyc2V0cy5jCTI0IE1hciAyMDA5IDEw OjEzOjI3IC0wMDAwCTEuMQorKysgc3RkbGliL3NiX2NoYXJzZXRzLmMJMjAg QXVnIDIwMDkgMTk6NDk6MTQgLTAwMDAKQEAgLTIwMyw3ICsyMDMsNyBAQAog ICAgdmFsdWUgKGZ1bmN0aW9uIF9fY3BfaW5kZXgpLCB0aGUgc2Vjb25kIGlu ZGV4IGlzIHRoZSB2YWx1ZSBvZiB0aGUKICAgIGluY29taW5nIGNoYXJhY3Rl ciAtIDB4ODAuCiAgICBWYWx1ZXMgPCAweDgwIGRvbid0IGhhdmUgdG8gYmUg Y29udmVydGVkIGFueXdheS4gKi8KLXdjaGFyX3QgX19jcF9jb252WzIyXVsw eDgwXSA9IHsKK3djaGFyX3QgX19jcF9jb252WzI0XVsweDgwXSA9IHsKICAg LyogQ1A0MzcgKi8KICAgeyAweGM3LCAweGZjLCAweGU5LCAweGUyLCAweGU0 LCAweGUwLCAweGU1LCAweGU3LAogICAgIDB4ZWEsIDB4ZWIsIDB4ZTgsIDB4 ZWYsIDB4ZWUsIDB4ZWMsIDB4YzQsIDB4YzUsCkBAIC01NzcsNyArNTc3LDQx IEBACiAgICAgMHhlMCwgMHhlMSwgMHhlMiwgMHgxMDMsIDB4ZTQsIDB4ZTUs IDB4ZTYsIDB4ZTcsCiAgICAgMHhlOCwgMHhlOSwgMHhlYSwgMHhlYiwgMHgz MDEsIDB4ZWQsIDB4ZWUsIDB4ZWYsCiAgICAgMHgxMTEsIDB4ZjEsIDB4MzIz LCAweGYzLCAweGY0LCAweDFhMSwgMHhmNiwgMHhmNywKLSAgICAweGY4LCAw eGY5LCAweGZhLCAweGZiLCAweGZjLCAweDFiMCwgMHgyMGFiLCAweGZmIH0K KyAgICAweGY4LCAweGY5LCAweGZhLCAweGZiLCAweGZjLCAweDFiMCwgMHgy MGFiLCAweGZmIH0sCisgIC8qIENQMjA4NjYgKEtPSTgtUikgKi8KKyAgeyAw eDI1MDAsMHgyNTAyLDB4MjUwYywweDI1MTAsMHgyNTE0LDB4MjUxOCwweDI1 MWMsMHgyNTI0LAorICAgIDB4MjUyYywweDI1MzQsMHgyNTNjLDB4MjU4MCww eDI1ODQsMHgyNTg4LDB4MjU4YywweDI1OTAsCisgICAgMHgyNTkxLDB4MjU5 MiwweDI1OTMsMHgyMzIwLDB4MjVhMCwweDIyMTksMHgyMjFhLDB4MjI0OCwK KyAgICAweDIyNjQsMHgyMjY1LDB4YTAsMHgyMzIxLDB4YjAsMHhiMiwweGI3 LDB4ZjcsCisgICAgMHgyNTUwLDB4MjU1MSwweDI1NTIsMHg0NTEsMHgyNTUz LDB4MjU1NCwweDI1NTUsMHgyNTU2LAorICAgIDB4MjU1NywweDI1NTgsMHgy NTU5LDB4MjU1YSwweDI1NWIsMHgyNTVjLDB4MjU1ZCwweDI1NWUsCisgICAg MHgyNTVmLDB4MjU2MCwweDI1NjEsMHg0MDEsMHgyNTYyLDB4MjU2MywweDI1 NjQsMHgyNTY1LAorICAgIDB4MjU2NiwweDI1NjcsMHgyNTY4LDB4MjU2OSww eDI1NmEsMHgyNTZiLDB4MjU2YywweGE5LAorICAgIDB4NDRlLDB4NDMwLDB4 NDMxLDB4NDQ2LDB4NDM0LDB4NDM1LDB4NDQ0LDB4NDMzLAorICAgIDB4NDQ1 LDB4NDM4LDB4NDM5LDB4NDNhLDB4NDNiLDB4NDNjLDB4NDNkLDB4NDNlLAor ICAgIDB4NDNmLDB4NDRmLDB4NDQwLDB4NDQxLDB4NDQyLDB4NDQzLDB4NDM2 LDB4NDMyLAorICAgIDB4NDRjLDB4NDRiLDB4NDM3LDB4NDQ4LDB4NDRkLDB4 NDQ5LDB4NDQ3LDB4NDRhLAorICAgIDB4NDJlLDB4NDEwLDB4NDExLDB4NDI2 LDB4NDE0LDB4NDE1LDB4NDI0LDB4NDEzLAorICAgIDB4NDI1LDB4NDE4LDB4 NDE5LDB4NDFhLDB4NDFiLDB4NDFjLDB4NDFkLDB4NDFlLAorICAgIDB4NDFm LDB4NDJmLDB4NDIwLDB4NDIxLDB4NDIyLDB4NDIzLDB4NDE2LDB4NDEyLAor ICAgIDB4NDJjLDB4NDJiLDB4NDE3LDB4NDI4LDB4NDJkLDB4NDI5LDB4NDI3 LDB4NDJhIH0sCisgIC8qIENQMjE4NjYgKEtPSTgtVSkgKi8KKyAgeyAweDI1 MDAsMHgyNTAyLDB4MjUwYywweDI1MTAsMHgyNTE0LDB4MjUxOCwweDI1MWMs MHgyNTI0LAorICAgIDB4MjUyYywweDI1MzQsMHgyNTNjLDB4MjU4MCwweDI1 ODQsMHgyNTg4LDB4MjU4YywweDI1OTAsCisgICAgMHgyNTkxLDB4MjU5Miww eDI1OTMsMHgyMzIwLDB4MjVhMCwweDIyMTksMHgyMjFhLDB4MjI0OCwKKyAg ICAweDIyNjQsMHgyMjY1LDB4YTAsMHgyMzIxLDB4YjAsMHhiMiwweGI3LDB4 ZjcsCisgICAgMHgyNTUwLDB4MjU1MSwweDI1NTIsMHg0NTEsMHg0NTQsMHgy NTU0LDB4NDU2LDB4NDU3LAorICAgIDB4MjU1NywweDI1NTgsMHgyNTU5LDB4 MjU1YSwweDI1NWIsMHg0OTEsMHgyNTVkLDB4MjU1ZSwKKyAgICAweDI1NWYs MHgyNTYwLDB4MjU2MSwweDQwMSwweDQwNCwweDI1NjMsMHg0MDYsMHg0MDcs CisgICAgMHgyNTY2LDB4MjU2NywweDI1NjgsMHgyNTY5LDB4MjU2YSwweDQ5 MCwweDI1NmMsMHhhOSwKKyAgICAweDQ0ZSwweDQzMCwweDQzMSwweDQ0Niww eDQzNCwweDQzNSwweDQ0NCwweDQzMywKKyAgICAweDQ0NSwweDQzOCwweDQz OSwweDQzYSwweDQzYiwweDQzYywweDQzZCwweDQzZSwKKyAgICAweDQzZiww eDQ0ZiwweDQ0MCwweDQ0MSwweDQ0MiwweDQ0MywweDQzNiwweDQzMiwKKyAg ICAweDQ0YywweDQ0YiwweDQzNywweDQ0OCwweDQ0ZCwweDQ0OSwweDQ0Nyww eDQ0YSwKKyAgICAweDQyZSwweDQxMCwweDQxMSwweDQyNiwweDQxNCwweDQx NSwweDQyNCwweDQxMywKKyAgICAweDQyNSwweDQxOCwweDQxOSwweDQxYSww eDQxYiwweDQxYywweDQxZCwweDQxZSwKKyAgICAweDQxZiwweDQyZiwweDQy MCwweDQyMSwweDQyMiwweDQyMywweDQxNiwweDQxMiwKKyAgICAweDQyYyww eDQyYiwweDQxNywweDQyOCwweDQyZCwweDQyOSwweDQyNywweDQyYSB9CiB9 OwogI2VuZGlmIC8qIF9NQl9FWFRFTkRFRF9DSEFSU0VUU19XSU5ET1dTICov CiAKQEAgLTY4Nyw2ICs3MjEsMTIgQEAKICAgICBjYXNlIDEyNTg6CiAgICAg ICBjcF9pZHggPSAyMTsKICAgICAgIGJyZWFrOworICAgIGNhc2UgMjA4NjY6 CisgICAgICBjcF9pZHggPSAyMjsKKyAgICAgIGJyZWFrOworICAgIGNhc2Ug MjE4NjY6CisgICAgICBjcF9pZHggPSAyMzsKKyAgICAgIGJyZWFrOwogICAg IGRlZmF1bHQ6CiAgICAgICBjcF9pZHggPSAtMTsKICAgICAgIGJyZWFrOwo= --001485394218349a2f047198cc10 Content-Type: text/plain; charset=us-ascii -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --001485394218349a2f047198cc10--