[PATCH 3/4] Display any trailing combining characters

Fabienne Ducroquet <[email protected]> Tue, 12 Apr 2016 21:02:37 +0200
Newsgroups gmane.comp.web.links
Message-ID <[email protected]>
RGlzcGxheSBjb21iaW5pbmcgY2hhcmFjdGVycyBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHN0
cmluZyBpbiBzZXRfaGxpbmUKd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgbmV4dCBub24gemVybyB3
aWR0aCBjaGFyYWN0ZXIuIFRoaXMgd2F5IGNvbWJpbmluZwpjaGFyYWN0ZXJzIGF0IHRoZSBlbmQg
b2YgdGhlIGRvY3VtZW50IGFyZSBkaXNwbGF5ZWQuCgpTaWduZWQtb2ZmLWJ5OiBGYWJpZW5uZSBE
dWNyb3F1ZXQgPGZhYmlkdWNAZ21haWwuY29tPgotLS0KIGZlYXR1cmVzLmNvbmYgICAgICAgICAg
ICAgICAgfCAgMiAtLQogc3JjL2RvY3VtZW50L2h0bWwvcmVuZGVyZXIuYyB8IDUxICsrKysrKysr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMz
IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzLmNv
bmYgYi9mZWF0dXJlcy5jb25mCmluZGV4IDM2NWI4NGQuLjIwYmI4YWIgMTAwNjQ0Ci0tLSBhL2Zl
YXR1cmVzLmNvbmYKKysrIGIvZmVhdHVyZXMuY29uZgpAQCAtNzA3LDggKzcwNyw2IEBAIENPTkZJ
R19VVEY4PXllcwogIyAgIEhUTUwgZm9ybXMsIEhUTUwgbGlua3MsIEhUTUwgZG9jdW1lbnQgdGl0
bGVzLCBwbGFpbiB0ZXh0LCBtZW51cywKICMgICBkaWFsb2cgYm94ZXMsIG9yIGtleW1hcHMuCiAj
Ci0jIC0gQ29tYmluaW5nIGNoYXJhY3RlcnMgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgZG8g
bm90IHRha2UgZWZmZWN0LgotIwogIyBEZWZhdWx0OiBkaXNhYmxlZAogCiBDT05GSUdfQ09NQklO
RT15ZXMKZGlmZiAtLWdpdCBhL3NyYy9kb2N1bWVudC9odG1sL3JlbmRlcmVyLmMgYi9zcmMvZG9j
dW1lbnQvaHRtbC9yZW5kZXJlci5jCmluZGV4IGI3YjM1OGIuLmE1NWY2MmEgMTAwNjQ0Ci0tLSBh
L3NyYy9kb2N1bWVudC9odG1sL3JlbmRlcmVyLmMKKysrIGIvc3JjL2RvY3VtZW50L2h0bWwvcmVu
ZGVyZXIuYwpAQCAtNDI1LDYgKzQyNSwzNSBAQCBtb3ZlX2NvbWJfeF95KHN0cnVjdCBwYXJ0ICpw
YXJ0LCBpbnQgeGYsIGludCB5ZiwgaW50IHh0LCBpbnQgeXQpCiAjIGRlZmluZSBtb3ZlX2NvbWJf
eF95KHBhcnQsIHhmLCB5ZiwgeHQsIHl0KSAoKHZvaWQpIDApCiAjZW5kaWYKIAorI2lmZGVmIENP
TkZJR19DT01CSU5FCitzdGF0aWMgdm9pZAorcHV0X2NvbWJpbmVkKHN0cnVjdCBwYXJ0ICpwYXJ0
LCBpbnQgeCkKK3sKKwlzdHJ1Y3QgZG9jdW1lbnQgKmRvY3VtZW50ID0gcGFydC0+ZG9jdW1lbnQ7
CisKKwlpZiAoZG9jdW1lbnQtPmNvbWJpX2xlbmd0aCkgeworCQlpZiAoZG9jdW1lbnQtPmNvbWJf
eCAhPSAtMSkgeworCQkJdW5pY29kZV92YWxfVCBwcmV2ID0gZ2V0X2NvbWJpbmVkKGRvY3VtZW50
LT5jb21iaSwgZG9jdW1lbnQtPmNvbWJpX2xlbmd0aCArIDEpOworCisJCQlhc3NlcnRfY29tYl94
X3lfb2soZG9jdW1lbnQpOworCQkJaWZfYXNzZXJ0X2ZhaWxlZCBwcmV2ID0gVUNTX05PX0NIQVI7
CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgY29tYmluZWQgY2hhcmFjdGVyIGlzIG5vdCBjb25zaWRl
cmVkIGFzCisJCQkgKiBhIHNwYWNlLiAqLworCQkJaWYgKHgpCisJCQkJcGFydC0+c3BhY2VzW3gg
LSAxXSA9IDA7CisKKwkJCWlmIChwcmV2ICE9IFVDU19OT19DSEFSKQorCQkJCWRvY3VtZW50LT5k
YXRhW2RvY3VtZW50LT5jb21iX3ldCisJCQkJCS5jaGFyc1tkb2N1bWVudC0+Y29tYl94XS5kYXRh
ID0gcHJldjsKKwkJfQorCQlkb2N1bWVudC0+Y29tYmlfbGVuZ3RoID0gMDsKKwl9Cit9CisjZWxz
ZQorIyBkZWZpbmUgcHV0X2NvbWJpbmVkKHBhcnQsIHgpICgodm9pZCkgMCkKKyNlbmRpZgorCiAj
aWZkZWYgQ09ORklHX1VURjgKIC8qIEZpcnN0IHBvc3NpYmx5IGRvIHRoZSBmb3JtYXQgY2hhbmdl
IGFuZCB0aGVuIGZpbmQgb3V0IHdoYXQgY29vcmRpbmF0ZXMKICAqIHRvIHVzZSBzaW5jZSBzdWIt
IG9yIHN1cGVyc2NyaXB0IG1pZ2h0IGNoYW5nZSB0aGVtICovCkBAIC01NjQsMjQgKzU5Myw3IEBA
IGdvb2RfY2hhcjoKIAogI2lmZGVmIENPTkZJR19DT01CSU5FCiAJCQkJaWYgKHdjd2lkdGgoKHdj
aGFyX3QpZGF0YSkpIHsKLQkJCQkJaWYgKGRvY3VtZW50LT5jb21iaV9sZW5ndGgpIHsKLQkJCQkJ
CWlmIChkb2N1bWVudC0+Y29tYl94ICE9IC0xKSB7Ci0JCQkJCQkJdW5pY29kZV92YWxfVCBwcmV2
ID0gZ2V0X2NvbWJpbmVkKGRvY3VtZW50LT5jb21iaSwgZG9jdW1lbnQtPmNvbWJpX2xlbmd0aCAr
IDEpOwotCi0JCQkJCQkJYXNzZXJ0X2NvbWJfeF95X29rKGRvY3VtZW50KTsKLQkJCQkJCQlpZl9h
c3NlcnRfZmFpbGVkIHByZXYgPSBVQ1NfTk9fQ0hBUjsKLQotCQkJCQkJCS8qIE1ha2Ugc3VyZSB0
aGUgY29tYmluZWQgY2hhcmFjdGVyIGlzIG5vdCBjb25zaWRlcmVkIGFzCi0JCQkJCQkJICogYSBz
cGFjZS4gKi8KLQkJCQkJCQlpZiAoeCkKLQkJCQkJCQkJcGFydC0+c3BhY2VzW3ggLSAxXSA9IDA7
Ci0KLQkJCQkJCQlpZiAocHJldiAhPSBVQ1NfTk9fQ0hBUikKLQkJCQkJCQkJZG9jdW1lbnQtPmRh
dGFbZG9jdW1lbnQtPmNvbWJfeV0KLQkJCQkJCQkJCS5jaGFyc1tkb2N1bWVudC0+Y29tYl94XS5k
YXRhID0gcHJldjsKLQkJCQkJCX0KLQkJCQkJCWRvY3VtZW50LT5jb21iaV9sZW5ndGggPSAwOwot
CQkJCQl9CisJCQkJCXB1dF9jb21iaW5lZChwYXJ0LCB4KTsKIAkJCQkJZG9jdW1lbnQtPmNvbWJp
WzBdID0gZGF0YTsKIAkJCQl9IGVsc2UgewogCQkJCQlpZiAoZG9jdW1lbnQtPmNvbWJpX2xlbmd0
aCA8IChVQ1NfTUFYX0xFTkdUSF9DT01CSU5FRCAtIDEpKSB7CkBAIC02MTEsNiArNjIzLDkgQEAg
Z29vZF9jaGFyOgogI2VuZGlmCiAJCQkJY29weV9zY3JlZW5fY2hhcnMoJlBPUyh4KyssIHkpLCBz
Y2hhciwgMSk7CiAJCQl9IC8qIHdoaWxlIGNoYXJzIDwgZW5kICovCisKKwkJCS8qIERpc3BsYXkg
YW55IHRyYWlsaW5nIGNvbWJpbmluZyBjaGFyYWN0ZXJzLiAqLworCQkJcHV0X2NvbWJpbmVkKHBh
cnQsIHgpOwogCQl9IGVsc2UgeyAvKiBub3QgVVRGLTggKi8KIAkJCWZvciAoOyBjaGFyc2xlbiA+
IDA7IGNoYXJzbGVuLS0sIHgrKywgY2hhcnMrKykgewogCQkJCXBhcnQtPmNoYXJfd2lkdGhbeF0g
PSAxOwotLSAKMi44LjAucmMzCgotLSAKaHR0cDovL2xpc3RzLmxpbnV4ZnJvbXNjcmF0Y2gub3Jn
L2xpc3RpbmZvL2VsaW5rcy1kZXYKVW5zdWJzY3JpYmU6IFNlZSB0aGUgYWJvdmUgaW5mb3JtYXRp
b24gcGFnZQo=