This work is based on last year's GSoC project from Artur Świgoń. The following things were added to that work: - Implement a generalized Unicode lookup function. - Replace decomposition function with one that does decomposition recursively. - Integrate new tables and code with existing one. - Implement Canonical Ordering Algorithm necessary for normalization. - Implement Full Composition Exclusion exceptions. - Implement conformant NormalizeString API function. - Tests: add a representative sample of tests from official Unicode test archives.
v3: - Don't modify decompose.c/compose.c; only the script that will generate them.
v2: - Remove unused variables. - Add reference to extern functions in NormalizeString(). - Document NormalizeString() API function. - Code refactoring.
Sergio Gómez Del Real (3): tools/make_unicode: Implement full Unicode character decomposition. tools/make_unicode: Implement canonical composition for use in normalization. kernel32: Implement NormalizeString API function.
dlls/kernel32/locale.c | 66 ++- dlls/kernel32/tests/locale.c | 84 ++++ dlls/kernel32/tests/normalization_tests.h | 190 ++++++++ libs/port/mbtowc.c | 10 +- tools/make_unicode | 723 +++++++++++++++++++++++++++--- 5 files changed, 1005 insertions(+), 68 deletions(-) create mode 100644 dlls/kernel32/tests/normalization_tests.h