From: Michal Suchanek Date: 2007-12-31T02:07:29+09:00 Subject: PATCH use ncursesw to print multibyte characters when available ------=_Part_1365_10721455.1199034452562 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello Since ruby 1.9 does call setlocale ncursesw can be used to print multibyte characters when the current locale contains such characters. For me plain ncurses and ncursesw with non-multibyte locale (such as POSIX) does not print utf-8 characters correctly. The patch I attach allows me to output utf-8 encoded strings using the standard ncurses interface. Ncurses also contains interfaces for wide character strings but I do not see much use for these. However, presence of these interfaces might be used to detect if the curses implementation can handle multibyte characters. I do not know any curses implementation other than ncursesw that works but there might be some out there. Thanks Michal ------=_Part_1365_10721455.1199034452562 Content-Type: text/x-patch; name=ruby-ncursesw.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fattz5pb Content-Disposition: attachment; filename=ruby-ncursesw.patch SW5kZXg6IGV4dC9jdXJzZXMvY3Vyc2VzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXh0L2N1cnNlcy9jdXJz ZXMuYwkocmV2aXNpb24gMTQ3OTApCisrKyBleHQvY3Vyc2VzL2N1cnNlcy5jCSh3b3JraW5nIGNv cHkpCkBAIC0xNiw3ICsxNiwxMCBAQAogI2luY2x1ZGUgInJ1YnkuaCIKICNpbmNsdWRlICJydWJ5 aW8uaCIKIAotI2lmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX0gpCisjaWYgZGVmaW5lZChIQVZFX05D VVJTRVNXX05DVVJTRVNfSCkKKyMgZGVmaW5lIF9SVUJZX0NVUlNFU19XSURFCisjIGluY2x1ZGUg PG5jdXJzZXN3L25jdXJzZXMuaD4KKyNlbGlmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX0gpCiAjIGlu Y2x1ZGUgPG5jdXJzZXMuaD4KICNlbGlmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX0NVUlNFU19IKQog IyBpbmNsdWRlIDxuY3Vyc2VzL2N1cnNlcy5oPgpAQCAtMTE2LDYgKzExOSwxNyBAQAogCiAvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG1vZHVsZSBDdXJzZXMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0qLwogCisvKiBkZWYgd2lkZT8gKi8KK3N0YXRpYyBWQUxVRQorY3Vyc2VzX3dpZGUo VkFMVUUgb2JqKQoreworI2lmZGVmIF9SVUJZX0NVUlNFU19XSURFCisgIHJldHVybiBRdHJ1ZTsK KyNlbHNlCisgIHJldHVybiBRZmFsc2U7CisjZW5kaWYKK30KKwogLyogZGVmIGluaXRfc2NyZWVu ICovCiBzdGF0aWMgVkFMVUUKIGN1cnNlc19pbml0X3NjcmVlbih2b2lkKQpAQCAtMTM3NCw2ICsx Mzg4LDcgQEAKICAgICByYl9kZWZpbmVfbWV0aG9kKGNNb3VzZUV2ZW50LCAiYnN0YXRlIiwgY3Vy c19tb3VzZV9ic3RhdGUsIDApOwogI2VuZGlmIC8qIFVTRV9NT1VTRSAqLwogCisgICAgcmJfZGVm aW5lX21vZHVsZV9mdW5jdGlvbihtQ3Vyc2VzLCAid2lkZT8iLCBjdXJzZXNfd2lkZSwgMCk7CiAg ICAgcmJfZGVmaW5lX21vZHVsZV9mdW5jdGlvbihtQ3Vyc2VzLCAiaW5pdF9zY3JlZW4iLCBjdXJz ZXNfaW5pdF9zY3JlZW4sIDApOwogICAgIHJiX2RlZmluZV9tb2R1bGVfZnVuY3Rpb24obUN1cnNl cywgImNsb3NlX3NjcmVlbiIsIGN1cnNlc19jbG9zZV9zY3JlZW4sIDApOwogICAgIHJiX2RlZmlu ZV9tb2R1bGVfZnVuY3Rpb24obUN1cnNlcywgImNsb3NlZD8iLCBjdXJzZXNfY2xvc2VkLCAwKTsK SW5kZXg6IGV4dC9jdXJzZXMvaGVsbG8ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXh0L2N1cnNlcy9oZWxs by5yYgkocmV2aXNpb24gMTQ3OTApCisrKyBleHQvY3Vyc2VzL2hlbGxvLnJiCSh3b3JraW5nIGNv cHkpCkBAIC0yMyw3ICsyMyw3IEBACiAgIGFkZHN0cigiSGl0IGFueSBrZXkiKQogICByZWZyZXNo CiAgIGdldGNoCi0gIHNob3dfbWVzc2FnZSgiSGVsbG8sIFdvcmxkISIpCisgIHNob3dfbWVzc2Fn ZSgi5LuK5pel44GvISIpCiAgIHJlZnJlc2gKIGVuc3VyZQogICBjbG9zZV9zY3JlZW4KSW5kZXg6 IGV4dC9jdXJzZXMvZXh0Y29uZi5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBleHQvY3Vyc2VzL2V4dGNvbmYu cmIJKHJldmlzaW9uIDE0NzkwKQorKysgZXh0L2N1cnNlcy9leHRjb25mLnJiCSh3b3JraW5nIGNv cHkpCkBAIC04LDggKzgsMTAgQEAKIGhlYWRlcnMgPSBbXQogaGF2ZV9saWJyYXJ5KCJteXRpbmZv IiwgInRnZXRlbnQiKSBpZiAvYm93LyA9fiBSVUJZX1BMQVRGT1JNCiBoYXZlX2xpYnJhcnkoInRp bmZvIiwgInRnZXRlbnQiKSBvciBoYXZlX2xpYnJhcnkoInRlcm1jYXAiLCAidGdldGVudCIpCi1p ZiBoYXZlX2hlYWRlcigqY3Vyc2VzPSV3Im5jdXJzZXMuaCIpIGFuZCBoYXZlX2xpYnJhcnkoIm5j dXJzZXMiLCAiaW5pdHNjciIpCitpZiBoYXZlX2hlYWRlcigqY3Vyc2VzPSV3Im5jdXJzZXN3L25j dXJzZXMuaCIpIGFuZCBoYXZlX2xpYnJhcnkoIm5jdXJzZXN3IiwgImluaXRzY3IiKQogICBtYWtl PXRydWUKK2Vsc2lmIGhhdmVfaGVhZGVyKCpjdXJzZXM9JXcibmN1cnNlcy5oIikgYW5kIGhhdmVf bGlicmFyeSgibmN1cnNlcyIsICJpbml0c2NyIikKKyAgbWFrZT10cnVlCiBlbHNpZiBoYXZlX2hl YWRlcigqY3Vyc2VzPSV3Im5jdXJzZXMvY3Vyc2VzLmgiKSBhbmQgaGF2ZV9saWJyYXJ5KCJuY3Vy c2VzIiwgImluaXRzY3IiKQogICBtYWtlPXRydWUKIGVsc2lmIGhhdmVfaGVhZGVyKCpjdXJzZXM9 JXciY3Vyc2VzX2NvbHIvY3Vyc2VzLmgiKSBhbmQgaGF2ZV9saWJyYXJ5KCJjdXJfY29sciIsICJp bml0c2NyIikK ------=_Part_1365_10721455.1199034452562--