[PATCH 4/4] Improve isolated combining characters handling
Fabienne Ducroquet <[email protected]> Tue, 12 Apr 2016 21:02:38 +0200
| Newsgroups | gmane.comp.web.links |
|---|---|
| Message-ID | <[email protected]> |
SWYgdGhlcmUgYXJlIGlzb2xhdGVkIGNvbWJpbmluZyBjaGFyYWN0ZXJzLCBlLmcuIGF0IHRoZSBi ZWdpbm5pbmcgb2YgYSBwYXJhZ3JhcGgKb3IgdGFibGUgY2VsbDoK4oCTIGlmIGl04oCZcyBub3Qg dGhlIGZpcnN0IHNjcmVlbiBjb2x1bW4sIGNvbWJpbmUgdGhlbSB3aXRoIHdoYXRldmVyIGNoYXJh Y3RlciBpcwpwcmludGVkIHRvIHRoZWlyIGxlZnQ7CuKAkyBvdGhlcndpc2UsIGFkZCBhIG5vLWJy ZWFrIHNwYWNlIGFzIHRoZSBiYXNlIGNoYXJhY3Rlci4KClByZXZpb3VzbHksIHN1Y2ggY29tYmlu aW5nIGNoYXJhY3RlcnMgd2VyZSBjb21iaW5lZCB3aXRoIHRoZSBsYXN0IGxldHRlcgpkaXNwbGF5 ZWQsIGkuZS4gdGhlIGxhc3QgbGV0dGVyIG9mIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggb3IgY2Vs bC4KClNpZ25lZC1vZmYtYnk6IEZhYmllbm5lIER1Y3JvcXVldCA8ZmFiaWR1Y0BnbWFpbC5jb20+ Ci0tLQogc3JjL2RvY3VtZW50L2h0bWwvcmVuZGVyZXIuYyB8IDUxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZG9jdW1lbnQvaHRtbC9yZW5k ZXJlci5jIGIvc3JjL2RvY3VtZW50L2h0bWwvcmVuZGVyZXIuYwppbmRleCBhNTVmNjJhLi41Yzg5 OGJiIDEwMDY0NAotLS0gYS9zcmMvZG9jdW1lbnQvaHRtbC9yZW5kZXJlci5jCisrKyBiL3NyYy9k b2N1bWVudC9odG1sL3JlbmRlcmVyLmMKQEAgLTQyNyw2ICs0MjcsMjEgQEAgbW92ZV9jb21iX3hf eShzdHJ1Y3QgcGFydCAqcGFydCwgaW50IHhmLCBpbnQgeWYsIGludCB4dCwgaW50IHl0KQogCiAj aWZkZWYgQ09ORklHX0NPTUJJTkUKIHN0YXRpYyB2b2lkCitzZXRfY29tYl94X3koc3RydWN0IHBh cnQgKnBhcnQsIGludCB4LCBpbnQgeSkKK3sKKwlzdHJ1Y3QgZG9jdW1lbnQgKmRvY3VtZW50ID0g cGFydC0+ZG9jdW1lbnQ7CisKKwlkb2N1bWVudC0+Y29tYl94ID0gWCh4KTsKKwlkb2N1bWVudC0+ Y29tYl95ID0gWSh5KTsKKwlhc3NlcnRfY29tYl94X3lfb2soZG9jdW1lbnQpOworCWlmX2Fzc2Vy dF9mYWlsZWQgZGlzY2FyZF9jb21iX3hfeShkb2N1bWVudCk7Cit9CisjZWxzZQorIyBkZWZpbmUg c2V0X2NvbWJfeF95KHBhcnQsIHgsIHkpICgodm9pZCkgMCkKKyNlbmRpZgorCisjaWZkZWYgQ09O RklHX0NPTUJJTkUKK3N0YXRpYyB2b2lkCiBwdXRfY29tYmluZWQoc3RydWN0IHBhcnQgKnBhcnQs IGludCB4KQogewogCXN0cnVjdCBkb2N1bWVudCAqZG9jdW1lbnQgPSBwYXJ0LT5kb2N1bWVudDsK QEAgLTU5NiwxMiArNjExLDMzIEBAIGdvb2RfY2hhcjoKIAkJCQkJcHV0X2NvbWJpbmVkKHBhcnQs IHgpOwogCQkJCQlkb2N1bWVudC0+Y29tYmlbMF0gPSBkYXRhOwogCQkJCX0gZWxzZSB7Ci0JCQkJ CWlmIChkb2N1bWVudC0+Y29tYmlfbGVuZ3RoIDwgKFVDU19NQVhfTEVOR1RIX0NPTUJJTkVEIC0g MSkpIHsKLQkJCQkJCWRvY3VtZW50LT5jb21iaVsrK2RvY3VtZW50LT5jb21iaV9sZW5ndGhdID0g ZGF0YTsKKwkJCQkJaWYgKHBhcnQtPmN4ID09IHgpIHsKKwkJCQkJCWlmIChYKHgpKSB7CisJCQkJ CQkJLyogSXNvbGF0ZWQgY29tYmluaW5nIAorCQkJCQkJCSAqIGNoYXJhY3RlciBub3Qgb24gdGhl IAorCQkJCQkJCSAqIGZpcnN0IGNvbHVtbjogY29tYmluZSAKKwkJCQkJCQkgKiBpdCB3aXRoIHdo YXRldmVyIGlzIAorCQkJCQkJCSAqIHByaW50ZWQgYXQgaXRzIGxlZnQuICovCisJCQkJCQkJZG9j dW1lbnQtPmNvbWJpWzBdID0gUE9TKHggLSAxLCB5KS5kYXRhOworCQkJCQkJCXNldF9jb21iX3hf eShwYXJ0LCB4IC0gMSwgeSk7CisJCQkJCQl9IGVsc2UgeworCQkJCQkJCS8qIElzb2xhdGVkIGNv bWJpbmluZyAKKwkJCQkJCQkgKiBjaGFyYWN0ZXIgb24gdGhlCisJCQkJCQkJICogZmlyc3QgY29s dW1uOiB1c2UKKwkJCQkJCQkgKiBVQ1NfTk9fQlJFQUtfU1BBQ0UgYXMKKwkJCQkJCQkgKiB0aGUg YmFzZSBjaGFyYWN0ZXIuCisJCQkJCQkJICogKi8KKwkJCQkJCQlkb2N1bWVudC0+Y29tYmlbMF0g PSBVQ1NfTk9fQlJFQUtfU1BBQ0U7CisJCQkJCQkJc2V0X2NvbWJfeF95KHBhcnQsIHgsIHkpOwor CQkJCQkJCXNjaGFyLT5kYXRhID0gVUNTX1NQQUNFOworCQkJCQkJCWNvcHlfc2NyZWVuX2NoYXJz KCZQT1MoeCsrLCB5KSwgc2NoYXIsIDEpOworCQkJCQkJfQogCQkJCQl9CisJCQkJCWlmIChkb2N1 bWVudC0+Y29tYmlfbGVuZ3RoIDwgKFVDU19NQVhfTEVOR1RIX0NPTUJJTkVEIC0gMSkpCisJCQkJ CQlkb2N1bWVudC0+Y29tYmlbKytkb2N1bWVudC0+Y29tYmlfbGVuZ3RoXSA9IGRhdGE7CiAJCQkJ CWNvbnRpbnVlOwogCQkJCX0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19DT01CSU5FICovCiAJ CQkJcGFydC0+c3BhY2VzW3hdID0gKGRhdGEgPT0gVUNTX1NQQUNFKTsKIAogCQkJCWlmICh1bmlj b2RlX3RvX2NlbGwoZGF0YSkgPT0gMikgewpAQCAtNjE1LDEyICs2NTEsOSBAQCBnb29kX2NoYXI6 CiAJCQkJCXBhcnQtPmNoYXJfd2lkdGhbeF0gPSB1bmljb2RlX3RvX2NlbGwoZGF0YSk7CiAJCQkJ CXNjaGFyLT5kYXRhID0gKHVuaWNvZGVfdmFsX1QpZGF0YTsKIAkJCQl9Ci0jaWZkZWYgQ09ORklH X0NPTUJJTkUKLQkJCQlkb2N1bWVudC0+Y29tYl94ID0gWCh4KTsKLQkJCQlkb2N1bWVudC0+Y29t Yl95ID0gWSh5KTsKLQkJCQlhc3NlcnRfY29tYl94X3lfb2soZG9jdW1lbnQpOwotCQkJCWlmX2Fz c2VydF9mYWlsZWQgZGlzY2FyZF9jb21iX3hfeShkb2N1bWVudCk7Ci0jZW5kaWYKKworCQkJCXNl dF9jb21iX3hfeShwYXJ0LCB4LCB5KTsKKwogCQkJCWNvcHlfc2NyZWVuX2NoYXJzKCZQT1MoeCsr LCB5KSwgc2NoYXIsIDEpOwogCQkJfSAvKiB3aGlsZSBjaGFycyA8IGVuZCAqLwogCi0tIAoyLjgu MC5yYzMKCi0tIApodHRwOi8vbGlzdHMubGludXhmcm9tc2NyYXRjaC5vcmcvbGlzdGluZm8vZWxp bmtzLWRldgpVbnN1YnNjcmliZTogU2VlIHRoZSBhYm92ZSBpbmZvcm1hdGlvbiBwYWdlCg==