https://bugs.winehq.org/show_bug.cgi?id=38226
--- Comment #4 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Sagawa from comment #3)
Thanks Sebastian and Michael. But, I'm afraid that I have already finished my own implementation.
Your patch looks so nice. However, I sent my patches because which have some nit-picky tests. One of them is verifying _ismbckata(0x8152 /* KATAKANA ITERATION MARK */) returns 0 (amazingly!).
No problem ;) Michaels implementation is basically identical, and the result also matches for 0x8152. He used publicly available documentation on those functions, so not really surprising. Would make sense to share your work-in-progress implementation a bit earlier in the future, to avoid doing the same work twice.
Patch 2/3 contains a suspicious hunk which modifies already existing tests. Any good reason for that?
@@ -1198,7 +1228,7 @@ static void test_ismbckata(void) { static const struct katakana_pair tests[] = { {0x8152, FALSE}, {0x8153, FALSE}, {0x8154, FALSE}, {0x8155, FALSE}, {0x82a0, FALSE}, {0x833f, FALSE}, {0x8340, TRUE }, {0x837e, TRUE }, - {0x837f, FALSE}, {0x8380, TRUE }, {0x8396, TRUE }, {0x839f, FALSE}, + {0x837f, FALSE}, {0x8380, TRUE }, {0x8396, TRUE }, {0x8397, FALSE}, {0xa5, FALSE}, {0xb0, FALSE}, {0xdd, FALSE} }; unsigned int prev_cp = _getmbcp();