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.
v2: - Remove unused variables. - Add reference to extern functions in NormalizeString(). - Document NormalizeString() API function. - Code refactoring.
Sergio Gómez Del Real (3): libs/port/decompose.c: Implement full Unicode character decomposition. libs/port/compose.c: 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/compose.c | 55 + libs/port/decompose.c | 5820 ++++++++++++++++++++++++++--- libs/port/mbtowc.c | 10 +- tools/make_unicode | 723 +++- 7 files changed, 6413 insertions(+), 535 deletions(-) create mode 100644 dlls/kernel32/tests/normalization_tests.h