+2009-03-08 Bruno Haible <bruno@clisp.org>
+
+ 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.
+
+ New module 'uninorm/u32-normcmp'.
+ * lib/uninorm/u32-normcmp.c: New file.
+ * modules/uninorm/u32-normcmp: New file.
+
+ New module 'uninorm/u16-normcmp'.
+ * lib/uninorm/u16-normcmp.c: New file.
+ * modules/uninorm/u16-normcmp: New file.
+
+ New module 'uninorm/u8-normcmp'.
+ * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp): New
+ declarations.
+ * lib/uninorm/u8-normcmp.c: New file.
+ * lib/uninorm/u-normcmp.h: New file.
+ * modules/uninorm/u8-normcmp: New file.
+
+2009-03-06 Bruno Haible <bruno@clisp.org>
+
+ * lib/w32spawn.h (dup_noinherit): Add cast, to avoid gcc warning.
+ Reported by Eric Blake.
+
+2009-03-06 Eric Blake <ebb9@byu.net>
+ 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
+ condition.
+ (Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false.
+ * modules/posix_spawnp-tests (configure.ac): Define POSIX_SPAWN_PORTED
+ condition.
+ (Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false.
+
+2009-03-06 Eric Blake <ebb9@byu.net>
+
+ * lib/execute.c (execute) [WIN32_NATIVE]: Cast arguments of spawnvpe,
+ to avoid compiler warnings.
+ * lib/pipe.c (create_pipe) [WIN32_NATIVE]: Likewise.
+
+2009-03-05 Bruno Haible <bruno@clisp.org>
+
+ * tests/test-ftell.c (main): Disable test beyond end of file on
+ FreeMiNT.
+ Patch by Alan Hourihane <alanh@fairlite.co.uk>.
+
+2009-03-05 Kamil Dudka <kdudka@redhat.com>
+
+ * lib/filevercmp.c: Move hidden files up in ordering.
+ * tests/test-filevercmp.c: Add tests for hidden files.
+
+2009-03-04 Bruno Haible <bruno@clisp.org>
+
+ * modules/visibility (Makefile.am): Augment AM_CFLAGS.
+ * gnulib-tool (func_emit_lib_Makefile_am): Emit initialization of
+ AM_CFLAGS.
+ Reported by Simon Josefsson.
+
+2009-03-03 Bruno Haible <bruno@clisp.org>
+
+ * doc/visibility.texi: Recommend to use HAVE_VISIBILITY as a C macro.
+ Reported by Simon Josefsson.
+
+ * doc/ld-version-script.texi: Update node reference.
+
+2009-03-03 Bruno Haible <bruno@clisp.org>
+
+ * modules/visibility (License): Change to 'unlimited'.
+ Suggested by Simon Josefsson.
+
+2009-03-03 Jim Meyering <meyering@redhat.com>
+
+ unlinkdir: cannot_unlink_dir may modify process state
+ * lib/unlinkdir.c (cannot_unlink_dir): Add a comment warning that
+ it's neither thread-safe nor appropriate for use in a library.
+
+2009-03-03 Eric Blake <ebb9@byu.net>
+
+ test-closein: silence test under Darwin
+ * tests/test-closein.sh: Ignore stderr from cat, since we don't
+ care if it dies from EPIPE or EBADF.
+
+2009-03-03 Bruno Haible <bruno@clisp.org>
+
+ * doc/gnulib.texi: Include visibility.texi and ld-version-script.texi
+ earlier.
+ * doc/visibility.texi: Fix @node and @section.
+
+2009-03-03 Simon Josefsson <simon@josefsson.org>
+
+ * doc/gnulib.texi: Link to sections for ld version script and
+ visibility.
+ * doc/visibility.texi: Add @node and @section.
+ * modules/ld-version-script: New module.
+ * m4/ld-version-script.m4: New file.
+ * doc/ld-version-script.texi: New file.
+
+2009-03-02 David Lutterkort <lutter@redhat.com>
+
+ * lib/safe-alloc.h (__GNUC_PREREQ): New macro.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2009-03-02 Bruno Haible <bruno@clisp.org>
+
+ * doc/visibility.texi: Mention libtool's -export-symbols option.
+
+2009-03-02 Jim Meyering <meyering@redhat.com>
+
+ announce-gen: new option: --no-print-checksums
+ * build-aux/announce-gen (usage): Describe it.
+ (print_checksums): Print a newline here, not in the [*] footnote.
+ (main): Honor it.
+
+2009-03-01 Bruno Haible <bruno@clisp.org>
+
+ Use socklen_t in the native Windows replacements prototypes.
+ * lib/sys_socket.in.h (rpl_getsockopt, rpl_setsockopt): Use socklen_t
+ instead of 'int'.
+ * lib/getsockopt.c (rpl_getsockopt): Likewise.
+ * lib/setsockopt.c (rpl_setsockopt): Likewise.
+ * modules/getsockopt (Depends-on): Add socklen.
+ * modules/setsockopt (Depends-on): Add socklen.
+
+2009-03-01 Bruno Haible <bruno@clisp.org>
+
+ * gnulib-tool (sed): Do alias as "sed --posix" if sed's version is at
+ least 4.2.
+
+2009-03-01 Eric Blake <ebb9@byu.net>
+ Bruno Haible <bruno@clisp.org>
+
+ * lib/wait-process.h (wait_subprocess): Describe effect of termsigp on
+ error messages.
+ * lib/wait-process.c (wait_subprocess): Omit error message about
+ deadly signal sent to the child of termsigp != NULL.
+
+2009-03-01 Eric Blake <ebb9@byu.net>
+
+ * lib/wait-process.c (wait_subprocess): Remove unnecessary cast.
+
+2009-03-01 Bruno Haible <bruno@clisp.org>
+
+ Avoid a gcc warning.
+ * tests/test-sched.c (b): Make global.
+ Reported by Eric Blake.
+
2009-01-19 Martin Lambers <marlam@marlam.de>
Provide POSIX semantics for socket timeout options on W32.