New module 'unicase/u32-is-invariant'.
[gnulib.git] / ChangeLog
index 40769ca..d3ed1c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,401 @@
+2009-03-08  Bruno Haible  <bruno@clisp.org>
+
+       New module 'unicase/u32-is-invariant'.
+       * lib/unicase/u32-is-invariant.c: New file.
+       * modules/unicase/u32-is-invariant: New file.
+
+       New module 'unicase/u16-is-invariant'.
+       * lib/unicase/u16-is-invariant.c: New file.
+       * modules/unicase/u16-is-invariant: New file.
+
+       New module 'unicase/u8-is-invariant'.
+       * lib/unicase/u8-is-invariant.c: New file.
+       * lib/unicase/invariant.h: New file.
+       * lib/unicase/u-is-invariant.h: New file.
+       * modules/unicase/u8-is-invariant: New file.
+
+       Tests for module 'unicase/u32-casecoll'.
+       * modules/unicase/u32-casecoll-tests: New file.
+       * tests/unicase/test-u32-casecoll.c: New file.
+
+       Tests for module 'unicase/u16-casecoll'.
+       * modules/unicase/u16-casecoll-tests: New file.
+       * tests/unicase/test-u16-casecoll.c: New file.
+
+       Tests for module 'unicase/u8-casecoll'.
+       * modules/unicase/u8-casecoll-tests: New file.
+       * tests/unicase/test-u8-casecoll.c: New file.
+
+       New module 'unicase/u32-casecoll'.
+       * lib/unicase/u32-casecoll.c: New file.
+       * modules/unicase/u32-casecoll: New file.
+
+       New module 'unicase/u16-casecoll'.
+       * lib/unicase/u16-casecoll.c: New file.
+       * modules/unicase/u16-casecoll: New file.
+
+       New module 'unicase/u8-casecoll'.
+       * lib/unicase/u8-casecoll.c: New file.
+       * lib/unicase/u-casecoll.h: New file.
+       * modules/unicase/u8-casecoll: New file.
+
+       New module 'unicase/u32-casexfrm'.
+       * lib/unicase/u32-casexfrm.c: New file.
+       * modules/unicase/u32-casexfrm: New file.
+
+       New module 'unicase/u16-casexfrm'.
+       * lib/unicase/u16-casexfrm.c: New file.
+       * modules/unicase/u16-casexfrm: New file.
+
+       New module 'unicase/u8-casexfrm'.
+       * lib/unicase/u8-casexfrm.c: New file.
+       * lib/unicase/u-casexfrm.h: New file.
+       * modules/unicase/u8-casexfrm: New file.
+
+       Tests for module 'unicase/u32-casecmp'.
+       * modules/unicase/u32-casecmp-tests: New file.
+       * tests/unicase/test-u32-casecmp.c: New file.
+
+       Tests for module 'unicase/u16-casecmp'.
+       * modules/unicase/u16-casecmp-tests: New file.
+       * tests/unicase/test-u16-casecmp.c: New file.
+
+       Tests for module 'unicase/u8-casecmp'.
+       * modules/unicase/u8-casecmp-tests: New file.
+       * tests/unicase/test-u8-casecmp.c: New file.
+       * tests/unicase/test-casecmp.h: New file.
+
+       New module 'unicase/u32-casecmp'.
+       * lib/unicase/u32-casecmp.c: New file.
+       * modules/unicase/u32-casecmp: New file.
+
+       New module 'unicase/u16-casecmp'.
+       * lib/unicase/u16-casecmp.c: New file.
+       * modules/unicase/u16-casecmp: New file.
+
+       New module 'unicase/u8-casecmp'.
+       * lib/unicase/u8-casecmp.c: New file.
+       * lib/unicase/u-casecmp.h: New file.
+       * modules/unicase/u8-casecmp: New file.
+
+       Tests for module 'unicase/u32-casefold'.
+       * modules/unicase/u32-casefold-tests: New file.
+       * tests/unicase/test-u32-casefold.c: New file.
+
+       Tests for module 'unicase/u16-casefold'.
+       * modules/unicase/u16-casefold-tests: New file.
+       * tests/unicase/test-u16-casefold.c: New file.
+
+       Tests for module 'unicase/u8-casefold'.
+       * modules/unicase/u8-casefold-tests: New file.
+       * tests/unicase/test-u8-casefold.c: New file.
+
+       New module 'unicase/u32-casefold'.
+       * lib/unicase/u32-casefold.c: New file.
+       * modules/unicase/u32-casefold: New file.
+
+       New module 'unicase/u16-casefold'.
+       * lib/unicase/u16-casefold.c: New file.
+       * modules/unicase/u16-casefold: New file.
+
+       New module 'unicase/u8-casefold'.
+       * lib/unicase/u8-casefold.c: New file.
+       * lib/unicase/u-casefold.h: New file.
+       * modules/unicase/u8-casefold: New file.
+
+       New module 'unicase/tocasefold'.
+       * lib/unicase/casefold.h: New file.
+       * lib/unicase/tocasefold.c: New file.
+       * lib/unicase/tocasefold.h: New file, generated by gen-uni-tables.c.
+       * modules/unicase/tocasefold: New file.
+
+       Tests for module 'unicase/u32-totitle'.
+       * modules/unicase/u32-totitle-tests: New file.
+       * tests/unicase/test-u32-totitle.c: New file.
+
+       Tests for module 'unicase/u16-totitle'.
+       * modules/unicase/u16-totitle-tests: New file.
+       * tests/unicase/test-u16-totitle.c: New file.
+
+       Tests for module 'unicase/u8-totitle'.
+       * modules/unicase/u8-totitle-tests: New file.
+       * tests/unicase/test-u8-totitle.c: New file.
+
+       New module 'unicase/u32-totitle'.
+       * lib/unicase/u32-totitle.c: New file.
+       * modules/unicase/u32-totitle: New file.
+
+       New module 'unicase/u16-totitle'.
+       * lib/unicase/u16-totitle.c: New file.
+       * modules/unicase/u16-totitle: New file.
+
+       New module 'unicase/u8-totitle'.
+       * lib/unicase/u8-totitle.c: New file.
+       * lib/unicase/u-totitle.h: New file.
+       * modules/unicase/u8-totitle: New file.
+
+       Tests for module 'unicase/u32-tolower'.
+       * modules/unicase/u32-tolower-tests: New file.
+       * tests/unicase/test-u32-tolower.c: New file.
+
+       Tests for module 'unicase/u16-tolower'.
+       * modules/unicase/u16-tolower-tests: New file.
+       * tests/unicase/test-u16-tolower.c: New file.
+
+       Tests for module 'unicase/u8-tolower'.
+       * modules/unicase/u8-tolower-tests: New file.
+       * tests/unicase/test-u8-tolower.c: New file.
+
+       New module 'unicase/u32-tolower'.
+       * lib/unicase/u32-tolower.c: New file.
+       * modules/unicase/u32-tolower: New file.
+
+       New module 'unicase/u16-tolower'.
+       * lib/unicase/u16-tolower.c: New file.
+       * modules/unicase/u16-tolower: New file.
+
+       New module 'unicase/u8-tolower'.
+       * lib/unicase/u8-tolower.c: New file.
+       * modules/unicase/u8-tolower: New file.
+
+       Tests for module 'unicase/u32-toupper'.
+       * modules/unicase/u32-toupper-tests: New file.
+       * tests/unicase/test-u32-toupper.c: New file.
+
+       Tests for module 'unicase/u16-toupper'.
+       * modules/unicase/u16-toupper-tests: New file.
+       * tests/unicase/test-u16-toupper.c: New file.
+
+       Tests for module 'unicase/u8-toupper'.
+       * modules/unicase/u8-toupper-tests: New file.
+       * tests/unicase/test-u8-toupper.c: New file.
+
+       New module 'unicase/u32-toupper'.
+       * lib/unicase/u32-toupper.c: New file.
+       * modules/unicase/u32-toupper: New file.
+
+       New module 'unicase/u16-toupper'.
+       * lib/unicase/u16-toupper.c: New file.
+       * modules/unicase/u16-toupper: New file.
+
+       New module 'unicase/u8-toupper'.
+       * lib/unicase/u8-toupper.c: New file.
+       * modules/unicase/u8-toupper: New file.
+
+       New module 'unicase/u32-casemap'.
+       * lib/unicase/u32-casemap.c: New file.
+       * modules/unicase/u32-casemap: New file.
+
+       New module 'unicase/u16-casemap'.
+       * lib/unicase/u16-casemap.c: New file.
+       * modules/unicase/u16-casemap: New file.
+
+       New module 'unicase/u8-casemap'.
+       * lib/unicase/unicasemap.h: New file.
+       * lib/unicase/u8-casemap.c: New file.
+       * lib/unicase/u-casemap.h: New file.
+       * modules/unicase/u8-casemap: New file.
+
+       New module 'unicase/special-casing'.
+       * lib/unicase/special-casing.h: New file.
+       * lib/unicase/special-casing.c: New file.
+       * lib/unicase/special-casing-table.gperf: New file, generated by
+       gen-uni-tables.c.
+       * modules/unicase/special-casing: New file.
+
+       Tests for module 'unicase/locale-language'.
+       * modules/unicase/locale-language-tests: New file.
+       * tests/unicase/test-locale-language.sh: New file.
+       * tests/unicase/test-locale-language.c: New file.
+
+       New module 'unicase/locale-language'.
+       * lib/unicase/locale-language.c: New file.
+       * lib/unicase/locale-languages.gperf: New file.
+       * modules/unicase/locale-language: New file.
+
+       Generate more tables for case conversion and case folding.
+       * lib/gen-uni-tables.c (SCC_*): New enum items.
+       (struct special_casing_rule): New type.
+       (casing_rules, num_casing_rules, allocated_casing_rules): New
+       variables.
+       (add_casing_rule, fill_casing_rules): New functions.
+       (struct casefold_rule): New type.
+       (casefolding_rules, num_casefolding_rules,
+       allocated_casefolding_rules): New variables.
+       (fill_casefolding_rules): New function.
+       (unicode_casefold): New variable.
+       (to_casefold, redistribute_casefolding_rules, compare_casing_rules,
+       sort_casing_rules, output_casing_rules): New functions.
+       (main): Accept to more arguments: SpecialCasing.txt and
+       CaseFolding.txt. Invoke fill_casing_rules, fill_casefolding_rules,
+       redistribute_casefolding_rules, sort_casing_rules, output_casing_rules.
+       Output mapping for casefolding.
+
+       * lib/unicase.h: Include stdbool.h, uninorm.h.
+       (u8_toupper, u16_toupper, u32_toupper, u8_tolower, u16_tolower,
+       u32_tolower, u8_totitle, u16_totitle, u32_totitle): Add nf argument.
+       (u8_casefold, u16_casefold, u32_casefold): Add iso639_language and nf
+       arguments.
+       (u8_casecmp, u16_casecmp, u32_casecmp): Add iso639_language, nf,
+       resultp arguments.
+       (u8_casexfrm, u16_casexfrm, u32_casexfrm): New declarations.
+       (u8_casecoll, u16_casecoll, u32_casecoll): Add iso639_language, nf,
+       resultp arguments.
+       (u8_is_uppercase, u16_is_uppercase, u32_is_uppercase, u8_is_lowercase,
+       u16_is_lowercase, u32_is_lowercase, u8_is_titlecase, u16_is_titlecase,
+       u32_is_titlecase, u8_is_casefolded, u16_is_casefolded,
+       u32_is_casefolded, u8_is_cased, u16_is_cased, u32_is_cased): New
+       declarations.
+       * modules/unicase/base (Depends-on): Add uninorm/base, stdbool.
+
+2009-03-08  Bruno Haible  <bruno@clisp.org>
+
+       * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll,
+       u16_normcoll, u32_normcoll): Rename argument 'result' to 'resultp'.
+       * lib/uninorm/u-normcmp.h (FUNC): Likewise.
+       * lib/uninorm/u-normcoll.h (FUNC): Likewise.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       Adjust u*_normcmp, u*_normcoll API.
+       * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll,
+       u16_normcoll, u32_normcoll): Change failure conventions.
+       * lib/uninorm/u-normcmp.h (FUNC): Upon failure, store the error code in
+       errno and return -1.
+       * lib/uninorm/u-normcoll.h (FUNC): Likewise.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'uninorm/u32-normcoll'.
+       * modules/uninorm/u32-normcoll-tests: New file.
+       * tests/uninorm/test-u32-normcoll.c: New file.
+
+       Tests for module 'uninorm/u16-normcoll'.
+       * modules/uninorm/u16-normcoll-tests: New file.
+       * tests/uninorm/test-u16-normcoll.c: New file.
+
+       Tests for module 'uninorm/u8-normcoll'.
+       * modules/uninorm/u8-normcoll-tests: New file.
+       * tests/uninorm/test-u8-normcoll.c: New file.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       * tests/uninorm/test-u32-normcmp.h: New file, extracted from
+       tests/uninorm/test-u32-normcmp.c.
+       * tests/uninorm/test-u32-normcmp.c: Include it.
+       (test_nonascii): New function, extracted from main. Add some more
+       tests.
+       (main): Invoke test_ascii and test_nonascii.
+       * modules/uninorm/u32-normcmp-tests (Files): Add
+       tests/uninorm/test-u32-normcmp.h.
+       (Depends-on): Remove uninorm/u32-normcmp.
+
+       * tests/uninorm/test-u16-normcmp.h: New file, extracted from
+       tests/uninorm/test-u16-normcmp.c.
+       * tests/uninorm/test-u16-normcmp.c: Include it.
+       (test_nonascii): New function, extracted from main. Add some more
+       tests.
+       (main): Invoke test_ascii and test_nonascii.
+       * modules/uninorm/u16-normcmp-tests (Files): Add
+       tests/uninorm/test-u16-normcmp.h.
+       (Depends-on): Remove uninorm/u16-normcmp.
+
+       * tests/uninorm/test-u8-normcmp.h: New file, extracted from
+       tests/uninorm/test-u8-normcmp.c.
+       * tests/uninorm/test-u8-normcmp.c: Include it.
+       (test_nonascii): New function, extracted from main. Add some more
+       tests.
+       (main): Invoke test_ascii and test_nonascii.
+       * modules/uninorm/u8-normcmp-tests (Files): Add
+       tests/uninorm/test-u8-normcmp.h.
+       (Depends-on): Remove uninorm/u8-normcmp.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       New module 'uninorm/u32-normcoll'.
+       * lib/uninorm/u32-normcoll.c: New file.
+       * modules/uninorm/u32-normcoll: New file.
+
+       New module 'uninorm/u16-normcoll'.
+       * lib/uninorm/u16-normcoll.c: New file.
+       * modules/uninorm/u16-normcoll: New file.
+
+       New module 'uninorm/u8-normcoll'.
+       * lib/uninorm.h (u8_normcoll, u16_normcoll, u32_normcoll): New
+       declarations.
+       * lib/uninorm/u8-normcoll.c: New file.
+       * lib/uninorm/u-normcoll.h: New file.
+       * modules/uninorm/u8-normcoll: New file.
+
+       New module 'uninorm/u32-normxfrm'.
+       * lib/uninorm/u32-normxfrm.c: New file.
+       * modules/uninorm/u32-normxfrm: New file.
+
+       New module 'uninorm/u16-normxfrm'.
+       * lib/uninorm/u16-normxfrm.c: New file.
+       * modules/uninorm/u16-normxfrm: New file.
+
+       New module 'uninorm/u8-normxfrm'.
+       * lib/uninorm.h (u8_normxfrm, u16_normxfrm, u32_normxfrm): New
+       declarations.
+       * lib/uninorm/u8-normxfrm.c: New file.
+       * lib/uninorm/u-normxfrm.h: New file.
+       * modules/uninorm/u8-normxfrm: New file.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       * modules/uninorm/u8-normcmp (Depends-on): Add uninorm/base.
+       * modules/uninorm/u16-normcmp (Depends-on): Likewise.
+       * modules/uninorm/u32-normcmp (Depends-on): Likewise.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       New module 'memxfrm'.
+       * lib/memxfrm.h: New file.
+       * lib/memxfrm.c: New file.
+       * modules/memxfrm: New file.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       New module 'memcmp2'.
+       * lib/memcmp2.h: New file.
+       * lib/memcmp2.c: New file.
+       * modules/memcmp2: New file.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'uninorm/decomposing-form'.
+       * modules/uninorm/decomposing-form-tests: New file.
+       * tests/uninorm/test-decomposing-form.c: New file.
+
+       New module 'uninorm/decomposing-form'.
+       * lib/uninorm.h (uninorm_decomposing_form): New declaration.
+       * lib/uninorm/normalize-internal.h (struct unicode_normalization_form):
+       Add 'decomposing_variant' field.
+       * lib/uninorm/decomposing-form.c: New file.
+       * lib/uninorm/nfc.c (uninorm_nfc): Update.
+       * lib/uninorm/nfd.c (uninorm_nfd): Update.
+       * lib/uninorm/nfkc.c (uninorm_nfkc): Update.
+       * lib/uninorm/nfkd.c (uninorm_nfkd): Update.
+       * modules/uninorm/decomposing-form: New file.
+       * modules/uninorm/nfc (Depends-on): Add uninorm/nfd.
+       * modules/uninorm/nfkc (Depends-on): Add uninorm/nfkd.
+
+2009-03-07  Bruno Haible  <bruno@clisp.org>
+
+       * lib/uninorm/u-normcmp.h (FUNC): Use stack=allocated buffers for small
+       strings.
+
 2009-03-06  Bruno Haible  <bruno@clisp.org>
 
+       Tests for module 'uninorm/u32-normcmp'.
+       * tests/uninorm/test-u32-normcmp.c: New file.
+       * modules/uninorm/u32-normcmp-tests: New file.
+
+       Tests for module 'uninorm/u16-normcmp'.
+       * tests/uninorm/test-u16-normcmp.c: New file.
+       * modules/uninorm/u16-normcmp-tests: New file.
+
        Tests for module 'uninorm/u8-normcmp'.
        * tests/uninorm/test-u8-normcmp.c: New file.
        * modules/uninorm/u8-normcmp-tests: New file.
        Reported by Eric Blake.
 
 2009-03-06  Eric Blake  <ebb9@byu.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * lib/spawni.c (__spawni) [WIN32_NATIVE]: Define as a stub.
        * modules/posix_spawn-tests (configure.ac): Define POSIX_SPAWN_PORTED
        least 4.2.
 
 2009-03-01  Eric Blake  <ebb9@byu.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * lib/wait-process.h (wait_subprocess): Describe effect of termsigp on
        error messages.